CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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
29  bool useTowers;
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 = 0) ;
47  double hcalESumDepth1( const reco::SuperCluster &, const std::vector<CaloTowerDetId> * excludeTowers = 0) ;
48  double hcalESumDepth2( const reco::SuperCluster & ,const std::vector<CaloTowerDetId> * excludeTowers = 0 ) ;
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  private:
57 
59 
60  // event setup data (rechits strategy)
61  unsigned long long caloGeomCacheId_ ;
63 
64  // event data (rechits strategy)
67 
68  // event data (towers strategy)
72 };
73 
74 #endif
75 
76 
77 
EgammaTowerIsolation * towerIso1_
double hcalESum(const reco::SuperCluster &, const std::vector< CaloTowerDetId > *excludeTowers=0)
void readEvent(const edm::Event &)
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
HBHERecHitMetaCollection * mhbhe_
double hcalESumDepth1(const reco::SuperCluster &, const std::vector< CaloTowerDetId > *excludeTowers=0)
EgammaHadTower * hadTower_
edm::EDGetTokenT< CaloTowerCollection > hcalTowers
EgammaTowerIsolation * towerIso2_