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 "AliPIDCombined.h"
#include "AliAODHeader.h"
#include "AliAODpidUtil.h"
#include "AliHelperPID.h"
using std::endl;
using std::cout;
#include "AliEbyEPidTTask.h"

ClassImp(AliEbyEPidTTask)

//-----------------------------------------------------------------------
AliEbyEPidTTask::AliEbyEPidTTask( const char *name ) : AliAnalysisTaskSE( name ), 
  fThnList(NULL), 
  isMC(kFALSE), 
  fCentralityEstimator("V0M"), 
  fAODtrackCutBit(128),
  fHelperPID(0x0),
  fEventCounter(NULL), 
  fEventTree(NULL),
  isQA(kFALSE), 
  fDebug(kFALSE), 
  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];
  */
 
  DefineOutput(1, TList::Class()); //! Connect Outpput....
  DefineOutput(2, TTree::Class()); //! Connect Outpput....
}

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

//---------------------------------------------------------------------------------
void AliEbyEPidTTask::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");
  
  if(isMC) {
    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 AliEbyEPidTTask::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(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 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 icharge = track->Charge() > 0 ? 0 : 1;

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

    fTrackPt[iTracks]     = (Float_t)track->Pt();
    fTrackPhi[iTracks]    = (Float_t)track->Phi();
    fTrackEta[iTracks]    = (Float_t)track->Eta();
    fTrackCharge[iTracks] = track->Charge();
    fTrackPid[iTracks] = b;
    iTracks++;
  }
  fNumberOfTracks = iTracks;

  if(isMC) {
    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(23);
    
    Int_t nMC = arrayMC->GetEntries();
    Int_t mTracks = 0; 
    for (Int_t iMC = 0; iMC < nMC; iMC++) {
      fEventCounter->Fill(24);
      AliAODMCParticle *partMC = (AliAODMCParticle*) arrayMC->At(iMC);
      if(!AcceptMCTrack(partMC)) continue;
      
      fEventCounter->Fill(25);
      Int_t a  = partMC->GetPdgCode();
      
      // 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 << "  " << icharge << endl;
      
      fTrackPtM[mTracks]     = (Float_t)partMC->Pt();
      fTrackPhiM[mTracks]    = (Float_t)partMC->Phi();
      fTrackEtaM[mTracks]    = (Float_t)partMC->Eta();
      fTrackChargeM[mTracks] = icharge;
      fTrackPidM[mTracks] = a;
      
      mTracks++;
    }
    fEventCounter->Fill(26);
    fNumberOfTracksM = mTracks;
  }
  
  fEventCounter->Fill(30);
  fEventTree->Fill();
  
  PostData(1, fThnList);  
  PostData(2, fEventTree);
}

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

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


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