]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliRun.cxx
Modifications associated with remerging the Ba/Sa and Dubna pixel simulations,
[u/mrichter/AliRoot.git] / STEER / AliRun.cxx
index 7efd9b61be27470cacb72746ea3e78967d2f813b..d3eeaf5e7486681ab6b8094fe411ca63ae7f4ef2 100644 (file)
@@ -48,7 +48,6 @@
 #include <TROOT.h>
 #include <TRandom3.h>
 #include <TSystem.h>
-#include <TVector.h>
 #include <TVirtualMC.h>
 // 
 #include "AliDetector.h"
@@ -80,7 +79,6 @@ AliRun::AliRun():
   fGeometry(0),
   fMCApp(0),
   fDisplay(0),
-  fTimer(),
   fField(0),
   fMC(0),
   fNdets(0),
@@ -110,7 +108,6 @@ AliRun::AliRun(const AliRun& arun):
   fGeometry(0),
   fMCApp(0),
   fDisplay(0),
-  fTimer(),
   fField(0),
   fMC(0),
   fNdets(0),
@@ -139,7 +136,6 @@ AliRun::AliRun(const char *name, const char *title):
   fGeometry(0),
   fMCApp(0),
   fDisplay(0),
-  fTimer(),
   fField(0),
   fMC(gMC),
   fNdets(0),
@@ -269,9 +265,11 @@ AliGenerator* AliRun::Generator() const
 //_______________________________________________________________________
 void  AliRun::SetField(AliMagF* magField)
 {
-    // Set Magnetic Field Map
-    fField = magField;
-    fField->ReadField();
+  //
+  // Set Magnetic Field Map
+  //
+  fField = magField;
+  fField->ReadField();
 }
 
 //_______________________________________________________________________
@@ -311,6 +309,7 @@ void AliRun::InitLoaders()
   AliModule *mod;
   while((mod = (AliModule*)next()))
    { 
+     mod->SetRunLoader(fRunLoader);
      AliDetector *det = dynamic_cast<AliDetector*>(mod);
      if (det) 
       {
@@ -542,7 +541,8 @@ void AliRun::InitMC(const char *setup)
     return;
   }
     
-  fMCApp=new AliMC(GetName(),GetTitle());
+  if (!fMCApp)  
+    fMCApp=new AliMC(GetName(),GetTitle());
     
   gROOT->LoadMacro(setup);
   gInterpreter->ProcessLine(fConfigFunction.Data());
@@ -553,9 +553,6 @@ void AliRun::InitMC(const char *setup)
 
   fNdets = fModules->GetLast()+1;
 
-  // Added also after in case of interactive initialisation of modules
-  fNdets = fModules->GetLast()+1;
-
   TIter next(fModules);
   for(Int_t i=0; i<fNdets; ++i)
    {
@@ -820,19 +817,21 @@ void AliRun::SetConfigFunction(const char * config)
 //_______________________________________________________________________
 void AliRun::Field(const Double_t* x, Double_t *b) const
 {
-   Float_t xfloat[3];
-   for (Int_t i=0; i<3; i++) xfloat[i] = x[i]; 
-
-   if (Field()) {
-         Float_t bfloat[3];
-         Field()->Field(xfloat,bfloat);
-         for (Int_t j=0; j<3; j++) b[j] = bfloat[j]; 
-   } 
-   else {
-         printf("No mag field defined!\n");
-         b[0]=b[1]=b[2]=0.;
-   }
-
+  //
+  // Return the value of the magnetic field
+  //
+  Float_t xfloat[3];
+  for (Int_t i=0; i<3; i++) xfloat[i] = x[i]; 
+  
+  if (Field()) {
+    Float_t bfloat[3];
+    Field()->Field(xfloat,bfloat);
+    for (Int_t j=0; j<3; j++) b[j] = bfloat[j]; 
+  } 
+  else {
+    printf("No mag field defined!\n");
+    b[0]=b[1]=b[2]=0.;
+  }
 }      
 
 // 
@@ -877,6 +876,9 @@ Int_t AliRun::GetEvNumber() const
 
 void AliRun::SetRunLoader(AliRunLoader* rloader)
 {
+  //
+  // Set the loader of the run
+  //
   fRunLoader = rloader;
   if (fRunLoader == 0x0) return;
   
@@ -903,6 +905,7 @@ void AliRun::SetRunLoader(AliRunLoader* rloader)
   while((module = (AliModule*)next())) 
    {
      if (evfold) AliConfig::Instance()->Add(module,evfoldname);
+     module->SetRunLoader(fRunLoader);
      AliDetector* detector = dynamic_cast<AliDetector*>(module);
      if (detector)
       {
@@ -922,6 +925,9 @@ void AliRun::SetRunLoader(AliRunLoader* rloader)
 
 void AliRun::AddModule(AliModule* mod)
 {
+  //
+  // Add a module to the module list
+  //
   if (mod == 0x0) return;
   if (strlen(mod->GetName()) == 0) return;
   if (GetModuleID(mod->GetName()) >= 0) return;
@@ -931,4 +937,6 @@ void AliRun::AddModule(AliModule* mod)
   else AliConfig::Instance()->Add(mod,fRunLoader->GetEventFolder()->GetName());
 
   Modules()->Add(mod);
+  
+  fNdets++;
 }