File indexing completed on 2023-10-25 10:03:50
0001 #ifndef SimDataFormats_GeneratorProducts_HiggsTemplateCrossSections_h
0002 #define SimDataFormats_GeneratorProducts_HiggsTemplateCrossSections_h
0003
0004 #include "DataFormats/Math/interface/LorentzVector.h"
0005 #include <vector>
0006
0007
0008 namespace HTXS {
0009
0010
0011 enum ErrorCode {
0012 UNDEFINED = -99,
0013 SUCCESS = 0,
0014 PRODMODE_DEFINED = 1,
0015 MOMENTUM_CONSERVATION = 2,
0016 HIGGS_IDENTIFICATION = 3,
0017 HIGGS_DECAY_IDENTIFICATION = 4,
0018 HS_VTX_IDENTIFICATION = 5,
0019 VH_IDENTIFICATION = 6,
0020 VH_DECAY_IDENTIFICATION = 7,
0021 TOP_W_IDENTIFICATION = 8
0022 };
0023
0024
0025 enum HiggsProdMode { UNKNOWN = 0, GGF = 1, VBF = 2, WH = 3, QQ2ZH = 4, GG2ZH = 5, TTH = 6, BBH = 7, TH = 8 };
0026
0027
0028 enum tH_type { noTH = 0, THQB = 1, TWH = 2 };
0029
0030
0031
0032
0033
0034
0035 namespace Stage0 {
0036
0037 enum Category {
0038 UNKNOWN = 0,
0039 GG2H_FWDH = 10,
0040 GG2H = 11,
0041 VBF_FWDH = 20,
0042 VBF = 21,
0043 VH2HQQ_FWDH = 22,
0044 VH2HQQ = 23,
0045 QQ2HLNU_FWDH = 30,
0046 QQ2HLNU = 31,
0047 QQ2HLL_FWDH = 40,
0048 QQ2HLL = 41,
0049 GG2HLL_FWDH = 50,
0050 GG2HLL = 51,
0051 TTH_FWDH = 60,
0052 TTH = 61,
0053 BBH_FWDH = 70,
0054 BBH = 71,
0055 TH_FWDH = 80,
0056 TH = 81
0057 };
0058 }
0059
0060
0061
0062
0063
0064 namespace Stage1 {
0065 enum Category {
0066 UNKNOWN = 0,
0067
0068 GG2H_FWDH = 100,
0069 GG2H_VBFTOPO_JET3VETO = 101,
0070 GG2H_VBFTOPO_JET3 = 102,
0071 GG2H_0J = 103,
0072 GG2H_1J_PTH_0_60 = 104,
0073 GG2H_1J_PTH_60_120 = 105,
0074 GG2H_1J_PTH_120_200 = 106,
0075 GG2H_1J_PTH_GT200 = 107,
0076 GG2H_GE2J_PTH_0_60 = 108,
0077 GG2H_GE2J_PTH_60_120 = 109,
0078 GG2H_GE2J_PTH_120_200 = 110,
0079 GG2H_GE2J_PTH_GT200 = 111,
0080
0081 QQ2HQQ_FWDH = 200,
0082 QQ2HQQ_VBFTOPO_JET3VETO = 201,
0083 QQ2HQQ_VBFTOPO_JET3 = 202,
0084 QQ2HQQ_VH2JET = 203,
0085 QQ2HQQ_REST = 204,
0086 QQ2HQQ_PTJET1_GT200 = 205,
0087
0088 QQ2HLNU_FWDH = 300,
0089 QQ2HLNU_PTV_0_150 = 301,
0090 QQ2HLNU_PTV_150_250_0J = 302,
0091 QQ2HLNU_PTV_150_250_GE1J = 303,
0092 QQ2HLNU_PTV_GT250 = 304,
0093
0094 QQ2HLL_FWDH = 400,
0095 QQ2HLL_PTV_0_150 = 401,
0096 QQ2HLL_PTV_150_250_0J = 402,
0097 QQ2HLL_PTV_150_250_GE1J = 403,
0098 QQ2HLL_PTV_GT250 = 404,
0099
0100 GG2HLL_FWDH = 500,
0101 GG2HLL_PTV_0_150 = 501,
0102 GG2HLL_PTV_GT150_0J = 502,
0103 GG2HLL_PTV_GT150_GE1J = 503,
0104
0105 TTH_FWDH = 600,
0106 TTH = 601,
0107
0108 BBH_FWDH = 700,
0109 BBH = 701,
0110
0111 TH_FWDH = 800,
0112 TH = 801
0113 };
0114 }
0115
0116 namespace Stage1_1 {
0117 enum Category {
0118 UNKNOWN = 0,
0119
0120 GG2H_FWDH = 100,
0121 GG2H_PTH_GT200 = 101,
0122 GG2H_0J_PTH_0_10 = 102,
0123 GG2H_0J_PTH_GT10 = 103,
0124 GG2H_1J_PTH_0_60 = 104,
0125 GG2H_1J_PTH_60_120 = 105,
0126 GG2H_1J_PTH_120_200 = 106,
0127 GG2H_GE2J_MJJ_0_350_PTH_0_60 = 107,
0128 GG2H_GE2J_MJJ_0_350_PTH_60_120 = 108,
0129 GG2H_GE2J_MJJ_0_350_PTH_120_200 = 109,
0130 GG2H_MJJ_350_700_PTHJJ_0_25 = 110,
0131 GG2H_MJJ_350_700_PTHJJ_GT25 = 111,
0132 GG2H_MJJ_GT700_PTHJJ_0_25 = 112,
0133 GG2H_MJJ_GT700_PTHJJ_GT25 = 113,
0134
0135 QQ2HQQ_FWDH = 200,
0136 QQ2HQQ_0J = 201,
0137 QQ2HQQ_1J = 202,
0138 QQ2HQQ_MJJ_0_60 = 203,
0139 QQ2HQQ_MJJ_60_120 = 204,
0140 QQ2HQQ_MJJ_120_350 = 205,
0141 QQ2HQQ_MJJ_GT350_PTH_GT200 = 206,
0142 QQ2HQQ_MJJ_350_700_PTHJJ_0_25 = 207,
0143 QQ2HQQ_MJJ_350_700_PTHJJ_GT25 = 208,
0144 QQ2HQQ_MJJ_GT700_PTHJJ_0_25 = 209,
0145 QQ2HQQ_MJJ_GT700_PTHJJ_GT25 = 210,
0146
0147 QQ2HLNU_FWDH = 300,
0148 QQ2HLNU_PTV_0_75 = 301,
0149 QQ2HLNU_PTV_75_150 = 302,
0150 QQ2HLNU_PTV_150_250_0J = 303,
0151 QQ2HLNU_PTV_150_250_GE1J = 304,
0152 QQ2HLNU_PTV_GT250 = 305,
0153
0154 QQ2HLL_FWDH = 400,
0155 QQ2HLL_PTV_0_75 = 401,
0156 QQ2HLL_PTV_75_150 = 402,
0157 QQ2HLL_PTV_150_250_0J = 403,
0158 QQ2HLL_PTV_150_250_GE1J = 404,
0159 QQ2HLL_PTV_GT250 = 405,
0160
0161 GG2HLL_FWDH = 500,
0162 GG2HLL_PTV_0_75 = 501,
0163 GG2HLL_PTV_75_150 = 502,
0164 GG2HLL_PTV_150_250_0J = 503,
0165 GG2HLL_PTV_150_250_GE1J = 504,
0166 GG2HLL_PTV_GT250 = 505,
0167
0168 TTH_FWDH = 600,
0169 TTH = 601,
0170
0171 BBH_FWDH = 700,
0172 BBH = 701,
0173
0174 TH_FWDH = 800,
0175 TH = 801
0176 };
0177 }
0178
0179 namespace Stage1_1_Fine {
0180 enum Category {
0181 UNKNOWN = 0,
0182
0183 GG2H_FWDH = 100,
0184 GG2H_PTH_GT200 = 101,
0185 GG2H_0J_PTH_0_10 = 102,
0186 GG2H_0J_PTH_GT10 = 103,
0187 GG2H_1J_PTH_0_60 = 104,
0188 GG2H_1J_PTH_60_120 = 105,
0189 GG2H_1J_PTH_120_200 = 106,
0190 GG2H_GE2J_MJJ_0_350_PTH_0_60_PTHJJ_0_25 = 107,
0191 GG2H_GE2J_MJJ_0_350_PTH_60_120_PTHJJ_0_25 = 108,
0192 GG2H_GE2J_MJJ_0_350_PTH_120_200_PTHJJ_0_25 = 109,
0193 GG2H_GE2J_MJJ_0_350_PTH_0_60_PTHJJ_GT25 = 110,
0194 GG2H_GE2J_MJJ_0_350_PTH_60_120_PTHJJ_GT25 = 111,
0195 GG2H_GE2J_MJJ_0_350_PTH_120_200_PTHJJ_GT25 = 112,
0196 GG2H_MJJ_350_700_PTHJJ_0_25 = 113,
0197 GG2H_MJJ_350_700_PTHJJ_GT25 = 114,
0198 GG2H_MJJ_700_1000_PTHJJ_0_25 = 115,
0199 GG2H_MJJ_700_1000_PTHJJ_GT25 = 116,
0200 GG2H_MJJ_1000_1500_PTHJJ_0_25 = 117,
0201 GG2H_MJJ_1000_1500_PTHJJ_GT25 = 118,
0202 GG2H_MJJ_GT1500_PTHJJ_0_25 = 119,
0203 GG2H_MJJ_GT1500_PTHJJ_GT25 = 120,
0204
0205 QQ2HQQ_FWDH = 200,
0206 QQ2HQQ_0J = 201,
0207 QQ2HQQ_1J = 202,
0208 QQ2HQQ_MJJ_0_60_PTHJJ_0_25 = 203,
0209 QQ2HQQ_MJJ_60_120_PTHJJ_0_25 = 204,
0210 QQ2HQQ_MJJ_120_350_PTHJJ_0_25 = 205,
0211 QQ2HQQ_MJJ_0_60_PTHJJ_GT25 = 206,
0212 QQ2HQQ_MJJ_60_120_PTHJJ_GT25 = 207,
0213 QQ2HQQ_MJJ_120_350_PTHJJ_GT25 = 208,
0214 QQ2HQQ_MJJ_350_700_PTHJJ_0_25 = 209,
0215 QQ2HQQ_MJJ_350_700_PTHJJ_GT25 = 210,
0216 QQ2HQQ_MJJ_700_1000_PTHJJ_0_25 = 211,
0217 QQ2HQQ_MJJ_700_1000_PTHJJ_GT25 = 212,
0218 QQ2HQQ_MJJ_1000_1500_PTHJJ_0_25 = 213,
0219 QQ2HQQ_MJJ_1000_1500_PTHJJ_GT25 = 214,
0220 QQ2HQQ_MJJ_GT1500_PTHJJ_0_25 = 215,
0221 QQ2HQQ_MJJ_GT1500_PTHJJ_GT25 = 216,
0222 QQ2HQQ_PTH_GT200_MJJ_350_700_PTHJJ_0_25 = 217,
0223 QQ2HQQ_PTH_GT200_MJJ_350_700_PTHJJ_GT25 = 218,
0224 QQ2HQQ_PTH_GT200_MJJ_700_1000_PTHJJ_0_25 = 219,
0225 QQ2HQQ_PTH_GT200_MJJ_700_1000_PTHJJ_GT25 = 220,
0226 QQ2HQQ_PTH_GT200_MJJ_1000_1500_PTHJJ_0_25 = 221,
0227 QQ2HQQ_PTH_GT200_MJJ_1000_1500_PTHJJ_GT25 = 222,
0228 QQ2HQQ_PTH_GT200_MJJ_GT1500_PTHJJ_0_25 = 223,
0229 QQ2HQQ_PTH_GT200_MJJ_GT1500_PTHJJ_GT25 = 224,
0230
0231 QQ2HLNU_FWDH = 300,
0232 QQ2HLNU_PTV_0_75_0J = 301,
0233 QQ2HLNU_PTV_75_150_0J = 302,
0234 QQ2HLNU_PTV_150_250_0J = 303,
0235 QQ2HLNU_PTV_250_400_0J = 304,
0236 QQ2HLNU_PTV_GT400_0J = 305,
0237 QQ2HLNU_PTV_0_75_1J = 306,
0238 QQ2HLNU_PTV_75_150_1J = 307,
0239 QQ2HLNU_PTV_150_250_1J = 308,
0240 QQ2HLNU_PTV_250_400_1J = 309,
0241 QQ2HLNU_PTV_GT400_1J = 310,
0242 QQ2HLNU_PTV_0_75_GE2J = 311,
0243 QQ2HLNU_PTV_75_150_GE2J = 312,
0244 QQ2HLNU_PTV_150_250_GE2J = 313,
0245 QQ2HLNU_PTV_250_400_GE2J = 314,
0246 QQ2HLNU_PTV_GT400_GE2J = 315,
0247
0248 QQ2HLL_FWDH = 400,
0249 QQ2HLL_PTV_0_75_0J = 401,
0250 QQ2HLL_PTV_75_150_0J = 402,
0251 QQ2HLL_PTV_150_250_0J = 403,
0252 QQ2HLL_PTV_250_400_0J = 404,
0253 QQ2HLL_PTV_GT400_0J = 405,
0254 QQ2HLL_PTV_0_75_1J = 406,
0255 QQ2HLL_PTV_75_150_1J = 407,
0256 QQ2HLL_PTV_150_250_1J = 408,
0257 QQ2HLL_PTV_250_400_1J = 409,
0258 QQ2HLL_PTV_GT400_1J = 410,
0259 QQ2HLL_PTV_0_75_GE2J = 411,
0260 QQ2HLL_PTV_75_150_GE2J = 412,
0261 QQ2HLL_PTV_150_250_GE2J = 413,
0262 QQ2HLL_PTV_250_400_GE2J = 414,
0263 QQ2HLL_PTV_GT400_GE2J = 415,
0264
0265 GG2HLL_FWDH = 500,
0266 GG2HLL_PTV_0_75_0J = 501,
0267 GG2HLL_PTV_75_150_0J = 502,
0268 GG2HLL_PTV_150_250_0J = 503,
0269 GG2HLL_PTV_250_400_0J = 504,
0270 GG2HLL_PTV_GT400_0J = 505,
0271 GG2HLL_PTV_0_75_1J = 506,
0272 GG2HLL_PTV_75_150_1J = 507,
0273 GG2HLL_PTV_150_250_1J = 508,
0274 GG2HLL_PTV_250_400_1J = 509,
0275 GG2HLL_PTV_GT400_1J = 510,
0276 GG2HLL_PTV_0_75_GE2J = 511,
0277 GG2HLL_PTV_75_150_GE2J = 512,
0278 GG2HLL_PTV_150_250_GE2J = 513,
0279 GG2HLL_PTV_250_400_GE2J = 514,
0280 GG2HLL_PTV_GT400_GE2J = 515,
0281
0282 TTH_FWDH = 600,
0283 TTH = 601,
0284
0285 BBH_FWDH = 700,
0286 BBH = 701,
0287
0288 TH_FWDH = 800,
0289 TH = 801
0290 };
0291 }
0292
0293
0294
0295
0296
0297 namespace Stage1_2 {
0298 enum Category {
0299 UNKNOWN = 0,
0300
0301 GG2H_FWDH = 100,
0302 GG2H_PTH_200_300 = 101,
0303 GG2H_PTH_300_450 = 102,
0304 GG2H_PTH_450_650 = 103,
0305 GG2H_PTH_GT650 = 104,
0306 GG2H_0J_PTH_0_10 = 105,
0307 GG2H_0J_PTH_GT10 = 106,
0308 GG2H_1J_PTH_0_60 = 107,
0309 GG2H_1J_PTH_60_120 = 108,
0310 GG2H_1J_PTH_120_200 = 109,
0311 GG2H_GE2J_MJJ_0_350_PTH_0_60 = 110,
0312 GG2H_GE2J_MJJ_0_350_PTH_60_120 = 111,
0313 GG2H_GE2J_MJJ_0_350_PTH_120_200 = 112,
0314 GG2H_GE2J_MJJ_350_700_PTH_0_200_PTHJJ_0_25 = 113,
0315 GG2H_GE2J_MJJ_350_700_PTH_0_200_PTHJJ_GT25 = 114,
0316 GG2H_GE2J_MJJ_GT700_PTH_0_200_PTHJJ_0_25 = 115,
0317 GG2H_GE2J_MJJ_GT700_PTH_0_200_PTHJJ_GT25 = 116,
0318
0319 QQ2HQQ_FWDH = 200,
0320 QQ2HQQ_0J = 201,
0321 QQ2HQQ_1J = 202,
0322 QQ2HQQ_GE2J_MJJ_0_60 = 203,
0323 QQ2HQQ_GE2J_MJJ_60_120 = 204,
0324 QQ2HQQ_GE2J_MJJ_120_350 = 205,
0325 QQ2HQQ_GE2J_MJJ_GT350_PTH_GT200 = 206,
0326 QQ2HQQ_GE2J_MJJ_350_700_PTH_0_200_PTHJJ_0_25 = 207,
0327 QQ2HQQ_GE2J_MJJ_350_700_PTH_0_200_PTHJJ_GT25 = 208,
0328 QQ2HQQ_GE2J_MJJ_GT700_PTH_0_200_PTHJJ_0_25 = 209,
0329 QQ2HQQ_GE2J_MJJ_GT700_PTH_0_200_PTHJJ_GT25 = 210,
0330
0331 QQ2HLNU_FWDH = 300,
0332 QQ2HLNU_PTV_0_75 = 301,
0333 QQ2HLNU_PTV_75_150 = 302,
0334 QQ2HLNU_PTV_150_250_0J = 303,
0335 QQ2HLNU_PTV_150_250_GE1J = 304,
0336 QQ2HLNU_PTV_GT250 = 305,
0337
0338 QQ2HLL_FWDH = 400,
0339 QQ2HLL_PTV_0_75 = 401,
0340 QQ2HLL_PTV_75_150 = 402,
0341 QQ2HLL_PTV_150_250_0J = 403,
0342 QQ2HLL_PTV_150_250_GE1J = 404,
0343 QQ2HLL_PTV_GT250 = 405,
0344
0345 GG2HLL_FWDH = 500,
0346 GG2HLL_PTV_0_75 = 501,
0347 GG2HLL_PTV_75_150 = 502,
0348 GG2HLL_PTV_150_250_0J = 503,
0349 GG2HLL_PTV_150_250_GE1J = 504,
0350 GG2HLL_PTV_GT250 = 505,
0351
0352 TTH_FWDH = 600,
0353 TTH_PTH_0_60 = 601,
0354 TTH_PTH_60_120 = 602,
0355 TTH_PTH_120_200 = 603,
0356 TTH_PTH_200_300 = 604,
0357 TTH_PTH_GT300 = 605,
0358
0359 BBH_FWDH = 700,
0360 BBH = 701,
0361
0362 TH_FWDH = 800,
0363 TH = 801
0364 };
0365 }
0366
0367 namespace Stage1_2_Fine {
0368 enum Category {
0369 UNKNOWN = 0,
0370
0371 GG2H_FWDH = 100,
0372 GG2H_PTH_200_300_PTHJoverPTH_0_15 = 101,
0373 GG2H_PTH_300_450_PTHJoverPTH_0_15 = 102,
0374 GG2H_PTH_450_650_PTHJoverPTH_0_15 = 103,
0375 GG2H_PTH_GT650_PTHJoverPTH_0_15 = 104,
0376 GG2H_PTH_200_300_PTHJoverPTH_GT15 = 105,
0377 GG2H_PTH_300_450_PTHJoverPTH_GT15 = 106,
0378 GG2H_PTH_450_650_PTHJoverPTH_GT15 = 107,
0379 GG2H_PTH_GT650_PTHJoverPTH_GT15 = 108,
0380 GG2H_0J_PTH_0_10 = 109,
0381 GG2H_0J_PTH_GT10 = 110,
0382 GG2H_1J_PTH_0_60 = 111,
0383 GG2H_1J_PTH_60_120 = 112,
0384 GG2H_1J_PTH_120_200 = 113,
0385 GG2H_GE2J_MJJ_0_350_PTH_0_60_PTHJJ_0_25 = 114,
0386 GG2H_GE2J_MJJ_0_350_PTH_60_120_PTHJJ_0_25 = 115,
0387 GG2H_GE2J_MJJ_0_350_PTH_120_200_PTHJJ_0_25 = 116,
0388 GG2H_GE2J_MJJ_0_350_PTH_0_60_PTHJJ_GT25 = 117,
0389 GG2H_GE2J_MJJ_0_350_PTH_60_120_PTHJJ_GT25 = 118,
0390 GG2H_GE2J_MJJ_0_350_PTH_120_200_PTHJJ_GT25 = 119,
0391 GG2H_GE2J_MJJ_350_700_PTH_0_200_PTHJJ_0_25 = 120,
0392 GG2H_GE2J_MJJ_350_700_PTH_0_200_PTHJJ_GT25 = 121,
0393 GG2H_GE2J_MJJ_700_1000_PTH_0_200_PTHJJ_0_25 = 122,
0394 GG2H_GE2J_MJJ_700_1000_PTH_0_200_PTHJJ_GT25 = 123,
0395 GG2H_GE2J_MJJ_1000_1500_PTH_0_200_PTHJJ_0_25 = 124,
0396 GG2H_GE2J_MJJ_1000_1500_PTH_0_200_PTHJJ_GT25 = 125,
0397 GG2H_GE2J_MJJ_GT1500_PTH_0_200_PTHJJ_0_25 = 126,
0398 GG2H_GE2J_MJJ_GT1500_PTH_0_200_PTHJJ_GT25 = 127,
0399
0400 QQ2HQQ_FWDH = 200,
0401 QQ2HQQ_0J = 201,
0402 QQ2HQQ_1J = 202,
0403 QQ2HQQ_GE2J_MJJ_0_60_PTHJJ_0_25 = 203,
0404 QQ2HQQ_GE2J_MJJ_60_120_PTHJJ_0_25 = 204,
0405 QQ2HQQ_GE2J_MJJ_120_350_PTHJJ_0_25 = 205,
0406 QQ2HQQ_GE2J_MJJ_0_60_PTHJJ_GT25 = 206,
0407 QQ2HQQ_GE2J_MJJ_60_120_PTHJJ_GT25 = 207,
0408 QQ2HQQ_GE2J_MJJ_120_350_PTHJJ_GT25 = 208,
0409 QQ2HQQ_GE2J_MJJ_350_700_PTH_0_200_PTHJJ_0_25 = 209,
0410 QQ2HQQ_GE2J_MJJ_350_700_PTH_0_200_PTHJJ_GT25 = 210,
0411 QQ2HQQ_GE2J_MJJ_700_1000_PTH_0_200_PTHJJ_0_25 = 211,
0412 QQ2HQQ_GE2J_MJJ_700_1000_PTH_0_200_PTHJJ_GT25 = 212,
0413 QQ2HQQ_GE2J_MJJ_1000_1500_PTH_0_200_PTHJJ_0_25 = 213,
0414 QQ2HQQ_GE2J_MJJ_1000_1500_PTH_0_200_PTHJJ_GT25 = 214,
0415 QQ2HQQ_GE2J_MJJ_GT1500_PTH_0_200_PTHJJ_0_25 = 215,
0416 QQ2HQQ_GE2J_MJJ_GT1500_PTH_0_200_PTHJJ_GT25 = 216,
0417 QQ2HQQ_GE2J_MJJ_350_700_PTH_GT200_PTHJJ_0_25 = 217,
0418 QQ2HQQ_GE2J_MJJ_350_700_PTH_GT200_PTHJJ_GT25 = 218,
0419 QQ2HQQ_GE2J_MJJ_700_1000_PTH_GT200_PTHJJ_0_25 = 219,
0420 QQ2HQQ_GE2J_MJJ_700_1000_PTH_GT200_PTHJJ_GT25 = 220,
0421 QQ2HQQ_GE2J_MJJ_1000_1500_PTH_GT200_PTHJJ_0_25 = 221,
0422 QQ2HQQ_GE2J_MJJ_1000_1500_PTH_GT200_PTHJJ_GT25 = 222,
0423 QQ2HQQ_GE2J_MJJ_GT1500_PTH_GT200_PTHJJ_0_25 = 223,
0424 QQ2HQQ_GE2J_MJJ_GT1500_PTH_GT200_PTHJJ_GT25 = 224,
0425
0426 QQ2HLNU_FWDH = 300,
0427 QQ2HLNU_PTV_0_75_0J = 301,
0428 QQ2HLNU_PTV_75_150_0J = 302,
0429 QQ2HLNU_PTV_150_250_0J = 303,
0430 QQ2HLNU_PTV_250_400_0J = 304,
0431 QQ2HLNU_PTV_GT400_0J = 305,
0432 QQ2HLNU_PTV_0_75_1J = 306,
0433 QQ2HLNU_PTV_75_150_1J = 307,
0434 QQ2HLNU_PTV_150_250_1J = 308,
0435 QQ2HLNU_PTV_250_400_1J = 309,
0436 QQ2HLNU_PTV_GT400_1J = 310,
0437 QQ2HLNU_PTV_0_75_GE2J = 311,
0438 QQ2HLNU_PTV_75_150_GE2J = 312,
0439 QQ2HLNU_PTV_150_250_GE2J = 313,
0440 QQ2HLNU_PTV_250_400_GE2J = 314,
0441 QQ2HLNU_PTV_GT400_GE2J = 315,
0442
0443 QQ2HLL_FWDH = 400,
0444 QQ2HLL_PTV_0_75_0J = 401,
0445 QQ2HLL_PTV_75_150_0J = 402,
0446 QQ2HLL_PTV_150_250_0J = 403,
0447 QQ2HLL_PTV_250_400_0J = 404,
0448 QQ2HLL_PTV_GT400_0J = 405,
0449 QQ2HLL_PTV_0_75_1J = 406,
0450 QQ2HLL_PTV_75_150_1J = 407,
0451 QQ2HLL_PTV_150_250_1J = 408,
0452 QQ2HLL_PTV_250_400_1J = 409,
0453 QQ2HLL_PTV_GT400_1J = 410,
0454 QQ2HLL_PTV_0_75_GE2J = 411,
0455 QQ2HLL_PTV_75_150_GE2J = 412,
0456 QQ2HLL_PTV_150_250_GE2J = 413,
0457 QQ2HLL_PTV_250_400_GE2J = 414,
0458 QQ2HLL_PTV_GT400_GE2J = 415,
0459
0460 GG2HLL_FWDH = 500,
0461 GG2HLL_PTV_0_75_0J = 501,
0462 GG2HLL_PTV_75_150_0J = 502,
0463 GG2HLL_PTV_150_250_0J = 503,
0464 GG2HLL_PTV_250_400_0J = 504,
0465 GG2HLL_PTV_GT400_0J = 505,
0466 GG2HLL_PTV_0_75_1J = 506,
0467 GG2HLL_PTV_75_150_1J = 507,
0468 GG2HLL_PTV_150_250_1J = 508,
0469 GG2HLL_PTV_250_400_1J = 509,
0470 GG2HLL_PTV_GT400_1J = 510,
0471 GG2HLL_PTV_0_75_GE2J = 511,
0472 GG2HLL_PTV_75_150_GE2J = 512,
0473 GG2HLL_PTV_150_250_GE2J = 513,
0474 GG2HLL_PTV_250_400_GE2J = 514,
0475 GG2HLL_PTV_GT400_GE2J = 515,
0476
0477 TTH_FWDH = 600,
0478 TTH_PTH_0_60 = 601,
0479 TTH_PTH_60_120 = 602,
0480 TTH_PTH_120_200 = 603,
0481 TTH_PTH_200_300 = 604,
0482 TTH_PTH_300_450 = 605,
0483 TTH_PTH_GT450 = 606,
0484
0485 BBH_FWDH = 700,
0486 BBH = 701,
0487
0488 TH_FWDH = 800,
0489 TH = 801
0490 };
0491 }
0492
0493
0494
0495 typedef math::XYZTLorentzVectorD TLV;
0496 typedef std::vector<TLV> TLVs;
0497
0498 template <class vec4>
0499 TLV MakeTLV(vec4 const p) {
0500 return TLV(p.px(), p.py(), p.pz(), p.E());
0501 }
0502
0503 template <class Vvec4>
0504 inline TLVs MakeTLVs(Vvec4 const &rivet_jets) {
0505 TLVs jets;
0506 for (const auto &jet : rivet_jets)
0507 jets.push_back(MakeTLV(jet));
0508 return jets;
0509 }
0510
0511
0512
0513
0514 struct HiggsClassification {
0515
0516 HTXS::HiggsProdMode prodMode;
0517
0518 TLV higgs;
0519
0520 TLV p4decay_higgs;
0521
0522 TLV V;
0523
0524 TLV p4decay_V;
0525
0526
0527 TLVs jets25, jets30;
0528
0529
0530 HTXS::Stage0::Category stage0_cat;
0531 HTXS::Stage1::Category stage1_cat_pTjet25GeV;
0532 HTXS::Stage1::Category stage1_cat_pTjet30GeV;
0533 HTXS::Stage1_1::Category stage1_1_cat_pTjet25GeV;
0534 HTXS::Stage1_1::Category stage1_1_cat_pTjet30GeV;
0535 HTXS::Stage1_1_Fine::Category stage1_1_fine_cat_pTjet25GeV;
0536 HTXS::Stage1_1_Fine::Category stage1_1_fine_cat_pTjet30GeV;
0537 HTXS::Stage1_2::Category stage1_2_cat_pTjet25GeV;
0538 HTXS::Stage1_2::Category stage1_2_cat_pTjet30GeV;
0539 HTXS::Stage1_2_Fine::Category stage1_2_fine_cat_pTjet25GeV;
0540 HTXS::Stage1_2_Fine::Category stage1_2_fine_cat_pTjet30GeV;
0541
0542 bool isZ2vvDecay = false;
0543
0544 HTXS::ErrorCode errorCode;
0545 };
0546
0547 template <class category>
0548 inline HTXS::HiggsClassification Rivet2Root(category const &htxs_cat_rivet) {
0549 HTXS::HiggsClassification cat;
0550 cat.prodMode = htxs_cat_rivet.prodMode;
0551 cat.errorCode = htxs_cat_rivet.errorCode;
0552 cat.higgs = MakeTLV(htxs_cat_rivet.higgs);
0553 cat.V = MakeTLV(htxs_cat_rivet.V);
0554 cat.p4decay_higgs = MakeTLV(htxs_cat_rivet.p4decay_higgs);
0555 cat.p4decay_V = MakeTLV(htxs_cat_rivet.p4decay_V);
0556 cat.jets25 = MakeTLVs(htxs_cat_rivet.jets25);
0557 cat.jets30 = MakeTLVs(htxs_cat_rivet.jets30);
0558 cat.stage0_cat = htxs_cat_rivet.stage0_cat;
0559 cat.stage1_cat_pTjet25GeV = htxs_cat_rivet.stage1_cat_pTjet25GeV;
0560 cat.stage1_cat_pTjet30GeV = htxs_cat_rivet.stage1_cat_pTjet30GeV;
0561 cat.stage1_1_cat_pTjet25GeV = htxs_cat_rivet.stage1_1_cat_pTjet25GeV;
0562 cat.stage1_1_cat_pTjet30GeV = htxs_cat_rivet.stage1_1_cat_pTjet30GeV;
0563 cat.stage1_1_fine_cat_pTjet25GeV = htxs_cat_rivet.stage1_1_fine_cat_pTjet25GeV;
0564 cat.stage1_1_fine_cat_pTjet30GeV = htxs_cat_rivet.stage1_1_fine_cat_pTjet30GeV;
0565 cat.stage1_2_cat_pTjet25GeV = htxs_cat_rivet.stage1_2_cat_pTjet25GeV;
0566 cat.stage1_2_cat_pTjet30GeV = htxs_cat_rivet.stage1_2_cat_pTjet30GeV;
0567 cat.stage1_2_fine_cat_pTjet25GeV = htxs_cat_rivet.stage1_2_fine_cat_pTjet25GeV;
0568 cat.stage1_2_fine_cat_pTjet30GeV = htxs_cat_rivet.stage1_2_fine_cat_pTjet30GeV;
0569 cat.isZ2vvDecay = htxs_cat_rivet.isZ2vvDecay;
0570 return cat;
0571 }
0572
0573 inline int HTXSstage1_to_HTXSstage1FineIndex(HTXS::Stage1::Category stage1, HiggsProdMode prodMode, tH_type tH) {
0574 if (stage1 == HTXS::Stage1::Category::UNKNOWN)
0575 return 0;
0576 int P = (int)(stage1 / 100);
0577 int F = (int)(stage1 % 100);
0578
0579 if (prodMode == HiggsProdMode::TH) {
0580
0581
0582 if (tH == tH_type::noTH)
0583 return 0;
0584
0585 int fwdH = F == 0 ? 0 : 1;
0586 return (49 + 2 * (tH - 1) + fwdH);
0587 }
0588
0589
0590
0591 std::vector<int> pMode_offset = {0, 0, 13, 19, 25};
0592 if (P == 2)
0593 return (F + pMode_offset[prodMode]);
0594
0595
0596
0597 std::vector<int> catP_offset = {0, 1, 0, 31, 36, 41, 45, 47};
0598 return (F + catP_offset[P]);
0599 }
0600
0601 inline int HTXSstage1_to_HTXSstage1FineIndex(const HiggsClassification &stxs,
0602 tH_type tH = noTH,
0603 bool jets_pT25 = false) {
0604 HTXS::Stage1::Category stage1 = jets_pT25 == false ? stxs.stage1_cat_pTjet30GeV : stxs.stage1_cat_pTjet25GeV;
0605 return HTXSstage1_to_HTXSstage1FineIndex(stage1, stxs.prodMode, tH);
0606 }
0607
0608 inline int HTXSstage1_to_index(HTXS::Stage1::Category stage1) {
0609
0610 int P = (int)(stage1 / 100);
0611 int F = (int)(stage1 % 100);
0612 std::vector<int> offset{0, 1, 13, 19, 24, 29, 33, 35, 37, 39};
0613
0614 return (F + offset[P]);
0615 }
0616
0617 inline int HTXSstage1_2_to_HTXSstage1_2_FineIndex(HTXS::Stage1_2::Category stage1_2,
0618 HiggsProdMode prodMode,
0619 tH_type tH) {
0620 if (stage1_2 == HTXS::Stage1_2::Category::UNKNOWN)
0621 return 0;
0622 int P = (int)(stage1_2 / 100);
0623 int F = (int)(stage1_2 % 100);
0624
0625 if (prodMode == HiggsProdMode::TH) {
0626
0627
0628 if (tH == tH_type::noTH)
0629 return 0;
0630
0631 int fwdH = F == 0 ? 0 : 1;
0632 return (94 + 2 * (tH - 1) + fwdH);
0633 }
0634
0635
0636
0637 std::vector<int> pMode_offset = {0, 0, 35, 46, 57};
0638 if (P == 2)
0639 return (F + pMode_offset[prodMode]);
0640
0641 if (prodMode == HiggsProdMode::GG2ZH && P == 1)
0642 return F + 18;
0643
0644
0645
0646 std::vector<int> catP_offset = {0, 1, 0, 68, 74, 80, 86, 92};
0647 return (F + catP_offset[P]);
0648 }
0649
0650 inline int HTXSstage1_2_to_HTXSstage1_2_FineIndex(const HiggsClassification &stxs,
0651 tH_type tH = noTH,
0652 bool jets_pT25 = false) {
0653 HTXS::Stage1_2::Category stage1_2 =
0654 jets_pT25 == false ? stxs.stage1_2_cat_pTjet30GeV : stxs.stage1_2_cat_pTjet25GeV;
0655 return HTXSstage1_2_to_HTXSstage1_2_FineIndex(stage1_2, stxs.prodMode, tH);
0656 }
0657
0658 inline int HTXSstage1_2_to_index(HTXS::Stage1_2::Category stage1_2) {
0659
0660 int P = (int)(stage1_2 / 100);
0661 int F = (int)(stage1_2 % 100);
0662
0663 std::vector<int> offset{0, 1, 18, 29, 35, 41, 47, 53, 55, 57};
0664
0665 return (F + offset[P]);
0666 }
0667
0668
0669 inline int HTXSstage1_2_Fine_to_HTXSstage1_2_Fine_FineIndex(HTXS::Stage1_2_Fine::Category Stage1_2_Fine,
0670 HiggsProdMode prodMode,
0671 tH_type tH) {
0672 if (Stage1_2_Fine == HTXS::Stage1_2_Fine::Category::UNKNOWN)
0673 return 0;
0674 int P = (int)(Stage1_2_Fine / 100);
0675 int F = (int)(Stage1_2_Fine % 100);
0676
0677 if (prodMode == HiggsProdMode::TH) {
0678
0679
0680 if (tH == tH_type::noTH)
0681 return 0;
0682
0683 int fwdH = F == 0 ? 0 : 1;
0684 return (189 + 2 * (tH - 1) + fwdH);
0685 }
0686
0687
0688
0689 std::vector<int> pMode_offset = {0, 0, 57, 82, 107};
0690 if (P == 2)
0691 return (F + pMode_offset[prodMode]);
0692
0693 if (prodMode == HiggsProdMode::GG2ZH && P == 1)
0694 return F + 29;
0695
0696
0697
0698 std::vector<int> catP_offset = {0, 1, 0, 132, 148, 164, 180, 187};
0699 return (F + catP_offset[P]);
0700 }
0701
0702 inline int HTXSstage1_2_Fine_to_HTXSstage1_2_Fine_FineIndex(const HiggsClassification &stxs,
0703 tH_type tH = noTH,
0704 bool jets_pT25 = false) {
0705 HTXS::Stage1_2_Fine::Category Stage1_2_Fine =
0706 jets_pT25 == false ? stxs.stage1_2_fine_cat_pTjet30GeV : stxs.stage1_2_fine_cat_pTjet25GeV;
0707 return HTXSstage1_2_Fine_to_HTXSstage1_2_Fine_FineIndex(Stage1_2_Fine, stxs.prodMode, tH);
0708 }
0709
0710 inline int HTXSstage1_2_Fine_to_index(HTXS::Stage1_2_Fine::Category Stage1_2_Fine) {
0711
0712 int P = (int)(Stage1_2_Fine / 100);
0713 int F = (int)(Stage1_2_Fine % 100);
0714 std::vector<int> offset{0, 1, 29, 54, 70, 86, 102, 109, 111, 113};
0715
0716 return (F + offset[P]);
0717 }
0718
0719
0720
0721 }
0722
0723 #ifdef RIVET_Particle_HH
0724
0725
0726 namespace Rivet {
0727
0728
0729
0730
0731
0732 struct HiggsClassification {
0733
0734 HTXS::HiggsProdMode prodMode;
0735
0736 Rivet::Particle higgs;
0737
0738 Rivet::Particle V;
0739
0740 Rivet::FourMomentum p4decay_higgs;
0741
0742 Rivet::FourMomentum p4decay_V;
0743
0744 Rivet::Jets jets25, jets30;
0745
0746 HTXS::Stage0::Category stage0_cat;
0747
0748 HTXS::Stage1::Category stage1_cat_pTjet25GeV;
0749
0750 HTXS::Stage1::Category stage1_cat_pTjet30GeV;
0751
0752 HTXS::Stage1_1::Category stage1_1_cat_pTjet25GeV;
0753
0754 HTXS::Stage1_1::Category stage1_1_cat_pTjet30GeV;
0755
0756 HTXS::Stage1_1_Fine::Category stage1_1_fine_cat_pTjet25GeV;
0757
0758 HTXS::Stage1_1_Fine::Category stage1_1_fine_cat_pTjet30GeV;
0759
0760 HTXS::Stage1_2::Category stage1_2_cat_pTjet25GeV;
0761
0762 HTXS::Stage1_2::Category stage1_2_cat_pTjet30GeV;
0763
0764 HTXS::Stage1_2_Fine::Category stage1_2_fine_cat_pTjet25GeV;
0765
0766 HTXS::Stage1_2_Fine::Category stage1_2_fine_cat_pTjet30GeV;
0767
0768 bool isZ2vvDecay = false;
0769
0770 HTXS::ErrorCode errorCode;
0771 };
0772 }
0773 #endif
0774
0775 #endif