X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=PHOS%2FAliPHOSLoader.cxx;h=d777f16bb24c11eae2606badf9acf41c331d56f8;hp=d76e6fa09c833ee7b7b0955a4a351508fdc07095;hb=90415c5491ca6cb190944e741952f049581f2c74;hpb=bfae5a5d725511e7592598e9e6c427ad0f29c8c4 diff --git a/PHOS/AliPHOSLoader.cxx b/PHOS/AliPHOSLoader.cxx index d76e6fa09c8..d777f16bb24 100644 --- a/PHOS/AliPHOSLoader.cxx +++ b/PHOS/AliPHOSLoader.cxx @@ -72,9 +72,9 @@ #include "AliPHOSLoader.h" #include "AliPHOS.h" #include "AliPHOSHit.h" -#include "AliPHOSCalibrationDB.h" -#include "AliPHOSGetter.h" +using std::cout; +using std::endl; ClassImp(AliPHOSLoader) @@ -91,32 +91,28 @@ 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() : fBranchTitle(), fcdb(0), fDebug(0) +AliPHOSLoader::AliPHOSLoader() : fBranchTitle(), fDebug(0), fTmpHits(0x0) { //def ctor + fTmpHits = new TClonesArray("AliPHOSHit",1000); } //____________________________________________________________________________ AliPHOSLoader::AliPHOSLoader(const Char_t *detname,const Char_t *eventfoldername) : AliLoader(detname, eventfoldername), - fBranchTitle(), fcdb(0), fDebug(0) + fBranchTitle(), fDebug(0), fTmpHits(0x0) { //ctor } //____________________________________________________________________________ AliPHOSLoader::AliPHOSLoader(const Char_t *detname,TFolder *topfolder): - AliLoader(detname,topfolder), - fBranchTitle(), fcdb(0), fDebug(0) + AliLoader(detname,topfolder), + fBranchTitle(), fDebug(0), fTmpHits(0x0) { //ctor + fTmpHits = new TClonesArray("AliPHOSHit",1000); } -//____________________________________________________________________________ -AliPHOSLoader::AliPHOSLoader(const AliPHOSLoader & obj): - AliLoader(obj),fBranchTitle(obj.GetBranchTitle()),fcdb(obj.CalibrationDB()), - fDebug(obj.GetDebug()) -{ - // Copy constructor -} + //____________________________________________________________________________ AliPHOSLoader::~AliPHOSLoader() @@ -130,10 +126,6 @@ AliPHOSLoader::~AliPHOSLoader() Clean(fgkTracksName); Clean(fgkRecParticlesName); CleanFolders() ; -// // set to 0x0 the objgetter in AliGetter ... weird isn it ! -// AliPHOSGetter * gime = AliPHOSGetter::Instance() ; // (AliLoader::GetRunLoader()->GetFileName()).Data()) ; -// if (gime) -// gime->Reset() ; } //____________________________________________________________________________ @@ -147,7 +139,7 @@ void AliPHOSLoader::CleanFolders() Int_t AliPHOSLoader::SetEvent() { //Cleans loaded stuff and and sets Files and Directories -// do not post any data to folder/tasks +// do not post any data to folder Int_t retval = AliLoader::SetEvent(); @@ -197,16 +189,16 @@ Int_t AliPHOSLoader::GetEvent() return 0; } -//____________________________________________________________________________ -const AliPHOS * AliPHOSLoader::PHOS() -{ - // returns the PHOS object - AliPHOS * phos = dynamic_cast(GetModulesFolder()->FindObject(fDetectorName)); - if ( phos == 0x0) - if (fDebug) - cout << "WARNING: AliPHOSLoader::PHOS -> PHOS module not found in Folders" << endl ; - return phos ; -} +// //____________________________________________________________________________ +// const AliPHOS * AliPHOSLoader::PHOS() +// { +// // returns the PHOS object +// AliPHOS * phos = dynamic_cast(GetModulesFolder()->FindObject(fDetectorName)); +// if ( phos == 0x0) +// if (fDebug) +// cout << "WARNING: AliPHOSLoader::PHOS -> PHOS module not found in Folders" << endl ; +// return phos ; +// } //____________________________________________________________________________ Int_t AliPHOSLoader::LoadHits(Option_t* opt) @@ -407,58 +399,47 @@ Int_t AliPHOSLoader::ReadHits() // Reads data from TreeH and stores it in TClonesArray that sits in DetectorDataFolder // TObject** hitref = HitsRef(); - if(hitref == 0x0) - { - MakeHitsArray(); - hitref = HitsRef(); - } + if(hitref == 0x0) { + MakeHitsArray(); + hitref = HitsRef(); + } - TClonesArray* hits = dynamic_cast(*hitref); + TClonesArray* hits = static_cast(*hitref); TTree* treeh = TreeH(); - if(treeh == 0) - { + if(treeh == 0) { AliError("Cannot read TreeH from folder"); return 1; } TBranch * hitsbranch = treeh->GetBranch(fDetectorName); - if (hitsbranch == 0) - { + if (hitsbranch == 0) { AliError("Cannot find branch PHOS"); return 1; } AliDebug(1, "Reading Hits"); - if (hitsbranch->GetEntries() > 1) - { - TClonesArray * tempo = new TClonesArray("AliPHOSHit",1000); + if (hitsbranch->GetEntries() > 1) { - hitsbranch->SetAddress(&tempo); + hitsbranch->SetAddress(&fTmpHits); Int_t index = 0 ; - Int_t i = 0 ; - for (i = 0 ; i < hitsbranch->GetEntries(); i++) - { + for (Int_t i = 0 ; i < hitsbranch->GetEntries(); i++) { hitsbranch->GetEntry(i) ; - Int_t j = 0 ; - for ( j = 0 ; j < tempo->GetEntries() ; j++) - { - AliPHOSHit* hit = (AliPHOSHit*)tempo->At(j); - new((*hits)[index]) AliPHOSHit( *hit ) ; - index++ ; - } - } - tempo->Delete(); - delete tempo; - } - else - { + for (Int_t j = 0 ; j < fTmpHits->GetEntriesFast() ; j++) { + AliPHOSHit* hit = (AliPHOSHit*)fTmpHits->At(j); + new((*hits)[index]) AliPHOSHit( *hit ) ; + index++ ; + } + } + fTmpHits->Clear(); + } + else { hitsbranch->SetAddress(hitref); hitsbranch->GetEntry(0) ; - } - + } + return 0; } //____________________________________________________________________________ @@ -492,7 +473,7 @@ Int_t AliPHOSLoader::ReadSDigits() return 0; } - branch->SetAddress(SDigitsRef()); + branch->SetAddress(sdref); branch->GetEntry(0); return 0; } @@ -608,13 +589,17 @@ Int_t AliPHOSLoader::ReadRecPoints() } Int_t ii ; - Int_t maxemc = emca->GetEntries() ; - for ( ii= 0 ; ii < maxemc ; ii++ ) - EmcRecPoints()->Add(emca->At(ii)) ; - - Int_t maxcpv = cpva->GetEntries() ; - for ( ii= 0 ; ii < maxcpv ; ii++ ) - CpvRecPoints()->Add(cpva->At(ii)) ; + if (emca != 0) { + Int_t maxemc = emca->GetEntries() ; + for ( ii= 0 ; ii < maxemc ; ii++ ) + EmcRecPoints()->Add(emca->At(ii)) ; + } + + if (cpva != 0) { + Int_t maxcpv = cpva->GetEntries() ; + for ( ii= 0 ; ii < maxcpv ; ii++ ) + CpvRecPoints()->Add(cpva->At(ii)) ; + } return retval; } @@ -851,34 +836,6 @@ void AliPHOSLoader::CleanRecParticles() } //____________________________________________________________________________ -void AliPHOSLoader::ReadCalibrationDB(const char * database,const char * filename) -{ - // Read calibration data base from file - if(fcdb && (strcmp(database,fcdb->GetTitle())==0)) - return ; - - TFile * file = gROOT->GetFile(filename) ; - if(!file) - file = TFile::Open(filename); - if(!file){ - AliError(Form("Cannot open file %s", filename)) ; - return ; - } - if(fcdb) - fcdb->Delete() ; - fcdb = dynamic_cast(file->Get("AliPHOSCalibrationDB")) ; - if(!fcdb) - AliError(Form("No database %s in file %s", database, filename)) ; -} -//____________________________________________________________________________ - -// AliPHOSSDigitizer* AliPHOSLoader::PHOSSDigitizer() -// { -// //return PHOS SDigitizer -// return dynamic_cast(SDigitizer()) ; -// } - -//____________________________________________________________________________ void AliPHOSLoader::MakeHitsArray() { // Add Hits array to the data folder