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.                  *
**************************************************************************/
//
// Class AliHFEemcalPIDqa
//
// Monitoring EMCAL PID in the HFE PID montioring framework. The following
// quantities are monitored:
//   TPC Signal distribution 
// (Always as function of momentum, particle species and centrality 
// before and after cut)
// More information about the PID monitoring framework can be found in
// AliHFEpidQAmanager.cxx and AliHFEdetPIDqa.cxx
//
// Author:
//
//   Shingo Sakai <ssakai@lbl.gov>
#include <TClass.h>
#include <TH2.h>
#include <THnSparse.h>
#include <TString.h>

#include <TMath.h>
#include "AliESDInputHandler.h"
//#include "AliVCluster.h"
//#include "AliVCaloCells.h"
//#include "AliVEvent.h"
#include "AliMagF.h"
#include "AliPIDResponse.h"

#include "AliLog.h"
#include "AliPID.h"
#include "AliVParticle.h"
//#include "AliVTrack.h"
//#include "AliESDtrack.h"
#include "AliHFEcollection.h"
#include "AliHFEpid.h"
#include "AliHFEpidBase.h"
#include "AliHFEpidQAmanager.h"
#include "AliHFEpidTPC.h"
#include "AliHFEpidEMCAL.h"
#include "AliHFEtools.h"
#include "AliHFEemcalPIDqa.h"
#include "AliTrackerBase.h"

ClassImp(AliHFEemcalPIDqa)

//_________________________________________________________
AliHFEemcalPIDqa::AliHFEemcalPIDqa():
    AliHFEdetPIDqa()
  , fHistos(NULL)
{
  //
  // Dummy constructor
  //
}

//_________________________________________________________
AliHFEemcalPIDqa::AliHFEemcalPIDqa(const char* name):
    AliHFEdetPIDqa(name, "QA for EMCAL")
  , fHistos(NULL)
{
  //
  // Default constructor
  //
}

//_________________________________________________________
AliHFEemcalPIDqa::AliHFEemcalPIDqa(const AliHFEemcalPIDqa &o):
    AliHFEdetPIDqa(o)
  , fHistos()
{
  //
  // Copy constructor
  //
  o.Copy(*this);
}

//_________________________________________________________
AliHFEemcalPIDqa &AliHFEemcalPIDqa::operator=(const AliHFEemcalPIDqa &o){
  //
  // Do assignment
  //
  AliHFEdetPIDqa::operator=(o);
  if(&o != this) o.Copy(*this);
  return *this;
}

//_________________________________________________________
AliHFEemcalPIDqa::~AliHFEemcalPIDqa(){
  //
  // Destructor
  //
  if(fHistos) delete fHistos;
}

//_________________________________________________________
void AliHFEemcalPIDqa::Copy(TObject &o) const {
  //
  // Make copy
  //
  AliHFEemcalPIDqa &target = dynamic_cast<AliHFEemcalPIDqa &>(o);
  if(target.fHistos){
    delete target.fHistos;
    target.fHistos = NULL;
  }
  if(fHistos) target.fHistos = new AliHFEcollection(*fHistos);
}

//_________________________________________________________
Long64_t AliHFEemcalPIDqa::Merge(TCollection *coll){
  //
  // Merge with other objects
  //
  if(!coll) return 0;
  if(coll->IsEmpty()) return 1;

  TIter it(coll);
  AliHFEemcalPIDqa *refQA = NULL;
  TObject *o = NULL;
  Long64_t count = 0;
  TList listHistos;
  while((o = it())){
    refQA = dynamic_cast<AliHFEemcalPIDqa *>(o);
    if(!refQA) continue;

    listHistos.Add(refQA->fHistos);
    count++; 
  }
  fHistos->Merge(&listHistos);
  return count + 1;
}

//_________________________________________________________
void AliHFEemcalPIDqa::Initialize(){
  //
  // Define Histograms
  //

  fHistos = new AliHFEcollection("emcalqahistos", "Collection of EMCAL QA histograms");

  // Make common binning
  const Int_t kCentralityBins = 11;
  const Double_t kMinP = 0.;
  const Double_t kMaxP = 50.;
  const Double_t kTPCSigMim = 40.;
  const Double_t kTPCSigMax = 140.;

  // 1st histogram: TPC dEdx with/without EMCAL (p, pT, TPC Signal, phi, eta,  Sig,  e/p,  ,match, cell, M02, M20, Disp, Centrality, select)
  Int_t nBins[16] = {AliPID::kSPECIES + 1, 500, 500,          400, 300,   100,   600,  300, 100,   40,   300, 300, 300, kCentralityBins, 6, 2};
  Double_t min[16] = {-1,               kMinP, kMinP,  kTPCSigMim,  0.,  -1.0,  -8.0,    0,   0,    0,   0.0, 0.0, 0.0,   0, -3.0, 0.};
  Double_t max[16] = {AliPID::kSPECIES, kMaxP, kMaxP,  kTPCSigMax, 6.0,   1.0,   4.0,  3.0, 0.1,   40,   3.0, 3.0, 3.0,   11., 3.0, 2.};
  fHistos->CreateTHnSparse("EMCAL_TPCdedx", "EMCAL signal; species; p [GeV/c]; pT [GeV/c] ; TPC signal [a.u.]; phi ; eta ; nSig ; E/p ; Rmatch ; Ncell ; M02 ; M20 ; Disp ; Centrality;charge ;PID Step; ", 16, nBins, min, max);

  //2nd histogram: EMCAL signal - E/p 
  //Int_t nBins2[7] = {AliPID::kSPECIES + 1, 500, 500, 500, 100, 600, 2};
  //Double_t min2[7] = {-1, kMinP, kMinP, 0,  0, -8., 0.};
  //Double_t max2[7] = {AliPID::kSPECIES, kMaxP, kMaxP, 5,  0.1, 4., 2.};
  //fHistos->CreateTHnSparse("EMCAL_Signal", "EMCAL true signal; species; p [GeV/c]; pT [GeV/c] ; E/p; Rmatch; TPCnsigma; PID Step", 7, nBins2, min2, max2);
    
}




//_________________________________________________________
void AliHFEemcalPIDqa::ProcessTrack(const AliHFEpidObject *track,AliHFEdetPIDqa::EStep_t step){
  //
  // Fill TPC histograms
  //
  //AliHFEpidObject::AnalysisType_t anatype = track->IsESDanalysis() ? AliHFEpidObject::kESDanalysis : AliHFEpidObject::kAODanalysis;
  Float_t centrality = track->GetCentrality();

  //const AliVTrack *vtrack = dynamic_cast<const AliVTrack *>(track->GetRecTrack());
  //const AliESDtrack *esdtrack = dynamic_cast<const AliESDtrack *>(vtrack);
  const AliESDtrack *esdtrack = static_cast<const AliESDtrack *>(track->GetRecTrack());

  Int_t species = track->GetAbInitioPID();
  if(species >= AliPID::kSPECIES) species = -1;

  // Get TPC nSigma (based on AliHFEtpcPIDqa)
  AliHFEpidTPC *tpcpid = dynamic_cast<AliHFEpidTPC *>(fQAmanager->GetDetectorPID(AliHFEpid::kTPCpid)); 
  const AliPIDResponse *pidResponse = tpcpid ? tpcpid->GetPIDResponse() : NULL;
  Float_t nSigmatpc = pidResponse ? pidResponse->NumberOfSigmasTPC(static_cast<const AliVTrack *>(track->GetRecTrack()), AliPID::kElectron) : 0.; 
  //printf("nSigmatpc = %f\n",nSigmatpc);
  AliDebug(2, Form("nSigmatpc = %f\n",nSigmatpc));
  //

  double charge = esdtrack->Charge();
  //printf("charge %f\n",charge); 


  //printf("phi %f, eta %f\n;",phi,eta);

  // Get E/p
  Double_t showerEMC[4];
  TVector3 emcsignal = MomentumEnergyMatchV2(esdtrack,showerEMC);
  AliDebug(2, Form("shower shape ; %f %f %f %f \n",showerEMC[0],showerEMC[1],showerEMC[2],showerEMC[3]));

  /*
  Double_t contentSignal2[7];
  contentSignal2[0] = species;
  contentSignal2[1] = track->GetRecTrack()->P();
  contentSignal2[2] = track->GetRecTrack()->Pt();
  contentSignal2[3] = emcsignal(0);//e over p
  contentSignal2[4] = emcsignal(1);//residual
  contentSignal2[5] = nSigmatpc;
  contentSignal2[6] = step == AliHFEdetPIDqa::kBeforePID ? 0. : 1.;
  */
  // QA array
  Double_t contentSignal[16];
  contentSignal[0] = species;
  contentSignal[1] = track->GetRecTrack()->P();
  contentSignal[2] = track->GetRecTrack()->Pt();
  contentSignal[3] = esdtrack->GetTPCsignal(); //?
  double phi  = track->GetRecTrack()->Phi();
  double eta  = track->GetRecTrack()->Eta();
  contentSignal[4] = phi;
  contentSignal[5] = eta;
  contentSignal[6] = nSigmatpc;
  contentSignal[7] = emcsignal(0);
  contentSignal[8] = emcsignal(2);
  contentSignal[9] = showerEMC[0];
  contentSignal[10] = showerEMC[1];
  contentSignal[11] = showerEMC[2];
  contentSignal[12] = showerEMC[3];
  contentSignal[13] = centrality;
  contentSignal[14] = charge;
  contentSignal[15] = step == AliHFEdetPIDqa::kBeforePID ? 0. : 1.;


  //printf("ProcessTrack ; Print Content %g; %g; %g; %g \n",contentSignal[0],contentSignal[1],contentSignal[2],contentSignal[3]); 
  fHistos->Fill("EMCAL_TPCdedx", contentSignal);
  //fHistos->Fill("EMCAL_Signal", contentSignal2);
}

//_________________________________________________________
TH1 *AliHFEemcalPIDqa::GetHistogram(const char *name){
  // 
  // Get the histogram
  //
  if(!fHistos) return NULL;
  TObject *histo = fHistos->Get(name);
  if(!histo->InheritsFrom("TH1")) return NULL;
  return dynamic_cast<TH1 *>(histo);
}


//___________________________________________________________________________
TVector3 AliHFEemcalPIDqa::MomentumEnergyMatchV2(const AliESDtrack *esdtrack, Double_t *shower) const
{ // Returns e/p & Rmatch
  /*
  Float_t  clsPos[3];
  Double_t trkPos[3];
  Double_t fMass=0.139;
  Double_t fStep=10; //This is taken from EMCAL tender, hardcoded!
  */
  TVector3 refVec(-9999,-9999,-9999);
  Double_t matchclsE = 9999.9;
  for(int i=0; i<4; i++)shower[i] = -9999;

  const AliESDEvent *evt = esdtrack->GetESDEvent();

  //Proper trackmatching, added by Tomas
  //Get matched cluster
  Int_t icl = esdtrack->GetEMCALcluster(); //From tender
  AliVCluster *cluster = (AliVCluster*) evt->GetCaloCluster(icl);
  if(cluster==NULL) return refVec;
  if(!cluster->IsEMCAL()) return refVec;
  //printf("EMCal cluster pointer ? %p\n",(void*)cluster);
  //printf("EMCal cluster ? %d\n",cluster->IsEMCAL());

  // from ESDs
  double delphi = cluster->GetTrackDx(); 
  double deleta = cluster->GetTrackDz(); 
  double rmatch1 = sqrt(pow(delphi,2)+pow(deleta,2));

  matchclsE = cluster->E();
  
  //double feop = -9999.9;
  //if(matchclsE<9999) 
  double feop = matchclsE/esdtrack->P();
  
	shower[0] = cluster->GetNCells(); // number of cells in cluster
	shower[1] = cluster->GetM02(); // long axis
	shower[2] = cluster->GetM20(); // short axis
	shower[3] = cluster->GetDispersion(); // dispersion

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