00001 #ifndef HBHESTATUSBITSETTER_H 00002 #define HBHESTATUSBITSETTER_H 1 00003 00004 00005 #include "DataFormats/HcalDigi/interface/HBHEDataFrame.h" 00006 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h" 00007 #include "DataFormats/HcalRecHit/interface/HBHERecHit.h" 00008 #include "CondFormats/HcalObjects/interface/HcalLogicalMap.h" 00009 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00010 #include "RecoLocalCalo/HcalRecAlgos/interface/HcalCaloFlagLabels.h" 00011 #include "CalibFormats/HcalObjects/interface/HcalCalibrations.h" 00012 #include "CalibFormats/HcalObjects/interface/HcalCoderDb.h" 00013 00014 class HBHEStatusBitSetter { 00015 public: 00016 HBHEStatusBitSetter(); 00017 HBHEStatusBitSetter(double nominalPedestal,double hitEnergyMinimum,int hitMultiplicityThreshold,std::vector<edm::ParameterSet> pulseShapeParameterSets); 00018 ~HBHEStatusBitSetter(); 00019 void Clear(); 00020 void SetFlagsFromDigi(HBHERecHit& hbhe, const HBHEDataFrame& digi, const HcalCoder& coder, 00021 const HcalCalibrations& calib, 00022 int firstSample=3, 00023 int samplesToAdd=4 00024 ); 00025 void SetFlagsFromRecHits(HBHERecHitCollection& rec); 00026 private: 00027 double hitEnergyMinimum_; 00028 int hitMultiplicityThreshold_; 00029 unsigned int firstSample_; 00030 unsigned int samplesToAdd_; 00031 double nominalPedestal_; 00032 HcalLogicalMap *logicalMap_; 00033 std::vector<int> hpdMultiplicity_; 00034 std::vector< std::vector<double> > pulseShapeParameters_; 00035 }; 00036 00037 #endif