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;