CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_5/src/RecoMET/METAlgorithms/interface/HcalHaloAlgo.h

Go to the documentation of this file.
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