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
G4UCNMicroRoughnessHelper.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file G4UCNMicroRoughnessHelper.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
// ClassName: G4UCNMicroRoughnessHelper
30
//
31
// Class description:
32
//
33
// This file contains the headers of various functions all related to the
34
// calculation of microroughness.
35
// see A. Steyerl, Z. Physik 254 (1972) 169.
36
//
37
// Angular cut: for angles which are closer to the specular direction than a
38
// certain value (0.01°), the probability is set to 0 in order to avoid a
39
// hang-up at the generation of the polar angle due to a very sharp angular
40
// distribution
41
//
42
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
43
44
// 12-05-14, adopted from Stefan Heule (PSI) Thesis by P.Gumplinger
45
// reported in F. Atchison et al., Eur. Phys. J. A 44, 23–29 (2010)
46
// DOI: 10.1140/epja/i2010-10926-x
47
// Thanks to Geza Zsigmond
48
//
49
// 02-11-19 Stefan Heule's thesis is available from PSI UCN group pages at
50
// https://www.psi.ch/en/ltp-ucn-physics/papers-and-theses
51
// or directly at https://opac.nebis.ch/ediss/20080426_002127549.pdf
52
53
#ifndef G4MICROROUGHNESSHELPER_HH
54
#define G4MICROROUGHNESSHELPER_HH 1
55
56
#include "
G4Types.hh
"
57
58
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
59
60
class
G4UCNMicroRoughnessHelper
61
{
62
public
:
// with description
63
64
static
G4UCNMicroRoughnessHelper
*
GetInstance
();
65
66
protected
:
67
68
G4UCNMicroRoughnessHelper
();
69
~G4UCNMicroRoughnessHelper
();
70
71
public
:
// with description
72
73
// Transmitted intensity with k-vector in vacuum
74
75
// arguments:
76
// 1) cos(theta)^2,
77
// 2) (k_l/k)^2
78
79
G4double
S2
(
G4double
,
G4double
)
const
;
80
81
// Transmitted intensity with k-vector within the medium
82
83
// arguments:
84
// 1) cos(theta')^2,
85
// 2) (k_l/k')^2
86
87
G4double
SS2
(
G4double
,
G4double
)
const
;
88
89
// Fourier-tranform of the autocorrelation function with k-vector in vacuum
90
91
// arguments:
92
// 1) k^2,
93
// 2) theta_i,
94
// 3) theta_o,
95
// 4) phi_o,
96
// 5) b^2,
97
// 6) w^2,
98
// 7) angular cut
99
100
G4double
Fmu
(
G4double
,
G4double
,
G4double
,
101
G4double
,
G4double
,
G4double
,
G4double
)
const
;
102
103
// Fourier-tranform of the autocorrelation function with k-vector within
104
// the medium
105
106
// arguments:
107
// 1) k,
108
// 2) k',
109
// 3) theta_i,
110
// 4) theta'_o,
111
// 5) phi'_o,
112
// 6) b^2,
113
// 7) w^2,
114
// 8) angular cut
115
// 9) theta_refract
116
117
G4double
FmuS
(
G4double
,
G4double
,
G4double
,
G4double
,
118
G4double
,
G4double
,
G4double
,
G4double
,
G4double
)
const
;
119
120
// Integral probability for non-specular reflection
121
122
// arguments:
123
// 1) E,
124
// 2) V_F,
125
// 3) theta_i,
126
// 4) number of angles theta_o for which the probability is calculated,
127
// 5) number of angles phi_o for which the probability is calculated,
128
// 6) b^2,
129
// 7) w^2,
130
// 8) pointer to G4double array with max values of the probability,
131
// 9) angular cut
132
133
G4double
IntIplus
(
G4double
,
G4double
,
G4double
,
G4int
,
G4int
,
134
G4double
,
G4double
,
G4double
*,
G4double
)
const
;
135
136
// Probability of non-specular reflection with the microroughness model
137
138
// arguments:
139
// 1) E,
140
// 2) V_F,
141
// 3) theta_i,
142
// 4) theta_o,
143
// 5) phi_o,
144
// 6) b,
145
// 7) w,
146
// 8) angular cut
147
148
G4double
ProbIplus
(
G4double
,
G4double
,
G4double
,
G4double
,
149
G4double
,
G4double
,
G4double
,
G4double
)
const
;
150
151
// Integral probability for non-specular transmission
152
153
// arguments:
154
// 1) E,
155
// 2) V_F,
156
// 3) theta_i,
157
// 4) number of angles theta_o for which the probability is calculated,
158
// 5) number of angles phi_o for which the probability is calculated,
159
// 6) b^2,
160
// 7) w^2,
161
// 8) pointer to G4double array with max values of the probability,
162
// 9) angular cut
163
164
G4double
IntIminus
(
G4double
,
G4double
,
G4double
,
G4int
,
G4int
,
165
G4double
,
G4double
,
G4double
*,
G4double
)
const
;
166
167
// Probability of non-specular transmission with the microroughness model
168
169
// arguments:
170
// 1) E,
171
// 2) V_F,
172
// 3) theta_i,
173
// 4) theta'_o,
174
// 5) phi'_o,
175
// 6) b,
176
// 7) w,
177
// 8) angular cut
178
179
G4double
ProbIminus
(
G4double
,
G4double
,
G4double
,
G4double
,
180
G4double
,
G4double
,
G4double
,
G4double
)
const
;
181
182
private
:
183
184
static
G4UCNMicroRoughnessHelper
*
fpInstance
;
185
186
};
187
188
#endif // G4MICROROUGHNESSHELPER_HH
geant4
tree
geant4-10.6-release
source
materials
include
G4UCNMicroRoughnessHelper.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:23
using
1.8.2 with
ECCE GitHub integration