CMS 3D CMS Logo

HFFlexibleTimeCheck.h
Go to the documentation of this file.
1 #ifndef RecoLocalCalo_HcalRecAlgos_HFFlexibleTimeCheck_h_
2 #define RecoLocalCalo_HcalRecAlgos_HFFlexibleTimeCheck_h_
3 
6 
8 {
9 public:
11 
12  inline ~HFFlexibleTimeCheck() override {}
13 
14  // Unlike HFSimpleTimeCheck, this algorithm is configurable
15  inline bool isConfigurable() const override {return true;}
16  inline bool configure(const AbsHcalAlgoData* config) override
17  {
18  algoConf_ = dynamic_cast<const HFPhase1PMTParams*>(config);
19  return algoConf_;
20  }
21 
22  HFRecHit reconstruct(const HFPreRecHit& prehit,
23  const HcalCalibrations& calibs,
24  const bool flaggedBadInDB[2],
25  bool expectSingleAnodePMT) override;
26 protected:
27  unsigned determineAnodeStatus(unsigned anodeNumber,
28  const HFQIE10Info& anode,
29  bool* isTimingReliable) const override;
30 private:
31  // Algorihm configuration data. We do not manage these pointers.
32  const HFPhase1PMTParams* algoConf_ = nullptr;
33  const HFPhase1PMTData* pmtInfo_ = nullptr;
34 };
35 
36 #endif // RecoLocalCalo_HcalRecAlgos_HFFlexibleTimeCheck_h_
unsigned determineAnodeStatus(unsigned anodeNumber, const HFQIE10Info &anode, bool *isTimingReliable) const override
const HFPhase1PMTParams * algoConf_
HFSimpleTimeCheck(const std::pair< float, float > tlimits[2], const float energyWeights[2 *HFAnodeStatus::N_POSSIBLE_STATES-1][2], unsigned soiPhase, float timeShift, float triseIfNoTDC, float tfallIfNoTDC, float minChargeForUndershoot, float minChargeForOvershoot, bool rejectAllFailures=true, bool alwaysCalculateChargeAsymmetry=true)
Definition: config.py:1
config
Definition: looper.py:289
HFRecHit reconstruct(const HFPreRecHit &prehit, const HcalCalibrations &calibs, const bool flaggedBadInDB[2], bool expectSingleAnodePMT) override
bool configure(const AbsHcalAlgoData *config) override
bool isConfigurable() const override
const HFPhase1PMTData * pmtInfo_