Geant4  10.03.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GammaRayTelIonPhysics Class Reference

#include <GammaRayTelIonPhysics.hh>

Inheritance diagram for GammaRayTelIonPhysics:
Collaboration diagram for GammaRayTelIonPhysics:

Public Member Functions

 GammaRayTelIonPhysics (const G4String &name="ion")
 
virtual ~GammaRayTelIonPhysics ()
 
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
 

Protected Attributes

G4HadronElasticProcess theElasticProcess
 
G4HadronElastictheElasticModel
 
G4hMultipleScattering fIonMultipleScattering
 
G4hIonisation fIonIonisation
 
G4hMultipleScattering fDeuteronMultipleScattering
 
G4hIonisation fDeuteronIonisation
 
G4DeuteronInelasticProcess fDeuteronProcess
 
G4hMultipleScattering fTritonMultipleScattering
 
G4hIonisation fTritonIonisation
 
G4TritonInelasticProcess fTritonProcess
 
G4hMultipleScattering fAlphaMultipleScattering
 
G4hIonisation fAlphaIonisation
 
G4AlphaInelasticProcess fAlphaProcess
 
G4hMultipleScattering fHe3MultipleScattering
 
G4hIonisation fHe3Ionisation
 
- Protected Attributes inherited from G4VPhysicsConstructor
G4int verboseLevel
 
G4String namePhysics
 
G4int typePhysics
 
G4ParticleTabletheParticleTable
 
G4int g4vpcInstanceID
 

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)
 
G4ParticleTable::G4PTblDicIteratorGetParticleIterator () const
 
- Static Protected Attributes inherited from G4VPhysicsConstructor
static G4RUN_DLL G4VPCManager subInstanceManager
 

Detailed Description

Definition at line 72 of file GammaRayTelIonPhysics.hh.

Constructor & Destructor Documentation

GammaRayTelIonPhysics::GammaRayTelIonPhysics ( const G4String name = "ion")

Definition at line 40 of file GammaRayTelIonPhysics.cc.

41  : G4VPhysicsConstructor(name)
42 {;}
G4VPhysicsConstructor(const G4String &="")
GammaRayTelIonPhysics::~GammaRayTelIonPhysics ( )
virtual

Definition at line 44 of file GammaRayTelIonPhysics.cc.

45 {;}

Member Function Documentation

void GammaRayTelIonPhysics::ConstructParticle ( void  )
virtual

Implements G4VPhysicsConstructor.

Definition at line 47 of file GammaRayTelIonPhysics.cc.

48 {;}
void GammaRayTelIonPhysics::ConstructProcess ( void  )
virtual

Implements G4VPhysicsConstructor.

Definition at line 54 of file GammaRayTelIonPhysics.cc.

55 {
56  G4ProcessManager * pManager = 0;
57 
58  const G4double theBERTMin = 0.0*GeV;
59  const G4double theBERTMax = 5.0*GeV;
60  const G4double theFTFMin = 4.0*GeV;
61  const G4double theFTFMax = 100.0*TeV;
62 
63  G4FTFModel* theStringModel = new G4FTFModel;
65  theStringModel->SetFragmentationModel( theStringDecay );
66  G4PreCompoundModel* thePreEquilib = new G4PreCompoundModel( new G4ExcitationHandler );
67  G4GeneratorPrecompoundInterface* theCascade = new G4GeneratorPrecompoundInterface( thePreEquilib );
68 
69  G4TheoFSGenerator* theModel = new G4TheoFSGenerator( "FTFP" );
70  theModel->SetHighEnergyGenerator( theStringModel );
71  theModel->SetTransport( theCascade );
72  theModel->SetMinEnergy( theFTFMin );
73  theModel->SetMaxEnergy( theFTFMax );
74 
75  G4CascadeInterface * theBERTModel = new G4CascadeInterface;
76  theBERTModel->SetMinEnergy( theBERTMin );
77  theBERTModel->SetMaxEnergy( theBERTMax );
78 
79  // Elastic Process
82 
83  // Generic Ion
85  // add process
87 
88  pManager->AddProcess(&fIonIonisation, ordInActive, 2, 2);
89 
93 
94  G4ComponentGGNuclNuclXsc * ggNuclNuclXsec = new G4ComponentGGNuclNuclXsc();
95  G4VCrossSectionDataSet * theGGNuclNuclData = new G4CrossSectionInelastic(ggNuclNuclXsec);
96 
97  // Deuteron
99  // add process
101  fDeuteronProcess.AddDataSet(theGGNuclNuclData);
102  fDeuteronProcess.RegisterMe(theBERTModel);
103  fDeuteronProcess.RegisterMe(theModel);
105 
106  pManager->AddProcess(&fDeuteronIonisation, ordInActive, 2, 2);
107 
111 
112  // Triton
113  pManager = G4Triton::Triton()->GetProcessManager();
114  // add process
116  fTritonProcess.AddDataSet(theGGNuclNuclData);
117  fTritonProcess.RegisterMe(theBERTModel);
118  fTritonProcess.RegisterMe(theModel);
120 
121  pManager->AddProcess(&fTritonIonisation, ordInActive, 2, 2);
122 
126 
127  // Alpha
128  pManager = G4Alpha::Alpha()->GetProcessManager();
129  // add process
131 
132  fAlphaProcess.AddDataSet(theGGNuclNuclData);
133  fAlphaProcess.RegisterMe(theBERTModel);
134  fAlphaProcess.RegisterMe(theModel);
135  pManager->AddDiscreteProcess(&fAlphaProcess);
136 
137  pManager->AddProcess(&fAlphaIonisation, ordInActive, 2, 2);
138 
142 
143  // He3
144  pManager = G4He3::He3()->GetProcessManager();
145  // add process
147 
148  pManager->AddProcess(&fHe3Ionisation, ordInActive, 2, 2);
149 
153 
154 }
G4hMultipleScattering fDeuteronMultipleScattering
void SetFragmentationModel(G4VStringFragmentation *aModel)
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
G4TritonInelasticProcess fTritonProcess
void SetHighEnergyGenerator(G4VHighEnergyGenerator *const value)
void RegisterMe(G4HadronicInteraction *a)
static constexpr double TeV
Definition: G4SIunits.hh:218
G4HadronElastic * theElasticModel
void SetMinEnergy(G4double anEnergy)
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
G4DeuteronInelasticProcess fDeuteronProcess
G4HadronElasticProcess theElasticProcess
G4hMultipleScattering fTritonMultipleScattering
G4int AddProcess(G4VProcess *aProcess, G4int ordAtRestDoIt=ordInActive, G4int ordAlongSteptDoIt=ordInActive, G4int ordPostStepDoIt=ordInActive)
static G4Triton * Triton()
Definition: G4Triton.cc:95
void SetProcessOrdering(G4VProcess *aProcess, G4ProcessVectorDoItIndex idDoIt, G4int ordDoIt=ordDefault)
G4AlphaInelasticProcess fAlphaProcess
G4hMultipleScattering fHe3MultipleScattering
static G4Deuteron * Deuteron()
Definition: G4Deuteron.cc:94
static G4GenericIon * GenericIon()
Definition: G4GenericIon.cc:93
G4ProcessManager * GetProcessManager() const
static constexpr double GeV
Definition: G4SIunits.hh:217
void SetMaxEnergy(const G4double anEnergy)
void SetTransport(G4VIntraNuclearTransportModel *const value)
G4hMultipleScattering fAlphaMultipleScattering
static G4Alpha * Alpha()
Definition: G4Alpha.cc:89
double G4double
Definition: G4Types.hh:76
G4hMultipleScattering fIonMultipleScattering
static G4He3 * He3()
Definition: G4He3.cc:94

Here is the call graph for this function:

Member Data Documentation

G4hIonisation GammaRayTelIonPhysics::fAlphaIonisation
protected

Definition at line 109 of file GammaRayTelIonPhysics.hh.

G4hMultipleScattering GammaRayTelIonPhysics::fAlphaMultipleScattering
protected

Definition at line 108 of file GammaRayTelIonPhysics.hh.

G4AlphaInelasticProcess GammaRayTelIonPhysics::fAlphaProcess
protected

Definition at line 110 of file GammaRayTelIonPhysics.hh.

G4hIonisation GammaRayTelIonPhysics::fDeuteronIonisation
protected

Definition at line 99 of file GammaRayTelIonPhysics.hh.

G4hMultipleScattering GammaRayTelIonPhysics::fDeuteronMultipleScattering
protected

Definition at line 98 of file GammaRayTelIonPhysics.hh.

G4DeuteronInelasticProcess GammaRayTelIonPhysics::fDeuteronProcess
protected

Definition at line 100 of file GammaRayTelIonPhysics.hh.

G4hIonisation GammaRayTelIonPhysics::fHe3Ionisation
protected

Definition at line 114 of file GammaRayTelIonPhysics.hh.

G4hMultipleScattering GammaRayTelIonPhysics::fHe3MultipleScattering
protected

Definition at line 113 of file GammaRayTelIonPhysics.hh.

G4hIonisation GammaRayTelIonPhysics::fIonIonisation
protected

Definition at line 95 of file GammaRayTelIonPhysics.hh.

G4hMultipleScattering GammaRayTelIonPhysics::fIonMultipleScattering
protected

Definition at line 94 of file GammaRayTelIonPhysics.hh.

G4hIonisation GammaRayTelIonPhysics::fTritonIonisation
protected

Definition at line 104 of file GammaRayTelIonPhysics.hh.

G4hMultipleScattering GammaRayTelIonPhysics::fTritonMultipleScattering
protected

Definition at line 103 of file GammaRayTelIonPhysics.hh.

G4TritonInelasticProcess GammaRayTelIonPhysics::fTritonProcess
protected

Definition at line 105 of file GammaRayTelIonPhysics.hh.

G4HadronElastic* GammaRayTelIonPhysics::theElasticModel
protected

Definition at line 91 of file GammaRayTelIonPhysics.hh.

G4HadronElasticProcess GammaRayTelIonPhysics::theElasticProcess
protected

Definition at line 90 of file GammaRayTelIonPhysics.hh.


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