50 beta(0.),cib(0.),csdp(0.),csdm(0.),cif(0.),cig(0.),
51 xl(0.), yl(0.), xu(0.), yu(0.), d2wmax(0.)
61 if (theParentName ==
"pi+") {
68 }
else if (theParentName ==
"pi-") {
78 G4cout <<
"G4RadiativePionDecayChannel:: constructor :";
79 G4cout <<
" parent particle is not charged pion but ";
93 xl = 2.*0.1*MeV/139.57*MeV;
94 yl = ((1.-xl) + std::sqrt((1-xl)*(1-xl)+4*beta*beta))/2.;
96 xu = 1. - (yl - std::sqrt(yl*yl-4.*beta*beta))/2.;
108 beta(right.beta),cib(right.cib),csdp(right.csdp),
109 csdm(right.csdm),cif(right.cif),cig(right.cig),
110 xl(right.xl), yl(right.yl), xu(right.xu), yu(right.yu),
117 if (
this != &right) {
148 d2wmax = right.d2wmax;
158 G4cout <<
"G4PionRadiativeDecayChannel::DecayIt ";
172 for (
G4int index=0; index<3; index++){
174 sumofdaughtermass += daughtermass[index];
185 delete parentparticle;
206 G4double cthetaGE = (y*(x-2.)+2.*(1.-x+beta*beta)) /
207 (x*std::sqrt(y*y-4.*beta*beta));
218 if (E < EMASS) E = EMASS;
223 daughtermomentum[0] = std::sqrt(E*E - EMASS*EMASS);
226 G4double sthetaE = std::sqrt(1.-cthetaE*cthetaE);
245 daughtermomentum[1] = G;
247 G4double sthetaGE = std::sqrt(1.-cthetaGE*cthetaGE);
255 px = sthetaGE*cphiGE;
256 py = sthetaGE*sphiGE;
271 G4cout <<
"G4PionRadiativeDecayChannel::DecayIt ";
272 G4cout <<
" create decay products in rest frame " <<
G4endl;
G4DLLIMPORT std::ostream G4cout
Hep3Vector & rotateUz(const Hep3Vector &)
G4int PushProducts(G4DynamicParticle *aParticle)
G4double GetPDGMass() const
virtual ~G4PionRadiativeDecayChannel()
G4PionRadiativeDecayChannel()
G4PionRadiativeDecayChannel & operator=(const G4PionRadiativeDecayChannel &)
virtual G4DecayProducts * DecayIt(G4double)
void SetBR(G4double value)
G4String ** daughters_name
G4int GetVerboseLevel() const
void SetNumberOfDaughters(G4int value)
void SetDaughter(G4int anIndex, const G4ParticleDefinition *particle_type)
void ClearDaughtersName()
G4ParticleDefinition * parent
G4ParticleDefinition ** daughters
void SetParent(const G4ParticleDefinition *particle_type)