CMS 3D CMS Logo

ThreeThresholdAlgorithm.h
Go to the documentation of this file.
1 #ifndef RecoLocalTracker_SiStripClusterizer_ThreeThresholdAlgorithm_h
2 #define RecoLocalTracker_SiStripClusterizer_ThreeThresholdAlgorithm_h
5 
8 
9 public:
14 
15  // LazyGetter interface
16  void stripByStripAdd(State& state, uint16_t strip, uint8_t adc, std::vector<SiStripCluster>& out) const override;
17  void stripByStripEnd(State& state, std::vector<SiStripCluster>& out) const override;
18 
19  void stripByStripAdd(State& state, uint16_t strip, uint8_t adc, output_t::TSFastFiller& out) const override {
23  }
24 
26 
27 private:
28  template <class T>
29  void clusterizeDetUnit_(const T&, output_t::TSFastFiller&) const;
30 
32  float,
33  float,
34  float,
35  unsigned,
36  unsigned,
37  unsigned,
38  unsigned,
39  bool removeApvShots,
40  float minGoodCharge);
41 
42  //constant methods with state information
43  uint16_t firstStrip(State const& state) const { return state.lastStrip - state.ADCs.size() + 1; }
44  bool candidateEnded(State const& state, const uint16_t&) const;
45  bool candidateAccepted(State const& state) const;
46 
47  //state modification methods
48  template <class T>
49  void endCandidate(State& state, T&) const;
50  void clearCandidate(State& state) const {
51  state.candidateLacksSeed = true;
52  state.noiseSquared = 0;
53  state.ADCs.clear();
54  }
55  void addToCandidate(State& state, const SiStripDigi& digi) const { addToCandidate(state, digi.strip(), digi.adc()); }
56  void addToCandidate(State& state, uint16_t strip, uint8_t adc) const;
57  void appendBadNeighbors(State& state) const;
58  void applyGains(State& state) const;
59 
62  unsigned MaxClusterSize;
65 };
66 
67 #endif
SiStripClusterizerConditions::Det Det
void stripByStripEnd(State &state, std::vector< SiStripCluster > &out) const override
void stripByStripEnd(State &state, output_t::TSFastFiller &out) const override
void stripByStripAdd(State &state, uint16_t strip, uint8_t adc, std::vector< SiStripCluster > &out) const override
bool candidateAccepted(State const &state) const
void clearCandidate(State &state) const
void addToCandidate(State &state, const SiStripDigi &digi) const
void clusterizeDetUnit_(const T &, output_t::TSFastFiller &) const
const uint16_t & strip() const
Definition: SiStripDigi.h:33
const uint16_t & adc() const
Definition: SiStripDigi.h:34
void appendBadNeighbors(State &state) const
void stripByStripAdd(State &state, uint16_t strip, uint8_t adc, output_t::TSFastFiller &out) const override
uint16_t firstStrip(State const &state) const
A Digi for the silicon strip detector, containing both strip and adc information, and suitable for st...
Definition: SiStripDigi.h:12
void clusterizeDetUnit(const edm::DetSet< SiStripDigi > &, output_t::TSFastFiller &) const override
void applyGains(State &state) const
void endCandidate(State &state, T &) const
long double T
bool candidateEnded(State const &state, const uint16_t &) const
ThreeThresholdAlgorithm(const edm::ESGetToken< SiStripClusterizerConditions, SiStripClusterizerConditionsRcd > &, float, float, float, unsigned, unsigned, unsigned, unsigned, bool removeApvShots, float minGoodCharge)
uint16_t *__restrict__ uint16_t const *__restrict__ adc