Skip to content

Commit 42c8586

Browse files
JianLIUhepshahor02
authored andcommitted
Added check on STROBE_LENGTH parameter
1 parent 2e6feb6 commit 42c8586

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

Detectors/ITSMFT/common/workflow/src/STFDecoderSpec.cxx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,8 @@ void STFDecoder<Mapping>::run(ProcessingContext& pc)
159159

160160
mDecoder->setDecodeNextAuto(false);
161161
o2::InteractionRecord lastIR{}, firstIR{0, pc.services().get<o2::framework::TimingInfo>().firstTForbit};
162-
while (mDecoder->decodeNextTrigger() >= 0) {
162+
int nTriggersProcessed =0;
163+
while (mDecoder->decodeNextTrigger() >= 0) {
163164
if ((!lastIR.isDummy() && lastIR >= mDecoder->getInteractionRecord()) || firstIR > mDecoder->getInteractionRecord()) {
164165
const int MaxErrLog = 2;
165166
static int errLocCount = 0;
@@ -171,6 +172,7 @@ void STFDecoder<Mapping>::run(ProcessingContext& pc)
171172
lastIR = mDecoder->getInteractionRecord();
172173
if (mDoDigits || mClusterer->getMaxROFDepthToSquash()) { // call before clusterization, since the latter will hide the digits
173174
mDecoder->fillDecodedDigits(digVec, digROFVec, chipStatus); // lot of copying involved
175+
174176
if (mDoCalibData) {
175177
mDecoder->fillCalibData(calVec);
176178
}
@@ -180,8 +182,14 @@ void STFDecoder<Mapping>::run(ProcessingContext& pc)
180182
if (mDoClusters && !mClusterer->getMaxROFDepthToSquash()) { // !!! THREADS !!!
181183
mClusterer->process(mNThreads, *mDecoder.get(), &clusCompVec, mDoPatterns ? &clusPattVec : nullptr, &clusROFVec);
182184
}
185+
nTriggersProcessed++;
183186
}
184187

188+
const auto& alpParams = o2::itsmft::DPLAlpideParam<o2::detectors::DetID::ITS>::Instance();
189+
std::cout<<"mTFCounter= "<< mTFCounter << " from params: "<< 3564*32/alpParams.roFrameLengthInBC << " from redout: "<< nTriggersProcessed<< " number from geometry: "<< o2::base::GRPGeomHelper::instance().getGRPECS()->getNHBFPerTF()<<std::endl;
190+
int expectedValue = static_cast<int>(o2::constants::lhc::LHCMaxBunches * o2::base::GRPGeomHelper::instance().getGRPECS()->getNHBFPerTF() / alpParams.roFrameLengthInBC);
191+
if ( (expectedValue != nTriggersProcessed) && mTFCounter > 1) LOG(fatal)<< "Inconsistant size of ROF and Strobbing rate, from parameters: "<< 3564*32/alpParams.roFrameLengthInBC << " from readout: "<< nTriggersProcessed;
192+
185193
if (mDoClusters && mClusterer->getMaxROFDepthToSquash()) {
186194
// Digits squashing require to run on a batch of digits and uses a digit reader, cannot (?) run with decoder
187195
// - Setup decoder for running on a batch of digits

0 commit comments

Comments
 (0)