166     theCascadeHistory(0), tnuclei(0), bnuclei(0), bparticle(0),
 
  167     minimum_recoil_A(0.), coulombBarrier(0.),
 
  217   finalize(itry, bullet, target, globalOutput);
 
  228     G4cout << 
" >>> G4IntraNucleiCascader::rescatter " << 
G4endl;
 
  243   finalize(itry, bullet, target, globalOutput);
 
  250     G4cout << 
" >>> G4IntraNucleiCascader::initialize " << 
G4endl;
 
  267     G4cerr << 
" G4IntraNucleiCascader: projectile is not a valid particle." 
  276       G4cerr << 
" Target is not a nucleus.  Abandoning." << 
G4endl;
 
  289     G4cout << 
" intitial momentum  E " << momentum_in.e() << 
" Px " 
  290            << momentum_in.x() << 
" Py " << momentum_in.y() << 
" Pz " 
  291            << momentum_in.z() << 
G4endl;
 
  301     G4cout << 
" IntraNucleiCascader itry " << itry << 
" inter_case " 
  319     G4cout << 
" >>> G4IntraNucleiCascader::setupCascade" << 
G4endl;
 
  340       for (i = 0; i < 
ab; i++) {
 
  341         G4int knd = i < zb ? 1 : 2;
 
  365       G4cout << 
" Iteration " << iloop << 
": Number of cparticles " 
  374         G4cout << 
" active cparticle got history ID " 
  388       G4cout << 
" After generate fate: New particles " 
  390              << 
" Discarding last cparticle from list " << 
G4endl;
 
  431           if (KE > 0.0001) CBP = std::exp(-0.0181*0.5*
tnuclei->
getZ()*
 
  433                                           std::sqrt(mass*(coulombBarrier-KE)) );
 
  462         G4cout << 
" adding new exciton holes " << holes.first << 
"," 
  463                << holes.second << 
G4endl;
 
  467       if (holes.second > 0)
 
  478              << 
" nucleus (model) has " 
  481              << 
" residual fragment A " << aresid << 
G4endl;
 
  493     G4cout << 
" >>> G4IntraNucleiCascader::finishCascade ?" << 
G4endl;
 
  529       G4cerr << 
" Recoil nucleus is not physical: A=" << afin << 
" Z=" 
  537     G4cout << 
"  afin " << afin << 
" zfin " << zfin <<  
G4endl;
 
  540   if (afin == 0) 
return true;           
 
  543     G4int last_type = (zfin==1) ? 1 : 2;        
 
  556         G4cerr << 
" extra energy with recoil nucleon" << 
G4endl;
 
  566       G4cout << 
" adding recoiling nucleon to output list\n" 
  567              << last_particle  << 
G4endl;
 
  582         G4cout << 
" quasi-elastic scatter with " << Eex << 
" MeV recoil" 
  599       G4cerr << 
"Got null pointer for recoil fragment!" << 
G4endl;
 
  604       G4cout << 
" adding recoil fragment to output list" << 
G4endl;
 
  645       G4cout << 
" IntraNucleiCascader-> no inelastic interaction after " 
  646              << itry << 
" attempts " << 
G4endl;
 
  651     G4cout << 
" IntraNucleiCascader output after trials " << itry << 
G4endl;
 
  666   if (theNucleusA > 1) {
 
  685     G4cout << 
" >>> G4IntraNucleiCascader::preloadCascade" << 
G4endl;
 
  693     G4cout << 
" >>> G4IntraNucleiCascader::copyWoundedNucleus" << 
G4endl;
 
  713            << 
" protons hit" << 
G4endl;
 
  723     G4cout << 
" >>> G4IntraNucleiCascader::copySecondaries" << 
G4endl;
 
  725   for (
size_t i=0; i<secondaries->size(); i++) {
 
  736     G4cout << 
" Original list of " << secondaries->size() << 
" secondaries" 
  760     G4cout << 
" >>> G4IntraNucleiCascader::processSecondary " 
  781     G4cout << 
" Created cascade particle \n" << cpart << 
G4endl;
 
  791     G4cout << 
" >>> G4IntraNucleiCascader::releaseSecondary " 
  796   if (dynamic_cast<const G4Ions*>(kpd)) {
 
  804       G4cout << 
" Created pre-cascade fragment\n" << inucl << 
G4endl;
 
  813       G4cout << 
" Created invalid pre-cascade particle\n" << ipart << 
G4endl;
 
  842     G4cout << 
" non-standard should be absorbed, now released\n" 
  855     G4cout << 
" unstable must be decayed in flight" << 
G4endl;
 
  862       G4cerr << 
" no decay table!  Releasing trapped particle" << 
G4endl;
 
  872       G4cerr << 
" no daughters!  Releasing trapped particle" << 
G4endl;
 
  884   daughters->
Boost(decayEnergy, decayDir);
 
G4bool hadNucleus() const 
 
void reset(G4int nHitNeutrons=0, G4int nHitProtons=0, const std::vector< G4ThreeVector > *hitPoints=0)
 
void fill(G4int a, G4int z, G4double exc=0., Model model=DefaultModel)
 
void trivialise(G4InuclParticle *bullet, G4InuclParticle *target)
 
void setVerboseLevel(G4int verbose)
 
G4InuclElementaryParticle * protonTarget
 
G4bool goodNucleus() const 
 
void processTrappedParticle(const G4CascadParticle &trapped)
 
std::pair< std::vector< G4CascadParticle >, std::vector< G4InuclElementaryParticle > > modelLists
 
std::vector< G4CascadParticle > cascad_particles
 
const G4ParticleDefinition * GetParticleType() const 
 
static const G4CascadeChannel * GetTable(G4int initialState)
 
static const G4int reflection_cut
 
G4CascadeHistory * theCascadeHistory
 
std::pair< G4int, G4int > getTypesOfNucleonsInvolved() const 
 
static G4bool showHistory()
 
void incrementQP(G4int ip)
 
virtual G4int GetCharge()=0
 
CLHEP::Hep3Vector G4ThreeVector
 
static const G4int itry_max
 
G4LorentzVector getMomentum() const 
 
void setVerboseLevel(G4int verbose)
 
const G4ThreeVector & GetPosition() const 
 
G4int getGeneration() const 
 
void initializePath(G4double npath)
 
virtual G4bool StartLoop()=0
 
void printCollisionOutput(std::ostream &os=G4cout) const 
 
static G4bool doCoalescence()
 
virtual G4int GetMassNumber()=0
 
void Print(std::ostream &os) const 
 
const G4ParticleDefinition * getDefinition() const 
 
G4ExitonConfiguration theExitonConfiguration
 
static const G4double quasielast_cut
 
G4bool stillInside(const G4CascadParticle &cparticle)
 
G4bool wholeEvent() const 
 
void addOutgoingParticle(const G4InuclElementaryParticle &particle)
 
G4double getEnergy() const 
 
void updatePosition(const G4ThreeVector &pos)
 
std::vector< G4ThreeVector > hitNucleons
 
const G4LorentzVector & getRecoilMomentum() const 
 
virtual const G4ThreeVector & GetPosition() const 
 
static G4double getParticleMass(G4int type)
 
void Boost(G4double totalEnergy, const G4ThreeVector &momentumDirection)
 
G4CascadParticle initializeCascad(G4InuclElementaryParticle *particle)
 
void setGeneration(G4int gen)
 
G4double getRecoilExcitation() const 
 
G4InuclParticle * createTarget(G4V3DNucleus *theNucleus)
 
const G4InuclElementaryParticle & getParticle() const 
 
const G4String & GetParticleName() const 
 
G4bool acceptable() const 
 
virtual void setVerboseLevel(G4int verbose=0)
 
G4int GetAtomicNumber() const 
 
G4double getKineticEnergy() const 
 
std::vector< G4InuclElementaryParticle >::iterator particleIterator
 
G4DecayTable * GetDecayTable() const 
 
void updateZone(G4int izone)
 
void incrementHoles(G4int ip)
 
G4InuclNuclei * nucleusTarget
 
void collide(G4InuclParticle *bullet, G4InuclParticle *target, G4CollisionOutput &output)
 
void add(const G4CollisionOutput &right)
 
G4CascadeCoalescence * theClusterMaker
 
G4bool initialize(G4InuclParticle *bullet, G4InuclParticle *target)
 
G4GLOB_DLL std::ostream G4cout
 
void decayTrappedParticle(const G4CascadParticle &trapped)
 
G4bool goodFragment() const 
 
G4CascadeRecoilMaker * theRecoilMaker
 
void rescatter(G4InuclParticle *bullet, G4KineticTrackVector *theSecondaries, G4V3DNucleus *theNucleus, G4CollisionOutput &globalOutput)
 
G4int numberOfOutgoingParticles() const 
 
void generateModel(G4InuclNuclei *nuclei)
 
G4double G4cbrt(G4double x)
 
void DropEntry(const G4CascadParticle &cpart)
 
void collide(G4InuclParticle *bullet, G4InuclParticle *target, G4CollisionOutput &globalOutput)
 
G4int GetAtomicMass() const 
 
G4VDecayChannel * SelectADecayChannel()
 
G4InteractionCase interCase
 
void processSecondary(const G4KineticTrack *aSecondary)
 
void generateParticleFate(G4CascadParticle &cparticle, G4ElementaryParticleCollider *theEPCollider, std::vector< G4CascadParticle > &cascade)
 
G4int AddEntry(G4CascadParticle &cpart)
 
void newCascade(G4int itry)
 
G4int numberOfOutgoingNuclei() const 
 
void addOutgoingParticles(const std::vector< G4InuclElementaryParticle > &particles)
 
static const G4double small_ekin
 
G4int getNumberOfProtons() const 
 
void set(G4InuclParticle *part1, G4InuclParticle *part2)
 
G4double minimum_recoil_A
 
void copyWoundedNucleus(G4V3DNucleus *theNucleus)
 
G4double GetPDGMass() const 
 
void setMovingInsideNuclei(G4bool isMovingIn=true)
 
void setTolerance(G4double tolerance)
 
void copySecondaries(G4KineticTrackVector *theSecondaries)
 
G4bool worthToPropagate(const G4CascadParticle &cparticle) const 
 
const std::vector< G4InuclNuclei > & getOutgoingNuclei() const 
 
const std::vector< G4InuclElementaryParticle > & getOutgoingParticles() const 
 
G4int getCurrentZone() const 
 
G4int getNumberOfNeutrons() const 
 
void fill(G4int ityp, Model model=DefaultModel)
 
G4double getCharge() const 
 
void setVerboseLevel(G4int verbose)
 
G4InuclParticle * getBullet() const 
 
virtual void setVerboseLevel(G4int verbose=0)
 
void setVerboseLevel(G4int verbose=0)
 
void setVerboseLevel(G4int verbose=0)
 
virtual G4Nucleon * GetNextNucleon()=0
 
std::vector< G4CascadParticle > new_cascad_particles
 
const G4ThreeVector & getPosition() const 
 
virtual G4DecayProducts * DecayIt(G4double parentMass=-1.0)=0
 
void addRecoilFragment(const G4Fragment *aFragment)
 
void FindClusters(G4CollisionOutput &finalState)
 
void setRecoilExcitation(G4double Eexc)
 
void finalize(G4int itry, G4InuclParticle *bullet, G4InuclParticle *target, G4CollisionOutput &globalOutput)
 
G4InuclParticle * getTarget() const 
 
const G4LorentzVector & Get4Momentum() const 
 
G4ElementaryParticleCollider * theElementaryParticleCollider
 
virtual ~G4IntraNucleiCascader()
 
G4double getRadiusUnits() const 
 
const G4ParticleDefinition * GetDefinition() const 
 
G4int getNumberOfReflections() const 
 
G4int AddVertex(G4CascadParticle &cpart, std::vector< G4CascadParticle > &daug)
 
G4int getZone(G4double r) const 
 
void releaseSecondary(const G4KineticTrack *aSecondary)
 
void addExcitonConfiguration(const G4ExitonConfiguration exciton)
 
void preloadCascade(G4V3DNucleus *theNucleus, G4KineticTrackVector *theSecondaries)
 
G4Fragment * makeRecoilFragment()
 
void setOnShell(G4InuclParticle *bullet, G4InuclParticle *target)
 
G4GLOB_DLL std::ostream G4cerr
 
G4InuclElementaryParticle * bparticle
 
CLHEP::HepLorentzVector G4LorentzVector