1 #ifndef JetCombinatorics_h 2 #define JetCombinatorics_h 15 #include "TLorentzVector.h" 43 void SetWp(
const TLorentzVector& Wp) {
Wp_ = Wp; }
44 void SetWq(
const TLorentzVector& Wq) {
Wq_ = Wq; }
61 hdisc_b_ = (TH1F*)gDirectory->Get(
"hdiscNorm_b");
62 hdisc_cl_ = (TH1F*)gDirectory->Get(
"hdiscNorm_cl");
116 chi2_ = chiHadW * chiHadW + chiHadt * chiHadt + chiLept * chiLept;
161 double btag_norm = (-0.25 - TMath::Log(4) / 2);
162 double btag_N2LL = btag_norm * 4. *
163 (LR_Wp * TMath::Log(LR_Wp / 4) + LR_Wq * TMath::Log(LR_Wq / 4) +
164 LR_Hadb * TMath::Log(LR_Hadb / 4) + LR_Lepb * TMath::Log(LR_Lepb / 4));
166 chi2_ += btag_N2LL + gauss_norm;
193 std::cout <<
" jet Wp : px = " <<
Wp_.Px() <<
" py = " <<
Wp_.Py() <<
" pz = " <<
Wp_.Pz() <<
" e = " <<
Wp_.E()
195 std::cout <<
" jet Wq : px = " <<
Wq_.Px() <<
" py = " <<
Wq_.Py() <<
" pz = " <<
Wq_.Pz() <<
" e = " <<
Wq_.E()
198 <<
" e = " <<
Hadb_.E() << std::endl;
200 <<
" e = " <<
Lepb_.E() << std::endl;
210 int bin = hpdf->GetXaxis()->FindBin(disc);
211 pdf = hpdf->GetBinContent(bin);
212 if (disc < -10 || disc > 50)
281 std::map<int, std::string> NestedCombinatorics();
283 void FourJetsCombinations(
const std::vector<TLorentzVector>&
jets,
const std::vector<double>&
bdiscriminators);
286 Combo GetCombination(
int n = 0);
287 Combo GetCombinationSumEt(
int n = 0);
307 std::vector<TLorentzVector> TwoCombos();
308 std::vector<TLorentzVector> ThreeCombos();
312 std::vector<TLorentzVector> GetComposites();
313 void AnalyzeCombos();
void SetMinMassHadW(double mass)
void UseMtopConstraint(bool option=true)
std::map< Combo, int, maxSumEt > allCombosSumEt_
bool operator()(const Combo &s1, const Combo &s2) const
std::vector< TLorentzVector > cand3_
void SetLeptonicW(const TLorentzVector &LepW)
static const std::string LepW
void UsebTagging(bool option=true)
void SetLepb_disc(double disc)
std::map< int, std::string > Template7jCombos_
void SetMaxMassLepW(double mass)
std::vector< TLorentzVector > cand1_
void SetbDiscPdf(const TString &filename)
void SetMinMassLepTop(double mass)
std::map< int, std::string > Template5jCombos_
bool operator()(const Combo &s1, const Combo &s2) const
TLorentzVector GetTopPair()
void ApplyFlavorCorrections(bool option=true)
void SetFlvCorrLepb(double corr)
void UseMtopConstraint(bool option=true)
std::vector< double > flavorCorrections_
void SetFlavorCorrections(const std::vector< double > &vector)
void SetWp_disc(double disc)
void ApplyFlavorCorrection(bool option=true)
void SetMaxMassLepW(double mass)
void SetHadb_disc(double disc)
void SetFlvCorrWq(double corr)
void SetLepb(const TLorentzVector &Lepb)
std::map< Combo, int, minChi2 > allCombos_
void SetWq(const TLorentzVector &Wq)
void SetMaxMassHadW(double mass)
TLorentzVector GetHadTop()
void RemoveDuplicates(bool option)
void SetHadb(const TLorentzVector &Hadb)
void SetMinMassLepW(double mass)
void SetMinMassLepTop(double mass)
void SetFlvCorrWp(double corr)
std::map< int, std::string > Template4jCombos_
void SetMaxMassLepTop(double mass)
void SetMaxMassLepTop(double mass)
double getPdfValue(std::string flavor, double disc)
std::map< int, std::string > Template6jCombos_
void SetWq_disc(double disc)
void SetbTagPdf(const TString &name)
void SetFlvCorrHadb(double corr)
void SetMinMassLepW(double mass)
void SetLepW(const TLorentzVector &LepW)
TLorentzVector GetLepTop()
void Usebtagging(bool option=true)
void SetMinMassHadW(double mass)
std::vector< TLorentzVector > cand2_
void SetSigmas(int type=0)
void SetSigmas(int type=0)
void SetWp(const TLorentzVector &Wp)
void SetMaxMassHadW(double mass)