Geant4
v4-10.4-release
메인 페이지
관련된 페이지
모듈
네임스페이스
클래스
파일들
파일 목록
파일 멤버
모두
클래스
네임스페이스들
파일들
함수
변수
타입정의
열거형 타입
열거형 멤버
Friends
매크로
그룹들
페이지들
examples
extended
electromagnetic
TestEm10
src
TransitionRadiationPhysics.cc
이 파일의 문서화 페이지로 가기
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: TransitionRadiationPhysics.cc 85047 2014-10-23 13:06:38Z maire $
27
//
28
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
29
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
30
31
#include "
TransitionRadiationPhysics.hh
"
32
#include "DetectorConstruction.hh"
33
#include "
G4VXTRenergyLoss.hh
"
34
#include "
G4ProcessManager.hh
"
35
#include "
G4Electron.hh
"
36
#include "
G4Positron.hh
"
37
38
#include "
G4VXTRenergyLoss.hh
"
39
#include "
G4RegularXTRadiator.hh
"
40
#include "
G4TransparentRegXTRadiator.hh
"
41
#include "
G4GammaXTRadiator.hh
"
42
#include "
G4StrawTubeXTRadiator.hh
"
43
44
#include "
G4XTRGammaRadModel.hh
"
45
#include "
G4XTRRegularRadModel.hh
"
46
#include "
G4XTRTransparentRegRadModel.hh
"
47
#include "
XTRTransparentRegRadModel.hh
"
48
49
G4ThreadLocal
50
G4VXTRenergyLoss
*
TransitionRadiationPhysics::fXTRProcess
=
nullptr
;
51
52
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
53
54
TransitionRadiationPhysics::TransitionRadiationPhysics
(
G4int
verb,
55
DetectorConstruction
* ptr)
56
:
G4VPhysicsConstructor
(
"XTR"
),
57
fDetector(ptr),
58
fVerbose(verb),
59
fXTRModel(
"transpM"
)
60
{}
61
62
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
63
64
TransitionRadiationPhysics::~TransitionRadiationPhysics
()
65
{}
66
67
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
68
69
void
TransitionRadiationPhysics::ConstructProcess
()
70
{
71
if
(
"dummy"
==
fXTRModel
) {
return
; }
72
if
(0 <
fVerbose
) {
73
G4cout
<<
"TransitionRadiationPhysics: XTR model <"
<<
fXTRModel
74
<<
">"
<<
G4endl
;
75
}
76
RadiatorDescription
* rDescription =
fDetector
->
GetRadiatorDescription
();
77
78
if
(
fXTRModel
==
"gammaR"
) {
79
80
fXTRProcess
=
new
G4GammaXTRadiator
(rDescription->
fLogicalVolume
,
81
100., 100.,
82
rDescription->
fFoilMaterial
,
83
rDescription->
fGasMaterial
,
84
rDescription->
fFoilThickness
,
85
rDescription->
fGasThickness
,
86
rDescription->
fFoilNumber
,
87
"GammaXTRadiator"
);
88
}
89
else
if
(
fXTRModel
==
"gammaM"
)
90
{
91
fXTRProcess
=
new
G4XTRGammaRadModel
(rDescription->
fLogicalVolume
,
92
100., 100.,
93
rDescription->
fFoilMaterial
,
94
rDescription->
fGasMaterial
,
95
rDescription->
fFoilThickness
,
96
rDescription->
fGasThickness
,
97
rDescription->
fFoilNumber
,
98
"GammaXTRadiator"
);
99
}
100
else
if
(
fXTRModel
==
"strawR"
)
101
{
102
fXTRProcess
=
new
G4StrawTubeXTRadiator
(rDescription->
fLogicalVolume
,
103
rDescription->
fFoilMaterial
,
104
rDescription->
fGasMaterial
,
105
0.53,
106
3.14159,
107
fDetector
->
GetAbsorberMaterial
(),
108
true
,
109
"strawXTRadiator"
);
110
}
111
else
if
(
fXTRModel
==
"regR"
)
112
{
113
fXTRProcess
=
new
G4RegularXTRadiator
(rDescription->
fLogicalVolume
,
114
rDescription->
fFoilMaterial
,
115
rDescription->
fGasMaterial
,
116
rDescription->
fFoilThickness
,
117
rDescription->
fGasThickness
,
118
rDescription->
fFoilNumber
,
119
"RegularXTRadiator"
);
120
}
121
else
if
(
fXTRModel
==
"transpR"
)
122
{
123
// G4TransparentRegXTRadiator*
124
fXTRProcess
=
new
G4TransparentRegXTRadiator
(rDescription->
fLogicalVolume
,
125
rDescription->
fFoilMaterial
,
126
rDescription->
fGasMaterial
,
127
rDescription->
fFoilThickness
,
128
rDescription->
fGasThickness
,
129
rDescription->
fFoilNumber
,
130
"RegularXTRadiator"
);
131
}
132
else
if
(
fXTRModel
==
"regM"
)
133
{
134
fXTRProcess
=
new
G4XTRRegularRadModel
(rDescription->
fLogicalVolume
,
135
rDescription->
fFoilMaterial
,
136
rDescription->
fGasMaterial
,
137
rDescription->
fFoilThickness
,
138
rDescription->
fGasThickness
,
139
rDescription->
fFoilNumber
,
140
"RegularXTRadiator"
);
141
142
}
143
else
if
(
fXTRModel
==
"transpM"
)
144
{
145
fXTRProcess
=
new
XTRTransparentRegRadModel
(rDescription->
fLogicalVolume
,
146
rDescription->
fFoilMaterial
,
147
rDescription->
fGasMaterial
,
148
rDescription->
fFoilThickness
,
149
rDescription->
fGasThickness
,
150
rDescription->
fFoilNumber
,
151
"RegularXTRadiator"
);
152
}
153
if
(!
fXTRProcess
) {
154
if
(0 <
fVerbose
) {
155
G4cout
<<
"TransitionRadiationPhysics: XTR model <"
<<
fXTRModel
156
<<
"> is not known - no XTR process defined"
<<
G4endl
;
157
}
158
return
;
159
}
160
161
fXTRProcess
->
SetVerboseLevel
(
fVerbose
);
162
163
G4Electron
* elec =
G4Electron::Electron
();
164
G4ProcessManager
* manager = elec->
GetProcessManager
();
165
manager->
AddDiscreteProcess
(
fXTRProcess
);
166
167
G4Positron
* posi =
G4Positron::Positron
();
168
manager = posi->
GetProcessManager
();
169
manager->
AddDiscreteProcess
(
fXTRProcess
);
170
}
171
172
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
173
G4XTRTransparentRegRadModel.hh
G4Positron.hh
G4Electron.hh
G4ProcessManager::AddDiscreteProcess
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
G4endl
#define G4endl
Definition:
G4ios.hh:61
G4TransparentRegXTRadiator
Definition:
G4TransparentRegXTRadiator.hh:51
G4TransparentRegXTRadiator.hh
G4XTRRegularRadModel
Definition:
G4XTRRegularRadModel.hh:49
G4XTRGammaRadModel
Definition:
G4XTRGammaRadModel.hh:56
G4Electron
Definition:
G4Electron.hh:50
TransitionRadiationPhysics::~TransitionRadiationPhysics
virtual ~TransitionRadiationPhysics()
Definition:
TransitionRadiationPhysics.cc:64
G4RegularXTRadiator
Definition:
G4RegularXTRadiator.hh:50
G4VXTRenergyLoss
Definition:
G4VXTRenergyLoss.hh:74
XTRTransparentRegRadModel.hh
Definition of the XTRTransparentRegRadModel class.
G4ThreadLocal
#define G4ThreadLocal
Definition:
tls.hh:69
DetectorConstruction::GetAbsorberMaterial
G4Material * GetAbsorberMaterial()
Definition:
examples/extended/analysis/AnaEx01/shared/include/DetectorConstruction.hh:83
G4VProcess::SetVerboseLevel
void SetVerboseLevel(G4int value)
Definition:
G4VProcess.hh:440
G4RegularXTRadiator.hh
DetectorConstruction::GetRadiatorDescription
RadiatorDescription * GetRadiatorDescription() const
Definition:
examples/extended/electromagnetic/TestEm10/src/DetectorConstruction.cc:142
G4XTRGammaRadModel.hh
XTRTransparentRegRadModel
Definition:
XTRTransparentRegRadModel.hh:53
G4ProcessManager.hh
TransitionRadiationPhysics.hh
Definition of the TransitionRadiationPhysics class.
RadiatorDescription::fFoilNumber
G4int fFoilNumber
Definition:
RadiatorDescription.hh:53
G4Positron::Positron
static G4Positron * Positron()
Definition:
G4Positron.cc:94
G4StrawTubeXTRadiator.hh
G4VPhysicsConstructor
Definition:
G4VPhysicsConstructor.hh:126
TransitionRadiationPhysics::fDetector
DetectorConstruction * fDetector
Definition:
TransitionRadiationPhysics.hh:59
G4Electron::Electron
static G4Electron * Electron()
Definition:
G4Electron.cc:94
G4XTRRegularRadModel.hh
RadiatorDescription::fFoilMaterial
G4Material * fFoilMaterial
Definition:
RadiatorDescription.hh:49
RadiatorDescription
Definition:
RadiatorDescription.hh:42
RadiatorDescription::fGasMaterial
G4Material * fGasMaterial
Definition:
RadiatorDescription.hh:50
G4int
int G4int
Definition:
G4Types.hh:78
TransitionRadiationPhysics::fXTRProcess
static G4ThreadLocal G4VXTRenergyLoss * fXTRProcess
Definition:
TransitionRadiationPhysics.hh:67
TransitionRadiationPhysics::fXTRModel
G4String fXTRModel
Definition:
TransitionRadiationPhysics.hh:65
G4ParticleDefinition::GetProcessManager
G4ProcessManager * GetProcessManager() const
Definition:
G4ParticleDefinition.cc:258
G4Positron
Definition:
G4Positron.hh:51
RadiatorDescription::fLogicalVolume
G4LogicalVolume * fLogicalVolume
Definition:
RadiatorDescription.hh:48
RadiatorDescription::fGasThickness
G4double fGasThickness
Definition:
RadiatorDescription.hh:52
G4GammaXTRadiator
Definition:
G4GammaXTRadiator.hh:57
G4cout
G4GLOB_DLL std::ostream G4cout
TransitionRadiationPhysics::ConstructProcess
virtual void ConstructProcess()
Definition:
TransitionRadiationPhysics.cc:69
RadiatorDescription::fFoilThickness
G4double fFoilThickness
Definition:
RadiatorDescription.hh:51
G4GammaXTRadiator.hh
G4ProcessManager
Definition:
G4ProcessManager.hh:106
G4StrawTubeXTRadiator
Definition:
G4StrawTubeXTRadiator.hh:53
TransitionRadiationPhysics::fVerbose
G4int fVerbose
Definition:
TransitionRadiationPhysics.hh:64
G4VXTRenergyLoss.hh
DetectorConstruction
Simple detector construction with a box volume placed in a world.
Definition:
environments/g4py/examples/demos/TestEm0/module/DetectorConstruction.hh:46
TransitionRadiationPhysics::TransitionRadiationPhysics
TransitionRadiationPhysics(G4int verb, DetectorConstruction *ptr)
Definition:
TransitionRadiationPhysics.cc:54
다음에 의해 생성됨 :
1.8.5