CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
mvaMEtUtilities.h
Go to the documentation of this file.
1 #ifndef RecoMET_METPUSubtraction_mvaMEtUtilities_h
2 #define RecoMET_METPUSubtraction_mvaMEtUtilities_h
3 
5 
8 
9 #include <vector>
10 #include <utility>
11 
13 {
14  public:
15 
16  struct pfCandInfo
17  {
19  : p4_(0.,0.,0.,0.),
20  dZ_(0.)
21  {}
24  double dZ_;
25  };
26 
27  struct leptonInfo
28  {
30  : p4_(0.,0.,0.,0.),
31  chargedFrac_(0.)
32  {}
35  double chargedFrac_;
36  };
37 
38  struct JetInfo
39  {
41  : p4_(0.,0.,0.,0.),
42  mva_(0.),
43  neutralEnFrac_(0.)
44  {}
45  ~JetInfo() {}
47  double mva_;
48  double neutralEnFrac_;
49  };
50 
52  virtual ~mvaMEtUtilities();
53 
54  friend bool operator<(const JetInfo&, const JetInfo&);
55 
56  bool passesMVA(const reco::Candidate::LorentzVector&, double);
57 
58  reco::Candidate::LorentzVector leadJetP4(const std::vector<JetInfo>&);
59  reco::Candidate::LorentzVector subleadJetP4(const std::vector<JetInfo>&);
60  unsigned numJetsAboveThreshold(const std::vector<JetInfo>&, double);
61 
62  std::vector<JetInfo> cleanJets(const std::vector<JetInfo>&,
63  const std::vector<leptonInfo>&, double, double);
64 
65  std::vector<pfCandInfo> cleanPFCands(const std::vector<pfCandInfo>&,
66  const std::vector<leptonInfo>&, double, bool);
67 
68  CommonMETData computePFCandSum(const std::vector<pfCandInfo>&, double, int);
69  CommonMETData computeJetSum_neutral(const std::vector<JetInfo>&, bool);
70 
71  CommonMETData computePUMEt(const std::vector<pfCandInfo>&, const std::vector<JetInfo>&, double);
72 
73  CommonMETData computeNegPFRecoil (const CommonMETData&, const std::vector<pfCandInfo>&, double);
74  CommonMETData computeNegTrackRecoil(const CommonMETData&, const std::vector<pfCandInfo>&, double);
75  CommonMETData computeNegNoPURecoil (const CommonMETData&, const std::vector<pfCandInfo>&, const std::vector<JetInfo>&, double);
76  CommonMETData computeNegPUCRecoil (const CommonMETData&, const std::vector<pfCandInfo>&, const std::vector<JetInfo>&, double);
77  CommonMETData computeSumLeptons (const std::vector<leptonInfo>& leptons, bool iCharged);
78  void finalize(CommonMETData& metData);
79  protected:
80 
81  reco::Candidate::LorentzVector jetP4(const std::vector<JetInfo>&, unsigned);
82 
83  // cuts on jet Id. MVA output in bins of jet Pt and eta
84  double mvaCut_[3][4][4];
85 };
86 
87 #endif
reco::Candidate::LorentzVector leadJetP4(const std::vector< JetInfo > &)
virtual ~mvaMEtUtilities()
CommonMETData computeJetSum_neutral(const std::vector< JetInfo > &, bool)
unsigned numJetsAboveThreshold(const std::vector< JetInfo > &, double)
std::vector< pfCandInfo > cleanPFCands(const std::vector< pfCandInfo > &, const std::vector< leptonInfo > &, double, bool)
reco::Candidate::LorentzVector jetP4(const std::vector< JetInfo > &, unsigned)
double mvaCut_[3][4][4]
CommonMETData computeNegPFRecoil(const CommonMETData &, const std::vector< pfCandInfo > &, double)
reco::Candidate::LorentzVector p4_
reco::Candidate::LorentzVector p4_
mvaMEtUtilities(const edm::ParameterSet &cfg)
reco::Candidate::LorentzVector p4_
Structure containing data common to all types of MET.
Definition: CommonMETData.h:12
reco::Candidate::LorentzVector subleadJetP4(const std::vector< JetInfo > &)
void finalize(CommonMETData &metData)
CommonMETData computePFCandSum(const std::vector< pfCandInfo > &, double, int)
bool passesMVA(const reco::Candidate::LorentzVector &, double)
CommonMETData computeNegNoPURecoil(const CommonMETData &, const std::vector< pfCandInfo > &, const std::vector< JetInfo > &, double)
friend bool operator<(const JetInfo &, const JetInfo &)
CommonMETData computeSumLeptons(const std::vector< leptonInfo > &leptons, bool iCharged)
CommonMETData computeNegPUCRecoil(const CommonMETData &, const std::vector< pfCandInfo > &, const std::vector< JetInfo > &, double)
math::XYZTLorentzVector LorentzVector
Lorentz vector.
Definition: Candidate.h:41
CommonMETData computePUMEt(const std::vector< pfCandInfo > &, const std::vector< JetInfo > &, double)
CommonMETData computeNegTrackRecoil(const CommonMETData &, const std::vector< pfCandInfo > &, double)
std::vector< JetInfo > cleanJets(const std::vector< JetInfo > &, const std::vector< leptonInfo > &, double, double)