52 pixelClustersOld_ = consumes<edmNew::DetSetVector<SiPixelCluster> >(iConfig.
getParameter<
edm::InputTag>(
"stripClustersOld"));
53 stripClustersOld_ = consumes<edmNew::DetSetVector<SiStripCluster> >(iConfig.
getParameter<
edm::InputTag>(
"pixelClustersOld"));
54 pixelClustersNew_ = consumes<edmNew::DetSetVector<SiPixelCluster> >(iConfig.
getParameter<
edm::InputTag>(
"stripClustersNew"));
55 stripClustersNew_ = consumes<edmNew::DetSetVector<SiStripCluster> >(iConfig.
getParameter<
edm::InputTag>(
"pixelClustersNew"));
56 produces< ClusterRemovalInfo >();
69 iEvent.
getByToken(pixelClustersOld_, pixelClustersOld);
71 iEvent.
getByToken(stripClustersOld_, stripClustersOld);
74 iEvent.
getByToken(pixelClustersNew_, pixelClustersNew);
76 iEvent.
getByToken(stripClustersNew_, stripClustersNew);
78 auto_ptr<ClusterRemovalInfo> cri(
new ClusterRemovalInfo(pixelClustersOld, stripClustersOld));
81 stripInd.reserve(stripClustersNew->size());
82 pixelInd.reserve(pixelClustersNew->size());
87 if (oldDSstripNew.
empty())
continue;
89 uint16_t firstStripNew = clNew->firstStrip();
90 uint32_t idStripNew = itdetNew->
id();
93 uint32_t keyOld=99999;
95 const SiStripCluster * firstOffsetStripOld = & stripClustersOld->data().front();
97 if (itdetOld != stripClustersOld->end()) {
99 if (oldDSstripOld.
empty())
continue;
101 uint16_t firstStripOld = clOld->firstStrip();
102 uint32_t idStripOld = itdetOld->
id();
103 if (idStripNew==idStripOld && firstStripNew==firstStripOld) {
104 keyOld = ((&*clOld) - firstOffsetStripOld);
112 stripInd.push_back(keyOld);
120 if (oldDSpixelNew.
empty())
continue;
122 int minPixelRowNew = clNew->minPixelRow();
125 uint32_t keyOld=99999;
127 const SiPixelCluster * firstOffsetPixelOld = & pixelClustersOld->data().front();
129 if (itdetOld != pixelClustersOld->end()) {
131 if (oldDSpixelOld.
empty())
continue;
133 int minPixelRowOld = clOld->minPixelRow();
134 if (minPixelRowNew==minPixelRowOld) {
135 keyOld = ((&*clOld) - firstOffsetPixelOld);
143 pixelInd.push_back(keyOld);
T getParameter(std::string const &) const
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersNew_
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
data_type const * const_iterator
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > stripClustersOld_
id_type id(size_t cell) const
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > stripClustersNew_
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
~TopBottomClusterInfoProducer()
std::vector< uint32_t > Indices
T const * product() const
void produce(edm::Event &iEvent, const edm::EventSetup &iSetup) override
Pixel cluster – collection of neighboring pixels above threshold.
TopBottomClusterInfoProducer(const edm::ParameterSet &iConfig)
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClustersOld_