29{
31
32 GeoIntrusivePtr<const GeoMaterial> Copper =
m_storedManager->getMaterial(
"std::Copper");
33 if (!Copper) throw std::runtime_error("Error in LArMaterialManager, std::Copper is not found.");
34 ATH_MSG_DEBUG(
"Copper radiation length " << Copper->getRadLength() <<
" "
35 << Copper->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3));
36
37 GeoIntrusivePtr<const GeoMaterial> Iron =
m_storedManager->getMaterial(
"std::Iron");
38 if (!Iron) throw std::runtime_error("Error in LArMaterialManager, std::Iron is not found.");
39
40 GeoIntrusivePtr<const GeoMaterial> Lead =
m_storedManager->getMaterial(
"std::Lead");
41 if (!Lead) throw std::runtime_error("Error in LArMaterialManager, std::Lead is not found.");
42#ifdef DEBUGGEO
43 ATH_MSG_INFO(
"Lead radiation length " << Lead->getRadLength() <<
" "
44 << Lead->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3));
45#endif
46
47
48 GeoIntrusivePtr<const GeoMaterial> LAr =
m_storedManager->getMaterial(
"std::LiquidArgon");
49 if (!LAr) throw std::runtime_error("Error in LArMaterialManager, std::LiquidArgon is not found.");
50
51#ifdef DEBUGGEO
52 ATH_MSG_INFO(
"LAr radiation length " << LAr->getRadLength() <<
" "
53 << LAr->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3));
54#endif
55
56 GeoIntrusivePtr<const GeoMaterial> Air =
m_storedManager->getMaterial(
"std::Air");
57 if (!Air) throw std::runtime_error("Error in LArMaterialManager, std::Air is not found.");
58
59 GeoIntrusivePtr<const GeoMaterial> Kapton =
m_storedManager->getMaterial(
"std::Kapton");
60 if (!Kapton) throw std::runtime_error("Error in LArMaterialManager, std::Kapton is not found.");
61#ifdef DEBUGGEO
62 ATH_MSG_INFO(
"Kapton radiation length " << Kapton->getRadLength() <<
" "
63 << Kapton->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3));
64 for (
size_t i = 0;
i< Kapton->getNumElements();
i++) {
65 ATH_MSG_INFO(
int (Kapton->getFraction(i)*100) <<
"% \t" << Kapton->getElement(i)->getName());
66 }
67#endif
68
69 GeoIntrusivePtr<const GeoMaterial> Glue =
m_storedManager->getMaterial(
"LAr::Glue");
70 if (!Glue) throw std::runtime_error("Error in LArMaterialManager, LAr::Glue is not found.");
71#ifdef DEBUGGEO
72 ATH_MSG_INFO(
"Glue radiation length " << Glue->getRadLength() <<
" "
73 << Glue->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3));
74 for (
size_t i = 0;
i< Glue->getNumElements();
i++) {
75 ATH_MSG_INFO(
int (Glue->getFraction(i)*100) <<
"% \t" << Glue->getElement(i)->getName());
76 }
77#endif
78
79 GeoIntrusivePtr<const GeoMaterial> G10 =
m_storedManager->getMaterial(
"LAr::G10");
80 if (!G10) throw std::runtime_error("Error in LArMaterialManager, LAr::G10 is not found.");
81#ifdef DEBUGGEO
82 ATH_MSG_INFO(
"G10 radiation length " << G10->getRadLength() <<
" "
83 << G10->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3));
84 for (
size_t i = 0;
i< G10->getNumElements();
i++) {
85 ATH_MSG_INFO(
int (G10->getFraction(i)*100) <<
"% \t" << G10->getElement(i)->getName());
86 }
87#endif
88
89 DatabaseAccessTool dB;
90
91
92
93 {
94
95
96
97
98 double Tggl, Tgfe, Tgpb, Thgl, Thfe, Thpb, Thcu, Thfg, ThMBcu, ThMBG10;
99
100
101 double Totalthick,Totalmass,Fracpb,Fracfe,Fracgl;
102 double Totalthicke,Totalmasse,FracCu,FracKap;
103
104
105 double contract=dB.
getDouble(
"ColdContraction",
"ColdContraction-00",
"ABSORBERCONTRACTION");
106
107
108 Tggl=dB.
getDouble(
"BarrelGeometry",
"BarrelGeometry-00",
"TGGL")*Gaudi::Units::cm*contract;
109 Tgfe=dB.
getDouble(
"BarrelGeometry",
"BarrelGeometry-00",
"TGFE")*Gaudi::Units::cm*contract;
110 Tgpb=dB.
getDouble(
"BarrelGeometry",
"BarrelGeometry-00",
"TGPB")*Gaudi::Units::cm*contract;
111 Totalthick = Tggl+Tgfe+Tgpb;
112 Totalmass = (Tgpb*Lead->getDensity()+Tgfe*Iron->getDensity()+Tggl*Glue->getDensity());
113
114 Fracpb = (Tgpb*Lead->getDensity())/Totalmass;
115 Fracfe = (Tgfe*Iron->getDensity())/Totalmass;
116 Fracgl = (Tggl*Glue->getDensity())/Totalmass;
117 double density = Totalmass/Totalthick/(contract*contract*contract);
118
120 ATH_MSG_DEBUG(
" Fraction pb,fe,gl: "<<Fracpb<<
","<<Fracfe<<
"," <<Fracgl);
121 ATH_MSG_DEBUG(
" Total mass, Thickness: "<<Totalmass<<
" ," <<Totalthick);
123 ATH_MSG_DEBUG(
" Thinabs Density = "<< density*(Gaudi::Units::cm3/GeoModelKernelUnits::g));
124
125 GeoIntrusivePtr<GeoMaterial> Thin_abs = new GeoMaterial("LAr::Thinabs",density);
126 Thin_abs->add(Lead,Fracpb);
127 Thin_abs->add(Iron,Fracfe);
128 Thin_abs->add(Glue,Fracgl);
130
131#ifdef DEBUGGEO
132 ATH_MSG_INFO(
"ThinAbs radiation length " << Thin_abs->getRadLength());
133#endif
134
135
136 Thgl=dB.
getDouble(
"BarrelGeometry",
"BarrelGeometry-00",
"THGL")*Gaudi::Units::cm*contract;
137 Thfe=dB.
getDouble(
"BarrelGeometry",
"BarrelGeometry-00",
"THFE")*Gaudi::Units::cm*contract;
138 Thpb=dB.
getDouble(
"BarrelGeometry",
"BarrelGeometry-00",
"THPB")*Gaudi::Units::cm*contract;
139
140 Totalthick = Thgl+Thfe+Thpb;
141 Totalmass = (Thpb*Lead->getDensity()+Thfe*Iron->getDensity()+Thgl*Glue->getDensity());
142
143 Fracpb = (Thpb*Lead->getDensity())/Totalmass;
144 Fracfe = (Thfe*Iron->getDensity())/Totalmass;
145 Fracgl = (Thgl*Glue->getDensity())/Totalmass;
146 density = Totalmass/Totalthick/(contract*contract*contract);
147
149 ATH_MSG_DEBUG(
" Fraction pb,fe,gl: "<<Fracpb<<
","<<Fracfe<<
","<<Fracgl);
150 ATH_MSG_DEBUG(
" Total mass, Thickness: "<<Totalmass<<
" ,"<<Totalthick);
151 ATH_MSG_DEBUG(
" Thickabs Density = " << density*(Gaudi::Units::cm3/GeoModelKernelUnits::g));
152
153 GeoIntrusivePtr<GeoMaterial> Thick_abs = new GeoMaterial("LAr::Thickabs",density);
154 Thick_abs->add(Lead,Fracpb);
155 Thick_abs->add(Iron,Fracfe);
156 Thick_abs->add(Glue,Fracgl);
158#ifdef DEBUGGEO
159 ATH_MSG_INFO(
"ThickAbs radiation length " << Thick_abs->getRadLength());
160#endif
161
162
163 Thcu=dB.
getDouble(
"BarrelGeometry",
"BarrelGeometry-00",
"THCU")*Gaudi::Units::cm;
164 Thfg=dB.
getDouble(
"BarrelGeometry",
"BarrelGeometry-00",
"THFG")*Gaudi::Units::cm;
165 Totalthicke = Thcu+Thfg;
166 Totalmasse = (Thcu*Copper->getDensity()+Thfg*Kapton->getDensity());
167
168 FracCu = (Thcu*Copper->getDensity())/Totalmasse;
169 FracKap = (Thfg*Kapton->getDensity())/Totalmasse;
170
171
172 double contract_e=1./1.003625;
173 density = (Totalmasse/Totalthicke)/(contract_e*contract_e*contract_e);
174
176 ATH_MSG_DEBUG(
" Fraction Cu, Kapton: " << FracCu <<
","<< FracKap);
177 ATH_MSG_DEBUG(
" Total mass, Thickness:"<<Totalmasse<<
" ,"<<Totalthicke);
178 ATH_MSG_DEBUG(
" Electrode Density = " << density*(Gaudi::Units::cm3/GeoModelKernelUnits::g));
179
180 GeoIntrusivePtr<GeoMaterial> Kapton_Cu = new GeoMaterial("LAr::KaptonC",density);
181 Kapton_Cu->add(Copper,FracCu);
182 Kapton_Cu->add(Kapton,FracKap);
184#ifdef DEBUGGEO
185 ATH_MSG_INFO(
"Electrode radiation length " << Kapton_Cu->getRadLength());
186#endif
187
188
189
190
191 double frmassCu = dB.
getDouble(
"BarrelAccordionCables",
"BarrelAccordionCables-00",
"PERCU");
192 double frmassKap= dB.
getDouble(
"BarrelAccordionCables",
"BarrelAccordionCables-00",
"PERKAP");
193
194 const double frmassKapOverCu = frmassKap / frmassCu;
195 density = Copper->getDensity()*(1.+frmassKapOverCu)
196 /(1.+frmassKapOverCu*Copper->getDensity()/Kapton->getDensity());
197 GeoIntrusivePtr<GeoMaterial> Cable_elect = new GeoMaterial("LAr::Cables",density);
198 double fractionmass;
199 Cable_elect->add(Copper, fractionmass=frmassCu*Gaudi::Units::perCent);
200 Cable_elect->add(Kapton, fractionmass=frmassKap*Gaudi::Units::perCent);
202#ifdef DEBUGGEO
203 ATH_MSG_INFO(
"Cable radiation length " << Cable_elect->getRadLength());
204#endif
205
206
207
208 ThMBcu = dB.
getDouble(
"BarrelMotherboards",
"BarrelMotherboards-00",
"THICU")*Gaudi::Units::cm;
209 ThMBG10 = dB.
getDouble(
"BarrelMotherboards",
"BarrelMotherboards-00",
"THIG10")*Gaudi::Units::cm;
210 double TotalthickMBe = ThMBcu+ThMBG10;
211 double TotalmassMBe = (ThMBcu*Copper->getDensity()+ThMBG10*G10->getDensity());
212 double FracMBCu = (ThMBcu*Copper->getDensity())/TotalmassMBe;
213 double FracMBG10 = (ThMBG10*G10->getDensity())/TotalmassMBe;
214 density = TotalmassMBe/TotalthickMBe;
217 << FracMBG10);
219 << TotalmassMBe <<" ," <<TotalthickMBe);
220 ATH_MSG_DEBUG(
" M_board Density = "<<density*(Gaudi::Units::cm3/GeoModelKernelUnits::g));
221 GeoIntrusivePtr<GeoMaterial> Moth_elect = new GeoMaterial("LAr::MBoards",density);
222
223 Moth_elect->add(G10,FracMBG10);
224 Moth_elect->add(Copper,FracMBCu);
226#ifdef DEBUGGEO
227 ATH_MSG_INFO(
"MotherBoard radiation length " << Moth_elect->getRadLength());
228#endif
229
230
231
234
235 density = dB.
getDouble(
"BarrelMotherboards",
"BarrelMotherboards-00",
"DG10")*(GeoModelKernelUnits::g/Gaudi::Units::cm3);
236 GeoIntrusivePtr<GeoMaterial> SiO2{new GeoMaterial("LAr::SiO2",density)};
237 double fractionSi=28.09/(28.09+2*16.0);
238 SiO2->add(Si,fractionSi);
239 double fractionO=2.*16.0/(28.09+2.*16.0);
240 SiO2->add(O,fractionO);
241 SiO2->lock();
242
243 density=1.72*GeoModelKernelUnits::g/Gaudi::Units::cm3;
244 GeoIntrusivePtr<GeoMaterial> Gten_bar = new GeoMaterial("LAr::G10_bar",density);
245 Gten_bar->add(G10,0.38);
246 Gten_bar->add(SiO2,0.62);
248#ifdef DEBUGGEO
249 ATH_MSG_INFO(
"fracionSi,fracionO2 " << fractionSi <<
" " << fractionO);
250 ATH_MSG_INFO(
"SiO2 density " << SiO2->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3));
251 ATH_MSG_INFO(
"SiO2 radiation length " << SiO2->getRadLength());
252 ATH_MSG_INFO(
"G10bar radiation length " << Gten_bar->getRadLength());
253#endif
254
255
256 double ThSBCu = 0.28*Gaudi::Units::mm;
257 double ThSBAr = 9.72*Gaudi::Units::mm;
258 double TotalThickSB = ThSBCu+ThSBAr;
259 double dcu = Copper->getDensity();
260 double dar = LAr->getDensity();
261 const double TotalMassSB = ThSBCu*dcu + ThSBAr*dar;
262 const double inv_TotalMassSB = 1. /TotalMassSB;
263 double fracSBCu = ThSBCu*dcu*inv_TotalMassSB;
264 double fracSBAr = ThSBAr*dar*inv_TotalMassSB;
265 density = TotalMassSB/TotalThickSB;
266 GeoIntrusivePtr<GeoMaterial> Summing_board = new GeoMaterial("LAr::SBoard",density);
267 Summing_board->add(LAr,fracSBAr);
268 Summing_board->add(Copper,fracSBCu);
270#ifdef DEBUGGEO
271 ATH_MSG_INFO(
"SBoard radiation length " << Summing_board->getRadLength());
272#endif
273
274
275
276 }
277
278
279
280
281 {
282
283
284
285
286
288
289 GeoIntrusivePtr<GeoMaterial> Vacuum = new GeoMaterial( "LAr::Vacuum", Gaudi::Units::universe_mean_density );
290 Vacuum->add(
H, 1. );
292#ifdef DEBUGGEO
293 ATH_MSG_INFO(
"Vacuum radiation length " << Vacuum->getRadLength() <<
" "
294 << Vacuum->getDensity()/(GeoModelKernelUnits::g/Gaudi::Units::cm3));
295#endif
296
297
298
299
300
301
302 double Tggl, Tgfe, Tgpb, Thgl, Thfe, Thpb;
303 double Totalthick,Totalmass,Fracpb,Fracfe,Fracgl;
304
305
306 double contract=dB.
getDouble(
"ColdContraction",
"ColdContraction-00",
"ABSORBERCONTRACTION");
307
308
309
310
311
312
313
314
315
316 Tggl = 0.20 * Gaudi::Units::mm;
317 Tgfe = 0.40 * Gaudi::Units::mm;
318 Tgpb = 1.69 * Gaudi::Units::mm;
319
320 Totalthick = Tggl+Tgfe+Tgpb;
321 Totalmass = (Tgpb*Lead->getDensity()+Tgfe*Iron->getDensity()+Tggl*Glue->getDensity());
322
323 Fracpb = (Tgpb*Lead->getDensity())/Totalmass;
324 Fracfe = (Tgfe*Iron->getDensity())/Totalmass;
325 Fracgl = (Tggl*Glue->getDensity())/Totalmass;
326 double density = Totalmass/Totalthick/(contract*contract*contract);
327 ATH_MSG_DEBUG(
"---- EMEC THIN absorber characteristics: ----");
328 ATH_MSG_DEBUG(
" Thickness pb,fe,gl,[mm]="<<Tgpb<<
" "<<Tgfe<<
" "<<Tggl);
329 ATH_MSG_DEBUG(
" Fraction pb,fe,gl ="<<Fracpb<<
","<<Fracfe<<
"," <<Fracgl);
330 ATH_MSG_DEBUG(
" Total mass, Thickness ="<<Totalmass<<
" ," <<Totalthick);
331 ATH_MSG_DEBUG(
" Thinabs Density ="<< density*(Gaudi::Units::cm3/GeoModelKernelUnits::g));
332
333 ATH_MSG_DEBUG(
"---- EMEC THIN absorber characteristics: ----");
334 ATH_MSG_DEBUG(
" Thickness pb,fe,gl,[mm]="<<Tgpb<<
" "<<Tgfe<<
" "<<Tggl );
335 ATH_MSG_DEBUG(
" Fraction pb,fe,gl ="<<Fracpb<<
","<<Fracfe<<
"," <<Fracgl );
336 ATH_MSG_DEBUG(
" Total mass, Thickness ="<<Totalmass<<
" ," <<Totalthick );
337 ATH_MSG_DEBUG(
" Thinabs Density ="<< density*(Gaudi::Units::cm3/GeoModelKernelUnits::g));
338
339
340 GeoIntrusivePtr<GeoMaterial> Thin_abs = new GeoMaterial("LAr::EMEC_Thinabs",density);
341 Thin_abs->add(Lead,Fracpb);
342 Thin_abs->add(Iron,Fracfe);
343 Thin_abs->add(Glue,Fracgl);
345
346#ifdef DEBUGGEO
347 ATH_MSG_INFO(
"EMEC thinAbs radiation length " << Thin_abs->getRadLength());
348#endif
349
350
351
352
353
354 Thgl = 0.20 * Gaudi::Units::mm;
355 Thfe = 0.40 * Gaudi::Units::mm;
356 Thpb = 2.20 * Gaudi::Units::mm;
357
358 Totalthick = Thgl+Thfe+Thpb;
359 Totalmass = (Thpb*Lead->getDensity()+Thfe*Iron->getDensity()+Thgl*Glue->getDensity());
360
361 Fracpb = (Thpb*Lead->getDensity())/Totalmass;
362 Fracfe = (Thfe*Iron->getDensity())/Totalmass;
363 Fracgl = (Thgl*Glue->getDensity())/Totalmass;
364 density = Totalmass/Totalthick/(contract*contract*contract);
365
366 ATH_MSG_DEBUG(
"---- EMEC THICK absorber characteristics: ----");
367 ATH_MSG_DEBUG(
" Thickness pb,fe,gl[mm]="<<Thpb<<
" "<<Thfe<<
" "<<Thgl);
368 ATH_MSG_DEBUG(
" Fraction pb,fe,gl: "<<Fracpb<<
","<<Fracfe<<
","<<Fracgl);
369 ATH_MSG_DEBUG(
" Total mass, Thickness: "<<Totalmass<<
" ,"<<Totalthick);
370 ATH_MSG_DEBUG(
" Thickabs Density = "<<density*(Gaudi::Units::cm3/GeoModelKernelUnits::g));
371
372 GeoIntrusivePtr<GeoMaterial> Thick_abs = new GeoMaterial("LAr::EMEC_Thickabs",density);
373 Thick_abs->add(Lead,Fracpb);
374 Thick_abs->add(Iron,Fracfe);
375 Thick_abs->add(Glue,Fracgl);
377#ifdef DEBUGGEO
378 ATH_MSG_INFO(
"EMEC thickAbs radiation length " << Thick_abs->getRadLength());
379#endif
380
381
382
383
384 Thgl = 0.20 * Gaudi::Units::mm;
385 Thfe = 0.40 * Gaudi::Units::mm;
386
387 Totalthick = Thgl+Thfe;
388 Totalmass = (Thfe*Iron->getDensity()+Thgl*Glue->getDensity());
389
390 Fracfe = (Thfe*Iron->getDensity())/Totalmass;
391 Fracgl = (Thgl*Glue->getDensity())/Totalmass;
392 density = Totalmass/Totalthick/(contract*contract*contract);
393
394 ATH_MSG_DEBUG(
"---- EMEC absorber shell characteristics: ----");
397 ATH_MSG_DEBUG(
" Total mass, Thickness: "<<Totalmass<<
" ,"<<Totalthick);
398 ATH_MSG_DEBUG(
" Thickabs Density = "<<density*(Gaudi::Units::cm3/GeoModelKernelUnits::g));
399
400 GeoIntrusivePtr<GeoMaterial> EMEC_shell = new GeoMaterial("LAr::EMEC_shell",density);
401 EMEC_shell->add(Iron,Fracfe);
402 EMEC_shell->add(Glue,Fracgl);
404
405
406
407
408
409
410 double TgG10, ThG10;
411 double FracG10;
412
413
414
415
416
418 Tggl = 0.20 * Gaudi::Units::mm;
419 Tgfe = 0.40 * Gaudi::Units::mm;
420 TgG10 =1.69 * Gaudi::Units::mm;
421
422 Totalthick = Tggl+Tgfe+TgG10;
423 Totalmass = (TgG10*G10->getDensity()+Tgfe*Iron->getDensity()+Tggl*Glue->getDensity());
424
425 FracG10 = (TgG10*G10->getDensity())/Totalmass;
426 Fracfe = (Tgfe*Iron->getDensity())/Totalmass;
427 Fracgl = (Tggl*Glue->getDensity())/Totalmass;
428 density = (Totalmass/Totalthick)/(contract*contract*contract);
429
430 GeoIntrusivePtr<GeoMaterial> G10FeOuter = new GeoMaterial("LAr::G10FeOuter",density);
431 G10FeOuter->add(G10,FracG10);
432 G10FeOuter->add(Iron,Fracfe);
433 G10FeOuter->add(Glue,Fracgl);
435
436#ifdef DEBUGGEO
437 ATH_MSG_INFO(
"EMEC G10FeOuter radiation length " << G10FeOuter->getRadLength());
438#endif
439
440
441
442
443
444 Thgl = 0.20 * Gaudi::Units::mm;
445 Thfe = 0.40 * Gaudi::Units::mm;
446 ThG10 =2.20 * Gaudi::Units::mm;
447
448 Totalthick = Thgl+Thfe+ThG10;
449 Totalmass = (ThG10*G10->getDensity()+Thfe*Iron->getDensity()+Thgl*Glue->getDensity());
450
451 FracG10 = (ThG10*G10->getDensity())/Totalmass;
452 Fracfe = (Thfe*Iron->getDensity())/Totalmass;
453 Fracgl = (Thgl*Glue->getDensity())/Totalmass;
454 density = (Totalmass/Totalthick)/(contract*contract*contract);
455
456 GeoIntrusivePtr<GeoMaterial> G10FeInner = new GeoMaterial("LAr::G10FeInner",density);
457 G10FeInner->add(G10,FracG10);
458 G10FeInner->add(Iron,Fracfe);
459 G10FeInner->add(Glue,Fracgl);
461#ifdef DEBUGGEO
462 ATH_MSG_INFO(
"EMEC G10FeInner radiation length " << G10FeInner->getRadLength());
463#endif
464
465 }
466
467
468 {
469 GeoIntrusivePtr<const GeoMaterial> myIron =
m_storedManager->getMaterial(
"std::Iron");
470 GeoIntrusivePtr<const GeoMaterial> myCopper =
m_storedManager->getMaterial(
"std::Copper");
471 GeoIntrusivePtr<const GeoMaterial> myKapton =
m_storedManager->getMaterial(
"std::Kapton");
472 GeoIntrusivePtr<const GeoMaterial> myAlu =
m_storedManager->getMaterial(
"std::Aluminium");
473 GeoIntrusivePtr<const GeoMaterial> myLAr =
m_storedManager->getMaterial(
"std::LiquidArgon");
478
479 GeoIntrusivePtr<GeoMaterial> myGlass = new GeoMaterial("LAr::PinCarrierGlas",2.40*Gaudi::Units::g/Gaudi::Units::cm3);
480 myGlass->add(O ,0.459800);
481 myGlass->add(Na,0.096441);
482 myGlass->add(Si,0.336553);
483 myGlass->add(Ca,0.107205);
484 myGlass->lock();
486
487
488
489
490
491
492
493
494
495
496
497 const double wflange_total = 1.88 + 5.84 + 1.0 + 6.634 + 2.036;
498 GeoIntrusivePtr<GeoMaterial> warm_flange = new GeoMaterial("LAr::FT::WarmFlange",
499 wflange_total*Gaudi::Units::kg / (3766141.*Gaudi::Units::mm3)
500 );
501 warm_flange->add(myAlu, 2.88 / wflange_total);
502 warm_flange->add(myIron, (5.84 + 6.634 + 1.83) / wflange_total);
503 warm_flange->add(myCopper, 0.17 / wflange_total);
504 warm_flange->add(myGlass, 0.036 / wflange_total);
505 warm_flange->lock();
507
508
509
510
511
512
513
514
515 {
516 const double m = 11.21;
517 const double mGlass = 0.036;
518 const double mCopper = 0.170;
519 const double mFe =
m - mGlass - mCopper;
520 GeoIntrusivePtr<GeoMaterial> cold_flange = new GeoMaterial("LAr::FT::ColdFlange",
521 m*Gaudi::Units::kg / (2201561.*Gaudi::Units::mm3)
522 );
523 cold_flange->add(myIron, mFe / m);
524 cold_flange->add(myCopper, mCopper / m);
525 cold_flange->add(myGlass, mGlass / m);
526 cold_flange->lock();
528 }
529
530
531
532
533
534
535
536
537
538 GeoIntrusivePtr<GeoMaterial> bellow_mat = new GeoMaterial("LAr::FT::Bellow",
539 1.351*Gaudi::Units::kg / (1253790.*Gaudi::Units::mm3)
540 );
541 bellow_mat->add(myIron, 1.);
542 bellow_mat->lock();
544
545
546
547
548
549
550
551
552
553
554 GeoIntrusivePtr<GeoMaterial> vacuum_cables_mat = new GeoMaterial("LAr::FT::VacuumCables",
555 6.943*Gaudi::Units::kg / (8092821.*Gaudi::Units::mm3)
556 );
557 vacuum_cables_mat->add(myCopper, 0.5657);
558 vacuum_cables_mat->add(myKapton, 0.4343);
559 vacuum_cables_mat->lock();
561
562
563
564
565
566
567 const double vCopper = 0.215;
568 const double vKapton = 0.735;
569 const double mCopper = vCopper*8.96;
570 const double mKapton = vKapton*1.3;
571 const double m = mCopper + mKapton;
572 GeoIntrusivePtr<GeoMaterial> cable_mat = new GeoMaterial("LAr::FT::Cable",
573 m*Gaudi::Units::g / ((vCopper + vKapton)*Gaudi::Units::cm3)
574 );
575 cable_mat->add(myCopper, mCopper / m);
576 cable_mat->add(myKapton, mKapton / m);
577 cable_mat->lock();
579
580
581
582
583 const double v =
M_PI*(13.3/2)*(13.3/2);
584 const double vc =
M_PI*(.11/2)*(.11/2)*1920;
585 const double va =
v - vc;
586 const double mc = vc * 2.9/0.95;
587 const double ma = va * 1.392;
588 GeoIntrusivePtr<GeoMaterial> pigtail_mat = new GeoMaterial("LAr::FT::Pigtail",
589 (mc + ma)*Gaudi::Units::g / (v*Gaudi::Units::cm3)
590 );
592 << pigtail_mat->getDensity() / (Gaudi::Units::g/Gaudi::Units::cm3));
593 pigtail_mat->add(cable_mat, mc / (mc + ma));
594 pigtail_mat->add(myLAr, ma / (mc + ma));
595 pigtail_mat->lock();
597 }
598}