PYTHIA  8.311
Public Member Functions | List of all members
EWAntennaFFres Class Reference

Final-final electroweak resonance antenna. More...

#include <VinciaEW.h>

Inheritance diagram for EWAntennaFFres:
EWAntennaFF EWAntenna

Public Member Functions

bool init (Event &event, int iMotIn, int iRecIn, int iSysIn, vector< EWBranching > &branchings, Settings *settingsPtr) override
 Overridden virtual functions. More...
 
bool isResonanceDecay () override
 
double generateTrial (double q2Start, double q2End, double alphaIn) override
 Generate a trial. More...
 
bool acceptTrial (Event &event) override
 Accept a trial. More...
 
void updateEvent (Event &event) override
 Update an event. More...
 
bool genForceDecay (Event &event)
 Generate the kinematics and channel for decays below matching scale. More...
 
- Public Member Functions inherited from EWAntenna
 EWAntenna ()
 Constructor and destructor.
 
void print ()
 Print, must be implemented by base classes.
 
void initPtr (Info *infoPtrIn, VinciaCommon *vinComPtrIn, AlphaEM *alphaPtrIn, AmpCalculator *ampCalcPtrIn)
 Initialize pointers.
 
void setVerbose (int verboseIn)
 Set verbosity level.
 
virtual void updatePartonSystems (Event &event)
 Base class for an electroweak antenna. More...
 
int getIndexMot ()
 Return index.
 
int getIndexRec ()
 
bool isSplitToFermions ()
 Check if splitting to fermions, inital, or resoance.
 
virtual bool isInitial ()
 
bool selectChannel (int idx, const double &cSum, const map< double, int > &cSumSoFar, int &idi, int &idj, double &mi2, double &mj2)
 Select a channel.
 

Additional Inherited Members

- Protected Attributes inherited from EWAntenna
int iMot
 Indices, PID, and polarization of I, K in Pythia event record.
 
int iRec
 
int idMot
 
int idRec
 
int polMot
 
Vec4 pMot
 Momenta of antenna constituents.
 
Vec4 pRec
 
double sAnt
 Masses and invariants of antenna constituents.
 
double mMot
 
double mMot2
 
double mRec
 
double mRec2
 
double alpha
 Overestimate of QED coupling.
 
int iSys
 Parton system this antenna is part of.
 
vector< EWBranchingbrVec
 EW branchings.
 
bool hasTrial
 Trial variables.
 
double q2Trial
 
double sijTrial
 
double sjkTrial
 
int poliTrial
 
int poljTrial
 
vector< Vec4pNew
 Outgoing momenta after branching.
 
double c0Sum
 Info on coefficents.
 
double c1Sum
 
double c2Sum
 
double c3Sum
 
map< double, int > c0SumSoFar
 
map< double, int > c1SumSoFar
 
map< double, int > c2SumSoFar
 
map< double, int > c3SumSoFar
 
double q2Match
 Matching scale.
 
int jNew
 Information for partonSystems.
 
unordered_map< int, int > iReplace
 
double shat
 
EWBranchingbrTrial {}
 Pointers.
 
InfoinfoPtr {}
 
RndmrndmPtr {}
 
LoggerloggerPtr {}
 
PartonSystemspartonSystemsPtr {}
 
VinciaCommonvinComPtr {}
 
AlphaEMalphaPtr {}
 
AmpCalculatorampCalcPtr {}
 
bool doBosonInterference
 Settings.
 
int verbose
 Verbosity.
 

Detailed Description

Final-final electroweak resonance antenna.

Member Function Documentation

bool acceptTrial ( Event event)
overridevirtual

Accept a trial.

Check if this is a resonance decay.

Force the decay. Always return true afterwards.

If it is a shower branching, we need to veto.

Shower suppression for matching to the Breit-Wigner distribution.

On-shell masses, off-shellness, and suppression factor.

Veto to add the suppression factor.

If passed, do regular shower veto.

Reimplemented from EWAntennaFF.

double generateTrial ( double  q2Start,
double  q2End,
double  alphaIn 
)
overridevirtual

Generate a trial.

Reset the current trial.

If the offshellness is above the current shower scale, decay immediately.

If this is a resonance decay without recoiler or if ewMatchMode == 1, decay immediately.

Set the lower bound to q2Dec. Note that for ewMode == 4, q2Dec == 0.

If applying the suppression factor, add a cutoff.

Sample a trial scale.

Check if the trial scale is above the cutoff.

Set q2Trial equal to the resonance offshelless.

Reimplemented from EWAntennaFF.

bool genForceDecay ( Event event)

Generate the kinematics and channel for decays below matching scale.

Check if allowed to decay (according to Pythia decay table).

Resonance mass to be used in decay, total and partial width.

Fetch daughter ids.

Check if Pythia thinks this channel should be switched off.

EW shower only does 1->2 decays so ignore any others.

Found mode. Check if it is on.

Add partial width.

Add to cumulative.

Check if there is at least a single decay channel.

Select a channel with relative prob of its partial width. Subject to which modes are switched on in Pythia.

Store selection.

Next step is to sample angles for the decay in the CM frame. The azimuthal angle is uniformly distributed.

The polar angle is distributed according to the final-state spin-summed amplitudes. It is not uniform due to the polarization of the resonance. The distribution always looks like r0 + r1 * c + r2 * c^2, where c = cosTheta. First determine these coefficients for this decay.

Top decay - amplitudes are identical for t and tbar.

Higgs decay - no polarization, so uniform distribution.

Vector boson decay.

Get fermion couplings.

Positive transverse polarization.

Negative transverse polarization.

Longitudinal polarization.

Without too much loss of efficiency, we can overestimate the distribution with a constant function. We find the maximum by considering the function at c=1,0,-1.

Rejection sampling loop.

Fetch the momenta for this decay channel.

Now select a spin channel - use the polarise function.

Special case for top decays. Redistribute the W mass using the Breit-Wigner.

Keep trying until inside phase space.

Redo the kinematics.

Apply bosonic interference weight.

bool init ( Event event,
int  iMotIn,
int  iRecIn,
int  iSysIn,
vector< EWBranching > &  branchings,
Settings settingsPtr 
)
overridevirtual

Overridden virtual functions.

Final-final electroweak resonance antenna.

Initialize.

Call the FF antenna init function.

Resonance-related settings.

Check if this resonance has a recoiler.

Compute offshellness = minimum decay scale. (In principle, choice = 0 should be hardcoded = width, but not sure that makes sense here so defaulting to scale of order width in that case.)

Minimum offshellness is NANO to avoid numerical issues. Multiply by 0.999 to make sure Pythia decays get to go first.

Reimplemented from EWAntennaFF.

void updateEvent ( Event event)
overridevirtual

Update an event.

Clear information for replacing later in partonSystems.

Fetch ids, masses, trial vectors.

If this is not a 1->2 decay, we need a temporary entry for resonance just prior to decay with recoiled momentum and with special status code(57).

Update the mother particle.

Update the recoiler if this was not a 1->2 branching.

Save information for parton systems.

Add daughters.

If new particles are qqbar pair, we need new color indices.

Otherwise carry I color indices to i.

Update the resonance.

Save information for parton systems.

Reimplemented from EWAntennaFF.


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