2323#include " Framework/ControlService.h"
2424#include " Framework/ConfigParamRegistry.h"
2525#include " Framework/CCDBParamSpec.h"
26+ #include " Framework/InputRecordWalker.h"
2627#include " DetectorsCommonDataFormats/DetID.h"
2728#include " DataFormatsZDC/BCData.h"
2829#include " DataFormatsZDC/ChannelData.h"
@@ -101,13 +102,14 @@ void TDCCalibSpec::run(ProcessingContext& pc)
101102 mTimer .Reset ();
102103 mTimer .Start (false );
103104 }
104-
105+ std::vector<InputSpec> filterHisto = {{" tdc_1dh" , ConcreteDataTypeMatcher{" ZDC" , " TDC_1DH" }, Lifetime::Timeframe}};
106+ for (auto const & inputRef : InputRecordWalker (pc.inputs (), filterHisto)) {
107+ auto const * dh = framework::DataRefUtils::getHeader<o2::header::DataHeader*>(inputRef);
108+ o2::dataformats::FlatHisto1D<float > histoView (pc.inputs ().get <gsl::span<float >>(inputRef));
109+ mWorker .add (dh->subSpecification , histoView);
110+ }
105111 auto data = pc.inputs ().get <TDCCalibData>(" tdccalibdata" );
106112 mWorker .process (data);
107- for (int ih = 0 ; ih < TDCCalibData::NTDC ; ih++) {
108- o2::dataformats::FlatHisto1D<float > histoView (pc.inputs ().get <gsl::span<float >>(fmt::format (" tdc_1dh{}" , ih).data ()));
109- mWorker .add (ih, histoView);
110- }
111113}
112114
113115void TDCCalibSpec::endOfStream (EndOfStreamContext& ec)
@@ -147,14 +149,7 @@ framework::DataProcessorSpec getTDCCalibSpec()
147149 inputs.emplace_back (" tdccalibconfig" , " ZDC" , " TDCCALIBCONFIG" , 0 , Lifetime::Condition, o2::framework::ccdbParamSpec (fmt::format (" {}" , o2::zdc::CCDBPathTDCCalibConfig.data ())));
148150 inputs.emplace_back (" tdccalib" , " ZDC" , " TDCCALIB" , 0 , Lifetime::Condition, o2::framework::ccdbParamSpec (fmt::format (" {}" , o2::zdc::CCDBPathTDCCalib.data ())));
149151 inputs.emplace_back (" tdccalibdata" , " ZDC" , " TDCCALIBDATA" , 0 , Lifetime::Timeframe);
150-
151- char outputa[o2::header::gSizeDataDescriptionString ];
152- char outputd[o2::header::gSizeDataDescriptionString ];
153- for (int ih = 0 ; ih < TDCCalibData::NTDC ; ih++) {
154- snprintf (outputa, o2::header::gSizeDataDescriptionString , " tdc_1dh%d" , ih);
155- snprintf (outputd, o2::header::gSizeDataDescriptionString , " TDC_1DH%d" , ih);
156- inputs.emplace_back (outputa, " ZDC" , outputd, 0 , Lifetime::Timeframe);
157- }
152+ inputs.emplace_back (" tdc_1dh" , ConcreteDataTypeMatcher{" ZDC" , " TDC_1DH" }, Lifetime::Timeframe);
158153
159154 std::vector<OutputSpec> outputs;
160155 outputs.emplace_back (ConcreteDataTypeMatcher{o2::calibration::Utils::gDataOriginCDBPayload , " ZDC_TDCcalib" }, Lifetime::Sporadic);
@@ -169,4 +164,4 @@ framework::DataProcessorSpec getTDCCalibSpec()
169164}
170165
171166} // namespace zdc
172- } // namespace o2
167+ } // namespace o2
0 commit comments