PYTHIA
8.312
|
Final-final electroweak resonance antenna. More...
#include <VinciaEW.h>
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< EWBranching > | brVec |
EW branchings. | |
bool | hasTrial |
Trial variables. | |
double | q2Trial |
double | sijTrial |
double | sjkTrial |
int | poliTrial |
int | poljTrial |
vector< Vec4 > | pNew |
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 |
EWBranching * | brTrial {} |
Pointers. | |
Info * | infoPtr {} |
Rndm * | rndmPtr {} |
Logger * | loggerPtr {} |
PartonSystems * | partonSystemsPtr {} |
VinciaCommon * | vinComPtr {} |
AlphaEM * | alphaPtr {} |
AmpCalculator * | ampCalcPtr {} |
bool | doBosonInterference |
Settings. | |
int | verbose |
Verbosity. | |
Final-final electroweak resonance antenna.
|
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.
|
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.
|
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.
|
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.