]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EMCAL/AliEMCALDigitizer.cxx
Changes needed to run simulation and reconstrruction in the same AliRoot session
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALDigitizer.cxx
index d7eddedb47af72a0dd0afde33bd06b51b99e595d..ac37421e64a44b9b0e08d84cf9a6235dbaaa5e19 100644 (file)
@@ -92,7 +92,7 @@ ClassImp(AliEMCALDigitizer)
 
 //____________________________________________________________________________ 
 AliEMCALDigitizer::AliEMCALDigitizer(TString alirunFileName, TString eventFolderName):
-  AliDigitizer("EMCAL"+AliConfig::fgkDigitizerTaskName, alirunFileName),
+  AliDigitizer("EMCAL"+AliConfig::Instance()->GetDigitizerTaskName(), alirunFileName),
   fInputFileNames(0), fEventNames(0), fEventFolderName(eventFolderName)
 {
   // ctor
@@ -126,7 +126,7 @@ AliEMCALDigitizer::AliEMCALDigitizer(const AliEMCALDigitizer & d) : AliDigitizer
 
 //____________________________________________________________________________ 
 AliEMCALDigitizer::AliEMCALDigitizer(AliRunDigitizer * rd):
- AliDigitizer(rd,"EMCAL"+AliConfig::fgkDigitizerTaskName),
+ AliDigitizer(rd,"EMCAL"+AliConfig::Instance()->GetDigitizerTaskName()),
  fEventFolderName(0)
 {
   // ctor Init() is called by RunDigitizer
@@ -140,9 +140,11 @@ AliEMCALDigitizer::AliEMCALDigitizer(AliRunDigitizer * rd):
 //____________________________________________________________________________ 
   AliEMCALDigitizer::~AliEMCALDigitizer()
 {
-  // dtor
-  AliEMCALGetter * gime =AliEMCALGetter::Instance(GetTitle(),fEventFolderName);
-  gime->EmcalLoader()->CleanDigitizer();
+  AliEMCALGetter * gime = AliEMCALGetter::Instance(GetTitle()) ;
+   
+  // Clean Digitizer from the white board
+  gime->EmcalLoader()->CleanDigitizer() ;
+
   delete [] fInputFileNames ; 
   delete [] fEventNames ; 
 
@@ -159,7 +161,7 @@ void AliEMCALDigitizer::Digitize(Int_t event)
   // helps to avoid scanning over the list of digits to add 
   // contribution of any new SDigit.
 
-  AliEMCALGetter * gime = AliEMCALGetter::Instance(GetTitle(), fEventFolderName) ; 
+  AliEMCALGetter * gime = AliEMCALGetter::Instance(GetTitle()) ; 
   Int_t ReadEvent = event ; 
   if (fManager) 
     ReadEvent = dynamic_cast<AliStream*>(fManager->GetInputStream(0))->GetCurrentEventNumber() ; 
@@ -356,6 +358,9 @@ void AliEMCALDigitizer::Exec(Option_t *option)
   
   AliEMCALGetter * gime = AliEMCALGetter::Instance(GetTitle()) ;
    
+  // Post Digitizer to the white board
+  gime->PostDigitizer(this) ;
+  
   if (fLastEvent == -1) 
     fLastEvent = gime->MaxEvent() - 1 ;
   else if (fManager) 
@@ -380,6 +385,8 @@ void AliEMCALDigitizer::Exec(Option_t *option)
     fDigitsInRun += gime->Digits()->GetEntriesFast() ;  
   }
   
+  gime->EmcalLoader()->CleanDigitizer() ;
+
   if(strstr(option,"tim")){
     gBenchmark->Stop("EMCALDigitizer");
     printf("Exec: took %f seconds for Digitizing %f seconds per event", 
@@ -419,16 +426,12 @@ Bool_t AliEMCALDigitizer::Init()
     Error("Init", "Could not obtain the Getter object for file %s and event %s !", GetTitle(), fEventFolderName.Data()) ;   
     return kFALSE;
   } 
-  
   TString opt("Digits") ; 
   if(gime->VersionExists(opt) ) { 
     Error( "Init", "Give a version name different from %s", fEventFolderName.Data() ) ;
     fInit = kFALSE ; 
   }
 
-  // Post Digitizer to the white board
-  gime->PostDigitizer(this) ;
-  
   fFirstEvent = 0 ; 
   fLastEvent = fFirstEvent ; 
   
@@ -503,7 +506,7 @@ void AliEMCALDigitizer::MixWith(TString alirunFileName, TString eventFolderName)
   // looking for the file which contains SDigits
   AliEMCALGetter * gime = AliEMCALGetter::Instance() ; 
   TString fileName( gime->GetSDigitsFileName() ) ; 
-    if ( eventFolderName != AliConfig::fgkDefaultEventFolderName) // only if not the default folder name 
+    if ( eventFolderName != AliConfig::GetDefaultEventFolderName()) // only if not the default folder name 
       fileName = fileName.ReplaceAll(".root", "") + "_" + eventFolderName + ".root" ;
     if ( (gSystem->AccessPathName(fileName)) ) { 
       Error("MixWith", "The file %s does not exist!", fileName.Data()) ;
@@ -545,7 +548,7 @@ void AliEMCALDigitizer::Print()const
       tempo += index ;
       AliEMCALGetter * gime = AliEMCALGetter::Instance(fInputFileNames[index], tempo) ; 
       TString fileName( gime->GetSDigitsFileName() ) ; 
-      if ( fEventNames[index] != AliConfig::fgkDefaultEventFolderName) // only if not the default folder name 
+      if ( fEventNames[index] != AliConfig::GetDefaultEventFolderName()) // only if not the default folder name 
        fileName = fileName.ReplaceAll(".root", "") + "_" + fEventNames[index]  + ".root" ;
       printf ("Adding SDigits from %s %s\n", fInputFileNames[index].Data(), fileName.Data()) ; 
     }
@@ -592,10 +595,10 @@ void AliEMCALDigitizer::PrintDigits(Option_t * option){
 
 //__________________________________________________________________
 Float_t AliEMCALDigitizer::TimeOfNoise(void)
-{  // Calculates the time signal generated by noise
-  //to be rewritten, now returns just big number
-  return 1. ;
-
+{  
+  // Calculates the time signal generated by noise
+  //PH  Info("TimeOfNoise", "Change me") ; 
+  return gRandom->Rndm() * 1.28E-5;
 }
 
 //__________________________________________________________________
@@ -626,13 +629,13 @@ void AliEMCALDigitizer::WriteDigits()
   //      and branch "AliEMCALDigitizer", with the same title to keep all the parameters
   //      and names of files, from which digits are made.
 
-  AliEMCALGetter * gime = AliEMCALGetter::Instance(GetTitle(), fEventFolderName) ; 
+  AliEMCALGetter * gime = AliEMCALGetter::Instance(GetTitle()) ; 
   const TClonesArray * digits = gime->Digits() ; 
   TTree * treeD = gime->TreeD(); 
 
   // -- create Digits branch
   Int_t bufferSize = 32000 ;    
-  TBranch * digitsBranch = treeD->Branch("EMCAL",&digits,bufferSize);
+  TBranch * digitsBranch = treeD->Branch("EMCAL","TClonesArray",&digits,bufferSize);
   digitsBranch->SetTitle(fEventFolderName);
   digitsBranch->Fill() ;