Skip to content

Commit 0c89e30

Browse files
committed
dev: reading of CCDB offset paraams in rawdatadecoder
1 parent 4fb5a0f commit 0c89e30

File tree

4 files changed

+16
-6
lines changed

4 files changed

+16
-6
lines changed

DataFormats/Detectors/CTP/include/DataFormatsCTP/TriggerOffsetsParam.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ namespace ctp
2424
struct TriggerOffsetsParam : public o2::conf::ConfigurableParamHelper<TriggerOffsetsParam> {
2525
static constexpr int MaxNDet = 32; // take with margin to account for possible changes / upgrades
2626
int64_t LM_L0 = 15;
27-
int64_t L0_L1 = 280; // trigger class latency
27+
int64_t L0_L1 = 281; // trigger input latency
2828
int64_t globalInputsShift = 0; // Global shift of inps; customOffset[CTP] is global shift of classes
2929
int64_t customOffset[MaxNDet] = {};
30-
int64_t L0_L1_inputs = 281; // trigger input latency
30+
int64_t L0_L1_classes = 280; // trigger input latency
3131
O2ParamDef(TriggerOffsetsParam, "TriggerOffsetsParam"); // boilerplate stuff + make principal key
3232
};
3333
} // namespace ctp

Detectors/CTP/reconstruction/src/RawDataDecoder.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ int RawDataDecoder::addCTPDigit(uint32_t linkCRU, uint32_t orbit, gbtword80_t& d
8989
}
9090
} else if (linkCRU == o2::ctp::GBTLinkIDClassRec) {
9191
int32_t BCShiftCorrection = -o2::ctp::TriggerOffsetsParam::Instance().customOffset[o2::detectors::DetID::CTP];
92-
int32_t offset = BCShiftCorrection + o2::ctp::TriggerOffsetsParam::Instance().LM_L0 + o2::ctp::TriggerOffsetsParam::Instance().L0_L1 - 1;
92+
int32_t offset = BCShiftCorrection + o2::ctp::TriggerOffsetsParam::Instance().LM_L0 + o2::ctp::TriggerOffsetsParam::Instance().L0_L1_classes - 1;
9393
LOG(debug) << "tcr ir ori:" << ir;
9494
if ((ir.orbit <= mTFOrbit) && ((int32_t)ir.bc < offset)) {
9595
// LOG(warning) << "Loosing tclass:" << ir;
@@ -535,7 +535,7 @@ int RawDataDecoder::shiftInputs(std::map<o2::InteractionRecord, CTPDigit>& digit
535535
int nTwoIlost = 0;
536536
std::map<o2::InteractionRecord, CTPDigit> digitsMapShifted;
537537
auto L0shift = o2::ctp::TriggerOffsetsParam::Instance().LM_L0;
538-
auto L1shift = L0shift + o2::ctp::TriggerOffsetsParam::Instance().L0_L1_inputs;
538+
auto L1shift = L0shift + o2::ctp::TriggerOffsetsParam::Instance().L0_L1;
539539
for (auto const& dig : digitsMap) {
540540
auto inpmask = dig.second.CTPInputMask;
541541
auto inpmaskLM = inpmask & LMMASKInputs;

Detectors/CTP/workflow/include/CTPWorkflow/RawDecoderSpec.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include <deque>
1717
#include "Framework/DataProcessorSpec.h"
1818
#include "Framework/Task.h"
19+
#include "Framework/WorkflowSpec.h"
1920
#include "DataFormatsCTP/Digits.h"
2021
#include "DataFormatsCTP/LumiInfo.h"
2122
#include "CTPReconstruction/RawDataDecoder.h"
@@ -50,7 +51,7 @@ class RawDecoderSpec : public framework::Task
5051
/// Input RawData: {"ROUT", "RAWDATA", 0, Lifetime::Timeframe}
5152
/// Output HW errors: {"CTP", "RAWHWERRORS", 0, Lifetime::Timeframe} -later
5253
void run(framework::ProcessingContext& ctx) final;
53-
54+
void updateTimeDependentParams(framework::ProcessingContext& pc);
5455
protected:
5556
private:
5657
// for digits

Detectors/CTP/workflow/src/RawDecoderSpec.cxx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include <fairlogger/Logger.h>
1414
#include "Framework/InputRecordWalker.h"
1515
#include "Framework/DataRefUtils.h"
16-
#include "Framework/WorkflowSpec.h"
1716
#include "Framework/ConfigParamRegistry.h"
1817
#include "DetectorsRaw/RDHUtils.h"
1918
#include "CTPWorkflow/RawDecoderSpec.h"
@@ -75,6 +74,7 @@ void RawDecoderSpec::endOfStream(framework::EndOfStreamContext& ec)
7574
}
7675
void RawDecoderSpec::run(framework::ProcessingContext& ctx)
7776
{
77+
updateTimeDependentParams(ctx);
7878
mOutputDigits.clear();
7979
std::map<o2::InteractionRecord, CTPDigit> digits;
8080
using InputSpec = o2::framework::InputSpec;
@@ -143,6 +143,7 @@ void RawDecoderSpec::run(framework::ProcessingContext& ctx)
143143
mDecoder.setCTPConfig(*ctpcfg);
144144
}
145145
}
146+
const auto& trigOffsParam = o2::ctp::TriggerOffsetsParam::Instance();
146147
ret = mDecoder.decodeRaw(inputs, filter, mOutputDigits, lumiPointsHBF1);
147148
}
148149
if (ret == 1) {
@@ -230,3 +231,11 @@ o2::framework::DataProcessorSpec o2::ctp::reco_workflow::getRawDecoderSpec(bool
230231
{"max-input-size-fatal", o2::framework::VariantType::Bool, false, {"If true issue fatal error otherwise error on;y"}},
231232
{"ctpinputs-decoding", o2::framework::VariantType::Bool, false, {"Inputs alignment: true - raw decoder - has to be compatible with CTF decoder: allowed options: 10,01,00"}}}};
232233
}
234+
void RawDecoderSpec::updateTimeDependentParams(framework::ProcessingContext& pc)
235+
{
236+
if (pc.services().get<o2::framework::TimingInfo>().globalRunNumberChanged) {
237+
pc.inputs().get<o2::ctp::TriggerOffsetsParam*>("trigoffset");
238+
const auto& trigOffsParam = o2::ctp::TriggerOffsetsParam::Instance();
239+
LOG(info) << "updateing TroggerOffsetsParam: inputs L0_L1:" << trigOffsParam.L0_L1 << " classes L0_L1:" << trigOffsParam.L0_L1_classes;
240+
}
241+
}

0 commit comments

Comments
 (0)