76 LogDebug(
"SimLaserAlignment:MaterialProperties") <<
" **** here comes the material table **** "
77 << *(G4Material::GetMaterialTable());
83 const G4int nEntries = 3;
86 G4double PhotonEnergy[nEntries] = { 1.10 * eV, 1.15 * eV, 1.20 * eV };
89 G4double Scintillation[nEntries] = { 0.1, 1.0, 0.1 };
92 G4double RefractiveIndex[nEntries] = { 3.5400, 3.5425, 3.5450 };
94 G4double RefractiveIndexMirror[nEntries] = { 1.50669, 1.50669, 1.50669 };
101 G4double RefractiveIndexGeneral[nEntries] = { 1.0, 1.0, 1.0 };
105 G4double AbsorptionLengthSi[nEntries] = { 1136 * micrometer, 1136 * micrometer, 1136 * micrometer };
107 G4double AbsorptionLengthSiBarrel[nEntries] = { 0.1 * fermi,
113 G4double AbsorptionLengthMirror[nEntries] = { 11.7 * cm, 0.5 * 11.7 * cm, 11.7 * cm };
119 G4double AbsorptionLengthDead[nEntries] = { 0.001 * micrometer, 0.001 * micrometer,
120 0.001 * micrometer };
123 G4double AbsorptionLengthGeneral[nEntries] = { 75 * cm, 75 * cm, 75 * cm };
126 G4double AbsorptionLengthTAir[nEntries] = { 10 *
m, 1.8 *
m, 10 *
m };
128 G4double AbsorptionLengthAl[nEntries] = { 10 * mm, 10 * mm, 10 * mm};
129 G4double AbsorptionLengthTOB_CF_Str[nEntries] = { 1 * cm, 10 * cm, 1 * cm };
130 G4double AbsorptionLengthTOBCF[nEntries] = { 0.1 * mm, 20 * mm, 0.1 * mm };
131 G4double AbsorptionLengthTIBCF[nEntries] = { 15.0 * cm, 15.0 * cm, 15.0 * cm };
134 G4double SiReflectivity[nEntries] = { 0.0, 0.0, 0.0 };
137 G4double TECEfficiency[nEntries] = { 0.9, 0.9, 0.9 };
138 G4double BarrelEfficiency[nEntries] = { 1.0, 1.0, 1.0 };
141 G4double Reflectivity[nEntries] = { 0.05, 0.05, 0.05 };
161 G4Material * theMaterial =
const_cast<G4Material*
>(*theMTEntry);
163 if (theMaterial->GetMaterialPropertiesTable())
165 theMPT = theMaterial->GetMaterialPropertiesTable();
169 theMPT =
new G4MaterialPropertiesTable;
173 if ( theMaterial->GetName() ==
"TEC_Wafer" )
175 theMPT->AddProperty(
"FASTCOMPONENT", PhotonEnergy, Scintillation, nEntries);
176 theMPT->AddProperty(
"SLOWCOMPONENT", PhotonEnergy, Scintillation, nEntries);
177 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndex, nEntries);
178 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthSi, nEntries);
179 theMPT->AddProperty(
"EFFICIENCY", PhotonEnergy, TECEfficiency, nEntries);
181 theMPT->AddConstProperty(
"SCINTILLATIONYIELD", 12000.0/MeV);
182 theMPT->AddConstProperty(
"RESOLTUIONSCALE", 1.0);
183 theMPT->AddConstProperty(
"FASTTIMECONSTANT", 20.0 * ns);
184 theMPT->AddConstProperty(
"SLOWTIMECONSTANT", 45.0 * ns);
185 theMPT->AddConstProperty(
"YIELDRATIO", 1.0);
188 theMaterial->SetMaterialPropertiesTable(
theMPT);
192 else if ( theMaterial->GetName() ==
"Silicon" )
194 theMPT->AddProperty(
"FASTCOMPONENT", PhotonEnergy, Scintillation, nEntries);
195 theMPT->AddProperty(
"SLOWCOMPONENT", PhotonEnergy, Scintillation, nEntries);
196 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndex, nEntries);
197 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthSi, nEntries);
198 theMPT->AddProperty(
"EFFICIENCY", PhotonEnergy, TECEfficiency, nEntries);
200 theMPT->AddConstProperty(
"SCINTILLATIONYIELD", 12000.0/MeV);
201 theMPT->AddConstProperty(
"RESOLTUIONSCALE", 1.0);
202 theMPT->AddConstProperty(
"FASTTIMECONSTANT", 20.0 * ns);
203 theMPT->AddConstProperty(
"SLOWTIMECONSTANT", 45.0 * ns);
204 theMPT->AddConstProperty(
"YIELDRATIO", 1.0);
207 theMaterial->SetMaterialPropertiesTable(
theMPT);
211 else if ( ( theMaterial->GetName() ==
"TOB_Wafer" ) ||
212 ( theMaterial->GetName() ==
"TIB_Wafer" ) )
214 theMPT->AddProperty(
"FASTCOMPONENT", PhotonEnergy, Scintillation, nEntries);
215 theMPT->AddProperty(
"SLOWCOMPONENT", PhotonEnergy, Scintillation, nEntries);
216 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndex, nEntries);
217 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthSiBarrel, nEntries);
218 theMPT->AddProperty(
"REFLECTIVITY", PhotonEnergy, SiReflectivity, nEntries);
219 theMPT->AddProperty(
"EFFICIENCY", PhotonEnergy, BarrelEfficiency, nEntries);
221 theMPT->AddConstProperty(
"SCINTILLATIONYIELD", 12000.0/MeV);
222 theMPT->AddConstProperty(
"RESOLTUIONSCALE", 1.0);
223 theMPT->AddConstProperty(
"FASTTIMECONSTANT", 20.0 * ns);
224 theMPT->AddConstProperty(
"SLOWTIMECONSTANT", 45.0 * ns);
225 theMPT->AddConstProperty(
"YIELDRATIO", 1.0);
228 theMaterial->SetMaterialPropertiesTable(
theMPT);
232 else if ( theMaterial->GetName() ==
"TIB_ledge_side" )
235 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndexGeneral, nEntries);
236 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthGeneral, nEntries);
239 theMaterial->SetMaterialPropertiesTable(
theMPT);
243 else if ( ( theMaterial->GetName() ==
"T_Air" ) ||
244 ( theMaterial->GetName() ==
"Air" ) )
247 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndexGeneral, nEntries);
249 theMPT->AddProperty(
"REFLECTIVITY", PhotonEnergy, SiReflectivity, nEntries);
251 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthTAir, nEntries);
254 theMaterial->SetMaterialPropertiesTable(
theMPT);
259 else if ( ( theMaterial->GetName() ==
"TIB_connector" ) ||
260 ( theMaterial->GetName() ==
"TIB_cylinder" ) ||
261 ( theMaterial->GetName() ==
"TID_Connector" ) )
264 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndexGeneral, nEntries);
266 theMPT->AddProperty(
"REFLECTIVITY", PhotonEnergy, SiReflectivity, nEntries);
268 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthDead, nEntries);
271 theMaterial->SetMaterialPropertiesTable(
theMPT);
275 else if ( theMaterial->GetName() ==
"Si O_2" )
278 theMPT->AddProperty(
"RINDEX", PhotonEnergy,RefractiveIndexMirror, nEntries);
280 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthMirror, nEntries);
282 theMPT->AddProperty(
"REFLECTIVITY",PhotonEnergy,Reflectivity, nEntries);
285 theMaterial->SetMaterialPropertiesTable(
theMPT);
289 else if ( ( theMaterial->GetName() ==
"TOB_Aluminium" ) ||
290 ( theMaterial->GetName() ==
"Aluminium" ) )
293 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndexGeneral, nEntries);
295 theMPT->AddProperty(
"REFLECTIVITY", PhotonEnergy, SiReflectivity, nEntries);
297 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthAl, nEntries);
300 theMaterial->SetMaterialPropertiesTable(
theMPT);
304 else if ( ( theMaterial->GetName() ==
"TOB_CF_Str" ) )
307 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndexGeneral, nEntries);
309 theMPT->AddProperty(
"REFLECTIVITY", PhotonEnergy, SiReflectivity, nEntries);
311 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthTOB_CF_Str, nEntries);
314 theMaterial->SetMaterialPropertiesTable(
theMPT);
318 else if ( ( theMaterial->GetName() ==
"TID_CF" ) ||
319 ( theMaterial->GetName() ==
"Nomex" ) ||
320 ( theMaterial->GetName() ==
"TOB_Nomex" ) ||
321 ( theMaterial->GetName() ==
"TID_Nomex" ) ||
322 ( theMaterial->GetName() ==
"TOB_plate_C" ) ||
323 ( theMaterial->GetName() ==
"TOB_rod" ) ||
324 ( theMaterial->GetName() ==
"TOB_cool_DS" ) ||
325 ( theMaterial->GetName() ==
"TOB_cool_SS" ) ||
326 ( theMaterial->GetName() ==
"TID_in_cable" ) ||
327 ( theMaterial->GetName() ==
"TOB_PA_rphi" ) ||
328 ( theMaterial->GetName() ==
"TOB_frame_ele" ) ||
329 ( theMaterial->GetName() ==
"TOB_PA_ster" ) ||
330 ( theMaterial->GetName() ==
"TOB_ICB" ) ||
331 ( theMaterial->GetName() ==
"TOB_CONN1" ) ||
332 ( theMaterial->GetName() ==
"TOB_CONN2" ) ||
333 ( theMaterial->GetName() ==
"TOB_CONN3" ) ||
334 ( theMaterial->GetName() ==
"TOB_rail" ) ||
335 ( theMaterial->GetName() ==
"TOB_sid_rail1" ) ||
336 ( theMaterial->GetName() ==
"TOB_sid_rail2" ) )
339 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndexGeneral, nEntries);
341 theMPT->AddProperty(
"REFLECTIVITY", PhotonEnergy, SiReflectivity, nEntries);
343 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthTOBCF, nEntries);
346 theMaterial->SetMaterialPropertiesTable(
theMPT);
350 else if ( ( theMaterial->GetName() ==
"TIB_CF" ) ||
351 ( theMaterial->GetName() ==
"TIB_cables_ax_out" ) ||
352 ( theMaterial->GetName() ==
"TIB_outer_supp" ) ||
353 ( theMaterial->GetName() ==
"TIB_PA_rphi" ) ||
354 ( theMaterial->GetName() ==
"TIB_rail" ) ||
355 ( theMaterial->GetName() ==
"TIB_sid_rail1" ) ||
356 ( theMaterial->GetName() ==
"TIB_sid_rail2" ) ||
357 ( theMaterial->GetName() ==
"TIB_mod_cool" ) )
360 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndexGeneral, nEntries);
362 theMPT->AddProperty(
"REFLECTIVITY", PhotonEnergy, SiReflectivity, nEntries);
364 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthTIBCF, nEntries);
367 theMaterial->SetMaterialPropertiesTable(
theMPT);
374 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndexGeneral, nEntries);
376 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthGeneral, nEntries);
379 theMaterial->SetMaterialPropertiesTable(
theMPT);
387 const G4LogicalVolumeStore * theLogicalVolumeStore = G4LogicalVolumeStore::GetInstance();
388 std::vector<G4LogicalVolume*>::const_iterator theLogicalVolume;
390 for ( theLogicalVolume = theLogicalVolumeStore->begin(); theLogicalVolume != theLogicalVolumeStore->end(); theLogicalVolume++ )
392 if ( ( (*theLogicalVolume)->GetName() ==
"TECModule0StereoActive" ) ||
393 ( (*theLogicalVolume)->GetName() ==
"TECModule0RphiActive" ) ||
394 ( (*theLogicalVolume)->GetName() ==
"TECModule1StereoActive" ) ||
395 ( (*theLogicalVolume)->GetName() ==
"TECModule1RphiActive" ) ||
396 ( (*theLogicalVolume)->GetName() ==
"TECModule2RphiActive" ) ||
397 ( (*theLogicalVolume)->GetName() ==
"TECModule3RphiActive" ) ||
398 ( (*theLogicalVolume)->GetName() ==
"TECModule4StereoActive" ) ||
399 ( (*theLogicalVolume)->GetName() ==
"TECModule4RphiActive" ) ||
400 ( (*theLogicalVolume)->GetName() ==
"TECModule5RphiActive" ) ||
401 ( (*theLogicalVolume)->GetName() ==
"TECModule6RphiActive" ) )
408 std::cout <<
" AC1CMS: found a logical volume: " << (*theLogicalVolume)->GetName() << std::endl;
409 std::cout <<
" AC1CMS: the logical volume material = " << (*theLogicalVolume)->GetMaterial()->GetName() << std::endl;
410 std::cout <<
" AC1CMS: the MaterialPropertiesTable = " << std::endl;
411 (*theLogicalVolume)->GetMaterial()->GetMaterialPropertiesTable()->DumpTable();
414 else if ( ( (*theLogicalVolume)->GetName() ==
"TOBActiveSter0" ) ||
415 ( (*theLogicalVolume)->GetName() ==
"TOBActiveRphi0" ) ||
416 ( (*theLogicalVolume)->GetName() ==
"TOBActiveRphi2" ) ||
417 ( (*theLogicalVolume)->GetName() ==
"TOBActiveRphi4" ) )
424 std::cout <<
" AC1CMS: found a logical volume: " << (*theLogicalVolume)->GetName() << std::endl;
425 std::cout <<
" AC1CMS: the logical volume material = " << (*theLogicalVolume)->GetMaterial()->GetName() << std::endl;
426 std::cout <<
" AC1CMS: the MaterialPropertiesTable = " << std::endl;
427 (*theLogicalVolume)->GetMaterial()->GetMaterialPropertiesTable()->DumpTable();
430 else if ( ( (*theLogicalVolume)->GetName() ==
"TIBActiveSter0" ) ||
431 ( (*theLogicalVolume)->GetName() ==
"TIBActiveRphi0" ) ||
432 ( (*theLogicalVolume)->GetName() ==
"TIBActiveRphi2" ) )
439 std::cout <<
" AC1CMS: found a logical volume: " << (*theLogicalVolume)->GetName() << std::endl;
440 std::cout <<
" AC1CMS: the logical volume material = " << (*theLogicalVolume)->GetMaterial()->GetName() << std::endl;
441 std::cout <<
" AC1CMS: the MaterialPropertiesTable = " << std::endl;
442 (*theLogicalVolume)->GetMaterial()->GetMaterialPropertiesTable()->DumpTable();
G4MaterialPropertiesTable * theMPT
const G4MaterialTable * theMaterialTable