CMS 3D CMS Logo

EcalHaloAlgo.h
Go to the documentation of this file.
1 #ifndef RECOMET_METALGORITHMS_ECALHALOALGO_H
2 #define RECOMET_METALGORITHMS_ECALHALOALGO_H
3 /*
4  [class]: EcalHaloAlgo
5  [authors]: R. Remington, The University of Florida
6  [description]: Algorithm to calculate quantities relevant to EcalHaloData object
7  [date]: October 15, 2009
8 */
10 
18 
21 
32 //#include "RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h"
43 
44 class EcalHaloAlgo {
45 public:
46  // constructor
48  // destructor
50 
51  // Run algorithm
52  reco::EcalHaloData Calculate(const CaloGeometry& TheCaloGeometry,
55  edm::Handle<EBRecHitCollection>& TheEBRecHits,
56  edm::Handle<EERecHitCollection>& TheEERecHits,
57  edm::Handle<ESRecHitCollection>& TheESRecHits,
58  edm::Handle<HBHERecHitCollection>& TheHBHERecHits,
59  const edm::EventSetup& TheSetup);
60  // Set Roundness cuts
61  void SetRoundnessCut(float r = 100.) { RoundnessCut = r; }
62  // Set Angle cuts
63  void SetAngleCut(float a = 4.) { AngleCut = a; }
64 
65  // Set RecHit Energy Thresholds
66  void SetRecHitEnergyThresholds(float EB, float EE, float ES) {
70  }
71  // Set Phi Wedge Thresholds
72  void SetPhiWedgeEnergyThreshold(float SumE) { SumEnergyThreshold = SumE; }
74  void SetPhiWedgeThresholds(float SumE, int nhits) {
75  SumEnergyThreshold = SumE;
77  }
78 
79  std::vector<reco::HaloClusterCandidateECAL> GetHaloClusterCandidateEB(
80  edm::Handle<EcalRecHitCollection>& ecalrechitcoll,
81  edm::Handle<HBHERecHitCollection>& hbherechitcoll,
82  float et_thresh_seedrh);
83  std::vector<reco::HaloClusterCandidateECAL> GetHaloClusterCandidateEE(
84  edm::Handle<EcalRecHitCollection>& ecalrechitcoll,
85  edm::Handle<HBHERecHitCollection>& hbherechitcoll,
86  float et_thresh_seedrh);
90 
91  // Get Roundness cut
92  float GetRoundnessCut() { return RoundnessCut; }
93  // Get Angle cut
94  float GetAngleCut() { return AngleCut; }
95 
96  // Get RecHit Energy Threshold
100 
101  // Get Phi Wedge Threhsolds
104 
105 private:
106  // Cut Value for Supercluster "roundness" variable
108  // Cut Value for Supercluster "angle" variable
109  float AngleCut;
110 
111  // Invidiual RecHit Threhsolds
115 
116  // Phi Wedge Thresholds
119 
123 };
124 
125 #endif
float GetPhiWedgeEnergyThreshold()
Definition: EcalHaloAlgo.h:102
void SetAngleCut(float a=4.)
Definition: EcalHaloAlgo.h:63
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > geoToken_
Definition: EcalHaloAlgo.h:120
EcalHaloAlgo(edm::ConsumesCollector iC)
Definition: EcalHaloAlgo.cc:20
float GetEERecHitEnergyThreshold()
Definition: EcalHaloAlgo.h:98
float GetEBRecHitEnergyThreshold()
Definition: EcalHaloAlgo.h:97
bool EEClusterShapeandTimeStudy_OTBH(reco::HaloClusterCandidateECAL hcand, bool ishlt)
float ESRecHitEnergyThreshold
Definition: EcalHaloAlgo.h:114
void SetRecHitEnergyThresholds(float EB, float EE, float ES)
Definition: EcalHaloAlgo.h:66
float SumEnergyThreshold
Definition: EcalHaloAlgo.h:117
float GetRoundnessCut()
Definition: EcalHaloAlgo.h:92
void SetPhiWedgeEnergyThreshold(float SumE)
Definition: EcalHaloAlgo.h:72
void SetPhiWedgeThresholds(float SumE, int nhits)
Definition: EcalHaloAlgo.h:74
math::XYZPoint Point
point in the space
Definition: Vertex.h:40
std::vector< reco::HaloClusterCandidateECAL > GetHaloClusterCandidateEB(edm::Handle< EcalRecHitCollection > &ecalrechitcoll, edm::Handle< HBHERecHitCollection > &hbherechitcoll, float et_thresh_seedrh)
float EERecHitEnergyThreshold
Definition: EcalHaloAlgo.h:113
float GetAngleCut()
Definition: EcalHaloAlgo.h:94
float GetESRecHitEnergyThreshold()
Definition: EcalHaloAlgo.h:99
std::vector< reco::HaloClusterCandidateECAL > GetHaloClusterCandidateEE(edm::Handle< EcalRecHitCollection > &ecalrechitcoll, edm::Handle< HBHERecHitCollection > &hbherechitcoll, float et_thresh_seedrh)
Definition: DetId.h:17
float EBRecHitEnergyThreshold
Definition: EcalHaloAlgo.h:112
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
int GetPhiWedgeNHitsThreshold()
Definition: EcalHaloAlgo.h:103
bool EEClusterShapeandTimeStudy_ITBH(reco::HaloClusterCandidateECAL hcand, bool ishlt)
reco::EcalHaloData Calculate(const CaloGeometry &TheCaloGeometry, edm::Handle< reco::PhotonCollection > &ThePhotons, edm::Handle< reco::SuperClusterCollection > &TheSuperClusters, edm::Handle< EBRecHitCollection > &TheEBRecHits, edm::Handle< EERecHitCollection > &TheEERecHits, edm::Handle< ESRecHitCollection > &TheESRecHits, edm::Handle< HBHERecHitCollection > &TheHBHERecHits, const edm::EventSetup &TheSetup)
Definition: EcalHaloAlgo.cc:32
math::XYZPoint getPosition(const DetId &id, reco::Vertex::Point vtx)
double a
Definition: hdecay.h:121
void SetPhiWedgeNHitsThreshold(int nhits)
Definition: EcalHaloAlgo.h:73
bool EBClusterShapeandTimeStudy(reco::HaloClusterCandidateECAL hcand, bool ishlt)
float RoundnessCut
Definition: EcalHaloAlgo.h:107
const CaloGeometry * geo
Definition: EcalHaloAlgo.h:121
void SetRoundnessCut(float r=100.)
Definition: EcalHaloAlgo.h:61