]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONSDigitizerV2.cxx
Trigger scalers added to ESD header.
[u/mrichter/AliRoot.git] / MUON / AliMUONSDigitizerV2.cxx
index a7a589f3065fc7c600eee8a977924c14db15647e..fa6c123f52f59eec59009739c2578393cedb92a7 100644 (file)
 
 #include "AliMUONSDigitizerV2.h"
 
-#include "AliLog.h"
 #include "AliMUON.h"
 #include "AliMUONChamber.h"
 #include "AliMUONVDigit.h"
 #include "AliMUONHit.h"
-#include "AliMpDEManager.h"
+#include "AliMUONVDigitStore.h"
+#include "AliMUONVHitStore.h"
+#include "AliMUONCalibrationData.h"
+#include "AliMUONResponseTrigger.h"
+
 #include "AliMpCDB.h"
+#include "AliMpDEManager.h"
+
+#include "AliLog.h"
+#include "AliCDBManager.h"
 #include "AliLoader.h"
 #include "AliRun.h"
 #include "AliRunLoader.h"
-#include "AliMUONVDigitStore.h"
-#include "AliMUONVHitStore.h"
 
 //-----------------------------------------------------------------------------
 /// The sdigitizer performs the transformation from hits (energy deposits by
@@ -57,8 +62,9 @@ AliMUONSDigitizerV2::AliMUONSDigitizerV2()
   ///
   /// ctor.
   ///
-  if ( ! AliMpCDB::LoadMpSegmentation() ) 
-  {
+
+  // Load mapping
+  if ( ! AliMpCDB::LoadMpSegmentation() ) {
     AliFatal("Could not access mapping from OCDB !");
   }
 }
@@ -86,13 +92,23 @@ AliMUONSDigitizerV2::Exec(Option_t*)
   
   AliDebug(1,"");
   
-  AliRunLoader* runLoader = AliRunLoader::GetRunLoader();
+  AliRunLoader* runLoader = AliRunLoader::Instance();
   AliLoader* loader = runLoader->GetDetectorLoader("MUON");
 
   loader->LoadHits("READ");
   
   AliMUON* muon = static_cast<AliMUON*>(gAlice->GetModule("MUON"));
-    
+
+  AliMUONCalibrationData *calibrationData = 0x0;
+
+  if(muon->GetTriggerEffCells()){
+    Int_t runnumber = AliCDBManager::Instance()->GetRun();
+    calibrationData = new AliMUONCalibrationData(runnumber);
+    for (Int_t chamber = 10; chamber < 14; chamber++) {
+      ((AliMUONResponseTrigger *) (muon->Chamber(chamber).ResponseModel()))->InitTriggerEfficiency(calibrationData->TriggerEfficiency()); // Init trigger efficiency
+    }
+  }
+  
   Int_t nofEvents(runLoader->GetNumberOfEvents());
   
   TString classname = muon->DigitStoreClassName();
@@ -104,7 +120,7 @@ AliMUONSDigitizerV2::Exec(Option_t*)
     AliFatal(Form("Could not create digitstore of class %s",classname.Data()));
   }
   
-  AliInfo(Form("Will use digitStore of type %s",sDigitStore->ClassName()));
+  AliDebug(1,Form("Will use digitStore of type %s",sDigitStore->ClassName()));
           
   for ( Int_t iEvent = 0; iEvent < nofEvents; ++iEvent ) 
   {    
@@ -152,14 +168,14 @@ AliMUONSDigitizerV2::Exec(Option_t*)
         TList digits;        
         response->DisIntegrate(*hit,digits);
         
-        TIter next(&digits);
+        TIter nextd(&digits);
         AliMUONVDigit* d;
-        while ( ( d = (AliMUONVDigit*)next() ) )
+        while ( ( d = (AliMUONVDigit*)nextd() ) )
         {
           // Update some sdigit information that could not be known
           // by the DisIntegrate method
           d->SetHit(ihit);
-          d->AddTrack(iTrack,d->Charge());
+          d->AddTrack(hit->GetTrack(),d->Charge());
           tdlist.Add(d);
         }
         ++ihit;
@@ -198,4 +214,6 @@ AliMUONSDigitizerV2::Exec(Option_t*)
   loader->UnloadHits();  
   
   delete sDigitStore;
+
+  if(calibrationData) delete calibrationData;
 }