@@ -52,6 +52,7 @@ void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
5252 // option allowing to set parameters
5353 std::vector<o2::framework::ConfigParamSpec> options;
5454 options.push_back (ConfigParamSpec{" ctf-input" , VariantType::String, " none" , {" comma-separated list CTF input files" }});
55+ options.push_back (ConfigParamSpec{" ctf-dict" , VariantType::String, " ccdb" , {" CTF dictionary: empty or ccdb=CCDB, none=no external dictionary otherwise: local filename" }});
5556 options.push_back (ConfigParamSpec{" onlyDet" , VariantType::String, std::string{DetID::ALL}, {" comma-separated list of detectors to accept. Overrides skipDet" }});
5657 options.push_back (ConfigParamSpec{" skipDet" , VariantType::String, std::string{DetID::NONE}, {" comma-separate list of detectors to skip" }});
5758 options.push_back (ConfigParamSpec{" loop" , VariantType::Int, 0 , {" loop N times (infinite for N<0)" }});
@@ -132,6 +133,7 @@ WorkflowSpec defineDataProcessing(ConfigContext const& configcontext)
132133 ctfInput.fileRunTimeSpans = configcontext.options ().get <std::string>(" run-time-span-file" );
133134 ctfInput.skipSkimmedOutTF = configcontext.options ().get <bool >(" skip-skimmed-out-tf" );
134135 ctfInput.invertIRFramesSelection = configcontext.options ().get <bool >(" invert-irframe-selection" );
136+ ctfInput.dictOpt = configcontext.options ().get <std::string>(" ctf-dict" );
135137 int verbosity = configcontext.options ().get <int >(" ctf-reader-verbosity" );
136138
137139 int rateLimitingIPCID = std::stoi (configcontext.options ().get <std::string>(" timeframes-rate-limit-ipcid" ));
@@ -181,52 +183,52 @@ WorkflowSpec defineDataProcessing(ConfigContext const& configcontext)
181183
182184 // add decoders for all allowed detectors.
183185 if (ctfInput.detMask [DetID::ITS]) {
184- addSpecs (o2::itsmft::getEntropyDecoderSpec (DetID::getDataOrigin (DetID::ITS), verbosity, configcontext.options ().get <bool >(" its-digits" ), ctfInput.subspec ));
186+ addSpecs (o2::itsmft::getEntropyDecoderSpec (DetID::getDataOrigin (DetID::ITS), verbosity, configcontext.options ().get <bool >(" its-digits" ), ctfInput.subspec , ctfInput. dictOpt ));
185187 }
186188 if (ctfInput.detMask [DetID::MFT]) {
187- addSpecs (o2::itsmft::getEntropyDecoderSpec (DetID::getDataOrigin (DetID::MFT), verbosity, configcontext.options ().get <bool >(" mft-digits" ), ctfInput.subspec ));
189+ addSpecs (o2::itsmft::getEntropyDecoderSpec (DetID::getDataOrigin (DetID::MFT), verbosity, configcontext.options ().get <bool >(" mft-digits" ), ctfInput.subspec , ctfInput. dictOpt ));
188190 }
189191 if (ctfInput.detMask [DetID::TPC]) {
190- addSpecs (o2::tpc::getEntropyDecoderSpec (verbosity, ctfInput.subspec ));
192+ addSpecs (o2::tpc::getEntropyDecoderSpec (verbosity, ctfInput.subspec , ctfInput. dictOpt ));
191193 }
192194 if (ctfInput.detMask [DetID::TRD]) {
193- addSpecs (o2::trd::getEntropyDecoderSpec (verbosity, ctfInput.subspec ));
195+ addSpecs (o2::trd::getEntropyDecoderSpec (verbosity, ctfInput.subspec , ctfInput. dictOpt ));
194196 }
195197 if (ctfInput.detMask [DetID::TOF]) {
196- addSpecs (o2::tof::getEntropyDecoderSpec (verbosity, ctfInput.subspec ));
198+ addSpecs (o2::tof::getEntropyDecoderSpec (verbosity, ctfInput.subspec , ctfInput. dictOpt ));
197199 }
198200 if (ctfInput.detMask [DetID::FT0]) {
199- addSpecs (o2::ft0::getEntropyDecoderSpec (verbosity, ctfInput.subspec ));
201+ addSpecs (o2::ft0::getEntropyDecoderSpec (verbosity, ctfInput.subspec , ctfInput. dictOpt ));
200202 }
201203 if (ctfInput.detMask [DetID::FV0]) {
202- addSpecs (o2::fv0::getEntropyDecoderSpec (verbosity, ctfInput.subspec ));
204+ addSpecs (o2::fv0::getEntropyDecoderSpec (verbosity, ctfInput.subspec , ctfInput. dictOpt ));
203205 }
204206 if (ctfInput.detMask [DetID::FDD]) {
205- addSpecs (o2::fdd::getEntropyDecoderSpec (verbosity, ctfInput.subspec ));
207+ addSpecs (o2::fdd::getEntropyDecoderSpec (verbosity, ctfInput.subspec , ctfInput. dictOpt ));
206208 }
207209 if (ctfInput.detMask [DetID::MID]) {
208- addSpecs (o2::mid::getEntropyDecoderSpec (verbosity, ctfInput.subspec ));
210+ addSpecs (o2::mid::getEntropyDecoderSpec (verbosity, ctfInput.subspec , ctfInput. dictOpt ));
209211 }
210212 if (ctfInput.detMask [DetID::MCH]) {
211- addSpecs (o2::mch::getEntropyDecoderSpec (verbosity, " mch-entropy-decoder" , ctfInput.subspec ));
213+ addSpecs (o2::mch::getEntropyDecoderSpec (verbosity, " mch-entropy-decoder" , ctfInput.subspec , ctfInput. dictOpt ));
212214 }
213215 if (ctfInput.detMask [DetID::EMC]) {
214- addSpecs (o2::emcal::getEntropyDecoderSpec (verbosity, ctfInput.subspec , ctfInput.decSSpecEMC ));
216+ addSpecs (o2::emcal::getEntropyDecoderSpec (verbosity, ctfInput.subspec , ctfInput.decSSpecEMC , ctfInput. dictOpt ));
215217 }
216218 if (ctfInput.detMask [DetID::PHS]) {
217- addSpecs (o2::phos::getEntropyDecoderSpec (verbosity, ctfInput.subspec ));
219+ addSpecs (o2::phos::getEntropyDecoderSpec (verbosity, ctfInput.subspec , ctfInput. dictOpt ));
218220 }
219221 if (ctfInput.detMask [DetID::CPV]) {
220- addSpecs (o2::cpv::getEntropyDecoderSpec (verbosity, ctfInput.subspec ));
222+ addSpecs (o2::cpv::getEntropyDecoderSpec (verbosity, ctfInput.subspec , ctfInput. dictOpt ));
221223 }
222224 if (ctfInput.detMask [DetID::ZDC]) {
223- addSpecs (o2::zdc::getEntropyDecoderSpec (verbosity, ctfInput.subspec ));
225+ addSpecs (o2::zdc::getEntropyDecoderSpec (verbosity, ctfInput.subspec , ctfInput. dictOpt ));
224226 }
225227 if (ctfInput.detMask [DetID::HMP]) {
226- addSpecs (o2::hmpid::getEntropyDecoderSpec (verbosity, ctfInput.subspec ));
228+ addSpecs (o2::hmpid::getEntropyDecoderSpec (verbosity, ctfInput.subspec , ctfInput. dictOpt ));
227229 }
228230 if (ctfInput.detMask [DetID::CTP]) {
229- addSpecs (o2::ctp::getEntropyDecoderSpec (verbosity, ctfInput.subspec ));
231+ addSpecs (o2::ctp::getEntropyDecoderSpec (verbosity, ctfInput.subspec , ctfInput. dictOpt ));
230232 }
231233
232234 bool combine = configcontext.options ().get <bool >(" combine-devices" );
0 commit comments