|  | ATLAS Offline Software
    | 
 
 
 
|  | 
|  | PowhegBB4Ldlsl () | 
|  | 
|  | ~PowhegBB4Ldlsl () override | 
|  | 
| virtual bool | initAfterBeams () override | 
|  | 
| virtual bool | canVetoProcessLevel () override | 
|  | 
| virtual bool | doVetoProcessLevel (Event &e) override | 
|  | 
| virtual bool | canVetoFSREmission () override | 
|  | 
| virtual bool | doVetoFSREmission (int sizeOld, const Event &e, int iSys, bool inResonance) override | 
|  | 
| bool | doVetoFSR (bool condition) | 
|  | 
| virtual bool | canSetResonanceScale () override | 
|  | 
| virtual double | scaleResonance (int iRes, const Event &e) override | 
|  | 
| double | findresscale (const int iRes, const Event &event) | 
|  | 
| bool | match_decay (int iparticle, const Event &e, const vector< int > &ids, vector< int > &positions, vector< Vec4 > &momenta, bool exitOnExtraLegs=true) | 
|  | 
| double | qSplittingScale (Vec4 pt, Vec4 p1, Vec4 p2) | 
|  | 
| double | gSplittingScale (Vec4 pt, Vec4 p1, Vec4 p2) | 
|  | 
| double | pTpythia (const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch) | 
|  | 
| int | getNInResonanceFSRVeto () | 
|  | 
| bool | canVetoMPIStep () override | 
|  | 
| int | numberVetoMPIStep () override | 
|  | 
| bool | doVetoMPIStep (int nMPI, const Event &e) override | 
|  | 
| double | pT (const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch, bool FSR) | 
|  | 
| double | pTpythia (const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch, bool FSR) | 
|  | 
| double | pTvincia (const Event &event, int i1, int i3, int i2) | 
|  | 
| double | pTdire (const Event &event, int iRad, int iEmt, int iRec) | 
|  | 
| double | pTpowheg (const Event &e, int i, int j, bool FSR) | 
|  | 
| double | pTcalc (const Event &e, int i, int j, int k, int r, int xSRin) | 
|  | 
| bool | canVetoISREmission () | 
|  | 
| bool | doVetoISREmission (int, const Event &e, int iSys) | 
|  | 
| bool | canVetoMPIEmission () | 
|  | 
| bool | doVetoMPIEmission (int, const Event &e) | 
|  | 
| int | getNISRveto () | 
|  | 
| int | getNFSRveto () | 
|  | 
| void | setpThard (double newPThard) | 
|  | 
Definition at line 134 of file PowhegHooksBB4Ldlsl.cxx.
 
◆ PowhegBB4Ldlsl()
  
  | 
        
          | Pythia8::PowhegBB4Ldlsl::PowhegBB4Ldlsl | ( |  | ) |  |  | inline | 
 
Definition at line 138 of file PowhegHooksBB4Ldlsl.cxx.
  139                 : 
m_debug(
"Powheg:bb4l:DEBUG", 
false),
 
  145                     m_pTmin(
"Powheg:bb4l:pTminVeto", 0.5),
 
  152                 std::cout << 
"**********************************************************" << std::endl;
 
  153                 std::cout << 
"*                                                        *" << std::endl;
 
  154                 std::cout << 
"*      Applying Powheg BB4L UserHook (PowhegBB4Ldlsl)!    *" << std::endl;
 
  155                 std::cout << 
"*       Must run on dedicated Powheg LHE input file      *" << std::endl;
 
  156                 std::cout << 
"*           (on your own responsibility)                 *" << std::endl;
 
  157                 std::cout << 
"*                                                        *" << std::endl;
 
  158                 std::cout << 
"**********************************************************" << std::endl;
 
 
 
◆ ~PowhegBB4Ldlsl()
  
  | 
        
          | Pythia8::PowhegBB4Ldlsl::~PowhegBB4Ldlsl | ( |  | ) |  |  | inlineoverride | 
 
 
◆ canSetResonanceScale()
  
  | 
        
          | virtual bool Pythia8::PowhegBB4Ldlsl::canSetResonanceScale | ( |  | ) |  |  | inlineoverridevirtual | 
 
 
◆ canVetoFSREmission()
  
  | 
        
          | virtual bool Pythia8::PowhegBB4Ldlsl::canVetoFSREmission | ( |  | ) |  |  | inlineoverridevirtual | 
 
 
◆ canVetoISREmission()
  
  | 
        
          | bool Pythia8::PowhegHooksSetterMethod::canVetoISREmission | ( |  | ) |  |  | inlineinherited | 
 
 
◆ canVetoMPIEmission()
  
  | 
        
          | bool Pythia8::PowhegHooksSetterMethod::canVetoMPIEmission | ( |  | ) |  |  | inlineinherited | 
 
 
◆ canVetoMPIStep()
  
  | 
        
          | bool Pythia8::PowhegBB4Ldlsl::canVetoMPIStep | ( |  | ) |  |  | inlineoverride | 
 
 
◆ canVetoProcessLevel()
  
  | 
        
          | virtual bool Pythia8::PowhegBB4Ldlsl::canVetoProcessLevel | ( |  | ) |  |  | inlineoverridevirtual | 
 
 
◆ doVetoFSR()
  
  | 
        
          | bool Pythia8::PowhegBB4Ldlsl::doVetoFSR | ( | bool | condition | ) |  |  | inline | 
 
 
◆ doVetoFSREmission()
  
  | 
        
          | virtual bool Pythia8::PowhegBB4Ldlsl::doVetoFSREmission | ( | int | sizeOld, |  
          |  |  | const Event & | e, |  
          |  |  | int | iSys, |  
          |  |  | bool | inResonance |  
          |  | ) |  |  |  | inlineoverridevirtual | 
 
Definition at line 217 of file PowhegHooksBB4Ldlsl.cxx.
  223                     int iRecAft = 
e.size() - 1;
 
  224                     int iEmt = 
e.size() - 2;
 
  225                     int iRadAft = 
e.size() - 3;
 
  226                     int iRadBef = 
e[iEmt].mother1();
 
  229                     int iRes = 
e[iRadBef].mother1();
 
  230                     while ( iRes > 0 && (std::abs(
e[iRes].
id()) !=6 && std::abs(
e[iRes].
id()) != 24) ) {
 
  231                         iRes = 
e[iRes].mother1();
 
  234                         #if PYTHIA_VERSION_INTEGER >= 8310 
  235                             loggerPtr->ERROR_MSG(
"Warning in PowhegHooksBB4L::doVetoFSREmission: emission in resonance not from the top quark or from the W boson, not vetoing");
 
  237                             infoPtr->errorMsg(
"Warning in PowhegHooksBB4L::doVetoFSREmission: emission in resonance not from the top quark or from the W boson, not vetoing");
 
  241                     int iResId = 
e[iRes].id();
 
  250                         Vec4 
pr(
e[iRadAft].
p()), 
pe(
e[iEmt].
p()), pres(
e[iRes].
p()), 
prec(
e[iRecAft].
p()), psystem;
 
  260                         if (
e[iRadBef].
id() == 21)
 
  263                         else if (std::abs(
e[iRadBef].
id()) <= 5 && ((
e[iEmt].
id() == 21) && ! 
m_vetoQED(settingsPtr)) )
 
  274                             cout << iResId << 
": " << 
e[iRadBef].id() << 
" > " << 
e[iRadAft].id() << 
" + " << 
e[iEmt].id() << 
"; " << 
scale << endl;
 
  277                     else if (iResId == -6){
 
  279                             cout << iResId << 
": " << 
e[iRadBef].id() << 
" > " << 
e[iRadAft].id() << 
" + " << 
e[iEmt].id() << 
"; " << 
scale << endl;
 
  282                     else if (iResId == 24) {
 
  284                             cout << iResId << 
": " << 
e[iRadBef].id() << 
" > " << 
e[iRadAft].id() << 
" + " << 
e[iEmt].id() << 
"; " << 
scale << endl;
 
  287                     else if (iResId == -24){
 
  289                             cout << iResId << 
": " << 
e[iRadBef].id() << 
" > " << 
e[iRadAft].id() << 
" + " << 
e[iEmt].id() << 
"; " << 
scale << endl;
 
  293                         #if PYTHIA_VERSION_INTEGER >= 8310 
  294                             loggerPtr->ERROR_MSG(
"Error in PowhegHooksBB4L::doVetoFSREmission: unimplemented case");
 
  296                             infoPtr->errorMsg(
"Error in PowhegHooksBB4L::doVetoFSREmission: unimplemented case");
 
 
 
 
◆ doVetoISREmission()
  
  | 
        
          | bool Pythia8::PowhegHooksSetterMethod::doVetoISREmission | ( | int | , |  
          |  |  | const Event & | e, |  
          |  |  | int | iSys |  
          |  | ) |  |  |  | inlineinherited | 
 
Definition at line 559 of file PowhegHooksSetterMethod.cxx.
  561     if (iSys != 0) 
return false;
 
  567     int iRadAft = -1, iEmt = -1, iRecAft = -1;
 
  568     for (
int i = 
e.size() - 1; 
i > 0; 
i--) {
 
  571         if      (iRadAft == -1 && 
e[
i].
status() == -41) iRadAft = 
i;
 
  572         else if (iEmt    == -1 && 
e[
i].
status() ==  43) iEmt    = 
i;
 
  573         else if (iRecAft == -1 && 
e[
i].
status() == -42) iRecAft = 
i;
 
  576         if      (iRadAft == -1 && 
e[
i].
status() == -41) iRadAft = 
i;
 
  577         else if (iEmt    == -1 && 
e[
i].
status() ==  43) iEmt    = 
i;
 
  578         else if (iRecAft == -1
 
  582         if      (iRadAft == -1 && 
e[
i].
status() == -41) iRadAft = 
i;
 
  583         else if (iEmt    == -1 && 
e[
i].
status() ==  43) iEmt    = 
i;
 
  584         else if (iRecAft == -1
 
  588       if (iRadAft != -1 && iEmt != -1 && iRecAft != -1) 
break;
 
  590     if (iRadAft == -1 || iEmt == -1 || iRecAft == -1) {
 
  591       loggerPtr->ABORT_MSG(
"could not find ISR emission");
 
 
 
 
◆ doVetoMPIEmission()
  
  | 
        
          | bool Pythia8::PowhegHooksSetterMethod::doVetoMPIEmission | ( | int | , |  
          |  |  | const Event & | e |  
          |  | ) |  |  |  | inlineinherited | 
 
 
◆ doVetoMPIStep()
  
  | 
        
          | bool Pythia8::PowhegBB4Ldlsl::doVetoMPIStep | ( | int | nMPI, |  
          |  |  | const Event & | e |  
          |  | ) |  |  |  | inlineoverride | 
 
Definition at line 525 of file PowhegHooksBB4Ldlsl.cxx.
  533                     if (nMPI > 1) 
return false;
 
  536                     bool top_exists = 
false;
 
  537                     bool antitop_exists = 
false;
 
  538                     for (
int i = 
e.size() - 1; 
i > 0; 
i--) {
 
  539                     if (
e[
i].isFinal()) {
 
  542                         if (
e[
i].
id() == 6) top_exists = 
true;
 
  543                         if (
e[
i].
id() == -6) antitop_exists = 
true;
 
  548                     int nCurrentFinal = -1;
 
  550                     if (top_exists && antitop_exists) nCurrentFinal = 2;
 
  552                     else if (top_exists || antitop_exists) nCurrentFinal = 3;
 
  554                         std::cout << 
"Error: neither top nor anti-top found - something went wrong" << std::endl;
 
  558                     if (
count != nCurrentFinal && 
count != nCurrentFinal + 1) {
 
  559                         cout << 
"Error: wrong number of final state particles in event: count " << 
count << 
" nCurrentFinal: "<< nCurrentFinal << endl;
 
  560                         for (
int i = 
e.size() - 1; 
i > 0; 
i--) {
 
  561                             if (
e[
i].isFinal()) { std:: cout << 
"FS particle " << 
i << 
" PID: " << 
e[
i].id() << std::endl;
 
  567                     bool isEmt = (
count == nCurrentFinal) ? 
false : 
true;
 
  568                     int iEmt  = (isEmt) ? 
e.size() - 1 : -1;
 
  579                         std::cout << 
"Error: m_pThardMode neither 1 or 2 - something went wrong" << std::endl;
 
 
 
 
◆ doVetoProcessLevel()
  
  | 
        
          | virtual bool Pythia8::PowhegBB4Ldlsl::doVetoProcessLevel | ( | Event & | e | ) |  |  | inlineoverridevirtual | 
 
Definition at line 176 of file PowhegHooksBB4Ldlsl.cxx.
  180                 ss << infoPtr->getEventComments();
 
  183                 assert (
temp == 
"#rwgt");
 
  187                 if (
radtype_.radtype==2) 
return false;
 
  189                 int i_top = -1, i_atop = -1, i_wp = -1, i_wm = -1;
 
  190                 for (
int i = 0; 
i < 
e.size(); 
i++) {
 
  191                     if (
e[
i].
id() == 6) i_top = 
i;
 
  192                     if (
e[
i].
id() == -6) i_atop = 
i;
 
  193                     if (
e[
i].
id() == 24) i_wp = 
i;
 
  194                     if (
e[
i].
id() == -24) i_wm = 
i;
 
 
 
 
◆ findresscale()
  
  | 
        
          | double Pythia8::PowhegBB4Ldlsl::findresscale | ( | const int | iRes, |  
          |  |  | const Event & | event |  
          |  | ) |  |  |  | inline | 
 
Definition at line 349 of file PowhegHooksBB4Ldlsl.cxx.
  352                 if (iRes < 0) 
return 1e30;
 
  355                 int nDau = 
event[iRes].daughterList().size();
 
  368                 else if (std::abs(
event[iRes].
id()) == 6) {
 
  370                     int idw = -1, 
idb = -1, idg = -1;
 
  371                     for (
int i = 0; 
i < nDau; 
i++) {
 
  372                         int iDau = 
event[iRes].daughterList()[
i];
 
  373                         if (std::abs(
event[iDau].
id()) == 24) idw = iDau;
 
  374                         if (std::abs(
event[iDau].
id()) ==  5) 
idb = iDau;
 
  375                         if (std::abs(
event[iDau].
id()) == 21) idg = iDau;
 
  380                     pw.bstback(
event[iRes].
p());
 
  390                 else if (std::abs(
event[iRes].
id()) == 24) {
 
  392                     int idq = -1, ida = -1, idg = -1;
 
  393                     for (
int i = 0; 
i < nDau; 
i++) {
 
  394                       int iDau = 
event[iRes].daughterList()[
i];
 
  395                       if      (
event[iDau].
id() == 21) idg = iDau;
 
  396                       else if (
event[iDau].
id()  >  0) idq = iDau;
 
  397                       else if (
event[iDau].
id()  <  0) ida = iDau;
 
  399                     if (idq<0 or ida <0){
 
  400                       throw std::out_of_range(
"idq or ida out of range in PowhegHooksBB4Ldlsl.cxx");
 
  404                     pq.bstback(
event[iRes].
p());
 
  406                     pa.bstback(
event[iRes].
p());
 
  411                     Vec4 pw = pq + pa + 
pg;
 
  413                     double csi = 2*
pg.e()/sqrt(q2);
 
  414                     double yq = 1 - 
pg*pq/(
pg.e()*pq.e());
 
  415                     double ya = 1 - 
pg*pa/(
pg.e()*pa.e());
 
  417                     return sqrt(
min(1-yq,1-ya)*
pow2(csi)*q2/2);
 
 
 
 
◆ getNFSRveto()
  
  | 
        
          | int Pythia8::PowhegHooksSetterMethod::getNFSRveto | ( |  | ) |  |  | inlineinherited | 
 
 
◆ getNInResonanceFSRVeto()
  
  | 
        
          | int Pythia8::PowhegBB4Ldlsl::getNInResonanceFSRVeto | ( |  | ) |  |  | inline | 
 
 
◆ getNISRveto()
  
  | 
        
          | int Pythia8::PowhegHooksSetterMethod::getNISRveto | ( |  | ) |  |  | inlineinherited | 
 
 
◆ gSplittingScale()
  
  | 
        
          | double Pythia8::PowhegBB4Ldlsl::gSplittingScale | ( | Vec4 | pt, |  
          |  |  | Vec4 | p1, |  
          |  |  | Vec4 | p2 |  
          |  | ) |  |  |  | inline | 
 
 
◆ initAfterBeams()
  
  | 
        
          | virtual bool Pythia8::PowhegBB4Ldlsl::initAfterBeams | ( |  | ) |  |  | inlineoverridevirtual | 
 
 
◆ match_decay()
  
  | 
        
          | bool Pythia8::PowhegBB4Ldlsl::match_decay | ( | int | iparticle, |  
          |  |  | const Event & | e, |  
          |  |  | const vector< int > & | ids, |  
          |  |  | vector< int > & | positions, |  
          |  |  | vector< Vec4 > & | momenta, |  
          |  |  | bool | exitOnExtraLegs = true |  
          |  | ) |  |  |  | inline | 
 
Definition at line 428 of file PowhegHooksBB4Ldlsl.cxx.
  430                 if (
e[iparticle].daughterList().
size() != 
ids.size()) {
 
  431                     if (exitOnExtraLegs && 
e[iparticle].daughterList().
size() > 
ids.size()) {
 
  432                         cout << 
"extra leg" << endl;
 
  438                 for (
long unsigned int i = 0; 
i < 
e[iparticle].daughterList().
size(); 
i++) {
 
  439                     int di = 
e[iparticle].daughterList()[
i];
 
  447                 for (
long unsigned int i = 0; 
i < 
e[iparticle].daughterList().
size(); 
i++) {
 
  448                     int di = 
e[iparticle].daughterList()[
i];
 
  449                     positions.push_back(di);
 
  450                     momenta.push_back(
e[di].
p());
 
 
 
 
◆ numberVetoMPIStep()
  
  | 
        
          | int Pythia8::PowhegBB4Ldlsl::numberVetoMPIStep | ( |  | ) |  |  | inlineoverride | 
 
 
◆ pT()
  
  | 
        
          | double Pythia8::PowhegHooksSetterMethod::pT | ( | const Event & | e, |  
          |  |  | int | RadAfterBranch, |  
          |  |  | int | EmtAfterBranch, |  
          |  |  | int | RecAfterBranch, |  
          |  |  | bool | FSR |  
          |  | ) |  |  |  | inlineinherited | 
 
Definition at line 102 of file PowhegHooksSetterMethod.cxx.
  106       return pTvincia(
e, RadAfterBranch, EmtAfterBranch, RecAfterBranch);
 
  109       return pTdire(
e, RadAfterBranch, EmtAfterBranch, RecAfterBranch);
 
  110     return pTpythia(
e, RadAfterBranch, EmtAfterBranch, RecAfterBranch, 
FSR);
 
 
 
 
◆ pTcalc()
  
  | 
        
          | double Pythia8::PowhegHooksSetterMethod::pTcalc | ( | const Event & | e, |  
          |  |  | int | i, |  
          |  |  | int | j, |  
          |  |  | int | k, |  
          |  |  | int | r, |  
          |  |  | int | xSRin |  
          |  | ) |  |  |  | inlineinherited | 
 
Definition at line 325 of file PowhegHooksSetterMethod.cxx.
  328     double pTemt = -1., pTnow;
 
  329     int xSR1 = (xSRin == -1) ? 0 : xSRin;
 
  330     int xSR2 = (xSRin == -1) ? 2 : xSRin + 1;
 
  331     for (
int xSR = xSR1; xSR < xSR2; xSR++) {
 
  333       bool FSR = (xSR == 0) ? 
false : 
true;
 
  354         int iInA = partonSystemsPtr->getInA(0);
 
  355         int iInB = partonSystemsPtr->getInB(0);
 
  356         while (
e[iInA].mother1() != 1) { iInA = 
e[iInA].mother1(); }
 
  357         while (
e[iInB].mother1() != 2) { iInB = 
e[iInB].mother1(); }
 
  360         int jNow = (j > 0) ? j : 0;
 
  361         int jMax = (j > 0) ? j + 1 : 
e.size();
 
  362         for (; jNow < jMax; jNow++) {
 
  365           if (!
e[jNow].isFinal()) 
continue;
 
  375               if (pTnow > 0.) pTemt = (pTemt < 0) ? pTnow : 
min(pTemt, pTnow);
 
  382               int outSize = partonSystemsPtr->sizeOut(0);
 
  383               for (
int iMem = 0; iMem < outSize; iMem++) {
 
  384                 int iNow = partonSystemsPtr->getOut(0, iMem);
 
  387                 if (iNow == jNow ) 
continue;
 
  390                 if (jNow == 
e[iNow].daughter1()
 
  391                   && jNow == 
e[iNow].daughter2()) 
continue;
 
  395                 if (pTnow > 0.) pTemt = (pTemt < 0)
 
  396                   ? pTnow : 
min(pTemt, pTnow);
 
  406               pTnow = 
pT(
e, iInA, jNow, iInB, 
FSR);
 
  407               if (pTnow > 0.) pTemt = (pTemt < 0) ? pTnow : 
min(pTemt, pTnow);
 
  408               pTnow = 
pT(
e, iInB, jNow, iInA, 
FSR);
 
  409               if (pTnow > 0.) pTemt = (pTemt < 0) ? pTnow : 
min(pTemt, pTnow);
 
  414               for (
int kNow = 0; kNow < 
e.size(); kNow++) {
 
  415                 if (kNow == jNow || !
e[kNow].isFinal()) 
continue;
 
  420                 pTnow = 
pT(
e, kNow, jNow, iInA, 
FSR);
 
  421                 if (pTnow > 0.) pTemt = (pTemt < 0)
 
  422                   ? pTnow : 
min(pTemt, pTnow);
 
  423                 pTnow = 
pT(
e, kNow, jNow, iInB, 
FSR);
 
  424                 if (pTnow > 0.) pTemt = (pTemt < 0)
 
  425                   ? pTnow : 
min(pTemt, pTnow);
 
  428                 for (
int rNow = 0; rNow < 
e.size(); rNow++) {
 
  429                   if (rNow == kNow || rNow == jNow ||
 
  430                       !
e[rNow].isFinal()) 
continue;
 
  432                   pTnow = 
pT(
e, kNow, jNow, rNow, 
FSR);
 
  433                   if (pTnow > 0.) pTemt = (pTemt < 0)
 
  434                     ? pTnow : 
min(pTemt, pTnow);
 
 
 
 
◆ pTdire()
  
  | 
        
          | double Pythia8::PowhegHooksSetterMethod::pTdire | ( | const Event & | event, |  
          |  |  | int | iRad, |  
          |  |  | int | iEmt, |  
          |  |  | int | iRec |  
          |  | ) |  |  |  | inlineinherited | 
 
Definition at line 233 of file PowhegHooksSetterMethod.cxx.
  242     if (
rad.isFinal() && rec.isFinal()) {
 
  244       const double sij = 2.*
rad.p()*emt.p();
 
  245       const double sik = 2.*
rad.p()*rec.p();
 
  246       const double sjk = 2.*rec.p()*emt.p();
 
  247       pT2 = sij*sjk/(sij+sik+sjk);
 
  248     } 
else if (
rad.isFinal() && !rec.isFinal()) {
 
  250       const double sij =  2.*
rad.p()*emt.p();
 
  251       const double sai = -2.*rec.p()*
rad.p();
 
  252       const double saj = -2.*rec.p()*emt.p();
 
  253       pT2 = sij*saj/(sai+saj)*(sij+saj+sai)/(sai+saj);
 
  254       if (sij+saj+sai < 1
e-5 && std::abs(sij+saj+sai) < 1
e-5) pT2 = sij;
 
  255     } 
else if (!
rad.isFinal() && rec.isFinal()) {
 
  257       const double sai = -2.*
rad.p()*emt.p();
 
  258       const double sik =  2.*rec.p()*emt.p();
 
  259       const double sak = -2.*
rad.p()*rec.p();
 
  260       pT2 = sai*sik/(sai+sak)*(sai+sik+sak)/(sai+sak);
 
  261     } 
else if (!
rad.isFinal() || !rec.isFinal()) {
 
  263       const double sai = -2.*
rad.p()*emt.p();
 
  264       const double sbi = -2.*rec.p()*emt.p();
 
  265       const double sab =  2.*
rad.p()*rec.p();
 
  266       pT2 = sai*sbi/sab*(sai+sbi+sab)/sab;
 
  268       loggerPtr->ABORT_MSG(
"could not determine branching type");
 
  274       loggerPtr->WARNING_MSG(
"negative pT");
 
 
 
 
◆ pTpowheg()
  
  | 
        
          | double Pythia8::PowhegHooksSetterMethod::pTpowheg | ( | const Event & | e, |  
          |  |  | int | i, |  
          |  |  | int | j, |  
          |  |  | bool | FSR |  
          |  | ) |  |  |  | inlineinherited | 
 
Definition at line 285 of file PowhegHooksSetterMethod.cxx.
  293       int iInA = partonSystemsPtr->getInA(0);
 
  294       int iInB = partonSystemsPtr->getInB(0);
 
  295       double betaZ = - ( 
e[iInA].pz() + 
e[iInB].pz() ) /
 
  296                        ( 
e[iInA].
e()  + 
e[iInB].e()  );
 
  297       Vec4 iVecBst(
e[
i].
p()), jVecBst(
e[j].
p());
 
  298       iVecBst.bst(0., 0., betaZ);
 
  299       jVecBst.bst(0., 0., betaZ);
 
  300       pTnow = sqrt( (iVecBst + jVecBst).m2Calc() *
 
  301                     iVecBst.e() * jVecBst.e() /
 
  302                     pow2(iVecBst.e() + jVecBst.e()) );
 
  311       loggerPtr->WARNING_MSG(
"negative pT");
 
 
 
 
◆ pTpythia() [1/2]
  
  | 
        
          | double Pythia8::PowhegBB4Ldlsl::pTpythia | ( | const Event & | e, |  
          |  |  | int | RadAfterBranch, |  
          |  |  | int | EmtAfterBranch, |  
          |  |  | int | RecAfterBranch |  
          |  | ) |  |  |  | inline | 
 
Definition at line 471 of file PowhegHooksBB4Ldlsl.cxx.
  476                 Vec4 radVec = 
e[RadAfterBranch].p();
 
  477                 Vec4 emtVec = 
e[EmtAfterBranch].p();
 
  478                 Vec4 recVec = 
e[RecAfterBranch].p();
 
  479                 int  radID  = 
e[RadAfterBranch].id();
 
  482                 Vec4 Q(radVec + emtVec);
 
  483                 double Qsq = Q.m2Calc();
 
  486                 double m2Rad = (std::abs(radID) >= 4 && std::abs(radID) < 7) ?
 
  487                 pow2(particleDataPtr->m0(radID)) : 0.;
 
  492                 Vec4 
sum = radVec + recVec + emtVec;
 
  493                 double m2Dip = 
sum.m2Calc();
 
  495                 double x1 = 2. * (
sum * radVec) / m2Dip;
 
  496                 double x3 = 2. * (
sum * emtVec) / m2Dip;
 
  498                 pTnow = 
z * (1. - 
z);
 
  502                 pTnow *= (Qsq - m2Rad);
 
  505                     cout << 
"Warning: pTpythia was negative" << endl;
 
 
 
 
◆ pTpythia() [2/2]
  
  | 
        
          | double Pythia8::PowhegHooksSetterMethod::pTpythia | ( | const Event & | e, |  
          |  |  | int | RadAfterBranch, |  
          |  |  | int | EmtAfterBranch, |  
          |  |  | int | RecAfterBranch, |  
          |  |  | bool | FSR |  
          |  | ) |  |  |  | inlineinherited | 
 
Definition at line 117 of file PowhegHooksSetterMethod.cxx.
  121     Vec4 radVec = 
e[RadAfterBranch].p();
 
  122     Vec4 emtVec = 
e[EmtAfterBranch].p();
 
  123     Vec4 recVec = 
e[RecAfterBranch].p();
 
  124     int  radID  = 
e[RadAfterBranch].id();
 
  127     double sign = (
FSR) ? 1. : -1.;
 
  128     Vec4 Q(radVec + 
sign * emtVec);
 
  129     double Qsq = 
sign * Q.m2Calc();
 
  132     double m2Rad = (std::abs(radID) >= 4 && std::abs(radID) < 7) ?
 
  133                    pow2(particleDataPtr->m0(radID)) : 0.;
 
  139       Vec4 
sum = radVec + recVec + emtVec;
 
  140       double m2Dip = 
sum.m2Calc();
 
  141       double x1 = 2. * (
sum * radVec) / m2Dip;
 
  142       double x3 = 2. * (
sum * emtVec) / m2Dip;
 
  144       pTnow = 
z * (1. - 
z);
 
  148       Vec4 qBR(radVec - emtVec + recVec);
 
  149       Vec4 qAR(radVec + recVec);
 
  150       z     = qBR.m2Calc() / qAR.m2Calc();
 
  155     pTnow *= (Qsq - 
sign * m2Rad);
 
  159       loggerPtr->WARNING_MSG(
"negative pT");
 
 
 
 
◆ pTvincia()
  
  | 
        
          | double Pythia8::PowhegHooksSetterMethod::pTvincia | ( | const Event & | event, |  
          |  |  | int | i1, |  
          |  |  | int | i3, |  
          |  |  | int | i2 |  
          |  | ) |  |  |  | inlineinherited | 
 
Definition at line 171 of file PowhegHooksSetterMethod.cxx.
  174     Vec4 
p1 = 
event[i1].p();
 
  175     Vec4 
p3 = 
event[i3].p();
 
  176     Vec4 
p2 = 
event[i2].p();
 
  179     int iMoth1 = 
event[i1].mother1();
 
  180     int iMoth2 = 
event[i2].mother1();
 
  181     if (iMoth1 == 0 || iMoth2 == 0) {
 
  182       loggerPtr->ABORT_MSG(
"could not find mothers of particles");
 
  187     double mMoth1Sq = 
event[iMoth1].m2();
 
  188     double mMoth2Sq = 
event[iMoth2].m2();
 
  189     double sgn1 = 
event[i1].isFinal() ? 1. : -1.;
 
  190     double sgn2 = 
event[i2].isFinal() ? 1. : -1.;
 
  191     double qSq13 = sgn1*(
m2(sgn1*
p1+
p3) - mMoth1Sq);
 
  192     double qSq23 = sgn2*(
m2(sgn2*
p2+
p3) - mMoth2Sq);
 
  196     if (
event[i1].isFinal() && 
event[i2].isFinal()) {
 
  198       sMax = 
m2(
p1+
p2+
p3) - mMoth1Sq - mMoth2Sq;
 
  200       || (!
event[i1].isFinal() && 
event[i2].isFinal())) {
 
  204       || (
event[i1].isFinal() && !
event[i2].isFinal())) {
 
  207     } 
else if (!
event[i1].isFinal() || !
event[i2].isFinal()) {
 
  211       loggerPtr->ABORT_MSG(
"could not determine branching type");
 
  216     double pT2now = qSq13*qSq23/sMax;
 
  220       loggerPtr->WARNING_MSG(
"negative pT");
 
 
 
 
◆ qSplittingScale()
  
  | 
        
          | double Pythia8::PowhegBB4Ldlsl::qSplittingScale | ( | Vec4 | pt, |  
          |  |  | Vec4 | p1, |  
          |  |  | Vec4 | p2 |  
          |  | ) |  |  |  | inline | 
 
 
◆ scaleResonance()
  
  | 
        
          | virtual double Pythia8::PowhegBB4Ldlsl::scaleResonance | ( | int | iRes, |  
          |  |  | const Event & | e |  
          |  | ) |  |  |  | inlineoverridevirtual | 
 
Definition at line 329 of file PowhegHooksBB4Ldlsl.cxx.
  331                     return sqrt(
e[iRes].m2Calc());
 
  333                     if (
e[iRes].
id() == 6)
 
  335                     else if (
e[iRes].
id() == -6)
 
  337                     else if (
e[iRes].
id() == 24)
 
  339                     else if (
e[iRes].
id() == -24)
 
 
 
 
◆ setpThard()
  
  | 
        
          | void Pythia8::PowhegHooksSetterMethod::setpThard | ( | double | newPThard | ) |  |  | inlineinherited | 
 
 
◆ m_accepted
  
  | 
        
          | bool Pythia8::PowhegHooksSetterMethod::m_accepted |  | privateinherited | 
 
 
◆ m_atopresscale
  
  | 
        
          | double Pythia8::PowhegBB4Ldlsl::m_atopresscale |  | private | 
 
 
◆ m_debug
◆ m_emittedMode
  
  | 
        
          | int Pythia8::PowhegHooksSetterMethod::m_emittedMode |  | privateinherited | 
 
 
◆ m_isEmt
  
  | 
        
          | bool Pythia8::PowhegHooksSetterMethod::m_isEmt |  | privateinherited | 
 
 
◆ m_MPIvetoMode
  
  | 
        
          | int Pythia8::PowhegHooksSetterMethod::m_MPIvetoMode |  | privateinherited | 
 
 
◆ m_nAcceptSeq
  
  | 
        
          | int Pythia8::PowhegHooksSetterMethod::m_nAcceptSeq |  | privateinherited | 
 
 
◆ m_nFinal
  
  | 
        
          | int Pythia8::PowhegHooksSetterMethod::m_nFinal |  | privateinherited | 
 
 
◆ m_nFSRveto
  
  | 
        
          | unsigned long int Pythia8::PowhegHooksSetterMethod::m_nFSRveto |  | privateinherited | 
 
 
◆ m_nInResonanceFSRveto
  
  | 
        
          | unsigned long int Pythia8::PowhegBB4Ldlsl::m_nInResonanceFSRveto |  | private | 
 
 
◆ m_nISRveto
  
  | 
        
          | unsigned long int Pythia8::PowhegHooksSetterMethod::m_nISRveto |  | privateinherited | 
 
 
◆ m_pTdefMode
  
  | 
        
          | int Pythia8::PowhegHooksSetterMethod::m_pTdefMode |  | privateinherited | 
 
 
◆ m_pTemtMode
  
  | 
        
          | int Pythia8::PowhegHooksSetterMethod::m_pTemtMode |  | privateinherited | 
 
 
◆ m_pThard
  
  | 
        
          | double Pythia8::PowhegHooksSetterMethod::m_pThard |  | privateinherited | 
 
 
◆ m_pThardMode
◆ m_pTmin
◆ m_pTMPI
  
  | 
        
          | double Pythia8::PowhegHooksSetterMethod::m_pTMPI |  | privateinherited | 
 
 
◆ m_pTpythiaVeto
◆ m_QEDvetoMode
  
  | 
        
          | int Pythia8::PowhegHooksSetterMethod::m_QEDvetoMode |  | privateinherited | 
 
 
◆ m_scaleResonanceVeto
◆ m_showerModel
  
  | 
        
          | int Pythia8::PowhegHooksSetterMethod::m_showerModel |  | privateinherited | 
 
 
◆ m_topresscale
  
  | 
        
          | double Pythia8::PowhegBB4Ldlsl::m_topresscale |  | private | 
 
 
◆ m_vetoCount
  
  | 
        
          | int Pythia8::PowhegHooksSetterMethod::m_vetoCount |  | privateinherited | 
 
 
◆ m_vetoDipoleFrame
◆ m_vetoFSREmission
◆ m_vetoMode
  
  | 
        
          | int Pythia8::PowhegHooksSetterMethod::m_vetoMode |  | privateinherited | 
 
 
◆ m_vetoProduction
◆ m_vetoQED
◆ m_wmresscale
  
  | 
        
          | double Pythia8::PowhegBB4Ldlsl::m_wmresscale |  | private | 
 
 
◆ m_wpresscale
  
  | 
        
          | double Pythia8::PowhegBB4Ldlsl::m_wpresscale |  | private | 
 
 
The documentation for this class was generated from the following file:
 
Pythia8_UserHooks::UserSetting< double > m_scaleResonanceVeto
Pythia8_UserHooks::UserSetting< bool > m_vetoQED
unsigned long int m_nFSRveto
bool isResonance(const T &p)
double pTpythia(const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch)
Pythia8_UserHooks::UserSetting< bool > m_debug
bool doVetoFSR(bool condition)
Particle_v1 Particle
Define the latest version of the particle class.
double gSplittingScale(Vec4 pt, Vec4 p1, Vec4 p2)
double pTdire(const Event &event, int iRad, int iEmt, int iRec)
POOL::TEvent event(POOL::TEvent::kClassAccess)
Pythia8_UserHooks::UserSetting< int > m_pTpythiaVeto
double qSplittingScale(Vec4 pt, Vec4 p1, Vec4 p2)
bool doVetoMPIStep(int nMPI, const Event &e)
unsigned long int m_nISRveto
Pythia8_UserHooks::UserSetting< int > m_pThardMode
double pTcalc(const Event &e, int i, int j, int k, int r, int xSRin)
Pythia8_UserHooks::UserSetting< int > m_vetoProduction
double pTvincia(const Event &event, int i1, int i3, int i2)
void setpThard(double newPThard)
unsigned long int m_nInResonanceFSRveto
double findresscale(const int iRes, const Event &event)
double pTpowheg(const Event &e, int i, int j, bool FSR)
double pT(const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch, bool FSR)
constexpr int pow(int base, int exp) noexcept
bool doVetoFSREmission(int, const Event &e, int iSys, bool)
Pythia8_UserHooks::UserSetting< double > m_pTmin
Pythia8_UserHooks::UserSetting< bool > m_vetoFSREmission
Pythia8_UserHooks::UserSetting< int > m_vetoDipoleFrame
double pTpythia(const Event &e, int RadAfterBranch, int EmtAfterBranch, int RecAfterBranch, bool FSR)
constexpr int pow2(int x)