X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;ds=sidebyside;f=STEER%2FAliRun.cxx;h=dd476a8435abcab5ca181e42ae7a1dc8a257bee1;hb=12e26c263331e2ed324ce5b54927f438b1242985;hp=c915d254f1ed80bf21145f74d4cfe724d3a4ac52;hpb=6178db7bd7c2808742f6cb409e261de3ccc4f66f;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliRun.cxx b/STEER/AliRun.cxx index c915d254f1e..dd476a8435a 100644 --- a/STEER/AliRun.cxx +++ b/STEER/AliRun.cxx @@ -49,7 +49,9 @@ #include #include #include +#include // +#include "AliLog.h" #include "AliDetector.h" #include "AliDisplay.h" #include "AliHeader.h" @@ -62,10 +64,10 @@ #include "AliPDG.h" #include "AliRun.h" #include "AliStack.h" +#include "AliAlignObj.h" AliRun *gAlice; - ClassImp(AliRun) //_______________________________________________________________________ @@ -74,19 +76,20 @@ AliRun::AliRun(): fEvent(0), fEventNrInRun(0), fEventsPerRun(0), - fDebug(0), fModules(0), fGeometry(0), fMCApp(0), fDisplay(0), fField(0), - fMC(0), fNdets(0), fInitDone(kFALSE), fLego(0), fPDGDB(0), //Particle factory object - fConfigFunction("\0"), + fConfigFunction(""), fRandom(0), + fIsRootGeometry(kFALSE), + fGeometryFileName(""), + fTriggerDescriptor(""), fRunLoader(0x0) { // @@ -103,19 +106,20 @@ AliRun::AliRun(const AliRun& arun): fEvent(0), fEventNrInRun(0), fEventsPerRun(0), - fDebug(0), fModules(0), fGeometry(0), fMCApp(0), fDisplay(0), fField(0), - fMC(0), fNdets(0), fInitDone(kFALSE), fLego(0), fPDGDB(0), //Particle factory object fConfigFunction("\0"), fRandom(0), + fIsRootGeometry(kFALSE), + fGeometryFileName(""), + fTriggerDescriptor(""), fRunLoader(0x0) { // @@ -131,19 +135,20 @@ AliRun::AliRun(const char *name, const char *title): fEvent(0), fEventNrInRun(0), fEventsPerRun(0), - fDebug(0), fModules(new TObjArray(77)), // Support list for the Detectors fGeometry(0), fMCApp(0), fDisplay(0), fField(0), - fMC(gMC), fNdets(0), fInitDone(kFALSE), fLego(0), fPDGDB(TDatabasePDG::Instance()), //Particle factory object! fConfigFunction("Config();"), fRandom(new TRandom3()), + fIsRootGeometry(kFALSE), + fGeometryFileName(""), + fTriggerDescriptor(""), fRunLoader(0x0) { // @@ -214,7 +219,7 @@ AliRun::~AliRun() //_______________________________________________________________________ void AliRun::Copy(TObject &) const { - Fatal("Copy","Not implemented!\n"); + AliFatal("Not implemented!"); } //_______________________________________________________________________ @@ -272,6 +277,13 @@ void AliRun::SetField(AliMagF* magField) fField->ReadField(); } +//_______________________________________________________________________ +void AliRun::SetRootGeometry(Bool_t flag) +{ +// Instruct application that the geometry is to be retreived from a root file. + fIsRootGeometry = flag; + if (flag) gMC->SetRootGeometry(); +} //_______________________________________________________________________ void AliRun::SetField(Int_t type, Int_t version, Float_t scale, Float_t maxField, const char* filename) @@ -295,7 +307,7 @@ void AliRun::SetField(Int_t type, Int_t version, Float_t scale, fField = new AliMagFDM("Map4",filename,type,scale,maxField); fField->ReadField(); } else { - Warning("SetField","Invalid map %d\n",version); + AliWarning(Form("Invalid map %d",version)); } } @@ -304,7 +316,7 @@ void AliRun::SetField(Int_t type, Int_t version, Float_t scale, void AliRun::InitLoaders() { //creates list of getters - if (GetDebug()) Info("InitLoaders",""); + AliDebug(1, ""); TIter next(fModules); AliModule *mod; while((mod = (AliModule*)next())) @@ -313,11 +325,11 @@ void AliRun::InitLoaders() AliDetector *det = dynamic_cast(mod); if (det) { - if (GetDebug()) Info("InitLoaders"," Adding %s ",det->GetName()); + AliDebug(2, Form("Adding %s", det->GetName())); fRunLoader->AddLoader(det); } } - if (GetDebug()) Info("InitLoaders","Done"); + AliDebug(1, "Done"); } //_____________________________________________________________________________ @@ -329,7 +341,7 @@ void AliRun::FinishRun() if(fLego) { - if (GetDebug()) Info("FinishRun"," Finish Lego"); + AliDebug(1, "Finish Lego"); fRunLoader->CdGAFile(); fLego->FinishRun(); } @@ -338,11 +350,11 @@ void AliRun::FinishRun() TIter next(fModules); AliModule *detector; while((detector = dynamic_cast(next()))) { - if (GetDebug()) Info("FinishRun"," %s->FinishRun()",detector->GetName()); + AliDebug(2, Form("%s->FinishRun()", detector->GetName())); detector->FinishRun(); } - if (GetDebug()) Info("FinishRun"," fRunLoader->WriteHeader(OVERWRITE)"); + AliDebug(1, "fRunLoader->WriteHeader(OVERWRITE)"); fRunLoader->WriteHeader("OVERWRITE"); // Write AliRun info and all detectors parameters @@ -351,7 +363,7 @@ void AliRun::FinishRun() fRunLoader->Write(0,TObject::kOverwrite);//write RunLoader itself // Clean tree information - if (GetDebug()) Info("FinishRun"," fRunLoader->Stack()->FinishRun()"); + AliDebug(1, "fRunLoader->Stack()->FinishRun()"); fRunLoader->Stack()->FinishRun(); if(fMCApp) fMCApp->FinishRun(); @@ -419,7 +431,7 @@ Int_t AliRun::GetEvent(Int_t event) // if (fRunLoader == 0x0) { - Error("GetEvent","RunLoader is not set. Can not load data."); + AliError("RunLoader is not set. Can not load data."); return -1; } /*****************************************/ @@ -537,11 +549,12 @@ void AliRun::InitMC(const char *setup) Announce(); if(fInitDone) { - Warning("Init","Cannot initialise AliRun twice!\n"); + AliWarning("Cannot initialise AliRun twice!"); return; } - fMCApp=new AliMC(GetName(),GetTitle()); + if (!fMCApp) + fMCApp=new AliMC(GetName(),GetTitle()); gROOT->LoadMacro(setup); gInterpreter->ProcessLine(fConfigFunction.Data()); @@ -552,9 +565,6 @@ void AliRun::InitMC(const char *setup) fNdets = fModules->GetLast()+1; - // Added also after in case of interactive initialisation of modules - fNdets = fModules->GetLast()+1; - TIter next(fModules); for(Int_t i=0; iGetNumberOfEvents(); - if (GetDebug()) Info("RunReco","Found %d events",nev); + AliDebug(1, Form("Found %d events", nev)); Int_t nFirst = first; Int_t nLast = (last < 0)? nev : last; for (Int_t nevent = nFirst; nevent <= nLast; nevent++) { - if (GetDebug()) Info("RunReco","Processing event %d",nevent); + AliDebug(1, Form("Processing event %d", nevent)); GetEvent(nevent); Digits2Reco(selected); } @@ -685,7 +695,7 @@ void AliRun::Tree2Tree(Option_t *option, const char *selected) if (oS) { - if (GetDebug()) Info("Tree2Tree","Processing Hits2SDigits for %s ...",detector->GetName()); + AliDebug(1, Form("Processing Hits2SDigits for %s ...", detector->GetName())); loader->LoadHits("read"); if (loader->TreeS() == 0x0) loader->MakeTree("S"); detector->MakeBranch(option); @@ -696,7 +706,7 @@ void AliRun::Tree2Tree(Option_t *option, const char *selected) } if (oD) { - if (GetDebug()) Info("Tree2Tree","Processing SDigits2Digits for %s ...",detector->GetName()); + AliDebug(1, Form("Processing SDigits2Digits for %s ...", detector->GetName())); loader->LoadSDigits("read"); if (loader->TreeD() == 0x0) loader->MakeTree("D"); detector->MakeBranch(option); @@ -707,7 +717,7 @@ void AliRun::Tree2Tree(Option_t *option, const char *selected) } if (oR) { - if (GetDebug()) Info("Tree2Tree","Processing Digits2Reco for %s ...",detector->GetName()); + AliDebug(1, Form("Processing Digits2Reco for %s ...", detector->GetName())); loader->LoadDigits("read"); if (loader->TreeR() == 0x0) loader->MakeTree("R"); detector->MakeBranch(option); @@ -831,7 +841,7 @@ void AliRun::Field(const Double_t* x, Double_t *b) const for (Int_t j=0; j<3; j++) b[j] = bfloat[j]; } else { - printf("No mag field defined!\n"); + AliError("No mag field defined!"); b[0]=b[1]=b[2]=0.; } } @@ -868,7 +878,7 @@ Int_t AliRun::GetEvNumber() const //Returns number of current event if (fRunLoader == 0x0) { - Error("GetEvent","RunLoader is not set. Can not load data."); + AliError("RunLoader is not set. Can not load data."); return -1; } @@ -887,13 +897,13 @@ void AliRun::SetRunLoader(AliRunLoader* rloader) TString evfoldname; TFolder* evfold = fRunLoader->GetEventFolder(); if (evfold) evfoldname = evfold->GetName(); - else Warning("SetRunLoader","Did not get Event Folder from Run Loader"); + else AliWarning("Did not get Event Folder from Run Loader"); if ( fRunLoader->GetAliRun() ) {//if alrun already exists in folder if (fRunLoader->GetAliRun() != this ) {//and is different than this - crash - Fatal("AliRun","AliRun is already in Folder and it is not this object"); + AliFatal("AliRun is already in Folder and it is not this object"); return;//pro forma }//else do nothing } @@ -914,11 +924,11 @@ void AliRun::SetRunLoader(AliRunLoader* rloader) AliLoader* loader = fRunLoader->GetLoader(detector); if (loader == 0x0) { - Error("SetRunLoader","Can not get loader for detector %s",detector->GetName()); + AliError(Form("Can not get loader for detector %s", detector->GetName())); } else { - if (GetDebug()) Info("SetRunLoader","Setting loader for detector %s",detector->GetName()); + AliDebug(1, Form("Setting loader for detector %s", detector->GetName())); detector->SetLoader(loader); } } @@ -934,9 +944,23 @@ void AliRun::AddModule(AliModule* mod) if (strlen(mod->GetName()) == 0) return; if (GetModuleID(mod->GetName()) >= 0) return; - if (GetDebug()) Info("AddModule","%s",mod->GetName()); + AliDebug(1, mod->GetName()); if (fRunLoader == 0x0) AliConfig::Instance()->Add(mod); else AliConfig::Instance()->Add(mod,fRunLoader->GetEventFolder()->GetName()); Modules()->Add(mod); + + fNdets++; +} + +// added by Alberto Colla +//_____________________________________________________________________________ +/*inline*/ Bool_t AliRun::IsFileAccessible(const char* fnam, EAccessMode mode) +{ return !gSystem->AccessPathName(fnam,mode);} + +//______________________________________________________ +/*inline*/ Bool_t AliRun::IsFileAccessible(Char_t* name,EAccessMode mode) +{ + TString str = name; gSystem->ExpandPathName(str); + return !gSystem->AccessPathName(str.Data(),mode); }