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
EICG4dRICHConfig.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file EICG4dRICHConfig.hh
1
#ifndef EICG4dRICHConfig_HH
2
#define EICG4dRICHConfig_HH
3
4
#include <
G4GenericMessenger.hh
>
5
#include <
G4SystemOfUnits.hh
>
6
7
struct
EICG4dRICHConfig
8
{
9
10
// define here Global volume parameters
11
double
RIn
= 9.;
12
double
ROut
= 220 *
cm
;
13
double
ThicknessZ
= 170 *
cm
;
14
double
PosZ
= 200. *
cm
;
15
16
//
17
// RICH is made of 6 identical trucated cone sectors (TBD: probably one or
18
// more sectors shall be different due to the asymmetry in the beam pipes)
19
// Each sector components have identical relative disposition
20
// Each sector is symmetric respect to the cone bysector ...
21
22
/* model data:
23
material, geometry and placement are defined here
24
*/
25
26
G4String
model_file
=
"drich-model0.txt"
;
27
28
/*
29
double vessel_z0 = 300*cm; // position of the vessel entrance window along
30
z respect to the overall spectrometer ??? double vessel_dz = 170*cm; //
31
Vessel longitudinal length (external) - 0 thickness for the moment double
32
vessel_radius_in = 10*cm; // Vessel internal radius (around beam pipe)
33
double vessel_radius_out0 = 130.*cm; // Vessel external radius at entrance
34
double vessel_radius_out1 = 210.*cm; // Vessel external radius at exit
35
(behind the mirror) double aerogel_dz = 2*cm; // aerogel thickness double
36
filter_dz = 0.3*mm; // wavelength filter thickness double mirror_radius =
37
290*cm; // mirror radius double mirror_center_z = -210*cm; // mirror center
38
z position - relative to vessel center double mirror_center_t = 145*cm; //
39
mirror center transverse position - relative to vessel center double
40
mirror_theta = 40*deg; // mirror polar aperture
41
42
double sensor_z = 0; // sensor center along z - relative to vessel center
43
double sensor_t = 0; // sensor center along tranverse z - relative to vessel
44
center
45
*/
46
47
/* optical data:
48
aerogel dispersione relation n_aerogel(lambda)
49
aerogel scattering length vs lambda
50
aerogel absorption length vs lambda
51
wavelength filter transmission curve vs lambda
52
gas dispersione relation n_gas(lambda)
53
gas absorption lenghth vs lambda (likely constant)
54
mirror refractive curve vs lambda
55
sensor quantum efficiency (embedded in the code or external ?)
56
*/
57
// G4String optical_file = "drich-optical.txt";
58
59
// optical properties
60
int
aerOptModel
= 3;
// aerogel optical model used to estimate the refractive Index
61
double
filter_thr
= 300 *
nm
;
// wavelength filter cutoff
62
63
double
aerogel_n
= 1.03;
// aerogel refractive index, at reference wavelength
64
double
gas_n
= 1.0008;
// gas refractive index, at reference wavelength
65
double
wavelength_ref
= 400 *
nm
;
// reference wavelength (for aerogel, gas, mirror ...)
66
67
// Create a global messenger that will be used
68
inline
EICG4dRICHConfig
()
69
{
70
static
G4GenericMessenger
*Messenger;
71
72
if
(!Messenger)
73
{
74
// Set geant options
75
Messenger =
new
G4GenericMessenger
(
this
,
"/EICG4dRICH/"
);
76
77
// Messenger->SetDirectory("Vessel"); // TBC if ok, we can define a dir
78
// for each sub-components of the EICG4dRICH
79
/*
80
auto cmd = Messenger->DeclarePropertyWithUnit("VesselLength", "cm",
81
vessel_dz, "Rich Vessel Longitudinal size, along beam (z), cone
82
height"); cmd.SetParameterName("vl",true); cmd.SetRange("vl>0,");
83
cmd.SetDefaultValue("170");
84
Messenger->DeclarePropertyWithUnit("VesselPositionZ0", "cm", vessel_z0,
85
"Rich Vessel Entrance Window Position along z");
86
Messenger->DeclarePropertyWithUnit("VesselRadiusIn", "cm",
87
vessel_radius_in, "Rich Vessel Internal Radius (near beam pipe)");
88
Messenger->DeclarePropertyWithUnit("VesselRadiusOut0", "cm",
89
vessel_radius_out0, "Rich Vessel External Radius at entrance");
90
Messenger->DeclarePropertyWithUnit("VesselRadiusOut1", "cm",
91
vessel_radius_out1, "Rich Vessel External Radius at exit, after
92
mirror"); Messenger->DeclarePropertyWithUnit("AerogelThick", "cm",
93
aerogel_dz, "Aerogel Thickness");
94
Messenger->DeclarePropertyWithUnit("FilterThick", "mm", filter_dz,
95
"High-Pass Filter Thickness");
96
Messenger->DeclarePropertyWithUnit("MirrorRadius", "cm", mirror_radius,
97
"Mirror Radius"); Messenger->DeclarePropertyWithUnit("MirrorCenterZ",
98
"cm", mirror_center_z, "Mirror Center - longitudinal, Z relative to
99
Vessel center"); Messenger->DeclarePropertyWithUnit("MirrorCenterT",
100
"cm", mirror_center_t, "Mirror Center (x/y plane) Transverse, relative
101
to Vessel center"); Messenger->DeclarePropertyWithUnit("MirrorTheta",
102
"deg", mirror_theta, "Mirror Polar Aperture");
103
Messenger->DeclarePropertyWithUnit("SensorZ", "cm", sensor_z, "Sensor
104
Center - longitudinal, Z relative to Vessel center");
105
Messenger->DeclarePropertyWithUnit("SensorT", "cm", sensor_t, "Sensor
106
Center - Transverse (x/y plane) relative to Vessel center");
107
*/
108
109
Messenger->
DeclareProperty
(
"ModelFile"
,
model_file
,
"Full path of the drich model text data"
);
110
111
auto
cmd0 = Messenger->
DeclareProperty
(
112
"AerogelRefractiveIndex"
,
aerogel_n
,
113
"Aerogel Radiator Refractive Index at reference wavelength"
);
114
cmd0.
SetParameterName
(
"aerogeln"
,
true
);
115
cmd0.
SetRange
(
"aerogeln>1.0"
);
116
cmd0.
SetDefaultValue
(
"1.03"
);
117
118
auto
cmd1 = Messenger->
DeclareProperty
(
119
"GasRefractiveIndex"
,
gas_n
,
120
"Gas Radiator Refractive Index at reference wavelength"
);
121
cmd1.
SetParameterName
(
"gasn"
,
true
);
122
cmd1.
SetRange
(
"gasn>1.0"
);
123
cmd1.
SetDefaultValue
(
"1.0008"
);
124
125
auto
cmd2 = Messenger->
DeclarePropertyWithUnit
(
126
"ReferenceWavelength"
,
"nm"
,
wavelength_ref
,
"Reference wavelength"
);
127
cmd2.
SetParameterName
(
"wlref"
,
true
);
128
cmd2.
SetRange
(
"wlref>0"
);
129
cmd2.
SetDefaultValue
(
"400.e-9"
);
130
131
auto
cmd3 = Messenger->
DeclarePropertyWithUnit
(
132
"FilterThreshold"
,
"nm"
,
filter_thr
,
133
"Wavelength threshold of acrylic filter"
);
134
cmd3.
SetParameterName
(
"wlfil"
,
true
);
135
cmd3.
SetRange
(
"wlfil>0."
);
136
cmd3.
SetDefaultValue
(
"300.e-9"
);
137
138
auto
cmd4 = Messenger->
DeclareProperty
(
139
"AerogelOpticalModel"
,
aerOptModel
,
140
"Aerogel Optical Model for Refractive Index (0:Vorobiev, 1:Sellmeier "
141
"CLAS12, 2: LHCb, 3: scale exp. points"
);
142
cmd4.
SetParameterName
(
"aerOptMod"
,
true
);
143
cmd4.
SetDefaultValue
(3);
144
145
// Messenger->DeclareProperty("GeometryFile", geometry_file, "Full
146
// path of Geometry configuration file (e.g. sensor array coordinates
147
// ...)");
148
// Messenger->DeclareProperty("OpticalFile", optical_file, "Full path of
149
// Optical configuration file (e.g. sensor quantum efficienct curve,
150
// mirror transmittance, radiators dispersion relations ...)");
151
}
152
}
153
};
154
155
#endif // EICG4dRICHConfig_HH
fun4all_eicdetectors
blob
master
simulation
g4simulation
g4drich
EICG4dRICHConfig.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:46
using
1.8.2 with
ECCE GitHub integration