|
ATLAS Offline Software
|
Rivet routine for classifying MC events according to the Higgs template cross section categories.
More...
#include <HiggsTemplateCrossSections.h>
|
| HiggsTemplateCrossSections () |
|
HiggsClassification | classifyEvent (const Event &event, const HTXS::HiggsProdMode prodMode) const |
| Main classificaion method. More...
|
|
|
Methods to identify the Higgs boson and associated vector boson and to build jets
|
Particle | getLastInstance (const Particle &ptcl) const |
| follow a "propagating" particle and return its last instance More...
|
|
bool | originateFrom (const Particle &p, const Particles &ptcls) const |
| Whether particle p originate from any of the ptcls. More...
|
|
bool | originateFrom (const Particle &p, const Particle &p2) const |
| Whether particle p originates from p2. More...
|
|
bool | hasChild (HepMC::ConstGenParticlePtr ptcl, int pdgID) const |
| Checks whether the input particle has a child with a given PDGID. More...
|
|
bool | hasParent (HepMC::ConstGenParticlePtr ptcl, int pdgID) const |
| Checks whether the input particle has a parent with a given PDGID. More...
|
|
bool | quarkDecay (const Particle &p) const |
| Return true is particle decays to quarks. More...
|
|
bool | ChLeptonDecay (const Particle &p) const |
| Return true if particle decays to charged leptons. More...
|
|
HiggsClassification | error (HiggsClassification &cat, HTXS::ErrorCode err, std::string msg="", int NmaxWarnings=20) const |
| Returns the classification object with the error code set. More...
|
|
|
Methods to assign the truth category based on the identified Higgs boson and associated vector bosons and/or reconstructed jets
|
int | getBin (double x, const std::vector< double > &bins) const |
| Return bin index of x given the provided bin edges. 0=first bin, -1=underflow bin. More...
|
|
int | vbfTopology (const Jets &jets, const Particle &higgs) const |
| VBF topolog selection 0 = fail loose selction: m_jj > 400 GeV and Dy_jj > 2.8 1 pass loose, but fail additional cut pT(Hjj)<25. More...
|
|
int | vbfTopology_Stage1_2 (const Jets &jets, const Particle &higgs) const |
| VBF topology selection 0 = fail loose selection: m_jj > 350 GeV 1 pass loose, but fail additional cut pT(Hjj)<25. More...
|
|
int | vbfTopology_Stage1_2_Fine (const Jets &jets, const Particle &higgs) const |
| VBF topology selection for Stage1_2 0 = fail loose selection: m_jj > 350 GeV 1 pass loose, but fail additional cut pT(Hjj)<25. More...
|
|
bool | isVH (HTXS::HiggsProdMode p) const |
| Whether the Higgs is produced in association with a vector boson (VH) More...
|
|
HTXS::Stage0::Category | getStage0Category (const HTXS::HiggsProdMode prodMode, const Particle &higgs, const Particle &V) const |
| Stage-0 HTXS categorization. More...
|
|
HTXS::Stage1::Category | getStage1Category (const HTXS::HiggsProdMode prodMode, const Particle &higgs, const Jets &jets, const Particle &V) const |
| Stage-1 categorization. More...
|
|
HTXS::Stage1_2::Category | getStage1_2_Category (const HTXS::HiggsProdMode prodMode, const Particle &higgs, const Jets &jets, const Particle &V) const |
| Stage-1.2 categorization. More...
|
|
HTXS::Stage1_2_Fine::Category | getStage1_2_Fine_Category (const HTXS::HiggsProdMode prodMode, const Particle &higgs, const Jets &jets, const Particle &V) const |
| Stage-1.2_Fine categorization. More...
|
|
|
void | setHiggsProdMode (HTXS::HiggsProdMode prodMode) |
| Sets the Higgs production mode. More...
|
|
void | init () |
| default Rivet Analysis::init method Booking of histograms, initializing Rivet projection Extracts Higgs production mode from shell variable if not set manually using setHiggsProdMode More...
|
|
void | analyze (const Event &event) |
|
void | printClassificationSummary () |
|
void | finalize () |
|
void | initializeHistos () |
|
Rivet routine for classifying MC events according to the Higgs template cross section categories.
- Author
- Jim Lacey (DESY) <james.nosp@m..lac.nosp@m.ey@ce.nosp@m.rn.c.nosp@m.h,jlace.nosp@m.y@de.nosp@m.sy.de>
-
Dag Gillberg (Carleton University) dag.g.nosp@m.illb.nosp@m.erg@c.nosp@m.ern..nosp@m.ch
Definition at line 33 of file HiggsTemplateCrossSections.h.
◆ HiggsTemplateCrossSections()
Rivet::HiggsTemplateCrossSections::HiggsTemplateCrossSections |
( |
| ) |
|
|
inline |
◆ analyze()
void Rivet::HiggsTemplateCrossSections::analyze |
( |
const Event & |
event | ) |
|
|
inline |
Definition at line 668 of file HiggsTemplateCrossSections.h.
677 int F=cat.stage0_cat%10,
P=cat.stage1_cat_pTjet30GeV/100;
684 static const vector<int> offset1_2({0,1,18,29,35,41,47,53,55,57});
685 int off1_2 = offset1_2[
P];
687 static const vector<int> offset1_2_Fine({0,1,29,54,70,86,102,109,111,113});
688 int off1_2_Fine = offset1_2_Fine[
P];
709 if (cat.jets30.size()>=2) {
710 const FourMomentum &
j1 = cat.jets30[0].momentum(), &
j2 = cat.jets30[1].momentum();
◆ ChLeptonDecay()
bool Rivet::HiggsTemplateCrossSections::ChLeptonDecay |
( |
const Particle & |
p | ) |
const |
|
inline |
Return true if particle decays to charged leptons.
Definition at line 96 of file HiggsTemplateCrossSections.h.
99 #
if RIVET_VERSION_CODE >= 40000
100 PID::isChargedLepton(child.pid())
◆ classifyEvent()
Main classificaion method.
Definition at line 126 of file HiggsTemplateCrossSections.h.
129 HiggsClassification cat;
130 cat.prodMode = prodMode;
142 "Unkown Higgs production mechanism. Cannot classify event."
143 " Classification for all events will most likely fail.");
158 if ( ptcl->end_vertex() && !
hasChild(ptcl,PID::HIGGS) ) {
159 cat.higgs =
Particle(ptcl); ++Nhiggs;
163 if ( HSvtx==
nullptr && ptcl->production_vertex() && !
hasParent(ptcl,PID::HIGGS) )
164 HSvtx = ptcl->production_vertex();
170 "Current event has "+
std::to_string(Nhiggs)+
" Higgs bosons. There must be only one.");
171 if (cat.higgs.children().size()<2)
173 "Could not identify Higgs boson decay products.");
175 if (HSvtx ==
nullptr)
184 bool is_uncatdV =
false;
186 FourMomentum uncatV_p4(0,0,0,0);
187 FourVector uncatV_v4(0,0,0,0);
189 if (
isVH(prodMode) ) {
199 uncatV_p4 +=
Particle(ptcl).momentum();
200 uncatV_v4 +=
Particle(ptcl).origin();
203 is_uncatdV =
true; cat.V =
Particle(24,uncatV_p4,uncatV_v4);
209 if (
isVH(prodMode) && !cat.V.genParticle()->end_vertex() )
212 if (
isVH(prodMode) && cat.V.children().size()<2 )
215 if ( ( prodMode==
HTXS::WH && (nZs>0||nWs!=1) ) ||
218 std::to_string(nZs)+
" Z-bosons. Inconsitent with VH expectation.");
228 if (
top.genParticle()->end_vertex() )
229 for (
auto child:
top.children())
235 if ( (prodMode==
HTXS::TTH && Ws.size()<2) || (prodMode==
HTXS::TH && Ws.size()<1 ) )
250 }
else leptonicVs = uncatV_decays;
251 for (
auto W:Ws )
if (
W.genParticle()->end_vertex() && !
quarkDecay(
W) ) leptonicVs +=
W;
256 FourMomentum
sum(0,0,0,0), vSum(0,0,0,0), hSum(0,0,0,0);
270 cat.p4decay_higgs = hSum;
271 cat.p4decay_V = vSum;
274 FastJets
jets(fps_temp,
275 #
if RIVET_VERSION_CODE >= 40000
302 cat.isZ2vvDecay =
false;
305 cat.stage1_cat_pTjet25GeV =
getStage1Category(prodMode,cat.higgs,cat.jets25,cat.V);
306 cat.stage1_cat_pTjet30GeV =
getStage1Category(prodMode,cat.higgs,cat.jets30,cat.V);
◆ error()
HiggsClassification Rivet::HiggsTemplateCrossSections::error |
( |
HiggsClassification & |
cat, |
|
|
HTXS::ErrorCode |
err, |
|
|
std::string |
msg = "" , |
|
|
int |
NmaxWarnings = 20 |
|
) |
| const |
|
inline |
Returns the classification object with the error code set.
Prints an warning message, and keeps track of number of errors
Definition at line 110 of file HiggsTemplateCrossSections.h.
117 static std::atomic<int> Nwarnings = 0;
118 if ( !
msg.empty() && ++Nwarnings < NmaxWarnings )
◆ finalize()
void Rivet::HiggsTemplateCrossSections::finalize |
( |
| ) |
|
|
inline |
◆ getBin()
int Rivet::HiggsTemplateCrossSections::getBin |
( |
double |
x, |
|
|
const std::vector< double > & |
bins |
|
) |
| const |
|
inline |
◆ getLastInstance()
Particle Rivet::HiggsTemplateCrossSections::getLastInstance |
( |
const Particle & |
ptcl | ) |
const |
|
inline |
follow a "propagating" particle and return its last instance
Definition at line 48 of file HiggsTemplateCrossSections.h.
49 if ( ptcl.genParticle()->end_vertex() ) {
50 if ( !
hasChild(ptcl.genParticle(),ptcl.pid()) )
return ptcl;
◆ getStage0Category()
◆ getStage1_2_Category()
Stage-1.2 categorization.
Definition at line 454 of file HiggsTemplateCrossSections.h.
459 int Njets=
jets.size(), ctrlHiggs = std::abs(higgs.rapidity())<2.5, fwdHiggs = !ctrlHiggs;
479 if (std::abs(higgs.rapidity())>2.5)
return QQ2HQQ_FWDH;
480 int Njets=
jets.size();
488 else if ( mjj > 350 ) {
◆ getStage1_2_Fine_Category()
Stage-1.2_Fine categorization.
Definition at line 531 of file HiggsTemplateCrossSections.h.
536 int Njets=
jets.size(), ctrlHiggs = std::abs(higgs.rapidity())<2.5, fwdHiggs = !ctrlHiggs;
543 if ( higgs.pt()>200 ){
545 double pTHj = (
jets[0].momentum()+higgs.momentum()).
pt();
555 double pTHjj = (
jets[0].momentum()+
jets[1].momentum()+higgs.momentum()).
pt();
566 if (std::abs(higgs.rapidity())>2.5)
return QQ2HQQ_FWDH;
567 int Njets=
jets.size();
572 double pTHjj = (
jets[0].momentum()+
jets[1].momentum()+higgs.momentum()).
pt();
588 int Njets=
jets.size();
596 int Njets=
jets.size();
604 int Njets=
jets.size();
◆ getStage1Category()
Stage-1 categorization.
Definition at line 388 of file HiggsTemplateCrossSections.h.
393 int Njets=
jets.size(), ctrlHiggs = std::abs(higgs.rapidity())<2.5, fwdHiggs = !ctrlHiggs;
394 double pTj1 =
jets.size() ?
jets[0].momentum().pt() : 0;
415 if (std::abs(higgs.rapidity())>2.5)
return QQ2HQQ_FWDH;
◆ hasChild()
Checks whether the input particle has a child with a given PDGID.
Definition at line 75 of file HiggsTemplateCrossSections.h.
77 if (child.pid()==pdgID)
return true;
◆ hasParent()
◆ init()
void Rivet::HiggsTemplateCrossSections::init |
( |
| ) |
|
|
inline |
default Rivet Analysis::init method Booking of histograms, initializing Rivet projection Extracts Higgs production mode from shell variable if not set manually using setHiggsProdMode
Definition at line 631 of file HiggsTemplateCrossSections.h.
632 printf(
"==============================================================\n");
633 printf(
"======== HiggsTemplateCrossSections Initialization =========\n");
634 printf(
"==============================================================\n");
638 char *pm_env =
getenv(
"HIGGSPRODMODE");
639 string pm(pm_env==
nullptr?
"":pm_env);
650 MSG_WARNING(
"No HIGGSPRODMODE shell variable found. Needed when running Rivet stand-alone.");
661 printf(
"==============================================================\n");
663 printf(
"======== Sucessful Initialization =========\n");
664 printf(
"==============================================================\n");
◆ initializeHistos()
void Rivet::HiggsTemplateCrossSections::initializeHistos |
( |
| ) |
|
|
inline |
◆ isVH()
◆ originateFrom() [1/2]
bool Rivet::HiggsTemplateCrossSections::originateFrom |
( |
const Particle & |
p, |
|
|
const Particle & |
p2 |
|
) |
| const |
|
inline |
◆ originateFrom() [2/2]
bool Rivet::HiggsTemplateCrossSections::originateFrom |
( |
const Particle & |
p, |
|
|
const Particles & |
ptcls |
|
) |
| const |
|
inline |
Whether particle p originate from any of the ptcls.
Definition at line 57 of file HiggsTemplateCrossSections.h.
58 auto prodVtx =
p.genParticle()->production_vertex();
59 if (prodVtx ==
nullptr)
return false;
62 for (
auto part:ptcls )
63 if ( ancestor==
part.genParticle() )
return true;
◆ printClassificationSummary()
void Rivet::HiggsTemplateCrossSections::printClassificationSummary |
( |
| ) |
|
|
inline |
Definition at line 717 of file HiggsTemplateCrossSections.h.
718 MSG_INFO (
" ====================================================== ");
719 MSG_INFO (
" Higgs Template X-Sec Categorization Tool ");
721 MSG_INFO (
" ====================================================== ");
722 bool allSuccess = (numEvents()==m_errorCount[
HTXS::SUCCESS]);
723 if ( allSuccess )
MSG_INFO (
" >>>> All "<< m_errorCount[
HTXS::SUCCESS] <<
" events successfully categorized!");
726 MSG_INFO (
" >>>> --> the following errors occured:");
734 MSG_INFO (
" ====================================================== ");
735 MSG_INFO (
" ====================================================== ");
◆ quarkDecay()
bool Rivet::HiggsTemplateCrossSections::quarkDecay |
( |
const Particle & |
p | ) |
const |
|
inline |
◆ setHiggsProdMode()
◆ vbfTopology()
int Rivet::HiggsTemplateCrossSections::vbfTopology |
( |
const Jets & |
jets, |
|
|
const Particle & |
higgs |
|
) |
| const |
|
inline |
VBF topolog selection 0 = fail loose selction: m_jj > 400 GeV and Dy_jj > 2.8 1 pass loose, but fail additional cut pT(Hjj)<25.
2 pass tight selection
Definition at line 333 of file HiggsTemplateCrossSections.h.
334 if (
jets.size()<2)
return 0;
335 const FourMomentum &
j1=
jets[0].momentum(), &
j2=
jets[1].momentum();
336 bool VBFtopo = (
j1+
j2).
mass() > 400.0 && std::abs(
j1.rapidity()-
j2.rapidity()) > 2.8;
337 return VBFtopo ? (
j1+
j2+higgs.momentum()).
pt()<25 ? 2 : 1 : 0;
◆ vbfTopology_Stage1_2()
int Rivet::HiggsTemplateCrossSections::vbfTopology_Stage1_2 |
( |
const Jets & |
jets, |
|
|
const Particle & |
higgs |
|
) |
| const |
|
inline |
VBF topology selection 0 = fail loose selection: m_jj > 350 GeV 1 pass loose, but fail additional cut pT(Hjj)<25.
2 pass pT(Hjj)>25 selection 3 pass tight (m_jj>700 GeV), but fail additional cut pT(Hjj)<25. 4 pass pT(Hjj)>25 selection
Definition at line 343 of file HiggsTemplateCrossSections.h.
344 if (
jets.size()<2)
return 0;
345 const FourMomentum &
j1=
jets[0].momentum(), &
j2=
jets[1].momentum();
347 if(mjj>350 && mjj<=700)
return (
j1+
j2+higgs.momentum()).
pt()<25 ? 1 : 2;
348 else if(mjj>700)
return (
j1+
j2+higgs.momentum()).
pt()<25 ? 3 : 4;
◆ vbfTopology_Stage1_2_Fine()
int Rivet::HiggsTemplateCrossSections::vbfTopology_Stage1_2_Fine |
( |
const Jets & |
jets, |
|
|
const Particle & |
higgs |
|
) |
| const |
|
inline |
VBF topology selection for Stage1_2 0 = fail loose selection: m_jj > 350 GeV 1 pass loose, but fail additional cut pT(Hjj)<25.
2 pass pT(Hjj)>25 selection 3 pass 700<m_jj<1000 GeV, but fail additional cut pT(Hjj)<25. 4 pass pT(Hjj)>25 selection 5 pass 1000<m_jj<1500 GeV, but fail additional cut pT(Hjj)<25. 6 pass pT(Hjj)>25 selection 7 pass m_jj>1500 GeV, but fail additional cut pT(Hjj)<25. 8 pass pT(Hjj)>25 selection
Definition at line 357 of file HiggsTemplateCrossSections.h.
358 if (
jets.size()<2)
return 0;
359 const FourMomentum &
j1=
jets[0].momentum(), &
j2=
jets[1].momentum();
361 if(mjj>350 && mjj<=700)
return (
j1+
j2+higgs.momentum()).
pt()<25 ? 1 : 2;
362 else if(mjj>700 && mjj<=1000)
return (
j1+
j2+higgs.momentum()).
pt()<25 ? 3 : 4;
363 else if(mjj>1000 && mjj<=1500)
return (
j1+
j2+higgs.momentum()).
pt()<25 ? 5 : 6;
364 else if(mjj>1500)
return (
j1+
j2+higgs.momentum()).
pt()<25 ? 7 : 8;
◆ ATLAS_THREAD_SAFE
std::array<std::atomic<size_t>, HTXS::NUM_ERRORCODES> m_errorCount Rivet::HiggsTemplateCrossSections::ATLAS_THREAD_SAFE {} |
|
mutableprivate |
◆ m_HiggsProdMode
◆ m_hist_deltay_jj
Histo1DPtr Rivet::HiggsTemplateCrossSections::m_hist_deltay_jj |
|
private |
◆ m_hist_dijet_mass
Histo1DPtr Rivet::HiggsTemplateCrossSections::m_hist_dijet_mass |
|
private |
◆ m_hist_isZ2vv
Histo1DPtr Rivet::HiggsTemplateCrossSections::m_hist_isZ2vv |
|
private |
◆ m_hist_Njets25
Histo1DPtr Rivet::HiggsTemplateCrossSections::m_hist_Njets25 |
|
private |
◆ m_hist_Njets30
Histo1DPtr Rivet::HiggsTemplateCrossSections::m_hist_Njets30 |
|
private |
◆ m_hist_pT_Higgs
Histo1DPtr Rivet::HiggsTemplateCrossSections::m_hist_pT_Higgs |
|
private |
◆ m_hist_pT_Hjj
Histo1DPtr Rivet::HiggsTemplateCrossSections::m_hist_pT_Hjj |
|
private |
◆ m_hist_pT_jet1
Histo1DPtr Rivet::HiggsTemplateCrossSections::m_hist_pT_jet1 |
|
private |
◆ m_hist_pT_V
Histo1DPtr Rivet::HiggsTemplateCrossSections::m_hist_pT_V |
|
private |
◆ m_hist_stage0
Histo1DPtr Rivet::HiggsTemplateCrossSections::m_hist_stage0 |
|
private |
◆ m_hist_stage1_2_fine_pTjet25
Histo1DPtr Rivet::HiggsTemplateCrossSections::m_hist_stage1_2_fine_pTjet25 |
|
private |
◆ m_hist_stage1_2_fine_pTjet30
Histo1DPtr Rivet::HiggsTemplateCrossSections::m_hist_stage1_2_fine_pTjet30 |
|
private |
◆ m_hist_stage1_2_pTjet25
Histo1DPtr Rivet::HiggsTemplateCrossSections::m_hist_stage1_2_pTjet25 |
|
private |
◆ m_hist_stage1_2_pTjet30
Histo1DPtr Rivet::HiggsTemplateCrossSections::m_hist_stage1_2_pTjet30 |
|
private |
◆ m_hist_stage1_pTjet25
Histo1DPtr Rivet::HiggsTemplateCrossSections::m_hist_stage1_pTjet25 |
|
private |
◆ m_hist_stage1_pTjet30
Histo1DPtr Rivet::HiggsTemplateCrossSections::m_hist_stage1_pTjet30 |
|
private |
◆ m_hist_y_Higgs
Histo1DPtr Rivet::HiggsTemplateCrossSections::m_hist_y_Higgs |
|
private |
◆ m_sumw
double Rivet::HiggsTemplateCrossSections::m_sumw =0.0 |
|
private |
The documentation for this class was generated from the following file:
void printClassificationSummary()
@ VH_IDENTIFICATION
failed to identify associated vector boson
@ TOP_W_IDENTIFICATION
failed to identify top decay
bool quarkDecay(const Particle &p) const
Return true is particle decays to quarks.
Categorization Stage 1.2: Three digit integer of format PF Where P is a digit representing the proces...
bool isVH(HTXS::HiggsProdMode p) const
Whether the Higgs is produced in association with a vector boson (VH)
@ PRODMODE_DEFINED
production mode not defined
@ QQ2HQQ_VBFTOPO_JET3VETO
Histo1DPtr m_hist_stage1_2_fine_pTjet30
@ QQ2HLNU_PTV_150_250_GE1J
@ GG2H_PTH_200_300_PTHJoverPTH_0_15
@ QQ2HQQ_GE2J_MJJ_GT350_PTH_GT200
@ QQ2HQQ_GE2J_MJJ_0_60_PTHJJ_GT25
Histo1DPtr m_hist_Njets25
Histo1DPtr m_hist_Njets30
Two digit number of format PF P is digit for the physics process and F is 0 for |yH|>2....
@ QQ2HLL_PTV_150_250_GE1J
Histo1DPtr m_hist_stage1_pTjet30
Histo1DPtr m_hist_dijet_mass
HiggsClassification error(HiggsClassification &cat, HTXS::ErrorCode err, std::string msg="", int NmaxWarnings=20) const
Returns the classification object with the error code set.
Histo1DPtr m_hist_stage1_2_fine_pTjet25
int vbfTopology_Stage1_2(const Jets &jets, const Particle &higgs) const
VBF topology selection 0 = fail loose selection: m_jj > 350 GeV 1 pass loose, but fail additional cut...
@ HIGGS_DECAY_IDENTIFICATION
failed to identify Higgs boson decay products
bool hasParent(HepMC::ConstGenParticlePtr ptcl, int pdgID) const
Checks whether the input particle has a parent with a given PDGID.
Particle_v1 Particle
Define the latest version of the particle class.
HiggsClassification classifyEvent(const Event &event, const HTXS::HiggsProdMode prodMode) const
Main classificaion method.
@ QQ2HQQ_GE2J_MJJ_120_350
bool isHiggs(const T &p)
APID: HIGGS boson is only one particle.
@ GG2H_GE2J_MJJ_350_700_PTH_0_200_PTHJJ_0_25
Categorization Stage 1: Three digit integer of format PF Where P is a digit representing the process ...
bool isQuark(const T &p)
PDG rule 2: Quarks and leptons are numbered consecutively starting from 1 and 11 respectively; to dot...
@ GG2H_GE2J_MJJ_0_350_PTH_0_60_PTHJJ_GT25
POOL::TEvent event(POOL::TEvent::kClassAccess)
Histo1DPtr m_hist_deltay_jj
@ VH_DECAY_IDENTIFICATION
failed to identify associated vector boson decay products
@ GG2H_GE2J_MJJ_0_350_PTH_0_60
Histo1DPtr m_hist_stage1_2_pTjet25
bool ChLeptonDecay(const Particle &p) const
Return true if particle decays to charged leptons.
HTXS::Stage1_2::Category getStage1_2_Category(const HTXS::HiggsProdMode prodMode, const Particle &higgs, const Jets &jets, const Particle &V) const
Stage-1.2 categorization.
HTXS::HiggsProdMode m_HiggsProdMode
bool isChLepton(const T &p)
APID: the fourth generation leptons are leptons.
Particle getLastInstance(const Particle &ptcl) const
follow a "propagating" particle and return its last instance
HTXS::Stage1::Category getStage1Category(const HTXS::HiggsProdMode prodMode, const Particle &higgs, const Jets &jets, const Particle &V) const
Stage-1 categorization.
@ MOMENTUM_CONSERVATION
failed momentum conservation
@ QQ2HQQ_GE2J_MJJ_350_700_PTH_GT200_PTHJJ_0_25
Histo1DPtr m_hist_stage1_2_pTjet30
Histo1DPtr m_hist_y_Higgs
std::string to_string(const DetectorType &type)
@ HIGGS_IDENTIFICATION
failed to identify Higgs boson
bool hasChild(HepMC::ConstGenParticlePtr ptcl, int pdgID) const
Checks whether the input particle has a child with a given PDGID.
HTXS::Stage0::Category getStage0Category(const HTXS::HiggsProdMode prodMode, const Particle &higgs, const Particle &V) const
Stage-0 HTXS categorization.
@ GG2HLL_PTV_150_250_GE1J
@ GG2H_GE2J_MJJ_0_350_PTH_0_60_PTHJJ_0_25
std::string getenv(const std::string &variableName)
get an environment variable
@ QQ2HQQ_GE2J_MJJ_0_60_PTHJJ_0_25
@ GG2H_PTH_200_300_PTHJoverPTH_GT15
@ QQ2HQQ_GE2J_MJJ_350_700_PTH_0_200_PTHJJ_0_25
@ HS_VTX_IDENTIFICATION
failed to identify hard scatter vertex
Histo1DPtr m_hist_pT_jet1
Histo1DPtr m_hist_stage1_pTjet25
@ SUCCESS
successful classification
int vbfTopology(const Jets &jets, const Particle &higgs) const
VBF topolog selection 0 = fail loose selction: m_jj > 400 GeV and Dy_jj > 2.8 1 pass loose,...
bool originateFrom(const Particle &p, const Particles &ptcls) const
Whether particle p originate from any of the ptcls.
HTXS::Stage1_2_Fine::Category getStage1_2_Fine_Category(const HTXS::HiggsProdMode prodMode, const Particle &higgs, const Jets &jets, const Particle &V) const
Stage-1.2_Fine categorization.
int vbfTopology_Stage1_2_Fine(const Jets &jets, const Particle &higgs) const
VBF topology selection for Stage1_2 0 = fail loose selection: m_jj > 350 GeV 1 pass loose,...
int getBin(double x, const std::vector< double > &bins) const
Return bin index of x given the provided bin edges. 0=first bin, -1=underflow bin.
Histo1DPtr m_hist_pT_Higgs
GenVertex * signal_process_vertex(const GenEvent *e)