1 #ifndef SimDataFormats_GeneratorProducts_HiggsTemplateCrossSections_h 2 #define SimDataFormats_GeneratorProducts_HiggsTemplateCrossSections_h 179 namespace Stage1_1_Fine {
367 namespace Stage1_2_Fine {
498 template <
class vec4>
500 return TLV(
p.px(),
p.py(),
p.pz(),
p.E());
503 template <
class Vvec4>
506 for (
const auto &
jet : rivet_jets)
552 template <
class category>
555 cat.prodMode = htxs_cat_rivet.prodMode;
556 cat.errorCode = htxs_cat_rivet.errorCode;
559 cat.p4decay_higgs =
MakeTLV(htxs_cat_rivet.p4decay_higgs);
560 cat.p4decay_V =
MakeTLV(htxs_cat_rivet.p4decay_V);
563 cat.stage0_cat = htxs_cat_rivet.stage0_cat;
564 cat.stage1_cat_pTjet25GeV = htxs_cat_rivet.stage1_cat_pTjet25GeV;
565 cat.stage1_cat_pTjet30GeV = htxs_cat_rivet.stage1_cat_pTjet30GeV;
566 cat.stage1_1_cat_pTjet25GeV = htxs_cat_rivet.stage1_1_cat_pTjet25GeV;
567 cat.stage1_1_cat_pTjet30GeV = htxs_cat_rivet.stage1_1_cat_pTjet30GeV;
568 cat.stage1_1_fine_cat_pTjet25GeV = htxs_cat_rivet.stage1_1_fine_cat_pTjet25GeV;
569 cat.stage1_1_fine_cat_pTjet30GeV = htxs_cat_rivet.stage1_1_fine_cat_pTjet30GeV;
570 cat.stage1_2_cat_pTjet25GeV = htxs_cat_rivet.stage1_2_cat_pTjet25GeV;
571 cat.stage1_2_cat_pTjet30GeV = htxs_cat_rivet.stage1_2_cat_pTjet30GeV;
572 cat.stage1_2_fine_cat_pTjet25GeV = htxs_cat_rivet.stage1_2_fine_cat_pTjet25GeV;
573 cat.stage1_2_fine_cat_pTjet30GeV = htxs_cat_rivet.stage1_2_fine_cat_pTjet30GeV;
574 cat.isZ2vvDecay = htxs_cat_rivet.isZ2vvDecay;
576 cat.V_pt = htxs_cat_rivet.V_pt;
577 cat.Mjj = htxs_cat_rivet.Mjj;
578 cat.ptHjj = htxs_cat_rivet.ptHjj;
579 cat.dPhijj = htxs_cat_rivet.dPhijj;
586 int P = (
int)(stage1 / 100);
587 int F = (
int)(stage1 % 100);
595 int fwdH =
F == 0 ? 0 : 1;
596 return (49 + 2 * (tH - 1) + fwdH);
601 std::vector<int> pMode_offset = {0, 0, 13, 19, 25};
603 return (
F + pMode_offset[prodMode]);
607 std::vector<int> catP_offset = {0, 1, 0, 31, 36, 41, 45, 47};
608 return (
F + catP_offset[
P]);
613 bool jets_pT25 =
false) {
620 int P = (
int)(stage1 / 100);
621 int F = (
int)(stage1 % 100);
622 std::vector<int>
offset{0, 1, 13, 19, 24, 29, 33, 35, 37, 39};
632 int P = (
int)(stage1_2 / 100);
633 int F = (
int)(stage1_2 % 100);
641 int fwdH =
F == 0 ? 0 : 1;
642 return (94 + 2 * (tH - 1) + fwdH);
647 std::vector<int> pMode_offset = {0, 0, 35, 46, 57};
649 return (
F + pMode_offset[prodMode]);
656 std::vector<int> catP_offset = {0, 1, 0, 68, 74, 80, 86, 92};
657 return (
F + catP_offset[
P]);
662 bool jets_pT25 =
false) {
670 int P = (
int)(stage1_2 / 100);
671 int F = (
int)(stage1_2 % 100);
673 std::vector<int>
offset{0, 1, 18, 29, 35, 41, 47, 53, 55, 57};
684 int P = (
int)(Stage1_2_Fine / 100);
685 int F = (
int)(Stage1_2_Fine % 100);
693 int fwdH =
F == 0 ? 0 : 1;
694 return (189 + 2 * (tH - 1) + fwdH);
699 std::vector<int> pMode_offset = {0, 0, 57, 82, 107};
701 return (
F + pMode_offset[prodMode]);
708 std::vector<int> catP_offset = {0, 1, 0, 132, 148, 164, 180, 187};
709 return (
F + catP_offset[
P]);
714 bool jets_pT25 =
false) {
722 int P = (
int)(Stage1_2_Fine / 100);
723 int F = (
int)(Stage1_2_Fine % 100);
724 std::vector<int>
offset{0, 1, 29, 54, 70, 86, 102, 109, 111, 113};
733 #ifdef RIVET_Particle_HH 742 struct HiggsClassification {
746 Rivet::Particle higgs;
750 Rivet::FourMomentum p4decay_higgs;
752 Rivet::FourMomentum p4decay_V;
778 bool isZ2vvDecay =
false;
failed to identify associated vector boson
ErrorCode
Error code: whether the classification was successful or failed.
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
successful classification
HTXS::Stage1_2_Fine::Category stage1_2_fine_cat_pTjet25GeV
int HTXSstage1_2_Fine_to_HTXSstage1_2_Fine_FineIndex(HTXS::Stage1_2_Fine::Category Stage1_2_Fine, HiggsProdMode prodMode, tH_type tH)
stage1_1_fine_cat_pTjet25GeV
failed to identify Higgs boson decay products
HTXS::Stage1::Category stage1_cat_pTjet25GeV
HiggsProdMode
Higgs production modes, corresponding to input sample.
HTXS::Stage1_2::Category stage1_2_cat_pTjet30GeV
HTXS::Stage1_1_Fine::Category stage1_1_fine_cat_pTjet30GeV
stage1_1_fine_cat_pTjet30GeV
HTXS::Stage0::Category stage0_cat
HTXS::Stage1_1_Fine::Category stage1_1_fine_cat_pTjet25GeV
uint32_t T const *__restrict__ uint32_t const *__restrict__ int32_t int Histo::index_type cudaStream_t V
failed momentum conservation
int HTXSstage1_to_HTXSstage1FineIndex(HTXS::Stage1::Category stage1, HiggsProdMode prodMode, tH_type tH)
tH_type
Additional identifier flag for TH production modes.
stage1_2_fine_cat_pTjet25GeV
int HTXSstage1_to_index(HTXS::Stage1::Category stage1)
Higgs Template Cross Section namespace.
failed to identify associated vector boson decay products
TLV MakeTLV(vec4 const p)
math::XYZTLorentzVectorD TLV
HTXS::Stage1::Category stage1_cat_pTjet30GeV
HTXS::Stage1_1::Category stage1_1_cat_pTjet25GeV
failed to identify Higgs boson
int HTXSstage1_2_to_HTXSstage1_2_FineIndex(HTXS::Stage1_2::Category stage1_2, HiggsProdMode prodMode, tH_type tH)
HTXS::Stage1_2::Category stage1_2_cat_pTjet25GeV
stage1_2_fine_cat_pTjet30GeV
HTXS::HiggsProdMode prodMode
failed to identify hard scatter vertex
std::pair< OmniClusterRef, TrackingParticleRef > P
int HTXSstage1_2_Fine_to_index(HTXS::Stage1_2_Fine::Category Stage1_2_Fine)
HTXS::Stage1_1::Category stage1_1_cat_pTjet30GeV
HTXS::Stage1_2_Fine::Category stage1_2_fine_cat_pTjet30GeV
HTXS::HiggsClassification Rivet2Root(category const &htxs_cat_rivet)
int HTXSstage1_2_to_index(HTXS::Stage1_2::Category stage1_2)
HTXS::ErrorCode errorCode
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
TLVs MakeTLVs(Vvec4 const &rivet_jets)
production mode not defined
failed to identify top decay