52 parent_name(0), daughters_name(0),
54 parent(0), daughters(0),
55 parent_mass(0.0), daughters_mass(0),
64 :kinematics_name(aName),
67 parent_name(0), daughters_name(0),
69 parent(0), daughters(0),
70 parent_mass(0.0), daughters_mass(0),
80 G4int theNumberOfDaughters,
85 :kinematics_name(aName),
87 numberOfDaughters(theNumberOfDaughters),
88 parent_name(0), daughters_name(0),
90 parent(0), daughters(0),
91 parent_mass(0.0), daughters_mass(0),
147 if (
this != &right) {
198 G4cerr <<
"G4VDecayChannel::ClearDaughtersName "
237 G4cerr <<
"G4VDecayChannel::SetDaughter: "
238 <<
"Number of daughters is not defined" <<
G4endl;
257 G4cerr <<
"G4VDecayChannel::SetDaughter"
258 <<
"index out of range " << anIndex <<
G4endl;
270 G4cout <<
"G4VDecayChannel::SetDaughter[" << anIndex <<
"] :";
303 G4cerr <<
"G4VDecayChannel::FillDaughters "
305 <<
"numberOfDaughters is not defined yet";
311 "Can not fill daughters: numberOfDaughters is not defined yet");
324 G4cerr <<
"G4VDecayChannel::FillDaughters "
326 << index <<
"-th daughter is not defined yet" <<
G4endl;
332 "Can not fill daughters: name of a daughter is not defined yet");
340 G4cerr <<
"G4VDecayChannel::FillDaughters "
343 <<
" is not defined !!" <<
G4endl;
344 G4cerr <<
" The BR of this decay mode is set to zero " <<
G4endl;
363 (sumofdaughtermass > parentmass + 5*widthMass) ){
367 G4cerr <<
"G4VDecayChannel::FillDaughters "
369 <<
" Energy/Momentum conserevation breaks " <<
G4endl;
372 <<
" mass:" << parentmass/
GeV <<
"[GeV/c/c]" <<
G4endl;
391 G4cerr <<
"G4VDecayChannel::FillParent "
392 <<
": parent name is not defined !!" <<
G4endl;
398 "Can not fill parent: parent name is not defined yet");
406 G4cerr <<
"G4VDecayChannel::FillParent "
412 "Can not fill parent: parent does not exist");
436 const G4int MiniSpin = std::abs (D1iSpin - D2iSpin);
437 const G4int MaxiSpin = D1iSpin + D2iSpin;
438 const G4int lMax = (PiSpin+D1iSpin+D2iSpin)/2;
442 G4cout <<
"iSpin: " << PiSpin <<
" -> " << D1iSpin <<
" + " << D2iSpin <<
G4endl;
443 G4cout <<
"2*jmin, 2*jmax, lmax " << MiniSpin <<
" " << MaxiSpin <<
" " << lMax <<
G4endl;
446 for (
G4int j=MiniSpin; j<=MaxiSpin; j+=2){
447 lMin = std::abs(PiSpin-j)/2;
452 for (
G4int l=lMin; l<=lMax; l++) {
458 if (PParity == D1Parity*D2Parity) {
462 if (PParity == -1*D1Parity*D2Parity) {
471 "Sorry, can't handle 3 particle decays (up to now)");
474 G4Exception (
"G4VDecayChannel::GetAngularMomentum",
476 "Can't find angular momentum for this decay");
489 G4cout <<
" not defined ";
495 const G4String& G4VDecayChannel::GetNoName()
const