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;
156 assert(collectedOuterTrackers_.size() > cluster.
key());
157 collectedOuterTrackers_[cluster.
key()] =
true;
160 <<
"I received a hit that was neither SiPixelRecHit nor Phase2TrackerRecHit1D but " << hitType.name()
161 <<
" on detid " << detid.
rawId() <<
"\n";
165 ProductID pixelOldProdID, stripOldProdID;
184 OTs.resize(phase2OTClusters->dataSize());
188 pixels.resize(pixelClusters->dataSize());
196 LogDebug(
"SeedClusterRemoverPhase2") <<
"to merge in, " << oldPh2OTMask->size() <<
" strp and "
197 << oldPxlMask->size() <<
" pxl";
210 for (
auto const &
seed : (*seeds)) {
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: "
std::vector< bool > collectedPixels_
std::vector< bool > collectedOuterTrackers_
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
edm::ProductID outerTrackerSourceProdID
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClusters_
constexpr uint32_t rawId() const
get the raw id
key_type key() const
Accessor for product key.
edm::ContainerMask< edmNew::DetSetVector< Phase2TrackerCluster1D > > Phase2OTMaskContainer
ProductID id() const
Accessor for product ID.
void process(const TrackingRecHit *hit, float chi2, const TrackerGeometry *tg)
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > const tTrackerGeom_
bool getData(T &iHolder) const
edm::EDGetTokenT< TrajectorySeedCollection > trajectories_
ClusterRef upperCluster() const
std::vector< uint8_t > pixels
edm::ContainerMask< edmNew::DetSetVector< SiPixelCluster > > PixelMaskContainer
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
edm::EDGetTokenT< PixelMaskContainer > oldPxlMaskToken_
edm::ProductID pixelSourceProdID
ClusterRef lowerCluster() const
"lower" is logical, not geometrically lower; in pixel-strip modules the "lower" is always a pixel ...
std::vector< uint8_t > OTs
void fill(std::map< std::string, TH1 * > &h, const std::string &s, double x)
SeedClusterRemoverPhase2(const edm::ParameterSet &iConfig)
ClusterRef cluster() const
T getParameter(std::string const &) const
edm::EDGetTokenT< Phase2OTMaskContainer > oldPh2OTMaskToken_
edm::EDGetTokenT< edmNew::DetSetVector< Phase2TrackerCluster1D > > phase2OTClusters_
DetId geographicalId() const
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override