From 9c64a93ac42aa8ea93d36f5020609996a94bb7dc Mon Sep 17 00:00:00 2001 From: morsch Date: Tue, 1 Sep 2009 10:46:07 +0000 Subject: [PATCH] Event by event vertex and header. --- EVGEN/AliGenCocktailAfterBurner.cxx | 65 ++++++++++++++++------------- EVGEN/AliGenCocktailAfterBurner.h | 12 ++---- 2 files changed, 40 insertions(+), 37 deletions(-) diff --git a/EVGEN/AliGenCocktailAfterBurner.cxx b/EVGEN/AliGenCocktailAfterBurner.cxx index edc5ddaa30e..891257b8c1a 100644 --- a/EVGEN/AliGenCocktailAfterBurner.cxx +++ b/EVGEN/AliGenCocktailAfterBurner.cxx @@ -55,6 +55,7 @@ ClassImp(AliGenCocktailAfterBurner) fGenerationDone(kFALSE), fInternalStacks(0), fCollisionGeometries(0), + fHeaders(0), fCurrentEvent(0), fActiveStack(0), fActiveEvent(-1), @@ -81,6 +82,7 @@ AliGenCocktailAfterBurner::~AliGenCocktailAfterBurner() } if (fAfterBurnerEntries) delete fAfterBurnerEntries; //delete entries delete[] fCollisionGeometries; + delete[] fHeaders; } /*********************************************************************/ /*********************************************************************/ @@ -162,17 +164,7 @@ void AliGenCocktailAfterBurner::Generate() <<"#AliGenCocktailAfterBurner::Generate#"<SetGenEventHeader(fHeader); + cout<<"Returning event " << fCurrentEvent<GetNumberOfEventsPerRun(); - cout << "Number of events per run" << numberOfEvents << endl; - + Int_t numberOfEvents = AliRunLoader::Instance()->GetNumberOfEventsPerRun(); + cout << "Number of events per run" << numberOfEvents << endl; + TArrayF eventVertex; + eventVertex.Set(3 * (numberOfEvents + fNBgEvents)); + fCurrentEvent=0; //Create stacks - fInternalStacks = new TObjArray(numberOfEvents + fNBgEvents); //Create array of internal stacks - fCollisionGeometries = new AliCollisionGeometry*[numberOfEvents + fNBgEvents]; //Create array of collision geometries - for(i=0;iReset(); - fInternalStacks->Add(stack); + stack = new AliStack(10000); + stack->Reset(); + fInternalStacks->Add(stack); + Vertex(); + for (Int_t j = 0; j < 3; j++) eventVertex[3 * i + j] = fVertex[j]; + } /*********************************************************************/ TIter next(fEntries); @@ -213,7 +213,7 @@ void AliGenCocktailAfterBurner::Generate() cout<<"Generator "<GetName()<SetFirst((partArray->GetEntriesFast())+1); } - fCurrentGenerator->SetVertex(fVertex.At(0), fVertex.At(1), fVertex.At(2)); + // Set the vertex for the generator + Int_t ioff = 3 * i; + fCurrentGenerator->SetVertex(eventVertex.At(ioff), eventVertex.At(ioff + 1), eventVertex.At(ioff + 2)); + fHeader = fHeaders[i]; + // Set the vertex for the cocktail + TArrayF v(3); + for (Int_t j=0; j<3; j++) v[j] = eventVertex.At(ioff + j); + fHeader->SetPrimaryVertex(v); + // Generate event fCurrentGenerator->Generate(); + // entry->SetLast(partArray->GetEntriesFast()); if (fCurrentGenerator->ProvidesCollisionGeometry()) fCollisionGeometries[i] = fCurrentGenerator->CollisionGeometry(); - } + } // event loop /***********************************************/ - } + } // generator loop next.Reset(); while((entry = (AliGenCocktailEntry*)next())) { @@ -279,9 +288,9 @@ void AliGenCocktailAfterBurner::Generate() /*********************************************************************/ // Pass the header to gAlice - fHeader->SetPrimaryVertex(eventVertex); + fHeader = fHeaders[0]; gAlice->SetGenEventHeader(fHeader); - }//else generated + } //else generated } /*********************************************************************/ /*********************************************************************/ @@ -371,9 +380,7 @@ void AliGenCocktailAfterBurner::SetTracks(Int_t stackno) gAlice->GetMCApp()->PushTrack(done, parent, pdg, px, py, pz, e, vx, vy, vz, tof,polx, poly, polz, mech, ntr, weight); -// ANDREAS MORSCH ---------------------------------------------------( SetHighWaterMark(ntr) ; -// ANDREAS MORSCH ---------------------------------------------------) } } diff --git a/EVGEN/AliGenCocktailAfterBurner.h b/EVGEN/AliGenCocktailAfterBurner.h index 06d05e2f378..f01e3808ab4 100644 --- a/EVGEN/AliGenCocktailAfterBurner.h +++ b/EVGEN/AliGenCocktailAfterBurner.h @@ -17,10 +17,9 @@ class AliGenCocktailEntry; class AliStack; - -// ANDREAS MORSCH ------------------------------------- ( class AliCollisionGeometry; -// ANDREAS MORSCH ------------------------------------- ) +class AliGenCocktailEventHeader; + class AliGenCocktailAfterBurner : public AliGenCocktail { @@ -43,9 +42,7 @@ class AliGenCocktailAfterBurner : public AliGenCocktail AliStack* GetStack(Int_t n) const; AliStack* GetActiveStack() const{return fActiveStack;} -// ANDREAS MORSCH ------------------------------------- ( AliCollisionGeometry* GetCollisionGeometry(Int_t n) const; -// ANDREAS MORSCH ------------------------------------- ) AliGenerator* GetCurrentGenerator() const; virtual void SetActiveEventNumber(Int_t actev); @@ -64,9 +61,8 @@ class AliGenCocktailAfterBurner : public AliGenCocktail // TObjArray *fInternalStacks; //! List of internal stacks -// ANDREAS MORSCH ------------------------------------- ( - AliCollisionGeometry** fCollisionGeometries; //! List of Collision Geometries -// ANDREAS MORSCH ------------------------------------- ) + AliCollisionGeometry** fCollisionGeometries; //! List of Collision Geometries + AliGenCocktailEventHeader** fHeaders; //! List of Headers Int_t fCurrentEvent; // Number of current event/stack -- 2.39.3