X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=JETAN%2FAliJetParticlesReaderESD.cxx;h=d58d34a657f04651fd8c9c121a90ee98c60d5816;hp=b6b9e1765ae96f721cf42de17e9e795600ba2b10;hb=bad753b172033bf568492d0af8d4c8af3e5dee0b;hpb=301a24f1751ac317f40dd603e7cb5d8d21bca88f diff --git a/JETAN/AliJetParticlesReaderESD.cxx b/JETAN/AliJetParticlesReaderESD.cxx index b6b9e1765ae..d58d34a657f 100644 --- a/JETAN/AliJetParticlesReaderESD.cxx +++ b/JETAN/AliJetParticlesReaderESD.cxx @@ -11,6 +11,7 @@ // // ////////////////////////////////////////////////////////////////////// +#include #include #include #include @@ -70,85 +71,6 @@ AliJetParticlesReaderESD::~AliJetParticlesReaderESD() if(fFile) delete fFile; } - -Int_t AliJetParticlesReaderESD::ReadNext() -{ - //reads next event from fFile - - do // is OK even if 0 dirs specified, - { // in that case we try to read from "./" - if (fFile == 0) - { - fFile = OpenFile(fCurrentDir); - if (fFile == 0) - { - Error("ReadNext","Can't get fFile for dir no. %d",fCurrentDir); - fCurrentDir++; - continue; - } - - fCurrentEvent = 0; - //fFile->GetListOfKeys()->Print(); - - if(fTree) delete fTree; - fTree = dynamic_cast(fFile->Get("esdTree")); - if(fTree) - fTree->SetBranchAddress("ESD",&fESD); - else - fKeyIterator = new TIter(fFile->GetListOfKeys()); - } - - if(fTree) - { - if(AliKalmanTrack::GetConvConst()<=0.) - AliKalmanTrack::SetMagneticField(0.5); - if(fCurrentEvent>=fTree->GetEntries()) - { - fCurrentDir++; - delete fTree; - fTree = 0; - delete fFile; - fFile = 0; - continue; - } - fTree->GetEvent(fCurrentEvent); - } - else - { // "old" way via ESD objects stored in root file - TKey* key = (TKey*)fKeyIterator->Next(); - if (key == 0) - { - fCurrentDir++; - delete fKeyIterator; - fKeyIterator = 0; - delete fFile; //we have to assume there are no more ESD objects in the fFile - fFile = 0; - continue; - } - TString esdname = "ESD"; - esdname+=fCurrentEvent; - if(fESD) delete fESD; - fESD = dynamic_cast(fFile->Get(esdname)); - if (fESD == 0) - { - Info("ReadNext","Can't find AliESD object named %s",esdname.Data()); - fCurrentDir++; - delete fKeyIterator; - fKeyIterator = 0; - delete fFile;//we have to assume there is no more ESD objects in the fFile - fFile = 0; - continue; - } - } - ReadESD(fESD); - fCurrentEvent++; - fNEventsRead++; - return kTRUE;//success -> read one event - } while(fCurrentDir < GetNumberOfDirs()); - //end of loop over directories specified in fDirs Obj Array - return kFALSE; //no more directories to read -} - /**********************************************************/ Int_t AliJetParticlesReaderESD::ReadESD(AliESD* esd) @@ -209,6 +131,7 @@ Int_t AliJetParticlesReaderESD::ReadESD(AliESD* esd) //loop over tracks for (Int_t i = 0;iGetTrack(i); if (kesdtrack == 0) { @@ -216,9 +139,9 @@ Int_t AliJetParticlesReaderESD::ReadESD(AliESD* esd) continue; } - if ((kesdtrack->GetStatus() & fPassFlag) != fPassFlag) + if ((kesdtrack->GetStatus() & fPassFlag)!=fPassFlag) { - Info("ReadNext","Particle skipped: %ud.",kesdtrack->GetStatus()); + Info("ReadNext","Particle skipped: %u.",kesdtrack->GetStatus()); continue; } @@ -271,6 +194,86 @@ void AliJetParticlesReaderESD::Rewind() /**********************************************************/ +Int_t AliJetParticlesReaderESD::ReadNext() +{ + //reads next event from fFile + + do // is OK even if 0 dirs specified, + { // in that case we try to read from "./" + if (fFile == 0) + { + fFile = OpenFile(fCurrentDir); + if (fFile == 0) + { + Error("ReadNext","Can't get fFile for dir no. %d",fCurrentDir); + fCurrentDir++; + continue; + } + + fCurrentEvent = 0; + //fFile->GetListOfKeys()->Print(); + + if(fTree) delete fTree; + fTree = dynamic_cast(fFile->Get("esdTree")); + if(fTree) + fTree->SetBranchAddress("ESD",&fESD); + else + fKeyIterator = new TIter(fFile->GetListOfKeys()); + } + + if(fTree) + { + if(AliKalmanTrack::GetConvConst()<=0.) + AliKalmanTrack::SetMagneticField(0.5); + if(fCurrentEvent>=fTree->GetEntries()) + { + fCurrentDir++; + delete fTree; + fTree = 0; + delete fFile; + fFile = 0; + continue; + } + fTree->GetEvent(fCurrentEvent); + } + else + { // "old" way via ESD objects stored in root file + TKey* key = (TKey*)fKeyIterator->Next(); + if (key == 0) + { + fCurrentDir++; + delete fKeyIterator; + fKeyIterator = 0; + delete fFile; //we have to assume there are no more ESD objects in the fFile + fFile = 0; + continue; + } + TString esdname = "ESD"; + esdname+=fCurrentEvent; + if(fESD) delete fESD; + fESD = dynamic_cast(fFile->Get(esdname)); + if (fESD == 0) + { + Info("ReadNext","Can't find AliESD object named %s",esdname.Data()); + fCurrentDir++; + delete fKeyIterator; + fKeyIterator = 0; + delete fFile;//we have to assume there is no more ESD objects in the fFile + fFile = 0; + continue; + } + } + ReadESD(fESD); + fCurrentEvent++; + fNEventsRead++; + return kTRUE;//success -> read one event + } while(fCurrentDir < GetNumberOfDirs()); + //end of loop over directories specified in fDirs Obj Array + return kFALSE; //no more directories to read +} + +/**********************************************************/ + TFile* AliJetParticlesReaderESD::OpenFile(Int_t n) { //opens fFile with kine tree