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
G4OpticalPhysics.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4OpticalPhysics.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
//
26
//
27
//
28
//---------------------------------------------------------------------------
29
//
30
// ClassName: G4OpticalPhysics
31
//
32
// Author: P.Gumplinger 30.09.2009
33
//
34
// Modified: P.Gumplinger 29.09.2011
35
// (based on code from I. Hrivnacova)
36
//
37
//---------------------------------------------------------------------------
38
//
39
// This class provides construction of default optical physics
40
//
41
42
#ifndef G4OpticalPhysics_h
43
#define G4OpticalPhysics_h 1
44
45
#include "
G4OpticalProcessIndex.hh
"
46
#include "
G4OpticalPhysicsMessenger.hh
"
47
#include "
G4OpticalSurface.hh
"
48
49
#include "
G4VPhysicsConstructor.hh
"
50
#include "
globals.hh
"
51
52
#include <vector>
53
54
class
G4VProcess
;
55
class
G4EmSaturation
;
56
class
G4Scintillation
;
57
class
G4Cerenkov
;
58
class
G4OpWLS
;
59
class
G4OpRayleigh
;
60
class
G4OpMieHG
;
61
class
G4OpBoundaryProcess
;
62
class
G4OpAbsorption
;
63
64
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
65
66
class
G4OpticalPhysics
:
public
G4VPhysicsConstructor
67
{
68
public
:
69
70
G4OpticalPhysics
(
G4int
verbose = 0,
const
G4String
&
name
=
"Optical"
);
71
virtual
~G4OpticalPhysics
();
72
73
protected
:
74
75
// construct particle and physics
76
virtual
void
ConstructParticle
();
77
virtual
void
ConstructProcess
();
78
79
private
:
80
82
G4OpticalPhysics
(
const
G4OpticalPhysics
&
right
);
84
G4OpticalPhysics
&
operator=
(
const
G4OpticalPhysics
& right);
85
86
public
:
87
88
// configure G4OpticalPhysics builder
89
void
Configure
(
G4OpticalProcessIndex
,
G4bool
);
90
91
void
SetTrackSecondariesFirst
(
G4OpticalProcessIndex
,
G4bool
);
92
93
// Cerenkov
94
void
SetMaxNumPhotonsPerStep
(
G4int
);
95
void
SetMaxBetaChangePerStep
(
G4double
);
96
void
SetCerenkovStackPhotons
(
G4bool
);
97
void
SetCerenkovTrackSecondariesFirst
(
G4bool
);
98
void
SetCerenkovVerbosity
(
G4int
);
99
100
// Scintillation
101
void
SetScintillationYieldFactor
(
G4double
);
102
void
SetScintillationExcitationRatio
(
G4double
);
103
void
SetScintillationByParticleType
(
G4bool
);
104
void
SetScintillationTrackInfo
(
G4bool
);
105
void
SetScintillationTrackSecondariesFirst
(
G4bool
);
106
void
SetFiniteRiseTime
(
G4bool
);
107
void
SetScintillationStackPhotons
(
G4bool
);
108
void
SetScintillationVerbosity
(
G4int
);
109
//void AddScintillationSaturation(G4EmSaturation* );
110
111
// WLS
112
void
SetWLSTimeProfile
(
G4String
);
113
void
SetWLSVerbosity
(
G4int
);
114
115
//boundary
116
void
SetBoundaryVerbosity
(
G4int
);
117
void
SetInvokeSD
(
G4bool
);
118
119
void
SetAbsorptionVerbosity
(
G4int
);
120
void
SetRayleighVerbosity
(
G4int
);
121
void
SetMieVerbosity
(
G4int
);
122
123
private
:
124
125
// methods
126
void
PrintStatistics
()
const
;
127
128
// messenger
129
G4OpticalPhysicsMessenger
*
fMessenger
;
130
131
// The vector of process configuration
132
std::vector<G4bool>
fProcessUse
;
133
134
// The vector of track secondaries options;
135
// the option to track secondaries before finishing their parent track
136
std::vector<G4bool>
fProcessTrackSecondariesFirst
;
137
138
// scintillation /////////////////
139
static
G4ThreadLocal
G4Scintillation
*
fScintillationProcess
;
141
G4double
fYieldFactor
;
142
144
G4double
fExcitationRatio
;
145
149
G4bool
fFiniteRiseTime
;
150
154
G4bool
fScintillationByParticleType
;
155
158
G4bool
fScintillationTrackInfo
;
159
161
G4bool
fScintillationStackPhotons
;
162
163
G4int
fScintillationVerbosity
;
164
166
static
G4ThreadLocal
G4Cerenkov
*
fCerenkovProcess
;
168
G4int
fMaxNumPhotons
;
170
G4double
fMaxBetaChange
;
172
G4bool
fCerenkovStackPhotons
;
173
G4int
fCerenkovVerbosity
;
174
176
static
G4ThreadLocal
G4OpWLS
*
fWLSProcess
;
177
G4String
fWLSTimeProfileName
;
178
G4int
fWLSVerbosity
;
179
180
static
G4ThreadLocal
G4OpAbsorption
*
fAbsorptionProcess
;
181
G4int
fAbsorptionVerbosity
;
182
183
static
G4ThreadLocal
G4OpRayleigh
*
fRayleighProcess
;
184
G4int
fRayleighVerbosity
;
185
186
static
G4ThreadLocal
G4OpMieHG
*
fMieProcess
;
187
G4int
fMieVerbosity
;
188
189
static
G4ThreadLocal
G4OpBoundaryProcess
*
fBoundaryProcess
;
191
G4bool
fInvokeSD
;
192
G4int
fBoundaryVerbosity
;
193
};
194
195
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
196
197
#endif // G4OpticalPhysics_h
geant4
tree
geant4-10.6-release
source
physics_lists
constructors
electromagnetic
include
G4OpticalPhysics.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:26
using
1.8.2 with
ECCE GitHub integration