X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PHOS%2FAliPHOSLoader.cxx;h=5e63c93acdbd87861cf6a94553fd35a7b48842b9;hb=bbc15444a89241e987dc23362f0cf3bc84f5cdc7;hp=72db4be8fd5c09d1c2f37bc42c74ae5e834903da;hpb=bb30e79d53af1a65db324b0777fa1739670f4ae3;p=u%2Fmrichter%2FAliRoot.git diff --git a/PHOS/AliPHOSLoader.cxx b/PHOS/AliPHOSLoader.cxx index 72db4be8fd5..5e63c93acdb 100644 --- a/PHOS/AliPHOSLoader.cxx +++ b/PHOS/AliPHOSLoader.cxx @@ -15,6 +15,26 @@ /* $Id$ */ +/* History of cvs commits: + * + * $Log$ + * Revision 1.18 2006/08/28 10:01:56 kharlov + * Effective C++ warnings fixed (Timur Pocheptsov) + * + * Revision 1.17 2006/08/25 16:00:53 kharlov + * Compliance with Effective C++AliPHOSHit.cxx + * + * Revision 1.16 2006/08/01 12:15:04 cvetan + * Adding a constructor from TFolder. Needed by AliReconstruction plugin scheme + * + * Revision 1.15 2005/07/12 20:07:35 hristov + * Changes needed to run simulation and reconstrruction in the same AliRoot session + * + * Revision 1.14 2005/05/28 14:19:04 schutz + * Compilation warnings fixed by T.P. + * + */ + //_________________________________________________________________________ // A singleton. This class should be used in the analysis stage to get // reconstructed objects: Digits, RecPoints, TrackSegments and RecParticles, @@ -47,7 +67,8 @@ // --- Standard library --- // --- AliRoot header files --- - +#include "AliObjectLoader.h" +#include "AliLog.h" #include "AliPHOSLoader.h" #include "AliPHOS.h" #include "AliPHOSHit.h" @@ -70,15 +91,31 @@ const TString AliPHOSLoader::fgkCpvRecPointsBranchName("PHOSCpvRP");//Name for b const TString AliPHOSLoader::fgkTrackSegmentsBranchName("PHOSTS");//Name for branch with TrackSegments const TString AliPHOSLoader::fgkRecParticlesBranchName("PHOSRP");//Name for branch with Reconstructed Particles //____________________________________________________________________________ -AliPHOSLoader::AliPHOSLoader() - { - fDebug = 0; - } +AliPHOSLoader::AliPHOSLoader() : fBranchTitle(), fcdb(0), fDebug(0) +{ + //def ctor +} +//____________________________________________________________________________ +AliPHOSLoader::AliPHOSLoader(const Char_t *detname,const Char_t *eventfoldername) : + AliLoader(detname, eventfoldername), + fBranchTitle(), fcdb(0), fDebug(0) +{ + //ctor +} +//____________________________________________________________________________ +AliPHOSLoader::AliPHOSLoader(const Char_t *detname,TFolder *topfolder): + AliLoader(detname,topfolder), + fBranchTitle(), fcdb(0), fDebug(0) + +{ + //ctor +} //____________________________________________________________________________ -AliPHOSLoader::AliPHOSLoader(const Char_t *detname,const Char_t *eventfoldername): - AliLoader(detname,eventfoldername) +AliPHOSLoader::AliPHOSLoader(const AliPHOSLoader & obj): + AliLoader(obj),fBranchTitle(obj.GetBranchTitle()),fcdb(obj.CalibrationDB()), + fDebug(obj.GetDebug()) { - fDebug=0; + // Copy constructor } //____________________________________________________________________________ @@ -92,9 +129,11 @@ AliPHOSLoader::~AliPHOSLoader() Clean(fgkCpvRecPointsName); Clean(fgkTracksName); Clean(fgkRecParticlesName); + CleanFolders() ; // set to 0x0 the objgetter in AliGetter ... weird isn it ! - AliPHOSGetter * gime = AliPHOSGetter::Instance() ; - gime->Reset() ; + AliPHOSGetter * gime = AliPHOSGetter::Instance() ; // (AliLoader::GetRunLoader()->GetFileName()).Data()) ; + if (gime) + gime->Reset() ; } //____________________________________________________________________________ @@ -114,7 +153,7 @@ Int_t AliPHOSLoader::SetEvent() Int_t retval = AliLoader::SetEvent(); if (retval) { - Error("SetEvent","AliLoader::SetEvent returned error"); + AliError("returned error"); return retval; } @@ -142,7 +181,7 @@ Int_t AliPHOSLoader::GetEvent() retval = AliLoader::GetEvent(); if (retval) { - Error("GetEvent","AliLoader::GetEvent returned error"); + AliError("returned error"); return retval; } @@ -193,7 +232,7 @@ Int_t AliPHOSLoader::LoadHits(Option_t* opt) if (res) {//oops, error - Error("LoadHits","AliLoader::LoadHits returned error"); + AliError("returned error"); return res; } @@ -212,7 +251,7 @@ Int_t AliPHOSLoader::LoadSDigits(Option_t* opt) res = AliLoader::LoadSDigits(opt); if (res) {//oops, error - Error("PostSDigits","AliLoader::LoadSDigits returned error"); + AliError("returned error"); return res; } return ReadSDigits(); @@ -227,7 +266,7 @@ Int_t AliPHOSLoader::LoadDigits(Option_t* opt) res = AliLoader::LoadDigits(opt); if (res) {//oops, error - Error("LoadDigits","AliLoader::LoadDigits returned error"); + AliError("returned error"); return res; } return ReadDigits(); @@ -241,14 +280,14 @@ Int_t AliPHOSLoader::LoadRecPoints(Option_t* opt) res = AliLoader::LoadRecPoints(opt); if (res) {//oops, error - Error("LoadRecPoints","AliLoader::LoadRecPoints returned error"); + AliError("returned error"); return res; } TFolder * phosFolder = GetDetectorDataFolder(); if ( phosFolder == 0x0 ) { - Error("PostDigits","Can not get detector data folder"); + AliError("Can not get detector data folder"); return 1; } return ReadRecPoints(); @@ -258,12 +297,12 @@ Int_t AliPHOSLoader::LoadRecPoints(Option_t* opt) Int_t AliPHOSLoader::LoadTracks(Option_t* opt) { //Loads Tracks: Open File, Reads Tree and posts, Read Data and Posts - if (GetDebug()) Info("LoadTracks","opt = %s",opt); + AliDebug(1, Form("opt = %s",opt)); Int_t res; res = AliLoader::LoadTracks(opt); if (res) {//oops, error - Error("LoadTracks","AliLoader::LoadTracks returned error"); + AliError("returned error"); return res; } return ReadTracks(); @@ -278,90 +317,93 @@ Int_t AliPHOSLoader::LoadRecParticles(Option_t* opt) res = AliLoader::LoadRecParticles(opt); if (res) {//oops, error - Error("LoadRecParticles","AliLoader::LoadRecParticles returned error"); + AliError("returned error"); return res; } return ReadRecParticles(); } //____________________________________________________________________________ - -Int_t AliPHOSLoader::PostHits() +//PostHits etc. PostXXX must be const - not to hide virtual functions +//from base class AliLoader, but they call non-constant functions ReadXXX +//so I have to const_cast this pointer +Int_t AliPHOSLoader::PostHits()const { // -------------- Hits ------------------------------------------- Int_t reval = AliLoader::PostHits(); if (reval) { - Error("PostHits","AliLoader:: returned error"); + AliError("returned error"); return reval; } - return ReadHits(); + + return const_cast(this)->ReadHits(); } //____________________________________________________________________________ -Int_t AliPHOSLoader::PostSDigits() +Int_t AliPHOSLoader::PostSDigits()const { // -------------- SDigits ------------------------------------------- Int_t reval = AliLoader::PostSDigits(); if (reval) { - Error("PostSDigits","AliLoader::PostSDigits returned error"); + AliError("returned error"); return reval; } - return ReadSDigits(); + return const_cast(this)->ReadSDigits(); } //____________________________________________________________________________ -Int_t AliPHOSLoader::PostDigits() +Int_t AliPHOSLoader::PostDigits()const { // -------------- Digits ------------------------------------------- Int_t reval = AliLoader::PostDigits(); if (reval) { - Error("PostDigits","AliLoader::PostDigits returned error"); + AliError("returned error"); return reval; } - return ReadDigits(); + return const_cast(this)->ReadDigits(); } //____________________________________________________________________________ -Int_t AliPHOSLoader::PostRecPoints() +Int_t AliPHOSLoader::PostRecPoints()const { // -------------- RecPoints ------------------------------------------- Int_t reval = AliLoader::PostRecPoints(); if (reval) { - Error("PostRecPoints","AliLoader::PostRecPoints returned error"); + AliError("returned error"); return reval; } - return ReadRecPoints(); + return const_cast(this)->ReadRecPoints(); } //____________________________________________________________________________ -Int_t AliPHOSLoader::PostRecParticles() +Int_t AliPHOSLoader::PostRecParticles()const { // -------------- RecParticles ------------------------------------------- Int_t reval = AliLoader::PostRecParticles(); if (reval) { - Error("PostRecParticles","AliLoader::PostRecParticles returned error"); + AliError("returned error"); return reval; } - return ReadRecParticles(); + return const_cast(this)->ReadRecParticles(); } //____________________________________________________________________________ -Int_t AliPHOSLoader::PostTracks() +Int_t AliPHOSLoader::PostTracks()const { // -------------- Tracks ------------------------------------------- Int_t reval = AliLoader::PostTracks(); if (reval) { - Error("PostTracks","AliLoader::PostTracks returned error"); + AliError("returned error"); return reval; } - return ReadTracks(); + return const_cast(this)->ReadTracks(); } //____________________________________________________________________________ @@ -388,18 +430,18 @@ Int_t AliPHOSLoader::ReadHits() if(treeh == 0) { - Error("ReadHits"," Cannot read TreeH from folder"); + AliError("Cannot read TreeH from folder"); return 1; } TBranch * hitsbranch = treeh->GetBranch(fDetectorName); if (hitsbranch == 0) { - Error("ReadHits"," Cannot find branch PHOS"); + AliError("Cannot find branch PHOS"); return 1; } - - if (GetDebug()) Info("ReadHits","Reading Hits"); + + AliDebug(1, "Reading Hits"); if (hitsbranch->GetEntries() > 1) { @@ -419,6 +461,7 @@ Int_t AliPHOSLoader::ReadHits() index++ ; } } + tempo->Delete(); delete tempo; } else @@ -449,14 +492,14 @@ Int_t AliPHOSLoader::ReadSDigits() if(treeS==0) { //May happen if file is truncated or new in LoadSDigits - //Error("ReadSDigits","There is no SDigit Tree"); + //AliError("There is no SDigit Tree"); return 0; } TBranch * branch = treeS->GetBranch(fDetectorName); if (branch == 0) {//easy, maybe just a new tree - //Error("ReadSDigits"," Cannot find branch PHOS"); + //AliError("Cannot find branch PHOS"); return 0; } @@ -485,14 +528,14 @@ Int_t AliPHOSLoader::ReadDigits() if(treeD==0) { //May happen if file is truncated or new in LoadSDigits - //Error("ReadDigits","There is no Digit Tree"); + //AliError("There is no Digit Tree"); return 0; } TBranch * branch = treeD->GetBranch(fDetectorName); if (branch == 0) {//easy, maybe just a new tree - //Error("ReadDigits"," Cannot find branch ",fDetectorName.Data()); + //AliError("Cannot find branch ",fDetectorName.Data()); return 0; } @@ -511,7 +554,7 @@ void AliPHOSLoader::Track(Int_t itrack) { if (LoadHits()) { - Error("Track","Can not load hits."); + AliError("Can not load hits."); return; } } @@ -528,32 +571,6 @@ void AliPHOSLoader::Track(Int_t itrack) hitsbranch->GetEntry(itrack); } -//____________________________________________________________________________ -void AliPHOSLoader::ReadTreeQA() -{ - // Read the digit tree gAlice->TreeQA() - // so far only PHOS knows about this Tree - - if(PHOS()->TreeQA()== 0){ - cerr << "ERROR: AliPHOSLoader::ReadTreeQA: can not read TreeQA " << endl ; - return ; - } - - TBranch * qabranch = PHOS()->TreeQA()->GetBranch("PHOS"); - if (!qabranch) { - if (fDebug) - cout << "WARNING: AliPHOSLoader::ReadTreeQA -> Cannot find QA Alarms for PHOS" << endl ; - return ; - } - -// if(!Alarms()) PostQA(); - - qabranch->SetAddress(AlarmsRef()) ; - - qabranch->GetEntry(0) ; - -} - //____________________________________________________________________________ Int_t AliPHOSLoader::ReadRecPoints() @@ -579,7 +596,8 @@ Int_t AliPHOSLoader::ReadRecPoints() if (emcbranch == 0x0) { - Error("ReadRecPoints","Can not get branch with EMC Rec. Points named %s",fgkEmcRecPointsBranchName.Data()); + AliError(Form("Can not get branch with EMC Rec. Points named %s", + fgkEmcRecPointsBranchName.Data())); retval = 1; } else @@ -590,7 +608,8 @@ Int_t AliPHOSLoader::ReadRecPoints() TBranch * cpvbranch = treeR->GetBranch(fgkCpvRecPointsBranchName); if (cpvbranch == 0x0) { - Error("ReadRecPoints","Can not get branch with CPV Rec. Points named %s",fgkCpvRecPointsBranchName.Data()); + AliError(Form("Can not get branch with CPV Rec. Points named %s", + fgkCpvRecPointsBranchName.Data())); retval = 2; } else @@ -629,14 +648,17 @@ Int_t AliPHOSLoader::ReadTracks() { //May happen if file is truncated or new in LoadSDigits, or the file is in update mode, //but tracking was not performed yet for a current event - //Error("ReadTracks","There is no Tree with Tracks"); + //AliError("There is no Tree with Tracks"); return 0; } TBranch * branch = treeT->GetBranch(fgkTrackSegmentsBranchName); +// AliInfo(Form("Branch named %s is opened: 0x%z", +// fgkTrackSegmentsBranchName.Data(),branch)); if (branch == 0) {//easy, maybe just a new tree - Error("ReadTracks"," Cannot find branch named %s",fgkTrackSegmentsBranchName.Data()); + AliError(Form("Cannot find branch named %s", + fgkTrackSegmentsBranchName.Data())); return 0; } @@ -667,14 +689,15 @@ Int_t AliPHOSLoader::ReadRecParticles() //May happen if file is truncated or new in LoadSDigits, //or the file is in update mode, //but tracking was not performed yet for a current event - // Error("ReadRecParticles","There is no Tree with Tracks and Reconstructed Particles"); + // AliError("There is no Tree with Tracks and Reconstructed Particles"); return 0; } TBranch * branch = treeP->GetBranch(fgkRecParticlesBranchName); if (branch == 0) {//easy, maybe just a new tree - Error("ReadRecParticles"," Cannot find branch %s",fgkRecParticlesBranchName.Data()); + AliError(Form("Cannot find branch %s", + fgkRecParticlesBranchName.Data())); return 0; } @@ -702,12 +725,10 @@ AliPHOSLoader* AliPHOSLoader::GetPHOSLoader(const char* eventfoldername) { // Return PHOS loader AliRunLoader* rn = AliRunLoader::GetRunLoader(eventfoldername); - if (rn == 0x0) - { - cerr<<"Error: : " - << "Can not find Run Loader in folder "<(rn->GetLoader("PHOSLoader")); } /***************************************************************************************/ @@ -765,11 +786,13 @@ Bool_t AliPHOSLoader::BranchExists(const TString& recName) TString branchName(branch->GetName() ) ; TString branchTitle(branch->GetTitle() ) ; if ( branchName.BeginsWith(dataname) && branchTitle.BeginsWith(fBranchTitle) ){ - Warning("BranchExists","branch %s with title %s ",dataname.Data(),fBranchTitle.Data()); + AliWarning(Form("branch %s with title %s ", + dataname.Data(),fBranchTitle.Data())); return kTRUE ; } if ( branchName.BeginsWith(zername) && branchTitle.BeginsWith(titleName) ){ - Warning("BranchExists","branch AliPHOS... with title %s ",branch->GetTitle()); + AliWarning(Form("branch AliPHOS... with title %s ", + branch->GetTitle())); return kTRUE ; } } @@ -784,55 +807,57 @@ void AliPHOSLoader::SetBranchTitle(const TString& btitle) fBranchTitle = btitle; ReloadAll(); } + //____________________________________________________________________________ - -void AliPHOSLoader::CleanHits() +//Again, must be const not to hide virtual functions from AliLoader +//but there are calls to non-const functions, so I have to const_cast this pointer +void AliPHOSLoader::CleanHits()const { // Clean Hits array AliLoader::CleanHits(); //Clear an array - TClonesArray* hits = Hits(); + TClonesArray* hits = const_cast(this)->Hits(); if (hits) hits->Clear(); } //____________________________________________________________________________ -void AliPHOSLoader::CleanSDigits() +void AliPHOSLoader::CleanSDigits()const { // Clean SDigits array AliLoader::CleanSDigits(); - TClonesArray* sdigits = SDigits(); + TClonesArray* sdigits = const_cast(this)->SDigits(); if (sdigits) sdigits->Clear(); } //____________________________________________________________________________ -void AliPHOSLoader::CleanDigits() +void AliPHOSLoader::CleanDigits()const { // Clean Digits array AliLoader::CleanDigits(); - TClonesArray* digits = Digits(); + TClonesArray* digits = const_cast(this)->Digits(); if (digits) digits->Clear(); } //____________________________________________________________________________ -void AliPHOSLoader::CleanRecPoints() +void AliPHOSLoader::CleanRecPoints()const { // Clean RecPoints array AliLoader::CleanRecPoints(); - TObjArray* recpoints = EmcRecPoints(); + TObjArray* recpoints = const_cast(this)->EmcRecPoints(); if (recpoints) recpoints->Clear(); - recpoints = CpvRecPoints(); + recpoints = const_cast(this)->CpvRecPoints(); if (recpoints) recpoints->Clear(); } //____________________________________________________________________________ -void AliPHOSLoader::CleanTracks() +void AliPHOSLoader::CleanTracks()const { //Cleans Tracks stuff AliLoader::CleanTracks();//tree //and clear the array - TClonesArray* tracks = TrackSegments(); + TClonesArray* tracks = const_cast(this)->TrackSegments(); if (tracks) tracks->Clear(); } @@ -858,14 +883,14 @@ void AliPHOSLoader::ReadCalibrationDB(const char * database,const char * filenam if(!file) file = TFile::Open(filename); if(!file){ - Error ("ReadCalibrationDB", "Cannot open file %s", filename) ; + AliError(Form("Cannot open file %s", filename)) ; return ; } if(fcdb) fcdb->Delete() ; fcdb = dynamic_cast(file->Get("AliPHOSCalibrationDB")) ; if(!fcdb) - Error ("ReadCalibrationDB", "No database %s in file %s", database, filename) ; + AliError(Form("No database %s in file %s", database, filename)) ; } //____________________________________________________________________________ @@ -912,18 +937,18 @@ void AliPHOSLoader::MakeRecPointsArray() // Add RecPoints array to the data folder if ( EmcRecPoints() == 0x0) { - if (GetDebug()>9) Info("MakeRecPointsArray","Making array for EMC"); + AliDebug(9, "Making array for EMC"); TObjArray* emc = new TObjArray(100) ; emc->SetName(fgkEmcRecPointsName) ; GetDetectorDataFolder()->Add(emc); } if ( CpvRecPoints() == 0x0) - { - if (GetDebug()>9) Info("MakeRecPointsArray","Making array for CPV"); - TObjArray* cpv = new TObjArray(100) ; - cpv->SetName(fgkCpvRecPointsName); - GetDetectorDataFolder()->Add(cpv); + { + AliDebug(9, "Making array for CPV"); + TObjArray* cpv = new TObjArray(100) ; + cpv->SetName(fgkCpvRecPointsName); + GetDetectorDataFolder()->Add(cpv); } }