PYTHIA  8.311
Public Member Functions | Public Attributes | List of all members
VinciaClustering Struct Reference

Simple struct to store information about a 3 -> 2 clustering. More...

#include <VinciaCommon.h>

Public Member Functions

void setDaughters (const Event &state, int dau1In, int dau2In, int dau3In)
 Set information about daughters from current event and daughters indices. More...
 
void setDaughters (const vector< Particle > &state, int dau1In, int dau2In, int dau3In)
 
void setMothers (int idMot1In, int idMot2In)
 Set mother particle ids.
 
void setAntenna (bool isFSRin, enum AntFunType antFunTypeIn)
 Set antenna information.
 
bool initInvariantAndMassVecs ()
 Initialise vectors of invariants and masses. More...
 
void setInvariantsAndMasses (const Event &state)
 Set invariants and masses. More...
 
void setInvariantsAndMasses (const vector< Particle > &state)
 
void swap13 ()
 Swap 1 <-> 3, including information about parents.
 
bool isFF () const
 Methods to get antenna type.
 
bool isRF () const
 
bool isII () const
 
bool isIF () const
 
string getAntName () const
 Get Vincia name of current antenna.
 
bool is2to3 () const
 Methods to get branching type (currently only 2 -> 3).
 

Public Attributes

int dau1 {}
 Branching daughter information (indices in event record).
 
int dau2 {}
 
int dau3 {}
 
bool isFSR {true}
 Antenna information.
 
AntFunType antFunType {NoFun}
 
int idMot1 {}
 Mother ids.
 
int idMot2 {}
 
vector< int > helDau = {9, 9, 9}
 Helicities.
 
vector< int > helMot = {9, 9}
 
vector< double > mDau
 Masses.
 
vector< double > mMot
 
double saj {}
 Invariants.
 
double sjb {}
 
double sab {}
 
vector< double > invariants
 Vector of invariants (stored as sAB, saj, sjb, sab).
 
double q2res {}
 Value of sector resolution variable that this clustering produces.
 
double q2evol {}
 Value of evolution variable that this clustering produces.
 
int kMapType {}
 Kinematic map (only used for FF).
 

Detailed Description

Simple struct to store information about a 3 -> 2 clustering.

Member Function Documentation

bool initInvariantAndMassVecs ( )

Initialise vectors of invariants and masses.

Save masses of daughters.

Calculate sAB and masses of mothers according to configuration.

Final-final gluon splitting.

Final-final gluon emission.

Resonance-final gluon splitting.

Resonance-final gluon emission.

IF initial-state gluon splitting.

IF quark conversion.

IF final-state gluon splitting.

IF gluon emission.

II initial-state gluon splitting.

II quark conversion.

II Gluon emission.

Check if masses and antenna invariant make sense.

Check if we have phase space left for this emission.

Save masses and invariants

void setDaughters ( const Event state,
int  dau1In,
int  dau2In,
int  dau3In 
)

Set information about daughters from current event and daughters indices.

}

Sector resolution function for 3->4 branchings (currently only used for gluon splitting, with m2qq as the measure). TODO: currently disabled. double Resolution::q2sector3to4(const Particle*, const Particle* , const Particle* j1, const Particle* j2) { Vec4 pqq = j1->p() + j2->p(); double m2qq = pqq.m2Calc(); return m2qq; } Sector resolution function for 2->4 branchings (double emission). Assume j1 and j2 are colour connected, with a and b hard recoilers. TODO: currently disabled. double Resolution::q2sector2to4(const Particle* a, const Particle* b, const Particle* j1, const Particle* j2) { /// Double gluon emissions. if (j1->isGluon() && j2->isGluon()) { return min(q2sector2to3(a,j2,j1,a->id(),j2->id()), q2sector2to3(j1,b,j2,j1->id(),b->id())); } /// Gluon Splittings. else { /// Final-Final. if (a->isFinal() && b->isFinal()) { return -1.; } /// Initial-Final with b in final state. else if (b->isFinal()) { return -1.; } /// Initial-Final with a in final state. else if (a->isFinal()) { return -1.; } /// Initial-Initial. else { return -1.; } } return -1.; } Sector resolution function for 3->5 branchings (emission + splitting). TODO: currently disabled. double Resolution::q2sector3to5(Particle* a, Particle* b, Particle* j1, Particle* j2, Particle* j3) { /// j3 is gluon. Particle* gluPtr; Particle* qPtr; Particle* qBarPtr; if (j1->id() == 21) { gluPtr = j1; qPtr = (j2->id() > 0 ? j2 : j3); qBarPtr = (j2->id() < 0 ? j2 : j3); } else if (j2->id() == 21) { gluPtr = j2; qPtr = (j1->id() > 0 ? j1 : j3); qBarPtr = (j1->id() < 0 ? j1 : j3); } else if (j3->id() == 21) { gluPtr = j3; qPtr = (j2->id() > 0 ? j2 : j1); qBarPtr = (j2->id() < 0 ? j2 : j1); } else { cout << " q2sector3to5: unable to identify branching type" << endl; return 1.e19; } Vec4 pqq = qPtr->p() + qBarPtr->p(); double m2qq = pqq.m2Calc(); Particle* colPtr = a; if (a->col() != gluPtr->acol()) colPtr = j1; if (j1->col() != gluPtr->acol()) colPtr = j2; if (j2->col() != gluPtr->acol()) colPtr = j3; if (j3->col() != gluPtr->acol()) colPtr = b; Particle* acolPtr = b; if (b->acol() != gluPtr->col()) acolPtr = j3; if (j3->acol() != gluPtr->col()) acolPtr = j2; if (j2->acol() != gluPtr->col()) acolPtr = j1; if (j1->acol() != gluPtr->col()) acolPtr = a; double q2emit = q2sector2to3(colPtr,acolPtr,gluPtr,21,gluPtr->id()); return min(q2emit,m2qq);The VinciaClustering struct. Set information based on current state and indices of daughters.

Store indices of daughters.

void setDaughters ( const vector< Particle > &  state,
int  dau1In,
int  dau2In,
int  dau3In 
)

Store indices of daughters.

void setInvariantsAndMasses ( const Event state)

Set invariants and masses.

Save masses.

Calculate invariants.

void setInvariantsAndMasses ( const vector< Particle > &  state)

Save masses.

Calculate invariants.


The documentation for this struct was generated from the following files: