ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
Run.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file Run.hh
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
//
28
//
29
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
30
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
31
32
33
#ifndef Run_h
34
#define Run_h 1
35
36
#include "
G4OpBoundaryProcess.hh
"
37
#include "
G4Run.hh
"
38
39
class
G4ParticleDefinition
;
40
41
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
42
class
Run
:
public
G4Run
43
{
44
public
:
45
Run
();
46
~Run
();
47
48
void
SetPrimary
(
G4ParticleDefinition
*
particle
,
G4double
energy
);
49
50
// spectrum of Cerenkov radiation
51
void
AddCerenkovEnergy
(
G4double
en) {
fCerenkovEnergy
+= en;}
52
void
AddScintillationEnergy
(
G4double
en) {
fScintEnergy
+= en;}
53
54
void
AddCerenkov
(
void
) {
fCerenkovCount
+= 1;}
55
void
AddScintillation
(
void
) {
fScintCount
+= 1;}
56
void
AddRayleigh
(
void
) {
fRayleighCount
+= 1;}
57
58
void
AddOpAbsorption
(
void
) {
fOpAbsorption
+= 1;}
59
void
AddOpAbsorptionPrior
(
void
) {
fOpAbsorptionPrior
+= 1;}
60
61
void
AddFresnelRefraction
(
void
) {
62
fBoundaryProcs
[
FresnelRefraction
] += 1;
63
}
64
void
AddFresnelReflection
(
void
) {
65
fBoundaryProcs
[
FresnelReflection
] += 1;
66
}
67
void
AddTransmission
(
void
) {
fBoundaryProcs
[
Transmission
] += 1;}
68
void
AddTotalInternalReflection
(
void
)
69
{
fBoundaryProcs
[
TotalInternalReflection
] += 1;}
70
void
AddLambertianReflection
(
void
)
71
{
fBoundaryProcs
[
LambertianReflection
] += 1;}
72
void
AddLobeReflection
(
void
) {
fBoundaryProcs
[
LobeReflection
] += 1;}
73
void
AddSpikeReflection
(
void
) {
fBoundaryProcs
[
SpikeReflection
] += 1;}
74
void
AddBackScattering
(
void
) {
fBoundaryProcs
[
BackScattering
] += 1;}
75
void
AddAbsorption
(
void
) {
fBoundaryProcs
[
Absorption
] += 1;}
76
void
AddDetection
(
void
) {
fBoundaryProcs
[
Detection
] += 1;}
77
void
AddNotAtBoundary
(
void
) {
fBoundaryProcs
[
NotAtBoundary
] += 1;}
78
void
AddSameMaterial
(
void
) {
fBoundaryProcs
[
SameMaterial
] += 1;}
79
void
AddStepTooSmall
(
void
) {
fBoundaryProcs
[
StepTooSmall
] += 1;}
80
void
AddNoRINDEX
(
void
) {
fBoundaryProcs
[
NoRINDEX
] += 1;}
81
82
void
AddTotalSurface
(
void
) {
fTotalSurface
+= 1;}
83
void
AddPolishedLumirrorAirReflection
(
void
)
84
{
fBoundaryProcs
[
PolishedLumirrorAirReflection
] += 1;}
85
void
AddPolishedLumirrorGlueReflection
(
void
)
86
{
fBoundaryProcs
[
PolishedLumirrorGlueReflection
] += 1;}
87
void
AddPolishedAirReflection
(
void
)
88
{
fBoundaryProcs
[
PolishedAirReflection
] += 1;}
89
void
AddPolishedTeflonAirReflection
(
void
)
90
{
fBoundaryProcs
[
PolishedTeflonAirReflection
] += 1;}
91
void
AddPolishedTiOAirReflection
(
void
)
92
{
fBoundaryProcs
[
PolishedTiOAirReflection
] += 1;}
93
void
AddPolishedTyvekAirReflection
(
void
)
94
{
fBoundaryProcs
[
PolishedTyvekAirReflection
] += 1;}
95
void
AddPolishedVM2000AirReflection
(
void
)
96
{
fBoundaryProcs
[
PolishedVM2000AirReflection
] += 1;}
97
void
AddPolishedVM2000GlueReflection
(
void
)
98
{
fBoundaryProcs
[
PolishedVM2000GlueReflection
] += 1;}
99
100
void
AddEtchedLumirrorAirReflection
(
void
)
101
{
fBoundaryProcs
[
EtchedLumirrorAirReflection
] += 1;}
102
void
AddEtchedLumirrorGlueReflection
(
void
)
103
{
fBoundaryProcs
[
EtchedLumirrorGlueReflection
] += 1;}
104
void
AddEtchedAirReflection
(
void
)
105
{
fBoundaryProcs
[
EtchedAirReflection
] += 1;}
106
void
AddEtchedTeflonAirReflection
(
void
)
107
{
fBoundaryProcs
[
EtchedTeflonAirReflection
] += 1;}
108
void
AddEtchedTiOAirReflection
(
void
)
109
{
fBoundaryProcs
[
EtchedTiOAirReflection
] += 1;}
110
void
AddEtchedTyvekAirReflection
(
void
)
111
{
fBoundaryProcs
[
EtchedTyvekAirReflection
] += 1;}
112
void
AddEtchedVM2000AirReflection
(
void
)
113
{
fBoundaryProcs
[
EtchedVM2000AirReflection
] += 1;}
114
void
AddEtchedVM2000GlueReflection
(
void
)
115
{
fBoundaryProcs
[
EtchedVM2000GlueReflection
] += 1;}
116
117
void
AddGroundLumirrorAirReflection
(
void
)
118
{
fBoundaryProcs
[
GroundLumirrorAirReflection
] += 1;}
119
void
AddGroundLumirrorGlueReflection
(
void
)
120
{
fBoundaryProcs
[
GroundLumirrorGlueReflection
] += 1;}
121
void
AddGroundAirReflection
(
void
)
122
{
fBoundaryProcs
[
GroundAirReflection
] += 1;}
123
void
AddGroundTeflonAirReflection
(
void
)
124
{
fBoundaryProcs
[
GroundTeflonAirReflection
] += 1;}
125
void
AddGroundTiOAirReflection
(
void
)
126
{
fBoundaryProcs
[
GroundTiOAirReflection
] += 1;}
127
void
AddGroundTyvekAirReflection
(
void
)
128
{
fBoundaryProcs
[
GroundTyvekAirReflection
] += 1;}
129
void
AddGroundVM2000AirReflection
(
void
)
130
{
fBoundaryProcs
[
GroundVM2000AirReflection
] += 1;}
131
void
AddGroundVM2000GlueReflection
(
void
)
132
{
fBoundaryProcs
[
GroundVM2000GlueReflection
] += 1;}
133
134
void
AddDichroic
(
void
) {
fBoundaryProcs
[
Dichroic
] += 1;}
135
136
virtual
void
Merge
(
const
G4Run
*);
137
138
void
EndOfRun
();
139
140
private
:
141
// primary particle
142
G4ParticleDefinition
*
fParticle
;
143
G4double
fEkin
;
144
145
G4double
fCerenkovEnergy
;
146
G4double
fScintEnergy
;
147
148
// number of particles
149
G4int
fCerenkovCount
;
150
G4int
fScintCount
;
151
// number of events
152
G4int
fRayleighCount
;
153
154
// non-boundary processes
155
G4int
fOpAbsorption
;
156
157
// prior to boundary:
158
G4int
fOpAbsorptionPrior
;
159
160
// boundary proc
161
std::vector<G4int>
fBoundaryProcs
;
162
163
G4int
fTotalSurface
;
164
165
};
166
167
168
#endif
/* Run_h */
geant4
tree
geant4-10.6-release
examples
extended
optical
OpNovice2
include
Run.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:53
using
1.8.2 with
ECCE GitHub integration