CMS 3D CMS Logo

PFMETAlgorithmMVA.h
Go to the documentation of this file.
1 #ifndef RecoMET_METPUSubtraction_PFMETAlgorithmMVA_h
2 #define RecoMET_METPUSubtraction_PFMETAlgorithmMVA_h
3 
15 
17 
21 
23 
24 //#include <TMatrixD.h>
25 #include <Math/SMatrix.h>
26 
27 #include <string>
28 #include <vector>
29 #include <ostream>
30 
32 public:
35 
36  void initialize(const edm::EventSetup&);
37 
38  void setHasPhotons(bool hasPhotons) { hasPhotons_ = hasPhotons; }
39 
40  void setInput(const std::vector<reco::PUSubMETCandInfo>&,
41  const std::vector<reco::PUSubMETCandInfo>&,
42  const std::vector<reco::PUSubMETCandInfo>&,
43  const std::vector<reco::Vertex::Point>&);
44 
45  void evaluateMVA();
46 
48  const reco::METCovMatrix& getMEtCov() const { return mvaMEtCov_; }
49 
50  double getU() const { return mvaOutputU_; }
51  double getDPhi() const { return mvaOutputDPhi_; }
52  double getCovU1() const { return mvaOutputCovU1_; }
53  double getCovU2() const { return mvaOutputCovU2_; }
54 
55  void print(std::ostream&) const;
56 
57 private:
60  const GBRForest* loadMVAfromDB(const edm::EventSetup& es, const std::string& mvaName);
61 
62  const float evaluateU();
63  const float evaluateDPhi();
64  const float evaluateCovU1();
65  const float evaluateCovU2();
66 
68 
73 
74  int mvaType_;
76 
77  double dZcut_;
78  std::unique_ptr<float[]> createFloatVector(std::vector<std::string> variableNames);
79  const float GetResponse(const GBRForest* Reader, std::vector<std::string>& variableNames);
80  void computeMET();
81  std::map<std::string, float> var_;
82 
83  float* mvaInputU_;
84  float* mvaInputDPhi_;
87 
88  float mvaOutputU_;
92 
93  std::vector<std::string> varForU_;
94  std::vector<std::string> varForDPhi_;
95  std::vector<std::string> varForCovU1_;
96  std::vector<std::string> varForCovU2_;
97 
98  double sumLeptonPx_;
99  double sumLeptonPy_;
102 
104  //TMatrixD mvaMEtCov_;
106 
111 
113 
115 };
116 #endif
double getCovU1() const
std::vector< std::string > varForCovU2_
double getU() const
MvaMEtUtilities utils_
void print(std::ostream &) const
const GBRForest * loadMVAfromFile(const edm::FileInPath &inputFileName, const std::string &mvaName)
std::vector< std::string > varForU_
double getCovU2() const
const float evaluateU()
ROOT::Math::SMatrix< double, 2 > METCovMatrix
Definition: MET.h:39
const GBRForest * mvaReaderCovU1_
const float GetResponse(const GBRForest *Reader, std::vector< std::string > &variableNames)
const GBRForest * mvaReaderCovU2_
const float evaluateCovU2()
const std::string updateVariableNames(std::string input)
edm::ParameterSet cfg_
reco::Candidate::LorentzVector getMEt() const
std::string mvaNameCovU1_
void setInput(const std::vector< reco::PUSubMETCandInfo > &, const std::vector< reco::PUSubMETCandInfo > &, const std::vector< reco::PUSubMETCandInfo > &, const std::vector< reco::Vertex::Point > &)
const reco::METCovMatrix & getMEtCov() const
static std::string const input
Definition: EdmProvDump.cc:48
const GBRForest * mvaReaderDPhi_
const GBRForest * mvaReaderU_
PFMETAlgorithmMVA(const edm::ParameterSet &cfg)
std::unique_ptr< float[]> createFloatVector(std::vector< std::string > variableNames)
const float evaluateCovU1()
const GBRForest * loadMVAfromDB(const edm::EventSetup &es, const std::string &mvaName)
void initialize(const edm::EventSetup &)
void setHasPhotons(bool hasPhotons)
reco::METCovMatrix mvaMEtCov_
std::vector< std::string > varForCovU1_
std::vector< std::string > varForDPhi_
const float evaluateDPhi()
std::map< std::string, float > var_
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:37
std::string mvaNameDPhi_
reco::Candidate::LorentzVector mvaMEt_
double getDPhi() const
std::string mvaNameCovU2_