]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - STEER/AliRun.cxx
added merging for QA
[u/mrichter/AliRoot.git] / STEER / AliRun.cxx
index 1be79528eef8b93cf360785471204a93640288a5..9b91c4e3492f361059b6ec517ee5b70412fb5e10 100644 (file)
@@ -73,7 +73,7 @@ ClassImp(AliRun)
 
 //_______________________________________________________________________
 AliRun::AliRun():
-  fRun(0),
+  fRun(-1),
   fEvent(0),
   fEventNrInRun(0),
   fEventsPerRun(0),
@@ -100,12 +100,13 @@ AliRun::AliRun():
   //
   AliConfig::Instance();//skowron 29 Feb 2002
                         //ensures that the folder structure is build
+
 }
 
 //_______________________________________________________________________
 AliRun::AliRun(const AliRun& arun):
   TNamed(arun),
-  fRun(0),
+  fRun(-1),
   fEvent(0),
   fEventNrInRun(0),
   fEventsPerRun(0),
@@ -136,7 +137,7 @@ AliRun::AliRun(const AliRun& arun):
 //_____________________________________________________________________________
 AliRun::AliRun(const char *name, const char *title):
   TNamed(name,title),
-  fRun(0),
+  fRun(-1),
   fEvent(0),
   fEventNrInRun(0),
   fEventsPerRun(0),
@@ -295,7 +296,8 @@ void AliRun::SetGeometryFromCDB()
 {
   // Set the loading of geometry from cdb instead of creating it
   // A default CDB storage needs to be set before this method is called
-  if(AliCDBManager::Instance()->IsDefaultStorageSet()){
+  if(AliCDBManager::Instance()->IsDefaultStorageSet() &&
+       AliCDBManager::Instance()->GetRun() >= 0){
     SetRootGeometry();
     fGeometryFromCDB = kTRUE;
   }else{
@@ -359,7 +361,7 @@ void AliRun::FinishRun()
   //
   // Called at the end of the run.
   //
-  
+
   if(fLego) 
    {
     AliDebug(1, "Finish Lego");
@@ -383,12 +385,7 @@ void AliRun::FinishRun()
   Write(0,TObject::kOverwrite);//write AliRun
   fRunLoader->Write(0,TObject::kOverwrite);//write RunLoader itself
   
-  // Clean tree information
-  AliDebug(1, "fRunLoader->Stack()->FinishRun()");
-  fRunLoader->Stack()->FinishRun();
-
-  if(fMCApp) fMCApp->FinishRun();
-
+  if(fMCApp) fMCApp->FinishRun();  
   fRunLoader->Synchronize();
 }
 
@@ -406,7 +403,7 @@ void AliRun::Announce() const
   printf("    You are running AliRoot version NewIO\n");
 
   printf("%6s","*");
-  printf("    The cvs tag for the current program is $Name$\n");
+  printf("    The SVN version for the current program is $Id$\n");
 
   printf("%6s","*");printf("%64s","*\n");
   printf("%70s",
@@ -476,8 +473,8 @@ Int_t AliRun::GetEvent(Int_t event)
 
   // Set Trees branch addresses
   TIter next(fModules);
-  AliModule *detector;
-  while((detector = dynamic_cast<AliModule*>(next()))) 
+  AliDetector *detector;
+  while((detector = dynamic_cast<AliDetector*>(next()))) 
    {
      detector->SetTreeAddress();
    }
@@ -488,6 +485,7 @@ Int_t AliRun::GetEvent(Int_t event)
 //_______________________________________________________________________
 TGeometry *AliRun::GetGeometry()
 {
+
   // Create the TNode geometry for the event display
   if (!fGeometry) { 
     BuildSimpleGeometry();
@@ -580,16 +578,17 @@ void AliRun::InitMC(const char *setup)
   gROOT->LoadMacro(setup);
   gInterpreter->ProcessLine(fConfigFunction.Data());
 
-  // Set the run number in the CDB manager as assigned from
-  // constructor or from config file 
-  AliCDBManager::Instance()->SetRun(GetRunNumber());
+  if(AliCDBManager::Instance()->GetRun() >= 0) { 
+       SetRunNumber(AliCDBManager::Instance()->GetRun());
+  } else {
+       AliWarning("Run number not initialized!!");
+  }
   
   fRunLoader->CdGAFile();
-
+    
   AliPDG::AddParticlesToPdgDataBase();  
 
   fNdets = fModules->GetLast()+1;
-
   TIter next(fModules);
   for(Int_t i=0; i<fNdets; ++i)
    {
@@ -808,6 +807,7 @@ void AliRun::RunLego(const char *setup, Int_t nc1, Float_t c1min,
   if (!gener) gener  = new AliLegoGenerator();
   //
   // Configure Generator
+  
   gener->SetRadiusRange(rmin, rmax);
   gener->SetZMax(zmax);
   gener->SetCoor1Range(nc1, c1min, c1max);
@@ -827,8 +827,8 @@ void AliRun::RunLego(const char *setup, Int_t nc1, Float_t c1min,
   
   //Run Lego Object
 
+
   if (fRunLoader) fRunLoader->SetNumberOfEventsPerFile(nev);
-  //gMC->ProcessRun(nc1*nc2+1);
   gMC->ProcessRun(nev);
   
   // End of this run, close files
@@ -859,10 +859,12 @@ void AliRun::Field(const Double_t* x, Double_t *b) const
   //
   // 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]; 
@@ -871,6 +873,8 @@ void AliRun::Field(const Double_t* x, Double_t *b) const
     AliError("No mag field defined!");
     b[0]=b[1]=b[2]=0.;
   }
+
+  
 }      
 
 // 
@@ -980,7 +984,6 @@ void AliRun::AddModule(AliModule* mod)
   fNdets++;
 }
 
-// added by Alberto Colla
 //_____________________________________________________________________________
 /*inline*/ Bool_t AliRun::IsFileAccessible(const char* fnam, EAccessMode mode)
 { return !gSystem->AccessPathName(fnam,mode);}