89 { 2.034*
eV, 2.068*
eV, 2.103*
eV, 2.139*
eV,
90 2.177*
eV, 2.216*
eV, 2.256*
eV, 2.298*
eV,
91 2.341*
eV, 2.386*
eV, 2.433*
eV, 2.481*
eV,
92 2.532*
eV, 2.585*
eV, 2.640*
eV, 2.697*
eV,
93 2.757*
eV, 2.820*
eV, 2.885*
eV, 2.954*
eV,
94 3.026*
eV, 3.102*
eV, 3.181*
eV, 3.265*
eV,
95 3.353*
eV, 3.446*
eV, 3.545*
eV, 3.649*
eV,
96 3.760*
eV, 3.877*
eV, 4.002*
eV, 4.136*
eV };
104 { 1.3435, 1.344, 1.3445, 1.345, 1.3455,
105 1.346, 1.3465, 1.347, 1.3475, 1.348,
106 1.3485, 1.3492, 1.35, 1.3505, 1.351,
107 1.3518, 1.3522, 1.3530, 1.3535, 1.354,
108 1.3545, 1.355, 1.3555, 1.356, 1.3568,
109 1.3572, 1.358, 1.3585, 1.359, 1.3595,
112 assert(
sizeof(refractiveIndex1) ==
sizeof(photonEnergy));
115 {3.448*
m, 4.082*
m, 6.329*
m, 9.174*
m, 12.346*
m, 13.889*
m,
116 15.152*
m, 17.241*
m, 18.868*
m, 20.000*
m, 26.316*
m, 35.714*
m,
117 45.455*
m, 47.619*
m, 52.632*
m, 52.632*
m, 55.556*
m, 52.632*
m,
118 52.632*
m, 47.619*
m, 45.455*
m, 41.667*
m, 37.037*
m, 33.333*
m,
119 30.000*
m, 28.500*
m, 27.000*
m, 24.500*
m, 22.000*
m, 19.500*
m,
120 17.500*
m, 14.500*
m };
122 assert(
sizeof(absorption) ==
sizeof(photonEnergy));
125 { 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
126 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
127 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
128 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
129 1.00, 1.00, 1.00, 1.00 };
131 assert(
sizeof(scintilFast) ==
sizeof(photonEnergy));
134 { 0.01, 1.00, 2.00, 3.00, 4.00, 5.00, 6.00,
135 7.00, 8.00, 9.00, 8.00, 7.00, 6.00, 4.00,
136 3.00, 2.00, 1.00, 0.01, 1.00, 2.00, 3.00,
137 4.00, 5.00, 6.00, 7.00, 8.00, 9.00, 8.00,
138 7.00, 6.00, 5.00, 4.00 };
140 assert(
sizeof(scintilSlow) ==
sizeof(photonEnergy));
144 myMPT1->
AddProperty(
"RINDEX", photonEnergy, refractiveIndex1,nEntries)
146 myMPT1->
AddProperty(
"ABSLENGTH", photonEnergy, absorption, nEntries)
148 myMPT1->
AddProperty(
"FASTCOMPONENT",photonEnergy, scintilFast, nEntries)
150 myMPT1->
AddProperty(
"SLOWCOMPONENT",photonEnergy, scintilSlow, nEntries)
160 1.56962*
eV, 1.58974*
eV, 1.61039*
eV, 1.63157*
eV,
161 1.65333*
eV, 1.67567*
eV, 1.69863*
eV, 1.72222*
eV,
162 1.74647*
eV, 1.77142*
eV, 1.7971 *
eV, 1.82352*
eV,
163 1.85074*
eV, 1.87878*
eV, 1.90769*
eV, 1.93749*
eV,
164 1.96825*
eV, 1.99999*
eV, 2.03278*
eV, 2.06666*
eV,
165 2.10169*
eV, 2.13793*
eV, 2.17543*
eV, 2.21428*
eV,
166 2.25454*
eV, 2.29629*
eV, 2.33962*
eV, 2.38461*
eV,
167 2.43137*
eV, 2.47999*
eV, 2.53061*
eV, 2.58333*
eV,
168 2.63829*
eV, 2.69565*
eV, 2.75555*
eV, 2.81817*
eV,
169 2.88371*
eV, 2.95237*
eV, 3.02438*
eV, 3.09999*
eV,
170 3.17948*
eV, 3.26315*
eV, 3.35134*
eV, 3.44444*
eV,
171 3.54285*
eV, 3.64705*
eV, 3.75757*
eV, 3.87499*
eV,
172 3.99999*
eV, 4.13332*
eV, 4.27585*
eV, 4.42856*
eV,
173 4.59258*
eV, 4.76922*
eV, 4.95999*
eV, 5.16665*
eV,
174 5.39129*
eV, 5.63635*
eV, 5.90475*
eV, 6.19998*
eV
177 const G4int numentries_water =
sizeof(energy_water)/
sizeof(
G4double);
181 167024.4*
m, 158726.7*
m, 150742 *
m,
182 143062.5*
m, 135680.2*
m, 128587.4*
m,
183 121776.3*
m, 115239.5*
m, 108969.5*
m,
184 102958.8*
m, 97200.35*
m, 91686.86*
m,
185 86411.33*
m, 81366.79*
m, 76546.42*
m,
186 71943.46*
m, 67551.29*
m, 63363.36*
m,
187 59373.25*
m, 55574.61*
m, 51961.24*
m,
188 48527.00*
m, 45265.87*
m, 42171.94*
m,
189 39239.39*
m, 36462.50*
m, 33835.68*
m,
190 31353.41*
m, 29010.30*
m, 26801.03*
m,
191 24720.42*
m, 22763.36*
m, 20924.88*
m,
192 19200.07*
m, 17584.16*
m, 16072.45*
m,
193 14660.38*
m, 13343.46*
m, 12117.33*
m,
194 10977.70*
m, 9920.416*
m, 8941.407*
m,
195 8036.711*
m, 7202.470*
m, 6434.927*
m,
196 5730.429*
m, 5085.425*
m, 4496.467*
m,
197 3960.210*
m, 3473.413*
m, 3032.937*
m,
198 2635.746*
m, 2278.907*
m, 1959.588*
m,
199 1675.064*
m, 1422.710*
m, 1200.004*
m,
200 1004.528*
m, 833.9666*
m, 686.1063*m
203 assert(
sizeof(mie_water) ==
sizeof(energy_water));
206 G4double mie_water_const[3]={0.99,0.99,0.8};
208 myMPT1->
AddProperty(
"MIEHG",energy_water,mie_water,numentries_water)
227 { 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
228 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
229 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
230 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
231 1.00, 1.00, 1.00, 1.00 };
234 myMPT2->
AddProperty(
"RINDEX", photonEnergy, refractiveIndex2, nEntries);
263 expHall_log,
false,0);
274 waterTank_log,
false,0);
286 waterTank_phys,expHall_phys,opWaterSurface);
301 if (opticalSurface) opticalSurface->
DumpInfo();
310 G4double refractiveIndex[num] = {1.35, 1.40};
311 G4double specularLobe[num] = {0.3, 0.3};
312 G4double specularSpike[num] = {0.2, 0.2};
313 G4double backScatter[num] = {0.2, 0.2};
317 myST1->
AddProperty(
"RINDEX", ephoton, refractiveIndex, num);
318 myST1->
AddProperty(
"SPECULARLOBECONSTANT", ephoton, specularLobe, num);
319 myST1->
AddProperty(
"SPECULARSPIKECONSTANT", ephoton, specularSpike, num);
320 myST1->
AddProperty(
"BACKSCATTERCONSTANT", ephoton, backScatter, num);
322 G4cout <<
"Water Surface G4MaterialPropertiesTable" <<
G4endl;
328 G4double reflectivity[num] = {0.3, 0.5};
329 G4double efficiency[num] = {0.8, 1.0};
333 myST2->
AddProperty(
"REFLECTIVITY", ephoton, reflectivity, num);
334 myST2->
AddProperty(
"EFFICIENCY", ephoton, efficiency, num);
336 G4cout <<
"Air Surface G4MaterialPropertiesTable" <<
G4endl;
void SetFinish(const G4OpticalSurfaceFinish)
G4IonisParamMat * GetIonisation() const
CLHEP::Hep3Vector G4ThreeVector
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 const double perCent
void AddConstProperty(const char *key, G4double PropertyValue)
virtual G4VPhysicalVolume * Construct()
G4SurfaceProperty * GetSurfaceProperty() const
void AddElement(G4Element *element, G4int nAtoms)
virtual ~OpNoviceDetectorConstruction()
OpNoviceDetectorConstruction()
void SetModel(const G4OpticalSurfaceModel model)
void SetMaterialPropertiesTable(G4MaterialPropertiesTable *anMPT)
void SetType(const G4SurfaceType &type)
static G4LogicalSkinSurface * GetSurface(const G4LogicalVolume *vol)