Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:25:47

0001 #ifndef RecoLocalCalo_HcalRecAlgos_HFFlexibleTimeCheck_h_
0002 #define RecoLocalCalo_HcalRecAlgos_HFFlexibleTimeCheck_h_
0003 
0004 #include "RecoLocalCalo/HcalRecAlgos/interface/HFSimpleTimeCheck.h"
0005 #include "CondFormats/HcalObjects/interface/HFPhase1PMTParams.h"
0006 
0007 class HFFlexibleTimeCheck : public HFSimpleTimeCheck {
0008 public:
0009   using HFSimpleTimeCheck::HFSimpleTimeCheck;
0010 
0011   inline ~HFFlexibleTimeCheck() override {}
0012 
0013   // Unlike HFSimpleTimeCheck, this algorithm is configurable
0014   inline bool isConfigurable() const override { return true; }
0015   inline bool configure(const AbsHcalAlgoData* config) override {
0016     algoConf_ = dynamic_cast<const HFPhase1PMTParams*>(config);
0017     return algoConf_;
0018   }
0019 
0020   HFRecHit reconstruct(const HFPreRecHit& prehit,
0021                        const HcalCalibrations& calibs,
0022                        const bool flaggedBadInDB[2],
0023                        bool expectSingleAnodePMT) override;
0024 
0025 protected:
0026   unsigned determineAnodeStatus(unsigned anodeNumber, const HFQIE10Info& anode, bool* isTimingReliable) const override;
0027 
0028 private:
0029   // Algorihm configuration data. We do not manage these pointers.
0030   const HFPhase1PMTParams* algoConf_ = nullptr;
0031   const HFPhase1PMTData* pmtInfo_ = nullptr;
0032 };
0033 
0034 #endif  // RecoLocalCalo_HcalRecAlgos_HFFlexibleTimeCheck_h_