11 #include <beast/csi/modules/CsiDigitizer_v2Module.h>
12 #include <beast/csi/dataobjects/CsiSimHit.h>
14 #include <framework/logging/Logger.h>
15 #include <framework/gearbox/GearDir.h>
16 #include <framework/core/RandomNumbers.h>
40 setDescription(
"Csi digitizer_v2 module");
47 CsiDigitizer_v2Module::~CsiDigitizer_v2Module()
51 void CsiDigitizer_v2Module::initialize()
53 B2INFO(
"CsiDigitizer_v2: Initializing");
54 m_csiHit_v2.registerInDataStore();
61 void CsiDigitizer_v2Module::beginRun()
65 void CsiDigitizer_v2Module::event()
70 for (
int i = 0; i < nentries; i++) {
73 int m_box = (int)m_cellID / 6;
74 int m_cry = m_cellID - m_box * 3;
81 double erecdep = m_energyDeposit;
82 erecdep += gRandom->Gaus(0, GetEnergyResolutionGeV(m_energyDeposit, m_cry));
84 CsiHits_v2.
appendNew(
CsiHit_v2(m_cellID, m_trackID, pdgCode, m_Time * m_energyDeposit / erecdep, m_energyDeposit, m_Mom,
85 m_Pos * (m_energyDeposit / erecdep), erecdep));
91 void CsiDigitizer_v2Module::getXMLData()
93 GearDir content =
GearDir(
"/Detector/DetectorComponent[@name=\"CSI\"]/Content/");
95 int iEnergyResolutionConst = 0;
96 for (
double EnergyResolutionConst : content.getArray(
"EnergyResolutionConst", {0})) {
97 m_EnergyResolutionConst[iEnergyResolutionConst] = EnergyResolutionConst;
98 iEnergyResolutionConst++;
100 int iEnergyResolutionFactor = 0;
101 for (
double EnergyResolutionFactor : content.getArray(
"EnergyResolutionFactor", {0})) {
102 m_EnergyResolutionFactor[iEnergyResolutionFactor] = EnergyResolutionFactor;
103 iEnergyResolutionFactor++;
106 for (
double Threshold : content.getArray(
"Threshold", {0})) {
108 m_Threshold[iThres] = Threshold;
112 for (
double Range : content.getArray(
"Range", {0})) {
114 m_Range[iRange] =
Range;
118 B2INFO(
"CsiDigitizer_V2: Aquired csi locations and gas parameters");
119 B2INFO(
" from CSI.xml. There are " << nCSI <<
" CSIs implemented");
124 Double_t CsiDigitizer_v2Module::GetEnergyResolutionGeV(Double_t pEnergy,
int pcry)
127 return (m_EnergyResolutionFactor[pcry] * TMath::Sqrt(pEnergy) + m_EnergyResolutionConst[pcry] * pEnergy);
132 void CsiDigitizer_v2Module::endRun()
136 void CsiDigitizer_v2Module::terminate()