@@ -72,11 +72,22 @@ void STFDecoder<Mapping>::init(InitContext& ic)
7272 header::DataDescription dataDesc;
7373 dataOrig.runtimeInit (v1[0 ].c_str ());
7474 dataDesc.runtimeInit (v2[0 ].c_str ());
75+ Mapping map;
7576 for (int iLayer{0 }; iLayer < mLayers ; ++iLayer) {
7677 auto & dec = mDecoder .emplace_back (std::make_unique<RawPixelDecoder<Mapping>>());
7778 dec->setUserDataOrigin (dataOrig);
7879 dec->setUserDataDescription (dataDesc);
7980 dec->init (); // is this no-op?
81+
82+ if (mDoStaggering ) {
83+ std::vector<o2::framework::InputSpec> filter;
84+ for (const auto feeID : map.getLayer2FEEIDs (iLayer)) {
85+ filter.emplace_back (" filter" , ConcreteDataMatcher{dataOrig, dataDesc, (o2::header::DataHeader::SubSpecificationType)feeID});
86+ }
87+ dec->setInputFilter (filter);
88+ } else {
89+ dec->setInputFilter ({InputSpec{" filter" , ConcreteDataTypeMatcher (dataOrig, dataDesc)}});
90+ }
8091 }
8192 } catch (const std::exception& e) {
8293 LOG (error) << " exception was thrown in decoder creation: " << e.what ();
@@ -131,17 +142,6 @@ void STFDecoder<Mapping>::init(InitContext& ic)
131142 mClusterer = std::make_unique<Clusterer>();
132143 mClusterer ->setNChips (Mapping::getNChips ());
133144 }
134-
135- if (mDoStaggering ) {
136- Mapping map;
137- for (uint32_t iLayer{0 }; iLayer < mLayers ; ++iLayer) {
138- std::vector<o2::framework::InputSpec> filter;
139- for (const auto feeID : map.getLayer2FEEIDs (iLayer)) {
140- filter.emplace_back (" filter" , ConcreteDataMatcher{Mapping::getOrigin (), o2::header::gDataDescriptionRawData , (o2::header::DataHeader::SubSpecificationType)feeID});
141- }
142- mDecoder [iLayer]->setInputFilter (filter);
143- }
144- }
145145}
146146
147147// /_______________________________________
0 commit comments