CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/RecoLocalCalo/HcalRecAlgos/interface/HcalHF_PETalgorithm.h

Go to the documentation of this file.
00001 #ifndef GUARD_HCALHF_PETALGORITHM_H
00002 #define GUARD_HCALHF_PETALGORITHM_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 // Forward declarations
00009 class HcalChannelQuality;
00010 class HcalSeverityLevelComputer;
00011 
00024 class HcalHF_PETalgorithm {
00025  public:
00027   HcalHF_PETalgorithm();
00028   
00029   HcalHF_PETalgorithm(std::vector<double> short_R, 
00030                       std::vector<double> short_Energy, 
00031                       std::vector<double> short_ET, 
00032                       std::vector<double> long_R, 
00033                       std::vector<double> long_Energy, 
00034                       std::vector<double> long_ET,
00035                       int HcalAcceptSeverityLevel,
00036                       // special case for ieta=29
00037                       std::vector<double> short_R_29,
00038                       std::vector<double> long_R_29);
00039 
00040   // Destructor
00041   ~HcalHF_PETalgorithm();
00042 
00043   void HFSetFlagFromPET(HFRecHit& hf,
00044                         HFRecHitCollection& rec,
00045                         HcalChannelQuality* myqual,
00046                         const HcalSeverityLevelComputer* mySeverity);
00047   double CalcThreshold(double abs_energy,std::vector<double> params);
00048 
00049   void SetShort_R(std::vector<double> x){short_R=x;}
00050   void SetShort_ET_Thresh(std::vector<double> x){short_ET_Thresh=x;}
00051   void SetShort_Energy_Thresh(std::vector<double> x){short_Energy_Thresh=x;}
00052   void SetLong_R(std::vector<double> x){long_R=x;}
00053   void SetLong_ET_Thresh(std::vector<double> x){long_ET_Thresh=x;}
00054   void SetLong_Energy_Thresh(std::vector<double> x){long_Energy_Thresh=x;}
00055 
00056   std::vector<double> GetShort_R(){return short_R;}
00057   std::vector<double> GetShort_ET_Thresh(){return short_ET_Thresh;}
00058   std::vector<double> GetShort_Energy_Thresh(){return short_Energy_Thresh;}
00059   std::vector<double> GetLong_R(){return long_R;}
00060   std::vector<double> GetLong_ET_Thresh(){return long_ET_Thresh;}
00061   std::vector<double> GetLong_Energy_Thresh(){return long_Energy_Thresh;}
00062 
00063   double bit(){return HcalCaloFlagLabels::HFLongShort;}
00064 
00065  private:
00066   std::vector<double> short_R;
00067   std::vector<double> short_ET_Thresh;
00068   std::vector<double> short_Energy_Thresh; 
00069 
00070   std::vector<double> long_R;
00071   std::vector<double> long_ET_Thresh;
00072   std::vector<double> long_Energy_Thresh;
00073   int HcalAcceptSeverityLevel_;
00074   std::vector<double> short_R_29;
00075   std::vector<double> long_R_29;
00076 };
00077 
00078 
00079 #endif