CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes
HITrackClusterRemover Class Reference
Inheritance diagram for HITrackClusterRemover:
edm::stream::EDProducer<>

Classes

struct  ParamBlock
 

Public Member Functions

 HITrackClusterRemover (const edm::ParameterSet &iConfig)
 
void produce (edm::Event &iEvent, const edm::EventSetup &iSetup) override
 
 ~HITrackClusterRemover () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Types

typedef edm::ContainerMask< edmNew::DetSetVector< SiPixelCluster > > PixelMaskContainer
 
typedef edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > > StripMaskContainer
 

Private Member Functions

template<typename T >
std::unique_ptr< edmNew::DetSetVector< T > > cleanup (const edmNew::DetSetVector< T > &oldClusters, const std::vector< uint8_t > &isGood, reco::ClusterRemovalInfo::Indices &refs, const reco::ClusterRemovalInfo::Indices *oldRefs)
 
void mergeOld (reco::ClusterRemovalInfo::Indices &refs, const reco::ClusterRemovalInfo::Indices &oldRefs)
 
void process (const OmniClusterRef &cluRef, SiStripDetId &detid, bool fromTrack)
 
void process (const TrackingRecHit *hit, unsigned char chi2, const TrackerGeometry *tg)
 
void readPSet (const edm::ParameterSet &iConfig, const std::string &name, int id1=-1, int id2=-1, int id3=-1, int id4=-1, int id5=-1, int id6=-1)
 
float sensorThickness (const SiStripDetId &detid) const
 

Private Attributes

bool clusterWasteSolution_
 
std::vector< bool > collectedPixels_
 
std::vector< bool > collectedStrips_
 
bool doPixel_
 
bool doPixelChargeCheck_
 
bool doStrip_
 
bool doStripChargeCheck_
 
bool doTracks_
 
bool filterTracks_
 
bool mergeOld_
 
int minNumberOfLayersWithMeasBeforeFiltering_
 
edm::EDGetTokenT< PixelMaskContaineroldPxlMaskToken_
 
edm::EDGetTokenT< reco::ClusterRemovalInfooldRemovalInfo_
 
edm::EDGetTokenT< StripMaskContaineroldStrMaskToken_
 
std::vector< edm::EDGetTokenT< edm::ValueMap< int > > > overrideTrkQuals_
 
ParamBlock pblocks_ [NumberOfParamBlocks]
 
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClusters_
 
std::string pixelRecHits_
 
std::vector< uint8_t > pixels
 
edm::ProductID pixelSourceProdID
 
edm::EDGetTokenT< SiStripRecHit2DCollectionrphiRecHitToken_
 
edm::EDGetTokenT< SiStripRecHit2DCollectionstereoRecHitToken_
 
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > stripClusters_
 
std::string stripRecHits_
 
std::vector< uint8_t > strips
 
edm::ProductID stripSourceProdID
 
reco::TrackBase::TrackQuality trackQuality_
 
edm::EDGetTokenT< reco::TrackCollectiontracks_
 
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordtTrackerGeom_
 

Static Private Attributes

static const unsigned int NumberOfParamBlocks = 6
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 

Detailed Description

Definition at line 41 of file HITrackClusterRemover.cc.

Member Typedef Documentation

◆ PixelMaskContainer

Definition at line 71 of file HITrackClusterRemover.cc.

◆ StripMaskContainer

Definition at line 72 of file HITrackClusterRemover.cc.

Constructor & Destructor Documentation

◆ HITrackClusterRemover()

HITrackClusterRemover::HITrackClusterRemover ( const edm::ParameterSet iConfig)

Definition at line 145 of file HITrackClusterRemover.cc.

146  : tTrackerGeom_(esConsumes<TrackerGeometry, TrackerDigiGeometryRecord>()),
147  doTracks_(iConfig.exists("trajectories")),
148  doStrip_(iConfig.existsAs<bool>("doStrip") ? iConfig.getParameter<bool>("doStrip") : true),
149  doPixel_(iConfig.existsAs<bool>("doPixel") ? iConfig.getParameter<bool>("doPixel") : true),
150  mergeOld_(iConfig.exists("oldClusterRemovalInfo")),
151  clusterWasteSolution_(true),
153  iConfig.existsAs<bool>("doStripChargeCheck") ? iConfig.getParameter<bool>("doStripChargeCheck") : false),
155  iConfig.existsAs<bool>("doPixelChargeCheck") ? iConfig.getParameter<bool>("doPixelChargeCheck") : false),
156  stripRecHits_(doStripChargeCheck_ ? iConfig.getParameter<std::string>("stripRecHits")
157  : std::string("siStripMatchedRecHits")),
158  pixelRecHits_(doPixelChargeCheck_ ? iConfig.getParameter<std::string>("pixelRecHits")
159  : std::string("siPixelRecHits")) {
160  mergeOld_ = mergeOld_ && !iConfig.getParameter<InputTag>("oldClusterRemovalInfo").label().empty();
161  if (iConfig.exists("overrideTrkQuals"))
162  overrideTrkQuals_.push_back(consumes<edm::ValueMap<int> >(iConfig.getParameter<InputTag>("overrideTrkQuals")));
163  if (iConfig.exists("clusterLessSolution"))
164  clusterWasteSolution_ = !iConfig.getParameter<bool>("clusterLessSolution");
166  throw cms::Exception("Configuration Error")
167  << "HITrackClusterRemover: Charge check asked without cluster collection ";
169  throw cms::Exception("Configuration Error")
170  << "HITrackClusterRemover: Pixel cluster charge check not yet implemented";
171 
173  produces<edmNew::DetSetVector<SiPixelCluster> >();
175  produces<edmNew::DetSetVector<SiStripCluster> >();
177  produces<ClusterRemovalInfo>();
178 
180 
181  fill(pblocks_, pblocks_ + NumberOfParamBlocks, ParamBlock());
182  readPSet(iConfig, "Common", -1);
183  if (doPixel_) {
184  readPSet(iConfig, "Pixel", 0, 1);
185  readPSet(iConfig, "PXB", 0);
186  readPSet(iConfig, "PXE", 1);
187  }
188  if (doStrip_) {
189  readPSet(iConfig, "Strip", 2, 3, 4, 5);
190  readPSet(iConfig, "StripInner", 2, 3);
191  readPSet(iConfig, "StripOuter", 4, 5);
192  readPSet(iConfig, "TIB", 2);
193  readPSet(iConfig, "TID", 3);
194  readPSet(iConfig, "TOB", 4);
195  readPSet(iConfig, "TEC", 5);
196  }
197 
198  bool usingCharge = false;
199  for (size_t i = 0; i < NumberOfParamBlocks; ++i) {
200  if (!pblocks_[i].isSet_)
201  throw cms::Exception("Configuration Error")
202  << "HITrackClusterRemover: Missing configuration for detector with subDetID = " << (i + 1);
203  if (pblocks_[i].usesCharge_ && !usingCharge) {
204  throw cms::Exception("Configuration Error") << "HITrackClusterRemover: Configuration for subDetID = " << (i + 1)
205  << " uses cluster charge, which is not enabled.";
206  }
207  }
208 
209  if (!clusterWasteSolution_) {
210  produces<edm::ContainerMask<edmNew::DetSetVector<SiPixelCluster> > >();
211  produces<edm::ContainerMask<edmNew::DetSetVector<SiStripCluster> > >();
212  }
214  filterTracks_ = false;
215  if (iConfig.exists("TrackQuality")) {
216  filterTracks_ = true;
219  iConfig.existsAs<int>("minNumberOfLayersWithMeasBeforeFiltering")
220  ? iConfig.getParameter<int>("minNumberOfLayersWithMeasBeforeFiltering")
221  : 0;
222  }
223 
224  if (doTracks_)
225  tracks_ = consumes<reco::TrackCollection>(iConfig.getParameter<InputTag>("trajectories"));
226  if (doPixel_)
227  pixelClusters_ = consumes<edmNew::DetSetVector<SiPixelCluster> >(iConfig.getParameter<InputTag>("pixelClusters"));
228  if (doStrip_)
229  stripClusters_ = consumes<edmNew::DetSetVector<SiStripCluster> >(iConfig.getParameter<InputTag>("stripClusters"));
230  if (mergeOld_) {
231  oldRemovalInfo_ = consumes<ClusterRemovalInfo>(iConfig.getParameter<InputTag>("oldClusterRemovalInfo"));
232  oldPxlMaskToken_ = consumes<PixelMaskContainer>(iConfig.getParameter<InputTag>("oldClusterRemovalInfo"));
233  oldStrMaskToken_ = consumes<StripMaskContainer>(iConfig.getParameter<InputTag>("oldClusterRemovalInfo"));
234  }
235 
236  if (doStripChargeCheck_) {
237  rphiRecHitToken_ = consumes<SiStripRecHit2DCollection>(InputTag(stripRecHits_, "rphiRecHit"));
238  stereoRecHitToken_ = consumes<SiStripRecHit2DCollection>(InputTag(stripRecHits_, "stereoRecHit"));
239  }
240  // if(doPixelChargeCheck_) pixelRecHitsToken_ = consumes<SiPixelRecHitCollection>(InputTag(pixelRecHits_));
241 }

References cms::cuda::assert(), clusterWasteSolution_, doPixel_, doPixelChargeCheck_, doStrip_, doStripChargeCheck_, doTracks_, Exception, edm::ParameterSet::exists(), edm::ParameterSet::existsAs(), ntuplemaker::fill, filterTracks_, edm::ParameterSet::getParameter(), mps_fire::i, HLT_FULL_cff::InputTag, label, mergeOld_, minNumberOfLayersWithMeasBeforeFiltering_, NumberOfParamBlocks, oldPxlMaskToken_, oldRemovalInfo_, oldStrMaskToken_, overrideTrkQuals_, pblocks_, pixelClusters_, reco::TrackBase::qualityByName(), readPSet(), rphiRecHitToken_, stereoRecHitToken_, AlCaHLTBitMon_QueryRunRegistry::string, stripClusters_, stripRecHits_, trackQuality_, tracks_, and reco::TrackBase::undefQuality.

◆ ~HITrackClusterRemover()

HITrackClusterRemover::~HITrackClusterRemover ( )
override

Definition at line 243 of file HITrackClusterRemover.cc.

243 {}

Member Function Documentation

◆ cleanup()

template<typename T >
std::unique_ptr< edmNew::DetSetVector< T > > HITrackClusterRemover::cleanup ( const edmNew::DetSetVector< T > &  oldClusters,
const std::vector< uint8_t > &  isGood,
reco::ClusterRemovalInfo::Indices refs,
const reco::ClusterRemovalInfo::Indices oldRefs 
)
private

Definition at line 252 of file HITrackClusterRemover.cc.

256  {
257  typedef typename edmNew::DetSetVector<T> DSV;
258  typedef typename edmNew::DetSetVector<T>::FastFiller DSF;
259  typedef typename edmNew::DetSet<T> DS;
260  auto output = std::make_unique<DSV>();
261  output->reserve(oldClusters.size(), oldClusters.dataSize());
262 
263  unsigned int countOld = 0;
264  unsigned int countNew = 0;
265 
266  // cluster removal loop
267  const T *firstOffset = &oldClusters.data().front();
268  for (typename DSV::const_iterator itdet = oldClusters.begin(), enddet = oldClusters.end(); itdet != enddet; ++itdet) {
269  DS oldDS = *itdet;
270 
271  if (oldDS.empty())
272  continue; // skip empty detsets
273 
274  uint32_t id = oldDS.detId();
275  DSF outds(*output, id);
276 
277  for (typename DS::const_iterator it = oldDS.begin(), ed = oldDS.end(); it != ed; ++it) {
278  uint32_t index = ((&*it) - firstOffset);
279  countOld++;
280  if (isGood[index]) {
281  outds.push_back(*it);
282  countNew++;
283  refs.push_back(index);
284  //std::cout << "HITrackClusterRemover::cleanup " << typeid(T).name() << " reference " << index << " to " << (refs.size() - 1) << std::endl;
285  }
286  }
287  if (outds.empty())
288  outds.abort(); // not write in an empty DSV
289  }
290 
291  if (oldRefs != nullptr)
292  mergeOld(refs, *oldRefs);
293  return output;
294 }

References edmNew::DetSetVector< T >::begin(), edmNew::DetSetVector< T >::data(), edmNew::DetSetVector< T >::dataSize(), edmNew::DetSetVector< T >::end(), mergeOld(), convertSQLitetoXML_cfg::output, and edmNew::DetSetVector< T >::size().

Referenced by produce().

◆ mergeOld()

void HITrackClusterRemover::mergeOld ( reco::ClusterRemovalInfo::Indices refs,
const reco::ClusterRemovalInfo::Indices oldRefs 
)
private

Definition at line 245 of file HITrackClusterRemover.cc.

245  {
246  for (size_t i = 0, n = refs.size(); i < n; ++i) {
247  refs[i] = oldRefs[refs[i]];
248  }
249 }

References mps_fire::i, and dqmiodumpmetadata::n.

Referenced by cleanup().

◆ process() [1/2]

void HITrackClusterRemover::process ( const OmniClusterRef cluRef,
SiStripDetId detid,
bool  fromTrack 
)
inlineprivate

Definition at line 310 of file HITrackClusterRemover.cc.

310  {
311  SiStripRecHit2D::ClusterRef cluster = ocluster.cluster_strip();
312  if (cluster.id() != stripSourceProdID)
313  throw cms::Exception("Inconsistent Data")
314  << "HITrackClusterRemover: strip cluster ref from Product ID = " << cluster.id()
315  << " does not match with source cluster collection (ID = " << stripSourceProdID << ")\n.";
316 
317  uint32_t subdet = detid.subdetId();
318  assert(cluster.id() == stripSourceProdID);
319  if (pblocks_[subdet - 1].usesSize_ && (cluster->amplitudes().size() > pblocks_[subdet - 1].maxSize_))
320  return;
321  if (!fromTrack) {
322  if (pblocks_[subdet - 1].cutOnStripCharge_ &&
323  (cluster->charge() > (pblocks_[subdet - 1].minGoodStripCharge_ * sensorThickness(detid))))
324  return;
325  }
326 
327  if (collectedStrips_.size() <= cluster.key())
328  edm::LogError("BadCollectionSize") << collectedStrips_.size() << " is smaller than " << cluster.key();
329 
330  assert(collectedStrips_.size() > cluster.key());
331  strips[cluster.key()] = false;
333  collectedStrips_[cluster.key()] = true;
334 }

References cms::cuda::assert(), OmniClusterRef::cluster_strip(), clusterWasteSolution_, collectedStrips_, edm::Ref< C, T, F >::id(), edm::Ref< C, T, F >::key(), HITrackClusterRemover::ParamBlock::maxSize_, HITrackClusterRemover::ParamBlock::minGoodStripCharge_, pblocks_, sensorThickness(), strips, stripSourceProdID, and DetId::subdetId().

◆ process() [2/2]

void HITrackClusterRemover::process ( const TrackingRecHit hit,
unsigned char  chi2,
const TrackerGeometry tg 
)
inlineprivate

Definition at line 336 of file HITrackClusterRemover.cc.

336  {
337  SiStripDetId detid = hit->geographicalId();
338  uint32_t subdet = detid.subdetId();
339 
340  assert((subdet > 0) && (subdet <= NumberOfParamBlocks));
341 
342  // chi2 cut
343  if (chi2 > Traj2TrackHits::toChi2x5(pblocks_[subdet - 1].maxChi2_))
344  return;
345 
347  if (!doPixel_)
348  return;
349  // this is a pixel, and i *know* it is
350  const SiPixelRecHit *pixelHit = static_cast<const SiPixelRecHit *>(hit);
351 
352  SiPixelRecHit::ClusterRef cluster = pixelHit->cluster();
353 
354  if (cluster.id() != pixelSourceProdID)
355  throw cms::Exception("Inconsistent Data")
356  << "HITrackClusterRemover: pixel cluster ref from Product ID = " << cluster.id()
357  << " does not match with source cluster collection (ID = " << pixelSourceProdID << ")\n.";
358 
359  assert(cluster.id() == pixelSourceProdID);
360  //DBG// cout << "HIT NEW PIXEL DETID = " << detid.rawId() << ", Cluster [ " << cluster.key().first << " / " << cluster.key().second << " ] " << endl;
361 
362  // if requested, cut on cluster size
363  if (pblocks_[subdet - 1].usesSize_ && (cluster->pixels().size() > pblocks_[subdet - 1].maxSize_))
364  return;
365 
366  // mark as used
367  pixels[cluster.key()] = false;
368 
369  //if(!clusterWasteSolution_) collectedPixel[detid.rawId()].insert(cluster);
370  assert(collectedPixels_.size() > cluster.key());
371  //assert(detid.rawId() == cluster->geographicalId()); //This condition fails
373  collectedPixels_[cluster.key()] = true;
374 
375  } else { // aka Strip
376  if (!doStrip_)
377  return;
378  const type_info &hitType = typeid(*hit);
379  if (hitType == typeid(SiStripRecHit2D)) {
380  const SiStripRecHit2D *stripHit = static_cast<const SiStripRecHit2D *>(hit);
381  //DBG// cout << "Plain RecHit 2D: " << endl;
382  process(stripHit->omniClusterRef(), detid, true);
383  } else if (hitType == typeid(SiStripRecHit1D)) {
384  const SiStripRecHit1D *hit1D = static_cast<const SiStripRecHit1D *>(hit);
385  process(hit1D->omniClusterRef(), detid, true);
386  } else if (hitType == typeid(SiStripMatchedRecHit2D)) {
387  const SiStripMatchedRecHit2D *matchHit = static_cast<const SiStripMatchedRecHit2D *>(hit);
388  //DBG// cout << "Matched RecHit 2D: " << endl;
389  process(matchHit->monoClusterRef(), detid, true);
390  process(matchHit->stereoClusterRef(), detid, true);
391  } else if (hitType == typeid(ProjectedSiStripRecHit2D)) {
392  const ProjectedSiStripRecHit2D *projHit = static_cast<const ProjectedSiStripRecHit2D *>(hit);
393  //DBG// cout << "Projected RecHit 2D: " << endl;
394  process(projHit->originalHit().omniClusterRef(), detid, true);
395  } else
396  throw cms::Exception("NOT IMPLEMENTED")
397  << "Don't know how to handle " << hitType.name() << " on detid " << detid.rawId() << "\n";
398  }
399 }

References cms::cuda::assert(), hltPixelTracks_cff::chi2, SiPixelRecHit::cluster(), clusterWasteSolution_, collectedPixels_, doPixel_, doStrip_, Exception, TrackerGeometry::geomDetSubDetector(), edm::Ref< C, T, F >::id(), GeomDetEnumerators::isTrackerPixel(), edm::Ref< C, T, F >::key(), HITrackClusterRemover::ParamBlock::maxSize_, SiStripMatchedRecHit2D::monoClusterRef(), NumberOfParamBlocks, TrackerSingleRecHit::omniClusterRef(), ProjectedSiStripRecHit2D::originalHit(), pblocks_, pixels, pixelSourceProdID, DetId::rawId(), SiStripMatchedRecHit2D::stereoClusterRef(), DetId::subdetId(), and Traj2TrackHits::toChi2x5().

Referenced by produce().

◆ produce()

void HITrackClusterRemover::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Definition at line 411 of file HITrackClusterRemover.cc.

411  {
412  ProductID pixelOldProdID, stripOldProdID;
413 
414  const auto &tgh = &iSetup.getData(tTrackerGeom_);
415 
417  if (doPixel_) {
418  iEvent.getByToken(pixelClusters_, pixelClusters);
420  }
421  //DBG// std::cout << "HITrackClusterRemover: Read pixel " << pixelClusters_.encode() << " = ID " << pixelSourceProdID << std::endl;
422 
424  if (doStrip_) {
425  iEvent.getByToken(stripClusters_, stripClusters);
427  }
428  //DBG// std::cout << "HITrackClusterRemover: Read strip " << stripClusters_.encode() << " = ID " << stripSourceProdID << std::endl;
429 
430  std::unique_ptr<ClusterRemovalInfo> cri;
431  if (clusterWasteSolution_) {
432  if (doStrip_ && doPixel_)
433  cri = std::make_unique<ClusterRemovalInfo>(pixelClusters, stripClusters);
434  else if (doStrip_)
435  cri = std::make_unique<ClusterRemovalInfo>(stripClusters);
436  else if (doPixel_)
437  cri = std::make_unique<ClusterRemovalInfo>(pixelClusters);
438  }
439 
440  Handle<ClusterRemovalInfo> oldRemovalInfo;
442  iEvent.getByToken(oldRemovalInfo_, oldRemovalInfo);
443  // Check ProductIDs
444  if ((oldRemovalInfo->stripNewRefProd().id() == stripClusters.id()) &&
445  (oldRemovalInfo->pixelNewRefProd().id() == pixelClusters.id())) {
446  cri->getOldClustersFrom(*oldRemovalInfo);
447 
448  pixelOldProdID = oldRemovalInfo->pixelRefProd().id();
449  stripOldProdID = oldRemovalInfo->stripRefProd().id();
450 
451  } else {
453  labelsForToken(oldRemovalInfo_, labels);
454  throw cms::Exception("Inconsistent Data")
455  << "HITrackClusterRemover: "
456  << "Input collection product IDs are [pixel: " << pixelClusters.id() << ", strip: " << stripClusters.id()
457  << "] \n"
458  << "\t but the *old* ClusterRemovalInfo " << labels.productInstance << " refers as 'new product ids' to "
459  << "[pixel: " << oldRemovalInfo->pixelNewRefProd().id()
460  << ", strip: " << oldRemovalInfo->stripNewRefProd().id() << "]\n"
461  << "NOTA BENE: when running HITrackClusterRemover with an old ClusterRemovalInfo the hits in the trajectory "
462  "MUST be already re-keyed.\n";
463  }
464  } else { // then Old == Source
465  pixelOldProdID = pixelSourceProdID;
466  stripOldProdID = stripSourceProdID;
467  }
468 
469  if (doStrip_) {
470  strips.resize(stripClusters->dataSize());
471  fill(strips.begin(), strips.end(), true);
472  }
473  if (doPixel_) {
474  pixels.resize(pixelClusters->dataSize());
475  fill(pixels.begin(), pixels.end(), true);
476  }
477  if (mergeOld_) {
480  iEvent.getByToken(oldPxlMaskToken_, oldPxlMask);
481  iEvent.getByToken(oldStrMaskToken_, oldStrMask);
482  LogDebug("HITrackClusterRemover") << "to merge in, " << oldStrMask->size() << " strp and " << oldPxlMask->size()
483  << " pxl";
484  oldStrMask->copyMaskTo(collectedStrips_);
485  oldPxlMask->copyMaskTo(collectedPixels_);
486  assert(stripClusters->dataSize() >= collectedStrips_.size());
487  collectedStrips_.resize(stripClusters->dataSize(), false);
488  } else {
489  collectedStrips_.resize(stripClusters->dataSize(), false);
490  collectedPixels_.resize(pixelClusters->dataSize(), false);
491  }
492 
493  if (doTracks_) {
495  iEvent.getByToken(tracks_, tracks);
496 
497  std::vector<Handle<edm::ValueMap<int> > > quals;
498  if (!overrideTrkQuals_.empty()) {
499  quals.resize(1);
500  iEvent.getByToken(overrideTrkQuals_[0], quals[0]);
501  }
502  int it = 0;
503  for (const auto &track : *tracks) {
504  if (filterTracks_) {
505  bool goodTk = true;
506  if (!quals.empty()) {
507  int qual = (*(quals[0])).get(it++);
508  if (qual < 0) {
509  goodTk = false;
510  }
511  //note that this does not work for some trackquals (goodIterative or undefQuality)
512  else
513  goodTk = (qual & (1 << trackQuality_)) >> trackQuality_;
514  } else
515  goodTk = (track.quality(trackQuality_));
516  if (!goodTk)
517  continue;
518  if (track.hitPattern().trackerLayersWithMeasurement() < minNumberOfLayersWithMeasBeforeFiltering_)
519  continue;
520  }
521  auto const &chi2sX5 = track.extra()->chi2sX5();
522  assert(chi2sX5.size() == track.recHitsSize());
523  auto hb = track.recHitsBegin();
524  for (unsigned int h = 0; h < track.recHitsSize(); h++) {
525  auto hit = *(hb + h);
526  if (!hit->isValid())
527  continue;
528  process(hit, chi2sX5[h], tgh);
529  }
530  }
531  }
532 
533  if (doStripChargeCheck_) {
535  iEvent.getByToken(rphiRecHitToken_, rechitsrphi);
536  const SiStripRecHit2DCollection::DataContainer *rphiRecHits = &(rechitsrphi).product()->data();
538  recHit != rphiRecHits->end();
539  recHit++) {
540  SiStripDetId detid = recHit->geographicalId();
541  process(recHit->omniClusterRef(), detid, false);
542  }
544  iEvent.getByToken(stereoRecHitToken_, rechitsstereo);
545  const SiStripRecHit2DCollection::DataContainer *stereoRecHits = &(rechitsstereo).product()->data();
547  recHit != stereoRecHits->end();
548  recHit++) {
549  SiStripDetId detid = recHit->geographicalId();
550  process(recHit->omniClusterRef(), detid, false);
551  }
552  }
553  // if(doPixelChargeCheck_) {
554  // edm::Handle<SiPixelRecHitCollection> pixelrechits;
555  // iEvent.getByToken(pixelRecHitsToken_,pixelrechits);
556  // }
557 
560  cleanup(*pixelClusters, pixels, cri->pixelIndices(), mergeOld_ ? &oldRemovalInfo->pixelIndices() : nullptr));
561  //DBG// std::cout << "HITrackClusterRemover: Wrote pixel " << newPixels.id() << " from " << pixelSourceProdID << std::endl;
562  cri->setNewPixelClusters(newPixels);
563  }
566  cleanup(*stripClusters, strips, cri->stripIndices(), mergeOld_ ? &oldRemovalInfo->stripIndices() : nullptr));
567  //DBG// std::cout << "HITrackClusterRemover: Wrote strip " << newStrips.id() << " from " << stripSourceProdID << std::endl;
568  cri->setNewStripClusters(newStrips);
569  }
570 
571  if (clusterWasteSolution_) {
572  // double fraction_pxl= cri->pixelIndices().size() / (double) pixels.size();
573  // double fraction_strp= cri->stripIndices().size() / (double) strips.size();
574  // edm::LogWarning("HITrackClusterRemover")<<" fraction: " << fraction_pxl <<" "<<fraction_strp;
575  iEvent.put(std::move(cri));
576  }
577 
578  pixels.clear();
579  strips.clear();
580 
581  if (!clusterWasteSolution_) {
582  //auto_ptr<edmNew::DetSetVector<SiPixelClusterRefNew> > removedPixelClsuterRefs(new edmNew::DetSetVector<SiPixelClusterRefNew>());
583  //auto_ptr<edmNew::DetSetVector<SiStripRecHit1D::ClusterRef> > removedStripClsuterRefs(new edmNew::DetSetVector<SiStripRecHit1D::ClusterRef>());
584 
585  LogDebug("HITrackClusterRemover") << "total strip to skip: "
586  << std::count(collectedStrips_.begin(), collectedStrips_.end(), true);
587  // std::cout << "HITrackClusterRemover " <<"total strip to skip: "<<std::count(collectedStrips_.begin(),collectedStrips_.end(),true) <<std::endl;
588  iEvent.put(std::make_unique<StripMaskContainer>(edm::RefProd<edmNew::DetSetVector<SiStripCluster> >(stripClusters),
590 
591  LogDebug("HITrackClusterRemover") << "total pxl to skip: "
592  << std::count(collectedPixels_.begin(), collectedPixels_.end(), true);
593  iEvent.put(std::make_unique<PixelMaskContainer>(edm::RefProd<edmNew::DetSetVector<SiPixelCluster> >(pixelClusters),
595  }
596  collectedStrips_.clear();
597  collectedPixels_.clear();
598 }

References cms::cuda::assert(), cleanup(), clusterWasteSolution_, collectedPixels_, collectedStrips_, edm::ContainerMask< T >::copyMaskTo(), submitPVResolutionJobs::count, doPixel_, doStrip_, doStripChargeCheck_, doTracks_, Exception, ntuplemaker::fill, filterTracks_, edm::EventSetup::getData(), h, hcalSimParameters_cfi::hb, edm::RefProd< C >::id(), iEvent, SummaryClient_cfi::labels, LogDebug, mergeOld_, minNumberOfLayersWithMeasBeforeFiltering_, eostools::move(), oldPxlMaskToken_, oldRemovalInfo_, oldStrMaskToken_, overrideTrkQuals_, LumiMonitor_cff::pixelClusters, pixelClusters_, reco::ClusterRemovalInfo::pixelIndices(), reco::ClusterRemovalInfo::pixelNewRefProd(), reco::ClusterRemovalInfo::pixelRefProd(), pixels, pixelSourceProdID, process(), rpcPointValidation_cfi::recHit, HLT_FULL_cff::rphiRecHits, rphiRecHitToken_, edm::ContainerMask< T >::size(), HLT_FULL_cff::stereoRecHits, stereoRecHitToken_, HLT_FULL_cff::stripClusters, stripClusters_, reco::ClusterRemovalInfo::stripIndices(), reco::ClusterRemovalInfo::stripNewRefProd(), reco::ClusterRemovalInfo::stripRefProd(), strips, stripSourceProdID, HLT_FULL_cff::track, trackQuality_, tracks, tracks_, and tTrackerGeom_.

◆ readPSet()

void HITrackClusterRemover::readPSet ( const edm::ParameterSet iConfig,
const std::string &  name,
int  id1 = -1,
int  id2 = -1,
int  id3 = -1,
int  id4 = -1,
int  id5 = -1,
int  id6 = -1 
)
private

Definition at line 123 of file HITrackClusterRemover.cc.

124  {
125  if (iConfig.exists(name)) {
126  ParamBlock pblock(iConfig.getParameter<ParameterSet>(name));
127  if (id1 == -1) {
129  } else {
130  pblocks_[id1] = pblock;
131  if (id2 != -1)
132  pblocks_[id2] = pblock;
133  if (id3 != -1)
134  pblocks_[id3] = pblock;
135  if (id4 != -1)
136  pblocks_[id4] = pblock;
137  if (id5 != -1)
138  pblocks_[id5] = pblock;
139  if (id6 != -1)
140  pblocks_[id6] = pblock;
141  }
142  }
143 }

References edm::ParameterSet::exists(), ntuplemaker::fill, edm::ParameterSet::getParameter(), globals_cff::id1, globals_cff::id2, and Skims_PA_cff::name.

Referenced by HITrackClusterRemover().

◆ sensorThickness()

float HITrackClusterRemover::sensorThickness ( const SiStripDetId detid) const
private

Definition at line 296 of file HITrackClusterRemover.cc.

296  {
297  if (detid.subdetId() >= SiStripDetId::TIB) {
298  if (detid.subdetId() == SiStripDetId::TOB)
299  return 0.047;
302  return 0.047;
303  return 0.029; // so it is TEC ring 1-4 or TIB or TOB;
304  } else if (detid.subdetId() == PixelSubdetector::PixelBarrel)
305  return 0.0285;
306  else
307  return 0.027;
308 }

References SiStripDetId::moduleGeometry(), PixelSubdetector::PixelBarrel, DetId::subdetId(), SiStripDetId::TIB, SiStripDetId::TOB, W5, W6, and W7.

Referenced by process().

Member Data Documentation

◆ clusterWasteSolution_

bool HITrackClusterRemover::clusterWasteSolution_
private

Definition at line 108 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), process(), and produce().

◆ collectedPixels_

std::vector<bool> HITrackClusterRemover::collectedPixels_
private

Definition at line 114 of file HITrackClusterRemover.cc.

Referenced by process(), and produce().

◆ collectedStrips_

std::vector<bool> HITrackClusterRemover::collectedStrips_
private

Definition at line 113 of file HITrackClusterRemover.cc.

Referenced by process(), and produce().

◆ doPixel_

bool HITrackClusterRemover::doPixel_
private

Definition at line 69 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), process(), and produce().

◆ doPixelChargeCheck_

bool HITrackClusterRemover::doPixelChargeCheck_
private

Definition at line 108 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover().

◆ doStrip_

bool HITrackClusterRemover::doStrip_
private

Definition at line 69 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), process(), and produce().

◆ doStripChargeCheck_

bool HITrackClusterRemover::doStripChargeCheck_
private

Definition at line 108 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), and produce().

◆ doTracks_

bool HITrackClusterRemover::doTracks_
private

Definition at line 68 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), and produce().

◆ filterTracks_

bool HITrackClusterRemover::filterTracks_
private

Definition at line 110 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), and produce().

◆ mergeOld_

bool HITrackClusterRemover::mergeOld_
private

Definition at line 70 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), and produce().

◆ minNumberOfLayersWithMeasBeforeFiltering_

int HITrackClusterRemover::minNumberOfLayersWithMeasBeforeFiltering_
private

Definition at line 111 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), and produce().

◆ NumberOfParamBlocks

const unsigned int HITrackClusterRemover::NumberOfParamBlocks = 6
staticprivate

Definition at line 66 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), and process().

◆ oldPxlMaskToken_

edm::EDGetTokenT<PixelMaskContainer> HITrackClusterRemover::oldPxlMaskToken_
private

Definition at line 77 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), and produce().

◆ oldRemovalInfo_

edm::EDGetTokenT<reco::ClusterRemovalInfo> HITrackClusterRemover::oldRemovalInfo_
private

Definition at line 76 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), and produce().

◆ oldStrMaskToken_

edm::EDGetTokenT<StripMaskContainer> HITrackClusterRemover::oldStrMaskToken_
private

Definition at line 78 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), and produce().

◆ overrideTrkQuals_

std::vector<edm::EDGetTokenT<edm::ValueMap<int> > > HITrackClusterRemover::overrideTrkQuals_
private

Definition at line 79 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), and produce().

◆ pblocks_

ParamBlock HITrackClusterRemover::pblocks_[NumberOfParamBlocks]
private

Definition at line 83 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), and process().

◆ pixelClusters_

edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster> > HITrackClusterRemover::pixelClusters_
private

Definition at line 73 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), and produce().

◆ pixelRecHits_

std::string HITrackClusterRemover::pixelRecHits_
private

Definition at line 109 of file HITrackClusterRemover.cc.

◆ pixels

std::vector<uint8_t> HITrackClusterRemover::pixels
private

Definition at line 93 of file HITrackClusterRemover.cc.

Referenced by process(), and produce().

◆ pixelSourceProdID

edm::ProductID HITrackClusterRemover::pixelSourceProdID
private

Definition at line 94 of file HITrackClusterRemover.cc.

Referenced by process(), and produce().

◆ rphiRecHitToken_

edm::EDGetTokenT<SiStripRecHit2DCollection> HITrackClusterRemover::rphiRecHitToken_
private

Definition at line 80 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), and produce().

◆ stereoRecHitToken_

edm::EDGetTokenT<SiStripRecHit2DCollection> HITrackClusterRemover::stereoRecHitToken_
private

Definition at line 80 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), and produce().

◆ stripClusters_

edm::EDGetTokenT<edmNew::DetSetVector<SiStripCluster> > HITrackClusterRemover::stripClusters_
private

Definition at line 74 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), and produce().

◆ stripRecHits_

std::string HITrackClusterRemover::stripRecHits_
private

Definition at line 109 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover().

◆ strips

std::vector<uint8_t> HITrackClusterRemover::strips
private

Definition at line 93 of file HITrackClusterRemover.cc.

Referenced by process(), and produce().

◆ stripSourceProdID

edm::ProductID HITrackClusterRemover::stripSourceProdID
private

Definition at line 94 of file HITrackClusterRemover.cc.

Referenced by process(), and produce().

◆ trackQuality_

reco::TrackBase::TrackQuality HITrackClusterRemover::trackQuality_
private

Definition at line 112 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), and produce().

◆ tracks_

edm::EDGetTokenT<reco::TrackCollection> HITrackClusterRemover::tracks_
private

Definition at line 75 of file HITrackClusterRemover.cc.

Referenced by HITrackClusterRemover(), and produce().

◆ tTrackerGeom_

const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> HITrackClusterRemover::tTrackerGeom_
private

Definition at line 48 of file HITrackClusterRemover.cc.

Referenced by produce().

edm::RefProd
Definition: EDProductfwd.h:25
SummaryClient_cfi.labels
labels
Definition: SummaryClient_cfi.py:61
SiStripDetId::moduleGeometry
SiStripModuleGeometry moduleGeometry() const
Definition: SiStripDetId.h:109
mps_fire.i
i
Definition: mps_fire.py:428
HITrackClusterRemover::doPixelChargeCheck_
bool doPixelChargeCheck_
Definition: HITrackClusterRemover.cc:108
HLT_FULL_cff.track
track
Definition: HLT_FULL_cff.py:11724
HITrackClusterRemover::pixelClusters_
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelClusters_
Definition: HITrackClusterRemover.cc:73
SiStripModuleGeometry::W7
LumiMonitor_cff.pixelClusters
pixelClusters
Definition: LumiMonitor_cff.py:10
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
edm::RefProd::id
ProductID id() const
Accessor for product ID.
Definition: RefProd.h:124
PixelSubdetector::PixelBarrel
Definition: PixelSubdetector.h:11
HITrackClusterRemover::oldPxlMaskToken_
edm::EDGetTokenT< PixelMaskContainer > oldPxlMaskToken_
Definition: HITrackClusterRemover.cc:77
Traj2TrackHits::toChi2x5
static unsigned char toChi2x5(float chi2)
Definition: Traj2TrackHits.h:25
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:72
HLT_FULL_cff.stereoRecHits
stereoRecHits
Definition: HLT_FULL_cff.py:86224
edmNew::DetSetVector::size
size_type size() const
Definition: DetSetVectorNew.h:569
HITrackClusterRemover::pblocks_
ParamBlock pblocks_[NumberOfParamBlocks]
Definition: HITrackClusterRemover.cc:83
reco::TrackBase::undefQuality
Definition: TrackBase.h:151
globals_cff.id1
id1
Definition: globals_cff.py:33
reco::ClusterRemovalInfo::stripRefProd
const SiStripClusterRefProd & stripRefProd() const
Definition: ClusterRemovalInfo.h:58
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89301
edmNew::DetSetVector::const_iterator
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
Definition: DetSetVectorNew.h:197
HITrackClusterRemover::process
void process(const TrackingRecHit *hit, unsigned char chi2, const TrackerGeometry *tg)
Definition: HITrackClusterRemover.cc:336
cms::cuda::assert
assert(be >=bs)
edmNew::DetSetVector::begin
const_iterator begin(bool update=false) const
Definition: DetSetVectorNew.h:545
SiStripRecHit2D
Definition: SiStripRecHit2D.h:7
HITrackClusterRemover::trackQuality_
reco::TrackBase::TrackQuality trackQuality_
Definition: HITrackClusterRemover.cc:112
edm::ParameterSet::existsAs
bool existsAs(std::string const &parameterName, bool trackiness=true) const
checks if a parameter exists as a given type
Definition: ParameterSet.h:171
hltPixelTracks_cff.chi2
chi2
Definition: hltPixelTracks_cff.py:25
h
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
edm::Handle
Definition: AssociativeIterator.h:50
SiPixelRecHit::cluster
ClusterRef cluster() const
Definition: SiPixelRecHit.h:47
HITrackClusterRemover::tTrackerGeom_
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tTrackerGeom_
Definition: HITrackClusterRemover.cc:48
rpcPointValidation_cfi.recHit
recHit
Definition: rpcPointValidation_cfi.py:7
ProjectedSiStripRecHit2D
Definition: ProjectedSiStripRecHit2D.h:8
HITrackClusterRemover::pixelRecHits_
std::string pixelRecHits_
Definition: HITrackClusterRemover.cc:109
SiStripModuleGeometry::W6
HITrackClusterRemover::strips
std::vector< uint8_t > strips
Definition: HITrackClusterRemover.cc:93
SiPixelRecHit
Our base class.
Definition: SiPixelRecHit.h:23
HITrackClusterRemover::pixelSourceProdID
edm::ProductID pixelSourceProdID
Definition: HITrackClusterRemover.cc:94
edm::Ref
Definition: AssociativeIterator.h:58
reco::ClusterRemovalInfo::pixelIndices
Indices & pixelIndices()
Definition: ClusterRemovalInfo.h:49
HITrackClusterRemover::readPSet
void readPSet(const edm::ParameterSet &iConfig, const std::string &name, int id1=-1, int id2=-1, int id3=-1, int id4=-1, int id5=-1, int id6=-1)
Definition: HITrackClusterRemover.cc:123
HITrackClusterRemover::stripSourceProdID
edm::ProductID stripSourceProdID
Definition: HITrackClusterRemover.cc:94
h
SiStripModuleGeometry::W5
HITrackClusterRemover::collectedPixels_
std::vector< bool > collectedPixels_
Definition: HITrackClusterRemover.cc:114
HITrackClusterRemover::collectedStrips_
std::vector< bool > collectedStrips_
Definition: HITrackClusterRemover.cc:113
HITrackClusterRemover::sensorThickness
float sensorThickness(const SiStripDetId &detid) const
Definition: HITrackClusterRemover.cc:296
edmNew::DetSet
Definition: DetSetNew.h:22
ProjectedSiStripRecHit2D::originalHit
SiStripRecHit2D originalHit() const
Definition: ProjectedSiStripRecHit2D.h:56
HITrackClusterRemover::minNumberOfLayersWithMeasBeforeFiltering_
int minNumberOfLayersWithMeasBeforeFiltering_
Definition: HITrackClusterRemover.cc:111
submitPVResolutionJobs.count
count
Definition: submitPVResolutionJobs.py:352
HITrackClusterRemover::rphiRecHitToken_
edm::EDGetTokenT< SiStripRecHit2DCollection > rphiRecHitToken_
Definition: HITrackClusterRemover.cc:80
HITrackClusterRemover::filterTracks_
bool filterTracks_
Definition: HITrackClusterRemover.cc:110
HITrackClusterRemover::stripClusters_
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > stripClusters_
Definition: HITrackClusterRemover.cc:74
HLT_FULL_cff.rphiRecHits
rphiRecHits
Definition: HLT_FULL_cff.py:86223
edmNew::DetSetVector::dataSize
size_type dataSize() const
Definition: DetSetVectorNew.h:567
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
HITrackClusterRemover::NumberOfParamBlocks
static const unsigned int NumberOfParamBlocks
Definition: HITrackClusterRemover.cc:66
HLT_FULL_cff.stripClusters
stripClusters
Definition: HLT_FULL_cff.py:10026
HITrackClusterRemover::tracks_
edm::EDGetTokenT< reco::TrackCollection > tracks_
Definition: HITrackClusterRemover.cc:75
edm::ParameterSet::exists
bool exists(std::string const &parameterName) const
checks if a parameter exists
Definition: ParameterSet.cc:681
ntuplemaker.fill
fill
Definition: ntuplemaker.py:304
HITrackClusterRemover::overrideTrkQuals_
std::vector< edm::EDGetTokenT< edm::ValueMap< int > > > overrideTrkQuals_
Definition: HITrackClusterRemover.cc:79
HITrackClusterRemover::doTracks_
bool doTracks_
Definition: HITrackClusterRemover.cc:68
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:233
TrackerGeometry::geomDetSubDetector
const GeomDetEnumerators::SubDetector geomDetSubDetector(int subdet) const
Definition: TrackerGeometry.cc:203
edm::ParameterSet
Definition: ParameterSet.h:47
tracks
const uint32_t *__restrict__ const HitContainer *__restrict__ TkSoA *__restrict__ tracks
Definition: CAHitNtupletGeneratorKernelsImpl.h:176
HITrackClusterRemover::doStripChargeCheck_
bool doStripChargeCheck_
Definition: HITrackClusterRemover.cc:108
SiStripMatchedRecHit2D::stereoClusterRef
OmniClusterRef const & stereoClusterRef() const
Definition: SiStripMatchedRecHit2D.h:34
HITrackClusterRemover::ParamBlock::minGoodStripCharge_
float minGoodStripCharge_
Definition: HITrackClusterRemover.cc:63
HITrackClusterRemover::oldRemovalInfo_
edm::EDGetTokenT< reco::ClusterRemovalInfo > oldRemovalInfo_
Definition: HITrackClusterRemover.cc:76
HITrackClusterRemover::stripRecHits_
std::string stripRecHits_
Definition: HITrackClusterRemover.cc:109
GeomDetEnumerators::isTrackerPixel
bool isTrackerPixel(GeomDetEnumerators::SubDetector m)
Definition: GeomDetEnumerators.cc:68
iEvent
int iEvent
Definition: GenABIO.cc:224
SiStripDetId::TOB
static constexpr auto TOB
Definition: SiStripDetId.h:39
edmNew::DetSetVector::DataContainer
std::vector< data_type > DataContainer
Definition: DetSetVectorNew.h:170
SiStripRecHit1D
Definition: SiStripRecHit1D.h:8
reco::ClusterRemovalInfo::stripNewRefProd
const SiStripClusterRefProd & stripNewRefProd() const
Definition: ClusterRemovalInfo.h:61
SiStripMatchedRecHit2D::monoClusterRef
OmniClusterRef const & monoClusterRef() const
Definition: SiStripMatchedRecHit2D.h:35
hcalSimParameters_cfi.hb
hb
Definition: hcalSimParameters_cfi.py:60
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::ContainerMask::size
size_t size() const
Definition: ContainerMask.h:53
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:127
reco::ClusterRemovalInfo::pixelRefProd
const SiPixelClusterRefProd & pixelRefProd() const
Definition: ClusterRemovalInfo.h:57
HITrackClusterRemover::oldStrMaskToken_
edm::EDGetTokenT< StripMaskContainer > oldStrMaskToken_
Definition: HITrackClusterRemover.cc:78
reco::TrackBase::qualityByName
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:126
HITrackClusterRemover::mergeOld_
bool mergeOld_
Definition: HITrackClusterRemover.cc:70
HITrackClusterRemover::mergeOld
void mergeOld(reco::ClusterRemovalInfo::Indices &refs, const reco::ClusterRemovalInfo::Indices &oldRefs)
Definition: HITrackClusterRemover.cc:245
edmNew::DetSetVector
Definition: DetSetNew.h:13
edm::Ref::id
ProductID id() const
Accessor for product ID.
Definition: Ref.h:244
eostools.move
def move(src, dest)
Definition: eostools.py:511
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
edm::OrphanHandle
Definition: EDProductfwd.h:39
edmNew::DetSetVector::data
data_type const * data(size_t cell) const
Definition: DetSetVectorNew.h:575
SiStripMatchedRecHit2D
Definition: SiStripMatchedRecHit2D.h:8
edm::ContainerMask::copyMaskTo
void copyMaskTo(std::vector< bool > &) const
Definition: ContainerMask.h:87
reco::ClusterRemovalInfo::pixelNewRefProd
const SiPixelClusterRefProd & pixelNewRefProd() const
Definition: ClusterRemovalInfo.h:60
T
long double T
Definition: Basic3DVectorLD.h:48
edmNew::DetSetVector::end
const_iterator end(bool update=false) const
Definition: DetSetVectorNew.h:550
edm::ValueMap< int >
Exception
Definition: hltDiff.cc:245
reco::ClusterRemovalInfo::stripIndices
Indices & stripIndices()
Definition: ClusterRemovalInfo.h:50
HITrackClusterRemover::cleanup
std::unique_ptr< edmNew::DetSetVector< T > > cleanup(const edmNew::DetSetVector< T > &oldClusters, const std::vector< uint8_t > &isGood, reco::ClusterRemovalInfo::Indices &refs, const reco::ClusterRemovalInfo::Indices *oldRefs)
Definition: HITrackClusterRemover.cc:252
SiStripDetId::TIB
static constexpr auto TIB
Definition: SiStripDetId.h:37
HITrackClusterRemover::pixels
std::vector< uint8_t > pixels
Definition: HITrackClusterRemover.cc:93
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
HITrackClusterRemover::stereoRecHitToken_
edm::EDGetTokenT< SiStripRecHit2DCollection > stereoRecHitToken_
Definition: HITrackClusterRemover.cc:80
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
edmNew::DetSetVector::FastFiller
Definition: DetSetVectorNew.h:202
HITrackClusterRemover::doPixel_
bool doPixel_
Definition: HITrackClusterRemover.cc:69
edm::Ref::key
key_type key() const
Accessor for product key.
Definition: Ref.h:250
HITrackClusterRemover::doStrip_
bool doStrip_
Definition: HITrackClusterRemover.cc:69
cms::Exception
Definition: Exception.h:70
SiStripDetId
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:18
globals_cff.id2
id2
Definition: globals_cff.py:34
HITrackClusterRemover::clusterWasteSolution_
bool clusterWasteSolution_
Definition: HITrackClusterRemover.cc:108
edm::Log
Definition: MessageLogger.h:70
TrackerSingleRecHit::omniClusterRef
OmniClusterRef const & omniClusterRef() const
Definition: TrackerSingleRecHit.h:41
edm::InputTag
Definition: InputTag.h:15
label
const char * label
Definition: PFTauDecayModeTools.cc:11
HITrackClusterRemover::ParamBlock::maxSize_
size_t maxSize_
Definition: HITrackClusterRemover.cc:64
edm::ProductID
Definition: ProductID.h:27
hit
Definition: SiStripHitEffFromCalibTree.cc:88
edm::ProductLabels
Definition: ProductLabels.h:4