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 public:
10 
11  inline ~HFFlexibleTimeCheck() override {}
12 
13  // Unlike HFSimpleTimeCheck, this algorithm is configurable
14  inline bool isConfigurable() const override { return true; }
15  inline bool configure(const AbsHcalAlgoData* config) override {
16  algoConf_ = dynamic_cast<const HFPhase1PMTParams*>(config);
17  return algoConf_;
18  }
19 
20  HFRecHit reconstruct(const HFPreRecHit& prehit,
21  const HcalCalibrations& calibs,
22  const bool flaggedBadInDB[2],
23  bool expectSingleAnodePMT) override;
24 
25 protected:
26  unsigned determineAnodeStatus(unsigned anodeNumber, const HFQIE10Info& anode, bool* isTimingReliable) const override;
27 
28 private:
29  // Algorihm configuration data. We do not manage these pointers.
30  const HFPhase1PMTParams* algoConf_ = nullptr;
31  const HFPhase1PMTData* pmtInfo_ = nullptr;
32 };
33 
34 #endif // RecoLocalCalo_HcalRecAlgos_HFFlexibleTimeCheck_h_
unsigned determineAnodeStatus(unsigned anodeNumber, const HFQIE10Info &anode, bool *isTimingReliable) const override
const HFPhase1PMTParams * algoConf_
Definition: config.py:1
HFRecHit reconstruct(const HFPreRecHit &prehit, const HcalCalibrations &calibs, const bool flaggedBadInDB[2], bool expectSingleAnodePMT) override
bool configure(const AbsHcalAlgoData *config) override
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)
bool isConfigurable() const override
dictionary config
Read in AllInOne config in JSON format.
Definition: DiMuonV_cfg.py:29
const HFPhase1PMTData * pmtInfo_