PYTHIA
8.312
|
Calculator class for amplitudes, antennae, and Breit-Wigners. More...
#include <VinciaEW.h>
Public Member Functions | |
void | initPtr (Info *infoPtrIn, AlphaEM *alphaPtrIn, AlphaStrong *alphaSPtrIn) |
Initialize the pointers. | |
void | init (EWParticleData *dataIn, unordered_map< pair< int, int >, vector< pair< int, int > > > *cluMapFinalIn, unordered_map< pair< int, int >, vector< pair< int, int > > > *cluMapInitialIn) |
Initialize with maps. More... | |
void | setVerbose (int verboseIn) |
Set verbosity level. | |
complex | spinProd (int pol, const Vec4 &ka, const Vec4 &kb) |
Spinor products used for the calculation of the amplitudes. More... | |
complex | spinProd (int pol, const Vec4 &ka, const Vec4 &pa, const Vec4 &kb) |
complex | spinProd (int pol, const Vec4 &ka, const Vec4 &pa, const Vec4 &pb, const Vec4 &kb) |
complex | spinProd (int pol, const Vec4 &ka, const Vec4 &pa, const Vec4 &pb, const Vec4 &pc, const Vec4 &kb) |
complex | spinProd (int pol, const Vec4 &ka, const Vec4 &pa, const Vec4 &pb, const Vec4 &pc, const Vec4 &pd, const Vec4 &kb) |
Vec4 | spinProdFlat (string method, const Vec4 &ka, const Vec4 &pa) |
void | initCoup (bool va, int id1, int id2, int pol, bool m) |
Initialize couplings. | |
void | initFSRAmp (bool va, int id1, int id2, int pol, const Vec4 &pi, const Vec4 &pj, const double &mMot, const double &widthQ2) |
Initialize an FSR branching amplitude. More... | |
bool | zdenFSRAmp (const string &method, const Vec4 &pi, const Vec4 &pj, bool check) |
Check for zero denominator in an FSR amplitude. | |
void | initISRAmp (bool va, int id1, int id2, int pol, const Vec4 &pa, const Vec4 &pj, double &mA) |
Initialize an ISR branching amplitude. More... | |
bool | zdenISRAmp (const string &method, const Vec4 &pa, const Vec4 &pj, bool check) |
Check for zero denominator in an ISR amplitude. | |
complex | ftofvFSRAmp (const Vec4 &pi, const Vec4 &pj, int idMot, int idi, int idj, double mMot, double widthQ2, int polMot, int poli, int polj) |
Final-state branching amplitudes. More... | |
complex | ftofhFSRAmp (const Vec4 &pi, const Vec4 &pj, int idMot, int idi, int idj, double mMot, double widthQ2, int polMot, int poli, int polj) |
FSR: f->fH. More... | |
complex | fbartofbarvFSRAmp (const Vec4 &pi, const Vec4 &pj, int idMot, int idi, int idj, double mMot, double widthQ2, int polMot, int poli, int polj) |
FSR: fbar->fbarV. More... | |
complex | fbartofbarhFSRAmp (const Vec4 &pi, const Vec4 &pj, int idMot, int idi, int idj, double mMot, double widthQ2, int polMot, int poli, int polj) |
FSR: fbar->fbarH. More... | |
complex | vTtoffbarFSRAmp (const Vec4 &pi, const Vec4 &pj, int idMot, int idi, int idj, double mMot, double widthQ2, int polMot, int poli, int polj) |
FSR: VT->ffbar. More... | |
complex | vTtovhFSRAmp (const Vec4 &pi, const Vec4 &pj, int idMot, int idi, int idj, double mMot, double widthQ2, int polMot, int poli, int polj) |
FSR: VT->VH. More... | |
complex | vTtovvFSRAmp (const Vec4 &pi, const Vec4 &pj, int idMot, int idi, int idj, double mMot, double widthQ2, int polMot, int poli, int polj) |
FSR: VT->VV. More... | |
complex | vLtoffbarFSRAmp (const Vec4 &pi, const Vec4 &pj, int idMot, int idi, int idj, double mMot, double widthQ2, int polMot, int poli, int polj) |
FSR: VL->ffbar. More... | |
complex | vLtovhFSRAmp (const Vec4 &pi, const Vec4 &pj, int idMot, int idi, int idj, double mMot, double widthQ2, int polMot, int poli, int polj) |
FSR: VL->VH. More... | |
complex | vLtovvFSRAmp (const Vec4 &pi, const Vec4 &pj, int idMot, int idi, int idj, double mMot, double widthQ2, int polMot, int poli, int polj) |
FSR: VL->VV. More... | |
complex | htoffbarFSRAmp (const Vec4 &pi, const Vec4 &pj, int idMot, int idi, int idj, double mMot, double widthQ2, int polMot, int poli, int polj) |
FSR: H->ffbar. More... | |
complex | htovvFSRAmp (const Vec4 &pi, const Vec4 &pj, int idMot, int idi, int idj, double mMot, double widthQ2, int polMot, int poli, int polj) |
FSR: H->VV. More... | |
complex | htohhFSRAmp (const Vec4 &pi, const Vec4 &pj, int idMot, int idi, int idj, double mMot, double widthQ2, int polMot, int poli, int polj) |
FSR: H->HH. More... | |
complex | ftofvISRAmp (const Vec4 &pa, const Vec4 &pj, int idA, int ida, int idj, double mA, int polA, int pola, int polj) |
Initial-state branching amplitudes. More... | |
complex | ftofhISRAmp (const Vec4 &pa, const Vec4 &pj, int idA, int ida, int idj, double mA, int polA, int pola, int polj) |
ISR: f->fH. More... | |
complex | fbartofbarvISRAmp (const Vec4 &pa, const Vec4 &pj, int idA, int ida, int idj, double mA, int polA, int pola, int polj) |
ISR: fbar->fbarV. More... | |
complex | fbartofbarhISRAmp (const Vec4 &pa, const Vec4 &pj, int idA, int ida, int idj, double mA, int polA, int pola, int polj) |
ISR: fbar->fbarH. More... | |
complex | branchAmpFSR (const Vec4 &pi, const Vec4 &pj, int idMot, int idi, int idj, double mMot, double widthQ2, int polMot, int poli=9, int polj=9) |
Branching amplitude selector. More... | |
complex | branchAmpISR (const Vec4 &pa, const Vec4 &pj, int idA, int ida, int idj, double mA, int polA, int pola=9, int polj=9) |
ISR amplitude selector. More... | |
double | branchKernelFF (const Vec4 &pi, const Vec4 &pj, int idMot, int idi, int idj, double mMot, double widthQ2, int polMot, int poli, int polj) |
Compute FF antenna function from amplitudes. | |
vector< AntWrapper > | branchKernelFF (Vec4 pi, Vec4 pj, int idMot, int idi, int idj, double mMot, double widthQ2, int polMot) |
Compute FF antenna functions from amplitudes for all polarizations. More... | |
double | branchKernelII (Vec4 pa, Vec4 pj, int idA, int ida, int idj, double mA, int polA, int pola, int polj) |
Compute II antenna function from amplitudes. | |
vector< AntWrapper > | branchKernelII (Vec4 pa, Vec4 pj, int idA, int ida, int idj, double mA, int polA) |
Compute II antenna functions from amplitudes for all polarizations. More... | |
void | initFFAnt (bool va, int id1, int id2, int pol, const double &Q2, const double &widthQ2, const double &xi, const double &xj, const double &mMot, const double &miIn, const double &mjIn) |
Initialize an FF antenna function. More... | |
void | hmsgFFAnt (int polMot, int poli, int polj) |
Report helicity combination error for an FF antenna function. | |
void | initIIAnt (int id1, int id2, int pol, const double &Q2, const double &xA, const double &xj, const double &mA, const double &maIn, const double &mjIn) |
Initialize an II antenna function. More... | |
void | hmsgIIAnt (int polA, int pola, int polj) |
Report helicity combination error for an II antenna function. | |
double | ftofvFFAnt (double Q2, double widthQ2, double xi, double xj, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
Antenna functions. More... | |
double | ftofhFFAnt (double Q2, double widthQ2, double xi, double xj, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FF: f->fH. More... | |
double | fbartofbarvFFAnt (double Q2, double widthQ2, double xi, double xj, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FF: fbar->fbarV. More... | |
double | fbartofbarhFFAnt (double Q2, double widthQ2, double xi, double xj, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FF: fbar->fbarH. More... | |
double | vtoffbarFFAnt (double Q2, double widthQ2, double xi, double xj, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FF: V->ffbar. More... | |
double | vtovhFFAnt (double Q2, double widthQ2, double xi, double xj, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FF: V->VH. More... | |
double | vtovvFFAnt (double Q2, double widthQ2, double xi, double xj, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FF: V->VV. More... | |
double | htoffbarFFAnt (double Q2, double widthQ2, double xi, double xj, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FF: H->ffbar. More... | |
double | htovvFFAnt (double Q2, double widthQ2, double xi, double xj, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FF: H->VV. More... | |
double | htohhFFAnt (double Q2, double widthQ2, double xi, double xj, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FF: H->HH. | |
double | ftofvIIAnt (double Q2, double xA, double xj, int idA, int ida, int idj, double mA, double maIn, double mjIn, int polA, int pola, int polj) |
II: f->fV. More... | |
double | fbartofbarvIIAnt (double Q2, double xA, double xj, int idA, int ida, int idj, double mA, double maIn, double mjIn, int polA, int pola, int polj) |
II: fbar->fbarV. More... | |
double | antFuncFF (double Q2, double widthQ2, double xi, double xj, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FF antenna function calculator. More... | |
vector< AntWrapper > | antFuncFF (double Q2, double widthQ2, double xi, double xj, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot) |
FF antenna function calculator for all outgoing polarizations. More... | |
double | antFuncII (double Q2, double xA, double xj, int idA, int ida, int idj, double mA, double maIn, double mjIn, int polA, int pola, int polj) |
II antenna function calculator. More... | |
vector< AntWrapper > | antFuncII (double Q2, double xA, double xj, int idA, int ida, int idj, double mA, double maIn, double mjIn, int polA) |
II antenna function calculator for all outgoing polarizations. More... | |
void | initFSRSplit (bool va, int id1, int id2, int pol, const double &mMot, const double &miIn, const double &mjIn) |
Initialize an FSR splitting kernel. | |
bool | zdenFSRSplit (const string &method, const double &Q2, const double &z, bool check) |
Check for zero denominator in an FSR splitting kernel. | |
void | hmsgFSRSplit (int polMot, int poli, int polj) |
Report helicty combination error for an FSR splitting kernel. | |
void | initISRSplit (bool va, int id1, int id2, int pol, const double &mA, const double &maIn, const double &mjIn) |
Initialize an ISR splitting kernel. | |
bool | zdenISRSplit (const string &method, const double &Q2, const double &z, bool flip, bool check) |
Check for zero denominator in an ISR splitting kernel. | |
void | hmsgISRSplit (int polA, int pola, int polj) |
Report helicty combination error for an ISR splitting kernel. | |
double | ftofvFSRSplit (double Q2, double z, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
Final-state splitting kernels. More... | |
double | ftofhFSRSplit (double Q2, double z, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FSR: f->fH. More... | |
double | fbartofbarvFSRSplit (double Q2, double z, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FSR: fbar->fbarV. More... | |
double | fbartofbarhFSRSplit (double Q2, double z, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FSR: fbar->fbarH. More... | |
double | vTtoffbarFSRSplit (double Q2, double z, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FSR: VT->ffbar. More... | |
double | vTtovhFSRSplit (double Q2, double z, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FSR: VT->ffbar. More... | |
double | vTtovvFSRSplit (double Q2, double z, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FSR: VT->VV. More... | |
double | vLtoffbarFSRSplit (double Q2, double z, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FSR: VL->ffbar. More... | |
double | vLtovhFSRSplit (double Q2, double z, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FSR: VL->VH. More... | |
double | vLtovvFSRSplit (double Q2, double z, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FSR: VL->VV. More... | |
double | htoffbarFSRSplit (double Q2, double z, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FSR: H->ffbar. More... | |
double | htovvFSRSplit (double Q2, double z, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FSR: H->VV. More... | |
double | htohhFSRSplit (double Q2, double z, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
FSR: H->HH. More... | |
double | ftofvISRSplit (double Q2, double z, int idA, int ida, int idj, double mA, double maIn, double mjIn, int polA, int pola, int polj) |
Initial-state splitting kernels. More... | |
double | ftofhISRSplit (double Q2, double z, int idA, int ida, int idj, double mA, double maIn, double mjIn, int polA, int pola, int polj) |
ISR: f->fH. More... | |
double | fbartofbarvISRSplit (double Q2, double z, int idA, int ida, int idj, double mA, double maIn, double mjIn, int polA, int pola, int polj) |
ISR: fbar->fbarV. More... | |
double | fbartofbarhISRSplit (double Q2, double z, int idA, int ida, int idj, double mA, double maIn, double mjIn, int polA, int pola, int polj) |
ISR: fbar->fbarH. More... | |
double | splitFuncFSR (double Q2, double z, int idMot, int idi, int idj, double mMot, double miIn, double mjIn, int polMot, int poli, int polj) |
Splitting kernel caller. More... | |
double | splitFuncISR (double Q2, double z, int idA, int ida, int idj, double mA, double maIn, double mjIn, int polA, int pola, int polj) |
Splitting-function selector for ISR. More... | |
double | getPartialWidth (int idMot, int idi, int idj, double mMot, int polMot) |
Compute partial decay width. More... | |
double | getTotalWidth (int idMot, double mMot, int polMot) |
Compute total decay width. More... | |
double | getBreitWigner (int id, double m, int pol) |
Breit-Wigner calculators. More... | |
double | getBreitWignerOverestimate (int id, double m, int pol) |
Breit-Wigner overestimate. | |
double | sampleMass (int id, int pol) |
Generate Breit-Wigner mass. More... | |
void | applyBosonInterferenceFactor (Event &event, int XYEv, Vec4 pi, Vec4 pj, int idi, int idj, int poli, int polj) |
Bosonic interference factor. More... | |
bool | polarise (vector< Particle > &state) |
Polarise a resonance decay. More... | |
double | eventWeight () |
EW event weight. | |
void | eventWeight (double eventWeightIn) |
Public Attributes | |
EWParticleData * | dataPtr {} |
Public data members. More... | |
unordered_map< pair< int, int >, double > | vMap |
unordered_map< pair< int, int >, double > | aMap |
unordered_map< pair< int, int >, double > | gMap |
unordered_map< pair< int, int >, double > | vCKM |
Calculator class for amplitudes, antennae, and Breit-Wigners.
double antFuncFF | ( | double | Q2, |
double | widthQ2, | ||
double | xi, | ||
double | xj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FF antenna function calculator.
Antenna-function selector for FF branchings.
I is fermion.
j is Higgs.
j is vector.
I is antifermion.
j is Higgs.
j is vector.
I is Higgs.
i is Higgs.
i is fermion.
i is vector.
I is vector.
i is fermion.
j is Higgs.
i is vector.
Add on factor 3 to fix colour counting for quarks.
vector< AntWrapper > antFuncFF | ( | double | Q2, |
double | widthQ2, | ||
double | xi, | ||
double | xj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot | ||
) |
FF antenna function calculator for all outgoing polarizations.
Find appropriate spins for i and j.
Sum over all final-state spins.
double antFuncII | ( | double | Q2, |
double | xA, | ||
double | xj, | ||
int | idA, | ||
int | ida, | ||
int | idj, | ||
double | mA, | ||
double | maIn, | ||
double | mjIn, | ||
int | polA, | ||
int | pola, | ||
int | polj | ||
) |
II antenna function calculator.
Antenna-function selector for II branchings.
Fermion branching.
Antifermion branching.
vector< AntWrapper > antFuncII | ( | double | Q2, |
double | xA, | ||
double | xj, | ||
int | idA, | ||
int | ida, | ||
int | idj, | ||
double | mA, | ||
double | maIn, | ||
double | mjIn, | ||
int | polA | ||
) |
II antenna function calculator for all outgoing polarizations.
Find appropriate spins for a and j. Current implementation only has f -> fv.
Sum over all final-state spins.
void applyBosonInterferenceFactor | ( | Event & | event, |
int | XYEv, | ||
Vec4 | pi, | ||
Vec4 | pj, | ||
int | idi, | ||
int | idj, | ||
int | poli, | ||
int | polj | ||
) |
Bosonic interference factor.
Bosonic interference weight calculator.
The interfering bosons are X and Y. Get momentum and polarization.
For longitudinal bosons, X = Z, Y = Higgs. For transverse bosons, X = Z, Y = Gamma.
Interfering boson masses.
Compute splitting amplitudes X/Y -> idi, idj.
Now find all emission amplitudes for the emission of X/Y.
Find all particles that may be clustered with the X/Y boson.
Don't cluster with yourself.
Get all clusterings for each particle in the system. Compare with a Z because it clusters with the most things. Is the clustering candidate in the final state?
Compute emission amplitudes.
Don't add to weight if emit amplitudes are zero.
Contributions to the numerator and denominator.
Or is it in the initial state?
Always treat initial state as massless.
Compute emission amplitudes
Don't add to weight if emit amplitudes are zero.
Contributions to the numerator and denominator.
Don't do anything if there were no clusterings.
Protect against nan weights.
Get total weight.
Let weightContainer know that Vincia modified the (nominal) weight.
complex branchAmpFSR | ( | const Vec4 & | pi, |
const Vec4 & | pj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | widthQ2, | ||
int | polMot, | ||
int | poli = 9 , |
||
int | polj = 9 |
||
) |
Branching amplitude selector.
FSR amplitude selector.
I is fermion.
j is Higgs.
j is vector.
I is antifermion.
j is Higgs.
j is vector.
I is higgs.
i is Higgs.
i is fermion (add a factor sqrt(3) for splittings to quarks).
i is vector.
I is vector.
I is transverse.
i is fermion (add a factor sqrt(3) for splittings to quarks).
j is Higgs.
i is vector.
I is longitudinal.
i is fermion (add a factor sqrt(3) for splittings to quarks).
j is Higgs.
i is vector.
complex branchAmpISR | ( | const Vec4 & | pa, |
const Vec4 & | pj, | ||
int | idA, | ||
int | ida, | ||
int | idj, | ||
double | mA, | ||
int | polA, | ||
int | pola = 9 , |
||
int | polj = 9 |
||
) |
ISR amplitude selector.
A is fermion.
j is Higgs.
j is vector.
A is antifermion.
j is Higgs.
j is vector.
vector< AntWrapper > branchKernelFF | ( | Vec4 | pi, |
Vec4 | pj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | widthQ2, | ||
int | polMot | ||
) |
Compute FF antenna functions from amplitudes for all polarizations.
Find appropriate spins for i and j.
Sum over all final-state spins.
Square amplitudes and check size.
vector< AntWrapper > branchKernelII | ( | Vec4 | pa, |
Vec4 | pj, | ||
int | idA, | ||
int | ida, | ||
int | idj, | ||
double | mA, | ||
int | polA | ||
) |
Compute II antenna functions from amplitudes for all polarizations.
Find appropriate spins for a and j. Current implementation only has f -> fv.
Square amplitudes and check size.
double fbartofbarhFFAnt | ( | double | Q2, |
double | widthQ2, | ||
double | xi, | ||
double | xj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FF: fbar->fbarH.
Initialize.
Calculate antenna function.
complex fbartofbarhFSRAmp | ( | const Vec4 & | pi, |
const Vec4 & | pj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | widthQ2, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: fbar->fbarH.
Initialize.
Calculate amplitude.
double fbartofbarhFSRSplit | ( | double | Q2, |
double | z, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: fbar->fbarH.
Initialize.
Calculate kernel.
complex fbartofbarhISRAmp | ( | const Vec4 & | pa, |
const Vec4 & | pj, | ||
int | idA, | ||
int | ida, | ||
int | idj, | ||
double | mA, | ||
int | polA, | ||
int | pola, | ||
int | polj | ||
) |
ISR: fbar->fbarH.
Initialize.
Calculate amplitude.
double fbartofbarhISRSplit | ( | double | Q2, |
double | z, | ||
int | idA, | ||
int | ida, | ||
int | idj, | ||
double | mA, | ||
double | maIn, | ||
double | mjIn, | ||
int | polA, | ||
int | pola, | ||
int | polj | ||
) |
ISR: fbar->fbarH.
Initialize.
Calculate kernel.
double fbartofbarvFFAnt | ( | double | Q2, |
double | widthQ2, | ||
double | xi, | ||
double | xj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FF: fbar->fbarV.
Initialize.
Calculate antenna function.
Multiply by CKM matrix - only for q+W.
complex fbartofbarvFSRAmp | ( | const Vec4 & | pi, |
const Vec4 & | pj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | widthQ2, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: fbar->fbarV.
Initialize.
Calculate amplitude. Transverse polarizations, all defined with hel pol.
Longitudinal polarizations.
Multiply by CKM matrix - only for q+W.
double fbartofbarvFSRSplit | ( | double | Q2, |
double | z, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: fbar->fbarV.
Initialize.
Calculate kernel.
double fbartofbarvIIAnt | ( | double | Q2, |
double | xA, | ||
double | xj, | ||
int | idA, | ||
int | ida, | ||
int | idj, | ||
double | mA, | ||
double | maIn, | ||
double | mjIn, | ||
int | polA, | ||
int | pola, | ||
int | polj | ||
) |
II: fbar->fbarV.
Initialize.
Calculate antenna function.
Multiply by CKM matrix - only for q+W.
complex fbartofbarvISRAmp | ( | const Vec4 & | pa, |
const Vec4 & | pj, | ||
int | idA, | ||
int | ida, | ||
int | idj, | ||
double | mA, | ||
int | polA, | ||
int | pola, | ||
int | polj | ||
) |
ISR: fbar->fbarV.
Initialize.
Calculate amplitude. All defined with hel pol.
Multiply by CKM matrix - only for q+W.
double fbartofbarvISRSplit | ( | double | Q2, |
double | z, | ||
int | idA, | ||
int | ida, | ||
int | idj, | ||
double | mA, | ||
double | maIn, | ||
double | mjIn, | ||
int | polA, | ||
int | pola, | ||
int | polj | ||
) |
ISR: fbar->fbarV.
Initialize.
Calculate kernel.
double ftofhFFAnt | ( | double | Q2, |
double | widthQ2, | ||
double | xi, | ||
double | xj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FF: f->fH.
Initialize.
Calculate antenna function.
complex ftofhFSRAmp | ( | const Vec4 & | pi, |
const Vec4 & | pj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | widthQ2, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: f->fH.
Initialize.
Calculate amplitude.
double ftofhFSRSplit | ( | double | Q2, |
double | z, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: f->fH.
Initialize.
Calculate kernel.
complex ftofhISRAmp | ( | const Vec4 & | pa, |
const Vec4 & | pj, | ||
int | idA, | ||
int | ida, | ||
int | idj, | ||
double | mA, | ||
int | polA, | ||
int | pola, | ||
int | polj | ||
) |
ISR: f->fH.
Initialize.
Calculate amplitude.
double ftofhISRSplit | ( | double | Q2, |
double | z, | ||
int | idA, | ||
int | ida, | ||
int | idj, | ||
double | mA, | ||
double | maIn, | ||
double | mjIn, | ||
int | polA, | ||
int | pola, | ||
int | polj | ||
) |
ISR: f->fH.
Initialize.
Calculate kernel.
double ftofvFFAnt | ( | double | Q2, |
double | widthQ2, | ||
double | xi, | ||
double | xj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
Antenna functions.
FF Antenna functions for branching process I (K) -> i j (k). Q2 is the offshellness of I. xi and xj are energy fractions of pi and pj in the collinear limit.
FF: f->fV.
Initialize.
Calculate antenna function.
Multiply by CKM matrix - only for q+W.
complex ftofvFSRAmp | ( | const Vec4 & | pi, |
const Vec4 & | pj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | widthQ2, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
Final-state branching amplitudes.
Branching Amplitudes.
Branching amplitude formalism. Naming scheme: f = fermion, v = vector boson, h = higgs.
These functions still have the option to compute branching kernels with a width. FSR: f->fV.
Initialize.
Calculate amplitude. Transverse polarizations, all defined with hel -pol.
Longitudinal polarizations.
Multiply by CKM matrix - only for q+W.
double ftofvFSRSplit | ( | double | Q2, |
double | z, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
Final-state splitting kernels.
Splitting functions.
FSR: f->fV.
Initialize.
Calculate kernel.
double ftofvIIAnt | ( | double | Q2, |
double | xA, | ||
double | xj, | ||
int | idA, | ||
int | ida, | ||
int | idj, | ||
double | mA, | ||
double | maIn, | ||
double | mjIn, | ||
int | polA, | ||
int | pola, | ||
int | polj | ||
) |
II: f->fV.
II Antenna functions for branching process A (B) -> a j (b). Q2 is the offshellness of A. xA and xj are energy fractions of pA and pj in the collinear limit.
Initialize.
Calculate antenna function.
Multiply by CKM matrix - only for q+W.
complex ftofvISRAmp | ( | const Vec4 & | pa, |
const Vec4 & | pj, | ||
int | idA, | ||
int | ida, | ||
int | idj, | ||
double | mA, | ||
int | polA, | ||
int | pola, | ||
int | polj | ||
) |
Initial-state branching amplitudes.
ISR: f->fV.
Initialize.
Calculate amplitude (all defined with hel -pol).
Multiply by CKM matrix - only for q+W.
double ftofvISRSplit | ( | double | Q2, |
double | z, | ||
int | idA, | ||
int | ida, | ||
int | idj, | ||
double | mA, | ||
double | maIn, | ||
double | mjIn, | ||
int | polA, | ||
int | pola, | ||
int | polj | ||
) |
Initial-state splitting kernels.
ISR: f->fV.
Initialize.
Calculate kernel.
double getBreitWigner | ( | int | id, |
double | m, | ||
int | pol | ||
) |
Breit-Wigner calculators.
Breit-Wigner.
double getPartialWidth | ( | int | idMot, |
int | idi, | ||
int | idj, | ||
double | mMot, | ||
int | polMot | ||
) |
Compute partial decay width.
Decay width calculators.
Compute Partial Width.
Compute the partial width for a single decay channel.
Check if there is any phase space available.
Compute values of running couplings.
W or Z width.
Longitudinal Z or W.
Transverse Z or W.
Quark correction.
CKM matrix.
Higgs width.
xi = xj always.
Quark correction.
Top width.
Expression are identical for top and antitop i is the bottom, j is the W.
AlphaS correction.
CKM Matrix
Check if width dropped below zero.
Return.
double getTotalWidth | ( | int | idMot, |
double | mMot, | ||
int | polMot | ||
) |
Compute total decay width.
Sum over partial widths.
Top only decays to b W.
Z decays to all fermion pairs except top.
Z -> quarks.
Z - > leptons.
W decays to fermion doublets.
The vector boson width is symmetric in xi and xj So there is no difference between 24 and -24.
W -> leptons.
Higgs decays to all fermion pairs. Some are (almost) zero due to their small mass.
h-> quarks except top.
h->leptons.
Return.
double htoffbarFFAnt | ( | double | Q2, |
double | widthQ2, | ||
double | xi, | ||
double | xj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FF: H->ffbar.
Initialize.
Calculate antenna function.
complex htoffbarFSRAmp | ( | const Vec4 & | pi, |
const Vec4 & | pj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | widthQ2, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: H->ffbar.
Initialize.
Calculate amplitude (mi = mj).
double htoffbarFSRSplit | ( | double | Q2, |
double | z, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: H->ffbar.
Initialize.
Calculate kernel.
complex htohhFSRAmp | ( | const Vec4 & | pi, |
const Vec4 & | pj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | widthQ2, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: H->HH.
Initialize.
Calculate amplitude.
double htohhFSRSplit | ( | double | Q2, |
double | z, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: H->HH.
Initialize and calculate kernel.
double htovvFFAnt | ( | double | Q2, |
double | widthQ2, | ||
double | xi, | ||
double | xj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FF: H->VV.
Initialize.
Calculate antenna function.
complex htovvFSRAmp | ( | const Vec4 & | pi, |
const Vec4 & | pj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | widthQ2, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: H->VV.
Initialize.
Calculate amplitude.
double htovvFSRSplit | ( | double | Q2, |
double | z, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: H->VV.
Initialize.
Calculate kernel. Double longitudinal.
Single longitudinal.
Transverse.
void init | ( | EWParticleData * | dataIn, |
unordered_map< pair< int, int >, vector< pair< int, int > > > * | cluMapFinalIn, | ||
unordered_map< pair< int, int >, vector< pair< int, int > > > * | cluMapInitialIn | ||
) |
Initialize with maps.
Class calculating amplitudes.
Initialize with maps.
Store maps.
Set some global EW constants.
Store the Breit-Wigner matching mode.
Set EW event weight to one.
Get coupling constants - indices are i and j. Photon.
Z.
W.
Higgs (note that a mass factor is not included here).
Bosonic couplings.
CKM matrix.
Overestimate constants for Breit-Wigner sampling.
Compute total width for all resonances and set Breit-Wigner overestimate normalizations.
Compute width for the on-shell mass.
Update information.
Spin assignment vectors.
void initFFAnt | ( | bool | va, |
int | id1, | ||
int | id2, | ||
int | pol, | ||
const double & | Q2, | ||
const double & | widthQ2, | ||
const double & | xi, | ||
const double & | xj, | ||
const double & | mMot, | ||
const double & | miIn, | ||
const double & | mjIn | ||
) |
Initialize an FF antenna function.
Masses and antenna function.
Couplings.
void initFSRAmp | ( | bool | va, |
int | id1, | ||
int | id2, | ||
int | pol, | ||
const Vec4 & | pi, | ||
const Vec4 & | pj, | ||
const double & | mMot, | ||
const double & | widthQ2 | ||
) |
Initialize an FSR branching amplitude.
Masses.
Reference vectors.
Couplings.
void initIIAnt | ( | int | id1, |
int | id2, | ||
int | pol, | ||
const double & | Q2, | ||
const double & | xA, | ||
const double & | xj, | ||
const double & | mA, | ||
const double & | maIn, | ||
const double & | mjIn | ||
) |
Initialize an II antenna function.
Masses and antenna function.
Couplings.
void initISRAmp | ( | bool | va, |
int | id1, | ||
int | id2, | ||
int | pol, | ||
const Vec4 & | pa, | ||
const Vec4 & | pj, | ||
double & | mA | ||
) |
Initialize an ISR branching amplitude.
Masses (disable mass corrections in ISR).
Reference vectors.
Couplings.
bool polarise | ( | vector< Particle > & | state | ) |
Polarise a resonance decay.
Polarise a decay.
TODO: Some check for state[0].
This must be a resonance decay: require one incoming particle.
Incoming particle must have a helicity (unless it is a Higgs).
Also, there must be a direction with respect to which to define hel.
Get the static weight to regularize the kernels
Branching kernels.
Check if we know this decay.
Didn't find it?
Status[1] and status[2] may be in the wrong order. Check flipped case
Didn't find it again? Give up.
Compute brKer with flipped arguments.
Compute brKer.
Select a helicity state.
double sampleMass | ( | int | id, |
int | pol | ||
) |
Generate Breit-Wigner mass.
Breit-Wigner Generator.
Function to generate masses for newly created particles. Returns on-shell masses for other particles.
Check if id is a resonance.
Get parameters for the overestimates.
Compute the normalizations of the two components of the Breit-Wigner overestimates.
Select one of the probs.
Do rejection sampling.
Check if the overestimate was right.
Otherwise just return the pole mass.
Spinor products used for the calculation of the amplitudes.
Check if k1 or k2 accidentally align with the direction of basis vectors.
Explicit expression for a spinor product.
Check result is valid.
double splitFuncFSR | ( | double | Q2, |
double | z, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
Splitting kernel caller.
Splitting-function selector for FSR.
I is fermion.
j is Higgs.
j is vector.
I is antifermion.
j is Higgs.
j is vector.
I is higgs.
i is higgs.
i is fermion.
i is vector.
I is vector.
I is transverse.
i is fermion.
j is Higgs.
i is vector.
I is longitudinal.
i is fermion.
j is Higgs.
i is vector.
Factor 3 for splitting to quarks.
double splitFuncISR | ( | double | Q2, |
double | z, | ||
int | idA, | ||
int | ida, | ||
int | idj, | ||
double | mA, | ||
double | maIn, | ||
double | mjIn, | ||
int | polA, | ||
int | pola, | ||
int | polj | ||
) |
Splitting-function selector for ISR.
A is fermion.
j is Higgs.
j is vector.
A is antifermion.
j is Higgs.
j is vector.
complex vLtoffbarFSRAmp | ( | const Vec4 & | pi, |
const Vec4 & | pj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | widthQ2, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: VL->ffbar.
Initialize.
Calculate amplitude.
Multiply by CKM matrix - only for W->qqbar.
double vLtoffbarFSRSplit | ( | double | Q2, |
double | z, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: VL->ffbar.
Initialize.
Calculate kernel.
complex vLtovhFSRAmp | ( | const Vec4 & | pi, |
const Vec4 & | pj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | widthQ2, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: VL->VH.
Initialize.
Calculate amplitude.
double vLtovhFSRSplit | ( | double | Q2, |
double | z, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: VL->VH.
Initialize.
Calculate kernel.
complex vLtovvFSRAmp | ( | const Vec4 & | pi, |
const Vec4 & | pj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | widthQ2, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: VL->VV.
Initialize.
u = pol, d = -pol, z = 0, p = mom.
Calculate amplitude.
double vLtovvFSRSplit | ( | double | Q2, |
double | z, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: VL->VV.
Initialize.
Calculate kernel. Double longitudinal.
Single longitudinal.
All transverse.
double vtoffbarFFAnt | ( | double | Q2, |
double | widthQ2, | ||
double | xi, | ||
double | xj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FF: V->ffbar.
Initialize.
Calculate antenna function.
Multiply by CKM matrix - only for W->qqbar.
double vtovhFFAnt | ( | double | Q2, |
double | widthQ2, | ||
double | xi, | ||
double | xj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FF: V->VH.
Initialize.
Calculate antenna function. Check longitudinals first.
double vtovvFFAnt | ( | double | Q2, |
double | widthQ2, | ||
double | xi, | ||
double | xj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FF: V->VV.
Initialize.
Triple vector coupling.
Calculate antenna function. Triple longitudinal.
Double longitudinal.
Single longitudinal.
All transverse.
complex vTtoffbarFSRAmp | ( | const Vec4 & | pi, |
const Vec4 & | pj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | widthQ2, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: VT->ffbar.
Initialize.
Calculate amplitude. All defined with hel -pol.
Multiply by CKM matrix - only for W->qqbar.
double vTtoffbarFSRSplit | ( | double | Q2, |
double | z, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: VT->ffbar.
Initialize.
Calculate kernel.
complex vTtovhFSRAmp | ( | const Vec4 & | pi, |
const Vec4 & | pj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | widthQ2, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: VT->VH.
Initialize.
Calculate amplitude.
double vTtovhFSRSplit | ( | double | Q2, |
double | z, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: VT->ffbar.
Initialize.
Calculate kernel.
complex vTtovvFSRAmp | ( | const Vec4 & | pi, |
const Vec4 & | pj, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | widthQ2, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: VT->VV.
Initialize.
u = pol, d = -pol, z = 0, p = mom.
Calculate amplitude.
double vTtovvFSRSplit | ( | double | Q2, |
double | z, | ||
int | idMot, | ||
int | idi, | ||
int | idj, | ||
double | mMot, | ||
double | miIn, | ||
double | mjIn, | ||
int | polMot, | ||
int | poli, | ||
int | polj | ||
) |
FSR: VT->VV.
Initialize.
Calculate kernel. Double longitudinal.
Single longitudinal.
All transverse.
EWParticleData* dataPtr {} |
Public data members.
EW data.
unordered_map<pair<int, int>, double> vMap |
Maps of coupling constants. TODO: read this from data file (rather than hard code).