Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
GeoModel description of the EMEC Support Structures.
More...
#include <EMECSupportConstruction.h>
|
using | map_t = std::map< std::string, unsigned int > |
|
GeoModel description of the EMEC Support Structures.
Definition at line 48 of file EMECSupportConstruction.h.
◆ map_t
◆ type_t
Enumerator |
---|
Front | |
Back | |
Outer | |
Inner | |
Middle | |
FrontInner | |
BackInner | |
FrontOuter | |
BackOuter | |
Definition at line 51 of file EMECSupportConstruction.h.
◆ EMECSupportConstruction()
EMECSupportConstruction::EMECSupportConstruction |
( |
type_t |
type, |
|
|
bool |
pos_zside = true , |
|
|
bool |
is_module = false , |
|
|
std::string |
basename = "LAr::EMEC::" , |
|
|
double |
position = 0. |
|
) |
| |
Definition at line 92 of file EMECSupportConstruction.cxx.
101 ISvcLocator *svcLocator = Gaudi::svcLocator();
102 SmartIF<StoreGateSvc>
detStore{svcLocator->service(
"DetectorStore")};
104 throw std::runtime_error(
"Error in EMECSupportConstruction, cannot access DetectorStore");
107 if (
detStore->retrieve(materialManager, std::string(
"MATERIALS")).isFailure()) {
108 throw std::runtime_error(
"Error in EMECSupportConstruction, cannot access MATERIALS");
122 if(!
m_Lead)
throw std::runtime_error(
"Error in EMECSupportConstruction, std::Lead is not found.");
125 if(!
m_Alu)
throw std::runtime_error(
"Error in EMECSupportConstruction, std::Aluminium is not found.");
128 if(!
m_Copper)
throw std::runtime_error(
"Error in EMECSupportConstruction, std::Copper is not found.");
131 if(!
m_LAr)
throw std::runtime_error(
"Error in EMECSupportConstruction, std::LiquidArgon is not found.");
134 if(!
m_Gten)
throw std::runtime_error(
"Error in EMECSupportConstruction, LAr::G10 is not found.");
137 if(!
m_PermaliE730)
throw std::runtime_error(
"Error in EMECSupportConstruction, LAr::Glue is not found.");
140 if(!
m_G10FeOuter)
throw std::runtime_error(
"Error in EMECSupportConstruction, LAr::G10FeOuter is not found.");
143 if(!
m_G10FeInner)
throw std::runtime_error(
"Error in EMECSupportConstruction, LAr::G10FeInner is not found.");
146 if(!
m_Kapton_Cu)
throw std::runtime_error(
"Error in EMECSupportConstruction, LAr::KaptonC is not found.");
149 if(!
m_Cable)
throw std::runtime_error(
"Error in EMECSupportConstruction, LAr::Cables is not found.");
151 SmartIF<IGeoModelSvc> geoModel{svcLocator->service(
"GeoModelSvc")};
152 if(!geoModel.isValid())
153 throw std::runtime_error(
"Error cannot access GeoModelSvc");
154 SmartIF<IRDBAccessSvc> rdbAccess{svcLocator->service(
"RDBAccessSvc")};
155 if(!rdbAccess.isValid())
156 throw std::runtime_error(
"Error cannot access RDBAccessSvc");
160 std::string LArVersion = geoModel->LAr_VersionOverride();
161 std::string detectorKey = LArVersion.empty() ?
AtlasVersion : LArVersion;
162 std::string detectorNode = LArVersion.empty() ?
"ATLAS" :
"LAr";
163 m_DB_emecExtraCyl = rdbAccess->getRecordsetPtr(
"LArCones",detectorKey, detectorNode);
169 rdbAccess->getRecordsetPtr(
"EmecGeometry", larVersionKey.tag(), larVersionKey.node());
171 m_DB_EmecGeometry = rdbAccess->getRecordsetPtr(
"EmecGeometry",
"EmecGeometry-00");
175 rdbAccess->getRecordsetPtr(
"EmecWheelParameters", larVersionKey.tag(), larVersionKey.node());
180 m_DB_boxes = rdbAccess->getRecordsetPtr(
"EmecDMBoxes", larVersionKey.tag(), larVersionKey.node());
182 m_DB_boxes = rdbAccess->getRecordsetPtr(
"EmecDMBoxes",
"EmecDMBoxes-00");
184 m_DB_numbers = rdbAccess->getRecordsetPtr(
"EmecDMNumbers", larVersionKey.tag(), larVersionKey.node());
186 m_DB_numbers = rdbAccess->getRecordsetPtr(
"EmecDMNumbers",
"EmecDMNumbers-00");
188 m_DB_tubes = rdbAccess->getRecordsetPtr(
"EmecDMTubes", larVersionKey.tag(), larVersionKey.node());
190 m_DB_tubes = rdbAccess->getRecordsetPtr(
"EmecDMTubes",
"EmecDMTubes-00");
192 m_DB_pcons = rdbAccess->getRecordsetPtr(
"EmecDMPCons", larVersionKey.tag(), larVersionKey.node());
194 m_DB_pcons = rdbAccess->getRecordsetPtr(
"EmecDMPCons",
"EmecDMPCons-00");
197 m_DB_mn = rdbAccess->getRecordsetPtr(
"EmecMagicNumbers", larVersionKey.tag(), larVersionKey.node());
199 m_DB_mn = rdbAccess->getRecordsetPtr(
"EmecMagicNumbers",
"EmecMagicNumbers-00");
202 m_DB_EmecFan = rdbAccess->getRecordsetPtr(
"EmecFan", larVersionKey.tag(), larVersionKey.node());
204 m_DB_EmecFan = rdbAccess->getRecordsetPtr(
"EmecFan",
"EmecFan-00");
206 m_DB_ColdContraction = rdbAccess->getRecordsetPtr(
"ColdContraction", larVersionKey.tag(), larVersionKey.node());
◆ ~EMECSupportConstruction()
EMECSupportConstruction::~EMECSupportConstruction |
( |
| ) |
|
|
virtualdefault |
◆ back_envelope()
GeoIntrusivePtr< GeoPhysVol > EMECSupportConstruction::back_envelope |
( |
void |
| ) |
const |
|
private |
Definition at line 656 of file EMECSupportConstruction.cxx.
658 std::string
id =
"BackSupportMother";
660 GeoPcon *motherShape =
getPcon(
id);
661 GeoLogVol *motherLogical =
new GeoLogVol(
name, motherShape,
m_LAr);
662 GeoIntrusivePtr<GeoPhysVol>motherPhysical=
new GeoPhysVol(motherLogical);
673 return motherPhysical;
◆ back_inner_envelope()
GeoIntrusivePtr< GeoPhysVol > EMECSupportConstruction::back_inner_envelope |
( |
void |
| ) |
const |
|
private |
Definition at line 1922 of file EMECSupportConstruction.cxx.
1924 std::string
id =
"BackSupportMother";
1926 GeoPcon *motherShape =
getPcon(
id +
"::Inner");
1927 GeoLogVol *motherLogical =
new GeoLogVol(
name, motherShape,
m_LAr);
1928 GeoIntrusivePtr<GeoPhysVol>motherPhysical =
new GeoPhysVol(motherLogical);
1934 return motherPhysical;
◆ back_outer_envelope()
GeoIntrusivePtr< GeoPhysVol > EMECSupportConstruction::back_outer_envelope |
( |
void |
| ) |
const |
|
private |
Definition at line 1955 of file EMECSupportConstruction.cxx.
1957 std::string
id =
"BackSupportMother";
1959 GeoPcon *motherShape =
getPcon(
id +
"::Outer");
1960 GeoLogVol *motherLogical =
new GeoLogVol(
name, motherShape,
m_LAr);
1961 GeoIntrusivePtr<GeoPhysVol>motherPhysical=
new GeoPhysVol(motherLogical);
1969 return motherPhysical;
◆ front_envelope()
GeoIntrusivePtr< GeoPhysVol > EMECSupportConstruction::front_envelope |
( |
void |
| ) |
const |
|
private |
Definition at line 634 of file EMECSupportConstruction.cxx.
636 std::string
id =
"FrontSupportMother";
638 GeoPcon *motherShape =
getPcon(
id);
639 GeoLogVol *motherLogical =
new GeoLogVol(
name, motherShape,
m_LAr);
640 GeoIntrusivePtr<GeoPhysVol>motherPhysical=
new GeoPhysVol(motherLogical);
653 return motherPhysical;
◆ front_inner_envelope()
GeoIntrusivePtr< GeoPhysVol > EMECSupportConstruction::front_inner_envelope |
( |
void |
| ) |
const |
|
private |
Definition at line 1907 of file EMECSupportConstruction.cxx.
1909 std::string
id =
"FrontSupportMother";
1911 GeoPcon *motherShape =
getPcon(
id +
"::Inner");
1912 GeoLogVol *motherLogical =
new GeoLogVol(
name, motherShape,
m_LAr);
1913 GeoIntrusivePtr<GeoPhysVol>motherPhysical =
new GeoPhysVol(motherLogical);
1919 return motherPhysical;
◆ front_outer_envelope()
GeoIntrusivePtr< GeoPhysVol > EMECSupportConstruction::front_outer_envelope |
( |
void |
| ) |
const |
|
private |
Definition at line 1937 of file EMECSupportConstruction.cxx.
1939 std::string
id =
"FrontSupportMother";
1941 GeoPcon *motherShape =
getPcon(
id +
"::Outer");
1942 GeoLogVol *motherLogical =
new GeoLogVol(
name, motherShape,
m_LAr);
1943 GeoIntrusivePtr<GeoPhysVol>motherPhysical=
new GeoPhysVol(motherLogical);
1952 return motherPhysical;
◆ GetEnvelope()
GeoIntrusivePtr< GeoPhysVol > EMECSupportConstruction::GetEnvelope |
( |
void |
| ) |
const |
|
virtual |
◆ getMap()
◆ getNumber() [1/2]
◆ getNumber() [2/2]
Definition at line 248 of file EMECSupportConstruction.cxx.
251 for(
unsigned int i = 0;
i <
db->size(); ++
i){
252 const std::string&
object = (*db)[
i]->getString(
"OBJECTNAME");
254 const std::string&
key = (*db)[
i]->getString(
"PARNAME");
255 if(
key == parameter){
256 double value = (*db)[
i]->getDouble(
"PARVALUE");
257 assert(
value == defval);
262 ATH_MSG_WARNING(
"Cannot get " <<
s <<
"/" << parameter <<
" from DB_numbers"
263 <<
", default is " << defval);
◆ getNumbersMap()
Definition at line 222 of file EMECSupportConstruction.cxx.
225 for(
unsigned int i = 0;
i <
db->size(); ++
i) {
226 const std::string&
object = (*db)[
i]->getString(
"OBJECTNAME");
228 const std::string&
key = (*db)[
i]->getString(
"PARNAME");
◆ getPcon()
GeoPcon * EMECSupportConstruction::getPcon |
( |
const std::string & |
id | ) |
const |
|
private |
Definition at line 291 of file EMECSupportConstruction.cxx.
295 std::vector<double> zplane, rmin, rmax;
297 std::string id1 =
id;
298 if(
id.starts_with(
"FrontSupportMother")) id1 =
"FrontSupportMother";
299 else if(
id.starts_with(
"BackSupportMother")) id1 =
"BackSupportMother";
300 else if(
id.
find(
"Stretchers") != std::string::npos) id1 =
"Stretchers";
301 else if(
id ==
"FrontMiddleRing::LowerHole") id1 =
"FrontMiddleRing::LH";
302 else if(
id ==
"FrontMiddleRing::LowerGTen") id1 =
"FrontMiddleRing::LGT";
303 else if(
id ==
"FrontMiddleRing::UpperHole") id1 =
"FrontMiddleRing::UH";
304 else if(
id ==
"FrontMiddleRing::UpperGTen") id1 =
"FrontMiddleRing::UGT";
305 else if(
id ==
"BackMiddleRing::LowerHole") id1 =
"BackMiddleRing::LH";
306 else if(
id ==
"BackMiddleRing::LowerGTen") id1 =
"BackMiddleRing::LGT";
307 else if(
id ==
"BackMiddleRing::UpperHole") id1 =
"BackMiddleRing::UH";
308 else if(
id ==
"BackMiddleRing::UpperGTen") id1 =
"BackMiddleRing::UGT";
310 std::map<int, unsigned int> pcone;
314 const std::string&
object = (*m_DB_pcons)[
i]->getString(
"PCONNAME");
316 int key = (*m_DB_pcons)[
i]->getInt(
"NZPLANE");
317 if(pcone.find(
key) != pcone.end()){
323 if(
key >= 0) ++ nzplanes;
328 zplane.resize(nzplanes); rmin.resize(nzplanes); rmax.resize(nzplanes);
329 for(
int n = 0;
n < nzplanes; ++
n){
334 if(id1 ==
"FrontSupportMother"){
335 if(
id.
find(
"Inner") != std::string::npos){
336 zplane.resize(2); rmin.resize(2); rmax.resize(2);
340 }
else if(
id.
find(
"Outer") != std::string::npos){
346 if(id1 ==
"BackSupportMother"){
347 if(
id.
find(
"Inner") != std::string::npos){
348 zplane.resize(2); rmin.resize(2); rmax.resize(2);
352 }
else if(
id.
find(
"Outer") != std::string::npos){
358 if(id1 ==
"Stretchers"){
359 if(
id ==
"WideStretchers"){
364 if(
id ==
"NarrowStretchers"){
373 std::cout <<
"!!!! " <<
id <<
":" << std::endl;
374 for(
int i = 0;
i < nzplanes; ++
i){
375 std::cout <<
"\t" <<
i <<
" " << zplane[
i] <<
" " << rmin[
i] <<
" " << rmax[
i] << std::endl;
379 if(
id.starts_with(
"FrontSupportMother")){
380 zplane.resize(6); rmin.resize(6); rmax.resize(6);
387 if(
id ==
"FrontSupportMother::Outer"){
391 if(
id ==
"FrontSupportMother::Inner"){
392 zplane.resize(2); rmin.resize(2); rmax.resize(2);
396 }
else if(
id.starts_with(
"BackSupportMother")){
397 zplane.resize(4); rmin.resize(4); rmax.resize(4);
402 if(
id ==
"BackSupportMother::Outer"){
406 if(
id ==
"BackSupportMother::Inner"){
407 zplane.resize(2); rmin.resize(2); rmax.resize(2);
411 }
else if(
id ==
"WideStretchers" ||
id ==
"NarrowStretchers"){
417 double rmidS = rminS + drnotch;
418 zplane.resize(6); rmin.resize(6); rmax.resize(6);
419 zplane[0] = -dzS ; rmin[0] = rminS; rmax[0] = rmaxS;
420 zplane[1] = -dznotch; rmin[1] = rminS; rmax[1] = rmaxS;
421 zplane[2] = -dznotch; rmin[2] = rmidS; rmax[2] = rmaxS;
422 zplane[3] = dznotch; rmin[3] = rmidS; rmax[3] = rmaxS;
423 zplane[4] = dznotch; rmin[4] = rminS; rmax[4] = rmaxS;
424 zplane[5] = dzS ; rmin[5] = rminS; rmax[5] = rmaxS;
425 if(
id ==
"WideStretchers"){
430 if(
id ==
"NarrowStretchers"){
436 }
else if(
id ==
"OuterSupportMother"){
442 zplane.resize(6); rmin.resize(6); rmax.resize(6);
443 zplane[0] = -dzOTB ; rmin[0] = rminOTB; rmax[0] = rmaxOTB;
444 zplane[1] = -dzS; rmin[1] = rminOTB; rmax[1] = rmaxOTB;
445 zplane[2] = -dzS; rmin[2] = rminOTB; rmax[2] = rmaxS;
446 zplane[3] = dzS; rmin[3] = rminOTB; rmax[3] = rmaxS;
447 zplane[4] = dzS; rmin[4] = rminOTB; rmax[4] = rmaxOTB;
448 zplane[5] = dzOTB ; rmin[5] = rminOTB; rmax[5] = rmaxOTB;
449 }
else if(
id ==
"FrontMiddleRing"){
451 zplane.resize(4); rmin.resize(4); rmax.resize(4);
456 }
else if(
id ==
"FrontMiddleRing::LowerHole"){
458 zplane.resize(6); rmin.resize(6); rmax.resize(6);
465 }
else if(
id ==
"FrontMiddleRing::LowerGTen"){
467 zplane.resize(6); rmin.resize(6); rmax.resize(6);
474 }
else if(
id ==
"FrontMiddleRing::UpperHole"){
476 zplane.resize(6); rmin.resize(6); rmax.resize(6);
483 }
else if(
id ==
"FrontMiddleRing::UpperGTen"){
485 zplane.resize(6); rmin.resize(6); rmax.resize(6);
492 }
else if(
id ==
"FrontInnerRing"){
494 zplane.resize(5); rmin.resize(5); rmax.resize(5);
500 }
else if(
id ==
"FrontInnerRing::Hole"){
502 zplane.resize(6); rmin.resize(6); rmax.resize(6);
509 }
else if(
id ==
"FrontInnerRing::GTen"){
511 zplane.resize(6); rmin.resize(6); rmax.resize(6);
518 }
else if(
id ==
"BackMiddleRing"){
520 zplane.resize(4); rmin.resize(4); rmax.resize(4);
525 }
else if(
id ==
"BackMiddleRing::LowerHole"){
527 zplane.resize(6); rmin.resize(6); rmax.resize(6);
535 }
else if(
id ==
"BackMiddleRing::LowerGTen"){
537 zplane.resize(6); rmin.resize(6); rmax.resize(6);
544 }
else if(
id ==
"BackMiddleRing::UpperHole"){
546 zplane.resize(6); rmin.resize(6); rmax.resize(6);
553 }
else if(
id ==
"BackMiddleRing::UpperGTen"){
555 zplane.resize(6); rmin.resize(6); rmax.resize(6);
562 }
else if(
id ==
"BackInnerRing"){
564 zplane.resize(4); rmin.resize(4); rmax.resize(4);
569 }
else if(
id ==
"BackInnerRing::Hole"){
571 zplane.resize(6); rmin.resize(6); rmax.resize(6);
578 }
else if(
id ==
"BackInnerRing::GTen"){
580 zplane.resize(6); rmin.resize(6); rmax.resize(6);
587 }
else if(
id ==
"FrontOuterRing"){
589 zplane.resize(7); rmin.resize(7); rmax.resize(7);
597 }
else if(
id ==
"FrontOuterLongBar"){
598 zplane.resize(4); rmin.resize(4); rmax.resize(4);
604 }
else if(
id ==
"BackOuterRing"){
606 zplane.resize(7); rmin.resize(7); rmax.resize(7);
614 }
else if(
id ==
"BackOuterLongBar"){
615 zplane.resize(4); rmin.resize(4); rmax.resize(4);
621 throw std::runtime_error(
"EMECSupportConstruction: wrong Pcone id");
626 GeoPcon* shape =
new GeoPcon(phi_start, phi_size);
627 for(
size_t i = 0;
i < zplane.size(); ++
i){
628 shape->addPlane(zplane[
i], rmin[
i], rmax[
i]);
◆ initMessaging()
void AthMessaging::initMessaging |
( |
| ) |
const |
|
privateinherited |
Initialize our message level and MessageSvc.
This method should only be called once.
Definition at line 39 of file AthMessaging.cxx.
◆ inner_envelope()
GeoIntrusivePtr< GeoPhysVol > EMECSupportConstruction::inner_envelope |
( |
void |
| ) |
const |
|
private |
Definition at line 1210 of file EMECSupportConstruction.cxx.
1212 std::string
id =
"InnerAluCone";
1217 double dz = 0.5 * (*m_DB_mn)[0]->getDouble(
"ACTIVELENGTH")*
Gaudi::Units::mm;
1229 const double talpha = (r2min - r1min)*0.5/dz;
1230 const double calpha = 2.*dz/sqrt(
pow(2.*dz,2.)+
pow(r2min-r1min,2.));
1231 const double inv_calpha = 1. / calpha;
1235 double r1max =
pow(barthick/2.,2.)+
pow(r1min+(surfthick+barthick)*inv_calpha,2.);
1236 r1max = sqrt(r1max)+surfthick*inv_calpha;
1237 double r2max = r2min+(r1max-r1min);
1239 GeoCons* shapeIAC =
new GeoCons ( r1min ,r2min,
1243 GeoLogVol* logicalIAC =
new GeoLogVol (name0, shapeIAC,
m_LAr);
1244 GeoIntrusivePtr<GeoPhysVol> physIAC =
new GeoPhysVol(logicalIAC);
1250 std::string
name = name0 +
"::InnerShell";
1251 GeoCons* shapeIACIS =
new GeoCons(
1253 r1min+surfthick*inv_calpha, r2min+surfthick*inv_calpha,
1255 GeoLogVol* logicalIACIS =
new GeoLogVol (
name,shapeIACIS,
m_Alu);
1256 GeoIntrusivePtr<GeoPhysVol> physIACIS =
new GeoPhysVol(logicalIACIS);
1257 physIAC->add(physIACIS);
1259 name = name0 +
"::OuterShell";
1262 GeoCons* shapeIACOS =
new GeoCons (
1263 r1max-surfthick*inv_calpha, r2max-surfthick*inv_calpha,
1266 GeoLogVol* logicalIACOS =
new GeoLogVol (
name,shapeIACOS,
m_Alu);
1267 GeoIntrusivePtr<GeoPhysVol> physIACOS =
new GeoPhysVol(logicalIACOS);
1268 physIAC->add(physIACOS);
1270 name = name0 +
"::Phidiv";
1273 const int nofmodul = 8;
1275 GeoCons* shapeIACP =
new GeoCons(
1276 r1min+surfthick*inv_calpha,r2min+surfthick*inv_calpha,
1277 r1max-surfthick*inv_calpha,r2max-surfthick*inv_calpha,
1278 dz, -moduldphi/2.,moduldphi);
1279 GeoLogVol* logicalIACP =
new GeoLogVol (
name,shapeIACP,
m_LAr);
1280 GeoIntrusivePtr<GeoPhysVol> physIACP =
new GeoPhysVol(logicalIACP);
1282 name = name0 +
"::AluBar";
1285 GeoPara* shapeIACAB =
new GeoPara(
1286 barthick/2.*inv_calpha,barthick/2.,dz,
1288 GeoLogVol* logicalIACAB=
new GeoLogVol (
name,shapeIACAB,
m_Alu);
1289 GeoIntrusivePtr<GeoPhysVol> physIACAB=
new GeoPhysVol(logicalIACAB);
1293 const double phi[9]={-15.,-11.,-7.5,-4.,0.,4.,7.5,11.,15.};
1294 const double r0=r1min+(surfthick+barthick/2.)*inv_calpha+dz*talpha;
1296 for(
int i = 0;
i < nbar; ++
i){
1297 double fi=
phi[
i]*dphi;
1300 physIACP->add(
new GeoTransform(
GeoTrf::Transform3D(GeoTrf::Translate3D(r0*cfi,r0*sfi,0.)*GeoTrf::RotateZ3D(fi))));
1301 physIACP->add(physIACAB);
1304 name = name0 +
"::Phidiv";
1305 for(
int i=0;
i<nofmodul;
i++){
1306 double fi=(
i+0.5)*moduldphi;
1307 physIAC->add(
new GeoIdentifierTag(
i));
1308 physIAC->add(
new GeoTransform(GeoTrf::RotateZ3D(fi)));
1309 physIAC->add(physIACP);
◆ middle_envelope()
GeoIntrusivePtr< GeoPhysVol > EMECSupportConstruction::middle_envelope |
( |
void |
| ) |
const |
|
private |
!!!
Definition at line 1316 of file EMECSupportConstruction.cxx.
1318 double dMechFocaltoWRP = (*m_DB_EmecGeometry)[0]->getDouble(
"Z1") *
Gaudi::Units::cm;
1319 double LArEMECHalfCrack = (*m_DB_EmecGeometry)[0]->getDouble(
"DCRACK") *
Gaudi::Units::cm;
1320 double LArTotalThickness = (*m_DB_EmecGeometry)[0]->getDouble(
"ETOT") *
Gaudi::Units::cm;
1322 double eta_mid = (*m_DB_EmecWheelParameters)[0]->getDouble(
"ETAEXT");
1324 double tanThetaMid = 2. *
exp(-eta_mid) / (1. -
exp(-2.*eta_mid));
1325 const double cosThetaMid = (1. -
exp(2.*-eta_mid)) / (1. +
exp(-2.*eta_mid));
1326 const double inv_cosThetaMid = 1. / cosThetaMid;
1328 double z0 = LArTotalThickness * 0.5 + dMechFocaltoWRP;
1333 double dz =
length * cosThetaMid * 0.5;
1334 double rmin0 = (
z0 - dz) * tanThetaMid - LArEMECHalfCrack + inv_cosThetaMid;
1335 double rmin1 = (
z0 + dz) * tanThetaMid - LArEMECHalfCrack + inv_cosThetaMid;
1337 GeoCons* shapeITB =
new GeoCons(rmin0, rmin1, rmin0 + rthickness, rmin1 + rthickness,
1340 GeoLogVol* logicalITB =
new GeoLogVol (
name,shapeITB,
m_Gten);
1341 GeoIntrusivePtr<GeoPhysVol> physITB =
new GeoPhysVol(logicalITB);
◆ msg() [1/2]
MsgStream & AthMessaging::msg |
( |
| ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 164 of file AthMessaging.h.
◆ msg() [2/2]
MsgStream & AthMessaging::msg |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
The standard message stream.
Returns a reference to the default message stream May not be invoked before sysInitialize() has been invoked.
Definition at line 179 of file AthMessaging.h.
180 {
return msg() << lvl; }
◆ msgLvl()
bool AthMessaging::msgLvl |
( |
const MSG::Level |
lvl | ) |
const |
|
inlineinherited |
Test the output level.
- Parameters
-
lvl | The message level to test against |
- Returns
- boolean Indicating if messages at given level will be printed
- Return values
-
true | Messages at level "lvl" will be printed |
Definition at line 151 of file AthMessaging.h.
◆ outer_envelope()
GeoIntrusivePtr< GeoPhysVol > EMECSupportConstruction::outer_envelope |
( |
void |
| ) |
const |
|
private |
Definition at line 1128 of file EMECSupportConstruction.cxx.
1131 std::string
id =
"OuterTransversalBars";
1137 GeoLogVol* logicalOTB =
new GeoLogVol(
name, shapeOTB,
m_Gten);
1138 GeoIntrusivePtr<GeoPhysVol> physOTB =
new GeoPhysVol(logicalOTB);
1140 id =
"TopIndexingRing";
1146 GeoLogVol* logicalTIR =
new GeoLogVol(
name, shapeTIR,
m_Alu);
1147 GeoIntrusivePtr<GeoPhysVol> physTIR =
new GeoPhysVol(logicalTIR);
1154 GeoLogVol* logicalTIRH =
new GeoLogVol(
name, shapeTIRH,
m_LAr);
1155 GeoIntrusivePtr<GeoPhysVol> physTIRH =
new GeoPhysVol(logicalTIRH);
1156 physTIR->add(physTIRH);
1158 id =
"WideStretchers";
1160 GeoPcon* shapeWS =
getPcon(
id);
1161 GeoLogVol* logicalWS =
new GeoLogVol(
name, shapeWS,
m_Alu);
1162 GeoIntrusivePtr<GeoPhysVol> physWS =
new GeoPhysVol(logicalWS);
1164 id =
"NarrowStretchers";
1166 GeoPcon* shapeNS =
getPcon(
id);
1167 GeoLogVol* logicalNS =
new GeoLogVol(
name, shapeNS,
m_Alu);
1168 GeoIntrusivePtr<GeoPhysVol> physNS =
new GeoPhysVol(logicalNS);
1170 id =
"OuterSupportMother";
1172 GeoPcon *motherShape =
getPcon(
id);
1173 GeoLogVol *motherLogical =
new GeoLogVol(
name, motherShape,
m_LAr);
1174 GeoIntrusivePtr<GeoPhysVol>motherPhysical=
new GeoPhysVol(motherLogical);
1176 motherPhysical->add(physTIR);
1177 motherPhysical->add(physOTB);
1179 const int number_of_stretchers = 8;
1181 motherPhysical->add(
new GeoIdentifierTag(0));
1182 motherPhysical->add(physNS);
1184 double dfi =
M_PI / number_of_stretchers;
1185 double dfiNS = shapeNS->getDPhi();
1186 motherPhysical->add(
new GeoIdentifierTag(1));
1187 motherPhysical->add(
new GeoTransform(GeoTrf::RotateZ3D(dfi - dfiNS*0.5)));
1188 motherPhysical->add(physNS);
1189 motherPhysical->add(
new GeoIdentifierTag(2));
1190 motherPhysical->add(
new GeoTransform(GeoTrf::RotateZ3D(-dfi + dfiNS*0.5)));
1191 motherPhysical->add(physNS);
1195 for(
int i = 0;
i < number_of_stretchers; ++
i, ++ copyno){
1196 double fiW =
i * dfi;
1197 motherPhysical->add(
new GeoIdentifierTag(copyno));
1198 motherPhysical->add(
new GeoTransform(GeoTrf::RotateZ3D(fiW)));
1199 motherPhysical->add(physWS);
1200 double fiN = (
i + 0.5) * dfi;
1201 motherPhysical->add(
new GeoIdentifierTag(copyno));
1202 motherPhysical->add(
new GeoTransform(GeoTrf::RotateZ3D(fiN)));
1203 motherPhysical->add(physNS);
1207 return motherPhysical;
◆ put_back_indexing_rings()
void EMECSupportConstruction::put_back_indexing_rings |
( |
GeoIntrusivePtr< GeoPhysVol > |
motherPhysical | ) |
const |
|
private |
Definition at line 1610 of file EMECSupportConstruction.cxx.
1617 std::string
id =
"BackIndexingRing";
1621 double z_hole = -ring_dz;
1630 GeoTubs *shapeBHIR =
new GeoTubs(r0 + ring_rmin, r0 + ring_rmax, ring_dz,
m_PhiStart,
m_PhiSize);
1631 GeoLogVol *logicalBHIR =
new GeoLogVol(
name, shapeBHIR,
m_Alu);
1632 GeoIntrusivePtr<GeoPhysVol>physBHIR =
new GeoPhysVol(logicalBHIR);
1633 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(
z0)));
1634 motherPhysical->add(physBHIR);
1639 GeoTubs *shapeBHIRG =
new GeoTubs(r0 + ring_rmin, r0 + ring_rmax, gten_dz,
m_PhiStart,
m_PhiSize);
1640 GeoLogVol *logicalBHIRG =
new GeoLogVol(
name, shapeBHIRG,
m_Gten);
1641 GeoIntrusivePtr<GeoPhysVol>physBHIRG =
new GeoPhysVol(logicalBHIRG);
1642 physBHIR->add(
new GeoTransform(GeoTrf::TranslateZ3D(ring_dz - gten_dz)));
1643 physBHIR->add(physBHIRG);
1646 GeoTubs* shapeBHIRH =
new GeoTubs(r0 + hole_rmin, r0 + hole_rmax, hole_dz,
m_PhiStart,
m_PhiSize);
1647 GeoLogVol* logicalBHIRH =
new GeoLogVol(
name, shapeBHIRH,
m_LAr);
1648 GeoIntrusivePtr<GeoPhysVol> physBHIRH =
new GeoPhysVol(logicalBHIRH);
1649 physBHIR->add(
new GeoTransform(GeoTrf::TranslateZ3D(z_hole + hole_dz)));
1650 physBHIR->add(physBHIRH);
1653 GeoTubs *shapeBLIR =
new GeoTubs(r1 + ring_rmin, r1 + ring_rmax, ring_dz,
m_PhiStart,
m_PhiSize);
1654 GeoLogVol *logicalBLIR =
new GeoLogVol(
name, shapeBLIR,
m_Alu);
1655 GeoIntrusivePtr<GeoPhysVol>physBLIR =
new GeoPhysVol(logicalBLIR);
1656 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(
z0)));
1657 motherPhysical->add(physBLIR);
1661 GeoTubs *shapeBLIRG =
new GeoTubs(r1 + ring_rmin, r1 + ring_rmax, gten_dz,
m_PhiStart,
m_PhiSize);
1662 GeoLogVol *logicalBLIRG =
new GeoLogVol(
name, shapeBLIRG,
m_Gten);
1663 GeoIntrusivePtr<GeoPhysVol>physBLIRG =
new GeoPhysVol(logicalBLIRG);
1664 physBLIR->add(
new GeoTransform(GeoTrf::TranslateZ3D(ring_dz - gten_dz)));
1665 physBLIR->add(physBLIRG);
1668 GeoTubs *shapeBLIRH =
new GeoTubs(r1 + hole_rmin, r1 + hole_rmax, hole_dz,
m_PhiStart,
m_PhiSize);
1669 GeoLogVol *logicalBLIRH =
new GeoLogVol(
name, shapeBLIRH,
m_LAr);
1670 GeoIntrusivePtr<GeoPhysVol>physBLIRH =
new GeoPhysVol(logicalBLIRH);
1671 physBLIR->add(
new GeoTransform(GeoTrf::TranslateZ3D(z_hole + hole_dz)));
1672 physBLIR->add(physBLIRH);
◆ put_back_inner_barettes()
void EMECSupportConstruction::put_back_inner_barettes |
( |
GeoIntrusivePtr< GeoPhysVol > |
motherPhysical | ) |
const |
|
private |
Definition at line 1004 of file EMECSupportConstruction.cxx.
1006 const double coldContraction=(*m_DB_ColdContraction)[0]->getDouble(
"ABSORBERCONTRACTION");
1007 const double electrodeInvColdContraction=(*m_DB_ColdContraction)[0]->getDouble(
"ELECTRODEINVCONTRACTION");
1008 const double leadThicknessInner=(*m_DB_EmecFan)[0]->getDouble(
"LEADTHICKNESSINNER")*
Gaudi::Units::mm;
1009 const double steelThickness=(*m_DB_EmecFan)[0]->getDouble(
"STEELTHICKNESS")*
Gaudi::Units::mm;
1010 const double glueThickness=(*m_DB_EmecFan)[0]->getDouble(
"GLUETHICKNESS")*
Gaudi::Units::mm;
1011 const double electrodeTotalThickness=(*m_DB_EmecFan)[0]->getDouble(
"ELECTRODETOTALTHICKNESS")*
Gaudi::Units::mm;
1013 const double innerAbsorberDy=(leadThicknessInner/2+steelThickness+glueThickness)*coldContraction;
1014 const double electrodeDy=electrodeTotalThickness/2/electrodeInvColdContraction;
1018 std::string
id =
"BackInnerBarrettes";
1029 GeoLogVol *logicalBIB =
new GeoLogVol(
name, shapeBIB,
m_LAr);
1030 GeoIntrusivePtr<GeoPhysVol>physBIB =
new GeoPhysVol(logicalBIB);
1031 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(zposBIB)));
1032 motherPhysical->add(physBIB);
1034 const int number_of_modules = 8;
1036 const int nofabs = (*m_DB_EmecWheelParameters)[0]->getInt(
"NABS");
1037 const int nofdiv = nofabs / number_of_modules;
1041 GeoTubs *shapeBIBMP =
new GeoTubs(rminBIB, rmaxBIB, dzBIB, -dfi/4., dfi);
1042 GeoLogVol *logicalBIBMP =
new GeoLogVol(
name, shapeBIBMP,
m_LAr);
1043 GeoIntrusivePtr<GeoPhysVol>physBIBMP =
new GeoPhysVol(logicalBIBMP);
1046 id =
"BackInnerBarrette::Abs";
1052 assert(rmn+
dr>rminBIB && rmn+
dr+
dx*2.<rmaxBIB);
1053 const double r0A = rmn +
dr +
dx;
1054 GeoBox *shapeBIBA =
new GeoBox(
dx, innerAbsorberDy, dzBIB);
1056 GeoIntrusivePtr<GeoPhysVol>physBIBA =
new GeoPhysVol(logicalBIBA);
1057 physBIBMP->add(
new GeoTransform(GeoTrf::TranslateX3D(r0A)));
1058 physBIBMP->add(physBIBA);
1060 id =
"BackInnerBarrette::Ele";
1064 assert(rmn +
dr > rminBIB && rmn +
dr +
dx * 2. < rmaxBIB);
1066 const double r0E = rmn +
dr +
dx;
1067 double y0 = r0E *
sin(dfi * 0.5);
1068 double x0 = r0E *
cos(dfi * 0.5);
1069 GeoBox *shapeBIBE =
new GeoBox(
dx, electrodeDy, dzBIB);
1071 GeoIntrusivePtr<GeoPhysVol>physBIBE =
new GeoPhysVol(logicalBIBE);
1072 physBIBMP->add(
new GeoTransform(
GeoTrf::Transform3D(GeoTrf::Translate3D(x0, y0, 0.)*GeoTrf::RotateZ3D(dfi*0.5))));
1073 physBIBMP->add(physBIBE);
1089 for(
int i = 0;
i < nofdiv - 1; ++
i){
1091 physBIB->add(
new GeoIdentifierTag(
i));
1092 physBIB->add(
new GeoTransform(GeoTrf::RotateZ3D(fi)));
1093 physBIB->add(physBIBMP);
1096 double fi =
m_PhiStart + dfi/2.+ (nofdiv - 1) * dfi;
1099 physBIB->add(
new GeoIdentifierTag(nofdiv - 1));
1100 physBIB->add(
new GeoTransform(
GeoTrf::Transform3D(GeoTrf::Translate3D(x0, y0, 0.)*GeoTrf::RotateZ3D(fi))));
1101 physBIB->add(physBIBA);
1106 GeoTubs *shapeBIBM =
new GeoTubs(rminBIB, rmaxBIB, dzBIB, -dfi/4., moduldfi);
1107 GeoLogVol *logicalBIBM =
new GeoLogVol(
name, shapeBIBM,
m_LAr);
1108 GeoIntrusivePtr<GeoPhysVol>physBIBM =
new GeoPhysVol(logicalBIBM);
1111 for(
int i = 0;
i < nofdiv; ++
i){
1112 double fi = dfi *
i;
1113 physBIBM->add(
new GeoIdentifierTag(
i));
1114 physBIBM->add(
new GeoTransform(GeoTrf::RotateZ3D(fi)));
1115 physBIBM->add(physBIBMP);
1119 for(
int i = 0;
i < number_of_modules; ++
i){
1120 double fi = dfi*0.5 +
i * moduldfi;
1121 physBIB->add(
new GeoIdentifierTag(
i));
1122 physBIB->add(
new GeoTransform(GeoTrf::RotateZ3D(fi)));
1123 physBIB->add(physBIBM);
◆ put_back_inner_longbar()
void EMECSupportConstruction::put_back_inner_longbar |
( |
GeoIntrusivePtr< GeoPhysVol > |
motherPhysical | ) |
const |
|
private |
Definition at line 1504 of file EMECSupportConstruction.cxx.
1506 std::string
id =
"BackInnerLongBar";
1515 GeoLogVol *logicalBILB =
new GeoLogVol(
name, shapeBILB,
m_Gten);
1516 GeoIntrusivePtr<GeoPhysVol>physBILB =
new GeoPhysVol(logicalBILB);
1517 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(
z0)));
1518 motherPhysical->add(physBILB);
◆ put_back_inner_ring()
void EMECSupportConstruction::put_back_inner_ring |
( |
GeoIntrusivePtr< GeoPhysVol > |
motherPhysical | ) |
const |
|
private |
Definition at line 1477 of file EMECSupportConstruction.cxx.
1479 std::string
id =
"BackInnerRing";
1482 GeoPcon *shapeBIR =
getPcon(
id);
1483 GeoLogVol *logicalBIR =
new GeoLogVol(
name, shapeBIR,
m_Alu);
1484 GeoIntrusivePtr<GeoPhysVol>physBIR =
new GeoPhysVol(logicalBIR);
1485 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(
z0)));
1486 motherPhysical->add(physBIR);
1488 id =
"BackInnerRing::Hole";
1490 GeoPcon *shapeBIRH =
getPcon(
id);
1491 GeoLogVol *logicalBIRH =
new GeoLogVol(
name, shapeBIRH,
m_LAr);
1492 GeoIntrusivePtr<GeoPhysVol>physBIRH =
new GeoPhysVol(logicalBIRH);
1493 physBIR->add(physBIRH);
1496 id =
"BackInnerRing::GTen";
1498 GeoPcon *shapeBIRG =
getPcon(
id);
1499 GeoLogVol *logicalBIRG =
new GeoLogVol(
name, shapeBIRG,
m_Gten);
1500 GeoIntrusivePtr<GeoPhysVol>physBIRG =
new GeoPhysVol(logicalBIRG);
1501 physBIRH->add(physBIRG);
◆ put_back_middle_ring()
void EMECSupportConstruction::put_back_middle_ring |
( |
GeoIntrusivePtr< GeoPhysVol > |
motherPhysical | ) |
const |
|
private |
Definition at line 1435 of file EMECSupportConstruction.cxx.
1437 std::string
id =
"BackMiddleRing";
1440 GeoPcon *shapeBMR =
getPcon(
id);
1441 GeoLogVol *logicalBMR =
new GeoLogVol(
name, shapeBMR,
m_Alu);
1442 GeoIntrusivePtr<GeoPhysVol>physBMR =
new GeoPhysVol(logicalBMR);
1443 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(
z0)));
1444 motherPhysical->add(physBMR);
1446 id =
"BackMiddleRing::LowerHole";
1448 GeoPcon *shapeBMRLH =
getPcon(
id);
1449 GeoLogVol *logicalBMRLH =
new GeoLogVol(
name, shapeBMRLH,
m_LAr);
1450 GeoIntrusivePtr<GeoPhysVol>physBMRLH =
new GeoPhysVol(logicalBMRLH);
1451 physBMR->add( physBMRLH);
1454 id =
"BackMiddleRing::LowerGTen";
1456 GeoPcon *shapeBMRLG =
getPcon(
id);
1457 GeoLogVol *logicalBMRLG =
new GeoLogVol(
name, shapeBMRLG,
m_Gten);
1458 GeoIntrusivePtr<GeoPhysVol>physBMRLG =
new GeoPhysVol(logicalBMRLG);
1459 physBMRLH->add(physBMRLG);
1461 id =
"BackMiddleRing::UpperHole";
1463 GeoPcon *shapeBMRUH =
getPcon(
id);
1464 GeoLogVol *logicalBMRUH =
new GeoLogVol(
name, shapeBMRUH,
m_LAr);
1465 GeoIntrusivePtr<GeoPhysVol>physBMRUH =
new GeoPhysVol(logicalBMRUH);
1466 physBMR->add( physBMRUH);
1469 id =
"BackMiddleRing::UpperGTen";
1471 GeoPcon *shapeBMRUG =
getPcon(
id);
1472 GeoLogVol *logicalBMRUG =
new GeoLogVol(
name, shapeBMRUG,
m_Gten);
1473 GeoIntrusivePtr<GeoPhysVol>physBMRUG =
new GeoPhysVol(logicalBMRUG);
1474 physBMRUH->add(physBMRUG);
◆ put_back_outer_barettes()
void EMECSupportConstruction::put_back_outer_barettes |
( |
GeoIntrusivePtr< GeoPhysVol > |
motherPhysical | ) |
const |
|
private |
Definition at line 892 of file EMECSupportConstruction.cxx.
895 const double coldContraction=(*m_DB_ColdContraction)[0]->getDouble(
"ABSORBERCONTRACTION");
896 const double electrodeInvColdContraction=(*m_DB_ColdContraction)[0]->getDouble(
"ELECTRODEINVCONTRACTION");
897 const double leadThicknessOuter=(*m_DB_EmecFan)[0]->getDouble(
"LEADTHICKNESSOUTER")*
Gaudi::Units::mm;
898 const double steelThickness=(*m_DB_EmecFan)[0]->getDouble(
"STEELTHICKNESS")*
Gaudi::Units::mm;
899 const double glueThickness=(*m_DB_EmecFan)[0]->getDouble(
"GLUETHICKNESS")*
Gaudi::Units::mm;
900 const double electrodeTotalThickness=(*m_DB_EmecFan)[0]->getDouble(
"ELECTRODETOTALTHICKNESS")*
Gaudi::Units::mm;
902 const double outerAbsorberDy=(leadThicknessOuter/2+steelThickness+glueThickness)*coldContraction;
903 const double electrodeDy=electrodeTotalThickness/2/electrodeInvColdContraction;
905 const std::string
id =
"BackOuterBarrettes";
912 std::string
name = baseName +
id;
919 GeoLogVol *logicalBOB =
new GeoLogVol(
name, shapeBOB,
m_LAr);
920 GeoIntrusivePtr<GeoPhysVol>physBOB =
new GeoPhysVol(logicalBOB);
921 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(zposBOB)));
922 motherPhysical->add(physBOB);
924 const int number_of_modules = 8;
926 int nofabs = (*m_DB_EmecWheelParameters)[1]->getInt(
"NABS");
927 int nofdiv = nofabs / number_of_modules;
930 name = baseName +
"BackOuterBarrette::Module::Phidiv";
931 GeoTubs *shapeBOBMP =
new GeoTubs(rminBOB, rmaxBOB, dzBOB, -dfi/4., dfi);
932 GeoLogVol *logicalBOBMP =
new GeoLogVol(
name, shapeBOBMP,
m_LAr);
933 GeoIntrusivePtr<GeoPhysVol>physBOBMP =
new GeoPhysVol(logicalBOBMP);
935 name = baseName +
"BackOuterBarrette::Abs";
939 assert(rmn +
dr > rminBOB && rmn +
dr +
dx * 2 < rmaxBOB);
941 const double r0A = rmn +
dr +
dx;
942 GeoBox *shapeBOBA =
new GeoBox(
dx, outerAbsorberDy, dzBOB);
944 GeoIntrusivePtr<GeoPhysVol>physBOBA =
new GeoPhysVol(logicalBOBA);
945 physBOBMP->add(
new GeoTransform(GeoTrf::TranslateX3D(r0A)));
946 physBOBMP->add(physBOBA);
948 name = baseName +
"BackOuterBarrette::Ele";
951 assert(rmn +
dr > rminBOB && rmn +
dr +
dx*2 < rmaxBOB);
953 double r0E = rmn +
dr +
dx;
954 double y0 = r0E *
sin(dfi/2.);
955 double x0 = r0E *
cos(dfi/2.);
956 GeoBox *shapeBOBE =
new GeoBox(
dx, electrodeDy, dzBOB);
958 GeoIntrusivePtr<GeoPhysVol>physBOBE =
new GeoPhysVol(logicalBOBE);
959 physBOBMP->add(
new GeoTransform(
GeoTrf::Transform3D(GeoTrf::Translate3D(x0,y0,0.)*GeoTrf::RotateZ3D(dfi/2.))));
960 physBOBMP->add(physBOBE);
964 name = baseName +
"BackOuterBarrette::Module::Phidiv";
965 for(
int i = 0;
i < nofdiv - 1; ++
i){
967 physBOB->add(
new GeoIdentifierTag(
i));
968 physBOB->add(
new GeoTransform(GeoTrf::RotateZ3D(fi)));
969 physBOB->add(physBOBMP);
971 name = baseName +
"BackOuterBarrette::Abs";
972 double fi =
m_PhiStart + dfi/2.+ (nofdiv - 1) * dfi;
975 physBOB->add(
new GeoIdentifierTag(nofdiv - 1));
976 physBOB->add(
new GeoTransform(
GeoTrf::Transform3D(GeoTrf::Translate3D(x0,y0,0.)*GeoTrf::RotateZ3D(fi))));
977 physBOB->add(physBOBA);
982 GeoTubs *shapeBOBM =
new GeoTubs(rminBOB, rmaxBOB, dzBOB, -dfi/4.,moduldfi);
983 GeoLogVol *logicalBOBM =
new GeoLogVol(
name, shapeBOBM,
m_LAr);
984 GeoIntrusivePtr<GeoPhysVol>physBOBM =
new GeoPhysVol(logicalBOBM);
986 name = baseName +
"BackOuterBarrette::Module::Phidiv";
987 for(
int i = 0;
i < nofdiv; ++
i){
989 physBOBM->add(
new GeoIdentifierTag(
i));
990 physBOBM->add(
new GeoTransform(GeoTrf::RotateZ3D(fi)));
991 physBOBM->add(physBOBMP);
994 name = baseName +
"BackOuterBarrette::Module";
995 for(
int i = 0;
i < number_of_modules; ++
i){
996 double fi = dfi/2.+
i * moduldfi;
997 physBOB->add(
new GeoIdentifierTag(
i));
998 physBOB->add(
new GeoTransform(GeoTrf::RotateZ3D(fi)));
999 physBOB->add(physBOBM);
◆ put_back_outer_longbar()
void EMECSupportConstruction::put_back_outer_longbar |
( |
GeoIntrusivePtr< GeoPhysVol > |
motherPhysical | ) |
const |
|
private |
Definition at line 1687 of file EMECSupportConstruction.cxx.
1689 std::string
id =
"BackOuterLongBar";
1692 GeoPcon *shapeBOLB =
getPcon(
id);
1693 GeoLogVol *logicalBOLB =
new GeoLogVol(
name, shapeBOLB,
m_Gten);
1694 GeoIntrusivePtr<GeoPhysVol>physBOLB =
new GeoPhysVol(logicalBOLB);
1695 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(
z0)));
1696 motherPhysical->add(physBOLB);
◆ put_back_outer_ring()
void EMECSupportConstruction::put_back_outer_ring |
( |
GeoIntrusivePtr< GeoPhysVol > |
motherPhysical | ) |
const |
|
private |
Definition at line 1675 of file EMECSupportConstruction.cxx.
1677 std::string
id =
"BackOuterRing";
1680 GeoPcon *shapeBOR =
getPcon(
id);
1681 GeoLogVol *logicalBOR =
new GeoLogVol(
name, shapeBOR,
m_Alu);
1682 GeoIntrusivePtr<GeoPhysVol>physBOR =
new GeoPhysVol(logicalBOR);
1683 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(
z0)));
1684 motherPhysical->add(physBOR);
◆ put_front_indexing_rings()
void EMECSupportConstruction::put_front_indexing_rings |
( |
GeoIntrusivePtr< GeoPhysVol > |
motherPhysical | ) |
const |
|
private |
Definition at line 1545 of file EMECSupportConstruction.cxx.
1552 std::string
id =
"FrontIndexingRing";
1556 double z_hole = -ring_dz;
1565 GeoTubs *shapeFHIR =
new GeoTubs(r0 + ring_rmin, r0 + ring_rmax, ring_dz,
m_PhiStart,
m_PhiSize);
1566 GeoLogVol *logicalFHIR =
new GeoLogVol(
name, shapeFHIR,
m_Alu);
1567 GeoIntrusivePtr<GeoPhysVol>physFHIR =
new GeoPhysVol(logicalFHIR);
1568 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(
z0)));
1569 motherPhysical->add(physFHIR);
1572 GeoTubs *shapeFHIRH =
new GeoTubs(r0 + hole_rmin, r0 + hole_rmax, hole_dz,
m_PhiStart,
m_PhiSize);
1573 GeoLogVol *logicalFHIRH =
new GeoLogVol(
name, shapeFHIRH,
m_LAr);
1574 GeoIntrusivePtr<GeoPhysVol>physFHIRH =
new GeoPhysVol(logicalFHIRH);
1575 physFHIR->add(
new GeoTransform(GeoTrf::TranslateZ3D(z_hole + hole_dz)));
1576 physFHIR->add(physFHIRH);
1581 GeoTubs *shapeFHIRG =
new GeoTubs(r0 + ring_rmin, r0 + ring_rmax, gten_dz,
m_PhiStart,
m_PhiSize);
1582 GeoLogVol *logicalFHIRG =
new GeoLogVol(
name, shapeFHIRG,
m_Gten);
1583 GeoIntrusivePtr<GeoPhysVol>physFHIRG =
new GeoPhysVol(logicalFHIRG);
1584 physFHIR->add(
new GeoTransform(GeoTrf::TranslateZ3D(ring_dz - gten_dz)));
1585 physFHIR->add(physFHIRG);
1588 GeoTubs *shapeFLIR =
new GeoTubs(r1 + ring_rmin, r1 + ring_rmax, ring_dz,
m_PhiStart,
m_PhiSize);
1589 GeoLogVol *logicalFLIR =
new GeoLogVol(
name, shapeFLIR,
m_Alu);
1590 GeoIntrusivePtr<GeoPhysVol>physFLIR =
new GeoPhysVol(logicalFLIR);
1591 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(
z0)));
1592 motherPhysical->add(physFLIR);
1595 GeoTubs *shapeFLIRH =
new GeoTubs(r1 + hole_rmin, r1 + hole_rmax, hole_dz,
m_PhiStart,
m_PhiSize);
1596 GeoLogVol *logicalFLIRH =
new GeoLogVol(
name, shapeFLIRH,
m_LAr);
1597 GeoIntrusivePtr<GeoPhysVol>physFLIRH =
new GeoPhysVol(logicalFLIRH);
1598 physFLIR->add(
new GeoTransform(GeoTrf::TranslateZ3D(z_hole + hole_dz)));
1599 physFLIR->add(physFLIRH);
1603 GeoTubs *shapeFLIRG =
new GeoTubs(r1 + ring_rmin, r1 + ring_rmax, gten_dz,
m_PhiStart,
m_PhiSize);
1604 GeoLogVol *logicalFLIRG =
new GeoLogVol(
name, shapeFLIRG,
m_Gten);
1605 GeoIntrusivePtr<GeoPhysVol>physFLIRG =
new GeoPhysVol(logicalFLIRG);
1606 physFLIR->add(
new GeoTransform(GeoTrf::TranslateZ3D(ring_dz - gten_dz)));
1607 physFLIR->add(physFLIRG);
◆ put_front_inner_barettes()
void EMECSupportConstruction::put_front_inner_barettes |
( |
GeoIntrusivePtr< GeoPhysVol > |
motherPhysical | ) |
const |
|
private |
Definition at line 784 of file EMECSupportConstruction.cxx.
787 const double coldContraction=(*m_DB_ColdContraction)[0]->getDouble(
"ABSORBERCONTRACTION");
788 const double electrodeInvColdContraction=(*m_DB_ColdContraction)[0]->getDouble(
"ELECTRODEINVCONTRACTION");
789 const double leadThicknessInner=(*m_DB_EmecFan)[0]->getDouble(
"LEADTHICKNESSINNER")*
Gaudi::Units::mm;
790 const double steelThickness=(*m_DB_EmecFan)[0]->getDouble(
"STEELTHICKNESS")*
Gaudi::Units::mm;
791 const double glueThickness=(*m_DB_EmecFan)[0]->getDouble(
"GLUETHICKNESS")*
Gaudi::Units::mm;
792 const double electrodeTotalThickness=(*m_DB_EmecFan)[0]->getDouble(
"ELECTRODETOTALTHICKNESS")*
Gaudi::Units::mm;
794 const double innerAbsorberDy=(leadThicknessInner/2+steelThickness+glueThickness)*coldContraction;
795 const double electrodeDy=electrodeTotalThickness/2/electrodeInvColdContraction;
797 std::string
id =
"FrontInnerBarrettes";
808 GeoLogVol *logicalFIB =
new GeoLogVol(
name, shapeFIB,
m_LAr);
809 GeoIntrusivePtr<GeoPhysVol>physFIB =
new GeoPhysVol(logicalFIB);
810 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(zposFIB)));
811 motherPhysical->add(physFIB);
813 const int number_of_modules = 8;
815 const int nofabs = (*m_DB_EmecWheelParameters)[0]->getInt(
"NABS");
816 const int nofdiv = nofabs / number_of_modules;
820 GeoTubs *shapeFIBMP =
new GeoTubs(rminFIB,rmaxFIB,dzFIB, -dfi/4., dfi);
821 GeoLogVol *logicalFIBMP =
new GeoLogVol(
name, shapeFIBMP,
m_LAr);
822 GeoIntrusivePtr<GeoPhysVol>physFIBMP =
new GeoPhysVol(logicalFIBMP);
828 assert(rmn +
dr > rminFIB && rmn +
dr +
dx*2 < rmaxFIB);
830 const double r0A = rmn +
dr +
dx;
831 GeoBox *shapeFIBA =
new GeoBox(
dx, innerAbsorberDy, dzFIB);
833 GeoIntrusivePtr<GeoPhysVol>physFIBA =
new GeoPhysVol(logicalFIBA);
834 physFIBMP->add(
new GeoTransform(GeoTrf::TranslateX3D(r0A)));
835 physFIBMP->add(physFIBA);
840 assert(rmn +
dr > rminFIB && rmn +
dr +
dx*2 < rmaxFIB);
842 const double r0E = rmn +
dr +
dx;
843 double x0 = r0E *
cos(dfi/2.);
844 double y0 = r0E *
sin(dfi/2.);
845 GeoBox *shapeFIBE =
new GeoBox(
dx, electrodeDy, dzFIB);
847 GeoIntrusivePtr<GeoPhysVol>physFIBE =
new GeoPhysVol(logicalFIBE);
848 physFIBMP->add(
new GeoTransform(
GeoTrf::Transform3D(GeoTrf::Translate3D(x0,y0,0.)*GeoTrf::RotateZ3D(dfi/2.))));
849 physFIBMP->add(physFIBE);
853 for(
int i = 0;
i < nofdiv - 1; ++
i){
855 physFIB->add(
new GeoIdentifierTag(
i));
856 physFIB->add(
new GeoTransform(GeoTrf::RotateZ3D(fi)));
857 physFIB->add(physFIBMP);
860 double fi =
m_PhiStart + dfi/2.+ (nofdiv-1) * dfi;
863 physFIB->add(
new GeoIdentifierTag(nofdiv-1));
864 physFIB->add(
new GeoTransform(
GeoTrf::Transform3D(GeoTrf::Translate3D(x0,y0,0.)*GeoTrf::RotateZ3D(fi))));
865 physFIB->add(physFIBA);
870 GeoTubs *shapeFIBM =
new GeoTubs(rminFIB, rmaxFIB, dzFIB, -dfi/4., moduldfi);
871 GeoLogVol *logicalFIBM =
new GeoLogVol(
name, shapeFIBM,
m_LAr);
872 GeoIntrusivePtr<GeoPhysVol>physFIBM =
new GeoPhysVol(logicalFIBM);
874 for(
int i = 0;
i < nofdiv; ++
i){
876 physFIBM->add(
new GeoIdentifierTag(
i));
877 physFIBM->add(
new GeoTransform(GeoTrf::RotateZ3D(fi)));
878 physFIBM->add(physFIBMP);
882 for(
int i = 0;
i < number_of_modules; ++
i){
883 double fi = dfi/2.+
i * moduldfi;
884 physFIB->add(
new GeoIdentifierTag(
i));
885 physFIB->add(
new GeoTransform(GeoTrf::RotateZ3D(fi)));
886 physFIB->add(physFIBM);
◆ put_front_inner_longbar()
void EMECSupportConstruction::put_front_inner_longbar |
( |
GeoIntrusivePtr< GeoPhysVol > |
motherPhysical | ) |
const |
|
private |
Definition at line 1417 of file EMECSupportConstruction.cxx.
1420 std::string
id =
"FrontInnerLongBar";
1429 GeoLogVol *logicalFILB =
new GeoLogVol(
name,shapeFILB,
m_Gten);
1430 GeoIntrusivePtr<GeoPhysVol>physFILB =
new GeoPhysVol(logicalFILB);
1431 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(
z0)));
1432 motherPhysical->add(physFILB);
◆ put_front_inner_ring()
void EMECSupportConstruction::put_front_inner_ring |
( |
GeoIntrusivePtr< GeoPhysVol > |
motherPhysical | ) |
const |
|
private |
Definition at line 1390 of file EMECSupportConstruction.cxx.
1392 std::string
id =
"FrontInnerRing";
1395 GeoPcon *shapeFIR =
getPcon(
id);
1396 GeoLogVol *logicalFIR =
new GeoLogVol(
name, shapeFIR,
m_Alu);
1397 GeoIntrusivePtr<GeoPhysVol>physFIR =
new GeoPhysVol(logicalFIR);
1398 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(
z0)));
1399 motherPhysical->add(physFIR);
1401 id =
"FrontInnerRing::Hole";
1403 GeoPcon *shapeFIRH =
getPcon(
id);
1404 GeoLogVol *logicalFIRH =
new GeoLogVol(
name, shapeFIRH,
m_LAr);
1405 GeoIntrusivePtr<GeoPhysVol>physFIRH =
new GeoPhysVol(logicalFIRH);
1406 physFIR->add(physFIRH);
1409 id =
"FrontInnerRing::GTen";
1411 GeoPcon *shapeFIRG =
getPcon(
id);
1412 GeoLogVol *logicalFIRG =
new GeoLogVol(
name, shapeFIRG,
m_Gten);
1413 GeoIntrusivePtr<GeoPhysVol>physFIRG =
new GeoPhysVol(logicalFIRG);
1414 physFIRH->add(physFIRG);
◆ put_front_middle_ring()
void EMECSupportConstruction::put_front_middle_ring |
( |
GeoIntrusivePtr< GeoPhysVol > |
motherPhysical | ) |
const |
|
private |
Definition at line 1346 of file EMECSupportConstruction.cxx.
1349 std::string
id =
"FrontMiddleRing";
1353 GeoPcon *shapeFMR =
getPcon(
id);
1355 GeoIntrusivePtr<GeoPhysVol>physFMR =
new GeoPhysVol(logicalFMR);
1356 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(
z0)));
1357 motherPhysical->add(physFMR);
1359 id =
"FrontMiddleRing::LowerHole";
1361 GeoPcon *shapeFMRLH =
getPcon(
id);
1362 GeoLogVol *logicalFMRLH =
new GeoLogVol(
name, shapeFMRLH,
m_LAr);
1363 GeoIntrusivePtr<GeoPhysVol>physFMRLH =
new GeoPhysVol(logicalFMRLH);
1364 physFMR->add(physFMRLH);
1367 id =
"FrontMiddleRing::LowerGTen";
1369 GeoPcon *shapeFMRLG =
getPcon(
id);
1370 GeoLogVol *logicalFMRLG =
new GeoLogVol(
name, shapeFMRLG,
m_Gten);
1371 GeoIntrusivePtr<GeoPhysVol>physFMRLG =
new GeoPhysVol(logicalFMRLG);
1372 physFMRLH->add(physFMRLG);
1374 id =
"FrontMiddleRing::UpperHole";
1376 GeoPcon *shapeFMRUH =
getPcon(
id);
1377 GeoLogVol *logicalFMRUH =
new GeoLogVol(
name, shapeFMRUH,
m_LAr);
1378 GeoIntrusivePtr<GeoPhysVol>physFMRUH =
new GeoPhysVol(logicalFMRUH);
1379 physFMR->add(physFMRUH);
1382 id =
"FrontMiddleRing::UpperGTen";
1384 GeoPcon *shapeFMRUG =
getPcon(
id);
1385 GeoLogVol *logicalFMRUG =
new GeoLogVol(
name, shapeFMRUG,
m_Gten);
1386 GeoIntrusivePtr<GeoPhysVol>physFMRUG =
new GeoPhysVol(logicalFMRUG);
1387 physFMRUH->add(physFMRUG);
◆ put_front_outer_barettes()
void EMECSupportConstruction::put_front_outer_barettes |
( |
GeoIntrusivePtr< GeoPhysVol > |
motherPhysical | ) |
const |
|
private |
Definition at line 676 of file EMECSupportConstruction.cxx.
679 const double coldContraction=(*m_DB_ColdContraction)[0]->getDouble(
"ABSORBERCONTRACTION");
680 const double electrodeInvColdContraction=(*m_DB_ColdContraction)[0]->getDouble(
"ELECTRODEINVCONTRACTION");
681 const double leadThicknessOuter=(*m_DB_EmecFan)[0]->getDouble(
"LEADTHICKNESSOUTER")*
Gaudi::Units::mm;
682 const double steelThickness=(*m_DB_EmecFan)[0]->getDouble(
"STEELTHICKNESS")*
Gaudi::Units::mm;
683 const double glueThickness=(*m_DB_EmecFan)[0]->getDouble(
"GLUETHICKNESS")*
Gaudi::Units::mm;
684 const double electrodeTotalThickness=(*m_DB_EmecFan)[0]->getDouble(
"ELECTRODETOTALTHICKNESS")*
Gaudi::Units::mm;
686 const double outerAbsorberDy=(leadThicknessOuter/2+steelThickness+glueThickness)*coldContraction;
687 const double electrodeDy=electrodeTotalThickness/2/electrodeInvColdContraction;
689 std::string
id =
"FrontOuterBarrettes";
699 GeoLogVol *logicalFOB =
new GeoLogVol(
name, shapeFOB,
m_LAr);
700 GeoIntrusivePtr<GeoPhysVol>physFOB =
new GeoPhysVol(logicalFOB);
701 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(zposFOB)));
702 motherPhysical->add(physFOB);
704 const int number_of_modules = 8;
706 const int nofabs = (*m_DB_EmecWheelParameters)[1]->getInt(
"NABS");
707 const int nofdiv = nofabs / number_of_modules;
711 GeoTubs *shapeFOBMP =
new GeoTubs(rminFOB, rmaxFOB, dzFOB, -dfi/4., dfi);
712 GeoLogVol *logicalFOBMP =
new GeoLogVol(
name, shapeFOBMP,
m_LAr);
713 GeoIntrusivePtr<GeoPhysVol>physFOBMP =
new GeoPhysVol(logicalFOBMP);
720 assert(rmn +
dr > rminFOB && rmn +
dr +
dx*2 < rmaxFOB);
722 const double r0A = rmn +
dr +
dx;
723 GeoBox *shapeFOBA =
new GeoBox(
dx, outerAbsorberDy, dzFOB);
725 GeoIntrusivePtr<GeoPhysVol>physFOBA =
new GeoPhysVol(logicalFOBA);
726 physFOBMP->add(
new GeoTransform(GeoTrf::TranslateX3D(r0A)));
727 physFOBMP->add(physFOBA);
732 assert(rmn +
dr > rminFOB && rmn +
dr +
dx*2 < rmaxFOB);
734 const double r0E = rmn +
dr +
dx;
735 double x0 = r0E *
cos(dfi/2.);
736 double y0 = r0E *
sin(dfi/2.);
737 GeoBox *shapeFOBE =
new GeoBox(
dx, electrodeDy, dzFOB);
739 GeoIntrusivePtr<GeoPhysVol>physFOBE =
new GeoPhysVol(logicalFOBE);
740 physFOBMP->add(
new GeoTransform(
GeoTrf::Transform3D(GeoTrf::Translate3D(x0,y0,0.)*GeoTrf::RotateZ3D(dfi/2.))));
741 physFOBMP->add(physFOBE);
745 for(
int i = 0;
i < nofdiv - 1; ++
i){
747 physFOB->add(
new GeoIdentifierTag(
i));
748 physFOB->add(
new GeoTransform(GeoTrf::RotateZ3D(fi)));
749 physFOB->add(physFOBMP);
752 double fi =
m_PhiStart + dfi/2.+ (nofdiv-1) * dfi;
755 physFOB->add(
new GeoIdentifierTag(nofdiv-1));
756 physFOB->add(
new GeoTransform(
GeoTrf::Transform3D(GeoTrf::Translate3D(x0,y0,0.)*GeoTrf::RotateZ3D(fi))));
757 physFOB->add(physFOBA);
762 GeoTubs *shapeFOBM =
new GeoTubs(rminFOB, rmaxFOB, dzFOB, -dfi/4., moduldfi);
763 GeoLogVol *logicalFOBM =
new GeoLogVol(
name, shapeFOBM,
m_LAr);
764 GeoIntrusivePtr<GeoPhysVol>physFOBM =
new GeoPhysVol(logicalFOBM);
767 for(
int i = 0;
i < nofdiv; ++
i){
769 physFOBM->add(
new GeoIdentifierTag(
i));
770 physFOBM->add(
new GeoTransform(GeoTrf::RotateZ3D(fi)));
771 physFOBM->add(physFOBMP);
775 for(
int i = 0;
i < number_of_modules; ++
i){
776 double fi = dfi/2.+
i * moduldfi;
777 physFOB->add(
new GeoIdentifierTag(
i));
778 physFOB->add(
new GeoTransform(GeoTrf::RotateZ3D(fi)));
779 physFOB->add(physFOBM);
◆ put_front_outer_electronics()
void EMECSupportConstruction::put_front_outer_electronics |
( |
GeoIntrusivePtr< GeoPhysVol > |
motherPhysical | ) |
const |
|
private |
Definition at line 1757 of file EMECSupportConstruction.cxx.
1765 std::string
id =
"FrontBoard";
1767 std::string
idx =
id +
"I";
1775 double phi_start = -0.5 * phi_size;
1776 GeoTubs *bi_shape =
new GeoTubs(rmin, rmax, dz_boards, phi_start, phi_size);
1777 GeoLogVol *bi_l =
new GeoLogVol(
name, bi_shape,
m_Gten);
1778 GeoIntrusivePtr<GeoPhysVol>bi_phys =
new GeoPhysVol(bi_l);
1786 GeoTubs *bm_shape =
new GeoTubs(rmin, rmax, dz_boards, phi_start, phi_size);
1787 GeoLogVol *bm_l =
new GeoLogVol(
name, bm_shape,
m_Gten);
1788 GeoIntrusivePtr<GeoPhysVol>bm_phys =
new GeoPhysVol(bm_l);
1795 GeoTubs *bo_shape =
new GeoTubs(rmin, rmax, dz_boards, phi_start, phi_size);
1796 GeoLogVol *bo_l =
new GeoLogVol(
name, bo_shape,
m_Gten);
1797 GeoIntrusivePtr<GeoPhysVol>bo_phys =
new GeoPhysVol(bo_l);
1801 double z_mb = z_boards - dz_boards;
1802 std::string mb_n[5] = {
"F1",
"F2",
"F3",
"F4",
"F5" };
1803 const double mb_dy[5] = { 74., 57., 57., 60., 44. };
1804 const double mb_dx[5] = { 38.5, 60., 138.5, 100., 165. };
1805 const double mb_dz_cu[5] = { .1, .15, .15, .15, .2 };
1807 double mb_r[5] = { (1739.-5.) , (1640.-5.), (1400.-4.), (1140. - 4.), (835.-1.)};
1808 double mb_dz[5] = { 1.4, 1.1, 1.25, 1.1, 1.25 };
1810 GeoIntrusivePtr<GeoPhysVol>mb_p[5];
1811 for(
int i = 0;
i < 5; ++
i){
1812 idx =
id +
"::" + mb_n[
i];
1817 GeoBox *mb_s =
new GeoBox(
dx,
dy, mb_dz[
i]);
1818 GeoLogVol *mb_l =
new GeoLogVol(
name, mb_s,
m_Gten);
1819 mb_p[
i] =
new GeoPhysVol(mb_l);
1822 std::ostringstream
tmp;
1823 tmp <<
"Cu" << (
i + 1) <<
"z";
1825 GeoBox *cu =
new GeoBox(
dx,
dy, dz1);
1827 GeoIntrusivePtr<GeoPhysVol>cup =
new GeoPhysVol(cul);
1828 mb_p[
i]->add(
new GeoTransform(GeoTrf::TranslateZ3D(dz1 - mb_dz[
i])));
1832 tmp <<
"R" << (
i + 1);
1838 idx =
id +
"::Outer";
1844 GeoTubs *oc_s =
new GeoTubs(rmin, rmax, dz_oc, phi_start, phi_size);
1845 GeoLogVol *oc_l =
new GeoLogVol(
name, oc_s,
m_Cable);
1846 GeoIntrusivePtr<GeoPhysVol>oc_p =
new GeoPhysVol(oc_l);
1847 double z_oc = z_boards - dz_boards - dz_oc;
1849 idx =
id +
"::SideOuter";
1855 GeoTubs *soc_s =
new GeoTubs(rmin, rmax, dz_soc, -0.5 * dphi_sc, dphi_sc);
1856 GeoLogVol *soc_l =
new GeoLogVol(
name, soc_s,
m_Cable);
1857 GeoIntrusivePtr<GeoPhysVol>soc_p =
new GeoPhysVol(soc_l);
1861 const int number_of_sectors =
m_isModule? 4: 32;
1862 for(
int i = 0;
i < number_of_sectors; ++
i){
1865 GeoIdentifierTag* iTag =
new GeoIdentifierTag(
i);
1867 GeoTransform* xf1 =
new GeoTransform(
GeoTrf::Transform3D(GeoTrf::Translate3D(0., 0., z_oc)*GeoTrf::RotateZ3D(phi)));
1869 motherPhysical->add(iTag);
1870 motherPhysical->add(xf);
1871 motherPhysical->add(bi_phys);
1873 motherPhysical->add(iTag);
1874 motherPhysical->add(xf);
1875 motherPhysical->add(bm_phys);
1877 motherPhysical->add(iTag);
1878 motherPhysical->add(xf);
1879 motherPhysical->add(bo_phys);
1881 motherPhysical->add(iTag);
1882 motherPhysical->add(xf1);
1883 motherPhysical->add(oc_p);
1885 for(
int j = 0; j < 5; ++ j){
1886 GeoTransform* xf2 =
new GeoTransform(
1887 GeoTrf::Transform3D(GeoTrf::RotateZ3D(phi)*GeoTrf::Translate3D(mb_r[j], 0., z_mb - mb_dz[j])));
1888 motherPhysical->add(iTag);
1889 motherPhysical->add(xf2);
1890 motherPhysical->add(mb_p[j]);
1893 GeoTransform* xf3 =
new GeoTransform(
GeoTrf::Transform3D(GeoTrf::Translate3D(0., 0., z_soc)*GeoTrf::RotateZ3D(
m_Position + (
i - 2) * phi_size + 0.5 * dphi_sc)));;
1895 GeoTransform* xf4 =
new GeoTransform(
GeoTrf::Transform3D(GeoTrf::Translate3D(0., 0., z_soc)*GeoTrf::RotateZ3D(
m_Position + (
i - 1) * phi_size - 0.5 * dphi_sc)));
1897 motherPhysical->add(
new GeoIdentifierTag(
i * 2));
1898 motherPhysical->add(xf3);
1899 motherPhysical->add(soc_p);
1901 motherPhysical->add(
new GeoIdentifierTag(
i * 2 + 1));
1902 motherPhysical->add(xf4);
1903 motherPhysical->add(soc_p);
◆ put_front_outer_extracyl()
void EMECSupportConstruction::put_front_outer_extracyl |
( |
GeoIntrusivePtr< GeoPhysVol > |
motherPhysical | ) |
const |
|
private |
Definition at line 1699 of file EMECSupportConstruction.cxx.
1706 SmartIF<StoreGateSvc>
detStore{Gaudi::svcLocator()->service(
"DetectorStore")};
1708 throw std::runtime_error(
"Error in EMECSupportConstruction/extracyl, cannot access DetectorStore");
1711 if (
detStore->retrieve(materialManager, std::string(
"MATERIALS")).isFailure()) {
1712 throw std::runtime_error(
"Error in EMECSupportConstruction: cannot find MATERIALS.");
1717 for(
unsigned int i=0;
i<nextra;
i++){
1718 const std::string&
name=(*m_DB_emecExtraCyl)[
i]->getString(
"CONE");
1719 if(
name.find(
"EmecCylAfterPS") != std::string::npos){
1720 double rmin=(*m_DB_emecExtraCyl)[
i]->getDouble(
"RMIN1");
1721 double rmax=(*m_DB_emecExtraCyl)[
i]->getDouble(
"RMAX1");
1722 double dz = (*m_DB_emecExtraCyl)[
i]->getDouble(
"DZ");
1723 if(dz>0. && dz<= dzmax){
1725 const std::string& material=(*m_DB_emecExtraCyl)[
i]->getString(
"MATERIAL");
1728 throw std::runtime_error(
"Error in EMECSupportConstruction/extracyl,material for CylBeforePS is not found.");
1731 std::string
id =
"ExtraCyl_afterPS";
1735 GeoLogVol *logicCyl =
new GeoLogVol(
name, solidCyl,
mat);
1736 GeoIntrusivePtr<GeoPhysVol>physCyl =
new GeoPhysVol(logicCyl);
1738 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(dz/2.)));
1739 motherPhysical->add(physCyl);
1741 std::cout<<
"******************************************************"<<std::endl;
1742 std::cout<<
" EMECSupportConstruction insert extra material after PS"<<std::endl;
1743 std::cout<<
" ExtraCyl params: name,mat= "<<
name<<
" "<<
mat->getName()
1744 <<
" rmin,rmax,dzthick,zpos="<<rmin<<
" "<<rmax<<
" "<<dz<<
" "<<dz/2.
1747 std::cout<<
"******************************************************"<<std::endl;
◆ put_front_outer_longbar()
void EMECSupportConstruction::put_front_outer_longbar |
( |
GeoIntrusivePtr< GeoPhysVol > |
motherPhysical | ) |
const |
|
private |
Definition at line 1533 of file EMECSupportConstruction.cxx.
1535 std::string
id =
"FrontOuterLongBar";
1538 GeoPcon *shapeFOLB =
getPcon(
id);
1539 GeoLogVol *logicalFOLB =
new GeoLogVol(
name, shapeFOLB,
m_Gten);
1540 GeoIntrusivePtr<GeoPhysVol>physFOLB =
new GeoPhysVol(logicalFOLB);
1541 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(
z0)));
1542 motherPhysical->add(physFOLB);
◆ put_front_outer_ring()
void EMECSupportConstruction::put_front_outer_ring |
( |
GeoIntrusivePtr< GeoPhysVol > |
motherPhysical | ) |
const |
|
private |
Definition at line 1521 of file EMECSupportConstruction.cxx.
1523 std::string
id =
"FrontOuterRing";
1526 GeoPcon *shapeFOR =
getPcon(
id);
1527 GeoLogVol *logicalFOR =
new GeoLogVol(
name, shapeFOR,
m_Alu);
1528 GeoIntrusivePtr<GeoPhysVol>physFOR =
new GeoPhysVol(logicalFOR);
1529 motherPhysical->add(
new GeoTransform(GeoTrf::TranslateZ3D(
z0)));
1530 motherPhysical->add(physFOR);
◆ setLevel()
void AthMessaging::setLevel |
( |
MSG::Level |
lvl | ) |
|
|
inherited |
◆ ATLAS_THREAD_SAFE
std::atomic_flag m_initialized AthMessaging::ATLAS_THREAD_SAFE = ATOMIC_FLAG_INIT |
|
mutableprivateinherited |
◆ m_Alu
const GeoMaterial* LArGeo::EMECSupportConstruction::m_Alu |
|
private |
◆ m_BaseName
std::string LArGeo::EMECSupportConstruction::m_BaseName |
|
private |
◆ m_Cable
const GeoMaterial* LArGeo::EMECSupportConstruction::m_Cable |
|
private |
◆ m_Copper
const GeoMaterial* LArGeo::EMECSupportConstruction::m_Copper |
|
private |
◆ m_DB_boxes
◆ m_DB_ColdContraction
◆ m_DB_emecExtraCyl
◆ m_DB_EmecFan
◆ m_DB_EmecGeometry
◆ m_DB_EmecWheelParameters
◆ m_DB_mn
◆ m_DB_numbers
◆ m_DB_pcons
◆ m_DB_tubes
◆ m_G10FeInner
const GeoMaterial* LArGeo::EMECSupportConstruction::m_G10FeInner |
|
private |
◆ m_G10FeOuter
const GeoMaterial* LArGeo::EMECSupportConstruction::m_G10FeOuter |
|
private |
◆ m_Gten
const GeoMaterial* LArGeo::EMECSupportConstruction::m_Gten |
|
private |
◆ m_imsg
std::atomic<IMessageSvc*> AthMessaging::m_imsg { nullptr } |
|
mutableprivateinherited |
◆ m_isModule
bool LArGeo::EMECSupportConstruction::m_isModule |
|
private |
◆ m_Kapton_Cu
const GeoMaterial* LArGeo::EMECSupportConstruction::m_Kapton_Cu |
|
private |
◆ m_LAr
const GeoMaterial* LArGeo::EMECSupportConstruction::m_LAr |
|
private |
◆ m_Lead
const GeoMaterial* LArGeo::EMECSupportConstruction::m_Lead |
|
private |
◆ m_lvl
std::atomic<MSG::Level> AthMessaging::m_lvl { MSG::NIL } |
|
mutableprivateinherited |
◆ m_msg_tls
boost::thread_specific_ptr<MsgStream> AthMessaging::m_msg_tls |
|
mutableprivateinherited |
MsgStream instance (a std::cout like with print-out levels)
Definition at line 132 of file AthMessaging.h.
◆ m_nm
std::string AthMessaging::m_nm |
|
privateinherited |
◆ m_PermaliE730
const GeoMaterial* LArGeo::EMECSupportConstruction::m_PermaliE730 |
|
private |
◆ m_PhiSize
double LArGeo::EMECSupportConstruction::m_PhiSize |
|
private |
◆ m_PhiStart
double LArGeo::EMECSupportConstruction::m_PhiStart |
|
private |
◆ m_pos_zside
bool LArGeo::EMECSupportConstruction::m_pos_zside |
|
private |
◆ m_Position
double LArGeo::EMECSupportConstruction::m_Position |
|
private |
◆ m_Type
type_t LArGeo::EMECSupportConstruction::m_Type |
|
private |
The documentation for this class was generated from the following files:
const GeoMaterial * m_G10FeInner
std::atomic< MSG::Level > m_lvl
Current logging level.
GeoIntrusivePtr< GeoPhysVol > middle_envelope(void) const
!!!
void put_back_inner_barettes(GeoIntrusivePtr< GeoPhysVol >) const
GeoIntrusivePtr< GeoPhysVol > inner_envelope(void) const
IRDBRecordset_ptr m_DB_tubes
void put_front_outer_ring(GeoIntrusivePtr< GeoPhysVol >) const
void put_front_outer_extracyl(GeoIntrusivePtr< GeoPhysVol >) const
std::string find(const std::string &s)
return a remapped string
GeoIntrusivePtr< GeoPhysVol > front_inner_envelope(void) const
IRDBRecordset_ptr m_DB_EmecWheelParameters
void put_front_inner_ring(GeoIntrusivePtr< GeoPhysVol >) const
void put_front_outer_electronics(GeoIntrusivePtr< GeoPhysVol >) const
void put_back_inner_ring(GeoIntrusivePtr< GeoPhysVol >) const
IRDBRecordset_ptr m_DB_EmecFan
IRDBRecordset_ptr m_DB_ColdContraction
void put_front_outer_barettes(GeoIntrusivePtr< GeoPhysVol >) const
std::atomic< IMessageSvc * > m_imsg
MessageSvc pointer.
IRDBRecordset_ptr m_DB_mn
GeoIntrusivePtr< GeoPhysVol > front_envelope(void) const
IMessageSvc * getMessageSvc(bool quiet=false)
void put_front_outer_longbar(GeoIntrusivePtr< GeoPhysVol >) const
GeoIntrusivePtr< GeoPhysVol > back_inner_envelope(void) const
IRDBRecordset_ptr m_DB_emecExtraCyl
AthMessaging()
Default constructor:
void put_back_outer_ring(GeoIntrusivePtr< GeoPhysVol >) const
GeoPcon * getPcon(const std::string &) const
IRDBRecordset_ptr m_DB_pcons
const GeoMaterial * m_PermaliE730
void put_front_inner_longbar(GeoIntrusivePtr< GeoPhysVol >) const
const GeoMaterial * m_Gten
This is a helper class to query the version tags from GeoModelSvc and determine the appropriate tag a...
Eigen::Affine3d Transform3D
void put_back_indexing_rings(GeoIntrusivePtr< GeoPhysVol >) const
void put_back_outer_longbar(GeoIntrusivePtr< GeoPhysVol >) const
const double r0
electron radius{cm}
map_t getMap(const IRDBRecordset_ptr &db, const std::string &s) const
void put_front_inner_barettes(GeoIntrusivePtr< GeoPhysVol >) const
MsgStream & msg() const
The standard message stream.
const GeoMaterial * m_Alu
std::map< NP, std::vector< std::size_t > > map_t
GeoIntrusivePtr< GeoPhysVol > front_outer_envelope(void) const
void put_front_middle_ring(GeoIntrusivePtr< GeoPhysVol >) const
GeoIntrusivePtr< GeoPhysVol > back_envelope(void) const
IRDBRecordset_ptr m_DB_numbers
const GeoMaterial * m_G10FeOuter
void put_back_inner_longbar(GeoIntrusivePtr< GeoPhysVol >) const
const GeoMaterial * m_Lead
void put_front_indexing_rings(GeoIntrusivePtr< GeoPhysVol >) const
const GeoMaterial * m_LAr
const GeoMaterial * m_Cable
GeoIntrusivePtr< GeoPhysVol > outer_envelope(void) const
#define ATH_MSG_WARNING(x)
const GeoMaterial * m_Kapton_Cu
const GeoMaterial * m_Copper
std::string m_nm
Message source name.
map_t getNumbersMap(const IRDBRecordset_ptr &db, const std::string &s) const
double getNumber(const IRDBRecordset_ptr &db, const map_t &m, const std::string &idx, const char *number, double defval=0.) const
virtual const GeoMaterial * getMaterial(const std::string &name)=0
IRDBRecordset_ptr m_DB_boxes
This class holds one or more material managers and makes them storeable, under StoreGate.
void put_back_outer_barettes(GeoIntrusivePtr< GeoPhysVol >) const
IRDBRecordset_ptr m_DB_EmecGeometry
void initMessaging() const
Initialize our message level and MessageSvc.
boost::thread_specific_ptr< MsgStream > m_msg_tls
MsgStream instance (a std::cout like with print-out levels)
constexpr int pow(int base, int exp) noexcept
void put_back_middle_ring(GeoIntrusivePtr< GeoPhysVol >) const
GeoIntrusivePtr< GeoPhysVol > back_outer_envelope(void) const