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 
24  struct Configuration {
25  // common parameters
27 
28  // strategy
30 
31  // specific parameters if use towers
33  double hOverEPtMin ; // min tower Et for H/E evaluation
34 
35  // specific parameters if use rechits
37  double hOverEHBMinE ;
38  double hOverEHFMinE ;
39  } ;
40 
42  void checkSetup( const edm::EventSetup & ) ;
43  void readEvent( const edm::Event & ) ;
45 
46  double hcalESum( const reco::SuperCluster & , const std::vector<CaloTowerDetId> * excludeTowers = nullptr) const;
47  double hcalESumDepth1( const reco::SuperCluster &, const std::vector<CaloTowerDetId> * excludeTowers = nullptr) const;
48  double hcalESumDepth2( const reco::SuperCluster & ,const std::vector<CaloTowerDetId> * excludeTowers = nullptr ) const;
49  double hOverEConeSize() const { return cfg_.hOverEConeSize ; }
50 
51  // Behind clusters
52  std::vector<CaloTowerDetId> hcalTowersBehindClusters( const reco::SuperCluster & sc ) const;
53  double hcalESumDepth1BehindClusters( const std::vector<CaloTowerDetId> & towers ) const;
54  double hcalESumDepth2BehindClusters( const std::vector<CaloTowerDetId> & towers ) const;
55 
56  // forward EgammaHadTower methods, if checkHcalStatus is enabled, using towers and H/E
57  // otherwise, return true
58  bool hasActiveHcal( const reco::SuperCluster & sc ) const;
59 
60  private:
61 
63 
64  // event setup data (rechits strategy)
65  unsigned long long caloGeomCacheId_ ;
67 
68  // event data (rechits strategy)
70 
71  // event data (towers strategy)
75 };
76 
77 #endif
78 
79 
80 
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