Geant4
10.03.p03
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
G4IonElasticPhysics.cc
Go to the documentation of this file.
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
// $Id: G4IonElasticPhysics.cc 73281 2013-08-23 08:21:37Z gcosmo $
27
//
28
//---------------------------------------------------------------------------
29
//
30
// ClassName: G4IonElasticPhysics
31
//
32
// Author: 23 October 2013 T. Koi
33
//
34
// Modified:
35
//
36
//----------------------------------------------------------------------------
37
//
38
39
#include "
G4IonElasticPhysics.hh
"
40
41
#include "
G4SystemOfUnits.hh
"
42
#include "
G4ParticleDefinition.hh
"
43
#include "
G4ProcessManager.hh
"
44
45
#include "
G4MesonConstructor.hh
"
46
#include "
G4BaryonConstructor.hh
"
47
#include "
G4IonConstructor.hh
"
48
49
#include "
G4HadronElasticProcess.hh
"
50
#include "
G4NuclNuclDiffuseElastic.hh
"
51
#include "
G4ComponentGGNuclNuclXsc.hh
"
52
#include "
G4CrossSectionElastic.hh
"
53
54
// factory
55
#include "
G4PhysicsConstructorFactory.hh
"
56
//
57
G4_DECLARE_PHYSCONSTR_FACTORY
(
G4IonElasticPhysics
);
58
//
59
G4ThreadLocal
G4bool
G4IonElasticPhysics::wasActivated =
false
;
60
61
G4IonElasticPhysics::G4IonElasticPhysics
(
G4int
ver)
62
:
G4VPhysicsConstructor
(
"IonElasticPhysics"
), verbose(ver)
63
{
64
if
(verbose > 1) {
65
G4cout
<<
"### G4IonElasticPhysics: "
<<
GetPhysicsName
()
66
<<
G4endl
;
67
}
68
}
69
70
G4IonElasticPhysics::~G4IonElasticPhysics
()
71
{}
72
73
void
G4IonElasticPhysics::ConstructParticle
()
74
{
75
// G4cout << "G4IonElasticPhysics::ConstructParticle" << G4endl;
76
G4MesonConstructor
pMesonConstructor;
77
pMesonConstructor.
ConstructParticle
();
78
79
G4BaryonConstructor
pBaryonConstructor;
80
pBaryonConstructor.
ConstructParticle
();
81
82
G4IonConstructor
pConstructor;
83
pConstructor.
ConstructParticle
();
84
}
85
86
void
G4IonElasticPhysics::ConstructProcess
()
87
{
88
if
(wasActivated) {
return
; }
89
wasActivated =
true
;
90
91
// Elastic process for other ions
92
G4HadronElasticProcess
* ionElasticProcess =
new
G4HadronElasticProcess
(
"ionElastic"
);
93
94
//Model
95
G4NuclNuclDiffuseElastic
* ionElastic =
new
G4NuclNuclDiffuseElastic
;
96
ionElastic->
SetMinEnergy
(0.0);
97
ionElasticProcess->
RegisterMe
(ionElastic);
98
99
//Cross Section
100
G4ComponentGGNuclNuclXsc
* ionElasticXS =
new
G4ComponentGGNuclNuclXsc
;
101
G4VCrossSectionDataSet
* ionElasticXSDataSet =
new
G4CrossSectionElastic
(ionElasticXS);
102
ionElasticXSDataSet->
SetMinKinEnergy
(0.0);
103
ionElasticProcess->
AddDataSet
(ionElasticXSDataSet);
104
105
G4ProcessManager
* ionManager =
G4GenericIon::GenericIon
()->
GetProcessManager
();
106
ionManager->
AddDiscreteProcess
( ionElasticProcess );
107
108
if
( verbose > 1 ) {
109
G4cout
<<
"### IonElasticPhysics: "
<< ionElasticProcess->
GetProcessName
()
110
<<
" added for "
<<
G4GenericIon::GenericIon
()->
GetParticleName
() <<
G4endl
;
111
}
112
}
G4MesonConstructor.hh
G4BaryonConstructor.hh
G4BaryonConstructor
Definition:
G4BaryonConstructor.hh:39
G4HadronElasticProcess
Definition:
G4HadronElasticProcess.hh:50
G4MesonConstructor
Definition:
G4MesonConstructor.hh:39
G4IonElasticPhysics::~G4IonElasticPhysics
virtual ~G4IonElasticPhysics()
Definition:
G4IonElasticPhysics.cc:70
G4ProcessManager::AddDiscreteProcess
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
G4ComponentGGNuclNuclXsc
Definition:
G4ComponentGGNuclNuclXsc.hh:50
G4BaryonConstructor::ConstructParticle
static void ConstructParticle()
Definition:
G4BaryonConstructor.cc:102
G4IonConstructor.hh
G4ThreadLocal
#define G4ThreadLocal
Definition:
tls.hh:89
G4VCrossSectionDataSet
Definition:
G4VCrossSectionDataSet.hh:71
G4MesonConstructor::ConstructParticle
static void ConstructParticle()
Definition:
G4MesonConstructor.cc:80
G4int
int G4int
Definition:
G4Types.hh:78
G4ParticleDefinition::GetParticleName
const G4String & GetParticleName() const
Definition:
G4ParticleDefinition.hh:120
G4IonConstructor::ConstructParticle
static void ConstructParticle()
Definition:
G4IonConstructor.cc:59
G4IonElasticPhysics.hh
G4HadronicProcess::RegisterMe
void RegisterMe(G4HadronicInteraction *a)
Definition:
G4HadronicProcess.cc:153
G4IonElasticPhysics::ConstructProcess
virtual void ConstructProcess()
Definition:
G4IonElasticPhysics.cc:86
G4HadronicInteraction::SetMinEnergy
void SetMinEnergy(G4double anEnergy)
Definition:
G4HadronicInteraction.hh:90
G4HadronicProcess::AddDataSet
void AddDataSet(G4VCrossSectionDataSet *aDataSet)
Definition:
G4HadronicProcess.hh:111
G4CrossSectionElastic.hh
G4cout
G4GLOB_DLL std::ostream G4cout
G4VCrossSectionDataSet::SetMinKinEnergy
void SetMinKinEnergy(G4double value)
Definition:
G4VCrossSectionDataSet.hh:201
G4bool
bool G4bool
Definition:
G4Types.hh:79
G4NuclNuclDiffuseElastic
Definition:
G4NuclNuclDiffuseElastic.hh:62
G4ProcessManager.hh
G4ParticleDefinition.hh
G4IonConstructor
Definition:
G4IonConstructor.hh:39
G4VPhysicsConstructor::GetPhysicsName
const G4String & GetPhysicsName() const
Definition:
G4VPhysicsConstructor.hh:195
G4IonElasticPhysics::G4IonElasticPhysics
G4IonElasticPhysics(G4int ver=0)
Definition:
G4IonElasticPhysics.cc:61
G4VProcess::GetProcessName
const G4String & GetProcessName() const
Definition:
G4VProcess.hh:408
G4GenericIon::GenericIon
static G4GenericIon * GenericIon()
Definition:
G4GenericIon.cc:93
G4ParticleDefinition::GetProcessManager
G4ProcessManager * GetProcessManager() const
Definition:
G4ParticleDefinition.cc:247
G4PhysicsConstructorFactory.hh
G4CrossSectionElastic
Definition:
G4CrossSectionElastic.hh:61
G4endl
#define G4endl
Definition:
G4ios.hh:61
G4ProcessManager
Definition:
G4ProcessManager.hh:106
G4SystemOfUnits.hh
G4NuclNuclDiffuseElastic.hh
G4HadronElasticProcess.hh
G4IonElasticPhysics
Definition:
G4IonElasticPhysics.hh:46
G4VPhysicsConstructor
Definition:
G4VPhysicsConstructor.hh:121
G4ComponentGGNuclNuclXsc.hh
G4_DECLARE_PHYSCONSTR_FACTORY
#define G4_DECLARE_PHYSCONSTR_FACTORY(physics_constructor)
Definition:
G4PhysicsConstructorFactory.hh:60
G4IonElasticPhysics::ConstructParticle
virtual void ConstructParticle()
Definition:
G4IonElasticPhysics.cc:73
source
geant4.10.03.p03
source
physics_lists
constructors
hadron_elastic
src
G4IonElasticPhysics.cc
Generated on Tue Nov 28 2017 21:44:03 for Geant4 by
1.8.5