5124 const double GeV=1./100.;
5125 double sum_msqjk = 0;
5133 double MatElsq[
nmsq][
nmsq]={ { 0 } };
5134 double MatElsq_tmp[
nmsq][
nmsq]={ { 0 } };
5137 if (matrixElement!=
TVar::JHUGen){
if (verbosity>=
TVar::ERROR)
MELAerr <<
"TUtil::HJJMatEl: Non-JHUGen MEs are not supported" << endl;
return sum_msqjk; }
5141 int nRequested_AssociatedJets=2;
5152 if (mela_event.
pAssociated.size()==0){
if (verbosity>=
TVar::ERROR)
MELAerr <<
"TUtil::HJJMatEl: Number of associated particles is 0!" << endl;
return sum_msqjk; }
5154 int MYIDUP_tmp[4]={ 0 };
5155 double p4[5][4]={ { 0 } };
5156 double pOneJet[4][4] ={ { 0 } };
5157 TLorentzVector MomStore[
mxpart];
5158 for (
int i = 0; i <
mxpart; i++) MomStore[i].SetXYZT(0, 0, 0, 0);
5164 for (
int ipar=0; ipar<2; ipar++){
5165 TLorentzVector* momTmp = &(mela_event.
pMothers.at(ipar).second);
5166 int* idtmp = &(mela_event.
pMothers.at(ipar).first);
5168 else MYIDUP_tmp[ipar] = 0;
5169 if (momTmp->T()>0.){
5170 p4[ipar][0] = momTmp->T()*GeV;
5171 p4[ipar][1] = momTmp->X()*GeV;
5172 p4[ipar][2] = momTmp->Y()*GeV;
5173 p4[ipar][3] = momTmp->Z()*GeV;
5174 MomStore[ipar] = (*momTmp);
5177 p4[ipar][0] = -momTmp->T()*GeV;
5178 p4[ipar][1] = -momTmp->X()*GeV;
5179 p4[ipar][2] = -momTmp->Y()*GeV;
5180 p4[ipar][3] = -momTmp->Z()*GeV;
5181 MomStore[ipar] = -(*momTmp);
5182 MYIDUP_tmp[ipar] = -MYIDUP_tmp[ipar];
5185 for (
unsigned int ipar=0; ipar<2; ipar++){
5187 TLorentzVector* momTmp = &(mela_event.
pAssociated.at(ipar).second);
5188 int* idtmp = &(mela_event.
pAssociated.at(ipar).first);
5190 else MYIDUP_tmp[ipar+2] = 0;
5191 p4[ipar+2][0] = momTmp->T()*GeV;
5192 p4[ipar+2][1] = momTmp->X()*GeV;
5193 p4[ipar+2][2] = momTmp->Y()*GeV;
5194 p4[ipar+2][3] = momTmp->Z()*GeV;
5195 MomStore[ipar+6] = (*momTmp);
5197 else MYIDUP_tmp[ipar+2] = -9000;
5199 for (
unsigned int ipar=0; ipar<mela_event.
pDaughters.size(); ipar++){
5200 TLorentzVector* momTmp = &(mela_event.
pDaughters.at(ipar).second);
5201 p4[4][0] += momTmp->T()*GeV;
5202 p4[4][1] += momTmp->X()*GeV;
5203 p4[4][2] += momTmp->Y()*GeV;
5204 p4[4][3] += momTmp->Z()*GeV;
5205 MomStore[5] = MomStore[5] + (*momTmp);
5208 for (
unsigned int i = 0; i < 4; i++){
5209 if (i<2){
for (
unsigned int j = 0; j < 4; j++) pOneJet[i][j] = p4[i][j]; }
5210 else if (i==2){
for (
unsigned int j = 0; j < 4; j++) pOneJet[i][j] = p4[4][j]; }
5211 else{
for (
unsigned int j = 0; j < 4; j++) pOneJet[i][j] = p4[2][j]; }
5214 for (
unsigned int i=0; i<5; i++)
MELAout <<
"p["<<i<<
"] (Px, Py, Pz, E, M):\t" << p4[i][1]/GeV <<
'\t' << p4[i][2]/GeV <<
'\t' << p4[i][3]/GeV <<
'\t' << p4[i][0]/GeV <<
'\t' << sqrt(fabs(pow(p4[i][0], 2)-pow(p4[i][1], 2)-pow(p4[i][2], 2)-pow(p4[i][3], 2)))/GeV << endl;
5215 MELAout <<
"One-jet momenta: " << endl;
5216 for (
unsigned int i=0; i<4; i++)
MELAout <<
"pOneJet["<<i<<
"] (Px, Py, Pz, E, M):\t" << pOneJet[i][1]/GeV <<
'\t' << pOneJet[i][2]/GeV <<
'\t' << pOneJet[i][3]/GeV <<
'\t' << pOneJet[i][0]/GeV <<
'\t' << sqrt(fabs(pow(pOneJet[i][0], 2)-pow(pOneJet[i][1], 2)-pow(pOneJet[i][2], 2)-pow(pOneJet[i][3], 2)))/GeV << endl;
5219 double defaultRenScale =
scale_.scale;
5220 double defaultFacScale =
facscale_.facscale;
5222 int defaultNflav =
nflav_.nflav;
5223 string defaultPdflabel =
pdlabel_.pdlabel;
5227 double alphasVal, alphasmzVal;
5237 <<
"TUtil::HJJMatEl: Set AlphaS:\n"
5238 <<
"\tBefore set, alphas scale: " << defaultRenScale <<
", PDF scale: " << defaultFacScale <<
'\n'
5240 <<
"\tAfter set, alphas scale: " <<
scale_.scale <<
", PDF scale: " <<
facscale_.facscale <<
", alphas(Qren): " << alphasVal <<
", alphas(MZ): " << alphasmzVal << endl;
5244 bool partonIsUnknown[4];
5245 for (
unsigned int ip=0; ip<4; ip++) partonIsUnknown[ip] = (MYIDUP_tmp[ip]==0);
5251 for (
int isel=-5; isel<=5; isel++){
5252 if (!partonIsUnknown[0] && !((
PDGHelpers::isAGluon(MYIDUP_tmp[0]) && isel==0) || MYIDUP_tmp[0]==isel))
continue;
5253 for (
int jsel=-5; jsel<=5; jsel++){
5254 if (!partonIsUnknown[1] && !((
PDGHelpers::isAGluon(MYIDUP_tmp[1]) && jsel==0) || MYIDUP_tmp[1]==jsel))
continue;
5256 if (isel!=0 && jsel!=0) rsel=0;
5257 else if (isel==0) rsel=jsel;
5259 if (!partonIsUnknown[2] && !((
PDGHelpers::isAGluon(MYIDUP_tmp[2]) && rsel==0) || MYIDUP_tmp[2]==rsel))
continue;
5260 MatElsq[jsel+5][isel+5] = MatElsq_tmp[jsel+5][isel+5];
5261 if (verbosity >=
TVar::DEBUG)
MELAout <<
"Channel (isel, jsel)=" << isel <<
", " << jsel << endl;
5267 int nijchannels = ijsel.size();
5268 for (
int ic=0; ic<nijchannels; ic++){
5270 int isel = ijsel[ic][0];
5271 int jsel = ijsel[ic][1];
5272 int code = ijsel[ic][2];
5282 (partonIsUnknown[0] || ((
PDGHelpers::isAGluon(MYIDUP_tmp[0]) && isel==0) || MYIDUP_tmp[0]==isel))
5284 (partonIsUnknown[1] || ((
PDGHelpers::isAGluon(MYIDUP_tmp[1]) && jsel==0) || MYIDUP_tmp[1]==jsel))
5287 if (isel==0 && jsel==0){
5298 MatElsq[jsel+5][isel+5] += msq_tmp;
5299 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
5307 MatElsq[jsel+5][isel+5] += msq_tmp;
5308 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << ssel <<
", " << rsel <<
'\t' << msq_tmp << endl;
5319 MatElsq[jsel+5][isel+5] += msq_tmp;
5320 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
5324 else if (isel==0 || jsel==0){
5326 (partonIsUnknown[2] || ((
PDGHelpers::isAGluon(MYIDUP_tmp[2]) && rsel==0) || MYIDUP_tmp[2]==rsel))
5328 (partonIsUnknown[3] || ((
PDGHelpers::isAGluon(MYIDUP_tmp[3]) && ssel==0) || MYIDUP_tmp[3]==ssel))
5331 MatElsq[jsel+5][isel+5] += msq_tmp;
5332 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
5335 (partonIsUnknown[2] || ((
PDGHelpers::isAGluon(MYIDUP_tmp[2]) && ssel==0) || MYIDUP_tmp[2]==ssel))
5337 (partonIsUnknown[3] || ((
PDGHelpers::isAGluon(MYIDUP_tmp[3]) && rsel==0) || MYIDUP_tmp[3]==rsel))
5340 MatElsq[jsel+5][isel+5] += msq_tmp;
5341 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << ssel <<
", " << rsel <<
'\t' << msq_tmp << endl;
5344 else if ((isel>0 && jsel<0) || (isel<0 && jsel>0)){
5345 if (code==1 && isel==-jsel){
5353 MatElsq[jsel+5][isel+5] += msq_tmp;
5354 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
5357 else if (code==3 && isel==-jsel){
5358 if (abs(isel)!=1){ rsel=1; ssel=-1; }
5359 else{ rsel=2; ssel=-2; }
5362 (partonIsUnknown[2] && partonIsUnknown[3])
5364 (partonIsUnknown[2] && std::abs(MYIDUP_tmp[3])!=std::abs(isel) && MYIDUP_tmp[3]<0)
5366 (std::abs(MYIDUP_tmp[2])!=std::abs(isel) && MYIDUP_tmp[2]>0 && partonIsUnknown[3])
5368 (std::abs(MYIDUP_tmp[2])!=std::abs(isel) && MYIDUP_tmp[2]==-MYIDUP_tmp[3] && MYIDUP_tmp[2]>0)
5371 MatElsq[jsel+5][isel+5] += msq_tmp;
5372 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
5375 (partonIsUnknown[2] && partonIsUnknown[3])
5377 (partonIsUnknown[2] && std::abs(MYIDUP_tmp[3])!=std::abs(isel) && MYIDUP_tmp[3]>0)
5379 (std::abs(MYIDUP_tmp[2])!=std::abs(isel) && MYIDUP_tmp[2]<0 && partonIsUnknown[3])
5381 (std::abs(MYIDUP_tmp[2])!=std::abs(isel) && MYIDUP_tmp[2]==-MYIDUP_tmp[3] && MYIDUP_tmp[2]<0)
5384 MatElsq[jsel+5][isel+5] += msq_tmp;
5385 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << ssel <<
", " << rsel <<
'\t' << msq_tmp << endl;
5390 (partonIsUnknown[2] || MYIDUP_tmp[2]==rsel)
5392 (partonIsUnknown[3] || MYIDUP_tmp[3]==ssel)
5395 MatElsq[jsel+5][isel+5] += msq_tmp;
5396 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
5399 (partonIsUnknown[2] || MYIDUP_tmp[2]==ssel)
5401 (partonIsUnknown[3] || MYIDUP_tmp[3]==rsel)
5404 MatElsq[jsel+5][isel+5] += msq_tmp;
5405 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
5411 (partonIsUnknown[2] || MYIDUP_tmp[2]==rsel)
5413 (partonIsUnknown[3] || MYIDUP_tmp[3]==ssel)
5416 MatElsq[jsel+5][isel+5] += msq_tmp;
5417 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
5422 (partonIsUnknown[2] || MYIDUP_tmp[2]==ssel)
5424 (partonIsUnknown[3] || MYIDUP_tmp[3]==rsel)
5427 MatElsq[jsel+5][isel+5] += msq_tmp;
5428 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << ssel <<
", " << rsel <<
'\t' << msq_tmp << endl;
5433 if (isel==jsel)
continue;
5434 isel = ijsel[ic][1];
5435 jsel = ijsel[ic][0];
5443 (partonIsUnknown[0] || ((
PDGHelpers::isAGluon(MYIDUP_tmp[0]) && isel==0) || MYIDUP_tmp[0]==isel))
5445 (partonIsUnknown[1] || ((
PDGHelpers::isAGluon(MYIDUP_tmp[1]) && jsel==0) || MYIDUP_tmp[1]==jsel))
5448 if (isel==0 || jsel==0){
5450 (partonIsUnknown[2] || ((
PDGHelpers::isAGluon(MYIDUP_tmp[2]) && rsel==0) || MYIDUP_tmp[2]==rsel))
5452 (partonIsUnknown[3] || ((
PDGHelpers::isAGluon(MYIDUP_tmp[3]) && ssel==0) || MYIDUP_tmp[3]==ssel))
5455 MatElsq[jsel+5][isel+5] += msq_tmp;
5456 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
5459 (partonIsUnknown[2] || ((
PDGHelpers::isAGluon(MYIDUP_tmp[2]) && ssel==0) || MYIDUP_tmp[2]==ssel))
5461 (partonIsUnknown[3] || ((
PDGHelpers::isAGluon(MYIDUP_tmp[3]) && rsel==0) || MYIDUP_tmp[3]==rsel))
5464 MatElsq[jsel+5][isel+5] += msq_tmp;
5465 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << ssel <<
", " << rsel <<
'\t' << msq_tmp << endl;
5468 else if ((isel>0 && jsel<0) || (isel<0 && jsel>0)){
5469 if (code==1 && isel==-jsel){
5477 MatElsq[jsel+5][isel+5] += msq_tmp;
5478 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
5481 else if(code==3 && isel==-jsel){
5482 if (abs(isel)!=1){ rsel=1; ssel=-1; }
5483 else{ rsel=2; ssel=-2; }
5486 (partonIsUnknown[2] && partonIsUnknown[3])
5488 (partonIsUnknown[2] && std::abs(MYIDUP_tmp[3])!=std::abs(isel) && MYIDUP_tmp[3]<0)
5490 (std::abs(MYIDUP_tmp[2])!=std::abs(isel) && MYIDUP_tmp[2]>0 && partonIsUnknown[3])
5492 (std::abs(MYIDUP_tmp[2])!=std::abs(isel) && MYIDUP_tmp[2]==-MYIDUP_tmp[3] && MYIDUP_tmp[2]>0)
5495 MatElsq[jsel+5][isel+5] += msq_tmp;
5496 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
5499 (partonIsUnknown[2] && partonIsUnknown[3])
5501 (partonIsUnknown[2] && std::abs(MYIDUP_tmp[3])!=std::abs(isel) && MYIDUP_tmp[3]>0)
5503 (std::abs(MYIDUP_tmp[2])!=std::abs(isel) && MYIDUP_tmp[2]<0 && partonIsUnknown[3])
5505 (std::abs(MYIDUP_tmp[2])!=std::abs(isel) && MYIDUP_tmp[2]==-MYIDUP_tmp[3] && MYIDUP_tmp[2]<0)
5508 MatElsq[jsel+5][isel+5] += msq_tmp;
5509 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << ssel <<
", " << rsel <<
'\t' << msq_tmp << endl;
5514 (partonIsUnknown[2] || MYIDUP_tmp[2]==rsel)
5516 (partonIsUnknown[3] || MYIDUP_tmp[3]==ssel)
5519 MatElsq[jsel+5][isel+5] += msq_tmp;
5520 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
5523 (partonIsUnknown[2] || MYIDUP_tmp[2]==ssel)
5525 (partonIsUnknown[3] || MYIDUP_tmp[3]==rsel)
5528 MatElsq[jsel+5][isel+5] += msq_tmp;
5529 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << ssel <<
", " << rsel <<
'\t' << msq_tmp << endl;
5535 (partonIsUnknown[2] || MYIDUP_tmp[2]==rsel)
5537 (partonIsUnknown[3] || MYIDUP_tmp[3]==ssel)
5540 MatElsq[jsel+5][isel+5] += msq_tmp;
5541 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
5546 (partonIsUnknown[2] || MYIDUP_tmp[2]==ssel)
5548 (partonIsUnknown[3] || MYIDUP_tmp[3]==rsel)
5551 MatElsq[jsel+5][isel+5] += msq_tmp;
5552 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << ssel <<
", " << rsel <<
'\t' << msq_tmp << endl;
5559 int isel, jsel, rsel, ssel;
5568 double ckm_takeout=1;
5569 double msq_uu_zz_ijrs1234[2]={ 0 };
5570 double msq_uu_zz_ijrs1243[2]={ 0 };
5571 double msq_dd_zz_ijrs1234[2]={ 0 };
5572 double msq_dd_zz_ijrs1243[2]={ 0 };
5573 double msq_ubarubar_zz_ijrs1234[2]={ 0 };
5574 double msq_ubarubar_zz_ijrs1243[2]={ 0 };
5575 double msq_dbardbar_zz_ijrs1234[2]={ 0 };
5576 double msq_dbardbar_zz_ijrs1243[2]={ 0 };
5577 double msq_uu_zzid_ijrs1234[2]={ 0 };
5578 double msq_uu_zzid_ijrs1243[2]={ 0 };
5579 double msq_dd_zzid_ijrs1234[2]={ 0 };
5580 double msq_dd_zzid_ijrs1243[2]={ 0 };
5581 double msq_ubarubar_zzid_ijrs1234[2]={ 0 };
5582 double msq_ubarubar_zzid_ijrs1243[2]={ 0 };
5583 double msq_dbardbar_zzid_ijrs1234[2]={ 0 };
5584 double msq_dbardbar_zzid_ijrs1243[2]={ 0 };
5585 double msq_udbar_zz_ijrs1234[2]={ 0 };
5586 double msq_udbar_zz_ijrs1243[2]={ 0 };
5587 double msq_dubar_zz_ijrs1234[2]={ 0 };
5588 double msq_dubar_zz_ijrs1243[2]={ 0 };
5590 double msq_uubar_zz_ijrs1234[2]={ 0 };
5591 double msq_uubar_zz_ijrs1243[2]={ 0 };
5592 double msq_ddbar_zz_ijrs1234[2]={ 0 };
5593 double msq_ddbar_zz_ijrs1243[2]={ 0 };
5594 double msq_uubar_ww_ijrs1234[2]={ 0 };
5595 double msq_uubar_ww_ijrs1243[2]={ 0 };
5596 double msq_ddbar_ww_ijrs1234[2]={ 0 };
5597 double msq_ddbar_ww_ijrs1243[2]={ 0 };
5599 double msq_ud_wwonly_ijrs1234[2]={ 0 };
5600 double msq_ud_wwonly_ijrs1243[2]={ 0 };
5601 double msq_ubardbar_wwonly_ijrs1234[2]={ 0 };
5602 double msq_ubardbar_wwonly_ijrs1243[2]={ 0 };
5616 rsel=isel; ssel=jsel;
5620 msq_uu_zz_ijrs1234[1] = msq_uu_zz_ijrs1234[0];
5621 msq_uu_zz_ijrs1243[1] = msq_uu_zz_ijrs1243[0];
5624 rsel=isel; ssel=jsel;
5628 msq_uu_zzid_ijrs1234[1] = msq_uu_zzid_ijrs1234[0];
5629 msq_uu_zzid_ijrs1243[1] = msq_uu_zzid_ijrs1243[0];
5642 rsel=isel; ssel=jsel;
5646 msq_dd_zz_ijrs1234[1] = msq_dd_zz_ijrs1234[0];
5647 msq_dd_zz_ijrs1243[1] = msq_dd_zz_ijrs1243[0];
5650 rsel=isel; ssel=jsel;
5654 msq_dd_zzid_ijrs1234[1] = msq_dd_zzid_ijrs1234[0];
5655 msq_dd_zzid_ijrs1243[1] = msq_dd_zzid_ijrs1243[0];
5668 rsel=isel; ssel=jsel;
5672 msq_ubarubar_zz_ijrs1234[1] = msq_ubarubar_zz_ijrs1234[0];
5673 msq_ubarubar_zz_ijrs1243[1] = msq_ubarubar_zz_ijrs1243[0];
5676 rsel=isel; ssel=jsel;
5680 msq_ubarubar_zzid_ijrs1234[1] = msq_ubarubar_zzid_ijrs1234[0];
5681 msq_ubarubar_zzid_ijrs1243[1] = msq_ubarubar_zzid_ijrs1243[0];
5694 rsel=isel; ssel=jsel;
5698 msq_dbardbar_zz_ijrs1234[1] = msq_dbardbar_zz_ijrs1234[0];
5699 msq_dbardbar_zz_ijrs1243[1] = msq_dbardbar_zz_ijrs1243[0];
5702 rsel=isel; ssel=jsel;
5706 msq_dbardbar_zzid_ijrs1234[1] = msq_dbardbar_zzid_ijrs1234[0];
5707 msq_dbardbar_zzid_ijrs1243[1] = msq_dbardbar_zzid_ijrs1243[0];
5712 (partonIsUnknown[0] && partonIsUnknown[1])
5726 (partonIsUnknown[2] && partonIsUnknown[3])
5740 rsel=isel; ssel=jsel;
5749 (partonIsUnknown[0] && partonIsUnknown[1])
5763 (partonIsUnknown[2] && partonIsUnknown[3])
5777 rsel=isel; ssel=jsel;
5785 (partonIsUnknown[0] && partonIsUnknown[1])
5795 (partonIsUnknown[2] && partonIsUnknown[3])
5803 rsel=isel; ssel=jsel;
5810 (partonIsUnknown[2] && partonIsUnknown[3])
5829 if (abs(isel)>=6)
break;
5838 ckm_takeout = pow(ckm_ir*ckm_js, 2);
5839 for (
unsigned int iswap=0; iswap<2; iswap++){
5840 msq_uubar_ww_ijrs1234[iswap] /= ckm_takeout;
5841 msq_uubar_ww_ijrs1243[iswap] /= ckm_takeout;
5848 (partonIsUnknown[0] && partonIsUnknown[1])
5858 (partonIsUnknown[2] && partonIsUnknown[3])
5866 rsel=isel; ssel=jsel;
5873 (partonIsUnknown[2] && partonIsUnknown[3])
5892 if (abs(isel)>=6)
break;
5901 ckm_takeout = pow(ckm_ir*ckm_js, 2);
5902 for (
unsigned int iswap=0; iswap<2; iswap++){
5903 msq_ddbar_ww_ijrs1234[iswap] /= ckm_takeout;
5904 msq_ddbar_ww_ijrs1243[iswap] /= ckm_takeout;
5912 (partonIsUnknown[0] && partonIsUnknown[1])
5926 (partonIsUnknown[2] && partonIsUnknown[3])
5942 const unsigned int nCombinations = 6;
5943 int ijrs_arr[nCombinations][4] ={
5951 for (
unsigned int ijrs=0; ijrs<nCombinations; ijrs++){
5952 isel = ijrs_arr[ijrs][0];
5953 jsel = ijrs_arr[ijrs][1];
5954 rsel = ijrs_arr[ijrs][2];
5955 ssel = ijrs_arr[ijrs][3];
5958 if (ckm_ir!=0. && ckm_js!=0.)
break;
5960 if (ckm_ir!=0. && ckm_js!=0.){
5965 ckm_takeout = pow(ckm_ir*ckm_js, 2);
5966 for (
unsigned int iswap=0; iswap<2; iswap++){
5967 msq_ud_wwonly_ijrs1234[iswap] /= ckm_takeout;
5968 msq_ud_wwonly_ijrs1243[iswap] /= ckm_takeout;
5975 (partonIsUnknown[0] && partonIsUnknown[1])
5989 (partonIsUnknown[2] && partonIsUnknown[3])
6005 const unsigned int nCombinations = 6;
6006 int ijrs_arr[nCombinations][4] ={
6014 for (
unsigned int ijrs=0; ijrs<nCombinations; ijrs++){
6015 isel = ijrs_arr[ijrs][0];
6016 jsel = ijrs_arr[ijrs][1];
6017 rsel = ijrs_arr[ijrs][2];
6018 ssel = ijrs_arr[ijrs][3];
6021 if (ckm_ir!=0. && ckm_js!=0.)
break;
6023 if (ckm_ir!=0. && ckm_js!=0.){
6028 ckm_takeout = pow(ckm_ir*ckm_js, 2);
6029 for (
unsigned int iswap=0; iswap<2; iswap++){
6030 msq_ubardbar_wwonly_ijrs1234[iswap] /= ckm_takeout;
6031 msq_ubardbar_wwonly_ijrs1243[iswap] /= ckm_takeout;
6037 MELAout <<
"TUtil::HJJMatEl: The pre-computed MEs:" << endl;
6038 for (
unsigned int iswap=0; iswap<2; iswap++){
6040 <<
"\tmsq_uu_zz_ijrs1234[" << iswap <<
"] = " << msq_uu_zz_ijrs1234[iswap] <<
'\n'
6041 <<
"\tmsq_uu_zz_ijrs1243[" << iswap <<
"] = " << msq_uu_zz_ijrs1243[iswap] <<
'\n'
6042 <<
"\tmsq_dd_zz_ijrs1234[" << iswap <<
"] = " << msq_dd_zz_ijrs1234[iswap] <<
'\n'
6043 <<
"\tmsq_dd_zz_ijrs1243[" << iswap <<
"] = " << msq_dd_zz_ijrs1243[iswap] <<
'\n'
6044 <<
"\tmsq_ubarubar_zz_ijrs1234[" << iswap <<
"] = " << msq_ubarubar_zz_ijrs1234[iswap] <<
'\n'
6045 <<
"\tmsq_ubarubar_zz_ijrs1243[" << iswap <<
"] = " << msq_ubarubar_zz_ijrs1243[iswap] <<
'\n'
6046 <<
"\tmsq_dbardbar_zz_ijrs1234[" << iswap <<
"] = " << msq_dbardbar_zz_ijrs1234[iswap] <<
'\n'
6047 <<
"\tmsq_dbardbar_zz_ijrs1243[" << iswap <<
"] = " << msq_dbardbar_zz_ijrs1243[iswap] <<
'\n'
6048 <<
"\tmsq_uu_zzid_ijrs1234[" << iswap <<
"] = " << msq_uu_zzid_ijrs1234[iswap] <<
'\n'
6049 <<
"\tmsq_uu_zzid_ijrs1243[" << iswap <<
"] = " << msq_uu_zzid_ijrs1243[iswap] <<
'\n'
6050 <<
"\tmsq_dd_zzid_ijrs1234[" << iswap <<
"] = " << msq_dd_zzid_ijrs1234[iswap] <<
'\n'
6051 <<
"\tmsq_dd_zzid_ijrs1243[" << iswap <<
"] = " << msq_dd_zzid_ijrs1243[iswap] <<
'\n'
6052 <<
"\tmsq_ubarubar_zzid_ijrs1234[" << iswap <<
"] = " << msq_ubarubar_zzid_ijrs1234[iswap] <<
'\n'
6053 <<
"\tmsq_ubarubar_zzid_ijrs1243[" << iswap <<
"] = " << msq_ubarubar_zzid_ijrs1243[iswap] <<
'\n'
6054 <<
"\tmsq_dbardbar_zzid_ijrs1234[" << iswap <<
"] = " << msq_dbardbar_zzid_ijrs1234[iswap] <<
'\n'
6055 <<
"\tmsq_dbardbar_zzid_ijrs1243[" << iswap <<
"] = " << msq_dbardbar_zzid_ijrs1243[iswap] <<
'\n'
6056 <<
"\tmsq_udbar_zz_ijrs1234[" << iswap <<
"] = " << msq_udbar_zz_ijrs1234[iswap] <<
'\n'
6057 <<
"\tmsq_udbar_zz_ijrs1243[" << iswap <<
"] = " << msq_udbar_zz_ijrs1243[iswap] <<
'\n'
6058 <<
"\tmsq_dubar_zz_ijrs1234[" << iswap <<
"] = " << msq_dubar_zz_ijrs1234[iswap] <<
'\n'
6059 <<
"\tmsq_dubar_zz_ijrs1243[" << iswap <<
"] = " << msq_dubar_zz_ijrs1243[iswap] <<
'\n'
6060 <<
"\tmsq_uubar_zz_ijrs1234[" << iswap <<
"] = " << msq_uubar_zz_ijrs1234[iswap] <<
'\n'
6061 <<
"\tmsq_uubar_zz_ijrs1243[" << iswap <<
"] = " << msq_uubar_zz_ijrs1243[iswap] <<
'\n'
6062 <<
"\tmsq_ddbar_zz_ijrs1234[" << iswap <<
"] = " << msq_ddbar_zz_ijrs1234[iswap] <<
'\n'
6063 <<
"\tmsq_ddbar_zz_ijrs1243[" << iswap <<
"] = " << msq_ddbar_zz_ijrs1243[iswap] <<
'\n'
6064 <<
"\tmsq_uubar_ww_ijrs1234[" << iswap <<
"] = " << msq_uubar_ww_ijrs1234[iswap] <<
'\n'
6065 <<
"\tmsq_uubar_ww_ijrs1243[" << iswap <<
"] = " << msq_uubar_ww_ijrs1243[iswap] <<
'\n'
6066 <<
"\tmsq_ddbar_ww_ijrs1234[" << iswap <<
"] = " << msq_ddbar_ww_ijrs1234[iswap] <<
'\n'
6067 <<
"\tmsq_ddbar_ww_ijrs1243[" << iswap <<
"] = " << msq_ddbar_ww_ijrs1243[iswap] <<
'\n'
6068 <<
"\tmsq_ud_wwonly_ijrs1234[" << iswap <<
"] = " << msq_ud_wwonly_ijrs1234[iswap] <<
'\n'
6069 <<
"\tmsq_ud_wwonly_ijrs1243[" << iswap <<
"] = " << msq_ud_wwonly_ijrs1243[iswap] <<
'\n'
6070 <<
"\tmsq_ubardbar_wwonly_ijrs1234[" << iswap <<
"] = " << msq_ubardbar_wwonly_ijrs1234[iswap] <<
'\n'
6071 <<
"\tmsq_ubardbar_wwonly_ijrs1243[" << iswap <<
"] = " << msq_ubardbar_wwonly_ijrs1243[iswap]
6077 int nijchannels = ijsel.size();
6079 for (
int ic=0; ic<nijchannels; ic++){
6081 isel = ijsel[ic][0];
6082 jsel = ijsel[ic][1];
6083 int code = ijsel[ic][2];
6084 bool ijselIsUpType[2];
6085 bool ijselIsDownType[2];
6086 bool ijselIsParticle[2];
6087 bool ijselIsAntiparticle[2];
6101 ijselIsParticle[0] = (isel>0); ijselIsAntiparticle[0] = (isel<0);
6102 ijselIsParticle[1] = (jsel>0); ijselIsAntiparticle[1] = (jsel<0);
6105 (partonIsUnknown[0] || MYIDUP_tmp[0]==isel)
6107 (partonIsUnknown[1] || MYIDUP_tmp[1]==jsel)
6112 (partonIsUnknown[2] || MYIDUP_tmp[2]==rsel)
6114 (partonIsUnknown[3] || MYIDUP_tmp[3]==ssel)
6117 if (ijselIsUpType[0] && ijselIsUpType[1]){
6118 if (ijselIsParticle[0] && ijselIsParticle[1]){
6119 if (isel!=jsel) msq_tmp = msq_uu_zz_ijrs1234[0];
6120 else msq_tmp = msq_uu_zzid_ijrs1234[0];
6122 else if (ijselIsAntiparticle[0] && ijselIsAntiparticle[1]){
6123 if (isel!=jsel) msq_tmp = msq_ubarubar_zz_ijrs1234[0];
6124 else msq_tmp = msq_ubarubar_zzid_ijrs1234[0];
6126 else if (ijselIsParticle[0] && ijselIsAntiparticle[1]) msq_tmp = msq_uubar_zz_ijrs1234[0];
6128 else if (ijselIsDownType[0] && ijselIsDownType[1]){
6129 if (ijselIsParticle[0] && ijselIsParticle[1]){
6130 if (isel!=jsel) msq_tmp = msq_dd_zz_ijrs1234[0];
6131 else msq_tmp = msq_dd_zzid_ijrs1234[0];
6133 else if (ijselIsAntiparticle[0] && ijselIsAntiparticle[1]){
6134 if (isel!=jsel) msq_tmp = msq_dbardbar_zz_ijrs1234[0];
6135 else msq_tmp = msq_dbardbar_zzid_ijrs1234[0];
6137 else if (ijselIsParticle[0] && ijselIsAntiparticle[1]) msq_tmp = msq_ddbar_zz_ijrs1234[0];
6139 else if (ijselIsUpType[0] && ijselIsDownType[1] && ijselIsParticle[0] && ijselIsAntiparticle[1]) msq_tmp = msq_udbar_zz_ijrs1234[0];
6140 else if (ijselIsDownType[0] && ijselIsUpType[1] && ijselIsParticle[0] && ijselIsAntiparticle[1]) msq_tmp = msq_dubar_zz_ijrs1234[0];
6141 MatElsq[jsel+5][isel+5] += msq_tmp;
6142 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
6147 (partonIsUnknown[2] || MYIDUP_tmp[2]==ssel)
6149 (partonIsUnknown[3] || MYIDUP_tmp[3]==rsel)
6152 if (ijselIsUpType[0] && ijselIsUpType[1]){
6153 if (ijselIsParticle[0] && ijselIsParticle[1]){
6154 if (isel!=jsel) msq_tmp = msq_uu_zz_ijrs1243[0];
6155 else msq_tmp = msq_uu_zzid_ijrs1243[0];
6157 else if (ijselIsAntiparticle[0] && ijselIsAntiparticle[1]){
6158 if (isel!=jsel) msq_tmp = msq_ubarubar_zz_ijrs1243[0];
6159 else msq_tmp = msq_ubarubar_zzid_ijrs1243[0];
6161 else if (ijselIsParticle[0] && ijselIsAntiparticle[1]) msq_tmp = msq_uubar_zz_ijrs1243[0];
6163 else if (ijselIsDownType[0] && ijselIsDownType[1]){
6164 if (ijselIsParticle[0] && ijselIsParticle[1]){
6165 if (isel!=jsel) msq_tmp = msq_dd_zz_ijrs1243[0];
6166 else msq_tmp = msq_dd_zzid_ijrs1243[0];
6168 else if (ijselIsAntiparticle[0] && ijselIsAntiparticle[1]){
6169 if (isel!=jsel) msq_tmp = msq_dbardbar_zz_ijrs1243[0];
6170 else msq_tmp = msq_dbardbar_zzid_ijrs1243[0];
6172 else if (ijselIsParticle[0] && ijselIsAntiparticle[1]) msq_tmp = msq_ddbar_zz_ijrs1243[0];
6174 else if (ijselIsUpType[0] && ijselIsDownType[1] && ijselIsParticle[0] && ijselIsAntiparticle[1]) msq_tmp = msq_udbar_zz_ijrs1243[0];
6175 else if (ijselIsDownType[0] && ijselIsUpType[1] && ijselIsParticle[0] && ijselIsAntiparticle[1]) msq_tmp = msq_dubar_zz_ijrs1243[0];
6176 MatElsq[jsel+5][isel+5] += msq_tmp;
6177 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << ssel <<
", " << rsel <<
'\t' << msq_tmp << endl;
6181 vector<int> possible_rsel;
6182 vector<int> possible_ssel;
6183 vector<double> possible_Vsqir;
6184 vector<double> possible_Vsqjs;
6185 if (ijselIsUpType[0]){ possible_rsel.push_back(1); possible_rsel.push_back(3); possible_rsel.push_back(5); }
6186 else if (ijselIsDownType[0]){ possible_rsel.push_back(2); possible_rsel.push_back(4); }
6187 for (
unsigned int ix=0; ix<possible_rsel.size(); ix++){
6188 rsel=possible_rsel.at(ix);
6190 possible_Vsqir.push_back(ckmval);
6192 if (ijselIsUpType[1]){ possible_ssel.push_back(1); possible_ssel.push_back(3); possible_ssel.push_back(5); }
6193 else if (ijselIsDownType[1]){ possible_ssel.push_back(2); possible_ssel.push_back(4); }
6194 for (
unsigned int iy=0; iy<possible_ssel.size(); iy++){
6195 ssel=possible_ssel.at(iy);
6197 possible_Vsqjs.push_back(ckmval);
6201 for (
unsigned int ix=0; ix<possible_rsel.size(); ix++){
6202 rsel=possible_rsel.at(ix)*TMath::Sign(1, isel);
6203 for (
unsigned int iy=0; iy<possible_ssel.size(); iy++){
6204 ssel=possible_ssel.at(iy)*TMath::Sign(1, jsel);
6205 double ckmval = possible_Vsqir.at(ix)*possible_Vsqjs.at(iy);
6207 (partonIsUnknown[2] || MYIDUP_tmp[2]==rsel)
6209 (partonIsUnknown[3] || MYIDUP_tmp[3]==ssel)
6212 if (ijselIsUpType[0] && ijselIsUpType[1] && ijselIsParticle[0] && ijselIsAntiparticle[1]) msq_tmp = msq_uubar_ww_ijrs1234[0];
6213 else if (ijselIsDownType[0] && ijselIsDownType[1] && ijselIsParticle[0] && ijselIsAntiparticle[1]) msq_tmp = msq_ddbar_ww_ijrs1234[0];
6215 MatElsq[jsel+5][isel+5] += msq_tmp;
6216 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
6221 (partonIsUnknown[2] || MYIDUP_tmp[2]==ssel)
6223 (partonIsUnknown[3] || MYIDUP_tmp[3]==rsel)
6226 if (ijselIsUpType[0] && ijselIsUpType[1] && ijselIsParticle[0] && ijselIsAntiparticle[1]) msq_tmp = msq_uubar_ww_ijrs1243[0];
6227 else if (ijselIsDownType[0] && ijselIsDownType[1] && ijselIsParticle[0] && ijselIsAntiparticle[1]) msq_tmp = msq_ddbar_ww_ijrs1243[0];
6229 MatElsq[jsel+5][isel+5] += msq_tmp;
6230 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << ssel <<
", " << rsel <<
'\t' << msq_tmp << endl;
6236 vector<int> possible_rsel;
6237 vector<int> possible_ssel;
6238 vector<double> possible_Vsqir;
6239 vector<double> possible_Vsqjs;
6240 if (ijselIsUpType[0]){ possible_rsel.push_back(1); possible_rsel.push_back(3); possible_rsel.push_back(5); }
6241 else if (ijselIsDownType[0]){ possible_rsel.push_back(2); possible_rsel.push_back(4); }
6242 for (
unsigned int ix=0; ix<possible_rsel.size(); ix++){
6243 rsel=possible_rsel.at(ix);
6245 possible_Vsqir.push_back(ckmval);
6247 if (ijselIsUpType[1]){ possible_ssel.push_back(1); possible_ssel.push_back(3); possible_ssel.push_back(5); }
6248 else if (ijselIsDownType[1]){ possible_ssel.push_back(2); possible_ssel.push_back(4); }
6249 for (
unsigned int iy=0; iy<possible_ssel.size(); iy++){
6250 ssel=possible_ssel.at(iy);
6252 possible_Vsqjs.push_back(ckmval);
6256 for (
unsigned int ix=0; ix<possible_rsel.size(); ix++){
6257 rsel=possible_rsel.at(ix)*TMath::Sign(1, isel);
6258 for (
unsigned int iy=0; iy<possible_ssel.size(); iy++){
6259 ssel=possible_ssel.at(iy)*TMath::Sign(1, jsel);
6260 double ckmval = possible_Vsqir.at(ix)*possible_Vsqjs.at(iy);
6262 (partonIsUnknown[2] || MYIDUP_tmp[2]==rsel)
6264 (partonIsUnknown[3] || MYIDUP_tmp[3]==ssel)
6266 if (rsel!=jsel && ssel!=isel){
6268 if (ijselIsUpType[0] && ijselIsDownType[1]){
6269 if (ijselIsParticle[0] && ijselIsParticle[1]) msq_tmp = msq_ud_wwonly_ijrs1234[0];
6270 else if (ijselIsAntiparticle[0] && ijselIsAntiparticle[1]) msq_tmp = msq_ubardbar_wwonly_ijrs1234[0];
6273 MatElsq[jsel+5][isel+5] += msq_tmp;
6274 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
6278 MatElsq[jsel+5][isel+5] += msq_tmp;
6279 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
6285 (partonIsUnknown[2] || MYIDUP_tmp[2]==ssel)
6287 (partonIsUnknown[3] || MYIDUP_tmp[3]==rsel)
6289 if (rsel!=jsel && ssel!=isel){
6291 if (ijselIsUpType[0] && ijselIsDownType[1]){
6292 if (ijselIsParticle[0] && ijselIsParticle[1]) msq_tmp = msq_ud_wwonly_ijrs1243[0];
6293 else if (ijselIsAntiparticle[0] && ijselIsAntiparticle[1]) msq_tmp = msq_ubardbar_wwonly_ijrs1243[0];
6296 MatElsq[jsel+5][isel+5] += msq_tmp;
6297 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << ssel <<
", " << rsel <<
'\t' << msq_tmp << endl;
6301 MatElsq[jsel+5][isel+5] += msq_tmp;
6302 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << ssel <<
", " << rsel <<
'\t' << msq_tmp << endl;
6310 if (isel==jsel)
continue;
6311 isel = ijsel[ic][1];
6312 jsel = ijsel[ic][0];
6324 ijselIsParticle[0] = (isel>0); ijselIsAntiparticle[0] = (isel<0);
6325 ijselIsParticle[1] = (jsel>0); ijselIsAntiparticle[1] = (jsel<0);
6328 (partonIsUnknown[0] || ((
PDGHelpers::isAGluon(MYIDUP_tmp[0]) && isel==0) || MYIDUP_tmp[0]==isel))
6330 (partonIsUnknown[1] || ((
PDGHelpers::isAGluon(MYIDUP_tmp[1]) && jsel==0) || MYIDUP_tmp[1]==jsel))
6336 (partonIsUnknown[2] || MYIDUP_tmp[2]==rsel)
6338 (partonIsUnknown[3] || MYIDUP_tmp[3]==ssel)
6341 if (ijselIsUpType[1] && ijselIsUpType[0]){
6342 if (ijselIsParticle[1] && ijselIsParticle[0]){
6343 if (isel!=jsel) msq_tmp = msq_uu_zz_ijrs1234[1];
6344 else msq_tmp = msq_uu_zzid_ijrs1234[1];
6346 else if (ijselIsAntiparticle[1] && ijselIsAntiparticle[0]){
6347 if (isel!=jsel) msq_tmp = msq_ubarubar_zz_ijrs1234[1];
6348 else msq_tmp = msq_ubarubar_zzid_ijrs1234[1];
6350 else if (ijselIsParticle[1] && ijselIsAntiparticle[0]) msq_tmp = msq_uubar_zz_ijrs1234[1];
6352 else if (ijselIsDownType[1] && ijselIsDownType[0]){
6353 if (ijselIsParticle[1] && ijselIsParticle[0]){
6354 if (isel!=jsel) msq_tmp = msq_dd_zz_ijrs1234[1];
6355 else msq_tmp = msq_dd_zzid_ijrs1234[1];
6357 else if (ijselIsAntiparticle[1] && ijselIsAntiparticle[0]){
6358 if (isel!=jsel) msq_tmp = msq_dbardbar_zz_ijrs1234[1];
6359 else msq_tmp = msq_dbardbar_zzid_ijrs1234[1];
6361 else if (ijselIsParticle[1] && ijselIsAntiparticle[0]) msq_tmp = msq_ddbar_zz_ijrs1234[1];
6363 else if (ijselIsUpType[1] && ijselIsDownType[0] && ijselIsParticle[1] && ijselIsAntiparticle[0]) msq_tmp = msq_udbar_zz_ijrs1234[1];
6364 else if (ijselIsDownType[1] && ijselIsUpType[0] && ijselIsParticle[1] && ijselIsAntiparticle[0]) msq_tmp = msq_dubar_zz_ijrs1234[1];
6365 MatElsq[jsel+5][isel+5] += msq_tmp;
6366 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
6371 (partonIsUnknown[2] || MYIDUP_tmp[2]==ssel)
6373 (partonIsUnknown[3] || MYIDUP_tmp[3]==rsel)
6376 if (ijselIsUpType[1] && ijselIsUpType[0]){
6377 if (ijselIsParticle[1] && ijselIsParticle[0]){
6378 if (isel!=jsel) msq_tmp = msq_uu_zz_ijrs1243[1];
6379 else msq_tmp = msq_uu_zzid_ijrs1243[1];
6381 else if (ijselIsAntiparticle[1] && ijselIsAntiparticle[0]){
6382 if (isel!=jsel) msq_tmp = msq_ubarubar_zz_ijrs1243[1];
6383 else msq_tmp = msq_ubarubar_zzid_ijrs1243[1];
6385 else if (ijselIsParticle[1] && ijselIsAntiparticle[0]) msq_tmp = msq_uubar_zz_ijrs1243[1];
6387 else if (ijselIsDownType[1] && ijselIsDownType[0]){
6388 if (ijselIsParticle[1] && ijselIsParticle[0]){
6389 if (isel!=jsel) msq_tmp = msq_dd_zz_ijrs1243[1];
6390 else msq_tmp = msq_dd_zzid_ijrs1243[1];
6392 else if (ijselIsAntiparticle[1] && ijselIsAntiparticle[0]){
6393 if (isel!=jsel) msq_tmp = msq_dbardbar_zz_ijrs1243[1];
6394 else msq_tmp = msq_dbardbar_zzid_ijrs1243[1];
6396 else if (ijselIsParticle[1] && ijselIsAntiparticle[0]) msq_tmp = msq_ddbar_zz_ijrs1243[1];
6398 else if (ijselIsUpType[1] && ijselIsDownType[0] && ijselIsParticle[1] && ijselIsAntiparticle[0]) msq_tmp = msq_udbar_zz_ijrs1243[1];
6399 else if (ijselIsDownType[1] && ijselIsUpType[0] && ijselIsParticle[1] && ijselIsAntiparticle[0]) msq_tmp = msq_dubar_zz_ijrs1243[1];
6400 MatElsq[jsel+5][isel+5] += msq_tmp;
6401 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << ssel <<
", " << rsel <<
'\t' << msq_tmp << endl;
6405 vector<int> possible_rsel;
6406 vector<int> possible_ssel;
6407 vector<double> possible_Vsqir;
6408 vector<double> possible_Vsqjs;
6409 if (ijselIsUpType[0]){ possible_rsel.push_back(1); possible_rsel.push_back(3); possible_rsel.push_back(5); }
6410 else if (ijselIsDownType[0]){ possible_rsel.push_back(2); possible_rsel.push_back(4); }
6411 for (
unsigned int ix=0; ix<possible_rsel.size(); ix++){
6412 rsel=possible_rsel.at(ix);
6414 possible_Vsqir.push_back(ckmval);
6416 if (ijselIsUpType[1]){ possible_ssel.push_back(1); possible_ssel.push_back(3); possible_ssel.push_back(5); }
6417 else if (ijselIsDownType[1]){ possible_ssel.push_back(2); possible_ssel.push_back(4); }
6418 for (
unsigned int iy=0; iy<possible_ssel.size(); iy++){
6419 ssel=possible_ssel.at(iy);
6421 possible_Vsqjs.push_back(ckmval);
6425 for (
unsigned int ix=0; ix<possible_rsel.size(); ix++){
6426 rsel=possible_rsel.at(ix)*TMath::Sign(1, isel);
6427 for (
unsigned int iy=0; iy<possible_ssel.size(); iy++){
6428 ssel=possible_ssel.at(iy)*TMath::Sign(1, jsel);
6429 double ckmval = possible_Vsqir.at(ix)*possible_Vsqjs.at(iy);
6431 (partonIsUnknown[2] || MYIDUP_tmp[2]==rsel)
6433 (partonIsUnknown[3] || MYIDUP_tmp[3]==ssel)
6436 if (ijselIsUpType[1] && ijselIsUpType[0] && ijselIsParticle[1] && ijselIsAntiparticle[0]) msq_tmp = msq_uubar_ww_ijrs1234[1];
6437 else if (ijselIsDownType[1] && ijselIsDownType[0] && ijselIsParticle[1] && ijselIsAntiparticle[0]) msq_tmp = msq_ddbar_ww_ijrs1234[1];
6439 MatElsq[jsel+5][isel+5] += msq_tmp;
6440 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
6445 (partonIsUnknown[2] || MYIDUP_tmp[2]==ssel)
6447 (partonIsUnknown[3] || MYIDUP_tmp[3]==rsel)
6450 if (ijselIsUpType[1] && ijselIsUpType[0] && ijselIsParticle[1] && ijselIsAntiparticle[0]) msq_tmp = msq_uubar_ww_ijrs1243[1];
6451 else if (ijselIsDownType[1] && ijselIsDownType[0] && ijselIsParticle[1] && ijselIsAntiparticle[0]) msq_tmp = msq_ddbar_ww_ijrs1243[1];
6453 MatElsq[jsel+5][isel+5] += msq_tmp;
6454 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << ssel <<
", " << rsel <<
'\t' << msq_tmp << endl;
6460 vector<int> possible_rsel;
6461 vector<int> possible_ssel;
6462 vector<double> possible_Vsqir;
6463 vector<double> possible_Vsqjs;
6464 if (ijselIsUpType[0]){ possible_rsel.push_back(1); possible_rsel.push_back(3); possible_rsel.push_back(5); }
6465 else if (ijselIsDownType[0]){ possible_rsel.push_back(2); possible_rsel.push_back(4); }
6466 for (
unsigned int ix=0; ix<possible_rsel.size(); ix++){
6467 rsel=possible_rsel.at(ix);
6469 possible_Vsqir.push_back(ckmval);
6471 if (ijselIsUpType[1]){ possible_ssel.push_back(1); possible_ssel.push_back(3); possible_ssel.push_back(5); }
6472 else if (ijselIsDownType[1]){ possible_ssel.push_back(2); possible_ssel.push_back(4); }
6473 for (
unsigned int iy=0; iy<possible_ssel.size(); iy++){
6474 ssel=possible_ssel.at(iy);
6476 possible_Vsqjs.push_back(ckmval);
6480 for (
unsigned int ix=0; ix<possible_rsel.size(); ix++){
6481 rsel=possible_rsel.at(ix)*TMath::Sign(1, isel);
6482 for (
unsigned int iy=0; iy<possible_ssel.size(); iy++){
6483 ssel=possible_ssel.at(iy)*TMath::Sign(1, jsel);
6484 double ckmval = possible_Vsqir.at(ix)*possible_Vsqjs.at(iy);
6486 (partonIsUnknown[2] || MYIDUP_tmp[2]==rsel)
6488 (partonIsUnknown[3] || MYIDUP_tmp[3]==ssel)
6490 if (rsel!=jsel && ssel!=isel){
6492 if (ijselIsUpType[1] && ijselIsDownType[0]){
6493 if (ijselIsParticle[1] && ijselIsParticle[0]) msq_tmp = msq_ud_wwonly_ijrs1234[1];
6494 else if (ijselIsAntiparticle[1] && ijselIsAntiparticle[0]) msq_tmp = msq_ubardbar_wwonly_ijrs1234[1];
6497 MatElsq[jsel+5][isel+5] += msq_tmp;
6498 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
6502 MatElsq[jsel+5][isel+5] += msq_tmp;
6503 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << rsel <<
", " << ssel <<
'\t' << msq_tmp << endl;
6509 (partonIsUnknown[2] || MYIDUP_tmp[2]==ssel)
6511 (partonIsUnknown[3] || MYIDUP_tmp[3]==rsel)
6513 if (rsel!=jsel && ssel!=isel){
6515 if (ijselIsUpType[1] && ijselIsDownType[0]){
6516 if (ijselIsParticle[1] && ijselIsParticle[0]) msq_tmp = msq_ud_wwonly_ijrs1243[1];
6517 else if (ijselIsAntiparticle[1] && ijselIsAntiparticle[0]) msq_tmp = msq_ubardbar_wwonly_ijrs1243[1];
6520 MatElsq[jsel+5][isel+5] += msq_tmp;
6521 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << ssel <<
", " << rsel <<
'\t' << msq_tmp << endl;
6525 MatElsq[jsel+5][isel+5] += msq_tmp;
6526 if (verbosity >=
TVar::DEBUG_VERBOSE)
MELAout <<
"Channel (isel, jsel, rsel, ssel)=" << isel <<
", " << jsel <<
", " << ssel <<
", " << rsel <<
'\t' << msq_tmp << endl;
6537 int GeVexponent_MEsq = 4-(1+nRequested_AssociatedJets)*2;
6538 double constant = pow(GeV, -GeVexponent_MEsq);
6539 for (
int ii=0; ii<
nmsq; ii++){
for (
int jj=0; jj<
nmsq; jj++) MatElsq[jj][ii] *= constant; }
6545 for (
int ii = 0; ii <
nmsq; ii++){
for (
int jj = 0; jj <
nmsq; jj++)
MELAout << MatElsq[jj][ii] <<
'\t';
MELAout << endl; }
6547 sum_msqjk =
SumMEPDF(MomStore[0], MomStore[1], MatElsq, RcdME, EBEAM, verbosity);
6564 <<
"TUtil::HJJMatEl: Reset AlphaS:\n"
6565 <<
"\tBefore reset, alphas scale: " <<
scale_.scale <<
", PDF scale: " <<
facscale_.facscale << endl;
6567 SetAlphaS(defaultRenScale, defaultFacScale, 1., 1., defaultNloop, defaultNflav, defaultPdflabel);
6571 <<
"TUtil::HJJMatEl: Reset AlphaS result:\n"
6572 <<
"\tAfter reset, alphas scale: " <<
scale_.scale <<
", PDF scale: " <<
facscale_.facscale <<
", alphas(Qren): " << alphasVal <<
", alphas(MZ): " << alphasmzVal << endl;