From: skowron Date: Mon, 28 Jun 2004 10:11:15 +0000 (+0000) Subject: Moved to ANALYSIS as AliReaderESD X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=86e40667ba562f71e1969adb4d52789809206deb;ds=inline Moved to ANALYSIS as AliReaderESD --- diff --git a/HBTAN/AliHBTReaderESD.cxx b/HBTAN/AliHBTReaderESD.cxx deleted file mode 100644 index 14eae7fbed5..00000000000 --- a/HBTAN/AliHBTReaderESD.cxx +++ /dev/null @@ -1,739 +0,0 @@ -#include "AliHBTReaderESD.h" -//____________________________________________________________________ -////////////////////////////////////////////////////////////////////// -// // -// class AliHBTReaderESD // -// // -// reader for ALICE Event Summary Data (ESD). // -// // -// Piotr.Skowronski@cern.ch // -// // -////////////////////////////////////////////////////////////////////// - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "AliHBTRun.h" -#include "AliHBTEvent.h" -#include "AliHBTParticle.h" -#include "AliHBTParticleCut.h" -#include "AliHBTTrackPoints.h" -#include "AliHBTClusterMap.h" - -ClassImp(AliHBTReaderESD) - -AliHBTReaderESD::AliHBTReaderESD(const Char_t* esdfilename, const Char_t* galfilename): - fESDFileName(esdfilename), - fGAlFileName(galfilename), - fFile(0x0), - fRunLoader(0x0), - fKeyIterator(0x0), - fReadParticles(kFALSE), - fCheckParticlePID(kFALSE), - fNTrackPoints(0), - fdR(0.0), - fClusterMap(kFALSE), - fITSTrackPoints(kFALSE), - fMustTPC(kFALSE), - fNTPCClustMin(0), - fNTPCClustMax(150), - fTPCChi2PerClustMin(0.0), - fTPCChi2PerClustMax(10e5), - fChi2Min(0.0), - fChi2Max(10e5), - fC00Min(0.0), - fC00Max(10e5), - fC11Min(0.0), - fC11Max(10e5), - fC22Min(0.0), - fC22Max(10e5), - fC33Min(0.0), - fC33Max(10e5), - fC44Min(0.0), - fC44Max(10e5), - fTPCC00Min(0.0), - fTPCC00Max(10e5), - fTPCC11Min(0.0), - fTPCC11Max(10e5), - fTPCC22Min(0.0), - fTPCC22Max(10e5), - fTPCC33Min(0.0), - fTPCC33Max(10e5), - fTPCC44Min(0.0), - fTPCC44Max(10e5) - -{ - //cosntructor - if ( ((Int_t)kNSpecies) != ((Int_t)AliESDtrack::kSPECIES)) - Fatal("AliHBTReaderESD","ESD defintions probobly changed. Ask Youra."); -} -/********************************************************************/ - -AliHBTReaderESD::AliHBTReaderESD(TObjArray* dirs,const Char_t* esdfilename, const Char_t* galfilename): - AliHBTReader(dirs), - fESDFileName(esdfilename), - fGAlFileName(galfilename), - fFile(0x0), - fRunLoader(0x0), - fKeyIterator(0x0), - fReadParticles(kFALSE), - fCheckParticlePID(kFALSE), - fNTrackPoints(0), - fdR(0.0), - fClusterMap(kFALSE), - fITSTrackPoints(kFALSE), - fMustTPC(kFALSE), - fNTPCClustMin(0), - fNTPCClustMax(150), - fTPCChi2PerClustMin(0.0), - fTPCChi2PerClustMax(10e5), - fChi2Min(0.0), - fChi2Max(10e5), - fC00Min(0.0), - fC00Max(10e5), - fC11Min(0.0), - fC11Max(10e5), - fC22Min(0.0), - fC22Max(10e5), - fC33Min(0.0), - fC33Max(10e5), - fC44Min(0.0), - fC44Max(10e5), - fTPCC00Min(0.0), - fTPCC00Max(10e5), - fTPCC11Min(0.0), - fTPCC11Max(10e5), - fTPCC22Min(0.0), - fTPCC22Max(10e5), - fTPCC33Min(0.0), - fTPCC33Max(10e5), - fTPCC44Min(0.0), - fTPCC44Max(10e5) -{ - //cosntructor - if ( ((Int_t)kNSpecies) != ((Int_t)AliESDtrack::kSPECIES)) - Fatal("AliHBTReaderESD","ESD defintions probobly changed. Ask Youra."); -} -/********************************************************************/ - -AliHBTReaderESD::~AliHBTReaderESD() -{ - //desctructor - delete fRunLoader; - delete fKeyIterator; - delete fFile; -} -/**********************************************************/ -Int_t AliHBTReaderESD::ReadNext() -{ -//reads next event from fFile - //fRunLoader is for reading Kine - - if (AliHBTParticle::GetDebug()) - Info("ReadNext","Entered"); - - if (fParticlesEvent == 0x0) fParticlesEvent = new AliHBTEvent(); - if (fTracksEvent == 0x0) fTracksEvent = new AliHBTEvent(); - - fParticlesEvent->Reset(); - fTracksEvent->Reset(); - - do //do{}while; is OK even if 0 dirs specified. In that case we try to read from "./" - { - if (fFile == 0x0) - { - fFile = OpenFile(fCurrentDir);//rl is opened here - if (fFile == 0x0) - { - Error("ReadNext","Cannot get fFile for dir no. %d",fCurrentDir); - fCurrentDir++; - continue; - } - fCurrentEvent = 0; - fKeyIterator = new TIter(fFile->GetListOfKeys()); -// fFile->Dump(); -// fFile->GetListOfKeys()->Print(); - } - TKey* key = (TKey*)fKeyIterator->Next(); - if (key == 0x0) - { - if (AliHBTParticle::GetDebug() > 2 ) - { - Info("ReadNext","No more keys."); - } - fCurrentDir++; - delete fKeyIterator; - fKeyIterator = 0x0; - delete fFile;//we have to assume there is no more ESD objects in the fFile - fFile = 0x0; - delete fRunLoader; - fRunLoader = 0x0; - continue; - } - //try to read - - -// TObject* esdobj = key->ReadObj(); -// if (esdobj == 0x0) -// { -// if (AliHBTParticle::GetDebug() > 2 ) -// { -// Info("ReadNext","Key read NULL. Key Name is %s",key->GetName()); -// key->Dump(); -// } -// continue; -// } -// esdobj->Dump(); -// AliESD* esd = dynamic_cast(esdobj); - - TString esdname = "ESD"; - esdname+=fCurrentEvent; - AliESD* esd = dynamic_cast(fFile->Get(esdname)); - if (esd == 0x0) - { -// if (AliHBTParticle::GetDebug() > 2 ) -// { -// Info("ReadNext","This key is not an AliESD object %s",key->GetName()); -// } - if (AliHBTParticle::GetDebug() > 2 ) - { - Info("ReadNext","Can not find AliESD object named %s",esdname.Data()); - } - fCurrentDir++; - delete fKeyIterator; - fKeyIterator = 0x0; - delete fFile;//we have to assume there is no more ESD objects in the fFile - fFile = 0x0; - delete fRunLoader; - fRunLoader = 0x0; - continue; - } - - ReadESD(esd); - - fCurrentEvent++; - fNEventsRead++; - delete esd; - return 0;//success -> read one event - }while(fCurrentDir < GetNumberOfDirs());//end of loop over directories specified in fDirs Obj Array - - return 1; //no more directories to read -} -/**********************************************************/ - -Int_t AliHBTReaderESD::ReadESD(AliESD* esd) -{ - //****** Tentative particle type "concentrations" - static const Double_t concentr[5]={0.05, 0., 0.85, 0.10, 0.05}; - - Double_t pidtable[kNSpecies];//array used for reading pid probabilities from ESD track - Double_t w[kNSpecies]; - Double_t mom[3];//momentum - Double_t pos[3];//position - Double_t vertexpos[3];//vertex position - //Reads one ESD - if (esd == 0x0) - { - Error("ReadESD","ESD is NULL"); - return 1; - } - - TDatabasePDG* pdgdb = TDatabasePDG::Instance(); - if (pdgdb == 0x0) - { - Error("ReadESD","Can not get PDG Database Instance."); - return 1; - } - - Float_t mf = esd->GetMagneticField(); - - if ( (mf == 0.0) && ((fNTrackPoints > 0) || fITSTrackPoints) ) - { - Error("ReadESD","Magnetic Field is 0 and Track Points Demended. Skipping to next event."); - return 1; - } - if (fITSTrackPoints) - { - Info("ReadESD","Magnetic Field is %f",mf/10.); - AliKalmanTrack::SetMagneticField(mf/10.); - } - - AliStack* stack = 0x0; - if (fReadParticles && fRunLoader) - { - fRunLoader->GetEvent(fCurrentEvent); - stack = fRunLoader->Stack(); - } - - const AliESDVertex* vertex = esd->GetVertex(); - if (vertex == 0x0) - { - Info("ReadESD","ESD returned NULL pointer to vertex - assuming (0.0,0.0,0.0)"); - vertexpos[0] = 0.0; - vertexpos[1] = 0.0; - vertexpos[2] = 0.0; - } - else - { - vertex->GetXYZ(vertexpos); - } - - if (AliHBTParticle::GetDebug() > 0) - { - Info("ReadESD","Primary Vertex is (%f,%f,%f)",vertexpos[0],vertexpos[1],vertexpos[2]); - } - - Info("ReadESD","Reading Event %d",fCurrentEvent); - - Int_t ntr = esd->GetNumberOfTracks(); - Info("ReadESD","Found %d tracks.",ntr); - for (Int_t i = 0;iGetTrack(i); - if (esdtrack == 0x0) - { - Error("Next","Can not get track %d", i); - continue; - } - - //if (esdtrack->HasVertexParameters() == kFALSE) - if ((esdtrack->GetStatus() & AliESDtrack::kITSrefit) == kFALSE) - { - if (AliHBTParticle::GetDebug() > 2) - Info("ReadNext","Particle skipped: Data at vertex not available."); - continue; - } - - if (fMustTPC) - { - if ((esdtrack->GetStatus() & AliESDtrack::kTPCin) == kFALSE) - { - if (AliHBTParticle::GetDebug() > 2) - Info("ReadNext","Particle skipped: Was not reconstructed in TPC."); - continue; - } - } - if ((esdtrack->GetStatus() & AliESDtrack::kESDpid) == kFALSE) - { - if (AliHBTParticle::GetDebug() > 2) - Info("ReadNext","Particle skipped: PID BIT is not set."); - continue; - } - - - Double_t extx; - Double_t extp[5]; - esdtrack->GetConstrainedExternalParameters(extx,extp); - if (extp[4] == 0.0) - { - if (AliHBTParticle::GetDebug() > 2) - Info("ReadNext","Track has 0 contrianed curvature -> Probobly parameters never updated. Skipping."); - continue; - } - esdtrack->GetESDpid(pidtable); - esdtrack->GetConstrainedPxPyPz(mom); - esdtrack->GetConstrainedXYZ(pos); - pos[0] -= vertexpos[0];//we are interested only in relative position to Primary vertex at this point - pos[1] -= vertexpos[1]; - pos[2] -= vertexpos[2]; - - Int_t charge = (extp[4] > 0)?1:-1;//if curvature=charg/Pt is positive charge is positive - - //Particle from kinematics - AliHBTParticle* particle = 0; - Bool_t keeppart = kFALSE; - if ( fReadParticles && stack ) - { - if (esdtrack->GetLabel() < 0) continue;//this is fake - we are not able to match any track - TParticle *p = stack->Particle(esdtrack->GetLabel()); - if (p==0x0) - { - Error("ReadNext","Can not find track with such label."); - continue; - } - if (fCheckParticlePID) - { - if(Pass(p->GetPdgCode())) - { - if ( AliHBTParticle::GetDebug() > 5 ) - Info("ReadNext","Simulated Particle PID (%d) did not pass the cut.",p->GetPdgCode()); - continue; //check if we are intersted with particles of this type - } - } -// if(p->GetPdgCode()<0) charge = -1; - particle = new AliHBTParticle(*p,i); - - } - - if(CheckTrack(esdtrack)) continue; - - //Here we apply Bayes' formula - Double_t rc=0.; - for (Int_t s=0; s 2) - Info("ReadNext","Particle rejected since total bayessian PID probab. is zero."); - continue; - } - - for (Int_t s=0; s 4) - { - Info("ReadNext","###########################################################################"); - Info("ReadNext","Momentum: %f %f %f",mom[0],mom[1],mom[2]); - Info("ReadNext","Position: %f %f %f",pos[0],pos[1],pos[2]); - TString msg("Pid list got from track:"); - for (Int_t s = 0;s4) - - AliHBTTrackPoints* tpts = 0x0; - if (fNTrackPoints > 0) - { - tpts = new AliHBTTrackPoints(fNTrackPoints,esdtrack,mf,fdR); - tpts->Move(-vertexpos[0],-vertexpos[1],-vertexpos[2]); - } - - AliHBTTrackPoints* itstpts = 0x0; - if (fITSTrackPoints) - { - itstpts = new AliHBTTrackPoints(AliHBTTrackPoints::kITS,esdtrack); - itstpts->Move(-vertexpos[0],-vertexpos[1],-vertexpos[2]); - } - - - AliHBTClusterMap* cmap = 0x0; - if ( fClusterMap ) - { - cmap = new AliHBTClusterMap(esdtrack); - } - - for (Int_t s = 0; s 5 ) - Info("ReadNext","Probability of being PID %d is zero. Continuing.",pdgcode); - continue; - } - - if(Pass(pdgcode)) - { - if ( AliHBTParticle::GetDebug() > 5 ) - Info("ReadNext","PID (%d) did not pass the cut.",pdgcode); - continue; //check if we are intersted with particles of this type - } - - Double_t mass = pdgdb->GetParticle(pdgcode)->Mass(); - Double_t tEtot = TMath::Sqrt( mom[0]*mom[0] + mom[1]*mom[1] + mom[2]*mom[2] + mass*mass);//total energy of the track - - AliHBTParticle* track = new AliHBTParticle(pdgcode, w[s],i, - mom[0], mom[1], mom[2], tEtot, - pos[0], pos[1], pos[2], 0.); - //copy probabilitis of other species (if not zero) - for (Int_t k = 0; kSetPIDprobability(charge*GetSpeciesPdgCode( (ESpecies)k ),w[k]); - } - - if(Pass(track))//check if meets all criteria of any of our cuts - //if it does not delete it and take next good track - { - if ( AliHBTParticle::GetDebug() > 4 ) - Info("ReadNext","Track did not pass the cut"); - delete track; - continue; - } - - //Single Particle cuts on cluster map and track points rather do not have sense - if (tpts) - { - track->SetTrackPoints(tpts); - } - - if (itstpts) - { - track->SetITSTrackPoints(itstpts); - } - - if (cmap) - { - track->SetClusterMap(cmap); - } - - fTracksEvent->AddParticle(track); - if (particle) fParticlesEvent->AddParticle(particle); - keeppart = kTRUE; - - if (AliHBTParticle::GetDebug() > 4 ) - { - Info("ReadNext","\n\nAdding Particle with incarnation %d",pdgcode); - track->Print(); - if (particle) particle->Print(); - Info("ReadNext","\n----------------------------------------------\n"); - } - }//for (Int_t s = 0; sP() < 0.00001) - { - Info("ReadNext","###################################"); - Info("ReadNext","###################################"); - Info("ReadNext","Track Label %d",esdtrack->GetLabel()); - TParticle *p = stack->Particle(esdtrack->GetLabel()); - Info("ReadNext",""); - p->Print(); - Info("ReadNext",""); - particle->Print(); - TString command("touch BadInput"); - ofstream sfile("BadEvent",ios::out); - sfile<GetNumberOfParticles(), fParticlesEvent->GetNumberOfParticles(), - fNEventsRead,fCurrentEvent,fCurrentDir); - fTrackCounter->Fill(fTracksEvent->GetNumberOfParticles()); - return 0; -} - -/**********************************************************/ - -void AliHBTReaderESD::Rewind() -{ - //rewinds reading - delete fKeyIterator; - delete fFile; - fFile = 0x0; - fKeyIterator = 0x0; - delete fRunLoader; - fRunLoader = 0x0; - fCurrentDir = 0; - fNEventsRead = 0; - if (fTrackCounter) fTrackCounter->Reset(); -} -/**********************************************************/ - -TFile* AliHBTReaderESD::OpenFile(Int_t n) -{ -//opens fFile with kine tree - - const TString& dirname = GetDirName(n); - if (dirname == "") - { - Error("OpenFiles","Can not get directory name"); - return 0x0; - } - TString filename = dirname +"/"+ fESDFileName; - TFile *ret = TFile::Open(filename.Data()); - - if ( ret == 0x0) - { - Error("OpenFiles","Can't open fFile %s",filename.Data()); - return 0x0; - } - if (!ret->IsOpen()) - { - Error("OpenFiles","Can't open fFile %s",filename.Data()); - return 0x0; - } - - if (fReadParticles ) - { - fRunLoader = AliRunLoader::Open(dirname +"/"+ fGAlFileName); - if (fRunLoader == 0x0) - { - Error("OpenFiles","Can't get RunLoader for directory %s",dirname.Data()); - delete ret; - return 0x0; - } - - fRunLoader->LoadHeader(); - if (fRunLoader->LoadKinematics()) - { - Error("Next","Error occured while loading kinematics."); - delete fRunLoader; - delete ret; - return 0x0; - } - } - - return ret; -} -/**********************************************************/ - -Int_t AliHBTReaderESD::GetSpeciesPdgCode(ESpecies spec)//skowron -{ - //returns pdg code from the PID index - //ask jura about charge - switch (spec) - { - case kESDElectron: - return kPositron; - break; - case kESDMuon: - return kMuonPlus; - break; - case kESDPion: - return kPiPlus; - break; - case kESDKaon: - return kKPlus; - break; - case kESDProton: - return kProton; - break; - default: - ::Warning("GetSpeciesPdgCode","Specie with number %d is not defined.",(Int_t)spec); - break; - } - return 0; -} -/********************************************************************/ -Bool_t AliHBTReaderESD::CheckTrack(AliESDtrack* t) const -{ - //Performs check of the track - - if ( (t->GetConstrainedChi2() < fChi2Min) || (t->GetConstrainedChi2() > fChi2Max) ) return kTRUE; - - if ( (t->GetTPCclusters(0x0) < fNTPCClustMin) || (t->GetTPCclusters(0x0) > fNTPCClustMax) ) return kTRUE; - - if (t->GetTPCclusters(0x0) > 0) - { - Float_t chisqpercl = t->GetTPCchi2()/((Double_t)t->GetTPCclusters(0x0)); - if ( (chisqpercl < fTPCChi2PerClustMin) || (chisqpercl > fTPCChi2PerClustMax) ) return kTRUE; - } - - Double_t cc[15]; - t->GetConstrainedExternalCovariance(cc); - - if ( (cc[0] < fC00Min) || (cc[0] > fC00Max) ) return kTRUE; - if ( (cc[2] < fC11Min) || (cc[2] > fC11Max) ) return kTRUE; - if ( (cc[5] < fC22Min) || (cc[5] > fC22Max) ) return kTRUE; - if ( (cc[9] < fC33Min) || (cc[9] > fC33Max) ) return kTRUE; - if ( (cc[14] < fC44Min) || (cc[14] > fC44Max) ) return kTRUE; - - - t->GetInnerExternalCovariance(cc); - - if ( (cc[0] < fTPCC00Min) || (cc[0] > fTPCC00Max) ) return kTRUE; - if ( (cc[2] < fTPCC11Min) || (cc[2] > fTPCC11Max) ) return kTRUE; - if ( (cc[5] < fTPCC22Min) || (cc[5] > fTPCC22Max) ) return kTRUE; - if ( (cc[9] < fTPCC33Min) || (cc[9] > fTPCC33Max) ) return kTRUE; - if ( (cc[14] < fTPCC44Min) || (cc[14] > fTPCC44Max) ) return kTRUE; - - return kFALSE; - -} -/********************************************************************/ - -void AliHBTReaderESD::SetChi2Range(Float_t min, Float_t max) -{ - //sets range of Chi2 per Cluster - fChi2Min = min; - fChi2Max = max; -} -/********************************************************************/ - -void AliHBTReaderESD::SetTPCNClustersRange(Int_t min,Int_t max) -{ - //sets range of Number Of Clusters that tracks have to have - fNTPCClustMin = min; - fNTPCClustMax = max; -} -/********************************************************************/ - -void AliHBTReaderESD::SetTPCChi2PerCluserRange(Float_t min, Float_t max) -{ - //sets range of Chi2 per Cluster - fTPCChi2PerClustMin = min; - fTPCChi2PerClustMax = max; -} -/********************************************************************/ - -void AliHBTReaderESD::SetC00Range(Float_t min, Float_t max) -{ - //Sets range of C00 parameter of covariance matrix of the track - //it defines uncertainty of the momentum - fC00Min = min; - fC00Max = max; -} -/********************************************************************/ - -void AliHBTReaderESD::SetC11Range(Float_t min, Float_t max) -{ - //Sets range of C11 parameter of covariance matrix of the track - //it defines uncertainty of the momentum - fC11Min = min; - fC11Max = max; -} -/********************************************************************/ - -void AliHBTReaderESD::SetC22Range(Float_t min, Float_t max) -{ - //Sets range of C22 parameter of covariance matrix of the track - //it defines uncertainty of the momentum - fC22Min = min; - fC22Max = max; -} -/********************************************************************/ - -void AliHBTReaderESD::SetC33Range(Float_t min, Float_t max) -{ - //Sets range of C33 parameter of covariance matrix of the track - //it defines uncertainty of the momentum - fC33Min = min; - fC33Max = max; -} -/********************************************************************/ - -void AliHBTReaderESD::SetC44Range(Float_t min, Float_t max) -{ - //Sets range of C44 parameter of covariance matrix of the track - //it defines uncertainty of the momentum - fC44Min = min; - fC44Max = max; -} diff --git a/HBTAN/AliHBTReaderESD.h b/HBTAN/AliHBTReaderESD.h deleted file mode 100644 index 30731c3364e..00000000000 --- a/HBTAN/AliHBTReaderESD.h +++ /dev/null @@ -1,136 +0,0 @@ -#ifndef ALIHBTREADERESD_H -#define ALIHBTREADERESD_H -//___________________________________________________________________________ -///////////////////////////////////////////////////////////////////////////// -// // -// Multi file reader for ESD // -// // -// This reader reads tracks from Event Summary Data // -// do not read particles // -// Piotr.Skowronski@cern.ch // -// more info: http://alisoft.cern.ch/people/skowron/analyzer/index.html // -// // -///////////////////////////////////////////////////////////////////////////// - -#include "AliHBTReader.h" -#include -class TFile; -class AliRunLoader; -class AliESD; -class AliESDtrack; - -class AliHBTReaderESD: public AliHBTReader -{ - public: - AliHBTReaderESD(const Char_t* esdfilename = "AliESDs.root", const Char_t* galfilename = "galice.root"); - - AliHBTReaderESD(TObjArray* dirs,const Char_t* esdfilename = "AliESDs.root", const Char_t* galfilename = "galice.root"); - - virtual ~AliHBTReaderESD(); - - void Rewind(); - - void ReadParticles(Bool_t flag){fReadParticles = flag;} - Bool_t ReadsTracks() const {return kTRUE;} - Bool_t ReadsParticles() const {return fReadParticles;} - void SetCheckParticlePID(Bool_t flag){fCheckParticlePID = flag;} - - void ReadDataTPC(){} - void ReadDataITS(){} - - void SetTPCNClustersRange(Int_t min,Int_t max); - void SetTPCChi2PerCluserRange(Float_t min, Float_t max); - - void SetChi2Range(Float_t min, Float_t max); - void SetC00Range(Float_t min, Float_t max); - void SetC11Range(Float_t min, Float_t max); - void SetC22Range(Float_t min, Float_t max); - void SetC33Range(Float_t min, Float_t max); - void SetC44Range(Float_t min, Float_t max); - void SetNumberOfTrackPoints(Int_t n = 5,Float_t dr = 30.0) {fNTrackPoints = n; fdR = dr;} - Int_t GetNumberOfTrackPoints() const {return fNTrackPoints;} - void SetClusterMap(Bool_t flag = kTRUE){fClusterMap = flag;} - void SetITSTrackPoints(Bool_t flag = kTRUE){fITSTrackPoints = flag;} - void MustTPC(Bool_t flag){fMustTPC = flag;} - - enum ESpecies {kESDElectron = 0, kESDMuon, kESDPion, kESDKaon, kESDProton, kNSpecies}; - static Int_t GetSpeciesPdgCode(ESpecies spec);//skowron - - Int_t ReadESD(AliESD* esd); - - protected: - Int_t ReadNext(); - TFile* OpenFile(Int_t evno);//opens files to be read for given event - Bool_t CheckTrack(AliESDtrack* t) const; - - TString fESDFileName;//name of the file with tracks - TString fGAlFileName;//name of the file with tracks - TFile* fFile;//! pointer to current ESD file - AliRunLoader* fRunLoader;//!Run Loader - TIter* fKeyIterator; - Bool_t fReadParticles;//flag indicating wether to read particles from kinematics - Bool_t fCheckParticlePID;//flag indicating to perform the check on PID of simulated particle - - Int_t fNTrackPoints;//number of track points; if==0 track points are not created - Float_t fdR;//spacing between points (along radius) in cm - //Track Points are needed for Anti-Merging Cut - - Bool_t fClusterMap;//Flag indicating if Claster Map should be created for each track - //Claster map is needed for Anti-Splitting Cut - - Bool_t fITSTrackPoints;//Flag indicalting if track positions in ITS are to be read - //currently we use only position at first pixels wich are - //used by anti-merging cut in non-id analysis - - Bool_t fMustTPC;// must be reconstructed in TPC -> reject tracks reconstructed ITS stand alone - - //Cut Parameters specific to TPC tracks - - Int_t fNTPCClustMin;//Number of clusters min value - Int_t fNTPCClustMax;//Number of clusters max value - - Float_t fTPCChi2PerClustMin;//Chi^2 per number of clusters min value - Float_t fTPCChi2PerClustMax;//Chi^2 per number of clusters max value - - - // Required parameters at vertex - Float_t fChi2Min;//Chi^2 min value - Float_t fChi2Max;//Chi^2 max value - - Float_t fC00Min;//C00 (0th diagonal element of covariance matrix) min value - Float_t fC00Max;//C00 (0th diagonal element of covariance matrix) max value - - Float_t fC11Min;//C11 (1th diagonal element of covariance matrix) min value - Float_t fC11Max;//C11 (1th diagonal element of covariance matrix) max value - - Float_t fC22Min;//C22 (2th diagonal element of covariance matrix) min value - Float_t fC22Max;//C22 (2th diagonal element of covariance matrix) max value - - Float_t fC33Min;//C33 (3th diagonal element of covariance matrix) min value - Float_t fC33Max;//C33 (3th diagonal element of covariance matrix) max value - - Float_t fC44Min;//C44 (4th diagonal element of covariance matrix) min value - Float_t fC44Max;//C44 (4th diagonal element of covariance matrix) max value - - // Required parameters at TPC Inner Layer - Float_t fTPCC00Min;//C00 (0th diagonal element of covariance matrix) min value - Float_t fTPCC00Max;//C00 (0th diagonal element of covariance matrix) max value - - Float_t fTPCC11Min;//C11 (1th diagonal element of covariance matrix) min value - Float_t fTPCC11Max;//C11 (1th diagonal element of covariance matrix) max value - - Float_t fTPCC22Min;//C22 (2th diagonal element of covariance matrix) min value - Float_t fTPCC22Max;//C22 (2th diagonal element of covariance matrix) max value - - Float_t fTPCC33Min;//C33 (3th diagonal element of covariance matrix) min value - Float_t fTPCC33Max;//C33 (3th diagonal element of covariance matrix) max value - - Float_t fTPCC44Min;//C44 (4th diagonal element of covariance matrix) min value - Float_t fTPCC44Max;//C44 (4th diagonal element of covariance matrix) max value - - private: - ClassDef(AliHBTReaderESD,2) -}; - - -#endif