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) ;
47  double hcalESumDepth1( const reco::SuperCluster &, const std::vector<CaloTowerDetId> * excludeTowers = nullptr) ;
48  double hcalESumDepth2( const reco::SuperCluster & ,const std::vector<CaloTowerDetId> * excludeTowers = nullptr ) ;
49  double hOverEConeSize() const { return cfg_.hOverEConeSize ; }
50 
51  // Behind clusters
52  std::vector<CaloTowerDetId> hcalTowersBehindClusters( const reco::SuperCluster & sc ) ;
53  double hcalESumDepth1BehindClusters( const std::vector<CaloTowerDetId> & towers ) ;
54  double hcalESumDepth2BehindClusters( const std::vector<CaloTowerDetId> & towers ) ;
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 ) ;
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_
double hcalESum(const reco::SuperCluster &, const std::vector< CaloTowerDetId > *excludeTowers=0)
void readEvent(const edm::Event &)
bool hasActiveHcal(const reco::SuperCluster &sc)
double hcalESumDepth2BehindClusters(const std::vector< CaloTowerDetId > &towers)
std::vector< CaloTowerDetId > hcalTowersBehindClusters(const reco::SuperCluster &sc)
void checkSetup(const edm::EventSetup &)
const Configuration cfg_
double hcalESumDepth1BehindClusters(const std::vector< CaloTowerDetId > &towers)
ElectronHcalHelper(const Configuration &)
edm::ESHandle< CaloGeometry > caloGeom_
double hcalESumDepth2(const reco::SuperCluster &, const std::vector< CaloTowerDetId > *excludeTowers=0)
edm::EDGetTokenT< HBHERecHitCollection > hcalRecHits
unsigned long long caloGeomCacheId_
EgammaHcalIsolation * hcalIso_
double hOverEConeSize() const
double hcalESumDepth1(const reco::SuperCluster &, const std::vector< CaloTowerDetId > *excludeTowers=0)
EgammaHadTower * hadTower_
edm::EDGetTokenT< CaloTowerCollection > hcalTowers
EgammaTowerIsolation * towerIso2_