X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUON.cxx;h=e9573254f32a7c748aa92386412f1a5636ac51d0;hb=6daac008f3b008af11c273f7cc660bec28fa1468;hp=caf48cca304bd7d26abb6369e97bb8d45dc9b9bd;hpb=ac6411cf1f2ca3c521a44b0486fad5b1c7572b24;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUON.cxx b/MUON/AliMUON.cxx index caf48cca304..e9573254f32 100644 --- a/MUON/AliMUON.cxx +++ b/MUON/AliMUON.cxx @@ -22,6 +22,7 @@ // providing simulation data management //----------------------------------------------------------------------------- +#include #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" @@ -101,10 +102,11 @@ AliMUON::AliMUON() fTriggerScalerEvent(kFALSE), fTriggerResponseV1(kFALSE), fTriggerCoinc44(0), - fTriggerEffCells(0), + fTriggerEffCells(kTRUE), fDigitizerWithNoise(1), fDigitizerNSigmas(4.0), fIsTailEffect(kTRUE), + fConvertTrigger(kFALSE), fRawWriter(0x0), fDigitMaker(0x0), fHitStore(0x0), @@ -139,10 +141,11 @@ AliMUON::AliMUON(const char *name, const char* title) fTriggerScalerEvent(kFALSE), fTriggerResponseV1(kFALSE), 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(entry->GetObject()))) - { - TObjArray* recoParamArray = static_cast(entry->GetObject()); - - for(Int_t i = 0; i < recoParamArray->GetEntriesFast(); ++i) - { - recoParam = static_cast(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); @@ -582,6 +572,8 @@ Bool_t AliMUON::Raw2SDigits(AliRawReader* rawReader) fLoader->UnloadSDigits(); delete sDigitStore; + + delete triggerStore; return kTRUE; } @@ -655,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(entry->GetObject()))) + { + TObjArray* recoParamArray = static_cast(entry->GetObject()); + + for(Int_t i = 0; i < recoParamArray->GetEntriesFast(); ++i) + { + recoParam = static_cast(recoParamArray->UncheckedAt(i)); + if (recoParam && recoParam->IsDefault()) break; + recoParam = 0x0; + } + } + } + return recoParam; +} +