]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUON.cxx
added more info and fixed calc
[u/mrichter/AliRoot.git] / MUON / AliMUON.cxx
index 5e7a22a4d4a806ea9c109df46f9f1c9b6d1f50ca..293c403c694d6856f5bc8e2eeb659b3bbb1de1aa 100644 (file)
@@ -22,6 +22,7 @@
 // providing simulation data management 
 //-----------------------------------------------------------------------------
 
+#include <TTree.h>
 #include "AliMUON.h"
 
 #include "AliMUONSDigitizerV2.h"
@@ -31,7 +32,7 @@
 #include "AliMUONCalibrationData.h"
 
 #include "AliMUONDigitStoreV1.h"
-#include "AliMUONVTriggerStore.h"
+#include "AliMUONTriggerStoreV1.h"
 #include "AliMUONHitStoreV1.h"
 
 #include "AliMUONChamberTrigger.h"
@@ -54,7 +55,7 @@
 
 #include "AliLoader.h"
 #include "AliCDBManager.h"
-#include "AliRunDigitizer.h"
+#include "AliDigitizationInput.h"
 #include "AliMC.h"
 #include "AliRun.h"
 #include "AliRawDataHeaderSim.h"
@@ -99,12 +100,13 @@ AliMUON::AliMUON()
     fCurIterPad(0),
     fIsMaxStep(kTRUE),
     fTriggerScalerEvent(kFALSE),
-    fTriggerResponseV1(kFALSE),
+    fTriggerResponseV1(0),
     fTriggerCoinc44(0),
-    fTriggerEffCells(0),
+    fTriggerEffCells(kTRUE),
     fDigitizerWithNoise(1),
     fDigitizerNSigmas(4.0),
     fIsTailEffect(kTRUE),
+    fConvertTrigger(kFALSE),
     fRawWriter(0x0),
     fDigitMaker(0x0),
     fHitStore(0x0),
@@ -137,12 +139,13 @@ AliMUON::AliMUON(const char *name, const char* title)
     fCurIterPad(0),
     fIsMaxStep(kTRUE),
     fTriggerScalerEvent(kFALSE),
-    fTriggerResponseV1(kFALSE),
+    fTriggerResponseV1(0),
     fTriggerCoinc44(0),
-    fTriggerEffCells(0),
+    fTriggerEffCells(kTRUE),
     fDigitizerWithNoise(1),
     fDigitizerNSigmas(4.0),
     fIsTailEffect(kTRUE),
+    fConvertTrigger(kFALSE),
     fRawWriter(0x0),
     fDigitMaker(new AliMUONDigitMaker),
     fHitStore(0x0),
@@ -436,13 +439,13 @@ void   AliMUON::SetResponseModel(Int_t id, const AliMUONResponse& response)
 }
 
 //____________________________________________________________________
-AliDigitizer* AliMUON::CreateDigitizer(AliRunDigitizer* manager) const
+AliDigitizer* AliMUON::CreateDigitizer(AliDigitizationInput* digInput) const
 {
 /// Return digitizer
   
-  AliMUONDigitizerV3* digitizer = new AliMUONDigitizerV3(manager, fDigitizerWithNoise);
+  AliMUONDigitizerV3* digitizer = new AliMUONDigitizerV3(digInput, fDigitizerWithNoise);
   AliMUONDigitizerV3::SetNSigmas(fDigitizerNSigmas);
-  digitizer->SetCalibrationData(fCalibrationData);
+  digitizer->SetCalibrationData(fCalibrationData,GetRecoParam());
   return digitizer;
 }
 
@@ -463,7 +466,7 @@ void AliMUON::Hits2SDigits()
 /// Perform Hits2Digits using SDigitizerV2
   
   AliMUONSDigitizerV2 sdigitizer;
-  sdigitizer.ExecuteTask();
+  sdigitizer.Digitize();
 }
 
 //_____________________________________________________________________
@@ -523,44 +526,31 @@ Bool_t AliMUON::Raw2SDigits(AliRawReader* rawReader)
   TTree* treeS = fLoader->TreeS();
   
   AliMUONVDigitStore* sDigitStore = AliMUONVDigitStore::Create(DigitStoreClassName());
-  
+       AliMUONVTriggerStore* triggerStore = 0x0;
+       
   sDigitStore->Connect(*treeS);
-  
+       
   if (!fDigitMaker) fDigitMaker = new AliMUONDigitMaker;
-  
+       
+       if (fConvertTrigger) {
+               triggerStore = new AliMUONTriggerStoreV1;
+               triggerStore->Connect(*treeS,true);
+               fDigitMaker->SetMakeTriggerDigits(true);
+       }
+       
   if (!fDigitCalibrator)
   {
-    AliMUONRecoParam* recoParam = 0x0;
-    
-    AliCDBEntry* entry = AliCDBManager::Instance()->Get("MUON/Calib/RecoParam");
-    
-    if (entry) 
-    {      
-      // load recoParam according OCDB content (single or array)
-      if (!(recoParam = dynamic_cast<AliMUONRecoParam*>(entry->GetObject()))) 
-      {        
-        TObjArray* recoParamArray = static_cast<TObjArray*>(entry->GetObject());
-        
-        for(Int_t i = 0; i < recoParamArray->GetEntriesFast(); ++i)
-        {
-          recoParam = static_cast<AliMUONRecoParam*>(recoParamArray->UncheckedAt(i));
-          if (recoParam && recoParam->IsDefault()) break;
-          recoParam = 0x0;
-        }        
-      }      
-    }
+    AliMUONRecoParam* recoParam = GetRecoParam();
     
     if (!recoParam)
     {
       AliFatal("Cannot work without recoparams !");
     }
     
-    TString calibMode = recoParam->GetCalibrationMode();
-  
-    fDigitCalibrator = new AliMUONDigitCalibrator(*fCalibrationData,recoParam,calibMode.Data());
+    fDigitCalibrator = new AliMUONDigitCalibrator(*fCalibrationData,recoParam);
   }
   
-  fDigitMaker->Raw2Digits(rawReader,sDigitStore,0x0);
+       fDigitMaker->Raw2Digits(rawReader,sDigitStore,triggerStore);
   
   fDigitCalibrator->Calibrate(*sDigitStore);
 
@@ -573,7 +563,6 @@ Bool_t AliMUON::Raw2SDigits(AliRawReader* rawReader)
   while ( ( sdigit = static_cast<AliMUONDigit*>(next()) ) )
   {
     sdigit->Calibrated(kFALSE);
-    sdigit->ChargeInFC();
   }
   
   treeS->Fill();
@@ -583,6 +572,8 @@ Bool_t AliMUON::Raw2SDigits(AliRawReader* rawReader)
   fLoader->UnloadSDigits();
   
   delete sDigitStore;
+       
+       delete triggerStore;
   
   return kTRUE;
 }
@@ -617,7 +608,7 @@ AliMUON::ResetGeometryBuilder()
 }
 
 //____________________________________________________________________
-Bool_t  AliMUON::GetTriggerResponseV1() const
+Int_t  AliMUON::GetTriggerResponseV1() const
 {
 ///
 /// Returns fTriggerResponseV1
@@ -656,4 +647,29 @@ Int_t  AliMUON::GetDigitizerWithNoise() const
     
 }  
 
+//____________________________________________________________________
+AliMUONRecoParam* AliMUON::GetRecoParam() const
+{
+  AliMUONRecoParam* recoParam = 0x0;
+
+  AliCDBEntry* entry = AliCDBManager::Instance()->Get("MUON/Calib/RecoParam");
+
+  if (entry) 
+  {      
+    // load recoParam according OCDB content (single or array)
+    if (!(recoParam = dynamic_cast<AliMUONRecoParam*>(entry->GetObject()))) 
+    {        
+      TObjArray* recoParamArray = static_cast<TObjArray*>(entry->GetObject());
+      
+      for(Int_t i = 0; i < recoParamArray->GetEntriesFast(); ++i)
+      {
+        recoParam = static_cast<AliMUONRecoParam*>(recoParamArray->UncheckedAt(i));
+        if (recoParam && recoParam->IsDefault()) break;
+        recoParam = 0x0;
+      }        
+    }      
+  }
+  return recoParam;
+}
+