CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes
ctfseeding::HitExtractorSTRP Class Referencefinal

#include <HitExtractorSTRP.h>

Inheritance diagram for ctfseeding::HitExtractorSTRP:
ctfseeding::HitExtractor

Public Types

typedef SiStripRecHit2D::ClusterRef SiStripClusterRef
 
- Public Types inherited from ctfseeding::HitExtractor
using HitPointer = mayown_ptr< BaseTrackerRecHit >
 
using Hits = std::vector< HitPointer >
 
using TkHit = BaseTrackerRecHit
 
using TkHitRef = BaseTrackerRecHit const &
 

Public Member Functions

void cleanedOfClusters (const TkTransientTrackingRecHitBuilder &ttrhBuilder, const edm::Event &ev, HitExtractor::Hits &hits, bool matched, unsigned int cleanFrom=0) const
 
HitExtractorSTRPclone () const override
 
std::tuple< int, int > getMinMaxRing () const
 
 HitExtractorSTRP (GeomDetEnumerators::SubDetector subdet, TrackerDetSide side, int idLayer, float iminGoodCharge)
 
HitExtractor::Hits hits (const TkTransientTrackingRecHitBuilder &ttrhBuilder, const edm::Event &, const edm::EventSetup &) const override
 
void setMinAbsZ (double minZToSet)
 
void setNoProjection ()
 
std::pair< bool, ProjectedSiStripRecHit2D * > skipThis (const TkTransientTrackingRecHitBuilder &ttrhBuilder, TkHitRef matched, edm::Handle< edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > > > &stripClusterMask) const
 
bool skipThis (DetId id, OmniClusterRef const &clus, edm::Handle< edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > > > &stripClusterMask) const
 
void useMatchedHits (const edm::InputTag &m, edm::ConsumesCollector &iC)
 
bool useRingSelector () const
 
void useRingSelector (int minRing, int maxRing)
 
void useRPhiHits (const edm::InputTag &m, edm::ConsumesCollector &iC)
 
void useSimpleRphiHitsCleaner (bool use)
 
void useStereoHits (const edm::InputTag &m, edm::ConsumesCollector &iC)
 
 ~HitExtractorSTRP () override
 
- Public Member Functions inherited from ctfseeding::HitExtractor
 HitExtractor ()
 
void useSkipClusters (const edm::InputTag &m, edm::ConsumesCollector &iC)
 
virtual ~HitExtractor ()
 

Private Types

typedef edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > > SkipClustersCollection
 

Private Member Functions

bool ringRange (int ring) const
 
void useSkipClusters_ (const edm::InputTag &m, edm::ConsumesCollector &iC) override
 

Private Attributes

bool failProjection
 
bool hasMatchedHits
 
bool hasRingSelector
 
bool hasRPhiHits
 
bool hasSimpleRphiHitsCleaner
 
bool hasStereoHits
 
double minAbsZ
 
int theIdLayer
 
const GeomDetEnumerators::SubDetector theLayerSubDet
 
edm::EDGetTokenT< SiStripMatchedRecHit2DCollectiontheMatchedHits
 
int theMaxRing
 
int theMinRing
 
edm::EDGetTokenT< SiStripRecHit2DCollectiontheRPhiHits
 
TrackerDetSide theSide
 
edm::EDGetTokenT< SkipClustersCollectiontheSkipClusters
 
edm::EDGetTokenT< SiStripRecHit2DCollectiontheStereoHits
 

Additional Inherited Members

- Public Attributes inherited from ctfseeding::HitExtractor
bool filterCluster = false
 
bool maskCluster = false
 
float minGoodCharge = 0
 
bool skipClusters = false
 

Detailed Description

Definition at line 23 of file HitExtractorSTRP.h.

Member Typedef Documentation

◆ SiStripClusterRef

Definition at line 25 of file HitExtractorSTRP.h.

◆ SkipClustersCollection

Definition at line 74 of file HitExtractorSTRP.h.

Constructor & Destructor Documentation

◆ HitExtractorSTRP()

HitExtractorSTRP::HitExtractorSTRP ( GeomDetEnumerators::SubDetector  subdet,
TrackerDetSide  side,
int  idLayer,
float  iminGoodCharge 
)

Definition at line 29 of file HitExtractorSTRP.cc.

33  : theLayerSubDet(subdet),
34  theSide(side),
35  theIdLayer(idLayer),
36  minAbsZ(0),
37  theMinRing(1),
38  theMaxRing(0),
39  hasMatchedHits(false),
40  hasRPhiHits(false),
41  hasStereoHits(false),
42  hasRingSelector(false),
44  minGoodCharge = iminGoodCharge;
45  if (minGoodCharge > 0)
46  skipClusters = true;
47 }

References ctfseeding::HitExtractor::minGoodCharge, and ctfseeding::HitExtractor::skipClusters.

Referenced by clone().

◆ ~HitExtractorSTRP()

ctfseeding::HitExtractorSTRP::~HitExtractorSTRP ( )
inlineoverride

Definition at line 28 of file HitExtractorSTRP.h.

28 {}

Member Function Documentation

◆ cleanedOfClusters()

void HitExtractorSTRP::cleanedOfClusters ( const TkTransientTrackingRecHitBuilder ttrhBuilder,
const edm::Event ev,
HitExtractor::Hits hits,
bool  matched,
unsigned int  cleanFrom = 0 
) const

Definition at line 114 of file HitExtractorSTRP.cc.

118  {
119  LogDebug("HitExtractorPIX") << "getting: " << hits.size() << " in input.";
120  edm::Handle<SkipClustersCollection> stripClusterMask;
121  if (maskCluster)
122  ev.getByToken(theSkipClusters, stripClusterMask);
123  unsigned int skipped = 0;
124  unsigned int projected = 0;
125  for (unsigned int iH = cleanFrom; iH < hits.size(); ++iH) {
126  assert(hits[iH]->isValid());
127  auto id = hits[iH]->geographicalId();
128  if (matched) {
129  bool replace;
130  ProjectedSiStripRecHit2D* replaceMe;
131  std::tie(replace, replaceMe) = skipThis(ttrhBuilder, *hits[iH], stripClusterMask);
132  if (replace) {
133  if (!replaceMe) {
134  LogDebug("HitExtractorSTRP") << "skipping a matched hit on :" << hits[iH]->geographicalId().rawId();
135  skipped++;
136  } else
137  projected++;
138  hits[iH].reset(replaceMe);
139  if (replaceMe == nullptr)
140  assert(hits[iH].empty());
141  else
142  assert(hits[iH].isOwn());
143  }
144  } else if (skipThis(id, hits[iH]->firstClusterRef(), stripClusterMask)) {
145  LogDebug("HitExtractorSTRP") << "skipping a hit on :" << hits[iH]->geographicalId().rawId() << " key: ";
146  skipped++;
147  hits[iH].reset();
148  }
149  }
150  // remove empty elements...
151  auto last = std::remove_if(hits.begin() + cleanFrom, hits.end(), [](HitPointer const& p) { return p.empty(); });
152  hits.resize(last - hits.begin());
153 
154  // std::cout << "HitExtractorSTRP " <<"skipped :"<<skipped<<" strip rechits because of clusters and projected: "<<projected << std::endl;
155  LogDebug("HitExtractorSTRP") << "skipped :" << skipped
156  << " strip rechits because of clusters and projected: " << projected;
157 }

References cms::cuda::assert(), relativeConstraints::empty, ev, hits(), dqmdumpme::last, LogDebug, ctfseeding::HitExtractor::maskCluster, muonTagProbeFilters_cff::matched, AlCaHLTBitMon_ParallelJobs::p, python.rootplot.root2matplotlib::replace(), runEdmFileComparison::skipped, skipThis(), and theSkipClusters.

Referenced by hits().

◆ clone()

HitExtractorSTRP* ctfseeding::HitExtractorSTRP::clone ( void  ) const
inlineoverridevirtual

Implements ctfseeding::HitExtractor.

Definition at line 33 of file HitExtractorSTRP.h.

33 { return new HitExtractorSTRP(*this); }

References HitExtractorSTRP().

◆ getMinMaxRing()

std::tuple<int, int> ctfseeding::HitExtractorSTRP::getMinMaxRing ( ) const
inline

Definition at line 69 of file HitExtractorSTRP.h.

69 { return std::make_tuple(theMinRing, theMaxRing); }

References theMaxRing, and theMinRing.

◆ hits()

HitExtractor::Hits HitExtractorSTRP::hits ( const TkTransientTrackingRecHitBuilder ttrhBuilder,
const edm::Event ev,
const edm::EventSetup es 
) const
overridevirtual

Implements ctfseeding::HitExtractor.

Definition at line 159 of file HitExtractorSTRP.cc.

161  {
163  unsigned int cleanFrom = 0;
164 
165  //Retrieve tracker topology from geometry
166  edm::ESHandle<TrackerTopology> tTopoHandle;
167  es.get<TrackerTopologyRcd>().get(tTopoHandle);
168  const TrackerTopology* const tTopo = tTopoHandle.product();
169 
170  //
171  // TIB
172  //
174  if (hasMatchedHits) {
176  ev.getByToken(theMatchedHits, matchedHits);
177  if (skipClusters)
178  cleanFrom = result.size();
180  if (skipClusters)
181  cleanedOfClusters(ttrhBuilder, ev, result, true, cleanFrom);
182  }
183  if (hasRPhiHits) {
185  ev.getByToken(theRPhiHits, rphiHits);
186  if (hasMatchedHits) {
187  if (!hasSimpleRphiHitsCleaner) { // this is a brutal "cleaning". Add something smarter in the future
188  if (skipClusters)
189  cleanFrom = result.size();
191  if (skipClusters)
192  cleanedOfClusters(ttrhBuilder, ev, result, false, cleanFrom);
193  }
194  } else {
195  if (skipClusters)
196  cleanFrom = result.size();
198  if (skipClusters)
199  cleanedOfClusters(ttrhBuilder, ev, result, false, cleanFrom);
200  }
201  }
202  if (hasStereoHits) {
204  ev.getByToken(theStereoHits, stereoHits);
205  if (skipClusters)
206  cleanFrom = result.size();
208  if (skipClusters)
209  cleanedOfClusters(ttrhBuilder, ev, result, false, cleanFrom);
210  }
211  }
212 
213  //
214  // TID
215  //
217  if (hasMatchedHits) {
219  ev.getByToken(theMatchedHits, matchedHits);
220  if (skipClusters)
221  cleanFrom = result.size();
222  auto getter = tTopo->tidDetIdWheelComparator(static_cast<unsigned int>(theSide), theIdLayer);
223  SiStripMatchedRecHit2DCollection::Range range = matchedHits->equal_range(getter.first, getter.second);
224  for (SiStripMatchedRecHit2DCollection::const_iterator it = range.first; it != range.second; ++it) {
225  int ring = tTopo->tidRing(it->detId());
226  if (!ringRange(ring))
227  continue;
228  for (SiStripMatchedRecHit2DCollection::DetSet::const_iterator hit = it->begin(), end = it->end(); hit != end;
229  ++hit) {
230  result.emplace_back(*hit);
231  }
232  }
233  if (skipClusters)
234  cleanedOfClusters(ttrhBuilder, ev, result, true, cleanFrom);
235  }
236  if (hasRPhiHits) {
238  ev.getByToken(theRPhiHits, rphiHits);
239  if (skipClusters)
240  cleanFrom = result.size();
241  auto getter = tTopo->tidDetIdWheelComparator(static_cast<unsigned int>(theSide), theIdLayer);
242  SiStripRecHit2DCollection::Range range = rphiHits->equal_range(getter.first, getter.second);
243  for (SiStripRecHit2DCollection::const_iterator it = range.first; it != range.second; ++it) {
244  int ring = tTopo->tidRing(it->detId());
245  if (!ringRange(ring))
246  continue;
247  if ((SiStripDetId(it->detId()).partnerDetId() != 0) && hasSimpleRphiHitsCleaner)
248  continue; // this is a brutal "cleaning". Add something smarter in the future
249  for (SiStripRecHit2DCollection::DetSet::const_iterator hit = it->begin(), end = it->end(); hit != end; ++hit) {
250  result.emplace_back(*hit);
251  }
252  }
253  if (skipClusters)
254  cleanedOfClusters(ttrhBuilder, ev, result, false, cleanFrom);
255  }
256  if (hasStereoHits) {
258  ev.getByToken(theStereoHits, stereoHits);
259  if (skipClusters)
260  cleanFrom = result.size();
261  auto getter = tTopo->tidDetIdWheelComparator(static_cast<unsigned int>(theSide), theIdLayer);
262  SiStripRecHit2DCollection::Range range = stereoHits->equal_range(getter.first, getter.second);
263  for (SiStripRecHit2DCollection::const_iterator it = range.first; it != range.second; ++it) {
264  int ring = tTopo->tidRing(it->detId());
265  if (!ringRange(ring))
266  continue;
267  for (SiStripRecHit2DCollection::DetSet::const_iterator hit = it->begin(), end = it->end(); hit != end; ++hit) {
268  result.emplace_back(*hit);
269  }
270  }
271  if (skipClusters)
272  cleanedOfClusters(ttrhBuilder, ev, result, false, cleanFrom);
273  }
274  }
275  //
276  // TOB
277  //
279  if (hasMatchedHits) {
281  ev.getByToken(theMatchedHits, matchedHits);
282  if (skipClusters)
283  cleanFrom = result.size();
284  if (minAbsZ > 0.) {
285  auto getter = tTopo->tobDetIdLayerComparator(theIdLayer);
286  SiStripMatchedRecHit2DCollection::Range range = matchedHits->equal_range(getter.first, getter.second);
287  for (SiStripMatchedRecHit2DCollection::const_iterator it = range.first; it != range.second; ++it) {
288  for (SiStripMatchedRecHit2DCollection::DetSet::const_iterator hit = it->begin(), end = it->end(); hit != end;
289  ++hit) {
290  if (fabs(hit->globalPosition().z()) >= minAbsZ)
291  result.emplace_back(*hit);
292  }
293  }
294  } else {
296  }
297  if (skipClusters)
298  cleanedOfClusters(ttrhBuilder, ev, result, true, cleanFrom);
299  }
300  if (hasRPhiHits) {
302  ev.getByToken(theRPhiHits, rphiHits);
303  if (hasMatchedHits) {
304  if (!hasSimpleRphiHitsCleaner) { // this is a brutal "cleaning". Add something smarter in the future
305  if (skipClusters)
306  cleanFrom = result.size();
308  if (skipClusters)
309  cleanedOfClusters(ttrhBuilder, ev, result, false, cleanFrom);
310  }
311  } else {
312  if (skipClusters)
313  cleanFrom = result.size();
315  if (skipClusters)
316  cleanedOfClusters(ttrhBuilder, ev, result, false, cleanFrom);
317  }
318  }
319  if (hasStereoHits) {
321  ev.getByToken(theStereoHits, stereoHits);
322  if (skipClusters)
323  cleanFrom = result.size();
325  if (skipClusters)
326  cleanedOfClusters(ttrhBuilder, ev, result, false, cleanFrom);
327  }
328  }
329 
330  //
331  // TEC
332  //
334  if (hasMatchedHits) {
336  ev.getByToken(theMatchedHits, matchedHits);
337  if (skipClusters)
338  cleanFrom = result.size();
339  auto getter = tTopo->tecDetIdWheelComparator(static_cast<unsigned int>(theSide), theIdLayer);
340  SiStripMatchedRecHit2DCollection::Range range = matchedHits->equal_range(getter.first, getter.second);
341  for (SiStripMatchedRecHit2DCollection::const_iterator it = range.first; it != range.second; ++it) {
342  int ring = tTopo->tecRing(it->detId());
343  if (!ringRange(ring))
344  continue;
345  for (SiStripMatchedRecHit2DCollection::DetSet::const_iterator hit = it->begin(), end = it->end(); hit != end;
346  ++hit) {
347  result.emplace_back(*hit);
348  }
349  }
350  if (skipClusters)
351  cleanedOfClusters(ttrhBuilder, ev, result, true, cleanFrom);
352  }
353  if (hasRPhiHits) {
355  ev.getByToken(theRPhiHits, rphiHits);
356  if (skipClusters)
357  cleanFrom = result.size();
358  auto getter = tTopo->tecDetIdWheelComparator(static_cast<unsigned int>(theSide), theIdLayer);
359  SiStripRecHit2DCollection::Range range = rphiHits->equal_range(getter.first, getter.second);
360  for (SiStripRecHit2DCollection::const_iterator it = range.first; it != range.second; ++it) {
361  int ring = tTopo->tecRing(it->detId());
362  if (!ringRange(ring))
363  continue;
364  if ((SiStripDetId(it->detId()).partnerDetId() != 0) && hasSimpleRphiHitsCleaner)
365  continue; // this is a brutal "cleaning". Add something smarter in the future
366  for (SiStripRecHit2DCollection::DetSet::const_iterator hit = it->begin(), end = it->end(); hit != end; ++hit) {
367  result.emplace_back(*hit);
368  }
369  }
370  if (skipClusters)
371  cleanedOfClusters(ttrhBuilder, ev, result, false, cleanFrom);
372  }
373  if (hasStereoHits) {
375  ev.getByToken(theStereoHits, stereoHits);
376  if (skipClusters)
377  cleanFrom = result.size();
378  auto getter = tTopo->tecDetIdWheelComparator(static_cast<unsigned int>(theSide), theIdLayer);
379  SiStripRecHit2DCollection::Range range = stereoHits->equal_range(getter.first, getter.second);
380  for (SiStripRecHit2DCollection::const_iterator it = range.first; it != range.second; ++it) {
381  int ring = tTopo->tecRing(it->detId());
382  if (!ringRange(ring))
383  continue;
384  for (SiStripRecHit2DCollection::DetSet::const_iterator hit = it->begin(), end = it->end(); hit != end; ++hit) {
385  result.emplace_back(*hit);
386  }
387  }
388  if (skipClusters)
389  cleanedOfClusters(ttrhBuilder, ev, result, false, cleanFrom);
390  }
391  }
392 
393  LogDebug("HitExtractorSTRP") << " giving: " << result.size() << " out";
394  // std::cout << "HitExtractorSTRP "<<" giving: "<<result.size() << " for charge cut " << minGoodCharge << std::endl;
395  return result;
396 }

References cleanedOfClusters(), end, edmNew::DetSetVector< T >::equal_range(), ev, edm::EventSetup::get(), get, hasMatchedHits, hasRPhiHits, hasSimpleRphiHitsCleaner, hasStereoHits, LogDebug, minAbsZ, edm::ESHandle< T >::product(), FastTimerService_cff::range, ctfseeding::range2SeedingHits(), mps_fire::result, relativeConstraints::ring, ringRange(), ctfseeding::HitExtractor::skipClusters, GeomDetEnumerators::TEC, TrackerTopology::tecDetIdWheelComparator(), TrackerTopology::tecRing(), theIdLayer, theLayerSubDet, theMatchedHits, theRPhiHits, theSide, theStereoHits, GeomDetEnumerators::TIB, TrackerTopology::tibDetIdLayerComparator(), GeomDetEnumerators::TID, TrackerTopology::tidDetIdWheelComparator(), TrackerTopology::tidRing(), GeomDetEnumerators::TOB, TrackerTopology::tobDetIdLayerComparator(), and hit::z.

Referenced by cleanedOfClusters().

◆ ringRange()

bool HitExtractorSTRP::ringRange ( int  ring) const
private

Definition at line 59 of file HitExtractorSTRP.cc.

59  {
60  if (!hasRingSelector)
61  return true;
62  return (ring >= theMinRing) & (ring <= theMaxRing);
63 }

References hasRingSelector, relativeConstraints::ring, theMaxRing, and theMinRing.

Referenced by hits().

◆ setMinAbsZ()

void ctfseeding::HitExtractorSTRP::setMinAbsZ ( double  minZToSet)
inline

Definition at line 66 of file HitExtractorSTRP.h.

66 { minAbsZ = minZToSet; }

References minAbsZ.

◆ setNoProjection()

void ctfseeding::HitExtractorSTRP::setNoProjection ( )
inline

Definition at line 65 of file HitExtractorSTRP.h.

65 { failProjection = true; }

References failProjection.

◆ skipThis() [1/2]

std::pair< bool, ProjectedSiStripRecHit2D * > HitExtractorSTRP::skipThis ( const TkTransientTrackingRecHitBuilder ttrhBuilder,
TkHitRef  matched,
edm::Handle< edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > > > &  stripClusterMask 
) const

Definition at line 77 of file HitExtractorSTRP.cc.

80  {
82 
83  assert(dynamic_cast<SiStripMatchedRecHit2D const*>(&matched));
84 
85  auto id = hit.geographicalId();
86  ProjectedSiStripRecHit2D* replaceMe = nullptr;
87  bool rejectSt = skipThis(id, hit.stereoClusterRef(), stripClusterMask);
88  bool rejectMono = skipThis(id, hit.monoClusterRef(), stripClusterMask);
89 
90  if ((!rejectSt) & (!rejectMono)) {
91  // keepit
92  return std::make_pair(false, replaceMe);
93  }
94 
95  if (failProjection || (rejectSt & rejectMono)) {
96  //only skip if both hits are done
97  return std::make_pair(true, replaceMe);
98  }
99 
100  // replace with one
101 
102  auto cloner = ttrhBuilder.cloner();
103  replaceMe = cloner.project(hit, rejectSt, TrajectoryStateOnSurface()).release();
104  if (rejectSt)
105  LogDebug("HitExtractorSTRP") << "a matched hit is partially masked, and the mono hit got projected onto: "
106  << replaceMe->geographicalId().rawId() << " key: " << hit.monoClusterRef().key();
107  else
108  LogDebug("HitExtractorSTRP") << "a matched hit is partially masked, and the stereo hit got projected onto: "
109  << replaceMe->geographicalId().rawId() << " key: " << hit.stereoClusterRef().key();
110 
111  return std::make_pair(true, replaceMe);
112 }

References cms::cuda::assert(), TkTransientTrackingRecHitBuilder::cloner(), failProjection, TrackingRecHit::geographicalId(), LogDebug, muonTagProbeFilters_cff::matched, and DetId::rawId().

Referenced by cleanedOfClusters().

◆ skipThis() [2/2]

bool HitExtractorSTRP::skipThis ( DetId  id,
OmniClusterRef const &  clus,
edm::Handle< edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > > > &  stripClusterMask 
) const

Definition at line 65 of file HitExtractorSTRP.cc.

68  {
69  if (maskCluster && (stripClusterMask->mask(clus.key())))
70  return true;
71 
72  if
74  return siStripClusterTools::chargePerCM(id, *clus.cluster_strip()) <= minGoodCharge;
75 }

References siStripClusterTools::chargePerCM(), OmniClusterRef::cluster_strip(), OmniClusterRef::key(), ctfseeding::HitExtractor::maskCluster, ctfseeding::HitExtractor::minGoodCharge, and UNLIKELY.

◆ useMatchedHits()

void ctfseeding::HitExtractorSTRP::useMatchedHits ( const edm::InputTag m,
edm::ConsumesCollector iC 
)
inline

◆ useRingSelector() [1/2]

bool ctfseeding::HitExtractorSTRP::useRingSelector ( ) const
inline

Definition at line 68 of file HitExtractorSTRP.h.

68 { return hasRingSelector; }

References hasRingSelector.

◆ useRingSelector() [2/2]

void HitExtractorSTRP::useRingSelector ( int  minRing,
int  maxRing 
)

Definition at line 53 of file HitExtractorSTRP.cc.

53  {
54  hasRingSelector = true;
57 }

References hasRingSelector, HLT_2018_cff::maxRing, HLT_2018_cff::minRing, theMaxRing, and theMinRing.

◆ useRPhiHits()

void ctfseeding::HitExtractorSTRP::useRPhiHits ( const edm::InputTag m,
edm::ConsumesCollector iC 
)
inline

◆ useSimpleRphiHitsCleaner()

void ctfseeding::HitExtractorSTRP::useSimpleRphiHitsCleaner ( bool  use)
inline

Definition at line 48 of file HitExtractorSTRP.h.

48 { hasSimpleRphiHitsCleaner = use; }

References hasSimpleRphiHitsCleaner.

◆ useSkipClusters_()

void HitExtractorSTRP::useSkipClusters_ ( const edm::InputTag m,
edm::ConsumesCollector iC 
)
overrideprivatevirtual

◆ useStereoHits()

void ctfseeding::HitExtractorSTRP::useStereoHits ( const edm::InputTag m,
edm::ConsumesCollector iC 
)
inline

Member Data Documentation

◆ failProjection

bool ctfseeding::HitExtractorSTRP::failProjection
private

Definition at line 92 of file HitExtractorSTRP.h.

Referenced by setNoProjection(), and skipThis().

◆ hasMatchedHits

bool ctfseeding::HitExtractorSTRP::hasMatchedHits
private

Definition at line 87 of file HitExtractorSTRP.h.

Referenced by hits(), and useMatchedHits().

◆ hasRingSelector

bool ctfseeding::HitExtractorSTRP::hasRingSelector
private

Definition at line 90 of file HitExtractorSTRP.h.

Referenced by ringRange(), and useRingSelector().

◆ hasRPhiHits

bool ctfseeding::HitExtractorSTRP::hasRPhiHits
private

Definition at line 88 of file HitExtractorSTRP.h.

Referenced by hits(), and useRPhiHits().

◆ hasSimpleRphiHitsCleaner

bool ctfseeding::HitExtractorSTRP::hasSimpleRphiHitsCleaner
private

Definition at line 91 of file HitExtractorSTRP.h.

Referenced by hits(), and useSimpleRphiHitsCleaner().

◆ hasStereoHits

bool ctfseeding::HitExtractorSTRP::hasStereoHits
private

Definition at line 89 of file HitExtractorSTRP.h.

Referenced by hits(), and useStereoHits().

◆ minAbsZ

double ctfseeding::HitExtractorSTRP::minAbsZ
private

Definition at line 81 of file HitExtractorSTRP.h.

Referenced by hits(), and setMinAbsZ().

◆ theIdLayer

int ctfseeding::HitExtractorSTRP::theIdLayer
private

Definition at line 80 of file HitExtractorSTRP.h.

Referenced by hits().

◆ theLayerSubDet

const GeomDetEnumerators::SubDetector ctfseeding::HitExtractorSTRP::theLayerSubDet
private

Definition at line 78 of file HitExtractorSTRP.h.

Referenced by hits().

◆ theMatchedHits

edm::EDGetTokenT<SiStripMatchedRecHit2DCollection> ctfseeding::HitExtractorSTRP::theMatchedHits
private

Definition at line 84 of file HitExtractorSTRP.h.

Referenced by hits(), and useMatchedHits().

◆ theMaxRing

int ctfseeding::HitExtractorSTRP::theMaxRing
private

Definition at line 82 of file HitExtractorSTRP.h.

Referenced by getMinMaxRing(), ringRange(), and useRingSelector().

◆ theMinRing

int ctfseeding::HitExtractorSTRP::theMinRing
private

Definition at line 82 of file HitExtractorSTRP.h.

Referenced by getMinMaxRing(), ringRange(), and useRingSelector().

◆ theRPhiHits

edm::EDGetTokenT<SiStripRecHit2DCollection> ctfseeding::HitExtractorSTRP::theRPhiHits
private

Definition at line 85 of file HitExtractorSTRP.h.

Referenced by hits(), and useRPhiHits().

◆ theSide

TrackerDetSide ctfseeding::HitExtractorSTRP::theSide
private

Definition at line 79 of file HitExtractorSTRP.h.

Referenced by hits().

◆ theSkipClusters

edm::EDGetTokenT<SkipClustersCollection> ctfseeding::HitExtractorSTRP::theSkipClusters
private

Definition at line 83 of file HitExtractorSTRP.h.

Referenced by cleanedOfClusters(), and useSkipClusters_().

◆ theStereoHits

edm::EDGetTokenT<SiStripRecHit2DCollection> ctfseeding::HitExtractorSTRP::theStereoHits
private

Definition at line 86 of file HitExtractorSTRP.h.

Referenced by hits(), and useStereoHits().

muonTagProbeFilters_cff.matched
matched
Definition: muonTagProbeFilters_cff.py:62
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
TrackerTopology::tobDetIdLayerComparator
std::pair< DetId, SameLayerComparator > tobDetIdLayerComparator(uint32_t layer) const
Definition: TrackerTopology.h:552
funct::false
false
Definition: Factorize.h:34
ctfseeding::HitExtractorSTRP::hasMatchedHits
bool hasMatchedHits
Definition: HitExtractorSTRP.h:87
ctfseeding::HitExtractor::maskCluster
bool maskCluster
Definition: HitExtractor.h:46
GeomDetEnumerators::TID
Definition: GeomDetEnumerators.h:15
ctfseeding::HitExtractorSTRP::skipThis
std::pair< bool, ProjectedSiStripRecHit2D * > skipThis(const TkTransientTrackingRecHitBuilder &ttrhBuilder, TkHitRef matched, edm::Handle< edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > > > &stripClusterMask) const
Definition: HitExtractorSTRP.cc:77
ctfseeding::HitExtractor::skipClusters
bool skipClusters
Definition: HitExtractor.h:44
TrackerTopology::tibDetIdLayerComparator
std::pair< DetId, SameLayerComparator > tibDetIdLayerComparator(uint32_t layer) const
Definition: TrackerTopology.h:544
ctfseeding::HitExtractorSTRP::hits
HitExtractor::Hits hits(const TkTransientTrackingRecHitBuilder &ttrhBuilder, const edm::Event &, const edm::EventSetup &) const override
Definition: HitExtractorSTRP.cc:159
TrackerTopology
Definition: TrackerTopology.h:16
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
GeomDetEnumerators::TIB
Definition: GeomDetEnumerators.h:13
siStripClusterTools::chargePerCM
float chargePerCM(DetId detid, Iter a, Iter b)
Definition: SiStripClusterTools.h:29
ctfseeding::HitExtractorSTRP::failProjection
bool failProjection
Definition: HitExtractorSTRP.h:92
edmNew::DetSetVector::const_iterator
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
Definition: DetSetVectorNew.h:231
ctfseeding::HitExtractorSTRP::theRPhiHits
edm::EDGetTokenT< SiStripRecHit2DCollection > theRPhiHits
Definition: HitExtractorSTRP.h:85
cms::cuda::assert
assert(be >=bs)
GeomDetEnumerators::TOB
Definition: GeomDetEnumerators.h:14
ctfseeding::HitExtractorSTRP::theStereoHits
edm::EDGetTokenT< SiStripRecHit2DCollection > theStereoHits
Definition: HitExtractorSTRP.h:86
mathSSE::return
return((rh ^ lh) &mask)
ctfseeding::HitExtractorSTRP::theIdLayer
int theIdLayer
Definition: HitExtractorSTRP.h:80
HLT_2018_cff.minRing
minRing
Definition: HLT_2018_cff.py:44933
TkTransientTrackingRecHitBuilder::cloner
TkClonerImpl cloner() const
Definition: TkTransientTrackingRecHitBuilder.h:37
edm::Handle
Definition: AssociativeIterator.h:50
TrackingRecHit::geographicalId
DetId geographicalId() const
Definition: TrackingRecHit.h:120
ProjectedSiStripRecHit2D
Definition: ProjectedSiStripRecHit2D.h:8
TrackerTopology::tidRing
unsigned int tidRing(const DetId &id) const
Definition: TrackerTopology.h:218
end
#define end
Definition: vmac.h:39
siStripClusterTools
Definition: SiStripClusterTools.h:9
ctfseeding::HitExtractor::HitPointer
mayown_ptr< BaseTrackerRecHit > HitPointer
Definition: HitExtractor.h:27
ctfseeding::HitExtractorSTRP::hasRingSelector
bool hasRingSelector
Definition: HitExtractorSTRP.h:90
UNLIKELY
#define UNLIKELY(x)
Definition: Likely.h:21
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
dqmdumpme.last
last
Definition: dqmdumpme.py:56
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:72
edm::ESHandle< TrackerTopology >
edm::ConsumesCollector::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: ConsumesCollector.h:49
ctfseeding::HitExtractorSTRP::ringRange
bool ringRange(int ring) const
Definition: HitExtractorSTRP.cc:59
ctfseeding::HitExtractorSTRP::hasSimpleRphiHitsCleaner
bool hasSimpleRphiHitsCleaner
Definition: HitExtractorSTRP.h:91
hit::z
double z
Definition: SiStripHitEffFromCalibTree.cc:91
TrackerTopology::tidDetIdWheelComparator
std::pair< DetId, SameLayerComparator > tidDetIdWheelComparator(uint32_t side, uint32_t wheel) const
Definition: TrackerTopology.h:548
edmNew::DetSetVector::equal_range
Range equal_range(id_type i, CMP cmp, bool update=false) const
Definition: DetSetVectorNew.h:584
ctfseeding::range2SeedingHits
void range2SeedingHits(DSTV const &dstv, HitExtractor::Hits &v, std::pair< A, B > const &sel)
Definition: HitExtractor.h:54
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
ctfseeding::HitExtractorSTRP::hasStereoHits
bool hasStereoHits
Definition: HitExtractorSTRP.h:89
ctfseeding::HitExtractorSTRP::HitExtractorSTRP
HitExtractorSTRP(GeomDetEnumerators::SubDetector subdet, TrackerDetSide side, int idLayer, float iminGoodCharge)
Definition: HitExtractorSTRP.cc:29
ctfseeding::HitExtractorSTRP::theMaxRing
int theMaxRing
Definition: HitExtractorSTRP.h:82
GeomDetEnumerators::TEC
Definition: GeomDetEnumerators.h:16
ctfseeding::HitExtractorSTRP::theSide
TrackerDetSide theSide
Definition: HitExtractorSTRP.h:79
TrackerTopology::tecRing
unsigned int tecRing(const DetId &id) const
ring id
Definition: TrackerTopology.h:217
edmNew::DetSetVector::Range
std::pair< const_iterator, const_iterator > Range
Definition: DetSetVectorNew.h:232
ctfseeding::HitExtractorSTRP::cleanedOfClusters
void cleanedOfClusters(const TkTransientTrackingRecHitBuilder &ttrhBuilder, const edm::Event &ev, HitExtractor::Hits &hits, bool matched, unsigned int cleanFrom=0) const
Definition: HitExtractorSTRP.cc:114
get
#define get
ctfseeding::HitExtractorSTRP::theLayerSubDet
const GeomDetEnumerators::SubDetector theLayerSubDet
Definition: HitExtractorSTRP.h:78
ctfseeding::HitExtractorSTRP::SkipClustersCollection
edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > > SkipClustersCollection
Definition: HitExtractorSTRP.h:74
ctfseeding::HitExtractor::Hits
std::vector< HitPointer > Hits
Definition: HitExtractor.h:28
edmNew::DetSetVector
Definition: DetSetNew.h:13
HLT_2018_cff.maxRing
maxRing
Definition: HLT_2018_cff.py:44936
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
TrackerTopology::tecDetIdWheelComparator
std::pair< DetId, SameLayerComparator > tecDetIdWheelComparator(uint32_t side, uint32_t wheel) const
Definition: TrackerTopology.h:540
ctfseeding::HitExtractorSTRP::minAbsZ
double minAbsZ
Definition: HitExtractorSTRP.h:81
SiStripMatchedRecHit2D
Definition: SiStripMatchedRecHit2D.h:8
relativeConstraints.empty
bool empty
Definition: relativeConstraints.py:46
ev
bool ev
Definition: Hydjet2Hadronizer.cc:95
relativeConstraints.ring
ring
Definition: relativeConstraints.py:68
ctfseeding::HitExtractor::minGoodCharge
float minGoodCharge
Definition: HitExtractor.h:47
ctfseeding::HitExtractorSTRP::theSkipClusters
edm::EDGetTokenT< SkipClustersCollection > theSkipClusters
Definition: HitExtractorSTRP.h:83
mps_fire.result
result
Definition: mps_fire.py:303
TrackerTopologyRcd
Definition: TrackerTopologyRcd.h:10
ctfseeding::HitExtractorSTRP::theMinRing
int theMinRing
Definition: HitExtractorSTRP.h:82
SiStripDetId
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:18
runEdmFileComparison.skipped
skipped
Definition: runEdmFileComparison.py:225
hit
Definition: SiStripHitEffFromCalibTree.cc:88
ctfseeding::HitExtractorSTRP::theMatchedHits
edm::EDGetTokenT< SiStripMatchedRecHit2DCollection > theMatchedHits
Definition: HitExtractorSTRP.h:84
ctfseeding::HitExtractorSTRP::hasRPhiHits
bool hasRPhiHits
Definition: HitExtractorSTRP.h:88
python.rootplot.root2matplotlib.replace
def replace(string, replacements)
Definition: root2matplotlib.py:444