40 WLSMaterials::WLSMaterials()
80 o <<
"Material " << material <<
" not found!";
90 void WLSMaterials::CreateMaterials()
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;
139 fPethylene = fNistMan->
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;
154 fFPethylene = fNistMan->
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;
169 fPolystyrene = fNistMan->
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;
184 fSilicone = fNistMan->
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);
227 const G4int nEntries = 50;
245 G4double refractiveIndex[nEntries] =
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};
253 mpt->
AddProperty(
"RINDEX", photonEnergy, refractiveIndex, nEntries);
261 G4double refractiveIndexWLSfiber[nEntries] =
262 { 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60,
263 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60, 1.60,
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};
269 {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,
270 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,
271 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,
272 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,
276 {0.05, 0.10, 0.30, 0.50, 0.75, 1.00, 1.50, 1.85, 2.30, 2.75,
277 3.25, 3.80, 4.50, 5.20, 6.00, 7.00, 8.50, 9.50, 11.1, 12.4,
278 12.9, 13.0, 12.8, 12.3, 11.1, 11.0, 12.0, 11.0, 17.0, 16.9,
279 15.0, 9.00, 2.50, 1.00, 0.05, 0.00, 0.00, 0.00, 0.00, 0.00,
280 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00};
285 AddProperty(
"RINDEX",photonEnergy,refractiveIndexWLSfiber,nEntries);
287 mptWLSfiber->
AddProperty(
"WLSABSLENGTH",photonEnergy,absWLSfiber,nEntries);
288 mptWLSfiber->
AddProperty(
"WLSCOMPONENT",photonEnergy,emissionFib,nEntries);
297 G4double refractiveIndexClad1[nEntries] =
298 { 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49,
299 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49,
300 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49,
301 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49,
302 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49, 1.49};
305 {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,
306 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,
307 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,
308 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,
309 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};
313 mptClad1->
AddProperty(
"RINDEX",photonEnergy,refractiveIndexClad1,nEntries);
314 mptClad1->
AddProperty(
"ABSLENGTH",photonEnergy,absClad,nEntries);
322 G4double refractiveIndexClad2[nEntries] =
323 { 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42,
324 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42,
325 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42,
326 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42,
327 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42, 1.42};
331 mptClad2->
AddProperty(
"RINDEX",photonEnergy,refractiveIndexClad2,nEntries);
332 mptClad2->
AddProperty(
"ABSLENGTH",photonEnergy,absClad,nEntries);
340 G4double refractiveIndexSilicone[nEntries] =
341 { 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46,
342 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46,
343 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46,
344 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46,
345 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46, 1.46};
350 AddProperty(
"RINDEX",photonEnergy,refractiveIndexSilicone,nEntries);
351 mptSilicone->
AddProperty(
"ABSLENGTH",photonEnergy,absClad,nEntries);
359 G4double refractiveIndexPS[nEntries] =
360 { 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50,
361 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50,
362 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50,
363 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50,
364 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50, 1.50};
367 {2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,
368 2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,
369 2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,
370 2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,2.*
cm,
374 {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
375 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
376 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
377 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0,
378 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0};
382 mptPolystyrene->
AddProperty(
"RINDEX",photonEnergy,refractiveIndexPS,nEntries);
383 mptPolystyrene->
AddProperty(
"ABSLENGTH",photonEnergy,absPS,nEntries);
385 AddProperty(
"FASTCOMPONENT",photonEnergy, scintilFast,nEntries);
G4IonisParamMat * GetIonisation() const
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
G4Material * GetMaterial(const G4String)
void AddMaterial(G4Material *material, G4double fraction)
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
void SetMaterialPropertiesTable(G4MaterialPropertiesTable *anMPT)
void SetBirksConstant(G4double value)
Definition of the WLSMaterials class.
static G4NistManager * Instance()
G4MaterialPropertyVector * AddProperty(const char *key, G4double *PhotonEnergies, G4double *PropertyValues, G4int NumEntries)
void AddConstProperty(const char *key, G4double PropertyValue)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
static WLSMaterials * GetInstance()