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 ";
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) {
158 G4cout <<
"G4PionRadiativeDecayChannel::DecayIt ";
170 const G4int N_DAUGHTER=3;
173 for (
G4int index=0; index<N_DAUGHTER; index++){
175 sumofdaughtermass += daughtermass[index];
186 delete parentparticle;
190 const size_t MAX_LOOP=1000;
192 for (
size_t loop_counter1=0; loop_counter1<MAX_LOOP; ++loop_counter1){
193 for (
size_t loop_counter2=0; loop_counter2<MAX_LOOP; ++loop_counter2){
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;
261 direction1.rotateUz(direction0);
271 G4cout <<
"G4PionRadiativeDecayChannel::DecayIt ";
272 G4cout <<
" create decay products in rest frame " <<
G4endl;
void ClearDaughtersName()
void SetBR(G4double value)
CLHEP::Hep3Vector G4ThreeVector
G4int PushProducts(G4DynamicParticle *aParticle)
G4ParticleDefinition * G4MT_parent
G4PionRadiativeDecayChannel & operator=(const G4PionRadiativeDecayChannel &)
G4double D2W(const G4double x, const G4double y)
G4ParticleDefinition ** G4MT_daughters
G4PionRadiativeDecayChannel()
virtual ~G4PionRadiativeDecayChannel()
G4GLOB_DLL std::ostream G4cout
void SetNumberOfDaughters(G4int value)
static const double twopi
G4int GetVerboseLevel() const
G4double GetPDGMass() const
virtual G4DecayProducts * DecayIt(G4double)
const G4double x[NPOINTSGL]
void SetParent(const G4ParticleDefinition *particle_type)
void SetDaughter(G4int anIndex, const G4ParticleDefinition *particle_type)
G4String ** daughters_name