64 if (theParentName ==
"mu+") {
71 }
else if (theParentName ==
"mu-") {
81 G4cout <<
"G4MuonDecayChannel:: constructor :";
82 G4cout <<
" parent particle is not muon but ";
100 if (
this != &right) {
145 sumofdaughtermass += daughtermass[
index];
153 delete parentparticle;
158 G4double xmax = (1.0+daughtermass[0]*daughtermass[0]/parentmass/parentmass);
164 G4double EMax=parentmass/2-daughtermass[0];
173 }
while (gam >x*(1.-x));
175 }
while ( Ene < (1.-Ee));
181 G4double costheta,sintheta,rphi,rtheta,rpsi;
182 costheta= 1.-2./Ee-2./Ene+2./Ene/Ee;
183 sintheta=std::sqrt(1.-costheta*costheta);
191 rot.
set(rphi,rtheta,rpsi);
194 daughtermomentum[0]=std::sqrt(Ee*Ee*EMax*EMax+2.0*Ee*EMax * daughtermass[0]);
205 daughtermomentum[1]=std::sqrt(Ene*Ene*EMax*EMax+2.0*Ene*EMax * daughtermass[1]);
215 daughtermomentum[2]=std::sqrt(Enm*Enm*EMax*EMax +2.0*Enm*EMax*daughtermass[2]);
216 G4ThreeVector direction2(-Ene/Enm*sintheta,0,-Ee/Enm-Ene/Enm*costheta);
221 direction2 * daughtermomentum[2]);
230 G4cout <<
"G4MuonDecayChannel::DecayIt ";
231 G4cout <<
" create decay products in rest frame " <<
G4endl;
void ClearDaughtersName()
void SetBR(G4double value)
G4int PushProducts(G4DynamicParticle *aParticle)
G4ParticleDefinition * G4MT_parent
G4ParticleDefinition ** G4MT_daughters
G4GLOB_DLL std::ostream G4cout
void SetNumberOfDaughters(G4int value)
HepRotation & set(const Hep3Vector &axis, double delta)
G4int GetVerboseLevel() const
G4double GetPDGMass() const
virtual G4DecayProducts * DecayIt(G4double)
void SetParent(const G4ParticleDefinition *particle_type)
void SetDaughter(G4int anIndex, const G4ParticleDefinition *particle_type)
virtual ~G4MuonDecayChannel()
G4MuonDecayChannel & operator=(const G4MuonDecayChannel &)
G4String ** daughters_name