CMS 3D CMS Logo

EgammaHcalIsolation.h
Go to the documentation of this file.
1 #ifndef EgammaIsolationAlgos_EgammaHcalIsolation_h
2 #define EgammaIsolationAlgos_EgammaHcalIsolation_h
3 //*****************************************************************************
4 // File: EgammaHcalIsolation.h
5 // ----------------------------------------------------------------------------
6 // OrigAuth: Matthias Mozer
7 // Institute: IIHE-VUB
8 //=============================================================================
9 //*****************************************************************************
10 
11 //C++ includes
12 #include <vector>
13 #include <functional>
14 
15 //CMSSW includes
25 
26 //Sum helper functions
27 double scaleToE(const double& eta);
28 double scaleToEt(const double& eta);
29 
30 
32  public:
33 
35 
36  //constructors
38  double extRadius,
39  double intRadius,
40  double eLowB,
41  double eLowE,
42  double etLowB,
43  double etLowE,
44  edm::ESHandle<CaloGeometry> theCaloGeom ,
45  const HBHERecHitCollection& mhbhe
46  );
47 
48  //destructor
50 
51  //AllDepths
52  double getHcalESum (const reco::Candidate *c) const { return getHcalESum(c->get<reco::SuperClusterRef>().get()); }
53  double getHcalEtSum(const reco::Candidate *c) const { return getHcalEtSum(c->get<reco::SuperClusterRef>().get()); }
54  double getHcalESum (const reco::SuperCluster *sc) const { return getHcalESum(sc->position()); }
55  double getHcalEtSum(const reco::SuperCluster *sc) const { return getHcalEtSum(sc->position()); }
56  double getHcalESum (const math::XYZPoint &p) const { return getHcalESum(GlobalPoint(p.x(),p.y(),p.z())); }
57  double getHcalEtSum(const math::XYZPoint &p) const { return getHcalEtSum(GlobalPoint(p.x(),p.y(),p.z())); }
58  double getHcalESum (const GlobalPoint &pclu) const { return getHcalSum(pclu,AllDepths,&scaleToE); }
59  double getHcalEtSum(const GlobalPoint &pclu) const { return getHcalSum(pclu,AllDepths,&scaleToEt); }
60 
61  //Depth1
64  double getHcalESumDepth1 (const reco::SuperCluster *sc) const { return getHcalESumDepth1(sc->position()); }
65  double getHcalEtSumDepth1(const reco::SuperCluster *sc) const { return getHcalEtSumDepth1(sc->position()); }
66  double getHcalESumDepth1 (const math::XYZPoint &p) const { return getHcalESumDepth1(GlobalPoint(p.x(),p.y(),p.z())); }
67  double getHcalEtSumDepth1(const math::XYZPoint &p) const { return getHcalEtSumDepth1(GlobalPoint(p.x(),p.y(),p.z())); }
68  double getHcalESumDepth1 (const GlobalPoint &pclu) const { return getHcalSum(pclu,Depth1,&scaleToE); }
69  double getHcalEtSumDepth1(const GlobalPoint &pclu) const { return getHcalSum(pclu,Depth1,&scaleToEt); }
70 
71  //Depth2
74  double getHcalESumDepth2 (const reco::SuperCluster *sc) const { return getHcalESumDepth2(sc->position()); }
75  double getHcalEtSumDepth2(const reco::SuperCluster *sc) const { return getHcalEtSumDepth2(sc->position()); }
76  double getHcalESumDepth2 (const math::XYZPoint &p) const { return getHcalESumDepth2(GlobalPoint(p.x(),p.y(),p.z())); }
77  double getHcalEtSumDepth2(const math::XYZPoint &p) const { return getHcalEtSumDepth2(GlobalPoint(p.x(),p.y(),p.z())); }
78  double getHcalESumDepth2 (const GlobalPoint &pclu) const { return getHcalSum(pclu,Depth2,&scaleToE); }
79  double getHcalEtSumDepth2(const GlobalPoint &pclu) const { return getHcalSum(pclu,Depth2,&scaleToEt); }
80 
81 
82  private:
83 
84 
85  bool isDepth2(const DetId&) const;
86  double getHcalSum(const GlobalPoint&, const HcalDepth&, double(*)(const double&) ) const;
87 
88  double extRadius_ ;
89  double intRadius_ ;
90  double eLowB_ ;
91  double eLowE_ ;
92  double etLowB_ ;
93  double etLowE_ ;
94 
95 
98 
100 
101 };
102 
103 #endif
bool isDepth2(const DetId &) const
const math::XYZPoint & position() const
cluster centroid position
Definition: CaloCluster.h:129
double getHcalESumDepth2(const math::XYZPoint &p) const
edm::ESHandle< CaloGeometry > theCaloGeom_
double getHcalEtSumDepth1(const reco::SuperCluster *sc) const
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
double getHcalEtSumDepth2(const reco::SuperCluster *sc) const
double getHcalEtSumDepth2(const reco::Candidate *c) const
CaloDualConeSelector< HBHERecHit > * doubleConeSel_
double getHcalEtSum(const reco::Candidate *c) const
double getHcalESum(const math::XYZPoint &p) const
double getHcalESumDepth1(const GlobalPoint &pclu) const
double getHcalESumDepth2(const reco::SuperCluster *sc) const
double getHcalESumDepth1(const math::XYZPoint &p) const
const HBHERecHitCollection & mhbhe_
double getHcalEtSum(const reco::SuperCluster *sc) const
double getHcalEtSum(const math::XYZPoint &p) const
double getHcalESum(const reco::SuperCluster *sc) const
double getHcalEtSumDepth2(const math::XYZPoint &p) const
double getHcalESum(const GlobalPoint &pclu) const
double getHcalSum(const GlobalPoint &, const HcalDepth &, double(*)(const double &)) const
double getHcalESumDepth2(const reco::Candidate *c) const
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:245
double getHcalEtSumDepth1(const math::XYZPoint &p) const
double getHcalESumDepth2(const GlobalPoint &pclu) const
EgammaHcalIsolation(double extRadius, double intRadius, double eLowB, double eLowE, double etLowB, double etLowE, edm::ESHandle< CaloGeometry > theCaloGeom, const HBHERecHitCollection &mhbhe)
Definition: DetId.h:18
double getHcalEtSum(const GlobalPoint &pclu) const
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
double getHcalESumDepth1(const reco::SuperCluster *sc) const
double getHcalEtSumDepth1(const GlobalPoint &pclu) const
double getHcalESum(const reco::Candidate *c) const
double scaleToEt(const double &eta)
double scaleToE(const double &eta)
double getHcalEtSumDepth1(const reco::Candidate *c) const
double getHcalEtSumDepth2(const GlobalPoint &pclu) const
T get() const
get a component
Definition: Candidate.h:217
double getHcalESumDepth1(const reco::Candidate *c) const