ROOT logo
/**************************************************************************
* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
*                                                                        *
* Author: The ALICE Off-line Project.                                    *
* Contributors are mentioned in the code where appropriate.              *
*                                                                        *
* Permission to use, copy, modify and distribute this software and its   *
* documentation strictly for non-commercial purposes is hereby granted   *
* without fee, provided that the above copyright notice appears in all   *
* copies and that both the copyright notice and this permission notice   *
* appear in the supporting documentation. The authors make no claims     *
* about the suitability of this software for any purpose. It is          *
* provided "as is" without express or implied warranty.                  *
**************************************************************************/

// $Id$

/// \class AliMUONQAMappingCheck
/// 
/// Helper class for AliMUONQADataMakerRec, which takes care
/// of building an AliMUONVTrackerData to store the location of
/// all the clusters encountered during a run, and all the clusters
/// that have charge on only one cathode (aka mono-cathode clusters).
///
/// This is to easily spot mapping errors and/or region of complete
/// inefficiencies.
///
/// \author Laurent Aphecetche, Subatech
///

#include "AliMUONQAMappingCheck.h"

#include "AliCDBManager.h"
#include "AliCodeTimer.h"
#include "AliLog.h"
#include "AliMUON2DMap.h"
#include "AliMUONDigitCalibrator.h"
#include "AliMUONCalibParamND.h"
#include "AliMUONGeometryTransformer.h"
#include "AliMUONPadStatusMapMaker.h"
#include "AliMUONTrackerData.h"
#include "AliMUONVCluster.h"
#include "AliMUONVDigit.h"
#include "AliMpConstants.h"
#include "AliMpDetElement.h"
#include "AliMpDDLStore.h"
#include "AliMpPad.h"
#include "AliMpSegmentation.h"
#include "AliMpVSegmentation.h"

#include "AliMpManuIterator.h"

/// \cond CLASSIMP
ClassImp(AliMUONQAMappingCheck)
/// \endcond

//_____________________________________________________________________________
AliMUONQAMappingCheck::AliMUONQAMappingCheck(Int_t runNumber)
: TObject(),
fStore(new AliMUON2DMap(kTRUE)),
fGeometryTransformer(new AliMUONGeometryTransformer),
fDigitCalibrator(new AliMUONDigitCalibrator(runNumber)),
fNumberOfEvents(0),
fNumberOfClusters(0),
fNumberOfMonoCathodeClusters(0),
fNumberOfLegitimateMonoCathodeClusters(0)
{
  /// Ctor
  
  AliCodeTimerAuto(Form("RUN %d",runNumber),0);
  
  fGeometryTransformer->LoadGeometryData();
  
  // Init the store with all the manus. Note that this is not strictly necessary, 
  // but it helps not to get its growth (that would otherwise happen in
  // AddClusterLocation each time we get a cluster associated with a manu where
  // we got no cluster yet) confused with a memory leak...
  AliMpManuIterator it;
  Int_t detElemId, manuId;
  
  while (it.Next(detElemId,manuId))
  {
    fStore->Add(new AliMUONCalibParamND(4,AliMpConstants::ManuNofChannels(),detElemId,manuId,0.0));
  }
}

//_____________________________________________________________________________
AliMUONQAMappingCheck::~AliMUONQAMappingCheck()
{
  /// Dtor. Report on the global number of clusters encountered
  AliInfo(Form("Nevents %d Nclusters %d Nmono-cathodes %d Nlegitimate-mono-cathodes %d",
               fNumberOfEvents,
               fNumberOfClusters,
               fNumberOfMonoCathodeClusters,
               fNumberOfLegitimateMonoCathodeClusters));
  delete fStore;
  delete fGeometryTransformer;
  delete fDigitCalibrator;
}

//____________________________________________________________________________
void AliMUONQAMappingCheck::AddClusterLocation(Int_t detElemId,
                                               Int_t manuId, Int_t manuChannel, 
                                               Bool_t monoCathode,
                                               Bool_t legitimateMonoCathode)
{
  /// Add one cluster location to our internal store
  if ( manuId > 0 )
  {
    AliMUONVCalibParam* p = static_cast<AliMUONVCalibParam*>(fStore->FindObject(detElemId,manuId));
    if (!p)
    {
      p = new AliMUONCalibParamND(4,AliMpConstants::ManuNofChannels(),detElemId,manuId,0.0);
      fStore->Add(p);
    }

    p->SetValueAsDouble(manuChannel,0,p->ValueAsDouble(manuChannel,0)+1.0);
    
    if ( monoCathode )
    {
      p->SetValueAsDouble(manuChannel,1,p->ValueAsDouble(manuChannel,1)+1.0); 
      if (!legitimateMonoCathode)
      {
        p->SetValueAsDouble(manuChannel,2,p->ValueAsDouble(manuChannel,2)+1.0); 
      }
    }
  }
}

//____________________________________________________________________________ 
void 
AliMUONQAMappingCheck::NewEvent()
{
  /// Increment number of events seen
  ++fNumberOfEvents;
}

//____________________________________________________________________________ 
AliMUONVTrackerData* 
AliMUONQAMappingCheck::CreateData(const char* name) const
{
  /// Make a trackerData from our internal store
  
  AliMUONVStore* store = static_cast<AliMUONVStore*>(fStore->Clone());
  
  TIter next(store->CreateIterator());
  AliMUONVCalibParam* param;
  
  while ( ( param = static_cast<AliMUONVCalibParam*>(next()) ) )
  {
    for ( Int_t i = 0; i < param->Size(); ++i ) 
    {
      param->SetValueAsDouble(i,3,fNumberOfEvents);
    }
  }
  
  AliMUONTrackerData* data = new AliMUONTrackerData(name,name,4,kTRUE);
  data->SetDimensionName(0,"all"); // all clusters
  data->SetDimensionName(1,"mono"); // mono-cathode clusters
  data->SetDimensionName(2,"suspect"); // not legitimate mono-cathode clusters
  data->SetDimensionName(3,"Nevents"); // number of events
  data->DisableChannelLevel();
  
  data->Add(*store);
  
  delete store;
  
  return data;
}

//____________________________________________________________________________ 
void 
AliMUONQAMappingCheck::GetClusterLocation(AliMUONVCluster& cluster, 
                                          Int_t& manuBending, Int_t& manuBendingChannel, 
                                          Int_t& manuNonBending, Int_t& manuNonBendingChannel,
                                          Bool_t& monoCathode, Bool_t& legitimateMonoCathode)
{
  /// Get the pad under the center of the cluster, and whether or not this cluster
  /// has charge on both cathodes
  
  Int_t detElemId = cluster.GetDetElemId();
  
  Double_t x,y,z;
  
  fGeometryTransformer->Global2Local(detElemId,cluster.GetX(),cluster.GetY(),cluster.GetZ(),x,y,z);
  
  AliMpDetElement* de = AliMpDDLStore::Instance()->GetDetElement(detElemId);
  
  const AliMpVSegmentation* segB = AliMpSegmentation::Instance()->GetMpSegmentation(detElemId,de->GetCathodType(AliMp::kBendingPlane));
  const AliMpVSegmentation* segNB = AliMpSegmentation::Instance()->GetMpSegmentation(detElemId,de->GetCathodType(AliMp::kNonBendingPlane));
  
  AliMpPad padB = segB->PadByPosition(x,y);
  AliMpPad padNB = segNB->PadByPosition(x,y);
  
  manuBending = padB.GetManuId();
  manuBendingChannel = padB.GetManuChannel();
  
  manuNonBending = padNB.GetManuId();
  manuNonBendingChannel = padNB.GetManuChannel();
  
  Bool_t bending(kFALSE);
  Bool_t nonBending(kFALSE);
  
  for ( Int_t i = 0; i < cluster.GetNDigits(); ++i ) 
//    for ( Int_t i = 0; i < cluster.GetNDigits() && !(bending && nonBending); ++i ) 
  {
    UInt_t digitId = cluster.GetDigitId(i);
    Int_t manuId = AliMUONVDigit::ManuId(digitId);
    if ( manuId > 0 )
    {
      if ( manuId & AliMpConstants::ManuMask(AliMp::kNonBendingPlane) )
      {
        nonBending = kTRUE;
      }
      else
      {
        bending = kTRUE;
      }
    }
  }
  
  monoCathode = ( bending != nonBending );
  
  if ( monoCathode ) 
  {
    legitimateMonoCathode = kFALSE;
    if (!bending) 
    {
      if ( IsManuDead(detElemId,manuBending) ) legitimateMonoCathode = kTRUE;    
    }
    
    if (!nonBending) 
    {
    
      if ( IsManuDead(detElemId,manuNonBending) ) legitimateMonoCathode = kTRUE;
    }
  }
  
  if (!bending) manuBending *= -1;
  if (!nonBending) manuNonBending *= -1;
  
  ++fNumberOfClusters;
  if ( monoCathode ) 
  {
    ++fNumberOfMonoCathodeClusters;
    if ( legitimateMonoCathode ) ++fNumberOfLegitimateMonoCathodeClusters;  
  }
}

//____________________________________________________________________________ 
Bool_t AliMUONQAMappingCheck::IsManuDead(Int_t detElemId, Int_t manuId) const
{
  /// Using the statusmaker, tells if a given manu is to be considered 
  /// as dead (here dead means at least one manas dead)
  
  if ( manuId <= 0 ) return kTRUE;
  
  Int_t n(0);
  
  for ( Int_t i = 0; i < AliMpConstants::ManuNofChannels(); ++i) 
  {
    if ( IsChannelDead(detElemId,manuId,i) ) ++n;
  }
  return n > 16;
}

//____________________________________________________________________________ 
Bool_t AliMUONQAMappingCheck::IsChannelDead(Int_t detElemId, Int_t manuId, Int_t manuChannel) const
{
  /// Using the statusmaker, tells if a given channel is dead
  
  return ( fDigitCalibrator->StatusMap(detElemId,manuId,manuChannel) & (AliMUONPadStatusMapMaker::SelfDeadMask() != 0) );
}

//____________________________________________________________________________ 
void 
AliMUONQAMappingCheck::Store(AliMUONVCluster& cluster)
{
  /// Store information about a single cluster
                                      
  if ( cluster.GetCharge() < 10 ) return;
  
  Int_t manuBendingId, manuBendingChannel;
  Int_t manuNonBendingId, manuNonBendingChannel;
  Bool_t monoCathode, legitimateMonoCathode;
  
  GetClusterLocation(cluster, manuBendingId, manuBendingChannel,manuNonBendingId, manuNonBendingChannel, monoCathode,legitimateMonoCathode);
  
  AddClusterLocation(cluster.GetDetElemId(),manuBendingId,manuBendingChannel,monoCathode,legitimateMonoCathode);
  AddClusterLocation(cluster.GetDetElemId(),manuNonBendingId,manuNonBendingChannel,monoCathode,legitimateMonoCathode);    
}
 AliMUONQAMappingCheck.cxx:1
 AliMUONQAMappingCheck.cxx:2
 AliMUONQAMappingCheck.cxx:3
 AliMUONQAMappingCheck.cxx:4
 AliMUONQAMappingCheck.cxx:5
 AliMUONQAMappingCheck.cxx:6
 AliMUONQAMappingCheck.cxx:7
 AliMUONQAMappingCheck.cxx:8
 AliMUONQAMappingCheck.cxx:9
 AliMUONQAMappingCheck.cxx:10
 AliMUONQAMappingCheck.cxx:11
 AliMUONQAMappingCheck.cxx:12
 AliMUONQAMappingCheck.cxx:13
 AliMUONQAMappingCheck.cxx:14
 AliMUONQAMappingCheck.cxx:15
 AliMUONQAMappingCheck.cxx:16
 AliMUONQAMappingCheck.cxx:17
 AliMUONQAMappingCheck.cxx:18
 AliMUONQAMappingCheck.cxx:19
 AliMUONQAMappingCheck.cxx:20
 AliMUONQAMappingCheck.cxx:21
 AliMUONQAMappingCheck.cxx:22
 AliMUONQAMappingCheck.cxx:23
 AliMUONQAMappingCheck.cxx:24
 AliMUONQAMappingCheck.cxx:25
 AliMUONQAMappingCheck.cxx:26
 AliMUONQAMappingCheck.cxx:27
 AliMUONQAMappingCheck.cxx:28
 AliMUONQAMappingCheck.cxx:29
 AliMUONQAMappingCheck.cxx:30
 AliMUONQAMappingCheck.cxx:31
 AliMUONQAMappingCheck.cxx:32
 AliMUONQAMappingCheck.cxx:33
 AliMUONQAMappingCheck.cxx:34
 AliMUONQAMappingCheck.cxx:35
 AliMUONQAMappingCheck.cxx:36
 AliMUONQAMappingCheck.cxx:37
 AliMUONQAMappingCheck.cxx:38
 AliMUONQAMappingCheck.cxx:39
 AliMUONQAMappingCheck.cxx:40
 AliMUONQAMappingCheck.cxx:41
 AliMUONQAMappingCheck.cxx:42
 AliMUONQAMappingCheck.cxx:43
 AliMUONQAMappingCheck.cxx:44
 AliMUONQAMappingCheck.cxx:45
 AliMUONQAMappingCheck.cxx:46
 AliMUONQAMappingCheck.cxx:47
 AliMUONQAMappingCheck.cxx:48
 AliMUONQAMappingCheck.cxx:49
 AliMUONQAMappingCheck.cxx:50
 AliMUONQAMappingCheck.cxx:51
 AliMUONQAMappingCheck.cxx:52
 AliMUONQAMappingCheck.cxx:53
 AliMUONQAMappingCheck.cxx:54
 AliMUONQAMappingCheck.cxx:55
 AliMUONQAMappingCheck.cxx:56
 AliMUONQAMappingCheck.cxx:57
 AliMUONQAMappingCheck.cxx:58
 AliMUONQAMappingCheck.cxx:59
 AliMUONQAMappingCheck.cxx:60
 AliMUONQAMappingCheck.cxx:61
 AliMUONQAMappingCheck.cxx:62
 AliMUONQAMappingCheck.cxx:63
 AliMUONQAMappingCheck.cxx:64
 AliMUONQAMappingCheck.cxx:65
 AliMUONQAMappingCheck.cxx:66
 AliMUONQAMappingCheck.cxx:67
 AliMUONQAMappingCheck.cxx:68
 AliMUONQAMappingCheck.cxx:69
 AliMUONQAMappingCheck.cxx:70
 AliMUONQAMappingCheck.cxx:71
 AliMUONQAMappingCheck.cxx:72
 AliMUONQAMappingCheck.cxx:73
 AliMUONQAMappingCheck.cxx:74
 AliMUONQAMappingCheck.cxx:75
 AliMUONQAMappingCheck.cxx:76
 AliMUONQAMappingCheck.cxx:77
 AliMUONQAMappingCheck.cxx:78
 AliMUONQAMappingCheck.cxx:79
 AliMUONQAMappingCheck.cxx:80
 AliMUONQAMappingCheck.cxx:81
 AliMUONQAMappingCheck.cxx:82
 AliMUONQAMappingCheck.cxx:83
 AliMUONQAMappingCheck.cxx:84
 AliMUONQAMappingCheck.cxx:85
 AliMUONQAMappingCheck.cxx:86
 AliMUONQAMappingCheck.cxx:87
 AliMUONQAMappingCheck.cxx:88
 AliMUONQAMappingCheck.cxx:89
 AliMUONQAMappingCheck.cxx:90
 AliMUONQAMappingCheck.cxx:91
 AliMUONQAMappingCheck.cxx:92
 AliMUONQAMappingCheck.cxx:93
 AliMUONQAMappingCheck.cxx:94
 AliMUONQAMappingCheck.cxx:95
 AliMUONQAMappingCheck.cxx:96
 AliMUONQAMappingCheck.cxx:97
 AliMUONQAMappingCheck.cxx:98
 AliMUONQAMappingCheck.cxx:99
 AliMUONQAMappingCheck.cxx:100
 AliMUONQAMappingCheck.cxx:101
 AliMUONQAMappingCheck.cxx:102
 AliMUONQAMappingCheck.cxx:103
 AliMUONQAMappingCheck.cxx:104
 AliMUONQAMappingCheck.cxx:105
 AliMUONQAMappingCheck.cxx:106
 AliMUONQAMappingCheck.cxx:107
 AliMUONQAMappingCheck.cxx:108
 AliMUONQAMappingCheck.cxx:109
 AliMUONQAMappingCheck.cxx:110
 AliMUONQAMappingCheck.cxx:111
 AliMUONQAMappingCheck.cxx:112
 AliMUONQAMappingCheck.cxx:113
 AliMUONQAMappingCheck.cxx:114
 AliMUONQAMappingCheck.cxx:115
 AliMUONQAMappingCheck.cxx:116
 AliMUONQAMappingCheck.cxx:117
 AliMUONQAMappingCheck.cxx:118
 AliMUONQAMappingCheck.cxx:119
 AliMUONQAMappingCheck.cxx:120
 AliMUONQAMappingCheck.cxx:121
 AliMUONQAMappingCheck.cxx:122
 AliMUONQAMappingCheck.cxx:123
 AliMUONQAMappingCheck.cxx:124
 AliMUONQAMappingCheck.cxx:125
 AliMUONQAMappingCheck.cxx:126
 AliMUONQAMappingCheck.cxx:127
 AliMUONQAMappingCheck.cxx:128
 AliMUONQAMappingCheck.cxx:129
 AliMUONQAMappingCheck.cxx:130
 AliMUONQAMappingCheck.cxx:131
 AliMUONQAMappingCheck.cxx:132
 AliMUONQAMappingCheck.cxx:133
 AliMUONQAMappingCheck.cxx:134
 AliMUONQAMappingCheck.cxx:135
 AliMUONQAMappingCheck.cxx:136
 AliMUONQAMappingCheck.cxx:137
 AliMUONQAMappingCheck.cxx:138
 AliMUONQAMappingCheck.cxx:139
 AliMUONQAMappingCheck.cxx:140
 AliMUONQAMappingCheck.cxx:141
 AliMUONQAMappingCheck.cxx:142
 AliMUONQAMappingCheck.cxx:143
 AliMUONQAMappingCheck.cxx:144
 AliMUONQAMappingCheck.cxx:145
 AliMUONQAMappingCheck.cxx:146
 AliMUONQAMappingCheck.cxx:147
 AliMUONQAMappingCheck.cxx:148
 AliMUONQAMappingCheck.cxx:149
 AliMUONQAMappingCheck.cxx:150
 AliMUONQAMappingCheck.cxx:151
 AliMUONQAMappingCheck.cxx:152
 AliMUONQAMappingCheck.cxx:153
 AliMUONQAMappingCheck.cxx:154
 AliMUONQAMappingCheck.cxx:155
 AliMUONQAMappingCheck.cxx:156
 AliMUONQAMappingCheck.cxx:157
 AliMUONQAMappingCheck.cxx:158
 AliMUONQAMappingCheck.cxx:159
 AliMUONQAMappingCheck.cxx:160
 AliMUONQAMappingCheck.cxx:161
 AliMUONQAMappingCheck.cxx:162
 AliMUONQAMappingCheck.cxx:163
 AliMUONQAMappingCheck.cxx:164
 AliMUONQAMappingCheck.cxx:165
 AliMUONQAMappingCheck.cxx:166
 AliMUONQAMappingCheck.cxx:167
 AliMUONQAMappingCheck.cxx:168
 AliMUONQAMappingCheck.cxx:169
 AliMUONQAMappingCheck.cxx:170
 AliMUONQAMappingCheck.cxx:171
 AliMUONQAMappingCheck.cxx:172
 AliMUONQAMappingCheck.cxx:173
 AliMUONQAMappingCheck.cxx:174
 AliMUONQAMappingCheck.cxx:175
 AliMUONQAMappingCheck.cxx:176
 AliMUONQAMappingCheck.cxx:177
 AliMUONQAMappingCheck.cxx:178
 AliMUONQAMappingCheck.cxx:179
 AliMUONQAMappingCheck.cxx:180
 AliMUONQAMappingCheck.cxx:181
 AliMUONQAMappingCheck.cxx:182
 AliMUONQAMappingCheck.cxx:183
 AliMUONQAMappingCheck.cxx:184
 AliMUONQAMappingCheck.cxx:185
 AliMUONQAMappingCheck.cxx:186
 AliMUONQAMappingCheck.cxx:187
 AliMUONQAMappingCheck.cxx:188
 AliMUONQAMappingCheck.cxx:189
 AliMUONQAMappingCheck.cxx:190
 AliMUONQAMappingCheck.cxx:191
 AliMUONQAMappingCheck.cxx:192
 AliMUONQAMappingCheck.cxx:193
 AliMUONQAMappingCheck.cxx:194
 AliMUONQAMappingCheck.cxx:195
 AliMUONQAMappingCheck.cxx:196
 AliMUONQAMappingCheck.cxx:197
 AliMUONQAMappingCheck.cxx:198
 AliMUONQAMappingCheck.cxx:199
 AliMUONQAMappingCheck.cxx:200
 AliMUONQAMappingCheck.cxx:201
 AliMUONQAMappingCheck.cxx:202
 AliMUONQAMappingCheck.cxx:203
 AliMUONQAMappingCheck.cxx:204
 AliMUONQAMappingCheck.cxx:205
 AliMUONQAMappingCheck.cxx:206
 AliMUONQAMappingCheck.cxx:207
 AliMUONQAMappingCheck.cxx:208
 AliMUONQAMappingCheck.cxx:209
 AliMUONQAMappingCheck.cxx:210
 AliMUONQAMappingCheck.cxx:211
 AliMUONQAMappingCheck.cxx:212
 AliMUONQAMappingCheck.cxx:213
 AliMUONQAMappingCheck.cxx:214
 AliMUONQAMappingCheck.cxx:215
 AliMUONQAMappingCheck.cxx:216
 AliMUONQAMappingCheck.cxx:217
 AliMUONQAMappingCheck.cxx:218
 AliMUONQAMappingCheck.cxx:219
 AliMUONQAMappingCheck.cxx:220
 AliMUONQAMappingCheck.cxx:221
 AliMUONQAMappingCheck.cxx:222
 AliMUONQAMappingCheck.cxx:223
 AliMUONQAMappingCheck.cxx:224
 AliMUONQAMappingCheck.cxx:225
 AliMUONQAMappingCheck.cxx:226
 AliMUONQAMappingCheck.cxx:227
 AliMUONQAMappingCheck.cxx:228
 AliMUONQAMappingCheck.cxx:229
 AliMUONQAMappingCheck.cxx:230
 AliMUONQAMappingCheck.cxx:231
 AliMUONQAMappingCheck.cxx:232
 AliMUONQAMappingCheck.cxx:233
 AliMUONQAMappingCheck.cxx:234
 AliMUONQAMappingCheck.cxx:235
 AliMUONQAMappingCheck.cxx:236
 AliMUONQAMappingCheck.cxx:237
 AliMUONQAMappingCheck.cxx:238
 AliMUONQAMappingCheck.cxx:239
 AliMUONQAMappingCheck.cxx:240
 AliMUONQAMappingCheck.cxx:241
 AliMUONQAMappingCheck.cxx:242
 AliMUONQAMappingCheck.cxx:243
 AliMUONQAMappingCheck.cxx:244
 AliMUONQAMappingCheck.cxx:245
 AliMUONQAMappingCheck.cxx:246
 AliMUONQAMappingCheck.cxx:247
 AliMUONQAMappingCheck.cxx:248
 AliMUONQAMappingCheck.cxx:249
 AliMUONQAMappingCheck.cxx:250
 AliMUONQAMappingCheck.cxx:251
 AliMUONQAMappingCheck.cxx:252
 AliMUONQAMappingCheck.cxx:253
 AliMUONQAMappingCheck.cxx:254
 AliMUONQAMappingCheck.cxx:255
 AliMUONQAMappingCheck.cxx:256
 AliMUONQAMappingCheck.cxx:257
 AliMUONQAMappingCheck.cxx:258
 AliMUONQAMappingCheck.cxx:259
 AliMUONQAMappingCheck.cxx:260
 AliMUONQAMappingCheck.cxx:261
 AliMUONQAMappingCheck.cxx:262
 AliMUONQAMappingCheck.cxx:263
 AliMUONQAMappingCheck.cxx:264
 AliMUONQAMappingCheck.cxx:265
 AliMUONQAMappingCheck.cxx:266
 AliMUONQAMappingCheck.cxx:267
 AliMUONQAMappingCheck.cxx:268
 AliMUONQAMappingCheck.cxx:269
 AliMUONQAMappingCheck.cxx:270
 AliMUONQAMappingCheck.cxx:271
 AliMUONQAMappingCheck.cxx:272
 AliMUONQAMappingCheck.cxx:273
 AliMUONQAMappingCheck.cxx:274
 AliMUONQAMappingCheck.cxx:275
 AliMUONQAMappingCheck.cxx:276
 AliMUONQAMappingCheck.cxx:277
 AliMUONQAMappingCheck.cxx:278
 AliMUONQAMappingCheck.cxx:279
 AliMUONQAMappingCheck.cxx:280
 AliMUONQAMappingCheck.cxx:281
 AliMUONQAMappingCheck.cxx:282
 AliMUONQAMappingCheck.cxx:283
 AliMUONQAMappingCheck.cxx:284
 AliMUONQAMappingCheck.cxx:285
 AliMUONQAMappingCheck.cxx:286
 AliMUONQAMappingCheck.cxx:287
 AliMUONQAMappingCheck.cxx:288
 AliMUONQAMappingCheck.cxx:289
 AliMUONQAMappingCheck.cxx:290
 AliMUONQAMappingCheck.cxx:291