Correctly retrieve the number of events per run during event generation.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 27 Apr 2009 15:25:46 +0000 (15:25 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 27 Apr 2009 15:25:46 +0000 (15:25 +0000)
EVGEN/AliGenCocktailAfterBurner.cxx
STEER/AliRunLoader.cxx
STEER/AliRunLoader.h
STEER/AliSimulation.cxx

index 265c6af..0c56b9a 100644 (file)
@@ -175,7 +175,9 @@ void AliGenCocktailAfterBurner::Generate()
     else
     { //Here we are in the first call of the method
       fCurrentEvent=0;
-      Int_t numberOfEvents = AliRunLoader::Instance()->GetNumberOfEvents() + 1;
+      Int_t numberOfEvents = AliRunLoader::Instance()->GetNumberOfEventsPerRun();
+      cout << Nnumber of events per run" <<  numberOfEvents << endl;
+      
       //Create stacks
       fInternalStacks      = new TObjArray(numberOfEvents + fNBgEvents); //Create array of internal stacks
       fCollisionGeometries = new AliCollisionGeometry*[numberOfEvents + fNBgEvents]; //Create array of collision geometries
@@ -275,7 +277,7 @@ void AliGenCocktailAfterBurner::Generate()
 AliStack* AliGenCocktailAfterBurner::GetStack(Int_t n) const
 {
 //Returns the pointer to the N'th stack (event)
-  if( ( n<0 ) || ( n >= (GetNumberOfEvents()+1) ) )
+  if( ( n<0 ) || ( n >= (GetNumberOfEvents()) ) )
     {
       Fatal("AliGenCocktailAfterBurner::GetStack","Asked for non existing stack (%d)",n);
       return 0; 
index 9ae485d..088544c 100644 (file)
@@ -95,6 +95,7 @@ AliRunLoader::AliRunLoader():
  fKineDataLoader(0x0),
  fTrackRefsDataLoader(0x0),
  fNEventsPerFile(1),
+ fNEventsPerRun(0),
  fUnixDirName(".")
 {
   AliConfig::Instance();//force to build the folder structure
@@ -115,6 +116,7 @@ AliRunLoader::AliRunLoader(const char* eventfoldername):
  fKineDataLoader(new AliDataLoader(fgkDefaultKineFileName,fgkKineContainerName,"Kinematics")),
  fTrackRefsDataLoader(new AliDataLoader(fgkDefaultTrackRefsFileName,fgkTrackRefsContainerName,"Track References")),
  fNEventsPerFile(1),
+ fNEventsPerRun(0),
  fUnixDirName(".")
 {
 //ctor
@@ -163,6 +165,7 @@ AliRunLoader::AliRunLoader(TFolder* topfolder):
  fKineDataLoader(new AliDataLoader(fgkDefaultKineFileName,fgkKineContainerName,"Kinematics")),
  fTrackRefsDataLoader(new AliDataLoader(fgkDefaultTrackRefsFileName,fgkTrackRefsContainerName,"Track References")),
  fNEventsPerFile(1),
+ fNEventsPerRun(0),
  fUnixDirName(".")
 {
 //ctor
index 0cbe076..bb3f3ea 100644 (file)
@@ -155,7 +155,8 @@ class AliRunLoader: public TNamed
     void        SetDirName(TString& dirname);
     Int_t       GetFileOffset() const;
     void        SetNumberOfEventsPerFile(Int_t nevpf){fNEventsPerFile = nevpf;}
-    
+    void        SetNumberOfEventsPerRun(Int_t nevpr) {fNEventsPerRun = nevpr;}
+    Int_t       GetNumberOfEventsPerRun()            {return fNEventsPerRun;}
     void        SetDigitsFileNameSuffix(const TString& suffix);//adds the suffix before ".root", 
                                                                //e.g. TPC.Digits.root -> TPC.DigitsMerged.root
                                                                //made on Jiri Chudoba demand
@@ -229,7 +230,8 @@ protected:
     AliDataLoader     *fTrackRefsDataLoader;//track reference data loader
     
     Int_t              fNEventsPerFile;  //defines number of events stored per one file
-    TString            fUnixDirName;    //! name of unix path to directory that contains event
+    Int_t              fNEventsPerRun;   //defines number of event per run
+    TString            fUnixDirName;     //! name of unix path to directory that contains event
     static const TString   fgkDefaultKineFileName;//default file name with kinamatics
     static const TString   fgkDefaultTrackRefsFileName;//default file name with kinamatics
     static const TString   fgkDefaultTriggerFileName;//default file name with trigger
index de7864e..06a0d6a 100644 (file)
@@ -615,6 +615,7 @@ Bool_t AliSimulation::Run(Int_t nEvents)
    
   if (nEvents > 0) fNEvents = nEvents;
 
+  
   // generation and simulation -> hits
   if (fRunGeneration) {
     if (!RunSimulation()) if (fStopOnError) return kFALSE;
@@ -970,6 +971,7 @@ Bool_t AliSimulation::RunSimulation(Int_t nEvents)
 
   if(AliCDBManager::Instance()->GetRun() >= 0) { 
     AliRunLoader::Instance()->SetRunNumber(AliCDBManager::Instance()->GetRun());
+    AliRunLoader::Instance()->SetNumberOfEventsPerRun(fNEvents);
   } else {
        AliWarning("Run number not initialized!!");
   }