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 
17 
18 class EgammaHadTower;
19 
21  {
22  public:
23 
25  {
26  // common parameters
27  double hOverEConeSize ;
28 
29  // strategy
30  bool useTowers ;
31 
32  // specific parameters if use towers
34  double hOverEPtMin ; // min tower Et for H/E evaluation
35 
36  // specific parameters if use rechits
38  double hOverEHBMinE ;
39  double hOverEHFMinE ;
40  } ;
41 
43  void checkSetup( const edm::EventSetup & ) ;
44  void readEvent( const edm::Event & ) ;
46 
47  double hcalESum( const reco::SuperCluster & , const std::vector<CaloTowerDetId> * excludeTowers = 0) ;
48  double hcalESumDepth1( const reco::SuperCluster &, const std::vector<CaloTowerDetId> * excludeTowers = 0) ;
49  double hcalESumDepth2( const reco::SuperCluster & ,const std::vector<CaloTowerDetId> * excludeTowers = 0 ) ;
50  double hOverEConeSize() const { return cfg_.hOverEConeSize ; }
51 
52  // Behind clusters
53  std::vector<CaloTowerDetId> hcalTowersBehindClusters( const reco::SuperCluster & sc ) ;
54  double hcalESumDepth1BehindClusters( const std::vector<CaloTowerDetId> & towers ) ;
55  double hcalESumDepth2BehindClusters( const std::vector<CaloTowerDetId> & towers ) ;
56 
57  private:
58 
60 
61  // event setup data (rechits strategy)
62  unsigned long long caloGeomCacheId_ ;
64 
65  // event data (rechits strategy)
69 
70  // 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 &)
edm::Handle< HBHERecHitCollection > * hbhe_
edm::Handle< CaloTowerCollection > * towersH_
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)
unsigned long long caloGeomCacheId_
EgammaHcalIsolation * hcalIso_
double hOverEConeSize() const
HBHERecHitMetaCollection * mhbhe_
double hcalESumDepth1(const reco::SuperCluster &, const std::vector< CaloTowerDetId > *excludeTowers=0)
EgammaHadTower * hadTower_
EgammaTowerIsolation * towerIso2_