ClassImp(AliPHOSGetter)
AliPHOSGetter * AliPHOSGetter::fgObjGetter = 0 ;
+ TFile * AliPHOSGetter::fFile = 0 ;
//____________________________________________________________________________
AliPHOSGetter::AliPHOSGetter(const char* headerFile, const char* branchTitle )
if ( fgObjGetter )
if((fgObjGetter->fBranchTitle.CompareTo(branchTitle) == 0) &&
- (fgObjGetter->fHeaderFile.CompareTo(headerFile)==0))
+ (fgObjGetter->fHeaderFile.CompareTo(headerFile)==0)) {
+ fFile->cd() ;
return fgObjGetter ;
+ }
else
fgObjGetter->~AliPHOSGetter() ; // delete it already exists another version
// the hierarchy is //Folders/RunMC/Event/Data/Primaries
if ( !fPrimariesFolder ) {
- cerr << "ERROR: AliPHOSGetter::Post PrimariesRef -> Folder //" << fPrimariesFolder << " not found!" << endl;
- return 0;
+ cerr << "ERROR: AliPHOSGetter::PrimariesRef -> Folder //" << fPrimariesFolder << " not found!" << endl;
+ abort() ;
}
TFolder * primariesFolder = dynamic_cast<TFolder *>(fPrimariesFolder->FindObject("Primaries")) ;
if ( !primariesFolder ) {
- cerr << "ERROR: AliPHOSGetter::Post PrimariesRef -> Folder //" << fPrimariesFolder << "/Primaries/ not found!" << endl;
- return 0;
+ cerr << "ERROR: AliPHOSGetter::PrimariesRef -> Folder //" << fPrimariesFolder << "/Primaries/ not found!" << endl;
+ abort() ;
}
TObject * p = primariesFolder->FindObject("Primaries") ;
if(!p) {
cerr << "ERROR: AliPHOSGetter::PrimariesRef -> " << primariesFolder->GetName() << "/Primaries not found !" << endl ;
- return 0 ;
+ abort() ;
}
else
return primariesFolder->GetListOfFolders()->GetObjectRef(p) ;
// the hierarchy is //Folders/RunMC/Event/Data/PHOS/Hits
if ( !fHitsFolder ) {
- cerr << "ERROR: AliPHOSGetter::Post H -> Folder //" << fHitsFolder << " not found!" << endl;
- return 0;
+ cerr << "ERROR: AliPHOSGetter::HitsRef -> Folder //" << fHitsFolder << " not found!" << endl;
+ abort() ;
}
TFolder * phosFolder = dynamic_cast<TFolder *>(fHitsFolder->FindObject("PHOS")) ;
if ( !phosFolder ) {
- cerr << "ERROR: AliPHOSGetter::Post HRef -> Folder //" << fHitsFolder << "/PHOS/ not found!" << endl;
- return 0;
+ cerr << "ERROR: AliPHOSGetter::HitsRef -> Folder //" << fHitsFolder << "/PHOS/ not found!" << endl;
+ abort() ;
}
TObject * h = phosFolder->FindObject("Hits") ;
if(!h) {
- cerr << "ERROR: AliPHOSGetter::HRef -> " << phosFolder->GetName() << "/Hits not found !" << endl ;
- return 0 ;
+ cerr << "ERROR: AliPHOSGetter::HitsRef -> " << phosFolder->GetName() << "/Hits not found !" << endl ;
+ abort() ;
}
else
return phosFolder->GetListOfFolders()->GetObjectRef(h) ;
// the hierarchy is //Folders/RunMC/Event/Data/PHOS/SDigits/filename/SDigits
if ( !fSDigitsFolder ) {
- cerr << "ERROR: AliPHOSGetter::Post SRef -> Folder //" << fSDigitsFolder << " not found!" << endl;
- return 0;
+ cerr << "ERROR: AliPHOSGetter::SDigitsRef -> Folder //" << fSDigitsFolder << " not found!" << endl;
+ abort() ;
}
TFolder * phosFolder = dynamic_cast<TFolder *>(fSDigitsFolder->FindObject("PHOS")) ;
if ( !phosFolder ) {
- cerr << "ERROR: AliPHOSGetter::Post SRef -> Folder //" << fSDigitsFolder << "/PHOS/ not found!" << endl;
- return 0;
+ cerr << "ERROR: AliPHOSGetter::SDigitsRef -> Folder //" << fSDigitsFolder << "/PHOS/ not found!" << endl;
+ abort() ;
}
TFolder * phosSubFolder = 0 ;
phosSubFolder = dynamic_cast<TFolder *>(phosFolder->FindObject(fHeaderFile)) ;
if(!phosSubFolder) {
- cerr << "ERROR: AliPHOSGetter::Post SRef -> Folder //Folders/RunMC/Event/Data/PHOS/" << file << "not found!" << endl;
- return 0;
+ cerr << "ERROR: AliPHOSGetter::DigitesSRef -> Folder //Folders/RunMC/Event/Data/PHOS/" << file << "not found!" << endl;
+ abort() ;
}
TObject * dis = phosSubFolder->FindObject(name) ;
- if(!dis)
- return 0 ;
+ if(!dis){
+ cerr << "ERROR: AliPHOSGetter::DigitesSRef -> object " << name << " not found! " << endl ;
+ abort() ;
+ }
else
return phosSubFolder->GetListOfFolders()->GetObjectRef(dis) ;
// the hierarchy is //Folders/Run/Event/Data/PHOS/Digits/name
if ( !fDigitsFolder ) {
- cerr << "ERROR: AliPHOSGetter::Post DRef -> Folder //" << fDigitsFolder << " not found!" << endl;
- return 0;
+ cerr << "ERROR: AliPHOSGetter::DigitsRef -> Folder //" << fDigitsFolder << " not found!" << endl;
+ abort() ;
}
TFolder * phosFolder = dynamic_cast<TFolder*>(fDigitsFolder->FindObject("PHOS")) ;
if ( !phosFolder ) {
- cerr << "ERROR: AliPHOSGetter::DRef -> Folder //" << fDigitsFolder << "/PHOS/ not found!" << endl;
- return 0;
+ cerr << "ERROR: AliPHOSGetter::DigitsRef -> Folder //" << fDigitsFolder << "/PHOS/ not found!" << endl;
+ abort() ;
}
TObject * d = phosFolder->FindObject(name) ;
- if(!d)
- return 0 ;
+ if(!d) {
+ cerr << "ERROR: AliPHOSGetter::DigitsRef -> object " << name << " not found! " << endl ;
+ abort() ;
+ }
else
return phosFolder->GetListOfFolders()->GetObjectRef(d) ;
if ( !fRecoFolder ) {
cerr << "ERROR: AliPHOSGetter::EmcRecPointsRef -> Folder //" << fRecoFolder->GetName() << " not found!" << endl;
- return 0 ;
+ abort() ;
}
TFolder * phosFolder = dynamic_cast<TFolder*>(fRecoFolder->FindObject("PHOS/EMCARecPoints")) ;
if ( !phosFolder ) {
cerr << "ERROR: AliPHOSGetter::EmcRecPointsRef -> Folder //" << fRecoFolder->GetName() << "/PHOS/EMCARecPoints/ not found!" << endl;
- return 0;
+ abort() ;
}
TObject * erp = phosFolder->FindObject(name ) ;
if ( !erp ) {
- return 0 ;
+ cerr << "ERROR: AliPHOSGetter::EmcRecPointsRef -> object " << name << " not found! " << endl ;
+ abort() ;
}
return phosFolder->GetListOfFolders()->GetObjectRef(erp) ;
-
+
}
//____________________________________________________________________________
// the hierarchy is //Folders/Run/Event/RecData/PHOS/CPVRecPoints/name
if ( !fRecoFolder ) {
- cerr << "ERROR: AliPHOSGetter::EmcRecPointsRef -> Folder //" << fRecoFolder->GetName() << " not found!" << endl;
- return 0 ;
+ cerr << "ERROR: AliPHOSGetter::CpvRecPointsRef -> Folder //" << fRecoFolder->GetName() << " not found!" << endl;
+ abort() ;
}
TFolder * phosFolder = dynamic_cast<TFolder*>(fRecoFolder->FindObject("PHOS/CPVRecPoints")) ;
if ( !phosFolder ) {
cerr << "ERROR: AliPHOSGetter::CpvRecPointsRef -> Folder //" << fRecoFolder->GetName() << "/PHOS/CPVRecPoints/" << endl;
- return 0;
+ abort() ;
}
TObject * crp = phosFolder->FindObject(name ) ;
if ( !crp ) {
- return 0 ;
+ cerr << "ERROR: AliPHOSGetter::CpvRecPointsRef -> object " << name << " not found " << endl ;
+ abort() ;
}
return phosFolder->GetListOfFolders()->GetObjectRef(crp) ;
-
+
}
//____________________________________________________________________________
TTask * tasks = dynamic_cast<TTask*>(fTasksFolder->FindObject("Reconstructioner")) ;
if ( !tasks ) {
- cerr << "ERROR: AliPHOSGetter::Post RerRef -> Task //" << fTasksFolder << "/Reconstructioner not found!" << endl;
- return 0 ;
+ cerr << "ERROR: AliPHOSGetter::ClusterizerRef -> Task //" << fTasksFolder << "/Reconstructioner not found!" << endl;
+ abort() ;
}
TTask * phos = dynamic_cast<TTask*>(tasks->GetListOfTasks()->FindObject("PHOS")) ;
if ( !phos ) {
- cerr <<"WARNING: AliPHOSGetter::Post RerRef -> //" << fTasksFolder << "/Reconstructioner/PHOS" << endl;
- return 0 ;
+ cerr <<"WARNING: AliPHOSGetter::ClusterizerRef -> //" << fTasksFolder << "/Reconstructioner/PHOS" << endl;
+ abort() ;
}
TList * l = phos->GetListOfTasks() ;
if(clu)
return l->GetObjectRef(clu) ;
else{
- cerr << "ERROR: AliPHOSGetter::Post RerRef -> Task //" << fTasksFolder << "/Reconstructioner/clusterizer name not found!" << endl;
+ cerr << "ERROR: AliPHOSGetter::ClusterizerRef -> Task //" << fTasksFolder << "/Reconstructioner/clusterizer name not found!" << endl;
abort() ;
}
}
if ( !fRecoFolder ) {
cerr << "ERROR: AliPHOSGetter::TrackSegmentsRef -> Folder //" << fRecoFolder->GetName() << "not found!" << endl;
- return 0 ;
+ abort() ;
}
TFolder * phosFolder = dynamic_cast<TFolder*>(fRecoFolder->FindObject("PHOS/TrackSegments")) ;
if ( !phosFolder ) {
cerr << "ERROR: AliPHOSGetter::TrackSegmentsRef -> Folder //" << fRecoFolder->GetName() << "/PHOS/TrackSegments/ not found!" << endl;
- return 0;
+ abort() ;
}
TObject * tss = phosFolder->FindObject(name) ;
if (!tss) {
- return 0 ;
+ cerr << "ERROR: AliPHOSGetter::TrackSegmentsRef -> object " << name << " not found! " << endl ;
+ abort() ;
}
return phosFolder->GetListOfFolders()->GetObjectRef(tss) ;
}
TTask * tasks = dynamic_cast<TTask*>(fTasksFolder->FindObject("Reconstructioner")) ;
if ( !tasks ) {
- cerr << "ERROR: AliPHOSGetter::Post TerRef -> Task //" << fTasksFolder << "/Reconstructioner not found!" << endl;
- return 0 ;
+ cerr << "ERROR: AliPHOSGetter::TSMakerRef -> Task //" << fTasksFolder << "/Reconstructioner not found!" << endl;
+ abort() ;
}
TTask * phos = dynamic_cast<TTask*>(tasks->GetListOfTasks()->FindObject("PHOS")) ;
if ( !phos ) {
- cerr <<"WARNING: AliPHOSGetter::Post TerRef -> //" << fTasksFolder << "/Reconstructioner/PHOS not found!" << endl;
- return 0 ;
+ cerr <<"WARNING: AliPHOSGetter::TSMakerRef -> //" << fTasksFolder << "/Reconstructioner/PHOS not found!" << endl;
+ abort() ;
}
TList * l = phos->GetListOfTasks() ;
if(tsm)
return l->GetObjectRef(tsm) ;
- else
- {
- cerr << "ERROR: AliPHOSGetter::Post TerRef -> Task //" << fTasksFolder << "/Reconstructioner/TrackSegmentMarker name not found!" << endl;
+ else {
+ cerr << "ERROR: AliPHOSGetter::TSMakerRef -> Task //" << fTasksFolder << "/Reconstructioner/TrackSegmentMarker name not found!" << endl;
abort() ;
- }
-
+ }
}
//____________________________________________________________________________
if ( !fRecoFolder ) {
cerr << "ERROR: AliPHOSGetter::RecParticlesRef -> Folder//" << fRecoFolder->GetName() << " not found!" << endl;
- return 0 ;
+ abort() ;
}
TFolder * phosFolder = dynamic_cast<TFolder*>(fRecoFolder->FindObject("PHOS/RecParticles")) ;
if ( !phosFolder ) {
cerr << "ERROR: AliPHOSGetter::RecParticlesRef -> Folder //" << fRecoFolder->GetName() << "/PHOS/RecParticles/ not found!" << endl;
- return 0;
+ abort() ;
}
TObject * tss = phosFolder->FindObject(name ) ;
if (!tss) {
- return 0 ;
+ cerr << "ERROR: AliPHOSGetter::RecParticlesRef -> object " << name << " not found! " << endl ;
+ abort() ;
}
return phosFolder->GetListOfFolders()->GetObjectRef(tss) ;
}
TTask * tasks = dynamic_cast<TTask*>(fTasksFolder->FindObject("Reconstructioner")) ;
if ( !tasks ) {
- cerr << "ERROR: AliPHOSGetter::Post PerRef -> Task //" << fTasksFolder << "/Reconstructioner not found!" << endl;
- return 0 ;
+ cerr << "ERROR: AliPHOSGetter::PIDRef -> Task //" << fTasksFolder << "/Reconstructioner not found!" << endl;
+ abort() ;
}
TTask * phos = dynamic_cast<TTask*>(tasks->GetListOfTasks()->FindObject("PHOS")) ;
if ( !phos ) {
- cerr <<"WARNING: AliPHOSGetter::Post PerRef -> //" << fTasksFolder << "/Reconstructioner/PHOS not found!" << endl;
- return 0 ;
+ cerr << "ERROR: AliPHOSGetter::PIDRef -> //" << fTasksFolder << "/Reconstructioner/PHOS not found!" << endl;
+ abort() ;
}
TList * l = phos->GetListOfTasks() ;
if(pid)
return l->GetObjectRef(pid) ;
- else{
- cerr << "ERROR: AliPHOSGetter::Post PerRef -> Task //" << fTasksFolder << "/Reconstructioner/PID name not found!" << endl;
+ else {
+ cerr << "ERROR: AliPHOSGetter::PIDRef -> Task //" << fTasksFolder << "/Reconstructioner/PID name not found!" << endl;
abort() ;
}
// the hierarchy is //Folders/Run/Conditions/QA/PHOS
if ( !fQAFolder ) {
- cerr << "ERROR: AliPHOSGetter::Post QRef -> Folder //" << fQAFolder << " not found!" << endl;
- return 0;
+ cerr << "ERROR: AliPHOSGetter::AlarmsRef -> Folder //" << fQAFolder << " not found!" << endl;
+ abort() ;
}
TFolder * phosFolder = dynamic_cast<TFolder *>(fQAFolder->FindObject("PHOS")) ;
if ( !phosFolder ) {
- cerr << "ERROR: AliPHOSGetter::Post QRef -> Folder //" << fQAFolder << "/PHOS/ not found!" << endl;
- return 0;
+ cerr << "ERROR: AliPHOSGetter::AlarmsRef -> Folder //" << fQAFolder << "/PHOS/ not found!" << endl;
+ abort() ;
}
return fQAFolder->GetListOfFolders()->GetObjectRef(phosFolder) ;
// This is a feature needed by PID to be able to reconstruct several times particles (each time a ther title is given)
// from a given set of TrackSegments (with a given name)
// This is why any is NOT used to read the branch of RecParticles
+ // any migh have become obsolete : to be checked
// See AliPHOSPIDv1
if(gAlice->TreeR()== 0){
TBranch * cpvbranch = 0 ;
TBranch * clusterizerbranch = 0 ;
Bool_t phosemcrpfound = kFALSE, phoscpvrpfound = kFALSE, clusterizerfound = kFALSE ;
+
while ( (branch = static_cast<TBranch*>(next())) && (!phosemcrpfound || !phoscpvrpfound || !clusterizerfound) )
+
if(strcmp(branch->GetTitle(), fRecPointsTitle)==0 || any) {
if ( strcmp(branch->GetName(), "PHOSEmcRP")==0) {
emcbranch = branch ;