CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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> class ContainerMask;
18 }
19 
20 namespace ctfseeding {
21 
22 class HitExtractorSTRP final : public HitExtractor {
23 
24 public:
25  typedef SiStripRecHit2D::ClusterRef SiStripClusterRef;
26 
28  virtual ~HitExtractorSTRP(){}
29 
30  virtual HitExtractor::Hits hits( const TkTransientTrackingRecHitBuilder &ttrhBuilder, const edm::Event& , const edm::EventSetup& ) const override;
31  virtual HitExtractorSTRP * clone() const { return new HitExtractorSTRP(*this); }
32 
36  void useRingSelector(int minRing, int maxRing);
38 
39  void cleanedOfClusters( const TkTransientTrackingRecHitBuilder& ttrhBuilder, const edm::Event& ev, HitExtractor::Hits & hits, bool matched, unsigned int cleanFrom=0) const;
40 
41  std::pair<bool,ProjectedSiStripRecHit2D *>
42  skipThis(const TkTransientTrackingRecHitBuilder& ttrhBuilder, TkHitRef matched,
44 
45  bool skipThis(OmniClusterRef const& clus, edm::Handle<edm::ContainerMask<edmNew::DetSetVector<SiStripCluster> > > & stripClusterMask) const;
46 
47  void setNoProjection() const {failProjection=true;};
48  void setMinAbsZ(double minZToSet) {minAbsZ=minZToSet;}
49 
50  bool useRingSelector() const { return hasRingSelector; }
51  std::tuple<int, int> getMinMaxRing() const { return std::make_tuple(theMinRing, theMaxRing); }
52 private:
53  bool ringRange(int ring) const;
54 
56  void useSkipClusters_(const edm::InputTag & m, edm::ConsumesCollector& iC) override;
57 private:
60  mutable const SeedingLayer * theSLayer;
62  double minAbsZ;
73  mutable bool failProjection;
74 };
75 
76 }
77 #endif
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
HitExtractorSTRP(GeomDetEnumerators::SubDetector subdet, SeedingLayer::Side &side, int idLayer)
std::vector< HitPointer > Hits
Definition: HitExtractor.h:25
bool ringRange(int ring) const
void useStereoHits(const edm::InputTag &m, edm::ConsumesCollector &iC)
BaseTrackerRecHit const & TkHitRef
Definition: HitExtractor.h:23
void useMatchedHits(const edm::InputTag &m, edm::ConsumesCollector &iC)
edm::EDGetTokenT< SiStripMatchedRecHit2DCollection > theMatchedHits
std::pair< bool, ProjectedSiStripRecHit2D * > skipThis(const TkTransientTrackingRecHitBuilder &ttrhBuilder, TkHitRef matched, edm::Handle< edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > > > &stripClusterMask) const
const GeomDetEnumerators::SubDetector theLayerSubDet
edm::EDGetTokenT< SiStripRecHit2DCollection > theStereoHits
void cleanedOfClusters(const TkTransientTrackingRecHitBuilder &ttrhBuilder, const edm::Event &ev, HitExtractor::Hits &hits, bool matched, unsigned int cleanFrom=0) const
void useRPhiHits(const edm::InputTag &m, edm::ConsumesCollector &iC)
const SeedingLayer * theSLayer
edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > > SkipClustersCollection
virtual HitExtractor::Hits hits(const TkTransientTrackingRecHitBuilder &ttrhBuilder, const edm::Event &, const edm::EventSetup &) const override
virtual HitExtractorSTRP * clone() const
void useSimpleRphiHitsCleaner(bool use)
edm::EDGetTokenT< SiStripRecHit2DCollection > theRPhiHits
SiStripRecHit2D::ClusterRef SiStripClusterRef
void setMinAbsZ(double minZToSet)
void useSkipClusters_(const edm::InputTag &m, edm::ConsumesCollector &iC) override
std::tuple< int, int > getMinMaxRing() const
edm::EDGetTokenT< SkipClustersCollection > theSkipClusters