80 o <<
"Material " << material <<
" not found!";
95 std::vector<G4int> natoms;
96 std::vector<G4double> fractionMass;
97 std::vector<G4String> elements;
118 elements.push_back(
"C"); natoms.push_back(5);
119 elements.push_back(
"H"); natoms.push_back(8);
120 elements.push_back(
"O"); natoms.push_back(2);
122 density = 1.190*
g/
cm3;
125 ConstructNewMaterial(
"PMMA", elements, natoms, density);
134 elements.push_back(
"C"); natoms.push_back(2);
135 elements.push_back(
"H"); natoms.push_back(4);
137 density = 1.200*
g/
cm3;
140 ConstructNewMaterial(
"Pethylene", elements, natoms, density);
149 elements.push_back(
"C"); natoms.push_back(2);
150 elements.push_back(
"H"); natoms.push_back(4);
152 density = 1.400*
g/
cm3;
155 ConstructNewMaterial(
"FPethylene", elements, natoms, density);
164 elements.push_back(
"C"); natoms.push_back(8);
165 elements.push_back(
"H"); natoms.push_back(8);
167 density = 1.050*
g/
cm3;
170 ConstructNewMaterial(
"Polystyrene", elements, natoms, density);
179 elements.push_back(
"C"); natoms.push_back(2);
180 elements.push_back(
"H"); natoms.push_back(6);
182 density = 1.060*
g/
cm3;
185 ConstructNewMaterial(
"Silicone", elements, natoms, density);
200 elements.push_back(
"Ti"); natoms.push_back(1);
201 elements.push_back(
"O"); natoms.push_back(2);
203 density = 4.26*
g/
cm3;
206 ConstructNewMaterial(
"TiO2", elements, natoms, density);
215 density = 1.52*
g/
cm3;
218 new G4Material(
"Coating", density, ncomponents=2);
239 const G4int nEntries =
sizeof(photonEnergy)/
sizeof(
G4double);
246 { 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
247 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
248 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
249 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00,
250 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00, 1.00};
252 assert(
sizeof(refractiveIndex) ==
sizeof(photonEnergy));
255 mpt->
AddProperty(
"RINDEX", photonEnergy, refractiveIndex, nEntries);
263 G4double refractiveIndexWLSfiber[] =
264 { 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60,
265 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60,
266 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60,
267 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60,
268 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60};
270 assert(
sizeof(refractiveIndexWLSfiber) ==
sizeof(photonEnergy));
273 {5.40*
m,5.40*
m,5.40*
m,5.40*
m,5.40*
m,5.40*
m,5.40*
m,5.40*
m,5.40*
m,5.40*
m,
274 5.40*
m,5.40*
m,5.40*
m,5.40*
m,5.40*
m,5.40*
m,5.40*
m,5.40*
m,5.40*
m,5.40*
m,
275 5.40*
m,5.40*
m,5.40*
m,5.40*
m,5.40*
m,5.40*
m,5.40*
m,5.40*
m,5.40*
m,1.10*
m,
276 1.10*
m,1.10*
m,1.10*
m,1.10*
m,1.10*
m,1.10*
m, 1.*
mm, 1.*
mm, 1.*
mm, 1.*
mm,
279 assert(
sizeof(absWLSfiber) ==
sizeof(photonEnergy));
282 {0.05, 0.10, 0.30, 0.50, 0.75, 1.00, 1.50, 1.85, 2.30, 2.75,
283 3.25, 3.80, 4.50, 5.20, 6.00, 7.00, 8.50, 9.50, 11.1, 12.4,
284 12.9, 13.0, 12.8, 12.3, 11.1, 11.0, 12.0, 11.0, 17.0, 16.9,
285 15.0, 9.00, 2.50, 1.00, 0.05, 0.00, 0.00, 0.00, 0.00, 0.00,
286 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00};
288 assert(
sizeof(emissionFib) ==
sizeof(photonEnergy));
293 AddProperty(
"RINDEX",photonEnergy,refractiveIndexWLSfiber,nEntries);
295 mptWLSfiber->
AddProperty(
"WLSABSLENGTH",photonEnergy,absWLSfiber,nEntries);
296 mptWLSfiber->
AddProperty(
"WLSCOMPONENT",photonEnergy,emissionFib,nEntries);
306 { 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49,
307 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49,
308 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49,
309 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49,
310 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49};
312 assert(
sizeof(refractiveIndexClad1) ==
sizeof(photonEnergy));
315 {20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,
316 20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,
317 20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,
318 20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,
319 20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m,20.0*
m};
321 assert(
sizeof(absClad) ==
sizeof(photonEnergy));
325 mptClad1->
AddProperty(
"RINDEX",photonEnergy,refractiveIndexClad1,nEntries);
326 mptClad1->
AddProperty(
"ABSLENGTH",photonEnergy,absClad,nEntries);
335 { 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42,
336 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42,
337 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42,
338 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42,
339 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42};
341 assert(
sizeof(refractiveIndexClad2) ==
sizeof(photonEnergy));
345 mptClad2->
AddProperty(
"RINDEX",photonEnergy,refractiveIndexClad2,nEntries);
346 mptClad2->
AddProperty(
"ABSLENGTH",photonEnergy,absClad,nEntries);
354 G4double refractiveIndexSilicone[] =
355 { 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46,
356 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46,
357 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46,
358 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46,
359 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46};
361 assert(
sizeof(refractiveIndexSilicone) ==
sizeof(photonEnergy));
366 AddProperty(
"RINDEX",photonEnergy,refractiveIndexSilicone,nEntries);
367 mptSilicone->
AddProperty(
"ABSLENGTH",photonEnergy,absClad,nEntries);
376 { 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50,
377 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50,
378 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50,
379 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50,
380 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50};
382 assert(
sizeof(refractiveIndexPS) ==
sizeof(photonEnergy));
385 {2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,
386 2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,
387 2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,
388 2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,
391 assert(
sizeof(absPS) ==
sizeof(photonEnergy));
394 {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
395 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
396 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
397 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
398 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0};
400 assert(
sizeof(scintilFast) ==
sizeof(photonEnergy));
404 mptPolystyrene->
AddProperty(
"RINDEX",photonEnergy,refractiveIndexPS,nEntries);
405 mptPolystyrene->
AddProperty(
"ABSLENGTH",photonEnergy,absPS,nEntries);
407 AddProperty(
"FASTCOMPONENT",photonEnergy, scintilFast,nEntries);
static constexpr double MeV
static constexpr double keV
static constexpr double mm
static constexpr double perCent
G4Material * GetMaterial(const G4String)
void AddConstProperty(const char *key, G4double PropertyValue)
void SetBirksConstant(G4double value)
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
static constexpr double g
static constexpr double m
void SetMaterialPropertiesTable(G4MaterialPropertiesTable *anMPT)
G4MaterialPropertyVector * AddProperty(const char *key, G4double *PhotonEnergies, G4double *PropertyValues, G4int NumEntries)
static WLSMaterials * fInstance
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
static constexpr double eV
static WLSMaterials * GetInstance()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4IonisParamMat * GetIonisation() const
Definition of the WLSMaterials class.
static constexpr double cm
G4Material * fPolystyrene
void AddMaterial(G4Material *material, G4double fraction)
static constexpr double cm3
static G4NistManager * Instance()