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)
74 };
75 
76 #endif
Handle.h
ElectronHcalHelper::cfg_
const Configuration cfg_
Definition: ElectronHcalHelper.h:60
ESHandle.h
ElectronHcalHelper::hcalESumDepth1
double hcalESumDepth1(const reco::SuperCluster &, const std::vector< CaloTowerDetId > *excludeTowers=nullptr) const
Definition: ElectronHcalHelper.cc:82
reco::SuperCluster
Definition: SuperCluster.h:18
edm::EDGetTokenT
Definition: EDGetToken.h:33
edm::SortedCollection< CaloTower >
ElectronHcalHelper::hcalESumDepth1BehindClusters
double hcalESumDepth1BehindClusters(const std::vector< CaloTowerDetId > &towers) const
Definition: ElectronHcalHelper.cc:63
ElectronHcalHelper::Configuration::hOverEHFMinE
double hOverEHFMinE
Definition: ElectronHcalHelper.h:37
EgammaHcalIsolation
Definition: EgammaHcalIsolation.h:30
ElectronHcalHelper::hcalIso_
EgammaHcalIsolation * hcalIso_
Definition: ElectronHcalHelper.h:67
ElectronHcalHelper::caloGeomCacheId_
unsigned long long caloGeomCacheId_
Definition: ElectronHcalHelper.h:63
ElectronHcalHelper::towersFromCollection_
const CaloTowerCollection * towersFromCollection_
Definition: ElectronHcalHelper.h:73
ElectronHcalHelper::Configuration::hcalTowers
edm::EDGetTokenT< CaloTowerCollection > hcalTowers
Definition: ElectronHcalHelper.h:31
edm::ESHandle< CaloGeometry >
ElectronHcalHelper::Configuration::hOverEConeSize
double hOverEConeSize
Definition: ElectronHcalHelper.h:25
ElectronHcalHelper::hasActiveHcal
bool hasActiveHcal(const reco::SuperCluster &sc) const
Definition: ElectronHcalHelper.cc:106
ElectronHcalHelper::towerIso1_
EgammaTowerIsolation * towerIso1_
Definition: ElectronHcalHelper.h:70
ElectronHcalHelper::Configuration::hcalRecHits
edm::EDGetTokenT< HBHERecHitCollection > hcalRecHits
Definition: ElectronHcalHelper.h:35
ElectronHcalHelper::Configuration
Definition: ElectronHcalHelper.h:23
ElectronHcalHelper::hcalESumDepth2BehindClusters
double hcalESumDepth2BehindClusters(const std::vector< CaloTowerDetId > &towers) const
Definition: ElectronHcalHelper.cc:67
ElectronHcalHelper::towerIso2_
EgammaTowerIsolation * towerIso2_
Definition: ElectronHcalHelper.h:71
ElectronHcalHelper::hcalTowersBehindClusters
std::vector< CaloTowerDetId > hcalTowersBehindClusters(const reco::SuperCluster &sc) const
Definition: ElectronHcalHelper.cc:59
ElectronHcalHelper::Configuration::hOverEHBMinE
double hOverEHBMinE
Definition: ElectronHcalHelper.h:36
Event.h
EgammaTowerIsolation
Definition: EgammaTowerIsolation.h:196
ElectronHcalHelper::ElectronHcalHelper
ElectronHcalHelper(const Configuration &)
Definition: ElectronHcalHelper.cc:11
ElectronHcalHelper::hOverEConeSize
double hOverEConeSize() const
Definition: ElectronHcalHelper.h:48
ElectronHcalHelper::checkSetup
void checkSetup(const edm::EventSetup &)
Definition: ElectronHcalHelper.cc:14
edm::EventSetup
Definition: EventSetup.h:57
ElectronHcalHelper::caloGeom_
edm::ESHandle< CaloGeometry > caloGeom_
Definition: ElectronHcalHelper.h:64
CaloTowerCollection.h
HLT_2018_cff.towers
towers
Definition: HLT_2018_cff.py:35030
ElectronHcalHelper::hadTower_
EgammaHadTower * hadTower_
Definition: ElectronHcalHelper.h:72
SuperClusterFwd.h
ElectronHcalHelper::~ElectronHcalHelper
~ElectronHcalHelper()
Definition: ElectronHcalHelper.cc:114
ElectronHcalHelper::Configuration::hOverEPtMin
double hOverEPtMin
Definition: ElectronHcalHelper.h:32
ElectronHcalHelper::Configuration::checkHcalStatus
bool checkHcalStatus
Definition: ElectronHcalHelper.h:28
CaloGeometry.h
ElectronHcalHelper::hcalESum
double hcalESum(const reco::SuperCluster &, const std::vector< CaloTowerDetId > *excludeTowers=nullptr) const
Definition: ElectronHcalHelper.cc:71
ElectronHcalHelper::Configuration::useTowers
bool useTowers
Definition: ElectronHcalHelper.h:28
EventSetup.h
ElectronHcalHelper
Definition: ElectronHcalHelper.h:21
HcalRecHitCollections.h
ConsumesCollector.h
EgammaHadTower
Definition: EgammaHadTower.h:17
ParameterSet.h
edm::Event
Definition: Event.h:73
ElectronHcalHelper::readEvent
void readEvent(const edm::Event &)
Definition: ElectronHcalHelper.cc:31
ElectronHcalHelper::hcalESumDepth2
double hcalESumDepth2(const reco::SuperCluster &, const std::vector< CaloTowerDetId > *excludeTowers=nullptr) const
Definition: ElectronHcalHelper.cc:94