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 18 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 469 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 684 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 739 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 969 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 848 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 568 of file TauolaParticlePair.cxx.
References TauolaParticle::addDecayToEventRecord(), TauolaParticlePair::boostFromLabToTauPairFrame(), TauolaParticlePair::boostFromTauPairToLabFrame(), TauolaParticle::decay(), TauolaParticle::decayEndgame(), TauolaParticle::getE(), TauolaParticle::getPolarimetricX(), TauolaParticle::getPolarimetricY(), TauolaParticle::getPolarimetricZ(), TauolaParticle::getPx(), TauolaParticle::getPy(), TauolaParticle::getPz(), 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 909 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 873 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 857 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 865 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 524 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 274 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 119 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 786 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 944 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 985 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 770 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 264 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.