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.                  *
 **************************************************************************/

//==============================================================================
// AliHMPIDTaskQA - Class representing a quality check tool of HMPID 
// A set of histograms is created.
//==============================================================================


#ifndef AliHMPIDTASKQA_CXX
#define AliHMPIDTASKQA_CXX


#include "TH1.h"
#include "TH2.h"
#include "TFile.h"
#include "TCanvas.h"
#include "TGraphErrors.h"
#include "AliPID.h"
#include "AliVEvent.h"
#include "AliVParticle.h"
#include "AliVTrack.h"
#include "AliESDtrackCuts.h"
#include "AliAnalysisFilter.h"
#include "AliAnalysisManager.h"
#include "AliESDInputHandler.h"
#include "AliMCEventHandler.h"
#include "AliMCEvent.h"
#include "AliESDtrack.h"
#include "AliPID.h"
#include "AliLog.h"
#include "AliHMPIDTaskQA.h"

ClassImp(AliHMPIDTaskQA)

//__________________________________________________________________________
AliHMPIDTaskQA::AliHMPIDTaskQA() :
  fESD(0x0),fMC(0x0),fUseMC(kTRUE),
  fHmpHistList(0x0),
  fHmpNevents(0x0),
  fZvertex(0x0),
  fTrackCuts(0x0),
  fTrackFilter(0x0),
  fTree(0x0)
{
  //
  //Default ctor
  //
  for (Int_t i=0; i<23; i++) fVar[i]=0;
}

//___________________________________________________________________________
AliHMPIDTaskQA::AliHMPIDTaskQA(const Char_t* name) :
  AliAnalysisTaskSE(name),
  fESD(0x0), fMC(0x0), fUseMC(kTRUE),
  fHmpHistList(0x0),
  fHmpNevents(0x0),
  fZvertex(0x0),
  fTrackCuts(0x0),
  fTrackFilter(0x0),
  fTree(0x0)
{
  //
  // Constructor. Initialization of Inputs and Outputs
  //
  for (Int_t i=0; i<23; i++) fVar[i]=0;

  DefineOutput(1,TList::Class());
  DefineOutput(2,TTree::Class());
}

//___________________________________________________________________________
AliHMPIDTaskQA& AliHMPIDTaskQA::operator=(const AliHMPIDTaskQA& c)
{
  //
  // Assignment operator
  //
  if (this!=&c) {
    AliAnalysisTaskSE::operator=(c);
    fESD             = c.fESD;
    fMC              = c.fMC;
    fUseMC           = c.fUseMC;
    fHmpHistList     = c.fHmpHistList;
    fHmpNevents      = c.fHmpNevents;
    fZvertex         = c.fZvertex;
    fTrackCuts       = c.fTrackCuts;
    fTrackFilter     = c.fTrackFilter;
    fTree            = c.fTree;
    for (Int_t i=0; i<23; i++) fVar[i]=c.fVar[i];
  }
  return *this;
}

//___________________________________________________________________________
AliHMPIDTaskQA::AliHMPIDTaskQA(const AliHMPIDTaskQA& c) :
  AliAnalysisTaskSE(c),
  fESD(c.fESD),fMC(c.fMC),fUseMC(c.fUseMC),
  fHmpHistList(c.fHmpHistList),
  fHmpNevents(c.fHmpNevents),
  fZvertex(c.fZvertex),
  fTrackCuts(c.fTrackCuts),
  fTrackFilter(c.fTrackFilter),
  fTree(c.fTree)
{
  //
  // Copy Constructor
  //
  for (Int_t i=0; i<23; i++) fVar[i]=c.fVar[i];
}
 
//___________________________________________________________________________
AliHMPIDTaskQA::~AliHMPIDTaskQA() {
  //
  //destructor
  //
  Info("~AliHMPIDTaskQA","Calling Destructor");
  if (fHmpHistList && !AliAnalysisManager::GetAnalysisManager()->IsProofMode()) delete fHmpHistList;
}

//___________________________________________________________________________
void AliHMPIDTaskQA::ConnectInputData(Option_t *)
{
  // Connect ESD here

  AliESDInputHandler *esdH = dynamic_cast<AliESDInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
  if (!esdH) {
    AliDebug(2,Form("ERROR: Could not get ESDInputHandler"));
  } else
    fESD = esdH->GetEvent();

  if (fUseMC){
    // Connect MC
    AliMCEventHandler *mcH = dynamic_cast<AliMCEventHandler*> (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
    if (!mcH) {
      AliDebug(2,Form("ERROR: Could not get MCEventHandler"));
      fUseMC = kFALSE;
    } else
      fMC = mcH->MCEvent();
      if (!fMC) AliDebug(2,Form("ERROR: Could not get MCEvent"));
  }
  
  fTrackCuts = new AliESDtrackCuts("fTrackCuts", "Standard");
  fTrackCuts->SetAcceptKinkDaughters(kFALSE);
  fTrackCuts->SetMinNClustersTPC(70);  // changed default value 80 -> 70 (mtangaro)
  fTrackCuts->SetMaxChi2PerClusterTPC(4);
  fTrackCuts->SetMaxDCAToVertexXY(3);
  fTrackCuts->SetMaxDCAToVertexZ(3);
  fTrackCuts->SetRequireTPCRefit(kTRUE);
  fTrackCuts->SetRequireITSRefit(kTRUE);
  fTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
  
  fTrackFilter = new AliAnalysisFilter("trackFilter");
  fTrackFilter->AddCuts(fTrackCuts);   
    
}
//***************************************************************************************************************************************************************************
void AliHMPIDTaskQA::UserExec(Option_t *)
{
  
  fHmpNevents->Fill(0);

  const AliESDVertex *vertex = fESD->GetPrimaryVertexTracks();
  
  if(!vertex || !vertex->GetStatus() || vertex->GetNContributors()<1) {
    
    // SPD vertex
    vertex = fESD->GetPrimaryVertexSPD();
    if(!vertex) return;
    if(!vertex->GetStatus()) return;
    if(vertex->GetNContributors()<1) return; // no good vertex, skip event
    
  }
  
  fHmpNevents->Fill(1);
  
  Double_t vtxPos[3] = {999, 999, 999};
  if(vertex) vertex->GetXYZ(vtxPos);
  fZvertex->Fill(vtxPos[2]);

  // vertex cut
  if (TMath::Abs(vtxPos[2]) > 10.) return;
  
  AliESDtrack *track = 0;

  Double_t ktol = 0.001;

  //
  // Main loop function, executed on Event basis
  //
  for (Int_t iTrack = 0; iTrack<fESD->GetNumberOfTracks(); iTrack++) {

    track = fESD->GetTrack(iTrack);
    if(!track) continue;
    
    // pT min
    if ( track->Pt() < 0.2 ) continue;
    
    // TPC clust
    if( track->GetNcls(1) < 70 ) continue;

    // DCA cut
    Float_t b[2];
    Float_t bCov[3];
    track->GetImpactParameters(b,bCov);  
    if( TMath::Sqrt(b[0]*b[0] + b[1]*b[1]) > 2 ) continue;
    
    // ITS-TPC refit
    if( !track->IsOn(AliESDtrack::kITSrefit) ) continue;
    if( !track->IsOn(AliESDtrack::kTPCrefit) ) continue;
    
    //HMPID cuts 
    
    if(Equal(track->GetHMPIDsignal(),-20.,ktol)) continue;
    if(track->GetHMPIDcluIdx() < 0) continue;

    Int_t q, nph;
    Float_t x, y;
    Float_t xpc, ypc, th, ph;
    track->GetHMPIDmip(x,y,q,nph);
    track->GetHMPIDtrk(xpc,ypc,th,ph);
    
    if(Equal(x,0.,ktol) && Equal(y,0.,ktol) && Equal(xpc,0.,ktol) && Equal(ypc,0.,ktol)) continue;

    Double_t pHmp[3] = {0}, pHmp3 = 0;
    if (track->GetOuterHmpPxPyPz(pHmp)) pHmp3 = TMath::Sqrt(pHmp[0]*pHmp[0]+pHmp[1]*pHmp[1]+pHmp[2]*pHmp[2]);
    
    fVar[0] = track->GetHMPIDcluIdx()/1000000;
    fVar[1] = pHmp3;
    fVar[2] = (Float_t)track->P();
    fVar[3] = xpc;
    fVar[4] = ypc;
    fVar[5] = x;
    fVar[6] = y;
    fVar[7] = (Float_t)track->GetHMPIDsignal();
    fVar[8] = q;
    fVar[9] = th;
    fVar[10] = ph;
    fVar[11] = (Float_t)track->GetSign();
    fVar[12] = (Float_t)nph;
    fVar[13] = track->GetHMPIDcluIdx()%1000000/1000; // cluster size
    fVar[14] = (Float_t)track->Eta();
    fVar[15] = (Float_t)track->Phi();
    fVar[16] = (Float_t)pHmp[0];
    fVar[17] = (Float_t)pHmp[1];
    fVar[18] = (Float_t)pHmp[2];
    fVar[19] = (Float_t)track->Px();
    fVar[20] = (Float_t)track->Py();
    fVar[21] = (Float_t)track->Pz();
    fVar[22] = (Float_t)track->GetHMPIDchi2();
       
    fTree->Fill();
   
  }//track loop

  /* PostData(0) is taken care of by AliAnalysisTaskSE */
  PostData(1,fHmpHistList);
  PostData(2,fTree);
}
//___________________________________________________________________________
void AliHMPIDTaskQA::Terminate(Option_t*)
{
  // The Terminate() function is the last function to be called during
  // a query. It always runs on the client, it can be used to present
  // the results graphically or save the results to file.

  Info("Terminate"," ");

  if (!fUseMC) return;

  fHmpHistList = dynamic_cast<TList*> (GetOutputData(1));

  if (!fHmpHistList) {
    AliError("Histogram List is not available");
    return;
  }


  AliAnalysisTaskSE::Terminate();

}
//___________________________________________________________________________
void AliHMPIDTaskQA::UserCreateOutputObjects() {
  //
  //HERE ONE CAN CREATE OUTPUT OBJECTS
  //TO BE SET BEFORE THE EXECUTION OF THE TASK
  //

  //slot #1
//   OpenFile(1);
   fHmpHistList = new TList();
   fHmpHistList->SetOwner();

   fHmpNevents = new TH1F("fHmpNevents","Number of events",2,0,2);
   fHmpHistList->Add(fHmpNevents);

   fZvertex = new TH1F("fZvertex","Z primary vertex distribution",4000,-20,20);
   fHmpHistList->Add(fZvertex);
   
//   OpenFile(2);
   fTree = new TTree("Tree","Tree with data");
   fTree->Branch("Chamber",&fVar[0]);
   fTree->Branch("pHmp3",&fVar[1]);
   fTree->Branch("P",&fVar[2]);
   fTree->Branch("Xpc",&fVar[3]);
   fTree->Branch("Ypc",&fVar[4]);
   fTree->Branch("X",&fVar[5]);
   fTree->Branch("Y",&fVar[6]);
   fTree->Branch("HMPIDsignal",&fVar[7]);
   fTree->Branch("Charge",&fVar[8]);
   fTree->Branch("Theta",&fVar[9]);
   fTree->Branch("Phi",&fVar[10]);
   fTree->Branch("Sign",&fVar[11]);
   fTree->Branch("NumPhotons",&fVar[12]);
   fTree->Branch("ClustSize",&fVar[13]);
   fTree->Branch("Eta",&fVar[14]);
   fTree->Branch("PhiTrack",&fVar[15]);
   fTree->Branch("pHmpX",&fVar[16]);
   fTree->Branch("pHmpY",&fVar[17]);
   fTree->Branch("pHmpZ",&fVar[18]);
   fTree->Branch("Px",&fVar[19]);
   fTree->Branch("Py",&fVar[20]);
   fTree->Branch("Pz",&fVar[21]);
   fTree->Branch("HmpSigma",&fVar[22]);
   
   PostData(1,fHmpHistList);
   PostData(2,fTree);
}

//____________________________________________________________________________________________________________________________________
Bool_t AliHMPIDTaskQA::Equal(Double_t x, Double_t y, Double_t tolerance)
{
 return abs(x - y) <= tolerance ;
}
   
#endif
 AliHMPIDTaskQA.cxx:1
 AliHMPIDTaskQA.cxx:2
 AliHMPIDTaskQA.cxx:3
 AliHMPIDTaskQA.cxx:4
 AliHMPIDTaskQA.cxx:5
 AliHMPIDTaskQA.cxx:6
 AliHMPIDTaskQA.cxx:7
 AliHMPIDTaskQA.cxx:8
 AliHMPIDTaskQA.cxx:9
 AliHMPIDTaskQA.cxx:10
 AliHMPIDTaskQA.cxx:11
 AliHMPIDTaskQA.cxx:12
 AliHMPIDTaskQA.cxx:13
 AliHMPIDTaskQA.cxx:14
 AliHMPIDTaskQA.cxx:15
 AliHMPIDTaskQA.cxx:16
 AliHMPIDTaskQA.cxx:17
 AliHMPIDTaskQA.cxx:18
 AliHMPIDTaskQA.cxx:19
 AliHMPIDTaskQA.cxx:20
 AliHMPIDTaskQA.cxx:21
 AliHMPIDTaskQA.cxx:22
 AliHMPIDTaskQA.cxx:23
 AliHMPIDTaskQA.cxx:24
 AliHMPIDTaskQA.cxx:25
 AliHMPIDTaskQA.cxx:26
 AliHMPIDTaskQA.cxx:27
 AliHMPIDTaskQA.cxx:28
 AliHMPIDTaskQA.cxx:29
 AliHMPIDTaskQA.cxx:30
 AliHMPIDTaskQA.cxx:31
 AliHMPIDTaskQA.cxx:32
 AliHMPIDTaskQA.cxx:33
 AliHMPIDTaskQA.cxx:34
 AliHMPIDTaskQA.cxx:35
 AliHMPIDTaskQA.cxx:36
 AliHMPIDTaskQA.cxx:37
 AliHMPIDTaskQA.cxx:38
 AliHMPIDTaskQA.cxx:39
 AliHMPIDTaskQA.cxx:40
 AliHMPIDTaskQA.cxx:41
 AliHMPIDTaskQA.cxx:42
 AliHMPIDTaskQA.cxx:43
 AliHMPIDTaskQA.cxx:44
 AliHMPIDTaskQA.cxx:45
 AliHMPIDTaskQA.cxx:46
 AliHMPIDTaskQA.cxx:47
 AliHMPIDTaskQA.cxx:48
 AliHMPIDTaskQA.cxx:49
 AliHMPIDTaskQA.cxx:50
 AliHMPIDTaskQA.cxx:51
 AliHMPIDTaskQA.cxx:52
 AliHMPIDTaskQA.cxx:53
 AliHMPIDTaskQA.cxx:54
 AliHMPIDTaskQA.cxx:55
 AliHMPIDTaskQA.cxx:56
 AliHMPIDTaskQA.cxx:57
 AliHMPIDTaskQA.cxx:58
 AliHMPIDTaskQA.cxx:59
 AliHMPIDTaskQA.cxx:60
 AliHMPIDTaskQA.cxx:61
 AliHMPIDTaskQA.cxx:62
 AliHMPIDTaskQA.cxx:63
 AliHMPIDTaskQA.cxx:64
 AliHMPIDTaskQA.cxx:65
 AliHMPIDTaskQA.cxx:66
 AliHMPIDTaskQA.cxx:67
 AliHMPIDTaskQA.cxx:68
 AliHMPIDTaskQA.cxx:69
 AliHMPIDTaskQA.cxx:70
 AliHMPIDTaskQA.cxx:71
 AliHMPIDTaskQA.cxx:72
 AliHMPIDTaskQA.cxx:73
 AliHMPIDTaskQA.cxx:74
 AliHMPIDTaskQA.cxx:75
 AliHMPIDTaskQA.cxx:76
 AliHMPIDTaskQA.cxx:77
 AliHMPIDTaskQA.cxx:78
 AliHMPIDTaskQA.cxx:79
 AliHMPIDTaskQA.cxx:80
 AliHMPIDTaskQA.cxx:81
 AliHMPIDTaskQA.cxx:82
 AliHMPIDTaskQA.cxx:83
 AliHMPIDTaskQA.cxx:84
 AliHMPIDTaskQA.cxx:85
 AliHMPIDTaskQA.cxx:86
 AliHMPIDTaskQA.cxx:87
 AliHMPIDTaskQA.cxx:88
 AliHMPIDTaskQA.cxx:89
 AliHMPIDTaskQA.cxx:90
 AliHMPIDTaskQA.cxx:91
 AliHMPIDTaskQA.cxx:92
 AliHMPIDTaskQA.cxx:93
 AliHMPIDTaskQA.cxx:94
 AliHMPIDTaskQA.cxx:95
 AliHMPIDTaskQA.cxx:96
 AliHMPIDTaskQA.cxx:97
 AliHMPIDTaskQA.cxx:98
 AliHMPIDTaskQA.cxx:99
 AliHMPIDTaskQA.cxx:100
 AliHMPIDTaskQA.cxx:101
 AliHMPIDTaskQA.cxx:102
 AliHMPIDTaskQA.cxx:103
 AliHMPIDTaskQA.cxx:104
 AliHMPIDTaskQA.cxx:105
 AliHMPIDTaskQA.cxx:106
 AliHMPIDTaskQA.cxx:107
 AliHMPIDTaskQA.cxx:108
 AliHMPIDTaskQA.cxx:109
 AliHMPIDTaskQA.cxx:110
 AliHMPIDTaskQA.cxx:111
 AliHMPIDTaskQA.cxx:112
 AliHMPIDTaskQA.cxx:113
 AliHMPIDTaskQA.cxx:114
 AliHMPIDTaskQA.cxx:115
 AliHMPIDTaskQA.cxx:116
 AliHMPIDTaskQA.cxx:117
 AliHMPIDTaskQA.cxx:118
 AliHMPIDTaskQA.cxx:119
 AliHMPIDTaskQA.cxx:120
 AliHMPIDTaskQA.cxx:121
 AliHMPIDTaskQA.cxx:122
 AliHMPIDTaskQA.cxx:123
 AliHMPIDTaskQA.cxx:124
 AliHMPIDTaskQA.cxx:125
 AliHMPIDTaskQA.cxx:126
 AliHMPIDTaskQA.cxx:127
 AliHMPIDTaskQA.cxx:128
 AliHMPIDTaskQA.cxx:129
 AliHMPIDTaskQA.cxx:130
 AliHMPIDTaskQA.cxx:131
 AliHMPIDTaskQA.cxx:132
 AliHMPIDTaskQA.cxx:133
 AliHMPIDTaskQA.cxx:134
 AliHMPIDTaskQA.cxx:135
 AliHMPIDTaskQA.cxx:136
 AliHMPIDTaskQA.cxx:137
 AliHMPIDTaskQA.cxx:138
 AliHMPIDTaskQA.cxx:139
 AliHMPIDTaskQA.cxx:140
 AliHMPIDTaskQA.cxx:141
 AliHMPIDTaskQA.cxx:142
 AliHMPIDTaskQA.cxx:143
 AliHMPIDTaskQA.cxx:144
 AliHMPIDTaskQA.cxx:145
 AliHMPIDTaskQA.cxx:146
 AliHMPIDTaskQA.cxx:147
 AliHMPIDTaskQA.cxx:148
 AliHMPIDTaskQA.cxx:149
 AliHMPIDTaskQA.cxx:150
 AliHMPIDTaskQA.cxx:151
 AliHMPIDTaskQA.cxx:152
 AliHMPIDTaskQA.cxx:153
 AliHMPIDTaskQA.cxx:154
 AliHMPIDTaskQA.cxx:155
 AliHMPIDTaskQA.cxx:156
 AliHMPIDTaskQA.cxx:157
 AliHMPIDTaskQA.cxx:158
 AliHMPIDTaskQA.cxx:159
 AliHMPIDTaskQA.cxx:160
 AliHMPIDTaskQA.cxx:161
 AliHMPIDTaskQA.cxx:162
 AliHMPIDTaskQA.cxx:163
 AliHMPIDTaskQA.cxx:164
 AliHMPIDTaskQA.cxx:165
 AliHMPIDTaskQA.cxx:166
 AliHMPIDTaskQA.cxx:167
 AliHMPIDTaskQA.cxx:168
 AliHMPIDTaskQA.cxx:169
 AliHMPIDTaskQA.cxx:170
 AliHMPIDTaskQA.cxx:171
 AliHMPIDTaskQA.cxx:172
 AliHMPIDTaskQA.cxx:173
 AliHMPIDTaskQA.cxx:174
 AliHMPIDTaskQA.cxx:175
 AliHMPIDTaskQA.cxx:176
 AliHMPIDTaskQA.cxx:177
 AliHMPIDTaskQA.cxx:178
 AliHMPIDTaskQA.cxx:179
 AliHMPIDTaskQA.cxx:180
 AliHMPIDTaskQA.cxx:181
 AliHMPIDTaskQA.cxx:182
 AliHMPIDTaskQA.cxx:183
 AliHMPIDTaskQA.cxx:184
 AliHMPIDTaskQA.cxx:185
 AliHMPIDTaskQA.cxx:186
 AliHMPIDTaskQA.cxx:187
 AliHMPIDTaskQA.cxx:188
 AliHMPIDTaskQA.cxx:189
 AliHMPIDTaskQA.cxx:190
 AliHMPIDTaskQA.cxx:191
 AliHMPIDTaskQA.cxx:192
 AliHMPIDTaskQA.cxx:193
 AliHMPIDTaskQA.cxx:194
 AliHMPIDTaskQA.cxx:195
 AliHMPIDTaskQA.cxx:196
 AliHMPIDTaskQA.cxx:197
 AliHMPIDTaskQA.cxx:198
 AliHMPIDTaskQA.cxx:199
 AliHMPIDTaskQA.cxx:200
 AliHMPIDTaskQA.cxx:201
 AliHMPIDTaskQA.cxx:202
 AliHMPIDTaskQA.cxx:203
 AliHMPIDTaskQA.cxx:204
 AliHMPIDTaskQA.cxx:205
 AliHMPIDTaskQA.cxx:206
 AliHMPIDTaskQA.cxx:207
 AliHMPIDTaskQA.cxx:208
 AliHMPIDTaskQA.cxx:209
 AliHMPIDTaskQA.cxx:210
 AliHMPIDTaskQA.cxx:211
 AliHMPIDTaskQA.cxx:212
 AliHMPIDTaskQA.cxx:213
 AliHMPIDTaskQA.cxx:214
 AliHMPIDTaskQA.cxx:215
 AliHMPIDTaskQA.cxx:216
 AliHMPIDTaskQA.cxx:217
 AliHMPIDTaskQA.cxx:218
 AliHMPIDTaskQA.cxx:219
 AliHMPIDTaskQA.cxx:220
 AliHMPIDTaskQA.cxx:221
 AliHMPIDTaskQA.cxx:222
 AliHMPIDTaskQA.cxx:223
 AliHMPIDTaskQA.cxx:224
 AliHMPIDTaskQA.cxx:225
 AliHMPIDTaskQA.cxx:226
 AliHMPIDTaskQA.cxx:227
 AliHMPIDTaskQA.cxx:228
 AliHMPIDTaskQA.cxx:229
 AliHMPIDTaskQA.cxx:230
 AliHMPIDTaskQA.cxx:231
 AliHMPIDTaskQA.cxx:232
 AliHMPIDTaskQA.cxx:233
 AliHMPIDTaskQA.cxx:234
 AliHMPIDTaskQA.cxx:235
 AliHMPIDTaskQA.cxx:236
 AliHMPIDTaskQA.cxx:237
 AliHMPIDTaskQA.cxx:238
 AliHMPIDTaskQA.cxx:239
 AliHMPIDTaskQA.cxx:240
 AliHMPIDTaskQA.cxx:241
 AliHMPIDTaskQA.cxx:242
 AliHMPIDTaskQA.cxx:243
 AliHMPIDTaskQA.cxx:244
 AliHMPIDTaskQA.cxx:245
 AliHMPIDTaskQA.cxx:246
 AliHMPIDTaskQA.cxx:247
 AliHMPIDTaskQA.cxx:248
 AliHMPIDTaskQA.cxx:249
 AliHMPIDTaskQA.cxx:250
 AliHMPIDTaskQA.cxx:251
 AliHMPIDTaskQA.cxx:252
 AliHMPIDTaskQA.cxx:253
 AliHMPIDTaskQA.cxx:254
 AliHMPIDTaskQA.cxx:255
 AliHMPIDTaskQA.cxx:256
 AliHMPIDTaskQA.cxx:257
 AliHMPIDTaskQA.cxx:258
 AliHMPIDTaskQA.cxx:259
 AliHMPIDTaskQA.cxx:260
 AliHMPIDTaskQA.cxx:261
 AliHMPIDTaskQA.cxx:262
 AliHMPIDTaskQA.cxx:263
 AliHMPIDTaskQA.cxx:264
 AliHMPIDTaskQA.cxx:265
 AliHMPIDTaskQA.cxx:266
 AliHMPIDTaskQA.cxx:267
 AliHMPIDTaskQA.cxx:268
 AliHMPIDTaskQA.cxx:269
 AliHMPIDTaskQA.cxx:270
 AliHMPIDTaskQA.cxx:271
 AliHMPIDTaskQA.cxx:272
 AliHMPIDTaskQA.cxx:273
 AliHMPIDTaskQA.cxx:274
 AliHMPIDTaskQA.cxx:275
 AliHMPIDTaskQA.cxx:276
 AliHMPIDTaskQA.cxx:277
 AliHMPIDTaskQA.cxx:278
 AliHMPIDTaskQA.cxx:279
 AliHMPIDTaskQA.cxx:280
 AliHMPIDTaskQA.cxx:281
 AliHMPIDTaskQA.cxx:282
 AliHMPIDTaskQA.cxx:283
 AliHMPIDTaskQA.cxx:284
 AliHMPIDTaskQA.cxx:285
 AliHMPIDTaskQA.cxx:286
 AliHMPIDTaskQA.cxx:287
 AliHMPIDTaskQA.cxx:288
 AliHMPIDTaskQA.cxx:289
 AliHMPIDTaskQA.cxx:290
 AliHMPIDTaskQA.cxx:291
 AliHMPIDTaskQA.cxx:292
 AliHMPIDTaskQA.cxx:293
 AliHMPIDTaskQA.cxx:294
 AliHMPIDTaskQA.cxx:295
 AliHMPIDTaskQA.cxx:296
 AliHMPIDTaskQA.cxx:297
 AliHMPIDTaskQA.cxx:298
 AliHMPIDTaskQA.cxx:299
 AliHMPIDTaskQA.cxx:300
 AliHMPIDTaskQA.cxx:301
 AliHMPIDTaskQA.cxx:302
 AliHMPIDTaskQA.cxx:303
 AliHMPIDTaskQA.cxx:304
 AliHMPIDTaskQA.cxx:305
 AliHMPIDTaskQA.cxx:306
 AliHMPIDTaskQA.cxx:307
 AliHMPIDTaskQA.cxx:308
 AliHMPIDTaskQA.cxx:309
 AliHMPIDTaskQA.cxx:310
 AliHMPIDTaskQA.cxx:311
 AliHMPIDTaskQA.cxx:312
 AliHMPIDTaskQA.cxx:313
 AliHMPIDTaskQA.cxx:314
 AliHMPIDTaskQA.cxx:315
 AliHMPIDTaskQA.cxx:316
 AliHMPIDTaskQA.cxx:317
 AliHMPIDTaskQA.cxx:318
 AliHMPIDTaskQA.cxx:319
 AliHMPIDTaskQA.cxx:320
 AliHMPIDTaskQA.cxx:321
 AliHMPIDTaskQA.cxx:322
 AliHMPIDTaskQA.cxx:323
 AliHMPIDTaskQA.cxx:324
 AliHMPIDTaskQA.cxx:325
 AliHMPIDTaskQA.cxx:326
 AliHMPIDTaskQA.cxx:327
 AliHMPIDTaskQA.cxx:328
 AliHMPIDTaskQA.cxx:329
 AliHMPIDTaskQA.cxx:330
 AliHMPIDTaskQA.cxx:331
 AliHMPIDTaskQA.cxx:332
 AliHMPIDTaskQA.cxx:333
 AliHMPIDTaskQA.cxx:334
 AliHMPIDTaskQA.cxx:335
 AliHMPIDTaskQA.cxx:336
 AliHMPIDTaskQA.cxx:337
 AliHMPIDTaskQA.cxx:338
 AliHMPIDTaskQA.cxx:339
 AliHMPIDTaskQA.cxx:340
 AliHMPIDTaskQA.cxx:341
 AliHMPIDTaskQA.cxx:342
 AliHMPIDTaskQA.cxx:343
 AliHMPIDTaskQA.cxx:344
 AliHMPIDTaskQA.cxx:345
 AliHMPIDTaskQA.cxx:346
 AliHMPIDTaskQA.cxx:347