CMS 3D CMS Logo

ElectronHcalHelper.h
Go to the documentation of this file.
1 
2 #ifndef ElectronHcalHelper_h
3 #define ElectronHcalHelper_h
4 
7 
18 
19 class EgammaHadTower;
20 
22 public:
23  struct Configuration {
24  // common parameters
26 
27  // strategy
29 
30  // specific parameters if use towers
32  double hOverEPtMin; // min tower Et for H/E evaluation
33 
34  // specific parameters if use rechits
36  double hOverEHBMinE;
37  double hOverEHFMinE;
38  };
39 
41  void checkSetup(const edm::EventSetup &);
42  void readEvent(const edm::Event &);
44 
45  double hcalESum(const reco::SuperCluster &, const std::vector<CaloTowerDetId> *excludeTowers = nullptr) const;
46  double hcalESumDepth1(const reco::SuperCluster &, const std::vector<CaloTowerDetId> *excludeTowers = nullptr) const;
47  double hcalESumDepth2(const reco::SuperCluster &, const std::vector<CaloTowerDetId> *excludeTowers = nullptr) const;
48  double hOverEConeSize() const { return cfg_.hOverEConeSize; }
49 
50  // Behind clusters
51  std::vector<CaloTowerDetId> hcalTowersBehindClusters(const reco::SuperCluster &sc) const;
52  double hcalESumDepth1BehindClusters(const std::vector<CaloTowerDetId> &towers) const;
53  double hcalESumDepth2BehindClusters(const std::vector<CaloTowerDetId> &towers) const;
54 
55  // forward EgammaHadTower methods, if checkHcalStatus is enabled, using towers and H/E
56  // otherwise, return true
57  bool hasActiveHcal(const reco::SuperCluster &sc) const;
58 
59 private:
61 
62  // event setup data (rechits strategy)
63  unsigned long long caloGeomCacheId_;
65 
66  // event data (rechits strategy)
68 
69  // event data (towers strategy)
73 };
74 
75 #endif
EgammaTowerIsolation * towerIso1_
void readEvent(const edm::Event &)
double hcalESum(const reco::SuperCluster &, const std::vector< CaloTowerDetId > *excludeTowers=0) const
void checkSetup(const edm::EventSetup &)
const Configuration cfg_
double hcalESumDepth1(const reco::SuperCluster &, const std::vector< CaloTowerDetId > *excludeTowers=0) const
ElectronHcalHelper(const Configuration &)
edm::ESHandle< CaloGeometry > caloGeom_
edm::EDGetTokenT< HBHERecHitCollection > hcalRecHits
unsigned long long caloGeomCacheId_
double hcalESumDepth2(const reco::SuperCluster &, const std::vector< CaloTowerDetId > *excludeTowers=0) const
bool hasActiveHcal(const reco::SuperCluster &sc) const
EgammaHcalIsolation * hcalIso_
double hcalESumDepth2BehindClusters(const std::vector< CaloTowerDetId > &towers) const
double hOverEConeSize() const
std::vector< CaloTowerDetId > hcalTowersBehindClusters(const reco::SuperCluster &sc) const
EgammaHadTower * hadTower_
edm::EDGetTokenT< CaloTowerCollection > hcalTowers
EgammaTowerIsolation * towerIso2_
double hcalESumDepth1BehindClusters(const std::vector< CaloTowerDetId > &towers) const