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  bool removeApvShots,
39  float minGoodCharge);
40 
41  //constant methods with state information
42  uint16_t firstStrip(State const& state) const { return state.lastStrip - state.ADCs.size() + 1; }
43  bool candidateEnded(State const& state, const uint16_t&) const;
44  bool candidateAccepted(State const& state) const;
45 
46  //state modification methods
47  template <class T>
48  void endCandidate(State& state, T&) const;
49  void clearCandidate(State& state) const {
50  state.candidateLacksSeed = true;
51  state.noiseSquared = 0;
52  state.ADCs.clear();
53  }
54  void addToCandidate(State& state, const SiStripDigi& digi) const { addToCandidate(state, digi.strip(), digi.adc()); }
55  void addToCandidate(State& state, uint16_t strip, uint8_t adc) const;
56  void appendBadNeighbors(State& state) const;
57  void applyGains(State& state) const;
58 
63 };
64 
65 #endif
StripClusterizerAlgorithm
Definition: StripClusterizerAlgorithm.h:16
ThreeThresholdAlgorithm::MaxAdjacentBad
uint8_t MaxAdjacentBad
Definition: ThreeThresholdAlgorithm.h:60
SiStripApvShotCleaner.h
ThreeThresholdAlgorithm::addToCandidate
void addToCandidate(State &state, const SiStripDigi &digi) const
Definition: ThreeThresholdAlgorithm.h:54
ThreeThresholdAlgorithm::candidateAccepted
bool candidateAccepted(State const &state) const
Definition: ThreeThresholdAlgorithm.cc:100
ThreeThresholdAlgorithm::endCandidate
void endCandidate(State &state, T &) const
Definition: ThreeThresholdAlgorithm.cc:88
hcaldqm::flag::State
State
Definition: Flag.h:13
ThreeThresholdAlgorithm::candidateEnded
bool candidateEnded(State const &state, const uint16_t &) const
Definition: ThreeThresholdAlgorithm.cc:61
edm::DetSet< SiStripDigi >
gpuClustering::adc
uint16_t *__restrict__ uint16_t const *__restrict__ adc
Definition: gpuClusterChargeCut.h:20
digitizers_cfi.strip
strip
Definition: digitizers_cfi.py:19
ThreeThresholdAlgorithm::minGoodCharge
float minGoodCharge
Definition: ThreeThresholdAlgorithm.h:62
edmNew::DetSetVector::TSFastFiller
Definition: DetSetVectorNew.h:300
ThreeThresholdAlgorithm::appendBadNeighbors
void appendBadNeighbors(State &state) const
Definition: ThreeThresholdAlgorithm.cc:119
ThreeThresholdAlgorithm::stripByStripAdd
void stripByStripAdd(State &state, uint16_t strip, uint8_t adc, output_t::TSFastFiller &out) const override
Definition: ThreeThresholdAlgorithm.h:19
ThreeThresholdAlgorithm::ClusterThresholdSquared
float ClusterThresholdSquared
Definition: ThreeThresholdAlgorithm.h:59
StripClusterizerAlgorithm::State
Definition: StripClusterizerAlgorithm.h:21
ThreeThresholdAlgorithm::stripByStripEnd
void stripByStripEnd(State &state, std::vector< SiStripCluster > &out) const override
Definition: ThreeThresholdAlgorithm.cc:150
ThreeThresholdAlgorithm::firstStrip
uint16_t firstStrip(State const &state) const
Definition: ThreeThresholdAlgorithm.h:42
ThreeThresholdAlgorithm::clusterizeDetUnit
void clusterizeDetUnit(const edm::DetSet< SiStripDigi > &, output_t::TSFastFiller &) const override
Definition: ThreeThresholdAlgorithm.cc:132
ThreeThresholdAlgorithm::SeedThreshold
float SeedThreshold
Definition: ThreeThresholdAlgorithm.h:59
SiStripDigi::adc
const uint16_t & adc() const
Definition: SiStripDigi.h:34
edmNew::DetSet
Definition: DetSetNew.h:22
ThreeThresholdAlgorithm::applyGains
void applyGains(State &state) const
Definition: ThreeThresholdAlgorithm.cc:106
ThreeThresholdAlgorithm::stripByStripEnd
void stripByStripEnd(State &state, output_t::TSFastFiller &out) const override
Definition: ThreeThresholdAlgorithm.h:25
ThreeThresholdAlgorithm::stripByStripAdd
void stripByStripAdd(State &state, uint16_t strip, uint8_t adc, std::vector< SiStripCluster > &out) const override
Definition: ThreeThresholdAlgorithm.cc:141
ThreeThresholdAlgorithm::RemoveApvShots
bool RemoveApvShots
Definition: ThreeThresholdAlgorithm.h:61
ThreeThresholdAlgorithm::MaxSequentialBad
uint8_t MaxSequentialBad
Definition: ThreeThresholdAlgorithm.h:60
ThreeThresholdAlgorithm::clusterizeDetUnit_
void clusterizeDetUnit_(const T &, output_t::TSFastFiller &) const
StripClusterizerAlgorithm::Det
SiStripClusterizerConditions::Det Det
Definition: StripClusterizerAlgorithm.h:18
ThreeThresholdAlgorithm::clearCandidate
void clearCandidate(State &state) const
Definition: ThreeThresholdAlgorithm.h:49
SiStripDigi::strip
const uint16_t & strip() const
Definition: SiStripDigi.h:33
State
State
Definition: RPixErrorChecker.h:15
edm::ESGetToken< SiStripClusterizerConditions, SiStripClusterizerConditionsRcd >
ThreeThresholdAlgorithm::ChannelThreshold
float ChannelThreshold
Definition: ThreeThresholdAlgorithm.h:59
ThreeThresholdAlgorithm::ThreeThresholdAlgorithm
ThreeThresholdAlgorithm(const edm::ESGetToken< SiStripClusterizerConditions, SiStripClusterizerConditionsRcd > &, float, float, float, unsigned, unsigned, unsigned, bool removeApvShots, float minGoodCharge)
Definition: ThreeThresholdAlgorithm.cc:10
edmNew::DetSetVector::TSFastFiller
friend class TSFastFiller
Definition: DetSetVectorNew.h:374
RunInfoPI::state
state
Definition: RunInfoPayloadInspectoHelper.h:16
T
long double T
Definition: Basic3DVectorLD.h:48
ThreeThresholdAlgorithm::MaxSequentialHoles
uint8_t MaxSequentialHoles
Definition: ThreeThresholdAlgorithm.h:60
ThreeThresholdAlgorithm
Definition: ThreeThresholdAlgorithm.h:6
SiStripClusterizerConditions::Det
Definition: SiStripClusterizerConditions.h:15
StripClusterizerAlgorithmFactory
Definition: StripClusterizerAlgorithmFactory.h:12
MillePedeFileConverter_cfg.out
out
Definition: MillePedeFileConverter_cfg.py:31
SiStripDigi
A Digi for the silicon strip detector, containing both strip and adc information, and suitable for st...
Definition: SiStripDigi.h:12
StripClusterizerAlgorithm.h