65 doOuterTracker_(iConfig.existsAs<
bool>(
"doOuterTracker") ? iConfig.getParameter<
bool>(
"doOuterTracker") :
true),
66 doPixel_(iConfig.existsAs<
bool>(
"doPixel") ? iConfig.getParameter<
bool>(
"doPixel") :
true),
67 mergeOld_(iConfig.exists(
"oldClusterRemovalInfo")) {
68 produces<edm::ContainerMask<edmNew::DetSetVector<SiPixelCluster> > >();
69 produces<edm::ContainerMask<edmNew::DetSetVector<Phase2TrackerCluster1D> > >();
76 consumes<edmNew::DetSetVector<Phase2TrackerCluster1D> >(iConfig.
getParameter<
InputTag>(
"phase2OTClusters"));
89 const type_info &hitType =
typeid(*hit);
96 LogDebug(
"SeedClusterRemoverPhase2") <<
"Plain Pixel RecHit in det " << detid.
rawId();
100 <<
"SeedClusterRemoverPhase2: pixel cluster ref from Product ID = " << cluster.
id()
101 <<
" does not match with source cluster collection (ID = " <<
pixelSourceProdID <<
")\n.";
116 LogDebug(
"SeedClusterRemoverPhase2") <<
"Plain Phase2TrackerRecHit1D in det " << detid.
rawId();
121 <<
"SeedClusterRemoverPhase2: strip cluster ref from Product ID = " << cluster.
id()
126 OTs[cluster.
key()] =
false;
130 }
else if (hitType ==
typeid(
VectorHit)) {
135 LogDebug(
"SeedClusterRemoverPhase2") <<
"Plain VectorHit in det " << detid.
rawId();
141 <<
"SeedClusterRemoverPhase2: strip cluster ref from Product ID = " << cluster.
id()
144 OTs[cluster.
key()] =
false;
152 <<
"SeedClusterRemoverPhase2: strip cluster ref from Product ID = " << cluster.
id()
155 OTs[cluster.
key()] =
false;
160 <<
"I received a hit that was neither SiPixelRecHit nor Phase2TrackerRecHit1D but " << hitType.name()
161 <<
" on detid " << detid.
rawId() <<
"\n";
165 ProductID pixelOldProdID, stripOldProdID;
196 LogDebug(
"SeedClusterRemoverPhase2") <<
"to merge in, " << oldPh2OTMask->
size() <<
" strp and " 197 << oldPxlMask->
size() <<
" pxl";
211 for (
auto const &
hit :
seed.recHits()) {
221 LogDebug(
"SeedClusterRemoverPhase2") <<
"total strip to skip: " 224 iEvent.put(std::make_unique<Phase2OTMaskContainer>(
227 LogDebug(
"SeedClusterRemoverPhase2") <<
"total pxl to skip: " ClusterRef cluster() const
std::vector< bool > collectedPixels_
std::vector< bool > collectedOuterTrackers_
void copyMaskTo(std::vector< bool > &) const
T getParameter(std::string const &) const
ProductID id() const
Accessor for product ID.
edm::ProductID outerTrackerSourceProdID
T const & getData(const ESGetToken< T, R > &iToken) const noexcept(false)
ClusterRef cluster() const
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClusters_
edm::ContainerMask< edmNew::DetSetVector< Phase2TrackerCluster1D > > Phase2OTMaskContainer
ClusterRef lowerCluster() const
"lower" is logical, not geometrically lower; in pixel-strip modules the "lower" is always a pixel ...
key_type key() const
Accessor for product key.
void process(const TrackingRecHit *hit, float chi2, const TrackerGeometry *tg)
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > const tTrackerGeom_
ClusterRef upperCluster() const
edm::EDGetTokenT< TrajectorySeedCollection > trajectories_
std::vector< uint8_t > pixels
edm::ContainerMask< edmNew::DetSetVector< SiPixelCluster > > PixelMaskContainer
edm::EDGetTokenT< PixelMaskContainer > oldPxlMaskToken_
#define DEFINE_FWK_MODULE(type)
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
edm::ProductID pixelSourceProdID
std::vector< uint8_t > OTs
SeedClusterRemoverPhase2(const edm::ParameterSet &iConfig)
constexpr uint32_t rawId() const
get the raw id
edm::EDGetTokenT< Phase2OTMaskContainer > oldPh2OTMaskToken_
edm::EDGetTokenT< edmNew::DetSetVector< Phase2TrackerCluster1D > > phase2OTClusters_
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override