2020#include " Framework/Task.h"
2121#include " Steer/HitProcessingManager.h" // for DigitizationContext
2222#include " DetectorsBase/BaseDPLDigitizer.h"
23+ #include " DetectorsRaw/HBFUtils.h"
2324#include " SimulationDataFormat/MCTruthContainer.h"
2425#include " DataFormatsParameters/GRPObject.h"
2526#include " DataFormatsMID/ROFRecord.h"
3031#include " MIDSimulation/ChamberResponse.h"
3132#include " MIDSimulation/ChamberEfficiencyResponse.h"
3233#include " MIDSimulation/Geometry.h"
34+ #include " MIDRaw/ElectronicsDelay.h"
3335#include " DataFormatsMID/MCLabel.h"
3436
3537using namespace o2 ::framework;
@@ -83,6 +85,10 @@ class MIDDPLDigitizerTask : public o2::base::BaseDPLDigitizer
8385 context->initSimChains (o2::detectors::DetID::MID, mSimChains );
8486 auto & irecords = context->getEventRecords ();
8587
88+ auto firstTF = o2::raw::HBFUtils::Instance ().getFirstSampledTFIR ();
89+ auto delay = InteractionRecord (mElectronicsDelay .localToBC , 0 );
90+ auto firstTimeTF = InteractionTimeRecord (firstTF + delay, 0 );
91+
8692 auto & eventParts = context->getEventParts ();
8793 std::vector<o2::mid::ColumnData> digits, digitsAccum;
8894 std::vector<o2::mid::ROFRecord> rofRecords;
@@ -93,6 +99,11 @@ class MIDDPLDigitizerTask : public o2::base::BaseDPLDigitizer
9399 for (int collID = 0 ; collID < irecords.size (); ++collID) {
94100 // for each collision, loop over the constituents event and source IDs
95101 // (background signal merging is basically taking place here)
102+
103+ // Skip digits produced before the first orbit
104+ if (irecords[collID] < firstTimeTF) {
105+ continue ;
106+ }
96107 auto firstEntry = digitsAccum.size ();
97108 for (auto & part : eventParts[collID]) {
98109 mDigitizer ->setEventID (part.entryID );
@@ -136,6 +147,7 @@ class MIDDPLDigitizerTask : public o2::base::BaseDPLDigitizer
136147 std::vector<TChain*> mSimChains ;
137148 // RS: at the moment using hardcoded flag for continuos readout
138149 o2::parameters::GRPObject::ROMode mROMode = o2::parameters::GRPObject::CONTINUOUS; // readout mode
150+ ElectronicsDelay mElectronicsDelay ; // Electronics delay
139151};
140152
141153o2::framework::DataProcessorSpec getMIDDigitizerSpec (int channel, bool mctruth)
0 commit comments