3 #ifndef H_JET_MET_TOOLS 4 #define H_JET_MET_TOOLS 11 #include "DataFormats/PatCandidates/interface/Jet.h" 12 #include "DataFormats/JetReco/interface/GenJet.h" 13 #include "DataFormats/PatCandidates/interface/MET.h" 14 #include "CondFormats/JetMETObjects/interface/FactorizedJetCorrector.h" 15 #include "CondFormats/JetMETObjects/interface/JetCorrectorParameters.h" 16 #include "CondFormats/JetMETObjects/interface/JetCorrectionUncertainty.h" 18 #include "CondFormats/BTauObjects/interface/BTagCalibration.h" 19 #include "CondTools/BTau/interface/BTagCalibrationReader.h" 31 float getMCTagEfficiency(
int pdgId,
float pT,
float eta, BTagEntry::OperatingPoint op,
bool doDeepCSV,
bool doByProc)
const;
68 FactorizedJetCorrectorCalculator::VariableValues
jetValues;
75 static const std::vector<BTagEntry::OperatingPoint>
op_pts_;
76 static const std::vector<BTagEntry::JetFlavor>
flavors_;
79 std::map<BTagEntry::OperatingPoint, std::unique_ptr<BTagCalibrationReader> >
readers_full_;
80 std::map<BTagEntry::OperatingPoint, std::unique_ptr<BTagCalibrationReader> >
readers_fast_;
94 bool isLowDphi(
vCands jets,
float mht_phi,
float &dphi1,
float &dphi2,
float &dphi3,
float &dphi4);
96 float getGenPt(
const pat::Jet &jet, edm::Handle<edm::View <reco::GenJet> > genjets);
97 bool matchesGenJet(
const pat::Jet &jet, edm::Handle<edm::View <reco::GenJet> > genjets);
98 float trueHT(edm::Handle<edm::View <reco::GenJet> > genjets);
100 void getMETRaw(edm::Handle<pat::METCollection> mets,
float &metRaw,
float &metRawPhi);
101 void getMETWithJEC(edm::Handle<pat::METCollection> mets,
float &
met,
float &metPhi,
unsigned isys);
103 void getJetCorrections(edm::Handle<edm::View <reco::GenJet> > genjets, edm::Handle<pat::JetCollection> alljets,
double rhoEvent);
108 const std::string &bc_full_syst,
const std::string &udsg_full_syst,
109 const std::string &bc_fast_syst,
const std::string &udsg_fast_syst,
bool doDeepCSV,
bool doByProc =
false)
const;
111 const std::string &bc_full_syst,
const std::string &udsg_full_syst,
bool doDeepCSV,
bool doByProc =
false)
const;
112 float jetBTagWeight(
const pat::Jet &jet,
const LVector &jetp4,
const std::vector<BTagEntry::OperatingPoint> &ops,
113 const std::string &bc_full_syst,
const std::string &udsg_full_syst,
bool doDeepCSV,
bool doByProc =
false)
const;
114 float jetBTagWeight(
const pat::Jet &jet,
const LVector &jetp4,
const std::vector<BTagEntry::OperatingPoint> &ops,
115 const std::string &bc_full_syst,
const std::string &udsg_full_syst,
116 const std::string &bc_fast_syst,
const std::string &udsg_fast_syst,
bool doDeepCSV,
bool doByProc =
false)
const;
117 void fillDeltaRbb(std::vector<float> & deltaRbb, std::vector<float> & bb_pt, std::vector<float> & bb_m, std::vector<int> & bb_jet_idx1, std::vector<int> & bb_jet_idx2, std::vector<int> & bb_gs_idx, std::vector<int> & bb_gs_flavor,
const std::vector<LVector> &
jets,
const std::vector<float> &jets_csv,
const std::vector<bool> &jets_islep,
const std::vector<float> &jets_pt,
const std::vector<size_t> &brank,
int & highcsv_index,
bool deep =
false);
118 static std::vector<size_t>
getBRanking(
const std::vector<LVector> &momentum,
const std::vector<float> &csv,
119 const std::vector<bool> &is_lep);
120 static float getDeltaRbbHighCSV(
const std::vector<LVector> &momentum,
const std::vector<size_t> &brank,
size_t nb);
121 static float getDeltaRbbMax(
const std::vector<LVector> &momentum,
const std::vector<size_t> &brank,
123 static float getDeltaRbbMin(
const std::vector<LVector> &momentum,
const std::vector<size_t> &brank,
125 static float getDeltaPhibb(
const std::vector<LVector> &momentum,
const std::vector<size_t> &brank,
size_t nb);
126 static float getDeltaPhibbMax(
const std::vector<LVector> &momentum,
const std::vector<size_t> &brank,
128 static float getDeltaPhibbMin(
const std::vector<LVector> &momentum,
const std::vector<size_t> &brank,
130 static float getMbb(
const std::vector<LVector> &momentum,
const std::vector<size_t> &brank,
size_t nb);
131 static float getMbbMax(
const std::vector<LVector> &momentum,
const std::vector<size_t> &brank,
133 static float getMbbMin(
const std::vector<LVector> &momentum,
const std::vector<size_t> &brank,
135 static float getMblepMax2(
const std::vector<LVector> &
jets,
const std::vector<size_t> &brank,
136 size_t nb,
const LVector &lep);
137 static float getMblepMin2(
const std::vector<LVector> &
jets,
const std::vector<size_t> &brank,
138 size_t nb,
const LVector &lep);
139 static float getMblepMax(
const std::vector<LVector> &
jets,
const std::vector<size_t> &brank,
140 size_t nb,
const LVector &lep);
141 static float getMblepMin(
const std::vector<LVector> &
jets,
const std::vector<size_t> &brank,
142 size_t nb,
const LVector &lep);
144 size_t nb,
const LVector &lep);
146 size_t nb,
const LVector &lep);
147 static float getDeltaRblepMax(
const std::vector<LVector> &
jets,
const std::vector<size_t> &brank,
148 size_t nb,
const LVector &lep);
149 static float getDeltaRblepMin(
const std::vector<LVector> &
jets,
const std::vector<size_t> &brank,
150 size_t nb,
const LVector &lep);
152 size_t nb,
const LVector &lep);
154 size_t nb,
const LVector &lep);
156 size_t nb,
const LVector &lep);
158 size_t nb,
const LVector &lep);
159 static float getMTbmetMax2(
const std::vector<LVector> &
jets,
const std::vector<size_t> &brank,
160 size_t nb,
float met,
float met_phi);
161 static float getMTbmetMin2(
const std::vector<LVector> &
jets,
const std::vector<size_t> &brank,
162 size_t nb,
float met,
float met_phi);
163 static float getMTbmetMax(
const std::vector<LVector> &
jets,
const std::vector<size_t> &brank,
164 size_t nb,
float met,
float met_phi);
165 static float getMTbmetMin(
const std::vector<LVector> &
jets,
const std::vector<size_t> &brank,
166 size_t nb,
float met,
float met_phi);
168 size_t nb,
float met_phi);
170 size_t nb,
float met_phi);
172 size_t nb,
float met_phi);
174 size_t nb,
float met_phi);
177 std::vector<float> &fjets_pt,
178 std::vector<float> &fjets_eta,
179 std::vector<float> &fjets_phi,
180 std::vector<float> &fjets_m,
181 std::vector<int> &fjets_nconst,
182 std::vector<int> &jets_fjet_index,
187 double getSysMJ(
double radius, std::vector<LVector> &
jets,
188 std::vector<bool> &jets_islep,
double min_jets_pt,
std::vector< const reco::Candidate * > vCands
reco::Candidate::LorentzVector LVector