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;
768 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