92 LogDebug(
"SimLaserAlignment:MaterialProperties")
93 <<
" **** here comes the material table **** " << *(G4Material::GetMaterialTable());
99 const G4int nEntries = 3;
102 G4double PhotonEnergy[nEntries] = {1.10 * CLHEP::eV, 1.15 * CLHEP::eV, 1.20 * CLHEP::eV};
105 G4double Scintillation[nEntries] = {0.1, 1.0, 0.1};
108 G4double RefractiveIndex[nEntries] = {3.5400, 3.5425, 3.5450};
110 G4double RefractiveIndexMirror[nEntries] = {1.50669, 1.50669, 1.50669};
117 G4double RefractiveIndexGeneral[nEntries] = {1.0, 1.0, 1.0};
122 G4double AbsorptionLengthSi[nEntries] = {1136 * micrometer, 1136 * micrometer, 1136 * micrometer};
124 G4double AbsorptionLengthSiBarrel[nEntries] = {0.1 * fermi, 0.1 * fermi, 0.1 * fermi};
127 G4double AbsorptionLengthMirror[nEntries] = {11.7 * cm, 0.5 * 11.7 * cm, 11.7 * cm};
133 G4double AbsorptionLengthDead[nEntries] = {0.001 * micrometer, 0.001 * micrometer, 0.001 * micrometer};
136 G4double AbsorptionLengthGeneral[nEntries] = {75 * cm, 75 * cm, 75 * cm};
139 G4double AbsorptionLengthTAir[nEntries] = {10 *
m, 1.8 *
m, 10 *
m};
141 G4double AbsorptionLengthAl[nEntries] = {10 * mm, 10 * mm, 10 * mm};
142 G4double AbsorptionLengthTOB_CF_Str[nEntries] = {1 * cm, 10 * cm, 1 * cm};
143 G4double AbsorptionLengthTOBCF[nEntries] = {0.1 * mm, 20 * mm, 0.1 * mm};
144 G4double AbsorptionLengthTIBCF[nEntries] = {15.0 * cm, 15.0 * cm, 15.0 * cm};
147 G4double SiReflectivity[nEntries] = {0.0, 0.0, 0.0};
150 G4double TECEfficiency[nEntries] = {0.9, 0.9, 0.9};
151 G4double BarrelEfficiency[nEntries] = {1.0, 1.0, 1.0};
154 G4double Reflectivity[nEntries] = {0.05, 0.05, 0.05};
172 G4Material *theMaterial =
const_cast<G4Material *
>(*theMTEntry);
174 if (theMaterial->GetMaterialPropertiesTable()) {
175 theMPT = theMaterial->GetMaterialPropertiesTable();
177 theMPT =
new G4MaterialPropertiesTable;
181 if (theMaterial->GetName() ==
"TEC_Wafer") {
182 theMPT->AddProperty(
"FASTCOMPONENT", PhotonEnergy, Scintillation, nEntries);
183 theMPT->AddProperty(
"SLOWCOMPONENT", PhotonEnergy, Scintillation, nEntries);
184 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndex, nEntries);
185 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthSi, nEntries);
186 theMPT->AddProperty(
"EFFICIENCY", PhotonEnergy, TECEfficiency, nEntries);
188 theMPT->AddConstProperty(
"SCINTILLATIONYIELD", 12000.0 / MeV);
189 theMPT->AddConstProperty(
"RESOLTUIONSCALE", 1.0);
190 theMPT->AddConstProperty(
"FASTTIMECONSTANT", 20.0 * ns);
191 theMPT->AddConstProperty(
"SLOWTIMECONSTANT", 45.0 * ns);
192 theMPT->AddConstProperty(
"YIELDRATIO", 1.0);
195 theMaterial->SetMaterialPropertiesTable(
theMPT);
199 else if (theMaterial->GetName() ==
"Silicon") {
200 theMPT->AddProperty(
"FASTCOMPONENT", PhotonEnergy, Scintillation, nEntries);
201 theMPT->AddProperty(
"SLOWCOMPONENT", PhotonEnergy, Scintillation, nEntries);
202 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndex, nEntries);
203 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthSi, nEntries);
204 theMPT->AddProperty(
"EFFICIENCY", PhotonEnergy, TECEfficiency, nEntries);
206 theMPT->AddConstProperty(
"SCINTILLATIONYIELD", 12000.0 / MeV);
207 theMPT->AddConstProperty(
"RESOLTUIONSCALE", 1.0);
208 theMPT->AddConstProperty(
"FASTTIMECONSTANT", 20.0 * ns);
209 theMPT->AddConstProperty(
"SLOWTIMECONSTANT", 45.0 * ns);
210 theMPT->AddConstProperty(
"YIELDRATIO", 1.0);
213 theMaterial->SetMaterialPropertiesTable(
theMPT);
217 else if ((theMaterial->GetName() ==
"TOB_Wafer") || (theMaterial->GetName() ==
"TIB_Wafer")) {
218 theMPT->AddProperty(
"FASTCOMPONENT", PhotonEnergy, Scintillation, nEntries);
219 theMPT->AddProperty(
"SLOWCOMPONENT", PhotonEnergy, Scintillation, nEntries);
220 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndex, nEntries);
221 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthSiBarrel, nEntries);
222 theMPT->AddProperty(
"REFLECTIVITY", PhotonEnergy, SiReflectivity, nEntries);
223 theMPT->AddProperty(
"EFFICIENCY", PhotonEnergy, BarrelEfficiency, nEntries);
225 theMPT->AddConstProperty(
"SCINTILLATIONYIELD", 12000.0 / MeV);
226 theMPT->AddConstProperty(
"RESOLTUIONSCALE", 1.0);
227 theMPT->AddConstProperty(
"FASTTIMECONSTANT", 20.0 * ns);
228 theMPT->AddConstProperty(
"SLOWTIMECONSTANT", 45.0 * ns);
229 theMPT->AddConstProperty(
"YIELDRATIO", 1.0);
232 theMaterial->SetMaterialPropertiesTable(
theMPT);
236 else if (theMaterial->GetName() ==
"TIB_ledge_side") {
238 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndexGeneral, nEntries);
239 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthGeneral, nEntries);
242 theMaterial->SetMaterialPropertiesTable(
theMPT);
246 else if ((theMaterial->GetName() ==
"T_Air") || (theMaterial->GetName() ==
"Air")) {
248 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndexGeneral, nEntries);
250 theMPT->AddProperty(
"REFLECTIVITY", PhotonEnergy, SiReflectivity, nEntries);
252 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthTAir, nEntries);
255 theMaterial->SetMaterialPropertiesTable(
theMPT);
260 else if ((theMaterial->GetName() ==
"TIB_connector") || (theMaterial->GetName() ==
"TIB_cylinder") ||
261 (theMaterial->GetName() ==
"TID_Connector")) {
263 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndexGeneral, nEntries);
265 theMPT->AddProperty(
"REFLECTIVITY", PhotonEnergy, SiReflectivity, nEntries);
267 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthDead, nEntries);
270 theMaterial->SetMaterialPropertiesTable(
theMPT);
274 else if (theMaterial->GetName() ==
"Si O_2") {
276 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndexMirror, nEntries);
278 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthMirror, nEntries);
280 theMPT->AddProperty(
"REFLECTIVITY", PhotonEnergy, Reflectivity, nEntries);
283 theMaterial->SetMaterialPropertiesTable(
theMPT);
287 else if ((theMaterial->GetName() ==
"TOB_Aluminium") || (theMaterial->GetName() ==
"Aluminium")) {
289 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndexGeneral, nEntries);
291 theMPT->AddProperty(
"REFLECTIVITY", PhotonEnergy, SiReflectivity, nEntries);
293 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthAl, nEntries);
296 theMaterial->SetMaterialPropertiesTable(
theMPT);
300 else if ((theMaterial->GetName() ==
"TOB_CF_Str")) {
302 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndexGeneral, nEntries);
304 theMPT->AddProperty(
"REFLECTIVITY", PhotonEnergy, SiReflectivity, nEntries);
306 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthTOB_CF_Str, nEntries);
309 theMaterial->SetMaterialPropertiesTable(
theMPT);
313 else if ((theMaterial->GetName() ==
"TID_CF") || (theMaterial->GetName() ==
"Nomex") ||
314 (theMaterial->GetName() ==
"TOB_Nomex") || (theMaterial->GetName() ==
"TID_Nomex") ||
315 (theMaterial->GetName() ==
"TOB_plate_C") || (theMaterial->GetName() ==
"TOB_rod") ||
316 (theMaterial->GetName() ==
"TOB_cool_DS") || (theMaterial->GetName() ==
"TOB_cool_SS") ||
317 (theMaterial->GetName() ==
"TID_in_cable") || (theMaterial->GetName() ==
"TOB_PA_rphi") ||
318 (theMaterial->GetName() ==
"TOB_frame_ele") || (theMaterial->GetName() ==
"TOB_PA_ster") ||
319 (theMaterial->GetName() ==
"TOB_ICB") || (theMaterial->GetName() ==
"TOB_CONN1") ||
320 (theMaterial->GetName() ==
"TOB_CONN2") || (theMaterial->GetName() ==
"TOB_CONN3") ||
321 (theMaterial->GetName() ==
"TOB_rail") || (theMaterial->GetName() ==
"TOB_sid_rail1") ||
322 (theMaterial->GetName() ==
"TOB_sid_rail2")) {
324 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndexGeneral, nEntries);
326 theMPT->AddProperty(
"REFLECTIVITY", PhotonEnergy, SiReflectivity, nEntries);
328 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthTOBCF, nEntries);
331 theMaterial->SetMaterialPropertiesTable(
theMPT);
335 else if ((theMaterial->GetName() ==
"TIB_CF") || (theMaterial->GetName() ==
"TIB_cables_ax_out") ||
336 (theMaterial->GetName() ==
"TIB_outer_supp") || (theMaterial->GetName() ==
"TIB_PA_rphi") ||
337 (theMaterial->GetName() ==
"TIB_rail") || (theMaterial->GetName() ==
"TIB_sid_rail1") ||
338 (theMaterial->GetName() ==
"TIB_sid_rail2") || (theMaterial->GetName() ==
"TIB_mod_cool")) {
340 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndexGeneral, nEntries);
342 theMPT->AddProperty(
"REFLECTIVITY", PhotonEnergy, SiReflectivity, nEntries);
344 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthTIBCF, nEntries);
347 theMaterial->SetMaterialPropertiesTable(
theMPT);
353 theMPT->AddProperty(
"RINDEX", PhotonEnergy, RefractiveIndexGeneral, nEntries);
355 theMPT->AddProperty(
"ABSLENGTH", PhotonEnergy, AbsorptionLengthGeneral, nEntries);
358 theMaterial->SetMaterialPropertiesTable(
theMPT);
366 const G4LogicalVolumeStore *theLogicalVolumeStore = G4LogicalVolumeStore::GetInstance();
367 std::vector<G4LogicalVolume *>::const_iterator theLogicalVolume;
369 for (theLogicalVolume = theLogicalVolumeStore->begin(); theLogicalVolume != theLogicalVolumeStore->end();
370 theLogicalVolume++) {
371 if (((*theLogicalVolume)->GetName() ==
"TECModule0StereoActive") ||
372 ((*theLogicalVolume)->GetName() ==
"TECModule0RphiActive") ||
373 ((*theLogicalVolume)->GetName() ==
"TECModule1StereoActive") ||
374 ((*theLogicalVolume)->GetName() ==
"TECModule1RphiActive") ||
375 ((*theLogicalVolume)->GetName() ==
"TECModule2RphiActive") ||
376 ((*theLogicalVolume)->GetName() ==
"TECModule3RphiActive") ||
377 ((*theLogicalVolume)->GetName() ==
"TECModule4StereoActive") ||
378 ((*theLogicalVolume)->GetName() ==
"TECModule4RphiActive") ||
379 ((*theLogicalVolume)->GetName() ==
"TECModule5RphiActive") ||
380 ((*theLogicalVolume)->GetName() ==
"TECModule6RphiActive")) {
385 std::cout <<
" AC1CMS: found a logical volume: " << (*theLogicalVolume)->GetName() << std::endl;
386 std::cout <<
" AC1CMS: the logical volume material = " << (*theLogicalVolume)->GetMaterial()->GetName()
388 std::cout <<
" AC1CMS: the MaterialPropertiesTable = " << std::endl;
389 (*theLogicalVolume)->GetMaterial()->GetMaterialPropertiesTable()->DumpTable();
391 }
else if (((*theLogicalVolume)->GetName() ==
"TOBActiveSter0") ||
392 ((*theLogicalVolume)->GetName() ==
"TOBActiveRphi0") ||
393 ((*theLogicalVolume)->GetName() ==
"TOBActiveRphi2") ||
394 ((*theLogicalVolume)->GetName() ==
"TOBActiveRphi4")) {
399 std::cout <<
" AC1CMS: found a logical volume: " << (*theLogicalVolume)->GetName() << std::endl;
400 std::cout <<
" AC1CMS: the logical volume material = " << (*theLogicalVolume)->GetMaterial()->GetName()
402 std::cout <<
" AC1CMS: the MaterialPropertiesTable = " << std::endl;
403 (*theLogicalVolume)->GetMaterial()->GetMaterialPropertiesTable()->DumpTable();
405 }
else if (((*theLogicalVolume)->GetName() ==
"TIBActiveSter0") ||
406 ((*theLogicalVolume)->GetName() ==
"TIBActiveRphi0") ||
407 ((*theLogicalVolume)->GetName() ==
"TIBActiveRphi2")) {
412 std::cout <<
" AC1CMS: found a logical volume: " << (*theLogicalVolume)->GetName() << std::endl;
413 std::cout <<
" AC1CMS: the logical volume material = " << (*theLogicalVolume)->GetMaterial()->GetName()
415 std::cout <<
" AC1CMS: the MaterialPropertiesTable = " << std::endl;
416 (*theLogicalVolume)->GetMaterial()->GetMaterialPropertiesTable()->DumpTable();
G4MaterialPropertiesTable * theMPT
const G4MaterialTable * theMaterialTable