ROOT logo
////////////////////////////////////////////////////////////////////////////////
///                                                                          ///
/// AliFemtoEventReaderESD - the reader class for the Alice ESD              ///
/// Reads in ESD information and converts it into internal AliFemtoEvent     ///
/// Reads in AliESDfriend to create shared hit/quality information           ///
/// Authors: Marek Chojnacki mchojnacki@knf.pw.edu.pl                        ///
///          Adam Kisiel kisiel@mps.ohio-state.edu                           ///
///                                                                          ///
////////////////////////////////////////////////////////////////////////////////

/*
 *$Id$
 *$Log$
 *Revision 1.2.2.2  2007/10/04 13:10:52  akisiel
 *Add Kink index storageAliFemtoEventReaderESD.cxx AliFemtoTrack.cxx AliFemtoTrack.h
 *
 *Revision 1.2.2.1  2007/09/30 11:38:59  akisiel
 *Adapt the readers to the new AliESDEvent structure
 *
 *Revision 1.2  2007/05/22 09:01:42  akisiel
 *Add the possibiloity to save cut settings in the ROOT file
 *
 *Revision 1.1  2007/05/16 10:22:11  akisiel
 *Making the directory structure of AliFemto flat. All files go into one common directory
 *
 *Revision 1.5  2007/05/03 09:45:20  akisiel
 *Fixing Effective C++ warnings
 *
 *Revision 1.4  2007/04/27 07:28:34  akisiel
 *Remove event number reading due to interface changes
 *
 *Revision 1.3  2007/04/27 07:25:16  akisiel
 *Make revisions needed for compilation from the main AliRoot tree
 *
 *Revision 1.1.1.1  2007/04/25 15:38:41  panos
 *Importing the HBT code dir
 *
 */

#include "AliFemtoEventReaderESD.h"

#include "TFile.h"
#include "TTree.h"
#include "AliESDEvent.h"
#include "AliESDtrack.h"
#include "AliESDVertex.h"

//#include "TSystem.h"

#include "AliFmPhysicalHelixD.h"
#include "AliFmThreeVectorF.h"

#include "SystemOfUnits.h"

#include "AliFemtoEvent.h"
#include "AliFemtoModelHiddenInfo.h"

ClassImp(AliFemtoEventReaderESD)

#if !(ST_NO_NAMESPACES)
  using namespace units;
#endif

using namespace std;
//____________________________
//constructor with 0 parameters , look at default settings 
AliFemtoEventReaderESD::AliFemtoEventReaderESD():
  fInputFile(" "),
  fFileName(" "),
  fConstrained(true),
  fReadInner(false),
  fNumberofEvent(0),
  fCurEvent(0),
  fTree(0x0),
  fEsdFile(0x0),
  fEvent(0x0)
{
  // default constructor
}

AliFemtoEventReaderESD::AliFemtoEventReaderESD(const AliFemtoEventReaderESD &aReader) :
  AliFemtoEventReader(aReader),
  fInputFile(" "),
  fFileName(" "),
  fConstrained(true),
  fReadInner(false),
  fNumberofEvent(0),
  fCurEvent(0),
  fTree(0x0),
  fEsdFile(0x0),
  fEvent(0x0)
{
  // copy constructor
  fInputFile = aReader.fInputFile;
  fFileName  = aReader.fFileName;
  fConstrained = aReader.fConstrained;
  fReadInner = aReader.fReadInner;
  fNumberofEvent = aReader.fNumberofEvent;
  fCurEvent = aReader.fCurEvent;
  //  fTree = aReader.fTree->CloneTree();
  //  fEvent = new AliESD(*aReader.fEvent);
  fEvent = new AliESDEvent();
  fEsdFile = new TFile(aReader.fEsdFile->GetName());
}
//__________________
//Destructor
AliFemtoEventReaderESD::~AliFemtoEventReaderESD()
{
  // destructor
  //delete fListOfFiles;
  delete fTree;
  delete fEvent;
  delete fEsdFile;
}

//__________________
AliFemtoEventReaderESD& AliFemtoEventReaderESD::operator=(const AliFemtoEventReaderESD& aReader)
{
  // assignment operator
  if (this == &aReader)
    return *this;

  fInputFile = aReader.fInputFile;
  fFileName  = aReader.fFileName;
  fConstrained = aReader.fConstrained;
  fReadInner = aReader.fReadInner;
  fNumberofEvent = aReader.fNumberofEvent;
  fCurEvent = aReader.fCurEvent;
  if (fTree) delete fTree;
  //  fTree = aReader.fTree->CloneTree();
  if (fEvent) delete fEvent;
  fEvent = new AliESDEvent();
  if (fEsdFile) delete fEsdFile;
  fEsdFile = new TFile(aReader.fEsdFile->GetName());

  return *this;
}
//__________________
AliFemtoString AliFemtoEventReaderESD::Report()
{
  // create reader report
  AliFemtoString temp = "\n This is the AliFemtoEventReaderESD\n";
  return temp;
}

//__________________
void AliFemtoEventReaderESD::SetInputFile(const char* inputFile)
{
  //setting the name of file where names of ESD file are written 
  //it takes only this files which have good trees
  char buffer[256];
  fInputFile=string(inputFile);
  cout<<"Input File set on "<<fInputFile<<endl;
  ifstream infile(inputFile);

  fTree = new TChain("esdTree");

  if(infile.good()==true)
    { 
      //checking if all give files have good tree inside
      while (infile.eof()==false)
	{
	  infile.getline(buffer,256);
	  //ifstream test_file(buffer);
	  TFile *esdFile=TFile::Open(buffer,"READ");
	  if (esdFile!=0x0)
	    {	
	      TTree* tree = (TTree*) esdFile->Get("esdTree");
	      if (tree!=0x0)
		{
		  cout<<"putting file  "<<string(buffer)<<" into analysis"<<endl;
		  fTree->AddFile(buffer);
		  delete tree;
		}
	      esdFile->Close();	
	    }
	  delete esdFile;
	}
    }
}

void AliFemtoEventReaderESD::SetConstrained(const bool constrained)
{
  fConstrained=constrained;
}

bool AliFemtoEventReaderESD::GetConstrained() const
{
  return fConstrained;
}

void AliFemtoEventReaderESD::SetReadTPCInner(const bool readinner)
{
  fReadInner=readinner;
}

bool AliFemtoEventReaderESD::GetReadTPCInner() const
{
  return fReadInner;
}

AliFemtoEvent* AliFemtoEventReaderESD::ReturnHbtEvent()
{
  // read in a next hbt event from the chain
  // convert it to AliFemtoEvent and return
  // for further analysis
  AliFemtoEvent *hbtEvent = 0;

  if (fCurEvent==fNumberofEvent)//open next file  
    {
      if(fNumberofEvent==0)	
	{
	  //	  delete fEvent;//added 1.04.2007
	  fEvent=new AliESDEvent();
	  //	  delete fTree;
	  //fTree=0;
	  //	  delete fEsdFile;
		
	  //ESD data
	  //	  fEsdFile=TFile::Open(fFileName.c_str(),"READ");
	  //	  fTree = (TTree*) fEsdFile->Get("esdTree");			
	  //	  fTree->SetBranchAddress("ESD", &fEvent);			
	  fTree->SetBranchStatus("MuonTracks*",0);
	  fTree->SetBranchStatus("PmdTracks*",0);
	  fTree->SetBranchStatus("TrdTracks*",0);
	  fTree->SetBranchStatus("V0s*",0);
	  fTree->SetBranchStatus("Cascades*",0);
	  fTree->SetBranchStatus("Kinks*",0);
	  fTree->SetBranchStatus("CaloClusters*",0);
	  fTree->SetBranchStatus("AliRawDataErrorLogs*",0);
	  fTree->SetBranchStatus("ESDfriend*",0);
	  fEvent->ReadFromTree(fTree);

	  fNumberofEvent=fTree->GetEntries();
	  cout<<"Number of Entries in file "<<fNumberofEvent<<endl;
	  fCurEvent=0;
	  //sim data
	}
      else //no more data to read
	{
	  cout<<"no more files "<<hbtEvent<<endl;
	  fReaderStatus=1;
	  return hbtEvent; 
	}
    }		
  cout<<"starting to read event "<<fCurEvent<<endl;
  fTree->GetEvent(fCurEvent);//getting next event
  cout << "Read event " << fEvent << " from file " << fTree << endl;
  //  vector<int> tLabelTable;//to check labels
	
  hbtEvent = new AliFemtoEvent;
  //setting basic things
  //  hbtEvent->SetEventNumber(fEvent->GetEventNumber());
  hbtEvent->SetRunNumber(fEvent->GetRunNumber());
  //hbtEvent->SetNumberOfTracks(fEvent->GetNumberOfTracks());
  hbtEvent->SetMagneticField(fEvent->GetMagneticField()*kilogauss);//to check if here is ok
  hbtEvent->SetZDCN1Energy(fEvent->GetZDCN1Energy());
  hbtEvent->SetZDCP1Energy(fEvent->GetZDCP1Energy());
  hbtEvent->SetZDCN2Energy(fEvent->GetZDCN2Energy());
  hbtEvent->SetZDCP2Energy(fEvent->GetZDCP2Energy());
  hbtEvent->SetZDCEMEnergy(fEvent->GetZDCEMEnergy());
  hbtEvent->SetZDCParticipants(fEvent->GetZDCParticipants());
  hbtEvent->SetTriggerMask(fEvent->GetTriggerMask());
  hbtEvent->SetTriggerCluster(fEvent->GetTriggerCluster());
	
  //Vertex
  double fV1[3];
  fEvent->GetVertex()->GetXYZ(fV1);

  AliFmThreeVectorF vertex(fV1[0],fV1[1],fV1[2]);
  hbtEvent->SetPrimVertPos(vertex);
	
  //starting to reading tracks
  int nofTracks=0;  //number of reconstructed tracks in event
  nofTracks=fEvent->GetNumberOfTracks();
  int realnofTracks=0;//number of track which we use ina analysis
  cout << "Event has " << nofTracks << " tracks " << endl;

  for (int i=0;i<nofTracks;i++)
    {
      bool  tGoodMomentum=true; //flaga to chcek if we can read momentum of this track
		
      AliFemtoTrack* trackCopy = new AliFemtoTrack();	
      const AliESDtrack *esdtrack=fEvent->GetTrack(i);//getting next track
      //      const AliESDfriendTrack *tESDfriendTrack = esdtrack->GetFriendTrack();

      trackCopy->SetCharge((short)esdtrack->GetSign());

      //in aliroot we have AliPID 
      //0-electron 1-muon 2-pion 3-kaon 4-proton 5-photon 6-pi0 7-neutron 8-kaon0 9-eleCon   
      //we use only 5 first
      double esdpid[5];
      esdtrack->GetESDpid(esdpid);
      trackCopy->SetPidProbElectron(esdpid[0]);
      trackCopy->SetPidProbMuon(esdpid[1]);
      trackCopy->SetPidProbPion(esdpid[2]);
      trackCopy->SetPidProbKaon(esdpid[3]);
      trackCopy->SetPidProbProton(esdpid[4]);
						
      double pxyz[3];
      if (fReadInner == true) {
	
	if (esdtrack->GetTPCInnerParam()) {
	  AliExternalTrackParam *param = new AliExternalTrackParam(*esdtrack->GetTPCInnerParam());
	  param->PropagateToDCA(fEvent->GetPrimaryVertex(), (fEvent->GetMagneticField()), 10000);
	  param->GetPxPyPz(pxyz);//reading noconstarined momentum
	  delete param;

	  AliFemtoModelHiddenInfo *tInfo = new AliFemtoModelHiddenInfo();
	  tInfo->SetPDGPid(211);
	  tInfo->SetTrueMomentum(pxyz[0], pxyz[1], pxyz[2]);
	  tInfo->SetMass(0.13957);
	  trackCopy->SetHiddenInfo(tInfo);
	}
      }
      if (fConstrained==true)		    
	tGoodMomentum=esdtrack->GetConstrainedPxPyPz(pxyz); //reading constrained momentum
      else
	tGoodMomentum=esdtrack->GetPxPyPz(pxyz);//reading noconstarined momentum
      AliFemtoThreeVector v(pxyz[0],pxyz[1],pxyz[2]);
      trackCopy->SetP(v);//setting momentum
      trackCopy->SetPt(sqrt(pxyz[0]*pxyz[0]+pxyz[1]*pxyz[1]));
      const AliFmThreeVectorD ktP(pxyz[0],pxyz[1],pxyz[2]);
      if (ktP.Mag() == 0) {
	delete trackCopy;
	continue;
      }
      const AliFmThreeVectorD origin(fV1[0],fV1[1],fV1[2]);
      //setting helix I do not if it is ok
      AliFmPhysicalHelixD helix(ktP,origin,(double)(fEvent->GetMagneticField())*kilogauss,(double)(trackCopy->Charge())); 
      trackCopy->SetHelix(helix);
	    	
      trackCopy->SetTrackId(esdtrack->GetID());
      trackCopy->SetFlags(esdtrack->GetStatus());
      trackCopy->SetLabel(esdtrack->GetLabel());
		
      //some stuff which could be useful 
      float impact[2];
      float covimpact[3];
      esdtrack->GetImpactParameters(impact,covimpact);
      trackCopy->SetImpactD(impact[0]);
      trackCopy->SetImpactZ(impact[1]);
      trackCopy->SetCdd(covimpact[0]);
      trackCopy->SetCdz(covimpact[1]);
      trackCopy->SetCzz(covimpact[2]);
      trackCopy->SetITSchi2(esdtrack->GetITSchi2());    
      trackCopy->SetITSncls(esdtrack->GetNcls(0));     
      trackCopy->SetTPCchi2(esdtrack->GetTPCchi2());       
      trackCopy->SetTPCncls(esdtrack->GetTPCNcls());       
      trackCopy->SetTPCnclsF(esdtrack->GetTPCNclsF());      
      trackCopy->SetTPCsignalN((short)esdtrack->GetTPCsignalN()); //due to bug in aliesdtrack class   
      trackCopy->SetTPCsignalS(esdtrack->GetTPCsignalSigma()); 

      trackCopy->SetTPCClusterMap(esdtrack->GetTPCClusterMap());
      trackCopy->SetTPCSharedMap(esdtrack->GetTPCSharedMap());

      double pvrt[3];
      fEvent->GetPrimaryVertex()->GetXYZ(pvrt);

      double xtpc[3];
      esdtrack->GetInnerXYZ(xtpc);
      xtpc[2] -= pvrt[2];
      trackCopy->SetNominalTPCEntrancePoint(xtpc);

      esdtrack->GetOuterXYZ(xtpc);
      xtpc[2] -= pvrt[2];
      trackCopy->SetNominalTPCExitPoint(xtpc);

      int indexes[3];
      for (int ik=0; ik<3; ik++) {
	indexes[ik] = esdtrack->GetKinkIndex(ik);
      }
      trackCopy->SetKinkIndexes(indexes);
      //decision if we want this track
      //if we using diffrent labels we want that this label was use for first time 
      //if we use hidden info we want to have match between sim data and ESD
      if (tGoodMomentum==true)
	{
	  hbtEvent->TrackCollection()->push_back(trackCopy);//adding track to analysis
	  realnofTracks++;//real number of tracks
	}
      else
	{
	  delete  trackCopy;
	}
		
    }

  hbtEvent->SetNumberOfTracks(realnofTracks);//setting number of track which we read in event	
  fCurEvent++;	
  cout<<"end of reading nt "<<nofTracks<<" real number "<<realnofTracks<<endl;
//   if (fCurEvent== fNumberofEvent)//if end of current file close all
//     {   
//       fTree->Reset(); 
//       delete fTree;
//       fEsdFile->Close();
//     }
  return hbtEvent; 
}









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