From: mtadel Date: Tue, 26 Jun 2007 15:27:17 +0000 (+0000) Subject: Invert the modality of run-loader and esd loading: always try to open them and compla... X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=a1896a82d3192c10d7f4b81fc37ec8d832d55e63 Invert the modality of run-loader and esd loading: always try to open them and complain only when asked to. --- diff --git a/EVE/Alieve/EventAlieve.cxx b/EVE/Alieve/EventAlieve.cxx index b071372b527..5219c772ff7 100644 --- a/EVE/Alieve/EventAlieve.cxx +++ b/EVE/Alieve/EventAlieve.cxx @@ -39,39 +39,14 @@ ClassImp(Event) Event* Alieve::gEvent = 0; -Bool_t Alieve::Event::fgUseRunLoader = kTRUE; -Bool_t Alieve::Event::fgUseESDTree = kTRUE; -Bool_t Alieve::Event::fgAvoidExcOnOpen = kTRUE; +Bool_t Alieve::Event::fgAssertRunLoader = kFALSE; +Bool_t Alieve::Event::fgAssertESDTree = kFALSE; TString Alieve::Event::fgCdbUri("local://$ALICE_ROOT"); AliMagF* Alieve::Event::fgMagField = 0; -void Event::Initialize(Bool_t use_runloader, Bool_t use_esd, - Bool_t avoid_exc_on_open) -{ - static const Exc_t eH("Event::Initialize "); - - fgUseRunLoader = use_runloader; - fgUseESDTree = use_esd; - fgAvoidExcOnOpen = avoid_exc_on_open; - - /* - if(fgUseRunLoader == false && fgUseESDTree == false) - throw(eH + "should use at least one data source."); - - if(fgUseRunLoader) { - AssertMacro("loadlibs.C"); - } - else if(fgUseESDTree) { - gSystem->Load("libESD.so"); - } - */ -} - -/**************************************************************************/ - Event::Event() : EventBase(), @@ -107,65 +82,92 @@ void Event::Open() Int_t runNo = -1; - if(fgUseRunLoader) + TString ga_path(Form("%s/galice.root", fPath.Data())); + if(gSystem->AccessPathName(ga_path, kReadPermission) == kFALSE) { - TString ga_path(Form("%s/galice.root", fPath.Data())); - if(gSystem->AccessPathName(ga_path, kReadPermission)) - { - if (fgAvoidExcOnOpen) { - Warning(eH, "RunLoader not initialized."); - goto end_run_loader; - } else { - throw(eH + "can not read '" + ga_path + "'."); - } - } fRunLoader = AliRunLoader::Open(ga_path); - if(!fRunLoader) - throw(eH + "failed opening ALICE run loader from '" + ga_path + "'."); + if (fRunLoader) { TString alice_path = fPath + "/"; fRunLoader->SetDirName(alice_path); + + if (fRunLoader->LoadgAlice() != 0) + Warning(eH, "failed loading gAlice via run-loader."); + + if (fRunLoader->LoadHeader() == 0) + { + runNo = fRunLoader->GetHeader()->GetRun(); + } + else + { + Warning(eH, "failed loading run-loader's header."); + delete fRunLoader; + fRunLoader = 0; + } + } + else // run-loader open failed + { + Warning(eH, "failed opening ALICE run-loader from '%s'.", ga_path.Data()); } - if(fRunLoader->LoadgAlice() != 0) - throw(eH + "failed loading gAlice."); - if(fRunLoader->LoadHeader() != 0) - throw(eH + "failed loading header."); - runNo = fRunLoader->GetHeader()->GetRun(); } -end_run_loader: + else // galice not readable + { + Warning(eH, "can not read '%s'.", ga_path.Data()); + } + if (fRunLoader == 0) + { + if(fgAssertRunLoader) + throw(eH + "Bootstraping of run-loader failed. Its precence was requested."); + else + Warning(eH, "Bootstraping of run-loader failed."); + } + - if(fgUseESDTree) + TString esd_path(Form("%s/AliESDs.root", fPath.Data())); + if(gSystem->AccessPathName(esd_path, kReadPermission) == kFALSE) { - TString p(Form("%s/AliESDs.root", fPath.Data())); - if(gSystem->AccessPathName(p, kReadPermission)) + fESDFile = new TFile(esd_path); + if(fESDFile->IsZombie() == kFALSE) { - if (fgAvoidExcOnOpen) { - Warning(eH, "ESD not initialized."); - goto end_esd_loader; - } else { - throw(eH + "can not read '" + p + "'."); + fESD = new AliESD(); + fESDTree = (TTree*) fESDFile->Get("esdTree"); + if (fESDTree != 0) + { + fESD->ReadFromTree(fESDTree); + runNo = fESD->GetESDRun()->GetRunNumber(); + + // Check if ESDfriends exists and attach the branch + TString p = Form("%s/AliESDfriends.root", fPath.Data()); + if(gSystem->AccessPathName(p, kReadPermission) == kFALSE) + { + fESDfriendExists = kTRUE; + fESDTree->SetBranchStatus ("ESDfriend*", 1); + fESDTree->SetBranchAddress("ESDfriend.", &fESDfriend); + } + } + else // esdtree == 0 + { + delete fESDFile; fESDFile = 0; + Warning(eH, "failed getting the esdTree."); } } - fESDFile = new TFile(p); - if(fESDFile->IsZombie()) { + else // esd tfile is zombie + { delete fESDFile; fESDFile = 0; - throw(eH + "failed opening ALICE ESD from '" + p + "'."); + Warning(eH, "failed opening ESD from '%s'.", esd_path.Data()); } - - fESD = new AliESD(); - fESDTree = (TTree*) fESDFile->Get("esdTree"); - if(fESDTree == 0) - throw(eH + "failed getting the esdTree."); - fESD->ReadFromTree(fESDTree); - runNo = fESD->GetESDRun()->GetRunNumber(); - - // Check if ESDfriends exists and attach the branch - p = Form("%s/AliESDfriends.root", fPath.Data()); - if(gSystem->AccessPathName(p, kReadPermission) == kFALSE) + } + else // esd not readable + { + Warning(eH, "can not read ESD file '%s'.", esd_path.Data()); + } + if (fESDTree == 0) + { + if (fgAssertESDTree) { - fESDfriendExists = kTRUE; - fESDTree->SetBranchStatus ("ESDfriend*", 1); - fESDTree->SetBranchAddress("ESDfriend.", &fESDfriend); + throw(eH + "ESD not initialized. Its precence was requested."); + } else { + Warning(eH, "ESD not initialized."); } } @@ -180,7 +182,6 @@ end_run_loader: cdb->SetRun(runNo); } -end_esd_loader: SetName(Form("Event %d", fEventId)); SetTitle(fPath); } diff --git a/EVE/Alieve/EventAlieve.h b/EVE/Alieve/EventAlieve.h index 2db1d0b51a2..7b09a4c2218 100644 --- a/EVE/Alieve/EventAlieve.h +++ b/EVE/Alieve/EventAlieve.h @@ -39,19 +39,16 @@ protected: TList fNewEventCommands; - static Bool_t fgUseRunLoader; - static Bool_t fgUseESDTree; - static Bool_t fgAvoidExcOnOpen; - static TString fgCdbUri; + static Bool_t fgAssertRunLoader; + static Bool_t fgAssertESDTree; static AliMagF* fgMagField; public: - static void Initialize(Bool_t use_runloader=kTRUE, Bool_t use_esd=kTRUE, - Bool_t avoid_exc_on_open=kTRUE); - static void SetCdbUri(const Text_t* cdb) { if (cdb) fgCdbUri = cdb; } + static void SetAssertElements(Bool_t assertRunloader, Bool_t assertEsd) + { fgAssertRunLoader = assertRunloader; fgAssertESDTree = assertEsd; } Event(); Event(TString path, Int_t ev=0);