C++ Interface to Tauola
|
Public Member Functions | |
TauolaParticlePair (std::vector< TauolaParticle * > &particle_list) | |
void | decayTauPair () |
bool | contains (TauolaParticle *particle) |
TauolaParticle * | getTauPlus (std::vector< TauolaParticle * > particles) |
TauolaParticle * | getTauMinus (std::vector< TauolaParticle * > particles) |
TauolaParticle * | getGrandmotherPlus (std::vector< TauolaParticle * > particles) |
TauolaParticle * | getGrandmotherMinus (std::vector< TauolaParticle * > particles) |
void | print () |
void | checkMomentumConservation () |
TauolaParticlePair (std::vector< TauolaParticle * > &particle_list) | |
void | decayTauPair () |
bool | contains (TauolaParticle *particle) |
TauolaParticle * | getTauPlus (std::vector< TauolaParticle * > particles) |
TauolaParticle * | getTauMinus (std::vector< TauolaParticle * > particles) |
TauolaParticle * | getGrandmotherPlus (std::vector< TauolaParticle * > particles) |
TauolaParticle * | getGrandmotherMinus (std::vector< TauolaParticle * > particles) |
void | print () |
void | checkMomentumConservation () |
Private Member Functions | |
TauolaParticlePair () | |
void | recalculateRij (int incoming_pdg_id, int outgoing_pdg_id, double invariant_mass_squared, double cosTheta) |
void | rotateSystem (vector< TauolaParticle * > grandmothers, vector< TauolaParticle * > taus, double theta, int axis, int axis2=TauolaParticle::Z_AXIS) |
void | boostFromLabToTauPairFrame (double *rotation_angle1, double *rotation_angle2, double *rotation_angle3, TauolaParticle *mother, vector< TauolaParticle * > grandmothers, vector< TauolaParticle * > taus) |
void | boostFromTauPairToLabFrame (double rotation_angle1, double rotation_angle2, double rotation_angle3, TauolaParticle *mother, vector< TauolaParticle * > grandmothers, vector< TauolaParticle * > taus) |
void | initializeDensityMatrix () |
TauolaParticle * | makeTemporaryMother (vector< TauolaParticle * > taus) |
double | getZPolarization (int *incoming_pdg_id, int *outgoing_pdg_id, double *invMass, double *cosTheta) |
double | getVirtuality (TauolaParticle *p1, TauolaParticle *p2, bool flip) |
void | addToBeam (TauolaParticle *pcle, std::vector< TauolaParticle * > *candidates_same, std::vector< TauolaParticle * > *candidates_opp) |
TauolaParticlePair () | |
void | recalculateRij (int incoming_pdg_id, int outgoing_pdg_id, double invariant_mass_squared, double cosTheta) |
void | rotateSystem (vector< TauolaParticle * > grandmothers, vector< TauolaParticle * > taus, double theta, int axis, int axis2=TauolaParticle::Z_AXIS) |
void | boostFromLabToTauPairFrame (double *rotation_angle1, double *rotation_angle2, double *rotation_angle3, TauolaParticle *mother, vector< TauolaParticle * > grandmothers, vector< TauolaParticle * > taus) |
void | boostFromTauPairToLabFrame (double rotation_angle1, double rotation_angle2, double rotation_angle3, TauolaParticle *mother, vector< TauolaParticle * > grandmothers, vector< TauolaParticle * > taus) |
void | initializeDensityMatrix () |
TauolaParticle * | makeTemporaryMother (vector< TauolaParticle * > taus) |
double | getZPolarization (int *incoming_pdg_id, int *outgoing_pdg_id, double *invMass, double *cosTheta) |
double | getVirtuality (TauolaParticle *p1, TauolaParticle *p2, bool flip) |
void | addToBeam (TauolaParticle *pcle, std::vector< TauolaParticle * > *candidates_same, std::vector< TauolaParticle * > *candidates_opp) |
Static Private Member Functions | |
static void | setBornKinematics (int incoming_pdg_id, int outgoing_pdg_id, double invariant_mass_squared, double cosTheta) |
static void | setBornKinematics (int incoming_pdg_id, int outgoing_pdg_id, double invariant_mass_squared, double cosTheta) |
Private Attributes | |
std::vector< TauolaParticle * > | m_final_particles |
std::vector< TauolaParticle * > | m_production_particles |
TauolaParticle * | m_mother |
bool | m_mother_exists |
std::vector< TauolaParticle * > | m_grandmothers |
double | m_R [4][4] |
Definition at line 41 of file include/Tauola/TauolaParticlePair.h.
TauolaParticlePair | ( | std::vector< TauolaParticle * > & | particle_list | ) |
This constructor takes the TauolaParticle and traverse the event structure to find the mother, partner tau or tau neutrino and assosiated final and production versions. Once a TauolaParticlePair object has been created in this way it is ready to be decayed via decayTauPairs().
constructor. Get the mothers, grandmothers and siblings of the tau
Definition at line 12 of file TauolaParticlePair.cxx.
References Log::AddDecay(), Log::Fatal(), TauolaParticle::findLastSelf(), TauolaParticle::findProductionMothers(), TauolaParticlePair::initializeDensityMatrix(), Tauola::isUsingDecayOne(), TauolaParticlePair::m_final_particles, TauolaParticlePair::m_grandmothers, TauolaParticlePair::m_mother, TauolaParticlePair::m_mother_exists, TauolaParticlePair::m_production_particles, TauolaParticlePair::makeTemporaryMother(), TauolaParticlePair::setBornKinematics(), TauolaParticle::TAU_ANTINEUTRINO, TauolaParticle::TAU_MINUS, TauolaParticle::TAU_NEUTRINO, and TauolaParticle::TAU_PLUS.
|
inlineprivate |
Default constructor is private, so that only friend class can use it.
Definition at line 90 of file include/Tauola/TauolaParticlePair.h.
TauolaParticlePair | ( | std::vector< TauolaParticle * > & | particle_list | ) |
This constructor takes the TauolaParticle and traverse the event structure to find the mother, partner tau or tau neutrino and assosiated final and production versions. Once a TauolaParticlePair object has been created in this way it is ready to be decayed via decayTauPairs().
|
inlineprivate |
Default constructor is private, so that only friend class can use it.
Definition at line 90 of file src/tauolaCInterfaces/TauolaParticlePair.h.
|
private |
Add particle to beam.
WHERE WE CALCULATE THE EFFECTIVE BEAMS This is where we decide which particle should be added into which beam, add it and change the flavour if necessary. candidates_same are on the same side of the vertex as the particle. This is needed for negative the particle 4-momentum.
Definition at line 463 of file TauolaParticlePair.cxx.
References TauolaParticle::add(), TauolaParticle::getPdgID(), TauolaParticlePair::getVirtuality(), TauolaParticle::setPdgID(), and TauolaParticle::subtract().
|
private |
Add particle to beam.
|
private |
Boost the outgoing tau and partner and the incoming grandparents of the tau to the mothers rest frame. The mother is not boosted. The axis are rotated so that the particle given by "z_axis_particle" is aligned on the z-axis. If "alignment" is -1 is will be aligned in the negative z direction. otherwise it is aligned in the positive direction. rotaion_angle(1-3) are returned to allow reversal of the transformation (through the method boostFromMotherToLabFrame).
Step 1. (Transformation A). Any modification to this method also requires a modification to the inverse method boostFromTauPairFrameToLab (transformation A^-1).
boost all gradmothers and daughters (taus, neutrinos, etc,) to the mothers rest frame
rotate all particles so taus are on the z axis
Definition at line 652 of file TauolaParticlePair.cxx.
References TauolaParticlePair::getGrandmotherMinus(), TauolaParticlePair::getGrandmotherPlus(), TauolaParticle::getRotationAngle(), TauolaParticlePair::getTauMinus(), TauolaParticlePair::getTauPlus(), TauolaParticlePair::rotateSystem(), TauolaParticle::X_AXIS, and TauolaParticle::Y_AXIS.
|
private |
Boost the outgoing tau and partner and the incoming grandparents of the tau to the mothers rest frame. The mother is not boosted. The axis are rotated so that the particle given by "z_axis_particle" is aligned on the z-axis. If "alignment" is -1 is will be aligned in the negative z direction. otherwise it is aligned in the positive direction. rotaion_angle(1-3) are returned to allow reversal of the transformation (through the method boostFromMotherToLabFrame).
|
private |
Reverses the transformation of boostFromLabToMothersFrame.
Reverses boostFromLabtoMotherFrame. The three rotation angle must be provided. Any modification to this would require a modification to boostFromLabToTauPairFrame since this is the inverse transformation (Step 2: A^-1).
Definition at line 707 of file TauolaParticlePair.cxx.
References TauolaParticlePair::rotateSystem(), TauolaParticle::X_AXIS, and TauolaParticle::Y_AXIS.
|
private |
Reverses the transformation of boostFromLabToMothersFrame.
void checkMomentumConservation | ( | ) |
Check that the 4 momentum in conserved at the verticle of each decayed tau.
Definition at line 937 of file TauolaParticlePair.cxx.
References TauolaParticle::checkMomentumConservation(), TauolaParticlePair::m_final_particles, TauolaParticlePair::m_grandmothers, TauolaParticlePair::m_mother, and TauolaParticlePair::m_production_particles.
void checkMomentumConservation | ( | ) |
Check that the 4 momentum in conserved at the verticle of each decayed tau.
bool contains | ( | TauolaParticle * | particle | ) |
Does this pair contain the particle "particle". Note: it only checks the "final" particles.
Definition at line 816 of file TauolaParticlePair.cxx.
References TauolaParticle::getBarcode(), and TauolaParticlePair::m_final_particles.
bool contains | ( | TauolaParticle * | particle | ) |
Does this pair contain the particle "particle". Note: it only checks the "final" particles.
void decayTauPair | ( | ) |
Call the decay method of each 'final' tau. Then calculate the spin correlation weight from the particles polarimetric vectors. Decays are accepted or rejected based on the spin weight. Rejected decays are redecayed.
Definition at line 562 of file TauolaParticlePair.cxx.
References TauolaParticle::addDecayToEventRecord(), TauolaParticlePair::boostFromLabToTauPairFrame(), TauolaParticlePair::boostFromTauPairToLabFrame(), TauolaParticle::decay(), TauolaParticle::decayEndgame(), TauolaParticle::getPolarimetricX(), TauolaParticle::getPolarimetricY(), TauolaParticle::getPolarimetricZ(), TauolaParticlePair::getTauMinus(), TauolaParticlePair::getTauPlus(), Tauola::isUsingDecayOneBoost(), TauolaParticlePair::m_final_particles, TauolaParticlePair::m_grandmothers, TauolaParticlePair::m_R, and TauolaParticlePair::makeTemporaryMother().
void decayTauPair | ( | ) |
Call the decay method of each 'final' tau. Then calculate the spin correlation weight from the particles polarimetric vectors. Decays are accepted or rejected based on the spin weight. Rejected decays are redecayed.
TauolaParticle * getGrandmotherMinus | ( | std::vector< TauolaParticle * > | particles | ) |
Return the first grandmother of the tau- which is a quark or lepton.
Definition at line 877 of file TauolaParticlePair.cxx.
References TauolaParticle::ELECTRON, and TauolaParticle::MUON_MINUS.
TauolaParticle* getGrandmotherMinus | ( | std::vector< TauolaParticle * > | particles | ) |
Return the first grandmother of the tau- which is a quark or lepton.
TauolaParticle * getGrandmotherPlus | ( | std::vector< TauolaParticle * > | particles | ) |
Return the first grandmother of the tau- which is an anti-quark or anti-lepton.
Definition at line 841 of file TauolaParticlePair.cxx.
References TauolaParticle::MUON_PLUS, and TauolaParticle::POSITRON.
TauolaParticle* getGrandmotherPlus | ( | std::vector< TauolaParticle * > | particles | ) |
Return the first grandmother of the tau- which is an anti-quark or anti-lepton.
TauolaParticle * getTauMinus | ( | std::vector< TauolaParticle * > | particles | ) |
Return the tau- particle
Definition at line 825 of file TauolaParticlePair.cxx.
References TauolaParticle::TAU_MINUS.
TauolaParticle* getTauMinus | ( | std::vector< TauolaParticle * > | particles | ) |
Return the tau- particle
TauolaParticle * getTauPlus | ( | std::vector< TauolaParticle * > | particles | ) |
Return the tau+ particle
Definition at line 833 of file TauolaParticlePair.cxx.
References TauolaParticle::TAU_PLUS.
TauolaParticle* getTauPlus | ( | std::vector< TauolaParticle * > | particles | ) |
Return the tau+ particle
|
private |
Private function, calculates virtuality between two particles.
Definition at line 518 of file TauolaParticlePair.cxx.
References TauolaParticle::DOWN, TauolaParticle::GAMMA, TauolaParticle::getE(), TauolaParticle::getMass(), TauolaParticle::getPdgID(), TauolaParticle::getPx(), TauolaParticle::getPy(), TauolaParticle::getPz(), and TauolaParticle::UP.
|
private |
Private function, calculates virtuality between two particles.
|
private |
Needs to be changed Needs to be changed
Definition at line 268 of file TauolaParticlePair.cxx.
References TauolaParticlePair::addToBeam(), TauolaParticlePair::boostFromLabToTauPairFrame(), TauolaParticlePair::boostFromTauPairToLabFrame(), TauolaParticle::clone(), TauolaParticle::ELECTRON, TauolaParticlePair::getGrandmotherMinus(), TauolaParticlePair::getGrandmotherPlus(), TauolaParticle::getMass(), TauolaParticle::getPdgID(), TauolaParticle::getPx(), TauolaParticle::getPy(), TauolaParticle::getPz(), TauolaParticlePair::getTauMinus(), TauolaParticlePair::getTauPlus(), TauolaParticlePair::m_grandmothers, TauolaParticlePair::m_mother, TauolaParticlePair::m_mother_exists, TauolaParticlePair::m_production_particles, TauolaParticlePair::makeTemporaryMother(), TauolaParticlePair::setBornKinematics(), TauolaParticle::TAU_PLUS, and TauolaParticle::Z0.
|
private |
Needs to be changed Needs to be changed
|
private |
The density matric m_R is filled based on the mothers type and kinematics of the event in the mothers rest frame.
The axis is defined by the boosting routine but our standard convention is:
Definition at line 113 of file TauolaParticlePair.cxx.
References TauolaParticle::GAMMA, Tauola::getDecayOnePolarization(), Tauola::getHiggsScalarPseudoscalarPDG(), TauolaParticle::getMass(), TauolaParticle::getPdgID(), Tauola::getTauMass(), TauolaParticlePair::getZPolarization(), TauolaParticle::HIGGS, TauolaParticle::HIGGS_A, TauolaParticle::HIGGS_MINUS, TauolaParticle::HIGGS_PLUS, Tauola::isUsingDecayOne(), TauolaParticlePair::m_mother, TauolaParticlePair::m_R, TauolaParticlePair::recalculateRij(), TauolaParticle::W_MINUS, TauolaParticle::W_PLUS, and TauolaParticle::Z0.
|
private |
The density matric m_R is filled based on the mothers type and kinematics of the event in the mothers rest frame.
|
private |
create a particle which m_mother points to. This is based on the daughters 4-momentum and particle type. A Z or W is assumed if the configuration of taus and neutrinos is correct. This particle is not written into the event record, but it used by the fillDenistyMatrix method for spin correlations
Definition at line 754 of file TauolaParticlePair.cxx.
References TauolaParticle::getE(), TauolaParticle::getPdgID(), TauolaParticle::getPx(), TauolaParticle::getPy(), TauolaParticle::getPz(), TauolaParticle::TAU_ANTINEUTRINO, TauolaParticle::TAU_MINUS, TauolaParticle::TAU_NEUTRINO, TauolaParticle::TAU_PLUS, TauolaParticle::W_MINUS, TauolaParticle::W_PLUS, and TauolaParticle::Z0.
|
private |
create a particle which m_mother points to. This is based on the daughters 4-momentum and particle type. A Z or W is assumed if the configuration of taus and neutrinos is correct. This particle is not written into the event record, but it used by the fillDenistyMatrix method for spin correlations
void print | ( | ) |
Print information about the mother and tau pair (at production and final).
Definition at line 912 of file TauolaParticlePair.cxx.
References TauolaParticlePair::m_final_particles, TauolaParticlePair::m_grandmothers, TauolaParticlePair::m_mother, TauolaParticlePair::m_production_particles, TauolaParticle::print(), Log::RedirectOutput(), and Log::RevertOutput().
void print | ( | ) |
Print information about the mother and tau pair (at production and final).
|
private |
If SANC tables are present, use them to recalculate the matrix Rij.
Definition at line 953 of file TauolaParticlePair.cxx.
References TauolaParticlePair::m_R.
|
private |
If SANC tables are present, use them to recalculate the matrix Rij.
|
private |
Rotate the whole system using the given angle theta.
Definition at line 738 of file TauolaParticlePair.cxx.
|
private |
Rotate the whole system using the given angle theta.
|
staticprivate |
Store born variables in Tauola class, so the user can retrieve them using Tauola::getBornKinematics.
Definition at line 258 of file TauolaParticlePair.cxx.
|
staticprivate |
Store born variables in Tauola class, so the user can retrieve them using Tauola::getBornKinematics.
|
private |
Pointers to taus (or tau and neutrino) as they are before being decayed.
Definition at line 98 of file include/Tauola/TauolaParticlePair.h.
|
private |
vector of pointers to the taus grandparents
Definition at line 111 of file include/Tauola/TauolaParticlePair.h.
|
private |
Pointer to mothers of the tau pair.
Definition at line 105 of file include/Tauola/TauolaParticlePair.h.
|
private |
Is there an entry in the event record for the tau pair's mother?
Definition at line 108 of file include/Tauola/TauolaParticlePair.h.
|
private |
Pointers to taus (or tau and neutrino) as they are after production.
Definition at line 102 of file include/Tauola/TauolaParticlePair.h.
|
private |
frames in which it is defined are fixed by the methods boostFromLabToMotherFrame and boostFromMotherToLabFrame. Modification to m_R and boostFrom/ToMotherFrame must be done coherently.
Definition at line 178 of file include/Tauola/TauolaParticlePair.h.