// providing simulation data management
//-----------------------------------------------------------------------------
+#include <TTree.h>
#include "AliMUON.h"
#include "AliMUONSDigitizerV2.h"
#include "AliMUONCalibrationData.h"
#include "AliMUONDigitStoreV1.h"
-#include "AliMUONVTriggerStore.h"
+#include "AliMUONTriggerStoreV1.h"
#include "AliMUONHitStoreV1.h"
#include "AliMUONChamberTrigger.h"
#include "AliLoader.h"
#include "AliCDBManager.h"
-#include "AliRunDigitizer.h"
+#include "AliDigitizationInput.h"
#include "AliMC.h"
#include "AliRun.h"
#include "AliRawDataHeaderSim.h"
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),
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),
}
//____________________________________________________________________
-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;
}
/// Perform Hits2Digits using SDigitizerV2
AliMUONSDigitizerV2 sdigitizer;
- sdigitizer.ExecuteTask();
+ sdigitizer.Digitize();
}
//_____________________________________________________________________
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;
+ AliMUONRecoParam* recoParam = GetRecoParam();
- 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->IsDefault()) break;
- recoParam = 0x0;
- }
- }
+ 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);
while ( ( sdigit = static_cast<AliMUONDigit*>(next()) ) )
{
sdigit->Calibrated(kFALSE);
- sdigit->ChargeInFC();
}
treeS->Fill();
fLoader->UnloadSDigits();
delete sDigitStore;
+
+ delete triggerStore;
return kTRUE;
}
}
+//____________________________________________________________________
+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;
+}
+