Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
G4IonINCLXXPhysics Class Reference

#include <G4IonINCLXXPhysics.hh>

Inheritance diagram for G4IonINCLXXPhysics:
G4VPhysicsConstructor

Public Member Functions

 G4IonINCLXXPhysics (G4int ver=0)
 
 G4IonINCLXXPhysics (const G4String &name, G4int ver=0)
 
virtual ~G4IonINCLXXPhysics ()
 
virtual void ConstructParticle ()
 
virtual void ConstructProcess ()
 
- Public Member Functions inherited from G4VPhysicsConstructor
 G4VPhysicsConstructor (const G4String &="")
 
 G4VPhysicsConstructor (const G4String &name, G4int physics_type)
 
virtual ~G4VPhysicsConstructor ()
 
void SetPhysicsName (const G4String &="")
 
const G4StringGetPhysicsName () const
 
void SetPhysicsType (G4int)
 
G4int GetPhysicsType () const
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 
G4int GetInstanceID () const
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VPhysicsConstructor
static const G4VPCManagerGetSubInstanceManager ()
 
- Protected Member Functions inherited from G4VPhysicsConstructor
G4bool RegisterProcess (G4VProcess *process, G4ParticleDefinition *particle)
 
- Protected Attributes inherited from G4VPhysicsConstructor
G4int verboseLevel
 
G4String namePhysics
 
G4int typePhysics
 
G4ParticleTabletheParticleTable
 
G4int g4vpcInstanceID
 
- Static Protected Attributes inherited from G4VPhysicsConstructor
static G4RUN_DLL G4VPCManager subInstanceManager
 

Detailed Description

Definition at line 54 of file G4IonINCLXXPhysics.hh.

Constructor & Destructor Documentation

G4IonINCLXXPhysics::G4IonINCLXXPhysics ( G4int  ver = 0)

Definition at line 88 of file G4IonINCLXXPhysics.cc.

References bIons, G4cout, G4endl, python.hepunit::GeV, python.hepunit::MeV, G4VPhysicsConstructor::SetPhysicsType(), and python.hepunit::TeV.

88  :
89  G4VPhysicsConstructor("IonINCLXX"),
90  verbose(ver)
91 {
92  // INCLXX light ion maximum energy is 3.0 GeV/nucleon
93  emax_d = 2 * 3.0 * GeV;
94  emax_t = 3 * 3.0 * GeV;
95  emax_he3 = 3 * 3.0 * GeV;
96  emax_alpha = 4 * 3.0 * GeV;
97  emax = 18 * 3.0 * GeV;
98  emaxFTFP = 1.*TeV;
99  emin = 0.*MeV;
101  if(verbose > 1) G4cout << "### G4IonINCLXXPhysics" << G4endl;
102 }
G4GLOB_DLL std::ostream G4cout
G4VPhysicsConstructor(const G4String &="")
#define G4endl
Definition: G4ios.hh:61
G4IonINCLXXPhysics::G4IonINCLXXPhysics ( const G4String name,
G4int  ver = 0 
)

Definition at line 104 of file G4IonINCLXXPhysics.cc.

References bIons, G4cout, G4endl, python.hepunit::GeV, python.hepunit::MeV, G4VPhysicsConstructor::SetPhysicsType(), and python.hepunit::TeV.

106  : G4VPhysicsConstructor(name),
107  verbose(ver)
108 {
109  // INCLXX light ion maximum energy is 3.0 GeV/nucleon
110  emax_d = 2 * 3.0 * GeV;
111  emax_t = 3 * 3.0 * GeV;
112  emax_he3 = 3 * 3.0 * GeV;
113  emax_alpha = 4 * 3.0 * GeV;
114  emax = 18 * 3.0 * GeV;
115  emaxFTFP = 1.*TeV;
116  emin = 0.*MeV;
118  if(verbose > 1) G4cout << "### G4IonINCLXXPhysics" << G4endl;
119 }
G4GLOB_DLL std::ostream G4cout
G4VPhysicsConstructor(const G4String &="")
#define G4endl
Definition: G4ios.hh:61
G4IonINCLXXPhysics::~G4IonINCLXXPhysics ( )
virtual

Definition at line 121 of file G4IonINCLXXPhysics.cc.

References n.

122 {
123  //For MT need to explicitly set back pointers to zero:
124  //variables are static and if new threads are created we can have problems
125  //since variable is still pointing old value
126  if(wasActivated) {
127  delete theFTFPBuilderDeuteron; theFTFPBuilderDeuteron=0;
128  delete theFTFPBuilderTriton; theFTFPBuilderTriton=0;
129  delete theFTFPBuilderHe3; theFTFPBuilderHe3=0;
130  delete theFTFPBuilderAlpha; theFTFPBuilderAlpha=0;
131  delete theFTFPBuilderIons; theFTFPBuilderIons=0;
132  delete theGGNuclNuclXS; theGGNuclNuclXS=0;
133  delete theNuclNuclData; theGGNuclNuclXS=0;
134  G4int i;
135  if ( p_list ) {
136  G4int n = p_list->size();
137  for(i=0; i<n; i++) {delete (*p_list)[i];}
138  delete p_list; p_list = 0;
139  }
140  if ( model_list) {
141  G4int n = model_list->size();
142  for(i=0; i<n; i++) { delete (*model_list)[i];}
143  delete model_list; model_list = 0;
144  }
145  }
146 }
int G4int
Definition: G4Types.hh:78
const G4int n

Member Function Documentation

void G4IonINCLXXPhysics::ConstructParticle ( void  )
virtual

Implements G4VPhysicsConstructor.

Definition at line 224 of file G4IonINCLXXPhysics.cc.

References G4IonConstructor::ConstructParticle().

225 {
226  // Construct light ions
227  G4IonConstructor pConstructor;
228  pConstructor.ConstructParticle();
229 }
static void ConstructParticle()
void G4IonINCLXXPhysics::ConstructProcess ( void  )
virtual

Implements G4VPhysicsConstructor.

Definition at line 148 of file G4IonINCLXXPhysics.cc.

References G4Alpha::Alpha(), G4Deuteron::Deuteron(), G4GenericIon::GenericIon(), G4VHadronModelBuilder::GetModel(), G4He3::He3(), and G4Triton::Triton().

149 {
150  if(wasActivated) return;
151  wasActivated = true;
152 
153  theINCLXXDeuteron= new G4INCLXXInterface();
154  theINCLXXTriton= new G4INCLXXInterface();
155  theINCLXXHe3= new G4INCLXXInterface();
156  theINCLXXAlpha= new G4INCLXXInterface();
157  theINCLXXIons= new G4INCLXXInterface();
158  if ( model_list == 0 ) model_list = new std::vector<G4HadronicInteraction*>;
159  model_list->push_back(theINCLXXDeuteron);
160  model_list->push_back(theINCLXXTriton);
161  model_list->push_back(theINCLXXHe3);
162  model_list->push_back(theINCLXXAlpha);
163  model_list->push_back(theINCLXXIons);
164 
165  G4ExcitationHandler* handler = new G4ExcitationHandler();
166  G4PreCompoundModel* thePreCompound = new G4PreCompoundModel(handler);
167 
168  theFTFPBuilderDeuteron = new G4FTFBuilder("FTFP",thePreCompound);
169  theFTFPDeuteron = theFTFPBuilderDeuteron->GetModel();
170  theFTFPBuilderTriton = new G4FTFBuilder("FTFP",thePreCompound);
171  theFTFPTriton = theFTFPBuilderTriton->GetModel();
172  theFTFPBuilderHe3 = new G4FTFBuilder("FTFP",thePreCompound);
173  theFTFPHe3 = theFTFPBuilderHe3->GetModel();
174  theFTFPBuilderAlpha = new G4FTFBuilder("FTFP",thePreCompound);
175  theFTFPAlpha = theFTFPBuilderAlpha->GetModel();
176  theFTFPBuilderIons = new G4FTFBuilder("FTFP",thePreCompound);
177  theFTFPIons = theFTFPBuilderIons->GetModel();
178  model_list->push_back(theFTFPDeuteron);
179  model_list->push_back(theFTFPTriton);
180  model_list->push_back(theFTFPHe3);
181  model_list->push_back(theFTFPAlpha);
182  model_list->push_back(theFTFPIons);
183 
184  theNuclNuclData = new G4CrossSectionInelastic( theGGNuclNuclXS = new G4ComponentGGNuclNuclXsc() );
185 
186  AddProcess("dInelastic", G4Deuteron::Deuteron(), theINCLXXDeuteron, theFTFPDeuteron, emax_d);
187  AddProcess("tInelastic", G4Triton::Triton(), theINCLXXTriton, theFTFPTriton, emax_t);
188  AddProcess("He3Inelastic", G4He3::He3(), theINCLXXHe3, theFTFPHe3, emax_he3);
189  AddProcess("alphaInelastic", G4Alpha::Alpha(), theINCLXXAlpha, theFTFPAlpha, emax_alpha);
190  AddProcess("ionInelastic", G4GenericIon::GenericIon(), theINCLXXIons, theFTFPIons, emax);
191 }
INCL++ intra-nuclear cascade.
G4HadronicInteraction * GetModel()
static G4Triton * Triton()
Definition: G4Triton.cc:95
static G4Deuteron * Deuteron()
Definition: G4Deuteron.cc:94
static G4GenericIon * GenericIon()
Definition: G4GenericIon.cc:93
static G4Alpha * Alpha()
Definition: G4Alpha.cc:89
static G4He3 * He3()
Definition: G4He3.cc:94

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