CMS 3D CMS Logo

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_;
46  float trimMaxFracTotal_, trimMaxFracNeigh_;
47 
48  // maximum difference after peak finding
49  float maxTrimmedSizeDiffPos_, maxTrimmedSizeDiffNeg_;
50 
51  // peak finding parameters
53  float seedCutMIPs_, seedCutSN_;
54  float subclusterCutMIPs_, subclusterCutSN_;
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  bool qualityFilter(const TempTrajectory&) const override;
77  bool qualityFilter(const Trajectory&) const override;
78 
79  bool toBeContinued(TempTrajectory&) const override;
80  bool toBeContinued(Trajectory&) const override;
81 
82  std::string name() const override { return "StripSubClusterShapeTrajectoryFilter"; }
83 
84  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  void init(const edm::Event& ev, const edm::EventSetup& es) override {
100  setEventBase(ev,es);
101  }
102  // implemented
103  bool compatible(const TrajectoryStateOnSurface &tsos, SeedingHitSet::ConstRecHitPointer hit) const override ;
104  // not implemented
105  bool compatible(const SeedingHitSet &hits) const override { return true; }
106  bool compatible(const SeedingHitSet &hits, const GlobalTrajectoryParameters &helixStateAtVertex, const FastHelix &helix) const override ;
107 
108  protected:
110 };
111 
112 
113 
114 #endif
edm::ESHandle< TrackerTopology > theTopology
bool ev
std::array< std::array< uint8_t, 10 >, 7 > layerMask_
BaseTrackerRecHit const * ConstRecHitPointer
Definition: SeedingHitSet.h:11
edm::ESHandle< ClusterShapeHitFilter > theFilter
void setEvent(const edm::Event &e, const edm::EventSetup &es) override
bool compatible(const SeedingHitSet &hits) const override
void init(const edm::Event &ev, const edm::EventSetup &es) override
bool testLastHit(const TrackingRecHit *hit, const TrajectoryStateOnSurface &tsos, bool mustProject=false) const
unsigned long long uint64_t
Definition: Time.h:15
StripSubClusterShapeTrajectoryFilter(const edm::ParameterSet &iConfig, edm::ConsumesCollector &iC)
HLT enums.