CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HiEgammaSCEnergyCorrectionAlgo.h
Go to the documentation of this file.
1 #ifndef RecoECAL_ECALClusters_HiEgammaSCEnergyCorrectionAlgo_h_
2 #define RecoECAL_ECALClusters_HiEgammaSCEnergyCorrectionAlgo_h_
3 
12 
19 
20 #include <map>
21 #include <string>
22 
24 public:
25  // the Verbosity levels
26  enum VerbosityLevel { pDEBUG = 0, pWARNING = 1, pINFO = 2, pERROR = 3 };
27 
28  // public member functions
31  const edm::ParameterSet& pSet,
33  );
35 
36  // take a SuperCluster and return a corrected SuperCluster
38  const EcalRecHitCollection &rhc,
41  const CaloTopology *topology,
42  EcalClusterFunctionBaseClass* EnergyCorrectionClass);
43 
44  // function to set the verbosity level
46  {
48  }
49 
50 private:
51 
52  // correction factor as a function of number of crystals,
53  // BasicCluster algo and location in the detector
54  float fNCrystals(int nCry, reco::CaloCluster::AlgoId theAlgo, EcalSubdetector theBase) const ;
55  float fBrem(float widthRatio, reco::CaloCluster::AlgoId theAlgo, EcalSubdetector theBase) const;
56  float fEta(float eta, reco::CaloCluster::AlgoId theAlgo, EcalSubdetector theBase) const;
57  float fEtEta(float et, float eta, reco::CaloCluster::AlgoId theAlgo, EcalSubdetector theBase) const;
58 
59  // Return the number of crystals in a BasicCluster above
60  // 2sigma noise level
61  int nCrystalsGT2Sigma(reco::BasicCluster const & seed, EcalRecHitCollection const &rhc) const;
62 
64 
65  // the verbosity level
67 
69 
70  // parameters
71  std::vector<double> p_fEta_;
72  std::vector<double> p_fBremTh_, p_fBrem_;
73  std::vector<double> p_fEtEta_;
74 
75  double minR9Barrel_;
76  double minR9Endcap_;
77  double maxR9_;
78 };
79 
80 #endif /*RecoECAL_ECALClusters_HiEgammaSCEnergyCorrectionAlgo_h_*/
float fBrem(float widthRatio, reco::CaloCluster::AlgoId theAlgo, EcalSubdetector theBase) const
CaloTopology const * topology(0)
float fNCrystals(int nCry, reco::CaloCluster::AlgoId theAlgo, EcalSubdetector theBase) const
void setVerbosity(VerbosityLevel verbosity)
HiEgammaSCEnergyCorrectionAlgo(float noise, reco::CaloCluster::AlgoId theAlgo, const edm::ParameterSet &pSet, VerbosityLevel verbosity=pERROR)
reco::SuperCluster applyCorrection(const reco::SuperCluster &cl, const EcalRecHitCollection &rhc, reco::CaloCluster::AlgoId theAlgo, const CaloSubdetectorGeometry *geometry, const CaloTopology *topology, EcalClusterFunctionBaseClass *EnergyCorrectionClass)
float fEta(float eta, reco::CaloCluster::AlgoId theAlgo, EcalSubdetector theBase) const
float fEtEta(float et, float eta, reco::CaloCluster::AlgoId theAlgo, EcalSubdetector theBase) const
int nCrystalsGT2Sigma(reco::BasicCluster const &seed, EcalRecHitCollection const &rhc) const
ESHandle< TrackerGeometry > geometry
EcalSubdetector