CMS 3D CMS Logo

HitExtractorSTRP.h
Go to the documentation of this file.
1 #ifndef RecoTracker_TkSeedingLayers_HitExtractorSTRP_H
2 #define RecoTracker_TkSeedingLayers_HitExtractorSTRP_H
3 
6 #include "HitExtractor.h"
7 
11 
12 #include <vector>
13 #include <tuple>
14 class DetLayer;
15 
16 namespace edm {
17  template <typename T>
18  class ContainerMask;
19 }
20 
21 namespace ctfseeding {
22 
23  class HitExtractorSTRP final : public HitExtractor {
24  public:
26 
27  HitExtractorSTRP(GeomDetEnumerators::SubDetector subdet, TrackerDetSide side, int idLayer, float iminGoodCharge);
28  ~HitExtractorSTRP() override {}
29 
31  const edm::Event&,
32  const edm::EventSetup&) const override;
33  HitExtractorSTRP* clone() const override { return new HitExtractorSTRP(*this); }
34 
36  hasMatchedHits = true;
37  theMatchedHits = iC.consumes<SiStripMatchedRecHit2DCollection>(m);
38  }
40  hasRPhiHits = true;
41  theRPhiHits = iC.consumes<SiStripRecHit2DCollection>(m);
42  }
44  hasStereoHits = true;
45  theStereoHits = iC.consumes<SiStripRecHit2DCollection>(m);
46  }
47  void useRingSelector(int minRing, int maxRing);
48  void useSimpleRphiHitsCleaner(bool use) { hasSimpleRphiHitsCleaner = use; }
49 
50  void cleanedOfClusters(const TkTransientTrackingRecHitBuilder& ttrhBuilder,
51  const edm::Event& ev,
52  HitExtractor::Hits& hits,
53  bool matched,
54  unsigned int cleanFrom = 0) const;
55 
56  std::pair<bool, ProjectedSiStripRecHit2D*> skipThis(
57  const TkTransientTrackingRecHitBuilder& ttrhBuilder,
58  TkHitRef matched,
60 
61  bool skipThis(DetId id,
62  OmniClusterRef const& clus,
64 
65  void setNoProjection() { failProjection = true; }
66  void setMinAbsZ(double minZToSet) { minAbsZ = minZToSet; }
67 
68  bool useRingSelector() const { return hasRingSelector; }
69  std::tuple<int, int> getMinMaxRing() const { return std::make_tuple(theMinRing, theMaxRing); }
70 
71  private:
72  bool ringRange(int ring) const;
73 
75  void useSkipClusters_(const edm::InputTag& m, edm::ConsumesCollector& iC) override;
76 
77  private:
81  double minAbsZ;
82  int theMinRing, theMaxRing;
93  };
94 
95 } // namespace ctfseeding
96 #endif
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
std::vector< HitPointer > Hits
Definition: HitExtractor.h:28
void useStereoHits(const edm::InputTag &m, edm::ConsumesCollector &iC)
void useMatchedHits(const edm::InputTag &m, edm::ConsumesCollector &iC)
TrackerDetSide
Definition: TrackerDetSide.h:4
bool ev
BaseTrackerRecHit const & TkHitRef
Definition: HitExtractor.h:26
edm::EDGetTokenT< SiStripMatchedRecHit2DCollection > theMatchedHits
const GeomDetEnumerators::SubDetector theLayerSubDet
edm::EDGetTokenT< SiStripRecHit2DCollection > theStereoHits
void useRPhiHits(const edm::InputTag &m, edm::ConsumesCollector &iC)
edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > > SkipClustersCollection
HitExtractorSTRP * clone() const override
Definition: DetId.h:17
void useSimpleRphiHitsCleaner(bool use)
edm::EDGetTokenT< SiStripRecHit2DCollection > theRPhiHits
HLT enums.
SiStripRecHit2D::ClusterRef SiStripClusterRef
void setMinAbsZ(double minZToSet)
std::tuple< int, int > getMinMaxRing() const
edm::EDGetTokenT< SkipClustersCollection > theSkipClusters