From eef4b1609d1fdf06bb923af45f1ee9361064ed67 Mon Sep 17 00:00:00 2001 From: hristov Date: Tue, 9 Oct 2001 18:00:35 +0000 Subject: [PATCH] Temporary fix to provide unique event number in the simulation (J.Chudoba) --- STEER/AliHeader.cxx | 33 +++++++++++++++++++++++++++++++++ STEER/AliHeader.h | 12 +++++++++--- STEER/AliRun.cxx | 26 ++++++++++++++++---------- STEER/AliRun.h | 5 ++++- 4 files changed, 62 insertions(+), 14 deletions(-) diff --git a/STEER/AliHeader.cxx b/STEER/AliHeader.cxx index 3d34bffe828..cd9c0bb5e43 100644 --- a/STEER/AliHeader.cxx +++ b/STEER/AliHeader.cxx @@ -15,6 +15,9 @@ /* $Log$ +Revision 1.9 2001/05/23 08:54:53 hristov +Typo corrected + Revision 1.8 2001/05/23 08:50:01 hristov Weird inline removed @@ -49,6 +52,7 @@ AliHeader::AliHeader() fEvent=0; fStack=0; fGenHeader = 0; + fEventNrInRun=0; } AliHeader::AliHeader(Int_t run, Int_t event) @@ -65,6 +69,22 @@ AliHeader::AliHeader(Int_t run, Int_t event) fGenHeader = 0; } +AliHeader::AliHeader(Int_t run, Int_t event, Int_t evNumber) +{ + // + // Standard constructor + // + fRun=run; + fNvertex=0; + fNprimary=0; + fNtrack=0; + fEvent=event; + fEventNrInRun=evNumber; + fStack=0; + fGenHeader = 0; +} + + void AliHeader::Reset(Int_t run, Int_t event) { // @@ -77,6 +97,19 @@ void AliHeader::Reset(Int_t run, Int_t event) fEvent=event; } +void AliHeader::Reset(Int_t run, Int_t event, Int_t evNumber) +{ + // + // Resets the header with new run and event number + // + fRun=run; + fNvertex=0; + fNprimary=0; + fNtrack=0; + fEvent=event; + fEventNrInRun=evNumber; +} + void AliHeader::Print(const char* option) { // diff --git a/STEER/AliHeader.h b/STEER/AliHeader.h index 352a77509ec..946a59e4333 100644 --- a/STEER/AliHeader.h +++ b/STEER/AliHeader.h @@ -6,7 +6,6 @@ /* $Id$ */ #include -#include class AliStack; class AliGenEventHeader; @@ -14,9 +13,11 @@ class AliHeader : public TObject { public: AliHeader(); AliHeader(Int_t run, Int_t event); + AliHeader(Int_t run, Int_t eventSerialNr, Int_t evNrInRun); virtual ~AliHeader() {} virtual void Reset(Int_t run, Int_t event); + virtual void Reset(Int_t run, Int_t eventSerialNr, Int_t evNrInRun); virtual void SetRun(Int_t run) {fRun = run;} virtual Int_t GetRun() const {return fRun;} @@ -33,6 +34,10 @@ public: virtual void SetEvent(Int_t event) {fEvent = event;} virtual Int_t GetEvent() const {return fEvent;} + + virtual void SetEventNrInRun(Int_t event) {fEventNrInRun = event;} + virtual Int_t GetEventNrInRun() const {return fEventNrInRun;} + virtual AliStack* Stack() const; virtual void SetStack(AliStack* stack); @@ -46,11 +51,12 @@ protected: Int_t fNvertex; //Number of vertices Int_t fNprimary; //Number of primary tracks Int_t fNtrack; //Number of tracks - Int_t fEvent; //Event number + Int_t fEvent; //Event number (serial in the file) + Int_t fEventNrInRun; //Unique Event number within the run AliStack *fStack; //Pointer to stack AliGenEventHeader* fGenHeader; //Event Header for Generator - ClassDef(AliHeader,1) //Alice event header + ClassDef(AliHeader,2) //Alice event header }; #endif diff --git a/STEER/AliRun.cxx b/STEER/AliRun.cxx index b283cc6c0a3..43b21a10472 100644 --- a/STEER/AliRun.cxx +++ b/STEER/AliRun.cxx @@ -15,6 +15,9 @@ /* $Log$ +Revision 1.78 2001/10/04 15:30:56 hristov +Changes to accommodate the set of PHOS folders and tasks (Y.Schutz) + Revision 1.77 2001/09/04 15:09:11 hristov fTreeE->Branch replaced temporary by fTreeE->BranchOld to avoid data corruption in case of many events per file @@ -267,6 +270,7 @@ AliRun::AliRun() fHeader = 0; fRun = 0; fEvent = 0; + fEventNrInRun = 0; fStack = 0; fModules = 0; fGenerator = 0; @@ -342,6 +346,7 @@ AliRun::AliRun(const char *name, const char *title) fHeader = new AliHeader(); fRun = 0; fEvent = 0; + fEventNrInRun = 0; // fDisplay = 0; // @@ -648,6 +653,7 @@ void AliRun::FinishEvent() if (fTreeH) fTreeH->Write(0,TObject::kOverwrite); ++fEvent; + ++fEventNrInRun; } //_____________________________________________________________________________ @@ -902,7 +908,7 @@ Int_t AliRun::GetEvent(Int_t event) fEvent=event; //MI change - return fStack->GetNtrack(); + return fHeader->GetNtrack(); } //_____________________________________________________________________________ @@ -1335,7 +1341,7 @@ void AliRun::BeginEvent() char hname[30]; // // Initialise event header - fHeader->Reset(fRun,fEvent); + fHeader->Reset(fRun,fEvent,fEventNrInRun); // fStack->BeginEvent(fEvent); @@ -1734,27 +1740,27 @@ void AliRun::StepManager(Int_t id) //_____________________________________________________________________________ void AliRun::Streamer(TBuffer &R__b) { - // Stream an object of class AliRun. + // Stream an object of class AliRun. if (R__b.IsReading()) { if (!gAlice) gAlice = this; - + AliRun::Class()->ReadBuffer(R__b, this); // gROOT->GetListOfBrowsables()->Add(this,"Run"); - + fTreeE = (TTree*)gDirectory->Get("TE"); if (fTreeE) { - fTreeE->SetBranchAddress("Header", &fHeader); + fTreeE->SetBranchAddress("Header", &fHeader); } - + else Error("Streamer","cannot find Header Tree\n"); fTreeE->GetEntry(0); - + gRandom = fRandom; } else { - AliRun::Class()->WriteBuffer(R__b, this); - } + AliRun::Class()->WriteBuffer(R__b, this); + } } diff --git a/STEER/AliRun.h b/STEER/AliRun.h index 2e574720659..2752258351c 100644 --- a/STEER/AliRun.h +++ b/STEER/AliRun.h @@ -72,6 +72,8 @@ public: Int_t GetEvNumber() const {return fEvent;} Int_t GetRunNumber() const {return fRun;} void SetRunNumber(Int_t run) {fRun=run;} + void SetEventNrInRun(Int_t event) {fEventNrInRun=event;} + Int_t GetEventNrInRun() const {return fEventNrInRun;} Int_t GetEventsPerRun() const {return fEventsPerRun;} Int_t GetDebug() const {return fDebug;} AliModule *GetModule(const char *name) const; @@ -166,6 +168,7 @@ protected: Int_t fRun; //! Current run number Int_t fEvent; //! Current event number (from 1) + Int_t fEventNrInRun; //! Current unique event number in run Int_t fEventsPerRun; // Number of events per run Int_t fDebug; // Debug flag AliHeader *fHeader; // Header information @@ -203,7 +206,7 @@ private: AliRun(const AliRun &right) {} AliRun& operator = (const AliRun &) {return *this;} - ClassDef(AliRun,4) //Supervisor class for all Alice detectors + ClassDef(AliRun,5) //Supervisor class for all Alice detectors }; R__EXTERN AliRun *gAlice; -- 2.39.3