78   if (etot < 0.0) etot = 0.0;
 
   81     G4cout << 
" BigBanger: target\n" << target
 
   82            << 
"\n etot " << etot << 
G4endl;
 
   87     PEXrest.boost(-toTheLabFrame);
 
   88     G4cout << 
" target rest frame: px " << PEXrest.px() << 
" py " 
   89            << PEXrest.py() << 
" pz " << PEXrest.pz() << 
" E " << PEXrest.e()
 
  102     G4cerr << 
" >>> G4BigBanger unable to process fragment " 
  120     mom.boost(toTheLabFrame);
 
  123     ipart->setMomentum(mom); 
 
  132     G4cout << 
" In SCM: total outgoing momentum " << G4endl 
 
  133            << 
" E " << totscm.e() << 
" px " << totscm.x()
 
  134            << 
" py " << totscm.y() << 
" pz " << totscm.z() << 
G4endl; 
 
  135     G4cout << 
" In Lab: mom cons " << G4endl 
 
  136            << 
" E " << 
PEX.e() - totlab.e()     
 
  137            << 
" px " << 
PEX.x() - totlab.x()
 
  138            << 
" py " << 
PEX.y() - totlab.y() 
 
  139            << 
" pz " << 
PEX.z() - totlab.z() << 
G4endl; 
 
  147     G4cout << 
" >>> G4BigBanger::generateBangInSCM" << 
G4endl;
 
  151   const G4int itry_max = 1000;
 
  160     G4int knd = (z>0) ? 1 : 2;
 
  173   while(bad && itry < itry_max) {       
 
  187       for(
G4int i = 0; i < a-2; i++) {          
 
  202       if(std::fabs(ct) < ang_cut) {
 
  208         G4double a_tr = std::sqrt(apr.x()*apr.x() + apr.y()*apr.y());
 
  210         mom.setX(mom2.z()*apr.x() + ( mom2.x()*apr.y() + mom2.y()*apr.z()*apr.x())/a_tr);
 
  211         mom.setY(mom2.z()*apr.y() + (-mom2.x()*apr.x() + mom2.y()*apr.z()*apr.y())/a_tr);
 
  212         mom.setZ(mom2.z()*apr.z() - mom2.y()*a_tr);
 
  227     for(
G4int i = 0; i < 
a; i++) {
 
  228       G4int knd = i < z ? 1 : 2;
 
  234     if (itry == itry_max) 
G4cout << 
" BigBanger -> can not generate bang " << 
G4endl;
 
  242     G4cout << 
" >>> G4BigBanger::generateMomentumModules" << 
G4endl;
 
  257     for(
G4int i = 0; i < 
a; i++) { 
 
  271   for(
G4int i = 0; i < 
a; i++) {
 
  291   if(x < 1.0 || x > 0.0) {
 
  295       ekpr *= std::sqrt(1.0 - x) * theG4Pow->
powN((1.0 - x), (3*a-6)/2); 
 
  298       ekpr *= theG4Pow->
powN((1.0 - x), (3*a-5)/2);
 
  316   const G4int itry_max = 1000;
 
  320   while(itry < itry_max) {      
 
  327     G4cout << 
" BigBanger -> can not generate x " << 
G4endl;
 
static G4Pow * GetInstance()
 
G4double xProbability(G4double x, G4int a) const 
 
G4double powN(G4double x, G4int n) const 
 
CLHEP::Hep3Vector G4ThreeVector
 
std::vector< G4InuclElementaryParticle > particles
 
static G4double getParticleMass(G4int type)
 
void generateMomentumModules(G4double etot, G4int a, G4int z)
 
void getTargetData(const G4Fragment &target)
 
G4GLOB_DLL std::ostream G4cout
 
std::vector< G4LorentzVector > scm_momentums
 
std::vector< G4double > momModules
 
G4LorentzVector generateWithRandomAngles(G4double p, G4double mass=0.)
 
void addOutgoingParticles(const std::vector< G4InuclElementaryParticle > &particles)
 
G4LorentzVector generateWithFixedTheta(G4double ct, G4double p, G4double mass=0.)
 
const G4double x[NPOINTSGL]
 
G4double maxProbability(G4int a) const 
 
void generateBangInSCM(G4double etot, G4int a, G4int z)
 
std::vector< G4InuclElementaryParticle >::iterator particleIterator
 
virtual G4bool validateOutput(const G4Fragment &target, G4CollisionOutput &output)
 
G4double generateX(G4int ia, G4double promax) const 
 
G4double bindingEnergy(G4int A, G4int Z)
 
virtual void deExcite(const G4Fragment &target, G4CollisionOutput &output)
 
G4GLOB_DLL std::ostream G4cerr
 
CLHEP::HepLorentzVector G4LorentzVector