92 { 2.034*
eV, 2.068*
eV, 2.103*
eV, 2.139*
eV,
93 2.177*
eV, 2.216*
eV, 2.256*
eV, 2.298*
eV,
94 2.341*
eV, 2.386*
eV, 2.433*
eV, 2.481*
eV,
95 2.532*
eV, 2.585*
eV, 2.640*
eV, 2.697*
eV,
96 2.757*
eV, 2.820*
eV, 2.885*
eV, 2.954*
eV,
97 3.026*
eV, 3.102*
eV, 3.181*
eV, 3.265*
eV,
98 3.353*
eV, 3.446*
eV, 3.545*
eV, 3.649*
eV,
99 3.760*
eV, 3.877*
eV, 4.002*
eV, 4.136*
eV };
101 const G4int nEntries =
sizeof(photonEnergy)/
sizeof(
G4double);
107 { 1.3435, 1.344, 1.3445, 1.345, 1.3455,
108 1.346, 1.3465, 1.347, 1.3475, 1.348,
109 1.3485, 1.3492, 1.35, 1.3505, 1.351,
110 1.3518, 1.3522, 1.3530, 1.3535, 1.354,
111 1.3545, 1.355, 1.3555, 1.356, 1.3568,
112 1.3572, 1.358, 1.3585, 1.359, 1.3595,
115 assert(
sizeof(refractiveIndex1) ==
sizeof(photonEnergy));
118 {3.448*
m, 4.082*
m, 6.329*
m, 9.174*
m, 12.346*
m, 13.889*
m,
119 15.152*
m, 17.241*
m, 18.868*
m, 20.000*
m, 26.316*
m, 35.714*
m,
120 45.455*
m, 47.619*
m, 52.632*
m, 52.632*
m, 55.556*
m, 52.632*
m,
121 52.632*
m, 47.619*
m, 45.455*
m, 41.667*
m, 37.037*
m, 33.333*
m,
122 30.000*
m, 28.500*
m, 27.000*
m, 24.500*
m, 22.000*
m, 19.500*
m,
123 17.500*
m, 14.500*
m };
125 assert(
sizeof(absorption) ==
sizeof(photonEnergy));
128 { 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
129 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
130 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
131 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
132 1.00, 1.00, 1.00, 1.00 };
134 assert(
sizeof(scintilFast) ==
sizeof(photonEnergy));
137 { 0.01, 1.00, 2.00, 3.00, 4.00, 5.00, 6.00,
138 7.00, 8.00, 9.00, 8.00, 7.00, 6.00, 4.00,
139 3.00, 2.00, 1.00, 0.01, 1.00, 2.00, 3.00,
140 4.00, 5.00, 6.00, 7.00, 8.00, 9.00, 8.00,
141 7.00, 6.00, 5.00, 4.00 };
143 assert(
sizeof(scintilSlow) ==
sizeof(photonEnergy));
147 myMPT1->
AddProperty(
"RINDEX", photonEnergy, refractiveIndex1,nEntries)
149 myMPT1->
AddProperty(
"ABSLENGTH", photonEnergy, absorption, nEntries)
151 myMPT1->
AddProperty(
"FASTCOMPONENT",photonEnergy, scintilFast, nEntries)
153 myMPT1->
AddProperty(
"SLOWCOMPONENT",photonEnergy, scintilSlow, nEntries)
163 1.56962*
eV, 1.58974*
eV, 1.61039*
eV, 1.63157*
eV,
164 1.65333*
eV, 1.67567*
eV, 1.69863*
eV, 1.72222*
eV,
165 1.74647*
eV, 1.77142*
eV, 1.7971 *
eV, 1.82352*
eV,
166 1.85074*
eV, 1.87878*
eV, 1.90769*
eV, 1.93749*
eV,
167 1.96825*
eV, 1.99999*
eV, 2.03278*
eV, 2.06666*
eV,
168 2.10169*
eV, 2.13793*
eV, 2.17543*
eV, 2.21428*
eV,
169 2.25454*
eV, 2.29629*
eV, 2.33962*
eV, 2.38461*
eV,
170 2.43137*
eV, 2.47999*
eV, 2.53061*
eV, 2.58333*
eV,
171 2.63829*
eV, 2.69565*
eV, 2.75555*
eV, 2.81817*
eV,
172 2.88371*
eV, 2.95237*
eV, 3.02438*
eV, 3.09999*
eV,
173 3.17948*
eV, 3.26315*
eV, 3.35134*
eV, 3.44444*
eV,
174 3.54285*
eV, 3.64705*
eV, 3.75757*
eV, 3.87499*
eV,
175 3.99999*
eV, 4.13332*
eV, 4.27585*
eV, 4.42856*
eV,
176 4.59258*
eV, 4.76922*
eV, 4.95999*
eV, 5.16665*
eV,
177 5.39129*
eV, 5.63635*
eV, 5.90475*
eV, 6.19998*
eV
180 const G4int numentries_water =
sizeof(energy_water)/
sizeof(
G4double);
184 167024.4*
m, 158726.7*
m, 150742 *
m,
185 143062.5*
m, 135680.2*
m, 128587.4*
m,
186 121776.3*
m, 115239.5*
m, 108969.5*
m,
187 102958.8*
m, 97200.35*
m, 91686.86*
m,
188 86411.33*
m, 81366.79*
m, 76546.42*
m,
189 71943.46*
m, 67551.29*
m, 63363.36*
m,
190 59373.25*
m, 55574.61*
m, 51961.24*
m,
191 48527.00*
m, 45265.87*
m, 42171.94*
m,
192 39239.39*
m, 36462.50*
m, 33835.68*
m,
193 31353.41*
m, 29010.30*
m, 26801.03*
m,
194 24720.42*
m, 22763.36*
m, 20924.88*
m,
195 19200.07*
m, 17584.16*
m, 16072.45*
m,
196 14660.38*
m, 13343.46*
m, 12117.33*
m,
197 10977.70*
m, 9920.416*
m, 8941.407*
m,
198 8036.711*
m, 7202.470*
m, 6434.927*
m,
199 5730.429*
m, 5085.425*
m, 4496.467*
m,
200 3960.210*
m, 3473.413*
m, 3032.937*
m,
201 2635.746*
m, 2278.907*
m, 1959.588*
m,
202 1675.064*
m, 1422.710*
m, 1200.004*
m,
203 1004.528*
m, 833.9666*
m, 686.1063*m
206 assert(
sizeof(mie_water) ==
sizeof(energy_water));
209 G4double mie_water_const[3]={0.99,0.99,0.8};
211 myMPT1->
AddProperty(
"MIEHG",energy_water,mie_water,numentries_water)
230 { 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
231 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
232 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
233 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
234 1.00, 1.00, 1.00, 1.00 };
237 myMPT2->
AddProperty(
"RINDEX", photonEnergy, refractiveIndex2, nEntries);
249 G4Box* expHall_box =
new G4Box(
"World",fExpHall_x,fExpHall_y,fExpHall_z);
259 G4Box* waterTank_box =
new G4Box(
"Tank",fTank_x,fTank_y,fTank_z);
266 expHall_log,
false,0);
270 G4Box* bubbleAir_box =
new G4Box(
"Bubble",fBubble_x,fBubble_y,fBubble_z);
277 waterTank_log,
false,0);
289 waterTank_phys,expHall_phys,opWaterSurface);
304 if (opticalSurface) opticalSurface->
DumpInfo();
313 G4double refractiveIndex[num] = {1.35, 1.40};
314 G4double specularLobe[num] = {0.3, 0.3};
315 G4double specularSpike[num] = {0.2, 0.2};
316 G4double backScatter[num] = {0.2, 0.2};
320 myST1->
AddProperty(
"RINDEX", ephoton, refractiveIndex, num);
321 myST1->
AddProperty(
"SPECULARLOBECONSTANT", ephoton, specularLobe, num);
322 myST1->
AddProperty(
"SPECULARSPIKECONSTANT", ephoton, specularSpike, num);
323 myST1->
AddProperty(
"BACKSCATTERCONSTANT", ephoton, backScatter, num);
325 G4cout <<
"Water Surface G4MaterialPropertiesTable" <<
G4endl;
331 G4double reflectivity[num] = {0.3, 0.5};
332 G4double efficiency[num] = {0.8, 1.0};
336 myST2->
AddProperty(
"REFLECTIVITY", ephoton, reflectivity, num);
337 myST2->
AddProperty(
"EFFICIENCY", ephoton, efficiency, num);
339 G4cout <<
"Air Surface G4MaterialPropertiesTable" <<
G4endl;
void SetFinish(const G4OpticalSurfaceFinish)
G4IonisParamMat * GetIonisation() const
static constexpr double mm
static constexpr double mg
CLHEP::Hep3Vector G4ThreeVector
std::vector< ExP01TrackerHit * > a
static constexpr double perCent
void SetMaterialPropertiesTable(G4MaterialPropertiesTable *anMPT)
void SetBirksConstant(G4double value)
G4MaterialPropertyVector * AddProperty(const char *key, G4double *PhotonEnergies, G4double *PropertyValues, G4int NumEntries)
G4GLOB_DLL std::ostream G4cout
static constexpr double m
static constexpr double eV
void AddConstProperty(const char *key, G4double PropertyValue)
static constexpr double cm3
static constexpr double MeV
G4SurfaceProperty * GetSurfaceProperty() const
void AddElement(G4Element *element, G4int nAtoms)
void SetModel(const G4OpticalSurfaceModel model)
void SetMaterialPropertiesTable(G4MaterialPropertiesTable *anMPT)
static constexpr double mole
void SetType(const G4SurfaceType &type)
static G4LogicalSkinSurface * GetSurface(const G4LogicalVolume *vol)