@@ -102,15 +102,25 @@ class TrackerDeviceDPL
102102
103103 void finaliseCCDB (o2::framework::ConcreteDataMatcher& matcher, void * obj)
104104 {
105- if (mCheckMasked && matcher == of::ConcreteDataMatcher (header::gDataOriginMID , " MASKED_CHANNELS" , 0 )) {
106- LOG (info) << " Update MID_MASKED_CHANNELS" ;
107- auto * badChannels = static_cast <std::vector<ColumnData>*>(obj);
108- mHitMapBuilder ->setMaskedChannels (*badChannels);
109- return ;
110- }
111105 if (o2::base::GRPGeomHelper::instance ().finaliseCCDB (matcher, obj)) {
112106 return ;
113107 }
108+ if (mCheckMasked ) {
109+ bool rebuildMaskedChannels = false ;
110+ if (matcher == of::ConcreteDataMatcher (header::gDataOriginMID , " BAD_CH_TRK" , 0 )) {
111+ LOG (info) << " Update MID_BAD_CH_TRK" ;
112+ mBadChannels = *static_cast <std::vector<ColumnData>*>(obj);
113+ rebuildMaskedChannels = true ;
114+ } else if (matcher == of::ConcreteDataMatcher (header::gDataOriginMID , " REJECTLIST_TRK" , 0 )) {
115+ LOG (info) << " Update MID_REJECTLIST_TRK" ;
116+ mRejectList = *static_cast <std::vector<ColumnData>*>(obj);
117+ rebuildMaskedChannels = true ;
118+ }
119+ if (rebuildMaskedChannels) {
120+ mHitMapBuilder ->setMaskedChannels (mBadChannels , true );
121+ mHitMapBuilder ->setMaskedChannels (mRejectList , false );
122+ }
123+ }
114124 }
115125
116126 private:
@@ -129,6 +139,7 @@ class TrackerDeviceDPL
129139 mHitMapBuilder = std::make_unique<HitMapBuilder>(geoTrans);
130140 }
131141 pc.inputs ().get <std::vector<ColumnData>*>(" mid_bad_channels_forTracks" );
142+ pc.inputs ().get <std::vector<ColumnData>*>(" mid_rejectlist_forTracks" );
132143 }
133144
134145 bool mIsMC = false ;
@@ -142,14 +153,17 @@ class TrackerDeviceDPL
142153 std::chrono::duration<double > mTimerTracker {0 }; // /< tracker timer
143154 std::chrono::duration<double > mTimerBuilder {0 }; // /< hit map builder timer
144155 unsigned int mNROFs {0 }; // / Total number of processed ROFs
156+ std::vector<ColumnData> mBadChannels {}; // /< Bad channels
157+ std::vector<ColumnData> mRejectList {}; // /< Reject list
145158};
146159
147160framework::DataProcessorSpec getTrackerSpec (bool isMC, bool checkMasked)
148161{
149162 std::vector<of::InputSpec> inputSpecs;
150163 inputSpecs.emplace_back (" mid_clusters" , header::gDataOriginMID , " CLUSTERS" );
151164 inputSpecs.emplace_back (" mid_clusters_rof" , header::gDataOriginMID , " CLUSTERSROF" );
152- inputSpecs.emplace_back (" mid_bad_channels_forTracks" , header::gDataOriginMID , " MASKED_CHANNELS" , 0 , of::Lifetime::Condition, of::ccdbParamSpec (" MID/Calib/BadChannels" ));
165+ inputSpecs.emplace_back (" mid_bad_channels_forTracks" , header::gDataOriginMID , " BAD_CH_TRK" , 0 , of::Lifetime::Condition, of::ccdbParamSpec (" MID/Calib/BadChannels" ));
166+ inputSpecs.emplace_back (" mid_rejectlist_forTracks" , header::gDataOriginMID , " REJECTLIST_TRK" , 0 , of::Lifetime::Condition, of::ccdbParamSpec (" MID/Calib/RejectList" ));
153167 auto ggRequest = std::make_shared<o2::base::GRPGeomRequest>(false , // orbitResetTime
154168 false , // GRPECS=true
155169 false , // GRPLHCIF
0 commit comments