ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: ALICE Offline.                                                 *
 * 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.                  *
 **************************************************************************/


//=========================================================================//
//             AliEbyE Analysis for Particle Ratio Fluctuation             //
//                   Deepika Rathee  | Satyajit Jena                       //
//                   drathee@cern.ch | sjena@cern.ch                       //
//          Dealing with Wide pT Addition (Test Only - not for use)
//=========================================================================//

#include "TChain.h"
#include "TList.h"
#include "TFile.h"
#include "TTree.h"
#include "TH1D.h"
#include "TH2F.h"
#include "TH3F.h"
#include "TCanvas.h"
#include "AliAnalysisTask.h"
#include "AliAnalysisManager.h"
#include "AliVEvent.h"
#include "AliESD.h"
#include "AliESDEvent.h"
#include "AliAODEvent.h"
#include "AliAODMCParticle.h"
#include "AliAODMCHeader.h"
#include "AliPIDResponse.h"
#include "AliAODHeader.h"
#include "AliAODpidUtil.h"
#include "AliPIDCombined.h"
#include "AliHelperPID.h"
using std::endl;
using std::cout;
#include "AliEbyEPidTTaskMC.h"

ClassImp(AliEbyEPidTTaskMC)

//-----------------------------------------------------------------------
AliEbyEPidTTaskMC::AliEbyEPidTTaskMC( const char *name ) : AliAnalysisTaskSE( name ), 
  fThnList(NULL), 
  isMC(kFALSE), 
  fCentralityEstimator("V0M"), 
  fAODtrackCutBit(128),
  fHelperPID(0x0),
  fEventCounter(NULL), 
  fEventTree(NULL),
  fRunNumber(0),
  fNumberOfTracks(8000),
  fNumberOfTracksM(8000),
  fFilterBit(99),
  fCentPercentile(-1),
  fVertexX(-99),
  fVertexY(-99),
  fVertexZ(-99) {
  /*
    fTrackPt[kTrack];
    fTrackEta[kTrack];
    fTrackPhi[kTrack];
    fTrackPtM[kTrack];
    fTrackEtaM[kTrack];
    fTrackPhiM[kTrack];
    fTrackCharge[kTrack];
    fTrackPid[kTrack];
    fTrackChargeM[kTrack];
    fTrackPidM[kTrack];
  */
  DefineInput(0,TChain::Class());
  DefineOutput(1, TList::Class()); 
  DefineOutput(2, TTree::Class()); 
}

AliEbyEPidTTaskMC::~AliEbyEPidTTaskMC() {
  //!   Cleaning up
   if (fThnList)   delete fThnList;
   if (fHelperPID) delete fHelperPID;
   if (fEventTree) delete fEventTree;
}

//---------------------------------------------------------------------------------
void AliEbyEPidTTaskMC::UserCreateOutputObjects() {
  fThnList = new TList();
  fThnList->SetOwner(kTRUE);

  fEventCounter = new TH1D("fEventCounter","EventCounter", 70, 0.5,70.5);
  fThnList->Add(fEventCounter);

  TList *ll = (TList*)fHelperPID->GetOutputList();
  for (Int_t ikey = 0; ikey < ll->GetEntries(); ikey++) {
    fThnList->Add(ll->At(ikey));
  }
  TDirectory *owd = gDirectory;
  OpenFile(1);  
  fEventTree = new TTree("fEventTree","fEventTree");
  owd->cd();
 
  fEventTree->Branch("fRunNumber",      &fRunNumber,     "fRunNumber/I");
  fEventTree->Branch("fFilterBit",      &fFilterBit,     "fFilterBit/I");
  fEventTree->Branch("fNumberOfTracks", &fNumberOfTracks,"fNumberOfTracks/I");
  fEventTree->Branch("fCentPercentile", &fCentPercentile,"fCentPercentile/F");
  
  fEventTree->Branch("fVertexX",        &fVertexX,       "fVertexX/F");
  fEventTree->Branch("fVertexY",        &fVertexY,       "fVertexY/F");
  fEventTree->Branch("fVertexZ",        &fVertexZ,       "fVertexZ/F");
  
  fEventTree->Branch("fTrackPt",        fTrackPt,        "fTrackPt[fNumberOfTracks]/F");
  fEventTree->Branch("fTrackPhi",       fTrackPhi,       "fTrackPhi[fNumberOfTracks]/F");
  fEventTree->Branch("fTrackEta",       fTrackEta,       "fTrackEta[fNumberOfTracks]/F");
  fEventTree->Branch("fTrackCharge",    fTrackCharge,    "fTrackCharge[fNumberOfTracks]/I");
  fEventTree->Branch("fTrackPid",       fTrackPid,       "fTrackPid[fNumberOfTracks]/I");
  

  fEventTree->Branch("fNumberOfTracksM", &fNumberOfTracksM, "fNumberOfTracksM/I");
  fEventTree->Branch("fTrackPtM",        fTrackPtM,        "fTrackPtM[fNumberOfTracksM]/F");
  fEventTree->Branch("fTrackPhiM",       fTrackPhiM,       "fTrackPhiM[fNumberOfTracksM]/F");
  fEventTree->Branch("fTrackEtaM",       fTrackEtaM,       "fTrackEtaM[fNumberOfTracksM]/F");
  fEventTree->Branch("fTrackChargeM",    fTrackChargeM,    "fTrackChargeM[fNumberOfTracksM]/I");
  fEventTree->Branch("fTrackPidM",       fTrackPidM,       "fTrackPidM[fNumberOfTracksM]/I");
 
  PostData(1, fThnList);
  PostData(2, fEventTree);  
}

//----------------------------------------------------------------------------------
void AliEbyEPidTTaskMC::UserExec( Option_t * ){

  fEventCounter->Fill(1);
   
  AliAODEvent* event = dynamic_cast<AliAODEvent*>(InputEvent());
  if (!event) {
    Printf("ERROR 01: AOD not found ");
    return;
  }
  
  fEventCounter->Fill(2);

  Int_t gCent   = -1;
  //Float_t gRefMul = -1;
  
  AliAODHeader *aodHeader = dynamic_cast<AliAODHeader*>(event->GetHeader());
  if(!aodHeader) AliFatal("Not a standard AOD");
  gCent = (Int_t)aodHeader->GetCentralityP()->GetCentralityPercentile(fCentralityEstimator.Data());
 // gRefMul = aodHeader->GetRefMultiplicity();
  if (gCent < 0 || gCent > 100) return;
  fEventCounter->Fill(3);  

  const AliAODVertex *vertex = event->GetPrimaryVertex();
  if(!vertex) return;
  fEventCounter->Fill(4);
  Bool_t vtest = kFALSE;
  Double32_t fCov[6];
  vertex->GetCovarianceMatrix(fCov);
  if(vertex->GetNContributors() > 0) {
      if(fCov[5] != 0) {
	vtest = kTRUE;
      }
  }
  if(!vtest)return;
  
  fEventCounter->Fill(5);

  AliCentrality *centrality = event->GetCentrality();
  if (centrality->GetQuality() != 0) return;

 fEventCounter->Fill(21);
  
  TClonesArray *arrayMC= 0; 
  arrayMC = dynamic_cast<TClonesArray*> (event->GetList()->FindObject(AliAODMCParticle::StdBranchName()));
  if (!arrayMC) {
    Printf("Error: MC particles branch not found!\n");
      return;
  }
  fEventCounter->Fill(22);
  AliAODMCHeader *mcHdr=0;
  mcHdr=(AliAODMCHeader*)event->GetList()->FindObject(AliAODMCHeader::StdBranchName());  
  if(!mcHdr) {
      Printf("MC header branch not found!\n");
      return;
  }

  fEventCounter->Fill(6);
  
  fRunNumber = event->GetRunNumber();
  fFilterBit = fAODtrackCutBit;
  fCentPercentile = gCent;
  fVertexX = vertex->GetX();
  fVertexY = vertex->GetY();
  fVertexZ = vertex->GetZ();
 
//Default TPC priors
  if(fHelperPID->GetPIDType()==kBayes)fHelperPID->GetPIDCombined()->SetDefaultTPCPriors();//FIXME maybe this can go in the UserCreateOutputObject?
 
  Int_t iTracks = 0; 
  for (Int_t itrk = 0; itrk < event->GetNumberOfTracks(); itrk++) {
    AliAODTrack* track = dynamic_cast<AliAODTrack *>(event->GetTrack(itrk));
    fEventCounter->Fill(10);
    if (!track) continue;
    fEventCounter->Fill(11);
    if (!AcceptTrack(track)) continue;
    fEventCounter->Fill(12);
    Int_t a = fHelperPID->GetParticleSpecies((AliVTrack*) track,kTRUE);
    // if(a < 0 || a > 2) continue;
    fEventCounter->Fill(13);
    //Int_t icharge = track->Charge() > 0 ? 0 : 1;
    Int_t b = -999;
    if (a == 0 ) b = 1;
    else if (a == 1 ) b = 2;
    else if (a == 2 ) b = 3;
    else b = 4;

    if (track->Charge()  < 0 ) b = -1*b;
   
    Int_t isph=-999;
    if (arrayMC) {
      AliAODMCParticle *partMC = (AliAODMCParticle*) arrayMC->At(TMath::Abs(track->GetLabel()));
      if (!partMC) {
        AliError("Cannot get MC particle");
        continue;
      }
      isph=partMC->IsPhysicalPrimary();
    }

    //   cout << b << "  " << track->Charge() << "  " << isph << endl;

    fTrackPt[iTracks]     = (Float_t)track->Pt();
    fTrackPhi[iTracks]    = (Float_t)track->Phi();
    fTrackEta[iTracks]    = (Float_t)track->Eta();
    fTrackCharge[iTracks] = isph;
    fTrackPid[iTracks] = b;
    iTracks++;
  }
  fNumberOfTracks = iTracks;
  
   
  fEventCounter->Fill(23);
  
  
  Int_t mTracks = 0; 

  Int_t nMC = arrayMC->GetEntries();
  
  for (Int_t iMC = 0; iMC < nMC; iMC++) {
    //fEventCounter->Fill(24);
    AliAODMCParticle *partMC = (AliAODMCParticle*) arrayMC->At(iMC);
    // if(!partMC) continue;
    if(!AcceptMCTrack(partMC)) continue;
    // fEventCounter->Fill(25);
    Int_t b  = partMC->GetPdgCode();
    Int_t k = -99;
    k = partMC->IsPhysicalPrimary();
   
    Int_t a = -999;
    if (b == 211 )   a =  1;
    else if (b == -211 )  a = -1;
    else if (b == 2212 )  a =  3;
    else if (b == -2212 ) a = -3;
    else if (b == 321 )   a =  2;
    else if (b == -321 )  a = -2;
    else if (b > 0 )  a = 4;
    else if (b < 0 )  a = -4;

    //Int_t a = 0;      
    // Int_t a = fHelperPID->GetMCParticleSpecie((AliVEvent*) event,(AliVTrack*)partMC,1);
    
    //if(a < 0 || a > 2) continue;
    // Int_t icharge = a > 0 ? 0 : 1;
    //  cout << a << "  " << b << "  " << iMC << "  " << mTracks << "  " << k << endl;
    
    fTrackPtM[mTracks]     = (Float_t)partMC->Pt();
    fTrackPhiM[mTracks]    = (Float_t)partMC->Phi();
    fTrackEtaM[mTracks]    = (Float_t)partMC->Eta();
    fTrackChargeM[mTracks] = k;
    fTrackPidM[mTracks] = a;
    mTracks++;
  }
  //  cout << mTracks << "  " << nMC << endl;
  fEventCounter->Fill(26);
  fNumberOfTracksM = mTracks;
  
  fEventCounter->Fill(30);
  fEventTree->Fill();
  
  if(isMC) fEventCounter->Fill(46);
  else fEventCounter->Fill(48);
     
  PostData(1, fThnList);  
  PostData(2, fEventTree);
}

//___________________________________________________________
void AliEbyEPidTTaskMC::Terminate( Option_t * ){
  Info("AliEbyEPidTTaskMC"," Task Successfully finished");
}

//___________________________________________________________
Bool_t AliEbyEPidTTaskMC::AcceptTrack(AliAODTrack *track) const {
  if(!track)                                  return kFALSE;
  if (track->Charge() == 0 )                  return kFALSE;
  if (!track->TestFilterBit(fAODtrackCutBit)) return kFALSE;
  if (TMath::Abs(track->Eta()) > 0.8) return kFALSE;
  return kTRUE;
}


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