TauolaParticlePair Class Reference

Collaboration diagram for TauolaParticlePair:
Collaboration graph
[legend]

Public Member Functions

 TauolaParticlePair (std::vector< TauolaParticle * > &particle_list)
void decayTauPair ()
bool contains (TauolaParticle *particle)
TauolaParticlegetTauPlus (std::vector< TauolaParticle * > particles)
TauolaParticlegetTauMinus (std::vector< TauolaParticle * > particles)
TauolaParticlegetGrandmotherPlus (std::vector< TauolaParticle * > particles)
TauolaParticlegetGrandmotherMinus (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 ()
TauolaParticlemakeTemporaryMother (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
TauolaParticlem_mother
bool m_mother_exists
std::vector< TauolaParticle * > m_grandmothers
double m_R [4][4]

Detailed Description

Definition at line 35 of file TauolaParticlePair.h.


Constructor & Destructor Documentation

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.


Member Function Documentation

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 (  ) 
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 (  ) 
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]
double getZPolarization ( int *  incoming_pdg_id,
int *  outgoing_pdg_id,
double *  invMass,
double *  cosTheta 
) [private]
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:

  • Axis 3 is along the direction of the +ve tau,
  • Axis 1 is perpendicular to the reaction plane (sign=??)
  • Axis 2 is defined through the vector product so the system is right handed (?? check). Axis 1,2 and 3 are parrellel for the 1st and second tau.

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 (  ) 
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.


Field Documentation

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.

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.


The documentation for this class was generated from the following files:
Generated on Sun Oct 20 20:24:17 2013 for C++InterfacetoTauola by  doxygen 1.6.3