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)
547 template <
class category>
550 cat.prodMode = htxs_cat_rivet.prodMode;
551 cat.errorCode = htxs_cat_rivet.errorCode;
554 cat.p4decay_higgs =
MakeTLV(htxs_cat_rivet.p4decay_higgs);
555 cat.p4decay_V =
MakeTLV(htxs_cat_rivet.p4decay_V);
558 cat.stage0_cat = htxs_cat_rivet.stage0_cat;
559 cat.stage1_cat_pTjet25GeV = htxs_cat_rivet.stage1_cat_pTjet25GeV;
560 cat.stage1_cat_pTjet30GeV = htxs_cat_rivet.stage1_cat_pTjet30GeV;
561 cat.stage1_1_cat_pTjet25GeV = htxs_cat_rivet.stage1_1_cat_pTjet25GeV;
562 cat.stage1_1_cat_pTjet30GeV = htxs_cat_rivet.stage1_1_cat_pTjet30GeV;
563 cat.stage1_1_fine_cat_pTjet25GeV = htxs_cat_rivet.stage1_1_fine_cat_pTjet25GeV;
564 cat.stage1_1_fine_cat_pTjet30GeV = htxs_cat_rivet.stage1_1_fine_cat_pTjet30GeV;
565 cat.stage1_2_cat_pTjet25GeV = htxs_cat_rivet.stage1_2_cat_pTjet25GeV;
566 cat.stage1_2_cat_pTjet30GeV = htxs_cat_rivet.stage1_2_cat_pTjet30GeV;
567 cat.stage1_2_fine_cat_pTjet25GeV = htxs_cat_rivet.stage1_2_fine_cat_pTjet25GeV;
568 cat.stage1_2_fine_cat_pTjet30GeV = htxs_cat_rivet.stage1_2_fine_cat_pTjet30GeV;
569 cat.isZ2vvDecay = htxs_cat_rivet.isZ2vvDecay;
576 int P = (
int)(stage1 / 100);
577 int F = (
int)(stage1 % 100);
585 int fwdH =
F == 0 ? 0 : 1;
586 return (49 + 2 * (tH - 1) + fwdH);
591 std::vector<int> pMode_offset = {0, 0, 13, 19, 25};
593 return (
F + pMode_offset[prodMode]);
597 std::vector<int> catP_offset = {0, 1, 0, 31, 36, 41, 45, 47};
598 return (
F + catP_offset[
P]);
603 bool jets_pT25 =
false) {
610 int P = (
int)(stage1 / 100);
611 int F = (
int)(stage1 % 100);
612 std::vector<int>
offset{0, 1, 13, 19, 24, 29, 33, 35, 37, 39};
622 int P = (
int)(stage1_2 / 100);
623 int F = (
int)(stage1_2 % 100);
631 int fwdH =
F == 0 ? 0 : 1;
632 return (94 + 2 * (tH - 1) + fwdH);
637 std::vector<int> pMode_offset = {0, 0, 35, 46, 57};
639 return (
F + pMode_offset[prodMode]);
646 std::vector<int> catP_offset = {0, 1, 0, 68, 74, 80, 86, 92};
647 return (
F + catP_offset[
P]);
652 bool jets_pT25 =
false) {
660 int P = (
int)(stage1_2 / 100);
661 int F = (
int)(stage1_2 % 100);
663 std::vector<int>
offset{0, 1, 18, 29, 35, 41, 47, 53, 55, 57};
674 int P = (
int)(Stage1_2_Fine / 100);
675 int F = (
int)(Stage1_2_Fine % 100);
683 int fwdH =
F == 0 ? 0 : 1;
684 return (189 + 2 * (tH - 1) + fwdH);
689 std::vector<int> pMode_offset = {0, 0, 57, 82, 107};
691 return (
F + pMode_offset[prodMode]);
698 std::vector<int> catP_offset = {0, 1, 0, 132, 148, 164, 180, 187};
699 return (
F + catP_offset[
P]);
704 bool jets_pT25 =
false) {
712 int P = (
int)(Stage1_2_Fine / 100);
713 int F = (
int)(Stage1_2_Fine % 100);
714 std::vector<int>
offset{0, 1, 29, 54, 70, 86, 102, 109, 111, 113};
723 #ifdef RIVET_Particle_HH
732 struct HiggsClassification {
736 Rivet::Particle higgs;
740 Rivet::FourMomentum p4decay_higgs;
742 Rivet::FourMomentum p4decay_V;