File indexing completed on 2024-04-06 12:25:46
0001 #ifndef HBHESTATUSBITSETTER_H
0002 #define HBHESTATUSBITSETTER_H 1
0003
0004 #include "DataFormats/HcalDigi/interface/HBHEDataFrame.h"
0005 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
0006 #include "DataFormats/HcalRecHit/interface/HBHERecHit.h"
0007 #include "CondFormats/HcalObjects/interface/HcalFrontEndMap.h"
0008 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0009 #include "DataFormats/METReco/interface/HcalCaloFlagLabels.h"
0010 #include "CalibFormats/HcalObjects/interface/HcalCalibrations.h"
0011 #include "CalibFormats/HcalObjects/interface/HcalCoderDb.h"
0012 #include "Geometry/CaloTopology/interface/HcalTopology.h"
0013
0014 class HBHEStatusBitSetter {
0015 public:
0016 HBHEStatusBitSetter();
0017 HBHEStatusBitSetter(double nominalPedestal,
0018 double hitEnergyMinimum,
0019 int hitMultiplicityThreshold,
0020 const std::vector<edm::ParameterSet>& pulseShapeParameterSets);
0021 ~HBHEStatusBitSetter();
0022
0023 void SetFrontEndMap(const HcalFrontEndMap* m);
0024 void Clear();
0025 void SetFlagsFromDigi(HBHERecHit& hbhe,
0026 const HBHEDataFrame& digi,
0027 const HcalCoder& coder,
0028 const HcalCalibrations& calib);
0029 void rememberHit(const HBHERecHit& hbhe);
0030 void SetFlagsFromRecHits(HBHERecHitCollection& rec);
0031
0032 HBHEStatusBitSetter(const HBHEStatusBitSetter&) = delete;
0033 HBHEStatusBitSetter& operator=(const HBHEStatusBitSetter&) = delete;
0034
0035 private:
0036 double hitEnergyMinimum_;
0037 int hitMultiplicityThreshold_;
0038 double nominalPedestal_;
0039 const HcalFrontEndMap* frontEndMap_;
0040 std::vector<int> hpdMultiplicity_;
0041 std::vector<std::vector<double> > pulseShapeParameters_;
0042 };
0043
0044 #endif