63   if (theParentName == 
"tau+") {
 
   67     if ((theLeptonName==
"e-"||theLeptonName==
"e+")){
 
   76   } 
else if (theParentName == 
"tau-") {
 
   80     if ((theLeptonName==
"e-"||theLeptonName==
"e+")){
 
   92       G4cout << 
"G4TauLeptonicDecayChannel:: constructor :";
 
   93       G4cout << 
" parent particle is not tau but ";
 
  111   if (
this != &right) { 
 
  152   const G4int N_DAUGHTER=3;
 
  154   for (
G4int index=0; index<N_DAUGHTER; index++){
 
  163   delete parentparticle;
 
  166   G4double daughtermomentum[N_DAUGHTER];
 
  169   G4double pmax = (parentmass*parentmass-daughtermass[0]*daughtermass[0])/2./parentmass;
 
  172   const size_t MAX_LOOP=10000;
 
  173   for (
size_t loop_counter=0; loop_counter <MAX_LOOP; ++loop_counter){
 
  177     e = std::sqrt(p*p + daughtermass[0]*daughtermass[0]);
 
  178     if (r < 
spectrum(p,e,parentmass,daughtermass[0]) ) 
break;
 
  183   daughtermomentum[0] = p;
 
  184   G4double costheta, sintheta, phi, sinphi, cosphi; 
 
  186   sintheta = std::sqrt((1.0-costheta)*(1.0+costheta));
 
  188   sinphi = std::sin(phi);
 
  189   cosphi = std::cos(phi);
 
  190   G4ThreeVector direction0(sintheta*cosphi,sintheta*sinphi,costheta);
 
  198   G4double vmass   = std::sqrt((energy2-daughtermomentum[0])*(energy2+daughtermomentum[0]));
 
  199   G4double beta = -1.0*daughtermomentum[0]/energy2;
 
  201   G4double sinthetan = std::sqrt((1.0-costhetan)*(1.0+costhetan));
 
  206   G4ThreeVector direction1(sinthetan*cosphin,sinthetan*sinphin,costhetan);
 
  215   p4.boost( direction0.x()*beta, direction0.y()*beta, direction0.z()*beta);
 
  218   p4.boost( direction0.x()*beta, direction0.y()*beta, direction0.z()*beta);
 
  229     G4cout << 
"G4TauLeptonicDecayChannel::DecayIt ";
 
  230     G4cout << 
"  create decay products in rest frame " <<
G4endl;
 
  246   f1 = 3.0*e*(mtau*mtau+ml*ml)-4.0*mtau*e*e-2.0*mtau*ml*ml;
 
  247   return p*(
f1)/(mtau*mtau*mtau*mtau)/(0.6);
 
void ClearDaughtersName()
 
virtual G4DecayProducts * DecayIt(G4double)
 
void SetBR(G4double value)
 
CLHEP::Hep3Vector G4ThreeVector
 
G4int PushProducts(G4DynamicParticle *aParticle)
 
virtual ~G4TauLeptonicDecayChannel()
 
G4ParticleDefinition * G4MT_parent
 
G4ParticleDefinition ** G4MT_daughters
 
G4TauLeptonicDecayChannel()
 
G4double GetTotalMomentum() const 
 
G4GLOB_DLL std::ostream G4cout
 
void SetNumberOfDaughters(G4int value)
 
G4TauLeptonicDecayChannel & operator=(const G4TauLeptonicDecayChannel &)
 
static const double twopi
 
G4LorentzVector Get4Momentum() const 
 
void Set4Momentum(const G4LorentzVector &momentum)
 
G4int GetVerboseLevel() const 
 
G4double GetPDGMass() const 
 
void SetParent(const G4ParticleDefinition *particle_type)
 
void SetDaughter(G4int anIndex, const G4ParticleDefinition *particle_type)
 
static G4double spectrum(G4double momentum, G4double energy, G4double mtau, G4double ml)
 
G4String ** daughters_name
 
CLHEP::HepLorentzVector G4LorentzVector