 |
ATLAS Offline Software
|
#include <ALFA_DetectorFactory.h>
|
| const ALFA_DetectorFactory & | operator= (const ALFA_DetectorFactory &right) |
| |
| | ALFA_DetectorFactory (const ALFA_DetectorFactory &right) |
| |
| void | SaveGeometry () |
| |
| void | DefineMaterials (StoredMaterialManager *pMaterialManager) |
| |
| void | ConstructUFiberCladdings (const eRPotName eRPName, GeoFullPhysVol *pMotherVolume, const HepGeom::Transform3D &MotherTransform, GeoAlignableTransform *pDetTransform) |
| |
| void | ConstructVFiberCladdings (const eRPotName eRPName, GeoFullPhysVol *pMotherVolume, const HepGeom::Transform3D &MotherTransform, GeoAlignableTransform *pDetTransform) |
| |
| void | ConstructODFiberCladdings (const eRPotName eRPName, GeoFullPhysVol *pPhysMotherVolume, const HepGeom::Transform3D &MotherTransform, GeoAlignableTransform *pDetTransform) |
| |
| void | ConstructODFibers00 (const eRPotName eRPName, const int iODPlate, eFiberType eFType, GeoFullPhysVol *pMotherVolume, const HepGeom::Transform3D &MotherTransform, const HepGeom::Transform3D &TransODCladding) |
| |
| void | ConstructODFibers01 (const eRPotName eRPName, const int iODPlate, eFiberType eFType, GeoFullPhysVol *pMotherVolume, const HepGeom::Transform3D &MotherTransform, const HepGeom::Transform3D &TransODCladding) |
| |
| void | SelectRPots () |
| |
| void | CreateAxes (GeoPhysVol *pMotherVolume) |
| |
| void | ConstructAlfaStations (std::map< eAStationName, ALFAPHYSVOLUME > *pmapActiveStations, GeoPhysVol *pWorld) |
| |
| void | ConstructBeampipe (GeoPhysVol *pWorld) |
| |
| void | AddBeamPipeInStation (GeoFullPhysVol *pPhysStation, const char *pszStationLabel) |
| |
| void | AddGlobalVacuumSensorInStation (GeoFullPhysVol *pPhysStation, eAStationName eStatName) |
| |
| GeoShape * | CreateSolidRP () |
| |
| GeoShape * | CreateSolidAir () |
| |
| GeoShape * | CreateSolidTrigger () |
| |
| GeoShape * | CreateSolidRPSupport () |
| |
| GeoShape * | CreateSolidG10Shapes () |
| |
| std::map< int, GeoShape * > * | CreateSolidTiPlates () |
| |
| std::map< int, GeoShape * > * | CreateSolidODPlates () |
| |
| HepGeom::Transform3D | UserTransformInDetector (eRPotName eRPName) |
| |
| HepGeom::Transform3D | UserTransformInStation (eRPotName eRPName) |
| |
| HepGeom::Point3D< double > | Point3DInDetector (eRPotName eRPName) |
| |
Definition at line 75 of file ALFA_DetectorFactory.h.
◆ ALFA_DetectorFactory() [1/2]
◆ ~ALFA_DetectorFactory()
| ALFA_DetectorFactory::~ALFA_DetectorFactory |
( |
| ) |
|
◆ ALFA_DetectorFactory() [2/2]
◆ AddBeamPipeInStation()
| void ALFA_DetectorFactory::AddBeamPipeInStation |
( |
GeoFullPhysVol * |
pPhysStation, |
|
|
const char * |
pszStationLabel |
|
) |
| |
|
private |
Definition at line 413 of file ALFA_DetectorFactory.cxx.
419 double fZLength=0.5*(fzs-fzd);
420 double fZPos=0.5*fzd+0.5*fZLength;
422 sprintf(szLabel,
"%s_LogIBP",pszStationLabel);
424 GeoLogVol* pLogTube=
new GeoLogVol(szLabel,pTube,
m_MapMaterials[
string(
"Steel")]);
425 GeoFullPhysVol* pPhysTube=
new GeoFullPhysVol(pLogTube);
427 sprintf(szLabel,
"%s_IBP01",pszStationLabel);
428 pPhysStation->add(
new GeoNameTag(szLabel));
429 pPhysStation->add(
new GeoTransform(GeoTrf::TranslateZ3D(fZPos)));
430 pPhysStation->add(pPhysTube);
432 sprintf(szLabel,
"%s_IBP02",pszStationLabel);
433 pPhysStation->add(
new GeoNameTag(szLabel));
434 pPhysStation->add(
new GeoTransform(GeoTrf::TranslateZ3D(-fZPos)));
435 pPhysStation->add(pPhysTube);
◆ AddGlobalVacuumSensorInStation()
| void ALFA_DetectorFactory::AddGlobalVacuumSensorInStation |
( |
GeoFullPhysVol * |
pPhysStation, |
|
|
eAStationName |
eStatName |
|
) |
| |
|
private |
Definition at line 438 of file ALFA_DetectorFactory.cxx.
446 sprintf(szLabel,
"%s_GVS",
m_pGeoReader->GetAStationLabel(eStatName));
449 GeoLogVol* pLogGVS=
new GeoLogVol(szLabel,pSolGVS,
m_MapMaterials[
string(
"std::Vacuum")]);
450 GeoFullPhysVol* pPhysGVS=
new GeoFullPhysVol(pLogGVS);
452 GeoTrf::TranslateZ3D TransGVS(fZOffset);
453 pPhysStation->add(
new GeoNameTag(szLabel));
454 pPhysStation->add(
new GeoTransform(TransGVS));
455 pPhysStation->add(pPhysGVS);
◆ ConstructAlfaStations()
| void ALFA_DetectorFactory::ConstructAlfaStations |
( |
std::map< eAStationName, ALFAPHYSVOLUME > * |
pmapActiveStations, |
|
|
GeoPhysVol * |
pWorld |
|
) |
| |
|
private |
Definition at line 458 of file ALFA_DetectorFactory.cxx.
467 GeoFullPhysVol* pPhysAlfaBox=NULL;
470 GeoLogVol* pLogAlfaBox=
new GeoLogVol(
"ALFA",pSolidAlfaBox,
m_MapMaterials[
string(
"std::Vacuum")]);
474 m_pGeoReader->GetASPosParams(&AStationParams,eAStation);
475 sprintf(szLabel,
"ALFA_%s",AStationParams.
szLabel);
477 pPhysAlfaBox=
new GeoFullPhysVol(pLogAlfaBox);
479 pWorld->add(
new GeoNameTag(szLabel));
481 pWorld->add(pPhysAlfaBox);
488 pmapActiveStations->insert(pair<eAStationName,ALFAPHYSVOLUME>(eAStation,APhysVolume));
492 m_pGeoReader->GetASPosParams(&AStationParams,eAStation);
493 sprintf(szLabel,
"ALFA_%s",AStationParams.
szLabel);
495 pPhysAlfaBox=
new GeoFullPhysVol(pLogAlfaBox);
497 pWorld->add(
new GeoNameTag(szLabel));
499 pWorld->add(pPhysAlfaBox);
506 pmapActiveStations->insert(pair<eAStationName,ALFAPHYSVOLUME>(eAStation,APhysVolume));
510 m_pGeoReader->GetASPosParams(&AStationParams,eAStation);
511 sprintf(szLabel,
"ALFA_%s",AStationParams.
szLabel);
513 pPhysAlfaBox=
new GeoFullPhysVol(pLogAlfaBox);
515 pWorld->add(
new GeoNameTag(szLabel));
517 pWorld->add(pPhysAlfaBox);
524 pmapActiveStations->insert(pair<eAStationName,ALFAPHYSVOLUME>(eAStation,APhysVolume));
528 m_pGeoReader->GetASPosParams(&AStationParams,eAStation);
529 sprintf(szLabel,
"ALFA_%s",AStationParams.
szLabel);
531 pPhysAlfaBox=
new GeoFullPhysVol(pLogAlfaBox);
533 pWorld->add(
new GeoNameTag(szLabel));
535 pWorld->add(pPhysAlfaBox);
542 pmapActiveStations->insert(pair<eAStationName,ALFAPHYSVOLUME>(eAStation,APhysVolume));
◆ ConstructBeampipe()
| void ALFA_DetectorFactory::ConstructBeampipe |
( |
GeoPhysVol * |
pWorld | ) |
|
|
private |
Definition at line 545 of file ALFA_DetectorFactory.cxx.
547 char szLabel[32]{}, szLabel2[32]{};
548 double fInnerTubeHLength;
549 GeoTube* pTube, *pTube2;
550 GeoLogVol* pLogTube, *pLogTube2;
551 GeoFullPhysVol* pPhysTube, *pPhysTube2;
557 strcpy(szLabel,
"ALFA_Beampipe01");
558 strcpy(szLabel2,
"ALFA_Beampipe01Fill");
562 pLogTube=
new GeoLogVol(szLabel,pTube,
m_MapMaterials[
string(
"Steel")]);
563 pLogTube2=
new GeoLogVol(szLabel2,pTube2,
m_MapMaterials[
string(
"std::Vacuum")]);
564 pPhysTube=
new GeoFullPhysVol(pLogTube);
565 pPhysTube2=
new GeoFullPhysVol(pLogTube2);
568 pWorld->add(
new GeoNameTag(szLabel));
570 pWorld->add(pPhysTube);
572 pWorld->add(
new GeoNameTag(szLabel2));
574 pWorld->add(pPhysTube2);
578 strcpy(szLabel,
"ALFA_Beampipe02");
579 strcpy(szLabel2,
"ALFA_Beampipe02Fill");
585 pLogTube=
new GeoLogVol(szLabel,pTube,
m_MapMaterials[
string(
"Steel")]);
586 pLogTube2=
new GeoLogVol(szLabel2,pTube2,
m_MapMaterials[
string(
"std::Vacuum")]);
587 pPhysTube=
new GeoFullPhysVol(pLogTube);
588 pPhysTube2=
new GeoFullPhysVol(pLogTube2);
591 pWorld->add(
new GeoNameTag(szLabel));
593 pWorld->add(pPhysTube);
595 pWorld->add(
new GeoNameTag(szLabel2));
597 pWorld->add(pPhysTube2);
601 strcpy(szLabel,
"ALFA_Beampipe03");
602 strcpy(szLabel2,
"ALFA_Beampipe03Fill");
606 pLogTube=
new GeoLogVol(szLabel,pTube,
m_MapMaterials[
string(
"Steel")]);
607 pLogTube2=
new GeoLogVol(szLabel2,pTube2,
m_MapMaterials[
string(
"std::Vacuum")]);
608 pPhysTube=
new GeoFullPhysVol(pLogTube);
609 pPhysTube2=
new GeoFullPhysVol(pLogTube2);
612 pWorld->add(
new GeoNameTag(szLabel));
614 pWorld->add(pPhysTube);
616 pWorld->add(
new GeoNameTag(szLabel2));
618 pWorld->add(pPhysTube2);
622 strcpy(szLabel,
"ALFA_Beampipe04");
623 strcpy(szLabel2,
"ALFA_Beampipe04Fill");
627 pLogTube=
new GeoLogVol(szLabel,pTube,
m_MapMaterials[
string(
"Steel")]);
628 pLogTube2=
new GeoLogVol(szLabel2,pTube2,
m_MapMaterials[
string(
"std::Vacuum")]);
629 pPhysTube=
new GeoFullPhysVol(pLogTube);
630 pPhysTube2=
new GeoFullPhysVol(pLogTube2);
633 pWorld->add(
new GeoNameTag(szLabel));
635 pWorld->add(pPhysTube);
637 pWorld->add(
new GeoNameTag(szLabel2));
639 pWorld->add(pPhysTube2);
643 strcpy(szLabel,
"ALFA_Beampipe05");
644 strcpy(szLabel2,
"ALFA_Beampipe05Fill");
650 pLogTube=
new GeoLogVol(szLabel,pTube,
m_MapMaterials[
string(
"Steel")]);
651 pLogTube2=
new GeoLogVol(szLabel2,pTube2,
m_MapMaterials[
string(
"std::Vacuum")]);
652 pPhysTube=
new GeoFullPhysVol(pLogTube);
653 pPhysTube2=
new GeoFullPhysVol(pLogTube2);
656 pWorld->add(
new GeoNameTag(szLabel));
658 pWorld->add(pPhysTube);
660 pWorld->add(
new GeoNameTag(szLabel2));
662 pWorld->add(pPhysTube2);
666 strcpy(szLabel,
"ALFA_Beampipe06");
667 strcpy(szLabel2,
"ALFA_Beampipe06Fill");
671 pLogTube=
new GeoLogVol(szLabel,pTube,
m_MapMaterials[
string(
"Steel")]);
672 pLogTube2=
new GeoLogVol(szLabel2,pTube2,
m_MapMaterials[
string(
"std::Vacuum")]);
673 pPhysTube=
new GeoFullPhysVol(pLogTube);
674 pPhysTube2=
new GeoFullPhysVol(pLogTube2);
677 pWorld->add(
new GeoNameTag(szLabel));
679 pWorld->add(pPhysTube);
681 pWorld->add(
new GeoNameTag(szLabel2));
683 pWorld->add(pPhysTube2);
◆ ConstructODFiberCladdings()
| void ALFA_DetectorFactory::ConstructODFiberCladdings |
( |
const eRPotName |
eRPName, |
|
|
GeoFullPhysVol * |
pPhysMotherVolume, |
|
|
const HepGeom::Transform3D & |
MotherTransform, |
|
|
GeoAlignableTransform * |
pDetTransform |
|
) |
| |
|
private |
Definition at line 1156 of file ALFA_DetectorFactory.cxx.
1169 GeoShapeShift * mowe1 =
new GeoShapeShift(OD_Cladbox3, OD_CladMove1);
1170 GeoShapeSubtraction * OD_Cladsemi1 =
new GeoShapeSubtraction(OD_Cladtube1, mowe1);
1173 GeoShapeShift * mowe2 =
new GeoShapeShift(OD_Cladbox4, OD_CladMove2);
1174 GeoShapeSubtraction * OD_Cladsemi2 =
new GeoShapeSubtraction(OD_Cladsemi1, mowe2);
1177 GeoShapeShift * mowe3 =
new GeoShapeShift(OD_Cladbox1, OD_CladMov3);
1178 GeoShapeUnion * OD_Cladsemi3 =
new GeoShapeUnion(OD_Cladsemi2, mowe3);
1181 GeoShapeShift * mowe4 =
new GeoShapeShift(OD_Cladbox2, OD_CladMov4);
1182 GeoShapeUnion * shapeOD_Cladding =
new GeoShapeUnion(OD_Cladsemi3, mowe4);
1185 GeoLogVol* logOD_Cladding =
new GeoLogVol(
"logOD_Cladding", shapeOD_Cladding,
m_MapMaterials[
string(
"PMMA")]);
1187 GeoFullPhysVol* physOD_CladdingU_0=NULL;
1188 GeoFullPhysVol* physOD_CladdingU_1=NULL;
1189 GeoFullPhysVol* physOD_CladdingV_0=NULL;
1190 GeoFullPhysVol* physOD_CladdingV_1=NULL;
1198 physOD_CladdingU_0 =
new GeoFullPhysVol(logOD_Cladding);
1202 pPhysMotherVolume->add(pDetTransform);
1204 sprintf(szLabel,
"physODclad[%d][0][%d]",eRPName,
i);
1205 pPhysMotherVolume->add(
new GeoNameTag(szLabel));
1206 pPhysMotherVolume->add(physOD_CladdingU_0);
1209 physOD_CladdingU_1 =
new GeoFullPhysVol(logOD_Cladding);
1213 pPhysMotherVolume->add(pDetTransform);
1215 sprintf(szLabel,
"physODclad[%d][1][%d]",eRPName,
i);
1216 pPhysMotherVolume->add(
new GeoNameTag(szLabel));
1217 pPhysMotherVolume->add(physOD_CladdingU_1);
1220 physOD_CladdingV_0 =
new GeoFullPhysVol(logOD_Cladding);
1224 pPhysMotherVolume->add(pDetTransform);
1226 sprintf(szLabel,
"physODclad[%d][2][%d]",eRPName,
i);
1227 pPhysMotherVolume->add(
new GeoNameTag(szLabel));
1228 pPhysMotherVolume->add(physOD_CladdingV_0);
1231 physOD_CladdingV_1 =
new GeoFullPhysVol(logOD_Cladding);
1235 pPhysMotherVolume->add(pDetTransform);
1237 sprintf(szLabel,
"physODclad[%d][3][%d]",eRPName,
i);
1238 pPhysMotherVolume->add(
new GeoNameTag(szLabel));
1239 pPhysMotherVolume->add(physOD_CladdingV_1);
◆ ConstructODFibers00()
| void ALFA_DetectorFactory::ConstructODFibers00 |
( |
const eRPotName |
eRPName, |
|
|
const int |
iODPlate, |
|
|
eFiberType |
eFType, |
|
|
GeoFullPhysVol * |
pMotherVolume, |
|
|
const HepGeom::Transform3D & |
MotherTransform, |
|
|
const HepGeom::Transform3D & |
TransODCladding |
|
) |
| |
|
private |
Definition at line 1243 of file ALFA_DetectorFactory.cxx.
1248 char szLabel[180]{};
1260 GeoShapeShift * mowe1 =
new GeoShapeShift(OD_Fiberbox3, OD_FiberMove1);
1261 GeoShapeSubtraction * OD_Fibersemi1 =
new GeoShapeSubtraction(OD_Fibertube1, mowe1);
1264 GeoShapeShift * mowe2 =
new GeoShapeShift(OD_Fiberbox4, OD_FiberMove2);
1265 GeoShapeSubtraction * OD_Fibersemi2 =
new GeoShapeSubtraction(OD_Fibersemi1, mowe2);
1268 GeoShapeShift * mowe4 =
new GeoShapeShift(OD_Fiberbox2, OD_FiberMov4);
1269 GeoShapeUnion * shapeOD_Fiber =
new GeoShapeUnion(OD_Fibersemi2, mowe4);
1271 GeoLogVol* logOD_Fiber =
new GeoLogVol(
"logOD_Fiber", shapeOD_Fiber,
m_MapMaterials[
string(
"Polystyrene")]);
1272 GeoLogVol* logOD_FiberActive =
new GeoLogVol(
"logOD_FiberActive", OD_Fiberbox1,
m_MapMaterials[
string(
"Polystyrene")]);
1275 double fAngle = 0.0;
1281 sprintf(szLabel,
"ODFiberU0Active[%d][%d][%d]",eRPName,iODPlate+1,
i+1);
1287 sprintf(szLabel,
"ODFiberV0Active[%d][%d][%d]",eRPName,iODPlate+1,
i+1);
1290 TransODFiber=HepGeom::Translate3D(4*
CLHEP::mm, fYPos, 0.0*
CLHEP::mm)*HepGeom::RotateZ3D(fAngle);
1293 GeoPhysVol* physOD_FiberActive =
new GeoPhysVol(logOD_FiberActive);
1295 pMotherVolume->add(
new GeoNameTag(szLabel));
1296 pMotherVolume->add(physOD_FiberActive);
1300 HepGeom::Point3D<float> TransPoint=TransTotal*HepGeom::Point3D<float>(0.0,0.0,0.0);
1301 HepGeom::Vector3D<float> TransVector=TransTotal*HepGeom::Vector3D<float>(1.0,0.0,0.0);
1302 float fSlope=
tan(TransVector.phi());
1342 if (eFType==
EFT_ODFIBERU0) sprintf(szLabel,
"ODFiberU0[%d][%d][%d]",eRPName,iODPlate+1,
i+1);
1343 else if (eFType==
EFT_ODFIBERV0) sprintf(szLabel,
"ODFiberV0[%d][%d][%d]",eRPName,iODPlate+1,
i+1);
1344 GeoPhysVol* physOD_Fiber =
new GeoPhysVol(logOD_Fiber);
1346 pMotherVolume->add(
new GeoNameTag(szLabel));
1347 pMotherVolume->add(physOD_Fiber);
◆ ConstructODFibers01()
| void ALFA_DetectorFactory::ConstructODFibers01 |
( |
const eRPotName |
eRPName, |
|
|
const int |
iODPlate, |
|
|
eFiberType |
eFType, |
|
|
GeoFullPhysVol * |
pMotherVolume, |
|
|
const HepGeom::Transform3D & |
MotherTransform, |
|
|
const HepGeom::Transform3D & |
TransODCladding |
|
) |
| |
|
private |
Definition at line 1351 of file ALFA_DetectorFactory.cxx.
1354 char szLabel[180]{};
1366 GeoShapeShift * mowe1 =
new GeoShapeShift(OD_Fiberbox3, OD_FiberMove1);
1367 GeoShapeSubtraction * OD_Fibersemi1 =
new GeoShapeSubtraction(OD_Fibertube1, mowe1);
1370 GeoShapeShift * mowe2 =
new GeoShapeShift(OD_Fiberbox4, OD_FiberMove2);
1371 GeoShapeSubtraction * OD_Fibersemi2 =
new GeoShapeSubtraction(OD_Fibersemi1, mowe2);
1374 GeoShapeShift * mowe4 =
new GeoShapeShift(OD_Fiberbox2, OD_FiberMov4);
1375 GeoShapeUnion * shapeOD_Fiber =
new GeoShapeUnion(OD_Fibersemi2, mowe4);
1377 GeoLogVol* logOD_Fiber =
new GeoLogVol(
"logOD_Fiber", shapeOD_Fiber,
m_MapMaterials[
string(
"Polystyrene")]);
1378 GeoLogVol* logOD_FiberActive =
new GeoLogVol(
"logOD_FiberActive", OD_Fiberbox1,
m_MapMaterials[
string(
"Polystyrene")]);
1381 double fAngle = 0.0;
1390 sprintf(szLabel,
"ODFiberU1Active[%d][%d][%d]",eRPName,iODPlate+1,
i+1);
1401 sprintf(szLabel,
"ODFiberV1Active[%d][%d][%d]",eRPName,iODPlate+1,
i+1);
1404 TransODFiber=HepGeom::Translate3D(4*
CLHEP::mm, fYPos, 0*
CLHEP::mm)*HepGeom::RotateZ3D(fAngle);
1407 GeoPhysVol* physOD_FiberActive =
new GeoPhysVol(logOD_FiberActive);
1409 pMotherVolume->add(
new GeoNameTag(szLabel));
1410 pMotherVolume->add(physOD_FiberActive);
1414 HepGeom::Point3D<float> TransPoint=TransTotal*HepGeom::Point3D<float>(0.0,0.0,0.0);
1415 HepGeom::Vector3D<float> TransVector=TransTotal*HepGeom::Vector3D<float>(1.0,0.0,0.0);
1416 float fSlope=
tan(TransVector.phi());
1432 if (eFType==
EFT_ODFIBERU1) sprintf(szLabel,
"ODFiberU1[%d][%d][%d]",eRPName,iODPlate+1,
i+1);
1433 else if (eFType==
EFT_ODFIBERV1) sprintf(szLabel,
"ODFiberV1[%d][%d][%d]",eRPName,iODPlate+1,
i+1);
1434 GeoPhysVol* physOD_Fiber =
new GeoPhysVol(logOD_Fiber);
1436 pMotherVolume->add(
new GeoNameTag(szLabel));
1437 pMotherVolume->add(physOD_Fiber);
◆ ConstructUFiberCladdings()
| void ALFA_DetectorFactory::ConstructUFiberCladdings |
( |
const eRPotName |
eRPName, |
|
|
GeoFullPhysVol * |
pMotherVolume, |
|
|
const HepGeom::Transform3D & |
MotherTransform, |
|
|
GeoAlignableTransform * |
pDetTransform |
|
) |
| |
|
private |
Definition at line 1445 of file ALFA_DetectorFactory.cxx.
1447 char strLabel[32]{};
1455 GeoBox *ALFA_Cladbox1, *ALFA_Cladbox2;
1456 GeoShapeSubtraction* shapeALFA_Clad;
1463 GeoShapeShift* mowe1;
1464 GeoLogVol* pLogCladdingU;
1482 mowe1=
new GeoShapeShift(ALFA_Cladbox2,Clad_Move1);
1483 shapeALFA_Clad =
new GeoShapeSubtraction(ALFA_Cladbox1,mowe1);
1484 pLogCladdingU =
new GeoLogVol(
"logALFA_CladdingU",shapeALFA_Clad,
m_MapMaterials[
string(
"PMMA")]);
1486 sprintf(strLabel,
"ALFA_CladdingU[%d][%d]",eRPName,
i);
1489 physALFA_CladdingU[
i] =
new GeoFullPhysVol(pLogCladdingU);
1490 pMotherVolume->add(
new GeoNameTag(strLabel));
1491 pMotherVolume->add(pDetTransform);
1493 pMotherVolume->add(physALFA_CladdingU[
i]);
1500 GeoFullPhysVol* physiFibU;
1501 GeoLogVol* logALFA_FiberU;
1522 double fXPos=
m_pGeoReader->GetUFiberCentreXPos(eRPName,
i+1, j+1);
1523 double fAngle=
m_pGeoReader->GetUFiberAngle(eRPName,
i+1, j+1);
1524 double fDx=fXPos-(+15.75-0.5*(j))*
CLHEP::mm;
1527 const GeoShapeShift* Sh6=
new GeoShapeShift(CladTrim,TrimMove);
1528 const GeoShapeSubtraction* solFibU=
new GeoShapeSubtraction(Fib1,Sh6);
1529 sprintf(strLabel,
"logALFA_FiberU[%d]",j+1);
1530 logALFA_FiberU=
new GeoLogVol(strLabel,solFibU,
m_MapMaterials[
string(
"Polystyrene")]);
1532 sprintf(strLabel,
"ALFA_FiberU[%d][%d][%d]",eRPName,
i+1,j+1);
1533 TransFiber=HepGeom::Translate3D(fXPos, 0*
CLHEP::mm, 0*
CLHEP::mm)*HepGeom::RotateZ3D(-fAngle);
1534 physiFibU=
new GeoFullPhysVol(logALFA_FiberU);
1535 physALFA_CladdingU[
i]->add(
new GeoNameTag(strLabel));
1537 physALFA_CladdingU[
i]->add(physiFibU);
1541 HepGeom::Point3D<float> TransPoint=TransTotal*HepGeom::Point3D<float>(0.0,0.0,0.0);
1542 HepGeom::Vector3D<float> TransVector=TransTotal*HepGeom::Vector3D<float>(0.0,1.0,0.0);
1543 float fSlope=
tan(TransVector.phi());
1545 m_pGeoReader->SetUFiberPositionToMainReference(eRPName,
i+1, j+1, TransPoint, fSlope);
◆ ConstructVFiberCladdings()
| void ALFA_DetectorFactory::ConstructVFiberCladdings |
( |
const eRPotName |
eRPName, |
|
|
GeoFullPhysVol * |
pMotherVolume, |
|
|
const HepGeom::Transform3D & |
MotherTransform, |
|
|
GeoAlignableTransform * |
pDetTransform |
|
) |
| |
|
private |
Definition at line 1551 of file ALFA_DetectorFactory.cxx.
1559 GeoShapeShift* mowe1;
1560 GeoBox *ALFA_Cladbox1, *ALFA_Cladbox2;
1561 GeoShapeSubtraction* shapeALFA_Clad;
1568 GeoLogVol* pLogCladdingV;
1587 mowe1=
new GeoShapeShift(ALFA_Cladbox2,Clad_Move1);
1588 shapeALFA_Clad =
new GeoShapeSubtraction(ALFA_Cladbox1,mowe1);
1589 pLogCladdingV =
new GeoLogVol(
"logALFA_CladdingV",shapeALFA_Clad,
m_MapMaterials[
string(
"PMMA")]);
1591 sprintf(strLabel,
"ALFA_CladdingV[%d][%d]",eRPName,
i);
1594 physALFA_CladdingV[
i] =
new GeoFullPhysVol(pLogCladdingV);
1595 pMotherVolume->add(
new GeoNameTag(strLabel));
1596 pMotherVolume->add(pDetTransform);
1598 pMotherVolume->add(physALFA_CladdingV[
i]);
1602 GeoFullPhysVol* physiFibV;
1603 GeoLogVol* logALFA_FiberV;
1624 double fXPos=
m_pGeoReader->GetVFiberCentreXPos(eRPName,
i+1, j+1);
1625 double fAngle=
m_pGeoReader->GetVFiberAngle(eRPName,
i+1, j+1);
1626 double fDx=fXPos-(+15.75-0.5*(j))*
CLHEP::mm;
1629 const GeoShapeShift* Sh6=
new GeoShapeShift(CladTrim,TrimMove);
1630 const GeoShapeSubtraction* solFibV=
new GeoShapeSubtraction(Fib1,Sh6);
1631 sprintf(strLabel,
"logALFA_FiberV[%d]",j+1);
1632 logALFA_FiberV=
new GeoLogVol(strLabel,solFibV,
m_MapMaterials[
string(
"Polystyrene")]);
1634 sprintf(strLabel,
"ALFA_FiberV[%d][%d][%d]",eRPName,
i+1,j+1);
1635 TransFiber=HepGeom::Translate3D(fXPos, 0*
CLHEP::mm, 0*
CLHEP::mm)*HepGeom::RotateZ3D(-fAngle);
1637 physiFibV=
new GeoFullPhysVol(logALFA_FiberV);
1638 physALFA_CladdingV[
i]->add(
new GeoNameTag(strLabel));
1640 physALFA_CladdingV[
i]->add(physiFibV);
1645 HepGeom::Point3D<float> TransPoint=TransTotal*HepGeom::Point3D<float>(0.0,0.0,0.0);
1646 HepGeom::Vector3D<float> TransVector=TransTotal*HepGeom::Vector3D<float>(0.0,1.0,0.0);
1647 float fSlope=
tan(TransVector.phi());
1648 m_pGeoReader->SetVFiberPositionToMainReference(eRPName,
i+1, j+1, TransPoint, fSlope);
◆ create()
| void ALFA_DetectorFactory::create |
( |
GeoPhysVol * |
pWorld | ) |
|
|
virtual |
Definition at line 688 of file ALFA_DetectorFactory.cxx.
701 if (
m_pDetectorStore->retrieve(pMaterialManager, std::string(
"MATERIALS"))!=StatusCode::SUCCESS){
733 GeoLogVol* pLogRPBox=NULL;
734 GeoLogVol* pLogRPAir=NULL;
735 GeoFullPhysVol* pPhysAlfaBox=NULL;
736 GeoFullPhysVol* pPhysRPBox=NULL;
737 GeoFullPhysVol* pPhysRPAir=NULL;
738 HepGeom::Translate3D ObjTranslate;
739 HepGeom::Rotate3D ObjRotate;
741 GeoLogVol* pLogObj=NULL;
742 GeoFullPhysVol* pPhysObj=NULL;
748 GeoAlignableTransform* pAlTransRPBox;
749 GeoAlignableTransform* pAlTransDetInRPMainPoint;
753 map<eAStationName,ALFAPHYSVOLUME> mapActiveStations;
762 pPhysAlfaBox=mapActiveStations[RPosParams.
eASName].pPhysVolume;
763 TransAlfaBox=mapActiveStations[RPosParams.
eASName].Transform;
769 sprintf(szLabel,
"LogRPBox[%02d]",eRPName);
770 pLogRPBox=
new GeoLogVol(szLabel,pSolidRP,
m_MapMaterials[
string(
"Steel")]);
771 pPhysRPBox=
new GeoFullPhysVol(pLogRPBox);
773 sprintf(szLabel,
"RPBox[%02d]",eRPName);
774 pPhysAlfaBox->add(
new GeoNameTag(szLabel));
775 pPhysAlfaBox->add(pAlTransRPBox);
776 pPhysAlfaBox->add(pPhysRPBox);
780 sprintf(szLabel,
"LogRPAir[%02d]",eRPName);
781 pLogRPAir=
new GeoLogVol(szLabel,pSolidAir,
m_MapMaterials[
string(
"std::Vacuum")]);
782 pPhysRPAir=
new GeoFullPhysVol(pLogRPAir);
784 sprintf(szLabel,
"RPAir[%02d]",eRPName);
785 TransRPAir=HepGeom::Translate3D(0.0,0.0,0.0);
786 pPhysRPBox->add(
new GeoNameTag(szLabel));
788 pPhysRPBox->add(pPhysRPAir);
792 sprintf(szLabel,
"LogTrigger[%02d]",eRPName);
793 pLogObj=
new GeoLogVol(szLabel,pSolidTrigger,
m_MapMaterials[
string(
"PVT")]);
794 pPhysObj=
new GeoFullPhysVol(pLogObj);
795 sprintf(szLabel,
"Trigger[%02d]",eRPName);
796 pPhysRPAir->add(
new GeoNameTag(szLabel));
797 pPhysRPAir->add(pAlTransDetInRPMainPoint);
799 pPhysRPAir->add(pPhysObj);
803 sprintf(szLabel,
"LogRPSupport[%02d]",eRPName);
804 pLogObj=
new GeoLogVol(szLabel,pSolidRPSupport,
m_MapMaterials[
string(
"Steel")]);
805 pPhysObj=
new GeoFullPhysVol(pLogObj);
806 sprintf(szLabel,
"RPSupport[%02d]",eRPName);
807 pPhysRPAir->add(
new GeoNameTag(szLabel));
808 pPhysRPAir->add(pAlTransDetInRPMainPoint);
810 pPhysRPAir->add(pPhysObj);
814 sprintf(szLabel,
"LogG10Substrate[%02d]",eRPName);
815 pLogObj=
new GeoLogVol(szLabel,pSolidG10Shapes,
m_MapMaterials[
string(
"PMMA")]);
817 pPhysObj=
new GeoFullPhysVol(pLogObj);
818 sprintf(szLabel,
"G10Substrate[%02d][%d]",eRPName,
i);
819 pPhysRPAir->add(
new GeoNameTag(szLabel));
820 pPhysRPAir->add(pAlTransDetInRPMainPoint);
822 pPhysRPAir->add(pPhysObj);
827 sprintf(szLabel,
"LogRPSupport[%02d][%d]",eRPName,
i);
828 pLogObj=
new GeoLogVol(szLabel,(*pMapSolidTiPlates)[
i],
m_MapMaterials[
string(
"Titanium")]);
829 pPhysObj=
new GeoFullPhysVol(pLogObj);
830 sprintf(szLabel,
"RPSupport[%02d][%d]",eRPName,
i);
831 pPhysRPAir->add(
new GeoNameTag(szLabel));
832 pPhysRPAir->add(pAlTransDetInRPMainPoint);
834 pPhysRPAir->add(pPhysObj);
847 sprintf(szLabel,
"LogODPlate[%02d][%d]",eRPName,
i);
848 pLogObj=
new GeoLogVol(szLabel,(*pMapSolidOdPlates)[
i],
m_MapMaterials[
string(
"Titanium")]);
849 pPhysObj=
new GeoFullPhysVol(pLogObj);
850 sprintf(szLabel,
"ODPlate[%02d][%d]",eRPName,
i);
851 pPhysRPAir->add(
new GeoNameTag(szLabel));
852 pPhysRPAir->add(pAlTransDetInRPMainPoint);
854 pPhysRPAir->add(pPhysObj);
863 sprintf(szLabel,
"StRPBox[%02d]",eRPName);
866 if(!
sc.isSuccess())
throw std::runtime_error(
"Cannot store alignable record");
868 sprintf(szLabel,
"AlTransRPBox[%02d]",eRPName);
871 if(!
sc.isSuccess())
throw std::runtime_error(
"Cannot store alignable record");
873 sprintf(szLabel,
"AlTransDetInRPMainPoint[%02d]",eRPName);
876 if(!
sc.isSuccess())
throw std::runtime_error(
"Cannot store alignable record");
886 if(pMapSolidOdPlates)
delete pMapSolidOdPlates;
887 if(pMapSolidTiPlates)
delete pMapSolidTiPlates;
◆ CreateAxes()
| void ALFA_DetectorFactory::CreateAxes |
( |
GeoPhysVol * |
pMotherVolume | ) |
|
|
private |
Definition at line 377 of file ALFA_DetectorFactory.cxx.
383 GeoLogVol* pLogBoxX=
new GeoLogVol(
"BoxX",pSolBoxX,
m_MapMaterials[
string(
"PMMA")]);
384 GeoLogVol* pLogBoxY=
new GeoLogVol(
"BoxY",pSolBoxY,
m_MapMaterials[
string(
"PMMA")]);
385 GeoLogVol* pLogBoxZ=
new GeoLogVol(
"BoxZ",pSolBoxZ,
m_MapMaterials[
string(
"PMMA")]);
387 GeoFullPhysVol* pPhysBoxX=
new GeoFullPhysVol(pLogBoxX);
388 GeoFullPhysVol* pPhysBoxY=
new GeoFullPhysVol(pLogBoxY);
389 GeoFullPhysVol* pPhysBoxZ=
new GeoFullPhysVol(pLogBoxZ);
391 pMotherVolume->add(
new GeoNameTag(
"BoxX"));
392 pMotherVolume->add(
new GeoTransform(GeoTrf::Transform3D::Identity()));
393 pMotherVolume->add(pPhysBoxX);
395 pMotherVolume->add(
new GeoNameTag(
"BoxY"));
396 pMotherVolume->add(
new GeoTransform(GeoTrf::Transform3D::Identity()));
397 pMotherVolume->add(pPhysBoxY);
399 pMotherVolume->add(
new GeoNameTag(
"BoxZ"));
400 pMotherVolume->add(
new GeoTransform(GeoTrf::Transform3D::Identity()));
401 pMotherVolume->add(pPhysBoxZ);
◆ CreateSolidAir()
| GeoShape * ALFA_DetectorFactory::CreateSolidAir |
( |
| ) |
|
|
private |
Definition at line 946 of file ALFA_DetectorFactory.cxx.
955 GeoShapeShift * mowe1 =
new GeoShapeShift(RP_Airbox2,RP_Air_Move1);
956 GeoShapeUnion * RP_Airsemi1 =
new GeoShapeUnion(RP_Airbox1, mowe1);
959 GeoShapeShift * mowe2 =
new GeoShapeShift(RP_Airbox3,RP_Air_Move2);
960 GeoShapeUnion * RP_Airsemi2 =
new GeoShapeUnion(RP_Airsemi1, mowe2);
963 GeoShapeShift * mowe3 =
new GeoShapeShift(RP_Airbox4,RP_Air_Move3);
964 GeoShapeUnion * RP_Airsemi3 =
new GeoShapeUnion(RP_Airsemi2, mowe3);
967 GeoShapeShift * mowe4 =
new GeoShapeShift(RP_Airbox4,RP_Air_Move4);
968 GeoShapeUnion * RP_Airsemi4 =
new GeoShapeUnion(RP_Airsemi3, mowe4);
971 GeoShapeShift * mowe5 =
new GeoShapeShift(RP_Airtube1,RP_Air_MoveRot5);
972 GeoShapeUnion * shapeRP_Air =
new GeoShapeUnion(RP_Airsemi4, mowe5);
◆ CreateSolidG10Shapes()
| GeoShape * ALFA_DetectorFactory::CreateSolidG10Shapes |
( |
| ) |
|
|
private |
Definition at line 1024 of file ALFA_DetectorFactory.cxx.
1031 GeoShapeShift* mowe1 =
new GeoShapeShift(G10box1, G10_Move1);
1032 GeoShapeUnion* G10_Subsemi1 =
new GeoShapeUnion(G10trd1, mowe1);
1035 GeoShapeShift* mowe2 =
new GeoShapeShift(G10trd2, G10_Move2);
1036 GeoShapeUnion* shapeG10_Substrate =
new GeoShapeUnion(G10_Subsemi1, mowe2);
1038 return shapeG10_Substrate;
◆ CreateSolidODPlates()
| map< int, GeoShape * > * ALFA_DetectorFactory::CreateSolidODPlates |
( |
| ) |
|
|
private |
Definition at line 1074 of file ALFA_DetectorFactory.cxx.
1077 std::map<int,GeoShape*>* pMapODPlates=
new std::map<int,GeoShape*>();
1084 GeoShapeShift * mowe01 =
new GeoShapeShift(OD_Tibox2,OD_Move01);
1085 GeoShapeUnion * OD_Tisemi01 =
new GeoShapeUnion(OD_Tibox1, mowe01);
1088 GeoShapeShift * mowe02 =
new GeoShapeShift(OD_Tibox3, OD_Move02);
1089 GeoShapeSubtraction * OD_Tisemi02 =
new GeoShapeSubtraction(OD_Tisemi01, mowe02);
1098 GeoShapeShift * mowe04 =
new GeoShapeShift(OD_Tibox6,OD_Move04);
1099 GeoShapeSubtraction * OD_Tisemi04 =
new GeoShapeSubtraction(OD_Titube1, mowe04);
1102 GeoShapeShift * mowe05 =
new GeoShapeShift(OD_Tibox7,OD_Move05);
1103 GeoShapeSubtraction * OD_Tisemi05 =
new GeoShapeSubtraction(OD_Tisemi04, mowe05);
1109 GeoShapeShift * mowe06 =
new GeoShapeShift(OD_Tibox8,OD_Move06);
1110 GeoShapeUnion * OD_Tisemi06 =
new GeoShapeUnion(OD_Tisemi05, mowe06);
1113 GeoShapeShift * mowe07 =
new GeoShapeShift(OD_Tibox9,OD_Move07);
1114 GeoShapeUnion * OD_Tisemi07 =
new GeoShapeUnion(OD_Tisemi06, mowe07);
1119 GeoShapeShift * mowe08 =
new GeoShapeShift(OD_Tisemi07, OD_Move08);
1120 GeoShapeSubtraction * OD_Tisemi08 =
new GeoShapeSubtraction(OD_Tibox5, mowe08);
1123 GeoShapeShift * mowe09 =
new GeoShapeShift(OD_Tisemi07, OD_Move09);
1124 GeoShapeSubtraction * OD_Tisemi09 =
new GeoShapeSubtraction(OD_Tisemi08, mowe09);
1127 GeoShapeShift * mowe11 =
new GeoShapeShift(OD_Tisemi07, OD_Move11);
1128 GeoShapeSubtraction * OD_Tisemi11 =
new GeoShapeSubtraction(OD_Tibox5, mowe11);
1131 GeoShapeShift * mowe12 =
new GeoShapeShift(OD_Tisemi07, OD_Move12);
1132 GeoShapeSubtraction * OD_Tisemi12 =
new GeoShapeSubtraction(OD_Tisemi11, mowe12);
1135 GeoShapeShift * mowe14 =
new GeoShapeShift(OD_Tisemi09,OD_Move14);
1136 GeoShapeUnion * OD_Tisemi14 =
new GeoShapeUnion(OD_Tisemi02, mowe14);
1139 GeoShapeShift * mowe15 =
new GeoShapeShift(OD_Tisemi12,OD_Move15);
1140 GeoShapeUnion * OD_Tisemi15 =
new GeoShapeUnion(OD_Tisemi14, mowe15);
1143 GeoShapeShift * mowe16 =
new GeoShapeShift(OD_Tibox3, OD_Move16);
1144 GeoShapeSubtraction * shapeOD_TiPlate =
new GeoShapeSubtraction(OD_Tisemi15, mowe16);
1146 pMapODPlates->insert(std::pair<int,GeoShape*>(
i,shapeOD_TiPlate));
1149 return pMapODPlates;
◆ CreateSolidRP()
| GeoShape * ALFA_DetectorFactory::CreateSolidRP |
( |
| ) |
|
|
private |
Definition at line 893 of file ALFA_DetectorFactory.cxx.
900 GeoShapeShift * mowe1 =
new GeoShapeShift(RPbox3,RP_Move1);
901 GeoShapeUnion * RPsemi1 =
new GeoShapeUnion(RPbox2, mowe1);
904 GeoShapeShift * mowe2 =
new GeoShapeShift(RPsemi1,RP_Move2);
905 GeoShapeUnion * RPsemi2 =
new GeoShapeUnion(RPbox1, mowe2);
908 GeoShapeShift * mowe3 =
new GeoShapeShift(RPsemi1,RP_Move3);
909 GeoShapeUnion * RPsemi3 =
new GeoShapeUnion(RPsemi2, mowe3);
915 GeoShapeShift * mowe4 =
new GeoShapeShift(RPtube2,RP_Move4);
916 GeoShapeUnion * RPsemi4 =
new GeoShapeUnion(RPtube1, mowe4);
922 GeoShapeShift * mowe5 =
new GeoShapeShift(RPbox4,RP_Move5);
923 GeoShapeUnion * RPsemi5 =
new GeoShapeUnion(RPsemi4, mowe5);
926 GeoShapeShift * mowe6 =
new GeoShapeShift(RPbox5,RP_Move6);
927 GeoShapeUnion * RPsemi6 =
new GeoShapeUnion(RPsemi5, mowe6);
930 GeoShapeShift * mowe7 =
new GeoShapeShift(RPsemi6,RP_MoveRot7);
931 GeoShapeUnion * RPsemi7 =
new GeoShapeUnion(RPsemi3, mowe7);
936 GeoShapeShift * mowe8 =
new GeoShapeShift(RPbox6,RP_MoveRot8);
937 GeoShapeSubtraction * RPsemi8 =
new GeoShapeSubtraction(RPsemi7, mowe8);
940 GeoShapeShift * mowe9 =
new GeoShapeShift(RPbox6,RP_MoveRot9);
941 GeoShapeSubtraction * shapeRP =
new GeoShapeSubtraction(RPsemi8, mowe9);
◆ CreateSolidRPSupport()
| GeoShape * ALFA_DetectorFactory::CreateSolidRPSupport |
( |
| ) |
|
|
private |
Definition at line 1002 of file ALFA_DetectorFactory.cxx.
1010 GeoShapeShift * mowe1 =
new GeoShapeShift(RP_Supbox2, RP_Sup_Move1);
1011 GeoShapeUnion * RP_Supsemi1 =
new GeoShapeUnion(RP_Supbox1, mowe1);
1014 GeoShapeShift * mowe2 =
new GeoShapeShift(RP_Supbox3, RP_Sup_Move2);
1015 GeoShapeUnion * RP_Supsemi2 =
new GeoShapeUnion(RP_Supsemi1, mowe2);
1018 GeoShapeShift * mowe3 =
new GeoShapeShift(RP_Supbox4, RP_Sup_Move3);
1019 GeoShapeUnion * shapeRP_Support =
new GeoShapeUnion(RP_Supsemi2, mowe3);
1021 return shapeRP_Support;
◆ CreateSolidTiPlates()
| map< int, GeoShape * > * ALFA_DetectorFactory::CreateSolidTiPlates |
( |
| ) |
|
|
private |
Definition at line 1041 of file ALFA_DetectorFactory.cxx.
1044 std::map<int,GeoShape*>* pMapTiPlates=
new std::map<int,GeoShape*>();
1052 GeoShapeShift * mowe1 =
new GeoShapeShift(TiPlate_Holder,TiPlate_Move1);
1053 GeoShapeUnion * TiPlatesemi1 =
new GeoShapeUnion(TiPlate_Substr, mowe1);
1059 GeoShapeShift * mowe2 =
new GeoShapeShift(TiPlate_box1, TiPlate_MoveRot2);
1060 GeoShapeShift * mowe3 =
new GeoShapeShift(TiPlate_box1, TiPlate_MoveRot3);
1061 GeoShapeSubtraction * TiPlatesemi2 =
new GeoShapeSubtraction(TiPlatesemi1,mowe2);
1062 GeoShapeSubtraction * TiPlatesemi3 =
new GeoShapeSubtraction(TiPlatesemi2,mowe3);
1065 GeoShapeShift * mowe4 =
new GeoShapeShift(TiPlate_box2, TiPlate_MoveRot4);
1066 GeoShapeSubtraction* shapeTi_Plate =
new GeoShapeSubtraction(TiPlatesemi3, mowe4);
1068 pMapTiPlates->insert(std::pair<int,GeoShape*>(
i,shapeTi_Plate));
1071 return pMapTiPlates;
◆ CreateSolidTrigger()
| GeoShape * ALFA_DetectorFactory::CreateSolidTrigger |
( |
| ) |
|
|
private |
Definition at line 977 of file ALFA_DetectorFactory.cxx.
984 GeoShapeShift * mowe1 =
new GeoShapeShift(ALFA_Trigbox2, ALFA_Trig_MoveRot1);
985 GeoShapeSubtraction * ALFA_Trigsemi1 =
new GeoShapeSubtraction(ALFA_Trigbox1, mowe1);
988 GeoShapeShift * mowe2 =
new GeoShapeShift(ALFA_Trigsemi1,ALFA_Trig_Move2);
989 GeoShapeUnion * ALFA_Trigsemi2 =
new GeoShapeUnion(ALFA_Trigsemi1, mowe2);
992 GeoShapeShift * mowe3 =
new GeoShapeShift(ALFA_Trigbox3,ALFA_Trig_Move3);
993 GeoShapeUnion * ALFA_Trigsemi3 =
new GeoShapeUnion(ALFA_Trigbox3, mowe3);
996 GeoShapeShift * mowe4 =
new GeoShapeShift(ALFA_Trigsemi2,ALFA_Trig_MoveRot4);
997 GeoShapeUnion * shapeALFA_Trigger =
new GeoShapeUnion(ALFA_Trigsemi3, mowe4);
999 return shapeALFA_Trigger;
◆ DefineMaterials()
Definition at line 220 of file ALFA_DetectorFactory.cxx.
223 GeoMaterial* pMaterial;
227 double aH,aB,aC,aN,aO,aNa,aMg,aAl,aSi,aP,aS,aK,aCa,aTi,aCr,aMn,aFe,aNi,aMo,Atot;
229 const GeoElement*
H = pMaterialManager->
getElement(
"Hydrogen");
230 const GeoElement*
B = pMaterialManager->
getElement(
"Boron");
231 const GeoElement*
C = pMaterialManager->
getElement(
"Carbon");
232 const GeoElement*
N = pMaterialManager->
getElement(
"Nitrogen");
233 const GeoElement*
O = pMaterialManager->
getElement(
"Oxygen");
234 const GeoElement* Na = pMaterialManager->
getElement(
"Sodium");
235 const GeoElement* Mg = pMaterialManager->
getElement(
"Magnesium");
236 const GeoElement* Al = pMaterialManager->
getElement(
"Aluminium");
237 const GeoElement* Si = pMaterialManager->
getElement(
"Silicon");
238 const GeoElement*
P = pMaterialManager->
getElement(
"Phosphorus");
239 const GeoElement*
S = pMaterialManager->
getElement(
"Sulfur");
240 const GeoElement* K = pMaterialManager->
getElement(
"Potassium");
241 const GeoElement* Ca = pMaterialManager->
getElement(
"Calcium");
242 const GeoElement* Ti = pMaterialManager->
getElement(
"Titanium");
243 const GeoElement* Cr = pMaterialManager->
getElement(
"Chromium");
244 const GeoElement* Mn = pMaterialManager->
getElement(
"Manganese");
245 const GeoElement* Fe = pMaterialManager->
getElement(
"Iron");
246 const GeoElement* Ni = pMaterialManager->
getElement(
"Nickel");
247 const GeoElement* Mo = pMaterialManager->
getElement(
"Molybdenum");
263 Atot=aFe+aC+aMn+aSi+aP+aS+aCr+aMo+aNi+aN;
265 pMaterial->add(
const_cast<GeoElement*
> (Fe),aFe/Atot);
266 pMaterial->add(
const_cast<GeoElement*
> (
C), aC/Atot);
267 pMaterial->add(
const_cast<GeoElement*
> (Mn),aMn/Atot);
268 pMaterial->add(
const_cast<GeoElement*
> (Si),aSi/Atot);
269 pMaterial->add(
const_cast<GeoElement*
> (
P), aP/Atot);
270 pMaterial->add(
const_cast<GeoElement*
> (
S), aS/Atot);
271 pMaterial->add(
const_cast<GeoElement*
> (Cr),aCr/Atot);
272 pMaterial->add(
const_cast<GeoElement*
> (Mo),aMo/Atot);
273 pMaterial->add(
const_cast<GeoElement*
> (Ni),aNi/Atot);
274 pMaterial->add(
const_cast<GeoElement*
> (
N), aN/Atot);
276 m_MapMaterials.insert(pair<string,GeoMaterial*>(MatName,pMaterial));
283 pMaterial->add(
const_cast<GeoElement*
> (Ti), 1);
285 m_MapMaterials.insert(pair<string,GeoMaterial*>(MatName,pMaterial));
295 pMaterial->add(
const_cast<GeoElement*
> (
H), aH/Atot);
296 pMaterial->add(
const_cast<GeoElement*
> (
C), aC/Atot);
298 m_MapMaterials.insert(pair<string,GeoMaterial*>(MatName,pMaterial));
320 Atot=aH+aB+aC+aN+aO+aNa+aMg+aAl+aSi+aP+aK+aCa+aTi+aFe;
322 pMaterial->add(
const_cast<GeoElement*
> (
H), aH/Atot);
323 pMaterial->add(
const_cast<GeoElement*
> (
B), aB/Atot);
324 pMaterial->add(
const_cast<GeoElement*
> (
C), aC/Atot);
325 pMaterial->add(
const_cast<GeoElement*
> (
N), aN/Atot);
326 pMaterial->add(
const_cast<GeoElement*
> (O), aO/Atot);
327 pMaterial->add(
const_cast<GeoElement*
> (Na),aNa/Atot);
328 pMaterial->add(
const_cast<GeoElement*
> (Mg),aMg/Atot);
329 pMaterial->add(
const_cast<GeoElement*
> (Al),aAl/Atot);
330 pMaterial->add(
const_cast<GeoElement*
> (Si),aSi/Atot);
331 pMaterial->add(
const_cast<GeoElement*
> (
P), aP/Atot);
332 pMaterial->add(
const_cast<GeoElement*
> (K), aK/Atot);
333 pMaterial->add(
const_cast<GeoElement*
> (Ca),aCa/Atot);
334 pMaterial->add(
const_cast<GeoElement*
> (Ti),aTi/Atot);
335 pMaterial->add(
const_cast<GeoElement*
> (Fe),aFe/Atot);
337 m_MapMaterials.insert(pair<string,GeoMaterial*>(MatName,pMaterial));
340 MatName=
"Polystyrene";
347 pMaterial->add(
const_cast<GeoElement*
> (
H), aH/Atot);
348 pMaterial->add(
const_cast<GeoElement*
> (
C), aC/Atot);
350 m_MapMaterials.insert(pair<string,GeoMaterial*>(MatName,pMaterial));
361 pMaterial->add(
const_cast<GeoElement*
> (
H), aH/Atot);
362 pMaterial->add(
const_cast<GeoElement*
> (
C), aC/Atot);
363 pMaterial->add(
const_cast<GeoElement*
> (O), aO/Atot);
365 m_MapMaterials.insert(pair<string,GeoMaterial*>(MatName,pMaterial));
372 MatName=
"std::Vacuum";
◆ getDetectorManager()
◆ operator=()
◆ Point3DInDetector()
| HepGeom::Point3D< double > ALFA_DetectorFactory::Point3DInDetector |
( |
eRPotName |
eRPName | ) |
|
|
private |
Definition at line 1860 of file ALFA_DetectorFactory.cxx.
1862 MsgStream LogStream(
Athena::getMessageSvc(),
"ALFA_DetectorFactory::Point3DInDetector(eRPotName eRPName)");
1863 HepGeom::Point3D<double>
Point;
1892 LogStream << MSG::WARNING <<
"Unknown Roman pot, transformation point will be set to default (zero) value" <<
endmsg;
◆ ReadGeometry()
| bool ALFA_DetectorFactory::ReadGeometry |
( |
bool |
bAlignCorrections = false | ) |
|
!!
Definition at line 105 of file ALFA_DetectorFactory.cxx.
110 list<eRPotName>::const_iterator iterRPName;
142 throw GaudiException(
" Could not load geometry ",
"ALFA_DetectorFactory::ReadGeometry", StatusCode::FAILURE);
◆ SaveGeometry()
| void ALFA_DetectorFactory::SaveGeometry |
( |
| ) |
|
|
private |
Definition at line 152 of file ALFA_DetectorFactory.cxx.
167 strcpy(szPrefix,
"ideal");
170 strcpy(szPrefix,
"real");
173 strcpy(szPrefix,
"realdb");
179 sprintf(szFilename,
"%sgeometry_MD_RP-%s.txt",szPrefix,
m_pGeoReader->GetRPotLabel(eRPName));
181 LogStream<<
MSG::INFO<<
"The MD fiber geometry was stored in the "<<szFilename<<
" file"<<
endmsg;
192 strcpy(szPrefix,
"ideal");
195 strcpy(szPrefix,
"real");
198 strcpy(szPrefix,
"realdb");
204 sprintf(szFilename,
"%sgeometry_OD_RP-%s.txt",szPrefix,
m_pGeoReader->GetRPotLabel(eRPName));
206 LogStream<<
MSG::INFO<<
"The OD fiber geometry was stored in the "<<szFilename<<
" file"<<
endmsg;
214 sprintf(szFilename,
"geometryinfo_MD_RP-%s.txt",
m_pGeoReader->GetRPotLabel(eRPName));
215 m_pGeoReader->SaveRPGeometryParams(eRPName, szFilename);
216 LogStream<<
MSG::INFO<<
"RP geometry info was stored in the "<<szFilename<<
" file"<<
endmsg;
◆ SelectRPots()
| void ALFA_DetectorFactory::SelectRPots |
( |
| ) |
|
|
private |
◆ UpdateTransforms()
Definition at line 1898 of file ALFA_DetectorFactory.cxx.
1905 GeoAlignableTransform* pAlTrans;
1920 sprintf(szLabel,
"AlTransRPBox[%02d]",eRPName);
1922 if(
sc==StatusCode::SUCCESS){
1928 sprintf(szLabel,
"AlTransDetInRPMainPoint[%02d]",eRPName);
1930 if(
sc==StatusCode::SUCCESS){
◆ UserTransformInDetector()
| HepGeom::Transform3D ALFA_DetectorFactory::UserTransformInDetector |
( |
eRPotName |
eRPName | ) |
|
|
private |
Definition at line 1784 of file ALFA_DetectorFactory.cxx.
1786 MsgStream LogStream(
Athena::getMessageSvc(),
"ALFA_DetectorFactory::UserHepGeom::Transform3DInDetector(eRPotName eRPName)");
1788 CLHEP::HepRep3x3 matRotation;
1834 LogStream << MSG::WARNING <<
"Unknown Roman pot, detector transformation will be set to default (zero) values" <<
endmsg;
1835 structUserTransform.
fAngle = 0.0;
1836 structUserTransform.
vecRotation = CLHEP::Hep3Vector(0.0, 0.0, 0.0);
1837 structUserTransform.
vecTranslation = CLHEP::Hep3Vector(0.0, 0.0, 0.0);
1840 double fPhi = structUserTransform.
fAngle;
1842 CLHEP::Hep3Vector vRotation = CLHEP::Hep3Vector(structUserTransform.
vecRotation);
1843 CLHEP::Hep3Vector vTranslation = CLHEP::Hep3Vector(structUserTransform.
vecTranslation);
1845 matRotation.xx_ = vRotation.x()*vRotation.x()*(1 -
cos(fPhi)) +
cos(fPhi);
1846 matRotation.xy_ = vRotation.x()*vRotation.y()*(1 -
cos(fPhi)) - vRotation.z()*
sin(fPhi);
1847 matRotation.xz_ = vRotation.x()*vRotation.z()*(1 -
cos(fPhi)) + vRotation.y()*
sin(fPhi);
1849 matRotation.yx_ = vRotation.y()*vRotation.x()*(1 -
cos(fPhi)) + vRotation.z()*
sin(fPhi);
1850 matRotation.yy_ = vRotation.y()*vRotation.y()*(1 -
cos(fPhi)) +
cos(fPhi);
1851 matRotation.yz_ = vRotation.y()*vRotation.z()*(1 -
cos(fPhi)) - vRotation.x()*
sin(fPhi);
1853 matRotation.zx_ = vRotation.z()*vRotation.x()*(1 -
cos(fPhi)) - vRotation.y()*
sin(fPhi);
1854 matRotation.zy_ = vRotation.z()*vRotation.y()*(1 -
cos(fPhi)) + vRotation.x()*
sin(fPhi);
1855 matRotation.zz_ = vRotation.z()*vRotation.z()*(1 -
cos(fPhi)) +
cos(fPhi);
◆ UserTransformInStation()
| HepGeom::Transform3D ALFA_DetectorFactory::UserTransformInStation |
( |
eRPotName |
eRPName | ) |
|
|
private |
Definition at line 1708 of file ALFA_DetectorFactory.cxx.
1710 MsgStream LogStream(
Athena::getMessageSvc(),
"ALFA_DetectorFactory::UserHepGeom::Transform3DInStation(eRPotName eRPName)");
1712 CLHEP::HepRep3x3 matRotation;
1758 LogStream << MSG::WARNING <<
"Unknown Roman pot, station transformation will be set to default (zero) values" <<
endmsg;
1759 structUserTransform.
fAngle = 0.0;
1760 structUserTransform.
vecRotation = CLHEP::Hep3Vector(0.0, 0.0, 0.0);
1761 structUserTransform.
vecTranslation = CLHEP::Hep3Vector(0.0, 0.0, 0.0);
1764 double fPhi = structUserTransform.
fAngle;
1766 CLHEP::Hep3Vector vRotation = CLHEP::Hep3Vector(structUserTransform.
vecRotation);
1767 CLHEP::Hep3Vector vTranslation = CLHEP::Hep3Vector(structUserTransform.
vecTranslation);
1769 matRotation.xx_ = vRotation.x()*vRotation.x()*(1 -
cos(fPhi)) +
cos(fPhi);
1770 matRotation.xy_ = vRotation.x()*vRotation.y()*(1 -
cos(fPhi)) - vRotation.z()*
sin(fPhi);
1771 matRotation.xz_ = vRotation.x()*vRotation.z()*(1 -
cos(fPhi)) + vRotation.y()*
sin(fPhi);
1773 matRotation.yx_ = vRotation.y()*vRotation.x()*(1 -
cos(fPhi)) + vRotation.z()*
sin(fPhi);
1774 matRotation.yy_ = vRotation.y()*vRotation.y()*(1 -
cos(fPhi)) +
cos(fPhi);
1775 matRotation.yz_ = vRotation.y()*vRotation.z()*(1 -
cos(fPhi)) - vRotation.x()*
sin(fPhi);
1777 matRotation.zx_ = vRotation.z()*vRotation.x()*(1 -
cos(fPhi)) - vRotation.y()*
sin(fPhi);
1778 matRotation.zy_ = vRotation.z()*vRotation.y()*(1 -
cos(fPhi)) + vRotation.x()*
sin(fPhi);
1779 matRotation.zz_ = vRotation.z()*vRotation.z()*(1 -
cos(fPhi)) +
cos(fPhi);
◆ m_Config
◆ m_eRequestedMetrologyType
◆ m_ListExistingRPots
| std::list<eRPotName> ALFA_DetectorFactory::m_ListExistingRPots |
|
private |
◆ m_MapMaterials
| std::map<std::string,const GeoMaterial*> ALFA_DetectorFactory::m_MapMaterials |
|
private |
◆ m_pDetectorManager
◆ m_pDetectorStore
◆ m_pGeoReader
◆ m_pIRDBAccess
The documentation for this class was generated from the following files:
void AddBeamPipeInStation(GeoFullPhysVol *pPhysStation, const char *pszStationLabel)
#define BEAMPIPEINNERRADIUS
std::vector< double > vecTransformInDetectorA7L1U
std::vector< double > vecTransformInDetectorB7L1L
std::vector< double > pointTransformInDetectorA7L1L
std::vector< double > pointTransformInDetectorA7R1L
std::vector< double > vecTransformInStationB7R1U
std::vector< double > vecTransformInDetectorA7R1L
void AddGlobalVacuumSensorInStation(GeoFullPhysVol *pPhysStation, eAStationName eStatName)
std::vector< double > vecTransformInStationB7L1L
std::vector< double > pointTransformInDetectorA7R1U
IRDBAccessSvc * m_pIRDBAccess
StoreGateSvc * m_pDetectorStore
std::vector< bool > bIsTransformInDetector
virtual const GeoElement * getElement(const std::string &name)=0
HepGeom::Point3D< double > IdealMainPoint
GeoShape * CreateSolidG10Shapes()
HepGeom::Transform3D ASTransformInATLAS
std::list< eRPotName > m_ListExistingRPots
struct CFGRPPOSPARAMS::@50 usercorr
ALFA_DetectorManager * m_pDetectorManager
std::unique_ptr< ALFA_GeometryReader > m_pGeoReader
std::vector< double > pointTransformInDetectorB7L1L
HepGeom::Transform3D DetTransformInMainPoint
std::vector< double > vecTransformInStationB7L1U
ChargedTracksWeightFilter::Spline::Point Point
GeoShape * CreateSolidTrigger()
IMessageSvc * getMessageSvc(bool quiet=false)
void ConstructBeampipe(GeoPhysVol *pWorld)
bool ReadGeometry(bool bAlignCorrections=false)
GeoShape * CreateSolidRP()
HepGeom::Transform3D UserTransformOfDetInRPot
std::vector< double > vecTransformInDetectorA7R1U
std::vector< bool > bIsTransformInStation
double fXOffset[RPOTSCNT]
HepGeom::Point3D< double > Point3DInDetector(eRPotName eRPName)
bool bIsEnabledUserTranform
void ConstructAlfaStations(std::map< eAStationName, ALFAPHYSVOLUME > *pmapActiveStations, GeoPhysVol *pWorld)
GEOMETRYCONFIGURATION GeometryConfig
HepGeom::Transform3D RPTransformInStation
std::vector< double > vecTransformInStationA7R1L
::StatusCode StatusCode
StatusCode definition for legacy code.
double fYOffset[RPOTSCNT]
std::vector< double > vecTransformInStationA7L1U
#define ALFASTATIONHSIZEZ
GeoShape * CreateSolidRPSupport()
Eigen::Affine3d Transform3D
eMetrologyType m_eRequestedMetrologyType
void ConstructUFiberCladdings(const eRPotName eRPName, GeoFullPhysVol *pMotherVolume, const HepGeom::Transform3D &MotherTransform, GeoAlignableTransform *pDetTransform)
std::vector< double > pointTransformInDetectorB7L1U
std::map< int, GeoShape * > * CreateSolidTiPlates()
CFGRPPOSPARAMS CfgRPosParams[RPOTSCNT]
void ConstructVFiberCladdings(const eRPotName eRPName, GeoFullPhysVol *pMotherVolume, const HepGeom::Transform3D &MotherTransform, GeoAlignableTransform *pDetTransform)
GeoShape * CreateSolidAir()
struct CFGRPPOSPARAMS::@49 swcorr
std::vector< double > vecTransformInStationA7R1U
std::map< int, GeoShape * > * CreateSolidODPlates()
std::vector< double > vecTransformInDetectorB7R1U
std::vector< double > pointTransformInDetectorB7R1U
Linear spline representation of a function used to calculate weights.
void ConstructODFibers00(const eRPotName eRPName, const int iODPlate, eFiberType eFType, GeoFullPhysVol *pMotherVolume, const HepGeom::Transform3D &MotherTransform, const HepGeom::Transform3D &TransODCladding)
HepGeom::Transform3D Transform
std::vector< double > pointTransformInDetectorA7L1U
HepGeom::Transform3D UserTransformInStation(eRPotName eRPName)
HepGeom::Point3D< double > UserOriginOfDetTransInRPot
std::vector< double > vecTransformInDetectorB7L1U
#define ALFA_GVSTHICKNESS
void CreateAxes(GeoPhysVol *pMotherVolume)
Amg::Transform3D CLHEPTransformToEigen(const HepGeom::Transform3D &CLHEPtransf)
Converts a CLHEP-based HepGeom::Transform3D into an Eigen Amg::Transform3D.
std::vector< double > pointTransformInDetectorB7R1L
std::vector< double > vecTransformInStationB7R1L
std::vector< double > vecTransformInDetectorB7R1L
virtual const GeoMaterial * getMaterial(const std::string &name)=0
#define BEAMPIPEOUTERRADIUS
This class holds one or more material managers and makes them storeable, under StoreGate.
void ConstructODFiberCladdings(const eRPotName eRPName, GeoFullPhysVol *pPhysMotherVolume, const HepGeom::Transform3D &MotherTransform, GeoAlignableTransform *pDetTransform)
void DefineMaterials(StoredMaterialManager *pMaterialManager)
HepGeom::Transform3D UserTransformOfRPInStation
std::vector< double > vecTransformInStationA7L1L
GeoAlignableTransform * getAlignX()
void ConstructODFibers01(const eRPotName eRPName, const int iODPlate, eFiberType eFType, GeoFullPhysVol *pMotherVolume, const HepGeom::Transform3D &MotherTransform, const HepGeom::Transform3D &TransODCladding)
#define ALFAEDGEBEAMPIPEHLENGTH
std::vector< double > vecTransformInDetectorA7L1L
GeoFullPhysVol * pPhysVolume
HepGeom::Transform3D UserTransformInDetector(eRPotName eRPName)
std::map< std::string, const GeoMaterial * > m_MapMaterials