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 
23 
24 public:
25  typedef SiStripRecHit2D::ClusterRef SiStripClusterRef;
26 
28  virtual ~HitExtractorSTRP(){}
29 
30  virtual HitExtractor::Hits hits( const TransientTrackingRecHitBuilder &ttrhBuilder, const edm::Event& , const edm::EventSetup& ) const;
31  virtual HitExtractorSTRP * clone() const { return new HitExtractorSTRP(*this); }
32 
36  void useRingSelector(int minRing, int maxRing);
38 
39  void cleanedOfClusters( const TransientTrackingRecHitBuilder& ttrhBuilder, const edm::Event& ev, HitExtractor::Hits & hits, bool matched, unsigned int cleanFrom=0) const;
40 
43 
44  bool skipThis(OmniClusterRef const& clus, edm::Handle<edm::ContainerMask<edmNew::DetSetVector<SiStripCluster> > > & stripClusterMask) const;
45 
46  void project(const TransientTrackingRecHitBuilder& ttrhBuilder,
48  const SiStripRecHit2D * hit,
50  void setNoProjection() const {failProjection=true;};
51  void setMinAbsZ(double minZToSet) {minAbsZ=minZToSet;}
52 
53  bool useRingSelector() const { return hasRingSelector; }
54  std::tuple<int, int> getMinMaxRing() const { return std::make_tuple(theMinRing, theMaxRing); }
55 private:
56  bool ringRange(int ring) const;
57 
59  void useSkipClusters_(const edm::InputTag & m, edm::ConsumesCollector& iC) override;
60 private:
63  mutable const SeedingLayer * theSLayer;
65  double minAbsZ;
76  mutable bool failProjection;
77 };
78 
79 }
80 #endif
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
HitExtractorSTRP(GeomDetEnumerators::SubDetector subdet, SeedingLayer::Side &side, int idLayer)
virtual HitExtractor::Hits hits(const TransientTrackingRecHitBuilder &ttrhBuilder, const edm::Event &, const edm::EventSetup &) const
bool ringRange(int ring) const
void useStereoHits(const edm::InputTag &m, edm::ConsumesCollector &iC)
void useMatchedHits(const edm::InputTag &m, edm::ConsumesCollector &iC)
void cleanedOfClusters(const TransientTrackingRecHitBuilder &ttrhBuilder, const edm::Event &ev, HitExtractor::Hits &hits, bool matched, unsigned int cleanFrom=0) const
edm::EDGetTokenT< SiStripMatchedRecHit2DCollection > theMatchedHits
const GeomDetEnumerators::SubDetector theLayerSubDet
edm::EDGetTokenT< SiStripRecHit2DCollection > theStereoHits
void useRPhiHits(const edm::InputTag &m, edm::ConsumesCollector &iC)
const SeedingLayer * theSLayer
edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > > SkipClustersCollection
virtual HitExtractorSTRP * clone() const
void useSimpleRphiHitsCleaner(bool use)
edm::EDGetTokenT< SiStripRecHit2DCollection > theRPhiHits
bool skipThis(const TransientTrackingRecHitBuilder &ttrhBuilder, TransientTrackingRecHit::ConstRecHitPointer &ptr, edm::Handle< edm::ContainerMask< edmNew::DetSetVector< SiStripCluster > > > &stripClusterMask, TransientTrackingRecHit::ConstRecHitPointer &replaceMe) const
void project(const TransientTrackingRecHitBuilder &ttrhBuilder, TransientTrackingRecHit::ConstRecHitPointer &ptr, const SiStripRecHit2D *hit, TransientTrackingRecHit::ConstRecHitPointer &replaceMe) const
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
std::vector< TransientTrackingRecHit::ConstRecHitPointer > Hits
Definition: HitExtractor.h:20