78   if( aParticleDef == aPionPlus   ||
    79       aParticleDef == aPionMinus  || 
    80       aParticleDef == aKaonPlus   ||
    81       aParticleDef == aKaonMinus  ||
    82       aParticleDef == aKaon0Long ) {
    94   if (numberOfSecondaries > 0) {
   100         if (aSecondaryDef == aMuonPlus ||
   101             aSecondaryDef == aMuonMinus ) {
   106         } 
else if (aSecondaryDef == aNeutrinoMu ||
   107                    aSecondaryDef == aAntiNeutrinoMu ) {
   119   if (eneutrino==0||emu==0) 
return;
   128   if (numberOfSecondaries == 2 ) {
   130      G4double scale = - (eneutrino - ( p_muon * p_neutrino )/(emu+emmu));
   132      p_muon = scale * p_muon;
   133      p_neutrino = emmu * p_neutrino;
   134      spin = p_muon + p_neutrino;
   136      scale = 2./(amass*amass-emmu*emmu);
   139      if (aParticle->
GetCharge() < 0.0) spin = -spin;
 
const G4DynamicParticle * GetParentParticle() const
 
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
 
virtual void DaughterPolarization(const G4Track &aTrack, G4DecayProducts *products)
 
G4PionDecayMakeSpin(const G4String &processName="Decay")
 
G4ThreeVector G4RandomDirection()
 
virtual ~G4PionDecayMakeSpin()
 
G4double GetTotalEnergy() const
 
G4ThreeVector GetMomentum() const
 
void SetProcessSubType(G4int)
 
void SetPolarization(G4double polX, G4double polY, G4double polZ)
 
G4double GetCharge() const
 
static G4ParticleTable * GetParticleTable()
 
G4double GetPDGMass() const
 
G4ParticleDefinition * GetDefinition() const