00001 #ifndef RECOMET_METALGORITHMS_HCALHALOALGO_H 00002 #define RECOMET_METALGORITHMS_HCALHALOALGO_H 00003 00004 #include "DataFormats/METReco/interface/HcalHaloData.h" 00005 00006 /* 00007 [class]: HcalHaloAlgo 00008 [authors]: R. Remington, The University of Florida 00009 [description]: Algorithm to calculate quantities relevant to HcalHaloData object 00010 [date]: October 15, 2009 00011 */ 00012 00013 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" 00014 #include "Geometry/CaloGeometry/interface/CaloGeometry.h" 00015 #include "Geometry/CaloGeometry/interface/CaloCellGeometry.h" 00016 #include "Geometry/Records/interface/CaloGeometryRecord.h" 00017 00018 #include "DataFormats/DetId/interface/DetId.h" 00019 #include "DataFormats/HcalDetId/interface/HcalDetId.h" 00020 #include "DataFormats/HcalDetId/interface/HcalSubdetector.h" 00021 #include "DataFormats/HcalRecHit/interface/HBHERecHit.h" 00022 #include "DataFormats/HcalRecHit/interface/HFRecHit.h" 00023 #include "DataFormats/HcalRecHit/interface/HORecHit.h" 00024 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h" 00025 #include "DataFormats/CaloRecHit/interface/CaloRecHit.h" 00026 00027 class HcalHaloAlgo{ 00028 public: 00029 //constructor 00030 HcalHaloAlgo(); 00031 //destructor 00032 ~HcalHaloAlgo(){} 00033 00034 // run algorithm 00035 reco::HcalHaloData Calculate(const CaloGeometry& TheCaloGeometry, edm::Handle<HBHERecHitCollection>& TheHBHERecHits); 00036 00037 // Set RecHit Energy Thresholds 00038 void SetRecHitEnergyThresholds( float HB, float HE){ HBRecHitEnergyThreshold = HB; HERecHitEnergyThreshold = HE;} 00039 00040 // Set Phi Wedge Thresholds 00041 void SetPhiWedgeEnergyThreshold( float SumE ){ SumEnergyThreshold = SumE ;} 00042 void SetPhiWedgeNHitsThreshold( int nhits ) { NHitsThreshold = nhits ; } 00043 void SetPhiWedgeThresholds(float SumE, int nhits) { SumEnergyThreshold = SumE ; NHitsThreshold = nhits ;} 00044 00045 // Get RecHit Energy Threshold 00046 float GetHBRecHitEnergyThreshold(){ return HBRecHitEnergyThreshold;} 00047 float GetHERecHitEnergyThreshold(){ return HERecHitEnergyThreshold;} 00048 00049 // Get Phi Wedge Threhsolds 00050 float GetPhiWedgeEnergyThreshold() { return SumEnergyThreshold;} 00051 int GetPhiWedgeNHitsThreshold() { return NHitsThreshold;} 00052 00053 private: 00054 // Invidiual RecHit Threhsolds 00055 float HBRecHitEnergyThreshold; 00056 float HERecHitEnergyThreshold; 00057 00058 // Phi Wedge Thresholds 00059 float SumEnergyThreshold; 00060 int NHitsThreshold; 00061 00062 }; 00063 00064 #endif