Skip to content

Commit 000bdc6

Browse files
dstoccoalcaliva
authored andcommitted
Use rejectlist in MID hit map builder
1 parent 10d3bd9 commit 000bdc6

File tree

3 files changed

+27
-10
lines changed

3 files changed

+27
-10
lines changed

Detectors/MUON/MID/Tracking/include/MIDTracking/HitMapBuilder.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ class HitMapBuilder
5555

5656
/// Sets the masked channels
5757
/// \param maskedChannels vector of masked channels
58-
void setMaskedChannels(const std::vector<ColumnData>& maskedChannels);
58+
/// \param clear clear the current masks
59+
void setMaskedChannels(const std::vector<ColumnData>& maskedChannels, bool clear);
5960

6061
private:
6162
/// Checks if the track crossed the same element

Detectors/MUON/MID/Tracking/src/HitMapBuilder.cxx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,11 @@ namespace mid
2323

2424
HitMapBuilder::HitMapBuilder(const GeometryTransformer& geoTrans) : mMapping(), mHitFinder(geoTrans) {}
2525

26-
void HitMapBuilder::setMaskedChannels(const std::vector<ColumnData>& maskedChannels)
26+
void HitMapBuilder::setMaskedChannels(const std::vector<ColumnData>& maskedChannels, bool clear)
2727
{
28-
mMaskedChannels.clear();
28+
if (clear) {
29+
mMaskedChannels.clear();
30+
}
2931
std::array<int, 2> nLines{4, 1};
3032
for (auto& mask : maskedChannels) {
3133
for (int icath = 0; icath < 2; ++icath) {

Detectors/MUON/MID/Workflow/src/TrackerSpec.cxx

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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

147160
framework::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

Comments
 (0)