Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4PreCompoundDeexcitation Class Reference

#include <G4PreCompoundDeexcitation.hh>

Inheritance diagram for G4PreCompoundDeexcitation:
Collaboration diagram for G4PreCompoundDeexcitation:

Public Member Functions

 G4PreCompoundDeexcitation ()
 
virtual ~G4PreCompoundDeexcitation ()
 
virtual void setVerboseLevel (G4int verbose)
 
virtual void deExcite (const G4Fragment &fragment, G4CollisionOutput &globalOutput)
 
- Public Member Functions inherited from G4CascadeDeexciteBase
 G4CascadeDeexciteBase (const char *name)
 
virtual ~G4CascadeDeexciteBase ()
 
- Public Member Functions inherited from G4VCascadeDeexcitation
 G4VCascadeDeexcitation (const G4String &name)
 
virtual ~G4VCascadeDeexcitation ()
 
virtual void collide (G4InuclParticle *bullet, G4InuclParticle *target, G4CollisionOutput &globalOutput)
 
- Public Member Functions inherited from G4VCascadeCollider
 G4VCascadeCollider (const G4String &name, G4int verbose=0)
 
virtual ~G4VCascadeCollider ()
 

Additional Inherited Members

- Protected Member Functions inherited from G4CascadeDeexciteBase
virtual G4bool explosion (const G4Fragment &target) const
 
virtual G4bool explosion (G4int A, G4int Z, G4double excitation) const
 
virtual G4bool validateOutput (const G4Fragment &target, G4CollisionOutput &output)
 
virtual G4bool validateOutput (const G4Fragment &target, const std::vector< G4InuclElementaryParticle > &particles)
 
virtual G4bool validateOutput (const G4Fragment &target, const std::vector< G4InuclNuclei > &fragments)
 
void getTargetData (const G4Fragment &target)
 
const G4FragmentmakeFragment (G4LorentzVector mom, G4int A, G4int Z, G4double EX=0.)
 
const G4FragmentmakeFragment (G4int A, G4int Z, G4double EX=0.)
 
- Protected Member Functions inherited from G4VCascadeCollider
virtual void setName (const G4String &name)
 
- Protected Attributes inherited from G4CascadeDeexciteBase
G4CascadeCheckBalancebalance
 
G4int A
 
G4int Z
 
G4LorentzVector PEX
 
G4double EEXS
 
G4Fragment aFragment
 
- Protected Attributes inherited from G4VCascadeCollider
G4String theName
 
G4int verboseLevel
 

Detailed Description

Definition at line 51 of file G4PreCompoundDeexcitation.hh.

Constructor & Destructor Documentation

G4PreCompoundDeexcitation::G4PreCompoundDeexcitation ( )

Definition at line 61 of file G4PreCompoundDeexcitation.cc.

62  : G4CascadeDeexciteBase("G4PreCompoundDeexcitation"),
63  theExcitationHandler(0), theDeExcitation(0) {
64  // Access common instance of PreCompound instead of creating new one
67 
68  // If not found, or cast fails, create a local instance
69  theDeExcitation = static_cast<G4PreCompoundModel*>(p);
70  if (!theDeExcitation) {
71  theExcitationHandler = new G4ExcitationHandler;
72  theDeExcitation = new G4PreCompoundModel(theExcitationHandler);
73  }
74 }
const char * p
Definition: xmltok.h:285
G4HadronicInteraction * FindModel(const G4String &name)
static G4HadronicInteractionRegistry * Instance()
G4CascadeDeexciteBase(const char *name)

Here is the call graph for this function:

G4PreCompoundDeexcitation::~G4PreCompoundDeexcitation ( )
virtual

Definition at line 76 of file G4PreCompoundDeexcitation.cc.

76  {
77  // Per V.I. -- do not delete locally; handled in hadronic registry
78  //delete theExcitationHandler;
79  //delete theDeExcitation;
80 }

Member Function Documentation

void G4PreCompoundDeexcitation::deExcite ( const G4Fragment fragment,
G4CollisionOutput globalOutput 
)
virtual

Implements G4VCascadeDeexcitation.

Definition at line 91 of file G4PreCompoundDeexcitation.cc.

92  {
93  if (verboseLevel)
94  G4cout << " >>> G4PreCompoundDeexcitation::deExcite" << G4endl;
95 
96  if (verboseLevel > 1) G4cout << fragment << G4endl;
97 
98  G4ReactionProductVector* precompoundProducts = 0;
99 
100  // FIXME: in principle, the explosion(...) stuff should also
101  // handle properly the case of Z=0 (neutron blob)
102  if (explosion(fragment) && theExcitationHandler) {
103  if (verboseLevel) G4cout << " calling BreakItUp" << G4endl;
104  precompoundProducts = theExcitationHandler->BreakItUp(fragment);
105  } else {
106  if (verboseLevel) G4cout << " calling DeExcite" << G4endl;
107  // NOTE: DeExcite() interface takes a *non-const* reference
108  precompoundProducts =
109  theDeExcitation->DeExcite(const_cast<G4Fragment&>(fragment));
110  }
111 
112  // Transfer output of de-excitation back into Bertini objects
113  if (precompoundProducts) {
114  if (verboseLevel>1) {
115  G4cout << " Got " << precompoundProducts->size()
116  << " secondaries back from PreCompound:" << G4endl;
117  }
118 
119  globalOutput.setVerboseLevel(verboseLevel); // For debugging
120  globalOutput.addOutgoingParticles(precompoundProducts);
121  globalOutput.setVerboseLevel(0);
122 
123  for ( size_t i = 0; i < precompoundProducts->size(); i++ ) {
124  if ( (*precompoundProducts)[ i ] ) {
125  delete (*precompoundProducts)[ i ];
126  (*precompoundProducts)[ i ] = 0;
127  }
128  }
129  precompoundProducts->clear();
130  delete precompoundProducts;
131  }
132 }
void setVerboseLevel(G4int verbose)
virtual G4ReactionProductVector * DeExcite(G4Fragment &aFragment)=0
G4ReactionProductVector * BreakItUp(const G4Fragment &theInitialState)
std::vector< G4ReactionProduct * > G4ReactionProductVector
G4GLOB_DLL std::ostream G4cout
void addOutgoingParticles(const std::vector< G4InuclElementaryParticle > &particles)
virtual G4bool explosion(const G4Fragment &target) const
#define G4endl
Definition: G4ios.hh:61

Here is the call graph for this function:

void G4PreCompoundDeexcitation::setVerboseLevel ( G4int  verbose)
virtual

Reimplemented from G4CascadeDeexciteBase.

Definition at line 82 of file G4PreCompoundDeexcitation.cc.

82  {
84  theDeExcitation->SetVerboseLevel(verbose);
85  // NOTE: G4ExcitationHandler doesn't have verbosity
86 }
virtual void setVerboseLevel(G4int verbose=0)
void SetVerboseLevel(G4int value)

Here is the call graph for this function:


The documentation for this class was generated from the following files: