CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
StripSubClusterShapeTrajectoryFilter.h
Go to the documentation of this file.
1 #ifndef _StripSubClusterShapeTrajectoryFilter_h_
2 #define _StripSubClusterShapeTrajectoryFilter_h_
3 
4 #include <vector>
5 #include <unordered_map>
12 
14 class TrackerTopology;
15 class TrackerGeometry;
19 class SiStripNoises;
20 class TTree;
21 namespace edm { class Event; class EventSetup; class ConsumesCollector; }
22 
23 //#define StripSubClusterShapeFilterBase_COUNTERS
24 
25 
27  public:
30 
31  protected:
32 
33  void setEventBase(const edm::Event &, const edm::EventSetup &) ;
34 
35  bool testLastHit(const TrackingRecHit *hit, const TrajectoryStateOnSurface &tsos, bool mustProject=false) const ;
36  bool testLastHit(const TrackingRecHit *hit, const GlobalPoint &gpos, const GlobalVector &gdir, bool mustProject=false) const ;
37 
38  // who am i
40 
41  // pass-through of clusters with too many consecutive saturated strips
42  uint32_t maxNSat_;
43 
44  // trimming parameters
45  uint8_t trimMaxADC_;
47 
48  // maximum difference after peak finding
50 
51  // peak finding parameters
55 
56  // layers in which to apply the filter
57  std::array<std::array<uint8_t,10>, 7> layerMask_;
58 
59 #ifdef StripSubClusterShapeFilterBase_COUNTERS
60  mutable uint64_t called_, saturated_, test_, passTrim_, failTooLarge_, passSC_, failTooNarrow_;
61 #endif
62 
67 };
68 
70  public:
72  StripSubClusterShapeFilterBase(iConfig,iC) {}
73 
75 
76  virtual bool qualityFilter(const TempTrajectory&) const override;
77  virtual bool qualityFilter(const Trajectory&) const override;
78 
79  virtual bool toBeContinued(TempTrajectory&) const override;
80  virtual bool toBeContinued(Trajectory&) const override;
81 
82  virtual std::string name() const { return "StripSubClusterShapeTrajectoryFilter"; }
83 
84  virtual void setEvent(const edm::Event & e, const edm::EventSetup & es) override {
85  setEventBase(e,es);
86  }
87 
88  protected:
90  bool testLastHit(const TrajectoryMeasurement &last) const ;
91 };
92 
94  public:
96 
98 
99  virtual void init(const edm::Event& ev, const edm::EventSetup& es) override {
100  setEventBase(ev,es);
101  }
102  // implemented
104  // not implemented
105  virtual bool compatible(const SeedingHitSet &hits, const TrackingRegion & region) const { return true; }
106  virtual bool compatible(const TrajectorySeed &seed) const { return true; }
107  virtual bool compatible(const SeedingHitSet &hits, const GlobalTrajectoryParameters &helixStateAtVertex, const FastHelix &helix, const TrackingRegion & region) const ;
108  virtual bool compatible(const SeedingHitSet &hits, const GlobalTrajectoryParameters &straightLineStateAtVertex, const TrackingRegion & region) const { return true; }
109 
110  protected:
112 };
113 
114 
115 
116 #endif
edm::ESHandle< TrackerTopology > theTopology
virtual bool qualityFilter(const TempTrajectory &) const override
virtual bool toBeContinued(TempTrajectory &) const override
bool ev
std::array< std::array< uint8_t, 10 >, 7 > layerMask_
virtual void init(const edm::Event &ev, const edm::EventSetup &es) override
virtual bool compatible(const SeedingHitSet &hits, const TrackingRegion &region) const
virtual bool compatible(const SeedingHitSet &hits, const GlobalTrajectoryParameters &straightLineStateAtVertex, const TrackingRegion &region) const
BaseTrackerRecHit const * ConstRecHitPointer
Definition: SeedingHitSet.h:11
edm::ESHandle< ClusterShapeHitFilter > theFilter
bool testLastHit(const TrackingRecHit *hit, const TrajectoryStateOnSurface &tsos, bool mustProject=false) const
virtual bool compatible(const TrajectorySeed &seed) const
StripSubClusterShapeFilterBase(const edm::ParameterSet &iConfig, edm::ConsumesCollector &iC)
void setEventBase(const edm::Event &, const edm::EventSetup &)
unsigned long long uint64_t
Definition: Time.h:15
StripSubClusterShapeTrajectoryFilter(const edm::ParameterSet &iConfig, edm::ConsumesCollector &iC)
virtual bool compatible(const TrajectoryStateOnSurface &tsos, SeedingHitSet::ConstRecHitPointer hit) const
virtual void setEvent(const edm::Event &e, const edm::EventSetup &es) override
bool testLastHit(const TrajectoryMeasurement &last) const
StripSubClusterShapeSeedFilter(const edm::ParameterSet &iConfig, edm::ConsumesCollector &iC)