Skip to content

Commit 635ea2e

Browse files
pillotalcaliva
authored andcommitted
fix digit time in MC
1 parent 05ef050 commit 635ea2e

File tree

6 files changed

+22
-3
lines changed

6 files changed

+22
-3
lines changed

Detectors/MUON/MCH/Simulation/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ o2_add_library(MCHSimulation
2121
PUBLIC_LINK_LIBRARIES O2::DataFormatsMCH
2222
O2::DetectorsBase
2323
O2::DetectorsPassive
24-
O2::DetectorsRaw
2524
O2::MCHBase
2625
O2::MCHGeometryCreator
2726
O2::MCHMappingInterface

Detectors/MUON/MCH/Simulation/include/MCHSimulation/DEDigitizer.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@ class DEDigitizer
4343
*/
4444
DEDigitizer(int deId, math_utils::Transform3D transformation, std::mt19937& random);
4545

46+
/** Set the first orbit of the processed TF.
47+
*
48+
* @param firstTFOrbit TF first orbit
49+
*/
50+
void setFirstTFOrbit(uint32_t firstTFOrbit) { mFirstTFOrbit = firstTFOrbit; }
51+
4652
/** Process one MCH Hit.
4753
*
4854
* This will convert the hit eloss into a charge and spread (according
@@ -123,6 +129,8 @@ class DEDigitizer
123129
std::uniform_int_distribution<int> mPadIdDist; ///< random pad ID generator (uniform distribution)
124130
std::uniform_int_distribution<int> mBCDist; ///< random BC number inside ROF generator (uniform distribution)
125131

132+
uint32_t mFirstTFOrbit; ///< first orbit of the TF being processed
133+
126134
std::vector<std::vector<Signal>> mSignals; ///< list of signals per pad
127135
};
128136

Detectors/MUON/MCH/Simulation/include/MCHSimulation/Digitizer.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ class Digitizer
4040
*/
4141
Digitizer(geo::TransformationCreator transformationCreator);
4242

43+
/// @see DEDigitizer::setFirstTFOrbit
44+
void setFirstTFOrbit(uint32_t firstTFOrbit);
45+
4346
/// @see DEDigitizer::processHit
4447
void processHits(gsl::span<const Hit> hits, const InteractionRecord& collisionTime, int evID, int srcID);
4548

Detectors/MUON/MCH/Simulation/src/DEDigitizer.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
#include <cmath>
1616
#include <limits>
1717

18-
#include "DetectorsRaw/HBFUtils.h"
1918
#include "MCHSimulation/DigitizerParam.h"
2019
#include <TGeoGlobalMagField.h>
2120
#include "Field/MagneticField.h"
@@ -45,6 +44,7 @@ DEDigitizer::DEDigitizer(int deId, math_utils::Transform3D transformation, std::
4544
mNofNoisyPadsDist{DigitizerParam::Instance().noiseOnlyProba * mSegmentation.nofPads()},
4645
mPadIdDist{0, mSegmentation.nofPads() - 1},
4746
mBCDist{0, 3},
47+
mFirstTFOrbit{0},
4848
mSignals(mSegmentation.nofPads())
4949
{
5050
}
@@ -281,7 +281,7 @@ DEDigitizer::DigitsAndLabels* DEDigitizer::addNewDigit(std::map<InteractionRecor
281281
int padid, const Signal& signal, uint32_t nSamples) const
282282
{
283283
uint32_t adc = std::round(signal.charge);
284-
auto time = signal.rofIR.differenceInBC({0, raw::HBFUtils::Instance().orbitFirst});
284+
auto time = signal.rofIR.differenceInBC({0, mFirstTFOrbit});
285285
nSamples = std::min(nSamples, 0x3FFU); // the number of samples must fit within 10 bits
286286
bool saturated = false;
287287
// the charge sum must fit within 20 bits

Detectors/MUON/MCH/Simulation/src/Digitizer.cxx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,13 @@ Digitizer::Digitizer(geo::TransformationCreator transformationCreator)
2424
});
2525
}
2626

27+
void Digitizer::setFirstTFOrbit(uint32_t firstTFOrbit)
28+
{
29+
for (auto& d : mDEDigitizers) {
30+
d.second->setFirstTFOrbit(firstTFOrbit);
31+
}
32+
}
33+
2734
void Digitizer::processHits(gsl::span<const Hit> hits, const InteractionRecord& collisionTime, int evID, int srcID)
2835
{
2936
for (const auto& hit : hits) {

Steer/DigitizerWorkflow/src/MCHDigitizerSpec.cxx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,8 @@ class MCHDPLDigitizerTask : public o2::base::BaseDPLDigitizer
7676
return;
7777
}
7878

79+
mDigitizer->setFirstTFOrbit(pc.services().get<o2::framework::TimingInfo>().firstTForbit);
80+
7981
auto tStart = std::chrono::high_resolution_clock::now();
8082
auto context = pc.inputs().get<o2::steer::DigitizationContext*>("collisioncontext");
8183
context->initSimChains(o2::detectors::DetID::MCH, mSimChains);

0 commit comments

Comments
 (0)