Skip to content

Commit 28fc5b6

Browse files
mmasciovBrunella DAnzi
authored andcommitted
Add masking for phase-2
1 parent 1750035 commit 28fc5b6

File tree

1 file changed

+26
-11
lines changed

1 file changed

+26
-11
lines changed

RecoTracker/MkFit/plugins/MkFitProducer.cc

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
#include "DataFormats/Common/interface/DetSetVectorNew.h"
1010
#include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h"
1111
#include "DataFormats/SiStripCluster/interface/SiStripClusterfwd.h"
12+
#include "DataFormats/SiStripCluster/interface/SiStripClusterfwd.h"
13+
#include "DataFormats/Phase2TrackerCluster/interface/Phase2TrackerCluster1D.h"
1214

1315
#include "RecoTracker/MkFit/interface/MkFitEventOfHits.h"
1416
#include "RecoTracker/MkFit/interface/MkFitHitWrapper.h"
@@ -50,6 +52,7 @@ class MkFitProducer : public edm::global::EDProducer<edm::StreamCache<mkfit::MkB
5052
const edm::EDGetTokenT<MkFitSeedWrapper> seedToken_;
5153
edm::EDGetTokenT<edm::ContainerMask<edmNew::DetSetVector<SiPixelCluster>>> pixelMaskToken_;
5254
edm::EDGetTokenT<edm::ContainerMask<edmNew::DetSetVector<SiStripCluster>>> stripMaskToken_;
55+
edm::EDGetTokenT<edm::ContainerMask<edmNew::DetSetVector<Phase2TrackerCluster1D>>> phase2MaskToken_;
5356
const edm::ESGetToken<MkFitGeometry, TrackerRecoGeometryRecord> mkFitGeomToken_;
5457
const edm::ESGetToken<mkfit::IterationConfig, TrackerRecoGeometryRecord> mkFitIterConfigToken_;
5558
const edm::EDPutTokenT<MkFitOutputWrapper> putToken_;
@@ -81,6 +84,7 @@ MkFitProducer::MkFitProducer(edm::ParameterSet const& iConfig)
8184
if (not clustersToSkip.label().empty()) {
8285
pixelMaskToken_ = consumes(clustersToSkip);
8386
stripMaskToken_ = consumes(clustersToSkip);
87+
phase2MaskToken_ = consumes(clustersToSkip);
8488
}
8589

8690
const auto build = iConfig.getParameter<std::string>("buildingRoutine");
@@ -153,32 +157,42 @@ void MkFitProducer::produce(edm::StreamID iID, edm::Event& iEvent, const edm::Ev
153157
const auto& mkFitGeom = iSetup.getData(mkFitGeomToken_);
154158
const auto& mkFitIterConfig = iSetup.getData(mkFitIterConfigToken_);
155159

156-
const std::vector<bool>* pixelMaskPtr = nullptr;
157-
std::vector<bool> pixelMask;
160+
//const std::vector<bool>* pixelMaskPtr = nullptr;
161+
std::vector<bool> pixelMask(pixelHits.hits().size(), false);
158162
std::vector<bool> stripMask(stripHits.hits().size(), false);
159163
if (not pixelMaskToken_.isUninitialized()) {
160164
if (not pixelHits.hits().empty()) {
161165
const auto& pixelContainerMask = iEvent.get(pixelMaskToken_);
162-
pixelMask.resize(pixelContainerMask.size(), false);
166+
//pixelMask.resize(pixelContainerMask.size(), false);
163167
if UNLIKELY (pixelContainerMask.refProd().id() != pixelHits.clustersID()) {
164168
throw cms::Exception("LogicError") << "MkFitHitWrapper has pixel cluster ID " << pixelHits.clustersID()
165169
<< " but pixel cluster mask has " << pixelContainerMask.refProd().id();
166170
}
167171
pixelContainerMask.copyMaskTo(pixelMask);
168-
pixelMaskPtr = &pixelMask;
172+
//pixelMaskPtr = &pixelMask;
169173
}
170174

171175
if (not stripHits.hits().empty()) {
172-
const auto& stripContainerMask = iEvent.get(stripMaskToken_);
173-
if UNLIKELY (stripContainerMask.refProd().id() != stripHits.clustersID()) {
174-
throw cms::Exception("LogicError") << "MkFitHitWrapper has strip cluster ID " << stripHits.clustersID()
175-
<< " but strip cluster mask has " << stripContainerMask.refProd().id();
176+
if (mkFitGeom.isPhase1()) {
177+
const auto& stripContainerMask = iEvent.get(stripMaskToken_);
178+
if UNLIKELY (stripContainerMask.refProd().id() != stripHits.clustersID()) {
179+
throw cms::Exception("LogicError") << "MkFitHitWrapper has strip cluster ID " << stripHits.clustersID()
180+
<< " but strip cluster mask has " << stripContainerMask.refProd().id();
181+
}
182+
stripContainerMask.copyMaskTo(stripMask);
183+
} else {
184+
const auto& stripContainerMask = iEvent.get(phase2MaskToken_);
185+
if UNLIKELY (stripContainerMask.refProd().id() != stripHits.clustersID()) {
186+
throw cms::Exception("LogicError") << "MkFitHitWrapper has phase2 cluster ID " << stripHits.clustersID()
187+
<< " but phase2 cluster mask has " << stripContainerMask.refProd().id();
188+
}
189+
stripContainerMask.copyMaskTo(stripMask);
176190
}
177-
stripContainerMask.copyMaskTo(stripMask);
178191
}
179192
} else {
180-
if (mkFitGeom.isPhase1() && minGoodStripCharge_ > 0)
193+
if (mkFitGeom.isPhase1() && minGoodStripCharge_ > 0) {
181194
stripClusterChargeCut(iEvent.get(stripClusterChargeToken_), stripMask);
195+
}
182196
}
183197

184198
// seeds need to be mutable because of the possible cleaning
@@ -189,7 +203,8 @@ void MkFitProducer::produce(edm::StreamID iID, edm::Event& iEvent, const edm::Ev
189203
mkfit::run_OneIteration(mkFitGeom.trackerInfo(),
190204
mkFitIterConfig,
191205
eventOfHits.get(),
192-
{pixelMaskPtr, &stripMask},
206+
{&pixelMask, &stripMask},
207+
//{pixelMaskPtr, &stripMask},
193208
streamCache(iID)->get(),
194209
seeds_mutable,
195210
tracks,

0 commit comments

Comments
 (0)