Geant4  10.03.p03
 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 G4String & GetPhysicsName () const
 
void SetPhysicsType (G4int)
 
G4int GetPhysicsType () const
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 
G4int GetInstanceID () const
 

Protected Attributes

G4HadronElasticProcess theElasticProcess
 
G4HadronElastic * theElasticModel
 
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
 
G4ParticleTable * theParticleTable
 
G4int g4vpcInstanceID
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VPhysicsConstructor
static const G4VPCManager & GetSubInstanceManager ()
 
- Protected Member Functions inherited from G4VPhysicsConstructor
G4bool RegisterProcess (G4VProcess *process, G4ParticleDefinition *particle)
 
G4ParticleTable::G4PTblDicIterator * GetParticleIterator () 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: