Go to the documentation of this file.00001 #ifndef GUARD_HCALHF_S9S1ALGORITHM_H
00002 #define GUARD_HCALHF_S9S1ALGORITHM_H 1
00003
00004 #include "DataFormats/HcalRecHit/interface/HFRecHit.h"
00005 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
00006 #include "RecoLocalCalo/HcalRecAlgos/interface/HcalCaloFlagLabels.h"
00007
00008
00009 class HcalChannelQuality;
00010 class HcalSeverityLevelComputer;
00011
00024 class HcalHF_S9S1algorithm {
00025 public:
00027 HcalHF_S9S1algorithm();
00028
00029 HcalHF_S9S1algorithm(std::vector<double> short_optimumSlope,
00030 std::vector<double> short_Energy,
00031 std::vector<double> short_ET,
00032 std::vector<double> long_optimumSlope,
00033 std::vector<double> long_Energy,
00034 std::vector<double> long_ET,
00035 int HcalAcceptSeverityLevel,
00036 bool isS8S1);
00037
00038
00039 ~HcalHF_S9S1algorithm();
00040
00041 void HFSetFlagFromS9S1(HFRecHit& hf,
00042 HFRecHitCollection& rec,
00043 HcalChannelQuality* myqual,
00044 const HcalSeverityLevelComputer* mySeverity);
00045 double CalcSlope(int abs_ieta, std::vector<double> params);
00046 double CalcEnergyThreshold(double abs_energy,std::vector<double> params);
00047
00048 double bit(){return HcalCaloFlagLabels::HFLongShort;}
00049
00050 private:
00051
00052 std::vector<double> short_ET_;
00053 std::vector<double> short_Energy_;
00054 std::vector<double> long_ET_;
00055 std::vector<double> long_Energy_;
00056
00057 std::vector<double> LongSlopes;
00058 std::vector<double> ShortSlopes;
00059 std::vector<double> LongEnergyThreshold;
00060 std::vector<double> ShortEnergyThreshold;
00061 std::vector<double> LongETThreshold;
00062 std::vector<double> ShortETThreshold;
00063 int HcalAcceptSeverityLevel_;
00064 bool isS8S1_;
00065 };
00066
00067
00068 #endif