ROOT logo
/*
 The class for calculating the global (not detector specific) quality assurance.
 It reuses the following TLists from its base class 
    AliQADataMaker::fRecPointsQAList (for keeping the track residuals)
    AliQADataMaker::fESDsQAList      (for keeping global ESD QA data)
*/

#include <TPDGCode.h>
#include <TH1F.h>
#include <TH2F.h>

#include "AliCDBPath.h"
#include "AliCDBEntry.h"
#include "AliCDBManager.h"
#include "AliDetectorRecoParam.h"
#include "AliQAChecker.h"
#include "AliGlobalQADataMaker.h"
#include "AliGeomManager.h"
#include "AliESDEvent.h"
#include "AliESDv0.h"
#include "AliRawReader.h"
#include "AliESDVZERO.h"
#include "AliMultiplicity.h" 
#include "AliPID.h"

ClassImp(AliGlobalQADataMaker)
 
//____________________________________________________________________________ 
void AliGlobalQADataMaker::EndOfDetectorCycle(AliQAv1::TASKINDEX_t task, TObjArray ** list)
{
  //Detector specific actions at end of cycle
  // do the QA checking
  AliQAChecker::Instance()->Run(AliQAv1::kGLOBAL, task, list) ;  
}

//____________________________________________________________________________ 
void AliGlobalQADataMaker::InitRaws()
{
  // create Raws histograms in Raws subdir
  ClonePerTrigClass(AliQAv1::kRAWS); // this should be the last line
}

//____________________________________________________________________________
void AliGlobalQADataMaker::InitRecoParams() 
{
  // Get the recoparam form the OCDB 
  if (!fRecoParam) {
    TString name("GRP") ; 
    AliDebug(AliQAv1::GetQADebugLevel(), Form("Loading reconstruction parameter objects for detector %s", name.Data()));
    AliCDBPath path(name.Data(),"Calib","RecoParam");
    AliCDBEntry *entry=AliCDBManager::Instance()->Get(path.GetPath());
    if(!entry) {
      fRecoParam = NULL ; 
      AliDebug(AliQAv1::GetQADebugLevel(), Form("Couldn't find RecoParam entry in OCDB for detector %s",name.Data()));
    }
    else {
      TObject * recoParamObj = entry->GetObject() ; 
      if ( strcmp(recoParamObj->ClassName(), "TObjArray") == 0 ) {
          // The detector has only one set of reco parameters
        AliDebug(AliQAv1::GetQADebugLevel(), Form("Array of reconstruction parameters found for detector %s",name.Data()));
        TObjArray *recoParamArray = static_cast<TObjArray*>(recoParamObj) ;
        for (Int_t iRP=0; iRP<recoParamArray->GetEntriesFast(); iRP++) {
          fRecoParam = static_cast<AliDetectorRecoParam*>(recoParamArray->At(iRP)) ;
          if (!fRecoParam) 
            break ; 
          else if (fRecoParam->IsDefault()) 
            break ; 
        }
      }
      else if (recoParamObj->InheritsFrom("AliDetectorRecoParam")) {
          // The detector has only one set of reco parameters
          // Registering it in AliRecoParam
        AliDebug(AliQAv1::GetQADebugLevel(), Form("Single set of reconstruction parameters found for detector %s",name.Data()));
        fRecoParam = static_cast<AliDetectorRecoParam*>(recoParamObj) ;
        static_cast<AliDetectorRecoParam*>(recoParamObj)->SetAsDefault();
      } else { 
        AliError(Form("No valid RecoParam object found in the OCDB for detector %s",name.Data()));
      }
    }
  }
}

//____________________________________________________________________________ 
void AliGlobalQADataMaker::InitRecPoints() {
  //------------------------------------------------------
  // This function books the histograms of *track*residuals*
  // as a part of global QA
  //------------------------------------------------------
  static Bool_t first = kTRUE ; 
  if ( ! first ) return; 
  const Char_t *name[]={
    "hGlobalSPD1ResidualsY","SPD1ResidualsZ",
    "hGlobalSPD2ResidualsY","SPD2ResidualsZ",
    "hGlobalSDD1ResidualsY","SDD1ResidualsZ",
    "hGlobalSDD2ResidualsY","SDD2ResidualsZ",
    "hGlobalSSD1ResidualsY","SSD1ResidualsZ",
    "hGlobalSSD2ResidualsY","SSD2ResidualsZ",
    
    "hGlobalTPC1ResidualsY","TPC1ResidualsZ",
    "hGlobalTPC2ResidualsY","TPC2ResidualsZ",
    
    "hGlobalTRD1ResidualsY","TRD1ResidualsZ",
    "hGlobalTRD2ResidualsY","TRD2ResidualsZ",
    "hGlobalTRD3ResidualsY","TRD3ResidualsZ",
    "hGlobalTRD4ResidualsY","TRD4ResidualsZ",
    "hGlobalTRD5ResidualsY","TRD5ResidualsZ",
    "hGlobalTRD6ResidualsY","TRD6ResidualsZ",
    
    "hGlobalTOFResidualsY","TOFResidualsZ",
    
    "hGlobalPHOS1ResidualsY","PHOS1ResidualsZ",
    "hGlobalPHOS2ResidualsY","PHOS2ResidualsZ",
    
    "hGlobalHMPIDResidualsY","HMPIDResidualsZ",
    
    "hGlobalMUONResidualsY","MUONResidualsZ",
    
    "hGlobalEMCALResidualsY","EMCALResidualsZ"
  };
  const Char_t *title[]={
    "SPD1 residuals Y","SPD1 residuals Z",
    "SPD2 residuals Y","SPD2 residuals Z",
    "SDD1 residuals Y","SDD1 residuals Z",
    "SDD2 residuals Y","SDD2 residuals Z",
    "SSD1 residuals Y","SSD1 residuals Z",
    "SSD2 residuals Y","SSD2 residuals Z",
    
    "TPC1 residuals Y","TPC1 residuals Z",
    "TPC2 residuals Y","TPC2 residuals Z",
    
    "TRD1 residuals Y","TRD1 residuals Z",
    "TRD2 residuals Y","TRD2 residuals Z",
    "TRD3 residuals Y","TRD3 residuals Z",
    "TRD4 residuals Y","TRD4 residuals Z",
    "TRD5 residuals Y","TRD5 residuals Z",
    "TRD6 residuals Y","TRD6 residuals Z",
    
    "TOF residuals Y","TOF residuals Z",
    
    "PHOS1 residuals Y","PHOS1 residuals Z",
    "PHOS2 residuals Y","PHOS2 residuals Z",
    
    "HMPID residuals Y","HMPID residuals Z",
    
    "MUON residuals Y","MUON residuals Z",
    
    "EMCAL residuals Y","EMCAL residuals Z"
  };
  
  for (Int_t m=1; m<AliGeomManager::kLastLayer; m++) {
    Int_t i=2*m-2;
    TH1F *h=new TH1F(name[i],title[i],100,-5.,5.);
    Add2RecPointsList(h,i);    
    h=new TH1F(name[i+1],title[i+1],100,-5.,5.);
    Add2RecPointsList(h,i+1);    
  }

  Add2RecPointsList(
  new TH1F("hGlobalSSD1AbsoluteResidualsYNegZ",
           "SSD1 Absolute Residuals Y Neg Z",100,-2.,2.),40);
  Add2RecPointsList(
  new TH1F("hGlobalSSD1AbsoluteResidualsZNegZ",
           "SSD1 Absolute Residuals Z Neg Z",100,-2.,2.),41);
  Add2RecPointsList(
  new TH1F("hGlobalSSD1AbsoluteResidualsYPosZ",
           "SSD1 Absolute Residuals Y Pos Z",100,-2.,2.),42);
  Add2RecPointsList(
  new TH1F("hGlobalSSD1AbsoluteResidualsZPosZ",
           "SSD1 Absolute Residuals Z Pos Z",100,-2.,2.),43);


  Add2RecPointsList(
  new TH1F("hGlobalSSD2AbsoluteResidualsYNegZ",
           "SSD2 Absolute Residuals Y Neg Z",100,-3.,3.),44);
  Add2RecPointsList(
  new TH1F("hGlobalSSD2AbsoluteResidualsZNegZ",
           "SSD2 Absolute Residuals Z Neg Z",100,-3.,3.),45);
  Add2RecPointsList(
  new TH1F("hGlobalSSD2AbsoluteResidualsYPosZ",
           "SSD2 Absolute Residuals Y Pos Z",100,-3.,3.),46);
  Add2RecPointsList(
  new TH1F("hGlobalSSD2AbsoluteResidualsZPosZ",
           "SSD2Absolute Residuals Z Pos Z",100,-3.,3.),47);
  
  first = kFALSE;
  //
  ClonePerTrigClass(AliQAv1::kRECPOINTS); // this should be the last line 
}

//____________________________________________________________________________ 
void AliGlobalQADataMaker::InitESDs() {
  //------------------------------------------------------
  // This function books the ESD QA histograms
  // as a part of global QA
  //------------------------------------------------------

  const Bool_t expert   = kTRUE ; 
  const Bool_t image    = kTRUE ;

  {// Event related QA
    const Char_t *name[]={
      "hGlobalPrimaryVertex"
    };
    const Char_t *title[]={
      "Z-distribution of the primary vertex"
    };
    Add2ESDsList(new TH1F(name[0],title[0],100,-20.,20.),kEvt0,!expert,image);
  }
 
  {// Cluster related QA
    const Char_t *name[]={
      "hGlobalFractionAssignedClustersITS",
      "hGlobalFractionAssignedClustersTPC",
      "hGlobalFractionAssignedClustersTRD",
      "hGlobalClustersPerITSModule"
    };
    const Char_t *title[]={
      "Fraction of the assigned clusters in ITS",
      "Fraction of the assigned clusters in TPC",
      "Fraction of the assigned clusters in TRD",
      "Number of clusters per an ITS module"
    };
    Add2ESDsList(new TH1F(name[0],title[0],100,0.,2.),kClr0, !expert, image);
    Add2ESDsList(new TH1F(name[1],title[1],100,0.,2.),kClr1, !expert, image);
    Add2ESDsList(new TH1F(name[2],title[2],100,0.,2.),kClr2, !expert, image);
    Add2ESDsList(new TH1F(name[3],title[3],2201,-0.5,2200.5),kClr3, !expert, image);
  }

  {// Track related QA
    const Char_t *name[]={
      "hGlobalTrackAzimuthe",                               // kTrk0
      "hGlobalTrackEta",                                    // kTrk1
      "hGlobalTPCTrackpT",                                  // kTrk2
      "hGlobalTPCITSMatchedpT",                             // kTrk3
      "hGlobalTPCTOFMatchedpT",                             // kTrk4
      "hGlobalTPCITSMatchingProbability",                   // kTrk5
      "hGlobalTPCTOFMatchingProbability",                   // kTrk6
      "hGlobalTPCsideAposDCA",                              // kTrk7
      "hGlobalTPCsideAnegDCA",                              // kTrk8
      "hGlobalTPCsideCposDCA",                              // kTrk9
      "hGlobalTPCsideCnegDCA"                               // kTrk10
  };
    const Char_t *title[]={
      "Track azimuthal distribution (rad)",                   // kTrk0
      "Track pseudo-rapidity distribution",                   // kTrk1
      "TPC: track momentum distribution (GeV)",               // kTrk2
      "TPC-ITS matched: track momentum distribution (GeV)",   // kTrk3
      "TPC-TOF matched: track momentum distribution (GeV)",   // kTrk4
      "TPC-ITS track-matching probability",                   // kTrk5
      "TPC-TOF track-matching probability",                   // kTrk6
      "TPC side A: DCA for the positive tracks (mm)",         // kTrk7
      "TPC side A: DCA for the negative tracks (mm)",         // kTrk8
      "TPC side C: DCA for the positive tracks (mm)",         // kTrk9
      "TPC side C: DCA for the negative tracks (mm)"          // kTrk10
    };
  Add2ESDsList(new TH1F(name[0],title[0],100, 0.,TMath::TwoPi()),kTrk0, !expert, image);
  Add2ESDsList(new TH1F(name[1],title[1],100,-2.00,2.00),kTrk1, !expert, image);
  Add2ESDsList(new TH1F(name[2],title[2],50,  0.20,5.00),kTrk2, !expert, image);
  Add2ESDsList(new TH1F(name[3],title[3],50,  0.20,5.00),kTrk3, !expert, image);
  Add2ESDsList(new TH1F(name[4],title[4],50,  0.20,5.00),kTrk4, !expert, image);
  Add2ESDsList(new TH1F(name[5],title[5],50,  0.20,5.00),kTrk5, !expert, image);
  Add2ESDsList(new TH1F(name[6],title[6],50,  0.20,5.00),kTrk6, !expert, image);
  Add2ESDsList(new TH1F(name[7],title[7],50, -25.0,25.0),kTrk7, !expert, image);
  Add2ESDsList(new TH1F(name[8],title[8],50, -25.0,25.0),kTrk8, !expert, image);
  Add2ESDsList(new TH1F(name[9],title[9],50, -25.0,25.0),kTrk9, !expert, image);
  Add2ESDsList(new TH1F(name[10],title[10],50, -25.0,25.0),kTrk10, !expert, image);
  }

  {// V0 related QA
    const Char_t *name[]={
      "hGlobalPromptK0sMass",
      "hGlobalOfflineK0sMass",
      "hGlobalPromptLambda0Lambda0BarMass",
      "hGlobalOfflineLambda0Lambda0BarMass"
    };
    const Char_t *title[]={
      "On-the-fly K0s mass (GeV)",
      "Offline K0s mass (GeV)",
      "On-the-fly Lambda0 + Lambda0Bar mass (GeV)",
      "Offline Lambda0 + Lambda0Bar mass (GeV)"
    };
    Add2ESDsList(new TH1F(name[0],title[0],50,  0.4477,0.5477),kK0on, !expert, image);
    Add2ESDsList(new TH1F(name[1],title[1],50,  0.4477,0.5477),kK0off, !expert, image);
    Add2ESDsList(new TH1F(name[2],title[2],50,  1.0657,1.1657),kL0on, !expert, image);
    Add2ESDsList(new TH1F(name[3],title[3],50,  1.0657,1.1657),kL0off, !expert, image);
  }

  {// PID related QA
  const Char_t *name[]={
    "hGlobalITSdEdx",
    "hGlobalTPCdEdx",
    "hGlobalTOFTrackingvsMeasured",
    "hGlobalTPCdEdxvsMomentum"
   };
    const Char_t *title[]={
      "ITS: dEdx (ADC) for particles with momentum 0.4 - 0.5 (GeV)",
      "TPC: dEdx (ADC) for particles with momentum 0.4 - 0.5 (GeV)",
      "TOF: tracking - measured (ps)",
      "TPC: dEdx (A.U.) vs momentum (GeV)"
     };
    Add2ESDsList(new TH1F(name[0],title[0],50,0.00,200.),kPid0, !expert, image);
    Add2ESDsList(new TH1F(name[1],title[1],50,0.00,100.),kPid1, !expert, image);
    Add2ESDsList(new TH1F(name[2],title[2],50,-3500.,3500.),kPid2, !expert, image);
    Add2ESDsList(new TH2F(name[3],title[3],1500,0.05,15.,700,0.,700.),kPid3,!expert,image);
   }
  {// Multiplicity related QA
    const Char_t *name[]={
      "hGlobalV0AvsITS",
      "hGlobalV0CvsITS"
    };
    const Char_t *title[]={
      "Multiplicity: V0A vs ITS",
      "Multiplicity: V0C vs ITS"
    };
    TH2F *h0=new TH2F(name[0],title[0],41,-0.5,40.5, 33,-0.5,32.5);
    Add2ESDsList(h0,kMlt0, !expert, image);
    TH2F *h1=new TH2F(name[1],title[1],41,-0.5,40.5, 33,-0.5,32.5);
    Add2ESDsList(h1,kMlt1, !expert, image);
  }
  //
  ClonePerTrigClass(AliQAv1::kESDS); // this should be the last line
}

//____________________________________________________________________________
void AliGlobalQADataMaker::MakeRaws(AliRawReader* rawReader)
{
  //Fill prepared histograms with Raw digit properties
  rawReader->Reset() ;
  IncEvCountCycleRaws();
  IncEvCountTotalRaws();
  //
}

//____________________________________________________________________________ 
void AliGlobalQADataMaker::MakeESDs(AliESDEvent * event) {
  //-----------------------------------------------------------
  // This function fills the ESD QA histograms
  // as a part of global QA
  //-----------------------------------------------------------

  const AliESDEvent *esd=event;

  // Event related QA
  const AliESDVertex *vtx=esd->GetPrimaryVertex();
  if (!vtx->GetStatus()) return;

  Double_t xv=vtx->GetX();
  Double_t yv=vtx->GetY();
  Double_t zv=vtx->GetZ();
  FillESDsData(kEvt0,zv);


  Int_t ntrk=esd->GetNumberOfTracks() ; 
  for (Int_t i=0; i<ntrk; i++) {
    const AliESDtrack *track=esd->GetTrack(i);

    // Cluster related QA
    if (track->IsOn(AliESDtrack::kITSrefit)) {
      Int_t n=track->GetITSclusters(0);
      FillESDsData(kClr0,Float_t(n)/6.); //6 is the number of ITS layers
    }

    for (Int_t j=0; j<6; ++j) {
      Int_t idet=0, sts=0;
      Float_t xloc,zloc;
      if (!track->GetITSModuleIndexInfo(j,idet,sts,xloc,zloc)) continue;
      if (j>=2) idet+=240;
      if (j>=4) idet+=260;
      if ((sts==1)||(sts==2)||(sts==4)) FillESDsData(kClr3,idet);  
    }

    if (track->IsOn(AliESDtrack::kTPCrefit)) {
      Int_t n =track->GetTPCNcls();
      Int_t nf=track->GetTPCNclsF();      // number of crossed TPC pad rows
      if (nf>0) {
        Double_t val = n*1.0/nf; 
        FillESDsData(kClr1,val); 
      }
    }

    if (track->IsOn(AliESDtrack::kTRDrefit)) {
      Int_t n=track->GetTRDclusters(0);
      FillESDsData(kClr2,Float_t(n)/(6*24));//(6*24) is the number of TRD time bins
    }

    Double_t p=track->GetP();

    // Track related QA
    if (track->IsOn(AliESDtrack::kTPCrefit)) {
      Float_t dz[2]; 
      track->GetDZ(xv,yv,zv,esd->GetMagneticField(),dz); 
      if ((TMath::Abs(dz[0])<3.) && (TMath::Abs(dz[1])<3.)) { // beam pipe
        Double_t phi=track->Phi();
	FillESDsData(kTrk0,phi);
	Double_t y=track->Eta();
	FillESDsData(kTrk1,y);

        if (TMath::Abs(y)<0.9) {
	  FillESDsData(kTrk2,p);
	  if (track->IsOn(AliESDtrack::kITSrefit)) FillESDsData(kTrk3,p);
	  //if (track->IsOn(AliESDtrack::kTOFout)) FillESDsData(kTrk4,p);
	  if (track->GetTOFsignal()>0) FillESDsData(kTrk4,p);
	}
      }
    }
    const AliExternalTrackParam *tpcTrack=track->GetTPCInnerParam();
    const AliExternalTrackParam *innTrack=track->GetInnerParam();
    if (tpcTrack)
    if (innTrack) {
       Float_t dz[2];
       tpcTrack->GetDZ(xv,yv,zv,esd->GetMagneticField(),dz);
       dz[0]*=10.; // in mm
       if (innTrack->GetZ()  > 0)
       if (innTrack->GetTgl()> 0) { // TPC side A
	 if (tpcTrack->GetSign() > 0) FillESDsData(kTrk7,dz[0]);
	 else                         FillESDsData(kTrk8,dz[0]);
       }
       if (innTrack->GetZ()  < 0)
       if (innTrack->GetTgl()< 0) { // TPC side C
	 if (tpcTrack->GetSign() > 0) FillESDsData(kTrk9,dz[0]);
	 else                         FillESDsData(kTrk10,dz[0]);
       }
    }

    // PID related QA
    if ((p>0.4) && (p<0.5)) {
      if (track->IsOn(AliESDtrack::kITSpid)) {
	Double_t dedx=track->GetITSsignal();
        FillESDsData(kPid0,dedx);
      }
      if (track->IsOn(AliESDtrack::kTPCpid)) {
	Double_t dedx=track->GetTPCsignal();
        FillESDsData(kPid1,dedx);
      }
    }
    if (p>1.0) {
      if (track->IsOn(AliESDtrack::kITSrefit))
      if (track->IsOn(AliESDtrack::kTPCrefit))
      if (track->IsOn(AliESDtrack::kTOFout)) {
         Float_t dz[2];
         track->GetDZ(xv,yv,zv,esd->GetMagneticField(),dz);
         if (dz[1]<3.) {
	   Double_t times[AliPID::kSPECIESC];
	   track->GetIntegratedTimes(times);
	   Double_t tof=track->GetTOFsignal()/*-847055 -1771207*/;
	   FillESDsData(kPid2,times[AliPID::kPion]-tof);
	 }
      }
    }
    const AliExternalTrackParam *par=track->GetInnerParam();
    if (par) {
      Double_t pp=par->GetP();
      Double_t dedx=track->GetTPCsignal();
      FillESDsData(kPid3,pp,dedx);
    }
 
  }

  // Multiplicity related QA
  AliESDVZERO     *mltV0 =esd->GetVZEROData();
  const AliMultiplicity *mltITS=esd->GetMultiplicity();
  if (mltV0)
    if (mltITS) {
       Short_t nv0a=mltV0->GetNbPMV0A();
       Short_t nv0c=mltV0->GetNbPMV0C();
       Int_t   nits=mltITS->GetNumberOfTracklets();
       FillESDsData(kMlt0,nits,nv0a);
       FillESDsData(kMlt1,nits,nv0c);
    }

  // RS
  for (int itr = -1; itr<GetNEventTrigClasses(); itr++) {
    TH1 *tpc = GetMatchingESDsHisto(kTrk2,itr);
    TH1 *its = GetMatchingESDsHisto(kTrk3,itr);
    TH1 *tof = GetMatchingESDsHisto(kTrk4,itr);
    TH1* h5 =  GetMatchingESDsHisto(kTrk5,itr);
    TH1* h6 =  GetMatchingESDsHisto(kTrk6,itr);
    if (h5 && h6 && tpc && its && tof) {
      tpc->Sumw2();
      its->Sumw2();
      tof->Sumw2();
      h5->Divide(its,tpc,1,1.,"b");
      h6->Divide(tof,tpc,1,1.,"b");
    }
  }

  // V0 related QA
  Int_t nV0=esd->GetNumberOfV0s();
  for (Int_t i=0; i<nV0; i++) {
    Double_t mass;
    AliESDv0 v0(*esd->GetV0(i));

    Int_t nidx=TMath::Abs(v0.GetNindex());
    AliESDtrack *ntrack1=esd->GetTrack(nidx);
    if (!ntrack1->IsOn(AliESDtrack::kTPCrefit)) continue;

    Int_t pidx=TMath::Abs(v0.GetPindex());
    AliESDtrack *ptrack1=esd->GetTrack(pidx);
    if (!ptrack1->IsOn(AliESDtrack::kTPCrefit)) continue;

    v0.ChangeMassHypothesis(kK0Short);
    mass=v0.GetEffMass();
    if (v0.GetOnFlyStatus())
      FillESDsData(kK0on,mass);
    else
      FillESDsData(kK0off,mass);

    v0.ChangeMassHypothesis(kLambda0);
    mass=v0.GetEffMass();
    if (v0.GetOnFlyStatus())
      FillESDsData(kL0on,mass);
    else
      FillESDsData(kL0off,mass);

    v0.ChangeMassHypothesis(kLambda0Bar);
    mass=v0.GetEffMass();
    if (v0.GetOnFlyStatus())
      FillESDsData(kL0on,mass);
    else
      FillESDsData(kL0off,mass);
  }
  //
  IncEvCountCycleESDs();
  IncEvCountTotalESDs();
  //
}
 AliGlobalQADataMaker.cxx:1
 AliGlobalQADataMaker.cxx:2
 AliGlobalQADataMaker.cxx:3
 AliGlobalQADataMaker.cxx:4
 AliGlobalQADataMaker.cxx:5
 AliGlobalQADataMaker.cxx:6
 AliGlobalQADataMaker.cxx:7
 AliGlobalQADataMaker.cxx:8
 AliGlobalQADataMaker.cxx:9
 AliGlobalQADataMaker.cxx:10
 AliGlobalQADataMaker.cxx:11
 AliGlobalQADataMaker.cxx:12
 AliGlobalQADataMaker.cxx:13
 AliGlobalQADataMaker.cxx:14
 AliGlobalQADataMaker.cxx:15
 AliGlobalQADataMaker.cxx:16
 AliGlobalQADataMaker.cxx:17
 AliGlobalQADataMaker.cxx:18
 AliGlobalQADataMaker.cxx:19
 AliGlobalQADataMaker.cxx:20
 AliGlobalQADataMaker.cxx:21
 AliGlobalQADataMaker.cxx:22
 AliGlobalQADataMaker.cxx:23
 AliGlobalQADataMaker.cxx:24
 AliGlobalQADataMaker.cxx:25
 AliGlobalQADataMaker.cxx:26
 AliGlobalQADataMaker.cxx:27
 AliGlobalQADataMaker.cxx:28
 AliGlobalQADataMaker.cxx:29
 AliGlobalQADataMaker.cxx:30
 AliGlobalQADataMaker.cxx:31
 AliGlobalQADataMaker.cxx:32
 AliGlobalQADataMaker.cxx:33
 AliGlobalQADataMaker.cxx:34
 AliGlobalQADataMaker.cxx:35
 AliGlobalQADataMaker.cxx:36
 AliGlobalQADataMaker.cxx:37
 AliGlobalQADataMaker.cxx:38
 AliGlobalQADataMaker.cxx:39
 AliGlobalQADataMaker.cxx:40
 AliGlobalQADataMaker.cxx:41
 AliGlobalQADataMaker.cxx:42
 AliGlobalQADataMaker.cxx:43
 AliGlobalQADataMaker.cxx:44
 AliGlobalQADataMaker.cxx:45
 AliGlobalQADataMaker.cxx:46
 AliGlobalQADataMaker.cxx:47
 AliGlobalQADataMaker.cxx:48
 AliGlobalQADataMaker.cxx:49
 AliGlobalQADataMaker.cxx:50
 AliGlobalQADataMaker.cxx:51
 AliGlobalQADataMaker.cxx:52
 AliGlobalQADataMaker.cxx:53
 AliGlobalQADataMaker.cxx:54
 AliGlobalQADataMaker.cxx:55
 AliGlobalQADataMaker.cxx:56
 AliGlobalQADataMaker.cxx:57
 AliGlobalQADataMaker.cxx:58
 AliGlobalQADataMaker.cxx:59
 AliGlobalQADataMaker.cxx:60
 AliGlobalQADataMaker.cxx:61
 AliGlobalQADataMaker.cxx:62
 AliGlobalQADataMaker.cxx:63
 AliGlobalQADataMaker.cxx:64
 AliGlobalQADataMaker.cxx:65
 AliGlobalQADataMaker.cxx:66
 AliGlobalQADataMaker.cxx:67
 AliGlobalQADataMaker.cxx:68
 AliGlobalQADataMaker.cxx:69
 AliGlobalQADataMaker.cxx:70
 AliGlobalQADataMaker.cxx:71
 AliGlobalQADataMaker.cxx:72
 AliGlobalQADataMaker.cxx:73
 AliGlobalQADataMaker.cxx:74
 AliGlobalQADataMaker.cxx:75
 AliGlobalQADataMaker.cxx:76
 AliGlobalQADataMaker.cxx:77
 AliGlobalQADataMaker.cxx:78
 AliGlobalQADataMaker.cxx:79
 AliGlobalQADataMaker.cxx:80
 AliGlobalQADataMaker.cxx:81
 AliGlobalQADataMaker.cxx:82
 AliGlobalQADataMaker.cxx:83
 AliGlobalQADataMaker.cxx:84
 AliGlobalQADataMaker.cxx:85
 AliGlobalQADataMaker.cxx:86
 AliGlobalQADataMaker.cxx:87
 AliGlobalQADataMaker.cxx:88
 AliGlobalQADataMaker.cxx:89
 AliGlobalQADataMaker.cxx:90
 AliGlobalQADataMaker.cxx:91
 AliGlobalQADataMaker.cxx:92
 AliGlobalQADataMaker.cxx:93
 AliGlobalQADataMaker.cxx:94
 AliGlobalQADataMaker.cxx:95
 AliGlobalQADataMaker.cxx:96
 AliGlobalQADataMaker.cxx:97
 AliGlobalQADataMaker.cxx:98
 AliGlobalQADataMaker.cxx:99
 AliGlobalQADataMaker.cxx:100
 AliGlobalQADataMaker.cxx:101
 AliGlobalQADataMaker.cxx:102
 AliGlobalQADataMaker.cxx:103
 AliGlobalQADataMaker.cxx:104
 AliGlobalQADataMaker.cxx:105
 AliGlobalQADataMaker.cxx:106
 AliGlobalQADataMaker.cxx:107
 AliGlobalQADataMaker.cxx:108
 AliGlobalQADataMaker.cxx:109
 AliGlobalQADataMaker.cxx:110
 AliGlobalQADataMaker.cxx:111
 AliGlobalQADataMaker.cxx:112
 AliGlobalQADataMaker.cxx:113
 AliGlobalQADataMaker.cxx:114
 AliGlobalQADataMaker.cxx:115
 AliGlobalQADataMaker.cxx:116
 AliGlobalQADataMaker.cxx:117
 AliGlobalQADataMaker.cxx:118
 AliGlobalQADataMaker.cxx:119
 AliGlobalQADataMaker.cxx:120
 AliGlobalQADataMaker.cxx:121
 AliGlobalQADataMaker.cxx:122
 AliGlobalQADataMaker.cxx:123
 AliGlobalQADataMaker.cxx:124
 AliGlobalQADataMaker.cxx:125
 AliGlobalQADataMaker.cxx:126
 AliGlobalQADataMaker.cxx:127
 AliGlobalQADataMaker.cxx:128
 AliGlobalQADataMaker.cxx:129
 AliGlobalQADataMaker.cxx:130
 AliGlobalQADataMaker.cxx:131
 AliGlobalQADataMaker.cxx:132
 AliGlobalQADataMaker.cxx:133
 AliGlobalQADataMaker.cxx:134
 AliGlobalQADataMaker.cxx:135
 AliGlobalQADataMaker.cxx:136
 AliGlobalQADataMaker.cxx:137
 AliGlobalQADataMaker.cxx:138
 AliGlobalQADataMaker.cxx:139
 AliGlobalQADataMaker.cxx:140
 AliGlobalQADataMaker.cxx:141
 AliGlobalQADataMaker.cxx:142
 AliGlobalQADataMaker.cxx:143
 AliGlobalQADataMaker.cxx:144
 AliGlobalQADataMaker.cxx:145
 AliGlobalQADataMaker.cxx:146
 AliGlobalQADataMaker.cxx:147
 AliGlobalQADataMaker.cxx:148
 AliGlobalQADataMaker.cxx:149
 AliGlobalQADataMaker.cxx:150
 AliGlobalQADataMaker.cxx:151
 AliGlobalQADataMaker.cxx:152
 AliGlobalQADataMaker.cxx:153
 AliGlobalQADataMaker.cxx:154
 AliGlobalQADataMaker.cxx:155
 AliGlobalQADataMaker.cxx:156
 AliGlobalQADataMaker.cxx:157
 AliGlobalQADataMaker.cxx:158
 AliGlobalQADataMaker.cxx:159
 AliGlobalQADataMaker.cxx:160
 AliGlobalQADataMaker.cxx:161
 AliGlobalQADataMaker.cxx:162
 AliGlobalQADataMaker.cxx:163
 AliGlobalQADataMaker.cxx:164
 AliGlobalQADataMaker.cxx:165
 AliGlobalQADataMaker.cxx:166
 AliGlobalQADataMaker.cxx:167
 AliGlobalQADataMaker.cxx:168
 AliGlobalQADataMaker.cxx:169
 AliGlobalQADataMaker.cxx:170
 AliGlobalQADataMaker.cxx:171
 AliGlobalQADataMaker.cxx:172
 AliGlobalQADataMaker.cxx:173
 AliGlobalQADataMaker.cxx:174
 AliGlobalQADataMaker.cxx:175
 AliGlobalQADataMaker.cxx:176
 AliGlobalQADataMaker.cxx:177
 AliGlobalQADataMaker.cxx:178
 AliGlobalQADataMaker.cxx:179
 AliGlobalQADataMaker.cxx:180
 AliGlobalQADataMaker.cxx:181
 AliGlobalQADataMaker.cxx:182
 AliGlobalQADataMaker.cxx:183
 AliGlobalQADataMaker.cxx:184
 AliGlobalQADataMaker.cxx:185
 AliGlobalQADataMaker.cxx:186
 AliGlobalQADataMaker.cxx:187
 AliGlobalQADataMaker.cxx:188
 AliGlobalQADataMaker.cxx:189
 AliGlobalQADataMaker.cxx:190
 AliGlobalQADataMaker.cxx:191
 AliGlobalQADataMaker.cxx:192
 AliGlobalQADataMaker.cxx:193
 AliGlobalQADataMaker.cxx:194
 AliGlobalQADataMaker.cxx:195
 AliGlobalQADataMaker.cxx:196
 AliGlobalQADataMaker.cxx:197
 AliGlobalQADataMaker.cxx:198
 AliGlobalQADataMaker.cxx:199
 AliGlobalQADataMaker.cxx:200
 AliGlobalQADataMaker.cxx:201
 AliGlobalQADataMaker.cxx:202
 AliGlobalQADataMaker.cxx:203
 AliGlobalQADataMaker.cxx:204
 AliGlobalQADataMaker.cxx:205
 AliGlobalQADataMaker.cxx:206
 AliGlobalQADataMaker.cxx:207
 AliGlobalQADataMaker.cxx:208
 AliGlobalQADataMaker.cxx:209
 AliGlobalQADataMaker.cxx:210
 AliGlobalQADataMaker.cxx:211
 AliGlobalQADataMaker.cxx:212
 AliGlobalQADataMaker.cxx:213
 AliGlobalQADataMaker.cxx:214
 AliGlobalQADataMaker.cxx:215
 AliGlobalQADataMaker.cxx:216
 AliGlobalQADataMaker.cxx:217
 AliGlobalQADataMaker.cxx:218
 AliGlobalQADataMaker.cxx:219
 AliGlobalQADataMaker.cxx:220
 AliGlobalQADataMaker.cxx:221
 AliGlobalQADataMaker.cxx:222
 AliGlobalQADataMaker.cxx:223
 AliGlobalQADataMaker.cxx:224
 AliGlobalQADataMaker.cxx:225
 AliGlobalQADataMaker.cxx:226
 AliGlobalQADataMaker.cxx:227
 AliGlobalQADataMaker.cxx:228
 AliGlobalQADataMaker.cxx:229
 AliGlobalQADataMaker.cxx:230
 AliGlobalQADataMaker.cxx:231
 AliGlobalQADataMaker.cxx:232
 AliGlobalQADataMaker.cxx:233
 AliGlobalQADataMaker.cxx:234
 AliGlobalQADataMaker.cxx:235
 AliGlobalQADataMaker.cxx:236
 AliGlobalQADataMaker.cxx:237
 AliGlobalQADataMaker.cxx:238
 AliGlobalQADataMaker.cxx:239
 AliGlobalQADataMaker.cxx:240
 AliGlobalQADataMaker.cxx:241
 AliGlobalQADataMaker.cxx:242
 AliGlobalQADataMaker.cxx:243
 AliGlobalQADataMaker.cxx:244
 AliGlobalQADataMaker.cxx:245
 AliGlobalQADataMaker.cxx:246
 AliGlobalQADataMaker.cxx:247
 AliGlobalQADataMaker.cxx:248
 AliGlobalQADataMaker.cxx:249
 AliGlobalQADataMaker.cxx:250
 AliGlobalQADataMaker.cxx:251
 AliGlobalQADataMaker.cxx:252
 AliGlobalQADataMaker.cxx:253
 AliGlobalQADataMaker.cxx:254
 AliGlobalQADataMaker.cxx:255
 AliGlobalQADataMaker.cxx:256
 AliGlobalQADataMaker.cxx:257
 AliGlobalQADataMaker.cxx:258
 AliGlobalQADataMaker.cxx:259
 AliGlobalQADataMaker.cxx:260
 AliGlobalQADataMaker.cxx:261
 AliGlobalQADataMaker.cxx:262
 AliGlobalQADataMaker.cxx:263
 AliGlobalQADataMaker.cxx:264
 AliGlobalQADataMaker.cxx:265
 AliGlobalQADataMaker.cxx:266
 AliGlobalQADataMaker.cxx:267
 AliGlobalQADataMaker.cxx:268
 AliGlobalQADataMaker.cxx:269
 AliGlobalQADataMaker.cxx:270
 AliGlobalQADataMaker.cxx:271
 AliGlobalQADataMaker.cxx:272
 AliGlobalQADataMaker.cxx:273
 AliGlobalQADataMaker.cxx:274
 AliGlobalQADataMaker.cxx:275
 AliGlobalQADataMaker.cxx:276
 AliGlobalQADataMaker.cxx:277
 AliGlobalQADataMaker.cxx:278
 AliGlobalQADataMaker.cxx:279
 AliGlobalQADataMaker.cxx:280
 AliGlobalQADataMaker.cxx:281
 AliGlobalQADataMaker.cxx:282
 AliGlobalQADataMaker.cxx:283
 AliGlobalQADataMaker.cxx:284
 AliGlobalQADataMaker.cxx:285
 AliGlobalQADataMaker.cxx:286
 AliGlobalQADataMaker.cxx:287
 AliGlobalQADataMaker.cxx:288
 AliGlobalQADataMaker.cxx:289
 AliGlobalQADataMaker.cxx:290
 AliGlobalQADataMaker.cxx:291
 AliGlobalQADataMaker.cxx:292
 AliGlobalQADataMaker.cxx:293
 AliGlobalQADataMaker.cxx:294
 AliGlobalQADataMaker.cxx:295
 AliGlobalQADataMaker.cxx:296
 AliGlobalQADataMaker.cxx:297
 AliGlobalQADataMaker.cxx:298
 AliGlobalQADataMaker.cxx:299
 AliGlobalQADataMaker.cxx:300
 AliGlobalQADataMaker.cxx:301
 AliGlobalQADataMaker.cxx:302
 AliGlobalQADataMaker.cxx:303
 AliGlobalQADataMaker.cxx:304
 AliGlobalQADataMaker.cxx:305
 AliGlobalQADataMaker.cxx:306
 AliGlobalQADataMaker.cxx:307
 AliGlobalQADataMaker.cxx:308
 AliGlobalQADataMaker.cxx:309
 AliGlobalQADataMaker.cxx:310
 AliGlobalQADataMaker.cxx:311
 AliGlobalQADataMaker.cxx:312
 AliGlobalQADataMaker.cxx:313
 AliGlobalQADataMaker.cxx:314
 AliGlobalQADataMaker.cxx:315
 AliGlobalQADataMaker.cxx:316
 AliGlobalQADataMaker.cxx:317
 AliGlobalQADataMaker.cxx:318
 AliGlobalQADataMaker.cxx:319
 AliGlobalQADataMaker.cxx:320
 AliGlobalQADataMaker.cxx:321
 AliGlobalQADataMaker.cxx:322
 AliGlobalQADataMaker.cxx:323
 AliGlobalQADataMaker.cxx:324
 AliGlobalQADataMaker.cxx:325
 AliGlobalQADataMaker.cxx:326
 AliGlobalQADataMaker.cxx:327
 AliGlobalQADataMaker.cxx:328
 AliGlobalQADataMaker.cxx:329
 AliGlobalQADataMaker.cxx:330
 AliGlobalQADataMaker.cxx:331
 AliGlobalQADataMaker.cxx:332
 AliGlobalQADataMaker.cxx:333
 AliGlobalQADataMaker.cxx:334
 AliGlobalQADataMaker.cxx:335
 AliGlobalQADataMaker.cxx:336
 AliGlobalQADataMaker.cxx:337
 AliGlobalQADataMaker.cxx:338
 AliGlobalQADataMaker.cxx:339
 AliGlobalQADataMaker.cxx:340
 AliGlobalQADataMaker.cxx:341
 AliGlobalQADataMaker.cxx:342
 AliGlobalQADataMaker.cxx:343
 AliGlobalQADataMaker.cxx:344
 AliGlobalQADataMaker.cxx:345
 AliGlobalQADataMaker.cxx:346
 AliGlobalQADataMaker.cxx:347
 AliGlobalQADataMaker.cxx:348
 AliGlobalQADataMaker.cxx:349
 AliGlobalQADataMaker.cxx:350
 AliGlobalQADataMaker.cxx:351
 AliGlobalQADataMaker.cxx:352
 AliGlobalQADataMaker.cxx:353
 AliGlobalQADataMaker.cxx:354
 AliGlobalQADataMaker.cxx:355
 AliGlobalQADataMaker.cxx:356
 AliGlobalQADataMaker.cxx:357
 AliGlobalQADataMaker.cxx:358
 AliGlobalQADataMaker.cxx:359
 AliGlobalQADataMaker.cxx:360
 AliGlobalQADataMaker.cxx:361
 AliGlobalQADataMaker.cxx:362
 AliGlobalQADataMaker.cxx:363
 AliGlobalQADataMaker.cxx:364
 AliGlobalQADataMaker.cxx:365
 AliGlobalQADataMaker.cxx:366
 AliGlobalQADataMaker.cxx:367
 AliGlobalQADataMaker.cxx:368
 AliGlobalQADataMaker.cxx:369
 AliGlobalQADataMaker.cxx:370
 AliGlobalQADataMaker.cxx:371
 AliGlobalQADataMaker.cxx:372
 AliGlobalQADataMaker.cxx:373
 AliGlobalQADataMaker.cxx:374
 AliGlobalQADataMaker.cxx:375
 AliGlobalQADataMaker.cxx:376
 AliGlobalQADataMaker.cxx:377
 AliGlobalQADataMaker.cxx:378
 AliGlobalQADataMaker.cxx:379
 AliGlobalQADataMaker.cxx:380
 AliGlobalQADataMaker.cxx:381
 AliGlobalQADataMaker.cxx:382
 AliGlobalQADataMaker.cxx:383
 AliGlobalQADataMaker.cxx:384
 AliGlobalQADataMaker.cxx:385
 AliGlobalQADataMaker.cxx:386
 AliGlobalQADataMaker.cxx:387
 AliGlobalQADataMaker.cxx:388
 AliGlobalQADataMaker.cxx:389
 AliGlobalQADataMaker.cxx:390
 AliGlobalQADataMaker.cxx:391
 AliGlobalQADataMaker.cxx:392
 AliGlobalQADataMaker.cxx:393
 AliGlobalQADataMaker.cxx:394
 AliGlobalQADataMaker.cxx:395
 AliGlobalQADataMaker.cxx:396
 AliGlobalQADataMaker.cxx:397
 AliGlobalQADataMaker.cxx:398
 AliGlobalQADataMaker.cxx:399
 AliGlobalQADataMaker.cxx:400
 AliGlobalQADataMaker.cxx:401
 AliGlobalQADataMaker.cxx:402
 AliGlobalQADataMaker.cxx:403
 AliGlobalQADataMaker.cxx:404
 AliGlobalQADataMaker.cxx:405
 AliGlobalQADataMaker.cxx:406
 AliGlobalQADataMaker.cxx:407
 AliGlobalQADataMaker.cxx:408
 AliGlobalQADataMaker.cxx:409
 AliGlobalQADataMaker.cxx:410
 AliGlobalQADataMaker.cxx:411
 AliGlobalQADataMaker.cxx:412
 AliGlobalQADataMaker.cxx:413
 AliGlobalQADataMaker.cxx:414
 AliGlobalQADataMaker.cxx:415
 AliGlobalQADataMaker.cxx:416
 AliGlobalQADataMaker.cxx:417
 AliGlobalQADataMaker.cxx:418
 AliGlobalQADataMaker.cxx:419
 AliGlobalQADataMaker.cxx:420
 AliGlobalQADataMaker.cxx:421
 AliGlobalQADataMaker.cxx:422
 AliGlobalQADataMaker.cxx:423
 AliGlobalQADataMaker.cxx:424
 AliGlobalQADataMaker.cxx:425
 AliGlobalQADataMaker.cxx:426
 AliGlobalQADataMaker.cxx:427
 AliGlobalQADataMaker.cxx:428
 AliGlobalQADataMaker.cxx:429
 AliGlobalQADataMaker.cxx:430
 AliGlobalQADataMaker.cxx:431
 AliGlobalQADataMaker.cxx:432
 AliGlobalQADataMaker.cxx:433
 AliGlobalQADataMaker.cxx:434
 AliGlobalQADataMaker.cxx:435
 AliGlobalQADataMaker.cxx:436
 AliGlobalQADataMaker.cxx:437
 AliGlobalQADataMaker.cxx:438
 AliGlobalQADataMaker.cxx:439
 AliGlobalQADataMaker.cxx:440
 AliGlobalQADataMaker.cxx:441
 AliGlobalQADataMaker.cxx:442
 AliGlobalQADataMaker.cxx:443
 AliGlobalQADataMaker.cxx:444
 AliGlobalQADataMaker.cxx:445
 AliGlobalQADataMaker.cxx:446
 AliGlobalQADataMaker.cxx:447
 AliGlobalQADataMaker.cxx:448
 AliGlobalQADataMaker.cxx:449
 AliGlobalQADataMaker.cxx:450
 AliGlobalQADataMaker.cxx:451
 AliGlobalQADataMaker.cxx:452
 AliGlobalQADataMaker.cxx:453
 AliGlobalQADataMaker.cxx:454
 AliGlobalQADataMaker.cxx:455
 AliGlobalQADataMaker.cxx:456
 AliGlobalQADataMaker.cxx:457
 AliGlobalQADataMaker.cxx:458
 AliGlobalQADataMaker.cxx:459
 AliGlobalQADataMaker.cxx:460
 AliGlobalQADataMaker.cxx:461
 AliGlobalQADataMaker.cxx:462
 AliGlobalQADataMaker.cxx:463
 AliGlobalQADataMaker.cxx:464
 AliGlobalQADataMaker.cxx:465
 AliGlobalQADataMaker.cxx:466
 AliGlobalQADataMaker.cxx:467
 AliGlobalQADataMaker.cxx:468
 AliGlobalQADataMaker.cxx:469
 AliGlobalQADataMaker.cxx:470
 AliGlobalQADataMaker.cxx:471
 AliGlobalQADataMaker.cxx:472
 AliGlobalQADataMaker.cxx:473
 AliGlobalQADataMaker.cxx:474
 AliGlobalQADataMaker.cxx:475
 AliGlobalQADataMaker.cxx:476
 AliGlobalQADataMaker.cxx:477
 AliGlobalQADataMaker.cxx:478
 AliGlobalQADataMaker.cxx:479
 AliGlobalQADataMaker.cxx:480
 AliGlobalQADataMaker.cxx:481
 AliGlobalQADataMaker.cxx:482
 AliGlobalQADataMaker.cxx:483
 AliGlobalQADataMaker.cxx:484
 AliGlobalQADataMaker.cxx:485
 AliGlobalQADataMaker.cxx:486
 AliGlobalQADataMaker.cxx:487
 AliGlobalQADataMaker.cxx:488
 AliGlobalQADataMaker.cxx:489
 AliGlobalQADataMaker.cxx:490
 AliGlobalQADataMaker.cxx:491
 AliGlobalQADataMaker.cxx:492
 AliGlobalQADataMaker.cxx:493
 AliGlobalQADataMaker.cxx:494
 AliGlobalQADataMaker.cxx:495
 AliGlobalQADataMaker.cxx:496
 AliGlobalQADataMaker.cxx:497
 AliGlobalQADataMaker.cxx:498
 AliGlobalQADataMaker.cxx:499
 AliGlobalQADataMaker.cxx:500
 AliGlobalQADataMaker.cxx:501
 AliGlobalQADataMaker.cxx:502
 AliGlobalQADataMaker.cxx:503
 AliGlobalQADataMaker.cxx:504
 AliGlobalQADataMaker.cxx:505
 AliGlobalQADataMaker.cxx:506
 AliGlobalQADataMaker.cxx:507
 AliGlobalQADataMaker.cxx:508
 AliGlobalQADataMaker.cxx:509
 AliGlobalQADataMaker.cxx:510
 AliGlobalQADataMaker.cxx:511
 AliGlobalQADataMaker.cxx:512
 AliGlobalQADataMaker.cxx:513
 AliGlobalQADataMaker.cxx:514
 AliGlobalQADataMaker.cxx:515
 AliGlobalQADataMaker.cxx:516
 AliGlobalQADataMaker.cxx:517
 AliGlobalQADataMaker.cxx:518
 AliGlobalQADataMaker.cxx:519
 AliGlobalQADataMaker.cxx:520
 AliGlobalQADataMaker.cxx:521
 AliGlobalQADataMaker.cxx:522
 AliGlobalQADataMaker.cxx:523
 AliGlobalQADataMaker.cxx:524
 AliGlobalQADataMaker.cxx:525
 AliGlobalQADataMaker.cxx:526