Simplification of AliRun
authorfca <fca@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 21 Dec 2008 14:15:02 +0000 (14:15 +0000)
committerfca <fca@f7af4fe6-9843-0410-8265-dc069ae4e863>
Sun, 21 Dec 2008 14:15:02 +0000 (14:15 +0000)
EVGEN/AliGenCocktailAfterBurner.cxx
STEER/AliRun.cxx
STEER/AliRun.h
STEER/AliRunLoader.cxx
STEER/AliRunLoader.h
STEER/AliSimulation.cxx

index 9778532..eb9179a 100644 (file)
@@ -27,7 +27,7 @@
 //
 // 24.09.2001  Piotr Skowronski
 //             debug -> gDebug,
-//             fNEvents replaced with gAlice->GetEventsPerRun()
+//             fNEvents replaced with AliRunLoader::GetNumberOfEvents()
 //
 
 
index 48da7fd..35edc45 100644 (file)
@@ -73,12 +73,10 @@ AliRun::AliRun():
   fRun(-1),
   fEvent(0),
   fEventNrInRun(0),
-  fEventsPerRun(0),
   fModules(0),
   fMCApp(0),
   fField(0),
   fNdets(0),
-  fInitDone(kFALSE),
   fLego(0),
   fConfigFunction(""),
   fRandom(0),
@@ -103,12 +101,10 @@ AliRun::AliRun(const char *name, const char *title):
   fRun(-1),
   fEvent(0),
   fEventNrInRun(0),
-  fEventsPerRun(0),
   fModules(new TObjArray(77)), // Support list for the Detectors
   fMCApp(0),
   fField(0),
   fNdets(0),
-  fInitDone(kFALSE),
   fLego(0),
   fConfigFunction("Config();"),
   fRandom(new TRandom3()),
@@ -431,18 +427,20 @@ void AliRun::ResetSDigits()
 
 
 //_______________________________________________________________________
-
 void AliRun::InitMC(const char *setup)
 {
   //
   // Initialize ALICE Simulation run
   //
+
+  static Bool_t initDone=kFALSE;
+
   Announce();
 
-  if(fInitDone) {
-    AliWarning("Cannot initialise AliRun twice!");
+  if(initDone) {
+    AliError("AliRun already initialised! Check your logic!");
     return;
-  }
+  } else initDone=kTRUE;
     
   if (!fMCApp)  
     fMCApp=new AliMC(GetName(),GetTitle());
@@ -471,7 +469,6 @@ void AliRun::InitMC(const char *setup)
       AliRunLoader::GetRunLoader()->LoadTrackRefs("RECREATE");
       AliRunLoader::GetRunLoader()->LoadHits("all","RECREATE");
     }
-   fInitDone = kTRUE;
    //
    // Save stuff at the beginning of the file to avoid file corruption
    AliRunLoader::GetRunLoader()->CdGAFile();
@@ -480,31 +477,6 @@ void AliRun::InitMC(const char *setup)
 }
 
 //_______________________________________________________________________
-
-void AliRun::RunMC(Int_t nevent, const char *setup)
-{
-  //
-  // Main function to be called to process a galice run
-  // example
-  //    Root > gAlice.Run(); 
-  // a positive number of events will cause the finish routine
-  // to be called
-  //
-  fEventsPerRun = nevent;
-  // check if initialisation has been done
-  if (!fInitDone) InitMC(setup);
-  
-  // Create the Root Tree with one branch per detector
-  //Hits moved to begin event -> now we are crating separate tree for each event
-
-  gMC->ProcessRun(nevent);
-
-  // End of this run, close files
-  if(nevent>0) FinishRun();
-}
-
-//_______________________________________________________________________
-
 void AliRun::Hits2Digits(const char *selected)
 {
 
@@ -653,7 +625,7 @@ void AliRun::RunLego(const char *setup, Int_t nc1, Float_t c1min,
   //Create Lego object  
   fLego = new AliLego("lego",gener);
 
-  if (!fInitDone) InitMC(setup);
+  InitMC(setup);
   //Save current generator
   
   AliGenerator *gen=fMCApp->Generator();
index 97dd258..63df899 100644 (file)
@@ -43,7 +43,6 @@ public:
    Int_t          GetRunNumber() const {return fRun;}
    void           SetEventNrInRun(Int_t event) {fEventNrInRun=event;}
    Int_t          GetEventNrInRun() const {return fEventNrInRun;}
-   Int_t          GetEventsPerRun() const {return fEventsPerRun;}
    Int_t          GetNdets() const {return fNdets;}
    AliModule     *GetModule(const char *name) const;
    AliDetector   *GetDetector(const char *name) const;
@@ -79,7 +78,6 @@ public:
    virtual  void  ResetDigits();
    virtual  void  ResetSDigits();
    virtual  void  SetBaseFile(const char *filename="galice.root");
-   virtual  void  RunMC(Int_t nevent=1, const char *setup="Config.C");
    virtual  void  RunLego(const char *setup="Config.C",Int_t nc1=60,Float_t c1min=2,Float_t c1max=178,
                           Int_t nc2=60,Float_t c2min=0,Float_t c2max=360,Float_t rmin=0,
                           Float_t rmax=430,Float_t zmax=10000, AliLegoGenerator* gener=NULL, Int_t nev = -1);
@@ -111,12 +109,10 @@ 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
   TObjArray     *fModules;           //  List of Detectors
   AliMC         *fMCApp;             //  Pointer to virtual MC Application
   AliMagF       *fField;             //  Magnetic Field Map
   Int_t          fNdets;             //  Number of detectors
-  Bool_t         fInitDone;          //! True when initialisation done
   AliLego       *fLego;              //! Pointer to aliLego object if it exists
   TString        fConfigFunction;    //  Configuration file to be executed
   TRandom       *fRandom;            //  Pointer to the random number generator
index d3f34ee..12ba4fd 100644 (file)
@@ -189,12 +189,7 @@ AliRunLoader::AliRunLoader(TFolder* topfolder):
  fEventFolder->Add(this);//put myself to the folder to accessible for all
   
 }
-/**************************************************************************/
 
-void AliRunLoader::Copy(TObject &) const 
-{
-  AliFatal("Not implemented");
-}
 /**************************************************************************/
 
 Int_t AliRunLoader::GetEvent(Int_t evno)
index f1cf1ac..3028ca5 100644 (file)
@@ -258,7 +258,6 @@ protected:
     static AliRunLoader* fgRunLoader; //pointer to the AliRunLoader instance
 
 private:
-    void Copy(TObject &arun) const;
 
     static const TString   fgkRunLoaderName;          //default name of the run loader
     static const TString   fgkHeaderContainerName;    //default name of the kinematics container (TREE) name - TreeE
index f7bfe70..1061315 100644 (file)
 ///////////////////////////////////////////////////////////////////////////////
 
 #include <TVirtualMCApplication.h>
+#include <TVirtualMC.h>
 #include <TGeoManager.h>
 #include <TObjString.h>
 #include <TSystem.h>
@@ -872,9 +873,17 @@ Bool_t AliSimulation::RunSimulation(Int_t nEvents)
 
   AliInfo("running gAlice");
   AliSysInfo::AddStamp("Start_simulation");
-  StdoutToAliInfo(StderrToAliError(
-    gAlice->RunMC(nEvents);
-  ););
+
+  gAlice->InitMC("Config.C");
+  
+  // Create the Root Tree with one branch per detector
+  //Hits moved to begin event -> now we are crating separate tree for each event
+
+  gMC->ProcessRun(nEvents);
+
+  // End of this run, close files
+  if(nEvents>0) gAlice->FinishRun();
+
   AliSysInfo::AddStamp("Stop_simulation");
   delete runLoader;
 
@@ -934,8 +943,8 @@ Bool_t AliSimulation::RunDigitization(const char* detectors,
   if (!SetRunNumberFromData()) if (fStopOnError) return kFALSE;
   SetCDBLock();
   
-  while (AliRunLoader::GetRunLoader()) delete AliRunLoader::GetRunLoader();
-  if (gAlice) delete gAlice;
+  delete AliRunLoader::GetRunLoader();
+  delete gAlice;
   gAlice = NULL;
 
   Int_t nStreams = 1;
@@ -1378,7 +1387,7 @@ AliRunLoader* AliSimulation::LoadRun(const char* mode) const
 {
 // delete existing run loaders, open a new one and load gAlice
 
-  while (AliRunLoader::GetRunLoader()) delete AliRunLoader::GetRunLoader();
+  delete AliRunLoader::GetRunLoader();
   AliRunLoader* runLoader = 
     AliRunLoader::Open(fGAliceFileName.Data(), 
                       AliConfig::GetDefaultEventFolderName(), mode);