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 () |
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) |
Static Private Member Functions | |
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 35 of file 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.
TauolaParticlePair | ( | ) | [inline, private] |
Default constructor is private, so that only friend class can use it.
Definition at line 83 of file TauolaParticlePair.h.
void addToBeam | ( | TauolaParticle * | pcle, | |
std::vector< TauolaParticle * > * | candidates_same, | |||
std::vector< TauolaParticle * > * | candidates_opp | |||
) | [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().
void boostFromLabToTauPairFrame | ( | double * | rotation_angle1, | |
double * | rotation_angle2, | |||
double * | rotation_angle3, | |||
TauolaParticle * | mother, | |||
vector< TauolaParticle * > | grandmothers, | |||
vector< TauolaParticle * > | taus | |||
) | [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.
void boostFromTauPairToLabFrame | ( | double | rotation_angle1, | |
double | rotation_angle2, | |||
double | rotation_angle3, | |||
TauolaParticle * | mother, | |||
vector< TauolaParticle * > | grandmothers, | |||
vector< TauolaParticle * > | taus | |||
) | [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.
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.
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.
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().
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 * 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 * getTauMinus | ( | std::vector< TauolaParticle * > | particles | ) |
Return the tau- particle
Definition at line 825 of file TauolaParticlePair.cxx.
References TauolaParticle::TAU_MINUS.
TauolaParticle * getTauPlus | ( | std::vector< TauolaParticle * > | particles | ) |
Return the tau+ particle
Definition at line 833 of file TauolaParticlePair.cxx.
References TauolaParticle::TAU_PLUS.
double getVirtuality | ( | TauolaParticle * | p1, | |
TauolaParticle * | p2, | |||
bool | flip | |||
) | [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.
double getZPolarization | ( | int * | incoming_pdg_id, | |
int * | outgoing_pdg_id, | |||
double * | invMass, | |||
double * | cosTheta | |||
) | [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.
void initializeDensityMatrix | ( | ) | [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(), Tauola::spin_correlation, TauolaParticle::W_MINUS, TauolaParticle::W_PLUS, and TauolaParticle::Z0.
TauolaParticle * makeTemporaryMother | ( | vector< TauolaParticle * > | taus | ) | [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.
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 recalculateRij | ( | int | incoming_pdg_id, | |
int | outgoing_pdg_id, | |||
double | invariant_mass_squared, | |||
double | cosTheta | |||
) | [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.
void rotateSystem | ( | vector< TauolaParticle * > | grandmothers, | |
vector< TauolaParticle * > | taus, | |||
double | theta, | |||
int | axis, | |||
int | axis2 = TauolaParticle::Z_AXIS | |||
) | [private] |
Rotate the whole system using the given angle theta.
Definition at line 738 of file TauolaParticlePair.cxx.
void setBornKinematics | ( | int | incoming_pdg_id, | |
int | outgoing_pdg_id, | |||
double | invariant_mass_squared, | |||
double | cosTheta | |||
) | [static, private] |
Store born variables in Tauola class, so the user can retrieve them using Tauola::getBornKinematics.
Definition at line 258 of file TauolaParticlePair.cxx.
std::vector<TauolaParticle*> m_final_particles [private] |
Pointers to taus (or tau and neutrino) as they are before being decayed.
Definition at line 91 of file TauolaParticlePair.h.
std::vector<TauolaParticle*> m_grandmothers [private] |
vector of pointers to the taus grandparents
Definition at line 104 of file TauolaParticlePair.h.
TauolaParticle* m_mother [private] |
Pointer to mothers of the tau pair.
Definition at line 98 of file TauolaParticlePair.h.
bool m_mother_exists [private] |
Is there an entry in the event record for the tau pair's mother?
Definition at line 101 of file TauolaParticlePair.h.
std::vector<TauolaParticle*> m_production_particles [private] |
Pointers to taus (or tau and neutrino) as they are after production.
Definition at line 95 of file TauolaParticlePair.h.
double m_R[4][4] [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 171 of file TauolaParticlePair.h.