11 #include <beast/dosi/modules/DosiDigitizerModule.h>
12 #include <beast/dosi/dataobjects/DosiSimHit.h>
14 #include <framework/logging/Logger.h>
15 #include <framework/gearbox/GearDir.h>
16 #include <framework/core/RandomNumbers.h>
40 setDescription(
"Dosi digitizer module");
44 DosiDigitizerModule::~DosiDigitizerModule()
48 void DosiDigitizerModule::initialize()
50 B2INFO(
"DosiDigitizer: Initializing");
51 m_dosiHit.registerInDataStore();
58 void DosiDigitizerModule::beginRun()
62 void DosiDigitizerModule::event()
67 for (
int i = 0; i < nentries; i++) {
76 double erecdep = m_energyDeposit;
77 erecdep += gRandom->Gaus(0, GetEnergyResolutionGeV(m_energyDeposit, m_cellID));
78 DosiHits.
appendNew(
DosiHit(m_cellID, m_trackID, pdgCode, m_Time * m_energyDeposit / erecdep, m_energyDeposit, m_Mom,
79 m_Pos * (m_energyDeposit / erecdep), erecdep));
84 void DosiDigitizerModule::getXMLData()
86 GearDir content =
GearDir(
"/Detector/DetectorComponent[@name=\"DOSI\"]/Content/");
88 B2INFO(
"DosiDigitizer: Aquired dosi locations and gas parameters");
89 B2INFO(
" from DOSI.xml. There are " << nDOSI <<
" DOSIs implemented");
94 Double_t DosiDigitizerModule::GetEnergyResolutionGeV(Double_t pEnergy,
int CellId)
97 return (m_EnergyResolutionFactor[CellId] * TMath::Sqrt(pEnergy) + m_EnergyResolutionConst[CellId] * pEnergy);
102 void DosiDigitizerModule::endRun()
106 void DosiDigitizerModule::terminate()