Geant4
10.02.p01
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
CexmcStudiedPhysics.hh
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
/*
27
* =============================================================================
28
*
29
* Filename: CexmcStudiedPhysics.hh
30
*
31
* Description: studied physics in the target
32
*
33
* Version: 1.0
34
* Created: 18.10.2009 16:10:52
35
* Revision: none
36
* Compiler: gcc
37
*
38
* Author: Alexey Radkov (),
39
* Company: PNPI
40
*
41
* =============================================================================
42
*/
43
44
#ifndef CEXMC_STUDIED_PHYSICS_HH
45
#define CEXMC_STUDIED_PHYSICS_HH
46
47
#include <
G4VPhysicsConstructor.hh
>
48
#include <
G4ProcessManager.hh
>
49
#include <
G4ParticleDefinition.hh
>
50
#include "
CexmcFakeCrossSectionData.hh
"
51
#include "
CexmcStudiedProcess.hh
"
52
#include "
CexmcPhysicsManager.hh
"
53
#include "
CexmcProductionModel.hh
"
54
55
class
G4VProcess
;
56
57
58
template
<
typename
Process >
59
class
CexmcStudiedPhysics
:
public
G4VPhysicsConstructor
60
{
61
public
:
62
explicit
CexmcStudiedPhysics
(
CexmcPhysicsManager
*
physicsManager
);
63
64
virtual
~CexmcStudiedPhysics
();
65
66
public
:
67
void
ConstructParticle
(
void
);
68
69
void
ConstructProcess
(
void
);
70
71
public
:
72
CexmcProductionModel
*
GetProductionModel
(
void
);
73
74
protected
:
75
virtual
void
ApplyInteractionModel
(
G4VProcess
* process );
76
77
protected
:
78
CexmcPhysicsManager
*
physicsManager
;
79
80
CexmcProductionModel
*
productionModel
;
81
82
private
:
83
G4bool
wasActivated
;
84
};
85
86
87
template
<
typename
Process >
88
CexmcStudiedPhysics< Process >::CexmcStudiedPhysics
(
89
CexmcPhysicsManager
* physicsManager ) :
90
G4VPhysicsConstructor
(
"studiedPhysics"
), physicsManager( physicsManager ),
91
productionModel( NULL ), wasActivated( false )
92
{
93
}
94
95
96
template
<
typename
Process >
97
CexmcStudiedPhysics< Process >::~CexmcStudiedPhysics
()
98
{
99
}
100
101
102
template
<
typename
Process >
103
void
CexmcStudiedPhysics< Process >::ConstructParticle
(
void
)
104
{
105
if
( productionModel )
106
productionModel->GetIncidentParticle();
107
}
108
109
110
template
<
typename
Process >
111
void
CexmcStudiedPhysics< Process >::ConstructProcess
(
void
)
112
{
113
if
( wasActivated )
114
return
;
115
116
wasActivated =
true
;
117
118
Process * process(
new
Process );
119
120
process->AddDataSet(
new
CexmcFakeCrossSectionData
);
121
122
CexmcStudiedProcess
* studiedProcess(
new
CexmcStudiedProcess
(
123
physicsManager, process->GetProcessType() ) );
124
125
ApplyInteractionModel( process );
126
127
studiedProcess->
RegisterProcess
( process );
128
129
G4ParticleDefinition
* particle( NULL );
130
131
if
( productionModel )
132
particle = productionModel->GetIncidentParticle();
133
134
if
( particle )
135
{
136
G4ProcessManager
* processManager( particle->
GetProcessManager
() );
137
processManager->
AddDiscreteProcess
( studiedProcess );
138
}
139
}
140
141
142
template
<
typename
Process >
143
CexmcProductionModel
*
CexmcStudiedPhysics< Process >::GetProductionModel
(
144
void
)
145
{
146
return
productionModel;
147
}
148
149
150
template
<
typename
Process >
151
void
CexmcStudiedPhysics< Process >::ApplyInteractionModel
(
G4VProcess
* )
152
{
153
}
154
155
156
#endif
157
CexmcPhysicsManager
Definition:
CexmcPhysicsManager.hh:58
CexmcStudiedPhysics::CexmcStudiedPhysics
CexmcStudiedPhysics(CexmcPhysicsManager *physicsManager)
Definition:
CexmcStudiedPhysics.hh:88
CexmcFakeCrossSectionData
Definition:
CexmcFakeCrossSectionData.hh:54
CexmcStudiedProcess.hh
CexmcStudiedPhysics::productionModel
CexmcProductionModel * productionModel
Definition:
CexmcStudiedPhysics.hh:80
G4WrapperProcess::RegisterProcess
virtual void RegisterProcess(G4VProcess *)
Definition:
G4WrapperProcess.cc:161
G4ProcessManager::AddDiscreteProcess
G4int AddDiscreteProcess(G4VProcess *aProcess, G4int ord=ordDefault)
CexmcStudiedProcess
Definition:
CexmcStudiedProcess.hh:54
CexmcProductionModel.hh
CexmcStudiedPhysics::ConstructParticle
void ConstructParticle(void)
Definition:
CexmcStudiedPhysics.hh:103
G4ParticleDefinition
Definition:
G4ParticleDefinition.hh:111
CexmcStudiedPhysics::~CexmcStudiedPhysics
virtual ~CexmcStudiedPhysics()
Definition:
CexmcStudiedPhysics.hh:97
G4ParticleDefinition::GetProcessManager
G4ProcessManager * GetProcessManager() const
G4VProcess
Definition:
G4VProcess.hh:75
CexmcStudiedPhysics::ConstructProcess
void ConstructProcess(void)
Definition:
CexmcStudiedPhysics.hh:111
G4VPhysicsConstructor.hh
CexmcStudiedPhysics::wasActivated
G4bool wasActivated
Definition:
CexmcStudiedPhysics.hh:83
G4bool
bool G4bool
Definition:
G4Types.hh:79
CexmcPhysicsManager.hh
G4ProcessManager.hh
G4ParticleDefinition.hh
CexmcProductionModel
Definition:
CexmcProductionModel.hh:60
CexmcStudiedPhysics::physicsManager
CexmcPhysicsManager * physicsManager
Definition:
CexmcStudiedPhysics.hh:78
CexmcFakeCrossSectionData.hh
G4ProcessManager
Definition:
G4ProcessManager.hh:106
CexmcStudiedPhysics
Definition:
CexmcStudiedPhysics.hh:59
G4VPhysicsConstructor
Definition:
G4VPhysicsConstructor.hh:121
CexmcStudiedPhysics::ApplyInteractionModel
virtual void ApplyInteractionModel(G4VProcess *process)
Definition:
CexmcStudiedPhysics.hh:151
CexmcStudiedPhysics::GetProductionModel
CexmcProductionModel * GetProductionModel(void)
Definition:
CexmcStudiedPhysics.hh:143
geant4.10.02.p01
examples
advanced
ChargeExchangeMC
include
CexmcStudiedPhysics.hh
Generated on Thu Mar 3 2016 14:40:34 for Geant4 by
1.8.8