12 #include "TLorentzVector.h"
13 #include "TLorentzRotation.h"
23 using namespace RooFit;
32 sqrts(sqrts_), mh(mh_),
33 mela(new
Mela(sqrts_, mh_, verbosity_))
34 {
cout <<
"Called MELAwithOptions constructor!" << endl; }
46 if (mwo->sqrts==
sqrts && mwo->mh==mh){
64 return make_shared<Mela>(erg_tev, mPOLE, verbosity);
69 TString strtout = Form(
"testME_Dec_ANALYTICAL_Ping_%iTeV_%i.out", erg_tev, (
int) useConstants);
70 ofstream tout(strtout.Data());
71 streambuf* coutbuf =
cout.rdbuf();
72 cout.rdbuf(tout.rdbuf());
82 auto bkpprecision =
cout.precision(10);
83 mela.setVerbosity(verbosity);
87 int GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
88 const int nEntries = 6;
89 double a1_array[nEntries][4] ={
90 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
91 { 238.65751023078761, 9.2808858562825005, 15.827726043466324, -237.95116187061188 },
92 { 101.52463181523598, 27.359569630718468, -0.90299073100241323, -97.764458892691749 },
93 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
94 { 101.67043553688544, 2.1169375132239789, 0.77953005873937187, -101.64540506443268 },
95 { 24.717634703436786, -1.1722249478288802, -5.9599387484197646, -23.959684558009428 }
97 double a2_array[nEntries][4] ={
98 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
99 { 317.81904277258536, 2.5882005498984775, 21.352807448987718, -317.09037005377883 },
100 { 180.10885677707822, -6.7240759244122792, 35.742176497019194, -176.39865053838915 },
101 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
102 { 95.655512770627581, -13.986023919404957, -37.960063551193414, -86.679881365440792 },
103 { 49.137252081251319, -19.463268758477309, -28.879247017597017, -34.664676589120688 }
105 double l1_array[nEntries][4] ={
106 { 51.374202, 25.924766, 12.290178, 42.616376 },
107 { 51.374202, 25.924766, 12.290178, 42.616376 },
108 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
109 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
110 { 1365.4973848483, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
111 { 1365.4973848483, 10.289826593755228, 25.205694382277809, -1365.2259480507332 }
113 double l2_array[nEntries][4] ={
114 { 271.875752, 70.427173, -11.138146, 261.769598 },
115 { 21.481452, 9.489680, -9.336587, 16.858699 },
116 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
117 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
118 { 22.7864275656, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
119 { 471.7191967775, -35.976267906053060, 4.5169691019519895, -470.32360615864354 }
121 double l3_array[nEntries][4] ={
122 { 75.823478, -16.640412, 23.246999, 70.227220 },
123 { 75.823478, -16.640412, 23.246999, 70.227220 },
124 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
125 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
126 { 1895.7562658451, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
127 { 1895.7562658451, 25.837804322120054, -28.821887970086259, -1895.3610513294620 }
129 double l4_array[nEntries][4] ={
130 { 21.481452, 9.489680, -9.336587, 16.858699 },
131 { 271.875752, 70.427173, -11.138146, 261.769598 },
132 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
133 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
134 { 471.7191967775, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
135 { 22.7864275656, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 }
144 for (
int ev = 2;
ev < 3;
ev++){
146 TLorentzVector pAPart[2];
147 pAPart[0].SetXYZT(a1_array[
ev][1], a1_array[
ev][2], a1_array[
ev][3], a1_array[
ev][0]);
148 pAPart[1].SetXYZT(a2_array[
ev][1], a2_array[
ev][2], a2_array[
ev][3], a2_array[
ev][0]);
149 for (
unsigned int iap=0; iap<2; iap++) aparticles.push_back(
SimpleParticle_t(0, pAPart[iap]));
150 for (
unsigned int iap=0; iap<2; iap++) aparticles.push_back(
SimpleParticle_t((1-2*iap)*13, pAPart[iap]));
151 for (
unsigned int iap=0; iap<2; iap++) aparticles.push_back(
SimpleParticle_t((1-2*iap)*14, pAPart[iap]));
152 for (
unsigned int iap=0; iap<1; iap++) aparticles.push_back(
SimpleParticle_t(22, pAPart[iap]));
154 int idOrdered[4] ={ GenLep1Id, GenLep2Id, GenLep3Id, GenLep4Id };
155 TLorentzVector pOrdered[4];
156 pOrdered[0].SetXYZT(l1_array[
ev][1], l1_array[
ev][2], l1_array[
ev][3], l1_array[
ev][0]);
157 pOrdered[1].SetXYZT(l2_array[
ev][1], l2_array[
ev][2], l2_array[
ev][3], l2_array[
ev][0]);
158 pOrdered[2].SetXYZT(l3_array[
ev][1], l3_array[
ev][2], l3_array[
ev][3], l3_array[
ev][0]);
159 pOrdered[3].SetXYZT(l4_array[
ev][1], l4_array[
ev][2], l4_array[
ev][3], l4_array[
ev][0]);
166 cout <<
"*******************************************************" << endl;
167 for (
int ic=0; ic<
mela.getNCandidates(); ic++){
168 cout <<
"Summary of candidate " << ic <<
":" << endl;
169 mela.setCurrentCandidateFromIndex(ic);
171 cout <<
"*******************************************************" << endl;
173 cout <<
"*******************************************************" << endl;
178 mela.setCurrentCandidateFromIndex(cindex);
182 cout <<
"*******************************************************" << endl;
183 cout <<
"Computing MEs for ZZ decay" << endl;
187 mela.computeP(p0mplus, useConstants);
188 cout <<
"p0mplus: " << p0mplus <<
'\n' << endl;
192 mela.computeP(p0hplus, useConstants);
193 cout <<
"p0hplus: " << p0hplus <<
'\n' << endl;
197 mela.computeP(p0minus, useConstants);
198 cout <<
"p0minus: " << p0minus <<
'\n' << endl;
205 mela.computeP(pg1g2, useConstants);
206 cout <<
"pg1g2: " << pg1g2 <<
'\n' << endl;
213 mela.computeP(pg1g4, useConstants);
214 cout <<
"pg1g4: " << pg1g4 <<
'\n' << endl;
221 mela.computeP(pg1g2_im, useConstants);
222 cout <<
"pg1g2_im: " << pg1g2_im <<
'\n' << endl;
229 mela.computeP(pg1g4_im, useConstants);
230 cout <<
"pg1g4_im: " << pg1g4_im <<
'\n' << endl;
234 mela.computeP(p0mplus_ana, useConstants);
235 cout <<
"p0mplus_ana: " << p0mplus_ana <<
'\n' << endl;
239 mela.computeP(p0hplus_ana, useConstants);
240 cout <<
"p0hplus_ana: " << p0hplus_ana <<
'\n' << endl;
244 mela.computeP(p0minus_ana, useConstants);
245 cout <<
"p0minus_ana: " << p0minus_ana <<
'\n' << endl;
251 mela.computeP(pg1g2_ana, useConstants);
252 cout <<
"pg1g2_ana: " << pg1g2_ana <<
'\n' << endl;
258 mela.computeP(pg1g4_ana, useConstants);
259 cout <<
"pg1g4_ana: " << pg1g4_ana <<
'\n' << endl;
261 float pg1g2_im_ana=0;
265 mela.computeP(pg1g2_im_ana, useConstants);
266 cout <<
"pg1g2_im_ana: " << pg1g2_im_ana <<
'\n' << endl;
268 float pg1g4_im_ana=0;
272 mela.computeP(pg1g4_im_ana, useConstants);
273 cout <<
"pg1g4_im_ana: " << pg1g4_im_ana <<
'\n' << endl;
275 mela.resetInputEvent();
280 mela.setVerbosity(bkpverbosity);
281 cout.precision(bkpprecision);
285 TString strtout = Form(
"testME_Dec_ANALYTICAL_FullSim_%iTeV_%i.out", erg_tev, (
int) useConstants);
286 ofstream tout(strtout.Data());
287 streambuf* coutbuf =
cout.rdbuf();
288 cout.rdbuf(tout.rdbuf());
298 auto bkpprecision =
cout.precision(10);
299 mela.setVerbosity(verbosity);
303 TFile fin(
"a2.root",
"read");
304 TTree* tin = (TTree*) fin.Get(
"SelectedTree");
310 for (
unsigned int ip=0; ip<4; ip++){
311 tin->SetBranchAddress(Form(
"GenLep%iPt", ip+1), GenLepPt+ip);
312 tin->SetBranchAddress(Form(
"GenLep%iEta", ip+1), GenLepEta+ip);
313 tin->SetBranchAddress(Form(
"GenLep%iPhi", ip+1), GenLepPhi+ip);
314 tin->SetBranchAddress(Form(
"GenLep%iMass", ip+1), GenLepMass+ip);
315 tin->SetBranchAddress(Form(
"GenLep%iId", ip+1), GenLepId+ip);
317 std::vector<float>* GenMotherPz=
nullptr;
318 std::vector<int>* GenMotherId=
nullptr;
319 tin->SetBranchAddress(
"GenMotherPz", &GenMotherPz);
320 tin->SetBranchAddress(
"GenMotherId", &GenMotherId);
322 for (
unsigned int ip=0; ip<2; ip++) tin->SetBranchAddress(Form(
"GenZ%iMass", ip+1), GenZMass+ip);
323 float Gencosthetastar; tin->SetBranchAddress(
"Gencosthetastar", &Gencosthetastar);
324 float GenhelcosthetaZ1; tin->SetBranchAddress(
"GenhelcosthetaZ1", &GenhelcosthetaZ1);
325 float GenhelcosthetaZ2; tin->SetBranchAddress(
"GenhelcosthetaZ2", &GenhelcosthetaZ2);
326 float Genhelphi; tin->SetBranchAddress(
"Genhelphi", &Genhelphi);
327 float GenphistarZ1; tin->SetBranchAddress(
"GenphistarZ1", &GenphistarZ1);
330 TFile fout(
"test.root",
"recreate");
331 TTree tnew(
"TestTree",
"");
332 for (
unsigned int ip=0; ip<4; ip++){
333 tnew.Branch(Form(
"GenLep%iPt", ip+1), GenLepPt+ip);
334 tnew.Branch(Form(
"GenLep%iEta", ip+1), GenLepEta+ip);
335 tnew.Branch(Form(
"GenLep%iPhi", ip+1), GenLepPhi+ip);
336 tnew.Branch(Form(
"GenLep%iMass", ip+1), GenLepMass+ip);
337 tnew.Branch(Form(
"GenLep%iId", ip+1), GenLepId+ip);
339 for (
unsigned int ip=0; ip<2; ip++) tnew.Branch(Form(
"GenZ%iMass", ip+1), GenZMass+ip);
340 tnew.Branch(
"Gencosthetastar", &Gencosthetastar);
341 tnew.Branch(
"GenhelcosthetaZ1", &GenhelcosthetaZ1);
342 tnew.Branch(
"GenhelcosthetaZ2", &GenhelcosthetaZ2);
343 tnew.Branch(
"Genhelphi", &Genhelphi);
344 tnew.Branch(
"GenphistarZ1", &GenphistarZ1);
346 float p0mplus=0; tnew.Branch(
"p0mplus", &p0mplus);
347 float p0hplus=0; tnew.Branch(
"p0hplus", &p0hplus);
348 float p0minus=0; tnew.Branch(
"p0minus", &p0minus);
349 float pg1g2=0; tnew.Branch(
"pg1g2", &pg1g2);
350 float pg1g4=0; tnew.Branch(
"pg1g4", &pg1g4);
351 float pg1g2_im=0; tnew.Branch(
"pg1g2_im", &pg1g2_im);
352 float pg1g4_im=0; tnew.Branch(
"pg1g4_im", &pg1g4_im);
353 float p0mplus_ana=0; tnew.Branch(
"p0mplus_ana", &p0mplus_ana);
354 float p0hplus_ana=0; tnew.Branch(
"p0hplus_ana", &p0hplus_ana);
355 float p0minus_ana=0; tnew.Branch(
"p0minus_ana", &p0minus_ana);
356 float pg1g2_ana=0; tnew.Branch(
"pg1g2_ana", &pg1g2_ana);
357 float pg1g4_ana=0; tnew.Branch(
"pg1g4_ana", &pg1g4_ana);
358 float pg1g2_im_ana=0; tnew.Branch(
"pg1g2_im_ana", &pg1g2_im_ana);
359 float pg1g4_im_ana=0; tnew.Branch(
"pg1g4_im_ana", &pg1g4_im_ana);
361 int nEntries=tin->GetEntries();
362 for (
int ev = 0;
ev < nEntries;
ev++){
366 for (
unsigned int ip=0; ip<4; ip++){
377 for (
unsigned int ip=0; ip<GenMotherId->size(); ip++){
378 TLorentzVector pMom(0,0, GenMotherPz->at(ip),std::abs(GenMotherPz->at(ip)));
386 cout <<
"*******************************************************" << endl;
387 for (
int ic=0; ic<
mela.getNCandidates(); ic++){
388 cout <<
"Summary of candidate " << ic <<
":" << endl;
389 mela.setCurrentCandidateFromIndex(ic);
391 cout <<
"*******************************************************" << endl;
393 cout <<
"*******************************************************" << endl;
399 mela.setCurrentCandidateFromIndex(cindex);
402 mela.computeP(p0mplus, useConstants);
405 mela.computeP(p0hplus, useConstants);
408 mela.computeP(p0minus, useConstants);
414 mela.computeP(pg1g2, useConstants);
420 mela.computeP(pg1g4, useConstants);
426 mela.computeP(pg1g2_im, useConstants);
432 mela.computeP(pg1g4_im, useConstants);
435 mela.computeP(p0mplus_ana, useConstants);
438 mela.computeP(p0hplus_ana, useConstants);
441 mela.computeP(p0minus_ana, useConstants);
446 mela.computeP(pg1g2_ana, useConstants);
451 mela.computeP(pg1g4_ana, useConstants);
456 mela.computeP(pg1g2_im_ana, useConstants);
461 mela.computeP(pg1g4_im_ana, useConstants);
463 mela.resetInputEvent();
467 fout.WriteTObject(&tnew);
473 mela.setVerbosity(bkpverbosity);
474 cout.precision(bkpprecision);
478 ofstream tout(TString(
"testME_RenFacScales_Ping.out"));
479 streambuf* coutbuf =
cout.rdbuf();
480 cout.rdbuf(tout.rdbuf());
490 mela.setVerbosity(verbosity);
493 float pingMom[8][4]={
494 { 0, 0, 865.37881546721542, 865.37881546721542 },
495 { 0, 0, -624.03396598421773, 624.03396598421773 },
496 { 7.6145299215002638, -17.259247740062808, 9.4660586470659975, 21.106135714241464 },
497 { 90.901719112641416, -69.683681833050798, 32.066319224729980, 118.94194752090492 },
498 { 78.476352131782917, -35.264818847819797, -8.8615639484695272, 86.490881645951262 },
499 { 191.68369742375290, -197.85205601463366, 100.99437243828194, 293.40746273989180 },
500 { -131.59521398083137, 330.56000090294270, 437.01695094737875, 563.53440884737279 },
501 { -237.08108460884614, -10.500196467375645, -329.33728782598945, 405.93194498307093 }
503 int idOrdered[8] ={ 1, 2, 11, -11, 13, -13, 1, 2 };
505 for (
unsigned int ip=0; ip<2; ip++){
508 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
512 for (
unsigned int ip=2; ip<6; ip++){
515 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
519 for (
unsigned int ip=6; ip<8; ip++){
522 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
528 std::vector<TVar::EventScaleScheme> eventscaleschemes;
533 mela.computeProdP(meval_init);
534 cout <<
"MELA default scheme setting gives ME val: " << meval_init << endl;
535 for (
auto const& scheme : eventscaleschemes){
536 cout <<
"Using scale scheme: " << scheme << endl;
537 mela.setRenFacScaleMode(scheme, scheme, 1, 1);
539 mela.computeProdP(meval);
540 cout <<
"\t- ME val: " << meval << endl;
541 if (meval==meval_init)
cout <<
"\t- ERROR: meval==meval_init!" << endl;
544 mela.computeProdP(meval_final);
545 cout <<
"Is MELA default scheme setting restored? " << (meval_final==meval_init) << endl;
546 if (meval_final!=meval_init)
cout <<
"\t- ERROR: meval_final!=meval_init!" << endl;
548 mela.resetInputEvent();
552 mela.setVerbosity(bkpverbosity);
557 ofstream tout(TString(
"testME_Dec_MCFM_Ping_")+
long(flavor)+
"_"+
long(useMothers)+
"_"+
long(useConstants)+
".out");
558 streambuf* coutbuf =
cout.rdbuf();
559 cout.rdbuf(tout.rdbuf());
567 melaptr.reset(
new Mela(erg_tev, mPOLE, verbosity));
571 mela.setVerbosity(verbosity);
575 if (verbosity>=
TVar::DEBUG)
cout <<
"Mela candidate decay mode initializing" << endl;
577 if (verbosity>=
TVar::DEBUG)
cout <<
"Mela candidate decay mode initialized" << endl;
579 float GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
603 const int nEntries = 6;
604 double l1_array[nEntries][4] ={
605 { 51.374202, 25.924766, 12.290178, 42.616376 },
606 { 51.374202, 25.924766, 12.290178, 42.616376 },
607 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
608 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
609 { 1365.4973848483, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
610 { 1365.4973848483, 10.289826593755228, 25.205694382277809, -1365.2259480507332 }
612 double l2_array[nEntries][4] ={
613 { 271.875752, 70.427173, -11.138146, 261.769598 },
614 { 21.481452, 9.489680, -9.336587, 16.858699 },
615 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
616 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
617 { 22.7864275656, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
618 { 471.7191967775, -35.976267906053060, 4.5169691019519895, -470.32360615864354 }
620 double l3_array[nEntries][4] ={
621 { 75.823478, -16.640412, 23.246999, 70.227220 },
622 { 75.823478, -16.640412, 23.246999, 70.227220 },
623 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
624 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
625 { 1895.7562658451, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
626 { 1895.7562658451, 25.837804322120054, -28.821887970086259, -1895.3610513294620 }
628 double l4_array[nEntries][4] ={
629 { 21.481452, 9.489680, -9.336587, 16.858699 },
630 { 271.875752, 70.427173, -11.138146, 261.769598 },
631 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
632 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
633 { 471.7191967775, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
634 { 22.7864275656, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 }
637 for (
int ev = 2;
ev < 3;
ev++){
644 else if (flavor == 1){
650 else if (flavor == 0){
656 else if (flavor == 3){
662 else if (flavor == 4){
668 else if (flavor == 5){
675 int idOrdered[4] ={
static_cast<int>(GenLep1Id),
static_cast<int>(GenLep2Id),
static_cast<int>(GenLep3Id),
static_cast<int>(GenLep4Id) };
676 int idOrdered_WW[4] ={ 11, -12, -11, 12 };
677 TLorentzVector pOrdered[4];
678 pOrdered[0].SetXYZT(l1_array[
ev][1], l1_array[
ev][2], l1_array[
ev][3], l1_array[
ev][0]);
679 pOrdered[1].SetXYZT(l2_array[
ev][1], l2_array[
ev][2], l2_array[
ev][3], l2_array[
ev][0]);
680 pOrdered[2].SetXYZT(l3_array[
ev][1], l3_array[
ev][2], l3_array[
ev][3], l3_array[
ev][0]);
681 pOrdered[3].SetXYZT(l4_array[
ev][1], l4_array[
ev][2], l4_array[
ev][3], l4_array[
ev][0]);
683 for (
unsigned int idau=0; idau<4; idau++) daughters_WW.push_back(
SimpleParticle_t(idOrdered_WW[idau], pOrdered[idau]));
685 for (
unsigned int iv=0; iv<2; iv++){
for (
int ivd=0; ivd<2; ivd++) daughters_WWasZZ.push_back(
SimpleParticle_t(idOrdered_WW[iv+2*ivd], pOrdered[iv+2*ivd])); }
687 for (
unsigned int idau=0; idau<4; idau++) daughters_ZZ.push_back(
SimpleParticle_t(idOrdered[idau], pOrdered[idau]));
689 TLorentzVector pOrdered_ZG[3];
690 pOrdered_ZG[0]=pOrdered[0];
691 pOrdered_ZG[1]=pOrdered[1];
692 pOrdered_ZG[2]=pOrdered[2]+pOrdered[3];
694 for (
unsigned int idau=0; idau<2; idau++) daughters_ZG.push_back(
SimpleParticle_t(idOrdered[idau], pOrdered_ZG[idau]));
695 for (
unsigned int idau=2; idau<3; idau++) daughters_ZG.push_back(
SimpleParticle_t(22, pOrdered_ZG[idau]));
698 TLorentzVector pTotal = pOrdered[0]+pOrdered[1]+pOrdered[2]+pOrdered[3];
699 TLorentzVector pTotal_dummy=pTotal;
700 TLorentzVector pTotal_perp(pTotal.X(), pTotal.Y(), 0, pTotal.T());
701 pTotal_dummy.Boost(-pTotal_perp.BoostVector());
702 TLorentzVector pMothers[2];
703 pMothers[0].SetXYZT(0, 0, (pTotal_dummy.Z()+pTotal_dummy.T())/2., (pTotal_dummy.Z()+pTotal_dummy.T())/2.);
704 pMothers[1].SetXYZT(0, 0, (pTotal_dummy.Z()-pTotal_dummy.T())/2., (-pTotal_dummy.Z()+pTotal_dummy.T())/2.);
705 for (
int im=0; im<2; im++) pMothers[im].Boost(pTotal_perp.BoostVector());
707 for (
unsigned int im=0; im<2; im++) mothers_QQB.push_back(
SimpleParticle_t(1-2*im, pMothers[im]));
709 for (
unsigned int im=0; im<2; im++) mothers_GG.push_back(
SimpleParticle_t(21, pMothers[im]));
711 if (useMothers==1) mothersPtr=&mothers_GG;
712 else if (useMothers==2) mothersPtr=&mothers_QQB;
714 TLorentzVector pOrdered_GG[3];
715 pOrdered_GG[0]=pOrdered[0]+pOrdered[1];
716 pOrdered_GG[1]=pOrdered[2]+pOrdered[3];
718 for (
unsigned int idau=0; idau<2; idau++) daughters_GG.push_back(
SimpleParticle_t(22, pOrdered_GG[idau]));
734 mela.setCurrentCandidateFromIndex(cindex);
736 float pVAMCFM_qqWW_bkg;
738 mela.computeP(pVAMCFM_qqWW_bkg, useConstants);
739 cout <<
"pVAMCFM_qqWW_bkg: " << pVAMCFM_qqWW_bkg <<
'\n' << endl;
741 float pVAMCFM_ggVV_total;
743 mela.computeP(pVAMCFM_ggVV_total, useConstants);
744 cout <<
"pVAMCFM_ggVV_total: " << pVAMCFM_ggVV_total <<
'\n' << endl;
745 float pVAMCFM_ggVV_bkg;
747 mela.computeP(pVAMCFM_ggVV_bkg, useConstants);
748 cout <<
"pVAMCFM_ggVV_bkg: " << pVAMCFM_ggVV_bkg <<
'\n' << endl;
749 float pVAMCFM_ggVV_sig;
751 mela.computeP(pVAMCFM_ggVV_sig, useConstants);
752 cout <<
"pVAMCFM_ggVV_sig: " << pVAMCFM_ggVV_sig <<
'\n' << endl;
754 float pVAMCFM_ggWW_total;
756 mela.computeP(pVAMCFM_ggWW_total, useConstants);
757 cout <<
"pVAMCFM_ggWW_total: " << pVAMCFM_ggWW_total <<
'\n' << endl;
758 float pVAMCFM_ggWW_bkg;
760 mela.computeP(pVAMCFM_ggWW_bkg, useConstants);
761 cout <<
"pVAMCFM_ggWW_bkg: " << pVAMCFM_ggWW_bkg <<
'\n' << endl;
762 float pVAMCFM_ggWW_sig;
764 mela.computeP(pVAMCFM_ggWW_sig, useConstants);
765 cout <<
"pVAMCFM_ggWW_sig: " << pVAMCFM_ggWW_sig <<
'\n' << endl;
767 float pVAMCFM_ggWW_sig_selfDg1;
772 mela.setMelaHiggsWidth(wPOLE);
774 mela.computeP(pVAMCFM_ggWW_sig_selfDg1, useConstants);
775 cout <<
"pVAMCFM_ggWW_sig_selfDg1: " << pVAMCFM_ggWW_sig_selfDg1 <<
'\n' << endl;
777 float pVAMCFM_ggWW_sig_selfDg2;
782 mela.setMelaHiggsWidth(wPOLE);
784 mela.computeP(pVAMCFM_ggWW_sig_selfDg2, useConstants);
785 cout <<
"pVAMCFM_ggWW_sig_selfDg2: " << pVAMCFM_ggWW_sig_selfDg2 <<
'\n' << endl;
787 float pVAMCFM_ggWW_sig_selfDg4;
792 mela.setMelaHiggsWidth(wPOLE);
794 mela.computeP(pVAMCFM_ggWW_sig_selfDg4, useConstants);
795 cout <<
"pVAMCFM_ggWW_sig_selfDg4: " << pVAMCFM_ggWW_sig_selfDg4 <<
'\n' << endl;
797 float pVAMCFM_ggWW_sig_selfDg1g2;
803 mela.setMelaHiggsWidth(wPOLE);
805 mela.computeP(pVAMCFM_ggWW_sig_selfDg1g2, useConstants);
806 cout <<
"pVAMCFM_ggWW_sig_selfDg1g2: " << pVAMCFM_ggWW_sig_selfDg1g2 <<
'\n' << endl;
808 float pVAMCFM_ggWW_sig_selfDg1g4;
814 mela.setMelaHiggsWidth(wPOLE);
816 mela.computeP(pVAMCFM_ggWW_sig_selfDg1g4, useConstants);
817 cout <<
"pVAMCFM_ggWW_sig_selfDg1g4: " << pVAMCFM_ggWW_sig_selfDg1g4 <<
'\n' << endl;
819 float pVAMCFM_ggWW_sig_selfDg1g2im;
825 mela.setMelaHiggsWidth(wPOLE);
827 mela.computeP(pVAMCFM_ggWW_sig_selfDg1g2im, useConstants);
828 cout <<
"pVAMCFM_ggWW_sig_selfDg1g2im: " << pVAMCFM_ggWW_sig_selfDg1g2im <<
'\n' << endl;
830 float pVAMCFM_ggWW_sig_selfDg1g4im;
836 mela.setMelaHiggsWidth(wPOLE);
838 mela.computeP(pVAMCFM_ggWW_sig_selfDg1g4im, useConstants);
839 cout <<
"pVAMCFM_ggWW_sig_selfDg1g4im: " << pVAMCFM_ggWW_sig_selfDg1g4im <<
'\n' << endl;
841 float pVAMCFM_ggWW_sig_largemt4_kappat4;
843 mela.resetMass(1e7, 8);
846 mela.setMelaHiggsWidth(wPOLE);
848 mela.computeP(pVAMCFM_ggWW_sig_largemt4_kappat4, useConstants);
849 cout <<
"pVAMCFM_ggWW_sig_largemt4_kappat4: " << pVAMCFM_ggWW_sig_largemt4_kappat4 <<
'\n' << endl;
851 float pVAMCFM_ggWW_sig_largemt4_kappatildet4;
853 mela.resetMass(1e7, 8);
856 mela.setMelaHiggsWidth(wPOLE);
858 mela.computeP(pVAMCFM_ggWW_sig_largemt4_kappatildet4, useConstants);
859 cout <<
"pVAMCFM_ggWW_sig_largemt4_kappatildet4: " << pVAMCFM_ggWW_sig_largemt4_kappatildet4 <<
'\n' << endl;
861 float pVAMCFM_ggWW_sig_ghg2_gen4;
865 mela.setMelaHiggsWidth(wPOLE);
867 mela.computeP(pVAMCFM_ggWW_sig_ghg2_gen4, useConstants);
868 cout <<
"pVAMCFM_ggWW_sig_ghg2_gen4: " << pVAMCFM_ggWW_sig_ghg2_gen4 <<
'\n' << endl;
870 float pVAMCFM_ggWW_sig_ghg4_gen4;
874 mela.setMelaHiggsWidth(wPOLE);
876 mela.computeP(pVAMCFM_ggWW_sig_ghg4_gen4, useConstants);
877 cout <<
"pVAMCFM_ggWW_sig_ghg4_gen4: " << pVAMCFM_ggWW_sig_ghg4_gen4 <<
'\n' << endl;
879 float pVAMCFM_ggWW_sig_ghg2ghg4_gen4;
884 mela.setMelaHiggsWidth(wPOLE);
886 mela.computeP(pVAMCFM_ggWW_sig_ghg2ghg4_gen4, useConstants);
887 cout <<
"pVAMCFM_ggWW_sig_ghg2ghg4_gen4: " << pVAMCFM_ggWW_sig_ghg2ghg4_gen4 <<
'\n' << endl;
889 float pVAMCFM_ggWW_sig_ghg2ghg4im_gen4;
894 mela.setMelaHiggsWidth(wPOLE);
896 mela.computeP(pVAMCFM_ggWW_sig_ghg2ghg4im_gen4, useConstants);
897 cout <<
"pVAMCFM_ggWW_sig_ghg2ghg4im_gen4: " << pVAMCFM_ggWW_sig_ghg2ghg4im_gen4 <<
'\n' << endl;
900 float pVAJHU_ggWW_sig_selfDg1;
904 mela.setMelaHiggsWidth(wPOLE);
906 mela.computeP(pVAJHU_ggWW_sig_selfDg1, useConstants);
907 cout <<
"pVAJHU_ggWW_sig_selfDg1: " << pVAJHU_ggWW_sig_selfDg1 <<
'\n' << endl;
909 float pVAJHU_ggWW_sig_selfDg2;
913 mela.setMelaHiggsWidth(wPOLE);
915 mela.computeP(pVAJHU_ggWW_sig_selfDg2, useConstants);
916 cout <<
"pVAJHU_ggWW_sig_selfDg2: " << pVAJHU_ggWW_sig_selfDg2 <<
'\n' << endl;
918 float pVAJHU_ggWW_sig_selfDg4;
922 mela.setMelaHiggsWidth(wPOLE);
924 mela.computeP(pVAJHU_ggWW_sig_selfDg4, useConstants);
925 cout <<
"pVAJHU_ggWW_sig_selfDg4: " << pVAJHU_ggWW_sig_selfDg4 <<
'\n' << endl;
927 float pVAJHU_ggWW_sig_selfDg1g2;
932 mela.setMelaHiggsWidth(wPOLE);
934 mela.computeP(pVAJHU_ggWW_sig_selfDg1g2, useConstants);
935 cout <<
"pVAJHU_ggWW_sig_selfDg1g2: " << pVAJHU_ggWW_sig_selfDg1g2 <<
'\n' << endl;
937 float pVAJHU_ggWW_sig_selfDg1g4;
942 mela.setMelaHiggsWidth(wPOLE);
944 mela.computeP(pVAJHU_ggWW_sig_selfDg1g4, useConstants);
945 cout <<
"pVAJHU_ggWW_sig_selfDg1g4: " << pVAJHU_ggWW_sig_selfDg1g4 <<
'\n' << endl;
947 float pVAJHU_ggWW_sig_selfDg1g2im;
952 mela.setMelaHiggsWidth(wPOLE);
954 mela.computeP(pVAJHU_ggWW_sig_selfDg1g2im, useConstants);
955 cout <<
"pVAJHU_ggWW_sig_selfDg1g2im: " << pVAJHU_ggWW_sig_selfDg1g2im <<
'\n' << endl;
957 float pVAJHU_ggWW_sig_selfDg1g4im;
962 mela.setMelaHiggsWidth(wPOLE);
964 mela.computeP(pVAJHU_ggWW_sig_selfDg1g4im, useConstants);
965 cout <<
"pVAJHU_ggWW_sig_selfDg1g4im: " << pVAJHU_ggWW_sig_selfDg1g4im <<
'\n' << endl;
967 float pVAJHU_ggWW_sig_ghg4;
971 mela.setMelaHiggsWidth(wPOLE);
973 mela.computeP(pVAJHU_ggWW_sig_ghg4, useConstants);
974 cout <<
"pVAJHU_ggWW_sig_ghg4: " << pVAJHU_ggWW_sig_ghg4 <<
'\n' << endl;
976 float pVAJHU_ggWW_sig_ghg2ghg4;
981 mela.setMelaHiggsWidth(wPOLE);
983 mela.computeP(pVAJHU_ggWW_sig_ghg2ghg4, useConstants);
984 cout <<
"pVAJHU_ggWW_sig_ghg2ghg4: " << pVAJHU_ggWW_sig_ghg2ghg4 <<
'\n' << endl;
986 float pVAJHU_ggWW_sig_ghg2ghg4im;
991 mela.setMelaHiggsWidth(wPOLE);
993 mela.computeP(pVAJHU_ggWW_sig_ghg2ghg4im, useConstants);
994 cout <<
"pVAJHU_ggWW_sig_ghg2ghg4im: " << pVAJHU_ggWW_sig_ghg2ghg4im <<
'\n' << endl;
996 cout <<
"MCFM vs JHUGen Ratio comparison:" << endl;
997 cout <<
"ggWW_sig_selfDg2: " << pVAMCFM_ggWW_sig_selfDg2/pVAMCFM_ggWW_sig_selfDg1 <<
'\t' << pVAJHU_ggWW_sig_selfDg2/pVAJHU_ggWW_sig_selfDg1 << endl;
998 cout <<
"ggWW_sig_selfDg1g2: " << pVAMCFM_ggWW_sig_selfDg1g2/pVAMCFM_ggWW_sig_selfDg1 <<
'\t' << pVAJHU_ggWW_sig_selfDg1g2/pVAJHU_ggWW_sig_selfDg1 << endl;
999 cout <<
"ggWW_sig_selfDg1g2im: " << pVAMCFM_ggWW_sig_selfDg1g2im/pVAMCFM_ggWW_sig_selfDg1 <<
'\t' << pVAJHU_ggWW_sig_selfDg1g2im/pVAJHU_ggWW_sig_selfDg1 << endl;
1000 cout <<
"ggWW_sig_selfDg4: " << pVAMCFM_ggWW_sig_selfDg4/pVAMCFM_ggWW_sig_selfDg1 <<
'\t' << pVAJHU_ggWW_sig_selfDg4/pVAJHU_ggWW_sig_selfDg1 << endl;
1001 cout <<
"ggWW_sig_selfDg1g4: " << pVAMCFM_ggWW_sig_selfDg1g4/pVAMCFM_ggWW_sig_selfDg1 <<
'\t' << pVAJHU_ggWW_sig_selfDg1g4/pVAJHU_ggWW_sig_selfDg1 << endl;
1002 cout <<
"ggWW_sig_selfDg1g4im: " << pVAMCFM_ggWW_sig_selfDg1g4im/pVAMCFM_ggWW_sig_selfDg1 <<
'\t' << pVAJHU_ggWW_sig_selfDg1g4im/pVAJHU_ggWW_sig_selfDg1 << endl;
1003 cout <<
"***" << endl;
1004 cout <<
"MCFM_ggWW_sig_largemt4_kappatildet4: " << pVAMCFM_ggWW_sig_largemt4_kappatildet4/pVAMCFM_ggWW_sig_largemt4_kappat4 << endl;
1005 cout <<
"MCFM_ggWW_sig_ghg2_gen4: " << pVAMCFM_ggWW_sig_ghg2_gen4/pVAMCFM_ggWW_sig_largemt4_kappat4 << endl;
1006 cout <<
"ggWW_sig_ghg4_gen4: " << pVAMCFM_ggWW_sig_ghg4_gen4/pVAMCFM_ggWW_sig_ghg2_gen4 <<
'\t' << pVAJHU_ggWW_sig_ghg4/pVAJHU_ggWW_sig_selfDg1 << endl;
1007 cout <<
"ggWW_sig_ghg2ghg4_gen4: " << pVAMCFM_ggWW_sig_ghg2ghg4_gen4/pVAMCFM_ggWW_sig_ghg2_gen4 <<
'\t' << pVAJHU_ggWW_sig_ghg2ghg4/pVAJHU_ggWW_sig_selfDg1 << endl;
1008 cout <<
"ggWW_sig_ghg2ghg4im_gen4: " << pVAMCFM_ggWW_sig_ghg2ghg4im_gen4/pVAMCFM_ggWW_sig_ghg2_gen4 <<
'\t' << pVAJHU_ggWW_sig_ghg2ghg4im/pVAJHU_ggWW_sig_selfDg1 << endl;
1013 mela.setCurrentCandidateFromIndex(cindex);
1015 float pVAMCFM_ggVV_fromZZ_total;
1017 mela.computeP(pVAMCFM_ggVV_fromZZ_total, useConstants);
1018 cout <<
"pVAMCFM_ggVV_fromZZ_total: " << pVAMCFM_ggVV_fromZZ_total <<
'\n' << endl;
1019 float pVAMCFM_ggVV_fromZZ_bkg;
1021 mela.computeP(pVAMCFM_ggVV_fromZZ_bkg, useConstants);
1022 cout <<
"pVAMCFM_ggVV_fromZZ_bkg: " << pVAMCFM_ggVV_fromZZ_bkg <<
'\n' << endl;
1023 float pVAMCFM_ggVV_fromZZ_sig;
1025 mela.computeP(pVAMCFM_ggVV_fromZZ_sig, useConstants);
1026 cout <<
"pVAMCFM_ggVV_fromZZ_sig: " << pVAMCFM_ggVV_fromZZ_sig <<
'\n' << endl;
1028 float pVAMCFM_ggZZ_total;
1030 mela.computeP(pVAMCFM_ggZZ_total, useConstants);
1031 cout <<
"pVAMCFM_ggZZ_total from WW as ZZ: " << pVAMCFM_ggZZ_total <<
'\n' << endl;
1032 float pVAMCFM_ggZZ_bkg;
1034 mela.computeP(pVAMCFM_ggZZ_bkg, useConstants);
1035 cout <<
"pVAMCFM_ggZZ_bkg from WW as ZZ: " << pVAMCFM_ggZZ_bkg <<
'\n' << endl;
1036 float pVAMCFM_ggWWasZZ_sig;
1038 mela.computeP(pVAMCFM_ggWWasZZ_sig, useConstants);
1039 cout <<
"pVAMCFM_ggWWasZZ_sig: " << pVAMCFM_ggWWasZZ_sig <<
'\n' << endl;
1041 float pVAMCFM_ggWWasZZ_sig_selfDg1;
1046 mela.setMelaHiggsWidth(wPOLE);
1048 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDg1, useConstants);
1049 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDg1: " << pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\n' << endl;
1051 float pVAMCFM_ggWWasZZ_sig_selfDg2;
1056 mela.setMelaHiggsWidth(wPOLE);
1058 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDg2, useConstants);
1059 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDg2: " << pVAMCFM_ggWWasZZ_sig_selfDg2 <<
'\n' << endl;
1061 float pVAMCFM_ggWWasZZ_sig_selfDg4;
1066 mela.setMelaHiggsWidth(wPOLE);
1068 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDg4, useConstants);
1069 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDg4: " << pVAMCFM_ggWWasZZ_sig_selfDg4 <<
'\n' << endl;
1071 float pVAMCFM_ggWWasZZ_sig_selfDgzgs2;
1076 mela.setMelaHiggsWidth(wPOLE);
1078 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDgzgs2, useConstants);
1079 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDgzgs2: " << pVAMCFM_ggWWasZZ_sig_selfDgzgs2 <<
'\n' << endl;
1081 float pVAMCFM_ggWWasZZ_sig_selfDgzgs4;
1086 mela.setMelaHiggsWidth(wPOLE);
1088 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDgzgs4, useConstants);
1089 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDgzgs4: " << pVAMCFM_ggWWasZZ_sig_selfDgzgs4 <<
'\n' << endl;
1091 float pVAMCFM_ggWWasZZ_sig_selfDggsgs2;
1096 mela.setMelaHiggsWidth(wPOLE);
1098 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDggsgs2, useConstants);
1099 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDggsgs2: " << pVAMCFM_ggWWasZZ_sig_selfDggsgs2 <<
'\n' << endl;
1101 float pVAMCFM_ggWWasZZ_sig_selfDggsgs4;
1106 mela.setMelaHiggsWidth(wPOLE);
1108 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDggsgs4, useConstants);
1109 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDggsgs4: " << pVAMCFM_ggWWasZZ_sig_selfDggsgs4 <<
'\n' << endl;
1111 float pVAMCFM_ggWWasZZ_sig_selfDg1g2;
1117 mela.setMelaHiggsWidth(wPOLE);
1119 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDg1g2, useConstants);
1120 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDg1g2: " << pVAMCFM_ggWWasZZ_sig_selfDg1g2 <<
'\n' << endl;
1122 float pVAMCFM_ggWWasZZ_sig_selfDg1g4;
1128 mela.setMelaHiggsWidth(wPOLE);
1130 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDg1g4, useConstants);
1131 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDg1g4: " << pVAMCFM_ggWWasZZ_sig_selfDg1g4 <<
'\n' << endl;
1133 float pVAMCFM_ggWWasZZ_sig_selfDg1gzgs2;
1139 mela.setMelaHiggsWidth(wPOLE);
1141 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDg1gzgs2, useConstants);
1142 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDg1gzgs2: " << pVAMCFM_ggWWasZZ_sig_selfDg1gzgs2 <<
'\n' << endl;
1144 float pVAMCFM_ggWWasZZ_sig_selfDg1gzgs4;
1150 mela.setMelaHiggsWidth(wPOLE);
1152 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDg1gzgs4, useConstants);
1153 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDg1gzgs4: " << pVAMCFM_ggWWasZZ_sig_selfDg1gzgs4 <<
'\n' << endl;
1155 float pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs2;
1161 mela.setMelaHiggsWidth(wPOLE);
1163 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs2, useConstants);
1164 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs2: " << pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs2 <<
'\n' << endl;
1166 float pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs4;
1172 mela.setMelaHiggsWidth(wPOLE);
1174 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs4, useConstants);
1175 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs4: " << pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs4 <<
'\n' << endl;
1177 float pVAMCFM_ggWWasZZ_sig_selfDg1g2im;
1183 mela.setMelaHiggsWidth(wPOLE);
1185 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDg1g2im, useConstants);
1186 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDg1g2im: " << pVAMCFM_ggWWasZZ_sig_selfDg1g2im <<
'\n' << endl;
1188 float pVAMCFM_ggWWasZZ_sig_selfDg1g4im;
1194 mela.setMelaHiggsWidth(wPOLE);
1196 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDg1g4im, useConstants);
1197 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDg1g4im: " << pVAMCFM_ggWWasZZ_sig_selfDg1g4im <<
'\n' << endl;
1199 float pVAMCFM_ggWWasZZ_sig_selfDg1gzgs2im;
1205 mela.setMelaHiggsWidth(wPOLE);
1207 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDg1gzgs2im, useConstants);
1208 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDg1gzgs2im: " << pVAMCFM_ggWWasZZ_sig_selfDg1gzgs2im <<
'\n' << endl;
1210 float pVAMCFM_ggWWasZZ_sig_selfDg1gzgs4im;
1216 mela.setMelaHiggsWidth(wPOLE);
1218 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDg1gzgs4im, useConstants);
1219 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDg1gzgs4im: " << pVAMCFM_ggWWasZZ_sig_selfDg1gzgs4im <<
'\n' << endl;
1221 float pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs2im;
1227 mela.setMelaHiggsWidth(wPOLE);
1229 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs2im, useConstants);
1230 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs2im: " << pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs2im <<
'\n' << endl;
1232 float pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs4im;
1238 mela.setMelaHiggsWidth(wPOLE);
1240 mela.computeP(pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs4im, useConstants);
1241 cout <<
"pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs4im: " << pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs4im <<
'\n' << endl;
1243 float pVAMCFM_ggWWasZZ_sig_largemt4_kappat4;
1245 mela.resetMass(1e7, 8);
1248 mela.setMelaHiggsWidth(wPOLE);
1250 mela.computeP(pVAMCFM_ggWWasZZ_sig_largemt4_kappat4, useConstants);
1251 cout <<
"pVAMCFM_ggWWasZZ_sig_largemt4_kappat4: " << pVAMCFM_ggWWasZZ_sig_largemt4_kappat4 <<
'\n' << endl;
1253 float pVAMCFM_ggWWasZZ_sig_largemt4_kappatildet4;
1255 mela.resetMass(1e7, 8);
1258 mela.setMelaHiggsWidth(wPOLE);
1260 mela.computeP(pVAMCFM_ggWWasZZ_sig_largemt4_kappatildet4, useConstants);
1261 cout <<
"pVAMCFM_ggWWasZZ_sig_largemt4_kappatildet4: " << pVAMCFM_ggWWasZZ_sig_largemt4_kappatildet4 <<
'\n' << endl;
1263 float pVAMCFM_ggWWasZZ_sig_ghg2_gen4;
1267 mela.setMelaHiggsWidth(wPOLE);
1269 mela.computeP(pVAMCFM_ggWWasZZ_sig_ghg2_gen4, useConstants);
1270 cout <<
"pVAMCFM_ggWWasZZ_sig_ghg2_gen4: " << pVAMCFM_ggWWasZZ_sig_ghg2_gen4 <<
'\n' << endl;
1272 float pVAMCFM_ggWWasZZ_sig_ghg4_gen4;
1276 mela.setMelaHiggsWidth(wPOLE);
1278 mela.computeP(pVAMCFM_ggWWasZZ_sig_ghg4_gen4, useConstants);
1279 cout <<
"pVAMCFM_ggWWasZZ_sig_ghg4_gen4: " << pVAMCFM_ggWWasZZ_sig_ghg4_gen4 <<
'\n' << endl;
1281 float pVAMCFM_ggWWasZZ_sig_ghg2ghg4_gen4;
1286 mela.setMelaHiggsWidth(wPOLE);
1288 mela.computeP(pVAMCFM_ggWWasZZ_sig_ghg2ghg4_gen4, useConstants);
1289 cout <<
"pVAMCFM_ggWWasZZ_sig_ghg2ghg4_gen4: " << pVAMCFM_ggWWasZZ_sig_ghg2ghg4_gen4 <<
'\n' << endl;
1291 float pVAMCFM_ggWWasZZ_sig_ghg2ghg4im_gen4;
1296 mela.setMelaHiggsWidth(wPOLE);
1298 mela.computeP(pVAMCFM_ggWWasZZ_sig_ghg2ghg4im_gen4, useConstants);
1299 cout <<
"pVAMCFM_ggWWasZZ_sig_ghg2ghg4im_gen4: " << pVAMCFM_ggWWasZZ_sig_ghg2ghg4im_gen4 <<
'\n' << endl;
1302 float pVAJHU_ggWWasZZ_sig_selfDg1;
1306 mela.setMelaHiggsWidth(wPOLE);
1308 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDg1, useConstants);
1309 cout <<
"pVAJHU_ggWWasZZ_sig_selfDg1: " << pVAJHU_ggWWasZZ_sig_selfDg1 <<
'\n' << endl;
1311 float pVAJHU_ggWWasZZ_sig_selfDg2;
1315 mela.setMelaHiggsWidth(wPOLE);
1317 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDg2, useConstants);
1318 cout <<
"pVAJHU_ggWWasZZ_sig_selfDg2: " << pVAJHU_ggWWasZZ_sig_selfDg2 <<
'\n' << endl;
1320 float pVAJHU_ggWWasZZ_sig_selfDg4;
1324 mela.setMelaHiggsWidth(wPOLE);
1326 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDg4, useConstants);
1327 cout <<
"pVAJHU_ggWWasZZ_sig_selfDg4: " << pVAJHU_ggWWasZZ_sig_selfDg4 <<
'\n' << endl;
1329 float pVAJHU_ggWWasZZ_sig_selfDgzgs2;
1333 mela.setMelaHiggsWidth(wPOLE);
1335 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDgzgs2, useConstants);
1336 cout <<
"pVAJHU_ggWWasZZ_sig_selfDgzgs2: " << pVAJHU_ggWWasZZ_sig_selfDgzgs2 <<
'\n' << endl;
1338 float pVAJHU_ggWWasZZ_sig_selfDgzgs4;
1342 mela.setMelaHiggsWidth(wPOLE);
1344 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDgzgs4, useConstants);
1345 cout <<
"pVAJHU_ggWWasZZ_sig_selfDgzgs4: " << pVAJHU_ggWWasZZ_sig_selfDgzgs4 <<
'\n' << endl;
1347 float pVAJHU_ggWWasZZ_sig_selfDggsgs2;
1351 mela.setMelaHiggsWidth(wPOLE);
1353 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDggsgs2, useConstants);
1354 cout <<
"pVAJHU_ggWWasZZ_sig_selfDggsgs2: " << pVAJHU_ggWWasZZ_sig_selfDggsgs2 <<
'\n' << endl;
1356 float pVAJHU_ggWWasZZ_sig_selfDggsgs4;
1360 mela.setMelaHiggsWidth(wPOLE);
1362 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDggsgs4, useConstants);
1363 cout <<
"pVAJHU_ggWWasZZ_sig_selfDggsgs4: " << pVAJHU_ggWWasZZ_sig_selfDggsgs4 <<
'\n' << endl;
1365 float pVAJHU_ggWWasZZ_sig_selfDg1g2;
1370 mela.setMelaHiggsWidth(wPOLE);
1372 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDg1g2, useConstants);
1373 cout <<
"pVAJHU_ggWWasZZ_sig_selfDg1g2: " << pVAJHU_ggWWasZZ_sig_selfDg1g2 <<
'\n' << endl;
1375 float pVAJHU_ggWWasZZ_sig_selfDg1g4;
1380 mela.setMelaHiggsWidth(wPOLE);
1382 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDg1g4, useConstants);
1383 cout <<
"pVAJHU_ggWWasZZ_sig_selfDg1g4: " << pVAJHU_ggWWasZZ_sig_selfDg1g4 <<
'\n' << endl;
1385 float pVAJHU_ggWWasZZ_sig_selfDg1gzgs2;
1390 mela.setMelaHiggsWidth(wPOLE);
1392 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDg1gzgs2, useConstants);
1393 cout <<
"pVAJHU_ggWWasZZ_sig_selfDg1gzgs2: " << pVAJHU_ggWWasZZ_sig_selfDg1gzgs2 <<
'\n' << endl;
1395 float pVAJHU_ggWWasZZ_sig_selfDg1gzgs4;
1400 mela.setMelaHiggsWidth(wPOLE);
1402 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDg1gzgs4, useConstants);
1403 cout <<
"pVAJHU_ggWWasZZ_sig_selfDg1gzgs4: " << pVAJHU_ggWWasZZ_sig_selfDg1gzgs4 <<
'\n' << endl;
1405 float pVAJHU_ggWWasZZ_sig_selfDg1ggsgs2;
1410 mela.setMelaHiggsWidth(wPOLE);
1412 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDg1ggsgs2, useConstants);
1413 cout <<
"pVAJHU_ggWWasZZ_sig_selfDg1ggsgs2: " << pVAJHU_ggWWasZZ_sig_selfDg1ggsgs2 <<
'\n' << endl;
1415 float pVAJHU_ggWWasZZ_sig_selfDg1ggsgs4;
1420 mela.setMelaHiggsWidth(wPOLE);
1422 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDg1ggsgs4, useConstants);
1423 cout <<
"pVAJHU_ggWWasZZ_sig_selfDg1ggsgs4: " << pVAJHU_ggWWasZZ_sig_selfDg1ggsgs4 <<
'\n' << endl;
1425 float pVAJHU_ggWWasZZ_sig_selfDg1g2im;
1430 mela.setMelaHiggsWidth(wPOLE);
1432 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDg1g2im, useConstants);
1433 cout <<
"pVAJHU_ggWWasZZ_sig_selfDg1g2im: " << pVAJHU_ggWWasZZ_sig_selfDg1g2im <<
'\n' << endl;
1435 float pVAJHU_ggWWasZZ_sig_selfDg1g4im;
1440 mela.setMelaHiggsWidth(wPOLE);
1442 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDg1g4im, useConstants);
1443 cout <<
"pVAJHU_ggWWasZZ_sig_selfDg1g4im: " << pVAJHU_ggWWasZZ_sig_selfDg1g4im <<
'\n' << endl;
1445 float pVAJHU_ggWWasZZ_sig_selfDg1gzgs2im;
1450 mela.setMelaHiggsWidth(wPOLE);
1452 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDg1gzgs2im, useConstants);
1453 cout <<
"pVAJHU_ggWWasZZ_sig_selfDg1gzgs2im: " << pVAJHU_ggWWasZZ_sig_selfDg1gzgs2im <<
'\n' << endl;
1455 float pVAJHU_ggWWasZZ_sig_selfDg1gzgs4im;
1460 mela.setMelaHiggsWidth(wPOLE);
1462 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDg1gzgs4im, useConstants);
1463 cout <<
"pVAJHU_ggWWasZZ_sig_selfDg1gzgs4im: " << pVAJHU_ggWWasZZ_sig_selfDg1gzgs4im <<
'\n' << endl;
1465 float pVAJHU_ggWWasZZ_sig_selfDg1ggsgs2im;
1470 mela.setMelaHiggsWidth(wPOLE);
1472 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDg1ggsgs2im, useConstants);
1473 cout <<
"pVAJHU_ggWWasZZ_sig_selfDg1ggsgs2im: " << pVAJHU_ggWWasZZ_sig_selfDg1ggsgs2im <<
'\n' << endl;
1475 float pVAJHU_ggWWasZZ_sig_selfDg1ggsgs4im;
1480 mela.setMelaHiggsWidth(wPOLE);
1482 mela.computeP(pVAJHU_ggWWasZZ_sig_selfDg1ggsgs4im, useConstants);
1483 cout <<
"pVAJHU_ggWWasZZ_sig_selfDg1ggsgs4im: " << pVAJHU_ggWWasZZ_sig_selfDg1ggsgs4im <<
'\n' << endl;
1485 float pVAJHU_ggWWasZZ_sig_ghg4;
1489 mela.setMelaHiggsWidth(wPOLE);
1491 mela.computeP(pVAJHU_ggWWasZZ_sig_ghg4, useConstants);
1492 cout <<
"pVAJHU_ggWWasZZ_sig_ghg4: " << pVAJHU_ggWWasZZ_sig_ghg4 <<
'\n' << endl;
1494 float pVAJHU_ggWWasZZ_sig_ghg2ghg4;
1499 mela.setMelaHiggsWidth(wPOLE);
1501 mela.computeP(pVAJHU_ggWWasZZ_sig_ghg2ghg4, useConstants);
1502 cout <<
"pVAJHU_ggWWasZZ_sig_ghg2ghg4: " << pVAJHU_ggWWasZZ_sig_ghg2ghg4 <<
'\n' << endl;
1504 float pVAJHU_ggWWasZZ_sig_ghg2ghg4im;
1509 mela.setMelaHiggsWidth(wPOLE);
1511 mela.computeP(pVAJHU_ggWWasZZ_sig_ghg2ghg4im, useConstants);
1512 cout <<
"pVAJHU_ggWWasZZ_sig_ghg2ghg4im: " << pVAJHU_ggWWasZZ_sig_ghg2ghg4im <<
'\n' << endl;
1515 cout <<
"MCFM vs JHUGen Ratio comparison:" << endl;
1516 cout <<
"ggWWasZZ_sig_selfDg2: " << pVAMCFM_ggWWasZZ_sig_selfDg2/pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\t' << pVAJHU_ggWWasZZ_sig_selfDg2/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1517 cout <<
"ggWWasZZ_sig_selfDg1g2: " << pVAMCFM_ggWWasZZ_sig_selfDg1g2/pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\t' << pVAJHU_ggWWasZZ_sig_selfDg1g2/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1518 cout <<
"ggWWasZZ_sig_selfDg1g2im: " << pVAMCFM_ggWWasZZ_sig_selfDg1g2im/pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\t' << pVAJHU_ggWWasZZ_sig_selfDg1g2im/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1519 cout <<
"ggWWasZZ_sig_selfDg4: " << pVAMCFM_ggWWasZZ_sig_selfDg4/pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\t' << pVAJHU_ggWWasZZ_sig_selfDg4/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1520 cout <<
"ggWWasZZ_sig_selfDg1g4: " << pVAMCFM_ggWWasZZ_sig_selfDg1g4/pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\t' << pVAJHU_ggWWasZZ_sig_selfDg1g4/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1521 cout <<
"ggWWasZZ_sig_selfDg1g4im: " << pVAMCFM_ggWWasZZ_sig_selfDg1g4im/pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\t' << pVAJHU_ggWWasZZ_sig_selfDg1g4im/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1522 cout <<
"***" << endl;
1523 cout <<
"ggWWasZZ_sig_selfDgzgs2: " << pVAMCFM_ggWWasZZ_sig_selfDgzgs2/pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\t' << pVAJHU_ggWWasZZ_sig_selfDgzgs2/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1524 cout <<
"ggWWasZZ_sig_selfDg1gzgs2: " << pVAMCFM_ggWWasZZ_sig_selfDg1gzgs2/pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\t' << pVAJHU_ggWWasZZ_sig_selfDg1gzgs2/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1525 cout <<
"ggWWasZZ_sig_selfDg1gzgs2im: " << pVAMCFM_ggWWasZZ_sig_selfDg1gzgs2im/pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\t' << pVAJHU_ggWWasZZ_sig_selfDg1gzgs2im/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1526 cout <<
"ggWWasZZ_sig_selfDgzgs4: " << pVAMCFM_ggWWasZZ_sig_selfDgzgs4/pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\t' << pVAJHU_ggWWasZZ_sig_selfDgzgs4/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1527 cout <<
"ggWWasZZ_sig_selfDg1gzgs4: " << pVAMCFM_ggWWasZZ_sig_selfDg1gzgs4/pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\t' << pVAJHU_ggWWasZZ_sig_selfDg1gzgs4/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1528 cout <<
"ggWWasZZ_sig_selfDg1gzgs4im: " << pVAMCFM_ggWWasZZ_sig_selfDg1gzgs4im/pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\t' << pVAJHU_ggWWasZZ_sig_selfDg1gzgs4im/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1529 cout <<
"***" << endl;
1530 cout <<
"ggWWasZZ_sig_selfDggsgs2: " << pVAMCFM_ggWWasZZ_sig_selfDggsgs2/pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\t' << pVAJHU_ggWWasZZ_sig_selfDggsgs2/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1531 cout <<
"ggWWasZZ_sig_selfDg1ggsgs2: " << pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs2/pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\t' << pVAJHU_ggWWasZZ_sig_selfDg1ggsgs2/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1532 cout <<
"ggWWasZZ_sig_selfDg1ggsgs2im: " << pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs2im/pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\t' << pVAJHU_ggWWasZZ_sig_selfDg1ggsgs2im/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1533 cout <<
"ggWWasZZ_sig_selfDggsgs4: " << pVAMCFM_ggWWasZZ_sig_selfDggsgs4/pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\t' << pVAJHU_ggWWasZZ_sig_selfDggsgs4/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1534 cout <<
"ggWWasZZ_sig_selfDg1ggsgs4: " << pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs4/pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\t' << pVAJHU_ggWWasZZ_sig_selfDg1ggsgs4/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1535 cout <<
"ggWWasZZ_sig_selfDg1ggsgs4im: " << pVAMCFM_ggWWasZZ_sig_selfDg1ggsgs4im/pVAMCFM_ggWWasZZ_sig_selfDg1 <<
'\t' << pVAJHU_ggWWasZZ_sig_selfDg1ggsgs4im/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1536 cout <<
"***" << endl;
1537 cout <<
"MCFM_ggWWasZZ_sig_largemt4_kappatildet4: " << pVAMCFM_ggWWasZZ_sig_largemt4_kappatildet4/pVAMCFM_ggWWasZZ_sig_largemt4_kappat4 << endl;
1538 cout <<
"MCFM_ggWWasZZ_sig_ghg2_gen4: " << pVAMCFM_ggWWasZZ_sig_ghg2_gen4/pVAMCFM_ggWWasZZ_sig_largemt4_kappat4 << endl;
1539 cout <<
"ggWWasZZ_sig_ghg4_gen4: " << pVAMCFM_ggWWasZZ_sig_ghg4_gen4/pVAMCFM_ggWWasZZ_sig_ghg2_gen4 <<
'\t' << pVAJHU_ggWWasZZ_sig_ghg4/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1540 cout <<
"ggWWasZZ_sig_ghg2ghg4_gen4: " << pVAMCFM_ggWWasZZ_sig_ghg2ghg4_gen4/pVAMCFM_ggWWasZZ_sig_ghg2_gen4 <<
'\t' << pVAJHU_ggWWasZZ_sig_ghg2ghg4/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1541 cout <<
"ggWWasZZ_sig_ghg2ghg4im_gen4: " << pVAMCFM_ggWWasZZ_sig_ghg2ghg4im_gen4/pVAMCFM_ggWWasZZ_sig_ghg2_gen4 <<
'\t' << pVAJHU_ggWWasZZ_sig_ghg2ghg4im/pVAJHU_ggWWasZZ_sig_selfDg1 << endl;
1546 mela.setCurrentCandidateFromIndex(cindex);
1548 float pVAMCFM_qqZZ_bkg;
1550 mela.computeP(pVAMCFM_qqZZ_bkg, useConstants);
1551 cout <<
"pVAMCFM_qqZZ_bkg: " << pVAMCFM_qqZZ_bkg <<
'\n' << endl;
1553 float pVAMCFM_qqZJJ_bkg;
1555 mela.computeP(pVAMCFM_qqZJJ_bkg, useConstants);
1556 cout <<
"pVAMCFM_qqZJJ_bkg: " << pVAMCFM_qqZJJ_bkg <<
'\n' << endl;
1559 mela.computeP(pVAMCFM_ggZZ_total, useConstants);
1560 cout <<
"pVAMCFM_ggZZ_total: " << pVAMCFM_ggZZ_total <<
'\n' << endl;
1563 mela.computeP(pVAMCFM_ggZZ_bkg, useConstants);
1564 cout <<
"pVAMCFM_ggZZ_bkg: " << pVAMCFM_ggZZ_bkg <<
'\n' << endl;
1566 float pVAMCFM_ggZZ_sig;
1568 mela.setMelaHiggsWidth(wPOLE);
1570 mela.computeP(pVAMCFM_ggZZ_sig, useConstants);
1571 cout <<
"pVAMCFM_ggZZ_sig: " << pVAMCFM_ggZZ_sig <<
'\n' << endl;
1573 float pVAMCFM_ZZ_sig_selfDg1;
1578 mela.setMelaHiggsWidth(wPOLE);
1580 mela.computeP(pVAMCFM_ZZ_sig_selfDg1, useConstants);
1581 cout <<
"pVAMCFM_ggZZ_sig_selfDg1: " << pVAMCFM_ZZ_sig_selfDg1 <<
'\n' << endl;
1583 float pVAMCFM_ZZ_sig_selfDg1gzgs2;
1589 mela.setMelaHiggsWidth(wPOLE);
1591 mela.computeP(pVAMCFM_ZZ_sig_selfDg1gzgs2, useConstants);
1592 cout <<
"pVAMCFM_ZZ_sig_selfDg1gzgs2: " << pVAMCFM_ZZ_sig_selfDg1gzgs2 <<
'\n' << endl;
1594 float pVAMCFM_ZZ_sig_selfDg1gzgs4;
1600 mela.setMelaHiggsWidth(wPOLE);
1602 mela.computeP(pVAMCFM_ZZ_sig_selfDg1gzgs4, useConstants);
1603 cout <<
"pVAMCFM_ZZ_sig_selfDg1gzgs4: " << pVAMCFM_ZZ_sig_selfDg1gzgs4 <<
'\n' << endl;
1605 float pVAMCFM_ZZ_sig_selfDg1gzgs2im;
1611 mela.setMelaHiggsWidth(wPOLE);
1613 mela.computeP(pVAMCFM_ZZ_sig_selfDg1gzgs2im, useConstants);
1614 cout <<
"pVAMCFM_ZZ_sig_selfDg1gzgs2im: " << pVAMCFM_ZZ_sig_selfDg1gzgs2im <<
'\n' << endl;
1616 float pVAMCFM_ZZ_sig_selfDg1gzgs4im;
1622 mela.setMelaHiggsWidth(wPOLE);
1624 mela.computeP(pVAMCFM_ZZ_sig_selfDg1gzgs4im, useConstants);
1625 cout <<
"pVAMCFM_ZZ_sig_selfDg1gzgs4im: " << pVAMCFM_ZZ_sig_selfDg1gzgs4im <<
'\n' << endl;
1627 float pVAJHU_ZZ_sig_selfDg1;
1631 mela.setMelaHiggsWidth(wPOLE);
1633 mela.computeP(pVAJHU_ZZ_sig_selfDg1, useConstants);
1634 cout <<
"pVAJHU_ZZ_sig_selfDg1: " << pVAJHU_ZZ_sig_selfDg1 <<
'\n' << endl;
1636 float pVAJHU_ZZ_sig_selfDg1gzgs2;
1641 mela.setMelaHiggsWidth(wPOLE);
1643 mela.computeP(pVAJHU_ZZ_sig_selfDg1gzgs2, useConstants);
1644 cout <<
"pVAJHU_ZZ_sig_selfDg1gzgs2: " << pVAJHU_ZZ_sig_selfDg1gzgs2 <<
'\n' << endl;
1646 float pVAJHU_ZZ_sig_selfDg1gzgs4;
1651 mela.setMelaHiggsWidth(wPOLE);
1653 mela.computeP(pVAJHU_ZZ_sig_selfDg1gzgs4, useConstants);
1654 cout <<
"pVAJHU_ZZ_sig_selfDg1gzgs4: " << pVAJHU_ZZ_sig_selfDg1gzgs4 <<
'\n' << endl;
1656 float pVAJHU_ZZ_sig_selfDg1gzgs2im;
1661 mela.setMelaHiggsWidth(wPOLE);
1663 mela.computeP(pVAJHU_ZZ_sig_selfDg1gzgs2im, useConstants);
1664 cout <<
"pVAJHU_ZZ_sig_selfDg1gzgs2im: " << pVAJHU_ZZ_sig_selfDg1gzgs2im <<
'\n' << endl;
1666 float pVAJHU_ZZ_sig_selfDg1gzgs4im;
1671 mela.setMelaHiggsWidth(wPOLE);
1673 mela.computeP(pVAJHU_ZZ_sig_selfDg1gzgs4im, useConstants);
1674 cout <<
"pVAJHU_ZZ_sig_selfDg1gzgs4im: " << pVAJHU_ZZ_sig_selfDg1gzgs4im <<
'\n' << endl;
1676 cout <<
"MCFM vs JHUGen Ratio comparison:" << endl;
1678 cout <<
"ZZ_sig_selfDg1gzgs2: " << pVAMCFM_ZZ_sig_selfDg1gzgs2/pVAMCFM_ZZ_sig_selfDg1 <<
'\t' << pVAJHU_ZZ_sig_selfDg1gzgs2/pVAJHU_ZZ_sig_selfDg1 << endl;
1679 cout <<
"ZZ_sig_selfDg1gzgs4: " << pVAMCFM_ZZ_sig_selfDg1gzgs4/pVAMCFM_ZZ_sig_selfDg1 <<
'\t' << pVAJHU_ZZ_sig_selfDg1gzgs4/pVAJHU_ZZ_sig_selfDg1 << endl;
1680 cout <<
"ZZ_sig_selfDg1gzgs2im: " << pVAMCFM_ZZ_sig_selfDg1gzgs2im/pVAMCFM_ZZ_sig_selfDg1 <<
'\t' << pVAJHU_ZZ_sig_selfDg1gzgs2im/pVAJHU_ZZ_sig_selfDg1 << endl;
1681 cout <<
"ZZ_sig_selfDg1gzgs4im: " << pVAMCFM_ZZ_sig_selfDg1gzgs4im/pVAMCFM_ZZ_sig_selfDg1 <<
'\t' << pVAJHU_ZZ_sig_selfDg1gzgs4im/pVAJHU_ZZ_sig_selfDg1 << endl;
1687 mela.setCurrentCandidateFromIndex(cindex);
1688 float pVAMCFM_ZG_bkg;
1690 mela.computeP(pVAMCFM_ZG_bkg, useConstants);
1691 cout <<
"pVAMCFM_qqZG_bkg: " << pVAMCFM_ZG_bkg <<
'\n' << endl;
1694 cout <<
"Removing Mela candidates\nSummary:" << endl;
1695 for (
int ic=0; ic<
mela.getNCandidates(); ic++){
1696 cout <<
"Candidate " << ic << endl;
1697 mela.setCurrentCandidateFromIndex(ic);
1702 mela.resetInputEvent();
1703 cout <<
"Removed..." << endl;
1706 cout.rdbuf(coutbuf);
1708 mela.setVerbosity(bkpverbosity);
1712 TString strtout = Form(
"testME_VH_JHUGen_Ping_%iTeV_%i.out", erg_tev, (
int)useConstants);
1713 ofstream tout(strtout.Data());
1714 streambuf* coutbuf =
cout.rdbuf();
1715 cout.rdbuf(tout.rdbuf());
1718 float wPOLE=4.07e-3;
1719 constexpr
double xw = 0.23119;
1726 mela.setVerbosity(verbosity);
1730 int GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
1731 const int nEntries = 6;
1732 double a1_array[nEntries][4] ={
1733 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
1734 { 238.65751023078761, 9.2808858562825005, 15.827726043466324, -237.95116187061188 },
1735 { 101.52463181523598, 27.359569630718468, -0.90299073100241323, -97.764458892691749 },
1736 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
1737 { 101.67043553688544, 2.1169375132239789, 0.77953005873937187, -101.64540506443268 },
1738 { 24.717634703436786, -1.1722249478288802, -5.9599387484197646, -23.959684558009428 }
1740 double a2_array[nEntries][4] ={
1741 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
1742 { 317.81904277258536, 2.5882005498984775, 21.352807448987718, -317.09037005377883 },
1743 { 180.10885677707822, -6.7240759244122792, 35.742176497019194, -176.39865053838915 },
1744 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
1745 { 95.655512770627581, -13.986023919404957, -37.960063551193414, -86.679881365440792 },
1746 { 49.137252081251319, -19.463268758477309, -28.879247017597017, -34.664676589120688 }
1748 double l1_array[nEntries][4] ={
1749 { 51.374202, 25.924766, 12.290178, 42.616376 },
1750 { 51.374202, 25.924766, 12.290178, 42.616376 },
1751 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
1752 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
1753 { 1365.4973848483, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
1754 { 1365.4973848483, 10.289826593755228, 25.205694382277809, -1365.2259480507332 }
1756 double l2_array[nEntries][4] ={
1757 { 271.875752, 70.427173, -11.138146, 261.769598 },
1758 { 21.481452, 9.489680, -9.336587, 16.858699 },
1759 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
1760 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
1761 { 22.7864275656, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
1762 { 471.7191967775, -35.976267906053060, 4.5169691019519895, -470.32360615864354 }
1764 double l3_array[nEntries][4] ={
1765 { 75.823478, -16.640412, 23.246999, 70.227220 },
1766 { 75.823478, -16.640412, 23.246999, 70.227220 },
1767 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
1768 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
1769 { 1895.7562658451, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
1770 { 1895.7562658451, 25.837804322120054, -28.821887970086259, -1895.3610513294620 }
1772 double l4_array[nEntries][4] ={
1773 { 21.481452, 9.489680, -9.336587, 16.858699 },
1774 { 271.875752, 70.427173, -11.138146, 261.769598 },
1775 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
1776 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
1777 { 471.7191967775, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
1778 { 22.7864275656, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 }
1787 for (
int ev = 2;
ev < 3;
ev++){
1789 TLorentzVector pAPart[2];
1790 pAPart[0].SetXYZT(a1_array[
ev][1], a1_array[
ev][2], a1_array[
ev][3], a1_array[
ev][0]);
1791 pAPart[1].SetXYZT(a2_array[
ev][1], a2_array[
ev][2], a2_array[
ev][3], a2_array[
ev][0]);
1792 for (
unsigned int iap=0; iap<2; iap++) aparticles.push_back(
SimpleParticle_t(0, pAPart[iap]));
1793 for (
unsigned int iap=0; iap<2; iap++) aparticles.push_back(
SimpleParticle_t((1-2*iap)*13, pAPart[iap]));
1794 for (
unsigned int iap=0; iap<2; iap++) aparticles.push_back(
SimpleParticle_t((1-2*iap)*14, pAPart[iap]));
1795 for (
unsigned int iap=0; iap<1; iap++) aparticles.push_back(
SimpleParticle_t(22, pAPart[iap]));
1797 int idOrdered[4] ={ GenLep1Id, GenLep2Id, GenLep3Id, GenLep4Id };
1798 TLorentzVector pOrdered[4];
1799 pOrdered[0].SetXYZT(l1_array[
ev][1], l1_array[
ev][2], l1_array[
ev][3], l1_array[
ev][0]);
1800 pOrdered[1].SetXYZT(l2_array[
ev][1], l2_array[
ev][2], l2_array[
ev][3], l2_array[
ev][0]);
1801 pOrdered[2].SetXYZT(l3_array[
ev][1], l3_array[
ev][2], l3_array[
ev][3], l3_array[
ev][0]);
1802 pOrdered[3].SetXYZT(l4_array[
ev][1], l4_array[
ev][2], l4_array[
ev][3], l4_array[
ev][0]);
1809 cout <<
"*******************************************************" << endl;
1810 for (
int ic=0; ic<
mela.getNCandidates(); ic++){
1811 cout <<
"Summary of candidate " << ic <<
":" << endl;
1812 mela.setCurrentCandidateFromIndex(ic);
1814 cout <<
"*******************************************************" << endl;
1816 cout <<
"*******************************************************" << endl;
1821 mela.setCurrentCandidateFromIndex(cindex);
1823 TString strlh[3]={
"leptonic",
"hadronic",
"photonic" };
1824 TString strzwh[3]={
"ZH",
"WH",
"GammaH" };
1826 for (
unsigned int ilh=0; ilh<3; ilh++){
1827 TString lhapp = strlh[ilh];
1828 for (
unsigned int izwa=0; izwa<3; izwa++){
1829 TString zwapp = strzwh[izwa];
1837 cout <<
"*******************************************************" << endl;
1838 cout <<
"Computing MEs for " << strlh[ilh] <<
" " << strzwh[izwa] << endl;
1842 mela.computeProdP_VH(p0mplus,
false, useConstants);
1843 cout <<
"p0mplus: " << p0mplus <<
'\n' << endl;
1847 mela.computeProdP_VH(p0g1prime2,
false, useConstants);
1848 cout <<
"p0g1prime2: " << p0g1prime2 <<
'\n' << endl;
1852 mela.computeProdP_VH(p0hplus,
false, useConstants);
1853 cout <<
"p0hplus: " << p0hplus <<
'\n' << endl;
1857 mela.computeProdP_VH(p0minus,
false, useConstants);
1858 cout <<
"p0minus: " << p0minus <<
'\n' << endl;
1860 float p0gzgs1prime2=0;
1862 mela.computeProdP_VH(p0gzgs1prime2,
false, useConstants);
1863 cout <<
"p0gzgs1prime2: " << p0gzgs1prime2 <<
'\n' << endl;
1867 mela.computeProdP_VH(p0hpluszgs,
false, useConstants);
1868 cout <<
"p0hpluszgs: " << p0hpluszgs <<
'\n' << endl;
1871 float p0mplus_selfD=0;
1874 mela.computeProdP_VH(p0mplus_selfD,
false, useConstants);
1875 cout <<
"p0mplus_selfD: " << p0mplus_selfD <<
'\n' << endl;
1878 float p0mplus_selfD_CT=0;
1899 mela.selfDM_Zprime=91.1876;
1900 mela.selfDGa_Zprime=2.4952;
1911 mela.selfDM_Wprime=80.399;
1912 mela.selfDGa_Wprime=2.085;
1914 mela.computeProdP_VH(p0mplus_selfD_CT,
false, useConstants);
1915 cout <<
"p0mplus_selfD_CT: " << p0mplus_selfD_CT <<
'\n' << endl;
1917 float p0mplus_selfD_VpVp=0;
1938 mela.selfDM_Zprime=91.1876;
1939 mela.selfDGa_Zprime=2.4952;
1950 mela.selfDM_Wprime=80.399;
1951 mela.selfDGa_Wprime=2.085;
1953 mela.computeProdP_VH(p0mplus_selfD_VpVp,
false, useConstants);
1954 cout <<
"p0mplus_selfD_VpVp: " << p0mplus_selfD_VpVp <<
'\n' << endl;
1956 float p0hplus_selfD_CT=0;
1977 mela.selfDM_Zprime=91.1876;
1978 mela.selfDGa_Zprime=2.4952;
1989 mela.selfDM_Wprime=80.399;
1990 mela.selfDGa_Wprime=2.085;
1992 mela.computeProdP_VH(p0hplus_selfD_CT,
false, useConstants);
1993 cout <<
"p0hplus_selfD_CT: " << p0hplus_selfD_CT <<
'\n' << endl;
1995 float p0hplus_selfD_VpVp=0;
2016 mela.selfDM_Zprime=91.1876;
2017 mela.selfDGa_Zprime=2.4952;
2028 mela.selfDM_Wprime=80.399;
2029 mela.selfDGa_Wprime=2.085;
2031 mela.computeProdP_VH(p0hplus_selfD_VpVp,
false, useConstants);
2032 cout <<
"p0hplus_selfD_VpVp: " << p0hplus_selfD_VpVp <<
'\n' << endl;
2034 float p0minus_selfD_CT=0;
2055 mela.selfDM_Zprime=91.1876;
2056 mela.selfDGa_Zprime=2.4952;
2067 mela.selfDM_Wprime=80.399;
2068 mela.selfDGa_Wprime=2.085;
2070 mela.computeProdP_VH(p0minus_selfD_CT,
false, useConstants);
2071 cout <<
"p0minus_selfD_CT: " << p0minus_selfD_CT <<
'\n' << endl;
2073 float p0minus_selfD_VpVp=0;
2094 mela.selfDM_Zprime=91.1876;
2095 mela.selfDGa_Zprime=2.4952;
2106 mela.selfDM_Wprime=80.399;
2107 mela.selfDGa_Wprime=2.085;
2109 mela.computeProdP_VH(p0minus_selfD_VpVp,
false, useConstants);
2110 cout <<
"p0minus_selfD_VpVp: " << p0minus_selfD_VpVp <<
'\n' << endl; }
2112 float p0g1prime2_selfD=0;
2115 mela.computeProdP_VH(p0g1prime2_selfD,
false, useConstants);
2116 cout <<
"p0g1prime2_selfD: " << p0g1prime2_selfD <<
'\n' << endl;
2118 float p0hplus_selfD=0;
2121 mela.computeProdP_VH(p0hplus_selfD,
false, useConstants);
2122 cout <<
"p0hplus_selfD: " << p0hplus_selfD <<
'\n' << endl;
2124 float p0minus_selfD=0;
2127 mela.computeProdP_VH(p0minus_selfD,
false, useConstants);
2128 cout <<
"p0minus_selfD: " << p0minus_selfD <<
'\n' << endl;
2130 float p0gzgs1prime2_selfD=0;
2133 mela.computeProdP_VH(p0gzgs1prime2_selfD,
false, useConstants);
2134 cout <<
"p0gzgs1prime2_selfD: " << p0gzgs1prime2_selfD <<
'\n' << endl;
2136 float p0hpluszgs_selfD=0;
2139 mela.computeProdP_VH(p0hpluszgs_selfD,
false, useConstants);
2140 cout <<
"p0hpluszgs_selfD: " << p0hpluszgs_selfD <<
'\n' << endl;
2143 mela.computeDijetConvBW(recoBW);
2144 cout <<
"Reco BW: " << recoBW <<
'\n' << endl;
2147 mela.computeDijetConvBW(idealBW,
true);
2148 cout <<
"Ideal BW: " << idealBW <<
'\n' << endl;
2150 cout <<
"*******************************************************" << endl;
2152 float mVstar = 0, mV = 0, costhetastar = 0, costheta1 = 0, costheta2 = 0, Phi = 0, Phi1 = 0;
2162 cout <<
"VH (" <<
TVar::ProductionName(
prod) <<
") angles: " << mVstar <<
" " << mV <<
" " << costheta1 <<
" " << costheta2 <<
" " << Phi <<
" " << costhetastar <<
" " << Phi1 << endl;
2167 mela.resetInputEvent();
2170 cout.rdbuf(coutbuf);
2172 mela.setVerbosity(bkpverbosity);
2176 TString strtout = Form(
"testME_Dec_JHUGen_Ping_%iTeV_%i.out", erg_tev, (
int)useConstants);
2177 ofstream tout(strtout.Data());
2178 streambuf* coutbuf =
cout.rdbuf();
2179 cout.rdbuf(tout.rdbuf());
2182 float wPOLE=4.07e-3;
2189 auto bkpprecision =
cout.precision(10);
2190 mela.setVerbosity(verbosity);
2194 int GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
2195 const int nEntries = 6;
2196 double a1_array[nEntries][4] ={
2197 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
2198 { 238.65751023078761, 9.2808858562825005, 15.827726043466324, -237.95116187061188 },
2199 { 101.52463181523598, 27.359569630718468, -0.90299073100241323, -97.764458892691749 },
2200 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
2201 { 101.67043553688544, 2.1169375132239789, 0.77953005873937187, -101.64540506443268 },
2202 { 24.717634703436786, -1.1722249478288802, -5.9599387484197646, -23.959684558009428 }
2204 double a2_array[nEntries][4] ={
2205 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
2206 { 317.81904277258536, 2.5882005498984775, 21.352807448987718, -317.09037005377883 },
2207 { 180.10885677707822, -6.7240759244122792, 35.742176497019194, -176.39865053838915 },
2208 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
2209 { 95.655512770627581, -13.986023919404957, -37.960063551193414, -86.679881365440792 },
2210 { 49.137252081251319, -19.463268758477309, -28.879247017597017, -34.664676589120688 }
2212 double l1_array[nEntries][4] ={
2213 { 51.374202, 25.924766, 12.290178, 42.616376 },
2214 { 51.374202, 25.924766, 12.290178, 42.616376 },
2215 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
2216 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
2217 { 1365.4973848483, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
2218 { 1365.4973848483, 10.289826593755228, 25.205694382277809, -1365.2259480507332 }
2220 double l2_array[nEntries][4] ={
2221 { 271.875752, 70.427173, -11.138146, 261.769598 },
2222 { 21.481452, 9.489680, -9.336587, 16.858699 },
2223 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
2224 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
2225 { 22.7864275656, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
2226 { 471.7191967775, -35.976267906053060, 4.5169691019519895, -470.32360615864354 }
2228 double l3_array[nEntries][4] ={
2229 { 75.823478, -16.640412, 23.246999, 70.227220 },
2230 { 75.823478, -16.640412, 23.246999, 70.227220 },
2231 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
2232 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
2233 { 1895.7562658451, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
2234 { 1895.7562658451, 25.837804322120054, -28.821887970086259, -1895.3610513294620 }
2236 double l4_array[nEntries][4] ={
2237 { 21.481452, 9.489680, -9.336587, 16.858699 },
2238 { 271.875752, 70.427173, -11.138146, 261.769598 },
2239 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
2240 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
2241 { 471.7191967775, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
2242 { 22.7864275656, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 }
2251 for (
int ev = 2;
ev < 3;
ev++){
2253 TLorentzVector pAPart[2];
2254 pAPart[0].SetXYZT(a1_array[
ev][1], a1_array[
ev][2], a1_array[
ev][3], a1_array[
ev][0]);
2255 pAPart[1].SetXYZT(a2_array[
ev][1], a2_array[
ev][2], a2_array[
ev][3], a2_array[
ev][0]);
2256 for (
unsigned int iap=0; iap<2; iap++) aparticles.push_back(
SimpleParticle_t(0, pAPart[iap]));
2257 for (
unsigned int iap=0; iap<2; iap++) aparticles.push_back(
SimpleParticle_t((1-2*iap)*13, pAPart[iap]));
2258 for (
unsigned int iap=0; iap<2; iap++) aparticles.push_back(
SimpleParticle_t((1-2*iap)*14, pAPart[iap]));
2259 for (
unsigned int iap=0; iap<1; iap++) aparticles.push_back(
SimpleParticle_t(22, pAPart[iap]));
2261 int idOrdered[4] ={ GenLep1Id, GenLep2Id, GenLep3Id, GenLep4Id };
2262 TLorentzVector pOrdered[4];
2263 pOrdered[0].SetXYZT(l1_array[
ev][1], l1_array[
ev][2], l1_array[
ev][3], l1_array[
ev][0]);
2264 pOrdered[1].SetXYZT(l2_array[
ev][1], l2_array[
ev][2], l2_array[
ev][3], l2_array[
ev][0]);
2265 pOrdered[2].SetXYZT(l3_array[
ev][1], l3_array[
ev][2], l3_array[
ev][3], l3_array[
ev][0]);
2266 pOrdered[3].SetXYZT(l4_array[
ev][1], l4_array[
ev][2], l4_array[
ev][3], l4_array[
ev][0]);
2273 cout <<
"*******************************************************" << endl;
2274 for (
int ic=0; ic<
mela.getNCandidates(); ic++){
2275 cout <<
"Summary of candidate " << ic <<
":" << endl;
2276 mela.setCurrentCandidateFromIndex(ic);
2278 cout <<
"*******************************************************" << endl;
2280 cout <<
"*******************************************************" << endl;
2285 mela.setCurrentCandidateFromIndex(cindex);
2287 TString strlh[3]={
"leptonic",
"hadronic",
"photonic" };
2288 TString strzwh[3]={
"ZH",
"WH",
"GammaH" };
2291 cout <<
"*******************************************************" << endl;
2292 cout <<
"Computing MEs for ZZ decay" << endl;
2296 mela.computeP(p0mplus, useConstants);
2297 cout <<
"p0mplus: " << p0mplus <<
'\n' << endl;
2301 mela.computeP(p0g1prime2, useConstants);
2302 cout <<
"p0g1prime2: " << p0g1prime2 <<
'\n' << endl;
2306 mela.computeP(p0hplus, useConstants);
2307 cout <<
"p0hplus: " << p0hplus <<
'\n' << endl;
2311 mela.computeP(p0minus, useConstants);
2312 cout <<
"p0minus: " << p0minus <<
'\n' << endl;
2314 float p0gzgs1prime2=0;
2316 mela.computeP(p0gzgs1prime2, useConstants);
2317 cout <<
"p0gzgs1prime2: " << p0gzgs1prime2 <<
'\n' << endl;
2321 mela.computeP(p0hpluszgs, useConstants);
2322 cout <<
"p0hpluszgs: " << p0hpluszgs <<
'\n' << endl;
2325 float p0mplus_selfD=0;
2329 mela.computeP(p0mplus_selfD, useConstants);
2330 cout <<
"p0mplus_selfD: " << p0mplus_selfD <<
'\n' << endl;
2332 float p0mplus_selfD_CT=0;
2334 double xw = 0.23119;
2354 mela.selfDM_Zprime=91.1876;
2355 mela.selfDGa_Zprime=2.4952;
2356 mela.computeP(p0mplus_selfD_CT, useConstants);
2357 cout <<
"p0mplus_selfD_CT: " << p0mplus_selfD_CT <<
'\n' << endl;
2359 float p0g1prime2_selfD=0;
2363 mela.computeP(p0g1prime2_selfD, useConstants);
2364 cout <<
"p0g1prime2_selfD: " << p0g1prime2_selfD <<
'\n' << endl;
2366 float p0hplus_selfD=0;
2370 mela.computeP(p0hplus_selfD, useConstants);
2371 cout <<
"p0hplus_selfD: " << p0hplus_selfD <<
'\n' << endl;
2373 float p0minus_selfD=0;
2377 mela.computeP(p0minus_selfD, useConstants);
2378 cout <<
"p0minus_selfD: " << p0minus_selfD <<
'\n' << endl;
2380 float p0gzgs1prime2_selfD=0;
2384 mela.computeP(p0gzgs1prime2_selfD, useConstants);
2385 cout <<
"p0gzgs1prime2_selfD: " << p0gzgs1prime2_selfD <<
'\n' << endl;
2387 float p0hpluszgs_selfD=0;
2391 mela.computeP(p0hpluszgs_selfD, useConstants);
2392 cout <<
"p0hpluszgs_selfD: " << p0hpluszgs_selfD <<
'\n' << endl;
2394 float costhetastar = 0, costheta1 = 0, costheta2 = 0, Phi = 0, Phi1 = 0;
2395 float costhetastarMELA = 0, costheta1MELA = 0, costheta2MELA = 0, PhiMELA = 0, Phi1MELA = 0, m1MELA = 0, m2MELA = 0, m4lMELA = 0;
2408 mela.computeDecayAngles(
2419 cout <<
"TUtil decay angles: " << costheta1 <<
" " << costheta2 <<
" " << Phi <<
" " << costhetastar <<
" " << Phi1 << endl;
2420 cout <<
"MELA decay angles: " << costheta1MELA <<
" " << costheta2MELA <<
" " << PhiMELA <<
" " << costhetastarMELA <<
" " << Phi1MELA << endl;
2421 cout <<
"MELA masses: " << m4lMELA <<
" " << m1MELA <<
" " << m2MELA << endl;
2423 mela.resetInputEvent();
2426 cout.rdbuf(coutbuf);
2428 mela.setVerbosity(bkpverbosity);
2429 cout.precision(bkpprecision);
2433 TString strtout = Form(
"testME_VBF_JHUGen_Ping_%iTeV_%i.out", erg_tev, (
int)useConstants);
2434 ofstream tout(strtout.Data());
2435 streambuf* coutbuf =
cout.rdbuf();
2436 cout.rdbuf(tout.rdbuf());
2439 float wPOLE=4.07e-3;
2446 mela.setVerbosity(verbosity);
2450 int GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
2451 const int nEntries = 6;
2452 double a1_array[nEntries][4] ={
2453 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
2454 { 238.65751023078761, 9.2808858562825005, 15.827726043466324, -237.95116187061188 },
2455 { 101.52463181523598, 27.359569630718468, -0.90299073100241323, -97.764458892691749 },
2456 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
2457 { 101.67043553688544, 2.1169375132239789, 0.77953005873937187, -101.64540506443268 },
2458 { 24.717634703436786, -1.1722249478288802, -5.9599387484197646, -23.959684558009428 }
2460 double a2_array[nEntries][4] ={
2461 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
2462 { 317.81904277258536, 2.5882005498984775, 21.352807448987718, -317.09037005377883 },
2463 { 180.10885677707822, -6.7240759244122792, 35.742176497019194, -176.39865053838915 },
2464 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
2465 { 95.655512770627581, -13.986023919404957, -37.960063551193414, -86.679881365440792 },
2466 { 49.137252081251319, -19.463268758477309, -28.879247017597017, -34.664676589120688 }
2468 double l1_array[nEntries][4] ={
2469 { 51.374202, 25.924766, 12.290178, 42.616376 },
2470 { 51.374202, 25.924766, 12.290178, 42.616376 },
2471 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
2472 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
2473 { 1365.4973848483, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
2474 { 1365.4973848483, 10.289826593755228, 25.205694382277809, -1365.2259480507332 }
2476 double l2_array[nEntries][4] ={
2477 { 271.875752, 70.427173, -11.138146, 261.769598 },
2478 { 21.481452, 9.489680, -9.336587, 16.858699 },
2479 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
2480 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
2481 { 22.7864275656, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
2482 { 471.7191967775, -35.976267906053060, 4.5169691019519895, -470.32360615864354 }
2484 double l3_array[nEntries][4] ={
2485 { 75.823478, -16.640412, 23.246999, 70.227220 },
2486 { 75.823478, -16.640412, 23.246999, 70.227220 },
2487 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
2488 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
2489 { 1895.7562658451, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
2490 { 1895.7562658451, 25.837804322120054, -28.821887970086259, -1895.3610513294620 }
2492 double l4_array[nEntries][4] ={
2493 { 21.481452, 9.489680, -9.336587, 16.858699 },
2494 { 271.875752, 70.427173, -11.138146, 261.769598 },
2495 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
2496 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
2497 { 471.7191967775, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
2498 { 22.7864275656, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 }
2507 for (
int ev = 2;
ev < 3;
ev++){
2509 TLorentzVector pAPart[2];
2510 pAPart[0].SetXYZT(a1_array[
ev][1], a1_array[
ev][2], a1_array[
ev][3], a1_array[
ev][0]);
2511 pAPart[1].SetXYZT(a2_array[
ev][1], a2_array[
ev][2], a2_array[
ev][3], a2_array[
ev][0]);
2512 for (
unsigned int iap=0; iap<2; iap++) aparticles.push_back(
SimpleParticle_t(0, pAPart[iap]));
2513 for (
unsigned int iap=0; iap<2; iap++) aparticles.push_back(
SimpleParticle_t((1-2*iap)*13, pAPart[iap]));
2514 for (
unsigned int iap=0; iap<2; iap++) aparticles.push_back(
SimpleParticle_t((1-2*iap)*14, pAPart[iap]));
2515 for (
unsigned int iap=0; iap<1; iap++) aparticles.push_back(
SimpleParticle_t(22, pAPart[iap]));
2517 int idOrdered[4] ={ GenLep1Id, GenLep2Id, GenLep3Id, GenLep4Id };
2518 TLorentzVector pOrdered[4];
2519 pOrdered[0].SetXYZT(l1_array[
ev][1], l1_array[
ev][2], l1_array[
ev][3], l1_array[
ev][0]);
2520 pOrdered[1].SetXYZT(l2_array[
ev][1], l2_array[
ev][2], l2_array[
ev][3], l2_array[
ev][0]);
2521 pOrdered[2].SetXYZT(l3_array[
ev][1], l3_array[
ev][2], l3_array[
ev][3], l3_array[
ev][0]);
2522 pOrdered[3].SetXYZT(l4_array[
ev][1], l4_array[
ev][2], l4_array[
ev][3], l4_array[
ev][0]);
2530 cout <<
"*******************************************************" << endl;
2531 for (
int ic=0; ic<
mela.getNCandidates(); ic++){
2532 cout <<
"Summary of candidate " << ic <<
":" << endl;
2533 mela.setCurrentCandidateFromIndex(ic);
2535 cout <<
"*******************************************************" << endl;
2537 cout <<
"*******************************************************" << endl;
2543 mela.setCurrentCandidateFromIndex(cindex);
2545 TString strlh[1]={
"hadronic" };
2546 TString strzwh[3]={
"VBF",
"Z-BF",
"W-BF" };
2548 for (
unsigned int ilh=0; ilh<1; ilh++){
2549 TString lhapp = strlh[ilh];
2550 for (
unsigned int izwa=0; izwa<3; izwa++){
2551 TString zwapp = strzwh[izwa];
2554 cout <<
"*******************************************************" << endl;
2555 cout <<
"Computing MEs for " << strlh[ilh] <<
" " << strzwh[izwa] << endl;
2560 mela.computeProdP(p0mplus, useConstants);
2561 cout <<
"p0mplus: " << p0mplus <<
'\n' << endl;
2565 mela.computeProdP(p0g1prime2, useConstants);
2566 cout <<
"p0g1prime2: " << p0g1prime2 <<
'\n' << endl;
2570 mela.computeProdP(p0hplus, useConstants);
2571 cout <<
"p0hplus: " << p0hplus <<
'\n' << endl;
2575 mela.computeProdP(p0minus, useConstants);
2576 cout <<
"p0minus: " << p0minus <<
'\n' << endl;
2578 float p0gzgs1prime2=0;
2580 mela.computeProdP(p0gzgs1prime2, useConstants);
2581 cout <<
"p0gzgs1prime2: " << p0gzgs1prime2 <<
'\n' << endl;
2585 mela.computeProdP(p0hpluszgs, useConstants);
2586 cout <<
"p0hpluszgs: " << p0hpluszgs <<
'\n' << endl;
2590 float p0mplus_selfD=0;
2594 if (izwa!=0)
mela.differentiate_HWW_HZZ=
true;
2595 mela.computeProdP(p0mplus_selfD, useConstants);
2596 cout <<
"p0mplus_selfD: " << p0mplus_selfD <<
'\n' << endl;
2599 float p0g1prime2_selfD=0;
2602 mela.computeProdP(p0g1prime2_selfD, useConstants);
2603 cout <<
"p0g1prime2_selfD: " << p0g1prime2_selfD <<
'\n' << endl;
2606 float p0hplus_selfD=0;
2610 if (izwa!=0)
mela.differentiate_HWW_HZZ=
true;
2611 mela.computeProdP(p0hplus_selfD, useConstants);
2612 cout <<
"p0hplus_selfD: " << p0hplus_selfD <<
'\n' << endl;
2614 float p0minus_selfD=0;
2618 if (izwa!=0)
mela.differentiate_HWW_HZZ=
true;
2619 mela.computeProdP(p0minus_selfD, useConstants);
2620 cout <<
"p0minus_selfD: " << p0minus_selfD <<
'\n' << endl;
2623 float p0gzgs1prime2_selfD=0;
2626 mela.computeProdP(p0gzgs1prime2_selfD, useConstants);
2627 cout <<
"p0gzgs1prime2_selfD: " << p0gzgs1prime2_selfD <<
'\n' << endl;
2629 float p0hpluszgs_selfD=0;
2632 mela.computeProdP(p0hpluszgs_selfD, useConstants);
2633 cout <<
"p0hpluszgs_selfD: " << p0hpluszgs_selfD <<
'\n' << endl;
2636 constexpr
double xw = 0.23119;
2638 float p0mplus_selfD_CT=0;
2640 if (izwa==1 || izwa==0){
2659 mela.selfDM_Zprime=91.1876;
2660 mela.selfDGa_Zprime=2.4952;
2662 if (izwa==2 || izwa==0){
2670 mela.selfDM_Wprime=80.399;
2671 mela.selfDGa_Wprime=2.085;
2673 mela.differentiate_HWW_HZZ=
true;
2674 mela.computeProdP(p0mplus_selfD_CT, useConstants);
2675 cout <<
"p0mplus_selfD_CT: " << p0mplus_selfD_CT <<
'\n' << endl;
2677 float p0hplus_selfD_CT=0;
2679 if (izwa==1 || izwa==0){
2698 mela.selfDM_Zprime=91.1876;
2699 mela.selfDGa_Zprime=2.4952;
2701 if (izwa==2 || izwa==0){
2709 mela.selfDM_Wprime=80.399;
2710 mela.selfDGa_Wprime=2.085;
2712 mela.differentiate_HWW_HZZ=
true;
2713 mela.computeProdP(p0hplus_selfD_CT, useConstants);
2714 cout <<
"p0hplus_selfD_CT: " << p0hplus_selfD_CT <<
'\n' << endl;
2716 float p0minus_selfD_CT=0;
2718 if (izwa==1 || izwa==0){
2737 mela.selfDM_Zprime=91.1876;
2738 mela.selfDGa_Zprime=2.4952;
2740 if (izwa==2 || izwa==0){
2748 mela.selfDM_Wprime=80.399;
2749 mela.selfDGa_Wprime=2.085;
2751 mela.differentiate_HWW_HZZ=
true;
2752 mela.computeProdP(p0minus_selfD_CT, useConstants);
2753 cout <<
"p0minus_selfD_CT: " << p0minus_selfD_CT <<
'\n' << endl;
2755 float p0mplus_selfD_VpVp=0;
2757 if (izwa==1 || izwa==0){
2776 mela.selfDM_Zprime=91.1876;
2777 mela.selfDGa_Zprime=2.4952;
2779 if (izwa==2 || izwa==0){
2787 mela.selfDM_Wprime=80.399;
2788 mela.selfDGa_Wprime=2.085;
2790 mela.differentiate_HWW_HZZ=
true;
2791 mela.computeProdP(p0mplus_selfD_VpVp, useConstants);
2792 cout <<
"p0mplus_selfD_VpVp: " << p0mplus_selfD_VpVp <<
'\n' << endl;
2794 float p0hplus_selfD_VpVp=0;
2796 if (izwa==1 || izwa==0){
2815 mela.selfDM_Zprime=91.1876;
2816 mela.selfDGa_Zprime=2.4952;
2818 if (izwa==2 || izwa==0){
2826 mela.selfDM_Wprime=80.399;
2827 mela.selfDGa_Wprime=2.085;
2829 mela.differentiate_HWW_HZZ=
true;
2830 mela.computeProdP(p0hplus_selfD_VpVp, useConstants);
2831 cout <<
"p0hplus_selfD_VpVp: " << p0hplus_selfD_VpVp <<
'\n' << endl;
2833 float p0minus_selfD_VpVp=0;
2835 if (izwa==1 || izwa==0){
2854 mela.selfDM_Zprime=91.1876;
2855 mela.selfDGa_Zprime=2.4952;
2857 if (izwa==2 || izwa==0){
2865 mela.selfDM_Wprime=80.399;
2866 mela.selfDGa_Wprime=2.085;
2868 mela.differentiate_HWW_HZZ=
true;
2869 mela.computeProdP(p0minus_selfD_VpVp, useConstants);
2870 cout <<
"p0minus_selfD_VpVp: " << p0minus_selfD_VpVp <<
'\n' << endl;
2872 float p0minus_selfD_CT_VpVp;
2874 if (izwa==1 || izwa==0){
2894 mela.selfDM_Zprime=91.1876;
2895 mela.selfDGa_Zprime=2.4952;
2897 if (izwa==2 || izwa==0){
2906 mela.selfDM_Wprime=80.399;
2907 mela.selfDGa_Wprime=2.085;
2909 mela.differentiate_HWW_HZZ=
true;
2910 mela.computeProdP(p0minus_selfD_CT_VpVp, useConstants);
2911 cout <<
"p0minus_selfD_CT_VpVp: " << p0minus_selfD_CT_VpVp <<
'\n' << endl;
2913 cout <<
"*******************************************************" << endl;
2917 float costhetastar, costheta1re, costheta1im, costheta2re, costheta2im, Phi, Phi1, Q2V1, Q2V2;
2918 mela.computeVBFAngles(
2927 cout <<
"Lab-frame VBF angles: " << costheta1re <<
" " << costheta2re <<
" " << Phi <<
" " << costhetastar <<
" " << Phi1 <<
" " << Q2V1 <<
" " << Q2V2 << endl;
2928 mela.computeVBFAngles_ComplexBoost(
2931 costheta1re, costheta1im,
2932 costheta2re, costheta2im,
2937 cout <<
"Complex VBF angles: " << costheta1re <<
" " << costheta1im <<
" " << costheta2re <<
" " << costheta2im <<
" " << Phi <<
" " << costhetastar <<
" " << Phi1 <<
" " << Q2V1 <<
" " << Q2V2 << endl;
2939 mela.resetInputEvent();
2940 cout <<
"Removed..." << endl;
2943 cout.rdbuf(coutbuf);
2945 mela.setVerbosity(bkpverbosity);
2950 ofstream tout(TString(
"testME_JVBF_JHUGen_Ping.out"));
2951 streambuf* coutbuf =
cout.rdbuf();
2952 cout.rdbuf(tout.rdbuf());
2956 float wPOLE=4.07e-3;
2962 mela.setVerbosity(verbosity);
2965 float pingMom[8][4]={
2966 { 0, 0, 865.37881546721542, 865.37881546721542 },
2967 { 0, 0, -624.03396598421773, 624.03396598421773 },
2968 { 7.6145299215002638, -17.259247740062808, 9.4660586470659975, 21.106135714241464 },
2969 { 90.901719112641416, -69.683681833050798, 32.066319224729980, 118.94194752090492 },
2970 { 78.476352131782917, -35.264818847819797, -8.8615639484695272, 86.490881645951262 },
2971 { 191.68369742375290, -197.85205601463366, 100.99437243828194, 293.40746273989180 },
2972 { -131.59521398083137, 330.56000090294270, 437.01695094737875, 563.53440884737279 },
2973 { -237.08108460884614, -10.500196467375645, -329.33728782598945, 405.93194498307093 }
2975 int idOrdered[8] ={ 1, 2, 11, -11, 13, -13, 1, 2 };
2977 for (
unsigned int ip=0; ip<2; ip++){
2980 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
2984 for (
unsigned int ip=2; ip<6; ip++){
2987 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
2993 TLorentzVector(pingMom[6][0], pingMom[6][1], pingMom[6][2], pingMom[6][3])
2998 std::vector<TVar::EventScaleScheme> eventscaleschemes;
3003 mela.computeProdP(meval_init);
3004 cout <<
"Probability = " << meval_init << endl;
3005 mela.getPAux(meval_init);
3006 cout <<
"Auxiliary probability = " << meval_init << endl;
3008 mela.resetInputEvent();
3010 cout.rdbuf(coutbuf);
3012 mela.setVerbosity(bkpverbosity);
3017 ofstream tout(TString(
"testME_Prop_Ping_")+(
long)useMothers+
".out");
3018 streambuf* coutbuf =
cout.rdbuf();
3019 cout.rdbuf(tout.rdbuf());
3023 float wPOLE=4.07e-3;
3027 melaptr.reset(
new Mela(erg_tev, mPOLE, verbosity));
3031 mela.setVerbosity(verbosity);
3034 if (verbosity>=
TVar::DEBUG)
cout <<
"Mela candidate decay mode initializing" << endl;
3036 if (verbosity>=
TVar::DEBUG)
cout <<
"Mela candidate decay mode initialized" << endl;
3038 float GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
3039 const int nEntries = 6;
3040 double l1_array[nEntries][4] ={
3041 { 51.374202, 25.924766, 12.290178, 42.616376 },
3042 { 51.374202, 25.924766, 12.290178, 42.616376 },
3043 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
3044 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
3045 { 1365.4973848483, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
3046 { 1365.4973848483, 10.289826593755228, 25.205694382277809, -1365.2259480507332 }
3048 double l2_array[nEntries][4] ={
3049 { 271.875752, 70.427173, -11.138146, 261.769598 },
3050 { 21.481452, 9.489680, -9.336587, 16.858699 },
3051 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
3052 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
3053 { 22.7864275656, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
3054 { 471.7191967775, -35.976267906053060, 4.5169691019519895, -470.32360615864354 }
3056 double l3_array[nEntries][4] ={
3057 { 75.823478, -16.640412, 23.246999, 70.227220 },
3058 { 75.823478, -16.640412, 23.246999, 70.227220 },
3059 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
3060 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
3061 { 1895.7562658451, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
3062 { 1895.7562658451, 25.837804322120054, -28.821887970086259, -1895.3610513294620 }
3064 double l4_array[nEntries][4] ={
3065 { 21.481452, 9.489680, -9.336587, 16.858699 },
3066 { 271.875752, 70.427173, -11.138146, 261.769598 },
3067 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
3068 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
3069 { 471.7191967775, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
3070 { 22.7864275656, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 }
3078 for (
int ev = 2;
ev < 3;
ev++){
3079 int idOrdered[4] ={
static_cast<int>(GenLep1Id),
static_cast<int>(GenLep2Id),
static_cast<int>(GenLep3Id),
static_cast<int>(GenLep4Id) };
3080 TLorentzVector pOrdered[4];
3081 pOrdered[0].SetXYZT(l1_array[
ev][1], l1_array[
ev][2], l1_array[
ev][3], l1_array[
ev][0]);
3082 pOrdered[1].SetXYZT(l2_array[
ev][1], l2_array[
ev][2], l2_array[
ev][3], l2_array[
ev][0]);
3083 pOrdered[2].SetXYZT(l3_array[
ev][1], l3_array[
ev][2], l3_array[
ev][3], l3_array[
ev][0]);
3084 pOrdered[3].SetXYZT(l4_array[
ev][1], l4_array[
ev][2], l4_array[
ev][3], l4_array[
ev][0]);
3086 for (
unsigned int idau=0; idau<4; idau++) daughters_ZZ.push_back(
SimpleParticle_t(idOrdered[idau], pOrdered[idau]));
3089 TLorentzVector pTotal = pOrdered[0]+pOrdered[1]+pOrdered[2]+pOrdered[3];
3090 TLorentzVector pTotal_dummy=pTotal;
3091 TLorentzVector pTotal_perp(pTotal.X(), pTotal.Y(), 0, pTotal.T());
3092 pTotal_dummy.Boost(-pTotal_perp.BoostVector());
3093 TLorentzVector pMothers[2];
3094 pMothers[0].SetXYZT(0, 0, (pTotal_dummy.Z()+pTotal_dummy.T())/2., (pTotal_dummy.Z()+pTotal_dummy.T())/2.);
3095 pMothers[1].SetXYZT(0, 0, (pTotal_dummy.Z()-pTotal_dummy.T())/2., (-pTotal_dummy.Z()+pTotal_dummy.T())/2.);
3096 for (
int im=0; im<2; im++) pMothers[im].Boost(pTotal_perp.BoostVector());
3098 for (
unsigned int im=0; im<2; im++) mothers_QQB.push_back(
SimpleParticle_t(1-2*im, pMothers[im]));
3100 for (
unsigned int im=0; im<2; im++) mothers_GG.push_back(
SimpleParticle_t(21, pMothers[im]));
3102 if (useMothers==1) mothersPtr=&mothers_GG;
3103 else if (useMothers==2) mothersPtr=&mothers_QQB;
3111 mela.setCurrentCandidateFromIndex(cindex);
3114 cout <<
"Computing Prop(500 GeV) at mass=" <<
mela.getCurrentCandidate()->m() << endl;
3115 for (
int ps=0; ps<=3; ps++){
3123 mela.setMelaHiggsMassWidth(mH, -1, 0);
3125 cout <<
"prop[" << ps <<
"]: " << prop << endl;
3129 cout <<
"Removing Mela candidates\nSummary:" << endl;
3130 for (
int ic=0; ic<
mela.getNCandidates(); ic++){
3131 cout <<
"Candidate " << ic << endl;
3132 mela.setCurrentCandidateFromIndex(ic);
3137 mela.resetInputEvent();
3138 cout <<
"Removed..." << endl;
3141 cout.rdbuf(coutbuf);
3143 mela.setVerbosity(bkpverbosity);
3150 if (order[0]!=-1)
cout <<
"testME_ProdDec_MCFM_Ordering::Order of particles should be "
3152 << order[1] << endl;
3157 int ZZWWdec_onevertexflag;
3159 outname = Form(
"testME_ProdDec_MCFM_JHUGen_WBFZZ_Comparison_Ping_%i_%i_%i_%s.out", motherflavor, isZZWW, vbfvhchannel, (hasInterf ?
"4l" :
"2l2l"));
3160 ZZWWdec_onevertexflag=2;
3162 else if(decZZWW==2){
3163 outname = Form(
"testME_ProdDec_MCFM_JHUGen_WBFWW_Comparison_Ping_%i_%i_%i.out", motherflavor, isZZWW, vbfvhchannel);
3164 ZZWWdec_onevertexflag=1;
3167 if (hasInterf==1 && decZZWW!=1)
return;
3174 for (
int ii=0; ii<
nmsq; ii++){
for (
int jj=0; jj<
nmsq; jj++) mearray[ii][jj]=0; }
3176 void add(
const mcfmme& other){
3177 proddecme+=other.proddecme;
3178 for (
int ii=0; ii<
nmsq; ii++){
for (
int jj=0; jj<
nmsq; jj++) mearray[ii][jj]+=(other.mearray)[ii][jj]; }
3180 void multiplyarray(
const float val){
3181 for (
int ii=0; ii<
nmsq; ii++){
for (
int jj=0; jj<
nmsq; jj++) mearray[ii][jj]*=val; }
3184 for (
int ii=0; ii<
nmsq; ii++){
for (
int jj=0; jj<
nmsq; jj++)
cout <<
'\t' << mearray[ii][jj];
cout << endl; }
3196 for (
int ii=0; ii<
nmsq; ii++){
for (
int jj=0; jj<
nmsq; jj++) mearray[ii][jj]=0; }
3198 void multiplyarray(
const float val){
3199 for (
int ii=0; ii<
nmsq; ii++){
for (
int jj=0; jj<
nmsq; jj++) mearray[ii][jj]*=val; }
3202 for (
int ii=0; ii<
nmsq; ii++){
for (
int jj=0; jj<
nmsq; jj++)
cout <<
'\t' << mearray[ii][jj];
cout << endl; }
3208 float wPOLE=4.07e-3;
3213 int idMother[2]={ 0 };
3214 if (vbfvhchannel<=1){
3216 if (motherflavor==0){
3219 else if (motherflavor==1){
3220 idMother[0]=2; idMother[1]=1;
3222 (isZZWW==1 && vbfvhchannel==0) ||
3223 (isZZWW==2 && vbfvhchannel==0);
3225 else if (motherflavor==2){
3226 idMother[0]=-2; idMother[1]=-1;
3228 (isZZWW==1 && vbfvhchannel==0) ||
3229 (isZZWW==2 && vbfvhchannel==0);
3232 else if (motherflavor==3){
3233 idMother[0]=2; idMother[1]=-1;
3235 (isZZWW==1 && vbfvhchannel==0) ||
3236 (isZZWW==2 && vbfvhchannel>=1) ||
3237 (isZZWW==0 && vbfvhchannel==0) ||
3238 (isZZWW==0 && vbfvhchannel>=1);
3240 else if (motherflavor==4){
3241 idMother[0]=-2; idMother[1]=1;
3243 (isZZWW==1 && vbfvhchannel==0) ||
3244 (isZZWW==2 && vbfvhchannel>=1) ||
3245 (isZZWW==0 && vbfvhchannel==0) ||
3246 (isZZWW==0 && vbfvhchannel==1);
3249 else if (motherflavor==5){
3250 idMother[0]=2; idMother[1]=-2;
3252 (isZZWW==1 && vbfvhchannel==0) ||
3253 (isZZWW==2 && vbfvhchannel==0) ||
3254 (isZZWW==1 && vbfvhchannel>=1);
3256 else if (motherflavor==6){
3257 idMother[0]=-2; idMother[1]=2;
3259 (isZZWW==1 && vbfvhchannel==0) ||
3260 (isZZWW==2 && vbfvhchannel==0) ||
3261 (isZZWW==1 && vbfvhchannel>=1);
3263 else if (motherflavor==7){
3264 idMother[0]=1; idMother[1]=-1;
3266 (isZZWW==1 && vbfvhchannel==0) ||
3267 (isZZWW==2 && vbfvhchannel==0) ||
3268 (isZZWW==1 && vbfvhchannel>=1);
3270 else if (motherflavor==8){
3271 idMother[0]=-1; idMother[1]=1;
3273 (isZZWW==1 && vbfvhchannel==0) ||
3274 (isZZWW==2 && vbfvhchannel==0) ||
3275 (isZZWW==1 && vbfvhchannel>=1);
3279 else if (motherflavor==9){
3280 idMother[0]=4; idMother[1]=3;
3282 (isZZWW==1 && vbfvhchannel==0) ||
3283 (isZZWW==2 && vbfvhchannel==0);
3285 else if (motherflavor==10){
3286 idMother[0]=4; idMother[1]=1;
3288 (isZZWW==1 && vbfvhchannel==0) ||
3289 (isZZWW==2 && vbfvhchannel==0);
3291 else if (motherflavor==11){
3292 idMother[0]=2; idMother[1]=3;
3294 (isZZWW==1 && vbfvhchannel==0) ||
3295 (isZZWW==2 && vbfvhchannel==0);
3297 else if (motherflavor==12){
3298 idMother[0]=-4; idMother[1]=-3;
3300 (isZZWW==1 && vbfvhchannel==0) ||
3301 (isZZWW==2 && vbfvhchannel==0);
3303 else if (motherflavor==13){
3304 idMother[0]=-4; idMother[1]=-1;
3306 (isZZWW==1 && vbfvhchannel==0) ||
3307 (isZZWW==2 && vbfvhchannel==0);
3309 else if (motherflavor==14){
3310 idMother[0]=-2; idMother[1]=-3;
3312 (isZZWW==1 && vbfvhchannel==0) ||
3313 (isZZWW==2 && vbfvhchannel==0);
3316 else if (motherflavor==15){
3317 idMother[0]=4; idMother[1]=-3;
3319 (isZZWW==1 && vbfvhchannel==0) ||
3320 (isZZWW==2 && vbfvhchannel>=1) ||
3321 (isZZWW==0 && vbfvhchannel==0) ||
3322 (isZZWW==0 && vbfvhchannel>=1);
3324 else if (motherflavor==16){
3325 idMother[0]=4; idMother[1]=-1;
3327 (isZZWW==1 && vbfvhchannel==0) ||
3328 (isZZWW==2 && vbfvhchannel>=1) ||
3329 (isZZWW==0 && vbfvhchannel==0) ||
3330 (isZZWW==0 && vbfvhchannel>=1);
3332 else if (motherflavor==17){
3333 idMother[0]=2; idMother[1]=-3;
3335 (isZZWW==1 && vbfvhchannel==0) ||
3336 (isZZWW==2 && vbfvhchannel>=1) ||
3337 (isZZWW==0 && vbfvhchannel==0) ||
3338 (isZZWW==0 && vbfvhchannel>=1);
3340 else if (motherflavor==18){
3341 idMother[0]=-4; idMother[1]=3;
3343 (isZZWW==1 && vbfvhchannel==0) ||
3344 (isZZWW==2 && vbfvhchannel>=1) ||
3345 (isZZWW==0 && vbfvhchannel==0) ||
3346 (isZZWW==0 && vbfvhchannel==1);
3348 else if (motherflavor==19){
3349 idMother[0]=-4; idMother[1]=1;
3351 (isZZWW==1 && vbfvhchannel==0) ||
3352 (isZZWW==2 && vbfvhchannel>=1) ||
3353 (isZZWW==0 && vbfvhchannel==0) ||
3354 (isZZWW==0 && vbfvhchannel==1);
3356 else if (motherflavor==20){
3357 idMother[0]=-2; idMother[1]=3;
3359 (isZZWW==1 && vbfvhchannel==0) ||
3360 (isZZWW==2 && vbfvhchannel>=1) ||
3361 (isZZWW==0 && vbfvhchannel==0) ||
3362 (isZZWW==0 && vbfvhchannel==1);
3365 else if (motherflavor==21){
3366 idMother[0]=4; idMother[1]=-4;
3368 (isZZWW==1 && vbfvhchannel==0) ||
3369 (isZZWW==2 && vbfvhchannel==0) ||
3370 (isZZWW==1 && vbfvhchannel>=1);
3372 else if (motherflavor==22){
3373 idMother[0]=-4; idMother[1]=4;
3375 (isZZWW==1 && vbfvhchannel==0) ||
3376 (isZZWW==2 && vbfvhchannel==0) ||
3377 (isZZWW==1 && vbfvhchannel>=1);
3379 else if (motherflavor==23){
3380 idMother[0]=3; idMother[1]=-3;
3382 (isZZWW==1 && vbfvhchannel==0) ||
3383 (isZZWW==2 && vbfvhchannel==0) ||
3384 (isZZWW==1 && vbfvhchannel>=1);
3386 else if (motherflavor==24){
3387 idMother[0]=-3; idMother[1]=3;
3389 (isZZWW==1 && vbfvhchannel==0) ||
3390 (isZZWW==2 && vbfvhchannel==0) ||
3391 (isZZWW==1 && vbfvhchannel>=1);
3393 else if (motherflavor==25){
3394 idMother[0]=5; idMother[1]=-5;
3396 (isZZWW==1 && vbfvhchannel==0) ||
3397 (isZZWW==2 && vbfvhchannel==0) ||
3398 (isZZWW==1 && vbfvhchannel>=1);
3400 else if (motherflavor==26){
3401 idMother[0]=-5; idMother[1]=5;
3403 (isZZWW==1 && vbfvhchannel==0) ||
3404 (isZZWW==2 && vbfvhchannel==0) ||
3405 (isZZWW==1 && vbfvhchannel>=1);
3407 else if (motherflavor<=31){
3408 idMother[0]=-(motherflavor-26); idMother[1]=0;
3410 (isZZWW==1 && vbfvhchannel==0) ||
3411 (isZZWW==2 && vbfvhchannel==0) ||
3412 (isZZWW==1 && vbfvhchannel>=1) ||
3413 (isZZWW==2 && vbfvhchannel>=1);
3415 else if (motherflavor<=36){
3416 idMother[0]=(motherflavor-31); idMother[1]=0;
3418 (isZZWW==1 && vbfvhchannel==0) ||
3419 (isZZWW==2 && vbfvhchannel==0) ||
3420 (isZZWW==1 && vbfvhchannel>=1) ||
3421 (isZZWW==2 && vbfvhchannel>=1);
3424 else if (vbfvhchannel==2){
3426 if (motherflavor==3){
3427 idMother[0]=14; idMother[1]=-13;
3429 (isZZWW==2 && vbfvhchannel>=1) ||
3430 (isZZWW==0 && vbfvhchannel>=1);
3432 else if (motherflavor==4){
3433 idMother[0]=-14; idMother[1]=13;
3435 (isZZWW==2 && vbfvhchannel>=1) ||
3436 (isZZWW==0 && vbfvhchannel>=1);
3439 else if (motherflavor==5){
3440 idMother[0]=14; idMother[1]=-14;
3442 (isZZWW==1 && vbfvhchannel>=1);
3444 else if (motherflavor==6){
3445 idMother[0]=-14; idMother[1]=14;
3447 (isZZWW==1 && vbfvhchannel>=1);
3449 else if (motherflavor==7){
3450 idMother[0]=13; idMother[1]=-13;
3452 (isZZWW==1 && vbfvhchannel>=1);
3454 else if (motherflavor==8){
3455 idMother[0]=-13; idMother[1]=13;
3457 (isZZWW==1 && vbfvhchannel>=1);
3463 else if (vbfvhchannel==1){
3465 (idMother[0]==-idMother[1] && idMother[0]!=0)
3467 (idMother[0]==-idMother[1] && idMother[0]==0 && isZZWW==1)
3469 (idMother[0]!=-idMother[1] && (idMother[0]==0 || idMother[1]==0) && isZZWW==1)
3472 (TMath::Sign(1, idMother[0])==-TMath::Sign(1, idMother[1]) && abs(idMother[0])%2!=abs(idMother[1])%2)
3474 (idMother[0]==-idMother[1] && idMother[0]==0 && isZZWW==2)
3476 ((idMother[0]==0 || idMother[1]==0) && isZZWW==2)
3480 else if (vbfvhchannel==2){
3482 else if (TMath::Sign(1, idMother[0])==-TMath::Sign(1, idMother[1]) && abs(idMother[0])%2!=abs(idMother[1])%2)
prod=
TVar::Lep_WH_S;
3488 ofstream tout(outname.Data());
3489 streambuf* coutbuf =
cout.rdbuf();
3490 cout.rdbuf(tout.rdbuf());
3493 melaptr.reset(
new Mela(erg_tev, mPOLE, verbosity));
3497 mela.setVerbosity(verbosity);
3499 jhume p_prod_0mplus_dec_0mplus_VAJHU;
3500 jhume p_prod_0hplus_dec_0hplus_VAJHU;
3501 jhume p_prod_fa2_dec_fa2_VAJHU;
3502 jhume p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU;
3503 jhume p_prod_0minus_dec_0minus_VAJHU;
3504 jhume p_prod_fa3_dec_fa3_VAJHU;
3505 jhume p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU;
3506 jhume p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU;
3507 jhume p_prod_0mplusL2_dec_0mplusL2_VAJHU;
3508 jhume p_prod_fL2_dec_fL2_VAJHU;
3509 jhume p_prod_0minusZA_dec_0minusZA_VAJHU;
3510 jhume p_prod_fa3ZA_dec_fa3ZA_VAJHU;
3511 jhume p_prod_0minusAA_dec_0minusAA_VAJHU;
3512 jhume p_prod_fa3AA_dec_fa3AA_VAJHU;
3514 mcfmme p_bkg_VAMCFM, p_bkg_VAMCFM_rssum;
3515 mcfmme p_prod_0mplus_dec_0mplus_VAMCFM;
3516 mcfmme p_prod_0hplus_dec_0hplus_VAMCFM;
3517 mcfmme p_prod_0minus_dec_0minus_VAMCFM;
3518 mcfmme p_prod_0mplusL2_dec_0mplusL2_VAMCFM;
3519 mcfmme p_prod_fL2_dec_fL2_VAMCFM;
3520 mcfmme p_prod_fa2_dec_fa2_VAMCFM;
3521 mcfmme p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAMCFM;
3522 mcfmme p_prod_fa3_dec_fa3_VAMCFM;
3523 mcfmme p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAMCFM;
3524 mcfmme p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAMCFM;
3525 mcfmme p_prod_0minusZA_dec_0minusZA_VAMCFM;
3526 mcfmme p_prod_fa3ZA_dec_fa3ZA_VAMCFM;
3527 mcfmme p_prod_0minusAA_dec_0minusAA_VAMCFM;
3528 mcfmme p_prod_fa3AA_dec_fa3AA_VAMCFM;
3535 float costhetastar=0;
3542 float mVstar=0, mV=0;
3544 float pingMom[8][4]={
3545 { 0, 0, 865.37881546721542, 865.37881546721542 },
3546 { 0, 0, -624.03396598421773, 624.03396598421773 },
3547 { 7.6145299215002638, -17.259247740062808, 9.4660586470659975, 21.106135714241464 },
3548 { 90.901719112641416, -69.683681833050798, 32.066319224729980, 118.94194752090492 },
3549 { 78.476352131782917, -35.264818847819797, -8.8615639484695272, 86.490881645951262 },
3550 { 191.68369742375290, -197.85205601463366, 100.99437243828194, 293.40746273989180 },
3551 { -131.59521398083137, 330.56000090294270, 437.01695094737875, 563.53440884737279 },
3552 { -237.08108460884614, -10.500196467375645, -329.33728782598945, 405.93194498307093 }
3555 int GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
3564 GenLep3Id=GenLep1Id;
3565 GenLep4Id=GenLep2Id;
3576 int idOrdered[4] ={ GenLep1Id, GenLep2Id, GenLep3Id, GenLep4Id };
3579 for (
unsigned int ip=0; ip<2; ip++){
3583 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
3588 for (
unsigned int ip=2; ip<6; ip++){
3592 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
3597 for (
unsigned int ip=6; ip<8; ip++){
3601 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
3700 double invckm_ud=1, invckm_us=0, invckm_cd=0, invckm_cs=1, invckm_ts=0, invckm_tb=1, invckm_ub=0, invckm_cb=0, invckm_td=0;
3701 TUtil::SetCKMElements(&invckm_ud, &invckm_us, &invckm_cd, &invckm_cs, &invckm_ts, &invckm_tb, &invckm_ub, &invckm_cb, &invckm_td);
3707 mela.computeP(p_prod_0mplus_dec_0mplus_VAJHU.decme,
false);
3710 mela.computeP(p_prod_0hplus_dec_0hplus_VAJHU.decme,
false);
3714 mela.computeP(p_prod_fa2_dec_fa2_VAJHU.decme,
false);
3718 mela.computeP(p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.decme,
false);
3721 mela.computeP(p_prod_0minus_dec_0minus_VAJHU.decme,
false);
3725 mela.computeP(p_prod_fa3_dec_fa3_VAJHU.decme,
false);
3729 mela.computeP(p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.decme,
false);
3733 mela.computeP(p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.decme,
false);
3737 mela.computeP(p_prod_0minusZA_dec_0minusZA_VAJHU.decme,
false);
3740 mela.computeP(p_prod_0minusAA_dec_0minusAA_VAJHU.decme,
false);
3744 mela.computeP(p_prod_fa3ZA_dec_fa3ZA_VAJHU.decme,
false);
3748 mela.computeP(p_prod_fa3AA_dec_fa3AA_VAJHU.decme,
false);
3750 p_prod_0mplusL2_dec_0mplusL2_VAJHU.decme=p_prod_0mplus_dec_0mplus_VAJHU.decme;
3751 p_prod_fL2_dec_fL2_VAJHU.decme=p_prod_0mplus_dec_0mplus_VAJHU.decme;
3755 mela.computeP(p_prod_0mplusL2_dec_0mplusL2_VAJHU.decme,
false);
3759 mela.computeP(p_prod_fL2_dec_fL2_VAJHU.decme,
false);
3761 p_prod_0minusZA_dec_0minusZA_VAJHU.decme=p_prod_0mplus_dec_0mplus_VAJHU.decme;
3762 p_prod_0minusAA_dec_0minusAA_VAJHU.decme=p_prod_0mplus_dec_0mplus_VAJHU.decme;
3763 p_prod_fa3ZA_dec_fa3ZA_VAJHU.decme=p_prod_0mplus_dec_0mplus_VAJHU.decme;
3764 p_prod_fa3AA_dec_fa3AA_VAJHU.decme=p_prod_0mplus_dec_0mplus_VAJHU.decme;
3767 bool computeL2WWprod=(isZZWW==2 || (decZZWW==2 && vbfvhchannel==0));
3768 bool computeJHUZA=
true;
3769 if (vbfvhchannel>=1){
3770 if (isZZWW==2 && decZZWW==1){
3772 else if (isZZWW==1 && decZZWW==2){
3774 else if (isZZWW==1 && decZZWW==1){
3776 else computeJHUZA=
false;
3779 if (isZZWW==2 && decZZWW==1){
3781 else if (isZZWW==1 && decZZWW==2){
3783 else if (isZZWW==1 && decZZWW==1){
3785 else computeJHUZA=
false;
3787 if (vbfvhchannel==0){
3791 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_1][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
3793 mela.computeProdP(p_prod_0mplus_dec_0mplus_VAJHU.prodme,
false);
3794 mela.getIORecord()->getUnweightedMEArray(p_prod_0mplus_dec_0mplus_VAJHU.mearray);
3796 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_2][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
3798 mela.computeProdP(p_prod_0hplus_dec_0hplus_VAJHU.prodme,
false);
3799 mela.getIORecord()->getUnweightedMEArray(p_prod_0hplus_dec_0hplus_VAJHU.mearray);
3803 mela.computeProdP(p_prod_fa2_dec_fa2_VAJHU.prodme,
false);
3804 mela.getIORecord()->getUnweightedMEArray(p_prod_fa2_dec_fa2_VAJHU.mearray);
3808 mela.computeProdP(p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.prodme,
false);
3809 mela.getIORecord()->getUnweightedMEArray(p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.mearray);
3811 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_4][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
3813 mela.computeProdP(p_prod_0minus_dec_0minus_VAJHU.prodme,
false);
3814 mela.getIORecord()->getUnweightedMEArray(p_prod_0minus_dec_0minus_VAJHU.mearray);
3818 mela.computeProdP(p_prod_fa3_dec_fa3_VAJHU.prodme,
false);
3819 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3_dec_fa3_VAJHU.mearray);
3823 mela.computeProdP(p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.prodme,
false);
3824 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.mearray);
3828 mela.computeProdP(p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.prodme,
false);
3829 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.mearray);
3831 if (computeL2WWprod){
3834 mela.computeProdP(p_prod_0mplusL2_dec_0mplusL2_VAJHU.prodme,
false);
3835 mela.getIORecord()->getUnweightedMEArray(p_prod_0mplusL2_dec_0mplusL2_VAJHU.mearray);
3839 mela.computeProdP(p_prod_fL2_dec_fL2_VAJHU.prodme,
false);
3840 mela.getIORecord()->getUnweightedMEArray(p_prod_fL2_dec_fL2_VAJHU.mearray);
3843 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_1][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
3845 mela.computeProdP(p_prod_0mplusL2_dec_0mplusL2_VAJHU.prodme,
false);
3846 mela.getIORecord()->getUnweightedMEArray(p_prod_0mplusL2_dec_0mplusL2_VAJHU.mearray);
3848 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_1][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
3850 mela.computeProdP(p_prod_fL2_dec_fL2_VAJHU.prodme,
false);
3851 mela.getIORecord()->getUnweightedMEArray(p_prod_fL2_dec_fL2_VAJHU.mearray);
3854 if (isZZWW==2 && decZZWW==1){
3857 mela.differentiate_HWW_HZZ=
true;
3859 else if (isZZWW==1 && decZZWW==2){
3862 mela.differentiate_HWW_HZZ=
true;
3864 else if (isZZWW==1 && decZZWW==1){
3866 mela.differentiate_HWW_HZZ=
true;
3868 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_ZA_4][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
3870 mela.computeProdP(p_prod_0minusZA_dec_0minusZA_VAJHU.prodme,
false);
3871 mela.getIORecord()->getUnweightedMEArray(p_prod_0minusZA_dec_0minusZA_VAJHU.mearray);
3873 if (isZZWW==2 && decZZWW==1){
3876 mela.differentiate_HWW_HZZ=
true;
3878 else if (isZZWW==1 && decZZWW==2){
3881 mela.differentiate_HWW_HZZ=
true;
3883 else if (isZZWW==1 && decZZWW==1){
3885 mela.differentiate_HWW_HZZ=
true;
3887 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_AA_4][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
3889 mela.computeProdP(p_prod_0minusAA_dec_0minusAA_VAJHU.prodme,
false);
3890 mela.getIORecord()->getUnweightedMEArray(p_prod_0minusAA_dec_0minusAA_VAJHU.mearray);
3892 if (isZZWW==2 && decZZWW==1){
3896 mela.differentiate_HWW_HZZ=
true;
3898 else if (isZZWW==1 && decZZWW==2){
3902 mela.differentiate_HWW_HZZ=
true;
3904 else if (isZZWW==1 && decZZWW==1){
3907 mela.differentiate_HWW_HZZ=
true;
3911 mela.computeProdP(p_prod_fa3ZA_dec_fa3ZA_VAJHU.prodme,
false);
3912 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3ZA_dec_fa3ZA_VAJHU.mearray);
3914 if (isZZWW==2 && decZZWW==1){
3918 mela.differentiate_HWW_HZZ=
true;
3920 else if (isZZWW==1 && decZZWW==2){
3924 mela.differentiate_HWW_HZZ=
true;
3926 else if (isZZWW==1 && decZZWW==1){
3929 mela.differentiate_HWW_HZZ=
true;
3933 mela.computeProdP(p_prod_fa3AA_dec_fa3AA_VAJHU.prodme,
false);
3934 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3AA_dec_fa3AA_VAJHU.mearray);
3937 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_1][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
3939 mela.computeProdP(p_prod_0minusZA_dec_0minusZA_VAJHU.prodme,
false);
3940 mela.getIORecord()->getUnweightedMEArray(p_prod_0minusZA_dec_0minusZA_VAJHU.mearray);
3942 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_1][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
3944 mela.computeProdP(p_prod_0minusAA_dec_0minusAA_VAJHU.prodme,
false);
3945 mela.getIORecord()->getUnweightedMEArray(p_prod_0minusAA_dec_0minusAA_VAJHU.mearray);
3947 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_1][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
3949 mela.computeProdP(p_prod_fa3ZA_dec_fa3ZA_VAJHU.prodme,
false);
3950 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3ZA_dec_fa3ZA_VAJHU.mearray);
3952 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_1][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
3954 mela.computeProdP(p_prod_fa3AA_dec_fa3AA_VAJHU.prodme,
false);
3955 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3AA_dec_fa3AA_VAJHU.mearray);
3971 mela.computeProdP(p_prod_0mplus_dec_0mplus_VAJHU.prodme,
false);
3972 mela.getIORecord()->getUnweightedMEArray(p_prod_0mplus_dec_0mplus_VAJHU.mearray);
3976 mela.computeProdP(p_prod_0hplus_dec_0hplus_VAJHU.prodme,
false);
3977 mela.getIORecord()->getUnweightedMEArray(p_prod_0hplus_dec_0hplus_VAJHU.mearray);
3981 mela.computeProdP(p_prod_fa2_dec_fa2_VAJHU.prodme,
false);
3982 mela.getIORecord()->getUnweightedMEArray(p_prod_fa2_dec_fa2_VAJHU.mearray);
3986 mela.computeProdP(p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.prodme,
false);
3987 mela.getIORecord()->getUnweightedMEArray(p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.mearray);
3991 mela.computeProdP(p_prod_0minus_dec_0minus_VAJHU.prodme,
false);
3992 mela.getIORecord()->getUnweightedMEArray(p_prod_0minus_dec_0minus_VAJHU.mearray);
3996 mela.computeProdP(p_prod_fa3_dec_fa3_VAJHU.prodme,
false);
3997 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3_dec_fa3_VAJHU.mearray);
4001 mela.computeProdP(p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.prodme,
false);
4002 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.mearray);
4006 mela.computeProdP(p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.prodme,
false);
4007 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.mearray);
4011 mela.computeProdP(p_prod_0mplusL2_dec_0mplusL2_VAJHU.prodme,
false);
4012 mela.getIORecord()->getUnweightedMEArray(p_prod_0mplusL2_dec_0mplusL2_VAJHU.mearray);
4015 mela.computeProdP(p_prod_fL2_dec_fL2_VAJHU.prodme,
false);
4016 mela.getIORecord()->getUnweightedMEArray(p_prod_fL2_dec_fL2_VAJHU.mearray);
4020 mela.computeProdP(p_prod_0minusZA_dec_0minusZA_VAJHU.prodme,
false);
4021 mela.getIORecord()->getUnweightedMEArray(p_prod_0minusZA_dec_0minusZA_VAJHU.mearray);
4024 mela.computeProdP(p_prod_0minusAA_dec_0minusAA_VAJHU.prodme,
false);
4025 mela.getIORecord()->getUnweightedMEArray(p_prod_0minusAA_dec_0minusAA_VAJHU.mearray);
4028 mela.computeProdP(p_prod_fa3ZA_dec_fa3ZA_VAJHU.prodme,
false);
4029 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3ZA_dec_fa3ZA_VAJHU.mearray);
4032 mela.computeProdP(p_prod_fa3AA_dec_fa3AA_VAJHU.prodme,
false);
4033 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3AA_dec_fa3AA_VAJHU.mearray);
4037 mela.computeProdP(p_prod_0minusZA_dec_0minusZA_VAJHU.prodme,
false);
4038 mela.getIORecord()->getUnweightedMEArray(p_prod_0minusZA_dec_0minusZA_VAJHU.mearray);
4041 mela.computeProdP(p_prod_0minusAA_dec_0minusAA_VAJHU.prodme,
false);
4042 mela.getIORecord()->getUnweightedMEArray(p_prod_0minusAA_dec_0minusAA_VAJHU.mearray);
4045 mela.computeProdP(p_prod_fa3ZA_dec_fa3ZA_VAJHU.prodme,
false);
4046 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3ZA_dec_fa3ZA_VAJHU.mearray);
4049 mela.computeProdP(p_prod_fa3AA_dec_fa3AA_VAJHU.prodme,
false);
4050 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3AA_dec_fa3AA_VAJHU.mearray);
4064 mela.computeProdP(p_prod_0mplus_dec_0mplus_VAJHU.prodme,
false);
4065 mela.getIORecord()->getUnweightedMEArray(p_prod_0mplus_dec_0mplus_VAJHU.mearray);
4068 mela.computeProdP(p_prod_0hplus_dec_0hplus_VAJHU.prodme,
false);
4069 mela.getIORecord()->getUnweightedMEArray(p_prod_0hplus_dec_0hplus_VAJHU.mearray);
4073 mela.computeProdP(p_prod_fa2_dec_fa2_VAJHU.prodme,
false);
4074 mela.getIORecord()->getUnweightedMEArray(p_prod_fa2_dec_fa2_VAJHU.mearray);
4078 mela.computeProdP(p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.prodme,
false);
4079 mela.getIORecord()->getUnweightedMEArray(p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.mearray);
4082 mela.computeProdP(p_prod_0minus_dec_0minus_VAJHU.prodme,
false);
4083 mela.getIORecord()->getUnweightedMEArray(p_prod_0minus_dec_0minus_VAJHU.mearray);
4087 mela.computeProdP(p_prod_fa3_dec_fa3_VAJHU.prodme,
false);
4088 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3_dec_fa3_VAJHU.mearray);
4092 mela.computeProdP(p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.prodme,
false);
4093 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.mearray);
4097 mela.computeProdP(p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.prodme,
false);
4098 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.mearray);
4101 mela.computeProdP(p_prod_0minusZA_dec_0minusZA_VAJHU.prodme,
false);
4102 mela.getIORecord()->getUnweightedMEArray(p_prod_0minusZA_dec_0minusZA_VAJHU.mearray);
4105 mela.computeProdP(p_prod_0minusAA_dec_0minusAA_VAJHU.prodme,
false);
4106 mela.getIORecord()->getUnweightedMEArray(p_prod_0minusAA_dec_0minusAA_VAJHU.mearray);
4109 mela.computeProdP(p_prod_fa3ZA_dec_fa3ZA_VAJHU.prodme,
false);
4110 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3ZA_dec_fa3ZA_VAJHU.mearray);
4113 mela.computeProdP(p_prod_fa3AA_dec_fa3AA_VAJHU.prodme,
false);
4114 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3AA_dec_fa3AA_VAJHU.mearray);
4118 mela.computeProdP(p_prod_0mplusL2_dec_0mplusL2_VAJHU.prodme,
false);
4119 mela.getIORecord()->getUnweightedMEArray(p_prod_0mplusL2_dec_0mplusL2_VAJHU.mearray);
4122 mela.computeProdP(p_prod_fL2_dec_fL2_VAJHU.prodme,
false);
4123 mela.getIORecord()->getUnweightedMEArray(p_prod_fL2_dec_fL2_VAJHU.mearray);
4130 double propagator = 1./(pow(pow(mzz, 2)-pow(mPOLE, 2), 2)+pow(mPOLE*wPOLE, 2));
4131 if (vbfvhchannel>=1){
4132 mela.getIORecord()->getHiggsMassWidth(mh, gah, 0);
4133 propagator /= 1./(pow(pow(mzz, 2)-pow(mh, 2), 2) + pow(mh*gah, 2));
4135 p_prod_0mplus_dec_0mplus_VAJHU.prodme *=
propagator; p_prod_0mplus_dec_0mplus_VAJHU.multiplyarray(
propagator);
4136 p_prod_0minus_dec_0minus_VAJHU.prodme *=
propagator; p_prod_0minus_dec_0minus_VAJHU.multiplyarray(
propagator);
4137 p_prod_0hplus_dec_0hplus_VAJHU.prodme *=
propagator; p_prod_0hplus_dec_0hplus_VAJHU.multiplyarray(
propagator);
4138 p_prod_0mplusL2_dec_0mplusL2_VAJHU.prodme *=
propagator; p_prod_0mplusL2_dec_0mplusL2_VAJHU.multiplyarray(
propagator);
4139 p_prod_0minusZA_dec_0minusZA_VAJHU.prodme *=
propagator; p_prod_0minusZA_dec_0minusZA_VAJHU.multiplyarray(
propagator);
4140 p_prod_0minusAA_dec_0minusAA_VAJHU.prodme *=
propagator; p_prod_0minusAA_dec_0minusAA_VAJHU.multiplyarray(
propagator);
4141 p_prod_fa2_dec_fa2_VAJHU.prodme *=
propagator; p_prod_fa2_dec_fa2_VAJHU.multiplyarray(
propagator);
4142 p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.prodme *=
propagator; p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.multiplyarray(
propagator);
4143 p_prod_fa3_dec_fa3_VAJHU.prodme *=
propagator; p_prod_fa3_dec_fa3_VAJHU.multiplyarray(
propagator);
4144 p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.prodme *=
propagator; p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.multiplyarray(
propagator);
4145 p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.prodme *=
propagator; p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.multiplyarray(
propagator);
4146 p_prod_fL2_dec_fL2_VAJHU.prodme *=
propagator; p_prod_fL2_dec_fL2_VAJHU.multiplyarray(
propagator);
4147 p_prod_fa3ZA_dec_fa3ZA_VAJHU.prodme *=
propagator; p_prod_fa3ZA_dec_fa3ZA_VAJHU.multiplyarray(
propagator);
4148 p_prod_fa3AA_dec_fa3AA_VAJHU.prodme *=
propagator; p_prod_fa3AA_dec_fa3AA_VAJHU.multiplyarray(
propagator);
4150 p_prod_0mplus_dec_0mplus_VAJHU.proddecme = p_prod_0mplus_dec_0mplus_VAJHU.prodme*p_prod_0mplus_dec_0mplus_VAJHU.decme; p_prod_0mplus_dec_0mplus_VAJHU.multiplyarray(p_prod_0mplus_dec_0mplus_VAJHU.decme);
4151 if (isZZWW==ZZWWdec_onevertexflag){
4152 p_prod_0hplus_dec_0hplus_VAJHU.proddecme = p_prod_0hplus_dec_0hplus_VAJHU.prodme*p_prod_0mplus_dec_0mplus_VAJHU.decme; p_prod_0hplus_dec_0hplus_VAJHU.multiplyarray(p_prod_0mplus_dec_0mplus_VAJHU.decme);
4153 p_prod_fa2_dec_fa2_VAJHU.proddecme = p_prod_fa2_dec_fa2_VAJHU.prodme*p_prod_0mplus_dec_0mplus_VAJHU.decme; p_prod_fa2_dec_fa2_VAJHU.multiplyarray(p_prod_0mplus_dec_0mplus_VAJHU.decme);
4154 p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.proddecme = p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.prodme*p_prod_0mplus_dec_0mplus_VAJHU.decme; p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.multiplyarray(p_prod_0mplus_dec_0mplus_VAJHU.decme);
4155 p_prod_0minus_dec_0minus_VAJHU.proddecme = p_prod_0minus_dec_0minus_VAJHU.prodme*p_prod_0mplus_dec_0mplus_VAJHU.decme; p_prod_0minus_dec_0minus_VAJHU.multiplyarray(p_prod_0mplus_dec_0mplus_VAJHU.decme);
4156 p_prod_fa3_dec_fa3_VAJHU.proddecme = p_prod_fa3_dec_fa3_VAJHU.prodme*p_prod_0mplus_dec_0mplus_VAJHU.decme; p_prod_fa3_dec_fa3_VAJHU.multiplyarray(p_prod_0mplus_dec_0mplus_VAJHU.decme);
4157 p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.proddecme = p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.prodme*p_prod_0mplus_dec_0mplus_VAJHU.decme; p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.multiplyarray(p_prod_0mplus_dec_0mplus_VAJHU.decme);
4158 p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.proddecme = p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.prodme*p_prod_0mplus_dec_0mplus_VAJHU.decme; p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.multiplyarray(p_prod_0mplus_dec_0mplus_VAJHU.decme);
4161 p_prod_0hplus_dec_0hplus_VAJHU.proddecme = p_prod_0hplus_dec_0hplus_VAJHU.prodme*p_prod_0hplus_dec_0hplus_VAJHU.decme; p_prod_0hplus_dec_0hplus_VAJHU.multiplyarray(p_prod_0hplus_dec_0hplus_VAJHU.decme);
4162 p_prod_fa2_dec_fa2_VAJHU.proddecme = p_prod_fa2_dec_fa2_VAJHU.prodme*p_prod_fa2_dec_fa2_VAJHU.decme; p_prod_fa2_dec_fa2_VAJHU.multiplyarray(p_prod_fa2_dec_fa2_VAJHU.decme);
4163 p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.proddecme = p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.prodme*p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.decme; p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.multiplyarray(p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.decme);
4164 p_prod_0minus_dec_0minus_VAJHU.proddecme = p_prod_0minus_dec_0minus_VAJHU.prodme*p_prod_0minus_dec_0minus_VAJHU.decme; p_prod_0minus_dec_0minus_VAJHU.multiplyarray(p_prod_0minus_dec_0minus_VAJHU.decme);
4165 p_prod_fa3_dec_fa3_VAJHU.proddecme = p_prod_fa3_dec_fa3_VAJHU.prodme*p_prod_fa3_dec_fa3_VAJHU.decme; p_prod_fa3_dec_fa3_VAJHU.multiplyarray(p_prod_fa3_dec_fa3_VAJHU.decme);
4166 p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.proddecme = p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.prodme*p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.decme; p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.multiplyarray(p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.decme);
4167 p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.proddecme = p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.prodme*p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.decme; p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.multiplyarray(p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.decme);
4170 p_prod_0mplusL2_dec_0mplusL2_VAJHU.proddecme = p_prod_0mplusL2_dec_0mplusL2_VAJHU.prodme*p_prod_0mplusL2_dec_0mplusL2_VAJHU.decme; p_prod_0mplusL2_dec_0mplusL2_VAJHU.multiplyarray(p_prod_0mplusL2_dec_0mplusL2_VAJHU.decme);
4171 p_prod_fL2_dec_fL2_VAJHU.proddecme = p_prod_fL2_dec_fL2_VAJHU.prodme*p_prod_fL2_dec_fL2_VAJHU.decme; p_prod_fL2_dec_fL2_VAJHU.multiplyarray(p_prod_fL2_dec_fL2_VAJHU.decme);
4173 p_prod_0minusZA_dec_0minusZA_VAJHU.proddecme = p_prod_0minusZA_dec_0minusZA_VAJHU.prodme*p_prod_0minusZA_dec_0minusZA_VAJHU.decme; p_prod_0minusZA_dec_0minusZA_VAJHU.multiplyarray(p_prod_0minusZA_dec_0minusZA_VAJHU.decme);
4174 p_prod_0minusAA_dec_0minusAA_VAJHU.proddecme = p_prod_0minusAA_dec_0minusAA_VAJHU.prodme*p_prod_0minusAA_dec_0minusAA_VAJHU.decme; p_prod_0minusAA_dec_0minusAA_VAJHU.multiplyarray(p_prod_0minusAA_dec_0minusAA_VAJHU.decme);
4175 p_prod_fa3ZA_dec_fa3ZA_VAJHU.proddecme = p_prod_fa3ZA_dec_fa3ZA_VAJHU.prodme*p_prod_fa3ZA_dec_fa3ZA_VAJHU.decme; p_prod_fa3ZA_dec_fa3ZA_VAJHU.multiplyarray(p_prod_fa3ZA_dec_fa3ZA_VAJHU.decme);
4176 p_prod_fa3AA_dec_fa3AA_VAJHU.proddecme = p_prod_fa3AA_dec_fa3AA_VAJHU.prodme*p_prod_fa3AA_dec_fa3AA_VAJHU.decme; p_prod_fa3AA_dec_fa3AA_VAJHU.multiplyarray(p_prod_fa3AA_dec_fa3AA_VAJHU.decme);
4190 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_1][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
4192 mela.computeProdDecP(p_prod_0mplus_dec_0mplus_VAMCFM.proddecme,
false);
4193 mela.getIORecord()->getUnweightedMEArray(p_prod_0mplus_dec_0mplus_VAMCFM.mearray);
4195 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_2][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
4197 mela.computeProdDecP(p_prod_0hplus_dec_0hplus_VAMCFM.proddecme,
false);
4198 mela.getIORecord()->getUnweightedMEArray(p_prod_0hplus_dec_0hplus_VAMCFM.mearray);
4202 mela.computeProdDecP(p_prod_fa2_dec_fa2_VAMCFM.proddecme,
false);
4203 mela.getIORecord()->getUnweightedMEArray(p_prod_fa2_dec_fa2_VAMCFM.mearray);
4207 mela.computeProdDecP(p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAMCFM.proddecme,
false);
4208 mela.getIORecord()->getUnweightedMEArray(p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAMCFM.mearray);
4210 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_4][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
4212 mela.computeProdDecP(p_prod_0minus_dec_0minus_VAMCFM.proddecme,
false);
4213 mela.getIORecord()->getUnweightedMEArray(p_prod_0minus_dec_0minus_VAMCFM.mearray);
4217 mela.computeProdDecP(p_prod_fa3_dec_fa3_VAMCFM.proddecme,
false);
4218 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3_dec_fa3_VAMCFM.mearray);
4222 mela.computeProdDecP(p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAMCFM.proddecme,
false);
4223 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAMCFM.mearray);
4227 mela.computeProdDecP(p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAMCFM.proddecme,
false);
4228 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAMCFM.mearray);
4231 bool computeL2WWproddec=(isZZWW==2 || decZZWW==2);
4232 if (computeL2WWproddec){
4233 mela.differentiate_HWW_HZZ=
true;
4234 if (isZZWW==2 && decZZWW!=2){
4235 if (vbfvhchannel==0){
4246 else if (isZZWW!=2 && decZZWW==2){
4247 if (vbfvhchannel==0){
4272 mela.computeProdDecP(p_prod_0mplusL2_dec_0mplusL2_VAMCFM.proddecme,
false);
4273 mela.getIORecord()->getUnweightedMEArray(p_prod_0mplusL2_dec_0mplusL2_VAMCFM.mearray);
4275 mela.differentiate_HWW_HZZ=
true;
4276 if (isZZWW==2 && decZZWW!=2){
4277 if (vbfvhchannel==0){
4288 else if (isZZWW!=2 && decZZWW==2){
4289 if (vbfvhchannel==0){
4306 mela.computeProdDecP(p_prod_fL2_dec_fL2_VAMCFM.proddecme,
false);
4307 mela.getIORecord()->getUnweightedMEArray(p_prod_fL2_dec_fL2_VAMCFM.mearray);
4314 for (
int ii=0; ii<
nmsq; ii++){
4315 for (
int jj=0; jj<
nmsq; jj++){
4316 p_prod_0mplusL2_dec_0mplusL2_VAMCFM.mearray[ii][jj]=p_prod_0mplus_dec_0mplus_VAMCFM.mearray[ii][jj]; p_prod_0mplusL2_dec_0mplusL2_VAMCFM.proddecme=p_prod_0mplus_dec_0mplus_VAMCFM.proddecme;
4317 p_prod_fL2_dec_fL2_VAMCFM.mearray[ii][jj]=p_prod_0mplus_dec_0mplus_VAMCFM.mearray[ii][jj]; p_prod_fL2_dec_fL2_VAMCFM.proddecme=p_prod_0mplus_dec_0mplus_VAMCFM.proddecme;
4323 bool testZAcoupl=
true;
4324 if (vbfvhchannel>=1){
4325 if (isZZWW==2 && decZZWW==1){
4329 else if (isZZWW==1 && decZZWW==2){
4333 else if (isZZWW==1 && decZZWW==1){
4337 else testZAcoupl=
false;
4340 if (isZZWW==2 && decZZWW==1){
4344 else if (isZZWW==1 && decZZWW==2){
4348 else if (isZZWW==1 && decZZWW==1){
4352 else testZAcoupl=
false;
4356 if (vbfvhchannel>=1){
4357 if (isZZWW==2 && decZZWW==1){
4360 mela.differentiate_HWW_HZZ=
true;
4362 else if (isZZWW==1 && decZZWW==2){
4364 mela.differentiate_HWW_HZZ=
true;
4366 else if (isZZWW==1 && decZZWW==1){
4368 mela.differentiate_HWW_HZZ=
true;
4372 if (isZZWW==2 && decZZWW==1){
4375 mela.differentiate_HWW_HZZ=
true;
4377 else if (isZZWW==1 && decZZWW==2){
4380 mela.differentiate_HWW_HZZ=
true;
4382 else if (isZZWW==1 && decZZWW==1){
4384 mela.differentiate_HWW_HZZ=
true;
4387 mela.computeProdDecP(p_prod_0minusZA_dec_0minusZA_VAMCFM.proddecme,
false);
4388 mela.getIORecord()->getUnweightedMEArray(p_prod_0minusZA_dec_0minusZA_VAMCFM.mearray);
4390 if (vbfvhchannel>=1){
4391 if (isZZWW==2 && decZZWW==1){
4394 mela.differentiate_HWW_HZZ=
true;
4396 else if (isZZWW==1 && decZZWW==2){
4398 mela.differentiate_HWW_HZZ=
true;
4400 else if (isZZWW==1 && decZZWW==1){
4402 mela.differentiate_HWW_HZZ=
true;
4406 if (isZZWW==2 && decZZWW==1){
4409 mela.differentiate_HWW_HZZ=
true;
4411 else if (isZZWW==1 && decZZWW==2){
4414 mela.differentiate_HWW_HZZ=
true;
4416 else if (isZZWW==1 && decZZWW==1){
4418 mela.differentiate_HWW_HZZ=
true;
4421 mela.computeProdDecP(p_prod_0minusAA_dec_0minusAA_VAMCFM.proddecme,
false);
4422 mela.getIORecord()->getUnweightedMEArray(p_prod_0minusAA_dec_0minusAA_VAMCFM.mearray);
4424 if (vbfvhchannel>=1){
4425 if (isZZWW==2 && decZZWW==1){
4429 mela.differentiate_HWW_HZZ=
true;
4431 else if (isZZWW==1 && decZZWW==2){
4434 mela.differentiate_HWW_HZZ=
true;
4436 else if (isZZWW==1 && decZZWW==1){
4439 mela.differentiate_HWW_HZZ=
true;
4443 if (isZZWW==2 && decZZWW==1){
4447 mela.differentiate_HWW_HZZ=
true;
4449 else if (isZZWW==1 && decZZWW==2){
4453 mela.differentiate_HWW_HZZ=
true;
4455 else if (isZZWW==1 && decZZWW==1){
4458 mela.differentiate_HWW_HZZ=
true;
4461 mela.computeProdDecP(p_prod_fa3ZA_dec_fa3ZA_VAMCFM.proddecme,
false);
4462 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3ZA_dec_fa3ZA_VAMCFM.mearray);
4464 if (vbfvhchannel>=1){
4465 if (isZZWW==2 && decZZWW==1){
4469 mela.differentiate_HWW_HZZ=
true;
4471 else if (isZZWW==1 && decZZWW==2){
4474 mela.differentiate_HWW_HZZ=
true;
4476 else if (isZZWW==1 && decZZWW==1){
4479 mela.differentiate_HWW_HZZ=
true;
4483 if (isZZWW==2 && decZZWW==1){
4487 mela.differentiate_HWW_HZZ=
true;
4489 else if (isZZWW==1 && decZZWW==2){
4493 mela.differentiate_HWW_HZZ=
true;
4495 else if (isZZWW==1 && decZZWW==1){
4498 mela.differentiate_HWW_HZZ=
true;
4501 mela.computeProdDecP(p_prod_fa3AA_dec_fa3AA_VAMCFM.proddecme,
false);
4502 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3AA_dec_fa3AA_VAMCFM.mearray);
4505 for (
int ii=0; ii<
nmsq; ii++){
4506 for (
int jj=0; jj<
nmsq; jj++){
4507 p_prod_0minusZA_dec_0minusZA_VAMCFM.mearray[ii][jj]=p_prod_0mplus_dec_0mplus_VAMCFM.mearray[ii][jj]; p_prod_0minusZA_dec_0minusZA_VAMCFM.proddecme=p_prod_0mplus_dec_0mplus_VAMCFM.proddecme;
4508 p_prod_0minusAA_dec_0minusAA_VAMCFM.mearray[ii][jj]=p_prod_0mplus_dec_0mplus_VAMCFM.mearray[ii][jj]; p_prod_0minusAA_dec_0minusAA_VAMCFM.proddecme=p_prod_0mplus_dec_0mplus_VAMCFM.proddecme;
4509 p_prod_fa3ZA_dec_fa3ZA_VAMCFM.mearray[ii][jj]=p_prod_0mplus_dec_0mplus_VAMCFM.mearray[ii][jj]; p_prod_fa3ZA_dec_fa3ZA_VAMCFM.proddecme=p_prod_0mplus_dec_0mplus_VAMCFM.proddecme;
4510 p_prod_fa3AA_dec_fa3AA_VAMCFM.mearray[ii][jj]=p_prod_0mplus_dec_0mplus_VAMCFM.mearray[ii][jj]; p_prod_fa3AA_dec_fa3AA_VAMCFM.proddecme=p_prod_0mplus_dec_0mplus_VAMCFM.proddecme;
4517 mela.computeProdDecP(p_bkg_VAMCFM.proddecme,
false);
4518 mela.getIORecord()->getUnweightedMEArray(p_bkg_VAMCFM.mearray);
4519 if (motherflavor==0 && vbfvhchannel<2){
4520 for (
int r=-5;
r<=5;
r++){
4521 for (
int s=-5; s<=5; s++){
4530 mcfmme p_bkg_VAMCFM_rsindiv;
4531 mela.computeProdDecP(p_bkg_VAMCFM_rsindiv.proddecme,
false);
4532 mela.getIORecord()->getUnweightedMEArray(p_bkg_VAMCFM_rsindiv.mearray);
4533 p_bkg_VAMCFM_rssum.add(p_bkg_VAMCFM_rsindiv);
4544 cout <<
"Production variables:\n";
4545 cout <<
"\tmJJ = " << mjj << endl;
4546 cout <<
"\tPhi = " << Phi << endl;
4547 cout <<
"\tJHUGen (mass, width): (" << mh <<
", " << gah <<
")" << endl;
4549 cout <<
"Bkg" << endl;
4550 cout <<
"\tMCFM ME: " << p_bkg_VAMCFM.proddecme << endl;
4551 cout <<
"0mplus" << endl;
4552 cout <<
"\tJHUGen decay-alone: " << p_prod_0mplus_dec_0mplus_VAJHU.decme << endl;
4553 cout <<
"\tJHUGen prod.-alone: " << p_prod_0mplus_dec_0mplus_VAJHU.prodme << endl;
4554 cout <<
"\tJHUGen ME: " << p_prod_0mplus_dec_0mplus_VAJHU.proddecme << endl;
4555 cout <<
"\tMCFM ME: " << p_prod_0mplus_dec_0mplus_VAMCFM.proddecme << endl;
4556 cout <<
"0hplus" << endl;
4557 cout <<
"\tJHUGen decay-alone: " << p_prod_0hplus_dec_0hplus_VAJHU.decme << endl;
4558 cout <<
"\tJHUGen prod.-alone: " << p_prod_0hplus_dec_0hplus_VAJHU.prodme << endl;
4559 cout <<
"\tJHUGen ME: " << p_prod_0hplus_dec_0hplus_VAJHU.proddecme << endl;
4560 cout <<
"\tMCFM ME: " << p_prod_0hplus_dec_0hplus_VAMCFM.proddecme << endl;
4561 cout <<
"fa2" << endl;
4562 cout <<
"\tJHUGen decay-alone: " << p_prod_fa2_dec_fa2_VAJHU.decme << endl;
4563 cout <<
"\tJHUGen prod.-alone: " << p_prod_fa2_dec_fa2_VAJHU.prodme << endl;
4564 cout <<
"\tJHUGen ME: " << p_prod_fa2_dec_fa2_VAJHU.proddecme << endl;
4565 cout <<
"\tMCFM ME: " << p_prod_fa2_dec_fa2_VAMCFM.proddecme << endl;
4566 cout <<
"fa2, phia2=90" << endl;
4567 cout <<
"\tJHUGen decay-alone: " << p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.decme << endl;
4568 cout <<
"\tJHUGen prod.-alone: " << p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.prodme << endl;
4569 cout <<
"\tJHUGen ME: " << p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.proddecme << endl;
4570 cout <<
"\tMCFM ME: " << p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAMCFM.proddecme << endl;
4571 cout <<
"0minus" << endl;
4572 cout <<
"\tJHUGen decay-alone: " << p_prod_0minus_dec_0minus_VAJHU.decme << endl;
4573 cout <<
"\tJHUGen prod.-alone: " << p_prod_0minus_dec_0minus_VAJHU.prodme << endl;
4574 cout <<
"\tJHUGen ME: " << p_prod_0minus_dec_0minus_VAJHU.proddecme << endl;
4575 cout <<
"\tMCFM ME: " << p_prod_0minus_dec_0minus_VAMCFM.proddecme << endl;
4576 cout <<
"fa3" << endl;
4577 cout <<
"\tJHUGen decay-alone: " << p_prod_fa3_dec_fa3_VAJHU.decme << endl;
4578 cout <<
"\tJHUGen prod.-alone: " << p_prod_fa3_dec_fa3_VAJHU.prodme << endl;
4579 cout <<
"\tJHUGen ME: " << p_prod_fa3_dec_fa3_VAJHU.proddecme << endl;
4580 cout <<
"\tMCFM ME: " << p_prod_fa3_dec_fa3_VAMCFM.proddecme << endl;
4581 cout <<
"fa3, phia3=90" << endl;
4582 cout <<
"\tJHUGen decay-alone: " << p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.decme << endl;
4583 cout <<
"\tJHUGen prod.-alone: " << p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.prodme << endl;
4584 cout <<
"\tJHUGen ME: " << p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.proddecme << endl;
4585 cout <<
"\tMCFM ME: " << p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAMCFM.proddecme << endl;
4586 cout <<
"fa3, phia3=270" << endl;
4587 cout <<
"\tJHUGen decay-alone: " << p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.decme << endl;
4588 cout <<
"\tJHUGen prod.-alone: " << p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.prodme << endl;
4589 cout <<
"\tJHUGen ME: " << p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.proddecme << endl;
4590 cout <<
"\tMCFM ME: " << p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAMCFM.proddecme << endl;
4591 cout <<
"0mplusL2" << endl;
4592 cout <<
"\tJHUGen decay-alone: " << p_prod_0mplusL2_dec_0mplusL2_VAJHU.decme << endl;
4593 cout <<
"\tJHUGen prod.-alone: " << p_prod_0mplusL2_dec_0mplusL2_VAJHU.prodme << endl;
4594 cout <<
"\tJHUGen ME: " << p_prod_0mplusL2_dec_0mplusL2_VAJHU.proddecme << endl;
4595 cout <<
"\tMCFM ME: " << p_prod_0mplusL2_dec_0mplusL2_VAMCFM.proddecme << endl;
4596 cout <<
"fL2" << endl;
4597 cout <<
"\tJHUGen decay-alone: " << p_prod_fL2_dec_fL2_VAJHU.decme << endl;
4598 cout <<
"\tJHUGen prod.-alone: " << p_prod_fL2_dec_fL2_VAJHU.prodme << endl;
4599 cout <<
"\tJHUGen ME: " << p_prod_fL2_dec_fL2_VAJHU.proddecme << endl;
4600 cout <<
"\tMCFM ME: " << p_prod_fL2_dec_fL2_VAMCFM.proddecme << endl;
4601 cout <<
"0minusZA" << endl;
4602 cout <<
"\tJHUGen decay-alone: " << p_prod_0minusZA_dec_0minusZA_VAJHU.decme << endl;
4603 cout <<
"\tJHUGen prod.-alone: " << p_prod_0minusZA_dec_0minusZA_VAJHU.prodme << endl;
4604 cout <<
"\tJHUGen ME: " << p_prod_0minusZA_dec_0minusZA_VAJHU.proddecme << endl;
4605 cout <<
"\tMCFM ME: " << p_prod_0minusZA_dec_0minusZA_VAMCFM.proddecme << endl;
4606 cout <<
"fa3ZA" << endl;
4607 cout <<
"\tJHUGen decay-alone: " << p_prod_fa3ZA_dec_fa3ZA_VAJHU.decme << endl;
4608 cout <<
"\tJHUGen prod.-alone: " << p_prod_fa3ZA_dec_fa3ZA_VAJHU.prodme << endl;
4609 cout <<
"\tJHUGen ME: " << p_prod_fa3ZA_dec_fa3ZA_VAJHU.proddecme << endl;
4610 cout <<
"\tMCFM ME: " << p_prod_fa3ZA_dec_fa3ZA_VAMCFM.proddecme << endl;
4611 cout <<
"0minusAA" << endl;
4612 cout <<
"\tJHUGen decay-alone: " << p_prod_0minusAA_dec_0minusAA_VAJHU.decme << endl;
4613 cout <<
"\tJHUGen prod.-alone: " << p_prod_0minusAA_dec_0minusAA_VAJHU.prodme << endl;
4614 cout <<
"\tJHUGen ME: " << p_prod_0minusAA_dec_0minusAA_VAJHU.proddecme << endl;
4615 cout <<
"\tMCFM ME: " << p_prod_0minusAA_dec_0minusAA_VAMCFM.proddecme << endl;
4616 cout <<
"fa3AA" << endl;
4617 cout <<
"\tJHUGen decay-alone: " << p_prod_fa3AA_dec_fa3AA_VAJHU.decme << endl;
4618 cout <<
"\tJHUGen prod.-alone: " << p_prod_fa3AA_dec_fa3AA_VAJHU.prodme << endl;
4619 cout <<
"\tJHUGen ME: " << p_prod_fa3AA_dec_fa3AA_VAJHU.proddecme << endl;
4620 cout <<
"\tMCFM ME: " << p_prod_fa3AA_dec_fa3AA_VAMCFM.proddecme << endl;
4622 cout <<
"Arrays:" << endl;
4623 cout <<
"0mplus" << endl;
4624 cout <<
"\tJHUGen" << endl;
4625 p_prod_0mplus_dec_0mplus_VAJHU.printarray();
4626 cout <<
"\tMCFM" << endl;
4627 p_prod_0mplus_dec_0mplus_VAMCFM.printarray();
4628 cout <<
"\tJHUGen/MCFM Ratio" << endl;
4629 for (
int ii=0; ii<
nmsq; ii++){
4630 for (
int jj=0; jj<
nmsq; jj++){
4632 if (p_prod_0mplus_dec_0mplus_VAMCFM.mearray[ii][jj]!=0.)
cout << p_prod_0mplus_dec_0mplus_VAJHU.mearray[ii][jj]/p_prod_0mplus_dec_0mplus_VAMCFM.mearray[ii][jj];
4637 cout <<
"0hplus" << endl;
4638 cout <<
"\tJHUGen" << endl;
4639 p_prod_0hplus_dec_0hplus_VAJHU.printarray();
4640 cout <<
"\tMCFM" << endl;
4641 p_prod_0hplus_dec_0hplus_VAMCFM.printarray();
4642 cout <<
"\tJHUGen/MCFM Ratio" << endl;
4643 for (
int ii=0; ii<
nmsq; ii++){
4644 for (
int jj=0; jj<
nmsq; jj++){
4646 if (p_prod_0hplus_dec_0hplus_VAMCFM.mearray[ii][jj]!=0.)
cout << p_prod_0hplus_dec_0hplus_VAJHU.mearray[ii][jj]/p_prod_0hplus_dec_0hplus_VAMCFM.mearray[ii][jj];
4651 cout <<
"fa2" << endl;
4652 cout <<
"\tJHUGen" << endl;
4653 p_prod_fa2_dec_fa2_VAJHU.printarray();
4654 cout <<
"\tMCFM" << endl;
4655 p_prod_fa2_dec_fa2_VAMCFM.printarray();
4656 cout <<
"\tJHUGen/MCFM Ratio" << endl;
4657 for (
int ii=0; ii<
nmsq; ii++){
4658 for (
int jj=0; jj<
nmsq; jj++){
4660 if (p_prod_fa2_dec_fa2_VAMCFM.mearray[ii][jj]!=0.)
cout << p_prod_fa2_dec_fa2_VAJHU.mearray[ii][jj]/p_prod_fa2_dec_fa2_VAMCFM.mearray[ii][jj];
4665 cout <<
"fa2, phia2=90" << endl;
4666 cout <<
"\tJHUGen" << endl;
4667 p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.printarray();
4668 cout <<
"\tMCFM" << endl;
4669 p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAMCFM.printarray();
4670 cout <<
"\tJHUGen/MCFM Ratio" << endl;
4671 for (
int ii=0; ii<
nmsq; ii++){
4672 for (
int jj=0; jj<
nmsq; jj++){
4674 if (p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAMCFM.mearray[ii][jj]!=0.)
cout << p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAJHU.mearray[ii][jj]/p_prod_fa2_phia2_90_dec_fa2_phia2_90_VAMCFM.mearray[ii][jj];
4679 cout <<
"0minus" << endl;
4680 cout <<
"\tJHUGen" << endl;
4681 p_prod_0minus_dec_0minus_VAJHU.printarray();
4682 cout <<
"\tMCFM" << endl;
4683 p_prod_0minus_dec_0minus_VAMCFM.printarray();
4684 cout <<
"\tJHUGen/MCFM Ratio" << endl;
4685 for (
int ii=0; ii<
nmsq; ii++){
4686 for (
int jj=0; jj<
nmsq; jj++){
4688 if (p_prod_0minus_dec_0minus_VAMCFM.mearray[ii][jj]!=0.)
cout << p_prod_0minus_dec_0minus_VAJHU.mearray[ii][jj]/p_prod_0minus_dec_0minus_VAMCFM.mearray[ii][jj];
4693 cout <<
"fa3" << endl;
4694 cout <<
"\tJHUGen" << endl;
4695 p_prod_fa3_dec_fa3_VAJHU.printarray();
4696 cout <<
"\tMCFM" << endl;
4697 p_prod_fa3_dec_fa3_VAMCFM.printarray();
4698 cout <<
"\tJHUGen/MCFM Ratio" << endl;
4699 for (
int ii=0; ii<
nmsq; ii++){
4700 for (
int jj=0; jj<
nmsq; jj++){
4702 if (p_prod_fa3_dec_fa3_VAMCFM.mearray[ii][jj]!=0.)
cout << p_prod_fa3_dec_fa3_VAJHU.mearray[ii][jj]/p_prod_fa3_dec_fa3_VAMCFM.mearray[ii][jj];
4707 cout <<
"fa3, phia3=90" << endl;
4708 cout <<
"\tJHUGen" << endl;
4709 p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.printarray();
4710 cout <<
"\tMCFM" << endl;
4711 p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAMCFM.printarray();
4712 cout <<
"\tJHUGen/MCFM Ratio" << endl;
4713 for (
int ii=0; ii<
nmsq; ii++){
4714 for (
int jj=0; jj<
nmsq; jj++){
4716 if (p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAMCFM.mearray[ii][jj]!=0.)
cout << p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAJHU.mearray[ii][jj]/p_prod_fa3_phia3_90_dec_fa3_phia3_90_VAMCFM.mearray[ii][jj];
4721 cout <<
"fa3, phia3=270" << endl;
4722 cout <<
"\tJHUGen" << endl;
4723 p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.printarray();
4724 cout <<
"\tMCFM" << endl;
4725 p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAMCFM.printarray();
4726 cout <<
"\tJHUGen/MCFM Ratio" << endl;
4727 for (
int ii=0; ii<
nmsq; ii++){
4728 for (
int jj=0; jj<
nmsq; jj++){
4730 if (p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAMCFM.mearray[ii][jj]!=0.)
cout << p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAJHU.mearray[ii][jj]/p_prod_fa3_phia3_270_dec_fa3_phia3_270_VAMCFM.mearray[ii][jj];
4735 cout <<
"0mplusL2" << endl;
4736 cout <<
"\tJHUGen" << endl;
4737 p_prod_0mplusL2_dec_0mplusL2_VAJHU.printarray();
4738 cout <<
"\tMCFM" << endl;
4739 p_prod_0mplusL2_dec_0mplusL2_VAMCFM.printarray();
4740 cout <<
"\tJHUGen/MCFM Ratio" << endl;
4741 for (
int ii=0; ii<
nmsq; ii++){
4742 for (
int jj=0; jj<
nmsq; jj++){
4744 if (p_prod_0mplusL2_dec_0mplusL2_VAMCFM.mearray[ii][jj]!=0.)
cout << p_prod_0mplusL2_dec_0mplusL2_VAJHU.mearray[ii][jj]/p_prod_0mplusL2_dec_0mplusL2_VAMCFM.mearray[ii][jj];
4749 cout <<
"fL2" << endl;
4750 cout <<
"\tJHUGen" << endl;
4751 p_prod_fL2_dec_fL2_VAJHU.printarray();
4752 cout <<
"\tMCFM" << endl;
4753 p_prod_fL2_dec_fL2_VAMCFM.printarray();
4754 cout <<
"\tJHUGen/MCFM Ratio" << endl;
4755 for (
int ii=0; ii<
nmsq; ii++){
4756 for (
int jj=0; jj<
nmsq; jj++){
4758 if (p_prod_fL2_dec_fL2_VAMCFM.mearray[ii][jj]!=0.)
cout << p_prod_fL2_dec_fL2_VAJHU.mearray[ii][jj]/p_prod_fL2_dec_fL2_VAMCFM.mearray[ii][jj];
4763 cout <<
"0minusZA" << endl;
4764 cout <<
"\tJHUGen" << endl;
4765 p_prod_0minusZA_dec_0minusZA_VAJHU.printarray();
4766 cout <<
"\tMCFM" << endl;
4767 p_prod_0minusZA_dec_0minusZA_VAMCFM.printarray();
4768 cout <<
"\tJHUGen/MCFM Ratio" << endl;
4769 for (
int ii=0; ii<
nmsq; ii++){
4770 for (
int jj=0; jj<
nmsq; jj++){
4772 if (p_prod_0minusZA_dec_0minusZA_VAMCFM.mearray[ii][jj]!=0.)
cout << p_prod_0minusZA_dec_0minusZA_VAJHU.mearray[ii][jj]/p_prod_0minusZA_dec_0minusZA_VAMCFM.mearray[ii][jj];
4777 cout <<
"fa3ZA" << endl;
4778 cout <<
"\tJHUGen" << endl;
4779 p_prod_fa3ZA_dec_fa3ZA_VAJHU.printarray();
4780 cout <<
"\tMCFM" << endl;
4781 p_prod_fa3ZA_dec_fa3ZA_VAMCFM.printarray();
4782 cout <<
"\tJHUGen/MCFM Ratio" << endl;
4783 for (
int ii=0; ii<
nmsq; ii++){
4784 for (
int jj=0; jj<
nmsq; jj++){
4786 if (p_prod_fa3ZA_dec_fa3ZA_VAMCFM.mearray[ii][jj]!=0.)
cout << p_prod_fa3ZA_dec_fa3ZA_VAJHU.mearray[ii][jj]/p_prod_fa3ZA_dec_fa3ZA_VAMCFM.mearray[ii][jj];
4791 cout <<
"0minusAA" << endl;
4792 cout <<
"\tJHUGen" << endl;
4793 p_prod_0minusAA_dec_0minusAA_VAJHU.printarray();
4794 cout <<
"\tMCFM" << endl;
4795 p_prod_0minusAA_dec_0minusAA_VAMCFM.printarray();
4796 cout <<
"\tJHUGen/MCFM Ratio" << endl;
4797 for (
int ii=0; ii<
nmsq; ii++){
4798 for (
int jj=0; jj<
nmsq; jj++){
4800 if (p_prod_0minusAA_dec_0minusAA_VAMCFM.mearray[ii][jj]!=0.)
cout << p_prod_0minusAA_dec_0minusAA_VAJHU.mearray[ii][jj]/p_prod_0minusAA_dec_0minusAA_VAMCFM.mearray[ii][jj];
4805 cout <<
"fa3AA" << endl;
4806 cout <<
"\tJHUGen" << endl;
4807 p_prod_fa3AA_dec_fa3AA_VAJHU.printarray();
4808 cout <<
"\tMCFM" << endl;
4809 p_prod_fa3AA_dec_fa3AA_VAMCFM.printarray();
4810 cout <<
"\tJHUGen/MCFM Ratio" << endl;
4811 for (
int ii=0; ii<
nmsq; ii++){
4812 for (
int jj=0; jj<
nmsq; jj++){
4814 if (p_prod_fa3AA_dec_fa3AA_VAMCFM.mearray[ii][jj]!=0.)
cout << p_prod_fa3AA_dec_fa3AA_VAJHU.mearray[ii][jj]/p_prod_fa3AA_dec_fa3AA_VAMCFM.mearray[ii][jj];
4819 cout <<
"Bkg" << endl;
4820 cout <<
"\tMCFM" << endl;
4821 p_bkg_VAMCFM.printarray();
4822 cout <<
"\tMCFM 0mplus/Bkg Ratio" << endl;
4823 for (
int ii=0; ii<
nmsq; ii++){
4824 for (
int jj=0; jj<
nmsq; jj++){
4826 if (p_bkg_VAMCFM.mearray[ii][jj]!=0.)
cout << p_prod_0mplus_dec_0mplus_VAJHU.mearray[ii][jj]/p_bkg_VAMCFM.mearray[ii][jj];
4831 if (motherflavor==0 && vbfvhchannel<2){
4832 cout <<
"Bkg manual sum" << endl;
4833 cout <<
"\tMCFM" << endl;
4834 p_bkg_VAMCFM_rssum.printarray();
4835 cout <<
"\tMCFM Bkg (re-sum)/Bkg Ratio" << endl;
4836 bool wrongRatio=
false;
4837 for (
int ii=0; ii<
nmsq; ii++){
4838 for (
int jj=0; jj<
nmsq; jj++){
4841 if (p_bkg_VAMCFM.mearray[ii][jj]!=0.) rr = p_bkg_VAMCFM_rssum.mearray[ii][jj]/p_bkg_VAMCFM.mearray[ii][jj];
4842 else if (p_bkg_VAMCFM_rssum.mearray[ii][jj]!=0.) rr = -9999;
4844 if (rr!=0. && rr!=4.) wrongRatio=
true;
4850 for (
int r=-5;
r<=5;
r++){
4851 for (
int s=-5; s<=5; s++){
4860 mcfmme p_bkg_VAMCFM_rsindiv;
4861 mela.computeProdDecP(p_bkg_VAMCFM_rsindiv.proddecme,
false);
4862 mela.getIORecord()->getUnweightedMEArray(p_bkg_VAMCFM_rsindiv.mearray);
4863 if (p_bkg_VAMCFM_rsindiv.proddecme>0.){
4865 mela.computeProdDecP(p_bkg_VAMCFM_rsindiv.proddecme,
false);
4867 cout <<
"Outgoing id1, id2 = " <<
r <<
" , " << s << endl;
4869 for (
int ii=0; ii<
nmsq; ii++){
4870 for (
int jj=0; jj<
nmsq; jj++){
4872 cout << p_bkg_VAMCFM_rsindiv.mearray[ii][jj];
4878 mela.setVerbosity(verbosity);
4890 mela.resetInputEvent();
4893 TUtil::SetCKMElements(&bkpvckm_ud, &bkpvckm_us, &bkpvckm_cd, &bkpvckm_cs, &bkpvckm_ts, &bkpvckm_tb, &bkpvckm_ub, &bkpvckm_cb, &bkpvckm_td);
4896 cout.rdbuf(coutbuf);
4898 mela.setVerbosity(bkpverbosity);
4903 if (hasInterf==1 && decZZWW==2)
return;
4905 if (decZZWW==1) outname = Form(
"testME_ProdDec_MCFM_JHUGen_JJQCDZZ_Comparison_Ping_%i_%s.out", motherflavor, (hasInterf ?
"4l" :
"2l2l"));
4906 else if (decZZWW==2) outname = Form(
"testME_ProdDec_MCFM_JHUGen_JJQCDWW_Comparison_Ping_%i.out", motherflavor);
4914 for (
int ii=0; ii<
nmsq; ii++){
for (
int jj=0; jj<
nmsq; jj++) mearray[ii][jj]=0; }
4916 void add(
const mcfmme& other){
4917 proddecme+=other.proddecme;
4918 for (
int ii=0; ii<
nmsq; ii++){
for (
int jj=0; jj<
nmsq; jj++) mearray[ii][jj]+=(other.mearray)[ii][jj]; }
4920 void multiplyarray(
const float val){
4921 for (
int ii=0; ii<
nmsq; ii++){
for (
int jj=0; jj<
nmsq; jj++) mearray[ii][jj]*=val; }
4924 for (
int ii=0; ii<
nmsq; ii++){
for (
int jj=0; jj<
nmsq; jj++)
cout <<
'\t' << mearray[ii][jj];
cout << endl; }
4930 float wPOLE=4.07e-3;
4933 int idMother[2]={ 0 };
4934 if (motherflavor==0){}
4935 else if (motherflavor==1){ idMother[0]=2; idMother[1]=-2; }
4936 else if (motherflavor==2){ idMother[0]=4; idMother[1]=-4; }
4937 else if (motherflavor==3){ idMother[0]=-4; idMother[1]=2; }
4938 else if (motherflavor==4){ idMother[0]=-2; idMother[1]=4; }
4939 else if (motherflavor==5){ idMother[0]=1; idMother[1]=-1; }
4940 else if (motherflavor==6){ idMother[0]=3; idMother[1]=-3; }
4941 else if (motherflavor==7){ idMother[0]=5; idMother[1]=-5; }
4942 else if (motherflavor==8){ idMother[0]=-3; idMother[1]=1; }
4943 else if (motherflavor==9){ idMother[0]=-5; idMother[1]=1; }
4944 else if (motherflavor==10){ idMother[0]=-1; idMother[1]=3; }
4945 else if (motherflavor==11){ idMother[0]=-1; idMother[1]=5; }
4947 else if (motherflavor==12){ idMother[0]=1; idMother[1]=1; }
4948 else if (motherflavor==13){ idMother[0]=2; idMother[1]=2; }
4949 else if (motherflavor==14){ idMother[0]=3; idMother[1]=3; }
4950 else if (motherflavor==15){ idMother[0]=4; idMother[1]=4; }
4951 else if (motherflavor==16){ idMother[0]=5; idMother[1]=5; }
4953 else if (motherflavor==17){ idMother[0]=1; idMother[1]=21; }
4954 else if (motherflavor==18){ idMother[0]=21; idMother[1]=3; }
4955 else if (motherflavor==19){ idMother[0]=21; idMother[1]=5; }
4956 else if (motherflavor==20){ idMother[0]=-1; idMother[1]=21; }
4957 else if (motherflavor==21){ idMother[0]=21; idMother[1]=-3; }
4958 else if (motherflavor==22){ idMother[0]=21; idMother[1]=-5; }
4959 else if (motherflavor==23){ idMother[0]=2; idMother[1]=21; }
4960 else if (motherflavor==24){ idMother[0]=21; idMother[1]=4; }
4961 else if (motherflavor==25){ idMother[0]=-2; idMother[1]=21; }
4962 else if (motherflavor==26){ idMother[0]=21; idMother[1]=-4; }
4963 else if (motherflavor==27){ idMother[0]=21; idMother[1]=21; }
4965 else if (motherflavor==28){ idMother[0]=1; idMother[1]=0; }
4966 else if (motherflavor==29){ idMother[0]=-1; idMother[1]=0; }
4967 else if (motherflavor==30){ idMother[0]=2; idMother[1]=0; }
4968 else if (motherflavor==31){ idMother[0]=-2; idMother[1]=0; }
4969 else if (motherflavor==32){ idMother[0]=3; idMother[1]=0; }
4970 else if (motherflavor==33){ idMother[0]=-3; idMother[1]=0; }
4971 else if (motherflavor==34){ idMother[0]=4; idMother[1]=0; }
4972 else if (motherflavor==35){ idMother[0]=-4; idMother[1]=0; }
4973 else if (motherflavor==36){ idMother[0]=5; idMother[1]=0; }
4974 else if (motherflavor==37){ idMother[0]=-5; idMother[1]=0; }
4975 else if (motherflavor==38){ idMother[0]=21; idMother[1]=0; }
4980 ofstream tout(outname.Data());
4981 streambuf* coutbuf =
cout.rdbuf();
4982 cout.rdbuf(tout.rdbuf());
4988 melaptr.reset(
new Mela(erg_tev, mPOLE, verbosity));
4992 mela.setVerbosity(verbosity);
4994 mcfmme p_prod_JJQCD_VAMCFM, p_prod_JJQCD_VAMCFM_rssum;
4999 float pingMom[8][4]={
5000 { 0, 0, 865.37881546721542, 865.37881546721542 },
5001 { 0, 0, -624.03396598421773, 624.03396598421773 },
5002 { 7.6145299215002638, -17.259247740062808, 9.4660586470659975, 21.106135714241464 },
5003 { 90.901719112641416, -69.683681833050798, 32.066319224729980, 118.94194752090492 },
5004 { 78.476352131782917, -35.264818847819797, -8.8615639484695272, 86.490881645951262 },
5005 { 191.68369742375290, -197.85205601463366, 100.99437243828194, 293.40746273989180 },
5006 { -131.59521398083137, 330.56000090294270, 437.01695094737875, 563.53440884737279 },
5007 { -237.08108460884614, -10.500196467375645, -329.33728782598945, 405.93194498307093 }
5010 int GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
5019 GenLep3Id=GenLep1Id;
5020 GenLep4Id=GenLep2Id;
5032 int idOrdered[4] ={ GenLep1Id, GenLep2Id, GenLep3Id, GenLep4Id };
5035 for (
unsigned int ip=0; ip<2; ip++){
5039 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
5044 for (
unsigned int ip=2; ip<6; ip++){
5048 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
5053 for (
unsigned int ip=6; ip<8; ip++){
5057 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
5070 mela.computeProdDecP(p_prod_JJQCD_VAMCFM.proddecme,
false);
5071 mela.getIORecord()->getUnweightedMEArray(p_prod_JJQCD_VAMCFM.mearray);
5072 if (motherflavor==0){
5073 for (
int r=-5;
r<=21;
r++){
5074 if (
r>5 &&
r<21)
continue;
5075 for (
int s=-5; s<=21; s++){
5076 if (s>5 && s<21)
continue;
5085 mcfmme p_prod_JJQCD_VAMCFM_rsindiv;
5086 mela.computeProdDecP(p_prod_JJQCD_VAMCFM_rsindiv.proddecme,
false);
5087 mela.getIORecord()->getUnweightedMEArray(p_prod_JJQCD_VAMCFM_rsindiv.mearray);
5088 p_prod_JJQCD_VAMCFM_rssum.add(p_prod_JJQCD_VAMCFM_rsindiv);
5095 cout <<
"Production variables:\n";
5096 cout <<
"\tmZZ = " << mzz << endl;
5097 cout <<
"\tmJJ = " << mjj << endl;
5098 cout <<
"MEsq:" << endl;
5099 cout <<
"\tMCFM ME: " << p_prod_JJQCD_VAMCFM.proddecme << endl;
5100 cout <<
"\tArray:" << endl;
5101 p_prod_JJQCD_VAMCFM.printarray();
5102 if (motherflavor==0){
5103 cout <<
"Bkg manual sum" << endl;
5104 cout <<
"\tMCFM" << endl;
5105 p_prod_JJQCD_VAMCFM_rssum.printarray();
5106 cout <<
"\tMCFM Bkg (re-sum)/Bkg Ratio" << endl;
5107 bool wrongRatio=
false;
5108 vector<pair<int, int>> wrongRatioArray;
5109 for (
int ii=0; ii<
nmsq; ii++){
5110 for (
int jj=0; jj<
nmsq; jj++){
5113 if (p_prod_JJQCD_VAMCFM.mearray[ii][jj]!=0.) rr = p_prod_JJQCD_VAMCFM_rssum.mearray[ii][jj]/p_prod_JJQCD_VAMCFM.mearray[ii][jj];
5114 else if (p_prod_JJQCD_VAMCFM_rssum.mearray[ii][jj]!=0.) rr = -9999;
5116 if (rr!=0. && rr!=4.){
5118 wrongRatioArray.push_back(pair<int, int>(ii, jj));
5124 for (
int r=-5;
r<=21;
r++){
5125 if (
r>5 &&
r<21)
continue;
5126 for (
int s=-5; s<=21; s++){
5127 if (s>5 && s<21)
continue;
5136 mcfmme p_prod_JJQCD_VAMCFM_rsindiv;
5137 mela.computeProdDecP(p_prod_JJQCD_VAMCFM_rsindiv.proddecme,
false);
5138 mela.getIORecord()->getUnweightedMEArray(p_prod_JJQCD_VAMCFM_rsindiv.mearray);
5139 if (p_prod_JJQCD_VAMCFM_rsindiv.proddecme>0.){
5140 mela.computeProdDecP(p_prod_JJQCD_VAMCFM_rsindiv.proddecme,
false);
5141 bool hasCorrespondance=
false;
5142 for (
auto&
p:wrongRatioArray){
5143 for (
int ii=0; ii<
nmsq; ii++){
5144 for (
int jj=0; jj<
nmsq; jj++){
5145 if (
p.first==ii &&
p.second==jj && p_prod_JJQCD_VAMCFM_rsindiv.mearray[ii][jj]!=0.) hasCorrespondance=
true;
5146 if (hasCorrespondance)
break;
5148 if (hasCorrespondance)
break;
5150 if (hasCorrespondance)
break;
5152 if (hasCorrespondance){
5157 cout <<
"Outgoing id1, id2 = " <<
r <<
" , " << s << endl;
5159 for (
int ii=0; ii<
nmsq; ii++){
5160 for (
int jj=0; jj<
nmsq; jj++){
5162 cout << p_prod_JJQCD_VAMCFM_rsindiv.mearray[ii][jj];
5169 mela.setVerbosity(verbosity);
5181 mela.resetInputEvent();
5183 cout.rdbuf(coutbuf);
5185 mela.setVerbosity(bkpverbosity);
5190 if (vbfvhchannel<1 || vbfvhchannel>2)
return;
5192 if (isZZWW==1) outname = Form(
"testME_ProdDec_MCFM_JHUGen_WBFZZ_TU_Comparison_Ping_%i_%i_%i.out", motherflavor, isZZWW, vbfvhchannel);
5193 else if (isZZWW==2) outname = Form(
"testME_ProdDec_MCFM_JHUGen_WBFWW_TU_Comparison_Ping_%i_%i_%i.out", motherflavor, isZZWW, vbfvhchannel);
5201 for (
int ii=0; ii<
nmsq; ii++){
for (
int jj=0; jj<
nmsq; jj++) mearray[ii][jj]=0; }
5203 void add(
const mcfmme& other){
5204 proddecme+=other.proddecme;
5205 for (
int ii=0; ii<
nmsq; ii++){
for (
int jj=0; jj<
nmsq; jj++) mearray[ii][jj]+=(other.mearray)[ii][jj]; }
5207 void multiplyarray(
const float val){
5208 for (
int ii=0; ii<
nmsq; ii++){
for (
int jj=0; jj<
nmsq; jj++) mearray[ii][jj]*=val; }
5211 for (
int ii=0; ii<
nmsq; ii++){
for (
int jj=0; jj<
nmsq; jj++)
cout <<
'\t' << mearray[ii][jj];
cout << endl; }
5217 float wPOLE=4.07e-3;
5222 int idMother[2]={ 0 };
5223 if (vbfvhchannel<=1){
5225 if (motherflavor==1){
5226 idMother[0]=2; idMother[1]=-1;
5228 (isZZWW==2 && vbfvhchannel>=1);
5230 else if (motherflavor==2){
5231 idMother[0]=-2; idMother[1]=1;
5233 (isZZWW==2 && vbfvhchannel>=1);
5236 else if (motherflavor==3){
5237 idMother[0]=2; idMother[1]=-2;
5239 (isZZWW==1 && vbfvhchannel>=1);
5241 else if (motherflavor==4){
5242 idMother[0]=-2; idMother[1]=2;
5244 (isZZWW==1 && vbfvhchannel>=1);
5246 else if (motherflavor==5){
5247 idMother[0]=1; idMother[1]=-1;
5249 (isZZWW==1 && vbfvhchannel>=1);
5251 else if (motherflavor==6){
5252 idMother[0]=-1; idMother[1]=1;
5254 (isZZWW==1 && vbfvhchannel>=1);
5257 else if (motherflavor==7){
5258 idMother[0]=4; idMother[1]=-3;
5260 (isZZWW==2 && vbfvhchannel>=1);
5262 else if (motherflavor==8){
5263 idMother[0]=4; idMother[1]=-1;
5265 (isZZWW==2 && vbfvhchannel>=1);
5267 else if (motherflavor==9){
5268 idMother[0]=2; idMother[1]=-3;
5270 (isZZWW==2 && vbfvhchannel>=1);
5272 else if (motherflavor==10){
5273 idMother[0]=-4; idMother[1]=3;
5275 (isZZWW==2 && vbfvhchannel>=1);
5277 else if (motherflavor==11){
5278 idMother[0]=-4; idMother[1]=1;
5280 (isZZWW==2 && vbfvhchannel>=1);
5282 else if (motherflavor==12){
5283 idMother[0]=-2; idMother[1]=3;
5285 (isZZWW==2 && vbfvhchannel>=1);
5288 else if (motherflavor==13){
5289 idMother[0]=4; idMother[1]=-4;
5291 (isZZWW==1 && vbfvhchannel>=1);
5293 else if (motherflavor==14){
5294 idMother[0]=-4; idMother[1]=4;
5296 (isZZWW==1 && vbfvhchannel>=1);
5298 else if (motherflavor==15){
5299 idMother[0]=3; idMother[1]=-3;
5301 (isZZWW==1 && vbfvhchannel>=1);
5303 else if (motherflavor==16){
5304 idMother[0]=-3; idMother[1]=3;
5306 (isZZWW==1 && vbfvhchannel>=1);
5308 else if (motherflavor==17){
5309 idMother[0]=5; idMother[1]=-5;
5311 (isZZWW==1 && vbfvhchannel>=1);
5313 else if (motherflavor==18){
5314 idMother[0]=-5; idMother[1]=5;
5316 (isZZWW==1 && vbfvhchannel>=1);
5319 else if (vbfvhchannel==2){
5321 if (motherflavor==1){
5322 idMother[0]=14; idMother[1]=-13;
5324 (isZZWW==2 && vbfvhchannel>=1);
5326 else if (motherflavor==2){
5327 idMother[0]=-14; idMother[1]=13;
5329 (isZZWW==2 && vbfvhchannel>=1);
5332 else if (motherflavor==3){
5333 idMother[0]=14; idMother[1]=-14;
5335 (isZZWW==1 && vbfvhchannel>=1);
5337 else if (motherflavor==4){
5338 idMother[0]=-14; idMother[1]=14;
5340 (isZZWW==1 && vbfvhchannel>=1);
5342 else if (motherflavor==5){
5343 idMother[0]=13; idMother[1]=-13;
5345 (isZZWW==1 && vbfvhchannel>=1);
5347 else if (motherflavor==6){
5348 idMother[0]=-13; idMother[1]=13;
5350 (isZZWW==1 && vbfvhchannel>=1);
5355 if (vbfvhchannel==1){
5357 (idMother[0]==-idMother[1] && idMother[0]!=0)
5360 (TMath::Sign(1, idMother[0])==-TMath::Sign(1, idMother[1]) && abs(idMother[0])%2!=abs(idMother[1])%2)
5364 else if (vbfvhchannel==2){
5366 else if (TMath::Sign(1, idMother[0])==-TMath::Sign(1, idMother[1]) && abs(idMother[0])%2!=abs(idMother[1])%2)
prod=
TVar::Lep_WH_S;
5390 ofstream tout(outname.Data());
5391 streambuf* coutbuf =
cout.rdbuf();
5392 cout.rdbuf(tout.rdbuf());
5395 melaptr.reset(
new Mela(erg_tev, mPOLE, verbosity));
5399 mela.setVerbosity(verbosity);
5401 mcfmme p_bkg_VAMCFM;
5402 mcfmme p_prod_0mplus_dec_0mplus_VAMCFM;
5403 mcfmme p_prod_0minus_dec_0minus_VAMCFM;
5404 mcfmme p_prod_fa3_dec_fa3_VAMCFM;
5405 mcfmme p_prod_0minusZA_dec_0minusZA_VAMCFM;
5406 mcfmme p_prod_fa3ZA_dec_fa3ZA_VAMCFM;
5407 mcfmme p_prod_0minusAA_dec_0minusAA_VAMCFM;
5408 mcfmme p_prod_fa3AA_dec_fa3AA_VAMCFM;
5410 mcfmme p_bkg_tu_VAMCFM;
5411 mcfmme p_prod_tu_0mplus_dec_0mplus_VAMCFM;
5412 mcfmme p_prod_tu_0minus_dec_0minus_VAMCFM;
5413 mcfmme p_prod_tu_fa3_dec_fa3_VAMCFM;
5414 mcfmme p_prod_tu_0minusZA_dec_0minusZA_VAMCFM;
5415 mcfmme p_prod_tu_fa3ZA_dec_fa3ZA_VAMCFM;
5416 mcfmme p_prod_tu_0minusAA_dec_0minusAA_VAMCFM;
5417 mcfmme p_prod_tu_fa3AA_dec_fa3AA_VAMCFM;
5419 mcfmme p_bkg_stu_VAMCFM;
5420 mcfmme p_prod_stu_0mplus_dec_0mplus_VAMCFM;
5421 mcfmme p_prod_stu_0minus_dec_0minus_VAMCFM;
5422 mcfmme p_prod_stu_fa3_dec_fa3_VAMCFM;
5423 mcfmme p_prod_stu_0minusZA_dec_0minusZA_VAMCFM;
5424 mcfmme p_prod_stu_fa3ZA_dec_fa3ZA_VAMCFM;
5425 mcfmme p_prod_stu_0minusAA_dec_0minusAA_VAMCFM;
5426 mcfmme p_prod_stu_fa3AA_dec_fa3AA_VAMCFM;
5433 float costhetastar=0;
5440 float mVstar=0, mV=0;
5442 float pingMom[8][4]={
5443 { 0, 0, 865.37881546721542, 865.37881546721542 },
5444 { 0, 0, -624.03396598421773, 624.03396598421773 },
5445 { 7.6145299215002638, -17.259247740062808, 9.4660586470659975, 21.106135714241464 },
5446 { 90.901719112641416, -69.683681833050798, 32.066319224729980, 118.94194752090492 },
5447 { 78.476352131782917, -35.264818847819797, -8.8615639484695272, 86.490881645951262 },
5448 { 191.68369742375290, -197.85205601463366, 100.99437243828194, 293.40746273989180 },
5449 { -131.59521398083137, 330.56000090294270, 437.01695094737875, 563.53440884737279 },
5450 { -237.08108460884614, -10.500196467375645, -329.33728782598945, 405.93194498307093 }
5453 int GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
5468 int idOrdered[4] ={ GenLep1Id, GenLep2Id, GenLep3Id, GenLep4Id };
5471 for (
unsigned int ip=0; ip<2; ip++){
5475 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
5480 for (
unsigned int ip=2; ip<6; ip++){
5484 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
5489 for (
unsigned int ip=6; ip<8; ip++){
5493 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
5504 if (isZZWW==1 || (isZZWW==2 && (idMother[0]+idMother[1])>0)){
5505 for (
unsigned int ip=2; ip<4; ip++){
5506 daughters_tu.push_back(
5509 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
5513 for (
unsigned int ip=4; ip<6; ip++){
5514 associated_tu.push_back(
5517 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
5521 for (
unsigned int ip=6; ip<8; ip++){
5522 daughters_tu.push_back(
5525 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
5531 for (
unsigned int ip=2; ip<4; ip++){
5532 associated_tu.push_back(
5535 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
5539 for (
unsigned int ip=4; ip<6; ip++){
5540 daughters_tu.push_back(
5543 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
5547 for (
unsigned int ip=6; ip<8; ip++){
5548 daughters_tu.push_back(
5551 TLorentzVector(pingMom[ip][0], pingMom[ip][1], pingMom[ip][2], pingMom[ip][3])
5556 mela.setInputEvent(&daughters_tu, &associated_tu, &
mothers,
true);
5648 double invckm_ud=1, invckm_us=0, invckm_cd=0, invckm_cs=1, invckm_ts=0, invckm_tb=1, invckm_ub=0, invckm_cb=0, invckm_td=0;
5649 TUtil::SetCKMElements(&invckm_ud, &invckm_us, &invckm_cd, &invckm_cs, &invckm_ts, &invckm_tb, &invckm_ub, &invckm_cb, &invckm_td);
5653 mela.setCurrentCandidateFromIndex(1);
5654 cand =
mela.getCurrentCandidate();
5671 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_1][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
5673 mela.computeProdDecP(p_prod_0mplus_dec_0mplus_VAMCFM.proddecme,
false);
5674 mela.getIORecord()->getUnweightedMEArray(p_prod_0mplus_dec_0mplus_VAMCFM.mearray);
5677 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_4][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
5679 mela.computeProdDecP(p_prod_0minus_dec_0minus_VAMCFM.proddecme,
false);
5680 mela.getIORecord()->getUnweightedMEArray(p_prod_0minus_dec_0minus_VAMCFM.mearray);
5685 mela.computeProdDecP(p_prod_fa3_dec_fa3_VAMCFM.proddecme,
false);
5686 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3_dec_fa3_VAMCFM.mearray);
5689 bool testZAcoupl=
true;
5690 if (vbfvhchannel>=1){
5695 else testZAcoupl=
false;
5701 mela.differentiate_HWW_HZZ=
true;
5702 mela.computeProdDecP(p_prod_0minusZA_dec_0minusZA_VAMCFM.proddecme,
false);
5703 mela.getIORecord()->getUnweightedMEArray(p_prod_0minusZA_dec_0minusZA_VAMCFM.mearray);
5707 mela.differentiate_HWW_HZZ=
true;
5708 mela.computeProdDecP(p_prod_0minusAA_dec_0minusAA_VAMCFM.proddecme,
false);
5709 mela.getIORecord()->getUnweightedMEArray(p_prod_0minusAA_dec_0minusAA_VAMCFM.mearray);
5714 mela.differentiate_HWW_HZZ=
true;
5715 mela.computeProdDecP(p_prod_fa3ZA_dec_fa3ZA_VAMCFM.proddecme,
false);
5716 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3ZA_dec_fa3ZA_VAMCFM.mearray);
5721 mela.differentiate_HWW_HZZ=
true;
5722 mela.computeProdDecP(p_prod_fa3AA_dec_fa3AA_VAMCFM.proddecme,
false);
5723 mela.getIORecord()->getUnweightedMEArray(p_prod_fa3AA_dec_fa3AA_VAMCFM.mearray);
5730 mela.computeProdDecP(p_bkg_VAMCFM.proddecme,
false);
5731 mela.getIORecord()->getUnweightedMEArray(p_bkg_VAMCFM.mearray);
5735 mela.setCurrentCandidateFromIndex(0);
5736 cand =
mela.getCurrentCandidate();
5756 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_1][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
5758 mela.computeProdDecP(p_prod_tu_0mplus_dec_0mplus_VAMCFM.proddecme,
false);
5759 mela.getIORecord()->getUnweightedMEArray(p_prod_tu_0mplus_dec_0mplus_VAMCFM.mearray);
5762 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_4][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
5764 mela.computeProdDecP(p_prod_tu_0minus_dec_0minus_VAMCFM.proddecme,
false);
5765 mela.getIORecord()->getUnweightedMEArray(p_prod_tu_0minus_dec_0minus_VAMCFM.mearray);
5770 mela.computeProdDecP(p_prod_tu_fa3_dec_fa3_VAMCFM.proddecme,
false);
5771 mela.getIORecord()->getUnweightedMEArray(p_prod_tu_fa3_dec_fa3_VAMCFM.mearray);
5775 if (vbfvhchannel>=1){
5780 else testZAcoupl=
false;
5786 mela.differentiate_HWW_HZZ=
true;
5787 mela.computeProdDecP(p_prod_tu_0minusZA_dec_0minusZA_VAMCFM.proddecme,
false);
5788 mela.getIORecord()->getUnweightedMEArray(p_prod_tu_0minusZA_dec_0minusZA_VAMCFM.mearray);
5792 mela.differentiate_HWW_HZZ=
true;
5793 mela.computeProdDecP(p_prod_tu_0minusAA_dec_0minusAA_VAMCFM.proddecme,
false);
5794 mela.getIORecord()->getUnweightedMEArray(p_prod_tu_0minusAA_dec_0minusAA_VAMCFM.mearray);
5799 mela.differentiate_HWW_HZZ=
true;
5800 mela.computeProdDecP(p_prod_tu_fa3ZA_dec_fa3ZA_VAMCFM.proddecme,
false);
5801 mela.getIORecord()->getUnweightedMEArray(p_prod_tu_fa3ZA_dec_fa3ZA_VAMCFM.mearray);
5806 mela.differentiate_HWW_HZZ=
true;
5807 mela.computeProdDecP(p_prod_tu_fa3AA_dec_fa3AA_VAMCFM.proddecme,
false);
5808 mela.getIORecord()->getUnweightedMEArray(p_prod_tu_fa3AA_dec_fa3AA_VAMCFM.mearray);
5815 mela.computeProdDecP(p_bkg_tu_VAMCFM.proddecme,
false);
5816 mela.getIORecord()->getUnweightedMEArray(p_bkg_tu_VAMCFM.mearray);
5823 cout <<
"Production variables:\n";
5824 cout <<
"\tmJJ = " << mjj << endl;
5825 cout <<
"\tPhi = " << Phi << endl;
5826 cout <<
"Bkg" << endl;
5827 cout <<
"\tMCFM s ME: " << p_bkg_VAMCFM.proddecme << endl;
5828 cout <<
"\tMCFM tu ME: " << p_bkg_tu_VAMCFM.proddecme << endl;
5829 cout <<
"0mplus" << endl;
5830 cout <<
"\tMCFM s ME: " << p_prod_0mplus_dec_0mplus_VAMCFM.proddecme << endl;
5831 cout <<
"\tMCFM tu ME: " << p_prod_tu_0mplus_dec_0mplus_VAMCFM.proddecme << endl;
5832 cout <<
"0minus" << endl;
5833 cout <<
"\tMCFM s ME: " << p_prod_0minus_dec_0minus_VAMCFM.proddecme << endl;
5834 cout <<
"\tMCFM tu ME: " << p_prod_tu_0minus_dec_0minus_VAMCFM.proddecme << endl;
5835 cout <<
"fa3" << endl;
5836 cout <<
"\tMCFM s ME: " << p_prod_fa3_dec_fa3_VAMCFM.proddecme << endl;
5837 cout <<
"\tMCFM tu ME: " << p_prod_tu_fa3_dec_fa3_VAMCFM.proddecme << endl;
5838 cout <<
"0minusZA" << endl;
5839 cout <<
"\tMCFM s ME: " << p_prod_0minusZA_dec_0minusZA_VAMCFM.proddecme << endl;
5840 cout <<
"\tMCFM tu ME: " << p_prod_tu_0minusZA_dec_0minusZA_VAMCFM.proddecme << endl;
5841 cout <<
"fa3ZA" << endl;
5842 cout <<
"\tMCFM s ME: " << p_prod_fa3ZA_dec_fa3ZA_VAMCFM.proddecme << endl;
5843 cout <<
"\tMCFM tu ME: " << p_prod_tu_fa3ZA_dec_fa3ZA_VAMCFM.proddecme << endl;
5844 cout <<
"0minusAA" << endl;
5845 cout <<
"\tMCFM s ME: " << p_prod_0minusAA_dec_0minusAA_VAMCFM.proddecme << endl;
5846 cout <<
"\tMCFM tu ME: " << p_prod_tu_0minusAA_dec_0minusAA_VAMCFM.proddecme << endl;
5847 cout <<
"fa3AA" << endl;
5848 cout <<
"\tMCFM s ME: " << p_prod_fa3AA_dec_fa3AA_VAMCFM.proddecme << endl;
5849 cout <<
"\tMCFM tu ME: " << p_prod_tu_fa3AA_dec_fa3AA_VAMCFM.proddecme << endl;
5851 cout <<
"Arrays:" << endl;
5852 cout <<
"0mplus" << endl;
5853 cout <<
"\tMCFM s" << endl;
5854 p_prod_0mplus_dec_0mplus_VAMCFM.printarray();
5855 cout <<
"\tMCFM tu" << endl;
5856 p_prod_tu_0mplus_dec_0mplus_VAMCFM.printarray();
5857 cout <<
"0minus" << endl;
5858 cout <<
"\tMCFM s" << endl;
5859 p_prod_0minus_dec_0minus_VAMCFM.printarray();
5860 cout <<
"\tMCFM tu" << endl;
5861 p_prod_tu_0minus_dec_0minus_VAMCFM.printarray();
5862 cout <<
"fa3" << endl;
5863 cout <<
"\tMCFM s" << endl;
5864 p_prod_fa3_dec_fa3_VAMCFM.printarray();
5865 cout <<
"\tMCFM tu" << endl;
5866 p_prod_tu_fa3_dec_fa3_VAMCFM.printarray();
5867 cout <<
"0minusZA" << endl;
5868 cout <<
"\tMCFM s" << endl;
5869 p_prod_0minusZA_dec_0minusZA_VAMCFM.printarray();
5870 cout <<
"\tMCFM tu" << endl;
5871 p_prod_tu_0minusZA_dec_0minusZA_VAMCFM.printarray();
5872 cout <<
"fa3ZA" << endl;
5873 cout <<
"\tMCFM s" << endl;
5874 p_prod_fa3ZA_dec_fa3ZA_VAMCFM.printarray();
5875 cout <<
"\tMCFM tu" << endl;
5876 p_prod_tu_fa3ZA_dec_fa3ZA_VAMCFM.printarray();
5877 cout <<
"0minusAA" << endl;
5878 cout <<
"\tMCFM s" << endl;
5879 p_prod_0minusAA_dec_0minusAA_VAMCFM.printarray();
5880 cout <<
"\tMCFM tu" << endl;
5881 p_prod_tu_0minusAA_dec_0minusAA_VAMCFM.printarray();
5882 cout <<
"fa3AA" << endl;
5883 cout <<
"\tMCFM s" << endl;
5884 p_prod_fa3AA_dec_fa3AA_VAMCFM.printarray();
5885 cout <<
"\tMCFM tu" << endl;
5886 p_prod_tu_fa3AA_dec_fa3AA_VAMCFM.printarray();
5887 cout <<
"Bkg" << endl;
5888 cout <<
"\tMCFM s" << endl;
5889 p_bkg_VAMCFM.printarray();
5890 cout <<
"\tMCFM tu" << endl;
5891 p_bkg_tu_VAMCFM.printarray();
5893 mela.resetInputEvent();
5896 TUtil::SetCKMElements(&bkpvckm_ud, &bkpvckm_us, &bkpvckm_cd, &bkpvckm_cs, &bkpvckm_ts, &bkpvckm_tb, &bkpvckm_ub, &bkpvckm_cb, &bkpvckm_td);
5899 cout.rdbuf(coutbuf);
5901 mela.setVerbosity(bkpverbosity);
5907 ofstream tout(TString(
"testME_ProdDec_MCFM_Ping_")+
long(flavor)+
".out");
5908 streambuf* coutbuf =
cout.rdbuf();
5909 cout.rdbuf(tout.rdbuf());
5913 float wPOLE=4.07e-3;
5919 mela.setVerbosity(verbosity);
5922 if (verbosity>=
TVar::DEBUG)
cout <<
"Mela candidate decay mode initializing" << endl;
5924 if (verbosity>=
TVar::DEBUG)
cout <<
"Mela candidate decay mode initialized" << endl;
5926 float GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
5927 const int nEntries = 6;
5928 double a1_array[nEntries][4] ={
5929 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
5930 { 238.65751023078761, 9.2808858562825005, 15.827726043466324, -237.95116187061188 },
5931 { 101.52463181523598, 27.359569630718468, -0.90299073100241323, -97.764458892691749 },
5932 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
5933 { 101.67043553688544, 2.1169375132239789, 0.77953005873937187, -101.64540506443268 },
5934 { 24.717634703436786, -1.1722249478288802, -5.9599387484197646, -23.959684558009428 }
5936 double a2_array[nEntries][4] ={
5937 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
5938 { 317.81904277258536, 2.5882005498984775, 21.352807448987718, -317.09037005377883 },
5939 { 180.10885677707822, -6.7240759244122792, 35.742176497019194, -176.39865053838915 },
5940 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
5941 { 95.655512770627581, -13.986023919404957, -37.960063551193414, -86.679881365440792 },
5942 { 49.137252081251319, -19.463268758477309, -28.879247017597017, -34.664676589120688 }
5944 double l1_array[nEntries][4] ={
5945 { 51.374202, 25.924766, 12.290178, 42.616376 },
5946 { 51.374202, 25.924766, 12.290178, 42.616376 },
5947 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
5948 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
5949 { 1365.4973848483, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
5950 { 1365.4973848483, 10.289826593755228, 25.205694382277809, -1365.2259480507332 }
5952 double l2_array[nEntries][4] ={
5953 { 271.875752, 70.427173, -11.138146, 261.769598 },
5954 { 21.481452, 9.489680, -9.336587, 16.858699 },
5955 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
5956 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
5957 { 22.7864275656, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
5958 { 471.7191967775, -35.976267906053060, 4.5169691019519895, -470.32360615864354 }
5960 double l3_array[nEntries][4] ={
5961 { 75.823478, -16.640412, 23.246999, 70.227220 },
5962 { 75.823478, -16.640412, 23.246999, 70.227220 },
5963 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
5964 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
5965 { 1895.7562658451, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
5966 { 1895.7562658451, 25.837804322120054, -28.821887970086259, -1895.3610513294620 }
5968 double l4_array[nEntries][4] ={
5969 { 21.481452, 9.489680, -9.336587, 16.858699 },
5970 { 271.875752, 70.427173, -11.138146, 261.769598 },
5971 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
5972 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
5973 { 471.7191967775, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
5974 { 22.7864275656, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 }
5983 else if (flavor == 1){
5989 else if (flavor == 0){
5995 else if (flavor == 3){
6001 else if (flavor == 4){
6007 else if (flavor == 5){
6013 else if (flavor == 6){
6020 for (
int ev = 0;
ev < 1;
ev++){
6022 TLorentzVector pAPart[4];
6023 pAPart[0].SetXYZT(a1_array[
ev][1], a1_array[
ev][2], a1_array[
ev][3], a1_array[
ev][0]);
6024 pAPart[1].SetXYZT(a2_array[
ev][1], a2_array[
ev][2], a2_array[
ev][3], a2_array[
ev][0]);
6025 for (
unsigned int iap=0; iap<2; iap++) aparticles.push_back(
SimpleParticle_t(1-2*iap, pAPart[iap]));
6026 for (
unsigned int iap=1; iap<2; iap++) aparticles.push_back(
SimpleParticle_t(-2*iap, pAPart[iap]));
6027 for (
unsigned int iap=0; iap<2; iap++) aparticles.push_back(
SimpleParticle_t((1-2*iap)*13, pAPart[iap]));
6029 int idOrdered[4] ={
static_cast<int>(GenLep1Id),
static_cast<int>(GenLep2Id),
static_cast<int>(GenLep3Id),
static_cast<int>(GenLep4Id) };
6030 int idOrdered_WW[4] ={ 11, -12, -11, 12 };
6031 TLorentzVector pOrdered[4];
6032 pOrdered[0].SetXYZT(l1_array[
ev][1], l1_array[
ev][2], l1_array[
ev][3], l1_array[
ev][0]);
6033 pOrdered[1].SetXYZT(l2_array[
ev][1], l2_array[
ev][2], l2_array[
ev][3], l2_array[
ev][0]);
6034 pOrdered[2].SetXYZT(l3_array[
ev][1], l3_array[
ev][2], l3_array[
ev][3], l3_array[
ev][0]);
6035 pOrdered[3].SetXYZT(l4_array[
ev][1], l4_array[
ev][2], l4_array[
ev][3], l4_array[
ev][0]);
6037 for (
unsigned int idau=0; idau<4; idau++) daughters_WW.push_back(
SimpleParticle_t(idOrdered_WW[idau], pOrdered[idau]));
6039 for (
unsigned int iv=0; iv<2; iv++){
for (
int ivd=0; ivd<2; ivd++) daughters_WWasZZ.push_back(
SimpleParticle_t(idOrdered_WW[iv+2*ivd], pOrdered[iv+2*ivd])); }
6041 for (
unsigned int idau=0; idau<4; idau++) daughters_ZZ.push_back(
SimpleParticle_t(idOrdered[idau], pOrdered[idau]));
6050 const unsigned int nprods=12;
6058 for (
unsigned int iprod=0; iprod<nprods; iprod++){
6061 mela.setCurrentCandidateFromIndex(cindex);
6065 float pVAMCFM_wbfVV_total;
6067 mela.computeProdDecP(pVAMCFM_wbfVV_total,
true);
6068 cout <<
"pVAMCFM_wbfVV_" << theProdName <<
"_total: " << pVAMCFM_wbfVV_total <<
'\n' << endl;
6069 float pVAMCFM_wbfVV_bkg;
6071 mela.computeProdDecP(pVAMCFM_wbfVV_bkg,
true);
6072 cout <<
"pVAMCFM_wbfVV_" << theProdName <<
"_bkg: " << pVAMCFM_wbfVV_bkg <<
'\n' << endl;
6073 float pVAMCFM_wbfVV_sig;
6075 mela.computeProdDecP(pVAMCFM_wbfVV_sig,
true);
6076 cout <<
"pVAMCFM_wbfVV_" << theProdName <<
"_sig: " << pVAMCFM_wbfVV_sig <<
'\n' << endl;
6078 float pVAMCFM_wbfWW_total;
6080 mela.computeProdDecP(pVAMCFM_wbfWW_total,
true);
6081 cout <<
"pVAMCFM_wbfWW_" << theProdName <<
"_total: " << pVAMCFM_wbfWW_total <<
'\n' << endl;
6082 float pVAMCFM_wbfWW_bkg;
6084 mela.computeProdDecP(pVAMCFM_wbfWW_bkg,
true);
6085 cout <<
"pVAMCFM_wbfWW_" << theProdName <<
"_bkg: " << pVAMCFM_wbfWW_bkg <<
'\n' << endl;
6086 float pVAMCFM_wbfWW_sig;
6088 mela.computeProdDecP(pVAMCFM_wbfWW_sig,
true);
6089 cout <<
"pVAMCFM_wbfWW_" << theProdName <<
"_sig: " << pVAMCFM_wbfWW_sig <<
'\n' << endl;
6093 mela.setCurrentCandidateFromIndex(cindex);
6094 float pVAMCFM_wbfWWasZZ_total;
6096 mela.computeProdDecP(pVAMCFM_wbfWWasZZ_total,
true);
6097 cout <<
"pVAMCFM_wbfWWasZZ_" << theProdName <<
"_total: " << pVAMCFM_wbfWWasZZ_total <<
'\n' << endl;
6098 float pVAMCFM_wbfWWasZZ_bkg;
6100 mela.computeProdDecP(pVAMCFM_wbfWWasZZ_bkg,
true);
6101 cout <<
"pVAMCFM_wbfWWasZZ_" << theProdName <<
"_bkg: " << pVAMCFM_wbfWWasZZ_bkg <<
'\n' << endl;
6102 float pVAMCFM_wbfWWasZZ_sig;
6104 mela.computeProdDecP(pVAMCFM_wbfWWasZZ_sig,
true);
6105 cout <<
"pVAMCFM_wbfWWasZZ_" << theProdName <<
"_sig: " << pVAMCFM_wbfWWasZZ_sig <<
'\n' << endl;
6109 mela.setCurrentCandidateFromIndex(cindex);
6110 float pVAMCFM_wbfZZ_total;
6112 mela.computeProdDecP(pVAMCFM_wbfZZ_total,
true);
6113 cout <<
"pVAMCFM_wbfZZ_" << theProdName <<
"_total: " << pVAMCFM_wbfZZ_total <<
'\n' << endl;
6115 float pVAMCFM_wbfZZ_bkg;
6117 mela.computeProdDecP(pVAMCFM_wbfZZ_bkg,
true);
6118 cout <<
"pVAMCFM_wbfZZ_" << theProdName <<
"_bkg: " << pVAMCFM_wbfZZ_bkg <<
'\n' << endl;
6120 float pVAMCFM_wbfZZ_sig;
6122 mela.computeProdDecP(pVAMCFM_wbfZZ_sig,
true);
6123 cout <<
"pVAMCFM_wbfZZ_" << theProdName <<
"_sig: " << pVAMCFM_wbfZZ_sig <<
'\n' << endl;
6126 cout <<
"Removing Mela candidates\nSummary:" << endl;
6127 for (
int ic=0; ic<
mela.getNCandidates(); ic++){
6128 cout <<
"Candidate " << ic << endl;
6129 mela.setCurrentCandidateFromIndex(ic);
6134 mela.resetInputEvent();
6135 cout <<
"Removed..." << endl;
6138 cout.rdbuf(coutbuf);
6141 mela.setVerbosity(bkpverbosity);
6148 float wPOLE=4.15e-3;
6149 TString TREE_NAME =
"SelectedTree";
6153 int idMother[2]={ 0 };
6155 if (motherflavor==1){ idMother[0]=2; idMother[1]=1; }
6156 else if (motherflavor==2){ idMother[0]=-2; idMother[1]=-1; }
6158 else if (motherflavor==3){ idMother[0]=2; idMother[1]=-1; }
6159 else if (motherflavor==4){ idMother[0]=-2; idMother[1]=1; }
6161 else if (motherflavor==5){ idMother[0]=2; idMother[1]=-2; }
6162 else if (motherflavor==6){ idMother[0]=-2; idMother[1]=2; }
6163 else if (motherflavor==7){ idMother[0]=1; idMother[1]=-1; }
6164 else if (motherflavor==8){ idMother[0]=-1; idMother[1]=1; }
6166 TString cinput_main =
"/scratch0/hep/ianderso/CJLST/140519/PRODFSR_8TeV";
6169 if (vbfvhchannel==1) coutput = Form(
"HZZ4lTree_ZZTo%s_vbfMELA_MCFMJHUGenComparison", (flavor>=2 ?
"2e2mu" :
"4e"));
6170 else coutput = Form(
"HZZ4lTree_ZZTo%s_vhMELA_MCFMJHUGenComparison", (flavor>=2 ?
"2e2mu" :
"4e"));
6173 if (vbfvhchannel==1){
6174 coutput =
"HZZ4lTree_VBF0P_H125.6_vbfMELA_MCFMJHUGenComparison";
6177 coutput =
"HZZ4lTree_WH125_vhMELA_MCFMJHUGenComparison";
6178 mPOLE=125.; wPOLE=4.07e-3;
6181 if (isZZWW==1) coutput.Append(
"_ZZCouplOnly");
6182 else if (isZZWW==2) coutput.Append(
"_WWCouplOnly");
6183 if (idMother[0]!=0 || idMother[1]!=0) coutput.Append(Form(
"_MotherId_%i_%i", idMother[0], idMother[1]));
6184 coutput.Append(
".root");
6187 melaptr.reset(
new Mela(erg_tev, mPOLE, verbosity));
6191 mela.setVerbosity(verbosity);
6196 finput =
new TFile(Form(
"%s/%s/HZZ4lTree_ZZTo%s.root", cinput_main.Data(), (flavor>=2 ?
"2mu2e" :
"4e"), (flavor==2 ?
"2e2mu" :
"4e")),
"read");
6199 if (vbfvhchannel==1){
6200 finput =
new TFile(Form(
"%s/%s/HZZ4lTree_VBF0P_H125.6.root", cinput_main.Data(), (flavor==2 ?
"2mu2e" :
"4e")),
"read");
6203 finput =
new TFile(Form(
"%s/%s/HZZ4lTree_WH125.root", cinput_main.Data(), (flavor==2 ?
"2mu2e" :
"4e")),
"read");
6206 foutput =
new TFile(coutput,
"recreate");
6209 float p_prod_0plus_dec_0plus_VAJHU;
6210 float p_prod_0plus_dec_0hplus_VAJHU;
6211 float p_prod_0plus_dec_0minus_VAJHU;
6212 float p_prod_0plus_dec_0_g1prime2_VAJHU;
6213 float p_prod_0hplus_dec_0hplus_VAJHU;
6214 float p_prod_0minus_dec_0minus_VAJHU;
6215 float p_prod_0_g1prime2_dec_0_g1prime2_VAJHU;
6216 float p_prod_0hplus_dec_0plus_VAJHU;
6217 float p_prod_0minus_dec_0plus_VAJHU;
6218 float p_prod_0_g1prime2_dec_0plus_VAJHU;
6220 float p_prod_0plus_dec_0plus_VAMCFM;
6221 float p_prod_0plus_dec_0hplus_VAMCFM;
6222 float p_prod_0plus_dec_0minus_VAMCFM;
6223 float p_prod_0plus_dec_0_g1prime2_VAMCFM;
6224 float p_prod_0hplus_dec_0hplus_VAMCFM;
6225 float p_prod_0minus_dec_0minus_VAMCFM;
6226 float p_prod_0_g1prime2_dec_0_g1prime2_VAMCFM;
6227 float p_prod_0hplus_dec_0plus_VAMCFM;
6228 float p_prod_0minus_dec_0plus_VAMCFM;
6229 float p_prod_0_g1prime2_dec_0plus_VAMCFM;
6233 std::vector<double>* JetPt=0;
6234 std::vector<double>* JetEta=0;
6235 std::vector<double>* JetPhi=0;
6236 std::vector<double>* JetMass=0;
6237 std::vector<double> myJetPt;
6238 std::vector<double> myJetEta;
6239 std::vector<double> myJetPhi;
6240 std::vector<double> myJetMass;
6244 TBranch* bJetMass=0;
6250 float m1 = 91.471450;
6251 float m2 = 12.139782;
6252 float h1 = 0.2682896;
6253 float h2 = 0.1679779;
6254 float phi = 1.5969792;
6255 float hs = -0.727181;
6256 float phi1 = 1.8828257;
6257 float ZZPt, ZZPhi, ZZEta;
6259 float costhetastar=0;
6266 float mVstar=0, mV=0;
6268 TTree* tree = (TTree*)finput->Get(TREE_NAME);
6269 tree->SetBranchAddress(
"NJets30", &NJets30);
6270 tree->SetBranchAddress(
"JetPt", &JetPt, &bJetPt);
6271 tree->SetBranchAddress(
"JetEta", &JetEta, &bJetEta);
6272 tree->SetBranchAddress(
"JetPhi", &JetPhi, &bJetPhi);
6273 tree->SetBranchAddress(
"JetMass", &JetMass, &bJetMass);
6274 tree->SetBranchAddress(
"ZZMass", &mzz);
6275 tree->SetBranchAddress(
"ZZPt", &ZZPt);
6276 tree->SetBranchAddress(
"ZZEta", &ZZEta);
6277 tree->SetBranchAddress(
"ZZPhi", &ZZPhi);
6278 tree->SetBranchAddress(
"Z1Mass", &m1);
6279 tree->SetBranchAddress(
"Z2Mass", &m2);
6280 tree->SetBranchAddress(
"helcosthetaZ1", &h1);
6281 tree->SetBranchAddress(
"helcosthetaZ2", &h2);
6282 tree->SetBranchAddress(
"helphi", &phi);
6283 tree->SetBranchAddress(
"costhetastar", &hs);
6284 tree->SetBranchAddress(
"phistarZ1", &phi1);
6286 TTree* newtree =
new TTree(
"TestTree",
"");
6288 newtree->Branch(
"p_prod_0plus_dec_0plus_VAJHU", &p_prod_0plus_dec_0plus_VAJHU);
6289 newtree->Branch(
"p_prod_0plus_dec_0hplus_VAJHU", &p_prod_0plus_dec_0hplus_VAJHU);
6290 newtree->Branch(
"p_prod_0plus_dec_0minus_VAJHU", &p_prod_0plus_dec_0minus_VAJHU);
6291 newtree->Branch(
"p_prod_0plus_dec_0_g1prime2_VAJHU", &p_prod_0plus_dec_0_g1prime2_VAJHU);
6292 newtree->Branch(
"p_prod_0hplus_dec_0hplus_VAJHU", &p_prod_0hplus_dec_0hplus_VAJHU);
6293 newtree->Branch(
"p_prod_0minus_dec_0minus_VAJHU", &p_prod_0minus_dec_0minus_VAJHU);
6294 newtree->Branch(
"p_prod_0_g1prime2_dec_0_g1prime2_VAJHU", &p_prod_0_g1prime2_dec_0_g1prime2_VAJHU);
6295 newtree->Branch(
"p_prod_0hplus_dec_0plus_VAJHU", &p_prod_0hplus_dec_0plus_VAJHU);
6296 newtree->Branch(
"p_prod_0minus_dec_0plus_VAJHU", &p_prod_0minus_dec_0plus_VAJHU);
6297 newtree->Branch(
"p_prod_0_g1prime2_dec_0plus_VAJHU", &p_prod_0_g1prime2_dec_0plus_VAJHU);
6299 newtree->Branch(
"p_prod_0plus_dec_0plus_VAMCFM", &p_prod_0plus_dec_0plus_VAMCFM);
6300 newtree->Branch(
"p_prod_0plus_dec_0hplus_VAMCFM", &p_prod_0plus_dec_0hplus_VAMCFM);
6301 newtree->Branch(
"p_prod_0plus_dec_0minus_VAMCFM", &p_prod_0plus_dec_0minus_VAMCFM);
6302 newtree->Branch(
"p_prod_0plus_dec_0_g1prime2_VAMCFM", &p_prod_0plus_dec_0_g1prime2_VAMCFM);
6303 newtree->Branch(
"p_prod_0hplus_dec_0hplus_VAMCFM", &p_prod_0hplus_dec_0hplus_VAMCFM);
6304 newtree->Branch(
"p_prod_0minus_dec_0minus_VAMCFM", &p_prod_0minus_dec_0minus_VAMCFM);
6305 newtree->Branch(
"p_prod_0_g1prime2_dec_0_g1prime2_VAMCFM", &p_prod_0_g1prime2_dec_0_g1prime2_VAMCFM);
6306 newtree->Branch(
"p_prod_0hplus_dec_0plus_VAMCFM", &p_prod_0hplus_dec_0plus_VAMCFM);
6307 newtree->Branch(
"p_prod_0minus_dec_0plus_VAMCFM", &p_prod_0minus_dec_0plus_VAMCFM);
6308 newtree->Branch(
"p_prod_0_g1prime2_dec_0plus_VAMCFM", &p_prod_0_g1prime2_dec_0plus_VAMCFM);
6310 newtree->Branch(
"ZZMass", &mzz);
6311 newtree->Branch(
"DiJetMass", &mjj);
6312 newtree->Branch(
"DiJetVVMass", &mjjzz);
6313 newtree->Branch(
"DiJetVVPz", &sysZ);
6314 newtree->Branch(
"costhetastar", &costhetastar);
6315 newtree->Branch(
"costheta1", &costheta1);
6316 newtree->Branch(
"costheta2", &costheta2);
6317 newtree->Branch(
"Phi", &Phi);
6318 newtree->Branch(
"Phi1", &Phi1);
6319 newtree->Branch(
"Q2V1", &Q2V1);
6320 newtree->Branch(
"Q2V2", &Q2V2);
6323 float GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
6330 else if (flavor == 1){
6336 else if (flavor == 0){
6342 else if (flavor == 3){
6348 else if (flavor == 4){
6354 else if (flavor == 5){
6361 int idOrdered[4] ={
static_cast<int>(GenLep1Id),
static_cast<int>(GenLep2Id),
static_cast<int>(GenLep3Id),
static_cast<int>(GenLep4Id) };
6363 int nEntries = tree->GetEntries();
6365 for (
int ev = 0;
ev < nEntries;
ev++){
6366 if (recorded>=(verbosity>=
TVar::DEBUG ? 4 : (!useBkgSample ? 1000 : nEntries)))
break;
6369 if (recorded%1000==0)
cout <<
"Nrecorded = " << recorded <<
"..." << endl;
6371 if (JetPt->size()>=2 && NJets30>=2){
6372 TLorentzVector jet1(0, 0, 1e-3, 1e-3), jet2(0, 0, 1e-3, 1e-3), higgs(0, 0, 0, 0);
6373 jet1.SetPtEtaPhiM(JetPt->at(0), JetEta->at(0), JetPhi->at(0), JetMass->at(0));
6374 jet2.SetPtEtaPhiM(JetPt->at(1), JetEta->at(1), JetPhi->at(1), JetMass->at(1));
6375 higgs.SetPtEtaPhiM(ZZPt, ZZEta, ZZPhi, mzz);
6376 TVector3 boostH = higgs.BoostVector();
6381 mjj = (jet1+jet2).M();
6383 TLorentzVector pDaughters[4];
6384 std::vector<TLorentzVector> daus =
mela.calculate4Momentum(mzz, m1, m2, acos(hs), acos(h1), acos(h2), phi1, phi);
6385 for (
int ip=0; ip<min(4, (
int)daus.size()); ip++){ pDaughters[ip]=daus.at(ip); pDaughters[ip].Boost(boostH); }
6387 for (
unsigned int idau=0; idau<4; idau++) daughters_ZZ.push_back(
SimpleParticle_t(idOrdered[idau], pDaughters[idau]));
6390 TLorentzVector pTotal(0, 0, 0, 0);
6391 for (
unsigned int ip=0; ip<
associated.size(); ip++) pTotal = pTotal +
associated.at(ip).second;
6392 for (
unsigned int ip=0; ip<daughters_ZZ.size(); ip++) pTotal = pTotal + daughters_ZZ.at(ip).second;
6395 TVector3 boostT(-pTotal.X()/pTotal.T(), -pTotal.Y()/pTotal.T(), 0);
6396 pTotal.Boost(boostT);
6397 TLorentzVector pMother[2];
6398 pMother[0].SetXYZT(0, 0, (pTotal.T()+pTotal.Z())/2., (pTotal.T()+pTotal.Z())/2.);
6399 pMother[1].SetXYZT(0, 0, (-pTotal.T()+pTotal.Z())/2., (pTotal.T()-pTotal.Z())/2.);
6400 for (
unsigned int imot=0; imot<2; imot++){
6401 pMother[imot].Boost(-boostT);
6416 daughters_ZZ.at(0).second, daughters_ZZ.at(0).first,
6417 daughters_ZZ.at(1).second, daughters_ZZ.at(1).first,
6418 daughters_ZZ.at(2).second, daughters_ZZ.at(2).first,
6419 daughters_ZZ.at(3).second, daughters_ZZ.at(3).first,
6436 daughters_ZZ.at(0).second, daughters_ZZ.at(0).first,
6437 daughters_ZZ.at(1).second, daughters_ZZ.at(1).first,
6438 daughters_ZZ.at(2).second, daughters_ZZ.at(2).first,
6439 daughters_ZZ.at(3).second, daughters_ZZ.at(3).first,
6458 daughters_ZZ.at(0).second, daughters_ZZ.at(0).first,
6459 daughters_ZZ.at(1).second, daughters_ZZ.at(1).first,
6460 daughters_ZZ.at(2).second, daughters_ZZ.at(2).first,
6461 daughters_ZZ.at(3).second, daughters_ZZ.at(3).first,
6475 daughters_ZZ.at(0).second, daughters_ZZ.at(0).first,
6476 daughters_ZZ.at(1).second, daughters_ZZ.at(1).first,
6477 daughters_ZZ.at(2).second, daughters_ZZ.at(2).first,
6478 daughters_ZZ.at(3).second, daughters_ZZ.at(3).first,
6489 float p_dec_0plus_VAJHU;
6491 mela.computeP(p_dec_0plus_VAJHU,
false);
6492 float p_dec_0hplus_VAJHU=p_dec_0plus_VAJHU;
6495 mela.computeP(p_dec_0hplus_VAJHU,
false);
6497 float p_dec_0minus_VAJHU=p_dec_0plus_VAJHU;
6500 mela.computeP(p_dec_0minus_VAJHU,
false);
6502 float p_dec_0_g1prime2_VAJHU=p_dec_0plus_VAJHU;
6505 mela.computeP(p_dec_0_g1prime2_VAJHU,
false);
6508 float p_prod_0plus_VAJHU=0;
6509 float p_prod_0hplus_VAJHU=0;
6510 float p_prod_0minus_VAJHU=0;
6511 float p_prod_0_g1prime2_VAJHU=0;
6513 if (vbfvhchannel==1){
6515 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_1][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
6516 else{
mela.selfDHwwcoupl[0][0][0]=1;
mela.differentiate_HWW_HZZ=
true; }
6517 mela.computeProdP(p_prod_0plus_VAJHU,
false);
6519 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_2][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
6520 else{
mela.selfDHwwcoupl[0][1][0]=1;
mela.differentiate_HWW_HZZ=
true; }
6521 mela.computeProdP(p_prod_0hplus_VAJHU,
false);
6523 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_4][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
6524 else{
mela.selfDHwwcoupl[0][3][0]=1;
mela.differentiate_HWW_HZZ=
true; }
6525 mela.computeProdP(p_prod_0minus_VAJHU,
false);
6528 else{
mela.selfDHwwcoupl[0][11][0]=-10000;
mela.differentiate_HWW_HZZ=
true; }
6529 mela.computeProdP(p_prod_0_g1prime2_VAJHU,
false);
6533 float p_wh_0plus_VAJHU=0;
6534 float p_wh_0hplus_VAJHU=0;
6535 float p_wh_0minus_VAJHU=0;
6536 float p_wh_0_g1prime2_VAJHU=0;
6541 mela.computeProdP(p_wh_0plus_VAJHU,
false);
6544 mela.computeProdP(p_wh_0hplus_VAJHU,
false);
6547 mela.computeProdP(p_wh_0minus_VAJHU,
false);
6550 mela.computeProdP(p_wh_0_g1prime2_VAJHU,
false);
6554 float p_zh_0plus_VAJHU=0;
6555 float p_zh_0hplus_VAJHU=0;
6556 float p_zh_0minus_VAJHU=0;
6557 float p_zh_0_g1prime2_VAJHU=0;
6562 mela.computeProdP(p_zh_0plus_VAJHU,
false);
6565 mela.computeProdP(p_zh_0hplus_VAJHU,
false);
6568 mela.computeProdP(p_zh_0minus_VAJHU,
false);
6571 mela.computeProdP(p_zh_0_g1prime2_VAJHU,
false);
6575 p_prod_0plus_VAJHU = p_wh_0plus_VAJHU + p_zh_0plus_VAJHU;
6576 p_prod_0hplus_VAJHU = p_wh_0hplus_VAJHU + p_zh_0hplus_VAJHU;
6577 p_prod_0minus_VAJHU = p_wh_0minus_VAJHU + p_zh_0minus_VAJHU;
6578 p_prod_0_g1prime2_VAJHU = p_wh_0_g1prime2_VAJHU + p_zh_0_g1prime2_VAJHU;
6581 p_prod_0plus_dec_0plus_VAJHU=p_prod_0plus_VAJHU*p_dec_0plus_VAJHU;
6582 p_prod_0plus_dec_0hplus_VAJHU=p_prod_0plus_VAJHU*p_dec_0hplus_VAJHU;
6583 p_prod_0plus_dec_0minus_VAJHU=p_prod_0plus_VAJHU*p_dec_0minus_VAJHU;
6584 p_prod_0plus_dec_0_g1prime2_VAJHU=p_prod_0plus_VAJHU*p_dec_0_g1prime2_VAJHU;
6585 p_prod_0hplus_dec_0hplus_VAJHU=p_prod_0hplus_VAJHU*p_dec_0hplus_VAJHU;
6586 p_prod_0minus_dec_0minus_VAJHU=p_prod_0minus_VAJHU*p_dec_0minus_VAJHU;
6587 p_prod_0_g1prime2_dec_0_g1prime2_VAJHU=p_prod_0_g1prime2_VAJHU*p_dec_0_g1prime2_VAJHU;
6588 p_prod_0hplus_dec_0plus_VAJHU=p_prod_0hplus_VAJHU*p_dec_0plus_VAJHU;
6589 p_prod_0minus_dec_0plus_VAJHU=p_prod_0minus_VAJHU*p_dec_0plus_VAJHU;
6590 p_prod_0_g1prime2_dec_0plus_VAJHU=p_prod_0_g1prime2_VAJHU*p_dec_0plus_VAJHU;
6592 double propagator = 1./(pow(pow(mzz, 2)-pow(mPOLE, 2), 2)+pow(mPOLE*wPOLE, 2));
6593 if (vbfvhchannel!=1){
6595 mela.getIORecord()->getHiggsMassWidth(mh, gah, 0);
6596 propagator /= 1./(pow(pow(mzz, 2)-pow(mh, 2), 2) + pow(mh*gah, 2));
6609 if (isZZWW!=2){
mela.selfDHzzcoupl[0][
gHIGGS_VV_1][0]=1;
if (isZZWW==1)
mela.differentiate_HWW_HZZ=
true; }
6610 else{
mela.selfDHwwcoupl[0][0][0]=1;
mela.differentiate_HWW_HZZ=
true; }
6611 mela.computeProdDecP(p_prod_0plus_dec_0plus_VAMCFM,
false);
6652 mela.resetInputEvent();
6654 if (p_prod_0plus_dec_0plus_VAJHU>0.){
6655 p_prod_0plus_dec_0hplus_VAJHU /= p_prod_0plus_dec_0plus_VAJHU;
6656 p_prod_0plus_dec_0minus_VAJHU /= p_prod_0plus_dec_0plus_VAJHU;
6657 p_prod_0plus_dec_0_g1prime2_VAJHU /= p_prod_0plus_dec_0plus_VAJHU;
6658 p_prod_0hplus_dec_0hplus_VAJHU /= p_prod_0plus_dec_0plus_VAJHU;
6659 p_prod_0minus_dec_0minus_VAJHU /= p_prod_0plus_dec_0plus_VAJHU;
6660 p_prod_0_g1prime2_dec_0_g1prime2_VAJHU /= p_prod_0plus_dec_0plus_VAJHU;
6661 p_prod_0hplus_dec_0plus_VAJHU /= p_prod_0plus_dec_0plus_VAJHU;
6662 p_prod_0minus_dec_0plus_VAJHU /= p_prod_0plus_dec_0plus_VAJHU;
6663 p_prod_0_g1prime2_dec_0plus_VAJHU /= p_prod_0plus_dec_0plus_VAJHU;
6666 if (p_prod_0plus_dec_0plus_VAMCFM>0.){
6667 p_prod_0plus_dec_0hplus_VAMCFM /= p_prod_0plus_dec_0plus_VAMCFM;
6668 p_prod_0plus_dec_0minus_VAMCFM /= p_prod_0plus_dec_0plus_VAMCFM;
6669 p_prod_0plus_dec_0_g1prime2_VAMCFM /= p_prod_0plus_dec_0plus_VAMCFM;
6670 p_prod_0hplus_dec_0hplus_VAMCFM /= p_prod_0plus_dec_0plus_VAMCFM;
6671 p_prod_0minus_dec_0minus_VAMCFM /= p_prod_0plus_dec_0plus_VAMCFM;
6672 p_prod_0_g1prime2_dec_0_g1prime2_VAMCFM /= p_prod_0plus_dec_0plus_VAMCFM;
6673 p_prod_0hplus_dec_0plus_VAMCFM /= p_prod_0plus_dec_0plus_VAMCFM;
6674 p_prod_0minus_dec_0plus_VAMCFM /= p_prod_0plus_dec_0plus_VAMCFM;
6675 p_prod_0_g1prime2_dec_0plus_VAMCFM /= p_prod_0plus_dec_0plus_VAMCFM;
6682 foutput->WriteTObject(newtree);
6686 mela.setVerbosity(bkpverbosity);
6690 ofstream tout(TString(
"testME_Dec_JHUGenMCFM_Ping_")+
long(flavor)+
".out");
6691 streambuf* coutbuf =
cout.rdbuf();
6692 cout.rdbuf(tout.rdbuf());
6696 float wPOLE=4.07e-3;
6702 mela.setVerbosity(verbosity);
6704 mela.resetMCFM_EWKParameters(1.16639E-05, 1./128., 80.399, 91.1876, 0.23119);
6706 double aL1, aL2, aR1, aR2;
6708 float GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
6732 const int nEntries = 6;
6733 double l1_array[nEntries][4] ={
6734 { 51.374202, 25.924766, 12.290178, 42.616376 },
6735 { 51.374202, 25.924766, 12.290178, 42.616376 },
6736 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
6737 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
6738 { 1365.4973848483, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
6739 { 1365.4973848483, 10.289826593755228, 25.205694382277809, -1365.2259480507332 }
6741 double l2_array[nEntries][4] ={
6742 { 271.875752, 70.427173, -11.138146, 261.769598 },
6743 { 21.481452, 9.489680, -9.336587, 16.858699 },
6744 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
6745 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
6746 { 22.7864275656, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
6747 { 471.7191967775, -35.976267906053060, 4.5169691019519895, -470.32360615864354 }
6749 double l3_array[nEntries][4] ={
6750 { 75.823478, -16.640412, 23.246999, 70.227220 },
6751 { 75.823478, -16.640412, 23.246999, 70.227220 },
6752 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
6753 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
6754 { 1895.7562658451, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
6755 { 1895.7562658451, 25.837804322120054, -28.821887970086259, -1895.3610513294620 }
6757 double l4_array[nEntries][4] ={
6758 { 21.481452, 9.489680, -9.336587, 16.858699 },
6759 { 271.875752, 70.427173, -11.138146, 261.769598 },
6760 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
6761 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
6762 { 471.7191967775, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
6763 { 22.7864275656, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 }
6766 for (
int ev = 0;
ev < 1;
ev++){
6773 else if (flavor == 1){
6779 else if (flavor == 0){
6785 else if (flavor == 3){
6791 else if (flavor == 4){
6797 else if (flavor == 5){
6804 int idOrdered[4] ={
static_cast<int>(GenLep1Id),
static_cast<int>(GenLep2Id),
static_cast<int>(GenLep3Id),
static_cast<int>(GenLep4Id) };
6805 int idOrdered_WW[4] ={ 11, -12, -11, 12 };
6806 TLorentzVector pOrdered[4];
6807 pOrdered[0].SetXYZT(l1_array[
ev][1], l1_array[
ev][2], l1_array[
ev][3], l1_array[
ev][0]);
6808 pOrdered[1].SetXYZT(l2_array[
ev][1], l2_array[
ev][2], l2_array[
ev][3], l2_array[
ev][0]);
6809 pOrdered[2].SetXYZT(l3_array[
ev][1], l3_array[
ev][2], l3_array[
ev][3], l3_array[
ev][0]);
6810 pOrdered[3].SetXYZT(l4_array[
ev][1], l4_array[
ev][2], l4_array[
ev][3], l4_array[
ev][0]);
6812 for (
unsigned int idau=0; idau<4; idau++) daughters_WW.push_back(
SimpleParticle_t(idOrdered_WW[idau], pOrdered[idau]));
6814 for (
unsigned int iv=0; iv<2; iv++){
for (
int ivd=0; ivd<2; ivd++) daughters_WWasZZ.push_back(
SimpleParticle_t(idOrdered_WW[iv+2*ivd], pOrdered[iv+2*ivd])); }
6816 for (
unsigned int idau=0; idau<4; idau++) daughters_ZZ.push_back(
SimpleParticle_t(idOrdered[idau], pOrdered[idau]));
6818 TLorentzVector pOrdered_ZG[3];
6819 pOrdered_ZG[0]=pOrdered[0];
6820 pOrdered_ZG[1]=pOrdered[1];
6821 pOrdered_ZG[2]=pOrdered[2]+pOrdered[3];
6823 for (
unsigned int idau=0; idau<2; idau++) daughters_ZG.push_back(
SimpleParticle_t(idOrdered[idau], pOrdered_ZG[idau]));
6824 for (
unsigned int idau=2; idau<3; idau++) daughters_ZG.push_back(
SimpleParticle_t(22, pOrdered_ZG[idau]));
6826 TLorentzVector pOrdered_GG[3];
6827 pOrdered_GG[0]=pOrdered[0]+pOrdered[1];
6828 pOrdered_GG[1]=pOrdered[2]+pOrdered[3];
6830 for (
unsigned int idau=0; idau<2; idau++) daughters_GG.push_back(
SimpleParticle_t(22, pOrdered_GG[idau]));
6844 mela.setCurrentCandidateFromIndex(cindex);
6847 float pVAJHUGen_ggWW_SM_sig;
6849 mela.computeP(pVAJHUGen_ggWW_SM_sig,
true);
6850 cout <<
"pVAJHUGen_ggWW_SM_sig: " << pVAJHUGen_ggWW_SM_sig <<
'\n' << endl;
6852 float pVAJHUGen_ggWW_0pm_sig;
6856 mela.computeP(pVAJHUGen_ggWW_0pm_sig,
true);
6857 cout <<
"pVAJHUGen_ggWW_0pm_sig: " << pVAJHUGen_ggWW_0pm_sig <<
'\n' << endl;
6858 mela.getIORecord()->getVDaughterCouplings(aL1, aR1, 0);
6859 mela.getIORecord()->getVDaughterCouplings(aL2, aR2, 1);
6861 float pVAJHUGen_ggWW_0pm_CT_sig;
6879 mela.selfDM_Wprime=80.399;
6880 mela.selfDGa_Wprime=2.085;
6881 mela.computeP(pVAJHUGen_ggWW_0pm_CT_sig,
true);
6882 cout <<
"pVAJHUGen_ggWW_0pm_CT_sig: " << pVAJHUGen_ggWW_0pm_CT_sig <<
'\n' << endl;
6885 float pVAJHUGen_ggWW_PS_sig;
6887 mela.computeP(pVAJHUGen_ggWW_PS_sig,
true);
6888 cout <<
"pVAJHUGen_ggWW_PS_sig: " << pVAJHUGen_ggWW_PS_sig <<
'\n' << endl;
6890 float pVAJHUGen_ggWW_0m_sig;
6894 mela.computeP(pVAJHUGen_ggWW_0m_sig,
true);
6895 cout <<
"pVAJHUGen_ggWW_0m_sig: " << pVAJHUGen_ggWW_0m_sig <<
'\n' << endl;
6898 float pVAMCFM_ggWW_SM_total;
6900 mela.computeP(pVAMCFM_ggWW_SM_total,
true);
6901 cout <<
"pVAMCFM_ggWW_SM_total: " << pVAMCFM_ggWW_SM_total <<
'\n' << endl;
6903 float pVAMCFM_ggWW_0pm_total;
6908 mela.computeP(pVAMCFM_ggWW_0pm_total,
true);
6909 cout <<
"pVAMCFM_ggWW_0pm_total: " << pVAMCFM_ggWW_0pm_total <<
'\n' << endl;
6911 float pVAMCFM_ggWW_SM_sig;
6913 mela.computeP(pVAMCFM_ggWW_SM_sig,
true);
6914 cout <<
"pVAMCFM_ggWW_SM_sig: " << pVAMCFM_ggWW_SM_sig <<
'\n' << endl;
6916 float pVAMCFM_ggWW_0pm_sig;
6921 mela.computeP(pVAMCFM_ggWW_0pm_sig,
true);
6922 cout <<
"pVAMCFM_ggWW_0pm_sig: " << pVAMCFM_ggWW_0pm_sig <<
'\n' << endl;
6924 float pVAMCFM_ggWW_0m_sig;
6929 mela.computeP(pVAMCFM_ggWW_0m_sig,
true);
6930 cout <<
"pVAMCFM_ggWW_0m_sig: " << pVAMCFM_ggWW_0m_sig <<
'\n' << endl;
6933 float pVAMCFM_HM_ggWW_SM_total;
6935 mela.setMelaHiggsMassWidth(-1, 0, 0);
mela.setMelaHiggsMassWidth(mPOLE, -1, 1);
6936 mela.computeP(pVAMCFM_HM_ggWW_SM_total,
true);
6937 cout <<
"pVAMCFM_HM_ggWW_SM_total: " << pVAMCFM_HM_ggWW_SM_total <<
'\n' << endl;
6939 float pVAMCFM_HM_ggWW_0pm_total;
6941 mela.setMelaHiggsMassWidth(-1, 0, 0);
mela.setMelaHiggsMassWidth(mPOLE, -1, 1);
6944 mela.selfDHzzcoupl[1][0][0]=1.;
6945 mela.computeP(pVAMCFM_HM_ggWW_0pm_total,
true);
6946 cout <<
"pVAMCFM_HM_ggWW_0pm_total: " << pVAMCFM_HM_ggWW_0pm_total <<
'\n' << endl;
6948 float pVAMCFM_HM_ggWW_SM_sig;
6950 mela.setMelaHiggsMassWidth(-1, 0, 0);
mela.setMelaHiggsMassWidth(mPOLE, -1, 1);
6951 mela.computeP(pVAMCFM_HM_ggWW_SM_sig,
true);
6952 cout <<
"pVAMCFM_HM_ggWW_SM_sig: " << pVAMCFM_HM_ggWW_SM_sig <<
'\n' << endl;
6954 float pVAMCFM_HM_ggWW_0pm_sig;
6956 mela.setMelaHiggsMassWidth(-1, 0, 0);
mela.setMelaHiggsMassWidth(mPOLE, -1, 1);
6959 mela.selfDHzzcoupl[1][0][0]=1.;
6960 mela.computeP(pVAMCFM_HM_ggWW_0pm_sig,
true);
6961 cout <<
"pVAMCFM_HM_ggWW_0pm_sig: " << pVAMCFM_HM_ggWW_0pm_sig <<
'\n' << endl;
6963 float pVAMCFM_HM_ggWW_0m_sig;
6965 mela.setMelaHiggsMassWidth(-1, 0, 0);
mela.setMelaHiggsMassWidth(mPOLE, -1, 1);
6968 mela.selfDHzzcoupl[1][3][0]=1.;
6969 mela.computeP(pVAMCFM_HM_ggWW_0m_sig,
true);
6970 cout <<
"pVAMCFM_HM_ggWW_0m_sig: " << pVAMCFM_HM_ggWW_0m_sig <<
'\n' << endl;
6974 mela.setCurrentCandidateFromIndex(cindex);
6977 float pVAJHUGen_ggZZ_SM_sig;
6979 mela.computeP(pVAJHUGen_ggZZ_SM_sig,
true);
6980 cout <<
"pVAJHUGen_ggZZ_SM_sig: " << pVAJHUGen_ggZZ_SM_sig <<
'\n' << endl;
6982 float pVAJHUGen_ggZZ_0pm_sig;
6986 mela.computeP(pVAJHUGen_ggZZ_0pm_sig,
true);
6987 cout <<
"pVAJHUGen_ggZZ_0pm_sig: " << pVAJHUGen_ggZZ_0pm_sig <<
'\n' << endl;
6988 mela.getIORecord()->getVDaughterCouplings(aL1, aR1, 0);
6989 mela.getIORecord()->getVDaughterCouplings(aL2, aR2, 1);
6991 float pVAJHUGen_ggZZ_0pm_CT_sig;
7016 mela.selfDM_Zprime=91.1876;
7017 mela.selfDGa_Zprime=2.4952;
7018 mela.computeP(pVAJHUGen_ggZZ_0pm_CT_sig,
true);
7019 cout <<
"pVAJHUGen_ggZZ_0pm_CT_sig: " << pVAJHUGen_ggZZ_0pm_CT_sig <<
'\n' << endl;
7022 float pVAJHUGen_ggZZ_PS_sig;
7024 mela.computeP(pVAJHUGen_ggZZ_PS_sig,
true);
7025 cout <<
"pVAJHUGen_ggZZ_PS_sig: " << pVAJHUGen_ggZZ_PS_sig <<
'\n' << endl;
7027 float pVAJHUGen_ggZZ_0m_sig;
7031 mela.computeP(pVAJHUGen_ggZZ_0m_sig,
true);
7032 cout <<
"pVAJHUGen_ggZZ_0m_sig: " << pVAJHUGen_ggZZ_0m_sig <<
'\n' << endl;
7035 float pVAMCFM_ggZZ_SM_total;
7037 mela.computeP(pVAMCFM_ggZZ_SM_total,
true);
7038 cout <<
"pVAMCFM_ggZZ_SM_total: " << pVAMCFM_ggZZ_SM_total <<
'\n' << endl;
7040 float pVAMCFM_ggZZ_0pm_total;
7045 mela.computeP(pVAMCFM_ggZZ_0pm_total,
true);
7046 cout <<
"pVAMCFM_ggZZ_0pm_total: " << pVAMCFM_ggZZ_0pm_total <<
'\n' << endl;
7048 float pVAMCFM_ggZZ_SM_sig;
7050 mela.computeP(pVAMCFM_ggZZ_SM_sig,
true);
7051 cout <<
"pVAMCFM_ggZZ_SM_sig: " << pVAMCFM_ggZZ_SM_sig <<
'\n' << endl;
7053 float pVAMCFM_ggZZ_0pm_sig;
7058 mela.computeP(pVAMCFM_ggZZ_0pm_sig,
true);
7059 cout <<
"pVAMCFM_ggZZ_0pm_sig: " << pVAMCFM_ggZZ_0pm_sig <<
'\n' << endl;
7061 float pVAMCFM_ggZZ_0m_sig;
7066 mela.computeP(pVAMCFM_ggZZ_0m_sig,
true);
7067 cout <<
"pVAMCFM_ggZZ_0m_sig: " << pVAMCFM_ggZZ_0m_sig <<
'\n' << endl;
7070 float pVAMCFM_HM_ggZZ_SM_total;
7072 mela.setMelaHiggsMassWidth(-1, 0, 0);
mela.setMelaHiggsMassWidth(mPOLE, -1, 1);
7073 mela.computeP(pVAMCFM_HM_ggZZ_SM_total,
true);
7074 cout <<
"pVAMCFM_HM_ggZZ_SM_total: " << pVAMCFM_HM_ggZZ_SM_total <<
'\n' << endl;
7076 float pVAMCFM_HM_ggZZ_0pm_total;
7078 mela.setMelaHiggsMassWidth(-1, 0, 0);
mela.setMelaHiggsMassWidth(mPOLE, -1, 1);
7081 mela.selfDHzzcoupl[1][0][0]=1.;
7082 mela.computeP(pVAMCFM_HM_ggZZ_0pm_total,
true);
7083 cout <<
"pVAMCFM_HM_ggZZ_0pm_total: " << pVAMCFM_HM_ggZZ_0pm_total <<
'\n' << endl;
7085 float pVAMCFM_HM_ggZZ_SM_sig;
7087 mela.setMelaHiggsMassWidth(-1, 0, 0);
mela.setMelaHiggsMassWidth(mPOLE, -1, 1);
7088 mela.computeP(pVAMCFM_HM_ggZZ_SM_sig,
true);
7089 cout <<
"pVAMCFM_HM_ggZZ_SM_sig: " << pVAMCFM_HM_ggZZ_SM_sig <<
'\n' << endl;
7091 float pVAMCFM_HM_ggZZ_0pm_sig;
7093 mela.setMelaHiggsMassWidth(-1, 0, 0);
mela.setMelaHiggsMassWidth(mPOLE, -1, 1);
7096 mela.selfDHzzcoupl[1][0][0]=1.;
7097 mela.computeP(pVAMCFM_HM_ggZZ_0pm_sig,
true);
7098 cout <<
"pVAMCFM_HM_ggZZ_0pm_sig: " << pVAMCFM_HM_ggZZ_0pm_sig <<
'\n' << endl;
7100 float pVAMCFM_HM_ggZZ_0m_sig;
7102 mela.setMelaHiggsMassWidth(-1, 0, 0);
mela.setMelaHiggsMassWidth(mPOLE, -1, 1);
7105 mela.selfDHzzcoupl[1][3][0]=1.;
7106 mela.computeP(pVAMCFM_HM_ggZZ_0m_sig,
true);
7107 cout <<
"pVAMCFM_HM_ggZZ_0m_sig: " << pVAMCFM_HM_ggZZ_0m_sig <<
'\n' << endl;
7111 mela.setCurrentCandidateFromIndex(cindex);
7112 float pVAJHUGen_ggZG_SM_sig;
7114 mela.computeP(pVAJHUGen_ggZG_SM_sig,
true);
7115 cout <<
"pVAJHUGen_ggZG_SM_sig: " << pVAJHUGen_ggZG_SM_sig <<
'\n' << endl;
7117 float pVAJHUGen_ggZG_0pm_sig;
7121 mela.computeP(pVAJHUGen_ggZG_0pm_sig,
true);
7122 cout <<
"pVAJHUGen_ggZG_0pm_sig: " << pVAJHUGen_ggZG_0pm_sig <<
'\n' << endl;
7124 float pVAJHUGen_ggZG_PS_sig;
7126 mela.computeP(pVAJHUGen_ggZG_PS_sig,
true);
7127 cout <<
"pVAJHUGen_ggZG_PS_sig: " << pVAJHUGen_ggZG_PS_sig <<
'\n' << endl;
7129 float pVAJHUGen_ggZG_0m_sig;
7133 mela.computeP(pVAJHUGen_ggZG_0m_sig,
true);
7134 cout <<
"pVAJHUGen_ggZG_0m_sig: " << pVAJHUGen_ggZG_0m_sig <<
'\n' << endl;
7136 float pVAMCFM_qqZG_bkg;
7138 mela.computeP(pVAMCFM_qqZG_bkg,
true);
7139 cout <<
"pVAMCFM_qqZG_bkg: " << pVAMCFM_qqZG_bkg <<
'\n' << endl;
7143 mela.setCurrentCandidateFromIndex(cindex);
7144 float pVAJHUGen_ggGG_SM_sig;
7146 mela.computeP(pVAJHUGen_ggGG_SM_sig,
true);
7147 cout <<
"pVAJHUGen_ggGG_SM_sig: " << pVAJHUGen_ggGG_SM_sig <<
'\n' << endl;
7149 float pVAJHUGen_ggGG_0pm_sig;
7153 mela.computeP(pVAJHUGen_ggGG_0pm_sig,
true);
7154 cout <<
"pVAJHUGen_ggGG_0pm_sig: " << pVAJHUGen_ggGG_0pm_sig <<
'\n' << endl;
7156 float pVAJHUGen_ggGG_PS_sig;
7158 mela.computeP(pVAJHUGen_ggGG_PS_sig,
true);
7159 cout <<
"pVAJHUGen_ggGG_PS_sig: " << pVAJHUGen_ggGG_PS_sig <<
'\n' << endl;
7161 float pVAJHUGen_ggGG_0m_sig;
7165 mela.computeP(pVAJHUGen_ggGG_0m_sig,
true);
7166 cout <<
"pVAJHUGen_ggGG_0m_sig: " << pVAJHUGen_ggGG_0m_sig <<
'\n' << endl;
7168 float pVAMCFM_ggGG_bkg;
7170 mela.computeP(pVAMCFM_ggGG_bkg,
true);
7171 cout <<
"pVAMCFM_ggGG_bkg: " << pVAMCFM_ggGG_bkg <<
'\n' << endl;
7173 float pVAMCFM_qqGG_bkg;
7175 mela.computeP(pVAMCFM_qqGG_bkg,
true);
7176 cout <<
"pVAMCFM_qqGG_bkg: " << pVAMCFM_qqGG_bkg <<
'\n' << endl;
7180 cout <<
"Removing Mela candidates\nSummary:" << endl;
7181 for (
int ic=0; ic<
mela.getNCandidates(); ic++){
7182 cout <<
"Candidate " << ic << endl;
7183 mela.setCurrentCandidateFromIndex(ic);
7188 mela.resetInputEvent();
7189 cout <<
"Removed..." << endl;
7192 cout.rdbuf(coutbuf);
7194 mela.setVerbosity(bkpverbosity);
7198 ofstream tout(TString(
"testME_ProdDec_JHUGen_SpinTwo_Ping_")+
long(flavor)+
".out");
7199 streambuf* coutbuf =
cout.rdbuf();
7200 cout.rdbuf(tout.rdbuf());
7204 float wPOLE=4.07e-3;
7210 mela.setVerbosity(verbosity);
7212 mela.resetMCFM_EWKParameters(1.16639E-05, 1./128., 80.399, 91.1876, 0.23119);
7214 double aL1, aL2, aR1, aR2;
7216 float GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
7240 const int nEntries = 6;
7241 double l1_array[nEntries][4] ={
7242 { 51.374202, 25.924766, 12.290178, 42.616376 },
7243 { 51.374202, 25.924766, 12.290178, 42.616376 },
7244 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
7245 { 1365.4973807340846, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
7246 { 1365.4973848483, 10.289826593755228, 25.205694382277809, -1365.2259480507332 },
7247 { 1365.4973848483, 10.289826593755228, 25.205694382277809, -1365.2259480507332 }
7249 double l2_array[nEntries][4] ={
7250 { 271.875752, 70.427173, -11.138146, 261.769598 },
7251 { 21.481452, 9.489680, -9.336587, 16.858699 },
7252 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
7253 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
7254 { 22.7864275656, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
7255 { 471.7191967775, -35.976267906053060, 4.5169691019519895, -470.32360615864354 }
7257 double l3_array[nEntries][4] ={
7258 { 75.823478, -16.640412, 23.246999, 70.227220 },
7259 { 75.823478, -16.640412, 23.246999, 70.227220 },
7260 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
7261 { 1895.7562628816693, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
7262 { 1895.7562658451, 25.837804322120054, -28.821887970086259, -1895.3610513294620 },
7263 { 1895.7562658451, 25.837804322120054, -28.821887970086259, -1895.3610513294620 }
7265 double l4_array[nEntries][4] ={
7266 { 21.481452, 9.489680, -9.336587, 16.858699 },
7267 { 271.875752, 70.427173, -11.138146, 261.769598 },
7268 { 471.71918486784784, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
7269 { 22.786181013986834, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 },
7270 { 471.7191967775, -35.976267906053060, 4.5169691019519895, -470.32360615864354 },
7271 { 22.7864275656, -0.15136300982222117, -0.90077551414353962, -22.767866345236371 }
7274 for (
int ev = 0;
ev < 1;
ev++){
7281 else if (flavor == 1){
7287 else if (flavor == 0){
7293 else if (flavor == 3){
7299 else if (flavor == 4){
7305 else if (flavor == 5){
7312 int idOrdered[4] ={
static_cast<int>(GenLep1Id),
static_cast<int>(GenLep2Id),
static_cast<int>(GenLep3Id),
static_cast<int>(GenLep4Id) };
7313 int idOrdered_WW[4] ={ 11, -12, -11, 12 };
7314 TLorentzVector pOrdered[4];
7315 pOrdered[0].SetXYZT(l1_array[
ev][1], l1_array[
ev][2], l1_array[
ev][3], l1_array[
ev][0]);
7316 pOrdered[1].SetXYZT(l2_array[
ev][1], l2_array[
ev][2], l2_array[
ev][3], l2_array[
ev][0]);
7317 pOrdered[2].SetXYZT(l3_array[
ev][1], l3_array[
ev][2], l3_array[
ev][3], l3_array[
ev][0]);
7318 pOrdered[3].SetXYZT(l4_array[
ev][1], l4_array[
ev][2], l4_array[
ev][3], l4_array[
ev][0]);
7320 for (
unsigned int idau=0; idau<4; idau++) daughters_WW.push_back(
SimpleParticle_t(idOrdered_WW[idau], pOrdered[idau]));
7322 for (
unsigned int iv=0; iv<2; iv++){
for (
int ivd=0; ivd<2; ivd++) daughters_WWasZZ.push_back(
SimpleParticle_t(idOrdered_WW[iv+2*ivd], pOrdered[iv+2*ivd])); }
7324 for (
unsigned int idau=0; idau<4; idau++) daughters_ZZ.push_back(
SimpleParticle_t(idOrdered[idau], pOrdered[idau]));
7326 TLorentzVector pOrdered_ZG[3];
7327 pOrdered_ZG[0]=pOrdered[0];
7328 pOrdered_ZG[1]=pOrdered[1];
7329 pOrdered_ZG[2]=pOrdered[2]+pOrdered[3];
7331 for (
unsigned int idau=0; idau<2; idau++) daughters_ZG.push_back(
SimpleParticle_t(idOrdered[idau], pOrdered_ZG[idau]));
7332 for (
unsigned int idau=2; idau<3; idau++) daughters_ZG.push_back(
SimpleParticle_t(22, pOrdered_ZG[idau]));
7334 TLorentzVector pOrdered_GG[3];
7335 pOrdered_GG[0]=pOrdered[0]+pOrdered[1];
7336 pOrdered_GG[1]=pOrdered[2]+pOrdered[3];
7338 for (
unsigned int idau=0; idau<2; idau++) daughters_GG.push_back(
SimpleParticle_t(22, pOrdered_GG[idau]));
7352 mela.setCurrentCandidateFromIndex(cindex);
7355 float pVAJHUGen_ggWW_a1_b1_sig;
7360 mela.computeP(pVAJHUGen_ggWW_a1_b1_sig,
true);
7361 cout <<
"pVAJHUGen_ggWW_a1_b1_sig: " << pVAJHUGen_ggWW_a1_b1_sig <<
'\n' << endl;
7363 mela.getIORecord()->getVDaughterCouplings(aL1, aR1, 0);
7364 mela.getIORecord()->getVDaughterCouplings(aL2, aR2, 1);
7367 float pVAJHUGen_ggWW_a1_b1_CT_sig;
7384 mela.selfDM_Wprime=80.399;
7385 mela.selfDGa_Wprime=2.085;
7386 mela.computeP(pVAJHUGen_ggWW_a1_b1_CT_sig,
true);
7387 cout <<
"pVAJHUGen_ggWW_a1_b1_CT_sig: " << pVAJHUGen_ggWW_a1_b1_CT_sig <<
'\n' << endl;
7393 mela.setCurrentCandidateFromIndex(cindex);
7396 float pVAJHUGen_ggZZ_a1_b1_sig;
7400 mela.computeP(pVAJHUGen_ggZZ_a1_b1_sig,
true);
7401 cout <<
"pVAJHUGen_ggZZ_a1_b1_sig: " << pVAJHUGen_ggZZ_a1_b1_sig <<
'\n' << endl;
7402 mela.getIORecord()->getVDaughterCouplings(aL1, aR1, 0);
7403 mela.getIORecord()->getVDaughterCouplings(aL2, aR2, 1);
7406 float pVAJHUGen_ggZZ_a1_b1_CT_sig;
7430 mela.selfDM_Zprime=91.1876;
7431 mela.selfDGa_Zprime=2.4952;
7432 mela.computeP(pVAJHUGen_ggZZ_a1_b1_CT_sig,
true);
7433 cout <<
"pVAJHUGen_ggZZ_a1_b1_CT_sig: " << pVAJHUGen_ggZZ_a1_b1_CT_sig <<
'\n' << endl;
7437 mela.setCurrentCandidateFromIndex(cindex);
7438 float pVAJHUGen_ggZG_a1_b1_sig;
7442 mela.computeP(pVAJHUGen_ggZG_a1_b1_sig,
true);
7443 cout <<
"pVAJHUGen_ggZG_a1_b1_sig: " << pVAJHUGen_ggZG_a1_b1_sig <<
'\n' << endl;
7447 mela.setCurrentCandidateFromIndex(cindex);
7448 float pVAJHUGen_ggGG_a1_b1_sig;
7452 mela.computeP(pVAJHUGen_ggGG_a1_b1_sig,
true);
7453 cout <<
"pVAJHUGen_ggGG_a1_b1_sig: " << pVAJHUGen_ggGG_a1_b1_sig <<
'\n' << endl;
7456 cout <<
"Removing Mela candidates\nSummary:" << endl;
7457 for (
int ic=0; ic<
mela.getNCandidates(); ic++){
7458 cout <<
"Candidate " << ic << endl;
7459 mela.setCurrentCandidateFromIndex(ic);
7464 mela.resetInputEvent();
7465 cout <<
"Removed..." << endl;
7468 cout.rdbuf(coutbuf);
7470 mela.setVerbosity(bkpverbosity);
7476 float wPOLE=4.07e-3;
7477 TString TREE_NAME =
"SelectedTree";
7481 melaptr.reset(
new Mela(erg_tev, mPOLE, verbosity));
7485 mela.setVerbosity(verbosity);
7487 mela.resetMCFM_EWKParameters(1.16639E-05, 1./128., 80.399, 91.1876, 0.23119);
7489 TString cinput_main =
"/scratch0/hep/ianderso/CJLST/140519/PRODFSR_8TeV";
7493 finput =
new TFile(Form(
"%s/%s/HZZ4lTree_powheg15jhuGenV3-0PMH125.6.root", cinput_main.Data(), (flavor>=2 ?
"2mu2e" :
"4e")),
"read");
7494 foutput =
new TFile(Form(
"HZZ4lTree_powheg15jhuGenV3-0PMH125.6_%s_OriginalMEv2ValidationTestOnly.root", (flavor>=2 ?
"2mu2e" :
"4e")),
"recreate");
7497 finput =
new TFile(Form(
"%s/%s/HZZ4lTree_ZZTo%s.root", cinput_main.Data(), (flavor>=2 ?
"2mu2e" :
"4e"), (flavor==2 ?
"2e2mu" :
"4e")),
"read");
7498 foutput =
new TFile(Form(
"HZZ4lTree_ZZTo%s_OriginalMEv2ValidationTestOnly.root", (flavor>=2 ?
"2e2mu" :
"4e")),
"recreate");
7502 float p0hplus_VAJHU;
7503 float p0minus_VAJHU;
7504 float p0_g1prime2_VAJHU;
7505 float pg1g1prime2_VAJHU;
7508 float pg1g2_pi2_VAJHU;
7510 float pg1g4_pi2_VAJHU;
7512 float p0plus_VAJHU_NEW;
7513 float p0hplus_VAJHU_NEW;
7514 float p0minus_VAJHU_NEW;
7515 float p0_g1prime2_VAJHU_NEW;
7516 float pg1g1prime2_VAJHU_NEW;
7517 float pg1g1prime2_pi2_VAJHU_NEW;
7518 float pg1g2_VAJHU_NEW;
7519 float pg1g2_pi2_VAJHU_NEW;
7520 float pg1g4_VAJHU_NEW;
7521 float pg1g4_pi2_VAJHU_NEW;
7523 float p0hplus_VAMCFM_NEW;
7524 float p0minus_VAMCFM_NEW;
7525 float p0_g1prime2_VAMCFM_NEW;
7526 float pg1g1prime2_VAMCFM_NEW;
7527 float pg1g1prime2_pi2_VAMCFM_NEW;
7528 float pg1g2_VAMCFM_NEW;
7529 float pg1g2_pi2_VAMCFM_NEW;
7530 float pg1g4_VAMCFM_NEW;
7531 float pg1g4_pi2_VAMCFM_NEW;
7533 float p0hplus_VAMCFM_ratio_NEW;
7534 float p0minus_VAMCFM_ratio_NEW;
7535 float p0_g1prime2_VAMCFM_ratio_NEW;
7536 float pg1g1prime2_VAMCFM_ratio_NEW;
7537 float pg1g1prime2_pi2_VAMCFM_ratio_NEW;
7538 float pg1g2_VAMCFM_ratio_NEW;
7539 float pg1g2_pi2_VAMCFM_ratio_NEW;
7540 float pg1g4_VAMCFM_ratio_NEW;
7541 float pg1g4_pi2_VAMCFM_ratio_NEW;
7543 float p0hplus_VAJHU_ratio_NEW;
7544 float p0minus_VAJHU_ratio_NEW;
7545 float p0_g1prime2_VAJHU_ratio_NEW;
7546 float pg1g1prime2_VAJHU_ratio_NEW;
7547 float pg1g1prime2_pi2_VAJHU_ratio_NEW;
7548 float pg1g2_VAJHU_ratio_NEW;
7549 float pg1g2_pi2_VAJHU_ratio_NEW;
7550 float pg1g4_VAJHU_ratio_NEW;
7551 float pg1g4_pi2_VAJHU_ratio_NEW;
7553 float p0plus_VAMCFM, ggzz_p0plus_VAMCFM;
7554 float bkg_VAMCFM, ggzz_VAMCFM;
7555 float p0plus_VAMCFM_NEW, ggzz_p0plus_VAMCFM_NEW, p0plus_VAMCFM_NEW_BSMOn;
7556 float bkg_VAMCFM_NEW, ggzz_VAMCFM_NEW;
7560 float m1 = 91.471450;
7561 float m2 = 12.139782;
7562 float h1 = 0.2682896;
7563 float h2 = 0.1679779;
7564 float phi = 1.5969792;
7565 float hs = -0.727181;
7566 float phi1 = 1.8828257;
7568 TTree* tree = (TTree*)finput->Get(TREE_NAME);
7569 tree->SetBranchAddress(
"ZZMass", &mzz);
7570 tree->SetBranchAddress(
"Z1Mass", &m1);
7571 tree->SetBranchAddress(
"Z2Mass", &m2);
7572 tree->SetBranchAddress(
"helcosthetaZ1", &h1);
7573 tree->SetBranchAddress(
"helcosthetaZ2", &h2);
7574 tree->SetBranchAddress(
"helphi", &phi);
7575 tree->SetBranchAddress(
"costhetastar", &hs);
7576 tree->SetBranchAddress(
"phistarZ1", &phi1);
7577 tree->SetBranchAddress(
"p0plus_VAJHU", &p0plus_VAJHU);
7578 tree->SetBranchAddress(
"p0hplus_VAJHU", &p0hplus_VAJHU);
7579 tree->SetBranchAddress(
"p0minus_VAJHU", &p0minus_VAJHU);
7580 tree->SetBranchAddress(
"p0_g1prime2_VAJHU", &p0_g1prime2_VAJHU);
7581 tree->SetBranchAddress(
"pg1g2_VAJHU", &pg1g2_VAJHU);
7582 tree->SetBranchAddress(
"pg1g2_pi2_VAJHU", &pg1g2_pi2_VAJHU);
7583 tree->SetBranchAddress(
"pg1g4_VAJHU", &pg1g4_VAJHU);
7584 tree->SetBranchAddress(
"pg1g4_pi2_VAJHU", &pg1g4_pi2_VAJHU);
7585 tree->SetBranchAddress(
"pg1g1prime2_VAJHU", &pg1g1prime2_VAJHU);
7586 tree->SetBranchAddress(
"bkg_VAMCFM", &bkg_VAMCFM);
7587 tree->SetBranchAddress(
"ggzz_VAMCFM", &ggzz_VAMCFM);
7588 tree->SetBranchAddress(
"p0plus_VAMCFM", &p0plus_VAMCFM);
7589 tree->SetBranchAddress(
"ggzz_p0plus_VAMCFM", &ggzz_p0plus_VAMCFM);
7591 TTree* newtree =
new TTree(
"TestTree",
"");
7592 newtree->Branch(
"ZZMass", &mzz);
7593 newtree->Branch(
"Z1Mass", &m1);
7594 newtree->Branch(
"Z2Mass", &m2);
7595 newtree->Branch(
"helcosthetaZ1", &h1);
7596 newtree->Branch(
"helcosthetaZ2", &h2);
7597 newtree->Branch(
"helphi", &phi);
7598 newtree->Branch(
"costhetastar", &hs);
7599 newtree->Branch(
"phistarZ1", &phi1);
7601 newtree->Branch(
"p0plus_VAJHU", &p0plus_VAJHU);
7602 newtree->Branch(
"p0hplus_VAJHU", &p0hplus_VAJHU);
7603 newtree->Branch(
"p0minus_VAJHU", &p0minus_VAJHU);
7604 newtree->Branch(
"p0_g1prime2_VAJHU", &p0_g1prime2_VAJHU);
7605 newtree->Branch(
"pg1g2_VAJHU", &pg1g2_VAJHU);
7606 newtree->Branch(
"pg1g2_pi2_VAJHU", &pg1g2_pi2_VAJHU);
7607 newtree->Branch(
"pg1g4_VAJHU", &pg1g4_VAJHU);
7608 newtree->Branch(
"pg1g4_pi2_VAJHU", &pg1g4_pi2_VAJHU);
7609 newtree->Branch(
"pg1g1prime2_VAJHU", &pg1g1prime2_VAJHU);
7611 newtree->Branch(
"p0plus_VAJHU_NEW", &p0plus_VAJHU_NEW);
7612 newtree->Branch(
"p0hplus_VAJHU_NEW", &p0hplus_VAJHU_NEW);
7613 newtree->Branch(
"p0minus_VAJHU_NEW", &p0minus_VAJHU_NEW);
7614 newtree->Branch(
"p0_g1prime2_VAJHU_NEW", &p0_g1prime2_VAJHU_NEW);
7615 newtree->Branch(
"pg1g2_VAJHU_NEW", &pg1g2_VAJHU_NEW);
7616 newtree->Branch(
"pg1g2_pi2_VAJHU_NEW", &pg1g2_pi2_VAJHU_NEW);
7617 newtree->Branch(
"pg1g4_VAJHU_NEW", &pg1g4_VAJHU_NEW);
7618 newtree->Branch(
"pg1g4_pi2_VAJHU_NEW", &pg1g4_pi2_VAJHU_NEW);
7619 newtree->Branch(
"pg1g1prime2_VAJHU_NEW", &pg1g1prime2_VAJHU_NEW);
7620 newtree->Branch(
"pg1g1prime2_pi2_VAJHU_NEW", &pg1g1prime2_pi2_VAJHU_NEW);
7623 newtree->Branch(
"bkg_VAMCFM", &bkg_VAMCFM);
7624 newtree->Branch(
"ggzz_VAMCFM", &ggzz_VAMCFM);
7625 newtree->Branch(
"p0plus_VAMCFM", &p0plus_VAMCFM);
7626 newtree->Branch(
"ggzz_p0plus_VAMCFM", &ggzz_p0plus_VAMCFM);
7627 newtree->Branch(
"bkg_VAMCFM_NEW", &bkg_VAMCFM_NEW);
7628 newtree->Branch(
"ggzz_VAMCFM_NEW", &ggzz_VAMCFM_NEW);
7629 newtree->Branch(
"p0plus_VAMCFM_NEW", &p0plus_VAMCFM_NEW);
7630 newtree->Branch(
"ggzz_p0plus_VAMCFM_NEW", &ggzz_p0plus_VAMCFM_NEW);
7631 newtree->Branch(
"p0plus_VAMCFM_NEW_BSMOn", &p0plus_VAMCFM_NEW_BSMOn);
7633 newtree->Branch(
"p0hplus_VAMCFM_NEW", &p0hplus_VAMCFM_NEW);
7634 newtree->Branch(
"p0minus_VAMCFM_NEW", &p0minus_VAMCFM_NEW);
7635 newtree->Branch(
"p0_g1prime2_VAMCFM_NEW", &p0_g1prime2_VAMCFM_NEW);
7636 newtree->Branch(
"pg1g2_VAMCFM_NEW", &pg1g2_VAMCFM_NEW);
7637 newtree->Branch(
"pg1g2_pi2_VAMCFM_NEW", &pg1g2_pi2_VAMCFM_NEW);
7638 newtree->Branch(
"pg1g4_VAMCFM_NEW", &pg1g4_VAMCFM_NEW);
7639 newtree->Branch(
"pg1g4_pi2_VAMCFM_NEW", &pg1g4_pi2_VAMCFM_NEW);
7640 newtree->Branch(
"pg1g1prime2_VAMCFM_NEW", &pg1g1prime2_VAMCFM_NEW);
7641 newtree->Branch(
"pg1g1prime2_pi2_VAMCFM_NEW", &pg1g1prime2_pi2_VAMCFM_NEW);
7643 newtree->Branch(
"p0hplus_VAMCFM_ratio_NEW", &p0hplus_VAMCFM_ratio_NEW);
7644 newtree->Branch(
"p0minus_VAMCFM_ratio_NEW", &p0minus_VAMCFM_ratio_NEW);
7645 newtree->Branch(
"p0_g1prime2_VAMCFM_ratio_NEW", &p0_g1prime2_VAMCFM_ratio_NEW);
7646 newtree->Branch(
"pg1g2_VAMCFM_ratio_NEW", &pg1g2_VAMCFM_ratio_NEW);
7647 newtree->Branch(
"pg1g2_pi2_VAMCFM_ratio_NEW", &pg1g2_pi2_VAMCFM_ratio_NEW);
7648 newtree->Branch(
"pg1g4_VAMCFM_ratio_NEW", &pg1g4_VAMCFM_ratio_NEW);
7649 newtree->Branch(
"pg1g4_pi2_VAMCFM_ratio_NEW", &pg1g4_pi2_VAMCFM_ratio_NEW);
7650 newtree->Branch(
"pg1g1prime2_VAMCFM_ratio_NEW", &pg1g1prime2_VAMCFM_ratio_NEW);
7651 newtree->Branch(
"pg1g1prime2_pi2_VAMCFM_ratio_NEW", &pg1g1prime2_pi2_VAMCFM_ratio_NEW);
7653 newtree->Branch(
"p0hplus_VAJHU_ratio_NEW", &p0hplus_VAJHU_ratio_NEW);
7654 newtree->Branch(
"p0minus_VAJHU_ratio_NEW", &p0minus_VAJHU_ratio_NEW);
7655 newtree->Branch(
"p0_g1prime2_VAJHU_ratio_NEW", &p0_g1prime2_VAJHU_ratio_NEW);
7656 newtree->Branch(
"pg1g2_VAJHU_ratio_NEW", &pg1g2_VAJHU_ratio_NEW);
7657 newtree->Branch(
"pg1g2_pi2_VAJHU_ratio_NEW", &pg1g2_pi2_VAJHU_ratio_NEW);
7658 newtree->Branch(
"pg1g4_VAJHU_ratio_NEW", &pg1g4_VAJHU_ratio_NEW);
7659 newtree->Branch(
"pg1g4_pi2_VAJHU_ratio_NEW", &pg1g4_pi2_VAJHU_ratio_NEW);
7660 newtree->Branch(
"pg1g1prime2_VAJHU_ratio_NEW", &pg1g1prime2_VAJHU_ratio_NEW);
7661 newtree->Branch(
"pg1g1prime2_pi2_VAJHU_ratio_NEW", &pg1g1prime2_pi2_VAJHU_ratio_NEW);
7663 float GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
7670 else if (flavor == 1){
7676 else if (flavor == 0){
7682 else if (flavor == 3){
7688 else if (flavor == 4){
7694 else if (flavor == 5){
7702 for (
int ev = 0;
ev < (!useBkgSample ? min(1000, (
int)tree->GetEntries()) : (
int)tree->GetEntries());
ev++){
7705 if (
ev%10000 == 0)
cout <<
"Processing event " <<
ev << endl;
7707 int idOrdered[4] ={
static_cast<int>(GenLep1Id),
static_cast<int>(GenLep2Id),
static_cast<int>(GenLep3Id),
static_cast<int>(GenLep4Id) };
7708 TLorentzVector pOrdered[4];
7709 std::vector<TLorentzVector> daus =
mela.calculate4Momentum(mzz, m1, m2, acos(hs), acos(h1), acos(h2), phi1, phi);
7710 for (
int ip=0; ip<min(4, (
int)daus.size()); ip++) pOrdered[ip]=daus.at(ip);
7712 for (
unsigned int idau=0; idau<4; idau++) daughters_ZZ.push_back(
SimpleParticle_t(idOrdered[idau], pOrdered[idau]));
7716 if (verbosity>=
TVar::DEBUG)
cout <<
"Computing bkg_VAMCFM_NEW" << endl;
7718 mela.computeP(bkg_VAMCFM_NEW, useConstants);
7720 if (verbosity>=
TVar::DEBUG)
cout <<
"Computing ggzz_VAMCFM_NEW" << endl;
7723 mela.computeP(ggzz_VAMCFM_NEW, useConstants);
7725 if (verbosity>=
TVar::DEBUG)
cout <<
"Computing p0plus_VAMCFM_NEW" << endl;
7728 mela.computeP(p0plus_VAMCFM_NEW, useConstants);
7730 if (verbosity>=
TVar::DEBUG)
cout <<
"Computing ggzz_p0plus_VAMCFM_NEW" << endl;
7733 mela.computeP(ggzz_p0plus_VAMCFM_NEW, useConstants);
7735 if (verbosity>=
TVar::DEBUG)
cout <<
"Computing p0plus_VAMCFM_NEW_BSMOn" << endl;
7738 mela.computeP(p0plus_VAMCFM_NEW_BSMOn, useConstants);
7744 mela.computeP(p0plus_VAJHU_NEW, useConstants);
7749 mela.computeP(p0hplus_VAJHU_NEW, useConstants);
7753 mela.computeP(p0minus_VAJHU_NEW, useConstants);
7757 mela.computeP(p0_g1prime2_VAJHU_NEW, useConstants);
7762 mela.computeP(pg1g2_VAJHU_NEW, useConstants);
7763 pg1g2_VAJHU_NEW -= (p0plus_VAJHU_NEW + p0hplus_VAJHU_NEW);
7768 mela.computeP(pg1g2_pi2_VAJHU_NEW, useConstants);
7769 pg1g2_pi2_VAJHU_NEW -= (p0plus_VAJHU_NEW + p0hplus_VAJHU_NEW);
7774 mela.computeP(pg1g4_VAJHU_NEW, useConstants);
7775 pg1g4_VAJHU_NEW -= (p0plus_VAJHU_NEW + p0minus_VAJHU_NEW);
7780 mela.computeP(pg1g4_pi2_VAJHU_NEW, useConstants);
7781 pg1g4_pi2_VAJHU_NEW -= (p0plus_VAJHU_NEW + p0minus_VAJHU_NEW);
7786 mela.computeP(pg1g1prime2_VAJHU_NEW, useConstants);
7787 pg1g1prime2_VAJHU_NEW -= (p0plus_VAJHU_NEW + p0_g1prime2_VAJHU_NEW);
7792 mela.computeP(pg1g1prime2_pi2_VAJHU_NEW, useConstants);
7793 pg1g1prime2_pi2_VAJHU_NEW -= (p0plus_VAJHU_NEW + p0_g1prime2_VAJHU_NEW);
7799 mela.computeP(p0plus_VAMCFM_NEW, useConstants);
7802 mela.computeP(p0hplus_VAMCFM_NEW, useConstants);
7805 mela.computeP(p0minus_VAMCFM_NEW, useConstants);
7808 mela.computeP(p0_g1prime2_VAMCFM_NEW, useConstants);
7812 mela.computeP(pg1g2_VAMCFM_NEW, useConstants);
7813 pg1g2_VAMCFM_NEW -= (p0plus_VAMCFM_NEW + p0hplus_VAMCFM_NEW);
7817 mela.computeP(pg1g2_pi2_VAMCFM_NEW, useConstants);
7818 pg1g2_pi2_VAMCFM_NEW -= (p0plus_VAMCFM_NEW + p0hplus_VAMCFM_NEW);
7822 mela.computeP(pg1g4_VAMCFM_NEW, useConstants);
7823 pg1g4_VAMCFM_NEW -= (p0plus_VAMCFM_NEW + p0minus_VAMCFM_NEW);
7827 mela.computeP(pg1g4_pi2_VAMCFM_NEW, useConstants);
7828 pg1g4_pi2_VAMCFM_NEW -= (p0plus_VAMCFM_NEW + p0minus_VAMCFM_NEW);
7832 mela.computeP(pg1g1prime2_VAMCFM_NEW, useConstants);
7833 pg1g1prime2_VAMCFM_NEW -= (p0plus_VAMCFM_NEW + p0_g1prime2_VAMCFM_NEW);
7837 mela.computeP(pg1g1prime2_pi2_VAMCFM_NEW, useConstants);
7838 pg1g1prime2_pi2_VAMCFM_NEW -= (p0plus_VAMCFM_NEW + p0_g1prime2_VAMCFM_NEW);
7841 p0hplus_VAJHU_ratio_NEW = p0hplus_VAJHU_NEW/p0plus_VAJHU_NEW;
7842 p0minus_VAJHU_ratio_NEW = p0minus_VAJHU_NEW/p0plus_VAJHU_NEW;
7843 p0_g1prime2_VAJHU_ratio_NEW = p0_g1prime2_VAJHU_NEW/p0plus_VAJHU_NEW;
7844 pg1g2_VAJHU_ratio_NEW = pg1g2_VAJHU_NEW/p0plus_VAJHU_NEW;
7845 pg1g4_VAJHU_ratio_NEW = pg1g4_VAJHU_NEW/p0plus_VAJHU_NEW;
7846 pg1g1prime2_VAJHU_ratio_NEW = pg1g1prime2_VAJHU_NEW/p0plus_VAJHU_NEW;
7847 pg1g2_pi2_VAJHU_ratio_NEW = pg1g2_pi2_VAJHU_NEW/p0plus_VAJHU_NEW;
7848 pg1g4_pi2_VAJHU_ratio_NEW = pg1g4_pi2_VAJHU_NEW/p0plus_VAJHU_NEW;
7849 pg1g1prime2_pi2_VAJHU_ratio_NEW = pg1g1prime2_pi2_VAJHU_NEW/p0plus_VAJHU_NEW;
7851 p0hplus_VAMCFM_ratio_NEW = p0hplus_VAMCFM_NEW/p0plus_VAMCFM_NEW;
7852 p0minus_VAMCFM_ratio_NEW = p0minus_VAMCFM_NEW/p0plus_VAMCFM_NEW;
7853 p0_g1prime2_VAMCFM_ratio_NEW = p0_g1prime2_VAMCFM_NEW/p0plus_VAMCFM_NEW;
7854 pg1g2_VAMCFM_ratio_NEW = pg1g2_VAMCFM_NEW/p0plus_VAMCFM_NEW;
7855 pg1g4_VAMCFM_ratio_NEW = pg1g4_VAMCFM_NEW/p0plus_VAMCFM_NEW;
7856 pg1g1prime2_VAMCFM_ratio_NEW = pg1g1prime2_VAMCFM_NEW/p0plus_VAMCFM_NEW;
7857 pg1g2_pi2_VAMCFM_ratio_NEW = pg1g2_pi2_VAMCFM_NEW/p0plus_VAMCFM_NEW;
7858 pg1g4_pi2_VAMCFM_ratio_NEW = pg1g4_pi2_VAMCFM_NEW/p0plus_VAMCFM_NEW;
7859 pg1g1prime2_pi2_VAMCFM_ratio_NEW = pg1g1prime2_pi2_VAMCFM_NEW/p0plus_VAMCFM_NEW;
7862 mela.resetInputEvent();
7867 foutput->WriteTObject(newtree);
7870 mela.setVerbosity(bkpverbosity);
7876 float wPOLE=4.07e-3;
7877 TString TREE_NAME =
"SelectedTree";
7881 melaptr.reset(
new Mela(erg_tev, mPOLE, verbosity));
7885 mela.setVerbosity(verbosity);
7887 TString cinput_main =
"/scratch0/hep/ianderso/CJLST/140519/PRODFSR_8TeV";
7891 finput =
new TFile(Form(
"%s/%s/HZZ4lTree_ZZTo%s.root", cinput_main.Data(), (flavor>=2 ?
"2mu2e" :
"4e"), (flavor==2 ?
"2e2mu" :
"4e")),
"read");
7892 foutput =
new TFile(Form(
"HZZ4lTree_ZZTo%s_vbfMELATest.root", (flavor>=2 ?
"2e2mu" :
"4e")),
"recreate");
7895 finput =
new TFile(Form(
"%s/%s/HZZ4lTree_VBF0P_H125.6.root", cinput_main.Data(), (flavor==2 ?
"2mu2e" :
"4e")),
"read");
7896 foutput =
new TFile(
"HZZ4lTree_VBF0P_H125.6_vbfMELATest.root",
"recreate");
7899 float phjj_VAJHU_old;
7900 float pvbf_VAJHU_old;
7901 float phjj_VAJHU_old_NEW;
7902 float pvbf_VAJHU_old_NEW;
7903 float phjj_VAJHU_old_NEW_selfD;
7904 float pvbf_VAJHU_old_NEW_selfD;
7905 float phjj0minus_VAJHU_old_NEW;
7906 float pvbf0minus_VAJHU_old_NEW;
7907 float phjj0minus_VAJHU_old_NEW_selfD;
7908 float pvbf0minus_VAJHU_old_NEW_selfD;
7915 std::vector<double>* JetPt=0;
7916 std::vector<double>* JetEta=0;
7917 std::vector<double>* JetPhi=0;
7918 std::vector<double>* JetMass=0;
7919 std::vector<double> myJetPt;
7920 std::vector<double> myJetEta;
7921 std::vector<double> myJetPhi;
7922 std::vector<double> myJetMass;
7926 TBranch* bJetMass=0;
7929 float m1 = 91.471450;
7930 float m2 = 12.139782;
7931 float h1 = 0.2682896;
7932 float h2 = 0.1679779;
7933 float phi = 1.5969792;
7934 float hs = -0.727181;
7935 float phi1 = 1.8828257;
7936 float ZZPt, ZZPhi, ZZEta;
7938 TTree* tree = (TTree*)finput->Get(TREE_NAME);
7939 tree->SetBranchAddress(
"NJets30", &NJets30);
7940 tree->SetBranchAddress(
"JetPt", &JetPt, &bJetPt);
7941 tree->SetBranchAddress(
"JetEta", &JetEta, &bJetEta);
7942 tree->SetBranchAddress(
"JetPhi", &JetPhi, &bJetPhi);
7943 tree->SetBranchAddress(
"JetMass", &JetMass, &bJetMass);
7944 tree->SetBranchAddress(
"phjj_VAJHU_old", &phjj_VAJHU_old);
7945 tree->SetBranchAddress(
"pvbf_VAJHU_old", &pvbf_VAJHU_old);
7946 tree->SetBranchAddress(
"ZZMass", &mzz);
7947 tree->SetBranchAddress(
"ZZPt", &ZZPt);
7948 tree->SetBranchAddress(
"ZZEta", &ZZEta);
7949 tree->SetBranchAddress(
"ZZPhi", &ZZPhi);
7950 tree->SetBranchAddress(
"Z1Mass", &m1);
7951 tree->SetBranchAddress(
"Z2Mass", &m2);
7952 tree->SetBranchAddress(
"helcosthetaZ1", &h1);
7953 tree->SetBranchAddress(
"helcosthetaZ2", &h2);
7954 tree->SetBranchAddress(
"helphi", &phi);
7955 tree->SetBranchAddress(
"costhetastar", &hs);
7956 tree->SetBranchAddress(
"phistarZ1", &phi1);
7958 TTree* newtree =
new TTree(
"TestTree",
"");
7959 newtree->Branch(
"phjj_VAJHU_old", &phjj_VAJHU_old);
7960 newtree->Branch(
"pvbf_VAJHU_old", &pvbf_VAJHU_old);
7961 newtree->Branch(
"phjj_VAJHU_old_NEW", &phjj_VAJHU_old_NEW);
7962 newtree->Branch(
"pvbf_VAJHU_old_NEW", &pvbf_VAJHU_old_NEW);
7963 newtree->Branch(
"phjj0minus_VAJHU_old_NEW", &phjj0minus_VAJHU_old_NEW);
7964 newtree->Branch(
"pvbf0minus_VAJHU_old_NEW", &pvbf0minus_VAJHU_old_NEW);
7965 newtree->Branch(
"phjj_VAJHU_old_NEW_selfD", &phjj_VAJHU_old_NEW_selfD);
7966 newtree->Branch(
"pvbf_VAJHU_old_NEW_selfD", &pvbf_VAJHU_old_NEW_selfD);
7967 newtree->Branch(
"phjj0minus_VAJHU_old_NEW_selfD", &phjj0minus_VAJHU_old_NEW_selfD);
7968 newtree->Branch(
"pvbf0minus_VAJHU_old_NEW_selfD", &pvbf0minus_VAJHU_old_NEW_selfD);
7969 newtree->Branch(
"ZZMass", &mzz);
7971 float GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
7978 else if (flavor == 1){
7984 else if (flavor == 0){
7990 else if (flavor == 3){
7996 else if (flavor == 4){
8002 else if (flavor == 5){
8009 int idOrdered[4] ={
static_cast<int>(GenLep1Id),
static_cast<int>(GenLep2Id),
static_cast<int>(GenLep3Id),
static_cast<int>(GenLep4Id) };
8011 int nEntries = tree->GetEntries();
8013 for (
int ev = 0;
ev < nEntries;
ev++){
8014 if (recorded>=(verbosity>=
TVar::DEBUG ? 1 : (!useBkgSample ? 1000 : nEntries)))
break;
8017 if (JetPt->size()>=2 && NJets30>=2){
8018 TLorentzVector jet1(0, 0, 1e-3, 1e-3), jet2(0, 0, 1e-3, 1e-3), higgs(0, 0, 0, 0);
8019 jet1.SetPtEtaPhiM(JetPt->at(0), JetEta->at(0), JetPhi->at(0), JetMass->at(0));
8020 jet2.SetPtEtaPhiM(JetPt->at(1), JetEta->at(1), JetPhi->at(1), JetMass->at(1));
8021 higgs.SetPtEtaPhiM(ZZPt, ZZEta, ZZPhi, mzz);
8022 TVector3 boostH = higgs.BoostVector();
8028 TLorentzVector pDaughters[4];
8029 std::vector<TLorentzVector> daus =
mela.calculate4Momentum(mzz, m1, m2, acos(hs), acos(h1), acos(h2), phi1, phi);
8030 for (
int ip=0; ip<min(4, (
int)daus.size()); ip++){ pDaughters[ip]=daus.at(ip); pDaughters[ip].Boost(boostH); }
8032 for (
unsigned int idau=0; idau<4; idau++) daughters_ZZ.push_back(
SimpleParticle_t(idOrdered[idau], pDaughters[idau]));
8037 mela.computeProdP(pvbf_VAJHU_old_NEW, useConstants);
8040 mela.computeProdP(phjj_VAJHU_old_NEW, useConstants);
8068 mela.resetInputEvent();
8073 foutput->WriteTObject(newtree);
8077 mela.setVerbosity(bkpverbosity);
8083 float wPOLE=4.07e-3;
8084 TString TREE_NAME =
"SelectedTree";
8088 melaptr.reset(
new Mela(erg_tev, mPOLE, verbosity));
8092 mela.setVerbosity(verbosity);
8094 TString cinput_main =
"/scratch0/hep/ianderso/CJLST/140519/PRODFSR_8TeV";
8095 TFile* finput =
new TFile(Form(
"%s/%s/HZZ4lTree_ZZTo%s.root", cinput_main.Data(),
"2mu2e",
"2e2mu"),
"read");
8096 TFile* foutput =
new TFile(Form(
"HZZ4lTree_ZZTo%s_vhMELATest.root",
"2e2mu"),
"recreate");
8098 float pwh_leptonic_VAJHU_old_NEW;
8099 float pzh_leptonic_VAJHU_old_NEW;
8100 float pwh_leptonic_VAJHU_old_NEW_selfD;
8101 float pzh_leptonic_VAJHU_old_NEW_selfD;
8102 float pwh0minus_leptonic_VAJHU_old_NEW;
8103 float pzh0minus_leptonic_VAJHU_old_NEW;
8104 float pwh0minus_leptonic_VAJHU_old_NEW_selfD;
8105 float pzh0minus_leptonic_VAJHU_old_NEW_selfD;
8106 float pwh_hadronic_VAJHU_old_NEW;
8107 float pzh_hadronic_VAJHU_old_NEW;
8108 float pwh_hadronic_VAJHU_old_NEW_selfD;
8109 float pzh_hadronic_VAJHU_old_NEW_selfD;
8110 float pwh0minus_hadronic_VAJHU_old_NEW;
8111 float pzh0minus_hadronic_VAJHU_old_NEW;
8112 float pwh0minus_hadronic_VAJHU_old_NEW_selfD;
8113 float pzh0minus_hadronic_VAJHU_old_NEW_selfD;
8120 std::vector<double>* JetPt=0;
8121 std::vector<double>* JetEta=0;
8122 std::vector<double>* JetPhi=0;
8123 std::vector<double>* JetMass=0;
8124 std::vector<double> myJetPt;
8125 std::vector<double> myJetEta;
8126 std::vector<double> myJetPhi;
8127 std::vector<double> myJetMass;
8131 TBranch* bJetMass=0;
8134 float m1 = 91.471450;
8135 float m2 = 12.139782;
8136 float h1 = 0.2682896;
8137 float h2 = 0.1679779;
8138 float phi = 1.5969792;
8139 float hs = -0.727181;
8140 float phi1 = 1.8828257;
8141 float ZZPt, ZZPhi, ZZEta;
8143 TTree* tree = (TTree*)finput->Get(TREE_NAME);
8144 tree->SetBranchAddress(
"NJets30", &NJets30);
8145 tree->SetBranchAddress(
"JetPt", &JetPt, &bJetPt);
8146 tree->SetBranchAddress(
"JetEta", &JetEta, &bJetEta);
8147 tree->SetBranchAddress(
"JetPhi", &JetPhi, &bJetPhi);
8148 tree->SetBranchAddress(
"JetMass", &JetMass, &bJetMass);
8149 tree->SetBranchAddress(
"ZZMass", &mzz);
8150 tree->SetBranchAddress(
"ZZPt", &ZZPt);
8151 tree->SetBranchAddress(
"ZZEta", &ZZEta);
8152 tree->SetBranchAddress(
"ZZPhi", &ZZPhi);
8153 tree->SetBranchAddress(
"Z1Mass", &m1);
8154 tree->SetBranchAddress(
"Z2Mass", &m2);
8155 tree->SetBranchAddress(
"helcosthetaZ1", &h1);
8156 tree->SetBranchAddress(
"helcosthetaZ2", &h2);
8157 tree->SetBranchAddress(
"helphi", &phi);
8158 tree->SetBranchAddress(
"costhetastar", &hs);
8159 tree->SetBranchAddress(
"phistarZ1", &phi1);
8161 TTree* newtree =
new TTree(
"TestTree",
"");
8162 newtree->Branch(
"pwh_leptonic_VAJHU_old_NEW", &pwh_leptonic_VAJHU_old_NEW);
8163 newtree->Branch(
"pzh_leptonic_VAJHU_old_NEW", &pzh_leptonic_VAJHU_old_NEW);
8164 newtree->Branch(
"pwh0minus_leptonic_VAJHU_old_NEW", &pwh0minus_leptonic_VAJHU_old_NEW);
8165 newtree->Branch(
"pzh0minus_leptonic_VAJHU_old_NEW", &pzh0minus_leptonic_VAJHU_old_NEW);
8166 newtree->Branch(
"pwh_leptonic_VAJHU_old_NEW_selfD", &pwh_leptonic_VAJHU_old_NEW_selfD);
8167 newtree->Branch(
"pzh_leptonic_VAJHU_old_NEW_selfD", &pzh_leptonic_VAJHU_old_NEW_selfD);
8168 newtree->Branch(
"pwh0minus_leptonic_VAJHU_old_NEW_selfD", &pwh0minus_leptonic_VAJHU_old_NEW_selfD);
8169 newtree->Branch(
"pzh0minus_leptonic_VAJHU_old_NEW_selfD", &pzh0minus_leptonic_VAJHU_old_NEW_selfD);
8170 newtree->Branch(
"pwh_hadronic_VAJHU_old_NEW", &pwh_hadronic_VAJHU_old_NEW);
8171 newtree->Branch(
"pzh_hadronic_VAJHU_old_NEW", &pzh_hadronic_VAJHU_old_NEW);
8172 newtree->Branch(
"pwh0minus_hadronic_VAJHU_old_NEW", &pwh0minus_hadronic_VAJHU_old_NEW);
8173 newtree->Branch(
"pzh0minus_hadronic_VAJHU_old_NEW", &pzh0minus_hadronic_VAJHU_old_NEW);
8174 newtree->Branch(
"pwh_hadronic_VAJHU_old_NEW_selfD", &pwh_hadronic_VAJHU_old_NEW_selfD);
8175 newtree->Branch(
"pzh_hadronic_VAJHU_old_NEW_selfD", &pzh_hadronic_VAJHU_old_NEW_selfD);
8176 newtree->Branch(
"pwh0minus_hadronic_VAJHU_old_NEW_selfD", &pwh0minus_hadronic_VAJHU_old_NEW_selfD);
8177 newtree->Branch(
"pzh0minus_hadronic_VAJHU_old_NEW_selfD", &pzh0minus_hadronic_VAJHU_old_NEW_selfD);
8178 newtree->Branch(
"ZZMass", &mzz);
8180 float GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
8186 int idOrdered[4] ={
static_cast<int>(GenLep1Id),
static_cast<int>(GenLep2Id),
static_cast<int>(GenLep3Id),
static_cast<int>(GenLep4Id) };
8188 int nEntries = tree->GetEntries();
8190 for (
int ev = 0;
ev < nEntries;
ev++){
8191 if (recorded>=(verbosity>=
TVar::DEBUG ? 1 : 1000))
break;
8194 if (JetPt->size()>=2 && NJets30>=2){
8195 TLorentzVector jet1(0, 0, 1e-3, 1e-3), jet2(0, 0, 1e-3, 1e-3), higgs(0, 0, 0, 0);
8196 jet1.SetPtEtaPhiM(JetPt->at(0), JetEta->at(0), JetPhi->at(0), JetMass->at(0));
8197 jet2.SetPtEtaPhiM(JetPt->at(1), JetEta->at(1), JetPhi->at(1), JetMass->at(1));
8198 higgs.SetPtEtaPhiM(ZZPt, ZZEta, ZZPhi, mzz);
8199 TVector3 boostH = higgs.BoostVector();
8201 TLorentzVector pDaughters[4];
8202 std::vector<TLorentzVector> daus =
mela.calculate4Momentum(mzz, m1, m2, acos(hs), acos(h1), acos(h2), phi1, phi);
8203 for (
int ip=0; ip<min(4, (
int)daus.size()); ip++){ pDaughters[ip]=daus.at(ip); pDaughters[ip].Boost(boostH); }
8211 for (
unsigned int idau=0; idau<4; idau++) daughters_ZZ.push_back(
SimpleParticle_t(idOrdered[idau], pDaughters[idau]));
8215 cout <<
"Mela candidates summary:" << endl;
8216 for (
int ic=0; ic<
mela.getNCandidates(); ic++){
8217 cout <<
"Candidate " << ic << endl;
8218 mela.setCurrentCandidateFromIndex(ic);
8225 mela.computeProdP_VH(pzh_leptonic_VAJHU_old_NEW,
false,
false);
8228 mela.computeProdP_VH(pwh_leptonic_VAJHU_old_NEW,
false,
false);
8231 mela.computeProdP_VH(pzh0minus_leptonic_VAJHU_old_NEW,
false,
false);
8234 mela.computeProdP_VH(pwh0minus_leptonic_VAJHU_old_NEW,
false,
false);
8239 mela.computeProdP_VH(pzh_leptonic_VAJHU_old_NEW_selfD,
false,
false);
8243 mela.computeProdP_VH(pwh_leptonic_VAJHU_old_NEW_selfD,
false,
false);
8248 mela.computeProdP_VH(pzh0minus_leptonic_VAJHU_old_NEW_selfD,
false,
false);
8252 mela.computeProdP_VH(pwh0minus_leptonic_VAJHU_old_NEW_selfD,
false,
false);
8255 mela.computeProdP_VH(pzh_hadronic_VAJHU_old_NEW,
false,
false);
8258 mela.computeProdP_VH(pwh_hadronic_VAJHU_old_NEW,
false,
false);
8261 mela.computeProdP_VH(pzh0minus_hadronic_VAJHU_old_NEW,
false,
false);
8264 mela.computeProdP_VH(pwh0minus_hadronic_VAJHU_old_NEW,
false,
false);
8269 mela.computeProdP_VH(pzh_hadronic_VAJHU_old_NEW_selfD,
false,
false);
8273 mela.computeProdP_VH(pwh_hadronic_VAJHU_old_NEW_selfD,
false,
false);
8278 mela.computeProdP_VH(pzh0minus_hadronic_VAJHU_old_NEW_selfD,
false,
false);
8282 mela.computeProdP_VH(pwh0minus_hadronic_VAJHU_old_NEW_selfD,
false,
false);
8286 mela.resetInputEvent();
8291 foutput->WriteTObject(newtree);
8295 mela.setVerbosity(bkpverbosity);
8301 float wPOLE=4.07e-3;
8302 TString TREE_NAME =
"SelectedTree";
8306 melaptr.reset(
new Mela(erg_tev, mPOLE, verbosity));
8310 mela.setVerbosity(verbosity);
8312 TString cinput_main =
"/scratch0/hep/ianderso/CJLST/140519/PRODFSR_8TeV";
8313 TFile* finput =
new TFile(Form(
"%s/%s/HZZ4lTree_ZZTo%s.root", cinput_main.Data(),
"2mu2e",
"2e2mu"),
"read");
8314 TFile* foutput =
new TFile(Form(
"HZZ4lTree_ZZTo%s_ttHbbHMELATest.root",
"2e2mu"),
"recreate");
8316 float pbbh_VAJHU_old_NEW;
8317 float ptth_VAJHU_old_NEW;
8318 float pbbh_VAJHU_old_NEW_selfD;
8319 float ptth_VAJHU_old_NEW_selfD;
8320 float pbbh0minus_VAJHU_old_NEW;
8321 float ptth0minus_VAJHU_old_NEW;
8322 float pbbh0minus_VAJHU_old_NEW_selfD;
8323 float ptth0minus_VAJHU_old_NEW_selfD;
8326 std::vector<double>* JetPt=0;
8327 std::vector<double>* JetEta=0;
8328 std::vector<double>* JetPhi=0;
8329 std::vector<double>* JetMass=0;
8330 std::vector<double> myJetPt;
8331 std::vector<double> myJetEta;
8332 std::vector<double> myJetPhi;
8333 std::vector<double> myJetMass;
8337 TBranch* bJetMass=0;
8340 float m1 = 91.471450;
8341 float m2 = 12.139782;
8342 float h1 = 0.2682896;
8343 float h2 = 0.1679779;
8344 float phi = 1.5969792;
8345 float hs = -0.727181;
8346 float phi1 = 1.8828257;
8347 float ZZPt, ZZPhi, ZZEta;
8349 TTree* tree = (TTree*)finput->Get(TREE_NAME);
8350 tree->SetBranchAddress(
"NJets30", &NJets30);
8351 tree->SetBranchAddress(
"JetPt", &JetPt, &bJetPt);
8352 tree->SetBranchAddress(
"JetEta", &JetEta, &bJetEta);
8353 tree->SetBranchAddress(
"JetPhi", &JetPhi, &bJetPhi);
8354 tree->SetBranchAddress(
"JetMass", &JetMass, &bJetMass);
8355 tree->SetBranchAddress(
"ZZMass", &mzz);
8356 tree->SetBranchAddress(
"ZZPt", &ZZPt);
8357 tree->SetBranchAddress(
"ZZEta", &ZZEta);
8358 tree->SetBranchAddress(
"ZZPhi", &ZZPhi);
8359 tree->SetBranchAddress(
"Z1Mass", &m1);
8360 tree->SetBranchAddress(
"Z2Mass", &m2);
8361 tree->SetBranchAddress(
"helcosthetaZ1", &h1);
8362 tree->SetBranchAddress(
"helcosthetaZ2", &h2);
8363 tree->SetBranchAddress(
"helphi", &phi);
8364 tree->SetBranchAddress(
"costhetastar", &hs);
8365 tree->SetBranchAddress(
"phistarZ1", &phi1);
8367 TTree* newtree =
new TTree(
"TestTree",
"");
8368 newtree->Branch(
"pbbh_VAJHU_old_NEW", &pbbh_VAJHU_old_NEW);
8369 newtree->Branch(
"ptth_VAJHU_old_NEW", &ptth_VAJHU_old_NEW);
8370 newtree->Branch(
"pbbh0minus_VAJHU_old_NEW", &pbbh0minus_VAJHU_old_NEW);
8371 newtree->Branch(
"ptth0minus_VAJHU_old_NEW", &ptth0minus_VAJHU_old_NEW);
8372 newtree->Branch(
"pbbh_VAJHU_old_NEW_selfD", &pbbh_VAJHU_old_NEW_selfD);
8373 newtree->Branch(
"ptth_VAJHU_old_NEW_selfD", &ptth_VAJHU_old_NEW_selfD);
8374 newtree->Branch(
"pbbh0minus_VAJHU_old_NEW_selfD", &pbbh0minus_VAJHU_old_NEW_selfD);
8375 newtree->Branch(
"ptth0minus_VAJHU_old_NEW_selfD", &ptth0minus_VAJHU_old_NEW_selfD);
8376 newtree->Branch(
"ZZMass", &mzz);
8378 float GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
8384 int idOrdered[4] ={
static_cast<int>(GenLep1Id),
static_cast<int>(GenLep2Id),
static_cast<int>(GenLep3Id),
static_cast<int>(GenLep4Id) };
8386 int nEntries = tree->GetEntries();
8388 for (
int ev = 0;
ev < nEntries;
ev++){
8389 if (recorded>=1000)
break;
8392 if (JetPt->size()>=2 && NJets30>=2){
8393 TLorentzVector jet1(0, 0, 1e-3, 1e-3), jet2(0, 0, 1e-3, 1e-3), higgs(0, 0, 0, 0);
8394 jet1.SetPtEtaPhiM(JetPt->at(0), JetEta->at(0), JetPhi->at(0), JetMass->at(0));
8395 jet2.SetPtEtaPhiM(JetPt->at(1), JetEta->at(1), JetPhi->at(1), JetMass->at(1));
8396 higgs.SetPtEtaPhiM(ZZPt, ZZEta, ZZPhi, mzz);
8397 TVector3 boostH = higgs.BoostVector();
8403 TLorentzVector pDaughters[4];
8404 std::vector<TLorentzVector> daus =
mela.calculate4Momentum(mzz, m1, m2, acos(hs), acos(h1), acos(h2), phi1, phi);
8405 for (
int ip=0; ip<min(4, (
int)daus.size()); ip++){ pDaughters[ip]=daus.at(ip); pDaughters[ip].Boost(boostH); }
8413 for (
unsigned int idau=0; idau<2; idau++) topDaughters.push_back(
SimpleParticle_t(0, pDaughters[idau]));
8414 mela.appendTopCandidate(&topDaughters);
8417 for (
unsigned int idau=2; idau<4; idau++) antitopDaughters.push_back(
SimpleParticle_t(0, pDaughters[idau]));
8418 mela.appendTopCandidate(&antitopDaughters);
8421 cout <<
"Mela candidates summary:" << endl;
8422 for (
int ic=0; ic<
mela.getNCandidates(); ic++){
8423 cout <<
"Candidate " << ic << endl;
8424 mela.setCurrentCandidateFromIndex(ic);
8431 mela.computeProdP_ttH(ptth_VAJHU_old_NEW, 2, 0,
false);
8434 mela.computeProdP_ttH(pbbh_VAJHU_old_NEW, 2, 0,
false);
8437 mela.computeProdP_ttH(ptth0minus_VAJHU_old_NEW, 2, 0,
false);
8440 mela.computeProdP_ttH(pbbh0minus_VAJHU_old_NEW, 2, 0,
false);
8445 mela.computeProdP_ttH(ptth_VAJHU_old_NEW_selfD, 2, 0,
false);
8449 mela.computeProdP_ttH(pbbh_VAJHU_old_NEW_selfD, 2, 0,
false);
8453 mela.computeProdP_ttH(ptth0minus_VAJHU_old_NEW_selfD, 2, 0,
false);
8457 mela.computeProdP_ttH(pbbh0minus_VAJHU_old_NEW_selfD, 2, 0,
false);
8461 mela.resetInputEvent();
8466 foutput->WriteTObject(newtree);
8470 mela.setVerbosity(bkpverbosity);
8477 float wPOLE=4.07e-3;
8478 TString TREE_NAME =
"SelectedTree";
8482 melaptr.reset(
new Mela(erg_tev, mPOLE, verbosity));
8486 mela.setVerbosity(verbosity);
8488 mela.resetMCFM_EWKParameters(1.16639E-05, 1./128., 80.399, 91.1876, 0.23119);
8490 TString cinput_main =
"/scratch0/hep/ianderso/CJLST/140519/PRODFSR_8TeV";
8491 TFile* finput =
new TFile(Form(
"%s/%s/HZZ4lTree_powheg15jhuGenV3-0PMH125.6.root", cinput_main.Data(),
"2mu2e"),
"read");
8492 TFile* foutput =
new TFile(Form(
"HZZ4lTree_powheg15jhuGenV3-0PMH125.6_%s_ZZWWComparison.root",
"2l2nu"),
"recreate");
8494 float p0plus_VAJHU_NEW;
8495 float p0hplus_VAJHU_NEW;
8496 float p0minus_VAJHU_NEW;
8497 float p0_g1prime2_VAJHU_NEW;
8498 float pg1g1prime2_VAJHU_NEW;
8499 float pg1g1prime2_pi2_VAJHU_NEW;
8500 float pg1g2_VAJHU_NEW;
8501 float pg1g2_pi2_VAJHU_NEW;
8502 float pg1g4_VAJHU_NEW;
8503 float pg1g4_pi2_VAJHU_NEW;
8505 float p0hplus_VAMCFM_NEW;
8506 float p0minus_VAMCFM_NEW;
8507 float p0_g1prime2_VAMCFM_NEW;
8508 float pg1g1prime2_VAMCFM_NEW;
8509 float pg1g1prime2_pi2_VAMCFM_NEW;
8510 float pg1g2_VAMCFM_NEW;
8511 float pg1g2_pi2_VAMCFM_NEW;
8512 float pg1g4_VAMCFM_NEW;
8513 float pg1g4_pi2_VAMCFM_NEW;
8515 float p0hplus_VAMCFM_ratio_NEW;
8516 float p0minus_VAMCFM_ratio_NEW;
8517 float p0_g1prime2_VAMCFM_ratio_NEW;
8518 float pg1g1prime2_VAMCFM_ratio_NEW;
8519 float pg1g1prime2_pi2_VAMCFM_ratio_NEW;
8520 float pg1g2_VAMCFM_ratio_NEW;
8521 float pg1g2_pi2_VAMCFM_ratio_NEW;
8522 float pg1g4_VAMCFM_ratio_NEW;
8523 float pg1g4_pi2_VAMCFM_ratio_NEW;
8525 float p0hplus_VAJHU_ratio_NEW;
8526 float p0minus_VAJHU_ratio_NEW;
8527 float p0_g1prime2_VAJHU_ratio_NEW;
8528 float pg1g1prime2_VAJHU_ratio_NEW;
8529 float pg1g1prime2_pi2_VAJHU_ratio_NEW;
8530 float pg1g2_VAJHU_ratio_NEW;
8531 float pg1g2_pi2_VAJHU_ratio_NEW;
8532 float pg1g4_VAJHU_ratio_NEW;
8533 float pg1g4_pi2_VAJHU_ratio_NEW;
8535 float p0plus_VAMCFM_NEW, ggzz_p0plus_VAMCFM_NEW, p0plus_VAMCFM_NEW_BSMOn, ggzz_p0plus_VAMCFM_NEW_BSMOn;
8536 float bkg_VAMCFM_NEW, ggzz_VAMCFM_NEW;
8538 float p0plus_WW_VAJHU_NEW;
8539 float p0hplus_WW_VAJHU_NEW;
8540 float p0minus_WW_VAJHU_NEW;
8541 float p0_g1prime2_WW_VAJHU_NEW;
8542 float pg1g1prime2_WW_VAJHU_NEW;
8543 float pg1g1prime2_pi2_WW_VAJHU_NEW;
8544 float pg1g2_WW_VAJHU_NEW;
8545 float pg1g2_pi2_WW_VAJHU_NEW;
8546 float pg1g4_WW_VAJHU_NEW;
8547 float pg1g4_pi2_WW_VAJHU_NEW;
8549 float p0hplus_WW_VAMCFM_NEW;
8550 float p0minus_WW_VAMCFM_NEW;
8551 float p0_g1prime2_WW_VAMCFM_NEW;
8552 float pg1g1prime2_WW_VAMCFM_NEW;
8553 float pg1g1prime2_pi2_WW_VAMCFM_NEW;
8554 float pg1g2_WW_VAMCFM_NEW;
8555 float pg1g2_pi2_WW_VAMCFM_NEW;
8556 float pg1g4_WW_VAMCFM_NEW;
8557 float pg1g4_pi2_WW_VAMCFM_NEW;
8559 float p0hplus_WW_VAMCFM_ratio_NEW;
8560 float p0minus_WW_VAMCFM_ratio_NEW;
8561 float p0_g1prime2_WW_VAMCFM_ratio_NEW;
8562 float pg1g1prime2_WW_VAMCFM_ratio_NEW;
8563 float pg1g1prime2_pi2_WW_VAMCFM_ratio_NEW;
8564 float pg1g2_WW_VAMCFM_ratio_NEW;
8565 float pg1g2_pi2_WW_VAMCFM_ratio_NEW;
8566 float pg1g4_WW_VAMCFM_ratio_NEW;
8567 float pg1g4_pi2_WW_VAMCFM_ratio_NEW;
8569 float p0hplus_WW_VAJHU_ratio_NEW;
8570 float p0minus_WW_VAJHU_ratio_NEW;
8571 float p0_g1prime2_WW_VAJHU_ratio_NEW;
8572 float pg1g1prime2_WW_VAJHU_ratio_NEW;
8573 float pg1g1prime2_pi2_WW_VAJHU_ratio_NEW;
8574 float pg1g2_WW_VAJHU_ratio_NEW;
8575 float pg1g2_pi2_WW_VAJHU_ratio_NEW;
8576 float pg1g4_WW_VAJHU_ratio_NEW;
8577 float pg1g4_pi2_WW_VAJHU_ratio_NEW;
8579 float p0plus_WW_VAMCFM_NEW, ggzz_p0plus_WW_VAMCFM_NEW, p0plus_WW_VAMCFM_NEW_BSMOn, ggzz_p0plus_WW_VAMCFM_NEW_BSMOn;
8580 float bkg_WW_VAMCFM_NEW, ggzz_WW_VAMCFM_NEW;
8583 float m1 = 91.471450;
8584 float m2 = 12.139782;
8585 float h1 = 0.2682896;
8586 float h2 = 0.1679779;
8587 float phi = 1.5969792;
8588 float hs = -0.727181;
8589 float phi1 = 1.8828257;
8591 TTree* tree = (TTree*)finput->Get(TREE_NAME);
8592 tree->SetBranchAddress(
"ZZMass", &mzz);
8593 tree->SetBranchAddress(
"Z1Mass", &m1);
8594 tree->SetBranchAddress(
"Z2Mass", &m2);
8595 tree->SetBranchAddress(
"helcosthetaZ1", &h1);
8596 tree->SetBranchAddress(
"helcosthetaZ2", &h2);
8597 tree->SetBranchAddress(
"helphi", &phi);
8598 tree->SetBranchAddress(
"costhetastar", &hs);
8599 tree->SetBranchAddress(
"phistarZ1", &phi1);
8601 TTree* newtree =
new TTree(
"TestTree",
"");
8602 newtree->Branch(
"ZZMass", &mzz);
8603 newtree->Branch(
"Z1Mass", &m1);
8604 newtree->Branch(
"Z2Mass", &m2);
8605 newtree->Branch(
"helcosthetaZ1", &h1);
8606 newtree->Branch(
"helcosthetaZ2", &h2);
8607 newtree->Branch(
"helphi", &phi);
8608 newtree->Branch(
"costhetastar", &hs);
8609 newtree->Branch(
"phistarZ1", &phi1);
8611 newtree->Branch(
"p0plus_VAJHU_NEW", &p0plus_VAJHU_NEW);
8612 newtree->Branch(
"p0hplus_VAJHU_NEW", &p0hplus_VAJHU_NEW);
8613 newtree->Branch(
"p0minus_VAJHU_NEW", &p0minus_VAJHU_NEW);
8614 newtree->Branch(
"p0_g1prime2_VAJHU_NEW", &p0_g1prime2_VAJHU_NEW);
8615 newtree->Branch(
"pg1g2_VAJHU_NEW", &pg1g2_VAJHU_NEW);
8616 newtree->Branch(
"pg1g2_pi2_VAJHU_NEW", &pg1g2_pi2_VAJHU_NEW);
8617 newtree->Branch(
"pg1g4_VAJHU_NEW", &pg1g4_VAJHU_NEW);
8618 newtree->Branch(
"pg1g4_pi2_VAJHU_NEW", &pg1g4_pi2_VAJHU_NEW);
8619 newtree->Branch(
"pg1g1prime2_VAJHU_NEW", &pg1g1prime2_VAJHU_NEW);
8620 newtree->Branch(
"pg1g1prime2_pi2_VAJHU_NEW", &pg1g1prime2_pi2_VAJHU_NEW);
8622 newtree->Branch(
"bkg_VAMCFM_NEW", &bkg_VAMCFM_NEW);
8623 newtree->Branch(
"ggzz_VAMCFM_NEW", &ggzz_VAMCFM_NEW);
8624 newtree->Branch(
"p0plus_VAMCFM_NEW", &p0plus_VAMCFM_NEW);
8625 newtree->Branch(
"ggzz_p0plus_VAMCFM_NEW", &ggzz_p0plus_VAMCFM_NEW);
8626 newtree->Branch(
"p0plus_VAMCFM_NEW_BSMOn", &p0plus_VAMCFM_NEW_BSMOn);
8627 newtree->Branch(
"ggzz_p0plus_VAMCFM_NEW_BSMOn", &ggzz_p0plus_VAMCFM_NEW_BSMOn);
8629 newtree->Branch(
"p0hplus_VAMCFM_NEW", &p0hplus_VAMCFM_NEW);
8630 newtree->Branch(
"p0minus_VAMCFM_NEW", &p0minus_VAMCFM_NEW);
8631 newtree->Branch(
"p0_g1prime2_VAMCFM_NEW", &p0_g1prime2_VAMCFM_NEW);
8632 newtree->Branch(
"pg1g2_VAMCFM_NEW", &pg1g2_VAMCFM_NEW);
8633 newtree->Branch(
"pg1g2_pi2_VAMCFM_NEW", &pg1g2_pi2_VAMCFM_NEW);
8634 newtree->Branch(
"pg1g4_VAMCFM_NEW", &pg1g4_VAMCFM_NEW);
8635 newtree->Branch(
"pg1g4_pi2_VAMCFM_NEW", &pg1g4_pi2_VAMCFM_NEW);
8636 newtree->Branch(
"pg1g1prime2_VAMCFM_NEW", &pg1g1prime2_VAMCFM_NEW);
8637 newtree->Branch(
"pg1g1prime2_pi2_VAMCFM_NEW", &pg1g1prime2_pi2_VAMCFM_NEW);
8639 newtree->Branch(
"p0hplus_VAMCFM_ratio_NEW", &p0hplus_VAMCFM_ratio_NEW);
8640 newtree->Branch(
"p0minus_VAMCFM_ratio_NEW", &p0minus_VAMCFM_ratio_NEW);
8641 newtree->Branch(
"p0_g1prime2_VAMCFM_ratio_NEW", &p0_g1prime2_VAMCFM_ratio_NEW);
8642 newtree->Branch(
"pg1g2_VAMCFM_ratio_NEW", &pg1g2_VAMCFM_ratio_NEW);
8643 newtree->Branch(
"pg1g2_pi2_VAMCFM_ratio_NEW", &pg1g2_pi2_VAMCFM_ratio_NEW);
8644 newtree->Branch(
"pg1g4_VAMCFM_ratio_NEW", &pg1g4_VAMCFM_ratio_NEW);
8645 newtree->Branch(
"pg1g4_pi2_VAMCFM_ratio_NEW", &pg1g4_pi2_VAMCFM_ratio_NEW);
8646 newtree->Branch(
"pg1g1prime2_VAMCFM_ratio_NEW", &pg1g1prime2_VAMCFM_ratio_NEW);
8647 newtree->Branch(
"pg1g1prime2_pi2_VAMCFM_ratio_NEW", &pg1g1prime2_pi2_VAMCFM_ratio_NEW);
8649 newtree->Branch(
"p0hplus_VAJHU_ratio_NEW", &p0hplus_VAJHU_ratio_NEW);
8650 newtree->Branch(
"p0minus_VAJHU_ratio_NEW", &p0minus_VAJHU_ratio_NEW);
8651 newtree->Branch(
"p0_g1prime2_VAJHU_ratio_NEW", &p0_g1prime2_VAJHU_ratio_NEW);
8652 newtree->Branch(
"pg1g2_VAJHU_ratio_NEW", &pg1g2_VAJHU_ratio_NEW);
8653 newtree->Branch(
"pg1g2_pi2_VAJHU_ratio_NEW", &pg1g2_pi2_VAJHU_ratio_NEW);
8654 newtree->Branch(
"pg1g4_VAJHU_ratio_NEW", &pg1g4_VAJHU_ratio_NEW);
8655 newtree->Branch(
"pg1g4_pi2_VAJHU_ratio_NEW", &pg1g4_pi2_VAJHU_ratio_NEW);
8656 newtree->Branch(
"pg1g1prime2_VAJHU_ratio_NEW", &pg1g1prime2_VAJHU_ratio_NEW);
8657 newtree->Branch(
"pg1g1prime2_pi2_VAJHU_ratio_NEW", &pg1g1prime2_pi2_VAJHU_ratio_NEW);
8659 newtree->Branch(
"p0plus_WW_VAJHU_NEW", &p0plus_WW_VAJHU_NEW);
8660 newtree->Branch(
"p0hplus_WW_VAJHU_NEW", &p0hplus_WW_VAJHU_NEW);
8661 newtree->Branch(
"p0minus_WW_VAJHU_NEW", &p0minus_WW_VAJHU_NEW);
8662 newtree->Branch(
"p0_g1prime2_WW_VAJHU_NEW", &p0_g1prime2_WW_VAJHU_NEW);
8663 newtree->Branch(
"pg1g2_WW_VAJHU_NEW", &pg1g2_WW_VAJHU_NEW);
8664 newtree->Branch(
"pg1g2_pi2_WW_VAJHU_NEW", &pg1g2_pi2_WW_VAJHU_NEW);
8665 newtree->Branch(
"pg1g4_WW_VAJHU_NEW", &pg1g4_WW_VAJHU_NEW);
8666 newtree->Branch(
"pg1g4_pi2_WW_VAJHU_NEW", &pg1g4_pi2_WW_VAJHU_NEW);
8667 newtree->Branch(
"pg1g1prime2_WW_VAJHU_NEW", &pg1g1prime2_WW_VAJHU_NEW);
8668 newtree->Branch(
"pg1g1prime2_pi2_WW_VAJHU_NEW", &pg1g1prime2_pi2_WW_VAJHU_NEW);
8670 newtree->Branch(
"bkg_WW_VAMCFM_NEW", &bkg_WW_VAMCFM_NEW);
8671 newtree->Branch(
"ggzz_WW_VAMCFM_NEW", &ggzz_WW_VAMCFM_NEW);
8672 newtree->Branch(
"p0plus_WW_VAMCFM_NEW", &p0plus_WW_VAMCFM_NEW);
8673 newtree->Branch(
"ggzz_p0plus_WW_VAMCFM_NEW", &ggzz_p0plus_WW_VAMCFM_NEW);
8674 newtree->Branch(
"p0plus_WW_VAMCFM_NEW_BSMOn", &p0plus_WW_VAMCFM_NEW_BSMOn);
8675 newtree->Branch(
"ggzz_p0plus_WW_VAMCFM_NEW_BSMOn", &ggzz_p0plus_WW_VAMCFM_NEW_BSMOn);
8677 newtree->Branch(
"p0hplus_WW_VAMCFM_NEW", &p0hplus_WW_VAMCFM_NEW);
8678 newtree->Branch(
"p0minus_WW_VAMCFM_NEW", &p0minus_WW_VAMCFM_NEW);
8679 newtree->Branch(
"p0_g1prime2_WW_VAMCFM_NEW", &p0_g1prime2_WW_VAMCFM_NEW);
8680 newtree->Branch(
"pg1g2_WW_VAMCFM_NEW", &pg1g2_WW_VAMCFM_NEW);
8681 newtree->Branch(
"pg1g2_pi2_WW_VAMCFM_NEW", &pg1g2_pi2_WW_VAMCFM_NEW);
8682 newtree->Branch(
"pg1g4_WW_VAMCFM_NEW", &pg1g4_WW_VAMCFM_NEW);
8683 newtree->Branch(
"pg1g4_pi2_WW_VAMCFM_NEW", &pg1g4_pi2_WW_VAMCFM_NEW);
8684 newtree->Branch(
"pg1g1prime2_WW_VAMCFM_NEW", &pg1g1prime2_WW_VAMCFM_NEW);
8685 newtree->Branch(
"pg1g1prime2_pi2_WW_VAMCFM_NEW", &pg1g1prime2_pi2_WW_VAMCFM_NEW);
8687 newtree->Branch(
"p0hplus_WW_VAMCFM_ratio_NEW", &p0hplus_WW_VAMCFM_ratio_NEW);
8688 newtree->Branch(
"p0minus_WW_VAMCFM_ratio_NEW", &p0minus_WW_VAMCFM_ratio_NEW);
8689 newtree->Branch(
"p0_g1prime2_WW_VAMCFM_ratio_NEW", &p0_g1prime2_WW_VAMCFM_ratio_NEW);
8690 newtree->Branch(
"pg1g2_WW_VAMCFM_ratio_NEW", &pg1g2_WW_VAMCFM_ratio_NEW);
8691 newtree->Branch(
"pg1g2_pi2_WW_VAMCFM_ratio_NEW", &pg1g2_pi2_WW_VAMCFM_ratio_NEW);
8692 newtree->Branch(
"pg1g4_WW_VAMCFM_ratio_NEW", &pg1g4_WW_VAMCFM_ratio_NEW);
8693 newtree->Branch(
"pg1g4_pi2_WW_VAMCFM_ratio_NEW", &pg1g4_pi2_WW_VAMCFM_ratio_NEW);
8694 newtree->Branch(
"pg1g1prime2_WW_VAMCFM_ratio_NEW", &pg1g1prime2_WW_VAMCFM_ratio_NEW);
8695 newtree->Branch(
"pg1g1prime2_pi2_WW_VAMCFM_ratio_NEW", &pg1g1prime2_pi2_WW_VAMCFM_ratio_NEW);
8697 newtree->Branch(
"p0hplus_WW_VAJHU_ratio_NEW", &p0hplus_WW_VAJHU_ratio_NEW);
8698 newtree->Branch(
"p0minus_WW_VAJHU_ratio_NEW", &p0minus_WW_VAJHU_ratio_NEW);
8699 newtree->Branch(
"p0_g1prime2_WW_VAJHU_ratio_NEW", &p0_g1prime2_WW_VAJHU_ratio_NEW);
8700 newtree->Branch(
"pg1g2_WW_VAJHU_ratio_NEW", &pg1g2_WW_VAJHU_ratio_NEW);
8701 newtree->Branch(
"pg1g2_pi2_WW_VAJHU_ratio_NEW", &pg1g2_pi2_WW_VAJHU_ratio_NEW);
8702 newtree->Branch(
"pg1g4_WW_VAJHU_ratio_NEW", &pg1g4_WW_VAJHU_ratio_NEW);
8703 newtree->Branch(
"pg1g4_pi2_WW_VAJHU_ratio_NEW", &pg1g4_pi2_WW_VAJHU_ratio_NEW);
8704 newtree->Branch(
"pg1g1prime2_WW_VAJHU_ratio_NEW", &pg1g1prime2_WW_VAJHU_ratio_NEW);
8705 newtree->Branch(
"pg1g1prime2_pi2_WW_VAJHU_ratio_NEW", &pg1g1prime2_pi2_WW_VAJHU_ratio_NEW);
8707 float GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
8713 for (
int ev = 0;
ev < min(1000, (
int)tree->GetEntries());
ev++){
8716 int idOrdered[4] ={
static_cast<int>(GenLep1Id),
static_cast<int>(GenLep2Id),
static_cast<int>(GenLep3Id),
static_cast<int>(GenLep4Id) };
8717 TLorentzVector pOrdered[4];
8718 std::vector<TLorentzVector> daus =
mela.calculate4Momentum(mzz, m1, m2, acos(hs), acos(h1), acos(h2), phi1, phi);
8719 for (
int ip=0; ip<min(4, (
int)daus.size()); ip++) pOrdered[ip]=daus.at(ip);
8727 cout <<
"Mela candidate summary:" << endl;
8728 for (
int ic=0; ic<
mela.getNCandidates(); ic++){
8729 cout <<
"Candidate " << ic << endl;
8730 mela.setCurrentCandidateFromIndex(ic);
8737 mela.setCurrentCandidateFromIndex(0);
8739 if (verbosity>=
TVar::DEBUG)
cout <<
"Computing bkg_VAMCFM_NEW" << endl;
8741 mela.computeP(bkg_VAMCFM_NEW,
false);
8743 if (verbosity>=
TVar::DEBUG)
cout <<
"Computing ggzz_VAMCFM_NEW" << endl;
8745 mela.computeP(ggzz_VAMCFM_NEW,
false);
8747 if (verbosity>=
TVar::DEBUG)
cout <<
"Computing p0plus_VAMCFM_NEW" << endl;
8749 mela.computeP(p0plus_VAMCFM_NEW,
false);
8751 if (verbosity>=
TVar::DEBUG)
cout <<
"Computing ggzz_p0plus_VAMCFM_NEW" << endl;
8753 mela.computeP(ggzz_p0plus_VAMCFM_NEW,
false);
8755 if (verbosity>=
TVar::DEBUG)
cout <<
"Computing p0plus_VAMCFM_NEW_BSMOn" << endl;
8758 mela.computeP(p0plus_VAMCFM_NEW_BSMOn,
false);
8760 if (verbosity>=
TVar::DEBUG)
cout <<
"Computing ggzz_p0plus_VAMCFM_NEW_BSMOn" << endl;
8763 mela.computeP(ggzz_p0plus_VAMCFM_NEW_BSMOn,
false);
8769 mela.computeP(p0plus_VAJHU_NEW,
false);
8773 mela.computeP(p0hplus_VAJHU_NEW,
false);
8777 mela.computeP(p0minus_VAJHU_NEW,
false);
8781 mela.computeP(p0_g1prime2_VAJHU_NEW,
false);
8786 mela.computeP(pg1g2_VAJHU_NEW,
false);
8787 pg1g2_VAJHU_NEW -= (p0plus_VAJHU_NEW + p0hplus_VAJHU_NEW);
8792 mela.computeP(pg1g2_pi2_VAJHU_NEW,
false);
8793 pg1g2_pi2_VAJHU_NEW -= (p0plus_VAJHU_NEW + p0hplus_VAJHU_NEW);
8798 mela.computeP(pg1g4_VAJHU_NEW,
false);
8799 pg1g4_VAJHU_NEW -= (p0plus_VAJHU_NEW + p0minus_VAJHU_NEW);
8804 mela.computeP(pg1g4_pi2_VAJHU_NEW,
false);
8805 pg1g4_pi2_VAJHU_NEW -= (p0plus_VAJHU_NEW + p0minus_VAJHU_NEW);
8810 mela.computeP(pg1g1prime2_VAJHU_NEW,
false);
8811 pg1g1prime2_VAJHU_NEW -= (p0plus_VAJHU_NEW + p0_g1prime2_VAJHU_NEW);
8816 mela.computeP(pg1g1prime2_pi2_VAJHU_NEW,
false);
8817 pg1g1prime2_pi2_VAJHU_NEW -= (p0plus_VAJHU_NEW + p0_g1prime2_VAJHU_NEW);
8823 mela.computeP(p0plus_VAMCFM_NEW,
false);
8826 mela.computeP(p0hplus_VAMCFM_NEW,
false);
8829 mela.computeP(p0minus_VAMCFM_NEW,
false);
8832 mela.computeP(p0_g1prime2_VAMCFM_NEW,
false);
8836 mela.computeP(pg1g2_VAMCFM_NEW,
false);
8837 pg1g2_VAMCFM_NEW -= (p0plus_VAMCFM_NEW + p0hplus_VAMCFM_NEW);
8841 mela.computeP(pg1g2_pi2_VAMCFM_NEW,
false);
8842 pg1g2_pi2_VAMCFM_NEW -= (p0plus_VAMCFM_NEW + p0hplus_VAMCFM_NEW);
8846 mela.computeP(pg1g4_VAMCFM_NEW,
false);
8847 pg1g4_VAMCFM_NEW -= (p0plus_VAMCFM_NEW + p0minus_VAMCFM_NEW);
8851 mela.computeP(pg1g4_pi2_VAMCFM_NEW,
false);
8852 pg1g4_pi2_VAMCFM_NEW -= (p0plus_VAMCFM_NEW + p0minus_VAMCFM_NEW);
8856 mela.computeP(pg1g1prime2_VAMCFM_NEW,
false);
8857 pg1g1prime2_VAMCFM_NEW -= (p0plus_VAMCFM_NEW + p0_g1prime2_VAMCFM_NEW);
8861 mela.computeP(pg1g1prime2_pi2_VAMCFM_NEW,
false);
8862 pg1g1prime2_pi2_VAMCFM_NEW -= (p0plus_VAMCFM_NEW + p0_g1prime2_VAMCFM_NEW);
8865 p0hplus_VAJHU_ratio_NEW = p0hplus_VAJHU_NEW/p0plus_VAJHU_NEW;
8866 p0minus_VAJHU_ratio_NEW = p0minus_VAJHU_NEW/p0plus_VAJHU_NEW;
8867 p0_g1prime2_VAJHU_ratio_NEW = p0_g1prime2_VAJHU_NEW/p0plus_VAJHU_NEW;
8868 pg1g2_VAJHU_ratio_NEW = pg1g2_VAJHU_NEW/p0plus_VAJHU_NEW;
8869 pg1g4_VAJHU_ratio_NEW = pg1g4_VAJHU_NEW/p0plus_VAJHU_NEW;
8870 pg1g1prime2_VAJHU_ratio_NEW = pg1g1prime2_VAJHU_NEW/p0plus_VAJHU_NEW;
8871 pg1g2_pi2_VAJHU_ratio_NEW = pg1g2_pi2_VAJHU_NEW/p0plus_VAJHU_NEW;
8872 pg1g4_pi2_VAJHU_ratio_NEW = pg1g4_pi2_VAJHU_NEW/p0plus_VAJHU_NEW;
8873 pg1g1prime2_pi2_VAJHU_ratio_NEW = pg1g1prime2_pi2_VAJHU_NEW/p0plus_VAJHU_NEW;
8875 p0hplus_VAMCFM_ratio_NEW = p0hplus_VAMCFM_NEW/p0plus_VAMCFM_NEW;
8876 p0minus_VAMCFM_ratio_NEW = p0minus_VAMCFM_NEW/p0plus_VAMCFM_NEW;
8877 p0_g1prime2_VAMCFM_ratio_NEW = p0_g1prime2_VAMCFM_NEW/p0plus_VAMCFM_NEW;
8878 pg1g2_VAMCFM_ratio_NEW = pg1g2_VAMCFM_NEW/p0plus_VAMCFM_NEW;
8879 pg1g4_VAMCFM_ratio_NEW = pg1g4_VAMCFM_NEW/p0plus_VAMCFM_NEW;
8880 pg1g1prime2_VAMCFM_ratio_NEW = pg1g1prime2_VAMCFM_NEW/p0plus_VAMCFM_NEW;
8881 pg1g2_pi2_VAMCFM_ratio_NEW = pg1g2_pi2_VAMCFM_NEW/p0plus_VAMCFM_NEW;
8882 pg1g4_pi2_VAMCFM_ratio_NEW = pg1g4_pi2_VAMCFM_NEW/p0plus_VAMCFM_NEW;
8883 pg1g1prime2_pi2_VAMCFM_ratio_NEW = pg1g1prime2_pi2_VAMCFM_NEW/p0plus_VAMCFM_NEW;
8888 mela.setCurrentCandidateFromIndex(1);
8890 if (verbosity>=
TVar::DEBUG)
cout <<
"Computing bkg_WW_VAMCFM_NEW" << endl;
8892 mela.computeP(bkg_WW_VAMCFM_NEW,
false);
8894 if (verbosity>=
TVar::DEBUG)
cout <<
"Computing ggzz_WW_VAMCFM_NEW" << endl;
8896 mela.computeP(ggzz_WW_VAMCFM_NEW,
false);
8898 if (verbosity>=
TVar::DEBUG)
cout <<
"Computing p0plus_WW_VAMCFM_NEW" << endl;
8900 mela.computeP(p0plus_WW_VAMCFM_NEW,
false);
8902 if (verbosity>=
TVar::DEBUG)
cout <<
"Computing ggzz_p0plus_WW_VAMCFM_NEW" << endl;
8904 mela.computeP(ggzz_p0plus_WW_VAMCFM_NEW,
false);
8906 if (verbosity>=
TVar::DEBUG)
cout <<
"Computing p0plus_WW_VAMCFM_NEW_BSMOn" << endl;
8909 mela.computeP(p0plus_WW_VAMCFM_NEW_BSMOn,
false);
8911 if (verbosity>=
TVar::DEBUG)
cout <<
"Computing ggzz_p0plus_WW_VAMCFM_NEW_BSMOn" << endl;
8914 mela.computeP(ggzz_p0plus_WW_VAMCFM_NEW_BSMOn,
false);
8920 mela.computeP(p0plus_WW_VAJHU_NEW,
false);
8924 mela.computeP(p0hplus_WW_VAJHU_NEW,
false);
8928 mela.computeP(p0minus_WW_VAJHU_NEW,
false);
8932 mela.computeP(p0_g1prime2_WW_VAJHU_NEW,
false);
8937 mela.computeP(pg1g2_WW_VAJHU_NEW,
false);
8938 pg1g2_WW_VAJHU_NEW -= (p0plus_WW_VAJHU_NEW + p0hplus_WW_VAJHU_NEW);
8943 mela.computeP(pg1g2_pi2_WW_VAJHU_NEW,
false);
8944 pg1g2_pi2_WW_VAJHU_NEW -= (p0plus_WW_VAJHU_NEW + p0hplus_WW_VAJHU_NEW);
8949 mela.computeP(pg1g4_WW_VAJHU_NEW,
false);
8950 pg1g4_WW_VAJHU_NEW -= (p0plus_WW_VAJHU_NEW + p0minus_WW_VAJHU_NEW);
8955 mela.computeP(pg1g4_pi2_WW_VAJHU_NEW,
false);
8956 pg1g4_pi2_WW_VAJHU_NEW -= (p0plus_WW_VAJHU_NEW + p0minus_WW_VAJHU_NEW);
8961 mela.computeP(pg1g1prime2_WW_VAJHU_NEW,
false);
8962 pg1g1prime2_WW_VAJHU_NEW -= (p0plus_WW_VAJHU_NEW + p0_g1prime2_WW_VAJHU_NEW);
8967 mela.computeP(pg1g1prime2_pi2_WW_VAJHU_NEW,
false);
8968 pg1g1prime2_pi2_WW_VAJHU_NEW -= (p0plus_WW_VAJHU_NEW + p0_g1prime2_WW_VAJHU_NEW);
8974 mela.computeP(p0plus_WW_VAMCFM_NEW,
false);
8977 mela.computeP(p0hplus_WW_VAMCFM_NEW,
false);
8980 mela.computeP(p0minus_WW_VAMCFM_NEW,
false);
8983 mela.computeP(p0_g1prime2_WW_VAMCFM_NEW,
false);
8987 mela.computeP(pg1g2_WW_VAMCFM_NEW,
false);
8988 pg1g2_WW_VAMCFM_NEW -= (p0plus_WW_VAMCFM_NEW + p0hplus_WW_VAMCFM_NEW);
8992 mela.computeP(pg1g2_pi2_WW_VAMCFM_NEW,
false);
8993 pg1g2_pi2_WW_VAMCFM_NEW -= (p0plus_WW_VAMCFM_NEW + p0hplus_WW_VAMCFM_NEW);
8997 mela.computeP(pg1g4_WW_VAMCFM_NEW,
false);
8998 pg1g4_WW_VAMCFM_NEW -= (p0plus_WW_VAMCFM_NEW + p0minus_WW_VAMCFM_NEW);
9002 mela.computeP(pg1g4_pi2_WW_VAMCFM_NEW,
false);
9003 pg1g4_pi2_WW_VAMCFM_NEW -= (p0plus_WW_VAMCFM_NEW + p0minus_WW_VAMCFM_NEW);
9007 mela.computeP(pg1g1prime2_WW_VAMCFM_NEW,
false);
9008 pg1g1prime2_WW_VAMCFM_NEW -= (p0plus_WW_VAMCFM_NEW + p0_g1prime2_WW_VAMCFM_NEW);
9012 mela.computeP(pg1g1prime2_pi2_WW_VAMCFM_NEW,
false);
9013 pg1g1prime2_pi2_WW_VAMCFM_NEW -= (p0plus_WW_VAMCFM_NEW + p0_g1prime2_WW_VAMCFM_NEW);
9016 p0hplus_WW_VAJHU_ratio_NEW = p0hplus_WW_VAJHU_NEW/p0plus_WW_VAJHU_NEW;
9017 p0minus_WW_VAJHU_ratio_NEW = p0minus_WW_VAJHU_NEW/p0plus_WW_VAJHU_NEW;
9018 p0_g1prime2_WW_VAJHU_ratio_NEW = p0_g1prime2_WW_VAJHU_NEW/p0plus_WW_VAJHU_NEW;
9019 pg1g2_WW_VAJHU_ratio_NEW = pg1g2_WW_VAJHU_NEW/p0plus_WW_VAJHU_NEW;
9020 pg1g4_WW_VAJHU_ratio_NEW = pg1g4_WW_VAJHU_NEW/p0plus_WW_VAJHU_NEW;
9021 pg1g1prime2_WW_VAJHU_ratio_NEW = pg1g1prime2_WW_VAJHU_NEW/p0plus_WW_VAJHU_NEW;
9022 pg1g2_pi2_WW_VAJHU_ratio_NEW = pg1g2_pi2_WW_VAJHU_NEW/p0plus_WW_VAJHU_NEW;
9023 pg1g4_pi2_WW_VAJHU_ratio_NEW = pg1g4_pi2_WW_VAJHU_NEW/p0plus_WW_VAJHU_NEW;
9024 pg1g1prime2_pi2_WW_VAJHU_ratio_NEW = pg1g1prime2_pi2_WW_VAJHU_NEW/p0plus_WW_VAJHU_NEW;
9026 p0hplus_WW_VAMCFM_ratio_NEW = p0hplus_WW_VAMCFM_NEW/p0plus_WW_VAMCFM_NEW;
9027 p0minus_WW_VAMCFM_ratio_NEW = p0minus_WW_VAMCFM_NEW/p0plus_WW_VAMCFM_NEW;
9028 p0_g1prime2_WW_VAMCFM_ratio_NEW = p0_g1prime2_WW_VAMCFM_NEW/p0plus_WW_VAMCFM_NEW;
9029 pg1g2_WW_VAMCFM_ratio_NEW = pg1g2_WW_VAMCFM_NEW/p0plus_WW_VAMCFM_NEW;
9030 pg1g4_WW_VAMCFM_ratio_NEW = pg1g4_WW_VAMCFM_NEW/p0plus_WW_VAMCFM_NEW;
9031 pg1g1prime2_WW_VAMCFM_ratio_NEW = pg1g1prime2_WW_VAMCFM_NEW/p0plus_WW_VAMCFM_NEW;
9032 pg1g2_pi2_WW_VAMCFM_ratio_NEW = pg1g2_pi2_WW_VAMCFM_NEW/p0plus_WW_VAMCFM_NEW;
9033 pg1g4_pi2_WW_VAMCFM_ratio_NEW = pg1g4_pi2_WW_VAMCFM_NEW/p0plus_WW_VAMCFM_NEW;
9034 pg1g1prime2_pi2_WW_VAMCFM_ratio_NEW = pg1g1prime2_pi2_WW_VAMCFM_NEW/p0plus_WW_VAMCFM_NEW;
9037 mela.resetInputEvent();
9042 foutput->WriteTObject(newtree);
9045 mela.setVerbosity(bkpverbosity);
9051 TString TREE_NAME =
"SelectedTree";
9055 melaptr.reset(
new Mela(erg_tev, mPOLE, verbosity));
9059 mela.setVerbosity(verbosity);
9062 TString cinput_main =
"/scratch0/hep/ianderso/CJLST/140519/PRODFSR_8TeV";
9066 finput =
new TFile(Form(
"%s/%s/HZZ4lTree_powheg15jhuGenV3-0PMH125.6.root", cinput_main.Data(), (flavor>=2 ?
"2mu2e" :
"4e")),
"read");
9067 foutput =
new TFile(Form(
"HZZ4lTree_powheg15jhuGenV3-0PMH125.6_%s_OriginalMEv2ValidationTestOnly.root", (flavor>=2 ?
"2mu2e" :
"4e")),
"recreate");
9070 finput =
new TFile(Form(
"%s/%s/HZZ4lTree_ZZTo%s.root", cinput_main.Data(), (flavor>=2 ?
"2mu2e" :
"4e"), (flavor==2 ?
"2e2mu" :
"4e")),
"read");
9071 foutput =
new TFile(Form(
"HZZ4lTree_ZZTo%s_OriginalMEv2ValidationTestOnly.root", (flavor>=2 ?
"2e2mu" :
"4e")),
"recreate");
9074 float p0plus_m4l, p0plus_m4l_ScaleUp, p0plus_m4l_ScaleDown, p0plus_m4l_ResUp, p0plus_m4l_ResDown;
9075 float bkg_m4l, bkg_m4l_ScaleUp, bkg_m4l_ScaleDown, bkg_m4l_ResUp, bkg_m4l_ResDown;
9077 float p0plus_m4l_NEW, p0plus_m4l_ScaleUp_NEW, p0plus_m4l_ScaleDown_NEW, p0plus_m4l_ResUp_NEW, p0plus_m4l_ResDown_NEW;
9078 float bkg_m4l_NEW, bkg_m4l_ScaleUp_NEW, bkg_m4l_ScaleDown_NEW, bkg_m4l_ResUp_NEW, bkg_m4l_ResDown_NEW;
9081 float m1 = 91.471450;
9082 float m2 = 12.139782;
9083 float h1 = 0.2682896;
9084 float h2 = 0.1679779;
9085 float phi = 1.5969792;
9086 float hs = -0.727181;
9087 float phi1 = 1.8828257;
9089 TTree* tree = (TTree*)finput->Get(TREE_NAME);
9090 tree->SetBranchAddress(
"ZZMass", &mzz);
9091 tree->SetBranchAddress(
"Z1Mass", &m1);
9092 tree->SetBranchAddress(
"Z2Mass", &m2);
9093 tree->SetBranchAddress(
"helcosthetaZ1", &h1);
9094 tree->SetBranchAddress(
"helcosthetaZ2", &h2);
9095 tree->SetBranchAddress(
"helphi", &phi);
9096 tree->SetBranchAddress(
"costhetastar", &hs);
9097 tree->SetBranchAddress(
"phistarZ1", &phi1);
9098 tree->SetBranchAddress(
"p0plus_m4l", &p0plus_m4l);
9099 tree->SetBranchAddress(
"p0plus_m4l_ScaleUp", &p0plus_m4l_ScaleUp);
9100 tree->SetBranchAddress(
"p0plus_m4l_ScaleDown", &p0plus_m4l_ScaleDown);
9101 tree->SetBranchAddress(
"p0plus_m4l_ResUp", &p0plus_m4l_ResUp);
9102 tree->SetBranchAddress(
"p0plus_m4l_ResDown", &p0plus_m4l_ResDown);
9103 tree->SetBranchAddress(
"bkg_m4l", &bkg_m4l);
9104 tree->SetBranchAddress(
"bkg_m4l_ScaleUp", &bkg_m4l_ScaleUp);
9105 tree->SetBranchAddress(
"bkg_m4l_ScaleDown", &bkg_m4l_ScaleDown);
9106 tree->SetBranchAddress(
"bkg_m4l_ResUp", &bkg_m4l_ResUp);
9107 tree->SetBranchAddress(
"bkg_m4l_ResDown", &bkg_m4l_ResDown);
9109 TTree* newtree =
new TTree(
"TestTree",
"");
9110 newtree->Branch(
"ZZMass", &mzz);
9111 newtree->Branch(
"Z1Mass", &m1);
9112 newtree->Branch(
"Z2Mass", &m2);
9113 newtree->Branch(
"helcosthetaZ1", &h1);
9114 newtree->Branch(
"helcosthetaZ2", &h2);
9115 newtree->Branch(
"helphi", &phi);
9116 newtree->Branch(
"costhetastar", &hs);
9117 newtree->Branch(
"phistarZ1", &phi1);
9119 newtree->Branch(
"p0plus_m4l", &p0plus_m4l);
9120 newtree->Branch(
"p0plus_m4l_ScaleUp", &p0plus_m4l_ScaleUp);
9121 newtree->Branch(
"p0plus_m4l_ScaleDown", &p0plus_m4l_ScaleDown);
9122 newtree->Branch(
"p0plus_m4l_ResUp", &p0plus_m4l_ResUp);
9123 newtree->Branch(
"p0plus_m4l_ResDown", &p0plus_m4l_ResDown);
9124 newtree->Branch(
"bkg_m4l", &bkg_m4l);
9125 newtree->Branch(
"bkg_m4l_ScaleUp", &bkg_m4l_ScaleUp);
9126 newtree->Branch(
"bkg_m4l_ScaleDown", &bkg_m4l_ScaleDown);
9127 newtree->Branch(
"bkg_m4l_ResUp", &bkg_m4l_ResUp);
9128 newtree->Branch(
"bkg_m4l_ResDown", &bkg_m4l_ResDown);
9130 newtree->Branch(
"p0plus_m4l_NEW", &p0plus_m4l_NEW);
9131 newtree->Branch(
"p0plus_m4l_ScaleUp_NEW", &p0plus_m4l_ScaleUp_NEW);
9132 newtree->Branch(
"p0plus_m4l_ScaleDown_NEW", &p0plus_m4l_ScaleDown_NEW);
9133 newtree->Branch(
"p0plus_m4l_ResUp_NEW", &p0plus_m4l_ResUp_NEW);
9134 newtree->Branch(
"p0plus_m4l_ResDown_NEW", &p0plus_m4l_ResDown_NEW);
9135 newtree->Branch(
"bkg_m4l_NEW", &bkg_m4l_NEW);
9136 newtree->Branch(
"bkg_m4l_ScaleUp_NEW", &bkg_m4l_ScaleUp_NEW);
9137 newtree->Branch(
"bkg_m4l_ScaleDown_NEW", &bkg_m4l_ScaleDown_NEW);
9138 newtree->Branch(
"bkg_m4l_ResUp_NEW", &bkg_m4l_ResUp_NEW);
9139 newtree->Branch(
"bkg_m4l_ResDown_NEW", &bkg_m4l_ResDown_NEW);
9141 float GenLep1Id=0, GenLep2Id=0, GenLep3Id=0, GenLep4Id=0;
9148 else if (flavor == 1){
9154 else if (flavor == 0){
9160 else if (flavor == 3){
9166 else if (flavor == 4){
9172 else if (flavor == 5){
9180 for (
int ev = 0;
ev < (verbosity>=
TVar::DEBUG ? 1 : (!useBkgSample ? min(1000, (
int)tree->GetEntries()) : (
int)tree->GetEntries()));
ev++){
9182 if (
ev%10000 == 0)
cout <<
"Processing event " <<
ev << endl;
9184 int idOrdered[4] ={
static_cast<int>(GenLep1Id),
static_cast<int>(GenLep2Id),
static_cast<int>(GenLep3Id),
static_cast<int>(GenLep4Id) };
9185 TLorentzVector pOrdered[4];
9186 std::vector<TLorentzVector> daus =
mela.calculate4Momentum(mzz, m1, m2, acos(hs), acos(h1), acos(h2), phi1, phi);
9187 for (
int ip=0; ip<min(4, (
int)daus.size()); ip++) pOrdered[ip]=daus.at(ip);
9189 for (
unsigned int idau=0; idau<4; idau++) daughters_ZZ.push_back(
SimpleParticle_t(idOrdered[idau], pOrdered[idau]));
9208 mela.resetInputEvent();
9212 foutput->WriteTObject(newtree);
9215 mela.setVerbosity(bkpverbosity);