From: fca Date: Thu, 1 Jul 1999 18:11:31 +0000 (+0000) Subject: Allow reading of multiple events in AliRun, correct the I/O of the header X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=59fe9bd236170a459eb0ec2bb1b3a677bc461f1b Allow reading of multiple events in AliRun, correct the I/O of the header --- diff --git a/STEER/AliRun.cxx b/STEER/AliRun.cxx index ce0730aeaaf..228df7aa04b 100644 --- a/STEER/AliRun.cxx +++ b/STEER/AliRun.cxx @@ -421,16 +421,16 @@ void AliRun::FinishEvent() ResetStack(); // Write Tree headers - Int_t ievent = fHeader.GetEvent(); - char hname[30]; - sprintf(hname,"TreeK%d",ievent); - if (fTreeK) fTreeK->Write(hname); - sprintf(hname,"TreeH%d",ievent); - if (fTreeH) fTreeH->Write(hname); - sprintf(hname,"TreeD%d",ievent); - if (fTreeD) fTreeD->Write(hname); - sprintf(hname,"TreeR%d",ievent); - if (fTreeR) fTreeR->Write(hname); + // Int_t ievent = fHeader.GetEvent(); + // char hname[30]; + // sprintf(hname,"TreeK%d",ievent); + if (fTreeK) fTreeK->Write(); + // sprintf(hname,"TreeH%d",ievent); + if (fTreeH) fTreeH->Write(); + // sprintf(hname,"TreeD%d",ievent); + if (fTreeD) fTreeD->Write(); + // sprintf(hname,"TreeR%d",ievent); + if (fTreeR) fTreeR->Write(); } //_____________________________________________________________________________ @@ -605,7 +605,6 @@ Int_t AliRun::GetEvent(Int_t event) // Connect the Trees Kinematics and Hits for event # event // Set branch addresses // - fHeader.SetEvent(event); // Reset existing structures ResetStack(); @@ -617,6 +616,10 @@ Int_t AliRun::GetEvent(Int_t event) if (fTreeH) delete fTreeH; if (fTreeD) delete fTreeD; if (fTreeR) delete fTreeR; + + // Get header from file + if(fTreeE) fTreeE->GetEntry(event); + else Error("GetEvent","Cannot file Header Tree\n"); // Get Kine Tree from file char treeName[20]; @@ -1007,11 +1010,11 @@ void AliRun::MakeTree(Option_t *option) char *D = strstr(option,"D"); char *R = strstr(option,"R"); // - if (K && !fTreeK) fTreeK = new TTree("TK","Kinematics"); - if (H && !fTreeH) fTreeH = new TTree("TH","Hits"); - if (D && !fTreeD) fTreeD = new TTree("TD","Digits"); + if (K && !fTreeK) fTreeK = new TTree("TreeK0","Kinematics"); + if (H && !fTreeH) fTreeH = new TTree("TreeH0","Hits"); + if (D && !fTreeD) fTreeD = new TTree("TreeD0","Digits"); if (E && !fTreeE) fTreeE = new TTree("TE","Header"); - if (R && !fTreeR) fTreeR = new TTree("TR","Reconstruction"); + if (R && !fTreeR) fTreeR = new TTree("TreeR0","Reconstruction"); if (fTreeH) fTreeH->SetAutoSave(1000000000); //no autosave // // Create a branch for hits/digits for each detector @@ -1128,6 +1131,8 @@ void AliRun::Reset(Int_t run, Int_t idevent) // // Reset all Detectors & kinematics & trees // + char hname[30]; + // ResetStack(); ResetHits(); ResetDigits(); @@ -1135,10 +1140,26 @@ void AliRun::Reset(Int_t run, Int_t idevent) // Initialise event header fHeader.Reset(run,idevent); - if(fTreeK) fTreeK->Reset(); - if(fTreeH) fTreeH->Reset(); - if(fTreeD) fTreeD->Reset(); - if(fTreeR) fTreeR->Reset(); + if(fTreeK) { + fTreeK->Reset(); + sprintf(hname,"TreeK%d",idevent); + fTreeK->SetName(hname); + } + if(fTreeH) { + fTreeH->Reset(); + sprintf(hname,"TreeH%d",idevent); + fTreeH->SetName(hname); + } + if(fTreeD) { + fTreeD->Reset(); + sprintf(hname,"TreeD%d",idevent); + fTreeD->SetName(hname); + } + if(fTreeR) { + fTreeR->Reset(); + sprintf(hname,"TreeR%d",idevent); + fTreeR->SetName(hname); + } } //_____________________________________________________________________________ @@ -1626,6 +1647,9 @@ void AliRun::Streamer(TBuffer &R__b) TNamed::Streamer(R__b); if (!gAlice) gAlice = this; gROOT->GetListOfBrowsables()->Add(this,"Run"); + fTreeE = (TTree*)gDirectory->Get("TE"); + if (fTreeE) fTreeE->SetBranchAddress("Header", &header); + else Error("Streamer","cannot find Header Tree\n"); R__b >> fNtrack; R__b >> fHgwmk; R__b >> fDebug; @@ -1638,7 +1662,13 @@ void AliRun::Streamer(TBuffer &R__b) R__b >> fTrRmax; R__b >> fTrZmax; R__b >> fGenerator; - R__b >> fPDGDB; //Particle factory object! + if(R__v>1) { + R__b >> fPDGDB; //Particle factory object! + fTreeE->GetEntry(0); + } else { + fHeader.SetEvent(0); + fPDGDB = TDatabasePDG::Instance(); //Particle factory object! + } } else { R__b.WriteVersion(AliRun::IsA()); TNamed::Streamer(R__b); diff --git a/STEER/AliRun.h b/STEER/AliRun.h index 521a2210c2d..1a12c951d06 100644 --- a/STEER/AliRun.h +++ b/STEER/AliRun.h @@ -139,7 +139,7 @@ public: // --------------------------- commons ------------------------------------- - ClassDef(AliRun,1) //Supervisor class for all Alice detectors + ClassDef(AliRun,2) //Supervisor class for all Alice detectors }; EXTERN AliRun *gAlice; diff --git a/macros/loadlibs.C b/macros/loadlibs.C index 419f58b3fd7..f066624639a 100644 --- a/macros/loadlibs.C +++ b/macros/loadlibs.C @@ -1,22 +1,22 @@ void loadlibs () { gSystem->Load("$(ROOTSYS)/lib/libEG"); - gSystem->Load("$(ALICE_ROOT)/lib/libSTEER"); - gSystem->Load("$(ALICE_ROOT)/lib/libTGeant3Dummy"); - gSystem->Load("$(ALICE_ROOT)/lib/libdummypythia"); + gSystem->Load("$(ALICE_ROOT)/lib/$(ALICE_TARGET)/libSTEER"); + gSystem->Load("$(ALICE_ROOT)/lib/$(ALICE_TARGET)/libTGeant3Dummy"); + gSystem->Load("$(ALICE_ROOT)/lib/$(ALICE_TARGET)/libdummypythia"); gSystem->Load("$(ROOTSYS)/lib/libEGPythia"); - gSystem->Load("$(ALICE_ROOT)/lib/libEVGEN"); - gSystem->Load("$(ALICE_ROOT)/lib/libFMD"); - gSystem->Load("$(ALICE_ROOT)/lib/libMUON"); - gSystem->Load("$(ALICE_ROOT)/lib/libPHOSdummy"); - gSystem->Load("$(ALICE_ROOT)/lib/libPHOS"); - gSystem->Load("$(ALICE_ROOT)/lib/libPMD"); - gSystem->Load("$(ALICE_ROOT)/lib/libRICH"); - gSystem->Load("$(ALICE_ROOT)/lib/libSTRUCT"); - gSystem->Load("$(ALICE_ROOT)/lib/libTOF"); - gSystem->Load("$(ALICE_ROOT)/lib/libTPC"); - gSystem->Load("$(ALICE_ROOT)/lib/libTRD"); - gSystem->Load("$(ALICE_ROOT)/lib/libZDC"); - gSystem->Load("$(ALICE_ROOT)/lib/libITS"); - gSystem->Load("$(ALICE_ROOT)/lib/libCASTOR"); + gSystem->Load("$(ALICE_ROOT)/lib/$(ALICE_TARGET)/libEVGEN"); + gSystem->Load("$(ALICE_ROOT)/lib/$(ALICE_TARGET)/libFMD"); + gSystem->Load("$(ALICE_ROOT)/lib/$(ALICE_TARGET)/libMUON"); + gSystem->Load("$(ALICE_ROOT)/lib/$(ALICE_TARGET)/libPHOSdummy"); + gSystem->Load("$(ALICE_ROOT)/lib/$(ALICE_TARGET)/libPHOS"); + gSystem->Load("$(ALICE_ROOT)/lib/$(ALICE_TARGET)/libPMD"); + gSystem->Load("$(ALICE_ROOT)/lib/$(ALICE_TARGET)/libRICH"); + gSystem->Load("$(ALICE_ROOT)/lib/$(ALICE_TARGET)/libSTRUCT"); + gSystem->Load("$(ALICE_ROOT)/lib/$(ALICE_TARGET)/libTOF"); + gSystem->Load("$(ALICE_ROOT)/lib/$(ALICE_TARGET)/libTPC"); + gSystem->Load("$(ALICE_ROOT)/lib/$(ALICE_TARGET)/libTRD"); + gSystem->Load("$(ALICE_ROOT)/lib/$(ALICE_TARGET)/libZDC"); + gSystem->Load("$(ALICE_ROOT)/lib/$(ALICE_TARGET)/libITS"); + gSystem->Load("$(ALICE_ROOT)/lib/$(ALICE_TARGET)/libCASTOR"); }