diff --git a/AtlasGeometryCommon/BeamPipeGeoModel/CMakeLists.txt b/AtlasGeometryCommon/BeamPipeGeoModel/CMakeLists.txt index 87f8b8aa5b4f7fb06561e67af728cd164db2b29e..f8006b9f70bd80f9ea67406b789a60ba5f87716b 100644 --- a/AtlasGeometryCommon/BeamPipeGeoModel/CMakeLists.txt +++ b/AtlasGeometryCommon/BeamPipeGeoModel/CMakeLists.txt @@ -8,7 +8,6 @@ atlas_subdir( BeamPipeGeoModel ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC Database/RDBAccessSvc - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities PRIVATE Control/SGTools @@ -20,17 +19,18 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( BeamPipeGeoModelLib src/*.cxx PUBLIC_HEADERS BeamPipeGeoModel - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} GeoModelKernel GeoModelUtilities StoreGateLib SGtests + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${GEOMODEL_LIBRARIES} GeoModelUtilities StoreGateLib PRIVATE_LINK_LIBRARIES SGTools AthenaKernel GaudiKernel ) atlas_add_component( BeamPipeGeoModel src/components/*.cxx INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} GeoModelKernel GeoModelUtilities SGTools StoreGateLib SGtests GaudiKernel BeamPipeGeoModelLib ) + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${GEOMODEL_LIBRARIES} GeoModelUtilities SGTools StoreGateLib GaudiKernel BeamPipeGeoModelLib ) diff --git a/AtlasGeometryCommon/BeamPipeGeoModel/src/BeamPipeDetectorFactory.cxx b/AtlasGeometryCommon/BeamPipeGeoModel/src/BeamPipeDetectorFactory.cxx index ff888b08c639879c83664d7b8df219407061d29f..0838e4a43bcb427a67731d40245e15fd13c48403 100755 --- a/AtlasGeometryCommon/BeamPipeGeoModel/src/BeamPipeDetectorFactory.cxx +++ b/AtlasGeometryCommon/BeamPipeGeoModel/src/BeamPipeDetectorFactory.cxx @@ -15,6 +15,8 @@ #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoFullPhysVol.h" #include "GeoModelKernel/GeoTransform.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" @@ -38,7 +40,7 @@ BeamPipeDetectorFactory::BeamPipeDetectorFactory(StoreGateSvc *detStore, m_materialManager(0), m_detectorStore(detStore), m_access(pAccess), - m_centralRegionZMax(1500*CLHEP::mm) + m_centralRegionZMax(1500*GeoModelKernelUnits::mm) {} BeamPipeDetectorFactory::~BeamPipeDetectorFactory() @@ -67,8 +69,8 @@ void BeamPipeDetectorFactory::create(GeoPhysVol *world) // It is split into 3 sections. // left, right and central. This is to allow different truth scoring in the different regions. - m_centralRegionZMax = 1500 * CLHEP::mm; // For backward compatibility in DB. - if (bpipeGeneral->size() != 0) m_centralRegionZMax = (*bpipeGeneral)[0]->getDouble("CENTRALZMAX") * CLHEP::mm; + m_centralRegionZMax = 1500 * GeoModelKernelUnits::mm; // For backward compatibility in DB. + if (bpipeGeneral->size() != 0) m_centralRegionZMax = (*bpipeGeneral)[0]->getDouble("CENTRALZMAX") * GeoModelKernelUnits::mm; EnvelopeShapes envelopes; @@ -102,16 +104,16 @@ void BeamPipeDetectorFactory::create(GeoPhysVol *world) double beamy = 0.0; double beamz = 0.0; if (bpipePosition->size() != 0) { - beamx = (*bpipePosition)[0]->getDouble("POSX") * CLHEP::mm; - beamy = (*bpipePosition)[0]->getDouble("POSY") * CLHEP::mm; - beamz = (*bpipePosition)[0]->getDouble("POSZ") * CLHEP::mm; + beamx = (*bpipePosition)[0]->getDouble("POSX") * GeoModelKernelUnits::mm; + beamy = (*bpipePosition)[0]->getDouble("POSY") * GeoModelKernelUnits::mm; + beamz = (*bpipePosition)[0]->getDouble("POSZ") * GeoModelKernelUnits::mm; } // Only shift the central section // Central world->add(tag); - world->add(new GeoTransform(HepGeom::Translate3D(beamx,beamy,beamz))); + world->add(new GeoTransform(GeoTrf::Translate3D(beamx,beamy,beamz))); world->add(pvMotherCentral); m_detectorManager->addTreeTop(pvMotherCentral); // @@ -122,7 +124,7 @@ void BeamPipeDetectorFactory::create(GeoPhysVol *world) // FwdMinus world->add(tag); - world->add(new GeoTransform(HepGeom::RotateY3D(180*CLHEP::degree))); + world->add(new GeoTransform(GeoTrf::RotateY3D(180*GeoModelKernelUnits::degree))); world->add(pvMotherFwdMinus); m_detectorManager->addTreeTop(pvMotherFwdMinus); @@ -148,12 +150,12 @@ void BeamPipeDetectorFactory::addSections(GeoPhysVol* parent, int region) for (unsigned int itemp=0; itemp<bpipeSections->size(); itemp++) { std::string material = (*bpipeSections)[itemp]->getString("MATERIAL"); - double rMin1 = (*bpipeSections)[itemp]->getDouble("RMIN1") * CLHEP::mm; - double rMax1 = (*bpipeSections)[itemp]->getDouble("RMAX1") * CLHEP::mm; - double rMin2 = (*bpipeSections)[itemp]->getDouble("RMIN2") * CLHEP::mm; - double rMax2 = (*bpipeSections)[itemp]->getDouble("RMAX2") * CLHEP::mm; - double z = (*bpipeSections)[itemp]->getDouble("Z") * CLHEP::mm; - double dZ = (*bpipeSections)[itemp]->getDouble("DZ") * CLHEP::mm; + double rMin1 = (*bpipeSections)[itemp]->getDouble("RMIN1") * GeoModelKernelUnits::mm; + double rMax1 = (*bpipeSections)[itemp]->getDouble("RMAX1") * GeoModelKernelUnits::mm; + double rMin2 = (*bpipeSections)[itemp]->getDouble("RMIN2") * GeoModelKernelUnits::mm; + double rMax2 = (*bpipeSections)[itemp]->getDouble("RMAX2") * GeoModelKernelUnits::mm; + double z = (*bpipeSections)[itemp]->getDouble("Z") * GeoModelKernelUnits::mm; + double dZ = (*bpipeSections)[itemp]->getDouble("DZ") * GeoModelKernelUnits::mm; int secNum = (*bpipeSections)[itemp]->getInt("SECNUM"); double zmin = z - dZ; @@ -204,7 +206,7 @@ void BeamPipeDetectorFactory::addSections(GeoPhysVol* parent, int region) shape = new GeoCons(rMin1,rMin2, rMax1,rMax2, dZnew, - 0*CLHEP::deg,360*CLHEP::deg); + 0*GeoModelKernelUnits::deg,360*GeoModelKernelUnits::deg); isTube = false; } @@ -221,7 +223,7 @@ void BeamPipeDetectorFactory::addSections(GeoPhysVol* parent, int region) pvSection->ref(); // Determine if this is a geometry where the first section can act as the mother of the following - // sections. The following sections are only added to this if their ave CLHEP::radius is within the CLHEP::radial + // sections. The following sections are only added to this if their ave GeoModelKernelUnits::radius is within the GeoModelKernelUnits::radial // extent and their ave z is within the z extent. // As soon as one section fails to meet this the latter sections are not considered. if(secNum==1) { @@ -240,7 +242,7 @@ void BeamPipeDetectorFactory::addSections(GeoPhysVol* parent, int region) GeoTransform* tfSection = 0; - if (znew != 0 && (secNum==1 || !addToFirstSection)) tfSection = new GeoTransform(HepGeom::TranslateZ3D(znew)); + if (znew != 0 && (secNum==1 || !addToFirstSection)) tfSection = new GeoTransform(GeoTrf::TranslateZ3D(znew)); GeoNameTag* ntSection = new GeoNameTag(name); ntSection->ref(); @@ -267,10 +269,10 @@ void BeamPipeDetectorFactory::addSections(GeoPhysVol* parent, int region) GeoTransform* tfSectionRot = 0; if (isTube) { // No need for rotation. - tfSectionRot = new GeoTransform(HepGeom::TranslateZ3D(-znew)); + tfSectionRot = new GeoTransform(GeoTrf::TranslateZ3D(-znew)); } else { // For cone we need to rotate around Y axis. - tfSectionRot = new GeoTransform(HepGeom::TranslateZ3D(-znew)*HepGeom::RotateY3D(180*CLHEP::deg)); + tfSectionRot = new GeoTransform(GeoTrf::TranslateZ3D(-znew)*GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg)); } parent->add(ntSection); parent->add(tfSectionRot); @@ -303,8 +305,8 @@ BeamPipeDetectorFactory::makeEnvelope(IRDBRecordset_ptr bpipeEnvelope) std::vector<EnvelopeEntry> fwdEntry; for (unsigned int i=0; i<bpipeEnvelope->size(); i++) { - double z = (*bpipeEnvelope)[i]->getDouble("Z") * CLHEP::mm; - double r = (*bpipeEnvelope)[i]->getDouble("R") * CLHEP::mm; + double z = (*bpipeEnvelope)[i]->getDouble("Z") * GeoModelKernelUnits::mm; + double r = (*bpipeEnvelope)[i]->getDouble("R") * GeoModelKernelUnits::mm; EnvelopeEntry entry(z,r); if (z < m_centralRegionZMax) { centralEntry.push_back(entry); @@ -327,7 +329,7 @@ BeamPipeDetectorFactory::makeEnvelope(IRDBRecordset_ptr bpipeEnvelope) envelopes.centralShape = new GeoTube(0, rFwd, m_centralRegionZMax); } else { // This case probably will never get used and is untested. - GeoPcon* pcone = new GeoPcon(0, 360*CLHEP::deg); + GeoPcon* pcone = new GeoPcon(0, 360*GeoModelKernelUnits::deg); pcone->addPlane(-m_centralRegionZMax,0,rFwd); for (int i=centralEntry.size()-1; i>=0; i--) { @@ -347,12 +349,12 @@ BeamPipeDetectorFactory::makeEnvelope(IRDBRecordset_ptr bpipeEnvelope) // forward { - GeoPcon* pcone = new GeoPcon(0, 360*CLHEP::deg); + GeoPcon* pcone = new GeoPcon(0, 360*GeoModelKernelUnits::deg); pcone->addPlane(m_centralRegionZMax,0,rFwd); if (fwdEntry.size() == 0) { // Unlikely case but for completeness // we make small fwd region if everything is in central region. - pcone->addPlane(m_centralRegionZMax+0.1*CLHEP::mm,0,rFwd); + pcone->addPlane(m_centralRegionZMax+0.1*GeoModelKernelUnits::mm,0,rFwd); } for (unsigned int i=0; i<fwdEntry.size(); i++) { double z = fwdEntry[i].z(); @@ -371,12 +373,12 @@ BeamPipeDetectorFactory::EnvelopeShapes BeamPipeDetectorFactory::makeEnvelopeOld(IRDBRecordset_ptr atlasMother) { - double iir = (*atlasMother)[0]->getDouble("IDETIR")*CLHEP::cm; - double cir = (*atlasMother)[0]->getDouble("CALOIR")*CLHEP::cm; - double mir = (*atlasMother)[0]->getDouble("MUONIR")*CLHEP::cm; - double totlen = (*atlasMother)[0]->getDouble("ZMAX")*CLHEP::cm; - double ilen = (*atlasMother)[0]->getDouble("IDETZMX")*CLHEP::cm; - double clen = (*atlasMother)[0]->getDouble("CALOZMX")*CLHEP::cm; + double iir = (*atlasMother)[0]->getDouble("IDETIR")*GeoModelKernelUnits::cm; + double cir = (*atlasMother)[0]->getDouble("CALOIR")*GeoModelKernelUnits::cm; + double mir = (*atlasMother)[0]->getDouble("MUONIR")*GeoModelKernelUnits::cm; + double totlen = (*atlasMother)[0]->getDouble("ZMAX")*GeoModelKernelUnits::cm; + double ilen = (*atlasMother)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; + double clen = (*atlasMother)[0]->getDouble("CALOZMX")*GeoModelKernelUnits::cm; // Central Section. GeoTube * bpipeCentralShape = new GeoTube(0, iir, m_centralRegionZMax); @@ -386,7 +388,7 @@ BeamPipeDetectorFactory::makeEnvelopeOld(IRDBRecordset_ptr atlasMother) // Right section (+ve z) - GeoPcon* bpipeEnvPcone = new GeoPcon(0, 360*CLHEP::deg); + GeoPcon* bpipeEnvPcone = new GeoPcon(0, 360*GeoModelKernelUnits::deg); bpipeEnvPcone->addPlane(m_centralRegionZMax,0,iir); bpipeEnvPcone->addPlane(ilen,0,iir); bpipeEnvPcone->addPlane(ilen,0,cir); diff --git a/AtlasGeometryCommon/CavernInfraGeoModel/CMakeLists.txt b/AtlasGeometryCommon/CavernInfraGeoModel/CMakeLists.txt index 5309743d9e32f2c9404d53ea6747ed94ab8997b0..b8b5a6b095be08f9fc03057f32f75abe1f933927 100644 --- a/AtlasGeometryCommon/CavernInfraGeoModel/CMakeLists.txt +++ b/AtlasGeometryCommon/CavernInfraGeoModel/CMakeLists.txt @@ -9,7 +9,6 @@ atlas_subdir( CavernInfraGeoModel ) atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel Database/RDBAccessSvc - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities PRIVATE Control/StoreGate @@ -18,15 +17,16 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) +find_package( Eigen ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( CavernInfraGeoModel src/*.cxx src/components/*.cxx INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} GeoModelKernel GeoModelUtilities StoreGateLib SGtests GaudiKernel ) + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} GeoModelUtilities StoreGateLib SGtests GaudiKernel ) # Install files from the package: atlas_install_headers( CavernInfraGeoModel ) diff --git a/AtlasGeometryCommon/CavernInfraGeoModel/src/CavernInfraDetectorFactory.cxx b/AtlasGeometryCommon/CavernInfraGeoModel/src/CavernInfraDetectorFactory.cxx index 39c25768280b9f56bb45e0a1550f009f94364a5c..e1678ccd3d139c957facc71f14f0cdad3b5897cb 100755 --- a/AtlasGeometryCommon/CavernInfraGeoModel/src/CavernInfraDetectorFactory.cxx +++ b/AtlasGeometryCommon/CavernInfraGeoModel/src/CavernInfraDetectorFactory.cxx @@ -79,20 +79,20 @@ void CavernInfraDetectorFactory::create(GeoPhysVol *world) //// -----------------------------------Build SX1------------------------------------------ recordIndex = elementMap["SX1"]; - double SX1Xpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; - double SX1Ypos = (*cavernElements)[recordIndex]->getDouble("YPOS")*CLHEP::m; - double SX1Zpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; - double SX1HalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::m; - double SX1HalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::m; - double SX1HalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; + double SX1Xpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; + double SX1Ypos = (*cavernElements)[recordIndex]->getDouble("YPOS")*GeoModelKernelUnits::m; + double SX1Zpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; + double SX1HalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::m; + double SX1HalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::m; + double SX1HalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; recordIndex = elementMap["SX1Air"]; - double SX1AirYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*CLHEP::m; - double SX1AirHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::m; - double SX1AirHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::m; - double SX1AirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; + double SX1AirYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*GeoModelKernelUnits::m; + double SX1AirHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::m; + double SX1AirHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::m; + double SX1AirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; - GeoTransform *s1XYZt = new GeoTransform(HepGeom::Translate3D(SX1Xpos,SX1Ypos,SX1Zpos)); //1.7 -8.7 + GeoTransform *s1XYZt = new GeoTransform(GeoTrf::Translate3D(SX1Xpos,SX1Ypos,SX1Zpos)); //1.7 -8.7 world->add(s1XYZt); GeoBox *SX1 = new GeoBox(SX1HalfWidth ,SX1HalfHeight, SX1HalfLength); // 11.7, 6.5, 42.3 GeoLogVol *lvsx1s = new GeoLogVol("SX1Steel",SX1,shieldSteel); @@ -101,7 +101,7 @@ void CavernInfraDetectorFactory::create(GeoPhysVol *world) world->add(sx1); - GeoTransform *s1z = new GeoTransform(HepGeom::TranslateY3D(SX1AirYpos)); + GeoTransform *s1z = new GeoTransform(GeoTrf::TranslateY3D(SX1AirYpos)); sx1->add(s1z); GeoBox *SX1Air = new GeoBox( SX1AirHalfWidth, SX1AirHalfHeight, SX1AirHalfLength); GeoLogVol *lvsx1a = new GeoLogVol("SX1Air",SX1Air,air); @@ -112,49 +112,49 @@ void CavernInfraDetectorFactory::create(GeoPhysVol *world) //// ------------------First: Build cavern with concrete----------------------------- recordIndex = elementMap["WallACConc"]; - double WallACConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double WallACConcMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::m; - double WallACConcMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::m; + double WallACConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double WallACConcMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::m; + double WallACConcMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::m; double WallACConcSphi= (*cavernElements)[recordIndex]->getDouble("SPHI"); double WallACConcDphi= (*cavernElements)[recordIndex]->getDouble("DPHI"); recordIndex = elementMap["BoxConc"]; - double BoxConcHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::m; - double BoxConcHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::m; - double BoxConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; + double BoxConcHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::m; + double BoxConcHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::m; + double BoxConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; recordIndex = elementMap["VaultConc"]; - double VaultConcZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double VaultConcZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; double VaultConcYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); - double VaultConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double VaultConcMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::m; - double VaultConcMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::m; + double VaultConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double VaultConcMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::m; + double VaultConcMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::m; double VaultConcSphi= (*cavernElements)[recordIndex]->getDouble("SPHI"); double VaultConcDphi= (*cavernElements)[recordIndex]->getDouble("DPHI"); recordIndex = elementMap["HallConc"]; - double HallConcHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::m; - double HallConcHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::m; - double HallConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; + double HallConcHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::m; + double HallConcHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::m; + double HallConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; recordIndex = elementMap["BoxConcW"]; - double BoxConcWZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double BoxConcWZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; double BoxConcWYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); recordIndex = elementMap["BoxConcVleft"]; - double BoxConcVleftZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double BoxConcVleftZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; double BoxConcVleftYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); recordIndex = elementMap["BoxConcVright"]; - double BoxConcVrightZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double BoxConcVrightZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; double BoxConcVrightYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); recordIndex = elementMap["SurfaceFloor"]; - double SurfaceFloorXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; - double SurfaceFloorZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; - double SurfaceFloorHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::m; - double SurfaceFloorHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::m; - double SurfaceFloorHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; + double SurfaceFloorXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; + double SurfaceFloorZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; + double SurfaceFloorHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::m; + double SurfaceFloorHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::m; + double SurfaceFloorHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; GeoTubs *WallACConcrete = new GeoTubs(WallACConcMinR, WallACConcMaxR, WallACConcHalfHeight, WallACConcSphi, WallACConcDphi); @@ -163,51 +163,51 @@ void CavernInfraDetectorFactory::create(GeoPhysVol *world) GeoBox *HallConcrete = new GeoBox(HallConcHalfLength, HallConcHalfWidth, HallConcHalfHeight); GeoBox *SurfaceFloor = new GeoBox(SurfaceFloorHalfLength, SurfaceFloorHalfWidth, SurfaceFloorHalfHeight); - HepGeom::Transform3D BoxCutWallConc = HepGeom::TranslateZ3D(BoxConcWZpos)*HepGeom::RotateY3D(BoxConcWYrotate); - HepGeom::Transform3D BoxCutVaultLeftConc = HepGeom::TranslateZ3D(BoxConcVleftZpos)*HepGeom::RotateY3D(BoxConcVleftYrotate); - HepGeom::Transform3D BoxCutVaulRightConc = HepGeom::TranslateZ3D(BoxConcVrightZpos)*HepGeom::RotateY3D(BoxConcVrightYrotate); + GeoTrf::Transform3D BoxCutWallConc = GeoTrf::TranslateZ3D(BoxConcWZpos)*GeoTrf::RotateY3D(BoxConcWYrotate); + GeoTrf::Transform3D BoxCutVaultLeftConc = GeoTrf::TranslateZ3D(BoxConcVleftZpos)*GeoTrf::RotateY3D(BoxConcVleftYrotate); + GeoTrf::Transform3D BoxCutVaulRightConc = GeoTrf::TranslateZ3D(BoxConcVrightZpos)*GeoTrf::RotateY3D(BoxConcVrightYrotate); recordIndex = elementMap["HoleJN"]; - double HoleJNrmin = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::mm; - double HoleJNrmax = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::mm; - double HoleJNdz = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::mm; + double HoleJNrmin = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::mm; + double HoleJNrmax = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::mm; + double HoleJNdz = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::mm; GeoTubs *HoleJN = new GeoTubs(HoleJNrmin,HoleJNrmax,HoleJNdz, 0.,2.*M_PI); // should be 2300mm in radius recordIndex = elementMap["WallAAir"]; - double WallAAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; - double WallAAirXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; + double WallAAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; + double WallAAirXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; recordIndex = elementMap["WallCAir"]; - double WallCAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; - double WallCAirXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; + double WallCAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; + double WallCAirXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; double WallCAirZrotate = (*cavernElements)[recordIndex]->getDouble("ZROTATE"); //---------------- Cut the vault and side walls---------------------------- - const GeoShape & CutWallConc = (*WallACConcrete).subtract((*BoxConc) << HepGeom::Transform3D(BoxCutWallConc)). - subtract((*HoleJN) << HepGeom::RotateY3D(M_PI*0.5) << HepGeom::TranslateZ3D(-0.5*WallAAirZpos)*HepGeom::TranslateY3D(-WallCAirXpos*1.0) ); - const GeoShape & CutVaultConc = (*VaultConcrete).subtract((*BoxConc) << HepGeom::Transform3D(BoxCutVaultLeftConc)). - subtract((*BoxConc) << HepGeom::Transform3D(BoxCutVaulRightConc)); + const GeoShape & CutWallConc = (*WallACConcrete).subtract((*BoxConc) << GeoTrf::Transform3D(BoxCutWallConc)). + subtract((*HoleJN) << GeoTrf::RotateY3D(M_PI*0.5) << GeoTrf::TranslateZ3D(-0.5*WallAAirZpos)*GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ); + const GeoShape & CutVaultConc = (*VaultConcrete).subtract((*BoxConc) << GeoTrf::Transform3D(BoxCutVaultLeftConc)). + subtract((*BoxConc) << GeoTrf::Transform3D(BoxCutVaulRightConc)); recordIndex = elementMap["ShaftCut"]; - double ShaftCutZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double ShaftCutZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; double ShaftCutYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); - double ShaftCutHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double ShaftCutMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::m; - double ShaftCutMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::m; + double ShaftCutHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double ShaftCutMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::m; + double ShaftCutMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::m; recordIndex = elementMap["PX14Conc"]; - double PX14ConcXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; - double PX14ConcYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*CLHEP::m; - double PX14ConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double PX14ConcMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::m; - double PX14ConcMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::m; + double PX14ConcXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; + double PX14ConcYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*GeoModelKernelUnits::m; + double PX14ConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double PX14ConcMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::m; + double PX14ConcMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::m; recordIndex = elementMap["PX16Conc"]; - double PX16ConcXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; - double PX16ConcYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*CLHEP::m; - double PX16ConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double PX16ConcMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::m; - double PX16ConcMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::m; + double PX16ConcXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; + double PX16ConcYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*GeoModelKernelUnits::m; + double PX16ConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double PX16ConcMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::m; + double PX16ConcMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::m; //--------------- Build concrete shafts------------------------------. GeoTube *ShaftCut = new GeoTube(ShaftCutMinR, ShaftCutMaxR, ShaftCutHalfHeight); @@ -215,41 +215,41 @@ void CavernInfraDetectorFactory::create(GeoPhysVol *world) GeoTube *PX16Conc = new GeoTube(PX16ConcMinR, PX16ConcMaxR, PX16ConcHalfHeight); const GeoShape & ShaftsConc= - ((*PX14Conc) << HepGeom::TranslateX3D(PX14ConcXpos)*HepGeom::TranslateY3D(PX14ConcYpos)). - add((*PX16Conc) << HepGeom::TranslateX3D(PX16ConcXpos)*HepGeom::TranslateY3D(PX16ConcYpos)). - subtract((*ShaftCut) << HepGeom::TranslateZ3D(ShaftCutZpos)*HepGeom::RotateY3D(ShaftCutYrotate)); + ((*PX14Conc) << GeoTrf::TranslateX3D(PX14ConcXpos)*GeoTrf::TranslateY3D(PX14ConcYpos)). + add((*PX16Conc) << GeoTrf::TranslateX3D(PX16ConcXpos)*GeoTrf::TranslateY3D(PX16ConcYpos)). + subtract((*ShaftCut) << GeoTrf::TranslateZ3D(ShaftCutZpos)*GeoTrf::RotateY3D(ShaftCutYrotate)); recordIndex = elementMap["WallCConc"]; - double WallCConcZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; - double WallCConcXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; + double WallCConcZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; + double WallCConcXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; double WallCConcZrotate = (*cavernElements)[recordIndex]->getDouble("ZROTATE"); recordIndex = elementMap["WallAConc"]; - double WallAConcZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; - double WallAConcXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; + double WallAConcZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; + double WallAConcXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; recordIndex = elementMap["ShaftsConc"]; - double ShaftsConcZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double ShaftsConcZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; //--------------- Build concrete nose ------------------------------. recordIndex =elementMap["BoxConcJN"]; - double BoxConcJNDX = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::mm; - double BoxConcJNDY = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::mm; - double BoxConcJNDZ = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::mm; - double BoxConcJNXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::mm; + double BoxConcJNDX = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::mm; + double BoxConcJNDY = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::mm; + double BoxConcJNDZ = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::mm; + double BoxConcJNXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::mm; recordIndex =elementMap["BoxConcExtraJN"]; - double BoxConcExtraJNDX = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::mm; - double BoxConcExtraJNDY = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::mm; - double BoxConcExtraJNDZ = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::mm; - double BoxConcExtraJNXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::mm; + double BoxConcExtraJNDX = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::mm; + double BoxConcExtraJNDY = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::mm; + double BoxConcExtraJNDZ = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::mm; + double BoxConcExtraJNXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::mm; double BoxConcExtraJNYpos = (*cavernElements)[recordIndex]->getDouble("YPOS"); recordIndex =elementMap["StrutConcJN"]; - double StrutConcJNDX = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::mm; - double StrutConcJNDY = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::mm; - double StrutConcJNDZ = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::mm; - double StrutConcJNXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::mm; - double StrutConcJNYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*CLHEP::mm; - double StrutConcJNZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::mm; + double StrutConcJNDX = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::mm; + double StrutConcJNDY = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::mm; + double StrutConcJNDZ = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::mm; + double StrutConcJNXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::mm; + double StrutConcJNYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*GeoModelKernelUnits::mm; + double StrutConcJNZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::mm; GeoBox *BoxConcJNC = new GeoBox(BoxConcJNDX,BoxConcJNDY,BoxConcJNDZ); GeoBox *BoxConcJNA = new GeoBox(BoxConcJNDX,BoxConcJNDY,BoxConcJNDZ); @@ -258,77 +258,77 @@ void CavernInfraDetectorFactory::create(GeoPhysVol *world) const GeoBox *StrutConcJN = new GeoBox(StrutConcJNDX,StrutConcJNDY,StrutConcJNDZ); recordIndex = elementMap["CavernAir"]; - double CavernAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double CavernAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; //----------------Assemble everything--------------------------------. const GeoShape & Concrete= (*HallConcrete). - add((CutWallConc << HepGeom::TranslateZ3D(WallCConcZpos)*HepGeom::TranslateX3D(WallCConcXpos)*HepGeom::RotateZ3D(WallCConcZrotate))). - add((ShaftsConc << HepGeom::TranslateZ3D(ShaftsConcZpos))). - add((CutVaultConc << HepGeom::TranslateZ3D(VaultConcZpos)*HepGeom::RotateY3D(VaultConcYrotate))). - add((*SurfaceFloor) << HepGeom::TranslateZ3D(SurfaceFloorZpos)*HepGeom::TranslateX3D(SurfaceFloorXpos)). - add((CutWallConc << HepGeom::TranslateZ3D(WallAConcZpos)*HepGeom::TranslateX3D(WallAConcXpos))). - - add((*BoxConcJNC) << HepGeom::TranslateX3D(BoxConcJNXpos) * HepGeom::TranslateZ3D(-WallAAirZpos*0.5+CavernAirZpos) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) ). - add((*BoxConcStupidExtraJNC) << HepGeom::TranslateX3D(BoxConcExtraJNXpos) * HepGeom::TranslateZ3D(-WallAAirZpos*0.5+CavernAirZpos) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) * HepGeom::TranslateY3D(-BoxConcExtraJNYpos) ). - add((*BoxConcJNA) << HepGeom::TranslateX3D(-BoxConcJNXpos-15*CLHEP::mm) * HepGeom::TranslateZ3D(-WallAAirZpos*0.5+CavernAirZpos) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) ). - add((*BoxConcStupidExtraJNA) << HepGeom::TranslateX3D(-BoxConcExtraJNXpos-15*CLHEP::mm) * HepGeom::TranslateZ3D(-WallAAirZpos*0.5+CavernAirZpos) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) * HepGeom::TranslateY3D(BoxConcExtraJNYpos) ). - - add((*StrutConcJN) << HepGeom::TranslateX3D(StrutConcJNXpos) * HepGeom::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5+CavernAirZpos) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) ). - add((*StrutConcJN) << HepGeom::TranslateX3D(StrutConcJNXpos) * HepGeom::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5+CavernAirZpos) * HepGeom::TranslateY3D(StrutConcJNYpos) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) ). - add((*StrutConcJN) << HepGeom::TranslateX3D(StrutConcJNXpos) * HepGeom::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5+CavernAirZpos) * HepGeom::TranslateY3D(-StrutConcJNYpos) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) ). - add((*StrutConcJN) << HepGeom::TranslateX3D(-StrutConcJNXpos-15.*CLHEP::mm) * HepGeom::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5+CavernAirZpos) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) ). - add((*StrutConcJN) << HepGeom::TranslateX3D(-StrutConcJNXpos-15.*CLHEP::mm) * HepGeom::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5+CavernAirZpos) * HepGeom::TranslateY3D(StrutConcJNYpos) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) ). - add((*StrutConcJN) << HepGeom::TranslateX3D(-StrutConcJNXpos-15.*CLHEP::mm) * HepGeom::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5+CavernAirZpos) * HepGeom::TranslateY3D(-StrutConcJNYpos) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) ); - -// subtract((*HoleJN) << HepGeom::RotateY3D(M_PI*0.5) << HepGeom::TranslateZ3D(-0.5*WallAAirZpos+CavernAirZpos)*HepGeom::TranslateY3D(-WallCAirXpos*1.0) ); -// subtract((*HoleJN) << HepGeom::RotateY3D(M_PI*0.5) << HepGeom::TranslateZ3D(-0.5*WallAAirZpos)*HepGeom::TranslateY3D(-WallCAirXpos*1.0) ); + add((CutWallConc << GeoTrf::TranslateZ3D(WallCConcZpos)*GeoTrf::TranslateX3D(WallCConcXpos)*GeoTrf::RotateZ3D(WallCConcZrotate))). + add((ShaftsConc << GeoTrf::TranslateZ3D(ShaftsConcZpos))). + add((CutVaultConc << GeoTrf::TranslateZ3D(VaultConcZpos)*GeoTrf::RotateY3D(VaultConcYrotate))). + add((*SurfaceFloor) << GeoTrf::TranslateZ3D(SurfaceFloorZpos)*GeoTrf::TranslateX3D(SurfaceFloorXpos)). + add((CutWallConc << GeoTrf::TranslateZ3D(WallAConcZpos)*GeoTrf::TranslateX3D(WallAConcXpos))). + + add((*BoxConcJNC) << GeoTrf::TranslateX3D(BoxConcJNXpos) * GeoTrf::TranslateZ3D(-WallAAirZpos*0.5+CavernAirZpos) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ). + add((*BoxConcStupidExtraJNC) << GeoTrf::TranslateX3D(BoxConcExtraJNXpos) * GeoTrf::TranslateZ3D(-WallAAirZpos*0.5+CavernAirZpos) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) * GeoTrf::TranslateY3D(-BoxConcExtraJNYpos) ). + add((*BoxConcJNA) << GeoTrf::TranslateX3D(-BoxConcJNXpos-15*GeoModelKernelUnits::mm) * GeoTrf::TranslateZ3D(-WallAAirZpos*0.5+CavernAirZpos) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ). + add((*BoxConcStupidExtraJNA) << GeoTrf::TranslateX3D(-BoxConcExtraJNXpos-15*GeoModelKernelUnits::mm) * GeoTrf::TranslateZ3D(-WallAAirZpos*0.5+CavernAirZpos) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) * GeoTrf::TranslateY3D(BoxConcExtraJNYpos) ). + + add((*StrutConcJN) << GeoTrf::TranslateX3D(StrutConcJNXpos) * GeoTrf::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5+CavernAirZpos) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ). + add((*StrutConcJN) << GeoTrf::TranslateX3D(StrutConcJNXpos) * GeoTrf::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5+CavernAirZpos) * GeoTrf::TranslateY3D(StrutConcJNYpos) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ). + add((*StrutConcJN) << GeoTrf::TranslateX3D(StrutConcJNXpos) * GeoTrf::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5+CavernAirZpos) * GeoTrf::TranslateY3D(-StrutConcJNYpos) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ). + add((*StrutConcJN) << GeoTrf::TranslateX3D(-StrutConcJNXpos-15.*GeoModelKernelUnits::mm) * GeoTrf::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5+CavernAirZpos) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ). + add((*StrutConcJN) << GeoTrf::TranslateX3D(-StrutConcJNXpos-15.*GeoModelKernelUnits::mm) * GeoTrf::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5+CavernAirZpos) * GeoTrf::TranslateY3D(StrutConcJNYpos) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ). + add((*StrutConcJN) << GeoTrf::TranslateX3D(-StrutConcJNXpos-15.*GeoModelKernelUnits::mm) * GeoTrf::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5+CavernAirZpos) * GeoTrf::TranslateY3D(-StrutConcJNYpos) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ); + +// subtract((*HoleJN) << GeoTrf::RotateY3D(M_PI*0.5) << GeoTrf::TranslateZ3D(-0.5*WallAAirZpos+CavernAirZpos)*GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ); +// subtract((*HoleJN) << GeoTrf::RotateY3D(M_PI*0.5) << GeoTrf::TranslateZ3D(-0.5*WallAAirZpos)*GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ); //// -----------------------Second: Build cavern with air------------------------------- // Create variables for Concrete Cavern and get index of the record in cavernElements recordIndex = elementMap["WallACAir"]; - double WallACAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double WallACAirMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::m; - double WallACAirMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::m; + double WallACAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double WallACAirMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::m; + double WallACAirMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::m; double WallACAirSphi= (*cavernElements)[recordIndex]->getDouble("SPHI"); double WallACAirDphi= (*cavernElements)[recordIndex]->getDouble("DPHI"); recordIndex = elementMap["BoxAir"]; - double BoxAirHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::m; - double BoxAirHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::m; - double BoxAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; + double BoxAirHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::m; + double BoxAirHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::m; + double BoxAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; recordIndex = elementMap["VaultAir"]; - double VaultAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double VaultAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; double VaultAirYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); - double VaultAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double VaultAirMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::m; - double VaultAirMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::m; + double VaultAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double VaultAirMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::m; + double VaultAirMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::m; double VaultAirSphi= (*cavernElements)[recordIndex]->getDouble("SPHI"); double VaultAirDphi= (*cavernElements)[recordIndex]->getDouble("DPHI"); recordIndex = elementMap["HallAir"]; - double HallAirHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::m; - double HallAirHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::m; - double HallAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; + double HallAirHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::m; + double HallAirHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::m; + double HallAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; recordIndex = elementMap["BaseAir"]; - double BaseAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; - double BaseAirHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::m; - double BaseAirHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::m; - double BaseAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; + double BaseAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; + double BaseAirHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::m; + double BaseAirHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::m; + double BaseAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; recordIndex = elementMap["BoxAirW"]; - double BoxAirWZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double BoxAirWZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; double BoxAirWYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); recordIndex = elementMap["BoxAirVleft"]; - double BoxAirVleftZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double BoxAirVleftZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; double BoxAirVleftYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); recordIndex = elementMap["BoxAirVright"]; - double BoxAirVrightZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double BoxAirVrightZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; double BoxAirVrightYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); GeoTubs *WallACAir = new GeoTubs(WallACAirMinR, WallACAirMaxR, WallACAirHalfHeight, WallACAirSphi, WallACAirDphi); @@ -336,86 +336,86 @@ void CavernInfraDetectorFactory::create(GeoPhysVol *world) GeoTubs *VaultAir = new GeoTubs(VaultAirMinR, VaultAirMaxR, VaultAirHalfHeight, VaultAirSphi, VaultAirDphi); GeoBox *HallAir = new GeoBox(HallAirHalfLength, HallAirHalfWidth, HallAirHalfHeight); GeoBox *BaseAir = new GeoBox(BaseAirHalfLength, BaseAirHalfWidth, BaseAirHalfHeight); - HepGeom::Transform3D BoxCutWallAir = HepGeom::TranslateZ3D(BoxAirWZpos)*HepGeom::RotateY3D(BoxAirWYrotate); - HepGeom::Transform3D BoxCutVaultLeftAir = HepGeom::TranslateZ3D(BoxAirVleftZpos)*HepGeom::RotateY3D(BoxAirVleftYrotate); - HepGeom::Transform3D BoxCutVaulRightAir = HepGeom::TranslateZ3D(BoxAirVrightZpos)*HepGeom::RotateY3D(BoxAirVrightYrotate); + GeoTrf::Transform3D BoxCutWallAir = GeoTrf::TranslateZ3D(BoxAirWZpos)*GeoTrf::RotateY3D(BoxAirWYrotate); + GeoTrf::Transform3D BoxCutVaultLeftAir = GeoTrf::TranslateZ3D(BoxAirVleftZpos)*GeoTrf::RotateY3D(BoxAirVleftYrotate); + GeoTrf::Transform3D BoxCutVaulRightAir = GeoTrf::TranslateZ3D(BoxAirVrightZpos)*GeoTrf::RotateY3D(BoxAirVrightYrotate); //------------------Cut the vault and side walls---------------------------- - const GeoShape & CutWallAir = (*WallACAir).subtract((*BoxAir) << HepGeom::Transform3D(BoxCutWallAir)); - const GeoShape & CutVaultAir = (*VaultAir).subtract((*BoxAir) << HepGeom::Transform3D(BoxCutVaultLeftAir)). - subtract((*BoxAir) << HepGeom::Transform3D(BoxCutVaulRightAir)); + const GeoShape & CutWallAir = (*WallACAir).subtract((*BoxAir) << GeoTrf::Transform3D(BoxCutWallAir)); + const GeoShape & CutVaultAir = (*VaultAir).subtract((*BoxAir) << GeoTrf::Transform3D(BoxCutVaultLeftAir)). + subtract((*BoxAir) << GeoTrf::Transform3D(BoxCutVaulRightAir)); //--------------- Build air shafts------------------------------. recordIndex = elementMap["PX14Air"]; - double PX14AirXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; - double PX14AirYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*CLHEP::m; - double PX14AirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double PX14AirMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::m; - double PX14AirMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::m; + double PX14AirXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; + double PX14AirYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*GeoModelKernelUnits::m; + double PX14AirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double PX14AirMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::m; + double PX14AirMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::m; recordIndex = elementMap["PX16Air"]; - double PX16AirXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; - double PX16AirYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*CLHEP::m; - double PX16AirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double PX16AirMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::m; - double PX16AirMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::m; + double PX16AirXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; + double PX16AirYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*GeoModelKernelUnits::m; + double PX16AirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double PX16AirMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::m; + double PX16AirMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::m; GeoTube *PX14Air = new GeoTube(PX14AirMinR, PX14AirMaxR, PX14AirHalfHeight); GeoTube *PX16Air = new GeoTube(PX16AirMinR, PX16AirMaxR, PX16AirHalfHeight); recordIndex = elementMap["CavShaftsConc"]; - double CavShaftsYPos = (*cavernElements)[recordIndex]->getDouble("YPOS")*CLHEP::m; + double CavShaftsYPos = (*cavernElements)[recordIndex]->getDouble("YPOS")*GeoModelKernelUnits::m; double CavShaftsXrotate = (*cavernElements)[recordIndex]->getDouble("XROTATE"); double CavShaftsYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); const GeoShape & ShaftsAir= - ((*PX14Air) << HepGeom::TranslateX3D(PX14AirXpos)*HepGeom::TranslateY3D(PX14AirYpos)). - add((*PX16Air) << HepGeom::TranslateX3D(PX16AirXpos)*HepGeom::TranslateY3D(PX16AirYpos)); + ((*PX14Air) << GeoTrf::TranslateX3D(PX14AirXpos)*GeoTrf::TranslateY3D(PX14AirYpos)). + add((*PX16Air) << GeoTrf::TranslateX3D(PX16AirXpos)*GeoTrf::TranslateY3D(PX16AirYpos)); //----------------Assemble everything--------------------------------. const GeoShape & CavernAir = (*HallAir). -// add((*AirJN) << HepGeom::RotateY3D(M_PI*0.5) << HepGeom::TranslateZ3D(-0.5*WallAAirZpos)*HepGeom::TranslateY3D(-WallCAirXpos*1.0) ). - add(CutWallAir << HepGeom::TranslateZ3D(WallAAirZpos)*HepGeom::TranslateX3D(WallAAirXpos)). - add(CutWallAir << HepGeom::TranslateZ3D(WallCAirZpos)*HepGeom::TranslateX3D(WallCAirXpos)*HepGeom::RotateZ3D(WallCAirZrotate)). - add(CutVaultAir << HepGeom::TranslateZ3D(VaultAirZpos)*HepGeom::RotateY3D(VaultAirYrotate)). - add((*BaseAir) << HepGeom::TranslateZ3D(BaseAirZpos)). - - subtract((*BoxConcJNC) << HepGeom::TranslateX3D(BoxConcJNXpos) * HepGeom::TranslateZ3D(-WallAAirZpos*0.5) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) ). - subtract((*BoxConcStupidExtraJNC) << HepGeom::TranslateX3D(BoxConcExtraJNXpos) * HepGeom::TranslateZ3D(-WallAAirZpos*0.5) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) * HepGeom::TranslateY3D(-BoxConcExtraJNYpos) ). - subtract((*BoxConcJNA) << HepGeom::TranslateX3D(-BoxConcJNXpos-15*CLHEP::mm) * HepGeom::TranslateZ3D(-WallAAirZpos*0.5) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) ). - subtract((*BoxConcStupidExtraJNA) << HepGeom::TranslateX3D(-BoxConcExtraJNXpos-15*CLHEP::mm) * HepGeom::TranslateZ3D(-WallAAirZpos*0.5) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) * HepGeom::TranslateY3D(BoxConcExtraJNYpos) ). - - subtract((*StrutConcJN) << HepGeom::TranslateX3D(StrutConcJNXpos) * HepGeom::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) ). - subtract((*StrutConcJN) << HepGeom::TranslateX3D(StrutConcJNXpos) * HepGeom::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5) * HepGeom::TranslateY3D(StrutConcJNYpos) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) ). - subtract((*StrutConcJN) << HepGeom::TranslateX3D(StrutConcJNXpos) * HepGeom::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5) * HepGeom::TranslateY3D(-StrutConcJNYpos) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) ). - subtract((*StrutConcJN) << HepGeom::TranslateX3D(-StrutConcJNXpos-15.*CLHEP::mm) * HepGeom::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) ). - subtract((*StrutConcJN) << HepGeom::TranslateX3D(-StrutConcJNXpos-15.*CLHEP::mm) * HepGeom::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5) * HepGeom::TranslateY3D(StrutConcJNYpos) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) ). - subtract((*StrutConcJN) << HepGeom::TranslateX3D(-StrutConcJNXpos-15.*CLHEP::mm) * HepGeom::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5) * HepGeom::TranslateY3D(-StrutConcJNYpos) * HepGeom::TranslateY3D(-WallCAirXpos*1.0) ). - add((*HoleJN) << HepGeom::RotateY3D(M_PI*0.5) << HepGeom::TranslateZ3D(-0.5*WallAAirZpos+CavernAirZpos)*HepGeom::TranslateY3D(-WallCAirXpos*1.0) << HepGeom::TranslateY3D(CavShaftsYPos)*HepGeom::RotateY3D(CavShaftsYrotate)*HepGeom::RotateX3D(CavShaftsXrotate) ); +// add((*AirJN) << GeoTrf::RotateY3D(M_PI*0.5) << GeoTrf::TranslateZ3D(-0.5*WallAAirZpos)*GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ). + add(CutWallAir << GeoTrf::TranslateZ3D(WallAAirZpos)*GeoTrf::TranslateX3D(WallAAirXpos)). + add(CutWallAir << GeoTrf::TranslateZ3D(WallCAirZpos)*GeoTrf::TranslateX3D(WallCAirXpos)*GeoTrf::RotateZ3D(WallCAirZrotate)). + add(CutVaultAir << GeoTrf::TranslateZ3D(VaultAirZpos)*GeoTrf::RotateY3D(VaultAirYrotate)). + add((*BaseAir) << GeoTrf::TranslateZ3D(BaseAirZpos)). + + subtract((*BoxConcJNC) << GeoTrf::TranslateX3D(BoxConcJNXpos) * GeoTrf::TranslateZ3D(-WallAAirZpos*0.5) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ). + subtract((*BoxConcStupidExtraJNC) << GeoTrf::TranslateX3D(BoxConcExtraJNXpos) * GeoTrf::TranslateZ3D(-WallAAirZpos*0.5) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) * GeoTrf::TranslateY3D(-BoxConcExtraJNYpos) ). + subtract((*BoxConcJNA) << GeoTrf::TranslateX3D(-BoxConcJNXpos-15*GeoModelKernelUnits::mm) * GeoTrf::TranslateZ3D(-WallAAirZpos*0.5) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ). + subtract((*BoxConcStupidExtraJNA) << GeoTrf::TranslateX3D(-BoxConcExtraJNXpos-15*GeoModelKernelUnits::mm) * GeoTrf::TranslateZ3D(-WallAAirZpos*0.5) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) * GeoTrf::TranslateY3D(BoxConcExtraJNYpos) ). + + subtract((*StrutConcJN) << GeoTrf::TranslateX3D(StrutConcJNXpos) * GeoTrf::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ). + subtract((*StrutConcJN) << GeoTrf::TranslateX3D(StrutConcJNXpos) * GeoTrf::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5) * GeoTrf::TranslateY3D(StrutConcJNYpos) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ). + subtract((*StrutConcJN) << GeoTrf::TranslateX3D(StrutConcJNXpos) * GeoTrf::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5) * GeoTrf::TranslateY3D(-StrutConcJNYpos) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ). + subtract((*StrutConcJN) << GeoTrf::TranslateX3D(-StrutConcJNXpos-15.*GeoModelKernelUnits::mm) * GeoTrf::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ). + subtract((*StrutConcJN) << GeoTrf::TranslateX3D(-StrutConcJNXpos-15.*GeoModelKernelUnits::mm) * GeoTrf::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5) * GeoTrf::TranslateY3D(StrutConcJNYpos) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ). + subtract((*StrutConcJN) << GeoTrf::TranslateX3D(-StrutConcJNXpos-15.*GeoModelKernelUnits::mm) * GeoTrf::TranslateZ3D(-StrutConcJNZpos-WallAAirZpos*0.5) * GeoTrf::TranslateY3D(-StrutConcJNYpos) * GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ). + add((*HoleJN) << GeoTrf::RotateY3D(M_PI*0.5) << GeoTrf::TranslateZ3D(-0.5*WallAAirZpos+CavernAirZpos)*GeoTrf::TranslateY3D(-WallCAirXpos*1.0) << GeoTrf::TranslateY3D(CavShaftsYPos)*GeoTrf::RotateY3D(CavShaftsYrotate)*GeoTrf::RotateX3D(CavShaftsXrotate) ); recordIndex = elementMap["ShaftsAir"]; - double ShaftsAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double ShaftsAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; const GeoShape & AirHall= - ((CavernAir << HepGeom::TranslateZ3D(CavernAirZpos))). - add((ShaftsAir << HepGeom::TranslateZ3D(ShaftsAirZpos))); //allows for a built-in 2m thick plugs for both PX14 & PX16 + ((CavernAir << GeoTrf::TranslateZ3D(CavernAirZpos))). + add((ShaftsAir << GeoTrf::TranslateZ3D(ShaftsAirZpos))); //allows for a built-in 2m thick plugs for both PX14 & PX16 //// -----------------------Build BedRock for Shafts and Cavern------------------------------- recordIndex = elementMap["Rock"]; - double RockHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::m; - double RockHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::m; - double RockHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double RockXPos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; - double RockYPos = (*cavernElements)[recordIndex]->getDouble("YPOS")*CLHEP::m; + double RockHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::m; + double RockHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::m; + double RockHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double RockXPos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; + double RockYPos = (*cavernElements)[recordIndex]->getDouble("YPOS")*GeoModelKernelUnits::m; GeoBox *Rockbox = new GeoBox( RockHalfWidth, RockHalfHeight, RockHalfLength); // 300, 50.75, 300 const GeoShape & BedRock = ((*Rockbox) . - subtract((AirHall) <<HepGeom::TranslateY3D(CavShaftsYPos)*HepGeom::RotateY3D(CavShaftsYrotate)*HepGeom::RotateX3D(CavShaftsXrotate))). - subtract((*HoleJN) << HepGeom::RotateY3D(M_PI*0.5) << HepGeom::TranslateZ3D(-0.5*WallAAirZpos+CavernAirZpos)*HepGeom::TranslateY3D(-WallCAirXpos*1.0) << HepGeom::TranslateY3D(CavShaftsYPos)*HepGeom::RotateY3D(CavShaftsYrotate)*HepGeom::RotateX3D(CavShaftsXrotate) ); + subtract((AirHall) <<GeoTrf::TranslateY3D(CavShaftsYPos)*GeoTrf::RotateY3D(CavShaftsYrotate)*GeoTrf::RotateX3D(CavShaftsXrotate))). + subtract((*HoleJN) << GeoTrf::RotateY3D(M_PI*0.5) << GeoTrf::TranslateZ3D(-0.5*WallAAirZpos+CavernAirZpos)*GeoTrf::TranslateY3D(-WallCAirXpos*1.0) << GeoTrf::TranslateY3D(CavShaftsYPos)*GeoTrf::RotateY3D(CavShaftsYrotate)*GeoTrf::RotateX3D(CavShaftsXrotate) ); - GeoTransform *rZt = new GeoTransform(HepGeom::TranslateY3D(RockYPos)*HepGeom::TranslateX3D(RockXPos)); + GeoTransform *rZt = new GeoTransform(GeoTrf::TranslateY3D(RockYPos)*GeoTrf::TranslateX3D(RockXPos)); world->add(rZt); GeoLogVol *lvr = new GeoLogVol("BEDROCK",&BedRock,rock); GeoPhysVol *bedrock = new GeoPhysVol(lvr); @@ -424,10 +424,10 @@ void CavernInfraDetectorFactory::create(GeoPhysVol *world) const GeoShape & CavConcrete = ((Concrete). -// add((*HoleJN) << HepGeom::RotateY3D(M_PI*0.5) << HepGeom::TranslateZ3D(-0.5*WallAAirZpos+CavernAirZpos)*HepGeom::TranslateY3D(-WallCAirXpos*1.0) ). +// add((*HoleJN) << GeoTrf::RotateY3D(M_PI*0.5) << GeoTrf::TranslateZ3D(-0.5*WallAAirZpos+CavernAirZpos)*GeoTrf::TranslateY3D(-WallCAirXpos*1.0) ). subtract(AirHall)); - GeoTransform* xfTop = new GeoTransform(HepGeom::TranslateY3D(CavShaftsYPos)*HepGeom::RotateY3D(CavShaftsYrotate)*HepGeom::RotateX3D(CavShaftsXrotate)); + GeoTransform* xfTop = new GeoTransform(GeoTrf::TranslateY3D(CavShaftsYPos)*GeoTrf::RotateY3D(CavShaftsYrotate)*GeoTrf::RotateX3D(CavShaftsXrotate)); bedrock->add(xfTop); GeoLogVol *lvcsc = new GeoLogVol("CAV_SHAFTS_CONC",&CavConcrete,conc); GeoPhysVol *CavShaftsConc = new GeoPhysVol(lvcsc); diff --git a/AtlasGeometryCommon/CavernInfraGeoModel/src/CavernInfraDetectorFactory01.cxx b/AtlasGeometryCommon/CavernInfraGeoModel/src/CavernInfraDetectorFactory01.cxx index 174be865228b99cf7f8d4a3135047679c4173570..3e5158b2f53251cdf2d84fd88972bad0f36ae5a3 100755 --- a/AtlasGeometryCommon/CavernInfraGeoModel/src/CavernInfraDetectorFactory01.cxx +++ b/AtlasGeometryCommon/CavernInfraGeoModel/src/CavernInfraDetectorFactory01.cxx @@ -24,10 +24,10 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoSerialDenominator.h" #include "GeoModelKernel/GeoSerialTransformer.h" -#include "CLHEP/GenericFunctions/AbsFunction.hh" -#include "CLHEP/GenericFunctions/Variable.hh" -#include "CLHEP/GenericFunctions/Sin.hh" -#include "CLHEP/GenericFunctions/Cos.hh" +#include "GeoGenericFunctions/AbsFunction.h" +#include "GeoGenericFunctions/Variable.h" +#include "GeoGenericFunctions/Sin.h" +#include "GeoGenericFunctions/Cos.h" #include "StoreGate/StoreGateSvc.h" @@ -38,7 +38,7 @@ #include "RDBAccessSvc/IRDBAccessSvc.h" #include <string> #include <map> -using namespace Genfun; +using namespace GeoGenfun; using namespace GeoXF; CavernInfraDetectorFactory01::CavernInfraDetectorFactory01(StoreGateSvc *detStore, @@ -94,18 +94,18 @@ void CavernInfraDetectorFactory01::create(GeoPhysVol *world) //// -----------------------------------Build SX1------------------------------------------ recordIndex = elementMap["SX1"]; - double SX1Xpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; - double SX1Ypos = (*cavernElements)[recordIndex]->getDouble("YPOS")*CLHEP::m; - double SX1HalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::m; - double SX1HalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::m; - double SX1HalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; + double SX1Xpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; + double SX1Ypos = (*cavernElements)[recordIndex]->getDouble("YPOS")*GeoModelKernelUnits::m; + double SX1HalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::m; + double SX1HalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::m; + double SX1HalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; recordIndex = elementMap["SX1Air"]; - double SX1AirHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::m; - double SX1AirHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::m; - double SX1AirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; + double SX1AirHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::m; + double SX1AirHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::m; + double SX1AirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; - GeoTransform *s1XYZt = new GeoTransform(HepGeom::Translate3D(SX1Ypos,91.75*CLHEP::m, SX1Xpos)); //1.7 -8.7 + GeoTransform *s1XYZt = new GeoTransform(GeoTrf::Translate3D(SX1Ypos,91.75*GeoModelKernelUnits::m, SX1Xpos)); //1.7 -8.7 world->add(s1XYZt); GeoBox *SX1 = new GeoBox(SX1HalfWidth ,SX1HalfHeight, SX1HalfLength); // 11.7, 6.5, 42.3 GeoLogVol *lvsx1s = new GeoLogVol("SX1Steel",SX1,shieldSteel); @@ -113,7 +113,7 @@ void CavernInfraDetectorFactory01::create(GeoPhysVol *world) world->add(tag); world->add(sx1); - GeoTransform *s1z = new GeoTransform(HepGeom::TranslateY3D(-.005*CLHEP::m)); + GeoTransform *s1z = new GeoTransform(GeoTrf::TranslateY3D(-.005*GeoModelKernelUnits::m)); sx1->add(s1z); GeoBox *SX1Air = new GeoBox( SX1AirHalfWidth, SX1AirHalfHeight, SX1AirHalfLength); GeoLogVol *lvsx1a = new GeoLogVol("SX1Air",SX1Air,air); @@ -124,49 +124,49 @@ void CavernInfraDetectorFactory01::create(GeoPhysVol *world) //// ------------------First: Build cavern with concrete----------------------------- recordIndex = elementMap["WallACConc"]; - double WallACConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double WallACConcMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::m; - double WallACConcMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::m; + double WallACConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double WallACConcMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::m; + double WallACConcMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::m; double WallACConcSphi= (*cavernElements)[recordIndex]->getDouble("SPHI"); double WallACConcDphi= (*cavernElements)[recordIndex]->getDouble("DPHI"); recordIndex = elementMap["BoxConc"]; - double BoxConcHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::m; - double BoxConcHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::m; - double BoxConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; + double BoxConcHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::m; + double BoxConcHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::m; + double BoxConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; recordIndex = elementMap["VaultConc"]; - double VaultConcZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double VaultConcZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; double VaultConcYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); - double VaultConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double VaultConcMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::m; - double VaultConcMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::m; + double VaultConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double VaultConcMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::m; + double VaultConcMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::m; double VaultConcSphi= (*cavernElements)[recordIndex]->getDouble("SPHI"); double VaultConcDphi= (*cavernElements)[recordIndex]->getDouble("DPHI"); recordIndex = elementMap["HallConc"]; - double HallConcHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::m; - double HallConcHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::m; - double HallConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; + double HallConcHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::m; + double HallConcHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::m; + double HallConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; recordIndex = elementMap["BoxConcW"]; - double BoxConcWZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double BoxConcWZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; double BoxConcWYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); recordIndex = elementMap["BoxConcVleft"]; - double BoxConcVleftZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double BoxConcVleftZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; double BoxConcVleftYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); recordIndex = elementMap["BoxConcVright"]; - double BoxConcVrightZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double BoxConcVrightZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; double BoxConcVrightYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); recordIndex = elementMap["SurfaceFloor"]; - double SurfaceFloorXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; - double SurfaceFloorZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; - double SurfaceFloorHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::m; - double SurfaceFloorHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::m; - double SurfaceFloorHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; + double SurfaceFloorXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; + double SurfaceFloorZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; + double SurfaceFloorHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::m; + double SurfaceFloorHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::m; + double SurfaceFloorHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; GeoTubs *WallACConcrete = new GeoTubs(WallACConcMinR, WallACConcMaxR, WallACConcHalfHeight, WallACConcSphi, WallACConcDphi); @@ -175,35 +175,35 @@ void CavernInfraDetectorFactory01::create(GeoPhysVol *world) GeoBox *HallConcrete = new GeoBox(HallConcHalfLength, HallConcHalfWidth, HallConcHalfHeight); GeoBox *SurfaceFloor = new GeoBox(SurfaceFloorHalfLength, SurfaceFloorHalfWidth, SurfaceFloorHalfHeight); - HepGeom::Transform3D BoxCutWallConc = HepGeom::TranslateZ3D(BoxConcWZpos)*HepGeom::RotateY3D(BoxConcWYrotate); - HepGeom::Transform3D BoxCutVaultLeftConc = HepGeom::TranslateZ3D(BoxConcVleftZpos)*HepGeom::RotateY3D(BoxConcVleftYrotate); - HepGeom::Transform3D BoxCutVaulRightConc = HepGeom::TranslateZ3D(BoxConcVrightZpos)*HepGeom::RotateY3D(BoxConcVrightYrotate); + GeoTrf::Transform3D BoxCutWallConc = GeoTrf::TranslateZ3D(BoxConcWZpos)*GeoTrf::RotateY3D(BoxConcWYrotate); + GeoTrf::Transform3D BoxCutVaultLeftConc = GeoTrf::TranslateZ3D(BoxConcVleftZpos)*GeoTrf::RotateY3D(BoxConcVleftYrotate); + GeoTrf::Transform3D BoxCutVaulRightConc = GeoTrf::TranslateZ3D(BoxConcVrightZpos)*GeoTrf::RotateY3D(BoxConcVrightYrotate); //---------------- Cut the vault and side walls---------------------------- - const GeoShape & CutWallConc = (*WallACConcrete).subtract((*BoxConc) << HepGeom::Transform3D(BoxCutWallConc)); - const GeoShape & CutVaultConc = (*VaultConcrete).subtract((*BoxConc) << HepGeom::Transform3D(BoxCutVaultLeftConc)). - subtract((*BoxConc) << HepGeom::Transform3D(BoxCutVaulRightConc)); + const GeoShape & CutWallConc = (*WallACConcrete).subtract((*BoxConc) << GeoTrf::Transform3D(BoxCutWallConc)); + const GeoShape & CutVaultConc = (*VaultConcrete).subtract((*BoxConc) << GeoTrf::Transform3D(BoxCutVaultLeftConc)). + subtract((*BoxConc) << GeoTrf::Transform3D(BoxCutVaulRightConc)); recordIndex = elementMap["ShaftCut"]; - double ShaftCutZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double ShaftCutZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; double ShaftCutYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); - double ShaftCutHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double ShaftCutMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::m; - double ShaftCutMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::m; + double ShaftCutHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double ShaftCutMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::m; + double ShaftCutMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::m; recordIndex = elementMap["PX14Conc"]; - double PX14ConcXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; - double PX14ConcYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*CLHEP::m; - double PX14ConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double PX14ConcMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::m; - double PX14ConcMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::m; + double PX14ConcXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; + double PX14ConcYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*GeoModelKernelUnits::m; + double PX14ConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double PX14ConcMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::m; + double PX14ConcMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::m; recordIndex = elementMap["PX16Conc"]; - double PX16ConcXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; - double PX16ConcYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*CLHEP::m; - double PX16ConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double PX16ConcMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::m; - double PX16ConcMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::m; + double PX16ConcXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; + double PX16ConcYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*GeoModelKernelUnits::m; + double PX16ConcHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double PX16ConcMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::m; + double PX16ConcMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::m; //--------------- Build concrete shafts------------------------------. GeoTube *ShaftCut = new GeoTube(ShaftCutMinR, ShaftCutMaxR, ShaftCutHalfHeight); @@ -211,75 +211,75 @@ void CavernInfraDetectorFactory01::create(GeoPhysVol *world) GeoTube *PX16Conc = new GeoTube(PX16ConcMinR, PX16ConcMaxR, PX16ConcHalfHeight); const GeoShape & ShaftsConc= - ((*PX14Conc) << HepGeom::TranslateX3D(PX14ConcXpos)*HepGeom::TranslateY3D(PX14ConcYpos)). - add((*PX16Conc) << HepGeom::TranslateX3D(PX16ConcXpos)*HepGeom::TranslateY3D(PX16ConcYpos)). - subtract((*ShaftCut) << HepGeom::TranslateZ3D(ShaftCutZpos)*HepGeom::RotateY3D(ShaftCutYrotate)); + ((*PX14Conc) << GeoTrf::TranslateX3D(PX14ConcXpos)*GeoTrf::TranslateY3D(PX14ConcYpos)). + add((*PX16Conc) << GeoTrf::TranslateX3D(PX16ConcXpos)*GeoTrf::TranslateY3D(PX16ConcYpos)). + subtract((*ShaftCut) << GeoTrf::TranslateZ3D(ShaftCutZpos)*GeoTrf::RotateY3D(ShaftCutYrotate)); recordIndex = elementMap["WallCConc"]; - double WallCConcZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; - double WallCConcXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; + double WallCConcZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; + double WallCConcXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; double WallCConcZrotate = (*cavernElements)[recordIndex]->getDouble("ZROTATE"); recordIndex = elementMap["WallAConc"]; - double WallAConcZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; - double WallAConcXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; + double WallAConcZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; + double WallAConcXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; recordIndex = elementMap["ShaftsConc"]; - double ShaftsConcZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double ShaftsConcZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; //----------------Assemble everything--------------------------------. const GeoShape & Concrete= (*HallConcrete). - add((CutWallConc << HepGeom::TranslateZ3D(WallCConcZpos)*HepGeom::TranslateX3D(WallCConcXpos)*HepGeom::RotateZ3D(WallCConcZrotate))). - add((ShaftsConc << HepGeom::TranslateZ3D(ShaftsConcZpos))). - add((CutVaultConc << HepGeom::TranslateZ3D(VaultConcZpos)*HepGeom::RotateY3D(VaultConcYrotate))). - add((*SurfaceFloor) << HepGeom::TranslateZ3D(SurfaceFloorZpos)*HepGeom::TranslateX3D(SurfaceFloorXpos)). - add((CutWallConc << HepGeom::TranslateZ3D(WallAConcZpos)*HepGeom::TranslateX3D(WallAConcXpos))); + add((CutWallConc << GeoTrf::TranslateZ3D(WallCConcZpos)*GeoTrf::TranslateX3D(WallCConcXpos)*GeoTrf::RotateZ3D(WallCConcZrotate))). + add((ShaftsConc << GeoTrf::TranslateZ3D(ShaftsConcZpos))). + add((CutVaultConc << GeoTrf::TranslateZ3D(VaultConcZpos)*GeoTrf::RotateY3D(VaultConcYrotate))). + add((*SurfaceFloor) << GeoTrf::TranslateZ3D(SurfaceFloorZpos)*GeoTrf::TranslateX3D(SurfaceFloorXpos)). + add((CutWallConc << GeoTrf::TranslateZ3D(WallAConcZpos)*GeoTrf::TranslateX3D(WallAConcXpos))); //// -----------------------Second: Build cavern with air------------------------------- // Create variables for Concrete Cavern and get index of the record in cavernElements recordIndex = elementMap["WallACAir"]; - double WallACAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double WallACAirMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::m; - double WallACAirMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::m; + double WallACAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double WallACAirMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::m; + double WallACAirMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::m; double WallACAirSphi= (*cavernElements)[recordIndex]->getDouble("SPHI"); double WallACAirDphi= (*cavernElements)[recordIndex]->getDouble("DPHI"); recordIndex = elementMap["BoxAir"]; - double BoxAirHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::m; - double BoxAirHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::m; - double BoxAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; + double BoxAirHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::m; + double BoxAirHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::m; + double BoxAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; recordIndex = elementMap["VaultAir"]; - double VaultAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double VaultAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; double VaultAirYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); - double VaultAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double VaultAirMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::m; - double VaultAirMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::m; + double VaultAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double VaultAirMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::m; + double VaultAirMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::m; double VaultAirSphi= (*cavernElements)[recordIndex]->getDouble("SPHI"); double VaultAirDphi= (*cavernElements)[recordIndex]->getDouble("DPHI"); recordIndex = elementMap["HallAir"]; - double HallAirHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::m; - double HallAirHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::m; - double HallAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; + double HallAirHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::m; + double HallAirHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::m; + double HallAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; recordIndex = elementMap["BaseAir"]; - double BaseAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; - double BaseAirHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::m; - double BaseAirHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::m; - double BaseAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; + double BaseAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; + double BaseAirHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::m; + double BaseAirHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::m; + double BaseAirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; recordIndex = elementMap["BoxAirW"]; - double BoxAirWZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double BoxAirWZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; double BoxAirWYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); recordIndex = elementMap["BoxAirVleft"]; - double BoxAirVleftZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double BoxAirVleftZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; double BoxAirVleftYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); recordIndex = elementMap["BoxAirVright"]; - double BoxAirVrightZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double BoxAirVrightZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; double BoxAirVrightYrotate = (*cavernElements)[recordIndex]->getDouble("YROTATE"); GeoTubs *WallACAir = new GeoTubs(WallACAirMinR, WallACAirMaxR, WallACAirHalfHeight, WallACAirSphi, WallACAirDphi); @@ -287,78 +287,78 @@ void CavernInfraDetectorFactory01::create(GeoPhysVol *world) GeoTubs *VaultAir = new GeoTubs(VaultAirMinR, VaultAirMaxR, VaultAirHalfHeight, VaultAirSphi, VaultAirDphi); GeoBox *HallAir = new GeoBox(HallAirHalfLength, HallAirHalfWidth, HallAirHalfHeight); GeoBox *BaseAir = new GeoBox(BaseAirHalfLength, BaseAirHalfWidth, BaseAirHalfHeight); - HepGeom::Transform3D BoxCutWallAir = HepGeom::TranslateZ3D(BoxAirWZpos)*HepGeom::RotateY3D(BoxAirWYrotate); - HepGeom::Transform3D BoxCutVaultLeftAir = HepGeom::TranslateZ3D(BoxAirVleftZpos)*HepGeom::RotateY3D(BoxAirVleftYrotate); - HepGeom::Transform3D BoxCutVaulRightAir = HepGeom::TranslateZ3D(BoxAirVrightZpos)*HepGeom::RotateY3D(BoxAirVrightYrotate); + GeoTrf::Transform3D BoxCutWallAir = GeoTrf::TranslateZ3D(BoxAirWZpos)*GeoTrf::RotateY3D(BoxAirWYrotate); + GeoTrf::Transform3D BoxCutVaultLeftAir = GeoTrf::TranslateZ3D(BoxAirVleftZpos)*GeoTrf::RotateY3D(BoxAirVleftYrotate); + GeoTrf::Transform3D BoxCutVaulRightAir = GeoTrf::TranslateZ3D(BoxAirVrightZpos)*GeoTrf::RotateY3D(BoxAirVrightYrotate); //------------------Cut the vault and side walls---------------------------- - const GeoShape & CutWallAir = (*WallACAir).subtract((*BoxAir) << HepGeom::Transform3D(BoxCutWallAir)); - const GeoShape & CutVaultAir = (*VaultAir).subtract((*BoxAir) << HepGeom::Transform3D(BoxCutVaultLeftAir)). - subtract((*BoxAir) << HepGeom::Transform3D(BoxCutVaulRightAir)); + const GeoShape & CutWallAir = (*WallACAir).subtract((*BoxAir) << GeoTrf::Transform3D(BoxCutWallAir)); + const GeoShape & CutVaultAir = (*VaultAir).subtract((*BoxAir) << GeoTrf::Transform3D(BoxCutVaultLeftAir)). + subtract((*BoxAir) << GeoTrf::Transform3D(BoxCutVaulRightAir)); //--------------- Build air shafts------------------------------. recordIndex = elementMap["PX14Air"]; - double PX14AirXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; - double PX14AirYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*CLHEP::m; - double PX14AirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double PX14AirMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::m; - double PX14AirMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::m; + double PX14AirXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; + double PX14AirYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*GeoModelKernelUnits::m; + double PX14AirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double PX14AirMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::m; + double PX14AirMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::m; recordIndex = elementMap["PX16Air"]; - double PX16AirXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; - double PX16AirYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*CLHEP::m; - double PX16AirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; - double PX16AirMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*CLHEP::m; - double PX16AirMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*CLHEP::m; + double PX16AirXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; + double PX16AirYpos = (*cavernElements)[recordIndex]->getDouble("YPOS")*GeoModelKernelUnits::m; + double PX16AirHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; + double PX16AirMinR = (*cavernElements)[recordIndex]->getDouble("MINR")*GeoModelKernelUnits::m; + double PX16AirMaxR = (*cavernElements)[recordIndex]->getDouble("MAXR")*GeoModelKernelUnits::m; GeoTube *PX14Air = new GeoTube(PX14AirMinR, PX14AirMaxR, PX14AirHalfHeight); GeoTube *PX16Air = new GeoTube(PX16AirMinR, PX16AirMaxR, PX16AirHalfHeight); const GeoShape & ShaftsAir= - ((*PX14Air) << HepGeom::TranslateX3D(PX14AirXpos)*HepGeom::TranslateY3D(PX14AirYpos)). - add((*PX16Air) << HepGeom::TranslateX3D(PX16AirXpos)*HepGeom::TranslateY3D(PX16AirYpos)); + ((*PX14Air) << GeoTrf::TranslateX3D(PX14AirXpos)*GeoTrf::TranslateY3D(PX14AirYpos)). + add((*PX16Air) << GeoTrf::TranslateX3D(PX16AirXpos)*GeoTrf::TranslateY3D(PX16AirYpos)); //----------------Assemble everything--------------------------------. recordIndex = elementMap["WallAAir"]; - double WallAAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; - double WallAAirXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; + double WallAAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; + double WallAAirXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; recordIndex = elementMap["WallCAir"]; - double WallCAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; - double WallCAirXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*CLHEP::m; + double WallCAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; + double WallCAirXpos = (*cavernElements)[recordIndex]->getDouble("XPOS")*GeoModelKernelUnits::m; double WallCAirZrotate = (*cavernElements)[recordIndex]->getDouble("ZROTATE"); const GeoShape & CavernAir = (*HallAir). - add(CutWallAir << HepGeom::TranslateZ3D(WallAAirZpos)*HepGeom::TranslateX3D(WallAAirXpos)). - add(CutWallAir << HepGeom::TranslateZ3D(WallCAirZpos)*HepGeom::TranslateX3D(WallCAirXpos)*HepGeom::RotateZ3D(WallCAirZrotate)). - add(CutVaultAir << HepGeom::TranslateZ3D(VaultAirZpos)*HepGeom::RotateY3D(VaultAirYrotate)). - add((*BaseAir) << HepGeom::TranslateZ3D(BaseAirZpos)); + add(CutWallAir << GeoTrf::TranslateZ3D(WallAAirZpos)*GeoTrf::TranslateX3D(WallAAirXpos)). + add(CutWallAir << GeoTrf::TranslateZ3D(WallCAirZpos)*GeoTrf::TranslateX3D(WallCAirXpos)*GeoTrf::RotateZ3D(WallCAirZrotate)). + add(CutVaultAir << GeoTrf::TranslateZ3D(VaultAirZpos)*GeoTrf::RotateY3D(VaultAirYrotate)). + add((*BaseAir) << GeoTrf::TranslateZ3D(BaseAirZpos)); recordIndex = elementMap["ShaftsAir"]; - double ShaftsAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double ShaftsAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; recordIndex = elementMap["CavernAir"]; - double CavernAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*CLHEP::m; + double CavernAirZpos = (*cavernElements)[recordIndex]->getDouble("ZPOS")*GeoModelKernelUnits::m; const GeoShape & AirHall= - ((CavernAir << HepGeom::TranslateZ3D(CavernAirZpos))). - add((ShaftsAir << HepGeom::TranslateZ3D(ShaftsAirZpos))); //allows for a built-in 2m thick plugs for both PX14 & PX16 + ((CavernAir << GeoTrf::TranslateZ3D(CavernAirZpos))). + add((ShaftsAir << GeoTrf::TranslateZ3D(ShaftsAirZpos))); //allows for a built-in 2m thick plugs for both PX14 & PX16 //// -----------------------Build BedRock for Shafts and Cavern------------------------------- recordIndex = elementMap["Rock"]; - double RockHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*CLHEP::m; - double RockHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*CLHEP::m; - double RockHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*CLHEP::m; + double RockHalfLength = (*cavernElements)[recordIndex]->getDouble("HALFLENGTH")*GeoModelKernelUnits::m; + double RockHalfWidth = (*cavernElements)[recordIndex]->getDouble("HALFWIDTH")*GeoModelKernelUnits::m; + double RockHalfHeight = (*cavernElements)[recordIndex]->getDouble("HALFHEIGHT")*GeoModelKernelUnits::m; GeoBox *Rockbox = new GeoBox( RockHalfWidth, RockHalfHeight, RockHalfLength); // 300, 50.75, 300 const GeoShape & BedRock = ((*Rockbox) . - subtract((AirHall) <<HepGeom::TranslateY3D(-34.5*CLHEP::m)*HepGeom::RotateY3D(-1.57)*HepGeom::RotateX3D(-1.57))); + subtract((AirHall) <<GeoTrf::TranslateY3D(-34.5*GeoModelKernelUnits::m)*GeoTrf::RotateY3D(-1.57)*GeoTrf::RotateX3D(-1.57))); - GeoTransform *rZt = new GeoTransform(HepGeom::TranslateY3D(34.5*CLHEP::m)*HepGeom::TranslateX3D(-1.7*CLHEP::m)); + GeoTransform *rZt = new GeoTransform(GeoTrf::TranslateY3D(34.5*GeoModelKernelUnits::m)*GeoTrf::TranslateX3D(-1.7*GeoModelKernelUnits::m)); world->add(rZt); GeoLogVol *lvr = new GeoLogVol("BEDROCK",&BedRock,rock); GeoPhysVol *bedrock = new GeoPhysVol(lvr); @@ -368,7 +368,7 @@ void CavernInfraDetectorFactory01::create(GeoPhysVol *world) const GeoShape & CavConcrete = ((Concrete).subtract(AirHall)); - GeoTransform* xfTop = new GeoTransform(HepGeom::TranslateY3D(-34.5*CLHEP::m)*HepGeom::RotateY3D(-1.57)*HepGeom::RotateX3D(-1.57)); + GeoTransform* xfTop = new GeoTransform(GeoTrf::TranslateY3D(-34.5*GeoModelKernelUnits::m)*GeoTrf::RotateY3D(-1.57)*GeoTrf::RotateX3D(-1.57)); bedrock->add(xfTop); GeoLogVol *lvcsc = new GeoLogVol("CAV_SHAFTS_CONC",&CavConcrete,conc); GeoPhysVol *CavShaftsConc = new GeoPhysVol(lvcsc); diff --git a/AtlasGeometryCommon/GeoModelEnvelopes/CMakeLists.txt b/AtlasGeometryCommon/GeoModelEnvelopes/CMakeLists.txt index 781268782af40f67b1de3922a4038a26f3bf5b3c..6bfb3c8cad77af2b876ea482beab25eea69ed267 100644 --- a/AtlasGeometryCommon/GeoModelEnvelopes/CMakeLists.txt +++ b/AtlasGeometryCommon/GeoModelEnvelopes/CMakeLists.txt @@ -8,7 +8,6 @@ atlas_subdir( GeoModelEnvelopes ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities PRIVATE Control/SGTools @@ -16,11 +15,13 @@ atlas_depends_on_subdirs( PUBLIC DetectorDescription/GeoModel/GeoModelInterfaces GaudiKernel ) +find_package( GeoModel ) + # Component(s) in the package: atlas_add_component( GeoModelEnvelopes src/*.cxx src/components/*.cxx - LINK_LIBRARIES GeoModelKernel GeoModelUtilities SGTools StoreGateLib SGtests GaudiKernel ) + LINK_LIBRARIES ${GEOMODEL_LIBRARIES} GeoModelUtilities SGTools StoreGateLib GaudiKernel ) # Install files from the package: atlas_install_headers( GeoModelEnvelopes ) diff --git a/AtlasGeometryCommon/GeoModelEnvelopes/src/ForDetEnvelopeFactory.cxx b/AtlasGeometryCommon/GeoModelEnvelopes/src/ForDetEnvelopeFactory.cxx index 76a21574318baab7cabb76ffb2b042046266eb55..555b0b924ce845174cd57c443bd437a4f85579fb 100755 --- a/AtlasGeometryCommon/GeoModelEnvelopes/src/ForDetEnvelopeFactory.cxx +++ b/AtlasGeometryCommon/GeoModelEnvelopes/src/ForDetEnvelopeFactory.cxx @@ -11,7 +11,6 @@ #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoShapeUnion.h" @@ -45,10 +44,10 @@ void ForDetEnvelopeFactory::create(GeoPhysVol *world) const GeoMaterial* air = m_materialManager->getMaterial("std::Air"); // Build boolean shape: union of two tubes - const GeoTube* tube1 = new GeoTube(0.,2000.*CLHEP::mm,188750.*CLHEP::mm); - GeoTube* tube2 = new GeoTube(0.,2000.*CLHEP::mm,188750.*CLHEP::mm); - HepGeom::TranslateZ3D xfRelativeA(211250.*CLHEP::mm); - HepGeom::TranslateZ3D xfRelativeC(-211250.*CLHEP::mm); + const GeoTube* tube1 = new GeoTube(0.,2000.*GeoModelKernelUnits::mm,188750.*GeoModelKernelUnits::mm); + GeoTube* tube2 = new GeoTube(0.,2000.*GeoModelKernelUnits::mm,188750.*GeoModelKernelUnits::mm); + GeoTrf::TranslateZ3D xfRelativeA(211250.*GeoModelKernelUnits::mm); + GeoTrf::TranslateZ3D xfRelativeC(-211250.*GeoModelKernelUnits::mm); const GeoShapeShift& envShape1 = (*tube1)<<xfRelativeA; const GeoShapeUnion& envShape = envShape1.add((*tube2)<<xfRelativeC); diff --git a/Calorimeter/CaloDetDescr/CaloDetDescr/ICaloCoordinateTool.h b/Calorimeter/CaloDetDescr/CaloDetDescr/ICaloCoordinateTool.h index 8d167276d27d0633c418f9b6c6d027210f4d0be8..a8a49c8c6a81cc6d506811e221c3c77e85324f87 100755 --- a/Calorimeter/CaloDetDescr/CaloDetDescr/ICaloCoordinateTool.h +++ b/Calorimeter/CaloDetDescr/CaloDetDescr/ICaloCoordinateTool.h @@ -36,7 +36,7 @@ - the LAr+Tile local coordinate system, which differs for 2 reasons : - the origin is shifted by x = 2298 CLHEP::mm, and + the origin is shifted by x = 2298 mm, and the two calos sit on a rotating table to allow eta scans. In the local coordinate system, calorimeters have a pointing diff --git a/Calorimeter/CaloDetDescr/src/CaloDetectorElements.cxx b/Calorimeter/CaloDetDescr/src/CaloDetectorElements.cxx index bd559b942e37269e164eb4e70c342b3d558bb1d6..ef80c226e66b70705938cfe58a1d7cd0e0f8c247 100755 --- a/Calorimeter/CaloDetDescr/src/CaloDetectorElements.cxx +++ b/Calorimeter/CaloDetDescr/src/CaloDetectorElements.cxx @@ -10,6 +10,7 @@ #include "CaloGeoHelpers/CaloPhiRange.h" +#include "GaudiKernel/SystemOfUnits.h" namespace { @@ -196,12 +197,12 @@ void EMECDetectorElement::init_description(bool isTestBeam, const CaloElementPos // we need to apply the famous ZShift. Amg::Transform3D xfNominal; if(m_cell->getEndcapIndex()==0) - xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0.,m_region->getProjectivityDisplacement()*CLHEP::cm))*xfDef; // Negative EMEC + xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0.,m_region->getProjectivityDisplacement()*Gaudi::Units::cm))*xfDef; // Negative EMEC else - xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0.,-m_region->getProjectivityDisplacement()*CLHEP::cm))*xfDef; // Positive EMEC + xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0.,-m_region->getProjectivityDisplacement()*Gaudi::Units::cm))*xfDef; // Positive EMEC if(isTestBeam){ - xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0.,3689.5*CLHEP::mm)); + xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0.,3689.5*Gaudi::Units::mm)); } const Amg::Transform3D &xfAbs = m_region->getAbsoluteTransformAmg(); @@ -333,12 +334,12 @@ void HECDetectorElement::init_description(bool isTestBeam, const CaloElementPosi // we need to apply the famous ZShift. Amg::Transform3D xfNominal; if(m_cell->getEndcapIndex()==0) - xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0.,m_region->getProjectivityDisplacement()*CLHEP::cm))*xfDef; // Negative HEC + xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0.,m_region->getProjectivityDisplacement()*Gaudi::Units::cm))*xfDef; // Negative HEC else - xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0.,-m_region->getProjectivityDisplacement()*CLHEP::cm))*xfDef; // Positive HEC + xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0.,-m_region->getProjectivityDisplacement()*Gaudi::Units::cm))*xfDef; // Positive HEC if(isTestBeam){ - xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0., 4277.*CLHEP::mm)); + xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0., 4277.*Gaudi::Units::mm)); } const Amg::Transform3D &xfAbs = m_region->getAbsoluteTransformAmg(); @@ -465,18 +466,18 @@ void FCALDetectorElement::init_description(bool isTestBeam, const CaloElementPos // we need to apply the famous ZShift. Amg::Transform3D xfNominal; if(m_module->getEndcapIndex()==FCALModule::POS) - xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0.,-m_module->getProjectivityDisplacement()*CLHEP::cm))*xfDef; + xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0.,-m_module->getProjectivityDisplacement()*Gaudi::Units::cm))*xfDef; else - xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0.,m_module->getProjectivityDisplacement()*CLHEP::cm))*xfDef; + xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0.,m_module->getProjectivityDisplacement()*Gaudi::Units::cm))*xfDef; if(isTestBeam){ if(m_module->getModuleIndex() == FCALModule::FCAL1) - xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0., 4668.5*CLHEP::mm)); + xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0., 4668.5*Gaudi::Units::mm)); else if (m_module->getModuleIndex() == FCALModule::FCAL2) - xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0., 5128.3*CLHEP::mm)); + xfNominal = Amg::Translation3D(Amg::Vector3D(0.,0., 5128.3*Gaudi::Units::mm)); else { std::cout<<"Wrong FCAL module for TB, using FCAL1 !!!"<<std::endl; - xfNominal = Amg::Translation3D( Amg::Vector3D(0.,0.,4668.5*CLHEP::mm)); + xfNominal = Amg::Translation3D( Amg::Vector3D(0.,0.,4668.5*Gaudi::Units::mm)); } } diff --git a/Calorimeter/CaloTrackingGeometry/src/CaloTrackingGeometryBuilder.cxx b/Calorimeter/CaloTrackingGeometry/src/CaloTrackingGeometryBuilder.cxx index c733109a9b7fa4a62b80ae8789d1452721f568f7..4e597a60acfcead1b0ea4510feb2a094a508de4f 100755 --- a/Calorimeter/CaloTrackingGeometry/src/CaloTrackingGeometryBuilder.cxx +++ b/Calorimeter/CaloTrackingGeometry/src/CaloTrackingGeometryBuilder.cxx @@ -38,6 +38,7 @@ #include "TrkSurfaces/TrapezoidBounds.h" #include "TrkSurfaces/DiscSurface.h" #include "TrkSurfaces/PlaneSurface.h" +#include "GaudiKernel/SystemOfUnits.h" #include <memory> // CLHEP //#include "CLHEP/Geometry/Transform3D.h" @@ -48,8 +49,8 @@ //using HepGeom::Vector3D; //using CLHEP::Hep3Vector; //using CLHEP::HepRotation; -using CLHEP::mm; -using CLHEP::radian; +//using CLHEP::mm; +//using CLHEP::radian; // constructor Calo::CaloTrackingGeometryBuilder::CaloTrackingGeometryBuilder(const std::string& t, const std::string& n, const IInterface* p) : @@ -60,7 +61,7 @@ Calo::CaloTrackingGeometryBuilder::CaloTrackingGeometryBuilder(const std::string m_lArVolumeBuilder("LAr::LArVolumeBuilder/LArVolumeBuilder"), m_tileVolumeBuilder("Tile::TileVolumeBuilder/TileVolumeBuilder"), m_caloMaterial(0), - m_caloEnvelope(25*mm), + m_caloEnvelope(25*Gaudi::Units::mm), m_enclosingEnvelopeSvc("AtlasGeometry_EnvelopeDefSvc", n), m_caloDefaultRadius(4250.), m_caloDefaultHalflengthZ(6500.), @@ -529,7 +530,7 @@ const Trk::TrackingGeometry* Calo::CaloTrackingGeometryBuilder::trackingGeometry Trk::DiscLayer* mbtsPosLayer = new Trk::DiscLayer(mbtsPosZpos,dibo->clone(), //mbtsPosLayerSurfArray, Trk::HomogeneousLayerMaterial(Trk::MaterialProperties(*m_caloMaterial,1.),1.), - 1.*mm); + 1.*Gaudi::Units::mm); m_mbtsNegLayers=new std::vector<const Trk::Layer*>; m_mbtsPosLayers=new std::vector<const Trk::Layer*>; diff --git a/DataQuality/DataQualityTools/src/DQTGlobalWZFinderTool.cxx b/DataQuality/DataQualityTools/src/DQTGlobalWZFinderTool.cxx index e9955f0047479827d5d0e20dce94be9bf51c0227..12312aeab20416618d415c202c75d5bef52b27e2 100644 --- a/DataQuality/DataQualityTools/src/DQTGlobalWZFinderTool.cxx +++ b/DataQuality/DataQualityTools/src/DQTGlobalWZFinderTool.cxx @@ -493,7 +493,7 @@ StatusCode DQTGlobalWZFinderTool::fillHistograms() xAOD::MuonContainer::const_iterator muonItr; for (muonItr=muons->begin(); muonItr != muons->end(); ++muonItr) { - Float_t minptCutJPsi(1.0*CLHEP::GeV); + Float_t minptCutJPsi(1.0*GeV); auto muTrk = (*muonItr)->primaryTrackParticle(); float d0sig; if (!muTrk) { diff --git a/DetectorDescription/AGDD/AGDDControl/CMakeLists.txt b/DetectorDescription/AGDD/AGDDControl/CMakeLists.txt index 8e975adbaac1849c34ff6bfcbd76dfbc2e2fec28..e1c69121a291dfcf371d3a80810ad1b4d9f946d2 100644 --- a/DetectorDescription/AGDD/AGDDControl/CMakeLists.txt +++ b/DetectorDescription/AGDD/AGDDControl/CMakeLists.txt @@ -9,25 +9,27 @@ atlas_subdir( AGDDControl ) atlas_depends_on_subdirs( PUBLIC Control/AthenaBaseComps DetectorDescription/AGDD/AGDDKernel - DetectorDescription/GeoModel/GeoModelKernel PRIVATE Control/StoreGate DetectorDescription/AGDD/AGDDModel DetectorDescription/GeoModel/GeoModelInterfaces DetectorDescription/GeoModel/GeoModelUtilities + DetectorDescription/GeoPrimitives GaudiKernel Tools/PathResolver ) # External dependencies: find_package( CLHEP ) find_package( XercesC ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( AGDDControl src/*.cxx PUBLIC_HEADERS AGDDControl - INCLUDE_DIRS ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} + INCLUDE_DIRS ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIR} DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} AthenaBaseComps AGDDKernel GeoModelKernel StoreGateLib SGtests + LINK_LIBRARIES ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaBaseComps AGDDKernel StoreGateLib SGtests PRIVATE_LINK_LIBRARIES AGDDModel GeoModelUtilities GaudiKernel PathResolver ) diff --git a/DetectorDescription/AGDD/AGDDControl/src/AGDD2GeoModelBuilder.cxx b/DetectorDescription/AGDD/AGDDControl/src/AGDD2GeoModelBuilder.cxx index 2eb7c7f7df8421ee8410b7a6f03e0e6411e625d4..562bcea91cfad4b282b76a5e7fe96082e28cb2a8 100644 --- a/DetectorDescription/AGDD/AGDDControl/src/AGDD2GeoModelBuilder.cxx +++ b/DetectorDescription/AGDD/AGDDControl/src/AGDD2GeoModelBuilder.cxx @@ -60,6 +60,8 @@ #include "GeoModelKernel/GeoFullPhysVol.h" #include "GeoModelKernel/GeoTransform.h" +#include "GeoPrimitives/CLHEPtoEigenConverter.h" + #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/ISvcLocator.h" #include "GaudiKernel/Bootstrap.h" @@ -234,8 +236,8 @@ void AGDD2GeoModelBuilder::CreateSnake(AGDDSnake* v) CLHEP::HepRotation h; HepGeom::Transform3D ttt1(h,v1); HepGeom::Transform3D ttt2(h,v2); - static GeoShape *s1=new GeoShapeShift(box1,ttt1); - static GeoShape *s2=new GeoShapeShift(box1,ttt2); + static GeoShape *s1=new GeoShapeShift(box1,Amg::CLHEPTransformToEigen(ttt1)); + static GeoShape *s2=new GeoShapeShift(box1,Amg::CLHEPTransformToEigen(ttt2)); // std::cout<<" Snake "<<v->GetName()<<" nr. of Points "<<v->NrOfPoints()<<std::endl; double radius=v->Radius(); @@ -257,7 +259,7 @@ void AGDD2GeoModelBuilder::CreateSnake(AGDDSnake* v) rrr.rotateZ(axis2.phi()); rrr.rotateY(angle2); HepGeom::Transform3D ttt(rrr,vt); - GeoShape *ssnew=new GeoShapeShift(s1,ttt); + GeoShape *ssnew=new GeoShapeShift(s1,Amg::CLHEPTransformToEigen(ttt)); solid = new GeoShapeSubtraction(solid,ssnew); // std::cout<<" angles theta, phi "<<axis2.theta()<<" "<<axis2.phi()<<std::endl; @@ -265,13 +267,13 @@ void AGDD2GeoModelBuilder::CreateSnake(AGDDSnake* v) CLHEP::Hep3Vector vref(0.,0.,-lengthnew/2.); CLHEP::HepRotation r; HepGeom::Transform3D tref(r,vref); - solid=new GeoShapeShift(solid,tref); + solid=new GeoShapeShift(solid,Amg::CLHEPTransformToEigen(tref)); CLHEP::HepRotation r1; r1.rotateY(axis0.theta()); r1.rotateZ(axis0.phi()); CLHEP::Hep3Vector vtt(v->GetPoint(0).x(),v->GetPoint(0).y(),v->GetPoint(0).z()); HepGeom::Transform3D t(r1,vtt); - solid=new GeoShapeShift(solid,t); + solid=new GeoShapeShift(solid,Amg::CLHEPTransformToEigen(t)); for (int i=1;i<v->NrOfPoints()-1;i++) { @@ -298,25 +300,25 @@ void AGDD2GeoModelBuilder::CreateSnake(AGDDSnake* v) GeoShape* ss=new GeoTubs(0.,radius,lengthnew/2.,0.,4*asin(1.)); - const CLHEP::Hep3Vector vt1(0.,0.,+lengthnew/2.-delta_l1-2.); + const CLHEP::Hep3Vector vt1(0.,0.,+lengthnew/2.-delta_l1-2.); const CLHEP::Hep3Vector vt2(0.,0.,-lengthnew/2.+delta_l2+2.); - CLHEP::HepRotation rrr1,rrr2; + CLHEP::HepRotation rrr1,rrr2; - rrr1.rotateY(angle1); + rrr1.rotateY(angle1); rrr1.rotateZ(-axis1.phi()); rrr2.rotateY(-angle2); rrr2.rotateZ(axis2.phi()); - HepGeom::Transform3D ttt1(rrr1,vt1); + HepGeom::Transform3D ttt1(rrr1,vt1); HepGeom::Transform3D ttt2(rrr2,vt2); - GeoShape *ssnew1=new GeoShapeShift(s2,ttt1); + GeoShape *ssnew1=new GeoShapeShift(s2,Amg::CLHEPTransformToEigen(ttt1)); ss = new GeoShapeSubtraction(ss,ssnew1); if (i<(v->NrOfPoints()-2)) { - GeoShape *ssnew2=new GeoShapeShift(s1,ttt2); - ss = new GeoShapeSubtraction(ss,ssnew2); + GeoShape *ssnew2=new GeoShapeShift(s1,Amg::CLHEPTransformToEigen(ttt2)); + ss = new GeoShapeSubtraction(ss,ssnew2); } - ss=new GeoShapeShift(ss,ttref); + ss=new GeoShapeShift(ss,Amg::CLHEPTransformToEigen(ttref)); // std::cout<<" angles: theta "<<axis.theta()<<" phi "<<axis.phi()<<std::endl; CLHEP::HepRotation rr1; @@ -327,7 +329,7 @@ void AGDD2GeoModelBuilder::CreateSnake(AGDDSnake* v) const CLHEP::Hep3Vector vv(v->GetPoint(i).x(),v->GetPoint(i).y(),v->GetPoint(i).z()); HepGeom::Transform3D tt(rr1,vv); - ss=new GeoShapeShift(ss,tt); + ss=new GeoShapeShift(ss,Amg::CLHEPTransformToEigen(tt)); solid=new GeoShapeUnion(solid,ss); } v->SetSolid(solid); @@ -408,7 +410,7 @@ void AGDD2GeoModelBuilder::CreateUnion(AGDDUnion* v) // std::cout<<" volume name "<<vol->GetName()<<std::endl; vol->CreateSolid(); GeoShape *sV=(GeoShape*)(vol->GetSolid()); - sV=new GeoShapeShift(sV,pos->Transform()); + sV=new GeoShapeShift(sV,Amg::CLHEPTransformToEigen(pos->Transform())); for (int i=1;i<nPos;i++) { AGDDPositioner* pp=v->GetDaughter(i); @@ -416,7 +418,7 @@ void AGDD2GeoModelBuilder::CreateUnion(AGDDUnion* v) // std::cout<<" \t secondary volume name "<<vv->GetName()<<std::endl; vv->CreateSolid(); GeoShape *nsV=(GeoShape*)(vv->GetSolid()); - nsV=new GeoShapeShift(nsV,pp->Transform()); + nsV=new GeoShapeShift(nsV,Amg::CLHEPTransformToEigen(pp->Transform())); sV=new GeoShapeUnion(sV,nsV); } v->SetMaterial(vol->GetMaterial()); @@ -430,14 +432,14 @@ void AGDD2GeoModelBuilder::CreateIntersection(AGDDIntersection* v) AGDDVolume *vol=pos->GetVolume(); vol->CreateSolid(); GeoShape *sV=(GeoShape*)(vol->GetSolid()); - sV=new GeoShapeShift(sV,pos->Transform()); + sV=new GeoShapeShift(sV,Amg::CLHEPTransformToEigen(pos->Transform())); for (int i=1;i<nPos;i++) { AGDDPositioner* pp=v->GetDaughter(i); AGDDVolume *vv=pp->GetVolume(); vv->CreateSolid(); GeoShape *nsV=(GeoShape*)(vv->GetSolid()); - nsV=new GeoShapeShift(nsV,pp->Transform()); + nsV=new GeoShapeShift(nsV,Amg::CLHEPTransformToEigen(pp->Transform())); sV=new GeoShapeIntersection(sV,nsV); } v->SetMaterial(vol->GetMaterial()); @@ -450,14 +452,14 @@ void AGDD2GeoModelBuilder::CreateSubtraction(AGDDSubtraction* v) AGDDVolume *vol=pos->GetVolume(); vol->CreateSolid(); GeoShape *sV=(GeoShape*)(vol->GetSolid()); - sV=new GeoShapeShift(sV,pos->Transform()); + sV=new GeoShapeShift(sV,Amg::CLHEPTransformToEigen(pos->Transform())); for (int i=1;i<nPos;i++) { AGDDPositioner* pp=v->GetDaughter(i); AGDDVolume *vv=pp->GetVolume(); vv->CreateSolid(); GeoShape *nsV=(GeoShape*)(vv->GetSolid()); - nsV=new GeoShapeShift(nsV,pp->Transform()); + nsV=new GeoShapeShift(nsV,Amg::CLHEPTransformToEigen(pp->Transform())); sV=new GeoShapeSubtraction(sV,nsV); } v->SetMaterial(vol->GetMaterial()); @@ -542,7 +544,7 @@ void AGDD2GeoModelBuilder::CreateComposition(AGDDComposition *v) // if (isDetElement) std::cout<<"\t\t Detector: "<<volName<<" "<<detFullTag<<std::endl; } HepGeom::Transform3D trf=pos->Transform(); - GeoTransform *geotrf=new GeoTransform(trf); + GeoTransform *geotrf=new GeoTransform(Amg::CLHEPTransformToEigen(trf)); void *temp=vol->GetVolume(); // GeoFullPhysVol are needed for detectors (corresponding to ReadoutElements) @@ -627,7 +629,7 @@ void AGDD2GeoModelBuilder::BuildAllVolumes() std::cout<<"AGDDController: mother not set!!"<<std::endl; return; } - GeoTransform *gtrf=new GeoTransform(trf); + GeoTransform *gtrf=new GeoTransform(Amg::CLHEPTransformToEigen(trf)); m_mother->add(gtrf); m_mother->add(vvv); } @@ -672,7 +674,7 @@ void AGDD2GeoModelBuilder::BuildFromSection(std::string s) std::cout<<"AGDDController: mother not set!!"<<std::endl; return; } - GeoTransform *gtrf=new GeoTransform(trf); + GeoTransform *gtrf=new GeoTransform(Amg::CLHEPTransformToEigen(trf)); m_mother->add(gtrf); m_mother->add(vvv); } @@ -701,7 +703,7 @@ void AGDD2GeoModelBuilder::BuildFromSection(std::string s) std::cout<<"AGDDController: mother not set!!"<<std::endl; return; } - GeoTransform *gtrf=new GeoTransform(trf); + GeoTransform *gtrf=new GeoTransform(Amg::CLHEPTransformToEigen(trf)); m_mother->add(gtrf); m_mother->add(vvv); } @@ -736,7 +738,7 @@ void AGDD2GeoModelBuilder::BuildFromVolume(std::string s) std::cout<<"AGDDController: mother not set!!"<<std::endl; return; } - GeoTransform *gtrf=new GeoTransform(trf); + GeoTransform *gtrf=new GeoTransform(Amg::CLHEPTransformToEigen(trf)); m_mother->add(gtrf); m_mother->add(vvv); } diff --git a/DetectorDescription/AGDD/AGDDControl/src/AGDDController.cxx b/DetectorDescription/AGDD/AGDDControl/src/AGDDController.cxx index 0768a24a6c1ca409163a481efb9fc4970066ce59..c771dce1c055ddcfdd3ab33e5234c1b690b5d88a 100644 --- a/DetectorDescription/AGDD/AGDDControl/src/AGDDController.cxx +++ b/DetectorDescription/AGDD/AGDDControl/src/AGDDController.cxx @@ -18,7 +18,6 @@ #include "GeoModelKernel/GeoVDetectorManager.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoVPhysVol.h" -#include "GeoModelKernel/GeoPVLink.h" #include "GeoModelKernel/GeoPVConstLink.h" #include "StoreGate/StoreGateSvc.h" diff --git a/DetectorDescription/AGDD/AGDDKernel/AGDDKernel/AGDDDetectorPositioner.h b/DetectorDescription/AGDD/AGDDKernel/AGDDKernel/AGDDDetectorPositioner.h index d1afb6874fb88fc85a09bfe6c5a46807216bc276..0090c8203ca31730834e0e678abdeb4c53873752 100644 --- a/DetectorDescription/AGDD/AGDDKernel/AGDDKernel/AGDDDetectorPositioner.h +++ b/DetectorDescription/AGDD/AGDDKernel/AGDDKernel/AGDDDetectorPositioner.h @@ -5,6 +5,7 @@ #ifndef AGDDDetectorPositioner_H #define AGDDDetectorPositioner_H +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/GeoFullPhysVol.h" #include "CLHEP/Geometry/Transform3D.h" #include "CLHEP/Vector/ThreeVector.h" diff --git a/DetectorDescription/AGDD/AGDDKernel/CMakeLists.txt b/DetectorDescription/AGDD/AGDDKernel/CMakeLists.txt index eca55dd78598dc5d9b3c3ca8999ab28b2c426caf..3512565a61bac22427a8b65ab6c60bc539e13688 100644 --- a/DetectorDescription/AGDD/AGDDKernel/CMakeLists.txt +++ b/DetectorDescription/AGDD/AGDDKernel/CMakeLists.txt @@ -5,18 +5,19 @@ # Declare the package name: atlas_subdir( AGDDKernel ) -# Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC - DetectorDescription/GeoModel/GeoModelKernel ) + DetectorDescription/GeoPrimitives ) # External dependencies: find_package( CLHEP ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( AGDDKernel src/*.cxx PUBLIC_HEADERS AGDDKernel - INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} + INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} GeoModelKernel ) + LINK_LIBRARIES ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} ) diff --git a/DetectorDescription/GeoModel/AtlasGeoModel/python/LArGM.py b/DetectorDescription/GeoModel/AtlasGeoModel/python/LArGM.py index 853df4b8f2a57efbcd082d9a3544236197e51e05..e1356826b363ce1e877125e069fa560872022143 100755 --- a/DetectorDescription/GeoModel/AtlasGeoModel/python/LArGM.py +++ b/DetectorDescription/GeoModel/AtlasGeoModel/python/LArGM.py @@ -9,7 +9,6 @@ from AthenaCommon.DetFlags import DetFlags if ( DetFlags.detdescr.LAr_on() ): from GeoModelSvc.GeoModelSvcConf import GeoModelSvc GeoModelSvc = GeoModelSvc() - from LArGeoAlgsNV.LArGeoAlgsNVConf import LArDetectorToolNV GeoModelSvc.DetectorTools += [ LArDetectorToolNV() ] diff --git a/DetectorDescription/GeoModel/GeoAdaptors/CMakeLists.txt b/DetectorDescription/GeoModel/GeoAdaptors/CMakeLists.txt index 7f04caf1688fd0d6660ead6eeb8f5e408fe65d87..74ef724ce07daa5f279a15f1701057035ad0ed86 100644 --- a/DetectorDescription/GeoModel/GeoAdaptors/CMakeLists.txt +++ b/DetectorDescription/GeoModel/GeoAdaptors/CMakeLists.txt @@ -12,6 +12,7 @@ atlas_depends_on_subdirs( PUBLIC Calorimeter/CaloSimEvent Control/StoreGate DetectorDescription/Identifier + DetectorDescription/GeoPrimitives InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry InnerDetector/InDetSimEvent diff --git a/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoSiHit.icc b/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoSiHit.icc index 1e523bce887b0371ed681a423ab09ce537aa6a8c..2a6c9edbdd74dc7bbcf462a0c602c5e8da67a6c9 100755 --- a/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoSiHit.icc +++ b/DetectorDescription/GeoModel/GeoAdaptors/GeoAdaptors/GeoSiHit.icc @@ -10,7 +10,7 @@ #include "StoreGate/StoreGate.h" #include "InDetIdentifier/PixelID.h" #include "InDetIdentifier/SCT_ID.h" - +#include "GeoPrimitives/CLHEPtoEigenConverter.h" inline void GeoSiHit::init() { @@ -56,7 +56,7 @@ inline HepGeom::Point3D<double> GeoSiHit::getGlobalPosition() const { if (geoelement) { - const HepGeom::Point3D<double> globalStartPos = geoelement->transformHit() * HepGeom::Point3D<double>(m_hit->localStartPosition()); + const HepGeom::Point3D<double> globalStartPos = Amg::EigenTransformToCLHEP(geoelement->transformHit()) * HepGeom::Point3D<double>(m_hit->localStartPosition()); double x=globalStartPos.x(); double y=globalStartPos.y(); diff --git a/DetectorDescription/GeoModel/GeoModelExamples/CMakeLists.txt b/DetectorDescription/GeoModel/GeoModelExamples/CMakeLists.txt index 4453e6da32d821f53c6dab1c53e3cdac42fb9453..2c31c9c6e383996795f68a9b9bdea360c72d7fac 100644 --- a/DetectorDescription/GeoModel/GeoModelExamples/CMakeLists.txt +++ b/DetectorDescription/GeoModel/GeoModelExamples/CMakeLists.txt @@ -8,7 +8,6 @@ atlas_subdir( GeoModelExamples ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities PRIVATE Control/StoreGate @@ -17,19 +16,19 @@ atlas_depends_on_subdirs( PUBLIC GaudiKernel ) # External dependencies: -find_package( CLHEP ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( GeoModelExamplesLib src/*.cxx PUBLIC_HEADERS GeoModelExamples - PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES GeoModelKernel GeoModelUtilities StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} Identifier GaudiKernel ) + PRIVATE_INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES GeoModelUtilities StoreGateLib + PRIVATE_LINK_LIBRARIES ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} Identifier GaudiKernel ) atlas_add_component( GeoModelExamples src/components/*.cxx - INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} GeoModelKernel GeoModelUtilities StoreGateLib SGtests Identifier GaudiKernel GeoModelExamplesLib ) + INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} GeoModelUtilities StoreGateLib Identifier GaudiKernel GeoModelExamplesLib ) diff --git a/DetectorDescription/GeoModel/GeoModelExamples/src/ToyDetectorFactory.cxx b/DetectorDescription/GeoModel/GeoModelExamples/src/ToyDetectorFactory.cxx index b9bea9a06edd7ca222c207c5602d540a98220c2f..ab0496f70daf397e55b06a4e177f0a2f9b7d971b 100755 --- a/DetectorDescription/GeoModel/GeoModelExamples/src/ToyDetectorFactory.cxx +++ b/DetectorDescription/GeoModel/GeoModelExamples/src/ToyDetectorFactory.cxx @@ -5,6 +5,8 @@ #include "ToyDetectorFactory.h" #include "CentralScrutinizer.h" #include "GeoModelInterfaces/AbsMaterialManager.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoTube.h" @@ -16,14 +18,14 @@ #include "GeoModelKernel/GeoSerialDenominator.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoSerialTransformer.h" -#include "CLHEP/GenericFunctions/AbsFunction.hh" -#include "CLHEP/GenericFunctions/Variable.hh" -#include "CLHEP/GenericFunctions/Sin.hh" -#include "CLHEP/GenericFunctions/Cos.hh" +#include "GeoGenericFunctions/AbsFunction.h" +#include "GeoGenericFunctions/Variable.h" +#include "GeoGenericFunctions/Sin.h" +#include "GeoGenericFunctions/Cos.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/StoredMaterialManager.h" -using namespace Genfun; +using namespace GeoGenfun; using namespace GeoXF; @@ -65,7 +67,7 @@ void ToyDetectorFactory::create(GeoPhysVol *world) //-----------------------------------------------------------------------------------// // Next make the box that describes the shape of the toy volume: // // // - const GeoBox *toyBox = new GeoBox(800*CLHEP::cm,800*CLHEP::cm, 1000*CLHEP::cm); // + const GeoBox *toyBox = new GeoBox(800*GeoModelKernelUnits::cm,800*GeoModelKernelUnits::cm, 1000*GeoModelKernelUnits::cm); // // // // Bundle this with a material into a logical volume: // // // @@ -84,7 +86,7 @@ void ToyDetectorFactory::create(GeoPhysVol *world) // Daughters // // // // // - const GeoTube *ringTube = new GeoTube(500*CLHEP::cm, 1000*CLHEP::cm, 5.0*CLHEP::cm); // + const GeoTube *ringTube = new GeoTube(500*GeoModelKernelUnits::cm, 1000*GeoModelKernelUnits::cm, 5.0*GeoModelKernelUnits::cm); // // // // Bundle this with a material into a logical volume: // // // @@ -96,7 +98,7 @@ void ToyDetectorFactory::create(GeoPhysVol *world) toyPhys->add(ringName); // for (int i=0;i<100;i++) { // GeoFullPhysVol *ringPhys = new GeoFullPhysVol(ringLog); // - GeoAlignableTransform *xform = new GeoAlignableTransform(HepGeom::TranslateZ3D((i-50)*20*CLHEP::cm)); + GeoAlignableTransform *xform = new GeoAlignableTransform(GeoTrf::TranslateZ3D((i-50)*20*GeoModelKernelUnits::cm)); toyPhys->add(xform); // toyPhys->add(ringPhys); // m_detectorManager->addCentralScrutinizer(new CentralScrutinizer(ringPhys)); // @@ -111,11 +113,11 @@ void ToyDetectorFactory::create(GeoPhysVol *world) // parametrizations in the Toy // //-----------------------------------------------------------------------------------// - GeoBox *sPass = new GeoBox(5.0*CLHEP::cm, 30*CLHEP::cm, 30*CLHEP::cm); + GeoBox *sPass = new GeoBox(5.0*GeoModelKernelUnits::cm, 30*GeoModelKernelUnits::cm, 30*GeoModelKernelUnits::cm); GeoLogVol *lPass = new GeoLogVol("Passive", sPass, poly); GeoPhysVol *pPass = new GeoPhysVol(lPass); - GeoBox *sIPass = new GeoBox(4*CLHEP::cm, 25*CLHEP::cm, 25*CLHEP::cm); + GeoBox *sIPass = new GeoBox(4*GeoModelKernelUnits::cm, 25*GeoModelKernelUnits::cm, 25*GeoModelKernelUnits::cm); GeoLogVol *lIPass = new GeoLogVol("InnerPassive", sIPass, air); GeoPhysVol *pIPass = new GeoPhysVol(lIPass); @@ -124,11 +126,11 @@ void ToyDetectorFactory::create(GeoPhysVol *world) const unsigned int NPLATES=100; Variable i; Sin sin; - GENFUNCTION f = 360*CLHEP::deg/NPLATES*i; + GENFUNCTION f = 360*GeoModelKernelUnits::deg/NPLATES*i; GENFUNCTION g = sin(4*f); GENFUNCTION h = -g; - TRANSFUNCTION t1 = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateX3D(1100*CLHEP::cm)*Pow(HepGeom::TranslateZ3D(800*CLHEP::cm),g); - TRANSFUNCTION t2 = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateX3D(1100*CLHEP::cm)*Pow(HepGeom::TranslateZ3D(800*CLHEP::cm),h); + TRANSFUNCTION t1 = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(1100*GeoModelKernelUnits::cm)*Pow(GeoTrf::TranslateZ3D(800*GeoModelKernelUnits::cm),g); + TRANSFUNCTION t2 = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(1100*GeoModelKernelUnits::cm)*Pow(GeoTrf::TranslateZ3D(800*GeoModelKernelUnits::cm),h); //-----------------------------------------------------------------------------------// // Inside, by the way, the serial transformer will evaluate the functions: // diff --git a/DetectorDescription/GeoModel/GeoModelExamples/src/ToyDetectorTool.cxx b/DetectorDescription/GeoModel/GeoModelExamples/src/ToyDetectorTool.cxx index 4459e699f35e6808b94e4b73bfd179597791ebe1..243055152ca2b96f3b2c6dbd00c24c365fd6de0e 100755 --- a/DetectorDescription/GeoModel/GeoModelExamples/src/ToyDetectorTool.cxx +++ b/DetectorDescription/GeoModel/GeoModelExamples/src/ToyDetectorTool.cxx @@ -8,66 +8,76 @@ #include "GeoModelUtilities/GeoModelExperiment.h" #include "GaudiKernel/IService.h" #include "GaudiKernel/ISvcLocator.h" -#include "GaudiKernel/MsgStream.h" #include "StoreGate/StoreGateSvc.h" -/** - ** Constructor(s) - **/ +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/GeoVolumeCursor.h" +#include <string> + ToyDetectorTool::ToyDetectorTool( const std::string& type, const std::string& name, const IInterface* parent ) -: GeoModelTool( type, name, parent ) + : GeoModelTool( type, name, parent ) { } -/** - ** Destructor - **/ ToyDetectorTool::~ToyDetectorTool() { - // This will need to be modified once we register the Toy DetectorNode in - // the Transient Detector Store - if ( 0 != m_detector ) { - delete m_detector; - m_detector = 0; - } + delete m_detector; } -/** - ** Create the Detector Node corresponding to this tool - **/ -StatusCode -ToyDetectorTool::create() +StatusCode ToyDetectorTool::create() { - MsgStream log(msgSvc(), name()); - // - // Locate the top level experiment node - // + ATH_MSG_INFO("ToyDetectorTool::create() ..."); + + // Locate the top level experiment GeoModelExperiment* theExpt = nullptr; - if (StatusCode::SUCCESS != detStore()->retrieve( theExpt, "ATLAS" )) { - log << MSG::ERROR - << "Could not find GeoModelExperiment ATLAS" - << endmsg; - return (StatusCode::FAILURE); - } + ATH_CHECK(detStore()->retrieve(theExpt, "ATLAS")); ToyDetectorFactory theToyFactory(detStore().operator->()); - if ( 0 == m_detector ) { - // Create the ToyDetectorNode instance + if(m_detector==nullptr) { + // Build geometry try { // // This strange way of casting is to avoid an // utterly brain damaged compiler warning. // - GeoPhysVol *world=&*theExpt->getPhysVol(); + GeoPhysVol *world=theExpt->getPhysVol(); theToyFactory.create(world); - } catch (const std::bad_alloc&) { - log << MSG::FATAL << "Could not create new ToyDetectorNode!" << endmsg; + printVolume(world); + } + catch (const std::bad_alloc&) { + ATH_MSG_FATAL("Could not Toy Detector Geometry!"); return StatusCode::FAILURE; } - // Register the ToyDetectorNode instance with the Transient Detector Store + // Add detector manager to AtlasExperiment and also record it into DetStore theExpt->addManager(theToyFactory.getDetectorManager()); - if (detStore()->record(theToyFactory.getDetectorManager(),theToyFactory.getDetectorManager()->getName())!=StatusCode::SUCCESS) return StatusCode::FAILURE; - return StatusCode::SUCCESS; + if (detStore()->record(theToyFactory.getDetectorManager(),theToyFactory.getDetectorManager()->getName()).isSuccess()) return StatusCode::SUCCESS; + ATH_MSG_FATAL("Failed to record Toy Detector Manager into Detector Store!"); + } + else { + ATH_MSG_FATAL("Attempt to build Toy Detector Geometry one more time. The geometry can be built only once!"); } return StatusCode::FAILURE; } + +void ToyDetectorTool::printVolume(GeoPVConstLink volume) +{ + static int level{0}; + GeoVolumeCursor cursor(volume); + while(!cursor.atEnd()) { + GeoPVConstLink physChild = cursor.getVolume(); + GeoTrf::Transform3D position = cursor.getTransform(); + for(int k{0};k<level;++k) std::cout << "... "; + std::cout << cursor.getName() << " " << (cursor.getId().isValid()?std::to_string(cursor.getId()).c_str():"N/A") + << " Transform:" << "\n"; + for(int i{0};i<3;++i) { + for(int j{0};j<4;++j) { + std::cout << position(i,j) << " "; + } + std::cout << "\n"; + } + level++; + printVolume(physChild); + level--; + cursor.next(); + } +} diff --git a/DetectorDescription/GeoModel/GeoModelExamples/src/ToyDetectorTool.h b/DetectorDescription/GeoModel/GeoModelExamples/src/ToyDetectorTool.h index 0c8605ec0c3677fd5b4a86dbaa7ae13c9927346a..9be8ef68bfe6408e3d8c90d51d870112b22760fe 100755 --- a/DetectorDescription/GeoModel/GeoModelExamples/src/ToyDetectorTool.h +++ b/DetectorDescription/GeoModel/GeoModelExamples/src/ToyDetectorTool.h @@ -6,17 +6,17 @@ #define GEOMODELEXAMPLES_TOYDETECTORTOOL_H #include "GeoModelUtilities/GeoModelTool.h" +#include "GeoModelKernel/GeoPVConstLink.h" -class ToyDetectorTool : public GeoModelTool { +class ToyDetectorTool : public GeoModelTool +{ public: - - // Standard Constructor ToyDetectorTool( const std::string& type, const std::string& name, const IInterface* parent ); - - // Standard Destructor virtual ~ToyDetectorTool() override final; virtual StatusCode create() override final; + private: + void printVolume(GeoPVConstLink volime); }; #endif // GEOMODELEXAMPLES_TOYDETECTORTOOL_H diff --git a/DetectorDescription/GeoModel/GeoModelKernel/CMakeLists.txt b/DetectorDescription/GeoModel/GeoModelKernel/CMakeLists.txt deleted file mode 100644 index ab6956fee8fabcba56db60f982c6c666ed66ba69..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/CMakeLists.txt +++ /dev/null @@ -1,18 +0,0 @@ -################################################################################ -# Package: GeoModelKernel -################################################################################ - -# Declare the package name: -atlas_subdir( GeoModelKernel ) - -# External dependencies: -find_package( CLHEP ) - -# Component(s) in the package: -atlas_add_library( GeoModelKernel - src/*.cxx - PUBLIC_HEADERS GeoModelKernel - INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} ) - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/CellBinning.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/CellBinning.h deleted file mode 100755 index 966ffdd6db8cc85bd4bc177a67e2821f4d99629c..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/CellBinning.h +++ /dev/null @@ -1,120 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_CELLBINNING_H -#define GEOMODELKERNEL_CELLBINNING_H - -/** - * @class CellBinning - * - * @brief A simple class to specify a range, and a number of bins. - * The binning is specified as one would specify bins of a histogram. - * In addition to the usual start-of-range, end-of-range, and number - * of divisions this class also has an index for the first bin number. - * In this package the cell binning is used to set up regions of homogenous - * granularity (or just "regions"). - */ - -class CellBinning -{ - - public: - - /** - * @brief Constructor - */ - CellBinning (double startVal, double endVal, unsigned int nBins, unsigned int firstDivisionNumber = 0); - - - /** - * @brief Gets the ith bin lower edge - */ - double binLower (unsigned int i) const; - - /** - * @brief gets the ith bin upper edge - */ - double binUpper (unsigned int i) const; - - /** - * @brief gets the ith bin center - */ - double binCenter (unsigned int i) const; - - /** - * @brief Starting value - */ - double getStart () const; - - /** - * @brief Ending Value - */ - double getEnd () const; - - /** - * @brief Number of Bins - */ - unsigned int getNumDivisions () const; - - /** - * @brief gets the bin width - */ - double getDelta () const; - - /** - * @brief Number for the first division. Optional, default=0. - */ - unsigned int getFirstDivisionNumber () const; - - - private: - - double m_start; - double m_end; - unsigned int m_numDivisions; - double m_delta; - unsigned int m_firstDivisionNumber; -}; - -inline double CellBinning::binLower (unsigned int i) const -{ - return m_start + (i-m_firstDivisionNumber)*m_delta; -} - -inline double CellBinning::binUpper (unsigned int i) const -{ - return m_start + (i-m_firstDivisionNumber+1)*m_delta; -} - -inline double CellBinning::binCenter (unsigned int i) const -{ - return m_start + (i-m_firstDivisionNumber+0.5)*m_delta; -} - -inline double CellBinning::getStart () const -{ - return m_start; -} - -inline double CellBinning::getEnd () const -{ - return m_end; -} - -inline unsigned int CellBinning::getNumDivisions () const -{ - return m_numDivisions; -} - -inline double CellBinning::getDelta () const -{ - return m_delta; -} - -inline unsigned int CellBinning::getFirstDivisionNumber () const -{ - return m_firstDivisionNumber; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/CellPartitioning.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/CellPartitioning.h deleted file mode 100644 index 96ef57366da38c940aebe25ae14e8e86c423ace9..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/CellPartitioning.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_CELLPARTITIONING_H -#define GEOMODELKERNEL_CELLPARTITIONING_H -#include <vector> - -class CellPartitioning -{ - public: - - CellPartitioning(unsigned int firstDivisionNumber = 0); - - CellPartitioning(const CellPartitioning& right); - - virtual ~CellPartitioning(); - - CellPartitioning& operator=(const CellPartitioning& right); - - void addValue(double xVal); - - double binLower(unsigned int i) const - { - return m_partition[i-getFirstDivisionNumber()]; - } - - double binUpper(unsigned int i) const - { - return m_partition[i-getFirstDivisionNumber()+1]; - } - - double binCenter(unsigned int i) const - { - return 0.5*(binUpper(i)+binLower(i)); - } - - unsigned int getNumDivisions() const - { - return m_partition.size()-1; - } - - unsigned int getFirstDivisionNumber() const - { - return m_firstDivisionNumber; - } - - double getStart() const - { - return m_partition[0]; - } - - double getEnd() const - { - return m_partition[m_partition.size()-1]; - } - - private: - - std::vector<double> m_partition; - - unsigned int m_firstDivisionNumber; -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/ConstLink.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/ConstLink.h deleted file mode 100755 index 42c097699de07d60bc5155911bcfdd79b2cbb7f3..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/ConstLink.h +++ /dev/null @@ -1,205 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_CONSTLINK_H -#define GEOMODELKERNEL_CONSTLINK_H - -/** - * @class ConstLink - * - * @brief Smart links to reference-counted pointers. Used in this - * package for calorimeter cells - ** Template Smart Pointer Class. This reference counted - * link allocates on demand. It audits the total pointer - * count and collects the garbage when nobody's looking. - */ - -template <class T> -class ConstLink -{ - public: - - - /** - * @brief Constructor - */ - ConstLink(); - - /** - * @brief Copy Constructor - */ - ConstLink(const ConstLink< T > &right); - - /** - * @brief Constructor - */ - ConstLink (const T *target); - - /** - * @brief Destructor - */ - virtual ~ConstLink(); - - /** - * @brief Assignment - */ - ConstLink< T > & operator=(const ConstLink< T > &right); - - /** - * @brief Equality - */ - int operator==(const ConstLink< T > &right) const; - - /** - * @brief Inequality - */ - int operator!=(const ConstLink< T > &right) const; - - - /** - * @brief Relational operator - */ - int operator<(const ConstLink< T > &right) const; - - /** - * @brief Relational operator - */ - int operator>(const ConstLink< T > &right) const; - - /** - * @brief Relational operator - */ - int operator<=(const ConstLink< T > &right) const; - - /** - * @brief Relational operator - */ - int operator>=(const ConstLink< T > &right) const; - - - - /** - * @brief Dereference: (*t).method(); - */ - virtual const T & operator * () const; - - /** - * @brief Dereference: t->method() - */ - virtual const T * operator -> () const; - - /** - * @brief Check pointer validity: if (t) {...} - */ - operator bool () const; - - - - private: - /** - * @brief Raw pointer to reference counted object. - */ - mutable T *m_ptr; -}; - - - -template <class T> -inline ConstLink<T>::ConstLink() - :m_ptr(nullptr) -{ -} - -template <class T> -inline ConstLink<T>::ConstLink(const ConstLink<T> &right) - :m_ptr(right.m_ptr) -{ - if (m_ptr) m_ptr->ref(); -} - -template <class T> -inline ConstLink<T>::ConstLink (const T *target) - :m_ptr(const_cast<T *> (target)) -{ - if (target) target->ref(); -} - - -template <class T> -inline ConstLink<T>::~ConstLink() -{ - if (m_ptr) m_ptr->unref(); -} - - -template <class T> -inline ConstLink<T> & ConstLink<T>::operator=(const ConstLink<T> &right) -{ - if (this!=&right) { - if (m_ptr) m_ptr->unref(); - m_ptr = right.m_ptr; - if (m_ptr) m_ptr->ref(); - } - return *this; -} - - -template <class T> -inline int ConstLink<T>::operator==(const ConstLink<T> &right) const -{ - return m_ptr==right.m_ptr; -} - -template <class T> -inline int ConstLink<T>::operator!=(const ConstLink<T> &right) const -{ - return m_ptr!=right.m_ptr; -} - - -template <class T> -inline int ConstLink<T>::operator<(const ConstLink<T> &right) const -{ - return m_ptr<right.m_ptr; -} - -template <class T> -inline int ConstLink<T>::operator>(const ConstLink<T> &right) const -{ - return m_ptr>right.m_ptr; -} - -template <class T> -inline int ConstLink<T>::operator<=(const ConstLink<T> &right) const -{ - return m_ptr<=right.m_ptr; -} - -template <class T> -inline int ConstLink<T>::operator>=(const ConstLink<T> &right) const -{ - return m_ptr>=right.m_ptr; -} - - - -template <class T> -inline const T & ConstLink<T>::operator * () const -{ - return *m_ptr; -} - -template <class T> -inline const T * ConstLink<T>::operator -> () const -{ - return m_ptr; -} - -template <class T> -inline ConstLink<T>::operator bool () const -{ - return m_ptr; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoAbsPositionInfo.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoAbsPositionInfo.h deleted file mode 100755 index ed6ecb53f09a8c5ec5c428b9fa234b2ae3e56161..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoAbsPositionInfo.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOABSPOSITIONINFO_H -#define GEOMODELKERNEL_GEOABSPOSITIONINFO_H - -/** - * @class GeoAbsPositionInfo - * - * @brief This class represents anything whose default and aligned - * postions are known and cached. - */ - -#include <CLHEP/Geometry/Transform3D.h> - -class GeoAbsPositionInfo -{ - public: - GeoAbsPositionInfo(); - ~GeoAbsPositionInfo(); - - // Returns the default absolute transform. - const HepGeom::Transform3D * getAbsTransform () const; - - // Returns the default absolute transform. - const HepGeom::Transform3D * getDefAbsTransform () const; - - - // Clears the absolute transform. - void clearAbsTransform (); - - // Clears the default absolute transform. - void clearDefAbsTransform (); - - // Sets the absolute transform. - void setAbsTransform (const HepGeom::Transform3D & xform); - - // Sets the absolute transform. - void setDefAbsTransform (const HepGeom::Transform3D & xform); - - private: - GeoAbsPositionInfo(const GeoAbsPositionInfo &right); - GeoAbsPositionInfo & operator=(const GeoAbsPositionInfo &right); - - // The absolute transform from the world coord down to this - // positioned object. - HepGeom::Transform3D *m_absTransform; - - // The default absolute transform from the world coord down - // to this positioned object. - HepGeom::Transform3D *m_defAbsTransform; -}; - -inline const HepGeom::Transform3D * GeoAbsPositionInfo::getAbsTransform () const -{ - return m_absTransform; -} - -inline const HepGeom::Transform3D * GeoAbsPositionInfo::getDefAbsTransform () const -{ - return m_defAbsTransform; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoAccessVolAndSTAction.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoAccessVolAndSTAction.h deleted file mode 100755 index f3dd738150ea30ea38fae148113f069cd1887b73..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoAccessVolAndSTAction.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOACCESSVOLANDSTACTION_H -#define GEOMODELKERNEL_GEOACCESSVOLANDSTACTION_H - -/** - * @class GeoAccessVolAndSTAction - * - * @brief Accesses volumes and serial transformers, returning the ith volume - * and also its transformation relative to the parent. - * - * Used only by Geo2G4. Hence should not depend on the Alignment Store - */ - -#include "GeoModelKernel/GeoNodeAction.h" -#include "CLHEP/Geometry/Transform3D.h" -#include <vector> - -class GeoVPhysVol; -class GeoTransform; - -class GeoAccessVolAndSTAction final : public GeoNodeAction -{ - public: - GeoAccessVolAndSTAction(unsigned int index); - virtual ~GeoAccessVolAndSTAction() override; - - virtual void handleTransform(const GeoTransform* xform) override; - virtual void handlePhysVol(const GeoPhysVol* vol) override; - virtual void handleFullPhysVol(const GeoFullPhysVol* vol) override; - - PVConstLink getVolume() const; - const HepGeom::Transform3D & getTransform() const; - const HepGeom::Transform3D & getDefTransform() const; - const std::string & getName() const; - - virtual void handleNameTag(const GeoNameTag *nameTag) override; - virtual void handleSerialDenominator(const GeoSerialDenominator* sD) override; - - virtual void handleSerialTransformer(const GeoSerialTransformer* sT) override; - const GeoSerialTransformer* getSerialTransformer() const; - - virtual void handleIdentifierTag(const GeoIdentifierTag* idTag) override; - - Query<unsigned int> getId() const; - - private: - GeoAccessVolAndSTAction(const GeoAccessVolAndSTAction &right); - const GeoAccessVolAndSTAction & operator=(const GeoAccessVolAndSTAction &right); - - /// A pointer to the ith physical volume under this one. - PVConstLink m_volume; - - /// A pointer to the Serial Transformer - const GeoSerialTransformer* m_serialTransformer; - - /// The transformation and default transformation to the ith volume. - HepGeom::Transform3D m_transform; - HepGeom::Transform3D m_defTransform; - - unsigned int m_index; - unsigned int m_counter; - - /// The name of the volume. From a nametag or a serial denominator - mutable std::string m_name; - - /// The identifier of the volume. From an identifier tag. - mutable Query<unsigned int> m_id; - - /// A pointer to a name tag. If the volume is named. - const GeoNameTag *m_nameTag; - const GeoSerialDenominator *m_serialDenominator; - const GeoIdentifierTag *m_idTag; - - std::vector<const GeoTransform *> m_pendingTransformList; - unsigned int m_serialDenomPosition; -}; - -#endif - - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoAlignableTransform.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoAlignableTransform.h deleted file mode 100755 index 97cd3fd142f3c0b146d788631218505688916b76..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoAlignableTransform.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOALIGNABLETRANSFORM_H -#define GEOMODELKERNEL_GEOALIGNABLETRANSFORM_H - -#include "GeoModelKernel/GeoTransform.h" -#include <vector> - -class GeoVAlignmentStore; - -class GeoAlignableTransform final : public GeoTransform -{ - public: - GeoAlignableTransform(const HepGeom::Transform3D &transform); - - /// Gets the total transform, including the alignment correction - virtual HepGeom::Transform3D getTransform(const GeoVAlignmentStore* store=nullptr) const override; - - /// Sets an alignment delta - void setDelta(const HepGeom::Transform3D& delta, GeoVAlignmentStore* store=nullptr); - - /// Clears the alignment delta - // To Do: This method will become obsolete once we migrate LAr to the Alignment Store. - // At that point thie method should be dropped - void clearDelta(GeoVAlignmentStore* store=nullptr); - - /// When a node is added to a parent in the graph, the node - /// is always notified. What happens at that time is up to - /// the node. Most nodes do not need to do anything. - /// Some--the alignable transforms in particular--need to - /// take some actions, such as adding the parent volume to a list - virtual void dockTo(GeoVPhysVol* parent) override; - - protected: - virtual ~GeoAlignableTransform() override; - - private: - GeoAlignableTransform(const GeoAlignableTransform &right); - GeoAlignableTransform & operator=(const GeoAlignableTransform &right); - - // Pointer to an alignment correction. Until some - // alignment correction is set, this pointer is nullptr and - // the memory is unallocated. - HepGeom::Transform3D* m_delta; - - // A list of parents who use this alignable target. They - // must all be notified when the alignment changes! - std::vector<GeoGraphNode*> m_parentList; -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoBox.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoBox.h deleted file mode 100755 index b024be9ad71ee38aade79b6114fda765cc655bfb..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoBox.h +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOBOX_H -#define GEOMODELKERNEL_GEOBOX_H - -#include "GeoModelKernel/GeoShape.h" - -class GeoBox : public GeoShape -{ - public: - // Constructor for the BOX. - GeoBox (double XHalfLength, double YHalfLength, double ZHalfLength); - - // Returns the volume of the shape, for mass inventory - virtual double volume () const; - - // Returns the BOX shape type, as a string. - virtual const std::string & type () const; - - // Returns the BOX shape type, as a coded integer. - virtual ShapeType typeID () const; - - // Executes a GeoShapeAction. - virtual void exec (GeoShapeAction *action) const; - - // For type identification. - static const std::string& getClassType (); - - // For type identification., - static ShapeType getClassTypeID (); - - // Half length in the x-direction. - const double& getXHalfLength () const; - - // Half-length in the y direction. - const double& getYHalfLength () const; - - // Half-length in the z direction. - const double& getZHalfLength () const; - - protected: - virtual ~GeoBox(); - - private: - GeoBox(const GeoBox &right); - GeoBox & operator=(const GeoBox &right); - - static const std::string s_classType; - static const ShapeType s_classTypeID; - double m_xHalfLength; - double m_yHalfLength; - double m_zHalfLength; -}; - -inline const std::string& GeoBox::getClassType () -{ - return s_classType; -} - -inline ShapeType GeoBox::getClassTypeID () -{ - return s_classTypeID; -} - -inline const double& GeoBox::getXHalfLength () const -{ - return m_xHalfLength; -} - -inline const double& GeoBox::getYHalfLength () const -{ - return m_yHalfLength; -} - -inline const double& GeoBox::getZHalfLength () const -{ - return m_zHalfLength; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoClearAbsPosAction.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoClearAbsPosAction.h deleted file mode 100755 index e079a39b20e7519ecfca7016d184b5311cd39738..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoClearAbsPosAction.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/** - * @class GeoClearAbsPosAction - * - * @brief Clears absolute postion information from full physical - * volume nodes. This action is initiated from a change in - * the alignment of an alignable transformation...although - * it may of course be used by other clients, too. - */ - -#ifndef GEOMODELKERNEL_GEOCLEARABSPOSACTION_H -#define GEOMODELKERNEL_GEOCLEARABSPOSACTION_H - -#include "GeoModelKernel/GeoNodeAction.h" - -class GeoClearAbsPosAction : public GeoNodeAction -{ - public: - GeoClearAbsPosAction(); - virtual ~GeoClearAbsPosAction(); - - // Handles a physical volume. - virtual void handleFullPhysVol (const GeoFullPhysVol *vol); - - private: - GeoClearAbsPosAction(const GeoClearAbsPosAction &right); - GeoClearAbsPosAction & operator=(const GeoClearAbsPosAction &right); - -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoCons.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoCons.h deleted file mode 100755 index 052e59d381bf07a077d7b70dc0580a4aeed28510..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoCons.h +++ /dev/null @@ -1,118 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOCONS_H -#define GEOMODELKERNEL_GEOCONS_H - -#include "GeoModelKernel/GeoShape.h" - -class GeoCons : public GeoShape -{ - public: - GeoCons (double RMin1, double RMin2, double RMax1, double RMax2, double DZ, double SPhi, double DPhi); - - // Returns the volume of the shape, for mass inventory - virtual double volume () const; - - // Returns the CONS shape type, as a string. - virtual const std::string & type () const; - - // Returns the CONS shape type, as a coded integer. - virtual ShapeType typeID () const; - - // Executes a GeoShapeAction - virtual void exec (GeoShapeAction *action) const; - - // For type identification. - static const std::string& getClassType (); - - // For type identification. - static ShapeType getClassTypeID (); - - // Inside radius at -dZ - const double& getRMin1 () const; - - // Inside radius at +dZ - const double& getRMin2 () const; - - // Outside radius at -dZ - const double& getRMax1 () const; - - // Outside radius at +dZ - const double& getRMax2 () const; - - // Half length in Z direction. - const double& getDZ () const; - - // Starting angle of the segment in radians - const double& getSPhi () const; - - // Delta angle of the segment in radians. - const double& getDPhi () const; - - protected: - virtual ~GeoCons(); - - private: - GeoCons(const GeoCons &right); - GeoCons & operator=(const GeoCons &right); - - static const std::string s_classType; - static const ShapeType s_classTypeID; - - double m_rMin1; - double m_rMin2; - double m_rMax1; - double m_rMax2; - double m_dZ; - double m_sPhi; - double m_dPhi; -}; - -inline const std::string& GeoCons::getClassType () -{ - return s_classType; -} - -inline ShapeType GeoCons::getClassTypeID () -{ - return s_classTypeID; -} - -inline const double& GeoCons::getRMin1 () const -{ - return m_rMin1; -} - -inline const double& GeoCons::getRMin2 () const -{ - return m_rMin2; -} - -inline const double& GeoCons::getRMax1 () const -{ - return m_rMax1; -} - -inline const double& GeoCons::getRMax2 () const -{ - return m_rMax2; -} - -inline const double& GeoCons::getDZ () const -{ - return m_dZ; -} - -inline const double& GeoCons::getSPhi () const -{ - return m_sPhi; -} - -inline const double& GeoCons::getDPhi () const -{ - return m_dPhi; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoCountVolAction.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoCountVolAction.h deleted file mode 100755 index 916670735230ace9fbbd258d251b9d2b10e8301e..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoCountVolAction.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOCOUNTVOLACTION_H -#define GEOMODELKERNEL_GEOCOUNTVOLACTION_H - -#include "GeoModelKernel/GeoNodeAction.h" - -class GeoCountVolAction : public GeoNodeAction -{ - public: - GeoCountVolAction (); - virtual ~GeoCountVolAction(); - - // Handles a physical volume. - virtual void handlePhysVol (const GeoPhysVol *); - - // Handles a physical volume. - virtual void handleFullPhysVol (const GeoFullPhysVol *); - - // Handles a Serial Transformer - virtual void handleSerialTransformer (const GeoSerialTransformer *st); - - // The volume count. - unsigned int getCount () const; - - private: - GeoCountVolAction(const GeoCountVolAction &right); - GeoCountVolAction & operator=(const GeoCountVolAction &right); - - unsigned int m_count; -}; - -inline unsigned int GeoCountVolAction::getCount () const -{ - return m_count; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoCountVolAndSTAction.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoCountVolAndSTAction.h deleted file mode 100755 index 7d49c5f1bc191048c85172bc6d5a8ce1c20d8243..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoCountVolAndSTAction.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOCOUNTVOLANDSTACTION_H -#define GEOMODELKERNEL_GEOCOUNTVOLANDSTACTION_H - -/** - * @class: GeoCountVolAndSTAction - * - * @brief An action to count the number of physical volumes - * and Serial Transformers - */ - -#include "GeoModelKernel/GeoNodeAction.h" - -class GeoCountVolAndSTAction : public GeoNodeAction -{ - public: - GeoCountVolAndSTAction(); - virtual ~GeoCountVolAndSTAction(); - - virtual void handlePhysVol(const GeoPhysVol*); - virtual void handleFullPhysVol(const GeoFullPhysVol*); - virtual void handleSerialTransformer(const GeoSerialTransformer*); - - unsigned int getCount() const; - - private: - GeoCountVolAndSTAction(const GeoCountVolAndSTAction &right); - const GeoCountVolAndSTAction & operator=(const GeoCountVolAndSTAction &right); - - unsigned int m_count; -}; - -inline unsigned int GeoCountVolAndSTAction::getCount() const -{ - return m_count; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoCutVolAction.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoCutVolAction.h deleted file mode 100755 index 4890003655c3c64d6bb2ce5550660bd3388773df..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoCutVolAction.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOCUTVOLACTION_H -#define GEOMODELKERNEL_GEOCUTVOLACTION_H - -/** - * @class GeoCutVolAction - * - * @brief Geo Volume action providing a mechanism for Cutoff implementation - * - * The cutoff is applied to the mother Physical Volume and then it is - * propagated down to all of child volumes. - * - * GeoCutVolAction object navigates the input Physical Volume (PV) tree. - * For each original PV in the tree it creates and a new PV with - * the same characteristics - material, LV name, PV name, ID, transform - * in parents coordinate frame - except for shape. The new PV hierarchy - * is kept by the GeoCutVolAction internally and can be obtained after - * the action is done by calling getPV() method. - * - * When the cut action is finished users have to use the new PV tree - * obtained with getPV(). The original PV can be dereferenced and - * the action object destroyed. - * - * In order to implement a cutoff, one needs to provide two input - * arguments to the constructor of GeoCutVolAction - * 1. A shape to be cut off the mother volume and all its children - * 2. A transformation of the cutoff shape with respect to the - * coordinate frame of the mother shape - * - * Here is an example of GeoCutVolAction usage: - * - * |--------------------------------------------------------------------------| - * | ... First construct a physical volume *origPhysVol* and add all daughter | - * | volumes to it | - * | | - * | GeoCutVolAction action(shape,transform); | - * | pPhysVol->apply(&action); | - * | GeoPhysVol* cutPhysVol = action.getPV(); | - * | pPhysVol->unref(); | - * | | - * | ... Use *cutPhysVol* afterwards (atach to the upper level volumes) | - * |--------------------------------------------------------------------------| - */ - -#include "GeoModelKernel/GeoVolumeAction.h" -#include "GeoModelKernel/GeoShape.h" -#include "CLHEP/Geometry/Transform3D.h" -#include <stack> - -class GeoPhysVol; - -class GeoCutVolAction : public GeoVolumeAction -{ - public: - // Constructor parameters: - // Shape: the shape to be cut - // Transformation: Shape transformation with respect to the mother Physical Volume - GeoCutVolAction(const GeoShape& Shape, - const HepGeom::Transform3D& Transform); - - ~GeoCutVolAction(); - - virtual void handleVPhysVol (const GeoVPhysVol *); - - // Get the cutoff result - GeoPhysVol* getPV(); - - private: - GeoPhysVol* m_physVol; - - const GeoShape& m_shape; - HepGeom::Transform3D m_transform; - - std::stack<GeoPhysVol*>* m_copyStack; -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoElement.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoElement.h deleted file mode 100755 index b3abcb9f2b17ab367cd68c1e6cbcc2688164aaa8..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoElement.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOELEMENT_H -#define GEOMODELKERNEL_GEOELEMENT_H - -/** - * @class GeoElement - * - * @brief This class represents chemical elements. Elements are - * allocated on the heap and deleted automatically when their reference count - * falls to zero. - */ - -#include "GeoModelKernel/RCBase.h" -#include "CLHEP/Units/PhysicalConstants.h" -#include <string> - -class GeoElement : public RCBase -{ - public: - GeoElement (const std::string &Name, const std::string &Symbol, double Z, double A); - - int operator==(const GeoElement &right) const; - int operator!=(const GeoElement &right) const; - - // Returns the effective number of nucleons in the element. - double getN () const; - - // The name of the element, e.g. "Carbon". - const std::string& getName () const; - - // The chemical symbol for the element, e.g. C, O, S, Na.... - const std::string& getSymbol () const; - - // The atomic number Z for the material. - const double& getZ () const; - - // The average atomic mass for the element. - const double& getA () const; - - // Tsai formula for the radiation length - double getRadTsai () const; - - protected: - virtual ~GeoElement(); - - private: - GeoElement(const GeoElement &right); - GeoElement & operator=(const GeoElement &right); - - std::string m_name; - std::string m_symbol; - - double m_z; - double m_a; -}; - -inline int GeoElement::operator==(const GeoElement &right) const -{ - return - m_name == - right.m_name && m_symbol == right.m_symbol && m_z == right.m_z && m_a == right.m_a; -} - -inline int GeoElement::operator!=(const GeoElement &right) const -{ - return m_name != right.m_name || - m_symbol != right.m_symbol || m_z != right.m_z || m_a != right.m_a; -} - -inline double GeoElement::getN () const -{ - return m_a * (CLHEP::mole / CLHEP::gram); -} - -inline const std::string& GeoElement::getName () const -{ - return m_name; -} - -inline const std::string& GeoElement::getSymbol () const -{ - return m_symbol; -} - -inline const double& GeoElement::getZ () const -{ - return m_z; -} - -inline const double& GeoElement::getA () const -{ - return m_a; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoEllipticalTube.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoEllipticalTube.h deleted file mode 100755 index a374b8e6db7372c8d8c063810c27cbdc97b8acaa..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoEllipticalTube.h +++ /dev/null @@ -1,79 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOELLIPTICALTUBE_H -#define GEOMODELKERNEL_GEOELLIPTICALTUBE_H - -/** - * @class: GeoEllipticalTube - * - * @brief This is a tube with elliptical cross section - * The equation of the surface in x/y is 1.0 = (x/dx)**2 + (y/dy)**2 - */ - -#include "GeoModelKernel/GeoShape.h" - -class GeoEllipticalTube : public GeoShape -{ - public: - GeoEllipticalTube(double XHalfLength, double YHalfLength, double ZHalfLength); - - virtual double volume () const; - - virtual const std::string & type () const; - virtual ShapeType typeID () const; - - virtual void exec (GeoShapeAction *action) const; - - static const std::string& getClassType (); - static ShapeType getClassTypeID (); - - const double& getXHalfLength() const; - const double& getYHalfLength() const; - const double& getZHalfLength() const; - - protected: - virtual ~GeoEllipticalTube(); - - private: - - GeoEllipticalTube(const GeoEllipticalTube &right); - GeoEllipticalTube & operator=(const GeoEllipticalTube &right); - - static const std::string s_classType; - static const ShapeType s_classTypeID; - - double m_xHalfLength; - double m_yHalfLength; - double m_zHalfLength; -}; - - -inline const std::string& GeoEllipticalTube::getClassType () -{ - return s_classType; -} - -inline ShapeType GeoEllipticalTube::getClassTypeID () -{ - return s_classTypeID; -} - -inline const double& GeoEllipticalTube::getXHalfLength() const -{ - return m_xHalfLength; -} - -inline const double& GeoEllipticalTube::getYHalfLength() const -{ - return m_yHalfLength; -} - -inline const double& GeoEllipticalTube::getZHalfLength() const -{ - return m_zHalfLength; -} - - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoFacet.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoFacet.h deleted file mode 100755 index a2310520ba5dec24e6d8f8dae89ffdca43d7b2d8..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoFacet.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOFACET_H -#define GEOMODELKERNEL_GEOFACET_H - -/** - * @class: GeoFacet - * - * @brief Base class for GeoModel Facets - * Two implementations exist: - * 1. GeoTriangularFacet - * 2. GeoQuadrangularFacet - */ - -#include "GeoModelKernel/RCBase.h" -#include "CLHEP/Vector/ThreeVector.h" -#include <vector> - -typedef CLHEP::Hep3Vector GeoFacetVertex; - -// ** Base class -class GeoFacet : public RCBase -{ - public: - enum GeoFacetVertexType - { - ABSOLUTE, - RELATIVE - }; - - inline size_t getNumberOfVertices() const; - inline GeoFacetVertex getVertex(size_t) const; - inline GeoFacetVertexType getVertexType() const; - - protected: - GeoFacet() - : m_nVertices(0), - m_vertexType(ABSOLUTE) {}; - virtual ~GeoFacet(){}; - - size_t m_nVertices; - std::vector<GeoFacetVertex> m_vertices; - GeoFacetVertexType m_vertexType; -}; - -// Triangular facet -class GeoTriangularFacet : public GeoFacet -{ - public: - GeoTriangularFacet(GeoFacetVertex - ,GeoFacetVertex - ,GeoFacetVertex - ,GeoFacetVertexType); - - virtual ~GeoTriangularFacet(); -}; - -// Quadrangular facet -class GeoQuadrangularFacet : public GeoFacet -{ - public: - GeoQuadrangularFacet(GeoFacetVertex - ,GeoFacetVertex - ,GeoFacetVertex - ,GeoFacetVertex - ,GeoFacetVertexType); - - virtual ~GeoQuadrangularFacet(); -}; - -// Inline methods -inline size_t GeoFacet::getNumberOfVertices() const -{ - return m_nVertices; -} - -inline GeoFacetVertex GeoFacet::getVertex(size_t index) const -{ - return (index<m_nVertices ? m_vertices[index] : GeoFacetVertex(999999.,999999.,999999.)); -} - -inline GeoFacet::GeoFacetVertexType GeoFacet::getVertexType() const -{ - return m_vertexType; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoFullPhysVol.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoFullPhysVol.h deleted file mode 100755 index 203fe8d83d809193f892486dc74dcceaeffd4ce1..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoFullPhysVol.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOFULLPHYSVOL_H -#define GEOMODELKERNEL_GEOFULLPHYSVOL_H - -#include "GeoModelKernel/GeoVFullPhysVol.h" -#include <vector> -#include <string> - -class GeoLogVol; -class GeoVAlignmentStore; - -/** - * @class GeoFullPhysVol - * - * @brief This class represent a physical volume whose absolute - * default and aligned positions are known and held in cache. - * - * These pieces should not be part of a subtree which is used as a - * shared instance. For if it is, then of course the absolute position - * of the piece is an absurdity. The run time error will result as - * soon as the absolute position is requested. - * - * These elements may be declared to readout geometry. See the class - * ReadoutElement. - */ - -class GeoFullPhysVol final : public GeoVFullPhysVol -{ - public: - GeoFullPhysVol (const GeoLogVol* LogVol); - - /// Adds a Graph Node to the Geometry Graph. - void add(GeoGraphNode* graphNode); - - /// Returns the number of child physical volumes. - virtual unsigned int getNChildVols() const override; - - /// Returns the ith child volume - virtual PVConstLink getChildVol(unsigned int index) const override; - - /// Returns the transform to the ith volume. - virtual HepGeom::Transform3D getXToChildVol(unsigned int index, const GeoVAlignmentStore* store=nullptr) const override; - - /// Returns the default transform to the ith volume. - virtual HepGeom::Transform3D getDefXToChildVol(unsigned int index, const GeoVAlignmentStore* store=nullptr) const override; - - /// Executes a GeoNodeAction. - virtual void exec(GeoNodeAction *action) const override; - - /// Returns the name of the child. - virtual std::string getNameOfChildVol(unsigned int i) const override; - - /// Returns the id of the child. - virtual Query<int> getIdOfChildVol(unsigned int i) const override; - - /// Returns the number of child physical volumes and Serial Transformers. - virtual unsigned int getNChildVolAndST() const override; - - GeoFullPhysVol* clone(bool attached = true); - const GeoFullPhysVol* cloneOrigin() const; - /// The following method breaks consistency of cloned volumes! - /// Use it only in Simulation jobs and - /// don't call it until geometry has been completely translated to G4 - void clear(); // drop subtree - virtual HepGeom::Transform3D getX (const GeoVAlignmentStore* store=nullptr) const override; - virtual HepGeom::Transform3D getDefX (const GeoVAlignmentStore* store=nullptr) const override; - virtual unsigned int getNChildNodes() const override; - virtual const GeoGraphNode * const *getChildNode (unsigned int i) const override; - virtual const GeoGraphNode * const *findChildNode(const GeoGraphNode *n) const override; - - protected: - virtual ~GeoFullPhysVol() override; - - private: - GeoFullPhysVol(const GeoFullPhysVol &right); - GeoFullPhysVol & operator=(const GeoFullPhysVol &right); - - /// Hold the list of children. - std::vector<const GeoGraphNode *> m_daughters; - - const GeoFullPhysVol* m_cloneOrigin; -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoGenericTrap.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoGenericTrap.h deleted file mode 100755 index dd2211758d17ecc9bf971c9cc81153c0b26da78c..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoGenericTrap.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOGENERICTRAP_H -#define GEOMODELKERNEL_GEOGENERICTRAP_H - -#include "GeoModelKernel/GeoShape.h" -#include <CLHEP/Vector/TwoVector.h> -#include <vector> - -typedef CLHEP::Hep2Vector GeoTwoVector; -typedef std::vector<GeoTwoVector> GeoGenericTrapVertices; - -class GeoGenericTrap : public GeoShape -{ - public: - GeoGenericTrap(double ZHalfLength, const GeoGenericTrapVertices& Vertices); - - virtual double volume() const; - - virtual const std::string& type() const; - virtual ShapeType typeID() const; - - static const std::string& getClassType(); - static ShapeType getClassTypeID(); - - virtual void exec(GeoShapeAction *action) const; - - double getZHalfLength() const; - const GeoGenericTrapVertices& getVertices() const; - - protected: - virtual ~GeoGenericTrap(); - - private: - GeoGenericTrap(const GeoGenericTrap &right); - GeoGenericTrap& operator=(const GeoGenericTrap &right); - - static const std::string s_classType; - static const ShapeType s_classTypeID; - - double m_zHalfLength; - GeoGenericTrapVertices m_vertices; -}; - -inline const std::string& GeoGenericTrap::getClassType() -{ - return s_classType; -} - -inline ShapeType GeoGenericTrap::getClassTypeID() -{ - return s_classTypeID; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoGraphNode.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoGraphNode.h deleted file mode 100755 index 2f72979fdad096e36ce0be8c5fd9d88c17301172..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoGraphNode.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOGRAPHNODE_H -#define GEOMODELKERNEL_GEOGRAPHNODE_H - -/** - * @class GeoGraphNode - * - * @brief Represents Nodes that can be assembled together to make - * a graph. Subclasses (for now): - * - * * GeoVTransform - * *GeoFixedTransform. .. for fixed transforms - * *GeoVariableTransform .. for variable transforms. - * - * * GeoVPhysVol - * *GeoPhysVol .. for normal recursive access. - * *GeoRAPhysVol .. for random access - */ - -#include "GeoModelKernel/RCBase.h" - -class GeoNodeAction; -class GeoVPhysVol; - -class GeoGraphNode : public RCBase -{ - public: - GeoGraphNode (); - - // Executes a GeoNodeAction. - virtual void exec (GeoNodeAction *action) const; - - // When a node is added to a parent in the graph, the node - // is always notified. What happens at that time is up to - // the node. Most nodes do not need to do anything. - // Some--the alignable transforms in particular--need to - // take some actions, such as adding the parent volume to a - // list. - virtual void dockTo (GeoVPhysVol* ); - - protected: - virtual ~GeoGraphNode(); - - private: - GeoGraphNode(const GeoGraphNode &right); - GeoGraphNode & operator=(const GeoGraphNode &right); -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoIdentifierTag.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoIdentifierTag.h deleted file mode 100755 index f7b37647e537581acb829e35e4223344c864fdbe..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoIdentifierTag.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOIDENTIFIERTAG_H -#define GEOMODELKERNEL_GEOIDENTIFIERTAG_H - -/** - * @class GeoIdentifierTag - * - * @brief This class gives an integral identifer to the following physical volume. - * - * Courtesy of Philipp Shieferdecker (LMU Munich). - */ - -#include "GeoModelKernel/GeoGraphNode.h" - -class GeoIdentifierTag : public GeoGraphNode -{ - public: - // Constructor for the identifier tag. Takes an unsigned int - GeoIdentifierTag (int id); - - // Executes a GeoNodeAction. - virtual void exec (GeoNodeAction *action) const; - - // Specifies the identifier of the next physical volume in - // the node tree. - int getIdentifier () const; - - protected: - virtual ~GeoIdentifierTag(); - - private: - GeoIdentifierTag(const GeoIdentifierTag &right); - GeoIdentifierTag & operator=(const GeoIdentifierTag &right); - - int m_identifier; -}; - -inline int GeoIdentifierTag::getIdentifier () const -{ - return m_identifier; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoLogVol.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoLogVol.h deleted file mode 100755 index 3c38abd2055d31c5ba040880cfe5e19f345450fb..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoLogVol.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOLOGVOL_H -#define GEOMODELKERNEL_GEOLOGVOL_H - -/** - * @class GeoLogVol - * - * @brief A Logical Volume, or agglomeration of shape and material. - * The logical volume increases the reference count of the shape and the material. - */ - -#include "GeoModelKernel/GeoShape.h" -#include "GeoModelKernel/RCBase.h" -#include "GeoModelKernel/GeoMaterial.h" -#include <vector> - -class GeoLogVol : public RCBase -{ - public: - GeoLogVol (const std::string &Name, const GeoShape *Shape, const GeoMaterial *Material); - - // Returns the name of the logical volume. - const std::string & getName () const; - - // Returns the shape of the logical volume. - const GeoShape * getShape () const; - - // Returns the material of the logical volume. - const GeoMaterial * getMaterial () const; - - protected: - virtual ~GeoLogVol(); - - private: - GeoLogVol(const GeoLogVol &right); - GeoLogVol & operator=(const GeoLogVol &right); - - // The name of the logical volume. - std::string m_name; - - // Material composition of this volume. - const GeoMaterial *m_material; - - // Shape of this volume. - const GeoShape *m_shape; -}; - -inline const std::string & GeoLogVol::getName () const -{ - return m_name; -} - -inline const GeoShape * GeoLogVol::getShape () const -{ - return m_shape; -} - -inline const GeoMaterial * GeoLogVol::getMaterial () const -{ - return m_material; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoMaterial.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoMaterial.h deleted file mode 100755 index f4dbd736a11882f985a841806e1d1bf22de611c6..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoMaterial.h +++ /dev/null @@ -1,142 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOMATERIAL_H -#define GEOMODELKERNEL_GEOMATERIAL_H - -/** - * @class GeoMaterial - * - * @brief This class represents materials. A material is a - * collection of elements. In addition it has a density, - * radiation length, and interaction length, and can - * provide a description of energy lost which is computed - * from its composition. - * - * Also noteworthy: - * - * * Materials are allocated on the heap and deleted - * automatically when their reference count falls to zero. - * - * * After the constructor is called the elements are added - * one-by-one; when the last one is called the material - * must be "locked" after the last element is added. - * - * * The materials are assigned an identifier. - */ - -#include "GeoModelKernel/RCBase.h" -#include "GeoModelKernel/GeoElement.h" -#include <vector> - -class GeoMaterial : public RCBase -{ - public: - GeoMaterial (const std::string &Name, double Density); - - // Add an element to the material. - void add (const GeoElement* element, double fraction = 1.0); - - // Add another material to the material (this copies all of - // the element from the other material into this one). - // Fraction is by mass. - void add (const GeoMaterial* material, double fraction); - - // Lock the material against the addition of other - // materials or elements. - void lock (); - - // Constant dEdx term. - double getDeDxConstant () const; - - // I0 term (ionization potential). From tables. Units: eV. - double getDeDxI0 () const; - - // Get dEdx_min. dEdxConstant*11.528 Paul Avery, CBX-92-39. - double getDeDxMin () const; - - // Returns the radiation length, computed from the density - // and the list of constituents, and their properties. - double getRadLength () const; - - // Return the nuclear interaction length, computed from the - // density, the list of constituents, and their properties. - double getIntLength () const; - - unsigned int getNumElements () const; - - // Gets the ith element. - const GeoElement* getElement (unsigned int i) const; - - // Gets the fraction by weight of the ith element - double getFraction (int i) const; - - // The name of the material. - const std::string& getName () const; - - // The density of the material. - const double& getDensity () const; - - // Gives an integral identifier for the material. For - // convenience. - const unsigned int& getID () const; - - protected: - virtual ~GeoMaterial(); - - private: - GeoMaterial(const GeoMaterial &right); - GeoMaterial & operator=(const GeoMaterial &right); - - std::string m_name; - double m_density; - unsigned int m_iD; - - // A list of the fractional composition of each material. - // Fraction is by mass. - std::vector<double> m_fraction; - - // The radiation length of the material. - double m_radLength; - - // The interaction length of the material. - double m_intLength; - - // A static used to assign unique identifiers to new - // materials. - static unsigned int s_lastID; - - // The constant term in the formula governing dE/dx. - double m_dedDxConst; - - // The ionization potential in the formula governing dE/dx. - double m_deDxI0; - - // A flag used to lock the material from further addition - // of elements or other constituents. - bool m_locked; - - static const double s_ionizationPotential[93]; - - private: - // The list of GeoElements composing a GeoMaterial. - std::vector<const GeoElement *> m_element; -}; - -inline const std::string& GeoMaterial::getName () const -{ - return m_name; -} - -inline const double& GeoMaterial::getDensity () const -{ - return m_density; -} - -inline const unsigned int& GeoMaterial::getID () const -{ - return m_iD; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoNameTag.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoNameTag.h deleted file mode 100755 index 3d378130100dc5caf6b4f65cd3c33b69bbc24d32..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoNameTag.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEONAMETAG_H -#define GEOMODELKERNEL_GEONAMETAG_H - -/** - * @class GeoNameTag - * - * @brief This class gives a name to the next physical volume. - */ - -#include "GeoModelKernel/GeoGraphNode.h" -#include <string> - -class GeoNameTag : public GeoGraphNode -{ - public: - // Constructor for the name tag. Takes a base name. - GeoNameTag (const std::string &BaseName); - - // Executes a GeoNodeAction. - virtual void exec (GeoNodeAction *action) const; - - // Specifies the name of the next physical volume in the - // node tree. - const std::string& getName () const; - - protected: - virtual ~GeoNameTag(); - - private: - GeoNameTag(const GeoNameTag &right); - GeoNameTag & operator=(const GeoNameTag &right); - - std::string m_name; -}; - -inline const std::string& GeoNameTag::getName () const -{ - return m_name; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoNodeAction.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoNodeAction.h deleted file mode 100755 index db0eaea61a77fdf3e6509900581ffc1ee59b1e27..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoNodeAction.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEONODEACTION_H -#define GEOMODELKERNEL_GEONODEACTION_H - -/** - * @class GeoNodeAction - * - * @brief This type of action sees the geometry graph in full - * detail, including each transformation and property - * node. The function of this graph is to represent a - * simpler tree of positioned volumes. To visit only those - * volumes while keeping track of the state (including - * relative positioning), use the VolumeAction. - */ - -#include "GeoModelKernel/GeoGraphNode.h" -#include "GeoModelKernel/GeoPhysVol.h" -#include "GeoModelKernel/GeoFullPhysVol.h" -#include "GeoModelKernel/GeoTransform.h" -#include "GeoModelKernel/GeoNameTag.h" -#include "GeoModelKernel/GeoIdentifierTag.h" -#include "GeoModelKernel/GeoSerialDenominator.h" -#include "GeoModelKernel/GeoSerialIdentifier.h" -#include "GeoModelKernel/GeoSerialTransformer.h" -#include "GeoModelKernel/GeoNodePath.h" - -class GeoNodeAction -{ - public: - - enum Depth - { ALL_ANCESTORS = -1, SELF = 0, SELF_AND_CHILDREN = 1 }; - - public: - GeoNodeAction(); - virtual ~GeoNodeAction(); - - // Handles a Node. - virtual void handleNode (const GeoGraphNode *); - - // Handles a Transform. - virtual void handleTransform (const GeoTransform *); - - // Handles a physical volume. - virtual void handlePhysVol (const GeoPhysVol *); - - // Handles a physical volume. - virtual void handleFullPhysVol (const GeoFullPhysVol *); - - // Returns a pointer to the path object. - GeoNodePath* getPath (); - - Query<unsigned int> getDepthLimit (); - - // Cause the action to terminate. - void terminate (); - - // Determine whether the action should terminate. - bool shouldTerminate () const; - - // Handles a Name Tag. - virtual void handleNameTag (const GeoNameTag *); - - // Handles a Serial Denominator. - virtual void handleSerialDenominator (const GeoSerialDenominator *); - - // Sets a depth limit. - void setDepthLimit (unsigned int limit); - - // Clears a depth limit, if any. - void clearDepthLimit (); - - // Handles a Serial Transformer - virtual void handleSerialTransformer (const GeoSerialTransformer *); - - // Handles an Identifier Tag. - virtual void handleIdentifierTag (const GeoIdentifierTag *); - - virtual void handleSerialIdentifier(const GeoSerialIdentifier *); - - protected: - // Termination flag; causes an abortion of action execution. - bool m_terminate; - - private: - GeoNodeAction(const GeoNodeAction &right); - GeoNodeAction & operator=(const GeoNodeAction &right); - - // A limit may be placed upon the depth to which the action - // descends. 0 = self. 1 = self and children. - Query<unsigned int> m_depth; - - GeoNodePath m_path; -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoNodePath.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoNodePath.h deleted file mode 100755 index b2cd5f73ed3b5ad2b7b7254a506668efa90c1d78..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoNodePath.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEONODEPATH_H -#define GEOMODELKERNEL_GEONODEPATH_H - -#include "GeoModelKernel/Path.h" -#include "GeoModelKernel/GeoVPhysVol.h" - -typedef Path< GeoVPhysVol > GeoNodePath; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPVConstLink.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPVConstLink.h deleted file mode 100755 index efb2c0424786bcb8c872c65b1b15a78a336b7695..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPVConstLink.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOPVCONSTLINK_H -#define GEOMODELKERNEL_GEOPVCONSTLINK_H - -/** - * @class GeoPVConstLink - * - * @brief Smart pointer to physical volume... constant - */ - -class GeoVPhysVol; - -class GeoPVConstLink -{ - public: - GeoPVConstLink(); - GeoPVConstLink(const GeoPVConstLink &right); - GeoPVConstLink (const GeoVPhysVol *addr); - - virtual ~GeoPVConstLink(); - - int operator==(const GeoPVConstLink &right) const; - int operator!=(const GeoPVConstLink &right) const; - - int operator<(const GeoPVConstLink &right) const; - int operator>(const GeoPVConstLink &right) const; - int operator<=(const GeoPVConstLink &right) const; - int operator>=(const GeoPVConstLink &right) const; - - // Dereference this smart pointer, like a regular pointer. - virtual const GeoVPhysVol & operator * () const; - - // Allow use of smartPointer->operation()..... - virtual const GeoVPhysVol * operator -> () const; - - operator bool () const; - - GeoPVConstLink& operator = (const GeoPVConstLink& right); - - protected: - // A pointer to the underlying volume - GeoVPhysVol * m_ptr; - -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPVLink.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPVLink.h deleted file mode 100755 index af94674fe9187a6db5948512ad8f9cc1d2b1e6fe..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPVLink.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOPVLINK_H -#define GEOMODELKERNEL_GEOPVLINK_H - -/** - * @class GeoPVConstLink - * - * @brief Smart pointer to physical volume... non-constant - */ - -#include "GeoModelKernel/GeoPVConstLink.h" - -class GeoPVLink : public GeoPVConstLink -{ - public: - GeoPVLink(); - GeoPVLink(const GeoPVLink &right); - GeoPVLink (const GeoVPhysVol *addr); - - virtual ~GeoPVLink(); - - // Dereference this smart pointer, like a regular pointer. - virtual GeoVPhysVol & operator * (); - - // Allow use of smartPointer->operation()..... - virtual GeoVPhysVol * operator -> (); - - // Dereference this smart pointer, like a regular pointer. - virtual const GeoVPhysVol & operator * () const; - - // Allow use of smartPointer->operation()..... - virtual const GeoVPhysVol * operator -> () const; - - // Assignment operator. - GeoPVLink& operator = (const GeoPVLink& right); -}; - - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPara.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPara.h deleted file mode 100755 index 7072aee43ce53ba6fd65af0aac16541152363b96..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPara.h +++ /dev/null @@ -1,111 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOPARA_H -#define GEOMODELKERNEL_GEOPARA_H - -#include "GeoModelKernel/GeoShape.h" - -class GeoPara : public GeoShape -{ - public: - // Constructor for the BOX. - GeoPara (double XHalfLength, double YHalfLength, double ZHalfLength, double Alpha, double Theta, double Phi); - - // Returns the volume of the shape, for mass inventory - virtual double volume () const; - - // Returns the PARA shape type, as a string. - virtual const std::string & type () const; - - // Returns the PARA shape type, as a coded integer. - virtual ShapeType typeID () const; - - // Executes a GeoShapeAction - virtual void exec (GeoShapeAction *action) const; - - // For type identification. - static const std::string& getClassType (); - - // For type identification. - static ShapeType getClassTypeID (); - - // Half length in the x-direction. - const double& getXHalfLength () const; - - // Half-length in the y direction. - const double& getYHalfLength () const; - - // Half-length in the z direction. - const double& getZHalfLength () const; - - // Polar (theta) angle. - const double& getTheta () const; - - // The angle alpha...between the two sides of the top face - // of the parallelapiped. - const double& getAlpha () const; - - // Azimuthal (phi) angle. - const double& getPhi () const; - - protected: - virtual ~GeoPara(); - - private: - GeoPara(const GeoPara &right); - GeoPara & operator=(const GeoPara &right); - - static const std::string s_classType; - static const ShapeType s_classTypeID; - - double m_xHalfLength; - double m_yHalfLength; - double m_zHalfLength; - double m_theta; - double m_alpha; - double m_phi; -}; - -inline const std::string& GeoPara::getClassType () -{ - return s_classType; -} - -inline ShapeType GeoPara::getClassTypeID () -{ - return s_classTypeID; -} - -inline const double& GeoPara::getXHalfLength () const -{ - return m_xHalfLength; -} - -inline const double& GeoPara::getYHalfLength () const -{ - return m_yHalfLength; -} - -inline const double& GeoPara::getZHalfLength () const -{ - return m_zHalfLength; -} - -inline const double& GeoPara::getTheta () const -{ - return m_theta; -} - -inline const double& GeoPara::getAlpha () const -{ - return m_alpha; -} - -inline const double& GeoPara::getPhi () const -{ - return m_phi; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPcon.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPcon.h deleted file mode 100755 index c08797c8d8fefca975fd148c8d2089663adbe21a..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPcon.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOPCON_H -#define GEOMODELKERNEL_GEOPCON_H - -/** - * @class GeoPcon - * - * @brief This shape represents a polycone. - * Specify the starting angle and delta angle (subtended angle) - * of the polycone first, Then add at least two planes with the - * addPlane( double zPlane, double rInner, double rOuter) method. - */ - -#include "GeoModelKernel/GeoShape.h" -#include <vector> - -class GeoPcon : public GeoShape -{ - public: - // Constructor for the PCON. Note that the constructor - // does not fully build this object. The PCON is not valid - // until at least two polygon planes have been added. - GeoPcon (double SPhi, double DPhi); - - // Returns the volume of the shape, for mass inventory - virtual double volume () const; - - // Returns the PCON shape type, as a string. - virtual const std::string & type () const; - - // Returns the PCON shape type, as a coded integer. - virtual ShapeType typeID () const; - - // Add another plane to the polycone A minimum of two - // planes are required to create a valid polycone. - void addPlane (double ZPlane, double RMinPlane, double RMaxPlane); - - // Returns the number of planes that have been created for - // the polycone. - unsigned int getNPlanes () const; - - // True if the polycone has at least two planes. False - // otherwise. - bool isValid () const; - - // Get the Z Position of the specified plane. - const double & getZPlane (unsigned int i) const; - - // Get the RMin of the specified plane. - const double & getRMinPlane (unsigned int i) const; - - // Get the Z Position of the specified plane. - const double & getRMaxPlane (unsigned int i) const; - - // Executes a GeoShapeAction - virtual void exec (GeoShapeAction *action) const; - - // For type identification. - static const std::string& getClassType (); - - // For type identification. - static ShapeType getClassTypeID (); - - // Starting angle of the segment in radians. - const double& getSPhi () const; - - // Delta angle of the segment in radians. - const double& getDPhi () const; - - protected: - virtual ~GeoPcon(); - - private: - GeoPcon(const GeoPcon &right); - GeoPcon & operator=(const GeoPcon &right); - - static const std::string s_classType; - static const ShapeType s_classTypeID; - - double m_sPhi; - double m_dPhi; - - // Z Position of poly-cone planes. - std::vector<double> m_zPlane; - - // Minimum radius of poly-cone planes. - std::vector<double> m_rMinPlane; - - // Maximum radius of poly-cone planes. - std::vector<double> m_rMaxPlane; -}; - -inline unsigned int GeoPcon::getNPlanes () const -{ - return m_zPlane.size (); -} - -inline bool GeoPcon::isValid () const -{ - return getNPlanes () >= 2; -} - -inline const double & GeoPcon::getZPlane (unsigned int i) const -{ - return m_zPlane[i]; -} - -inline const double & GeoPcon::getRMinPlane (unsigned int i) const -{ - return m_rMinPlane[i]; -} - -inline const double & GeoPcon::getRMaxPlane (unsigned int i) const -{ - return m_rMaxPlane[i]; -} - -inline const std::string& GeoPcon::getClassType () -{ - return s_classType; -} - -inline ShapeType GeoPcon::getClassTypeID () -{ - return s_classTypeID; -} - -inline const double& GeoPcon::getSPhi () const -{ - return m_sPhi; -} - -inline const double& GeoPcon::getDPhi () const -{ - return m_dPhi; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPerfUtils.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPerfUtils.h deleted file mode 100755 index a3e23d91318f9c3c504ea4e9cd54b27be2aa21e1..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPerfUtils.h +++ /dev/null @@ -1,31 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOPERFUTILS_H -#define GEOMODELKERNEL_GEOPERFUTILS_H - -/** - * @class GeoPerfUtils - * - * @brief This is a collection of performance utilities used to - * benchmark the GeoModel. Currently it includes a routine - * to fetch the current memory consumption in kilobytes and - * a routine to fetch the current CPU consumption in jiffies. - * - * Joe Boudreau March 2005. - */ - -class GeoPerfUtils { - - public: - - // Get the current Memory Usage (kbytes); - static int getMem(); - - // Get the current CPU Usage (jiffies= 1/100th of a second): - static int getCpu(); - -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPgon.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPgon.h deleted file mode 100755 index 12f22cb28afea3254618d157e9a12df7d5b129ca..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPgon.h +++ /dev/null @@ -1,141 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOPGON_H -#define GEOMODELKERNEL_GEOPGON_H - -#include "GeoModelKernel/GeoShape.h" -#include <vector> - -class GeoPgon : public GeoShape -{ - public: - // Constructor for the PGON. Note that the constructor - // does not fully build this object. The PGON is not valid - // until at least two polygon planes have been added. - GeoPgon (double SPhi, double DPhi, unsigned int NSides); - - // Returns the volume of the shape, for mass inventory - virtual double volume () const; - - // Returns the PGON shape type, as a string. - virtual const std::string & type () const; - - // Returns the PGON shape type, as a coded integer. - virtual ShapeType typeID () const; - - // Add another plane to the polygon. A minimum of two - // planes are required to create a valid polygon. - void addPlane (double ZPlane, double RMinPlane, double RMaxPlane); - - // Returns the number of planes that have been created for - // the polygon. - unsigned int getNPlanes () const; - - // True if the polygon has at least two planes. False - // otherwise. - bool isValid () const; - - // Get the Z Position of the specified plane. - const double & getZPlane (unsigned int i) const; - - // Get the RMin of the specified plane. - const double & getRMinPlane (unsigned int i) const; - - // Get the Z Position of the specified plane. - const double & getRMaxPlane (unsigned int i) const; - - // Executes a GeoShapeAction - virtual void exec (GeoShapeAction *action) const; - - // For type identification. - static const std::string& getClassType (); - - // For type identification. - static ShapeType getClassTypeID (); - - // Starting angle of the segment in radians. - const double& getSPhi () const; - - // Delta angle of the segment in radians. - const double& getDPhi () const; - - // Number of sides in each polygonal segment. - const unsigned int& getNSides () const; - - protected: - virtual ~GeoPgon(); - - private: - GeoPgon(const GeoPgon &right); - GeoPgon & operator=(const GeoPgon &right); - - static const std::string s_classType; - static const ShapeType s_classTypeID; - - double m_sPhi; - double m_dPhi; - unsigned int m_nSides; - - // Z Position of polygon planes. - std::vector<double> m_zPlane; - - // Minimum radius of polygon planes. - std::vector<double> m_rMinPlane; - - // Maximum radius of polygon planes. - std::vector<double> m_rMaxPlane; -}; - -inline unsigned int GeoPgon::getNPlanes () const -{ - return m_zPlane.size (); -} - -inline bool GeoPgon::isValid () const -{ - return m_zPlane.size () >= 2; -} - -inline const double & GeoPgon::getZPlane (unsigned int i) const -{ - return m_zPlane[i]; -} - -inline const double & GeoPgon::getRMinPlane (unsigned int i) const -{ - return m_rMinPlane[i]; -} - -inline const double & GeoPgon::getRMaxPlane (unsigned int i) const -{ - return m_rMaxPlane[i]; -} - -inline const std::string& GeoPgon::getClassType () -{ - return s_classType; -} - -inline ShapeType GeoPgon::getClassTypeID () -{ - return s_classTypeID; -} - -inline const double& GeoPgon::getSPhi () const -{ - return m_sPhi; -} - -inline const double& GeoPgon::getDPhi () const -{ - return m_dPhi; -} - -inline const unsigned int& GeoPgon::getNSides () const -{ - return m_nSides; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPhysVol.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPhysVol.h deleted file mode 100755 index d7124483080660af40304098ecefc6d96c54b24d..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPhysVol.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOPHYSVOL_H -#define GEOMODELKERNEL_GEOPHYSVOL_H - -#include "GeoModelKernel/GeoVPhysVol.h" - -/** - * @class GeoPhysVol - * - * @brief A GeoPhysVol is a physical volume for normal recursive - * access only. This means, normally, that it represents a - * piece of detector that nobody cares about except for - * tracing engines like GEANT. More specifically: - * - * The position of the physical volume is not kept with - * the physical volume. It can easily be obtained by - * traversing detector graph (ComputeTransformAction), but - * it cannot be obtained in constant time. If you need to - * know the absolute default and/or aligned position of the - * detector, you need to use a different kind of physical - * volume called a GeoRAPhysicalVolume, which has a higher - * memory cost. - */ - -class GeoPhysVol : public GeoVPhysVol -{ - public: - GeoPhysVol(const GeoLogVol* LogVol); - - GeoPhysVol(const GeoPhysVol &right) = delete; - GeoPhysVol & operator=(const GeoPhysVol &right) = delete; - - void add(GeoGraphNode* graphNode); - - /// Returns the number of child physical volumes. - virtual unsigned int getNChildVols() const override final; - - /// Returns the ith child volume - virtual PVConstLink getChildVol(unsigned int index) const override final; - - /// Returns the transform to the ith volume. - virtual HepGeom::Transform3D getXToChildVol(unsigned int index - ,const GeoVAlignmentStore* store=nullptr) const override final; - - /// Returns the default transform to the ith volume. - virtual HepGeom::Transform3D getDefXToChildVol(unsigned int index - ,const GeoVAlignmentStore* store=nullptr) const override final; - - /// Executes a GeoNodeAction. - virtual void exec(GeoNodeAction *action) const override final; - - /// Returns the name of the child. - virtual std::string getNameOfChildVol(unsigned int i) const override final; - - /// Returns the id of the child. - virtual Query<int> getIdOfChildVol(unsigned int i) const override final; - - /// Returns the number of child physical volumes and Serial Transformers. - virtual unsigned int getNChildVolAndST() const override final; - - virtual HepGeom::Transform3D getX (const GeoVAlignmentStore* store=nullptr) const override final; - virtual HepGeom::Transform3D getDefX (const GeoVAlignmentStore* store=nullptr) const override final; - virtual unsigned int getNChildNodes() const override final; - virtual const GeoGraphNode * const *getChildNode (unsigned int i) const override final; - virtual const GeoGraphNode * const *findChildNode(const GeoGraphNode *n) const override final; - - protected: - virtual ~GeoPhysVol() override; - - private: - std::vector<const GeoGraphNode*> m_daughters; -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPolyhedrizeAction.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPolyhedrizeAction.h deleted file mode 100755 index 79309aa0dabf7214ad069c17a181e22236787032..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPolyhedrizeAction.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOPOLYHEDRIZEACTION_H -#define GEOMODELKERNEL_GEOPOLYHEDRIZEACTION_H - -/** - * @class GeoPolyhedrizeAction - * - * @brief This action polyhedrizes a shape. This includes, for example, boolean shapes. - * A polhyedral representation is useful when you want to: - * -visualize the shape - * -compute the shape's volume - */ - - -#include "GeoModelKernel/GeoShapeAction.h" -class GeoPolyhedron; - -class GeoPolyhedrizeAction : public GeoShapeAction -{ - public: - GeoPolyhedrizeAction(); - virtual ~GeoPolyhedrizeAction(); - - // Handles a shift shape. - virtual void handleShift (const GeoShapeShift *shift); - - // Handles a union shape. - virtual void handleUnion (const GeoShapeUnion *unio); - - // Handles an intersection shape. - virtual void handleIntersection (const GeoShapeIntersection *isect); - - // Handles a subtraction shape. - virtual void handleSubtraction (const GeoShapeSubtraction *subtract); - - // Handles a box shape. - virtual void handleBox (const GeoBox *box); - - // Handles a cons shape. - virtual void handleCons (const GeoCons *cons); - - // Handles a para shape. - virtual void handlePara (const GeoPara *para); - - // Handles a pcon shape. - virtual void handlePcon (const GeoPcon *pcon); - - // Handles a pgon shape. - virtual void handlePgon (const GeoPgon *pgon); - - // Handles a trap shape. - virtual void handleTrap (const GeoTrap *trap); - - // Handles a trd shape. - virtual void handleTrd (const GeoTrd *trd); - - // Handles a tube shape. - virtual void handleTube (const GeoTube *tube); - - // Handles a tubs shape. - virtual void handleTubs (const GeoTubs *tubs); - - // Returns the polyhedral representation of a shape. - const GeoPolyhedron * getPolyhedron () const; - - private: - GeoPolyhedrizeAction(const GeoPolyhedrizeAction &right); - GeoPolyhedrizeAction & operator=(const GeoPolyhedrizeAction &right); - - // This polyhedral representation of the shape. - GeoPolyhedron *m_polyhedron; -}; - - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPolyhedron.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPolyhedron.h deleted file mode 100755 index e31293d228b6a10c070389a89f6d30ffa5039eb5..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPolyhedron.h +++ /dev/null @@ -1,520 +0,0 @@ -#ifndef GeoPolyhedron_h -#define GeoPolyhedron_h -//--------------------------------------------------------------------// -// JFB: // -// GeoPolyhedron was HepPolyhedron, retrofitted to GeoModel // -// infrastructure: // -//--------------------------------------------------------------------// - - -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// -// Class Description: -// GeoPolyhedron is an intermediate class between description of a shape -// and visualization systems. It is intended to provide some service like: -// - polygonization of shapes with triangulization (quadrilaterization) -// of complex polygons; -// - calculation of normals for faces and vertices; -// - finding result of boolean operation on polyhedra; -// -// Public constructors: -// -// GeoPolyhedronBox (dx,dy,dz) -// - create polyhedron for Box; -// GeoPolyhedronTrd1 (dx1,dx2,dy,dz) -// - create polyhedron for G3 Trd1; -// GeoPolyhedronTrd2 (dx1,dx2,dy1,dy2,dz) -// - create polyhedron for G3 Trd2; -// GeoPolyhedronTrap (dz,theta,phi, h1,bl1,tl1,alp1, h2,bl2,tl2,alp2) -// - create polyhedron for G3 Trap; -// GeoPolyhedronPara (dx,dy,dz,alpha,theta,phi) -// - create polyhedron for G3 Para; -// GeoPolyhedronTube (rmin,rmax,dz) -// - create polyhedron for G3 Tube; -// GeoPolyhedronTubs (rmin,rmax,dz,phi1,dphi) -// - create polyhedron for G3 Tubs; -// GeoPolyhedronCone (rmin1,rmax1,rmin2,rmax2,dz) -// - create polyhedron for G3 Cone; -// GeoPolyhedronCons (rmin1,rmax1,rmin2,rmax2,dz,phi1,dphi) -// - create polyhedron for G3 Cons; -// GeoPolyhedronPgon (phi,dphi,npdv,nz, z(*),rmin(*),rmax(*)) -// - create polyhedron for G3 Pgon; -// GeoPolyhedronPcon (phi,dphi,nz, z(*),rmin(*),rmax(*)) -// - create polyhedron for G3 Pcon; -// GeoPolyhedronSphere (rmin,rmax,phi,dphi,the,dthe) -// - create polyhedron for Sphere; -// GeoPolyhedronTorus (rmin,rmax,rtor,phi,dphi) -// - create polyhedron for Torus; -// Public functions: -// -// GetNoVertices () - returns number of vertices; -// GetNoFacets () - returns number of faces; -// GetNextVertexIndex (index,edgeFlag) - get vertex indeces of the -// quadrilaterals in order; -// returns false when finished each face; -// GetVertex (index) - returns vertex by index; -// GetNextVertex (vertex,edgeFlag) - get vertices with edge visibility -// of the quadrilaterals in order; -// returns false when finished each face; -// GetNextVertex (vertex,edgeFlag,normal) - get vertices with edge -// visibility and normal of the quadrilaterals -// in order; returns false when finished each face; -// GetNextEdgeIndeces (i1,i2,edgeFlag) - get indeces of the next edge; -// returns false for the last edge; -// GetNextEdgeIndeces (i1,i2,edgeFlag,iface1,iface2) - get indeces of -// the next edge with indeces of the faces -// to which the edge belongs; -// returns false for the last edge; -// GetNextEdge (p1,p2,edgeFlag) - get next edge; -// returns false for the last edge; -// GetNextEdge (p1,p2,edgeFlag,iface1,iface2) - get next edge with indeces -// of the faces to which the edge belongs; -// returns false for the last edge; -// GetFacet (index,n,nodes,edgeFlags=0,normals=0) - get face by index; -// GetNextFacet (n,nodes,edgeFlags=0,normals=0) - get next face with normals -// at the nodes; returns false for the last face; -// GetNormal (index) - get normal of face given by index; -// GetUnitNormal (index) - get unit normal of face given by index; -// GetNextNormal (normal) - get normals of each face in order; -// returns false when finished all faces; -// GetNextUnitNormal (normal) - get normals of unit length of each face -// in order; returns false when finished all faces; -// GetSurfaceArea() - get surface area of the polyhedron; -// GetVolume() - get volume of the polyhedron; -// GetNumberOfRotationSteps() - get number of steps for whole circle; -// SetNumberOfRotationSteps (n) - set number of steps for whole circle; -// ResetNumberOfRotationSteps() - reset number of steps for whole circle -// to default value; -// History: -// -// 20.06.96 Evgeni Chernyaev <Evgueni.Tcherniaev@cern.ch> - initial version -// -// 23.07.96 John Allison -// - added GetNoVertices, GetNoFacets, GetNextVertex, GetNextNormal -// -// 30.09.96 E.Chernyaev -// - added GetNextVertexIndex, GetVertex by Yasuhide Sawada -// - added GetNextUnitNormal, GetNextEdgeIndeces, GetNextEdge -// - improvements: angles now expected in radians -// int -> G4int, double -> G4double -// - G4ThreeVector replaced by either G4Point3D or G4Normal3D -// -// 15.12.96 E.Chernyaev -// - private functions G4PolyhedronAlloc, G4PolyhedronPrism renamed -// to AllocateMemory and CreatePrism -// - added private functions GetNumberOfRotationSteps, RotateEdge, -// RotateAroundZ, SetReferences -// - rewritten G4PolyhedronCons; -// - added G4PolyhedronPara, ...Trap, ...Pgon, ...Pcon, ...Sphere, ...Torus, -// so full List of implemented shapes now looks like: -// BOX, TRD1, TRD2, TRAP, TUBE, TUBS, CONE, CONS, PARA, PGON, PCON, -// SPHERE, TORUS -// -// 01.06.97 E.Chernyaev -// - RotateAroundZ modified and SetSideFacets added to allow Rmin=Rmax -// in bodies of revolution -// -// 24.06.97 J.Allison -// - added static private member fNumberOfRotationSteps and static public -// functions void SetNumberOfRotationSteps (G4int n) and -// void ResetNumberOfRotationSteps (). Modified -// GetNumberOfRotationSteps() appropriately. Made all three functions -// inline (at end of this .hh file). -// Usage: -// G4Polyhedron::SetNumberOfRotationSteps -// (fpView -> GetViewParameters ().GetNoOfSides ()); -// pPolyhedron = solid.CreatePolyhedron (); -// G4Polyhedron::ResetNumberOfRotationSteps (); -// -// 19.03.00 E.Chernyaev -// - added boolean operations (add, subtract, intersect) on polyhedra; -// -// 25.05.01 E.Chernyaev -// - added GetSurfaceArea() and GetVolume(); -// -#include "CLHEP/Geometry/Point3D.h" -#include "CLHEP/Geometry/Vector3D.h" -#include "CLHEP/Geometry/Normal3D.h" -#include "CLHEP/Geometry/Plane3D.h" -#include "CLHEP/Vector/Rotation.h" - -typedef HepGeom::Point3D<double> HVPoint3D; -typedef HepGeom::Vector3D<double> HVNormal3D; -typedef HepGeom::Normal3D<double> HVVector3D; -typedef HepGeom::Plane3D<double> HVPlane3D; -typedef CLHEP::HepRotation HVRotation; - -#include <iostream> - -#ifndef DEFAULT_NUMBER_OF_STEPS -#define DEFAULT_NUMBER_OF_STEPS 24 -#endif - -class GeoFacet -{ - friend class GeoPolyhedron; - friend std::ostream & operator<< (std::ostream &, const GeoFacet & facet); - -private: - struct - { - int v, f; - } - m_edge[4]; - -public: - GeoFacet (int v1 = 0, int f1 = 0, int v2 = 0, int f2 = 0, - int v3 = 0, int f3 = 0, int v4 = 0, int f4 = 0) - { - m_edge[0].v = v1; - m_edge[0].f = f1; - m_edge[1].v = v2; - m_edge[1].f = f2; - m_edge[2].v = v3; - m_edge[2].f = f3; - m_edge[3].v = v4; - m_edge[3].f = f4; - } -}; - -class GeoPolyhedron -{ - friend std::ostream & operator<< (std::ostream &, const GeoPolyhedron & ph); - -private: - static int s_fNumberOfRotationSteps; - -protected: - int m_nvert, m_nface; - HVPoint3D *m_pV; - GeoFacet *m_pF; - - // Allocate memory for GeoPolyhedron - void AllocateMemory (int Nvert, int Nface); - - // Find neighbouring facet - int FindNeighbour (int iFace, int iNode, int iOrder) const; - - // Find normal at node - HVNormal3D FindNodeNormal (int iFace, int iNode) const; - - // Create GeoPolyhedron for prism with quadrilateral base - void CreatePrism (); - - // Generate facets by revolving an edge around Z-axis - void RotateEdge (int k1, int k2, double r1, double r2, - int v1, int v2, int vEdge, - bool ifWholeCircle, int ns, int &kface); - - // Set side facets for the case of incomplete rotation - void SetSideFacets (int ii[4], int vv[4], - int *kk, double *r, double dphi, int ns, int &kface); - - // Create GeoPolyhedron for body of revolution around Z-axis - void RotateAroundZ (int nstep, double phi, double dphi, - int np1, int np2, - const double *z, double *r, int nodeVis, int edgeVis); - - // For each edge set reference to neighbouring facet - void SetReferences (); - - // Invert the order on nodes in facets - void InvertFacets (); - -public: - // Constructor - GeoPolyhedron (int Nvert = 0, int Nface = 0):m_nvert (Nvert), m_nface (Nface), - m_pV (Nvert ? new HVPoint3D[Nvert + 1] : 0), - m_pF (Nface ? new GeoFacet[Nface + 1] : 0) - { - } - - // Copy constructor - GeoPolyhedron (const GeoPolyhedron & from); - - // Destructor - virtual ~ GeoPolyhedron () - { - delete[]m_pV; - delete[]m_pF; - } - - // Assignment - virtual GeoPolyhedron & operator= (const GeoPolyhedron & from); - - // Get number of vertices - int GetNoVertices () const - { - return m_nvert; - } - - // Get number of facets - int GetNoFacets () const - { - return m_nface; - } - - // Transform the polyhedron - GeoPolyhedron & Transform (const HVRotation & rot, - const HVVector3D & trans); - - // Get next vertex index of the quadrilateral - bool GetNextVertexIndex (int &index, int &edgeFlag) const; - - // Get vertex by index - HVPoint3D GetVertex (int index) const; - - // Get next vertex + edge visibility of the quadrilateral - bool GetNextVertex (HVPoint3D & vertex, int &edgeFlag) const; - - // Get next vertex + edge visibility + normal of the quadrilateral - bool GetNextVertex (HVPoint3D & vertex, int &edgeFlag, - HVNormal3D & normal) const; - - // Get indeces of the next edge with indeces of the faces - bool GetNextEdgeIndeces (int &i1, int &i2, int &edgeFlag, - int &iface1, int &iface2) const; - - // Get indeces of the next edge - bool GetNextEdgeIndeces (int &i1, int &i2, int &edgeFlag) const; - - // Get next edge - bool GetNextEdge (HVPoint3D & p1, HVPoint3D & p2, int &edgeFlag) const; - - // Get next edge - bool GetNextEdge (HVPoint3D & p1, HVPoint3D & p2, int &edgeFlag, - int &iface1, int &iface2) const; - - // Get face by index - void GetFacet (int iFace, int &n, int *iNodes, - int *edgeFlags = 0, int *iFaces = 0) const; - - // Get face by index - void GetFacet (int iFace, int &n, HVPoint3D * nodes, - int *edgeFlags = 0, HVNormal3D * normals = 0) const; - - // Get next face with normals at the nodes - bool GetNextFacet (int &n, HVPoint3D * nodes, - int *edgeFlags = 0, HVNormal3D * normals = 0) const; - - // Get normal of the face given by index - HVNormal3D GetNormal (int iFace) const; - - // Get unit normal of the face given by index - HVNormal3D GetUnitNormal (int iFace) const; - - // Get normal of the next face - bool GetNextNormal (HVNormal3D & normal) const; - - // Get normal of unit length of the next face - bool GetNextUnitNormal (HVNormal3D & normal) const; - - // Boolean operations - GeoPolyhedron add (const GeoPolyhedron & p) const; - GeoPolyhedron subtract (const GeoPolyhedron & p) const; - GeoPolyhedron intersect (const GeoPolyhedron & p) const; - - // Get area of the surface of the polyhedron - double GetSurfaceArea () const; - - // Get volume of the polyhedron - double GetVolume () const; - - // Get number of steps for whole circle - static int GetNumberOfRotationSteps () - { - return s_fNumberOfRotationSteps; - } - - // Set number of steps for whole circle - static void SetNumberOfRotationSteps (int n); - - // Reset number of steps for whole circle to default value - static void ResetNumberOfRotationSteps () - { - s_fNumberOfRotationSteps = DEFAULT_NUMBER_OF_STEPS; - } - - - -}; - -class GeoPolyhedronTrd2:public GeoPolyhedron -{ -public: - GeoPolyhedronTrd2 (double Dx1, double Dx2, - double Dy1, double Dy2, double Dz); - virtual ~ GeoPolyhedronTrd2 (); - virtual GeoPolyhedron & operator = (const GeoPolyhedron & from) - { - return GeoPolyhedron::operator = (from); - } -}; - -class GeoPolyhedronTrd1:public GeoPolyhedronTrd2 -{ -public: - GeoPolyhedronTrd1 (double Dx1, double Dx2, double Dy, double Dz); - virtual ~ GeoPolyhedronTrd1 (); - virtual GeoPolyhedron & operator = (const GeoPolyhedron & from) - { - return GeoPolyhedron::operator = (from); - } -}; - -class GeoPolyhedronBox:public GeoPolyhedronTrd2 -{ -public: - GeoPolyhedronBox (double Dx, double Dy, double Dz); - virtual ~ GeoPolyhedronBox (); - virtual GeoPolyhedron & operator = (const GeoPolyhedron & from) - { - return GeoPolyhedron::operator = (from); - } -}; - -class GeoPolyhedronTrap:public GeoPolyhedron -{ -public: - GeoPolyhedronTrap (double Dz, double Theta, double Phi, - double Dy1, - double Dx1, double Dx2, double Alp1, - double Dy2, double Dx3, double Dx4, double Alp2); - virtual ~ GeoPolyhedronTrap (); - virtual GeoPolyhedron & operator = (const GeoPolyhedron & from) - { - return GeoPolyhedron::operator = (from); - } -}; - -class GeoPolyhedronPara:public GeoPolyhedronTrap -{ -public: - GeoPolyhedronPara (double Dx, double Dy, double Dz, - double Alpha, double Theta, double Phi); - virtual ~ GeoPolyhedronPara (); - virtual GeoPolyhedron & operator = (const GeoPolyhedron & from) - { - return GeoPolyhedron::operator = (from); - } -}; - -class GeoPolyhedronCons:public GeoPolyhedron -{ -public: - GeoPolyhedronCons (double Rmn1, double Rmx1, - double Rmn2, double Rmx2, double Dz, - double Phi1, double Dphi); - virtual ~ GeoPolyhedronCons (); - virtual GeoPolyhedron & operator = (const GeoPolyhedron & from) - { - return GeoPolyhedron::operator = (from); - } -}; - -class GeoPolyhedronCone:public GeoPolyhedronCons -{ -public: - GeoPolyhedronCone (double Rmn1, double Rmx1, - double Rmn2, double Rmx2, double Dz); - virtual ~ GeoPolyhedronCone (); - virtual GeoPolyhedron & operator = (const GeoPolyhedron & from) - { - return GeoPolyhedron::operator = (from); - } -}; - -class GeoPolyhedronTubs:public GeoPolyhedronCons -{ -public: - GeoPolyhedronTubs (double Rmin, double Rmax, double Dz, - double Phi1, double Dphi); - virtual ~ GeoPolyhedronTubs (); - virtual GeoPolyhedron & operator = (const GeoPolyhedron & from) - { - return GeoPolyhedron::operator = (from); - } -}; - -class GeoPolyhedronTube:public GeoPolyhedronCons -{ -public: - GeoPolyhedronTube (double Rmin, double Rmax, double Dz); - virtual ~ GeoPolyhedronTube (); - virtual GeoPolyhedron & operator = (const GeoPolyhedron & from) - { - return GeoPolyhedron::operator = (from); - } -}; - -class GeoPolyhedronPgon:public GeoPolyhedron -{ -public: - GeoPolyhedronPgon (double phi, double dphi, int npdv, int nz, - const double *z, const double *rmin, const double *rmax); - virtual ~ GeoPolyhedronPgon (); - virtual GeoPolyhedron & operator = (const GeoPolyhedron & from) - { - return GeoPolyhedron::operator = (from); - } -}; - -class GeoPolyhedronPcon:public GeoPolyhedronPgon -{ -public: - GeoPolyhedronPcon (double phi, double dphi, int nz, - const double *z, const double *rmin, const double *rmax); - virtual ~ GeoPolyhedronPcon (); - virtual GeoPolyhedron & operator = (const GeoPolyhedron & from) - { - return GeoPolyhedron::operator = (from); - } -}; - -class GeoPolyhedronSphere:public GeoPolyhedron -{ -public: - GeoPolyhedronSphere (double rmin, double rmax, - double phi, double dphi, double the, double dthe); - virtual ~ GeoPolyhedronSphere (); - virtual GeoPolyhedron & operator = (const GeoPolyhedron & from) - { - return GeoPolyhedron::operator = (from); - } -}; - -class GeoPolyhedronTorus:public GeoPolyhedron -{ -public: - GeoPolyhedronTorus (double rmin, double rmax, double rtor, - double phi, double dphi); - virtual ~ GeoPolyhedronTorus (); - virtual GeoPolyhedron & operator = (const GeoPolyhedron & from) - { - return GeoPolyhedron::operator = (from); - } -}; - - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPrintGraphAction.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPrintGraphAction.h deleted file mode 100755 index bed2e982748e4513673ad6eae636e7cf7a4c759c..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoPrintGraphAction.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOPRINTGRAPHACTION_H -#define GEOMODELKERNEL_GEOPRINTGRAPHACTION_H - -/** - * @class GeoPrintGraphAction - * - * @brief This action prints the node tree. It can be configured - * to print a message on the following types of nodes: - * * Transforms - * * Physical Volumes and Full Physical Volumes - * * SerialDenominators - * * SerialTransforms - * * IdentifierTag - */ - -#include "GeoModelKernel/GeoNodeAction.h" -#include <iostream> - -class GeoPrintGraphAction : public GeoNodeAction -{ - enum Type { TRANSFORM, - VOLUME, - NAMETAG, - IDENTIFIERTAG}; - public: - GeoPrintGraphAction (std::ostream &o); - virtual ~GeoPrintGraphAction(); - - // Handles a Transform. - virtual void handleTransform (const GeoTransform *xform); - - // Handles a physical volume. - virtual void handlePhysVol (const GeoPhysVol *vol); - - // Handles a physical volume. - virtual void handleFullPhysVol (const GeoFullPhysVol *vol); - - // Handles a Name Tag. - virtual void handleNameTag (const GeoNameTag *nameTag); - - // Handles a Serial Denominator. - virtual void handleSerialDenominator (const GeoSerialDenominator *sD); - - // Handles a Serial Transformer - virtual void handleSerialTransformer (const GeoSerialTransformer *sT); - - // Handles an Identifier Tag. - virtual void handleIdentifierTag (const GeoIdentifierTag *idTag); - - // Sets the notification state. Default: everything on. - void setNotification (Type type, bool state); - - private: - GeoPrintGraphAction(const GeoPrintGraphAction &right); - GeoPrintGraphAction & operator=(const GeoPrintGraphAction &right); - - // Indent the print. - void indent (); - - // A pointer to a name tag. If the volume is named. - const GeoNameTag *m_nameTag; - - // A pointer to a serial denominator. If one exists. - const GeoSerialDenominator *m_serialDenominator; - - // A pointer to an identifier tag. If the volume is - // identified. - const GeoIdentifierTag *m_idTag; - - // List of Pending Transformations. - std::vector<const GeoTransform *> m_pendingTransformList; - - // On/off flag for transforms. - bool m_transformState; - - // On/off flag for physical volumes. - bool m_volumeState; - - // On/off flag for name tags. - bool m_nametagState; - - // On/off flag for serial denominators. - bool m_serialDenominatorState; - - // On/off flag for serial transformers. - bool m_serialTransformerState; - - // On/off flag for identifier tags. - bool m_identifierState; - - std::ostream &m_o; - - // Flag for indent (intially 0) - mutable bool m_indented; -}; - - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoSerialDenominator.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoSerialDenominator.h deleted file mode 100755 index 6e85abef4c7e5a3b0fcd16104a59e768869b336e..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoSerialDenominator.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOSERIALDENOMINATOR_H -#define GEOMODELKERNEL_GEOSERIALDENOMINATOR_H - -/** - * @class GeoSerialDenominator - * - * @brief This class generates a name for all physical volumes - * following it. The name is a prefix string followed by a - * serial number that starts at zero. The naming scheme - * applies to all following sibling physical volumes. The - * naming is reset only when a GeoNameTag or another Geo - * SerialDenominator is found. - */ - -#include "GeoModelKernel/GeoGraphNode.h" -#include <string> - -class GeoSerialDenominator : public GeoGraphNode -{ - public: - GeoSerialDenominator (const std::string &BaseName); - - // Executes a GeoNodeAction. - virtual void exec (GeoNodeAction *action) const; - - // Specifies the name of the next physical volume in the - // node tree. - const std::string& getBaseName () const; - - protected: - virtual ~GeoSerialDenominator(); - - private: - GeoSerialDenominator(const GeoSerialDenominator &right); - GeoSerialDenominator & operator=(const GeoSerialDenominator &right); - - std::string m_baseName; - -}; - -inline const std::string& GeoSerialDenominator::getBaseName () const -{ - return m_baseName; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoSerialIdentifier.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoSerialIdentifier.h deleted file mode 100755 index 63a06d4756bfa93ae0a9e049049e9f963a5eea08..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoSerialIdentifier.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOSERIALIDENTIFIER_H -#define GEOMODELKERNEL_GEOSERIALIDENTIFIER_H - -/** - * @class GeoSerialIdentifier - * - * @brief Like a GeoSerialDenominator. Identifies volumes, including virtual volumes. - */ - -#include "GeoModelKernel/GeoGraphNode.h" - -class GeoSerialIdentifier : public GeoGraphNode -{ - public: - GeoSerialIdentifier(int baseId); - - virtual void exec(GeoNodeAction *action) const; - - inline int getBaseId() const; - - protected: - virtual ~GeoSerialIdentifier(); - - private: - GeoSerialIdentifier(const GeoSerialIdentifier &right); - const GeoSerialIdentifier & operator=(const GeoSerialIdentifier &right); - - int m_baseId; -}; - -inline int GeoSerialIdentifier::getBaseId() const -{ - return m_baseId; -} - -#endif - - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoSerialTransformer.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoSerialTransformer.h deleted file mode 100755 index b937e7456f308f74283b356be332d739d16968dd..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoSerialTransformer.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOSERIALTRANSFORMER_H -#define GEOMODELKERNEL_GEOSERIALTRANSFORMER_H - -/** - * @class GeoSerialTransformer - * - * @brief This class takes a physical volume and places it - * according to a transformation field, N times. - */ - -#include "GeoModelKernel/GeoGraphNode.h" -#include "GeoModelKernel/GeoVPhysVol.h" -#include "GeoModelKernel/GeoXF.h" - -class GeoSerialTransformer : public GeoGraphNode -{ - public: - GeoSerialTransformer (const GeoVPhysVol *volume, const GeoXF::Function *func, unsigned int copies); - - // Executes a GeoNodeAction. - virtual void exec (GeoNodeAction *action) const; - - // Returns the transformation field itself. - const GeoXF::Function * getFunction () const; - - // Returns the volume: - PVConstLink getVolume () const - { - return m_physVol; - } - - // Returns the number of copies: - unsigned int getNCopies () const - { - return m_nCopies; - } - - // Returns the transformation to the ith copy: - HepGeom::Transform3D getTransform (int i) const - { - return (*m_function) (i); - } - - protected: - virtual ~GeoSerialTransformer(); - - private: - GeoSerialTransformer(const GeoSerialTransformer &right); - GeoSerialTransformer & operator=(const GeoSerialTransformer &right); - - // Number of copies of a physical volume to generate. - unsigned int m_nCopies; - - // Recipe for the transformation; specifically, a - // Transform-valued m_function of a single variable. - const GeoXF::Function *m_function; - - // The physical volume to be multiply placed. - const GeoVPhysVol *m_physVol; -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShape.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShape.h deleted file mode 100755 index d9679c1260eb5c6bb16f6928904cf750f55a657e..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShape.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOSHAPE_H -#define GEOMODELKERNEL_GEOSHAPE_H - -/** - * @class GeoShape - * - * @brief This class describes a Shape. Shapes will be able to do the following things: - * * Identify themselves. - * * Compute their volume. - * * Combine themselves using Boolean operations with other shapes. - * The type identification works as follows: - * if (myShape->typeId()==GeoBox::classTypeId()) { - * ..... - * } - * This avoids the need for dynamic casting with these - * classes. - * - * Also noteworthy: Shapes are allocated on the heap and - * deleted automatically when their reference count falls - * to zero. - */ - -#include "GeoModelKernel/RCBase.h" -#include <CLHEP/Geometry/Transform3D.h> -#include <string> - -typedef unsigned int ShapeType; -class GeoShapeIntersection; -class GeoShapeUnion; -class GeoShapeSubtraction; -class GeoShapeShift; -class GeoShapeAction; - -class GeoShape : public RCBase -{ - public: - // Constructor for shape. Must provide the name, a string to identify this shape. - GeoShape (); - - // Returns the volume of the shape, for mass inventory - virtual double volume () const = 0; - - // Boolean OR operation for shapes - const GeoShapeUnion & add (const GeoShape& shape) const; - - // Subtraction operation for shapes. - const GeoShapeSubtraction & subtract (const GeoShape& shape) const; - - // Intersection of shapes. - const GeoShapeIntersection & intersect (const GeoShape& shape) const; - - // Shift shapes, for boolean operations. - const GeoShapeShift & operator << (const HepGeom::Transform3D &shift) const; - - // Returns the shape type, as a string. - virtual const std::string & type () const = 0; - - // Returns the shape type, as an coded integer. - virtual ShapeType typeID () const = 0; - - // Executes a GeoShapeAction - virtual void exec (GeoShapeAction *action) const = 0; - - protected: - virtual ~GeoShape(); - - private: - GeoShape(const GeoShape &right); - GeoShape & operator=(const GeoShape &right); - -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShapeAction.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShapeAction.h deleted file mode 100755 index 813ccff7ad3aef58d0880a814f3b454a10396192..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShapeAction.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOSHAPEACTION_H -#define GEOMODELKERNEL_GEOSHAPEACTION_H - -/** - * @class GeoShapeAction - * - * @brief This class is a visitor for shapes. It allows a - * navigation of the boolean expression tree for shapes, in - * order to accomplish actions such as volume computation. - * This is essentially an internal class. - */ - -#include "GeoModelKernel/Query.h" -#include "GeoModelKernel/GeoShapePath.h" - -class GeoShape; -class GeoShapeIntersection; -class GeoShapeUnion; -class GeoShapeSubtraction; -class GeoShapeShift; -class GeoBox; -class GeoCons; -class GeoPcon; -class GeoPgon; -class GeoTrap; -class GeoTrd; -class GeoPara; -class GeoTubs; -class GeoTube; -class GeoEllipticalTube; -class GeoTorus; - -class LArCustomShape; - -class GeoSimplePolygonBrep; -class GeoTessellatedSolid; - -class GeoGenericTrap; - -class GeoShapeAction -{ - public: - GeoShapeAction(); - virtual ~GeoShapeAction(); - - Query<unsigned int> getDepthLimit (); - - // Sets a depth limit. - void setDepthLimit (unsigned int limit); - - // Clears a depth limit, if any. - void clearDepthLimit (); - - // Cause the action to terminate. - void terminate (); - - // Determine whether the action should terminate. - bool shouldTerminate () const; - - // Handles a shape. - virtual void handleShape (const GeoShape *); - - // Handles a shift shape. - virtual void handleShift (const GeoShapeShift *shift); - - // Handles a union shape. - virtual void handleUnion (const GeoShapeUnion *unio); - - // Handles an intersection shape. - virtual void handleIntersection (const GeoShapeIntersection *isect); - - // Handles a subtraction shape. - virtual void handleSubtraction (const GeoShapeSubtraction *subtract); - - // Handles a box shape. - virtual void handleBox (const GeoBox *box); - - // Handles a cons shape. - virtual void handleCons (const GeoCons *cons); - - // Handles a para shape. - virtual void handlePara (const GeoPara *para); - - // Handles a pcon shape. - virtual void handlePcon (const GeoPcon *pcon); - - // Handles a pgon shape. - virtual void handlePgon (const GeoPgon *pgon); - - // Handles a trap shape. - virtual void handleTrap (const GeoTrap *trap); - - // Handles a trd shape. - virtual void handleTrd (const GeoTrd *trd); - - // Handles a tube shape. - virtual void handleTube (const GeoTube *tube); - - // Handles a tubs shape. - virtual void handleTubs (const GeoTubs *tubs); - - // Returns a pointer to the path object. - GeoShapePath * getPath (); - - virtual void handleLArCustom (const LArCustomShape *); - virtual void handleSimplePolygonBrep (const GeoSimplePolygonBrep *); - virtual void handleTessellatedSolid (const GeoTessellatedSolid *); - virtual void handleEllipticalTube (const GeoEllipticalTube *); - virtual void handleTorus (const GeoTorus *); - virtual void handleGenericTrap (const GeoGenericTrap *); - - private: - GeoShapeAction(const GeoShapeAction &right); - GeoShapeAction & operator=(const GeoShapeAction &right); - - // A limit may be placed upon the depth to which the action - // descends. 0 = self. 1 = self and children. - Query<unsigned int> m_depth; - - // Termination flag; causes an abortion of action execution. - bool m_terminate; - GeoShapePath m_path; - -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShapeIntersection.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShapeIntersection.h deleted file mode 100755 index 26fcd708f88af80f7f651ad79b9bf4cf3ace0c6d..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShapeIntersection.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOSHAPEINTERSECTION_H -#define GEOMODELKERNEL_GEOSHAPEINTERSECTION_H - -#include "GeoModelKernel/GeoShape.h" - -class GeoShapeIntersection : public GeoShape -{ - public: - // Constructor taking two shape operands. - GeoShapeIntersection (const GeoShape* A, const GeoShape* B); - - // Returns the volume of the shape, for mass inventory - virtual double volume () const; - - // Returns the AND shape type, as a string. - virtual const std::string & type () const; - - // Returns the AND shape type, as a coded integer. - virtual ShapeType typeID () const; - - // Returns the first operand being ANDed - const GeoShape* getOpA () const; - - // Returns the second operand being ANDed. - const GeoShape* getOpB () const; - - // Executes a GeoShapeAction - virtual void exec (GeoShapeAction *action) const; - - // For type identification. - static const std::string& getClassType (); - - // For type identification. - static ShapeType getClassTypeID (); - - protected: - virtual ~GeoShapeIntersection(); - - private: - GeoShapeIntersection(const GeoShapeIntersection &right); - GeoShapeIntersection & operator=(const GeoShapeIntersection &right); - - // The first shape operand in the AND operation. - const GeoShape* m_opA; - - // The second shape operand in the AND operation. - const GeoShape* m_opB; - - static const std::string s_classType; - static const ShapeType s_classTypeID; - -}; - -inline const std::string& GeoShapeIntersection::getClassType () -{ - return s_classType; -} - -inline ShapeType GeoShapeIntersection::getClassTypeID () -{ - return s_classTypeID; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShapePath.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShapePath.h deleted file mode 100755 index 865b0ac6ca81a02aff19a9217a0c829dd46a2e01..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShapePath.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOSHAPEPATH_H -#define GEOMODELKERNEL_GEOSHAPEPATH_H - -#include "GeoModelKernel/GeoShape.h" -#include "GeoModelKernel/Path.h" - -typedef Path< GeoShape > GeoShapePath; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShapeShift.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShapeShift.h deleted file mode 100755 index d228140c5f3442e2f3f9b5c80067d4a613a1d1c1..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShapeShift.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOSHAPESHIFT_H -#define GEOMODELKERNEL_GEOSHAPESHIFT_H - -#include "GeoModelKernel/GeoShape.h" -#include "CLHEP/Geometry/Transform3D.h" - -class GeoShapeShift : public GeoShape -{ - public: - GeoShapeShift (const GeoShape* A, const HepGeom::Transform3D &X); - - // Returns the volume of the shape, for mass inventory - virtual double volume () const; - - // Returns the OR shape type, as a string. - virtual const std::string & type () const; - - // Returns the OR shape type, as a coded integer. - virtual ShapeType typeID () const; - - // Returns the first operand being ORed - const GeoShape* getOp () const; - - // Returns the shift of this shape. - const HepGeom::Transform3D & getX () const; - - // Executes a GeoShapeAction - virtual void exec (GeoShapeAction *action) const; - - // For type identification. - static const std::string& getClassType (); - - // For type identification. - static ShapeType getClassTypeID (); - - protected: - virtual ~GeoShapeShift(); - - private: - GeoShapeShift(const GeoShapeShift &right); - GeoShapeShift & operator=(const GeoShapeShift &right); - - // The shape operand in the NOT operation. - const GeoShape* m_op; - - // Gives the amount by which the volume is shifted. - HepGeom::Transform3D m_shift; - - static const std::string s_classType; - static const ShapeType s_classTypeID; - -}; - -inline const std::string& GeoShapeShift::getClassType () -{ - return s_classType; -} - -inline ShapeType GeoShapeShift::getClassTypeID () -{ - return s_classTypeID; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShapeSubtraction.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShapeSubtraction.h deleted file mode 100755 index 45646a344b96ec221b9bc0b0b9dea88e8d622c38..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShapeSubtraction.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOSHAPESUBTRACTION_H -#define GEOMODELKERNEL_GEOSHAPESUBTRACTION_H - -#include "GeoModelKernel/GeoShape.h" - -class GeoShapeSubtraction : public GeoShape -{ - public: - GeoShapeSubtraction (const GeoShape* A, const GeoShape* B); - - // Returns the volume of the shape, for mass inventory - virtual double volume () const; - - // Returns the NOT shape type, as a string. - virtual const std::string & type () const; - - // Returns the NOT shape type, as a coded integer. - virtual ShapeType typeID () const; - - // Returns the first operand in the subtraction - const GeoShape* getOpA () const; - - // Returns the second operand in the subtraction - const GeoShape* getOpB () const; - - // Executes a GeoShapeAction - virtual void exec (GeoShapeAction *action) const; - - // For type identification. - static const std::string& getClassType (); - - // For type identification. - static ShapeType getClassTypeID (); - - protected: - virtual ~GeoShapeSubtraction(); - - private: - GeoShapeSubtraction(const GeoShapeSubtraction &right); - GeoShapeSubtraction & operator=(const GeoShapeSubtraction &right); - - // The shape operand in the Subtraction operation - const GeoShape* m_opA; - - // The shape operand in the Subtraction operation - const GeoShape* m_opB; - - static const std::string s_classType; - static const ShapeType s_classTypeID; - -}; - -inline const std::string& GeoShapeSubtraction::getClassType () -{ - return s_classType; -} - -inline ShapeType GeoShapeSubtraction::getClassTypeID () -{ - return s_classTypeID; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShapeUnion.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShapeUnion.h deleted file mode 100755 index a1f33324dad2c1fa4bae72d9c0b4cac1abb86e77..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoShapeUnion.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOSHAPEUNION_H -#define GEOMODELKERNEL_GEOSHAPEUNION_H - -#include "GeoModelKernel/GeoShape.h" - -class GeoShapeUnion : public GeoShape -{ - public: - GeoShapeUnion (const GeoShape* A, const GeoShape* B); - - // Returns the volume of the shape, for mass inventory - virtual double volume () const; - - // Returns the OR shape type, as a string. - virtual const std::string & type () const; - - // Returns the OR shape type, as a coded integer. - virtual ShapeType typeID () const; - - // Returns the first operand being ORed - const GeoShape* getOpA () const; - - // Returns the second operand being ORed. - const GeoShape* getOpB () const; - - // Executes a GeoShapeAction - virtual void exec (GeoShapeAction *action) const; - - // For type identification. - static const std::string& getClassType (); - - // For type identification. - static ShapeType getClassTypeID (); - - protected: - virtual ~GeoShapeUnion(); - - private: - GeoShapeUnion(const GeoShapeUnion &right); - GeoShapeUnion & operator=(const GeoShapeUnion &right); - - // The first shape operand in the OR operation. - const GeoShape* m_opA; - - // The second shape operand in the OR operation. - const GeoShape* m_opB; - - static const std::string s_classType; - static const ShapeType s_classTypeID; - -}; - -inline const std::string& GeoShapeUnion::getClassType () -{ - return s_classType; -} - -inline ShapeType GeoShapeUnion::getClassTypeID () -{ - return s_classTypeID; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoSimplePolygonBrep.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoSimplePolygonBrep.h deleted file mode 100755 index 288a47ddd6c4bcb072542484eced7c403ffcba65..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoSimplePolygonBrep.h +++ /dev/null @@ -1,98 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOSIMPLEPOLYGONBREP_H -#define GEOMODELKERNEL_GEOSIMPLEPOLYGONBREP_H - -/** - * @class: GeoSimplePolygonBrep - * - * @brief This shape represents a BREP solid consisting - * of two equivalent polygonial faces perpendicular to Z axis. - * The polygones are described by array of (x,y) vertices, - * The solid is considered valid if the number of polygon vertices >=3 - * - * Constructor parameter is a half length along Z axis - */ - -#include <vector> -#include "GeoModelKernel/GeoShape.h" - - -class GeoSimplePolygonBrep : public GeoShape -{ - public: - GeoSimplePolygonBrep(double dz); - - virtual double volume() const; - - virtual const std::string& type() const; - virtual ShapeType typeID() const; - - void addVertex(double XVertex, double YVertex); - unsigned int getNVertices() const; - - bool isValid () const; - - const double & getXVertex(unsigned int i) const; - const double & getYVertex(unsigned int i) const; - - virtual void exec(GeoShapeAction *action) const; - - static const std::string& getClassType(); - static ShapeType getClassTypeID(); - - const double& getDZ() const; - - protected: - virtual ~GeoSimplePolygonBrep(); - - private: - GeoSimplePolygonBrep(const GeoSimplePolygonBrep &right); - GeoSimplePolygonBrep & operator=(const GeoSimplePolygonBrep &right); - - static const std::string s_classType; - static const ShapeType s_classTypeID; - - double m_dZ; - std::vector<double> m_xVertices; - std::vector<double> m_yVertices; -}; - -inline unsigned int GeoSimplePolygonBrep::getNVertices() const -{ - return m_xVertices.size(); -} - -inline bool GeoSimplePolygonBrep::isValid() const -{ - return getNVertices()>=3; -} - -inline const double& GeoSimplePolygonBrep::getXVertex(unsigned int i) const -{ - return m_xVertices[i]; -} - -inline const double& GeoSimplePolygonBrep::getYVertex(unsigned int i) const -{ - return m_yVertices[i]; -} - -inline const std::string& GeoSimplePolygonBrep::getClassType() -{ - return s_classType; -} - -inline ShapeType GeoSimplePolygonBrep::getClassTypeID() -{ - return s_classTypeID; -} - -inline const double& GeoSimplePolygonBrep::getDZ() const -{ - return m_dZ; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTessellatedSolid.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTessellatedSolid.h deleted file mode 100755 index 3774c3a9736ada999c8d9e087e17b23fa14b0bfd..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTessellatedSolid.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOTESSELLATEDSOLID_H -#define GEOMODELKERNEL_GEOTESSELLATEDSOLID_H - -#include "GeoModelKernel/GeoShape.h" -#include "GeoModelKernel/GeoFacet.h" - -class GeoTessellatedSolid : public GeoShape -{ - public: - GeoTessellatedSolid(); - - virtual double volume() const; - - virtual const std::string& type() const; - virtual ShapeType typeID() const; - - static const std::string& getClassType(); - static ShapeType getClassTypeID(); - - virtual void exec(GeoShapeAction *action) const; - - void addFacet(GeoFacet*); - GeoFacet* getFacet(size_t) const; - size_t getNumberOfFacets() const; - - protected: - virtual ~GeoTessellatedSolid(); - - private: - GeoTessellatedSolid(const GeoTessellatedSolid &right); - GeoTessellatedSolid& operator=(const GeoTessellatedSolid &right); - - static const std::string s_classType; - static const ShapeType s_classTypeID; - - std::vector<GeoFacet*> m_facets; -}; - -inline const std::string& GeoTessellatedSolid::getClassType() -{ - return s_classType; -} - -inline ShapeType GeoTessellatedSolid::getClassTypeID() -{ - return s_classTypeID; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTorus.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTorus.h deleted file mode 100755 index 74f03650f3803771621887b51b031d9521d6cb2c..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTorus.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOTORUS_H -#define GEOMODELKERNEL_GEOTORUS_H - -#include "GeoModelKernel/GeoShape.h" - - -class GeoTorus : public GeoShape -{ - public: - GeoTorus (double Rmin, double Rmax, double Rtor, double SPhi, double DPhi); - - virtual double volume () const; - - virtual const std::string & type () const; - virtual ShapeType typeID () const; - - static const std::string& getClassType (); - static ShapeType getClassTypeID (); - - virtual void exec (GeoShapeAction *action) const; - - const double& getRMin () const; - const double& getRMax () const; - const double& getRTor () const; - const double& getSPhi () const; - const double& getDPhi () const; - - protected: - virtual ~GeoTorus(); - - private: - GeoTorus(const GeoTorus &right); - GeoTorus & operator=(const GeoTorus &right); - - static const std::string s_classType; - static const ShapeType s_classTypeID; - - double m_rMin; - double m_rMax; - double m_rTor; - double m_sPhi; - double m_dPhi; -}; - -inline const std::string& GeoTorus::getClassType () -{ - return s_classType; -} - -inline ShapeType GeoTorus::getClassTypeID () -{ - return s_classTypeID; -} - -inline const double& GeoTorus::getRMin () const -{ - return m_rMin; -} - -inline const double& GeoTorus::getRMax () const -{ - return m_rMax; -} - -inline const double& GeoTorus::getRTor () const -{ - return m_rTor; -} - -inline const double& GeoTorus::getSPhi () const -{ - return m_sPhi; -} - -inline const double& GeoTorus::getDPhi () const -{ - return m_dPhi; -} - - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTransform.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTransform.h deleted file mode 100755 index bb8f120d9eadaa5df26b4056eb0a7314fe76c977..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTransform.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOTRANSFORM_H -#define GEOMODELKERNEL_GEOTRANSFORM_H - -/** - * @class GeoTransform - * - * @brief A basic geometrical (Euclidean) transform. Can return a HepGeom::Transform3D. - * Reference counted. There is no (mis)alignment present in this class. For a transform - * that can be (mis)aligned, see GeoAlignableTransform - * - */ - -#include "GeoModelKernel/GeoGraphNode.h" -#include "CLHEP/Geometry/Transform3D.h" - -class GeoVAlignmentStore; - -class GeoTransform : public GeoGraphNode -{ - public: - GeoTransform(const HepGeom::Transform3D& transform); - - GeoTransform(const GeoTransform &right) = delete; - GeoTransform & operator=(const GeoTransform &right) = delete; - - /// Gets the total transformation. - virtual HepGeom::Transform3D getTransform(const GeoVAlignmentStore* store=nullptr) const; - - /// Gets the default transformation (no alignment correction) - HepGeom::Transform3D getDefTransform(const GeoVAlignmentStore* store=nullptr) const; - - /// Executes a GeoNodeAction. - virtual void exec(GeoNodeAction *action) const override final; - - protected: - virtual ~GeoTransform() override; - - private: - // The Euclidean (Rigid Body) transform. - HepGeom::Transform3D m_transform; -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTrap.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTrap.h deleted file mode 100755 index 2f47b45bbed0140cfa7829d7be9dd12f640c5b20..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTrap.h +++ /dev/null @@ -1,159 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOTRAP_H -#define GEOMODELKERNEL_GEOTRAP_H - -/** - * @class GeoTrap - * - * @brief This shape represents a very general trapezoid - */ - -#include "GeoModelKernel/GeoShape.h" - -class GeoTrap : public GeoShape -{ - public: - GeoTrap (double ZHalfLength, double Theta, double Phi, double Dydzn, double Dxdyndzn, double Dxdypdzn, double Angleydzn, double Dydzp, double Dxdyndzp, double Dxdypdzp, double Angleydzp); - - // Returns the volume of the shape, for mass inventory - virtual double volume () const; - - // Returns the TRAP shape type, as a string. - virtual const std::string & type () const; - - // Returns the TRAP shape type, as a coded integer. - virtual ShapeType typeID () const; - - // Executes a GeoShapeAction - virtual void exec (GeoShapeAction *action) const; - - // For type identification. - static const std::string& getClassType (); - - // For type identification. - static ShapeType getClassTypeID (); - - // Z half length. - const double& getZHalfLength () const; - - // Polar (theta) angle. - const double& getTheta () const; - - // Azimuthal (phi) angle. - const double& getPhi () const; - - // Y half length at -z. - const double& getDydzn () const; - - // X half length at -z, -y. - const double& getDxdyndzn () const; - - // X half length at -z, +y - const double& getDxdypdzn () const; - - const double& getAngleydzn () const; - - // Y half length at +z. - const double& getDydzp () const; - - // X half length at +z, -y - const double& getDxdyndzp () const; - - // X half length at +z, +y - const double& getDxdypdzp () const; - - const double& getAngleydzp () const; - - protected: - virtual ~GeoTrap(); - - private: - GeoTrap(const GeoTrap &right); - GeoTrap & operator=(const GeoTrap &right); - - static const std::string s_classType; - static const ShapeType s_classTypeID; - - double m_zHalfLength; - double m_theta; - double m_phi; - double m_dydzn; - double m_dxdyndzn; - double m_dxdypdzn; - double m_angleydzn; - double m_dydzp; - double m_dxdyndzp; - double m_dxdypdzp; - double m_angleydzp; - -}; - -inline const std::string& GeoTrap::getClassType () -{ - return s_classType; -} - -inline ShapeType GeoTrap::getClassTypeID () -{ - return s_classTypeID; -} - -inline const double& GeoTrap::getZHalfLength () const -{ - return m_zHalfLength; -} - -inline const double& GeoTrap::getTheta () const -{ - return m_theta; -} - -inline const double& GeoTrap::getPhi () const -{ - return m_phi; -} - -inline const double& GeoTrap::getDydzn () const -{ - return m_dydzn; -} - -inline const double& GeoTrap::getDxdyndzn () const -{ - return m_dxdyndzn; -} - -inline const double& GeoTrap::getDxdypdzn () const -{ - return m_dxdypdzn; -} - -inline const double& GeoTrap::getAngleydzn () const -{ - return m_angleydzn; -} - -inline const double& GeoTrap::getDydzp () const -{ - return m_dydzp; -} - -inline const double& GeoTrap::getDxdyndzp () const -{ - return m_dxdyndzp; -} - -inline const double& GeoTrap::getDxdypdzp () const -{ - return m_dxdypdzp; -} - -inline const double& GeoTrap::getAngleydzp () const -{ - return m_angleydzp; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTraversalState.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTraversalState.h deleted file mode 100755 index 276611c7a099ca84e9621d6487e8106957738870..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTraversalState.h +++ /dev/null @@ -1,120 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOTRAVERSALSTATE_H -#define GEOMODELKERNEL_GEOTRAVERSALSTATE_H - -/** - * @class GeoTraversalState - * - * @brief This incorporates a traversal state, including the following information: - * * The absolute transform from the place where the action started. - * * The default absolute transform from the place where the action started. - * * The path to the node. - * * The depth - */ - -#include "GeoModelKernel/GeoNodePath.h" -#include "CLHEP/Geometry/Transform3D.h" -#include <stack> -#include <string> - -class GeoTraversalState -{ - public: - GeoTraversalState (); - virtual ~GeoTraversalState(); - - // Gets the transformation of the current node with respect - // to its parent. - const HepGeom::Transform3D & getTransform () const; - - // Gets the name of the current node. - const std::string & getName () const; - - // Gets the default transformation of the current node with - // respect to its parent. - const HepGeom::Transform3D & getDefTransform () const; - - // Gets the absolute name of the current node. - const std::string & getAbsoluteName () const; - - // Gets the default absolute transformation to the current - // node. - const HepGeom::Transform3D & getDefAbsoluteTransform () const; - - // Gets the absolute transformation to the current node. - const HepGeom::Transform3D & getAbsoluteTransform () const; - - // Sets the transform for the current node. - void setTransform (const HepGeom::Transform3D &transform); - - // Sets the name for the current node. - void setName (const std::string &name); - - // Sets the default absolute transform for the current node. - void setDefTransform (const HepGeom::Transform3D &transform); - - // Goes to the next level. Pushes the last absolute - // transform onto the stack so that it can be retreived - // when going back to the previous level. - void nextLevel (const GeoVPhysVol* pv); - - // Goes to the previous level. Pops the last absolute - // transform onto the stack, restoring the absolute - // transform to that of the previous level. - void previousLevel (); - - // Returns the path. - const GeoNodePath * getPath () const; - - // Sets the identifier for the current node. - void setId (const Query<int> &id); - - // Gets the id of the current node. - const Query<int> getId () const; - - private: - GeoTraversalState(const GeoTraversalState &right); - GeoTraversalState & operator=(const GeoTraversalState &right); - - // A list of tranformations for all nodes visited at all - // previous levels of traversal. - std::stack<HepGeom::Transform3D> m_absTransformList; - - // A list of default tranformations for all nodes visited - // at all previous levels of traversal. - std::stack<HepGeom::Transform3D> m_defAbsTransformList; - - // List of volume names. - std::stack<std::string> m_absNameList; - - // The absolute transform for the present volume. - HepGeom::Transform3D m_absTransform; - - // The default absolute transform. - HepGeom::Transform3D m_defAbsTransform; - - // The absolute name. - std::string m_absName; - - // The transform from parent to current. - HepGeom::Transform3D m_transform; - - // The default transform from parent to current. - HepGeom::Transform3D m_defTransform; - - // The relative name. - std::string m_name; - - // And identifier for this volume. - Query<int> m_id; - - // The path from the point at which the action started, to - // the current node. - GeoNodePath m_path; - -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTrd.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTrd.h deleted file mode 100755 index 6bfa31c4ec152729652fdba21ea32bea9de1ebb4..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTrd.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOTRD_H -#define GEOMODELKERNEL_GEOTRD_H - -#include "GeoModelKernel/GeoShape.h" - -class GeoTrd : public GeoShape -{ - public: - GeoTrd (double XHalfLength1, double XHalfLength2, double YHalfLength1, double YHalfLength2, double ZHalfLength); - - // Returns the volume of the shape, for mass inventory - virtual double volume () const; - - // Returns the TRD shape type, as a string. - virtual const std::string & type () const; - - // Returns the TRD shape type, as a coded integer. - virtual ShapeType typeID () const; - - // Executes a GeoShapeAction - virtual void exec (GeoShapeAction *action) const; - - // For type identification. - static const std::string& getClassType (); - - // For type identification. - static ShapeType getClassTypeID (); - - // Half length in the x-direction at -dz. - const double& getXHalfLength1 () const; - - // Half length in the x-direction at +dz - const double& getXHalfLength2 () const; - - // Half-length in the y direction at +dz. - const double& getYHalfLength1 () const; - - // Half-length in the y direction at -dz - const double& getYHalfLength2 () const; - - // Half-length in the z direction. - const double& getZHalfLength () const; - - protected: - virtual ~GeoTrd(); - - private: - GeoTrd(const GeoTrd &right); - GeoTrd & operator=(const GeoTrd &right); - - static const std::string s_classType; - static const ShapeType s_classTypeID; - - double m_xHalfLength1; - double m_xHalfLength2; - double m_yHalfLength1; - double m_yHalfLength2; - double m_zHalfLength; - -}; - -inline const std::string& GeoTrd::getClassType () -{ - return s_classType; -} - -inline ShapeType GeoTrd::getClassTypeID () -{ - return s_classTypeID; -} - -inline const double& GeoTrd::getXHalfLength1 () const -{ - return m_xHalfLength1; -} - -inline const double& GeoTrd::getXHalfLength2 () const -{ - return m_xHalfLength2; -} - -inline const double& GeoTrd::getYHalfLength1 () const -{ - return m_yHalfLength1; -} - -inline const double& GeoTrd::getYHalfLength2 () const -{ - return m_yHalfLength2; -} - -inline const double& GeoTrd::getZHalfLength () const -{ - return m_zHalfLength; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTube.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTube.h deleted file mode 100755 index 4354cfd4baa437c229ee25ac76cad45709231568..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTube.h +++ /dev/null @@ -1,84 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOTUBE_H -#define GEOMODELKERNEL_GEOTUBE_H - -#include "GeoModelKernel/GeoShape.h" - -class GeoTube : public GeoShape -{ - public: - GeoTube (double RMin, double RMax, double ZHalfLength); - - // Returns the volume of the shape, for mass inventory - virtual double volume () const; - - // Returns the TUBE shape type, as a string. - virtual const std::string & type () const; - - // Returns the TUBE shape type, as a coded integer. - virtual ShapeType typeID () const; - - // Executes a GeoShapeAction - virtual void exec (GeoShapeAction *action) const; - - // For type identification. - static const std::string& getClassType (); - - // For type identification. - static ShapeType getClassTypeID (); - - // Minimum (inner) tube radius. - const double& getRMin () const; - - // Maximum (outer) tube radius. - const double& getRMax () const; - - // Tube half-length in the z direction. - const double& getZHalfLength () const; - - protected: - //## Destructor (generated) - virtual ~GeoTube(); - - private: - GeoTube(const GeoTube &right); - GeoTube & operator=(const GeoTube &right); - - static const std::string s_classType; - static const ShapeType s_classTypeID; - - double m_rMin; - double m_rMax; - double m_zHalfLength; - -}; - -inline const std::string& GeoTube::getClassType () -{ - return s_classType; -} - -inline ShapeType GeoTube::getClassTypeID () -{ - return s_classTypeID; -} - -inline const double& GeoTube::getRMin () const -{ - return m_rMin; -} - -inline const double& GeoTube::getRMax () const -{ - return m_rMax; -} - -inline const double& GeoTube::getZHalfLength () const -{ - return m_zHalfLength; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTubs.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTubs.h deleted file mode 100755 index 68f8399fb5b2ed27cee402f3d3fc8520238cf1d6..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoTubs.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOTUBS_H -#define GEOMODELKERNEL_GEOTUBS_H - -#include "GeoModelKernel/GeoShape.h" - -class GeoTubs : public GeoShape -{ - public: - GeoTubs (double RMin, double RMax, double ZHalfLength, double SPhi, double DPhi); - - // Returns the volume of the shape, for mass inventory - virtual double volume () const; - - // Returns the TUBS shape type, as a string. - virtual const std::string & type () const; - - // Returns the TUBS shape type, as a coded integer. - virtual ShapeType typeID () const; - - // Executes a GeoShapeAction - virtual void exec (GeoShapeAction *action) const; - - // For type identification. - static const std::string& getClassType (); - - // For type identification. - static ShapeType getClassTypeID (); - - // Minimum (inner) tube section radius. - const double& getRMin () const; - - // Maximum (outer) tube section radius. - const double& getRMax () const; - - // Tube section half-length in the z direction. - const double& getZHalfLength () const; - - // Starting angle of the tube section in radians. - const double& getSPhi () const; - - // Delta angle of the tube section in radians. - const double& getDPhi () const; - - protected: - virtual ~GeoTubs(); - - private: - GeoTubs(const GeoTubs &right); - GeoTubs & operator=(const GeoTubs &right); - - static const std::string s_classType; - static const ShapeType s_classTypeID; - - double m_rMin; - double m_rMax; - double m_zHalfLength; - double m_sPhi; - double m_dPhi; - -}; - -inline const std::string& GeoTubs::getClassType () -{ - return s_classType; -} - -inline ShapeType GeoTubs::getClassTypeID () -{ - return s_classTypeID; -} - -inline const double& GeoTubs::getRMin () const -{ - return m_rMin; -} - -inline const double& GeoTubs::getRMax () const -{ - return m_rMax; -} - -inline const double& GeoTubs::getZHalfLength () const -{ - return m_zHalfLength; -} - -inline const double& GeoTubs::getSPhi () const -{ - return m_sPhi; -} - -inline const double& GeoTubs::getDPhi () const -{ - return m_dPhi; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVAlignmentStore.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVAlignmentStore.h deleted file mode 100755 index f561eb284af4d3c9ca63cb56780752b212227488..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVAlignmentStore.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOVALIGNMENTSTORE_H -#define GEOMODELKERNEL_GEOVALIGNMENTSTORE_H - -/** - * @class GeoVAlignmentStore - * - * @brief Abstract base class for GeoModel alignment stores - * The interface allows to store/retrieve transformations that serve as: - * 1. Delta-s of Alignable Transforms - * 2. Abs positions of Full Physical Volumes - * 3. Def Abs positions of Full Physical Volumes - */ - -class GeoAlignableTransform; -class GeoVFullPhysVol; -namespace HepGeom { - class Transform3D; -} - -class GeoVAlignmentStore -{ - public: - GeoVAlignmentStore() {} - virtual ~GeoVAlignmentStore() {} - - virtual void setDelta(const GeoAlignableTransform*, const HepGeom::Transform3D&) = 0; - virtual const HepGeom::Transform3D* getDelta(const GeoAlignableTransform*) const = 0; - - virtual void setAbsPosition(const GeoVFullPhysVol*, const HepGeom::Transform3D&) = 0; - virtual const HepGeom::Transform3D* getAbsPosition(const GeoVFullPhysVol*) const = 0; - - virtual void setDefAbsPosition(const GeoVFullPhysVol*, const HepGeom::Transform3D&) = 0; - virtual const HepGeom::Transform3D* getDefAbsPosition(const GeoVFullPhysVol*) const = 0; - -}; - - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVDetectorElement.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVDetectorElement.h deleted file mode 100755 index 4bfb10d7e742e35a449201d88d9cec99b4dbf80c..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVDetectorElement.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOVDETECTORELEMENT_H -#define GEOMODELKERNEL_GEOVDETECTORELEMENT_H - -/** - * @class GeoVDetectorElement - * - * @brief A GeoVDetectorElement is a piece of readout geometry. - * This is an abstract base class for readout objects which - * have a distinct association to a piece of physical - * geometry and whose position we track by specifying a - * Euclidean transformation w.r.t global coordinates. level - * that one can keep track of with Euclidean - * transformations. Examples: - * - * * silicon wafers (not strips or pixels!) - * * calorimeter modules (not cells!) - */ - -#include "GeoModelKernel/GeoVFullPhysVol.h" -class Identifier; - -class GeoVDetectorElement -{ - public: - GeoVDetectorElement (const GeoVFullPhysVol* fullPhysVol); - virtual ~GeoVDetectorElement(); - - // Returns a pointer to a physical volume which is - // associated with this detector element. - const GeoVFullPhysVol* getMaterialGeom () const; - - private: - GeoVDetectorElement(const GeoVDetectorElement &right); - GeoVDetectorElement & operator=(const GeoVDetectorElement &right); - - private: - const GeoVFullPhysVol *m_materialGeom; - -}; - -inline const GeoVFullPhysVol* GeoVDetectorElement::getMaterialGeom () const -{ - return m_materialGeom; -} - - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVDetectorFactory.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVDetectorFactory.h deleted file mode 100755 index 55e508910360b24f67c7bf3af8a1930c4c5a8608..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVDetectorFactory.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOVDETECTORFACTORY_H -#define GEOMODELKERNEL_GEOVDETECTORFACTORY_H - -/** - * @class: GeoVDetectorFactory - * - * @brief Abstact Base Class for a detector factory. The detector - * factory builds the geometry and creates a GeoDetector - * Manager, which one may thereafter query for all raw - * geometry, and all readout geometry. - */ - -#include "GeoModelKernel/GeoVPhysVol.h" - -class GeoPhysVol; -class GeoVDetectorManager; - -class GeoVDetectorFactory -{ - public: - GeoVDetectorFactory(); - virtual ~GeoVDetectorFactory(); - - // Create the system. - virtual void create (GeoPhysVol* world) = 0; - - // Access to the Detector Manager. When implementing this - // method, please use the covariant return type mechanism. - virtual const GeoVDetectorManager* getDetectorManager () const = 0; - - private: - GeoVDetectorFactory(const GeoVDetectorFactory &right); - GeoVDetectorFactory & operator=(const GeoVDetectorFactory &right); - -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVDetectorManager.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVDetectorManager.h deleted file mode 100755 index 0526ce30954ac4461f82b74f2043f1245928c1f4..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVDetectorManager.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOVDETECTORMANAGER_H -#define GEOMODELKERNEL_GEOVDETECTORMANAGER_H - -/** - * @class GeoVDetectorManager - * - * @brief This class is the Manager for each detector. It has two - * required query mechanism: one for "tree tops" (These - * are top level pieces of raw geometry; there may be one - * or more of these), and another one for detector - * elements, which represent readout units. - * - * Subsystems engineers should override this. They may in - * addition add their own query mechanisms to their - * interface. - * They may in fact add anything else they require to their - * interface. - */ - -#include "GeoModelKernel/GeoVPhysVol.h" - -class GeoVDetectorElement; - -class GeoVDetectorManager -{ - public: - GeoVDetectorManager(); - virtual ~GeoVDetectorManager(); - - // Returns the number of Tree Tops (Top Level Physicsl - // Volumes) - virtual unsigned int getNumTreeTops () const = 0; - - // Access to the Tree Top - virtual PVConstLink getTreeTop (unsigned int i) const = 0; - - const std::string & getName() const; - void setName(const std::string & name); - - private: - GeoVDetectorManager(const GeoVDetectorManager &right); - GeoVDetectorManager & operator=(const GeoVDetectorManager &right); - - std::string m_name; - -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVFullPhysVol.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVFullPhysVol.h deleted file mode 100755 index 193e52a545356595feb76cc27594df3ba0558c9b..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVFullPhysVol.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOVFULLPHYSVOL_H -#define GEOMODELKERNEL_GEOVFULLPHYSVOL_H - -#include "GeoModelKernel/GeoVPhysVol.h" -#include "GeoModelKernel/GeoAbsPositionInfo.h" - -class GeoVAlignmentStore; - -// To Do: consider dropping it from the class hierarchy? -class GeoVFullPhysVol : public GeoVPhysVol -{ - public: - GeoVFullPhysVol(const GeoLogVol* logVol); - - GeoVFullPhysVol(const GeoVFullPhysVol &right) = delete; - GeoVFullPhysVol & operator=(const GeoVFullPhysVol &right) = delete; - - /// Returns the absolute transform of the volume. - const HepGeom::Transform3D& getAbsoluteTransform(GeoVAlignmentStore* store=nullptr) const; - - /// Clears the position information. This can be used if - /// the cache is determined to be invalid. The usual client - /// is one of the parents, upon changing its own position. - /// There is little need for casual users to call this. - void clearPositionInfo() const; - - /// Returns the default absolute transform of the volume. - const HepGeom::Transform3D& getDefAbsoluteTransform(GeoVAlignmentStore* store=nullptr) const; - - /// Returns the absolute name of this node. - const std::string& getAbsoluteName(); - - /// Returns the identification bits. - unsigned int getId() const; - - protected: - virtual ~GeoVFullPhysVol() override; - - private: - /// The absolute name of this volume. - std::string m_absName; - - /// An identifier. This is locally cached in a full physical volume. - mutable Query<int> *m_id; - - /// Information on the where this volume is, by default and after alignment corrections. - mutable GeoAbsPositionInfo *m_absPosInfo; - -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVPhysVol.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVPhysVol.h deleted file mode 100755 index 63170791260c4818a3c1c2c1dfd0e03fbc6f4ccc..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVPhysVol.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOVPHYSVOL_H -#define GEOMODELKERNEL_GEOVPHYSVOL_H - -#include "GeoModelKernel/GeoPVLink.h" -#define SMARTLINKS -#ifdef SMARTLINKS -typedef GeoPVLink PVLink; -typedef GeoPVConstLink PVConstLink; -#else -class GeoVPhysVol; -typedef GeoVPhysVol *PVLink; -typedef const GeoVPhysVol *PVConstLink; -#endif -#include "CLHEP/Geometry/Transform3D.h" -#include "GeoModelKernel/Query.h" -#include <string> - -#include "GeoModelKernel/GeoLogVol.h" -#include "GeoModelKernel/GeoGraphNode.h" - -class GeoVolumeAction; -class GeoVAlignmentStore; - -class GeoVPhysVol : public GeoGraphNode -{ - public: - GeoVPhysVol(const GeoLogVol* LogVol); - - GeoVPhysVol(const GeoVPhysVol &right) = delete; - GeoVPhysVol & operator=(const GeoVPhysVol &right) = delete; - - /// Returns true if the physical volume is accessed by more than one parent. - /// Should check this before trusting the parent pointer. - bool isShared() const; - - /// Returns the index of a specific daughter volume. The Query class can be used - /// just like an unsigned int, but it provides and isValid() method to determine - /// whether it is valid and throws an exception if an invalid value is blithely used. - Query<unsigned int> indexOf(PVConstLink daughter) const; - - /// Gets the parent, if the parent is unique, and otherwise returns a nullptr pointer. - PVConstLink getParent() const; - - /// Returns the logical volume. - const GeoLogVol* getLogVol() const; - - /// Returns the number of child physical volumes. - virtual unsigned int getNChildVols() const = 0; - - /// Returns the ith child volume - virtual PVConstLink getChildVol(unsigned int index) const = 0; - - /// Returns the transform to the ith volume. - virtual HepGeom::Transform3D getXToChildVol(unsigned int index, const GeoVAlignmentStore* store=nullptr) const = 0; - - /// Returns the default transform to the ith volume. - virtual HepGeom::Transform3D getDefXToChildVol(unsigned int index, const GeoVAlignmentStore* store=nullptr) const = 0; - - /// Returns the name of the child. - virtual std::string getNameOfChildVol(unsigned int i) const = 0; - - /// Applies an action to the volume. The volume executes the action and the applies - /// it to the children, either from the top down or the bottom up, depending upon - /// the configuration of the action. - void apply(GeoVolumeAction* action) const; - - /// When a node is added to a parent in the graph, the node is always notified. - /// What happens at that time is up to the node. Most nodes do not need to do - /// anything. Some--the alignable transforms in particular--need to take some - /// take some actions, such as adding the parent volume to a list. - virtual void dockTo(GeoVPhysVol* parent); - - /// Returns the id of the child. - virtual Query<int> getIdOfChildVol(unsigned int i) const = 0; - - /// Returns the number of child physical volumes and Serial Transformers. - virtual unsigned int getNChildVolAndST() const = 0; - - virtual HepGeom::Transform3D getX (const GeoVAlignmentStore* store=nullptr) const = 0; - virtual HepGeom::Transform3D getDefX (const GeoVAlignmentStore* store=nullptr) const = 0; - virtual unsigned int getNChildNodes() const=0; - virtual const GeoGraphNode * const *getChildNode (unsigned int i) const=0; - virtual const GeoGraphNode * const *findChildNode(const GeoGraphNode *n) const=0; - - protected: - virtual ~GeoVPhysVol(); - - private: - /// If one parent ...pointer=PARENT; - /// If no parent ...pointer=nullptr. - /// If more than one parent ...pointer=this; - const GeoVPhysVol* m_parentPtr; - - const GeoLogVol *m_logVol; -}; - -inline bool GeoVPhysVol::isShared () const -{ - return m_parentPtr == this; -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVolumeAction.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVolumeAction.h deleted file mode 100755 index 9a8f387cb5562c1be87199aea6c0fba94c8b95b8..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVolumeAction.h +++ /dev/null @@ -1,67 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOVOLUMEACTION_H -#define GEOMODELKERNEL_GEOVOLUMEACTION_H - -/** - * @class GeoVolumeAction - * - * @brief This type of action sees and traverses a simpler tree of - * positioned volumes. It does not descend into - * transformations or other properties, but simply - * accumulates their effect into an internal state that can - * be accessed during traversal. That state includes, for - * example, the position relative to the parent. - */ - -#include "GeoModelKernel/GeoTraversalState.h" - -class GeoVolumeAction -{ - public: - enum Type - { TOP_DOWN, BOTTOM_UP }; - - public: - GeoVolumeAction (Type type = TOP_DOWN); - virtual ~GeoVolumeAction(); - - // Callback method. Overriden by users. - virtual void handleVPhysVol (const GeoVPhysVol *); - - // Cause the action to terminate. - void terminate (); - - // Determine whether the action should terminate. - bool shouldTerminate () const; - - // Returns the traversal state. From this one can get - // placement information about the volume, even if it is a - // shared instance. - const GeoTraversalState* getState () const; - - // Returns the traversal state, as above. Non const type. - GeoTraversalState* getState (); - - // Returns the type: GeoVolumeAction::TOP_DOWN or GeoVolume - // Action::BOTTOM_UP. - GeoVolumeAction::Type getType () const; - - private: - GeoVolumeAction(const GeoVolumeAction &right); - GeoVolumeAction & operator=(const GeoVolumeAction &right); - - // This type specifies that the action should be carried - // out from the bottom up or from the top down. - Type m_type; - - // Termination flag; causes an abortion of action execution. - bool m_terminate; - - GeoTraversalState m_traversalState; - -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVolumeCursor.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVolumeCursor.h deleted file mode 100755 index de845a1e8bda0dfbf812b2aaacc7464325033456..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoVolumeCursor.h +++ /dev/null @@ -1,99 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOVOLUMECURSOR_H -#define GEOMODELKERNEL_GEOVOLUMECURSOR_H - -#include "GeoModelKernel/GeoNodeAction.h" -#include "CLHEP/Geometry/Transform3D.h" -#include <vector> - -class GeoVAlignmentStore; - -class GeoVolumeCursor final : public GeoNodeAction -{ - public: - GeoVolumeCursor (PVConstLink parent, GeoVAlignmentStore* store=nullptr); - virtual ~GeoVolumeCursor() override; - - GeoVolumeCursor(const GeoVolumeCursor &right) = delete; - GeoVolumeCursor & operator=(const GeoVolumeCursor &right) = delete; - - /// Advance - void next(); - - /// Check if we are at the last volume. - bool atEnd() const; - - /// Returns the selected physical volume or nullptr if not found. - PVConstLink getVolume () const; - - /// Returns the transformation to the volume. - HepGeom::Transform3D getTransform () const; - - /// Returns the default ransformation to the volume. - HepGeom::Transform3D getDefTransform () const; - - /// Returns the name of the volume. From nametag or serial denominator. - std::string getName () const; - - /// Returns the id of the volume. From the identifier. - Query<int> getId () const; - - bool hasAlignableTransform() const; - - private: - /// Handles a Transform. - virtual void handleTransform (const GeoTransform *xform) override; - - /// Handles a physical volume. - virtual void handlePhysVol (const GeoPhysVol *vol) override; - - /// Handles a physical volume. - virtual void handleFullPhysVol (const GeoFullPhysVol *vol) override; - - /// Handles a Name Tag. - virtual void handleNameTag (const GeoNameTag *nameTag) override; - - /// Handles a Serial Denominator. - virtual void handleSerialDenominator (const GeoSerialDenominator *sD) override; - - /// Handles a Serial Transformer - virtual void handleSerialTransformer (const GeoSerialTransformer *sT) override; - - /// Handles an Identifier Tag. - virtual void handleIdentifierTag (const GeoIdentifierTag *idTag) override; - - /// Handles a Serial Identifier. - virtual void handleSerialIdentifier(const GeoSerialIdentifier *sI) override; - - /// Ressucitate (undo terminate) - void resuscitate(); - - - PVConstLink m_parent; - PVConstLink m_volume; - HepGeom::Transform3D m_transform; - HepGeom::Transform3D m_defTransform; - - unsigned int m_majorIndex; - unsigned int m_minorIndex; - unsigned int m_minorLimit; - const GeoSerialTransformer *m_serialTransformer; - - const GeoNameTag *m_nameTag; - const GeoSerialDenominator *m_serialDenominator; - const GeoIdentifierTag *m_idTag; - std::vector<const GeoTransform *> m_pendingTransformList; - unsigned int m_serialDenomPosition; - const GeoSerialIdentifier *m_serialIdentifier; - unsigned int m_serialIdentPosition; - unsigned int m_volCount; - - bool m_hasAlignTrans; - - GeoVAlignmentStore *m_alignStore; -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoXF.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoXF.h deleted file mode 100755 index 87ff911c0fd65f46b5ce7863a47d58d989f42ff3..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoXF.h +++ /dev/null @@ -1,211 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -//------------------------GeoTransformFunction--------------------------// -// // -// GeoTransformFunction, base class for function objects which // -// evaluate to a HepTransform. // -// // -//----------------------------------------------------------------------// -#ifndef GEOMODELKERNEL_GEOTRANSFORMFUNCTION_H -#define GEOMODELKERNEL_GEOTRANSFORMFUNCTION_H -#include "CLHEP/GenericFunctions/AbsFunction.hh" -#include "CLHEP/GenericFunctions/Argument.hh" -#include "CLHEP/Geometry/Transform3D.h" -//-----------------------------------------------------------------------// -// Exact return type of arithmentic operations. To the user, the return // -// type is TRANsFUNCTION, or const GeoXF::Function &. // -//-----------------------------------------------------------------------// - -namespace GeoXF -{ - - class Product; - class PreMult; - class PostMult; - class Pow; - - - class Function - { - - public: - - // Default Constructor - Function (); - - // Destructor - virtual ~ Function (); - - // Function value: N-dimensional functions must override these: - virtual unsigned int dimensionality () const; //returns 1; - - // Function value - virtual HepGeom::Transform3D operator () (double argument) const = 0; - virtual HepGeom::Transform3D operator () (const Genfun:: - Argument & argument) const = - 0; - - // Every function must override this: - virtual Function *clone () const = 0; - - // Copy constructor - Function (const Function & right); - - private: - - // Assignment operator - const Function & operator = (const Function & right); - - }; - - - - - - - class Pow:public Function - { - - public: - - Pow (const HepGeom::Transform3D &, Genfun::GENFUNCTION f); - - virtual ~ Pow (); - - virtual HepGeom::Transform3D operator () (double argument) const; - virtual HepGeom::Transform3D operator () (const Genfun:: - Argument & argument) const; - - // Every function must override this: - Pow *clone () const; - - // Copy constructor: - Pow (const Pow & right); - - private: - - // Assignment operator - const Pow & operator = (const Pow & right); - - const HepGeom::Transform3D m_xf; - const Genfun::AbsFunction * m_function; - - }; - - - - - - Product operator * (const Function & op1, const Function & op2); - PreMult operator * (const HepGeom::Transform3D & xf, const Function & op2); - PostMult operator * (const Function & op2, const HepGeom::Transform3D & xf); - - - // Internally used class:: Product: - - class Product:public Function - { - - public: - - - Product (const Function * arg1, const Function * arg2); - - virtual ~ Product (); - - virtual unsigned int dimensionality () const; - - virtual HepGeom::Transform3D operator () (double argument) const; - virtual HepGeom::Transform3D operator () (const Genfun:: - Argument & argument) const; - - // Every function must override this: - virtual Product *clone () const; - - // Copy constructor: - Product (const Product & right); - - Product& operator= (const Product & right) = delete; - - private: - - const Function *m_arg1; - const Function *m_arg2; - - }; - - // Internally used class:: PreMult : - - class PreMult:public Function - { - - public: - - - PreMult (const HepGeom::Transform3D & arg1, const Function * arg2); - - virtual ~ PreMult (); - - virtual unsigned int dimensionality () const; - - virtual HepGeom::Transform3D operator () (double argument) const; - virtual HepGeom::Transform3D operator () (const Genfun:: - Argument & argument) const; - - // Every function must override this: - virtual PreMult *clone () const; - - // Copy constructor: - PreMult (const PreMult & right); - - PreMult& operator= (const PreMult & right) = delete; - - private: - - const HepGeom::Transform3D m_arg1; - const Function *m_arg2; - - }; - - // Internally used class:: PostMult : - - class PostMult:public Function - { - - public: - - - PostMult (const Function * arg1, const HepGeom::Transform3D & arg2); - - virtual ~ PostMult (); - - virtual unsigned int dimensionality () const; - - virtual HepGeom::Transform3D operator () (double argument) const; - virtual HepGeom::Transform3D operator () (const Genfun:: - Argument & argument) const; - - // Every function must override this: - virtual PostMult *clone () const; - - // Copy constructor: - PostMult (const PostMult & right); - - PostMult& operator= (const PostMult & right) = delete; - - private: - - const Function *m_arg1; - const HepGeom::Transform3D m_arg2; - - }; - - typedef const Function & TRANSFUNCTION; - - - -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeometryMap.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeometryMap.h deleted file mode 100755 index 4f13d91e210c0293a37f19baf8f84068ce0a33fa..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeometryMap.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOMETRYMAP_H -#define GEOMODELKERNEL_GEOMETRYMAP_H -#include <string> -#include "GeoModelKernel/GeoVPhysVol.h" - -class GeometryMap { - - public: - - // constructor - GeometryMap(); - - // Destructor; - ~GeometryMap(); - - GeometryMap (const GeometryMap&) = delete; - GeometryMap& operator= (const GeometryMap&) = delete; - - // Add a name to the list of designated volumes: Can use wildcards. - void add(const std::string & name); - - // Create the map; this will maintain a list of all volumes matching - // the expressions under the given physical volume. - void finalize(PVConstLink pv); - - - // For iteration: - typedef std::vector<PVConstLink>::const_iterator Iterator; - - Iterator begin() const; - Iterator end() const; - - private: - - class Clockwork; - Clockwork *m_c; - -}; -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/Path.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/Path.h deleted file mode 100755 index c9604266ef0218e0b95abc8f81d749a6f2a6313a..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/Path.h +++ /dev/null @@ -1,145 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_PATH_H -#define GEOMODELKERNEL_PATH_H - -/** - * @class Path - * - * @brief Represents a path from one point in the general tree, to the present point. - */ - -#include <vector> -#include <cstdlib> - -template <class T> -class Path -{ - public: - Path(); - Path(const Path< T > &right); - ~Path(); - - Path< T > & operator=(const Path< T > &right); - - // Pops the last node from the stack. - const T * pop (); - - // Pushes another node on to the tail of the path. - void push (const T *node); - - // Returns the length of the path. - unsigned int getLength () const; - - // Returns the ith Item. - const T * getItem (unsigned int i) const; - - // Gets the head of the path. - const T * getHead () const; - - // Gets the tail of the path. - const T * getTail () const; - - private: - // A list of physical volumes betwee the head of the path - // and the tail of the path. - std::vector<const T *> m_nodeList; - -}; - -template <class T> -inline Path<T>::Path() -{ - m_nodeList.reserve(2); -} - -template <class T> -inline Path<T>::Path(const Path<T> &right) - : m_nodeList(right.m_nodeList) -{ -} - -template <class T> -inline Path<T>::~Path() -{ -} - -template <class T> -inline Path<T> & Path<T>::operator=(const Path<T> &right) -{ - if (this != &right) - { - m_nodeList = right.m_nodeList; - } - return *this; -} - -template <class T> -inline const T * Path<T>::pop () -{ - if (m_nodeList.size () == 0) - { - return nullptr; - } - else - { - const T *gvp = m_nodeList.back (); - m_nodeList.pop_back (); - return gvp; - } -} - -template <class T> -inline void Path<T>::push (const T *node) -{ - m_nodeList.push_back (node); -} - -template <class T> -inline unsigned int Path<T>::getLength () const -{ - return m_nodeList.size (); -} - -template <class T> -inline const T * Path<T>::getItem (unsigned int i) const -{ - if (m_nodeList.size () == 0) - { - return nullptr; - } - else - { - return m_nodeList[i]; - } -} - -template <class T> -inline const T * Path<T>::getHead () const -{ - if (m_nodeList.size () == 0) - { - return nullptr; - } - else - { - return m_nodeList.front (); - } -} - -template <class T> -inline const T * Path<T>::getTail () const -{ - if (m_nodeList.size () == 0) - { - return nullptr; - } - else - { - return m_nodeList.back (); - } -} - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/Query.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/Query.h deleted file mode 100755 index 34487da8bef6d2ee206ce475ddade78152b9c0d3..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/Query.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_QUERY_H -#define GEOMODELKERNEL_QUERY_H - -/** - * @class Query - * - * @brief This class can be used to return the result of a query - * that can fail. Objects of this class can convert themselves to the - * result type T. Client code can check for a valid result; if it doesn't, - * and the result is valid, no problem. But if the result is invalid you - * will print an error message and terminate. - * - * Joe Boudreau - * based on Barton & Nackman's "Scientific and Engineering C++" - */ - -#include <stdexcept> -template < class T > class Query -{ - -public: - - // Constructor: - inline Query (const T &); - - // Default constructor: - inline Query (); - - // Convert to "T" - inline operator T () const; - - // Test Validity - inline bool isValid () const; - -private: - - bool m_failed; - T m_instance; - -}; - - -template < class T > inline Query < T >::Query (const T & t): -m_failed (false), -m_instance (t) -{ -} - -template < class T > inline Query < T >::Query (): -m_failed (true), -m_instance (T()) -{ -} - -template < class T > inline Query < T >::operator T () const -{ - if (m_failed) - throw std::range_error ("Failed query"); - return m_instance; -} - -template < class T > inline bool Query < T >::isValid () const -{ - return !m_failed; -} - - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/RCBase.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/RCBase.h deleted file mode 100755 index 0dfd0b5a9ac1c235b8422a7287fb9fc133395d7f..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/RCBase.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/** - * @class RCBase - * - * @brief This is a base class for objects whose memory is managed - * through reference counting. Reference-counted objects - * can only be created using - * operator new, the cannot be created on the stack. - * - * The methods ref() and unref() can be called to increase - * and decrease the reference count of an object. When - * the reference count decreases to zero, the object deletes - * itself - */ - -#ifndef GEOMODELKERNEL_RCBASE_H -#define GEOMODELKERNEL_RCBASE_H - -#include <atomic> - -class RCBase -{ - public: - RCBase(); - - // Increase the reference count - void ref () const; - - // Decreases the reference count. When the reference count - // falls to zero, the object deletes itself. - void unref () const; - - // Return the reference count. - unsigned int refCount () const; - - protected: - virtual ~RCBase(); - - private: - RCBase(const RCBase &right); - RCBase & operator=(const RCBase &right); - - // The reference count - mutable std::atomic<unsigned> m_count; - -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/TemplateVolAction.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/TemplateVolAction.h deleted file mode 100755 index 788d81d98583a1610d57aa28707171ed866036bd..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/TemplateVolAction.h +++ /dev/null @@ -1,26 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_TEMPLATEVOLACTION_H -#define GEOMODELKERNEL_TEMPLATEVOLACTION_H - -/** - * @class TemplateVolAction - * - * @brief An example that does nothing, for people to copy and fill in - */ - -#include "GeoModelKernel/GeoVolumeAction.h" - -class TemplateVolAction : public GeoVolumeAction -{ - public: - TemplateVolAction(); - ~TemplateVolAction(); - - // Callback method. Overriden by users. - virtual void handleVPhysVol (const GeoVPhysVol *); -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/TinyHepTransform.h b/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/TinyHepTransform.h deleted file mode 100755 index f09623d874febea227a2d5dd7e7922284f68bece..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/TinyHepTransform.h +++ /dev/null @@ -1,522 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef _TINYHEPTRANSFORM_H_ -#define _TINYHEPTRANSFORM_H_ -//-------------------------------------------------------------------------// -// // -// Tiny HepTransforms Joe Boudreau September 2003 // -// // -// These are essentially alternate representations of HepGeom::Transform3D // -// that are designed for memory optimization. // -// // -// This header file includes the following classes: // -// // -// tiny::HepTranslate3D // -// tiny::HepTranslateX3D // -// tiny::HepTranslateY3D // -// tiny::HepTranslateZ3D // -// tiny::HepRotate3D // -// tiny::HepRotateX3D // -// tiny::HepRotateY3D // -// tiny::HepRotateZ3D // -// tiny::HepReflect3D // -// tiny::HepReflectX3D // -// tiny::HepReflectY3D // -// tiny::HepReflectZ3D // -// tiny::HepScale3D // -// tiny::HepScale3XD // -// tiny::HepScale3YD // -// tiny::HepScale3ZD // -// // -// tiny::HepGeom::Transform3D // -// tiny::HepProperTransform3D // -// // -// The "Input classes" all contain constructors with the same signature // -// as their CLHEP counterparts. However, they do not store more info // -// than what they need; for example, HepTranslateZ3D stores just one // -// floating point number. However it can cast itself to a HepGeom::Transform3D // -// and so can be used exactly as a regular HepGeom::Transform3D. (Sometimes // -// you will need explicit casts in order to coax this behaviour). // -// // -// The "output classes" can be assigned the value of the HepGeom::Transform3D // -// but store it in a memory-optimized way. Six floats for a proper // -// transform and nine floats for a transform with scaling. In case // -// an improper CLHEP Transform is assigned to a tiny transform, a run // -// time error will occur. // -// // -//-------------------------------------------------------------------------// - -#include "CLHEP/Geometry/Point3D.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include <iostream> -#include <stdexcept> - -namespace tiny { - - class Transform { - - public: - - virtual operator ::HepGeom::Transform3D() const = 0; - - }; - - - class HepReflectX3D: public Transform { - - public: - - virtual operator ::HepGeom::Transform3D() const { - return ::HepReflectX3D(); - } - - }; - - class HepReflectY3D: public Transform { - - public: - - virtual operator ::HepGeom::Transform3D() const { - return ::HepReflectY3D(); - } - - }; - - class HepReflectZ3D: public Transform { - - public: - - virtual operator ::HepGeom::Transform3D() const { - return ::HepReflectZ3D(); - } - - }; - - class HepTranslateX3D: public Transform { - - public: - - inline HepTranslateX3D(double a): - _a(a) {} - - virtual operator ::HepGeom::Transform3D() const { - return ::HepTranslateX3D(_a); - } - - private: - - float _a; - - }; - - class HepTranslateY3D: public Transform { - - public: - - inline HepTranslateY3D(double a): - _a(a) {} - - virtual operator ::HepGeom::Transform3D() const { - return ::HepTranslateY3D(_a); - } - - private: - - float _a; - - }; - - class HepTranslateZ3D: public Transform { - - public: - - inline HepTranslateZ3D(double a): - _a(a) {} - - virtual operator ::HepGeom::Transform3D() const { - return ::HepTranslateZ3D(_a); - } - - private: - - float _a; - - }; - - class HepScaleX3D: public Transform { - - public: - - inline HepScaleX3D(double a): - _a(a) {} - - virtual operator ::HepGeom::Transform3D() const { - return ::HepScaleX3D(_a); - } - - private: - - float _a; - - }; - - class HepScaleY3D: public Transform { - - public: - - inline HepScaleY3D(double a): - _a(a) {} - - virtual operator ::HepGeom::Transform3D() const { - return ::HepScaleY3D(_a); - } - - private: - - float _a; - - }; - - class HepScaleZ3D: public Transform { - - public: - - inline HepScaleZ3D(double a): - _a(a) {} - - virtual operator ::HepGeom::Transform3D() const { - return ::HepScaleZ3D(_a); - } - - private: - - float _a; - - }; - - class HepRotateX3D: public Transform { - - public: - - inline HepRotateX3D(double a): - _a(a) {} - - - virtual operator ::HepGeom::Transform3D() const { - return ::HepRotateX3D(_a); - } - - private: - - float _a; - - }; - - class HepRotateY3D: public Transform { - - public: - - inline HepRotateY3D(double a): - _a(a) {} - - virtual operator ::HepGeom::Transform3D() const { - return ::HepRotateY3D(_a); - } - - private: - - float _a; - - }; - - class HepRotateZ3D: public Transform { - - public: - - inline HepRotateZ3D(double a): - _a(a) {} - - virtual operator ::HepGeom::Transform3D() const { - return ::HepRotateZ3D(_a); - } - - private: - - float _a; - - }; - - - - class HepRotate3D: public Transform { - - public: - - inline HepRotate3D(const CLHEP::HepRotation &m) { - double angle; - CLHEP::Hep3Vector axis; - m.getAngleAxis(angle, axis); - axis.setMag(angle); - ax=axis.x(); ay = axis.y(); az=axis.z(); - - } - - inline HepRotate3D(double a, const HepGeom::Vector3D<double> & v) { - CLHEP::Hep3Vector axis=v; - axis.setMag(a); - ax=axis.x(); ay=axis.y(); az=axis.z(); - } - - inline HepRotate3D(double a, - const HepGeom::Point3D<double> & p1, - const HepGeom::Point3D<double> & p2) { - ::HepRotate3D tmp(a, p1, p2); - const CLHEP::HepRotation & m = tmp.getRotation(); - double angle; - CLHEP::Hep3Vector axis; - m.getAngleAxis(angle, axis); - axis.setMag(angle); - ax=axis.x(); ay = axis.y(); az=axis.z(); - } - - inline HepRotate3D(const HepGeom::Point3D<double> & fr1, - const HepGeom::Point3D<double> & fr2, - const HepGeom::Point3D<double> & to1, - const HepGeom::Point3D<double> & to2) { - ::HepRotate3D tmp(fr1, fr2, to1, to2); - const CLHEP::HepRotation & m = tmp.getRotation(); - double angle; - CLHEP::Hep3Vector axis; - m.getAngleAxis(angle, axis); - axis.setMag(angle); - ax=axis.x(); ay = axis.y(); az=axis.z(); - } - - virtual operator ::HepGeom::Transform3D() const { - return ::HepRotate3D(sqrt(ax*ax+ay*ay+az*az), HepGeom::Vector3D<double> (ax,ay,az)); - } - - private: - - float ax, ay, az; - - }; - - class HepTranslate3D: public Transform { - - public: - inline HepTranslate3D (const CLHEP::Hep3Vector & v): - ax(v.x()),ay(v.y()), az(v.z()){} - - inline HepTranslate3D (double dx, double dy, double dz): - ax(dx),ay(dy),az(dz) {} - - virtual operator ::HepGeom::Transform3D() const { - return ::HepTranslate3D(ax,ay,az); - } - - private: - float ax, ay, az; - }; - - class HepScale3D: public Transform { - - public: - - inline HepScale3D (double s): - ax(s),ay(s), az(s){} - - inline HepScale3D (double sx, double sy, double sz): - ax(sx),ay(sy),az(sz) {} - - virtual operator ::HepGeom::Transform3D() const { - return ::HepScale3D(ax,ay,az); - } - - private: - float ax, ay, az; - }; - - class HepReflect3D: public Transform { - - public: - - inline HepReflect3D(double a, double b, double c, double d) { - double mag = sqrt(a*a+b*b+c*c); - d = d/mag; - ax = d*a/mag; - ay = d*b/mag; - az = d*c/mag; - - } - - inline HepReflect3D(const HepGeom::Normal3D<double> & normal, - const HepGeom::Point3D<double> & point) { - HepGeom::Normal3D<double> nNorm=normal; - nNorm.setMag(1.0); - double d = nNorm*point; - nNorm.setMag(d); - } - - virtual operator ::HepGeom::Transform3D() const { - double mag = sqrt(ax*ax+ay*ay+az*az); - return ::HepReflect3D(ax/mag,ay/mag,az/mag ,mag); - } - - private: - float ax, ay, az; - }; - - - class HepProperTransform3D: public Transform { - - public: - - inline HepProperTransform3D(): - tx(0),ty(0), tz(0), rx(0), ry(0), rz(0) {} - - - inline HepProperTransform3D(const ::HepGeom::Transform3D & source) { - HepGeom::Scale3D scale; - HepGeom::Rotate3D rotate; - HepGeom::Translate3D translate; - - source.getDecomposition(scale, rotate, translate); - const double EPS=5E-5; - if (fabs(scale.xx()-1.0)>EPS || fabs(scale.yy()-1.0)>EPS || fabs(scale.zz()-1.0)>EPS) { - - throw std::range_error("tiny::HepProperTransform3D detects an improper transformation (scaling or reflection)"); - } - - double angle; - CLHEP::HepRotation rotation( HepRep3x3(rotate.xx(), rotate.xy(), rotate.xz(), - rotate.yx(), rotate.yy(), rotate.yz(), - rotate.zx(), rotate.zy(), rotate.zz())); - CLHEP::Hep3Vector axis; - rotation.getAngleAxis(angle, axis); - axis.setMag(angle); - rx=axis.x(); ry = axis.y(); rz=axis.z(); - - tx = translate.dx(); - ty = translate.dy(); - tz = translate.dz(); - - } - - inline const HepProperTransform3D & operator = (const ::HepGeom::Transform3D & source) { - HepGeom::Scale3D scale; - HepGeom::Rotate3D rotate; - HepGeom::Translate3D translate; - - source.getDecomposition(scale, rotate, translate); - const double EPS=5E-5; - if (fabs(scale.xx()-1.0)>EPS || fabs(scale.yy()-1.0)>EPS || fabs(scale.zz()-1.0)>EPS) { - throw std::range_error("tiny::HepProperTransform3D detects an improper transformation (scaling or reflection)"); - } - - double angle; - CLHEP::HepRotation rotation( HepRep3x3(rotate.xx(), rotate.xy(), rotate.xz(), - rotate.yx(), rotate.yy(), rotate.yz(), - rotate.zx(), rotate.zy(), rotate.zz())); - CLHEP::Hep3Vector axis; - rotation.getAngleAxis(angle, axis); - axis.setMag(angle); - rx=axis.x(); ry = axis.y(); rz=axis.z(); - - tx = translate.dx(); - ty = translate.dy(); - tz = translate.dz(); - return *this; - } - - virtual operator ::HepGeom::Transform3D() const { - return ::HepGeom::Transform3D(CLHEP::CLHEP::HepRotation(CLHEP::Hep3Vector(rx,ry,rz),sqrt(rx*rx+ry*ry+rz*rz)), - CLHEP::Hep3Vector(tx,ty,tz)); - } - - private: - - float tx, ty, tz; - float rx, ry, rz; - - }; - - - class HepGeom::Transform3D: public Transform { - - public: - - inline HepGeom::Transform3D(): - tx(0),ty(0), tz(0), rx(0), ry(0), rz(0), sx(0), sy(0), sz(0) {} - - - inline HepGeom::Transform3D(const ::HepGeom::Transform3D & source) { - HepGeom::Scale3D scale; - HepGeom::Rotate3D rotate; - HepGeom::Translate3D translate; - - source.getDecomposition(scale, rotate, translate); - - double angle; - CLHEP::HepRotation rotation( HepRep3x3(rotate.xx(), rotate.xy(), rotate.xz(), - rotate.yx(), rotate.yy(), rotate.yz(), - rotate.zx(), rotate.zy(), rotate.zz())); - CLHEP::Hep3Vector axis; - rotation.getAngleAxis(angle, axis); - axis.setMag(angle); - rx=axis.x(); ry = axis.y(); rz=axis.z(); - - tx = translate.dx(); - ty = translate.dy(); - tz = translate.dz(); - - sx = scale.xx(); - sy = scale.yy(); - sz = scale.zz(); - - } - - inline const HepGeom::Transform3D & operator = (const ::HepGeom::Transform3D & source) { - HepGeom::Scale3D scale; - HepGeom::Rotate3D rotate; - HepGeom::Translate3D translate; - - source.getDecomposition(scale, rotate, translate); - - double angle; - CLHEP::HepRotation rotation( HepRep3x3(rotate.xx(), rotate.xy(), rotate.xz(), - rotate.yx(), rotate.yy(), rotate.yz(), - rotate.zx(), rotate.zy(), rotate.zz())); - CLHEP::Hep3Vector axis; - rotation.getAngleAxis(angle, axis); - axis.setMag(angle); - rx=axis.x(); ry = axis.y(); rz=axis.z(); - - tx = translate.dx(); - ty = translate.dy(); - tz = translate.dz(); - - sx = scale.xx(); - sy = scale.yy(); - sz = scale.zz(); - - return *this; - } - - virtual operator ::HepGeom::Transform3D() const { - return ::HepGeom::Transform3D(CLHEP::CLHEP::HepRotation(CLHEP::Hep3Vector(rx,ry,rz),sqrt(rx*rx+ry*ry+rz*rz)), - CLHEP::Hep3Vector(tx,ty,tz))*HepGeom::Scale3D(sx,sy,sz); - } - - private: - - float tx, ty, tz; - float rx, ry, rz; - float sx, sy, sz; - }; - -} -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/doc/packagedoc.h b/DetectorDescription/GeoModel/GeoModelKernel/doc/packagedoc.h deleted file mode 100644 index e7b866ef33c6744996982ed2b1835bb5f409af77..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/doc/packagedoc.h +++ /dev/null @@ -1,18 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -/** - - -@page GeoModelKernel_page - -The package contains kernel classes of the GeoModel toolkit: physical and logical volumes, -shapes, transformations, parameterized volumes, volume identifiers, actions. - --------------------------------- - REQUIREMENTS --------------------------------- - - -*/ diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/BooleanProcessor.src b/DetectorDescription/GeoModel/GeoModelKernel/src/BooleanProcessor.src deleted file mode 100755 index 1e6107984976018ac679bb9649e6934fcebaf45a..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/BooleanProcessor.src +++ /dev/null @@ -1,2109 +0,0 @@ -/*********************************************************************** - * * - * Name: BooleanProcessor Date: 10.12.99 * - * Author: E.Chernyaev Revised: * - * * - * Function: Internal class for executing boolean operations * - * on Polyhedra * - * * - * G.Barrand, 27/03/2001 : * - * triangulateContour : the pnext logic does not work. The * - * push_backs in the edge list reshuffle the addresses ! * - * Problem detected on Windows. * - * * - ***********************************************************************/ -#define ExtNode Geo_ExtNode -#define ExtEdge Geo_ExtEdge -#define ExtFace Geo_ExtFace -#define FaceList Geo_FaceList -#define ExtPolyhedron Geo_ExtPolyhedron -#define BooleanProcessor Geo_BooleanProcessor - - -#define INITIAL_SIZE 200 -#define CRAZY_POINT HVPoint3D(-10.e+6, -10.e+6, -10.e+6) -#define GRANULARITY (10.e+5) - -#define SWAP(A,B) w = A; A = B; B = w - -#define OP_UNION 0 // Operations -#define OP_INTERSECTION 1 -#define OP_SUBTRACTION 2 - -#define OUT_OF_PLANE 0 // Face vs face statuses -#define ON_PLANE 1 -#define INTERSECTION 2 -#define EDGE 3 -#define NON_PLANAR_FACE 4 - -#define UNKNOWN_FACE 0 // Face statuses -#define ORIGINAL_FACE -1 -#define NEW_FACE -2 -#define UNSUITABLE_FACE -3 -#define DEFECTIVE_FACE -4 - - -// ---------------------------------------------------- Extended node --- -class ExtNode { - public: - HVPoint3D v; - int s; - - public: - ExtNode():s(0) {} //G.Barrand - ExtNode(HVPoint3D vertex, int status=0) : v(vertex), s(status) {} - ~ExtNode() {} - - ExtNode(const ExtNode & node) : v(node.v), s(node.s) {} - - ExtNode & operator=(const ExtNode & node) - { - if (this != &node) { - v = node.v; - s = node.s; - } - return *this; - } -}; - -// ---------------------------------------------------- Extended edge --- -class ExtEdge { - public: - int i1, i2; // end points - int iface1; // native face - int iface2; // neighbouring face - int ivis; // visibility: +1 (visible), -1 (invisible) - int inext; // index of next edge - - public: - ExtEdge(int k1=0, int k2=0, int kface1=0, int kface2=0, int kvis=0) : - i1(k1), i2(k2), iface1(kface1), iface2(kface2), ivis(kvis), inext(0) {} - - ~ExtEdge() {}; - - ExtEdge(const ExtEdge & edge) : - i1(edge.i1), i2(edge.i2), iface1(edge.iface1), iface2(edge.iface2), - ivis(edge.ivis), inext(edge.inext) {} - - ExtEdge & operator=(const ExtEdge & edge) { - i1 = edge.i1; - i2 = edge.i2; - iface1 = edge.iface1; - iface2 = edge.iface2; - ivis = edge.ivis; - inext = edge.inext; - return *this; - } - - void invert() { - int w; - SWAP(i1, i2); - } -}; - -// ---------------------------------------------------- Extended face --- -class ExtFace { - public: - int iedges[4]; // indices of original edges - HVPlane3D plane; // face plane - double rmin[3], rmax[3]; // bounding box - int iold; // head of the list of the original edges - int inew; // head of the list of the new edges - int iprev; // index of previous face - int inext; // index of next face - - public: - ExtFace(int iedge=0) : iold(iedge), inew(0), iprev(0), inext(0) - { - int i; - for (i=0; i<4; i++) { iedges[i] = 0; } - for (i=0; i<3; i++) { rmin[i] = 0.; rmax[i] = 0.; } - } - ~ExtFace() {} - - ExtFace(const ExtFace & face) : - plane(face.plane), iold(face.iold), inew(face.inew), - iprev(face.iprev), inext(face.inext) - { - int i; - for (i=0; i<4; i++) { iedges[i] = face.iedges[i]; } - for (i=0; i<3; i++) { rmin[i] = face.rmin[i]; rmax[i] = face.rmax[i]; } - } - - ExtFace & operator=(const ExtFace & face) { - int i; - for (i=0; i<4; i++) { iedges[i] = face.iedges[i]; } - plane = face.plane; - for (i=0; i<3; i++) { rmin[i] = face.rmin[i]; rmax[i] = face.rmax[i]; } - iold = face.iold; - inew = face.inew; - iprev = face.iprev; - inext = face.inext; - return *this; - } - - void invert(); -}; - -// ---------------------------------------------------- Global arrays --- -static std::vector<ExtNode> nodes; // vector of nodes -static std::vector<ExtEdge> edges; // vector of edges -static std::vector<ExtFace> faces; // vector of faces - -// ---------------------------------------------------- List of faces --- -class FaceList { - private: - int m_ihead; - int m_ilast; - - public: - FaceList() : m_ihead(0), m_ilast(0) {} - ~FaceList() {} - - void clean() { m_ihead = 0; m_ilast = 0; } - int front() { return m_ihead; } - - void push_back(int i) { - if (m_ilast == 0) { m_ihead = i; } else { faces[m_ilast].inext = i; } - faces[i].iprev = m_ilast; - faces[i].inext = 0; - m_ilast = i; - } - - void remove(int i) { - if (m_ihead == i) { - m_ihead = faces[i].inext; - }else{ - faces[faces[i].iprev].inext = faces[i].inext; - } - if (m_ilast == i) { - m_ilast = faces[i].iprev; - }else{ - faces[faces[i].inext].iprev = faces[i].iprev; - } - faces[i].iprev = 0; - faces[i].inext = 0; - } -}; - -// --------------------- Polyhedron with extended access to -// its members from the BooleanProcessor class --- -class ExtPolyhedron : public GeoPolyhedron { - friend class BooleanProcessor; - virtual GeoPolyhedron& operator = (const GeoPolyhedron& from) { - return GeoPolyhedron::operator = (from); - } -}; - -// ----------------------------------------- Boolean processor class --- -class BooleanProcessor { - private: - int m_processor_error; // is set in case of error - int m_operation; // 0 (union), 1 (intersection), 2 (subtraction) - int m_ifaces1, m_ifaces2; // lists of faces - int m_iout1, m_iout2; // lists of faces with status "out" - double m_rmin[3], m_rmax[3]; // intersection of bounding boxes - double m_del; // precision (tolerance) - - FaceList m_result_faces; // list of accepted faces - FaceList m_suitable_faces; // list of suitable faces - FaceList m_unsuitable_faces; // list of unsuitable faces - FaceList m_unknown_faces; // list of unknown faces - - std::vector<int> m_external_contours; // heads of external contours - std::vector<int> m_internal_contours; // heads of internal contours - - private: - void takePolyhedron(const GeoPolyhedron & p, double, double, double); - double findMinMax(); - void selectOutsideFaces(int & ifaces, int & iout); - int testFaceVsPlane(ExtEdge & edge); - void renumberNodes(int & i1, int & i2, int & i3, int & i4); - int testEdgeVsEdge(ExtEdge & edge1, ExtEdge & edge2); - void removeJunkNodes() { while(nodes.back().s != 0) nodes.pop_back(); } - void divideEdge(int & i1, int & i2); - void insertEdge(const ExtEdge & edge); - void caseII(ExtEdge & edge1, ExtEdge & edge2); - void caseIE(ExtEdge & edge1, ExtEdge & edge2); - void caseEE(ExtEdge & edge1, ExtEdge & edge2); - void testFaceVsFace(int iface1, int iface2); - void invertNewEdges(int iface); - void checkDoubleEdges(int iface); - void assembleFace(int what, int iface); - void assembleNewFaces(int what, int ihead); - void initiateLists(); - void assemblePolyhedra(); - void findABC(double x1, double y1, double x2, double y2, - double &a, double &b, double &c) const; - int checkDirection(double *x, double *y) const; - int checkIntersection(int ix, int iy, int i1, int i2) const; - void mergeContours(int ix, int iy, int kext, int kint); - int checkTriangle(int iedge1, int iedge2, int ix, int iy) const; - void triangulateContour(int ix, int iy, int ihead); - void modifyReference(int iface, int i1, int i2, int iref); - void triangulateFace(int iface); - GeoPolyhedron createPolyhedron(); - - public: - BooleanProcessor(): m_processor_error(0), m_operation(0), m_ifaces1(0), m_ifaces2(0), m_iout1(0), m_iout2(0), m_del(0.) - { - int i; - for (i=0; i<3; i++) { m_rmin[i] = 0.; m_rmax[i] = 0.; } - } - ~BooleanProcessor() {} - - GeoPolyhedron execute(int op, - const GeoPolyhedron &a, - const GeoPolyhedron &b); - - void draw(); - void draw_edge(int, int); - void draw_contour(int, int, int); - void draw_faces(int, int, int); -}; - -inline void ExtFace::invert() -/*********************************************************************** - * * - * Name: ExtFace::invert() Date: 28.02.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Invert face * - * * - ***********************************************************************/ -{ - int iEprev, iEcur, iEnext; - - iEprev = 0; iEcur = iold; - while (iEcur > 0) { - edges[iEcur].invert(); - iEnext = edges[iEcur].inext; - edges[iEcur].inext = iEprev; - iEprev = iEcur; - iEcur = iEnext; - } - if (iold > 0) iold = iEprev; - - iEprev = 0; iEcur = inew; - while (iEcur > 0) { - edges[iEcur].invert(); - iEnext = edges[iEcur].inext; - edges[iEcur].inext = iEprev; - iEprev = iEcur; - iEcur = iEnext; - } - if (inew > 0) inew = iEprev; - - plane = HVPlane3D(-plane.a(),-plane.b(),-plane.c(), -plane.d()); -} - -void BooleanProcessor::takePolyhedron(const GeoPolyhedron & p, - double dx, double dy, double dz) -/*********************************************************************** - * * - * Name: BooleanProcessor::takePolyhedron Date: 16.12.99 * - * Author: E.Chernyaev Revised: * - * * - * Function: Transfer Polyhedron to internal representation * - * * - ***********************************************************************/ -{ - int i, k, nnode, iNodes[5], iVis[4], iFaces[4]; - int dnode = nodes.size() - 1; - int dface = faces.size() - 1; - -#ifdef __GNUC__ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Warray-bounds" -#endif - - // S E T N O D E S - - // for (i=1; i <= p.GetNoVertices(); i++) { - // nodes.push_back(ExtNode(p.GetVertex(i))); - // } - - HVPoint3D ppp; - for (i=1; i <= p.GetNoVertices(); i++) { - ppp = p.GetVertex(i); - ppp+= HVPoint3D(dx,dy,dz); - nodes.push_back(ExtNode(ppp)); - } - - // S E T F A C E S - - for (int iface=1; iface <= p.GetNoFacets(); iface++) { - faces.push_back(ExtFace(edges.size())); - - // S E T F A C E N O D E S - - p.GetFacet(iface, nnode, iNodes, iVis, iFaces); - for (i=0; i<nnode; i++) { - if (iNodes[i] < 1 || iNodes[i] > p.GetNoVertices()) m_processor_error = 1; - if (iFaces[i] < 1 || iFaces[i] > p.GetNoFacets()) m_processor_error = 1; - iNodes[i] += dnode; - iFaces[i] += dface; - } - - // S E T E D G E S - - iNodes[nnode] = iNodes[0]; - faces.back().iedges[3] = 0; - for (i=0; i<nnode; i++) { - faces.back().iedges[i] = edges.size(); - edges.push_back(ExtEdge(iNodes[i], iNodes[i+1], - iface+dface, iFaces[i], iVis[i])); - edges.back().inext = edges.size(); - } - edges.back().inext = 0; - - // S E T F A C E M I N - M A X - - for (i=0; i<3; i++) { - faces.back().rmin[i] = nodes[iNodes[0]].v[i]; - faces.back().rmax[i] = nodes[iNodes[0]].v[i]; - } - for (i=1; i<nnode; i++) { - for (k=0; k<3; k++) { - if (faces.back().rmin[k] > nodes[iNodes[i]].v[k]) - faces.back().rmin[k] = nodes[iNodes[i]].v[k]; - if (faces.back().rmax[k] < nodes[iNodes[i]].v[k]) - faces.back().rmax[k] = nodes[iNodes[i]].v[k]; - } - } - - // S E T F A C E P L A N E - - HVNormal3D n = (nodes[iNodes[2]].v-nodes[iNodes[0]].v).cross - (nodes[iNodes[3]].v-nodes[iNodes[1]].v); - HVPoint3D point(0,0,0); - - for (i=0; i<nnode; i++) { point += nodes[iNodes[i]].v; } - point *= (1./nnode); - HVNormal3D nunit = n/n.mag(); - faces.back().plane = HVPlane3D(nunit, point); - - // S E T R E F E R E N C E T O T H E N E X T F A C E - - faces.back().inext = faces.size(); - } - faces.back().inext = 0; - -#ifdef __GNUC__ -#pragma GCC diagnostic pop -#endif -} - -double BooleanProcessor::findMinMax() -/*********************************************************************** - * * - * Name: BooleanProcessor::findMinMax Date: 16.12.99 * - * Author: E.Chernyaev Revised: * - * * - * Function: Find min-max (bounding) boxes for polyhedra * - * * - ***********************************************************************/ -{ - if (m_ifaces1 == 0 || m_ifaces2 == 0) return 0; - - int i, iface; - double rmin1[3], rmax1[3]; - double rmin2[3], rmax2[3]; - - // F I N D B O U N D I N G B O X E S - - for (i=0; i<3; i++) { - rmin1[i] = faces[m_ifaces1].rmin[i]; - rmax1[i] = faces[m_ifaces1].rmax[i]; - rmin2[i] = faces[m_ifaces2].rmin[i]; - rmax2[i] = faces[m_ifaces2].rmax[i]; - } - - iface = faces[m_ifaces1].inext; - while(iface > 0) { - for (i=0; i<3; i++) { - if (rmin1[i] > faces[iface].rmin[i]) rmin1[i] = faces[iface].rmin[i]; - if (rmax1[i] < faces[iface].rmax[i]) rmax1[i] = faces[iface].rmax[i]; - } - iface = faces[iface].inext; - } - - iface = faces[m_ifaces2].inext; - while(iface > 0) { - for (i=0; i<3; i++) { - if (rmin2[i] > faces[iface].rmin[i]) rmin2[i] = faces[iface].rmin[i]; - if (rmax2[i] < faces[iface].rmax[i]) rmax2[i] = faces[iface].rmax[i]; - } - iface = faces[iface].inext; - } - - // F I N D I N T E R S E C T I O N O F B O U N D I N G B O X E S - - for (i=0; i<3; i++) { - m_rmin[i] = (rmin1[i] > rmin2[i]) ? rmin1[i] : rmin2[i]; - m_rmax[i] = (rmax1[i] < rmax2[i]) ? rmax1[i] : rmax2[i]; - } - - // F I N D T O L E R A N C E - - double del1 = 0; - double del2 = 0; - for (i=0; i<3; i++) { - if ((rmax1[i]-rmin1[i]) > del1) del1 = rmax1[i]-rmin1[i]; - if ((rmax2[i]-rmin2[i]) > del2) del2 = rmax2[i]-rmin2[i]; - } - return ((del1 < del2) ? del1 : del2) * (1./GRANULARITY); -} - -void BooleanProcessor::selectOutsideFaces(int & ifaces, int & iout) -/*********************************************************************** - * * - * Name: BooleanProcessor::selectOutsideFaces Date: 10.01.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Preselection of outside faces * - * * - ***********************************************************************/ -{ - int i, outflag, iface = ifaces, *prev; - HVPoint3D mmbox[8] = { HVPoint3D(m_rmin[0],m_rmin[1],m_rmin[2]), - HVPoint3D(m_rmax[0],m_rmin[1],m_rmin[2]), - HVPoint3D(m_rmin[0],m_rmax[1],m_rmin[2]), - HVPoint3D(m_rmax[0],m_rmax[1],m_rmin[2]), - HVPoint3D(m_rmin[0],m_rmin[1],m_rmax[2]), - HVPoint3D(m_rmax[0],m_rmin[1],m_rmax[2]), - HVPoint3D(m_rmin[0],m_rmax[1],m_rmax[2]), - HVPoint3D(m_rmax[0],m_rmax[1],m_rmax[2]) }; - prev = &ifaces; - while (iface > 0) { - - // B O U N D I N G B O X vs B O U N D I N G B O X - - outflag = 0; - for (i=0; i<3; i++) { - if (faces[iface].rmin[i] > m_rmax[i] + m_del) { outflag = 1; break; } - if (faces[iface].rmax[i] < m_rmin[i] - m_del) { outflag = 1; break; } - } - - // B O U N D I N G B O X vs P L A N E - - if (outflag == 0) { - int npos = 0, nneg = 0; - double d; - for (i=0; i<8; i++) { - - const HVVector3D & nm = faces[iface].plane.normal(); - double dz = fabs(faces[iface].plane.d()); - d = mmbox[i].dot(nm)-dz; - // d = faces[iface].plane.distance(mmbox[i]); - if (d > +m_del) npos++; - if (d < -m_del) nneg++; - } - if (npos == 8 || nneg == 8) outflag = 1; - } - - // U P D A T E L I S T S - - if (outflag == 1) { - *prev = faces[iface].inext; - faces[iface].inext = iout; - iout = iface; - }else{ - prev = &faces[iface].inext; - } - iface = *prev; - } -} - -int BooleanProcessor::testFaceVsPlane(ExtEdge & edge) -/*********************************************************************** - * * - * Name: BooleanProcessor::testFaceVsPlane Date: 19.01.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Find result of intersection of face by plane * - * * - ***********************************************************************/ -{ - int iface = edge.iface1; - HVPlane3D plane = faces[edge.iface2].plane; - int i, nnode, npos = 0, nneg = 0, nzer = 0; - double dd[5]; - - // F I N D D I S T A N C E S - - nnode = (faces[iface].iedges[3] == 0) ? 3 : 4; - for (i=0; i<nnode; i++) { - - - const HVVector3D & nm = plane.normal(); - double dz = fabs(plane.d()); - dd[i] = nodes[edges[faces[iface].iedges[i]].i1].v.dot(nm)-dz; - // dd[i] = plane.distance(nodes[edges[faces[iface].iedges[i]].i1].v); - - if (dd[i] > m_del) { - npos++; - }else if (dd[i] < -m_del) { - nneg++; - }else{ - nzer++; dd[i] = 0; - } - } - - // S O M E S I M P L E C A S E S ( N O I N T E R S E C T I O N ) - - if (npos == nnode || nneg == nnode) return OUT_OF_PLANE; - if (nzer == 1 && nneg == 0) return OUT_OF_PLANE; - if (nzer == 1 && npos == 0) return OUT_OF_PLANE; - if (nzer == nnode) return ON_PLANE; - if (nzer == 3) return NON_PLANAR_FACE; - - // F I N D I N T E R S E C T I O N - - int ie1(0), ie2(0), s1(0), s2(0), status, nint = 0; - enum { PLUS_MINUS, MINUS_PLUS, ZERO_ZERO, ZERO_PLUS, ZERO_MINUS }; - - dd[nnode] = dd[0]; - for (i=0; i<nnode; i++) { - if (dd[i] > 0) { - if (dd[i+1] >= 0) continue; - status = PLUS_MINUS; - }else if (dd[i] < 0) { - if (dd[i+1] <= 0) continue; - status = MINUS_PLUS; - }else{ - status = ZERO_ZERO; - if (dd[i+1] > 0) status = ZERO_PLUS; - if (dd[i+1] < 0) status = ZERO_MINUS; - } - switch (nint) { - case 0: - ie1 = i; s1 = status; nint++; break; - case 1: - ie2 = i; s2 = status; nint++; break; - default: - return NON_PLANAR_FACE; - } - } - if (nint != 2) return NON_PLANAR_FACE; - - // F O R M I N T E R S E C T I O N S E G M E N T - - if (s1 != ZERO_ZERO && s2 != ZERO_ZERO) { - if (s1 == s2) return NON_PLANAR_FACE; - int iedge, i1(0), i2(0), ii[2]; - double d1(0.), d2(0.), dd ; - ii[0] = ie1; ii[1] = ie2; - for (i=0; i<2; i++) { - iedge = faces[iface].iedges[ii[i]]; - while (iedge > 0) { - i1 = edges[iedge].i1; - i2 = edges[iedge].i2; - - - const HVVector3D & nm1 = plane.normal(); - double dz1 = fabs(plane.d()); - d1 = nodes[i1].v.dot(nm1)-dz1; - - const HVVector3D & nm2 = plane.normal(); - double dz2 = fabs(plane.d()); - d2 = nodes[i2].v.dot(nm2)-dz2; - - // d1 = plane.distance(nodes[i1].v); - // d2 = plane.distance(nodes[i2].v); - if (d1 > m_del) { - if (d2 < -m_del) { ii[i] = nodes.size(); break; } // +- - }else if (d1 < -m_del) { - if (d2 > m_del) { ii[i] = nodes.size(); break; } // -+ - }else{ - ii[i] = i1; break; // 0+ or 0- - } - iedge = edges[iedge].inext; - } - if (ii[i] == (int) nodes.size()) { - dd = d2-d1; d1 = d1/dd; d2 = d2/dd; - nodes.push_back(ExtNode(((float)d2)*nodes[i1].v-((float)d1)*nodes[i2].v, iedge)); - } - } - edge.inext = 0; - if (s1 == MINUS_PLUS || s1 == ZERO_PLUS) { - edge.i1 = ii[1]; - edge.i2 = ii[0]; - }else{ - edge.i1 = ii[0]; - edge.i2 = ii[1]; - } - return INTERSECTION; - }else{ - if (npos == nneg) return NON_PLANAR_FACE; - edge.inext = (s1 == ZERO_ZERO) ? ie1+1 : ie2+1; - if (s1 == ZERO_PLUS || s2 == ZERO_MINUS) { - edge.i1 = edges[faces[iface].iedges[ie2]].i1; - edge.i2 = edges[faces[iface].iedges[ie1]].i1; - }else{ - edge.i1 = edges[faces[iface].iedges[ie1]].i1; - edge.i2 = edges[faces[iface].iedges[ie2]].i1; - } - return EDGE; - } -} - -void BooleanProcessor::renumberNodes(int & i1, int & i2, int & i3, int & i4) -/*********************************************************************** - * * - * Name: BooleanProcessor::renumberNodes Date: 19.01.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Renumber nodes and remove last temporary node. * - * Remark: In principal this routine can be replaced just * - * with i1 = i2; * - * Removal of temporary nodes provides additional control * - * on number of nodes, that is very useful for debugging. * - * * - ***********************************************************************/ -{ - if (i1 == i2) return; - if (nodes[i1].s == 0 || nodes.back().s == 0) { i1 = i2; return; } - - int ilast = nodes.size()-1; - if (i1 == ilast) { i1 = i2; nodes.pop_back(); return; } - if (i2 == ilast) { i2 = i1; } - if (i3 == ilast) { i3 = i1; } - if (i4 == ilast) { i4 = i1; } - nodes[i1] = nodes.back(); i1 = i2; nodes.pop_back(); -} - -int BooleanProcessor::testEdgeVsEdge(ExtEdge & edge1, ExtEdge & edge2) -/*********************************************************************** - * * - * Name: BooleanProcessor::testEdgeVsEdge Date: 19.01.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Find common part of two edges * - * * - ***********************************************************************/ -{ - int i, ii = 0; - double d, dd = 0.; - - for (i=0; i<3; i++) { - d = nodes[edge1.i1].v[i]-nodes[edge1.i2].v[i]; - if (d < 0.) d = -d; - if (d > dd) { dd = d; ii = i; } - } - double t1 = nodes[edge1.i1].v[ii]; - double t2 = nodes[edge1.i2].v[ii]; - double t3 = nodes[edge2.i1].v[ii]; - double t4 = nodes[edge2.i2].v[ii]; - if (t2-t1 < 0.) { t1 = -t1; t2 = -t2; t3 = -t3; t4 = -t4; } - - if (t3 <= t1+m_del || t4 >= t2-m_del) return 0; - if (t3 > t2+m_del) { - renumberNodes(edge2.i1, edge1.i2, edge1.i1, edge2.i2); - }else if (t3 < t2-m_del) { - renumberNodes(edge1.i2, edge2.i1, edge1.i1, edge2.i2); - } - if (t4 < t1-m_del) { - renumberNodes(edge2.i2, edge1.i1, edge1.i2, edge2.i1); - }else if (t4 > t1+m_del) { - renumberNodes(edge1.i1, edge2.i2, edge1.i2, edge2.i1); - } - return 1; -} - -void BooleanProcessor::divideEdge(int & i1, int & i2) -/*********************************************************************** - * * - * Name: BooleanProcessor::divideEdge Date: 24.01.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Unify the nodes and divide edge on two parts by the node. * - * * - ***********************************************************************/ -{ - int iedges[2]; - iedges[0] = nodes[i1].s; - iedges[1] = nodes[i2].s; - - // U N I F Y N O D E S - - if (i1 < i2) { i2 = i1; } - else if (i1 > i2) { i1 = i2; } - else { iedges[1] = 0; } - if (iedges[0] == iedges[1]) return; - - int ie1, ie2, inode = i1; - nodes[inode].s = 0; - for (int i=0; i<2; i++) { - - // F I N D C O R R E S P O N D I N G E D G E - - if ((ie1 = iedges[i]) == 0) continue; - ie2 = faces[edges[ie1].iface2].iedges[0]; - while (ie2 > 0) { - if (edges[ie2].i1 == edges[ie1].i2 && - edges[ie2].i2 == edges[ie1].i1) break; - ie2 = edges[ie2].inext; - } - - // D I V I D E E D G E S - - edges.push_back(edges[ie1]); - edges[ie1].inext = edges.size() - 1; - edges[ie1].i2 = inode; - edges.back().i1 = inode; - - edges.push_back(edges[ie2]); - edges[ie2].inext = edges.size() - 1; - edges[ie2].i2 = inode; - edges.back().i1 = inode; - } -} - -void BooleanProcessor::insertEdge(const ExtEdge & edge) -/*********************************************************************** - * * - * Name: BooleanProcessor::insertEdge Date: 24.01.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Insert edge to the list of new edges * - * * - ***********************************************************************/ -{ - int iface = edge.iface1; - edges.push_back(edge); - edges.back().inext = faces[iface].inew; - faces[iface].inew = edges.size() - 1; -} - -void BooleanProcessor::caseII(ExtEdge & edge1, ExtEdge & edge2) -/*********************************************************************** - * * - * Name: BooleanProcessor::caseII Date: 19.01.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Intersection/Intersection case * - * * - ***********************************************************************/ -{ - divideEdge(edge1.i1, edge2.i2); - divideEdge(edge1.i2, edge2.i1); - edge1.ivis = 1; - edge2.ivis = 1; - insertEdge(edge1); - insertEdge(edge2); -} - -void BooleanProcessor::caseIE(ExtEdge &, ExtEdge &) -/*********************************************************************** - * * - * Name: BooleanProcessor::caseIE Date: 19.01.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Intersection/Edge-touch case * - * * - ***********************************************************************/ -{ - m_processor_error = 1; - std::cout - << "BooleanProcessor::caseIE : unimplemented case" - << std::endl; -} - -void BooleanProcessor::caseEE(ExtEdge & , ExtEdge & ) -/*********************************************************************** - * * - * Name: BooleanProcessor::caseEE Date: 19.01.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Edge-touch/Edge-touch case * - * * - ***********************************************************************/ -{ - m_processor_error = 1; - std::cout - << "BooleanProcessor::caseEE : unimplemented case" - << std::endl; -} - -void BooleanProcessor::testFaceVsFace(int iface1, int iface2) -/*********************************************************************** - * * - * Name: BooleanProcessor::testFaceVsFace Date: 11.01.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Find result (an edge) of intersection of two faces * - * * - ***********************************************************************/ -{ - ExtEdge edge1, edge2; - int irep1, irep2; - - // M I N - M A X - - for (int i=0; i<3; i++) { - if (faces[iface1].rmin[i] > faces[iface2].rmax[i] + m_del) return; - if (faces[iface1].rmax[i] < faces[iface2].rmin[i] - m_del) return; - } - - // F A C E - 1 vs P L A N E - 2 - - edge1.iface1 = iface1; - edge1.iface2 = iface2; - irep1 = testFaceVsPlane(edge1); - if (irep1 == OUT_OF_PLANE || irep1 == ON_PLANE) { - removeJunkNodes(); - return; - } - - // F A C E - 2 vs P L A N E - 1 - - edge2.iface1 = iface2; - edge2.iface2 = iface1; - irep2 = testFaceVsPlane(edge2); - if (irep2 == OUT_OF_PLANE || irep2 == ON_PLANE) { - removeJunkNodes(); - return; - } - - // C H E C K F O R N O N P L A N A R F A C E - - if (irep1 == NON_PLANAR_FACE || irep2 == NON_PLANAR_FACE) { - removeJunkNodes(); - return; - } - - // F I N D I N T E R S E C T I O N P A R T - - if (testEdgeVsEdge(edge1, edge2) == 0) return; - - // C O N S I D E R D I F F E R E N T C A S E S - - if (irep1 == INTERSECTION && irep2 == INTERSECTION) caseII(edge1, edge2); - if (irep1 == INTERSECTION && irep2 == EDGE) caseIE(edge1, edge2); - if (irep1 == EDGE && irep2 == INTERSECTION) caseIE(edge2, edge1); - if (irep1 == EDGE && irep2 == EDGE) caseEE(edge1, edge2); - removeJunkNodes(); - -} - -void BooleanProcessor::invertNewEdges(int iface) -/*********************************************************************** - * * - * Name: BooleanProcessor::invertNewEdges Date: 04.02.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Invert direction of new edges * - * * - ***********************************************************************/ -{ - int iedge = faces[iface].inew; - while (iedge > 0) { - edges[iedge].invert(); - iedge = edges[iedge].inext; - } -} - -void BooleanProcessor::checkDoubleEdges(int) -/*********************************************************************** - * * - * Name: BooleanProcessor::checkDoubleEdges Date: 04.02.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Eliminate duplication of edges * - * * - ***********************************************************************/ -{ - -} - -void BooleanProcessor::assembleFace(int what, int iface) -/*********************************************************************** - * * - * Name: BooleanProcessor::assembleFace Date: 19.02.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Assemble face * - * * - ***********************************************************************/ -{ - // A S S E M B L E N E W F A C E - - int ihead; // head of the list of edges for new face - int icur; // current edge in the list - last edge inserted to the list - int *ilink; // pointer to the current link - int ifirst; // first node of a contour - int *i; // pointer to the index of the current edge in a loop - int ioldflag=0; // is set if an edge from iold has been taken - -#define INSERT_EDGE_TO_THE_LIST(A) \ -*ilink = A; ilink = &edges[A].inext; *ilink = 0 - - ilink = &ihead; - for(;;) { - if (faces[iface].inew == 0) break; - - // S T A R T N E W C O N T O U R - - icur = faces[iface].inew; - faces[iface].inew = edges[icur].inext; - INSERT_EDGE_TO_THE_LIST(icur); - ifirst = edges[icur].i1; - - // C O N S T R U C T T H E C O N T O U R - - for (;;) { - i = &faces[iface].inew; - while(*i > 0) { - if (edges[*i].i1 == edges[icur].i2) break; - i = &edges[*i].inext; - } - if (*i == 0) { - i = &faces[iface].iold; - while(*i > 0) { - if (edges[*i].i1 == edges[icur].i2) ioldflag = 1; - if (edges[*i].i1 == edges[icur].i2) break; - i = &edges[*i].inext; - } - } - if (*i > 0) { - icur = *i; - *i = edges[icur].inext; - INSERT_EDGE_TO_THE_LIST(icur); - if (edges[icur].i2 == ifirst) { break; } else { continue; } - }else{ - m_processor_error = 1; - std::cerr - << "BooleanProcessor::assembleFace(" << iface << ") : " - << "could not find next edge of the contour" - << std::endl; - faces[iface].inew = DEFECTIVE_FACE; - return; - } - } - } - - // C H E C K O R I G I N A L C O N T O U R - - int iedge; - iedge = faces[iface].iold; - if (what == 0 && ioldflag == 0 && iedge > 0) { - for (;;) { - if (edges[iedge].inext > 0) { - if (edges[iedge].i2 == edges[edges[iedge].inext].i1) { - iedge = edges[iedge].inext; - }else{ - break; - } - }else{ - if (edges[iedge].i2 == edges[faces[iface].iold].i1) { - edges[iedge].inext = ihead; // set new face - return; - }else{ - break; - } - } - } - } - - // M A R K U N S U I T A B L E N E I G H B O U R I N G F A C E S - - int iface2; - iedge = faces[iface].iold; - while(iedge > 0) { - iface2 = edges[iedge].iface2; - if (faces[iface2].inew == 0) faces[iface2].inew = UNSUITABLE_FACE; - iedge = edges[iedge].inext; - } - faces[iface].iold = ihead; // set new face -} - -void BooleanProcessor::assembleNewFaces(int what, int ihead) -/*********************************************************************** - * * - * Name: BooleanProcessor::assembleNewFaces Date: 30.01.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Assemble internal or external parts of faces * - * * - ***********************************************************************/ -{ - int iface = ihead; - while(iface > 0) { - if (faces[iface].inew > 0) { - if (what != 0) invertNewEdges(iface); - checkDoubleEdges(iface); - assembleFace(what, iface); - faces[iface].inew = - (faces[iface].iold == 0) ? UNSUITABLE_FACE : NEW_FACE; - } - iface = faces[iface].inext; - } -} - -void BooleanProcessor::initiateLists() -/*********************************************************************** - * * - * Name: BooleanProcessor::initiateLists Date: 28.02.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Initiate lists of faces. * - * * - ***********************************************************************/ -{ - int i, iface; - - // R E S E T L I S T S O F F A C E S - - m_result_faces.clean(); - m_suitable_faces.clean(); - m_unsuitable_faces.clean(); - m_unknown_faces.clean(); - - // I N I T I A T E T H E L I S T S - - iface = m_iout1; - while (iface > 0) { - i = iface; - iface = faces[i].inext; - if (m_operation == OP_INTERSECTION) { - m_unsuitable_faces.push_back(i); - faces[i].inew = UNSUITABLE_FACE; - }else{ - m_suitable_faces.push_back(i); - faces[i].inew = ORIGINAL_FACE; - } - } - iface = m_iout2; - while (iface > 0) { - i = iface; - iface = faces[i].inext; - if (m_operation == OP_UNION) { - m_suitable_faces.push_back(i); - faces[i].inew = ORIGINAL_FACE; - }else{ - m_unsuitable_faces.push_back(i); - faces[i].inew = UNSUITABLE_FACE; - } - } - iface = m_ifaces1; - while (iface > 0) { - i = iface; - iface = faces[i].inext; - switch(faces[i].inew) { - case UNKNOWN_FACE: - m_unknown_faces.push_back(i); - break; - case ORIGINAL_FACE: case NEW_FACE: - m_suitable_faces.push_back(i); - break; - case UNSUITABLE_FACE: - m_unsuitable_faces.push_back(i); - break; - default: - faces[i].iprev = 0; - faces[i].inext = 0; - break; - } - } - iface = m_ifaces2; - while (iface > 0) { - i = iface; - iface = faces[i].inext; - if (m_operation == OP_SUBTRACTION) faces[i].invert(); - switch(faces[i].inew) { - case UNKNOWN_FACE: - m_unknown_faces.push_back(i); - break; - case ORIGINAL_FACE: case NEW_FACE: - m_suitable_faces.push_back(i); - break; - case UNSUITABLE_FACE: - m_unsuitable_faces.push_back(i); - break; - default: - faces[i].iprev = 0; - faces[i].inext = 0; - break; - } - } - m_ifaces1 = m_ifaces2 = m_iout1 = m_iout2 = 0; -} - -void BooleanProcessor::assemblePolyhedra() -/*********************************************************************** - * * - * Name: BooleanProcessor::assemblePolyhedra() Date: 10.12.99 * - * Author: E.Chernyaev Revised: * - * * - * Function: Collect suitable faces and remove unsuitable ones. * - * * - ***********************************************************************/ -{ - int i, iedge, iface; - - // L O O P A L O N G S U I T A B L E F A C E S - - iface = m_suitable_faces.front(); - while(iface > 0) { - i = iface; - iedge = faces[i].iold; - while(iedge > 0) { - iface = edges[iedge].iface2; - if (faces[iface].inew == UNKNOWN_FACE) { - m_unknown_faces.remove(iface); - m_suitable_faces.push_back(iface); - faces[iface].inew = ORIGINAL_FACE; - } - iedge = edges[iedge].inext; - } - iface = faces[i].inext; - m_suitable_faces.remove(i); - m_result_faces.push_back(i); - } - if (m_unknown_faces.front() == 0) return; - - // L O O P A L O N G U N S U I T A B L E F A C E S - - iface = m_unsuitable_faces.front(); - while(iface > 0) { - i = iface; - iedge = faces[i].iold; - while(iedge > 0) { - iface = edges[iedge].iface2; - if (faces[iface].inew == UNKNOWN_FACE) { - m_unknown_faces.remove(iface); - m_unsuitable_faces.push_back(iface); - faces[iface].inew = UNSUITABLE_FACE; - } - iedge = edges[iedge].inext; - } - iface = faces[i].inext; - m_unsuitable_faces.remove(i); - } - - /* From S.Ponce - At last, there is a problem in the assemblePolyhedra method. At least, I - think it is there. The problem deals with boolean operations on solids, - when one of the two contains entirely the other one. It has no sense for - intersection and union but still has sense for subtraction. In this - case, faces from the inner solid are stored in the m_unknown_faces - FaceList. And an error occurs in the execute method. This may be correct - for intersection and union but in the case of subtraction, one should do - that in assemblePolyhedra : - */ - // Unknown faces are actually suitable face !!! - iface = m_unknown_faces.front(); - while(iface > 0) { - i = iface; - faces[i].inew = ORIGINAL_FACE; - iface = faces[i].inext; - m_unknown_faces.remove(i); - m_result_faces.push_back(i); - } - /* - Otherwise, the inner hole that the second solid was building in the - first one does not exist. I'm not very clear on what to do for unions - and intersections. I think this kind of situation should be detected and - one of the solid should simply be ignored. - */ - -} - -inline void -BooleanProcessor::findABC(double x1, double y1, double x2, double y2, - double &a, double &b, double &c) const -/*********************************************************************** - * * - * Name: BooleanProcessor::findABC Date: 07.03.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Find line equation Ax+By+C=0 * - * * - ***********************************************************************/ -{ - a = y1 - y2; - b = x2 - x1; - double inv_w = 1 / (fabs(a)+fabs(b)); - a *= inv_w; - b *= inv_w; - c = -(a*x2 + b*y2); -} - -int BooleanProcessor::checkDirection(double *x, double *y) const -/*********************************************************************** - * * - * Name: BooleanProcessor::checkDirection Date: 06.03.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Check direction of line 1-4 * - * * - ***********************************************************************/ -{ - double a1, b1, c1, a2, b2, c2, d1, d2; - - // T E S T L I N E 1 - 4 V S E X T E R N A L C O N T O U R - - findABC(x[0], y[0], x[1], y[1], a1, b1, c1); - findABC(x[1], y[1], x[2], y[2], a2, b2, c2); - d1 = a1*x[4] + b1*y[4] + c1; - d2 = a2*x[4] + b2*y[4] + c2; - if (d1 <= m_del && d2 <= m_del) return 1; - if (! (d1 > m_del && d2 > m_del)) { - if ( a1*x[2] + b1*y[2] + c1 >= -m_del) return 1; - } - - // T E S T L I N E 1 - 4 V S I N T E R N A L C O N T O U R - - findABC(x[3], y[3], x[4], y[4], a1, b1, c1); - findABC(x[4], y[4], x[5], y[5], a2, b2, c2); - d1 = a1*x[1] + b1*y[1] + c1; - d2 = a2*x[1] + b2*y[1] + c2; - if (d1 <= m_del && d2 <= m_del) return 1; - if (!(d1 > m_del && d2 > m_del)) { - if ( a1*x[5] + b1*y[5] + c1 >= -m_del) return 1; - } - return 0; -} - -int BooleanProcessor::checkIntersection(int ix, int iy, int i1, int i2) const -/*********************************************************************** - * * - * Name: BooleanProcessor::checkDirection Date: 06.03.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Check line i1-i2 on intersection with contours * - * * - ***********************************************************************/ -{ - // F I N D L I N E E Q U A T I O N - - double x1, y1, x2, y2, a1, b1, c1; - x1 = nodes[i1].v[ix]; - y1 = nodes[i1].v[iy]; - x2 = nodes[i2].v[ix]; - y2 = nodes[i2].v[iy]; - findABC(x1, y1, x2, y2, a1, b1, c1); - - // L O O P A L O N G E X T E R N A L C O N T O U R S - - int icontour, iedge, k1, k2; - double x3, y3, x4, y4, a2, b2, c2, d1, d2; - for(icontour=0; icontour<(int) m_external_contours.size(); icontour++) { - iedge = m_external_contours[icontour]; - while(iedge > 0) { - k1 = edges[iedge].i1; - k2 = edges[iedge].i2; - iedge = edges[iedge].inext; - if (k1 == i1 || k2 == i1) continue; - if (k1 == i2 || k2 == i2) continue; - x3 = nodes[k1].v[ix]; - y3 = nodes[k1].v[iy]; - x4 = nodes[k2].v[ix]; - y4 = nodes[k2].v[iy]; - d1 = a1*x3 + b1*y3 + c1; - d2 = a1*x4 + b1*y4 + c1; - if (d1 > m_del && d2 > m_del) continue; - if (d1 < -m_del && d2 < -m_del) continue; - - findABC(x3, y3, x4, y4, a2, b2, c2); - d1 = a2*x1 + b2*y1 + c2; - d2 = a2*x2 + b2*y2 + c2; - if (d1 > m_del && d2 > m_del) continue; - if (d1 < -m_del && d2 < -m_del) continue; - return 1; - } - } - - // L O O P A L O N G E X T E R N A L C O N T O U R S - - for(icontour=0; icontour<(int) m_internal_contours.size(); icontour++) { - iedge = m_internal_contours[icontour]; - while(iedge > 0) { - k1 = edges[iedge].i1; - k2 = edges[iedge].i2; - iedge = edges[iedge].inext; - if (k1 == i1 || k2 == i1) continue; - if (k1 == i2 || k2 == i2) continue; - x3 = nodes[k1].v[ix]; - y3 = nodes[k1].v[iy]; - x4 = nodes[k2].v[ix]; - y4 = nodes[k2].v[iy]; - d1 = a1*x3 + b1*y3 + c1; - d2 = a1*x4 + b1*y4 + c1; - if (d1 > m_del && d2 > m_del) continue; - if (d1 < -m_del && d2 < -m_del) continue; - - findABC(x3, y3, x4, y4, a2, b2, c2); - d1 = a2*x1 + b2*y1 + c2; - d2 = a2*x2 + b2*y2 + c2; - if (d1 > m_del && d2 > m_del) continue; - if (d1 < -m_del && d2 < -m_del) continue; - return 1; - } - } - return 0; -} - -void BooleanProcessor::mergeContours(int ix, int iy, int kext, int kint) -/*********************************************************************** - * * - * Name: BooleanProcessor::mergeContours Date: 06.03.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Attemp to merge internal contour with external one * - * * - ***********************************************************************/ -{ - int i1ext, i2ext, i1int, i2int, i, k[6]; - double x[6], y[6]; - - // L O O P A L O N G E X T E R N A L C O N T O U R - - i1ext = m_external_contours[kext]; - while (i1ext > 0) { - i2ext = edges[i1ext].inext; - if (i2ext == 0) i2ext = m_external_contours[kext]; - k[0] = edges[i1ext].i1; - k[1] = edges[i1ext].i2; - k[2] = edges[i2ext].i2; - for (i=0; i<3; i++) { - x[i] = nodes[k[i]].v[ix]; - y[i] = nodes[k[i]].v[iy]; - } - - // L O O P A L O N G I N T E R N A L C O N T O U R - - i1int = m_internal_contours[kint]; - while (i1int > 0) { - i2int = edges[i1int].inext; - if (i2int == 0) i2int = m_internal_contours[kint]; - k[3] = edges[i1int].i1; - k[4] = edges[i1int].i2; - k[5] = edges[i2int].i2; - for (i=3; i<6; i++) { - x[i] = nodes[k[i]].v[ix]; - y[i] = nodes[k[i]].v[iy]; - } - - // T E S T L I N E K1 - K4 - // I F O K T H E N M E R G E C O N T O U R S - - if (checkDirection(x, y) == 0) { - if (checkIntersection(ix, iy, k[1], k[4]) == 0) { - i = i1int; - for(;;) { - if (edges[i].inext == 0) { - edges[i].inext = m_internal_contours[kint]; - m_internal_contours[kint] = 0; - break; - }else{ - i = edges[i].inext; - } - } - i = edges[i1int].iface1; - edges.push_back(ExtEdge(k[1], k[4], i, -(edges.size()+1), -1)); - edges.back().inext = i2int; - edges.push_back(ExtEdge(k[4], k[1], i, -(edges.size()-1), -1)); - edges.back().inext = edges[i1ext].inext; - edges[i1ext].inext = edges.size()-2; - edges[i1int].inext = edges.size()-1; - return; - } - } - i1int = edges[i1int].inext; - } - i1ext = edges[i1ext].inext; - } -} - -int -BooleanProcessor::checkTriangle(int iedge1, int iedge2, int ix, int iy) const -/*********************************************************************** - * * - * Name: BooleanProcessor::checkTriangle Date: 08.03.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Check triangle for correctness * - * * - ***********************************************************************/ -{ - int k[3]; - double x[3], y[3]; - double a1, b1, c1; - - k[0] = edges[iedge1].i1; - k[1] = edges[iedge1].i2; - k[2] = edges[iedge2].i2; - for (int i=0; i<3; i++) { - x[i] = nodes[k[i]].v[ix]; - y[i] = nodes[k[i]].v[iy]; - } - - // C H E C K P R I N C I P A L C O R R E C T N E S S - - findABC(x[2], y[2], x[0], y[0], a1, b1, c1); - if (a1*x[1]+b1*y[1]+c1 <= 0.1*m_del) return 1; - - // C H E C K T H A T T H E R E I S N O P O I N T S I N S I D E - - int inode, iedge; - double a2, b2, c2, a3, b3, c3; - - findABC(x[0], y[0], x[1], y[1], a2, b2, c2); - findABC(x[1], y[1], x[2], y[2], a3, b3, c3); - iedge = iedge2; - for (;;) { - iedge = edges[iedge].inext; - if (edges[iedge].inext == iedge1) return 0; - inode = edges[iedge].i2; - if (inode == k[0]) continue; - if (inode == k[1]) continue; - if (inode == k[2]) continue; - x[1] = nodes[inode].v[ix]; - y[1] = nodes[inode].v[iy]; - if (a1*x[1]+b1*y[1]+c1 < -0.1*m_del) continue; - if (a2*x[1]+b2*y[1]+c2 < -0.1*m_del) continue; - if (a3*x[1]+b3*y[1]+c3 < -0.1*m_del) continue; - return 1; - } -} - -void BooleanProcessor::triangulateContour(int ix, int iy, int ihead) -/*********************************************************************** - * * - * Name: BooleanProcessor::triangulateContour Date: 06.03.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Triangulate external contour * - * * - ***********************************************************************/ -{ - - //std::cout << "Next Countour" << std::endl; - //int draw_flag = 0; - //if (draw_flag) draw_contour(5, 3, ihead); - - // C L O S E C O N T O U R - //GB : we do not want to use the pnext logic, the - //GB : below push_backs in edge list reshuffle - //GB : the addresses (crash on WIN32). - /*GB - int *pnext, nnode = 0; - pnext = &ihead; - for (;;) { - if (*pnext > 0) { - pnext = &edges[*pnext].inext; - nnode++; - }else{ - *pnext = ihead; - break; - } - } - GB*/ - int nnode = 1; - int ipnext = ihead; - for (;;) { - if (edges[ipnext].inext > 0) { - ipnext = edges[ipnext].inext; - nnode++; - }else{ - edges[ipnext].inext = ihead; - break; - } - } - - // L O O P A L O N G C O N T O U R - int iedge1, iedge2, iedge3, istart = 0; - for (;;) { - //GB iedge1 = *pnext; - iedge1 = edges[ipnext].inext; - iedge2 = edges[iedge1].inext; - if (istart == 0) { - istart = iedge1; - if (nnode <= 3) { - iedge3 = edges[iedge2].inext; - edges[iedge1].iface1 = faces.size(); - edges[iedge2].iface1 = faces.size(); - edges[iedge3].iface1 = faces.size(); - edges[iedge3].inext = 0; - faces.push_back(ExtFace()); - faces.back().iold = iedge1; - faces.back().inew = ORIGINAL_FACE; - - //if (draw_flag) draw_contour(4, 2, iedge1); - - break; - } - }else if (istart == iedge1) { - m_processor_error = 1; - std::cerr - << "BooleanProcessor::triangulateContour : " - << "could not generate a triangle (infinite loop)" - << std::endl; - break; - } - - // C H E C K C O R E C T N E S S O F T H E T R I A N G L E - - if (checkTriangle(iedge1,iedge2,ix,iy) != 0) { - //GB pnext = &edges[*pnext].inext; - ipnext = edges[ipnext].inext; //GB - continue; - } - - // M O D I F Y C O N T O U R - - int i1 = edges[iedge1].i1; - int i3 = edges[iedge2].i2; - int iface1 = edges[iedge1].iface1; - int iface2 = faces.size(); - - //GB *pnext = edges.size(); - edges[ipnext].inext = edges.size(); //GB - edges.push_back(ExtEdge(i1, i3, iface1, -(edges.size()+1), -1)); - edges.back().inext = edges[iedge2].inext; - - // A D D N E W T R I A N G L E T O T H E L I S T - - edges[iedge2].inext = edges.size(); - edges.push_back(ExtEdge(i3, i1, iface2, -(edges.size()-1), -1)); - faces.push_back(ExtFace()); - faces.back().iold = iedge1; - faces.back().inew = ORIGINAL_FACE; - edges[iedge1].iface1 = iface2; - edges[iedge2].iface1 = iface2; - //GB pnext = &edges[*pnext].inext; - ipnext = edges[ipnext].inext; //GB - istart = 0; - nnode--; - - //if (draw_flag) draw_contour(4, 2, iedge1); - - } -} - -void BooleanProcessor::modifyReference(int iface, int i1, int i2, int iref) -/*********************************************************************** - * * - * Name: BooleanProcessor::modifyReference Date: 13.03.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Modify reference to the neighbouring face * - * * - ***********************************************************************/ -{ - int iedge = faces[iface].iold; - while (iedge > 0) { - if (edges[iedge].i1 == i2 && edges[iedge].i2 == i1) { - edges[iedge].iface2 = iref; - return; - } - iedge = edges[iedge].inext; - } - m_processor_error = 1; - std::cerr - << "BooleanProcessor::modifyReference : could not find the edge, " - << "iface=" << iface << ", i1,i2=" << i1 << "," << i2 << ", iref=" << iref - << std::endl; -} - -void BooleanProcessor::triangulateFace(int iface) -/*********************************************************************** - * * - * Name: BooleanProcessor::triangulateFace Date: 02.03.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Triangulation of an extended face * - * * - ***********************************************************************/ -{ - - // F I N D M A X C O M P O N E N T O F T H E N O R M A L - // S E T IX, IY, IZ - - HVNormal3D normal = faces[iface].plane.normal(); - int ix, iy, iz = 0; - if (ffabs(normal[1]) > ffabs(normal[iz])) iz = 1; - if (ffabs(normal[2]) > ffabs(normal[iz])) iz = 2; - if (normal[iz] > 0) { - ix = (iz+1)%3; iy = (ix+1)%3; - }else{ - iy = (iz+1)%3; ix = (iy+1)%3; - } - - // F I L L L I S T S O F C O N T O U R S - - m_external_contours.clear(); - m_internal_contours.clear(); - double z; - int i1, i2, ifirst, iedge, icontour = faces[iface].iold; - while (icontour > 0) { - iedge = icontour; - ifirst = edges[iedge].i1; - z = 0.0; - for(;;) { - if (iedge > 0) { - i1 = edges[iedge].i1; - i2 = edges[iedge].i2; - z += nodes[i1].v[ix]*nodes[i2].v[iy]-nodes[i2].v[ix]*nodes[i1].v[iy]; - if (ifirst != i2) { - iedge = edges[iedge].inext; - continue; - }else{ - if (z > m_del*m_del) { - m_external_contours.push_back(icontour); - }else if (z < -m_del*m_del) { - m_internal_contours.push_back(icontour); - }else{ - m_processor_error = 1; - std::cerr - << "BooleanProcessor::triangulateFace : too small contour" - << std::endl; - } - icontour = edges[iedge].inext; - edges[iedge].inext = 0; - break; - } - }else{ - m_processor_error = 1; - std::cerr - << "BooleanProcessor::triangulateFace : broken contour" - << std::endl; - icontour = 0; - break; - } - } - } - - // G E T R I D O F I N T E R N A L C O N T O U R S - - int kint, kext; - for (kint=0; kint < (int) m_internal_contours.size(); kint++) { - for (kext=0; kext < (int) m_external_contours.size(); kext++) { - mergeContours(ix, iy, kext, kint); - if (m_internal_contours[kint] == 0) break; - } - if (kext == (int) m_external_contours.size()) { - m_processor_error = 1; - std::cerr - << "BooleanProcessor::triangulateFace : " - << "could not merge internal contour " << kint - << std::endl; - } - } - - // T R I A N G U L A T E C O N T O U R S - - int nface = faces.size(); - for (kext=0; kext < (int) m_external_contours.size(); kext++) { - triangulateContour(ix, iy, m_external_contours[kext]); - } - faces[iface].inew = UNSUITABLE_FACE; - - // M O D I F Y R E F E R E N C E S - - for (iface=nface; iface<(int) faces.size(); iface++) { - iedge = faces[iface].iold; - while (iedge > 0) { - if (edges[iedge].iface1 != iface) { - m_processor_error = 1; - std::cerr - << "BooleanProcessor::triangulateFace : wrong reference to itself, " - << "iface=" << iface << ", iface1=" << edges[iedge].iface1 - << std::endl; - }else if (edges[iedge].iface2 > 0) { - modifyReference(edges[iedge].iface2, - edges[iedge].i1, edges[iedge].i2, iface); - }else if (edges[iedge].iface2 < 0) { - edges[iedge].iface2 = edges[-edges[iedge].iface2].iface1; - } - iedge = edges[iedge].inext; - } - } -} - -GeoPolyhedron BooleanProcessor::createPolyhedron() -/*********************************************************************** - * * - * Name: BooleanProcessor::createPolyhedron() Date: 14.03.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Create GeoPolyhedron. * - * * - ***********************************************************************/ -{ - unsigned int i, iedge, nnode = 0, nface = 0; - - // R E N U M E R A T E N O D E S A N D F A C E S - - for (i=1; i<nodes.size(); i++) nodes[i].s = 0; - - for (i=1; i<faces.size(); i++) { - if (faces[i].inew == ORIGINAL_FACE) { - faces[i].inew = ++nface; - iedge = faces[i].iold; - while (iedge > 0) { - nodes[edges[iedge].i1].s = 1; - iedge = edges[iedge].inext; - } - }else{ - faces[i].inew = 0; - } - } - - for (i=1; i<nodes.size(); i++) { - if (nodes[i].s == 1) nodes[i].s = ++nnode; - } - - // A L L O C A T E M E M O R Y - - ExtPolyhedron polyhedron; - if (nface == 0) return polyhedron; - polyhedron.AllocateMemory(nnode, nface); - - // S E T N O D E S - - for (i=1; i<nodes.size(); i++) { - if (nodes[i].s != 0) polyhedron.m_pV[nodes[i].s] = nodes[i].v; - } - - // S E T F A C E S - - int k, v[4], f[4]; - for (i=1; i<faces.size(); i++) { - if (faces[i].inew == 0) continue; - v[3] = f[3] = k = 0; - v[2] = f[2] = 0; - v[1] = f[1] = 0; - v[0] = f[0] = 0; - iedge = faces[i].iold; - while (iedge > 0) { - if (k > 3) { - std::cerr - << "BooleanProcessor::createPolyhedron : too many edges" - << std::endl; - break; - } - v[k] = nodes[edges[iedge].i1].s; - if (edges[iedge].ivis < 0) v[k] = -v[k]; - f[k] = faces[edges[iedge].iface2].inew; - iedge = edges[iedge].inext; - k++; - } - if (k < 3) { - std::cerr - << "BooleanProcessor::createPolyhedron : " - << "face has only " << k << " edges" - << std::endl; - } - polyhedron.m_pF[faces[i].inew] = - GeoFacet(v[0],f[0], v[1],f[1], v[2],f[2], v[3],f[3]); - } - return polyhedron; -} - -GeoPolyhedron BooleanProcessor::execute(int op, - const GeoPolyhedron & a, - const GeoPolyhedron & b) -/*********************************************************************** - * * - * Name: BooleanProcessor::execute Date: 10.12.99 * - * Author: E.Chernyaev Revised: * - * * - * Function: Execute boolean operation. * - * * - ***********************************************************************/ -{ - static int ishift = 0; - static double shift[8][3] = { - { 31, 23, 17}, - { -31, -23, -17}, - { -23, 17, 31}, - { 23, -17, -31}, - { -17, -31, 23}, - { 17, 31, -23}, - { 31, -23, 17}, - { -31, 23, -17} - }; - - // I N I T I A T E P R O C E S S O R - - m_processor_error = 0; - m_operation = op; - nodes.clear(); nodes.push_back(CRAZY_POINT); - edges.clear(); edges.push_back(ExtEdge()); - faces.clear(); faces.push_back(ExtFace()); - - // T A K E P O L Y H E D R A - - m_ifaces1 = faces.size(); takePolyhedron(a,0,0,0); - m_ifaces2 = faces.size(); takePolyhedron(b,0,0,0); - - if (m_processor_error) { // corrapted polyhedron - std::cerr - << "BooleanProcessor: corrapted input polyhedron" - << std::endl; - return GeoPolyhedron(); - } - if (m_ifaces1 == m_ifaces2) { // a is empty - switch (m_operation) { - case OP_UNION: - return b; - case OP_INTERSECTION: - std::cerr - << "BooleanProcessor: intersection with empty polyhedron" - << std::endl; - return GeoPolyhedron(); - case OP_SUBTRACTION: - std::cerr - << "BooleanProcessor: subtraction from empty polyhedron" - << std::endl; - return GeoPolyhedron(); - } - } - if (m_ifaces2 == (int) faces.size()) { // b is empty - switch (m_operation) { - case OP_UNION: - return a; - case OP_INTERSECTION: - std::cerr - << "BooleanProcessor: intersection with empty polyhedron" - << std::endl; - return GeoPolyhedron(); - case OP_SUBTRACTION: - return a; - } - } - - // S E T I N I T I A L M I N - M A X A N D T O L E R A N C E - - m_del = findMinMax(); - - // W O R K A R O U N D T O A V O I D I E A N D E E - - double ddxx = m_del*shift[ishift][0]; - double ddyy = m_del*shift[ishift][1]; - double ddzz = m_del*shift[ishift][2]; - ishift++; if (ishift == 8) ishift = 0; - - m_operation = op; - nodes.clear(); nodes.push_back(CRAZY_POINT); - edges.clear(); edges.push_back(ExtEdge()); - faces.clear(); faces.push_back(ExtFace()); - - m_ifaces1 = faces.size(); takePolyhedron(a,0,0,0); - m_ifaces2 = faces.size(); takePolyhedron(b,ddxx,ddyy,ddzz); - - m_del = findMinMax(); - - // P R E S E L E C T O U T S I D E F A C E S - - //G.Barrand : from LHCb/S.Ponce ; do not start again : - int ifa1, ifa2; - m_iout1 = m_iout2 = 0; - //G.Barrand for(;;) { - //G.Barrand ifa1 = m_iout1; - //G.Barrand ifa2 = m_iout2; - selectOutsideFaces(m_ifaces1, m_iout1); - selectOutsideFaces(m_ifaces2, m_iout2); - //if (m_iout1 == ifa1 && m_iout2 == ifa2) break; - findMinMax(); - //G.Barrand } - -#define PROCESSOR_ERROR \ -std::cerr << "BooleanProcessor: boolean operation failed" << std::endl;\ -return a; - - // F I N D N E W E D G E S - - if (m_ifaces1 != 0 && m_ifaces2 != 0 ) { - ifa1 = m_ifaces1; - while (ifa1 > 0) { - ifa2 = m_ifaces2; - while (ifa2 > 0) { - testFaceVsFace(ifa1, ifa2); - ifa2 = faces[ifa2].inext; - } - ifa1 = faces[ifa1].inext; - } - } - if (m_processor_error) { PROCESSOR_ERROR } - - // C O N S T R U C T N E W F A C E S - - assembleNewFaces((m_operation == OP_INTERSECTION) ? 1 : 0, m_ifaces1); - if (m_processor_error) { PROCESSOR_ERROR } - assembleNewFaces((m_operation == OP_UNION) ? 0 : 1, m_ifaces2); - if (m_processor_error) { PROCESSOR_ERROR } - - // A S S E M B L E S U I T A B L E F A C E S - - initiateLists(); - assemblePolyhedra(); - if (m_unknown_faces.front() != 0) { - m_processor_error = 1; - std::cerr - << "BooleanProcessor::execute : unknown faces !!!" - << std::endl; - } - if (m_processor_error) { PROCESSOR_ERROR } - - // T R I A N G U L A T E A C C E P T E D F A C E S - - ifa1 = m_result_faces.front(); - while (ifa1 > 0) { - ifa2 = ifa1; - ifa1 = faces[ifa2].inext; - if (faces[ifa2].inew == NEW_FACE) triangulateFace(ifa2); - if (m_processor_error) { PROCESSOR_ERROR } - } - - // C R E A T E P O L Y H E D R O N - - return createPolyhedron(); -} - - -//#include <cfortran.h> -//#include <higz.h> -//#include "zbuf.h" -//void BooleanProcessor::draw() -/*********************************************************************** - * * - * Name: BooleanProcessor::draw Date: 10.12.99 * - * Author: E.Chernyaev Revised: * - * * - * Function: Draw * - * * - ***********************************************************************/ -/* -{ - int II; - int icol, i1, i2, iedge, iface, ilist[4]; - float p1[3], p2[3]; - - ilist[0] = m_ifaces1; - ilist[1] = m_ifaces2; - ilist[2] = m_iout1; - ilist[3] = m_iout2; - - for (int i=0; i<4; i++) { - - if (i == 0) cout << "========= Ifaces_1" << endl; - if (i == 1) cout << "========= Ifaces_2" << endl; - if (i == 2) cout << "========= Iout_1" << endl; - if (i == 3) cout << "========= Iout_2" << endl; - - icol = i+1; - iface = ilist[i]; - while (iface > 0) { - - cout << "iface = " << iface << endl; - cout << "--- iold" << endl; - - iedge = faces[iface].iold; - icol = 2; - - while (iedge > 0) { - - cout << " iegde = " << iedge - << " i1,i2 =" << edges[iedge].i1 << "," << edges[iedge].i2 - << " iface1,iface2 = " - << edges[iedge].iface1 << "," << edges[iedge].iface2 - << endl; - - i1 = edges[iedge].i1; - p1[0] = nodes[i1].v[0]; - p1[1] = nodes[i1].v[1]; - p1[2] = nodes[i1].v[2]; - IHWTON(p1,p1); - i2 = edges[iedge].i2; - p2[0] = nodes[i2].v[0]; - p2[1] = nodes[i2].v[1]; - p2[2] = nodes[i2].v[2]; - IHWTON(p2,p2); -// icol = (edges[iedge].ivis > 0) ? 1 : 2; - IHZLIN(icol,p1[0],p1[1],p1[2], p2[0],p2[1],p2[2]); - iedge = edges[iedge].inext; - } - - cout << "--- inew" << endl; - - iedge = faces[iface].inew; - icol = 3; - - while (iedge > 0) { - - cout << " iegde = " << iedge - << " i1,i2 =" << edges[iedge].i1 << "," << edges[iedge].i2 - << " iface1,iface2 = " - << edges[iedge].iface1 << "," << edges[iedge].iface2 - << endl; - - i1 = edges[iedge].i1; - p1[0] = nodes[i1].v[0]; - p1[1] = nodes[i1].v[1]; - p1[2] = nodes[i1].v[2]; - IHWTON(p1,p1); - i2 = edges[iedge].i2; - p2[0] = nodes[i2].v[0]; - p2[1] = nodes[i2].v[1]; - p2[2] = nodes[i2].v[2]; - IHWTON(p2,p2); -// icol = (edges[iedge].ivis > 0) ? 1 : 2; - IHZLIN(icol,p1[0],p1[1],p1[2], p2[0],p2[1],p2[2]); - iedge = edges[iedge].inext; - } - iface = faces[iface].inext; - - IHZTOX(0,100,100); - ixupdwi(0); - cin >> II; - ixclrwi(); - IHZCLE(0); - - - } - } -} -*/ - -/* -//-------------------------------------------------------------------- -void -BooleanProcessor::draw_edge(int icol, int iedge) { - int i1, i2; - float p1[3], p2[3]; - - i1 = edges[iedge].i1; - p1[0] = nodes[i1].v[0]; - p1[1] = nodes[i1].v[1]; - p1[2] = nodes[i1].v[2]; - IHWTON(p1,p1); - i2 = edges[iedge].i2; - p2[0] = nodes[i2].v[0]; - p2[1] = nodes[i2].v[1]; - p2[2] = nodes[i2].v[2]; - IHWTON(p2,p2); - IHZLIN(icol,p1[0],p1[1],p1[2], p2[0],p2[1],p2[2]); -} - -//-------------------------------------------------------------------- -void -BooleanProcessor::draw_contour(int i1col, int i2col, int ihead) { - int iedge, icol; - iedge = ihead; - while (iedge > 0) { - icol = (edges[iedge].ivis > 0) ? i1col : i2col; - draw_edge(icol, iedge); - iedge = edges[iedge].inext; - } - - IHZTOX(0,100,100); - ixupdwi(0); - - int i; - std::cin >> i; -} -*/ diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/CellBinning.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/CellBinning.cxx deleted file mode 100755 index b146f30ddc6184e2fe1acdc75bc51703c733b816..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/CellBinning.cxx +++ /dev/null @@ -1,11 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/CellBinning.h" - -CellBinning::CellBinning (double startVal, double endVal, unsigned int nBins, unsigned int firstDivisionNumber) - :m_start(startVal),m_end(endVal),m_numDivisions(nBins),m_delta((endVal-startVal)/m_numDivisions),m_firstDivisionNumber(firstDivisionNumber) -{ -} - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/CellPartitioning.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/CellPartitioning.cxx deleted file mode 100644 index f2f2fe999de845b4c7bc28bd80d948139364981c..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/CellPartitioning.cxx +++ /dev/null @@ -1,35 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/CellPartitioning.h" - -CellPartitioning::CellPartitioning(unsigned int firstDivisionNumber): - m_firstDivisionNumber(firstDivisionNumber) -{ -} - -CellPartitioning::CellPartitioning(const CellPartitioning& right): - m_partition(right.m_partition), - m_firstDivisionNumber(right.m_firstDivisionNumber) -{ -} - -CellPartitioning::~CellPartitioning() -{ -} - -CellPartitioning& CellPartitioning::operator=(const CellPartitioning& right) -{ - if (this!=&right) { - m_partition=right.m_partition; - m_firstDivisionNumber = right.m_firstDivisionNumber; - } - return *this; -} - -void CellPartitioning::addValue(double xVal) -{ - m_partition.push_back(xVal); -} - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoAbsPositionInfo.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoAbsPositionInfo.cxx deleted file mode 100755 index ef9273c213876b81a84a920cb1119a173c943a88..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoAbsPositionInfo.cxx +++ /dev/null @@ -1,55 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoAbsPositionInfo.h" -#include "CLHEP/Geometry/Transform3D.h" -#include <memory> - -GeoAbsPositionInfo::GeoAbsPositionInfo() - : m_absTransform(nullptr), - m_defAbsTransform(nullptr) -{ -} - -GeoAbsPositionInfo::~GeoAbsPositionInfo() -{ - delete m_absTransform; - delete m_defAbsTransform; -} - -void GeoAbsPositionInfo::clearAbsTransform () -{ - delete m_absTransform; - m_absTransform = nullptr; -} - -void GeoAbsPositionInfo::clearDefAbsTransform () -{ - delete m_defAbsTransform; - m_defAbsTransform = nullptr; -} - -void GeoAbsPositionInfo::setAbsTransform (const HepGeom::Transform3D & xform) -{ - if (m_absTransform) - { - (*m_absTransform) = xform; - } - else - { - m_absTransform = new HepGeom::Transform3D (xform); - } -} - -void GeoAbsPositionInfo::setDefAbsTransform (const HepGeom::Transform3D & xform) -{ - if (m_defAbsTransform) - { - (*m_defAbsTransform) = xform; - } - else - { - m_defAbsTransform = new HepGeom::Transform3D (xform); - } -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoAccessVolAndSTAction.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoAccessVolAndSTAction.cxx deleted file mode 100755 index 10e05babdf017aa0178b51aff7611d45338ec80f..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoAccessVolAndSTAction.cxx +++ /dev/null @@ -1,191 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoAccessVolAndSTAction.h" - -#include "GeoModelKernel/GeoNameTag.h" -#include "GeoModelKernel/GeoSerialDenominator.h" -#include <string> - -GeoAccessVolAndSTAction::GeoAccessVolAndSTAction(unsigned int index) - : m_volume(0) - , m_serialTransformer(0) - , m_index(index) - , m_counter(0) - , m_nameTag(0) - , m_serialDenominator(0) - , m_idTag(0) - , m_serialDenomPosition(0) -{ - setDepthLimit(1); -} - -GeoAccessVolAndSTAction::~GeoAccessVolAndSTAction() -{ -} - -void GeoAccessVolAndSTAction::handleTransform(const GeoTransform *xform) -{ - m_pendingTransformList.push_back (xform); -} - -void GeoAccessVolAndSTAction::handlePhysVol(const GeoPhysVol *vol) -{ - // Return if we have not got any children - if(getPath()->getLength()-1 == 0) - return; - - // Otherwise check if the index equals the counter: - if(m_index == m_counter) { - m_volume = vol; - m_serialTransformer = 0; - unsigned int listSize = m_pendingTransformList.size(); - - if(listSize == 0) { - // do nothing.... - } - else if(listSize == 1) { - m_transform = m_pendingTransformList[0]->getTransform(nullptr); - m_defTransform = m_pendingTransformList[0]->getDefTransform(nullptr); - } - else { - for(unsigned int t=0; t<m_pendingTransformList.size(); t++) { - m_transform = m_transform * m_pendingTransformList[t]->getTransform(nullptr); - m_defTransform = m_defTransform * m_pendingTransformList[t]->getDefTransform(nullptr); - } - } - terminate (); - } - else { - m_idTag = 0; - m_nameTag = 0; - m_pendingTransformList.erase(m_pendingTransformList.begin(), - m_pendingTransformList.end()); - } - - m_counter++; -} - -void GeoAccessVolAndSTAction::handleFullPhysVol(const GeoFullPhysVol *vol) -{ - // Return if we have not got any children - if(getPath()->getLength()-1 == 0) - return; - - // Otherwise check if the index equals the counter: - if(m_index == m_counter) - { - m_volume = vol; - m_serialTransformer = 0; - - unsigned int listSize = m_pendingTransformList.size(); - if(listSize == 0) { - // do nothing.... - } - else if(listSize == 1) { - m_transform = m_pendingTransformList[0]->getTransform(nullptr); - m_defTransform = m_pendingTransformList[0]->getDefTransform(nullptr); - } - else { - for(unsigned int t = 0; t < m_pendingTransformList.size (); t++) { - m_transform = m_transform * m_pendingTransformList[t]->getTransform(nullptr); - m_defTransform = m_defTransform * m_pendingTransformList[t]->getDefTransform(nullptr); - } - } - terminate(); - } - else { - m_pendingTransformList.erase (m_pendingTransformList.begin(), - m_pendingTransformList.end()); - m_nameTag = 0; - m_idTag = 0; - } - - m_counter++; -} - -PVConstLink GeoAccessVolAndSTAction::getVolume() const -{ - return m_volume; -} - -const HepGeom::Transform3D & GeoAccessVolAndSTAction::getTransform() const -{ - return m_transform; -} - -const HepGeom::Transform3D & GeoAccessVolAndSTAction::getDefTransform() const -{ - return m_defTransform; -} - -const std::string & GeoAccessVolAndSTAction::getName() const -{ - if(m_name.empty()) { - if(m_nameTag) { - m_name = m_nameTag->getName(); - } - else if(m_serialDenominator) { - m_name = m_serialDenominator->getBaseName() + std::to_string(m_index-m_serialDenomPosition); - } - else { - m_name = "ANON"; - } - } - return m_name; -} - -void GeoAccessVolAndSTAction::handleNameTag(const GeoNameTag *nameTag) -{ - m_nameTag = nameTag; - m_serialDenominator = 0; - m_serialDenomPosition = 0; -} - -void GeoAccessVolAndSTAction::handleSerialDenominator(const GeoSerialDenominator *sD) -{ - m_serialDenominator = sD; - m_serialDenomPosition = m_counter; -} - -void GeoAccessVolAndSTAction::handleSerialTransformer(const GeoSerialTransformer *sT) -{ - m_pendingTransformList.erase(m_pendingTransformList.begin(), - m_pendingTransformList.end()); - - if(m_index == m_counter) { - m_volume = 0; - m_serialTransformer = sT; - terminate(); - } - else { - m_idTag = 0; - m_nameTag = 0; - m_counter++; - } -} - -const GeoSerialTransformer* GeoAccessVolAndSTAction::getSerialTransformer() const -{ - return m_serialTransformer; -} - -void GeoAccessVolAndSTAction::handleIdentifierTag(const GeoIdentifierTag *idTag) -{ - m_idTag = idTag; -} - -Query<unsigned int> GeoAccessVolAndSTAction::getId() const -{ - if(m_idTag) { - return Query<unsigned int>(m_idTag->getIdentifier()); - } - else { - return Query<unsigned int>(); - } -} - - - - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoAccessVolumeAction.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoAccessVolumeAction.cxx deleted file mode 100755 index 8fc6e79ca68952d68b85e85033c5a7660a93745c..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoAccessVolumeAction.cxx +++ /dev/null @@ -1,208 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoAccessVolumeAction.h" -#include "GeoModelKernel/GeoNameTag.h" -#include "GeoModelKernel/GeoSerialDenominator.h" -#include "GeoModelKernel/GeoSerialIdentifier.h" -#include <string> - -GeoAccessVolumeAction::GeoAccessVolumeAction(unsigned int Index, const GeoVAlignmentStore* store) - : m_index(Index) - , m_counter(0) - , m_nameTag(nullptr) - , m_serialDenominator(nullptr) - , m_idTag(nullptr) - , m_serialDenomPosition(0) - , m_serialIdentifier(nullptr) - , m_serialIdentPosition(0) - , m_alignStore(store) -{ - setDepthLimit (1); - m_pendingTransformList.reserve(1); -} - -GeoAccessVolumeAction::~GeoAccessVolumeAction() -{ -} - -void GeoAccessVolumeAction::handleTransform (const GeoTransform *xform) -{ - m_pendingTransformList.push_back (xform); -} - -void GeoAccessVolumeAction::handlePhysVol (const GeoPhysVol *vol) -{ - // - // Return if we have not got to any children: - // - if(getPath()->getLength()-1 == 0) - return; - // - // Otherwise check if the index equals the counter: - // - if(m_index == m_counter) { - m_volume = vol; - unsigned int listSize = m_pendingTransformList.size (); - if(listSize == 0) { - // do nothing.... - } - else if(listSize == 1) { - m_transform = m_pendingTransformList[0]->getTransform(m_alignStore); - m_defTransform = m_pendingTransformList[0]->getDefTransform(m_alignStore); - } - else { - for(unsigned int t = 0; t < m_pendingTransformList.size (); t++) { - m_transform = m_transform * m_pendingTransformList[t]->getTransform(m_alignStore); - m_defTransform = m_defTransform * m_pendingTransformList[t]->getDefTransform(m_alignStore); - } - } - terminate(); - } - else { - m_idTag = nullptr; - m_nameTag = nullptr; - m_pendingTransformList.erase (m_pendingTransformList.begin (), - m_pendingTransformList.end ()); - } - // - // Increment the counter: - // - m_counter++; -} - -void GeoAccessVolumeAction::handleFullPhysVol (const GeoFullPhysVol *vol) -{ - // - // Return if we have not got to any children: - // - if(getPath()->getLength()-1 == 0) - return; - // - // Otherwise check if the index equals the counter: - // - if(m_index == m_counter) { - m_volume = vol; - unsigned int listSize = m_pendingTransformList.size (); - if(listSize == 0) { - // do nothing.... - } - else if(listSize == 1) { - m_transform = m_pendingTransformList[0]->getTransform(m_alignStore); - m_defTransform = m_pendingTransformList[0]->getDefTransform(m_alignStore); - } - else { - for(unsigned int t = 0; t < m_pendingTransformList.size (); t++) { - m_transform = m_transform * m_pendingTransformList[t]->getTransform(m_alignStore); - m_defTransform = m_defTransform * m_pendingTransformList[t]->getDefTransform(m_alignStore); - } - } - terminate(); - } - else { - m_pendingTransformList.erase (m_pendingTransformList.begin (), - m_pendingTransformList.end ()); - m_nameTag = nullptr; - m_idTag = nullptr; - } - // - // Increment the counter: - // - m_counter++; -} - -PVConstLink GeoAccessVolumeAction::getVolume () const -{ - return m_volume; -} - -const HepGeom::Transform3D & GeoAccessVolumeAction::getTransform () const -{ - return m_transform; -} - -const HepGeom::Transform3D & GeoAccessVolumeAction::getDefTransform () const -{ - return m_defTransform; -} - -const std::string & GeoAccessVolumeAction::getName () const -{ - if(m_name.empty()) { - if(m_nameTag) { - m_name = m_nameTag->getName(); - } - else if(m_serialDenominator) { - m_name = m_serialDenominator->getBaseName() + std::to_string(m_index-m_serialDenomPosition); - } - else { - m_name = "ANON"; - } - } - return m_name; -} - -void GeoAccessVolumeAction::handleNameTag (const GeoNameTag *nameTag) -{ - m_nameTag = nameTag; - m_serialDenominator = nullptr; - m_serialDenomPosition = 0; -} - -void GeoAccessVolumeAction::handleSerialDenominator (const GeoSerialDenominator *sD) -{ - m_serialDenominator = sD; - m_serialDenomPosition = m_counter; -} - -void GeoAccessVolumeAction::handleSerialTransformer (const GeoSerialTransformer *sT) -{ - // - // Otherwise check if the index equals the counter: - // - if(m_index < m_counter + sT->getNCopies()) { - unsigned int copy = m_index - m_counter; - m_volume = sT->getVolume(); - for(unsigned int t = 0; t < m_pendingTransformList.size (); t++) { - m_transform = m_transform * m_pendingTransformList[t]->getTransform(m_alignStore); - m_defTransform = m_defTransform * m_pendingTransformList[t]->getDefTransform(m_alignStore); - } - m_transform = m_transform * sT->getTransform (copy); - m_defTransform = m_defTransform * sT->getTransform (copy); - m_counter += (copy + 1); - terminate (); - } - else { - m_idTag = nullptr; - m_nameTag = nullptr; - m_pendingTransformList.erase(m_pendingTransformList.begin (), - m_pendingTransformList.end ()); - m_counter += sT->getNCopies(); - } -} - -void GeoAccessVolumeAction::handleIdentifierTag (const GeoIdentifierTag *idTag) -{ - m_idTag = idTag; - m_serialIdentifier = nullptr; - m_serialIdentPosition = 0; -} - -Query<int> GeoAccessVolumeAction::getId () const -{ - Query<int> id; - if(m_idTag) { - id = Query<int>(m_idTag->getIdentifier()); - } - else if(m_serialIdentifier) { - id = Query<int>(m_index - m_serialIdentPosition + m_serialIdentifier->getBaseId()); - } - return id; -} - -void GeoAccessVolumeAction::handleSerialIdentifier(const GeoSerialIdentifier *sI) -{ - m_serialIdentifier = sI; - m_serialIdentPosition = m_counter; -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoAccessVolumeAction.h b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoAccessVolumeAction.h deleted file mode 100755 index 935329d2a3ad97f41a934ac4f9c0d9ce401a0b76..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoAccessVolumeAction.h +++ /dev/null @@ -1,114 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GeoAccessVolumeAction_h -#define GeoAccessVolumeAction_h 1 - -#include "GeoModelKernel/GeoNodeAction.h" -#include "CLHEP/Geometry/Transform3D.h" -#include <vector> - -class GeoVPhysVol; -class GeoTransform; -class GeoVAlignmentStore; - -/** - * @class GeoAccessVolumeAction - * - * @brief Accesses volumes, returning the ith volume and also its transformation relative to the parent. - */ - -class GeoAccessVolumeAction final : public GeoNodeAction -{ - public: - - GeoAccessVolumeAction (unsigned int Index, const GeoVAlignmentStore* store); - virtual ~GeoAccessVolumeAction() override; - - /// Handles a Transform. - virtual void handleTransform (const GeoTransform *xform) override; - - /// Handles a physical volume. - virtual void handlePhysVol (const GeoPhysVol *vol) override; - - /// Handles a physical volume. - virtual void handleFullPhysVol (const GeoFullPhysVol *vol) override; - - /// Returns the selected physical volume or nullptr if not found. - PVConstLink getVolume () const; - - /// Returns the transformation to the volume. - const HepGeom::Transform3D & getTransform () const; - - /// Returns the default ransformation to the volume. - const HepGeom::Transform3D & getDefTransform () const; - - /// Returns the name of the volume. From nametag or serial denominator. - const std::string & getName () const; - - /// Handles a Name Tag. - virtual void handleNameTag (const GeoNameTag *nameTag) override; - - /// Handles a Serial Denominator. - virtual void handleSerialDenominator (const GeoSerialDenominator *sD) override; - - /// Handles a Serial Transformer - virtual void handleSerialTransformer (const GeoSerialTransformer *sT) override; - - /// Handles an Identifier Tag. - virtual void handleIdentifierTag (const GeoIdentifierTag *idTag) override; - - /// Returns the id of the volume. From the identifier. - Query<int> getId () const; - - /// Handles an Serial Identifier - virtual void handleSerialIdentifier(const GeoSerialIdentifier *sI) override; - - private: - - GeoAccessVolumeAction(const GeoAccessVolumeAction &right); - GeoAccessVolumeAction & operator=(const GeoAccessVolumeAction &right); - - /// Returns a pointer to the ith physical volume under this one. - PVConstLink m_volume; - - /// The transformation to the ith volume. - HepGeom::Transform3D m_transform; - - /// The default transformation to the ith volume. - HepGeom::Transform3D m_defTransform; - - /// The volume which we are interested in seeking. - unsigned int m_index; - - /// The volume which we are interested in seeking. - unsigned int m_counter; - - /// The name of the volume. From a nametag or a serial denominator. - mutable std::string m_name; - - /// The identifier of the volume. From an identifier tag. - mutable Query<int> m_id; - - /// A pointer to a name tag. If the volume is named. - const GeoNameTag *m_nameTag; - - /// A pointer to a serial denominator. If one exists. - const GeoSerialDenominator *m_serialDenominator; - - /// A pointer to an identifier tag. If the volume is identified. - const GeoIdentifierTag *m_idTag; - - /// List of Pending Transformations. - std::vector<const GeoTransform *> m_pendingTransformList; - - /// Position of the serial denominator. Used to assign a numeric suffix to the name, eg BaseName+99 - unsigned int m_serialDenomPosition; - - const GeoSerialIdentifier *m_serialIdentifier; - unsigned int m_serialIdentPosition; - const GeoVAlignmentStore* m_alignStore; -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoAlignableTransform.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoAlignableTransform.cxx deleted file mode 100755 index ee1313c6521ee00ffffa4ae5ab9d16e7378fe3c0..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoAlignableTransform.cxx +++ /dev/null @@ -1,75 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoAlignableTransform.h" -#include "GeoModelKernel/GeoClearAbsPosAction.h" -#include "GeoModelKernel/GeoVAlignmentStore.h" -#include "GeoSelClearAbsPosAction.h" -#include <set> - -GeoAlignableTransform::GeoAlignableTransform (const HepGeom::Transform3D& transform) - : GeoTransform(transform) - , m_delta (nullptr) -{ -} - -GeoAlignableTransform::~GeoAlignableTransform() -{ - delete m_delta; -} - -HepGeom::Transform3D GeoAlignableTransform::getTransform(const GeoVAlignmentStore* store) const -{ - const HepGeom::Transform3D* delta = (store==nullptr ? m_delta : store->getDelta(this)); - return GeoTransform::getTransform(nullptr) * (delta==nullptr ? HepGeom::Transform3D() : *delta); -} - -void GeoAlignableTransform::setDelta (const HepGeom::Transform3D& delta, GeoVAlignmentStore* store) -{ - if(store==nullptr) { - if(m_delta && (*m_delta == delta)) return; - - if(m_delta) { - (*m_delta) = delta; - } - else { - m_delta = new HepGeom::Transform3D(delta); - } - - std::set<GeoGraphNode*> uniqueParents; - for(GeoGraphNode* parent : m_parentList) { - if(uniqueParents.find(parent)==uniqueParents.end()) { - GeoSelClearAbsPosAction cc(this); - parent->exec(&cc); - uniqueParents.insert(parent); - } - } - } // if(store==nullptr) - else { - store->setDelta(this,delta); - } -} - -void GeoAlignableTransform::clearDelta(GeoVAlignmentStore* store) -{ - // Does not make sence to clear deltas inside Alignment Store - if(store!=nullptr) return; - - delete m_delta; - m_delta = nullptr; - - std::set<GeoGraphNode*> uniqueParents; - for(GeoGraphNode* parent : m_parentList) { - if(uniqueParents.find(parent)==uniqueParents.end()) { - GeoSelClearAbsPosAction cc(this); - parent->exec (&cc); - uniqueParents.insert(parent); - } - } -} - -void GeoAlignableTransform::dockTo(GeoVPhysVol* parent) -{ - m_parentList.push_back (parent); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoBox.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoBox.cxx deleted file mode 100755 index 0c24a98defbefd063ed4d20f017b4b65c1df9240..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoBox.cxx +++ /dev/null @@ -1,41 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoBox.h" -#include "GeoModelKernel/GeoPolyhedron.h" -#include "GeoModelKernel/GeoShapeAction.h" - -const std::string GeoBox::s_classType = "Box"; -const ShapeType GeoBox::s_classTypeID = 0x10; - -GeoBox::GeoBox (double XHalfLength, double YHalfLength, double ZHalfLength) - : m_xHalfLength (XHalfLength) - , m_yHalfLength (YHalfLength) - , m_zHalfLength (ZHalfLength) -{ -} - -GeoBox::~GeoBox() -{ -} - -double GeoBox::volume () const -{ - return 8.0 * m_xHalfLength * m_yHalfLength * m_zHalfLength; -} - -const std::string & GeoBox::type () const -{ - return s_classType; -} - -ShapeType GeoBox::typeID () const -{ - return s_classTypeID; -} - -void GeoBox::exec (GeoShapeAction *action) const -{ - action->handleBox(this); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoClearAbsPosAction.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoClearAbsPosAction.cxx deleted file mode 100755 index 7383e12e342f6524a8a40629729f1e311935457a..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoClearAbsPosAction.cxx +++ /dev/null @@ -1,18 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoClearAbsPosAction.h" - -GeoClearAbsPosAction::GeoClearAbsPosAction() -{ -} - -GeoClearAbsPosAction::~GeoClearAbsPosAction() -{ -} - -void GeoClearAbsPosAction::handleFullPhysVol (const GeoFullPhysVol *vol) -{ - vol->clearPositionInfo (); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoCons.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoCons.cxx deleted file mode 100755 index 1082bfb271db4c122e57bf9ccd78e320976d51d4..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoCons.cxx +++ /dev/null @@ -1,46 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoCons.h" -#include "GeoModelKernel/GeoShapeAction.h" - -const std::string GeoCons::s_classType = "Cons"; -const ShapeType GeoCons::s_classTypeID = 0x11; - -GeoCons::GeoCons (double RMin1, double RMin2, double RMax1, double RMax2, double DZ, double SPhi, double DPhi) - : m_rMin1 (RMin1) - , m_rMin2 (RMin2) - , m_rMax1 (RMax1) - , m_rMax2 (RMax2) - , m_dZ (DZ) - , m_sPhi (SPhi) - , m_dPhi (DPhi) -{ -} - -GeoCons::~GeoCons() -{ -} - -double GeoCons::volume () const -{ - return (m_dPhi * (1./3)) * m_dZ * (m_rMax1 * m_rMax1 + m_rMax2 * m_rMax2 + m_rMax1 * m_rMax2 - - m_rMin1 * m_rMin1 - m_rMin2 * m_rMin2 - - m_rMin1 * m_rMin2); -} - -const std::string & GeoCons::type () const -{ - return s_classType; -} - -ShapeType GeoCons::typeID () const -{ - return s_classTypeID; -} - -void GeoCons::exec (GeoShapeAction *action) const -{ - action->handleCons(this); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoCountVolAction.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoCountVolAction.cxx deleted file mode 100755 index 1299bf0457591241698d5beae9416f3d6a4a9497..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoCountVolAction.cxx +++ /dev/null @@ -1,38 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoCountVolAction.h" - -GeoCountVolAction::GeoCountVolAction () - : m_count (0) -{ - setDepthLimit (1); -} - -GeoCountVolAction::~GeoCountVolAction() -{ -} - -void GeoCountVolAction::handlePhysVol (const GeoPhysVol *) -{ - // - // Do not count the top volume, this action counts only children! - // - if (getPath ()->getLength () > 1) - m_count++; -} - -void GeoCountVolAction::handleFullPhysVol (const GeoFullPhysVol *) -{ - // - // Do not count the top volume, this action counts only children! - // - if (getPath ()->getLength () > 1) - m_count++; -} - -void GeoCountVolAction::handleSerialTransformer (const GeoSerialTransformer *st) -{ - m_count += st->getNCopies (); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoCountVolAndSTAction.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoCountVolAndSTAction.cxx deleted file mode 100755 index 1bc7b55b01357eeb45cd8c2ee34e1c44e4f0c73f..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoCountVolAndSTAction.cxx +++ /dev/null @@ -1,43 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoCountVolAndSTAction.h" - -GeoCountVolAndSTAction::GeoCountVolAndSTAction() - :m_count (0) -{ - setDepthLimit (1); -} - -GeoCountVolAndSTAction::~GeoCountVolAndSTAction() -{ -} - -void GeoCountVolAndSTAction::handlePhysVol(const GeoPhysVol*) -{ - // - // Do not count the top volume, this action counts only children! - // - if (getPath ()->getLength () > 1) - m_count++; -} - -void GeoCountVolAndSTAction::handleFullPhysVol(const GeoFullPhysVol*) -{ - // - // Do not count the top volume, this action counts only children! - // - if (getPath ()->getLength () > 1) - m_count++; -} - -void GeoCountVolAndSTAction::handleSerialTransformer(const GeoSerialTransformer *) -{ - m_count ++; -} - - - - - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoCutVolAction.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoCutVolAction.cxx deleted file mode 100755 index 4382b6e6ff5ac3220a90816a41af75b0272f4cad..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoCutVolAction.cxx +++ /dev/null @@ -1,89 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoCutVolAction.h" -#include "GeoModelKernel/GeoPhysVol.h" -#include "GeoModelKernel/GeoIdentifierTag.h" -#include "GeoModelKernel/GeoNameTag.h" -#include "GeoModelKernel/GeoTransform.h" -#include "GeoModelKernel/GeoShapeShift.h" -#include "GeoModelKernel/GeoShapeSubtraction.h" - -GeoCutVolAction::GeoCutVolAction(const GeoShape& Shape, - const HepGeom::Transform3D& Transform) - : GeoVolumeAction (GeoVolumeAction::TOP_DOWN) - , m_physVol(0) - , m_shape(Shape) - , m_transform(Transform) - , m_copyStack(new std::stack<GeoPhysVol*>) -{ -} - -GeoCutVolAction::~GeoCutVolAction() -{ - while(m_copyStack->size()>0) - m_copyStack->pop(); - delete m_copyStack; -} - -void GeoCutVolAction::handleVPhysVol(const GeoVPhysVol *pv) -{ - // Determine path length: - // 0 - for the starting PV - // 1 - for the first level daughters etc. - unsigned int pathLen = this->getState()->getPath()->getLength(); - - // Get Logical Volume details - const GeoLogVol* lvOriginal = pv->getLogVol(); - const std::string& lvNameOriginal = lvOriginal->getName(); - const GeoMaterial* lvMatOriginal = lvOriginal->getMaterial(); - const GeoShape* lvShapeOriginal = lvOriginal->getShape(); - - if(pathLen==0) - { - // We are at the first PV. Create the resulting PV - const GeoShape& cutShape = (*lvShapeOriginal).subtract(m_shape << m_transform); - GeoLogVol* lvNew = new GeoLogVol(lvNameOriginal,&cutShape,lvMatOriginal); - - m_physVol = new GeoPhysVol(lvNew); - - // Save the new PV in the copy stack - m_copyStack->push(m_physVol); - } - else - { - // determine the parent PV in the copy tree - while(m_copyStack->size()>pathLen) - m_copyStack->pop(); - GeoPhysVol* copyParent = m_copyStack->top(); - - // Calculate cut transform to the reference frame of current PV - HepGeom::Transform3D cutTransform = (this->getState()->getAbsoluteTransform()).inverse()*m_transform; - - // Construct new PV - const GeoShape& cutShape = (*lvShapeOriginal).subtract(m_shape << cutTransform); - GeoLogVol* lvNew = new GeoLogVol(lvNameOriginal,&cutShape,lvMatOriginal); - GeoPhysVol* pvNew = new GeoPhysVol(lvNew); - - // Get its characteristics (name, id, transform to parent) - std::string pvName = this->getState()->getName(); - if(pvName != "") - copyParent->add(new GeoNameTag(pvName)); - - const Query<int> pvId = this->getState()->getId(); - if(pvId.isValid()) - copyParent->add(new GeoIdentifierTag(pvId)); - - copyParent->add(new GeoTransform(this->getState()->getTransform())); - copyParent->add(pvNew); - - // Save new PV in the copy stack - m_copyStack->push(pvNew); - } -} - -GeoPhysVol* GeoCutVolAction::getPV() -{ - return m_physVol; -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoElement.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoElement.cxx deleted file mode 100755 index 6f50aa3699c723dfc413ca40f8e35808db442785..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoElement.cxx +++ /dev/null @@ -1,49 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoElement.h" -#include "CLHEP/Units/PhysicalConstants.h" -#include <cmath> - -GeoElement::GeoElement (const std::string &Name, const std::string &Symbol, double Z, double A) - : m_name (Name) - , m_symbol (Symbol) - , m_z (Z) - , m_a (A) -{ -} - -GeoElement::~GeoElement() -{ -} - - -double GeoElement::getRadTsai() const -{ - // Compute Coulomb correction factor (Phys Rev. D50 3-1 (1994) page 1254) - const double k1 = 0.0083, k2 = 0.20206, k3 = 0.0020, k4 = 0.0369; - double az2 = (CLHEP::fine_structure_const*m_z)*(CLHEP::fine_structure_const*m_z); - double az4 = az2 * az2; - - double coulomb = (k1*az4 + k2 + 1./(1.+az2))*az2 - (k3*az4 + k4)*az4; - - // Compute Tsai's Expression for the Radiation Length (Phys Rev. D50 3-1 (1994) page 1254) - const double Lrad_light[] = {5.31, 4.79, 4.74, 4.71}; - const double Lprad_light[] = {6.144, 5.621, 5.805, 5.924}; - - const double logZ3 = std::log(m_z) * (1./3); - - double Lrad, Lprad; - int iz = (int)(m_z+0.5) - 1 ; - if (iz<=3) { - Lrad = Lrad_light[iz]; - Lprad = Lprad_light[iz]; - } else { - Lrad = std::log(184.15) - logZ3; - Lprad = std::log(1194.) - 2*logZ3; - } - - double radTsai = 4*CLHEP::alpha_rcl2*m_z*(m_z*(Lrad-coulomb) + Lprad); - return radTsai; -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoEllipticalTube.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoEllipticalTube.cxx deleted file mode 100755 index d0848e1111b67561cdefd7ad37205c3c2429c5fe..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoEllipticalTube.cxx +++ /dev/null @@ -1,48 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include <cmath> -#include "GeoModelKernel/GeoPolyhedrizeAction.h" -#include "GeoModelKernel/GeoShapeAction.h" - -#include "GeoModelKernel/GeoEllipticalTube.h" -const std::string GeoEllipticalTube::s_classType = "EllipticalTube"; -const ShapeType GeoEllipticalTube::s_classTypeID = 0x22; - - -GeoEllipticalTube::GeoEllipticalTube(double XHalfLength, double YHalfLength, double ZHalfLength) - : m_xHalfLength(XHalfLength) - , m_yHalfLength(YHalfLength) - , m_zHalfLength(ZHalfLength) -{ -} - - -GeoEllipticalTube::~GeoEllipticalTube() -{ -} - -double GeoEllipticalTube::volume () const -{ -#ifndef M_PI - double M_PI = acos (-1.0); -#endif - return 2 * M_PI * m_xHalfLength * m_yHalfLength * m_zHalfLength; -} - -const std::string & GeoEllipticalTube::type () const -{ - return s_classType; -} - -ShapeType GeoEllipticalTube::typeID () const -{ - return s_classTypeID; -} - -void GeoEllipticalTube::exec (GeoShapeAction *action) const -{ - action->handleEllipticalTube(this); -} - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoFacet.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoFacet.cxx deleted file mode 100644 index 697edf3c99253cc4196caf39c5f748d0a86cad3a..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoFacet.cxx +++ /dev/null @@ -1,47 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoFacet.h" - -// ___________________ Triangular Facet ________________________ -GeoTriangularFacet::GeoTriangularFacet(GeoFacetVertex v0 - ,GeoFacetVertex v1 - ,GeoFacetVertex v2 - ,GeoFacetVertexType type) - : GeoFacet() -{ - m_nVertices = 3; - m_vertexType = type; - m_vertices.reserve(3); - m_vertices[0] = v0; - m_vertices[1] = v1; - m_vertices[2] = v2; -} - - -GeoTriangularFacet::~GeoTriangularFacet() -{ -} - -// ___________________ Triangular Facet ________________________ -GeoQuadrangularFacet::GeoQuadrangularFacet(GeoFacetVertex v0 - ,GeoFacetVertex v1 - ,GeoFacetVertex v2 - ,GeoFacetVertex v3 - ,GeoFacetVertexType type) - : GeoFacet() -{ - m_nVertices = 4; - m_vertexType = type; - m_vertices.reserve(4); - m_vertices[0] = v0; - m_vertices[1] = v1; - m_vertices[2] = v2; - m_vertices[3] = v3; -} - - -GeoQuadrangularFacet::~GeoQuadrangularFacet() -{ -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoFullPhysVol.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoFullPhysVol.cxx deleted file mode 100755 index 57c6160ae618d14644a39933996596607ec7c66d..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoFullPhysVol.cxx +++ /dev/null @@ -1,253 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoFullPhysVol.h" -#include "GeoModelKernel/GeoTransform.h" -#include "GeoModelKernel/GeoNodeAction.h" -#include "GeoModelKernel/GeoCountVolAction.h" -#include "GeoModelKernel/GeoCountVolAndSTAction.h" -#include "GeoAccessVolumeAction.h" -#include <algorithm> - -GeoFullPhysVol::GeoFullPhysVol (const GeoLogVol* LogVol) - : GeoVFullPhysVol(LogVol) - , m_cloneOrigin(nullptr) -{ -} - -GeoFullPhysVol::~GeoFullPhysVol() -{ - for(const GeoGraphNode* daughter : m_daughters) daughter->unref(); - if(m_cloneOrigin && m_cloneOrigin!=this) m_cloneOrigin->unref(); -} - -void GeoFullPhysVol::add(GeoGraphNode* graphNode) -{ - if(m_cloneOrigin) throw std::runtime_error("Attempt to modify contents of a cloned FPV"); - - m_daughters.push_back(graphNode); - graphNode->ref(); - graphNode->dockTo(this); -} - -unsigned int GeoFullPhysVol::getNChildVols() const -{ - GeoCountVolAction cv; - exec(&cv); - return cv.getCount(); -} - -PVConstLink GeoFullPhysVol::getChildVol(unsigned int index) const -{ - GeoAccessVolumeAction av(index,nullptr); - exec(&av); - return av.getVolume(); -} - -HepGeom::Transform3D GeoFullPhysVol::getXToChildVol(unsigned int index, const GeoVAlignmentStore* store) const -{ - GeoAccessVolumeAction av(index,store); - exec(&av); - return av.getTransform(); -} - -HepGeom::Transform3D GeoFullPhysVol::getDefXToChildVol(unsigned int index, const GeoVAlignmentStore* store) const -{ - GeoAccessVolumeAction av(index,store); - exec(&av); - return av.getDefTransform(); -} - -void GeoFullPhysVol::exec(GeoNodeAction *action) const -{ - // - // Put this node on the head of the path: bb - // - action->getPath()->push(this); - if(action->getDepthLimit().isValid() - && action->getPath()->getLength()-1 > action->getDepthLimit()) { - action->getPath()->pop(); - return; - } - // - // Perform the action on this node: - // - action->handleFullPhysVol(this); - if(action->shouldTerminate()) { - action->getPath()->pop(); - return; - } - - // - // Pass this on to the children. - // - if(action->getDepthLimit().isValid() - && action->getPath()->getLength() > action->getDepthLimit()) { - } - else { - for(size_t c = 0; c<m_daughters.size(); c++) { - m_daughters[c]->exec(action); - if(action->shouldTerminate()) { - action->getPath()->pop(); - return; - } - } - } - - // - // Take this node back off the head of the path: - // - action->getPath()->pop(); -} - -std::string GeoFullPhysVol::getNameOfChildVol(unsigned int i) const -{ - GeoAccessVolumeAction av(i,nullptr); - exec(&av); - return av.getName(); -} - -Query<int> GeoFullPhysVol::getIdOfChildVol(unsigned int i) const -{ - GeoAccessVolumeAction av(i,nullptr); - exec(&av); - return av.getId (); -} - -unsigned int GeoFullPhysVol::getNChildVolAndST() const -{ - GeoCountVolAndSTAction cv; - exec(&cv); - return cv.getCount(); -} - -/// Meaning of the input parameter 'attached' -/// TRUE: all cloned volumes are meant to stay identical to their clone origin for the lifetime -/// further changes are permitted neither in the origin nor in the clone results -/// -/// FALSE: use this value if you expect further changes in either clone origing or its clone results -/// which don't need to be syncronized. The clone origin and its clone are identical ONLY by -/// the time of cloning, further identity is not guaranteed -GeoFullPhysVol* GeoFullPhysVol::clone(bool attached) -{ - GeoFullPhysVol* clone = new GeoFullPhysVol(this->getLogVol()); - for(unsigned int ind = 0; ind < this->m_daughters.size(); ind++) { - GeoGraphNode* daughter =(GeoGraphNode*) m_daughters[ind]; - clone->add(daughter); - } - - if(attached) { - if(this->m_cloneOrigin==0) { - this->m_cloneOrigin = this; - } - clone->m_cloneOrigin = this->m_cloneOrigin; - this->m_cloneOrigin->ref(); - } - - return clone; -} - -const GeoFullPhysVol* GeoFullPhysVol::cloneOrigin() const -{ - return m_cloneOrigin; -} - -/// Breaks the consistency of cloned volumes! -/// Use it only in Simulation jobs and -/// Don't call it until geometry has been completely translated to G4 -void GeoFullPhysVol::clear() -{ - for(size_t i=0; i<m_daughters.size(); i++) - m_daughters[i]->unref(); - m_daughters.clear(); -} - -HepGeom::Transform3D GeoFullPhysVol::getX(const GeoVAlignmentStore* store) const { - // - // Check we are not shared: - // - if (isShared()) throw std::runtime_error("Transform requested from shared volume"); - HepGeom::Transform3D xform; - // - // Get the address of the first graph node, from the parent: - // - const GeoGraphNode * const * fence = getParent()->getChildNode(0); - const GeoGraphNode * const * node1 = getParent()->findChildNode(this); - - for(const GeoGraphNode * const * current = node1 - 1; current>=fence; current--) { - - // If this happens, we are done, compute & return--------------------// - // // - if (dynamic_cast<const GeoVPhysVol *>(*current)) break; // - //-------------------------------------------------------------------// - - // If this happens, we are done, compute & return--------------------// - // // - if (dynamic_cast<const GeoSerialTransformer *>(*current)) break; // - //-------------------------------------------------------------------// - - const GeoTransform *xf = dynamic_cast<const GeoTransform *> (*current); - - //-------------------------------------------------------------------// - // If this happens, accumulate into transform // - if (xf) xform = xf->getTransform(store)*xform; // - //-------------------------------------------------------------------// - } - return xform; -} - -HepGeom::Transform3D GeoFullPhysVol::getDefX(const GeoVAlignmentStore* store) const { - // - // Check we are not shared: - // - if (isShared()) throw std::runtime_error("Transform requested from shared volume"); - HepGeom::Transform3D xform; - // - // Get the address of the first graph node, from the parent: - // - const GeoGraphNode * const * fence = getParent()->getChildNode(0); - const GeoGraphNode * const * node1 = getParent()->findChildNode(this); - - for(const GeoGraphNode * const * current = node1 - 1; current>=fence; current--) { - - // If this happens, we are done, compute & return--------------------// - // // - if (dynamic_cast<const GeoVPhysVol *>(*current)) break; // - //-------------------------------------------------------------------// - - // If this happens, we are done, compute & return--------------------// - // // - if (dynamic_cast<const GeoSerialTransformer *>(*current)) break; // - //-------------------------------------------------------------------// - - const GeoTransform *xf = dynamic_cast<const GeoTransform *> (*current); - - //-------------------------------------------------------------------// - // If this happens, accumulate into transform // - if (xf) xform = xf->getDefTransform(store)*xform; // - //-------------------------------------------------------------------// - } - return xform; - -} - -unsigned int GeoFullPhysVol::getNChildNodes() const -{ - return m_daughters.size(); -} - -const GeoGraphNode * const * GeoFullPhysVol::getChildNode(unsigned int i) const -{ - return &(m_daughters[i]); -} -const GeoGraphNode * const * GeoFullPhysVol::findChildNode(const GeoGraphNode * n) const -{ - std::vector<const GeoGraphNode *>::const_iterator i = std::find(m_daughters.begin(),m_daughters.end(),n); - if (i==m_daughters.end()) { - return nullptr; - } - else { - return &*i; - } -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoGenericTrap.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoGenericTrap.cxx deleted file mode 100644 index 260cf3513eb5b1ff0b4f59f9d09666151b21af3e..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoGenericTrap.cxx +++ /dev/null @@ -1,51 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoGenericTrap.h" -#include "GeoModelKernel/GeoShapeAction.h" - -const std::string GeoGenericTrap::s_classType = "GenericTrap"; -const ShapeType GeoGenericTrap::s_classTypeID = 0x23; - -GeoGenericTrap::GeoGenericTrap(double ZHalfLength, const GeoGenericTrapVertices& Vertices) - : m_zHalfLength(ZHalfLength) - , m_vertices(Vertices) -{ -} - -GeoGenericTrap::~GeoGenericTrap() -{ -} - -double GeoGenericTrap::volume() const -{ - // -- ToDo - return 0.; -} - -const std::string& GeoGenericTrap::type() const -{ - return s_classType; -} - -ShapeType GeoGenericTrap::typeID() const -{ - return s_classTypeID; -} - -void GeoGenericTrap::exec(GeoShapeAction *action) const -{ - action->handleGenericTrap(this); -} - -double GeoGenericTrap::getZHalfLength() const -{ - return m_zHalfLength; -} - -const GeoGenericTrapVertices& GeoGenericTrap::getVertices() const -{ - return m_vertices; -} - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoGraphNode.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoGraphNode.cxx deleted file mode 100755 index 49ab96dec4b489d53e169b619534ee66e98eb741..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoGraphNode.cxx +++ /dev/null @@ -1,23 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoGraphNode.h" -#include "GeoModelKernel/GeoNodeAction.h" - -GeoGraphNode::GeoGraphNode () -{ -} - -GeoGraphNode::~GeoGraphNode() -{ -} - -void GeoGraphNode::exec (GeoNodeAction *action) const -{ - action->handleNode (this); -} - -void GeoGraphNode::dockTo (GeoVPhysVol* ) -{ -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoIdentifierTag.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoIdentifierTag.cxx deleted file mode 100755 index fe6a9bf5fd6f958e503a3ab74625e40e53048cab..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoIdentifierTag.cxx +++ /dev/null @@ -1,20 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoIdentifierTag.h" -#include "GeoModelKernel/GeoNodeAction.h" - -GeoIdentifierTag::GeoIdentifierTag (int id) - : m_identifier(id) -{ -} - -GeoIdentifierTag::~GeoIdentifierTag() -{ -} - -void GeoIdentifierTag::exec (GeoNodeAction *action) const -{ - action->handleIdentifierTag (this); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoLogVol.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoLogVol.cxx deleted file mode 100755 index 4827936b28de423678f7cfb5ea6815fc52b61fab..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoLogVol.cxx +++ /dev/null @@ -1,21 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoLogVol.h" - -GeoLogVol::GeoLogVol (const std::string &Name, const GeoShape *Shape, const GeoMaterial *Material) - : m_name (Name) - , m_material (Material) - , m_shape (Shape) -{ - m_material->ref (); - m_shape->ref (); -} - -GeoLogVol::~GeoLogVol() -{ - m_material->unref (); - m_shape->unref (); -} - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoMaterial.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoMaterial.cxx deleted file mode 100755 index 3fbfe9cb191ebe66b8993342982e427879c4241c..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoMaterial.cxx +++ /dev/null @@ -1,413 +0,0 @@ -/* - Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/PhysicalConstants.h" -#include <stdexcept> -#include <cmath> -#include <numeric> -#include <cfloat> -#include <iostream> -#include <algorithm> -#include <iterator> - -// These constants are the ionization potentials, indexed by atomic -// number. They have been obtained from -// -// http://physics.nist.gov/PhysRefData/XrayMassCoef/tab1.html -// -// Which is the reference of the particle data book. Approximate -// semiempirical formulae are not accurate enough, so we take the -// tabular values. These are in electron-volts. - - -const double - GeoMaterial::s_ionizationPotential[93] = { - 0.0 * - CLHEP::eV, - 19.2 * - CLHEP::eV, - 41.8 * - CLHEP::eV, - 40.0 * - CLHEP::eV, - 63.7 * - CLHEP::eV, - 76.0 * - CLHEP::eV, - 78.0 * - CLHEP::eV, - 82.0 * - CLHEP::eV, - 95.0 * - CLHEP::eV, - 115.0 * - CLHEP::eV, - 137.0 * - CLHEP::eV, - 149.0 * - CLHEP::eV, - 156.0 * - CLHEP::eV, - 166.0 * - CLHEP::eV, - 173.0 * - CLHEP::eV, - 173.0 * - CLHEP::eV, - 180.0 * - CLHEP::eV, - 174.0 * - CLHEP::eV, - 188.0 * - CLHEP::eV, - 190.0 * - CLHEP::eV, - 191.0 * - CLHEP::eV, - 216.0 * - CLHEP::eV, - 233.0 * - CLHEP::eV, - 245.0 * - CLHEP::eV, - 257.0 * - CLHEP::eV, - 272.0 * - CLHEP::eV, - 286.0 * - CLHEP::eV, - 297.0 * - CLHEP::eV, - 311.0 * - CLHEP::eV, - 322.0 * - CLHEP::eV, - 330.0 * - CLHEP::eV, - 334.0 * - CLHEP::eV, - 350.0 * - CLHEP::eV, - 347.0 * - CLHEP::eV, - 348.0 * - CLHEP::eV, - 343.0 * - CLHEP::eV, - 352.0 * - CLHEP::eV, - 363.0 * - CLHEP::eV, - 366.0 * - CLHEP::eV, - 379.0 * - CLHEP::eV, - 393.0 * - CLHEP::eV, - 417.0 * - CLHEP::eV, - 424.0 * - CLHEP::eV, - 428.0 * - CLHEP::eV, - 441.0 * - CLHEP::eV, - 449.0 * - CLHEP::eV, - 470.0 * - CLHEP::eV, - 470.0 * - CLHEP::eV, - 469.0 * - CLHEP::eV, - 488.0 * - CLHEP::eV, - 488.0 * - CLHEP::eV, - 487.0 * - CLHEP::eV, - 485.0 * - CLHEP::eV, - 491.0 * - CLHEP::eV, - 482.0 * - CLHEP::eV, - 488.0 * - CLHEP::eV, - 491.0 * - CLHEP::eV, - 501.0 * - CLHEP::eV, - 523.0 * - CLHEP::eV, - 535.0 * - CLHEP::eV, - 546.0 * - CLHEP::eV, - 560.0 * - CLHEP::eV, - 574.0 * - CLHEP::eV, - 580.0 * - CLHEP::eV, - 591.0 * - CLHEP::eV, - 614.0 * - CLHEP::eV, - 628.0 * - CLHEP::eV, - 650.0 * - CLHEP::eV, - 658.0 * - CLHEP::eV, - 674.0 * - CLHEP::eV, - 684.0 * - CLHEP::eV, - 694.0 * - CLHEP::eV, - 705.0 * - CLHEP::eV, - 718.0 * - CLHEP::eV, - 727.0 * - CLHEP::eV, - 736.0 * - CLHEP::eV, - 746.0 * - CLHEP::eV, - 757.0 * - CLHEP::eV, - 790.0 * - CLHEP::eV, - 790.0 * - CLHEP::eV, - 800.0 * - CLHEP::eV, - 810.0 * - CLHEP::eV, - 823.0 * - CLHEP::eV, - 823.0 * - CLHEP::eV, - 830.0 * - CLHEP::eV, - 825.0 * - CLHEP::eV, - 794.0 * - CLHEP::eV, - 827.0 * - CLHEP::eV, - 826.0 * - CLHEP::eV, - 841.0 * - CLHEP::eV, - 847.0 * - CLHEP::eV, - 878.0 * - CLHEP::eV, - 890.0 * - CLHEP::eV -}; - -unsigned int GeoMaterial::s_lastID = 0; - -GeoMaterial::GeoMaterial (const std::string &Name, double Density) - : m_name(Name) - , m_density(Density) - , m_iD(s_lastID++) - , m_radLength(0) - , m_intLength(0) - , m_dedDxConst(0) - , m_deDxI0(0) - , m_locked(false) -{ -} - -GeoMaterial::~GeoMaterial() -{ - for (size_t i = 0; i < m_element.size (); i++) - { - m_element[i]->unref (); - } -} - -void GeoMaterial::add (const GeoElement* element, double fraction) -{ - // You can only add materials until you call "lock"... - if (!m_locked) - { - std::vector <const GeoElement *>::iterator e = std::find(m_element.begin(),m_element.end(),element); - if (e==m_element.end()) { - m_element.push_back (element); - m_fraction.push_back (fraction); - element->ref (); - } - else { - int n = e-m_element.begin(); - m_fraction[n]+=fraction; - } - } - else - { - throw std::out_of_range ("Element added after material locked"); - } -} - -void GeoMaterial::add (const GeoMaterial* material, double fraction) -{ - if (!m_locked) - { - for (size_t e = 0; e < material->getNumElements (); e++) - { - add(material->m_element[e],fraction * material->m_fraction[e]); - } - } - else - { - throw std::out_of_range ("Material added after material locked"); - } -} - -void GeoMaterial::lock () -{ - if(m_locked) return; - - m_locked = true; - - // -------------------------------------------// - // Now compute some quantities: // - // Source of these calculations is: // - // // - // For DeDx constants and X0: PDG. // - // For Lambda0: G4. // - // // - // For energy loss // - // // - const double C0 = 0.00307 * CLHEP::cm3 / CLHEP::gram; // - // // - // For nuclear absorption length. // - const double lambda0 = 35 * CLHEP::gram / CLHEP::cm2; // - // // - //--------------------------------------------// - - if (getNumElements () == 0) - { - throw std::out_of_range ("Attempt to lock a material with no elements"); - return; - } - - - //--------------------------------------------// - // // - // -------------------------------------------// - - double dEDxConstant = 0, dEDxI0 = 0, NILinv = 0.0, radInv = 0.0; - - { // ===============Renormalization================================ - double wSum=std::accumulate(m_fraction.begin(),m_fraction.end(),0.0); - if (fabs(wSum-1.0)>0.00001) { - std::cerr << "Warning in material " - << m_name - << ". Mass fractions sum to " - << wSum << "; renormalizing to 1.0" << std::endl; - } - double inv_wSum = 1. / wSum; - for (size_t e=0;e<getNumElements();e++) {m_fraction[e]*=inv_wSum;} - } // ============================================================== - - const double inv_lambda0 = 1. / lambda0; - for (size_t e = 0; e < getNumElements (); e++) - { - double w = getFraction (e); // Weight fraction. - double Z = m_element[e]->getZ (); // Atomic number - double A = m_element[e]->getA (); // Atomic mass. - double N = m_element[e]->getN (); // Number of nucleons. - double dovera = m_density ? m_density / A : 0; // don't crash if both are 0 - double n = m_fraction[e] * CLHEP::Avogadro * dovera; // Number density. - int iZ = (int) (m_element[e]->getZ () + 0.5) - 1; // Atomic number index - - dEDxConstant += w * C0 * dovera * Z; - // Make sure we don't overflow the table: - // the `Ether' special `element' has Z set to 500. - if (iZ >= 0 && iZ < (std::end(s_ionizationPotential)-std::begin(s_ionizationPotential))) - dEDxI0 += w * s_ionizationPotential[iZ]; - NILinv += n * pow (N, 2.0 / 3.0) * CLHEP::amu * inv_lambda0; - - double nAtomsPerVolume = A ? CLHEP::Avogadro*m_density*m_fraction[e]/A : 0.; - radInv += (nAtomsPerVolume*m_element[e]->getRadTsai()); - } - m_dedDxConst = dEDxConstant; - m_deDxI0 = dEDxI0 ; - m_intLength = NILinv ? 1.0 / NILinv : 0; - m_radLength = radInv ? 1.0 / radInv : 0; -} - -double GeoMaterial::getDeDxConstant () const -{ - if (!m_locked) - throw std::out_of_range ("Material accessed before lock"); - return m_dedDxConst; -} - -double GeoMaterial::getDeDxI0 () const -{ - if (!m_locked) - throw std::out_of_range ("Material accessed before lock"); - return m_deDxI0; -} - -double GeoMaterial::getDeDxMin () const -{ - //------------------------------------------------------------// - static const double ConstToMin = 11.528; // - //------------------------------------------------------------// - - if (!m_locked) - throw std::out_of_range ("Material accessed before lock"); - - // -----------------------------------------------------------// - // See: Paul Avery's notes on track fitting, CBX 92-39. // - // Good for typical materials // - // -----------------------------------------------------------// - - return m_dedDxConst * ConstToMin; - -} - -double GeoMaterial::getRadLength () const -{ - if (!m_locked) - throw std::out_of_range ("Material accessed before lock"); - return m_radLength; -} - -double GeoMaterial::getIntLength () const -{ - if (!m_locked) - throw std::out_of_range ("Material accessed before lock"); - return m_intLength; -} - -unsigned int GeoMaterial::getNumElements () const -{ - if (!m_locked) - throw std::out_of_range ("Material accessed before lock"); - return m_element.size (); -} - -const GeoElement* GeoMaterial::getElement (unsigned int i) const -{ - if (!m_locked) - throw std::out_of_range ("Material accessed before lock"); - return m_element[i]; -} - -double GeoMaterial::getFraction (int i) const -{ - if (!m_locked) - throw std::out_of_range ("Material accessed before lock"); - return m_fraction[i]; -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoNameTag.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoNameTag.cxx deleted file mode 100755 index 1dc26acea3e08f7c0bcc7516015291edb90dcdfc..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoNameTag.cxx +++ /dev/null @@ -1,21 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoNameTag.h" -#include "GeoModelKernel/GeoNodeAction.h" - -GeoNameTag::GeoNameTag (const std::string &BaseName) - : m_name (BaseName) -{ -} - - -GeoNameTag::~GeoNameTag() -{ -} - -void GeoNameTag::exec (GeoNodeAction *action) const -{ - action->handleNameTag (this); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoNodeAction.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoNodeAction.cxx deleted file mode 100755 index e4164026dad22e33deee9fa3d5a12bdc3ae80285..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoNodeAction.cxx +++ /dev/null @@ -1,82 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoNodeAction.h" - -GeoNodeAction::GeoNodeAction() - : m_terminate (false) -{ -} - -GeoNodeAction::~GeoNodeAction() -{ -} - -void GeoNodeAction::handleNode (const GeoGraphNode *) -{ - // Do nothing... -} - -void GeoNodeAction::handleTransform (const GeoTransform *) -{ - // Do nothing... -} - -void GeoNodeAction::handlePhysVol (const GeoPhysVol *) -{ -} - -void GeoNodeAction::handleFullPhysVol (const GeoFullPhysVol *) -{ -} - -GeoNodePath* GeoNodeAction::getPath () -{ - return &m_path; -} - -Query<unsigned int> GeoNodeAction::getDepthLimit () -{ - return m_depth; -} - -void GeoNodeAction::terminate () -{ - m_terminate = true; -} - -bool GeoNodeAction::shouldTerminate () const -{ - return m_terminate; -} - -void GeoNodeAction::handleNameTag (const GeoNameTag *) -{ -} - -void GeoNodeAction::handleSerialDenominator (const GeoSerialDenominator *) -{ -} - -void GeoNodeAction::setDepthLimit (unsigned int limit) -{ - m_depth = limit; -} - -void GeoNodeAction::clearDepthLimit () -{ - m_depth = Query < unsigned int >(); -} - -void GeoNodeAction::handleSerialTransformer (const GeoSerialTransformer *) -{ -} - -void GeoNodeAction::handleIdentifierTag (const GeoIdentifierTag *) -{ -} - -void GeoNodeAction::handleSerialIdentifier(const GeoSerialIdentifier *) -{ -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPVConstLink.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPVConstLink.cxx deleted file mode 100755 index e65e17fa92431293c34cdd05501928f758b63358..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPVConstLink.cxx +++ /dev/null @@ -1,79 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoPVConstLink.h" - -GeoPVConstLink::GeoPVConstLink() - : m_ptr (0) -{ -} - -GeoPVConstLink::GeoPVConstLink(const GeoPVConstLink &right) - : m_ptr (right.m_ptr) -{ -} - -GeoPVConstLink::GeoPVConstLink (const GeoVPhysVol *addr) - : m_ptr (const_cast < GeoVPhysVol * >(addr)) -{ -} - -GeoPVConstLink::~GeoPVConstLink() -{ -} - - -int GeoPVConstLink::operator==(const GeoPVConstLink &right) const -{ - return m_ptr == right.m_ptr; -} - -int GeoPVConstLink::operator!=(const GeoPVConstLink &right) const -{ - return m_ptr != right.m_ptr; -} - -int GeoPVConstLink::operator<(const GeoPVConstLink &right) const -{ - return m_ptr < right.m_ptr; -} - -int GeoPVConstLink::operator>(const GeoPVConstLink &right) const -{ - return m_ptr > right.m_ptr; -} - -int GeoPVConstLink::operator<=(const GeoPVConstLink &right) const -{ - return m_ptr <= right.m_ptr; -} - -int GeoPVConstLink::operator>=(const GeoPVConstLink &right) const -{ - return m_ptr >= right.m_ptr; -} - -const GeoVPhysVol & GeoPVConstLink::operator * () const -{ - return *m_ptr; -} - -const GeoVPhysVol * GeoPVConstLink::operator -> () const -{ - return m_ptr; -} - -GeoPVConstLink::operator bool () const -{ - return m_ptr; -} - -GeoPVConstLink& GeoPVConstLink::operator = (const GeoPVConstLink& right) -{ - if (this != &right) - { - m_ptr = right.m_ptr; - } - return *this; -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPVLink.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPVLink.cxx deleted file mode 100755 index 7bb581cddf7e716fffdf3f2a87f1bf535025f24d..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPVLink.cxx +++ /dev/null @@ -1,54 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoPVLink.h" - -GeoPVLink::GeoPVLink() - : GeoPVConstLink (0) -{ -} - -GeoPVLink::GeoPVLink(const GeoPVLink &right) - : GeoPVConstLink (right) -{ -} - -GeoPVLink::GeoPVLink (const GeoVPhysVol *addr) - : GeoPVConstLink (addr) -{ -} - -GeoPVLink::~GeoPVLink() -{ -} - -GeoVPhysVol & GeoPVLink::operator * () -{ - return *m_ptr; -} - -GeoVPhysVol * GeoPVLink::operator -> () -{ - return m_ptr; -} - -const GeoVPhysVol & GeoPVLink::operator * () const -{ - return *m_ptr; -} - -const GeoVPhysVol * GeoPVLink::operator -> () const -{ - return m_ptr; -} - -GeoPVLink& GeoPVLink::operator = (const GeoPVLink& right) -{ - if (&right != this) - { - m_ptr = right.m_ptr; - } - return *this; -} - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPara.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPara.cxx deleted file mode 100755 index 6ecaada7fbbc8c838a11c6fd65bf714e2719eb26..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPara.cxx +++ /dev/null @@ -1,111 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -//## begin module%1.5%.codegen_version preserve=yes -// Read the documentation to learn more about C++ code generator -// versioning. -//## end module%1.5%.codegen_version - -//## begin module%3CD26D7503D0.cm preserve=no -// %X% %Q% %Z% %W% -//## end module%3CD26D7503D0.cm - -//## begin module%3CD26D7503D0.cp preserve=no -//## end module%3CD26D7503D0.cp - -//## Module: GeoPara%3CD26D7503D0; Pseudo Package body -//## Source file: /home/atlas/GEO/GeoModelKernel/GeoPara.cxx - -//## begin module%3CD26D7503D0.additionalIncludes preserve=no -//## end module%3CD26D7503D0.additionalIncludes - -//## begin module%3CD26D7503D0.includes preserve=yes -#include <cmath> -#include "CLHEP/Geometry/Vector3D.h" -#include "GeoModelKernel/GeoShapeAction.h" -//## end module%3CD26D7503D0.includes - -// GeoPara -#include "GeoModelKernel/GeoPara.h" -//## begin module%3CD26D7503D0.additionalDeclarations preserve=yes -//## end module%3CD26D7503D0.additionalDeclarations - - -// Class GeoPara - -//## begin GeoPara::s_classType%3CD26D7503D1.attr preserve=no public: static const std::string {U} "Para" -const std::string GeoPara::s_classType = "Para"; -//## end GeoPara::s_classType%3CD26D7503D1.attr - -//## begin GeoPara::s_classTypeID%3CD26D7503D2.attr preserve=no public: static const ShapeType {U} 0x12 -const ShapeType GeoPara::s_classTypeID = 0x12; -//## end GeoPara::s_classTypeID%3CD26D7503D2.attr - -GeoPara::GeoPara (double XHalfLength, double YHalfLength, double ZHalfLength, double Alpha, double Theta, double Phi) - //## begin GeoPara::GeoPara%3CD5A8D5005A.hasinit preserve=no - //## end GeoPara::GeoPara%3CD5A8D5005A.hasinit - //## begin GeoPara::GeoPara%3CD5A8D5005A.initialization preserve=yes - : -m_xHalfLength (XHalfLength), -m_yHalfLength (YHalfLength), -m_zHalfLength (ZHalfLength), -m_theta (Theta), -m_alpha (Alpha), -m_phi (Phi) - //## end GeoPara::GeoPara%3CD5A8D5005A.initialization -{ - //## begin GeoPara::GeoPara%3CD5A8D5005A.body preserve=yes - //## end GeoPara::GeoPara%3CD5A8D5005A.body -} - - -GeoPara::~GeoPara() -{ - //## begin GeoPara::~GeoPara%3CD26D7503D0_dest.body preserve=yes - //## end GeoPara::~GeoPara%3CD26D7503D0_dest.body -} - - - -//## Other Operations (implementation) -double GeoPara::volume () const -{ - //## begin GeoPara::volume%3CD2A6DB00FC.body preserve=yes - HepGeom::Vector3D<double> - v0 (1, 0, 0), - v1 (sin (m_alpha), cos (m_alpha), 0), - v2 (sin (m_theta) * cos (m_phi), sin (m_theta) * sin (m_phi), cos (m_theta)); - double factor = (v0.cross (v1).dot (v2)); - - return 8.0 * factor * m_xHalfLength * m_yHalfLength * m_zHalfLength; - //## end GeoPara::volume%3CD2A6DB00FC.body -} - -const std::string & GeoPara::type () const -{ - //## begin GeoPara::type%3CD2A83C0208.body preserve=yes - return s_classType; - //## end GeoPara::type%3CD2A83C0208.body -} - -ShapeType GeoPara::typeID () const -{ - //## begin GeoPara::typeID%3CD2A83C0226.body preserve=yes - return s_classTypeID; - //## end GeoPara::typeID%3CD2A83C0226.body -} - -void GeoPara::exec (GeoShapeAction *action) const -{ - //## begin GeoPara::exec%3DB96A3602F5.body preserve=yes - action->handlePara(this); - //## end GeoPara::exec%3DB96A3602F5.body -} - -// Additional Declarations - //## begin GeoPara%3CD26D7503D0.declarations preserve=yes - //## end GeoPara%3CD26D7503D0.declarations - -//## begin module%3CD26D7503D0.epilog preserve=yes -//## end module%3CD26D7503D0.epilog diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPcon.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPcon.cxx deleted file mode 100755 index a7407b86c71b0855b93d08a1e94c330a6a52bca0..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPcon.cxx +++ /dev/null @@ -1,64 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoPcon.h" -#include "GeoModelKernel/GeoShapeAction.h" -#include <cmath> -#include <stdexcept> - -const std::string GeoPcon::s_classType = "Pcon"; -const ShapeType GeoPcon::s_classTypeID = 0x13; - -GeoPcon::GeoPcon (double SPhi, double DPhi) - : m_sPhi (SPhi) - , m_dPhi (DPhi) -{ -} - -GeoPcon::~GeoPcon() -{ -} - -double GeoPcon::volume () const -{ - if (!isValid ()) - throw std::runtime_error ("Volume requested for incomplete polycone"); - double v = 0; - for (size_t s = 0; s < getNPlanes () - 1; s++) - { - double fDz = fabs (getZPlane (s + 1) - getZPlane (s)) / 2.0; - double fRmin1 = getRMinPlane (s + 1); - double fRmin2 = getRMinPlane (s); - double fRmax1 = getRMaxPlane (s + 1); - double fRmax2 = getRMaxPlane (s); - v += - (m_dPhi * (1./3)) * fDz * (fRmax1 * fRmax1 + fRmax2 * fRmax2 + - fRmax1 * fRmax2 - fRmin1 * fRmin1 - - fRmin2 * fRmin2 - fRmin1 * fRmin2); - } - return v; -} - -const std::string & GeoPcon::type () const -{ - return s_classType; -} - -ShapeType GeoPcon::typeID () const -{ - return s_classTypeID; -} - -void GeoPcon::addPlane (double ZPlane, double RMinPlane, double RMaxPlane) -{ - m_zPlane.push_back (ZPlane); - m_rMinPlane.push_back (RMinPlane); - m_rMaxPlane.push_back (RMaxPlane); -} - -void GeoPcon::exec (GeoShapeAction *action) const -{ - action->handlePcon(this); -} - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPerfUtils.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPerfUtils.cxx deleted file mode 100755 index 57405a2ddd4cad35317ecf829c51dc48dcc5e589..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPerfUtils.cxx +++ /dev/null @@ -1,59 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoPerfUtils.h" -#include <unistd.h> -#include <sys/types.h> -#include <sstream> -#include <fstream> -int GeoPerfUtils::getMem() { - int memSize = 0; - { - pid_t pid = getpid(); - std::ostringstream procstream; - procstream << "/proc/" << pid << "/status"; - std::ifstream memfile(procstream.str().c_str()); - - - std::string line; - while ((memfile >> line)) { - if (line=="VmSize:") { - memfile >> line; - std::istringstream istream(line); - istream >> memSize; - } - } - } - return memSize; -} - -int GeoPerfUtils::getCpu() { - - pid_t pid = getpid(); - std::ostringstream procstream; - procstream << "/proc/" << pid << "/stat"; - std::ifstream memfile(procstream.str().c_str()); - - int nblancks=0; - int uTime = 0; - int sTime = 0; - - char line[256]; - while ((memfile >> line)) { - nblancks++; - - if (nblancks==13) { - memfile >> line; - std::istringstream istream(line); - istream >> uTime; - - memfile >> line; - std::istringstream istream1(line); - istream1 >> sTime; - - return uTime+sTime; - } - } - return 0; -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPgon.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPgon.cxx deleted file mode 100755 index 63d07db06c21560053fc2478f5a4d583535d8ccc..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPgon.cxx +++ /dev/null @@ -1,77 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoPgon.h" -#include "GeoModelKernel/GeoShapeAction.h" -#include <cmath> -#include <stdexcept> - -const std::string GeoPgon::s_classType = "Pgon"; -const ShapeType GeoPgon::s_classTypeID = 0x14; - -GeoPgon::GeoPgon (double SPhi, double DPhi, unsigned int NSides) - : m_sPhi (SPhi) - , m_dPhi (DPhi) - , m_nSides (NSides) -{ -} - -GeoPgon::~GeoPgon() -{ -} - -double GeoPgon::volume () const -{ - if (!isValid ()) - throw std::runtime_error ("Volume requested for incomplete polygon"); - double v = 0; - int sides = getNSides (); - double alpha = m_dPhi/sides; - double sinAlpha = sin(alpha); - - for (size_t s = 0; s < getNPlanes () - 1; s++) { - double z2 = getZPlane (s); - double z1 = getZPlane (s + 1); - double fRmin1 = getRMinPlane (s + 1); - double fRmin2 = getRMinPlane (s); - double fRmax1 = getRMaxPlane (s + 1); - double fRmax2 = getRMaxPlane (s); - - double b1 = (fRmax1 - fRmax2)/(z1 - z2); - double b2 = (fRmin1 - fRmin2)/(z1 - z2); - - double a1 = fRmax2 - b1 * z2; - double a2 = fRmin2 - b2 * z2; - - //v+=fabs((a1*a1-a2*a2)*(z1-z2) + (a1*b1-a2*b2)*(z1*z1-z2*z2) + (b1*b1-b2*b2)*(z1*z1*z1-z2*z2*z2)/3.); - // Equivalent which should be less sensitive to numerical precision errors: - v += fabs(z1 - z2) * ((a1 - a2) * (a1 + a2) + - (a1*b1 - a2*b2) * (z1 + z2) + - (b1 - b2) * (b1 + b2) * (z1*z1+z2*z2+z1*z2)*(1./3)); - } - v *= 0.5 * sides * sinAlpha; - return v; -} - -const std::string & GeoPgon::type () const -{ - return s_classType; -} - -ShapeType GeoPgon::typeID () const -{ - return s_classTypeID; -} - -void GeoPgon::addPlane (double ZPlane, double RMinPlane, double RMaxPlane) -{ - m_zPlane.push_back (ZPlane); - m_rMinPlane.push_back (RMinPlane); - m_rMaxPlane.push_back (RMaxPlane); -} - -void GeoPgon::exec (GeoShapeAction *action) const -{ - action->handlePgon(this); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPhysVol.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPhysVol.cxx deleted file mode 100755 index 5dd2f79ad20ff988696fcc7cd795c3dfd350100b..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPhysVol.cxx +++ /dev/null @@ -1,209 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoPhysVol.h" -#include "GeoModelKernel/GeoNodeAction.h" -#include "GeoModelKernel/GeoTransform.h" -#include "GeoModelKernel/GeoCountVolAction.h" -#include "GeoModelKernel/GeoCountVolAndSTAction.h" -#include "GeoAccessVolumeAction.h" -#include <algorithm> - -GeoPhysVol::GeoPhysVol(const GeoLogVol* LogVol) - : GeoVPhysVol(LogVol) -{ -} - - -GeoPhysVol::~GeoPhysVol() -{ - for(const GeoGraphNode* daughter : m_daughters) daughter->unref(); -} - -void GeoPhysVol::add(GeoGraphNode* graphNode) -{ - m_daughters.push_back(graphNode); - graphNode->ref(); - graphNode->dockTo(this); -} - -unsigned int GeoPhysVol::getNChildVols() const -{ - GeoCountVolAction cv; - exec(&cv); - return cv.getCount (); -} - -PVConstLink GeoPhysVol::getChildVol(unsigned int index) const -{ - GeoAccessVolumeAction av(index,nullptr); - exec(&av); - return av.getVolume(); -} - -HepGeom::Transform3D GeoPhysVol::getXToChildVol(unsigned int index - ,const GeoVAlignmentStore* store) const -{ - GeoAccessVolumeAction av(index,store); - exec(&av); - return av.getTransform(); -} - -HepGeom::Transform3D GeoPhysVol::getDefXToChildVol(unsigned int index - ,const GeoVAlignmentStore* store) const -{ - GeoAccessVolumeAction av(index,store); - exec(&av); - return av.getDefTransform(); -} - -void GeoPhysVol::exec(GeoNodeAction *action) const -{ - // - // Put this node on the head of the path: - // - action->getPath()->push(this); - if(action->getDepthLimit().isValid() - && action->getPath()->getLength() - 1 > action->getDepthLimit()) { - action->getPath ()->pop (); - return; - } - // - // Perform the action on this node: - // - action->handlePhysVol(this); - if(action->shouldTerminate()) { - action->getPath()->pop(); - return; - } - // - // Pass this on to the children. - // - if(action->getDepthLimit().isValid() - && action->getPath()->getLength() > action->getDepthLimit()) { - } - else { - for(size_t c = 0; c < m_daughters.size (); c++) { - m_daughters[c]->exec(action); - if(action->shouldTerminate()) { - action->getPath()->pop(); - return; - } - } - } - // - // Take this node back off the head of the path: - // - action->getPath()->pop(); -} - -std::string GeoPhysVol::getNameOfChildVol(unsigned int i) const -{ - GeoAccessVolumeAction av(i,nullptr); - exec(&av); - return av.getName(); -} - -Query<int> GeoPhysVol::getIdOfChildVol(unsigned int i) const -{ - GeoAccessVolumeAction av(i,nullptr); - exec(&av); - return av.getId(); -} - -unsigned int GeoPhysVol::getNChildVolAndST() const -{ - GeoCountVolAndSTAction cv; - exec(&cv); - return cv.getCount(); -} - -HepGeom::Transform3D GeoPhysVol::getX(const GeoVAlignmentStore* store) const { - // - // Check we are not shared: - // - if (isShared()) throw std::runtime_error("Transform requested from shared volume"); - HepGeom::Transform3D xform; - // - // Get the address of the first graph node, from the parent: - // - const GeoGraphNode * const * fence = getParent()->getChildNode(0); - const GeoGraphNode * const * node1 = getParent()->findChildNode(this); - - for(const GeoGraphNode * const * current = node1 - 1; current>=fence; current--) { - - // If this happens, we are done, compute & return--------------------// - // // - if(dynamic_cast<const GeoVPhysVol *>(*current)) break; // - //-------------------------------------------------------------------// - - // If this happens, we are done, compute & return--------------------// - // // - if(dynamic_cast<const GeoSerialTransformer *>(*current)) break; // - //-------------------------------------------------------------------// - - const GeoTransform *xf = dynamic_cast<const GeoTransform *> (*current); - - //-------------------------------------------------------------------// - // If this happens, accumulate into transform // - if (xf) xform = xf->getTransform(store)*xform; // - //-------------------------------------------------------------------// - } - return xform; -} - -HepGeom::Transform3D GeoPhysVol::getDefX(const GeoVAlignmentStore* store) const { - // - // Check we are not shared: - // - if (isShared()) throw std::runtime_error("Transform requested from shared volume"); - HepGeom::Transform3D xform; - // - // Get the address of the first graph node, from the parent: - // - const GeoGraphNode * const * fence = getParent()->getChildNode(0); - const GeoGraphNode * const * node1 = getParent()->findChildNode(this); - - for(const GeoGraphNode * const * current = node1 - 1; current>=fence; current--) { - - // If this happens, we are done, compute & return--------------------// - // // - if (dynamic_cast<const GeoVPhysVol *>(*current)) break; // - //-------------------------------------------------------------------// - - // If this happens, we are done, compute & return--------------------// - // // - if (dynamic_cast<const GeoSerialTransformer *>(*current)) break; // - //-------------------------------------------------------------------// - - const GeoTransform *xf = dynamic_cast<const GeoTransform *> (*current); - - //-------------------------------------------------------------------// - // If this happens, accumulate into transform // - if (xf) xform = xf->getDefTransform(store)*xform; // - //-------------------------------------------------------------------// - } - return xform; -} - -unsigned int GeoPhysVol::getNChildNodes() const -{ - return m_daughters.size(); -} - -const GeoGraphNode * const * GeoPhysVol::getChildNode(unsigned int i) const -{ - return &(m_daughters[i]); -} - -const GeoGraphNode * const * GeoPhysVol::findChildNode(const GeoGraphNode * n) const -{ - std::vector<const GeoGraphNode *>::const_iterator i = std::find(m_daughters.begin(),m_daughters.end(),n); - if (i==m_daughters.end()) { - return nullptr; - } - else { - return &*i; - } -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPolyhedrizeAction.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPolyhedrizeAction.cxx deleted file mode 100755 index 68c4b207e7523004e9a25d8eb5d59f2d90f26d6f..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPolyhedrizeAction.cxx +++ /dev/null @@ -1,169 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoPolyhedrizeAction.h" -#include "GeoModelKernel/GeoPolyhedron.h" -#include "GeoModelKernel/GeoShapeShift.h" -#include "GeoModelKernel/GeoShapeIntersection.h" -#include "GeoModelKernel/GeoShapeUnion.h" -#include "GeoModelKernel/GeoShapeSubtraction.h" -#include "GeoModelKernel/GeoBox.h" -#include "GeoModelKernel/GeoCons.h" -#include "GeoModelKernel/GeoPcon.h" -#include "GeoModelKernel/GeoPgon.h" -#include "GeoModelKernel/GeoTrap.h" -#include "GeoModelKernel/GeoTrd.h" -#include "GeoModelKernel/GeoTube.h" -#include "GeoModelKernel/GeoTubs.h" -#include "GeoModelKernel/GeoPara.h" - -GeoPolyhedrizeAction::GeoPolyhedrizeAction() - : m_polyhedron(nullptr) -{ - setDepthLimit(0); -} - -GeoPolyhedrizeAction::~GeoPolyhedrizeAction() -{ - delete m_polyhedron; -} - -void GeoPolyhedrizeAction::handleShift (const GeoShapeShift *shift) -{ - shift->getOp()->exec(this); - m_polyhedron->Transform (shift->getX().getRotation (), shift->getX().getTranslation()); -} - -void GeoPolyhedrizeAction::handleUnion (const GeoShapeUnion *unio) -{ - GeoPolyhedrizeAction auxA,auxB; - unio->getOpA()->exec(&auxA); - unio->getOpB()->exec(&auxB); - m_polyhedron = new GeoPolyhedron(auxA.getPolyhedron()->add(*auxB.getPolyhedron())); -} - -void GeoPolyhedrizeAction::handleIntersection (const GeoShapeIntersection *isect) -{ - GeoPolyhedrizeAction auxA,auxB; - isect->getOpA()->exec(&auxA); - isect->getOpB()->exec(&auxB); - m_polyhedron=new GeoPolyhedron(auxA.getPolyhedron()->intersect(*auxB.getPolyhedron())); -} - -void GeoPolyhedrizeAction::handleSubtraction (const GeoShapeSubtraction *subtract) -{ - GeoPolyhedrizeAction auxA,auxB; - subtract->getOpA()->exec(&auxA); - subtract->getOpB()->exec(&auxB); - m_polyhedron=new GeoPolyhedron(auxA.getPolyhedron()->subtract(*auxB.getPolyhedron())); -} - -void GeoPolyhedrizeAction::handleBox (const GeoBox *box) -{ - m_polyhedron=new GeoPolyhedronBox (box->getXHalfLength(), - box->getYHalfLength(), - box->getZHalfLength()); -} - -void GeoPolyhedrizeAction::handleCons (const GeoCons *cons) -{ - m_polyhedron = new GeoPolyhedronCons (cons->getRMin1(), - cons->getRMax1(), - cons->getRMin2(), - cons->getRMax2(), - cons->getDZ(), - cons->getSPhi(), - cons->getDPhi()); -} - -void GeoPolyhedrizeAction::handlePara (const GeoPara *para) -{ - m_polyhedron=new GeoPolyhedronPara(para->getXHalfLength(), - para->getYHalfLength(), - para->getZHalfLength(), - para->getAlpha(), - para->getTheta(), - para->getPhi()); -} - -void GeoPolyhedrizeAction::handlePcon (const GeoPcon *pcon) -{ - double *z = new double[pcon->getNPlanes ()]; - double *rmn = new double[pcon->getNPlanes ()]; - double *rmx = new double[pcon->getNPlanes ()]; - - for (unsigned int s = 0; s < pcon->getNPlanes (); s++) - { - z[s] = pcon->getZPlane (s); - rmn[s] = pcon->getRMinPlane (s); - rmx[s] = pcon->getRMaxPlane (s); - } - m_polyhedron = new GeoPolyhedronPcon (pcon->getSPhi(), pcon->getDPhi(), pcon->getNPlanes (), z, rmn, rmx); - - delete[]z; - delete[]rmn; - delete[]rmx; -} - -void GeoPolyhedrizeAction::handlePgon (const GeoPgon *pgon) -{ - double *z = new double[pgon->getNPlanes ()]; - double *rmn = new double[pgon->getNPlanes ()]; - double *rmx = new double[pgon->getNPlanes ()]; - - for (unsigned int s = 0; s < pgon->getNPlanes (); s++) - { - z[s] = pgon->getZPlane (s); - rmn[s] = pgon->getRMinPlane (s); - rmx[s] = pgon->getRMaxPlane (s); - } - m_polyhedron = new GeoPolyhedronPgon (pgon->getSPhi(), pgon->getDPhi(), pgon->getNSides(), pgon->getNPlanes (), z, rmn, rmx); - - delete[]z; - delete[]rmn; - delete[]rmx; -} - -void GeoPolyhedrizeAction::handleTrap (const GeoTrap *trap) -{ - m_polyhedron = new GeoPolyhedronTrap (trap->getZHalfLength(), - trap->getTheta(), - trap->getPhi(), - trap->getDydzn(), - trap->getDxdyndzn(), - trap->getDxdypdzn(), 0, - trap->getDydzp(), - trap->getDxdyndzp(), - trap->getDxdypdzp(),0); -} - -void GeoPolyhedrizeAction::handleTrd (const GeoTrd *trd) -{ - m_polyhedron = new GeoPolyhedronTrd2 (trd->getXHalfLength1(), - trd->getXHalfLength2(), - trd->getYHalfLength1(), - trd->getYHalfLength2(), - trd->getZHalfLength()); -} - -void GeoPolyhedrizeAction::handleTube (const GeoTube *tube) -{ - m_polyhedron = new GeoPolyhedronTube (tube->getRMin(), - tube->getRMax(), - tube->getZHalfLength()); -} - -void GeoPolyhedrizeAction::handleTubs (const GeoTubs *tubs) -{ - m_polyhedron= new GeoPolyhedronTubs (tubs->getRMin(), - tubs->getRMax(), - tubs->getZHalfLength(), - tubs->getSPhi(), - tubs->getDPhi()); -} - -const GeoPolyhedron * GeoPolyhedrizeAction::getPolyhedron () const -{ - return m_polyhedron; -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPolyhedron.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPolyhedron.cxx deleted file mode 100755 index 9a3deb083a40da4d1fa1b8bf12e5531b65138cae..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPolyhedron.cxx +++ /dev/null @@ -1,2171 +0,0 @@ - -#include "GeoModelKernel/GeoPolyhedron.h" - -#include <iostream> -#include <vector> - -#define perMillion 0.000001 -#define deg (M_PI/180.0) - -#include <float.h> //G.Barrand : to have DBL_EPSILON on Windows. - -// G.Barrand : introduce iabs to avoid a mess with cmath and some compiler. -inline int -iabs (int a) -{ - return a < 0 ? -a : a; -} -inline float -ffabs (float a) -{ - return a < 0.0f ? -a : a; -} - -//--------------------------------------------------------------------// -// JFB: // -// GeoPolyhedron was GeoPolyhedron, retrofitted to GeoModel // -// infrastructure: // -//--------------------------------------------------------------------// - -// -// ******************************************************************** -// * DISCLAIMER * -// * * -// * The following disclaimer summarizes all the specific disclaimers * -// * of contributors to this software. The specific disclaimers,which * -// * govern, are listed with their locations in: * -// * http://cern.ch/geant4/license * -// * * -// * Neither the authors of this software system, nor their employing * -// * institutes,nor the agencies providing financial support for this * -// * work make any representation or warranty, express or implied, * -// * regarding this software system or assume any liability for its * -// * use. * -// * * -// * This code implementation is the intellectual property of the * -// * GEANT4 collaboration. * -// * By copying, distributing or modifying the Program (or any work * -// * based on the Program) you indicate your acceptance of this * -// * statement, and all its terms. * -// ******************************************************************** -// -// -// -// -// G4 Polyhedron library -// -// History: -// 23.07.96 E.Chernyaev <Evgueni.Tcherniaev@cern.ch> - initial version -// -// 30.09.96 E.Chernyaev -// - added GetNextVertexIndex, GetVertex by Yasuhide Sawada -// - added GetNextUnitNormal, GetNextEdgeIndeces, GetNextEdge -// -// 15.12.96 E.Chernyaev -// - added GetNumberOfRotationSteps, RotateEdge, RotateAroundZ, SetReferences -// - rewritten G4PolyhedronCons; -// - added G4PolyhedronPara, ...Trap, ...Pgon, ...Pcon, ...Sphere, ...Torus -// -// 01.06.97 E.Chernyaev -// - modified RotateAroundZ, added SetSideFacets -// -// 19.03.00 E.Chernyaev -// - implemented boolean operations (add, subtract, intersect) on polyhedra; -// -// 25.05.01 E.Chernyaev -// - added GetSurfaceArea() and GetVolume(); -// - - -/*********************************************************************** - * * - * Name: GeoPolyhedron operator << Date: 09.05.96 * - * Author: E.Chernyaev (IHEP/Protvino) Revised: * - * * - * Function: Print contents of G4 polyhedron * - * * - ***********************************************************************/ -std::ostream & operator<< (std::ostream & ostr, const GeoFacet & facet) -{ - for (int k = 0; k < 4; k++) - { - ostr << " " << facet.m_edge[k].v << "/" << facet.m_edge[k].f; - } - return ostr; -} - -std::ostream & operator<< (std::ostream & ostr, const GeoPolyhedron & ph) -{ - ostr << std::endl; - ostr << "Nverteces=" << ph.m_nvert << ", Nfacets=" << ph.m_nface << std::endl; - int i; - for (i = 1; i <= ph.m_nvert; i++) - { - ostr << "xyz(" << i << ")=" - << ph.m_pV[i][0] << ' ' << ph.m_pV[i][1] << ' ' << ph.m_pV[i][2] - << std::endl; - } - for (i = 1; i <= ph.m_nface; i++) - { - ostr << "face(" << i << ")=" << ph.m_pF[i] << std::endl; - } - return ostr; -} - -GeoPolyhedron::GeoPolyhedron (const GeoPolyhedron & from) -/*********************************************************************** - * * - * Name: GeoPolyhedron copy constructor Date: 23.07.96 * - * Author: E.Chernyaev (IHEP/Protvino) Revised: * - * * - ***********************************************************************/ -{ - if (from.m_nvert > 0 && from.m_nface > 0) - { - m_nvert = from.m_nvert; - m_nface = from.m_nface; - m_pV = new HVPoint3D[m_nvert + 1]; - m_pF = new GeoFacet[m_nface + 1]; - int i; - for (i = 0; i <= m_nvert; i++) - m_pV[i] = from.m_pV[i]; - for (i = 0; i <= m_nface; i++) - m_pF[i] = from.m_pF[i]; - } - else - { - m_nvert = 0; - m_nface = 0; - m_pV = 0; - m_pF = 0; - } -} - -GeoPolyhedron & GeoPolyhedron::operator= (const GeoPolyhedron & from) -/*********************************************************************** - * * - * Name: GeoPolyhedron operator = Date: 23.07.96 * - * Author: E.Chernyaev (IHEP/Protvino) Revised: * - * * - * Function: Copy contents of one GEANT4 polyhedron to another * - * * - ***********************************************************************/ -{ - if (this == &from) - return *this; - delete[]m_pV; - delete[]m_pF; - if (from.m_nvert > 0 && from.m_nface > 0) - { - m_nvert = from.m_nvert; - m_nface = from.m_nface; - m_pV = new HVPoint3D[m_nvert + 1]; - m_pF = new GeoFacet[m_nface + 1]; - int - i; - for (i = 1; i <= m_nvert; i++) - m_pV[i] = from.m_pV[i]; - for (i = 1; i <= m_nface; i++) - m_pF[i] = from.m_pF[i]; - } - else - { - m_nvert = 0; - m_nface = 0; - m_pV = 0; - m_pF = 0; - } - return *this; -} - -int -GeoPolyhedron::FindNeighbour (int iFace, int iNode, int iOrder) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::FindNeighbour Date: 22.11.99 * - * Author: E.Chernyaev Revised: * - * * - * Function: Find neighbouring face * - * * - ***********************************************************************/ -{ - int i; - for (i = 0; i < 4; i++) - { - if (iNode == iabs (m_pF[iFace].m_edge[i].v)) - break; - } - if (i == 4) - { - std::cerr - << "GeoPolyhedron::FindNeighbour: face " << iFace - << " has no node " << iNode << std::endl; - return 0; - } - if (iOrder < 0) - { - if (--i < 0) - i = 3; - if (m_pF[iFace].m_edge[i].v == 0) - i = 2; - } - return (m_pF[iFace].m_edge[i].v > 0) ? 0 : m_pF[iFace].m_edge[i].f; -} - -HVNormal3D GeoPolyhedron::FindNodeNormal (int iFace, int iNode) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::FindNodeNormal Date: 22.11.99 * - * Author: E.Chernyaev Revised: * - * * - * Function: Find normal at given node * - * * - ***********************************************************************/ -{ - HVNormal3D - normal = - GetUnitNormal (iFace); - int - k = - iFace, - iOrder = - 1, - n = - 1; - - for (;;) - { - k = FindNeighbour (k, iNode, iOrder); - if (k == iFace) - break; - if (k > 0) - { - n++; - normal += GetUnitNormal (k); - } - else - { - if (iOrder < 0) - break; - k = iFace; - iOrder = -iOrder; - } - } - normal.setMag (1.0); - return normal; -} - -void -GeoPolyhedron::SetNumberOfRotationSteps (int n) -/*********************************************************************** - * * - * Name: GeoPolyhedron::SetNumberOfRotationSteps Date: 24.06.97 * - * Author: J.Allison (Manchester University) Revised: * - * * - * Function: Set number of steps for whole circle * - * * - ***********************************************************************/ -{ - const int nMin = 3; - if (n < nMin) - { - std::cerr - << "GeoPolyhedron::SetNumberOfRotationSteps: attempt to set the\n" - << "number of steps per circle < " << nMin << "; forced to " << nMin - << std::endl; - s_fNumberOfRotationSteps = nMin; - } - else - { - s_fNumberOfRotationSteps = n; - } -} - -void -GeoPolyhedron::AllocateMemory (int Nvert, int Nface) -/*********************************************************************** - * * - * Name: GeoPolyhedron::AllocateMemory Date: 19.06.96 * - * Author: E.Chernyaev (IHEP/Protvino) Revised: * - * * - * Function: Allocate memory for GEANT4 polyhedron * - * * - * Input: Nvert - number of nodes * - * Nface - number of faces * - * * - ***********************************************************************/ -{ - m_nvert = Nvert; - m_nface = Nface; - m_pV = new HVPoint3D[m_nvert + 1]; - m_pF = new GeoFacet[m_nface + 1]; -} - -void -GeoPolyhedron::CreatePrism () -/*********************************************************************** - * * - * Name: GeoPolyhedron::CreatePrism Date: 15.07.96 * - * Author: E.Chernyaev (IHEP/Protvino) Revised: * - * * - * Function: Set facets for a prism * - * * - ***********************************************************************/ -{ - enum - { DUMMY, BOTTOM, LEFT, BACK, RIGHT, FRONT, TOP }; - - m_pF[1] = GeoFacet (1, LEFT, 4, BACK, 3, RIGHT, 2, FRONT); - m_pF[2] = GeoFacet (5, TOP, 8, BACK, 4, BOTTOM, 1, FRONT); - m_pF[3] = GeoFacet (8, TOP, 7, RIGHT, 3, BOTTOM, 4, LEFT); - m_pF[4] = GeoFacet (7, TOP, 6, FRONT, 2, BOTTOM, 3, BACK); - m_pF[5] = GeoFacet (6, TOP, 5, LEFT, 1, BOTTOM, 2, RIGHT); - m_pF[6] = GeoFacet (5, FRONT, 6, RIGHT, 7, BACK, 8, LEFT); -} - -void -GeoPolyhedron::RotateEdge (int k1, int k2, double r1, double r2, - int v1, int v2, int vEdge, - bool ifWholeCircle, int ns, int &kface) -/*********************************************************************** - * * - * Name: GeoPolyhedron::RotateEdge Date: 05.12.96 * - * Author: E.Chernyaev (IHEP/Protvino) Revised: * - * * - * Function: Create set of facets by rotation of an edge around Z-axis * - * * - * Input: k1, k2 - end vertices of the edge * - * r1, r2 - radiuses of the end vertices * - * v1, v2 - visibility of edges produced by rotation of the end * - * vertices * - * vEdge - visibility of the edge * - * ifWholeCircle - is true in case of whole circle rotation * - * ns - number of discrete steps * - * r[] - r-coordinates * - * kface - current free cell in the m_pF array * - * * - ***********************************************************************/ -{ - if (r1 == 0. && r2 == 0) - return; - - int i; - int i1 = k1; - int i2 = k2; - int ii1 = ifWholeCircle ? i1 : i1 + ns; - int ii2 = ifWholeCircle ? i2 : i2 + ns; - int vv = ifWholeCircle ? vEdge : 1; - - if (ns == 1) - { - if (r1 == 0.) - { - m_pF[kface++] = GeoFacet (i1, 0, v2 * i2, 0, (i2 + 1), 0); - } - else if (r2 == 0.) - { - m_pF[kface++] = GeoFacet (i1, 0, i2, 0, v1 * (i1 + 1), 0); - } - else - { - m_pF[kface++] = - GeoFacet (i1, 0, v2 * i2, 0, (i2 + 1), 0, v1 * (i1 + 1), 0); - } - } - else - { - if (r1 == 0.) - { - m_pF[kface++] = - GeoFacet (vv * i1, 0, v2 * i2, 0, vEdge * (i2 + 1), 0); - for (i2++, i = 1; i < ns - 1; i2++, i++) - { - m_pF[kface++] = - GeoFacet (vEdge * i1, 0, v2 * i2, 0, vEdge * (i2 + 1), 0); - } - m_pF[kface++] = GeoFacet (vEdge * i1, 0, v2 * i2, 0, vv * ii2, 0); - } - else if (r2 == 0.) - { - m_pF[kface++] = - GeoFacet (vv * i1, 0, vEdge * i2, 0, v1 * (i1 + 1), 0); - for (i1++, i = 1; i < ns - 1; i1++, i++) - { - m_pF[kface++] = - GeoFacet (vEdge * i1, 0, vEdge * i2, 0, v1 * (i1 + 1), 0); - } - m_pF[kface++] = GeoFacet (vEdge * i1, 0, vv * i2, 0, v1 * ii1, 0); - } - else - { - m_pF[kface++] = - GeoFacet (vv * i1, 0, v2 * i2, 0, vEdge * (i2 + 1), 0, - v1 * (i1 + 1), 0); - for (i1++, i2++, i = 1; i < ns - 1; i1++, i2++, i++) - { - m_pF[kface++] = - GeoFacet (vEdge * i1, 0, v2 * i2, 0, vEdge * (i2 + 1), 0, - v1 * (i1 + 1), 0); - } - m_pF[kface++] = - GeoFacet (vEdge * i1, 0, v2 * i2, 0, vv * ii2, 0, v1 * ii1, 0); - } - } -} - -void -GeoPolyhedron::SetSideFacets (int ii[4], int vv[4], - int *kk, double *r, - double dphi, int ns, int &kface) -/*********************************************************************** - * * - * Name: GeoPolyhedron::SetSideFacets Date: 20.05.97 * - * Author: E.Chernyaev (IHEP/Protvino) Revised: * - * * - * Function: Set side facets for the case of incomplete rotation * - * * - * Input: ii[4] - indeces of original verteces * - * vv[4] - visibility of edges * - * kk[] - indeces of nodes * - * r[] - radiuses * - * dphi - delta phi * - * ns - number of discrete steps * - * kface - current free cell in the pF array * - * * - ***********************************************************************/ -{ - int k1, k2, k3, k4; - if (fabs (dphi - M_PI) < perMillion) - { // half a circle - for (int i = 0; i < 4; i++) - { - k1 = ii[i]; - k2 = (i == 3) ? ii[0] : ii[i + 1]; - if (r[k1] == 0. && r[k2] == 0.) - vv[i] = -1; - } - } - - if (ii[1] == ii[2]) - { - k1 = kk[ii[0]]; - k2 = kk[ii[2]]; - k3 = kk[ii[3]]; - m_pF[kface++] = GeoFacet (vv[0] * k1, 0, vv[2] * k2, 0, vv[3] * k3, 0); - if (r[ii[0]] != 0.) - k1 += ns; - if (r[ii[2]] != 0.) - k2 += ns; - if (r[ii[3]] != 0.) - k3 += ns; - m_pF[kface++] = GeoFacet (vv[2] * k3, 0, vv[0] * k2, 0, vv[3] * k1, 0); - } - else if (kk[ii[0]] == kk[ii[1]]) - { - k1 = kk[ii[0]]; - k2 = kk[ii[2]]; - k3 = kk[ii[3]]; - m_pF[kface++] = GeoFacet (vv[1] * k1, 0, vv[2] * k2, 0, vv[3] * k3, 0); - if (r[ii[0]] != 0.) - k1 += ns; - if (r[ii[2]] != 0.) - k2 += ns; - if (r[ii[3]] != 0.) - k3 += ns; - m_pF[kface++] = GeoFacet (vv[2] * k3, 0, vv[1] * k2, 0, vv[3] * k1, 0); - } - else if (kk[ii[2]] == kk[ii[3]]) - { - k1 = kk[ii[0]]; - k2 = kk[ii[1]]; - k3 = kk[ii[2]]; - m_pF[kface++] = GeoFacet (vv[0] * k1, 0, vv[1] * k2, 0, vv[3] * k3, 0); - if (r[ii[0]] != 0.) - k1 += ns; - if (r[ii[1]] != 0.) - k2 += ns; - if (r[ii[2]] != 0.) - k3 += ns; - m_pF[kface++] = GeoFacet (vv[1] * k3, 0, vv[0] * k2, 0, vv[3] * k1, 0); - } - else - { - k1 = kk[ii[0]]; - k2 = kk[ii[1]]; - k3 = kk[ii[2]]; - k4 = kk[ii[3]]; - m_pF[kface++] = - GeoFacet (vv[0] * k1, 0, vv[1] * k2, 0, vv[2] * k3, 0, vv[3] * k4, 0); - if (r[ii[0]] != 0.) - k1 += ns; - if (r[ii[1]] != 0.) - k2 += ns; - if (r[ii[2]] != 0.) - k3 += ns; - if (r[ii[3]] != 0.) - k4 += ns; - m_pF[kface++] = - GeoFacet (vv[2] * k4, 0, vv[1] * k3, 0, vv[0] * k2, 0, vv[3] * k1, 0); - } -} - -void -GeoPolyhedron::RotateAroundZ (int nstep, double phi, double dphi, - int np1, int np2, - const double *z, double *r, - int nodeVis, int edgeVis) -/*********************************************************************** - * * - * Name: GeoPolyhedron::RotateAroundZ Date: 27.11.96 * - * Author: E.Chernyaev (IHEP/Protvino) Revised: * - * * - * Function: Create GeoPolyhedron for a solid produced by rotation of * - * two polylines around Z-axis * - * * - * Input: nstep - number of discrete steps, if 0 then default * - * phi - starting phi angle * - * dphi - delta phi * - * np1 - number of points in external polyline * - * (must be negative in case of closed polyline) * - * np2 - number of points in internal polyline (may be 1) * - * z[] - z-coordinates (+z >>> -z for both polylines) * - * r[] - r-coordinates * - * nodeVis - how to Draw edges joing consecutive positions of * - * node during rotation * - * edgeVis - how to Draw edges * - * * - ***********************************************************************/ -{ - static double wholeCircle = 2 * M_PI; - - // S E T R O T A T I O N P A R A M E T E R S - - bool ifWholeCircle = (fabs (dphi - wholeCircle) < perMillion) ? - true : false; - double delPhi = ifWholeCircle ? wholeCircle : dphi; - int nSphi = (nstep > 0) ? - nstep : int (delPhi * GetNumberOfRotationSteps () / wholeCircle + .5); - if (nSphi == 0) - nSphi = 1; - int nVphi = ifWholeCircle ? nSphi : nSphi + 1; - bool ifClosed = np1 > 0 ? false : true; - - // C O U N T V E R T E C E S - - int absNp1 = iabs (np1); - int absNp2 = iabs (np2); - int i1beg = 0; - int i1end = absNp1 - 1; - int i2beg = absNp1; - int i2end = absNp1 + absNp2 - 1; - int i, j, k; - - for (i = i1beg; i <= i2end; i++) - { - if (fabs (r[i]) < perMillion) - r[i] = 0.; - } - - j = 0; // external nodes - for (i = i1beg; i <= i1end; i++) - { - j += (r[i] == 0.) ? 1 : nVphi; - } - - bool ifSide1 = false; // internal nodes - bool ifSide2 = false; - - if (r[i2beg] != r[i1beg] || z[i2beg] != z[i1beg]) - { - j += (r[i2beg] == 0.) ? 1 : nVphi; - ifSide1 = true; - } - - for (i = i2beg + 1; i < i2end; i++) - { - j += (r[i] == 0.) ? 1 : nVphi; - } - - if (r[i2end] != r[i1end] || z[i2end] != z[i1end]) - { - if (absNp2 > 1) - j += (r[i2end] == 0.) ? 1 : nVphi; - ifSide2 = true; - } - - // C O U N T F A C E S - - k = ifClosed ? absNp1 * nSphi : (absNp1 - 1) * nSphi; // external faces - - if (absNp2 > 1) - { // internal faces - for (i = i2beg; i < i2end; i++) - { - if (r[i] > 0. || r[i + 1] > 0.) - k += nSphi; - } - - if (ifClosed) - { - if (r[i2end] > 0. || r[i2beg] > 0.) - k += nSphi; - } - } - - if (!ifClosed) - { // side faces - if (ifSide1 && (r[i1beg] > 0. || r[i2beg] > 0.)) - k += nSphi; - if (ifSide2 && (r[i1end] > 0. || r[i2end] > 0.)) - k += nSphi; - } - - if (!ifWholeCircle) - { // phi_side faces - k += ifClosed ? 2 * absNp1 : 2 * (absNp1 - 1); - } - - // A L L O C A T E M E M O R Y - - AllocateMemory (j, k); - - // G E N E R A T E V E R T E C E S - - int *kk; - kk = new int[absNp1 + absNp2]; - - k = 1; - for (i = i1beg; i <= i1end; i++) - { - kk[i] = k; - if (r[i] == 0.) - { - m_pV[k++] = HVPoint3D (0, 0, z[i]); - } - else - { - k += nVphi; - } - } - - i = i2beg; - if (ifSide1) - { - kk[i] = k; - if (r[i] == 0.) - { - m_pV[k++] = HVPoint3D (0, 0, z[i]); - } - else - { - k += nVphi; - } - } - else - { - kk[i] = kk[i1beg]; - } - - for (i = i2beg + 1; i < i2end; i++) - { - kk[i] = k; - if (r[i] == 0.) - { - m_pV[k++] = HVPoint3D (0, 0, z[i]); - } - else - { - k += nVphi; - } - } - - if (absNp2 > 1) - { - i = i2end; - if (ifSide2) - { - kk[i] = k; - if (r[i] == 0.) - m_pV[k] = HVPoint3D (0, 0, z[i]); - } - else - { - kk[i] = kk[i1end]; - } - } - - double cosPhi, sinPhi; - - double fac = delPhi / nSphi; - for (j = 0; j < nVphi; j++) - { - cosPhi = cos (phi + j * fac); - sinPhi = sin (phi + j * fac); - for (i = i1beg; i <= i2end; i++) - { - if (r[i] != 0.) - m_pV[kk[i] + j] = HVPoint3D (r[i] * cosPhi, r[i] * sinPhi, z[i]); - } - } - - // G E N E R A T E E X T E R N A L F A C E S - - int v1, v2; - - k = 1; - v2 = ifClosed ? nodeVis : 1; - for (i = i1beg; i < i1end; i++) - { - v1 = v2; - if (!ifClosed && i == i1end - 1) - { - v2 = 1; - } - else - { - v2 = (r[i] == r[i + 1] && r[i + 1] == r[i + 2]) ? -1 : nodeVis; - } - RotateEdge (kk[i], kk[i + 1], r[i], r[i + 1], v1, v2, - edgeVis, ifWholeCircle, nSphi, k); - } - if (ifClosed) - { - RotateEdge (kk[i1end], kk[i1beg], r[i1end], r[i1beg], nodeVis, nodeVis, - edgeVis, ifWholeCircle, nSphi, k); - } - - // G E N E R A T E I N T E R N A L F A C E S - - if (absNp2 > 1) - { - v2 = ifClosed ? nodeVis : 1; - for (i = i2beg; i < i2end; i++) - { - v1 = v2; - if (!ifClosed && i == i2end - 1) - { - v2 = 1; - } - else - { - v2 = (r[i] == r[i + 1] && r[i + 1] == r[i + 2]) ? -1 : nodeVis; - } - RotateEdge (kk[i + 1], kk[i], r[i + 1], r[i], v2, v1, - edgeVis, ifWholeCircle, nSphi, k); - } - if (ifClosed) - { - RotateEdge (kk[i2beg], kk[i2end], r[i2beg], r[i2end], nodeVis, - nodeVis, edgeVis, ifWholeCircle, nSphi, k); - } - } - - // G E N E R A T E S I D E F A C E S - - if (!ifClosed) - { - if (ifSide1) - { - RotateEdge (kk[i2beg], kk[i1beg], r[i2beg], r[i1beg], 1, 1, - -1, ifWholeCircle, nSphi, k); - } - if (ifSide2) - { - RotateEdge (kk[i1end], kk[i2end], r[i1end], r[i2end], 1, 1, - -1, ifWholeCircle, nSphi, k); - } - } - - // G E N E R A T E S I D E F A C E S for the case of incomplete circle - - if (!ifWholeCircle) - { - - int ii[4], vv[4]; - - if (ifClosed) - { - for (i = i1beg; i <= i1end; i++) - { - ii[0] = i; - ii[3] = (i == i1end) ? i1beg : i + 1; - ii[1] = (absNp2 == 1) ? i2beg : ii[0] + absNp1; - ii[2] = (absNp2 == 1) ? i2beg : ii[3] + absNp1; - vv[0] = -1; - vv[1] = 1; - vv[2] = -1; - vv[3] = 1; - SetSideFacets (ii, vv, kk, r, dphi, nSphi, k); - } - } - else - { - for (i = i1beg; i < i1end; i++) - { - ii[0] = i; - ii[3] = i + 1; - ii[1] = (absNp2 == 1) ? i2beg : ii[0] + absNp1; - ii[2] = (absNp2 == 1) ? i2beg : ii[3] + absNp1; - vv[0] = (i == i1beg) ? 1 : -1; - vv[1] = 1; - vv[2] = (i == i1end - 1) ? 1 : -1; - vv[3] = 1; - SetSideFacets (ii, vv, kk, r, dphi, nSphi, k); - } - } - } - - delete[]kk; - - if (k - 1 != m_nface) - { - std::cerr - << "Polyhedron::RotateAroundZ: number of generated faces (" - << k - 1 << ") is not equal to the number of allocated faces (" - << m_nface << ")" << std::endl; - } -} - -void -GeoPolyhedron::SetReferences () -/*********************************************************************** - * * - * Name: GeoPolyhedron::SetReferences Date: 04.12.96 * - * Author: E.Chernyaev (IHEP/Protvino) Revised: * - * * - * Function: For each edge set reference to neighbouring facet * - * * - ***********************************************************************/ -{ - if (m_nface <= 0) - return; - - struct edgeListMember - { - edgeListMember *next; - int v2; - int iface; - int iedge; - } - *edgeList, *freeList, **headList; - - - // A L L O C A T E A N D I N I T I A T E L I S T S - - edgeList = new edgeListMember[2 * m_nface]; - headList = new edgeListMember *[m_nvert]; - - int i; - for (i = 0; i < m_nvert; i++) - { - headList[i] = 0; - } - freeList = edgeList; - for (i = 0; i < 2 * m_nface - 1; i++) - { - edgeList[i].next = &edgeList[i + 1]; - } - edgeList[2 * m_nface - 1].next = 0; - - // L O O P A L O N G E D G E S - - int iface, iedge, nedge, i1, i2, k1, k2; - edgeListMember *prev, *cur; - - for (iface = 1; iface <= m_nface; iface++) - { - nedge = (m_pF[iface].m_edge[3].v == 0) ? 3 : 4; - for (iedge = 0; iedge < nedge; iedge++) - { - i1 = iedge; - i2 = (iedge < nedge - 1) ? iedge + 1 : 0; - i1 = iabs (m_pF[iface].m_edge[i1].v); - i2 = iabs (m_pF[iface].m_edge[i2].v); - k1 = (i1 < i2) ? i1 : i2; // k1 = ::min(i1,i2); - k2 = (i1 > i2) ? i1 : i2; // k2 = ::max(i1,i2); - - // check head of the List corresponding to k1 - cur = headList[k1]; - if (cur == 0) - { - headList[k1] = freeList; - freeList = freeList->next; - cur = headList[k1]; - cur->next = 0; - cur->v2 = k2; - cur->iface = iface; - cur->iedge = iedge; - continue; - } - - if (cur->v2 == k2) - { - headList[k1] = cur->next; - cur->next = freeList; - freeList = cur; - m_pF[iface].m_edge[iedge].f = cur->iface; - m_pF[cur->iface].m_edge[cur->iedge].f = iface; - i1 = (m_pF[iface].m_edge[iedge].v < 0) ? -1 : 1; - i2 = (m_pF[cur->iface].m_edge[cur->iedge].v < 0) ? -1 : 1; - if (i1 != i2) - { - std::cerr - << "Polyhedron::SetReferences: different edge visibility " - << iface << "/" << iedge << "/" - << m_pF[iface].m_edge[iedge].v << " and " - << cur->iface << "/" << cur->iedge << "/" - << m_pF[cur->iface].m_edge[cur->iedge].v << std::endl; - } - continue; - } - - // check List itself - for (;;) - { - prev = cur; - cur = prev->next; - if (cur == 0) - { - prev->next = freeList; - freeList = freeList->next; - cur = prev->next; - cur->next = 0; - cur->v2 = k2; - cur->iface = iface; - cur->iedge = iedge; - break; - } - - if (cur->v2 == k2) - { - prev->next = cur->next; - cur->next = freeList; - freeList = cur; - m_pF[iface].m_edge[iedge].f = cur->iface; - m_pF[cur->iface].m_edge[cur->iedge].f = iface; - i1 = (m_pF[iface].m_edge[iedge].v < 0) ? -1 : 1; - i2 = (m_pF[cur->iface].m_edge[cur->iedge].v < 0) ? -1 : 1; - if (i1 != i2) - { - std::cerr - << - "Polyhedron::SetReferences: different edge visibility " - << iface << "/" << iedge << "/" << m_pF[iface]. - m_edge[iedge].v << " and " << cur->iface << "/" << cur-> - iedge << "/" << m_pF[cur->iface].m_edge[cur->iedge]. - v << std::endl; - } - break; - } - } - } - } - - // C H E C K T H A T A L L L I S T S A R E E M P T Y - - for (i = 0; i < m_nvert; i++) - { - if (headList[i] != 0) - { - std::cerr - << "Polyhedron::SetReferences: List " << i << " is not empty" - << std::endl; - } - } - - // F R E E M E M O R Y - - delete[]edgeList; - delete[]headList; -} - -void -GeoPolyhedron::InvertFacets () -/*********************************************************************** - * * - * Name: GeoPolyhedron::InvertFacets Date: 01.12.99 * - * Author: E.Chernyaev Revised: * - * * - * Function: Invert the order of the nodes in the facets * - * * - ***********************************************************************/ -{ - if (m_nface <= 0) - return; - int i, k, nnode, v[4]={0}, f[4]={0}; - for (i = 1; i <= m_nface; i++) - { - nnode = (m_pF[i].m_edge[3].v == 0) ? 3 : 4; - for (k = 0; k < nnode; k++) - { - v[k] = (k + 1 == nnode) ? m_pF[i].m_edge[0].v : m_pF[i].m_edge[k + 1].v; - if (v[k] * m_pF[i].m_edge[k].v < 0) - v[k] = -v[k]; - f[k] = m_pF[i].m_edge[k].f; - } - for (k = 0; k < nnode; k++) - { - m_pF[i].m_edge[nnode - 1 - k].v = v[k]; - m_pF[i].m_edge[nnode - 1 - k].f = f[k]; - } - } -} - -GeoPolyhedron & GeoPolyhedron::Transform (const HVRotation & rotation, - const HVVector3D & translation) -/*********************************************************************** - * * - * Name: GeoPolyhedron::Transform Date: 01.12.99 * - * Author: E.Chernyaev Revised: * - * * - * Function: Make transformation of the polyhedron * - * * - ***********************************************************************/ -{ - if (m_nvert > 0) - { - for (int i = 1; i <= m_nvert; i++) - { - m_pV[i] = rotation * m_pV[i] + translation; - } - - // C H E C K D E T E R M I N A N T A N D - // I N V E R T F A C E T S I F I T I S N E G A T I V E - - HVVector3D x = rotation * HVVector3D (1, 0, 0); - HVVector3D y = rotation * HVVector3D (0, 1, 0); - HVVector3D z = rotation * HVVector3D (0, 0, 1); - if ((x.cross (y)).dot (z) < 0) - InvertFacets (); - } - return *this; -} - -bool GeoPolyhedron::GetNextVertexIndex (int &index, int &edgeFlag) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::GetNextVertexIndex Date: 03.09.96 * - * Author: Yasuhide Sawada Revised: * - * * - * Function: * - * * - ***********************************************************************/ -{ - static int - iFace = - 1; - static int - iQVertex = - 0; - int - vIndex = - m_pF[iFace]. - m_edge[iQVertex]. - v; - - edgeFlag = (vIndex > 0) ? 1 : 0; - index = iabs (vIndex); - - if (iQVertex >= 3 || m_pF[iFace].m_edge[iQVertex + 1].v == 0) - { - iQVertex = 0; - if (++iFace > m_nface) - iFace = 1; - return false; // Last Edge - } - else - { - ++iQVertex; - return true; // not Last Edge - } -} - -HVPoint3D GeoPolyhedron::GetVertex (int index) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::GetVertex Date: 03.09.96 * - * Author: Yasuhide Sawada Revised: 17.11.99 * - * * - * Function: Get vertex of the index. * - * * - ***********************************************************************/ -{ - if (index <= 0 || index > m_nvert) - { - std::cerr - << "GeoPolyhedron::GetVertex: irrelevant index " << index - << std::endl; - return HVPoint3D (); - } - return m_pV[index]; -} - -bool -GeoPolyhedron::GetNextVertex (HVPoint3D & vertex, int &edgeFlag) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::GetNextVertex Date: 22.07.96 * - * Author: John Allison Revised: * - * * - * Function: Get vertices of the quadrilaterals in order for each * - * face in face order. Returns false when finished each * - * face. * - * * - ***********************************************************************/ -{ - int index; - bool rep = GetNextVertexIndex (index, edgeFlag); - vertex = m_pV[index]; - return rep; -} - -bool - GeoPolyhedron::GetNextVertex (HVPoint3D & vertex, int &edgeFlag, - HVNormal3D & normal) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::GetNextVertex Date: 26.11.99 * - * Author: E.Chernyaev Revised: * - * * - * Function: Get vertices with normals of the quadrilaterals in order * - * for each face in face order. * - * Returns false when finished each face. * - * * - ***********************************************************************/ -{ - static int iFace = 1; - static int iNode = 0; - - if (m_nface == 0) - return false; // empty polyhedron - - int k = m_pF[iFace].m_edge[iNode].v; - if (k > 0) - { - edgeFlag = 1; - } - else - { - edgeFlag = -1; - k = -k; - } - vertex = m_pV[k]; - normal = FindNodeNormal (iFace, k); - if (iNode >= 3 || m_pF[iFace].m_edge[iNode + 1].v == 0) - { - iNode = 0; - if (++iFace > m_nface) - iFace = 1; - return false; // last node - } - else - { - ++iNode; - return true; // not last node - } -} - -bool - GeoPolyhedron::GetNextEdgeIndeces (int &i1, int &i2, int &edgeFlag, - int &iface1, int &iface2) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::GetNextEdgeIndeces Date: 30.09.96 * - * Author: E.Chernyaev Revised: 17.11.99 * - * * - * Function: Get indeces of the next edge together with indeces of * - * of the faces which share the edge. * - * Returns false when the last edge. * - * * - ***********************************************************************/ -{ - static int iFace = 1; - static int iQVertex = 0; - static int iOrder = 1; - int k1, k2, kflag, kface1, kface2; - - if (iFace == 1 && iQVertex == 0) - { - k2 = m_pF[m_nface].m_edge[0].v; - k1 = m_pF[m_nface].m_edge[3].v; - if (k1 == 0) - k1 = m_pF[m_nface].m_edge[2].v; - if (iabs (k1) > iabs (k2)) - iOrder = -1; - } - - do - { - k1 = m_pF[iFace].m_edge[iQVertex].v; - kflag = k1; - k1 = iabs (k1); - kface1 = iFace; - kface2 = m_pF[iFace].m_edge[iQVertex].f; - if (iQVertex >= 3 || m_pF[iFace].m_edge[iQVertex + 1].v == 0) - { - iQVertex = 0; - k2 = iabs (m_pF[iFace].m_edge[iQVertex].v); - iFace++; - } - else - { - iQVertex++; - k2 = iabs (m_pF[iFace].m_edge[iQVertex].v); - } - } - while (iOrder * k1 > iOrder * k2); - - i1 = k1; - i2 = k2; - edgeFlag = (kflag > 0) ? 1 : 0; - iface1 = kface1; - iface2 = kface2; - - if (iFace > m_nface) - { - iFace = 1; - iOrder = 1; - return false; - } - else - { - return true; - } -} - -bool -GeoPolyhedron::GetNextEdgeIndeces (int &i1, int &i2, int &edgeFlag) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::GetNextEdgeIndeces Date: 17.11.99 * - * Author: E.Chernyaev Revised: * - * * - * Function: Get indeces of the next edge. * - * Returns false when the last edge. * - * * - ***********************************************************************/ -{ - int kface1, kface2; - return GetNextEdgeIndeces (i1, i2, edgeFlag, kface1, kface2); -} - -bool - GeoPolyhedron::GetNextEdge (HVPoint3D & p1, - HVPoint3D & p2, int &edgeFlag) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::GetNextEdge Date: 30.09.96 * - * Author: E.Chernyaev Revised: * - * * - * Function: Get next edge. * - * Returns false when the last edge. * - * * - ***********************************************************************/ -{ - int i1, i2; - bool rep = GetNextEdgeIndeces (i1, i2, edgeFlag); - p1 = m_pV[i1]; - p2 = m_pV[i2]; - return rep; -} - -bool - GeoPolyhedron::GetNextEdge (HVPoint3D & p1, HVPoint3D & p2, - int &edgeFlag, int &iface1, int &iface2) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::GetNextEdge Date: 17.11.99 * - * Author: E.Chernyaev Revised: * - * * - * Function: Get next edge with indeces of the faces which share * - * the edge. * - * Returns false when the last edge. * - * * - ***********************************************************************/ -{ - int i1, i2; - bool rep = GetNextEdgeIndeces (i1, i2, edgeFlag, iface1, iface2); - p1 = m_pV[i1]; - p2 = m_pV[i2]; - return rep; -} - -void -GeoPolyhedron::GetFacet (int iFace, int &n, int *iNodes, - int *edgeFlags, int *iFaces) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::GetFacet Date: 15.12.99 * - * Author: E.Chernyaev Revised: * - * * - * Function: Get face by index * - * * - ***********************************************************************/ -{ - if (iFace < 1 || iFace > m_nface) - { - std::cerr - << "GeoPolyhedron::GetFacet: irrelevant index " << iFace << std::endl; - n = 0; - } - else - { - int i, k; - for (i = 0; i < 4; i++) - { - k = m_pF[iFace].m_edge[i].v; - if (k == 0) - break; - if (iFaces != 0) - iFaces[i] = m_pF[iFace].m_edge[i].f; - if (k > 0) - { - iNodes[i] = k; - if (edgeFlags != 0) - edgeFlags[i] = 1; - } - else - { - iNodes[i] = -k; - if (edgeFlags != 0) - edgeFlags[i] = -1; - } - } - n = i; - } -} - -void -GeoPolyhedron::GetFacet (int index, int &n, HVPoint3D * nodes, - int *edgeFlags, HVNormal3D * normals) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::GetFacet Date: 17.11.99 * - * Author: E.Chernyaev Revised: * - * * - * Function: Get face by index * - * * - ***********************************************************************/ -{ - int iNodes[4]; - GetFacet (index, n, iNodes, edgeFlags); - if (n != 0) - { - for (int i = 0; i < 4; i++) - { - nodes[i] = m_pV[iNodes[i]]; - if (normals != 0) - normals[i] = FindNodeNormal (index, iNodes[i]); - } - } -} - -bool - GeoPolyhedron::GetNextFacet (int &n, HVPoint3D * nodes, - int *edgeFlags, HVNormal3D * normals) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::GetNextFacet Date: 19.11.99 * - * Author: E.Chernyaev Revised: * - * * - * Function: Get next face with normals of unit length at the nodes. * - * Returns false when finished all faces. * - * * - ***********************************************************************/ -{ - static int iFace = 1; - - if (edgeFlags == 0) - { - GetFacet (iFace, n, nodes); - } - else if (normals == 0) - { - GetFacet (iFace, n, nodes, edgeFlags); - } - else - { - GetFacet (iFace, n, nodes, edgeFlags, normals); - } - - if (++iFace > m_nface) - { - iFace = 1; - return false; - } - else - { - return true; - } -} - -HVNormal3D GeoPolyhedron::GetNormal (int iFace) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::GetNormal Date: 19.11.99 * - * Author: E.Chernyaev Revised: * - * * - * Function: Get normal of the face given by index * - * * - ***********************************************************************/ -{ - if (iFace < 1 || iFace > m_nface) - { - std::cerr - << "GeoPolyhedron::GetNormal: irrelevant index " << iFace - << std::endl; - return HVNormal3D (); - } - - int - i0 = - iabs (m_pF[iFace].m_edge[0].v); - int - i1 = - iabs (m_pF[iFace].m_edge[1].v); - int - i2 = - iabs (m_pF[iFace].m_edge[2].v); - int - i3 = - iabs (m_pF[iFace].m_edge[3].v); - if (i3 == 0) - i3 = i0; - return (m_pV[i2] - m_pV[i0]).cross (m_pV[i3] - m_pV[i1]); -} - -HVNormal3D GeoPolyhedron::GetUnitNormal (int iFace) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::GetNormal Date: 19.11.99 * - * Author: E.Chernyaev Revised: * - * * - * Function: Get unit normal of the face given by index * - * * - ***********************************************************************/ -{ - if (iFace < 1 || iFace > m_nface) - { - std::cerr - << "GeoPolyhedron::GetUnitNormal: irrelevant index " << iFace - << std::endl; - return HVNormal3D (); - } - - int - i0 = - iabs (m_pF[iFace].m_edge[0].v); - int - i1 = - iabs (m_pF[iFace].m_edge[1].v); - int - i2 = - iabs (m_pF[iFace].m_edge[2].v); - int - i3 = - iabs (m_pF[iFace].m_edge[3].v); - if (i3 == 0) - i3 = i0; - HVNormal3D - nm = (m_pV[i2] - m_pV[i0]). - cross (m_pV[i3] - m_pV[i1]); - nm.setMag (1.0); - return nm; -} - -bool GeoPolyhedron::GetNextNormal (HVNormal3D & normal) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::GetNextNormal Date: 22.07.96 * - * Author: John Allison Revised: 19.11.99 * - * * - * Function: Get normals of each face in face order. Returns false * - * when finished all faces. * - * * - ***********************************************************************/ -{ - static int - iFace = - 1; - normal = GetNormal (iFace); - if (++iFace > m_nface) - { - iFace = 1; - return false; - } - else - { - return true; - } -} - -bool GeoPolyhedron::GetNextUnitNormal (HVNormal3D & normal) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::GetNextUnitNormal Date: 16.09.96 * - * Author: E.Chernyaev Revised: * - * * - * Function: Get normals of unit length of each face in face order. * - * Returns false when finished all faces. * - * * - ***********************************************************************/ -{ - bool - rep = - GetNextNormal (normal); - normal.setMag (1.0); - return rep; -} - -double -GeoPolyhedron::GetSurfaceArea () const -/*********************************************************************** - * * - * Name: GeoPolyhedron::GetSurfaceArea Date: 25.05.01 * - * Author: E.Chernyaev Revised: * - * * - * Function: Returns area of the surface of the polyhedron. * - * * - ***********************************************************************/ -{ - double s = 0.; - for (int iFace = 1; iFace <= m_nface; iFace++) - { - int i0 = iabs (m_pF[iFace].m_edge[0].v); - int i1 = iabs (m_pF[iFace].m_edge[1].v); - int i2 = iabs (m_pF[iFace].m_edge[2].v); - int i3 = iabs (m_pF[iFace].m_edge[3].v); - if (i3 == 0) - i3 = i0; - s += ((m_pV[i2] - m_pV[i0]).cross (m_pV[i3] - m_pV[i1])).mag (); - } - return s / 2.; -} - -double -GeoPolyhedron::GetVolume () const -/*********************************************************************** - * * - * Name: GeoPolyhedron::GetVolume Date: 25.05.01 * - * Author: E.Chernyaev Revised: * - * * - * Function: Returns volume of the polyhedron. * - * * - ***********************************************************************/ -{ - double v = 0.; - for (int iFace = 1; iFace <= m_nface; iFace++) - { - int i0 = iabs (m_pF[iFace].m_edge[0].v); - int i1 = iabs (m_pF[iFace].m_edge[1].v); - int i2 = iabs (m_pF[iFace].m_edge[2].v); - int i3 = iabs (m_pF[iFace].m_edge[3].v); - HVPoint3D g; - if (i3 == 0) - { - i3 = i0; - g = (m_pV[i0] + m_pV[i1] + m_pV[i2]) * (1.0f / 3.0f); - } - else - { - g = (m_pV[i0] + m_pV[i1] + m_pV[i2] + m_pV[i3]) * 0.25f; - } - v += ((m_pV[i2] - m_pV[i0]).cross (m_pV[i3] - m_pV[i1])).dot (g); - } - return v * (1./6); -} - -GeoPolyhedronTrd2::GeoPolyhedronTrd2 (double Dx1, double Dx2, - double Dy1, double Dy2, double Dz) -/*********************************************************************** - * * - * Name: GeoPolyhedronTrd2 Date: 22.07.96 * - * Author: E.Chernyaev (IHEP/Protvino) Revised: * - * * - * Function: Create GEANT4 TRD2-trapezoid * - * * - * Input: Dx1 - half-length along X at -Dz 8----7 * - * Dx2 - half-length along X ay +Dz 5----6 ! * - * Dy1 - half-length along Y ay -Dz ! 4-!--3 * - * Dy2 - half-length along Y ay +Dz 1----2 * - * Dz - half-length along Z * - * * - ***********************************************************************/ -{ - AllocateMemory (8, 6); - - m_pV[1] = HVPoint3D (-Dx1, -Dy1, -Dz); - m_pV[2] = HVPoint3D (Dx1, -Dy1, -Dz); - m_pV[3] = HVPoint3D (Dx1, Dy1, -Dz); - m_pV[4] = HVPoint3D (-Dx1, Dy1, -Dz); - m_pV[5] = HVPoint3D (-Dx2, -Dy2, Dz); - m_pV[6] = HVPoint3D (Dx2, -Dy2, Dz); - m_pV[7] = HVPoint3D (Dx2, Dy2, Dz); - m_pV[8] = HVPoint3D (-Dx2, Dy2, Dz); - - CreatePrism (); -} - -GeoPolyhedronTrd2::~GeoPolyhedronTrd2 () -{ -} - -GeoPolyhedronTrd1::GeoPolyhedronTrd1 (double Dx1, double Dx2, - double Dy, double Dz): -GeoPolyhedronTrd2 (Dx1, Dx2, Dy, Dy, Dz) -{ -} - -GeoPolyhedronTrd1::~GeoPolyhedronTrd1 () -{ -} - -GeoPolyhedronBox::GeoPolyhedronBox (double Dx, double Dy, double Dz): -GeoPolyhedronTrd2 (Dx, Dx, Dy, Dy, Dz) -{ -} - -GeoPolyhedronBox::~GeoPolyhedronBox () -{ -} - -GeoPolyhedronTrap::GeoPolyhedronTrap (double Dz, - double Theta, - double Phi, - double Dy1, - double Dx1, - double Dx2, - double Alp1, - double Dy2, - double Dx3, double Dx4, double Alp2) -/*********************************************************************** - * * - * Name: GeoPolyhedronTrap Date: 20.11.96 * - * Author: E.Chernyaev Revised: * - * * - * Function: Create GEANT4 TRAP-trapezoid * - * * - * Input: DZ - half-length in Z * - * Theta,Phi - polar angles of the line joining centres of the * - * faces at Z=-Dz and Z=+Dz * - * Dy1 - half-length in Y of the face at Z=-Dz * - * Dx1 - half-length in X of low edge of the face at Z=-Dz * - * Dx2 - half-length in X of top edge of the face at Z=-Dz * - * Alp1 - angle between Y-axis and the median joining top and * - * low edges of the face at Z=-Dz * - * Dy2 - half-length in Y of the face at Z=+Dz * - * Dx3 - half-length in X of low edge of the face at Z=+Dz * - * Dx4 - half-length in X of top edge of the face at Z=+Dz * - * Alp2 - angle between Y-axis and the median joining top and * - * low edges of the face at Z=+Dz * - * * - ***********************************************************************/ -{ - double DzTthetaCphi = Dz * tan (Theta) * cos (Phi); - double DzTthetaSphi = Dz * tan (Theta) * sin (Phi); - double Dy1Talp1 = Dy1 * tan (Alp1); - double Dy2Talp2 = Dy2 * tan (Alp2); - - AllocateMemory (8, 6); - - m_pV[1] = - HVPoint3D (-DzTthetaCphi - Dy1Talp1 - Dx1, -DzTthetaSphi - Dy1, -Dz); - m_pV[2] = - HVPoint3D (-DzTthetaCphi - Dy1Talp1 + Dx1, -DzTthetaSphi - Dy1, -Dz); - m_pV[3] = - HVPoint3D (-DzTthetaCphi + Dy1Talp1 + Dx2, -DzTthetaSphi + Dy1, -Dz); - m_pV[4] = - HVPoint3D (-DzTthetaCphi + Dy1Talp1 - Dx2, -DzTthetaSphi + Dy1, -Dz); - m_pV[5] = HVPoint3D (DzTthetaCphi - Dy2Talp2 - Dx3, DzTthetaSphi - Dy2, Dz); - m_pV[6] = HVPoint3D (DzTthetaCphi - Dy2Talp2 + Dx3, DzTthetaSphi - Dy2, Dz); - m_pV[7] = HVPoint3D (DzTthetaCphi + Dy2Talp2 + Dx4, DzTthetaSphi + Dy2, Dz); - m_pV[8] = HVPoint3D (DzTthetaCphi + Dy2Talp2 - Dx4, DzTthetaSphi + Dy2, Dz); - - CreatePrism (); -} - -GeoPolyhedronTrap::~GeoPolyhedronTrap () -{ -} - -GeoPolyhedronPara::GeoPolyhedronPara (double Dx, double Dy, double Dz, - double Alpha, double Theta, double Phi): -GeoPolyhedronTrap (Dz, Theta, Phi, Dy, Dx, Dx, Alpha, Dy, Dx, Dx, Alpha) -{ -} - -GeoPolyhedronPara::~GeoPolyhedronPara () -{ -} - -GeoPolyhedronCons::GeoPolyhedronCons (double Rmn1, - double Rmx1, - double Rmn2, - double Rmx2, - double Dz, double Phi1, double Dphi) -/*********************************************************************** - * * - * Name: GeoPolyhedronCons::GeoPolyhedronCons Date: 15.12.96 * - * Author: E.Chernyaev (IHEP/Protvino) Revised: 15.12.96 * - * * - * Function: Constructor for CONS, TUBS, CONE, TUBE * - * * - * Input: Rmn1, Rmx1 - inside and outside radiuses at -Dz * - * Rmn2, Rmx2 - inside and outside radiuses at +Dz * - * Dz - half length in Z * - * Phi1 - starting angle of the segment * - * Dphi - segment range * - * * - ***********************************************************************/ -{ - static double wholeCircle = 2 * M_PI; - - // C H E C K I N P U T P A R A M E T E R S - - int k = 0; - if (Rmn1 < 0. || Rmx1 < 0. || Rmn2 < 0. || Rmx2 < 0.) - k = 1; - if (Rmn1 > Rmx1 || Rmn2 > Rmx2) - k = 1; - if (Rmn1 == Rmx1 && Rmn2 == Rmx2) - k = 1; - - if (Dz <= 0.) - k += 2; - - double phi1, phi2, dphi; - if (Dphi < 0.) - { - phi2 = Phi1; - phi1 = phi2 - Dphi; - } - else if (Dphi == 0.) - { - phi1 = Phi1; - phi2 = phi1 + wholeCircle; - } - else - { - phi1 = Phi1; - phi2 = phi1 + Dphi; - } - dphi = phi2 - phi1; - if (fabs (dphi - wholeCircle) < perMillion) - dphi = wholeCircle; - if (dphi > wholeCircle) - k += 4; - - if (k != 0) - { - std::cerr << "GeoPolyhedronCone(s)/Tube(s): error in input parameters"; - if ((k & 1) != 0) - std::cerr << " (radiuses)"; - if ((k & 2) != 0) - std::cerr << " (half-length)"; - if ((k & 4) != 0) - std::cerr << " (angles)"; - std::cerr << std::endl; - std::cerr << " Rmn1=" << Rmn1 << " Rmx1=" << Rmx1; - std::cerr << " Rmn2=" << Rmn2 << " Rmx2=" << Rmx2; - std::cerr << " Dz=" << Dz << " Phi1=" << Phi1 << " Dphi=" << Dphi - << std::endl; - return; - } - - // P R E P A R E T W O P O L Y L I N E S - - double zz[4], rr[4]; - zz[0] = Dz; - zz[1] = -Dz; - zz[2] = Dz; - zz[3] = -Dz; - rr[0] = Rmx2; - rr[1] = Rmx1; - rr[2] = Rmn2; - rr[3] = Rmn1; - - // R O T A T E P O L Y L I N E S - - RotateAroundZ (0, phi1, dphi, 2, 2, zz, rr, -1, -1); - SetReferences (); -} - -GeoPolyhedronCons::~GeoPolyhedronCons () -{ -} - -GeoPolyhedronCone::GeoPolyhedronCone (double Rmn1, double Rmx1, - double Rmn2, double Rmx2, double Dz): -GeoPolyhedronCons (Rmn1, Rmx1, Rmn2, Rmx2, Dz, 0 * deg, 360 * deg) -{ -} - -GeoPolyhedronCone::~GeoPolyhedronCone () -{ -} - -GeoPolyhedronTubs::GeoPolyhedronTubs (double Rmin, double Rmax, - double Dz, double Phi1, double Dphi): -GeoPolyhedronCons (Rmin, Rmax, Rmin, Rmax, Dz, Phi1, Dphi) -{ -} - -GeoPolyhedronTubs::~GeoPolyhedronTubs () -{ -} - -GeoPolyhedronTube::GeoPolyhedronTube (double Rmin, double Rmax, double Dz): -GeoPolyhedronCons (Rmin, Rmax, Rmin, Rmax, Dz, 0 * deg, 360 * deg) -{ -} - -GeoPolyhedronTube::~GeoPolyhedronTube () -{ -} - -GeoPolyhedronPgon::GeoPolyhedronPgon (double phi, - double dphi, - int npdv, - int nz, - const double *z, - const double *rmin, const double *rmax) -/*********************************************************************** - * * - * Name: GeoPolyhedronPgon Date: 09.12.96 * - * Author: E.Chernyaev Revised: * - * * - * Function: Constructor of polyhedron for PGON, PCON * - * * - * Input: phi - initial phi * - * dphi - delta phi * - * npdv - number of steps along phi * - * nz - number of z-planes (at least two) * - * z[] - z coordinates of the slices * - * rmin[] - smaller r at the slices * - * rmax[] - bigger r at the slices * - * * - ***********************************************************************/ -{ - // C H E C K I N P U T P A R A M E T E R S - - if (dphi <= 0. || dphi > 2 * M_PI) - { - std::cerr - << "GeoPolyhedronPgon/Pcon: wrong delta phi = " << dphi << std::endl; - return; - } - - if (nz < 2) - { - std::cerr - << "GeoPolyhedronPgon/Pcon: number of z-planes less than two = " << nz - << std::endl; - return; - } - - if (npdv < 0) - { - std::cerr - << "GeoPolyhedronPgon/Pcon: error in number of phi-steps =" << npdv - << std::endl; - return; - } - - int i; - for (i = 0; i < nz; i++) - { - if (rmin[i] < 0. || rmax[i] < 0. || rmin[i] > rmax[i]) - { - std::cerr - << "GeoPolyhedronPgon: error in radiuses rmin[" << i << "]=" - << rmin[i] << " rmax[" << i << "]=" << rmax[i] << std::endl; - return; - } - } - - // P R E P A R E T W O P O L Y L I N E S - - double *zz, *rr; - zz = new double[2 * nz]; - rr = new double[2 * nz]; - - if (z[0] > z[nz - 1]) - { - for (i = 0; i < nz; i++) - { - zz[i] = z[i]; - rr[i] = rmax[i]; - zz[i + nz] = z[i]; - rr[i + nz] = rmin[i]; - } - } - else - { - for (i = 0; i < nz; i++) - { - zz[i] = z[nz - i - 1]; - rr[i] = rmax[nz - i - 1]; - zz[i + nz] = z[nz - i - 1]; - rr[i + nz] = rmin[nz - i - 1]; - } - } - - // R O T A T E P O L Y L I N E S - - RotateAroundZ (npdv, phi, dphi, nz, nz, zz, rr, -1, (npdv == 0) ? -1 : 1); - SetReferences (); - - delete[]zz; - delete[]rr; -} - -GeoPolyhedronPgon::~GeoPolyhedronPgon () -{ -} - -GeoPolyhedronPcon::GeoPolyhedronPcon (double phi, double dphi, int nz, - const double *z, - const double *rmin, const double *rmax): -GeoPolyhedronPgon (phi, dphi, 0, nz, z, rmin, rmax) -{ -} - -GeoPolyhedronPcon::~GeoPolyhedronPcon () -{ -} - -GeoPolyhedronSphere::GeoPolyhedronSphere (double rmin, double rmax, - double phi, double dphi, - double the, double dthe) -/*********************************************************************** - * * - * Name: GeoPolyhedronSphere Date: 11.12.96 * - * Author: E.Chernyaev (IHEP/Protvino) Revised: * - * * - * Function: Constructor of polyhedron for SPHERE * - * * - * Input: rmin - internal radius * - * rmax - external radius * - * phi - initial phi * - * dphi - delta phi * - * the - initial theta * - * dthe - delta theta * - * * - ***********************************************************************/ -{ - // C H E C K I N P U T P A R A M E T E R S - - if (dphi <= 0. || dphi > 2 * M_PI) - { - std::cerr - << "GeoPolyhedronSphere: wrong delta phi = " << dphi << std::endl; - return; - } - - if (the < 0. || the > M_PI) - { - std::cerr << "GeoPolyhedronSphere: wrong theta = " << the << std::endl; - return; - } - - if (dthe <= 0. || dthe > M_PI) - { - std::cerr - << "GeoPolyhedronSphere: wrong delta theta = " << dthe << std::endl; - return; - } - - if ((the + dthe >= M_PI) && (the + dthe < M_PI + 2 * DBL_EPSILON)) - dthe = M_PI - the; //G.Barrand : coming from LHCb/S.Ponce. - - if (the + dthe > M_PI) - { - std::cerr - << "GeoPolyhedronSphere: wrong theta + delta theta = " - << the << " " << dthe << std::endl; - return; - } - - if (rmin < 0. || rmin >= rmax) - { - std::cerr - << "GeoPolyhedronSphere: error in radiuses" - << " rmin=" << rmin << " rmax=" << rmax << std::endl; - return; - } - - // P R E P A R E T W O P O L Y L I N E S - - int ns = (GetNumberOfRotationSteps () + 1) / 2; - int np1 = int (dthe * ns * M_1_PI + .5) + 1; - if (np1 <= 1) - np1 = 2; - int np2 = rmin < perMillion ? 1 : np1; - - double *zz, *rr; - zz = new double[np1 + np2]; - rr = new double[np1 + np2]; - - double a = dthe / (np1 - 1); - double cosa, sina; - for (int i = 0; i < np1; i++) - { - cosa = cos (the + i * a); - sina = sin (the + i * a); - zz[i] = rmax * cosa; - rr[i] = rmax * sina; - if (np2 > 1) - { - zz[i + np1] = rmin * cosa; - rr[i + np1] = rmin * sina; - } - } - if (np2 == 1) - { - zz[np1] = 0.; - rr[np1] = 0.; - } - - // R O T A T E P O L Y L I N E S - - RotateAroundZ (0, phi, dphi, np1, np2, zz, rr, -1, -1); - SetReferences (); - - delete[]zz; - delete[]rr; -} - -GeoPolyhedronSphere::~GeoPolyhedronSphere () -{ -} - -GeoPolyhedronTorus::GeoPolyhedronTorus (double rmin, - double rmax, - double rtor, double phi, double dphi) -/*********************************************************************** - * * - * Name: GeoPolyhedronTorus Date: 11.12.96 * - * Author: E.Chernyaev (IHEP/Protvino) Revised: * - * * - * Function: Constructor of polyhedron for TORUS * - * * - * Input: rmin - internal radius * - * rmax - external radius * - * rtor - radius of torus * - * phi - initial phi * - * dphi - delta phi * - * * - ***********************************************************************/ -{ - // C H E C K I N P U T P A R A M E T E R S - - if (dphi <= 0. || dphi > 2 * M_PI) - { - std::cerr - << "GeoPolyhedronTorus: wrong delta phi = " << dphi << std::endl; - return; - } - - if (rmin < 0. || rmin >= rmax || rmax >= rtor) - { - std::cerr - << "GeoPolyhedronTorus: error in radiuses" - << " rmin=" << rmin << " rmax=" << rmax << " rtorus=" << rtor - << std::endl; - return; - } - - // P R E P A R E T W O P O L Y L I N E S - - int np1 = GetNumberOfRotationSteps (); - int np2 = rmin < perMillion ? 1 : np1; - - std::vector<double> rr (np1+np2, 0); - std::vector<double> zz (np1+np2, 0); - - double a = 2 * M_PI / np1; - double cosa, sina; - for (int i = 0; i < np1; i++) - { - cosa = cos (i * a); - sina = sin (i * a); - zz[i] = rmax * cosa; - rr[i] = rtor + rmax * sina; - if (np2 > 1) - { - zz[i + np1] = rmin * cosa; - rr[i + np1] = rtor + rmin * sina; - } - } - if (np2 == 1) - { - zz[np1] = 0.; - rr[np1] = rtor; - np2 = -1; - } - - // R O T A T E P O L Y L I N E S - - RotateAroundZ (0, phi, dphi, -np1, -np2, zz.data(), rr.data(), -1, -1); - SetReferences (); -} - -GeoPolyhedronTorus::~GeoPolyhedronTorus () -{ -} - -int - GeoPolyhedron::s_fNumberOfRotationSteps = - DEFAULT_NUMBER_OF_STEPS; -/*********************************************************************** - * * - * Name: GeoPolyhedron::s_fNumberOfRotationSteps Date: 24.06.97 * - * Author: J.Allison (Manchester University) Revised: * - * * - * Function: Number of steps for whole circle * - * * - ***********************************************************************/ - -#include "BooleanProcessor.src" -static - Geo_BooleanProcessor - processor; - -GeoPolyhedron GeoPolyhedron::add (const GeoPolyhedron & p) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::add Date: 19.03.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Boolean "union" of two polyhedra * - * * - ***********************************************************************/ -{ - return processor.execute (OP_UNION, *this, p); -} - -GeoPolyhedron GeoPolyhedron::intersect (const GeoPolyhedron & p) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::intersect Date: 19.03.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Boolean "intersection" of two polyhedra * - * * - ***********************************************************************/ -{ - return processor.execute (OP_INTERSECTION, *this, p); -} - -GeoPolyhedron GeoPolyhedron::subtract (const GeoPolyhedron & p) const -/*********************************************************************** - * * - * Name: GeoPolyhedron::add Date: 19.03.00 * - * Author: E.Chernyaev Revised: * - * * - * Function: Boolean "subtraction" of "p" from "this" * - * * - ***********************************************************************/ -{ - return processor.execute (OP_SUBTRACTION, *this, p); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPrintGraphAction.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPrintGraphAction.cxx deleted file mode 100755 index 7ff1252d7cb02c341205e925ef52920108ee6759..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoPrintGraphAction.cxx +++ /dev/null @@ -1,115 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoPrintGraphAction.h" - -GeoPrintGraphAction::GeoPrintGraphAction (std::ostream &o) - : m_nameTag(nullptr) - , m_serialDenominator(nullptr) - , m_idTag(nullptr) - , m_transformState(true) - , m_volumeState(true) - , m_nametagState(true) - , m_serialDenominatorState(true) - , m_serialTransformerState(true) - , m_identifierState(true) - , m_o(o) - , m_indented(false) -{ -} - -GeoPrintGraphAction::~GeoPrintGraphAction() -{ -} - -void GeoPrintGraphAction::handleTransform (const GeoTransform *xform) -{ - m_pendingTransformList.push_back(xform); - if (m_transformState) { - indent(); - m_o << "TRANSFORM+"; - } -} - -void GeoPrintGraphAction::handlePhysVol (const GeoPhysVol *vol) -{ - if (m_volumeState) { - indent(); - m_o << "VOLUME(" << vol->getLogVol()->getName() <<")" << std::endl; - } - m_pendingTransformList.erase(m_pendingTransformList.begin(),m_pendingTransformList.end()); - m_indented=false; -} - -void GeoPrintGraphAction::handleFullPhysVol (const GeoFullPhysVol *vol) -{ - if (m_volumeState) { - indent(); - m_o << "VOLUME(" << vol->getLogVol()->getName() <<")" << std::endl; - } - m_pendingTransformList.erase(m_pendingTransformList.begin(),m_pendingTransformList.end()); - m_indented=false; -} - -void GeoPrintGraphAction::handleNameTag (const GeoNameTag *nameTag) -{ - if (m_nametagState) { - indent(); - m_o << "NAMETAG: " << nameTag->getName() << "+"; - } -} - -void GeoPrintGraphAction::handleSerialDenominator (const GeoSerialDenominator *sD) -{ - if (m_nametagState) { - indent(); - m_o << "SERIAL DENOMINATOR:: " << sD->getBaseName() << "+"; - } -} - -void GeoPrintGraphAction::handleSerialTransformer (const GeoSerialTransformer *sT) -{ - if (m_volumeState) { - indent(); - m_o << sT->getNCopies() << " PARAMETERIZED VOLUMES(" << sT->getVolume()->getLogVol()->getName() << ")" << std::endl; - } - m_pendingTransformList.erase(m_pendingTransformList.begin(),m_pendingTransformList.end()); - m_indented=false; -} - -void GeoPrintGraphAction::handleIdentifierTag (const GeoIdentifierTag *idTag) -{ - if (m_identifierState) { - indent(); - m_o << "NAME: " << idTag->getIdentifier() << "+"; - } -} - -void GeoPrintGraphAction::setNotification (Type type, bool state) -{ - if (type==TRANSFORM) { - m_transformState=state; - } - else if (type==VOLUME) { - m_volumeState=state; - } - else if (type==NAMETAG) { - m_nametagState=state; - } - else if (type==IDENTIFIERTAG) { - m_identifierState=state; - } -} - -void GeoPrintGraphAction::indent () -{ - if (!m_indented) { - m_indented=true; - for (size_t i=0;i<getPath()->getLength(); i++) { - m_o << " "; - } - } -} - - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoSelClearAbsPosAction.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoSelClearAbsPosAction.cxx deleted file mode 100755 index a1c32a6155e5614f1521547ec0f5c6af671b5e78..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoSelClearAbsPosAction.cxx +++ /dev/null @@ -1,46 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoSelClearAbsPosAction.h" -#include "GeoModelKernel/GeoClearAbsPosAction.h" -#include "GeoModelKernel/GeoAlignableTransform.h" -#include <sstream> - -GeoSelClearAbsPosAction::GeoSelClearAbsPosAction(const GeoAlignableTransform* alignTrans) - : m_alignTrans(alignTrans) - , m_needToClearCache(false) -{ - setDepthLimit(1); -} - -GeoSelClearAbsPosAction::~GeoSelClearAbsPosAction() -{ -} - -void GeoSelClearAbsPosAction::handleTransform(const GeoTransform *xform) -{ - if(xform==m_alignTrans) - m_needToClearCache = true; -} - -void GeoSelClearAbsPosAction::handlePhysVol(const GeoPhysVol *vol) -{ - if(getPath()->getLength()>1 && m_needToClearCache) { - GeoClearAbsPosAction cc; - vol->exec(&cc); - m_needToClearCache = false; - } -} - -void GeoSelClearAbsPosAction::handleFullPhysVol(const GeoFullPhysVol *vol) -{ - if(getPath()->getLength()>1 && m_needToClearCache) { - GeoClearAbsPosAction cc; - vol->exec(&cc); - m_needToClearCache = false; - } -} - - - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoSelClearAbsPosAction.h b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoSelClearAbsPosAction.h deleted file mode 100755 index 251dae80515d01ee8f32028760292c12f6f3ead2..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoSelClearAbsPosAction.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef GEOMODELKERNEL_GEOSELCLEARABSPOSACTION_H -#define GEOMODELKERNEL_GEOSELCLEARABSPOSACTION_H - -/** - * @class GeoSelClearAbsPosAction - * - * @brief This action class has been introduced in order to speed up GeoAlignableTransform::setDelta(), - * which is heavily used by alignment callbacks. - * - * The action takes a pointer to GeoAlignableTransform - * and clears position caches only for those daughters of given - * physical volume, which are affected by this alignable transform. - */ - -#include "GeoModelKernel/GeoNodeAction.h" - -class GeoAlignableTransform; - -class GeoSelClearAbsPosAction:public GeoNodeAction -{ - public: - GeoSelClearAbsPosAction(const GeoAlignableTransform* alignTrans); - virtual ~GeoSelClearAbsPosAction(); - - private: - - // Handles a Transform. - virtual void handleTransform (const GeoTransform *xform); - - // Handles a physical volume. - virtual void handlePhysVol (const GeoPhysVol *vol); - - // Handles a physical volume. - virtual void handleFullPhysVol (const GeoFullPhysVol *vol); - - private: - GeoSelClearAbsPosAction(const GeoSelClearAbsPosAction &right); - GeoSelClearAbsPosAction & operator=(const GeoSelClearAbsPosAction &right); - - const GeoAlignableTransform* m_alignTrans; - bool m_needToClearCache; -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoSerialDenominator.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoSerialDenominator.cxx deleted file mode 100755 index af65ced105dc4ac2cf349be0a52df970cb544240..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoSerialDenominator.cxx +++ /dev/null @@ -1,20 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoSerialDenominator.h" -#include "GeoModelKernel/GeoNodeAction.h" - -GeoSerialDenominator::GeoSerialDenominator (const std::string &BaseName) - : m_baseName (BaseName) -{ -} - -GeoSerialDenominator::~GeoSerialDenominator() -{ -} - -void GeoSerialDenominator::exec (GeoNodeAction *action) const -{ - action->handleSerialDenominator (this); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoSerialIdentifier.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoSerialIdentifier.cxx deleted file mode 100755 index c5984b9620f2e85ac4b9929a5ebf8d9d6082609e..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoSerialIdentifier.cxx +++ /dev/null @@ -1,28 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoSerialIdentifier.h" -#include "GeoModelKernel/GeoNodeAction.h" - -GeoSerialIdentifier::GeoSerialIdentifier(int BaseId) - : m_baseId (BaseId) -{ -} - - -GeoSerialIdentifier::~GeoSerialIdentifier() -{ -} - - - -void GeoSerialIdentifier::exec(GeoNodeAction *action) const -{ - action->handleSerialIdentifier (this); -} - - - - - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoSerialTransformer.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoSerialTransformer.cxx deleted file mode 100755 index f97e6dc12fd762b06c35fd7d782275c203eda631..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoSerialTransformer.cxx +++ /dev/null @@ -1,31 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoSerialTransformer.h" -#include "GeoModelKernel/GeoNodeAction.h" - -GeoSerialTransformer::GeoSerialTransformer (const GeoVPhysVol *volume, const GeoXF::Function *func, unsigned int copies) - : m_nCopies (copies) - , m_function (func->clone ()) - , m_physVol (volume) -{ - m_physVol->ref (); -} - -GeoSerialTransformer::~GeoSerialTransformer() -{ - m_physVol->unref (); - delete m_function; -} - -void GeoSerialTransformer::exec (GeoNodeAction *action) const -{ - action->handleSerialTransformer (this); -} - -const GeoXF::Function * GeoSerialTransformer::getFunction () const -{ - return m_function; -} - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoShape.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoShape.cxx deleted file mode 100755 index a23693b307443110b723133c04154b4cd1dbcecd..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoShape.cxx +++ /dev/null @@ -1,41 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoShape.h" -#include "GeoModelKernel/GeoShapeIntersection.h" -#include "GeoModelKernel/GeoShapeUnion.h" -#include "GeoModelKernel/GeoShapeSubtraction.h" -#include "GeoModelKernel/GeoShapeShift.h" - -GeoShape::GeoShape () -{ -} - -GeoShape::~GeoShape() -{ -} - -const GeoShapeUnion & GeoShape::add (const GeoShape& shape) const -{ - GeoShapeUnion *unionNode = new GeoShapeUnion (this, &shape); - return *unionNode; -} - -const GeoShapeSubtraction & GeoShape::subtract (const GeoShape& shape) const -{ - GeoShapeSubtraction *subNode = new GeoShapeSubtraction (this, &shape); - return *subNode; -} - -const GeoShapeIntersection & GeoShape::intersect (const GeoShape& shape) const -{ - GeoShapeIntersection *intNode = new GeoShapeIntersection (this, &shape); - return *intNode; -} - -const GeoShapeShift & GeoShape::operator << (const HepGeom::Transform3D &shift) const -{ - GeoShapeShift *shiftNode = new GeoShapeShift (this, shift); - return *shiftNode; -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoShapeAction.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoShapeAction.cxx deleted file mode 100755 index ebe7978a91561a7e605ccab1e46491cc9f263cbe..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoShapeAction.cxx +++ /dev/null @@ -1,166 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoShapeAction.h" - -#include "GeoModelKernel/GeoShapeShift.h" -#include "GeoModelKernel/GeoShapeIntersection.h" -#include "GeoModelKernel/GeoShapeUnion.h" -#include "GeoModelKernel/GeoShapeSubtraction.h" -#include "GeoModelKernel/GeoBox.h" -#include "GeoModelKernel/GeoCons.h" -#include "GeoModelKernel/GeoPcon.h" -#include "GeoModelKernel/GeoPgon.h" -#include "GeoModelKernel/GeoTrap.h" -#include "GeoModelKernel/GeoTrd.h" -#include "GeoModelKernel/GeoTube.h" -#include "GeoModelKernel/GeoTubs.h" -#include "GeoModelKernel/GeoPara.h" - -#include "GeoModelKernel/GeoSimplePolygonBrep.h" -#include "GeoModelKernel/GeoTessellatedSolid.h" -#include "GeoModelKernel/GeoEllipticalTube.h" -#include "GeoModelKernel/GeoTorus.h" -#include "GeoModelKernel/GeoGenericTrap.h" - - -GeoShapeAction::GeoShapeAction() - : m_terminate(false) -{ -} - -GeoShapeAction::~GeoShapeAction() -{ -} - -Query<unsigned int> GeoShapeAction::getDepthLimit () -{ - return m_depth; -} - -void GeoShapeAction::setDepthLimit (unsigned int limit) -{ - m_depth=limit; -} - -void GeoShapeAction::clearDepthLimit () -{ - m_depth=Query<unsigned int> (); -} - -void GeoShapeAction::terminate () -{ - m_terminate=true; -} - -bool GeoShapeAction::shouldTerminate () const -{ - return m_terminate; -} - -void GeoShapeAction::handleShape (const GeoShape *) -{ -} - -void GeoShapeAction::handleShift (const GeoShapeShift *shift) -{ - handleShape(shift); -} - -void GeoShapeAction::handleUnion (const GeoShapeUnion *unio) -{ - handleShape(unio); -} - -void GeoShapeAction::handleIntersection (const GeoShapeIntersection *isect) -{ - handleShape(isect); -} - -void GeoShapeAction::handleSubtraction (const GeoShapeSubtraction *subtract) -{ - handleShape(subtract); -} - -void GeoShapeAction::handleBox (const GeoBox *box) -{ - handleShape(box); -} - -void GeoShapeAction::handleCons (const GeoCons *cons) -{ - handleShape(cons); -} - -void GeoShapeAction::handlePara (const GeoPara *para) -{ - handleShape(para); -} - -void GeoShapeAction::handlePcon (const GeoPcon *pcon) -{ - handleShape(pcon); -} - -void GeoShapeAction::handlePgon (const GeoPgon *pgon) -{ - handleShape(pgon); -} - -void GeoShapeAction::handleTrap (const GeoTrap *trap) -{ - handleShape(trap); -} - -void GeoShapeAction::handleTrd (const GeoTrd *trd) -{ - handleShape(trd); -} - -void GeoShapeAction::handleTube (const GeoTube *tube) -{ - handleShape(tube); -} - -void GeoShapeAction::handleTubs (const GeoTubs *tubs) -{ - handleShape(tubs); -} - -GeoShapePath * GeoShapeAction::getPath () -{ - return &m_path; -} - -void GeoShapeAction::handleLArCustom (const LArCustomShape *lar) -{ - handleShape( (GeoShape *) lar); -} - -void GeoShapeAction::handleSimplePolygonBrep (const GeoSimplePolygonBrep* brep) -{ - handleShape(brep); -} - -void GeoShapeAction::handleTessellatedSolid (const GeoTessellatedSolid* tessellated) -{ - handleShape(tessellated); -} - -void GeoShapeAction::handleEllipticalTube (const GeoEllipticalTube * elltube) -{ - handleShape(elltube); -} - -void GeoShapeAction::handleTorus (const GeoTorus * torus) -{ - handleShape(torus); -} - -void GeoShapeAction::handleGenericTrap (const GeoGenericTrap * gentrap) -{ - handleShape(gentrap); -} - - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoShapeIntersection.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoShapeIntersection.cxx deleted file mode 100755 index f7f32cbb9ab287de800acdd621ef21791c84365b..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoShapeIntersection.cxx +++ /dev/null @@ -1,88 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoShapeIntersection.h" -#include "GeoModelKernel/GeoPolyhedron.h" -#include "GeoModelKernel/GeoPolyhedrizeAction.h" -#include "GeoModelKernel/GeoShapeAction.h" -#include <stdexcept> - -const std::string GeoShapeIntersection::s_classType = "Intersection"; -const ShapeType GeoShapeIntersection::s_classTypeID = 0x00; - -GeoShapeIntersection::GeoShapeIntersection (const GeoShape* A, const GeoShape* B) - : m_opA (A) - , m_opB (B) -{ - m_opA->ref (); - m_opB->ref (); -} - -GeoShapeIntersection::~GeoShapeIntersection() -{ - m_opA->unref (); - m_opB->unref (); -} - -double GeoShapeIntersection::volume () const -{ - GeoPolyhedrizeAction a; - exec(&a); - const GeoPolyhedron *poly = a.getPolyhedron(); - double vol = poly->GetVolume (); - return vol; -} - -const std::string & GeoShapeIntersection::type () const -{ - return s_classType; -} - -ShapeType GeoShapeIntersection::typeID () const -{ - return s_classTypeID; -} - -const GeoShape* GeoShapeIntersection::getOpA () const -{ - return m_opA; -} - -const GeoShape* GeoShapeIntersection::getOpB () const -{ - return m_opB; -} - -void GeoShapeIntersection::exec (GeoShapeAction *action) const -{ - action->getPath ()->push (this); - action->handleIntersection (this); - if (action->shouldTerminate ()) - { - action->getPath ()->pop (); - return; - } - - if (action->getDepthLimit ().isValid () - && action->getPath ()->getLength () > action->getDepthLimit ()) - { - } - - else - { - m_opA->exec(action); - if (action->shouldTerminate ()) - { - action->getPath ()->pop (); - return; - } - m_opB->exec(action); - if (action->shouldTerminate ()) - { - action->getPath ()->pop (); - return; - } - } - action->getPath()->pop(); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoShapeShift.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoShapeShift.cxx deleted file mode 100755 index 7c0f6ba47da529f79445a2e0ef82eb09d8f73bd8..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoShapeShift.cxx +++ /dev/null @@ -1,73 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoShapeShift.h" -#include "GeoModelKernel/GeoShapeAction.h" - -const std::string GeoShapeShift::s_classType = "Shift"; -const ShapeType GeoShapeShift::s_classTypeID = 0x03; - -GeoShapeShift::GeoShapeShift (const GeoShape* A, const HepGeom::Transform3D &X) - : m_op (A) - , m_shift (X) -{ - m_op->ref (); -} - -GeoShapeShift::~GeoShapeShift() -{ - m_op->unref (); -} - -double GeoShapeShift::volume () const -{ - return m_op->volume (); -} - -const std::string & GeoShapeShift::type () const -{ - return s_classType; -} - -ShapeType GeoShapeShift::typeID () const -{ - return s_classTypeID; -} - -const GeoShape* GeoShapeShift::getOp () const -{ - return m_op; -} - -const HepGeom::Transform3D & GeoShapeShift::getX () const -{ - return m_shift; -} - -void GeoShapeShift::exec (GeoShapeAction *action) const -{ - action->getPath ()->push (this); - action->handleShift (this); - if (action->shouldTerminate ()) - { - action->getPath ()->pop (); - return; - } - - if (action->getDepthLimit ().isValid () - && action->getPath ()->getLength () > action->getDepthLimit ()) - { - } - - else - { - m_op->exec(action); - if (action->shouldTerminate ()) - { - action->getPath ()->pop (); - return; - } - } - action->getPath()->pop(); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoShapeSubtraction.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoShapeSubtraction.cxx deleted file mode 100755 index 632b4df52400f1d48836162e29ce935a574df890..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoShapeSubtraction.cxx +++ /dev/null @@ -1,88 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoShapeSubtraction.h" -#include "GeoModelKernel/GeoShapeAction.h" -#include "GeoModelKernel/GeoPolyhedrizeAction.h" -#include "GeoModelKernel/GeoPolyhedron.h" -#include <stdexcept> - -const std::string GeoShapeSubtraction::s_classType = "Subtraction"; -const ShapeType GeoShapeSubtraction::s_classTypeID = 0x02; - -GeoShapeSubtraction::GeoShapeSubtraction (const GeoShape* A, const GeoShape* B) - : m_opA (A) - , m_opB (B) -{ - m_opA->ref (); - m_opB->ref (); -} - -GeoShapeSubtraction::~GeoShapeSubtraction() -{ - m_opA->unref (); - m_opB->unref (); -} - -double GeoShapeSubtraction::volume () const -{ - GeoPolyhedrizeAction a; - exec(&a); - const GeoPolyhedron *poly = a.getPolyhedron(); - double vol = poly->GetVolume (); - return vol; -} - -const std::string & GeoShapeSubtraction::type () const -{ - return s_classType; -} - -ShapeType GeoShapeSubtraction::typeID () const -{ - return s_classTypeID; -} - -const GeoShape* GeoShapeSubtraction::getOpA () const -{ - return m_opA; -} - -const GeoShape* GeoShapeSubtraction::getOpB () const -{ - return m_opB; -} - -void GeoShapeSubtraction::exec (GeoShapeAction *action) const -{ - action->getPath ()->push (this); - action->handleSubtraction (this); - if (action->shouldTerminate ()) - { - action->getPath ()->pop (); - return; - } - - if (action->getDepthLimit ().isValid () - && action->getPath ()->getLength () > action->getDepthLimit ()) - { - } - - else - { - m_opA->exec(action); - if (action->shouldTerminate ()) - { - action->getPath ()->pop (); - return; - } - m_opB->exec(action); - if (action->shouldTerminate ()) - { - action->getPath ()->pop (); - return; - } - } - action->getPath()->pop(); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoShapeUnion.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoShapeUnion.cxx deleted file mode 100755 index 7d2a4acf8c9fcb5220b3459ae536a97c21b4d2a6..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoShapeUnion.cxx +++ /dev/null @@ -1,89 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoShapeUnion.h" -#include "GeoModelKernel/GeoShapeAction.h" -#include "GeoModelKernel/GeoPolyhedron.h" -#include "GeoModelKernel/GeoPolyhedrizeAction.h" -#include <stdexcept> - -const std::string GeoShapeUnion::s_classType = "Union"; -const ShapeType GeoShapeUnion::s_classTypeID = 0x01; - -GeoShapeUnion::GeoShapeUnion (const GeoShape* A, const GeoShape* B) - : m_opA (A) - , m_opB (B) -{ - m_opA->ref (); - m_opB->ref (); -} - -GeoShapeUnion::~GeoShapeUnion() -{ - m_opA->unref (); - m_opB->unref (); -} - -double GeoShapeUnion::volume () const -{ - GeoPolyhedrizeAction a; - exec (&a); - const GeoPolyhedron *poly = a.getPolyhedron (); - double vol = poly->GetVolume (); - return vol; -} - -const std::string & GeoShapeUnion::type () const -{ - return s_classType; -} - -ShapeType GeoShapeUnion::typeID () const -{ - return s_classTypeID; -} - -const GeoShape* GeoShapeUnion::getOpA () const -{ - return m_opA; -} - -const GeoShape* GeoShapeUnion::getOpB () const -{ - return m_opB; -} - -void GeoShapeUnion::exec (GeoShapeAction *action) const -{ - action->getPath ()->push (this); - action->handleUnion (this); - if (action->shouldTerminate ()) - { - action->getPath ()->pop (); - return; - } - - if (action->getDepthLimit ().isValid () - && action->getPath ()->getLength () > action->getDepthLimit ()) - { - } - - else - { - m_opA->exec(action); - if (action->shouldTerminate ()) - { - action->getPath ()->pop (); - return; - } - m_opB->exec(action); - if (action->shouldTerminate ()) - { - action->getPath ()->pop (); - return; - } - } - action->getPath()->pop(); -} - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoSimplePolygonBrep.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoSimplePolygonBrep.cxx deleted file mode 100755 index 3d6971dee7ab6e5442b631e53ce8f269a40e6cb8..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoSimplePolygonBrep.cxx +++ /dev/null @@ -1,68 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoSimplePolygonBrep.h" -#include "GeoModelKernel/GeoShapeAction.h" -#include "PolygonTriangulator.h"//For volume. -#include <cmath> -#include <stdexcept> - -const std::string GeoSimplePolygonBrep::s_classType = "SimplePolygonBrep"; -const ShapeType GeoSimplePolygonBrep::s_classTypeID = 0x20; - -GeoSimplePolygonBrep::GeoSimplePolygonBrep(double dz) - : m_dZ(dz) -{ -} - -GeoSimplePolygonBrep::~GeoSimplePolygonBrep() -{ -} - -double GeoSimplePolygonBrep::volume () const -{ - if (!isValid()) - throw std::runtime_error ("Volume requested for incomplete simple polygon brep"); - - //Todo: Cache the polygon area so we wont have to do this every time. - PolygonTriangulator pt(m_xVertices,m_yVertices); - - double area(0);//Fixme: Should be cached! - - double x1, x2, x3, y1, y2, y3; - PolygonTriangulator::Triangles::const_iterator it, itE = pt.triangles()->end(); - for (it = pt.triangles()->begin(); it!=itE; ++it) { - x1 = m_xVertices.at(it->at(0)-1); - x2 = m_xVertices.at(it->at(1)-1); - x3 = m_xVertices.at(it->at(2)-1); - y1 = m_yVertices.at(it->at(0)-1); - y2 = m_yVertices.at(it->at(1)-1); - y3 = m_yVertices.at(it->at(2)-1); - area += fabs ( -x2*y1 + x3*y1 + x1 * y2 - x3 * y2 - x1*y3 + x2*y3 );//This is actually twice the area of the triangle we are adding - } - - return area * m_dZ;//area is thus twice the area, but dZ is only half the depth, so the two factors of two cancel out. -} - -const std::string & GeoSimplePolygonBrep::type() const -{ - return s_classType; -} - -ShapeType GeoSimplePolygonBrep::typeID() const -{ - return s_classTypeID; -} - -void GeoSimplePolygonBrep::addVertex(double XVertex, double YVertex) -{ - m_xVertices.push_back(XVertex); - m_yVertices.push_back(YVertex); -} - -void GeoSimplePolygonBrep::exec(GeoShapeAction *action) const -{ - action->handleSimplePolygonBrep(this); -} - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTessellatedSolid.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTessellatedSolid.cxx deleted file mode 100644 index 318eea22d823f2c465ced5d923c5c8422481958f..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTessellatedSolid.cxx +++ /dev/null @@ -1,56 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoTessellatedSolid.h" -#include "GeoModelKernel/GeoShapeAction.h" - -const std::string GeoTessellatedSolid::s_classType = "TessellatedSolid"; -const ShapeType GeoTessellatedSolid::s_classTypeID = 0x21; - -GeoTessellatedSolid::GeoTessellatedSolid() -{ -} - -GeoTessellatedSolid::~GeoTessellatedSolid() -{ - for(size_t i=0; i<m_facets.size(); ++i) - m_facets[i]->unref(); -} - -double GeoTessellatedSolid::volume() const -{ - // -- ToDo - return 0.; -} - -const std::string& GeoTessellatedSolid::type() const -{ - return s_classType; -} - -ShapeType GeoTessellatedSolid::typeID() const -{ - return s_classTypeID; -} - -void GeoTessellatedSolid::exec(GeoShapeAction *action) const -{ - action->handleTessellatedSolid(this); -} - -void GeoTessellatedSolid::addFacet(GeoFacet* facet) -{ - facet->ref(); - m_facets.push_back(facet); -} - -GeoFacet* GeoTessellatedSolid::getFacet(size_t index) const -{ - return (index<m_facets.size() ? m_facets[index] : 0); -} - -size_t GeoTessellatedSolid::getNumberOfFacets() const -{ - return m_facets.size(); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTorus.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTorus.cxx deleted file mode 100755 index 0adb87aa4c543af95fccbc11c7c99d57a055346b..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTorus.cxx +++ /dev/null @@ -1,45 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoTorus.h" -#include "GeoModelKernel/GeoPolyhedron.h" -#include "GeoModelKernel/GeoShapeAction.h" - -const std::string GeoTorus::s_classType = "Torus"; -const ShapeType GeoTorus::s_classTypeID = 0x24; - -GeoTorus::GeoTorus (double Rmin, double Rmax, double Rtor, double SPhi, double DPhi) - : m_rMin (Rmin) - , m_rMax (Rmax) - , m_rTor(Rtor) - , m_sPhi (SPhi) - , m_dPhi (DPhi) -{ -} - - -GeoTorus::~GeoTorus() -{ -} - -//## Other Operations (implementation) -double GeoTorus::volume () const -{ - return 8.0; -} - -const std::string & GeoTorus::type () const -{ - return s_classType; -} - -ShapeType GeoTorus::typeID () const -{ - return s_classTypeID; -} - -void GeoTorus::exec (GeoShapeAction *action) const -{ - action->handleTorus(this); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTransform.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTransform.cxx deleted file mode 100755 index db85aad747d862f796a09aa95ae544c6690ccb9b..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTransform.cxx +++ /dev/null @@ -1,30 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoTransform.h" -#include "GeoModelKernel/GeoNodeAction.h" - -GeoTransform::GeoTransform (const HepGeom::Transform3D& transform) - : m_transform(transform) -{ -} - -GeoTransform::~GeoTransform() -{ -} - -HepGeom::Transform3D GeoTransform::getTransform(const GeoVAlignmentStore* /*store*/) const -{ - return m_transform; -} - -HepGeom::Transform3D GeoTransform::getDefTransform(const GeoVAlignmentStore* /*store*/) const -{ - return m_transform; -} - -void GeoTransform::exec(GeoNodeAction *action) const -{ - action->handleTransform(this); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTrap.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTrap.cxx deleted file mode 100755 index 19c0b8eef192badb730151ed35c5fc268be12c01..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTrap.cxx +++ /dev/null @@ -1,61 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoTrap.h" -#include "GeoModelKernel/GeoShapeAction.h" - -const std::string GeoTrap::s_classType = "Trap"; -const ShapeType GeoTrap::s_classTypeID = 0x15; - -GeoTrap::GeoTrap (double ZHalfLength, double Theta, double Phi, double Dydzn, double Dxdyndzn, double Dxdypdzn, double Angleydzn, double Dydzp, double Dxdyndzp, double Dxdypdzp, double Angleydzp) - : m_zHalfLength (ZHalfLength) - , m_theta (Theta) - , m_phi (Phi) - , m_dydzn (Dydzn) - , m_dxdyndzn (Dxdyndzn) - , m_dxdypdzn (Dxdypdzn) - , m_angleydzn (Angleydzn) - , m_dydzp (Dydzp) - , m_dxdyndzp (Dxdyndzp) - , m_dxdypdzp (Dxdypdzp) - , m_angleydzp (Angleydzp) -{ -} - -GeoTrap::~GeoTrap() -{ -} - -double GeoTrap::volume () const -{ - double fDz = m_zHalfLength; - double fDy1 = m_dydzn; - double pDx1 = m_dxdyndzn; - double pDx2 = m_dxdypdzn; - double fDy2 = m_dydzp; - double pDx3 = m_dxdyndzp; - double pDx4 = m_dxdypdzp; - - - double fDx1 = 0.5 * (pDx1 + pDx2); - double fDx2 = 0.5 * (pDx3 + pDx4); - - return 4.0 * ((fDx1 + fDx2) * (fDy1 + fDy2) * (fDz * 0.5) + - (fDx2 - fDx1) * (fDy2 - fDy1) * (fDz * (1./6))); -} - -const std::string & GeoTrap::type () const -{ - return s_classType; -} - -ShapeType GeoTrap::typeID () const -{ - return s_classTypeID; -} - -void GeoTrap::exec (GeoShapeAction *action) const -{ - action->handleTrap(this); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTraversalState.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTraversalState.cxx deleted file mode 100755 index 59e37fe35c6c842cc0327f45e1ce1abdf0163522..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTraversalState.cxx +++ /dev/null @@ -1,102 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoTraversalState.h" - -GeoTraversalState::GeoTraversalState () -{ -} - -GeoTraversalState::~GeoTraversalState() -{ -} - -const HepGeom::Transform3D & GeoTraversalState::getTransform () const -{ - return m_transform; -} - -const std::string & GeoTraversalState::getName () const -{ - return m_name; -} - -const HepGeom::Transform3D & GeoTraversalState::getDefTransform () const -{ - return m_defTransform; -} - -const std::string & GeoTraversalState::getAbsoluteName () const -{ - return m_absName; -} - -const HepGeom::Transform3D & GeoTraversalState::getDefAbsoluteTransform () const -{ - return m_defAbsTransform; -} - -const HepGeom::Transform3D & GeoTraversalState::getAbsoluteTransform () const -{ - return m_absTransform; -} - -void GeoTraversalState::setTransform (const HepGeom::Transform3D &transform) -{ - m_transform = transform; - m_absTransform = m_absTransformList.top () * transform; -} - -void GeoTraversalState::setName (const std::string &name) -{ - m_name = name; - m_absName = m_absNameList.top () + "/" + name; -} - -void GeoTraversalState::setDefTransform (const HepGeom::Transform3D &transform) -{ - m_defTransform = transform; - m_defAbsTransform = m_defAbsTransformList.top () * transform; -} - -void GeoTraversalState::nextLevel (const GeoVPhysVol* pv) -{ - m_absNameList.push (m_absName); - m_absTransformList.push (m_absTransform); - m_defAbsTransformList.push (m_defAbsTransform); - - m_path.push(pv); - // - // Reinitialize to identity. - // - - m_absTransform = m_defAbsTransform = m_transform = m_defTransform = - HepGeom::Transform3D (); -} - -void GeoTraversalState::previousLevel () -{ - m_absTransform = m_absTransformList.top (); - m_defAbsTransform = m_defAbsTransformList.top (); - m_absTransformList.pop (); - m_defAbsTransformList.pop (); - m_absNameList.pop (); - m_path.pop(); - m_transform = m_defTransform = HepGeom::Transform3D (); -} - -const GeoNodePath * GeoTraversalState::getPath () const -{ - return &m_path; -} - -void GeoTraversalState::setId (const Query<int> &id) -{ - m_id=id; -} - -const Query<int> GeoTraversalState::getId () const -{ - return m_id; -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTrd.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTrd.cxx deleted file mode 100755 index 9e174d30906512ff3685b8a83576bd8dc0fb0473..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTrd.cxx +++ /dev/null @@ -1,50 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoTrd.h" -#include "GeoModelKernel/GeoShapeAction.h" -#include "GeoModelKernel/GeoPolyhedron.h" - -const std::string GeoTrd::s_classType = "Trd"; -const ShapeType GeoTrd::s_classTypeID = 0x16; - -GeoTrd::GeoTrd (double XHalfLength1, double XHalfLength2, double YHalfLength1, double YHalfLength2, double ZHalfLength) - : m_xHalfLength1 (XHalfLength1) - , m_xHalfLength2 (XHalfLength2) - , m_yHalfLength1 (YHalfLength1) - , m_yHalfLength2 (YHalfLength2) - , m_zHalfLength (ZHalfLength) -{ -} - -GeoTrd::~GeoTrd() -{ -} - -double GeoTrd::volume () const -{ - double fDz = m_zHalfLength; - double fDy1 = m_yHalfLength1; - double fDx1 = m_xHalfLength1; - double fDx2 = m_xHalfLength2; - double fDy2 = m_yHalfLength2; - return 4.0 * ((fDx1 + fDx2) * (fDy1 + fDy2) * (fDz * 0.5) + - (fDx2 - fDx1) * (fDy2 - fDy1) * (fDz * (1./6))); -} - -const std::string & GeoTrd::type () const -{ - return s_classType; -} - -ShapeType GeoTrd::typeID () const -{ - return s_classTypeID; -} - -void GeoTrd::exec (GeoShapeAction *action) const -{ - action->handleTrd(this); -} - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTube.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTube.cxx deleted file mode 100755 index cdf3c826e2c353088343e6b1703e98cde97b5b6c..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTube.cxx +++ /dev/null @@ -1,45 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoTube.h" -#include "GeoModelKernel/GeoPolyhedrizeAction.h" -#include "GeoModelKernel/GeoShapeAction.h" -#include <cmath> - -const std::string GeoTube::s_classType = "Tube"; -const ShapeType GeoTube::s_classTypeID = 0x17; - -GeoTube::GeoTube (double RMin, double RMax, double ZHalfLength) - : m_rMin (RMin) - , m_rMax (RMax) - , m_zHalfLength (ZHalfLength) -{ -} - -GeoTube::~GeoTube() -{ -} - -double GeoTube::volume () const -{ -#ifndef M_PI - double M_PI = acos (-1.0); -#endif - return 2 * M_PI * (m_rMax * m_rMax - m_rMin * m_rMin) * m_zHalfLength; -} - -const std::string & GeoTube::type () const -{ - return s_classType; -} - -ShapeType GeoTube::typeID () const -{ - return s_classTypeID; -} - -void GeoTube::exec (GeoShapeAction *action) const -{ - action->handleTube(this); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTubs.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTubs.cxx deleted file mode 100755 index 52323fb0db5b156b52eb16d757952ffe9c90efe2..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoTubs.cxx +++ /dev/null @@ -1,44 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoTubs.h" -#include "GeoModelKernel/GeoShapeAction.h" -#include "GeoModelKernel/GeoPolyhedron.h" - -const std::string GeoTubs::s_classType = "Tubs"; -const ShapeType GeoTubs::s_classTypeID = 0x18; - -GeoTubs::GeoTubs (double RMin, double RMax, double ZHalfLength, double SPhi, double DPhi) - : m_rMin (RMin) - , m_rMax (RMax) - , m_zHalfLength (ZHalfLength) - , m_sPhi (SPhi) - , m_dPhi (DPhi) -{ -} - -GeoTubs::~GeoTubs() -{ -} - -double GeoTubs::volume () const -{ - return m_dPhi * (m_rMax * m_rMax - m_rMin * m_rMin) * m_zHalfLength; -} - -const std::string & GeoTubs::type () const -{ - return s_classType; -} - -ShapeType GeoTubs::typeID () const -{ - return s_classTypeID; -} - -void GeoTubs::exec (GeoShapeAction *action) const -{ - action->handleTubs(this); -} - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVDetectorElement.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVDetectorElement.cxx deleted file mode 100755 index dead35549118972298320bfbaa36f332114fd73c..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVDetectorElement.cxx +++ /dev/null @@ -1,14 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoVDetectorElement.h" - -GeoVDetectorElement::GeoVDetectorElement (const GeoVFullPhysVol* fullPhysVol) - : m_materialGeom(fullPhysVol) -{ -} - -GeoVDetectorElement::~GeoVDetectorElement() -{ -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVDetectorFactory.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVDetectorFactory.cxx deleted file mode 100755 index 25daefa33e6648875eab75b928d3063cb5d89b5c..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVDetectorFactory.cxx +++ /dev/null @@ -1,15 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoVDetectorFactory.h" -#include "GeoModelKernel/GeoVDetectorManager.h" -#include "GeoModelKernel/GeoPhysVol.h" - -GeoVDetectorFactory::GeoVDetectorFactory() -{ -} - -GeoVDetectorFactory::~GeoVDetectorFactory() -{ -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVDetectorManager.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVDetectorManager.cxx deleted file mode 100755 index c5b8370f51f351d5c763898d7c849521773754df..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVDetectorManager.cxx +++ /dev/null @@ -1,24 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoVDetectorManager.h" -#include "GeoModelKernel/GeoVDetectorElement.h" - -GeoVDetectorManager::GeoVDetectorManager() -{ -} - -GeoVDetectorManager::~GeoVDetectorManager() -{ -} - -void GeoVDetectorManager::setName(const std::string & name) -{ - m_name=name; -} - -const std::string & GeoVDetectorManager::getName() const -{ - return m_name; -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVFullPhysVol.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVFullPhysVol.cxx deleted file mode 100755 index 45767884ecfc1bd12de9938b768639aaeb5aa833..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVFullPhysVol.cxx +++ /dev/null @@ -1,209 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoVFullPhysVol.h" -#include "GeoModelKernel/GeoVAlignmentStore.h" -#include <string> - -GeoVFullPhysVol::GeoVFullPhysVol(const GeoLogVol* logVol) - : GeoVPhysVol(logVol) - , m_id(nullptr) - , m_absPosInfo(nullptr) -{ -} - -GeoVFullPhysVol::~GeoVFullPhysVol() -{ - delete m_absPosInfo; - delete m_id; -} - -const HepGeom::Transform3D & GeoVFullPhysVol::getAbsoluteTransform(GeoVAlignmentStore* store) const -{ - //------------------------------------------------------------------------------------------------// - // // - // Get ready for something to go wrong: // - // // - static std::string errorMessage("Full Physical Volume errroneously placed in a shared portion of a detector description graph.\nName of shared volume: "); - // // - //------------------------------------------------------------------------------------------------// - if(isShared()) throw std::runtime_error(errorMessage); - - if(store==nullptr && !m_absPosInfo) m_absPosInfo = new GeoAbsPositionInfo(); - - // - // Check the cache first. If not empty, then return the cached value - // - if(store==nullptr){ - if(m_absPosInfo->getAbsTransform()) return *m_absPosInfo->getAbsTransform(); - } - else { - const HepGeom::Transform3D* storedPos = store->getAbsPosition(this); - if(storedPos!=nullptr) return *storedPos; - } - - // The cache is empty. Compute the absolute position from the top of the tree down to here, and cache it - PVConstLink child(this), parent(getParent()); - HepGeom::Transform3D tProd; - - while (parent) { -#ifdef HOSED - int index = parent->indexOf (child); - HepGeom::Transform3D transform = parent->getXToChildVol(index,store); -#else - HepGeom::Transform3D transform = child->getX(store); -#endif - tProd = transform * tProd; - child = parent; - if(child->isShared()) { - throw std::runtime_error(errorMessage); - } - else { - parent = child->getParent(); - } - } - - if(store==nullptr) { - m_absPosInfo->setAbsTransform(tProd); - return *m_absPosInfo->getAbsTransform(); - } - else { - store->setAbsPosition(this,tProd); - const HepGeom::Transform3D* storedPosition = store->getAbsPosition(this); - return *storedPosition; - } -} - -void GeoVFullPhysVol::clearPositionInfo() const -{ - delete m_absPosInfo; - m_absPosInfo = nullptr; -} - -const HepGeom::Transform3D& GeoVFullPhysVol::getDefAbsoluteTransform(GeoVAlignmentStore* store) const -{ - //------------------------------------------------------------------------------------------------// - // // - // Get ready for something to go wrong: // - // // - static std::string errorMessage("Full Physical Volume errroneously placed in a shared portion of a detector description graph.\nName of shared volume: "); - // // - //------------------------------------------------------------------------------------------------// - if(isShared()) throw std::runtime_error(errorMessage); - - if(store==nullptr && !m_absPosInfo) m_absPosInfo = new GeoAbsPositionInfo(); - - // - // Check the cache first. If not empty, then return the cached value - // - if(store==nullptr){ - if(m_absPosInfo->getDefAbsTransform()) return *m_absPosInfo->getDefAbsTransform(); - } - else { - const HepGeom::Transform3D* storedPos = store->getDefAbsPosition(this); - if(storedPos!=nullptr) return *storedPos; - } - - // The cache is empty. Compute the absolute position from the top of the tree down to here, and cache it - PVConstLink child(this), parent(getParent()); - HepGeom::Transform3D tProd; - - while (parent) { -#ifdef HOSED - int index = parent->indexOf (child); - HepGeom::Transform3D transform = parent->getDefXToChildVol(index,store); -#else - HepGeom::Transform3D transform = child->getDefX(store); -#endif - tProd = transform * tProd; - child = parent; - if(child->isShared()) { - throw std::runtime_error(errorMessage); - } - else { - parent = child->getParent(); - } - } - - if(store==nullptr) { - m_absPosInfo->setDefAbsTransform(tProd); - return *m_absPosInfo->getDefAbsTransform(); - } - else { - store->setDefAbsPosition(this,tProd); - const HepGeom::Transform3D* storedPosition = store->getDefAbsPosition(this); - return *storedPosition; - } -} - -const std::string & GeoVFullPhysVol::getAbsoluteName () -{ - //------------------------------------------------------------------------------------------------// - // // - // Get ready for something to go wrong: // - // // - static std::string errorMessage("Full Physical Volume errroneously placed in a shared portion of a detector description graph.\nName of shared volume: "); - // // - //------------------------------------------------------------------------------------------------// - - if(m_absName == "") { - if(isShared()) throw std::runtime_error(errorMessage); - - // - // Check the cache. If it is empty, compute the absolute position from the - // top of the tree down to here, and update the cache - // - PVConstLink child(this), parent(getParent()); - std::string tProd; - - while (parent) { - int index = parent->indexOf (child); - std::string name = parent->getNameOfChildVol (index); - - tProd = tProd + "/" + name; - child = parent; - if (child->isShared ()) { - throw std::runtime_error(errorMessage); - } - else { - parent = child->getParent (); - } - } - m_absName = tProd; - } - - return m_absName; -} - -unsigned int GeoVFullPhysVol::getId () const -{ - //------------------------------------------------------------------------------------------------// - // // - // Get ready for something to go wrong: // - // // - static std::string errorMessage("Full Physical Volume errroneously placed in a shared portion of a detector description graph.\nName of shared volume: "); - // // - //------------------------------------------------------------------------------------------------// - - if(m_id==nullptr) { - if(isShared()) throw std::runtime_error(errorMessage); - - // - // Check the cache. If it is empty, compute the absolute position from the - // top of the tree down to here, and update the cache - // - PVConstLink child = this, parent = nullptr; - if(child->isShared()) { - throw std::runtime_error(errorMessage); - } - else { - parent = child->getParent(); - } - - int index = parent->indexOf(child); - m_id = new Query<int>(parent->getIdOfChildVol(index)); - } - return *m_id; -} - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVPhysVol.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVPhysVol.cxx deleted file mode 100755 index 616f90ab2c2a353d6b8f0f87cbd931b94dde0306..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVPhysVol.cxx +++ /dev/null @@ -1,100 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoVPhysVol.h" -#include "GeoModelKernel/GeoVolumeAction.h" -#include "GeoAccessVolumeAction.h" -#include <stdexcept> -#include <string> - -GeoVPhysVol::GeoVPhysVol(const GeoLogVol* LogVol) - : m_parentPtr(nullptr) - , m_logVol(LogVol) -{ - if(m_logVol) m_logVol->ref(); -} - -GeoVPhysVol::~GeoVPhysVol() -{ - if(m_logVol) m_logVol->unref(); -} - -Query<unsigned int> GeoVPhysVol::indexOf(PVConstLink daughter) const -{ - unsigned int nChildVols{getNChildVols()}; - for(unsigned int i=0; i<nChildVols; i++) { // To Do: replace this with Volume Iterator! - if(getChildVol(i) == daughter) return i; - } - return Query<unsigned int >(); -} - -PVConstLink GeoVPhysVol::getParent() const -{ - if(m_parentPtr != this) return m_parentPtr; - return nullptr; -} - -const GeoLogVol* GeoVPhysVol::getLogVol() const -{ - return m_logVol; -} - -void GeoVPhysVol::apply(GeoVolumeAction *action) const -{ - int nVols(0); - switch(action->getType()) { - case GeoVolumeAction::TOP_DOWN: - action->handleVPhysVol(this); - if(action->shouldTerminate()) return; - - action->getState()->nextLevel(this); - nVols = getNChildVols(); - for(int d = 0; d < nVols; d++) { - GeoAccessVolumeAction av(d,nullptr); - exec (&av); - - action->getState()->setTransform(av.getTransform()); - action->getState()->setDefTransform(av.getDefTransform()); - action->getState()->setId(av.getId()); - action->getState()->setName(av.getName()); - - av.getVolume()->apply(action); - if(action->shouldTerminate()) break; - } - action->getState()->previousLevel(); - break; - case GeoVolumeAction::BOTTOM_UP: - action->getState()->nextLevel(this); - nVols = getNChildVols(); - for(int d = 0; d < nVols; d++) { - GeoAccessVolumeAction av(d,nullptr); - exec(&av); - - action->getState()->setTransform(av.getTransform()); - action->getState()->setDefTransform(av.getDefTransform()); - action->getState()->setId(av.getId()); - action->getState()->setName(av.getName()); - - av.getVolume()->apply(action); - if(action->shouldTerminate()) break; - } - action->getState()->previousLevel(); - - action->handleVPhysVol(this); - if(action->shouldTerminate()) return; // To Do: do I need this? - break; - default: - throw std::runtime_error("GeoVPhysVol::apply(). Unsupported GeoVolumeAction type " + std::to_string((unsigned)action->getType())); - } -} - -void GeoVPhysVol::dockTo(GeoVPhysVol* parent) -{ - if(m_parentPtr) { - m_parentPtr = this; - } - else { - m_parentPtr = parent; - } -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVolumeAction.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVolumeAction.cxx deleted file mode 100755 index 5dbf90ff2ce428000a758d013f10d4fa5071c55b..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVolumeAction.cxx +++ /dev/null @@ -1,44 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoVolumeAction.h" - -GeoVolumeAction::GeoVolumeAction (Type type) - : m_type(type) - , m_terminate(false) -{ -} - -GeoVolumeAction::~GeoVolumeAction() -{ -} - -void GeoVolumeAction::handleVPhysVol (const GeoVPhysVol *) -{ -} - -void GeoVolumeAction::terminate () -{ - m_terminate = true; -} - -bool GeoVolumeAction::shouldTerminate () const -{ - return m_terminate; -} - -const GeoTraversalState* GeoVolumeAction::getState () const -{ - return &m_traversalState; -} - -GeoTraversalState* GeoVolumeAction::getState () -{ - return &m_traversalState; -} - -GeoVolumeAction::Type GeoVolumeAction::getType () const -{ - return m_type; -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVolumeCursor.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVolumeCursor.cxx deleted file mode 100755 index d4035b11b4090c712a90891d08e24af8d3b917b5..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoVolumeCursor.cxx +++ /dev/null @@ -1,241 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoVolumeCursor.h" -#include "GeoModelKernel/GeoNameTag.h" -#include "GeoModelKernel/GeoSerialDenominator.h" -#include "GeoModelKernel/GeoSerialIdentifier.h" -#include "GeoModelKernel/GeoAlignableTransform.h" -#include <string> - -GeoVolumeCursor::GeoVolumeCursor (PVConstLink parent, GeoVAlignmentStore* store) - : m_parent(parent) - , m_majorIndex(0) - , m_minorIndex(0) - , m_minorLimit(0) - , m_serialTransformer(nullptr) - , m_nameTag(nullptr) - , m_serialDenominator(nullptr) - , m_idTag(nullptr) - , m_serialDenomPosition(0) - , m_serialIdentifier(nullptr) - , m_serialIdentPosition(0) - , m_volCount(0) - , m_hasAlignTrans(false) - , m_alignStore(store) -{ - setDepthLimit(0); - next(); -} - -GeoVolumeCursor::~GeoVolumeCursor() -{ -} - -void GeoVolumeCursor::next() { - resuscitate(); - - if (m_minorLimit) { // We are doing a serial transformer - m_minorIndex++; - if (m_minorIndex==m_minorLimit) { - m_minorIndex=0; - m_minorLimit=0; - m_majorIndex++; - next(); - } - else { - m_volCount++; - } - } - else { // We are not doing a serial transformer - m_idTag = nullptr; - m_nameTag = nullptr; - m_serialTransformer = nullptr; - m_pendingTransformList.erase (m_pendingTransformList.begin (), - m_pendingTransformList.end ()); - m_hasAlignTrans = false; - m_volume=nullptr; - - int N = m_parent->getNChildNodes(); - if(N==0) return; - const GeoGraphNode * const *node = m_parent->getChildNode(m_majorIndex); - const GeoGraphNode * const *back = m_parent->getChildNode(N-1); - const GeoGraphNode * const *end = back+1; - while (node!=end) { - (*node)->exec(this); - if (m_minorLimit) { // We have stepped into ST - } - else { // We have not stepped into ST. - node++; - m_majorIndex++; - } - if (m_terminate) { - m_volCount++; - break; - } - } - } -} - -void GeoVolumeCursor::resuscitate() { - m_terminate = false; -} - -bool GeoVolumeCursor::atEnd() const { - return !m_volume; -} - -void GeoVolumeCursor::handleTransform (const GeoTransform *xform) -{ - m_pendingTransformList.push_back (xform); - if(dynamic_cast<const GeoAlignableTransform*>(xform)) - m_hasAlignTrans = true; -} - -void GeoVolumeCursor::handlePhysVol (const GeoPhysVol *vol) -{ - - m_volume = vol; - unsigned int listSize = m_pendingTransformList.size (); - if (listSize == 0) { - m_transform = HepGeom::Transform3D(); - m_defTransform = HepGeom::Transform3D(); - } - else { - m_transform = m_pendingTransformList[0]->getTransform(m_alignStore); - m_defTransform = m_pendingTransformList[0]->getDefTransform(m_alignStore); - for (unsigned int t = 1; t < m_pendingTransformList.size (); t++) { - m_transform = m_transform * m_pendingTransformList[t]->getTransform(m_alignStore); - m_defTransform = m_defTransform * m_pendingTransformList[t]->getDefTransform(m_alignStore); - } - } - terminate (); -} - -void GeoVolumeCursor::handleFullPhysVol (const GeoFullPhysVol *vol) -{ - m_volume = vol; - unsigned int listSize = m_pendingTransformList.size (); - if (listSize == 0) { - m_transform = HepGeom::Transform3D(); - m_defTransform = HepGeom::Transform3D(); - } - else { - m_transform = m_pendingTransformList[0]->getTransform(m_alignStore); - m_defTransform = m_pendingTransformList[0]->getDefTransform(m_alignStore); - for (unsigned int t = 1; t < m_pendingTransformList.size (); t++) { - m_transform = m_transform * m_pendingTransformList[t]->getTransform(m_alignStore); - m_defTransform = m_defTransform * m_pendingTransformList[t]->getDefTransform(m_alignStore); - } - } - terminate (); -} - -void GeoVolumeCursor::handleSerialTransformer (const GeoSerialTransformer *sT) -{ - - m_minorLimit = sT->getNCopies(); - m_minorIndex = 0; - m_serialTransformer = sT; - m_volume = sT->getVolume(); - - unsigned int listSize = m_pendingTransformList.size (); - if (listSize == 0) { - m_transform = HepGeom::Transform3D(); - m_defTransform = HepGeom::Transform3D(); - } - else { - m_transform = m_pendingTransformList[0]->getTransform(m_alignStore); - m_defTransform = m_pendingTransformList[0]->getDefTransform(m_alignStore); - for (unsigned int t = 1; t < m_pendingTransformList.size (); t++) { - m_transform = m_transform * m_pendingTransformList[t]->getTransform(m_alignStore); - m_defTransform = m_defTransform * m_pendingTransformList[t]->getDefTransform(m_alignStore); - } - } - terminate (); -} - -void GeoVolumeCursor::handleNameTag (const GeoNameTag *nameTag) -{ - m_nameTag = nameTag; - m_serialDenominator = nullptr; - m_serialDenomPosition = 0; -} - -void GeoVolumeCursor::handleSerialDenominator (const GeoSerialDenominator *sD) -{ - m_serialDenominator = sD; - m_serialDenomPosition = m_volCount; -} - - -void GeoVolumeCursor::handleIdentifierTag (const GeoIdentifierTag *idTag) -{ - m_idTag = idTag; - m_serialIdentifier = nullptr; - m_serialIdentPosition = m_volCount; -} - -void GeoVolumeCursor::handleSerialIdentifier(const GeoSerialIdentifier *sI) -{ - m_serialIdentifier = sI; - m_serialIdentPosition =m_volCount; -} - -PVConstLink GeoVolumeCursor::getVolume () const -{ - return m_volume; -} - -HepGeom::Transform3D GeoVolumeCursor::getTransform () const -{ - if (m_minorLimit) { - return m_transform*m_serialTransformer->getTransform(m_minorIndex); - } - else { - return m_transform; - } -} - -HepGeom::Transform3D GeoVolumeCursor::getDefTransform () const -{ - if (m_minorLimit) { - return m_transform*m_serialTransformer->getTransform(m_minorIndex); - } - else { - return m_defTransform; - } -} - -std::string GeoVolumeCursor::getName () const -{ - std::string name; - if(m_nameTag) { - name = m_nameTag->getName(); - } - else if(m_serialDenominator) { - name = m_serialDenominator->getBaseName() + std::to_string((int)(m_volCount-m_serialDenomPosition-1)); - } - else { - name = "ANON"; - } - return name; -} - -Query<int> GeoVolumeCursor::getId () const -{ - Query<int> id; - if (m_idTag) { - id = Query<int> (m_idTag->getIdentifier ()); - } - else if (m_serialIdentifier) { - id = Query<int> (m_volCount - m_serialIdentPosition - 1 + m_serialIdentifier->getBaseId()); - } - return id; -} - -bool GeoVolumeCursor::hasAlignableTransform() const -{ - return m_hasAlignTrans; -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoXF.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeoXF.cxx deleted file mode 100755 index aec472376e591c2f189f5115ee8b4bc55a815e64..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoXF.cxx +++ /dev/null @@ -1,243 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeoXF.h" -#include <stdexcept> -namespace GeoXF -{ - - - - //------------------------------------------------------------------// - // // - // Implementation of Function // - // // - //------------------------------------------------------------------// - - Function::Function () - { - } - - Function::~Function () - { - } - - Product operator * (const Function & a, const Function & b) - { - return Product (&a, &b); - } - - PreMult operator * (const HepGeom::Transform3D & xf, const Function & b) - { - return PreMult (xf, &b); - } - - PostMult operator * (const Function & a, const HepGeom::Transform3D & xf) - { - return PostMult (&a, xf); - } - - unsigned int Function::dimensionality () const - { - return 1; - } - - //------------------------------------------------------------------// - // // - // Implementation of Product // - // // - //------------------------------------------------------------------// - - Product::Product (const Function * arg1, - const Function * arg2):m_arg1 (arg1->clone ()), - m_arg2 (arg2->clone ()) - { - if (arg1->dimensionality () != arg2->dimensionality ()) - { - throw std:: - runtime_error ("Warning: dimension mismatch in GeoXF::Product"); - } - } - - - // Every function must override this: - Product *Product::clone () const - { - return new Product (*this); - } - - // Copy constructor: - Product::Product (const Product & right):Function (), - m_arg1 (right.m_arg1->clone ()), m_arg2 (right.m_arg2->clone ()) - { - } - - - Product::~Product () - { - delete m_arg1; - delete m_arg2; - } - - unsigned int Product::dimensionality () const - { - return m_arg1->dimensionality (); - } - - HepGeom::Transform3D Product::operator () (double x) const - { - return (*m_arg1) (x) * (*m_arg2) (x); - } - - HepGeom::Transform3D Product::operator () (const Genfun::Argument & x) const - { - return (*m_arg1) (x) * (*m_arg2) (x); - } - - - - //------------------------------------------------------------------// - // // - // Implementation of PreMult // - // // - //------------------------------------------------------------------// - - PreMult::PreMult (const HepGeom::Transform3D & arg1, - const Function * arg2):m_arg1 (arg1), - m_arg2 (arg2->clone ()) - { - } - - - // Every function must override this: - PreMult *PreMult::clone () const - { - return new PreMult (*this); - } - - // Copy constructor: - PreMult::PreMult (const PreMult & right):Function (), m_arg1 (right.m_arg1), - m_arg2 (right.m_arg2->clone ()) - { - } - - - PreMult::~PreMult () - { - delete m_arg2; - } - - unsigned int PreMult::dimensionality () const - { - return m_arg2->dimensionality (); - } - - HepGeom::Transform3D PreMult::operator () (double x) const - { - return m_arg1 * (*m_arg2) (x); - } - - HepGeom::Transform3D PreMult::operator () (const Genfun::Argument & x) const - { - return m_arg1 * (*m_arg2) (x); - } - - - //------------------------------------------------------------------// - // // - // Implementation of PostMult // - // // - //------------------------------------------------------------------// - - PostMult::PostMult (const Function * arg1, - const HepGeom::Transform3D & arg2):m_arg1 (arg1->clone ()), - m_arg2 (arg2) - { - } - - - // Every function must override this: - PostMult *PostMult::clone () const - { - return new PostMult (*this); - } - - // Copy constructor: - PostMult::PostMult (const PostMult & right):Function (), - m_arg1 (right.m_arg1->clone ()), m_arg2 (right.m_arg2) - { - } - - - PostMult::~PostMult () - { - delete m_arg1; - } - - unsigned int PostMult::dimensionality () const - { - return m_arg1->dimensionality (); - } - - HepGeom::Transform3D PostMult::operator () (double x) const - { - return (*m_arg1) (x) * m_arg2; - } - - HepGeom::Transform3D PostMult::operator () (const Genfun::Argument & x) const - { - return (*m_arg1) (x) * m_arg2; - } - - - Pow::Pow (const HepGeom::Transform3D & xform, Genfun::GENFUNCTION f):m_xf (xform), - m_function (f.clone ()) - { - } - - Pow::~Pow () - { - delete m_function; - } - - HepGeom::Transform3D Pow::operator () (double x) const - { - // - // Get the translation part and the rotation part: - // - CLHEP::HepRotation rotate = m_xf.getRotation (); - CLHEP::Hep3Vector translate = m_xf.getTranslation (); - CLHEP::HepAxisAngle aa = rotate.axisAngle (); - // - // Evaluate the function - // - double nTimes = (*m_function) (x); - // - // Modify: - // - translate *= nTimes; - aa.setDelta (aa.delta () * nTimes); - // - // Now compose these and return a result: - // - return HepGeom::Translate3D (translate) * HepGeom::Rotate3D (aa.delta (), - aa.axis ()); - } - - HepGeom::Transform3D Pow::operator () (const Genfun::Argument & argument) const - { - return operator () (argument[0]); - } - - Pow *Pow::clone () const - { - return new Pow (*this); - } - - Pow::Pow (const Pow & right):Function (), m_xf (right.m_xf), - m_function (right.m_function->clone ()) - { - } - -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeometryMap.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/GeometryMap.cxx deleted file mode 100755 index 5b0e9418eacb69fb47a4755da146a1131ef637a0..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeometryMap.cxx +++ /dev/null @@ -1,120 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/GeometryMap.h" -#include "GeoModelKernel/GeoVolumeCursor.h" -#include <map> -#include <sys/types.h> -#include <regex.h> -// '^to\w*re$' -class GeometryMap::Clockwork { - -public: - - Clockwork():lV(0){} - - std::vector<std::string> geometryRegex; - std::vector<regex_t *> geometryPreg; - std::vector<std::vector<std::string> > pathList; - std::vector<PVConstLink> physicalVolumes; - unsigned int lV; - - void finalize(unsigned int i, PVConstLink v); -}; - - -GeometryMap::GeometryMap(): - m_c(new Clockwork()) { -} - - -GeometryMap::~GeometryMap() { - delete m_c; -} - -void GeometryMap::add(const std::string & Path) { - std::vector <std::string> pathList; - - std::string path=Path; - // First look for the character "/": - size_t pos = 0; - while (1) { - size_t end = path.find('/',pos); - if (end==path.npos) break; - - std::string sub0(path,pos,end-pos); - pathList.push_back(sub0); - std::string sub1(path,end+1,path.npos-end-1); - path=sub1; - pos=0; - } - // Then look for wild cards: - m_c->pathList.push_back(pathList); - - std::string regex="^"; - //size_t pos=0; - while (1) { - size_t end = path.find('*',pos); - std::string sub(path,pos,end-pos); - regex+=sub; - if (end==path.npos) break; - regex+=".*"; - pos=end+1; - if (pos==path.npos) break; - } - regex+="$"; - m_c->geometryRegex.push_back(regex); - regex_t *preg = new regex_t; - regcomp(preg,regex.c_str(),REG_EXTENDED); - m_c->geometryPreg.push_back(preg); - -} - -void GeometryMap::finalize( PVConstLink v) { - - for (size_t i=0;i<m_c->pathList.size();i++) { - m_c->lV=0; - m_c->finalize(i,v); - } -} - - -void GeometryMap::Clockwork::finalize(unsigned int i, PVConstLink v) { - - static const size_t NMATCH=11; - regmatch_t pmatch[NMATCH]; - - // Something has gone wrong... - if (lV>pathList[i].size()) { - return; - } - if (lV==pathList[i].size()) { - std::string name = v->getLogVol()->getName(); - if (regexec((geometryPreg[i]),name.c_str(), NMATCH, pmatch, 0)==0) { - physicalVolumes.push_back(v); - } - } - else { - GeoVolumeCursor x(v,nullptr); - while (!x.atEnd()) { - lV++; - finalize(i, x.getVolume()); - lV--; - x.next(); - } - } -} - - - - - - -GeometryMap::Iterator GeometryMap::begin() const { - return m_c->physicalVolumes.begin(); -} - -GeometryMap::Iterator GeometryMap::end() const { - return m_c->physicalVolumes.end(); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/PolygonTriangulator.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/PolygonTriangulator.cxx deleted file mode 100755 index 724440107804382567cb57f5f18eb23e86646066..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/PolygonTriangulator.cxx +++ /dev/null @@ -1,2112 +0,0 @@ -#include "PolygonTriangulator.h" - -/////////////////////////////////////////////////////////////////////// -// // -// Class: PolygonTriangulator // -// // -// Description: Triangulates any (non-complex) 2D polygon. // -// // -// Author: Thomas Kittelmann (Thomas.Kittelmann@cern.ch), March 2007 // -// // -// Notes: // -// // -// Actual algorithms are adapted from // -// http://www.mema.ucl.ac.be/~wu/Poly2Tri/poly2tri.html // -// (see copyright notice below) // -// // -// Main changes performed for the present incarnation are // -// interface & namespace changes, indentation, small // -// performance tweaks and removal of unused features. // -// Most importantly, got rid of static and globals so the class // -// can be reliably used more than once per process. Also, the // -// output triangles are sorted to preserve "handedness". // -// // -/////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -/////////////// Copyright file from poly2tri webpage follows: ///////////////// -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -// -// Poly2Tri:Fast and Robust Simple Polygon triangulation with/without holes -// by Sweep Line Algorithm -// Liang, Wu -// http://www.mema.ucl.ac.be/~wu/Poly2Tri/poly2tri.html -// Copyright (C) 2003, 2004, 2005, ALL RIGHTS RESERVED. -// -// --------------------------------------------------------------------- -// wu@mema.ucl.ac.be wuliang@femagsoft.com -// Centre for Sys. Eng. & App. Mech. FEMAGSoft S.A. -// Universite Cathalique de Louvain 4, Avenue Albert Einstein -// Batiment Euler, Avenue Georges Lemaitre, 4 B-1348 Louvain-la-Neuve -// B-1348, Louvain-la-Neuve Belgium -// Belgium -// --------------------------------------------------------------------- -// -// This program is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHAN- -// TABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// -// This program may be freely redistributed under the condition that all -// the copyright notices in all source files ( including the copyright -// notice printed when the `-h' switch is selected) are not removed.Both -// the binary and source codes may not be sold or included in any comme- -// rcial products without a license from the corresponding author(s) & -// entities. -// -// 1) Arbitrary precision floating-point arithmetic and fast robust geo- -// metric predicates (predicates.cc) is copyrighted by -// Jonathan Shewchuk (http://www.cs.berkeley.edu/~jrs) and you may get -// the source code from http://www.cs.cmu.edu/~quake/robust.html -// -// 2) The shell script mps2eps is copyrighted by Jon Edvardsson -// (http://www.ida.liu.se/~pelab/members/index.php4/?12) and you may -// get the copy from http://www.ida.liu.se/~joned/download/mps2eps/ -// -// 3) All other source codes and exmaples files distributed in Poly2Tri -// are copyrighted by Liang, Wu (http://www.mema.ucl.ac.be/~wu) and -// FEMAGSoft S.A. -// -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// - -#include <algorithm> -#include <cmath> -#include <cstdlib> -#include <map> -#include <limits> -#include <list> -#include <queue> -#include <set> -#include <iostream> -#include <stack> -#include <assert.h> - -namespace internal_poltrig { - - //////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////// Defs.h //////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////// - - //-------------------------------------------------------------------------/ - //Copyright (C) 2003, 2004, 2005, ALL RIGHTS RESERVED. - //Centre for Sys. Eng. & App. Mech. FEMAGSoft S.A. - //Universite Cathalique de Louvain 4, Avenue Albert Einstein - //Batiment Euler, Avenue Georges Lemaitre, 4 B-1348 Louvain-la-Neuve - //B-1348, Louvain-la-Neuve Belgium - //Belgium - //-------------------------------------------------------------------------/ - //Name: defs.h - //Purpose: some definition for mesh generation - //Author: Wu Liang - //Created: 03/2000 - //-------------------------------------------------------------------------/ - - -#define sqr(t) (t)*(t) - - //const double PI=3.141592653589793238462643383279502884197169399375105820974944592308; - enum Type { UNKNOWN, INPUT, INSERT, START, END, MERGE, SPLIT, REGULAR_UP, REGULAR_DOWN}; - - class Pointbase; - class Linebase; - - template <class T, class KeyType> class SplayTree; - typedef std::map<unsigned int, Pointbase*> PointbaseMap; - typedef std::map<unsigned int, Linebase*> LineMap; - typedef std::priority_queue<Pointbase> PQueue; - typedef SplayTree<Linebase*, double> EdgeBST; - typedef std::list<unsigned int> Monopoly; - typedef std::list<Monopoly> Monopolys; - typedef std::vector<unsigned int> Triangle; - typedef std::list<Triangle> Triangles; - typedef std::map<unsigned int, std::set<unsigned int> > AdjEdgeMap; - - - //////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////// predicates.cc ///////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////// - - /*****************************************************************************/ - /* */ - /* Routines for Arbitrary Precision Floating-point Arithmetic */ - /* and Fast Robust Geometric Predicates */ - /* (predicates.cc) */ - /* */ - /* May 18, 1996 */ - /* */ - /* Placed in the public domain by */ - /* Jonathan Richard Shewchuk */ - /* School of Computer Science */ - /* Carnegie Mellon University */ - /* 5000 Forbes Avenue */ - /* Pittsburgh, Pennsylvania 15213-3891 */ - /* jrs@cs.cmu.edu */ - /* */ - /* This file contains C implementation of algorithms for exact addition */ - /* and multiplication of floating-point numbers, and predicates for */ - /* robustly performing the orientation and incircle tests used in */ - /* computational geometry. The algorithms and underlying theory are */ - /* described in Jonathan Richard Shewchuk. "Adaptive Precision Floating- */ - /* Point Arithmetic and Fast Robust Geometric Predicates." Technical */ - /* Report CMU-CS-96-140, School of Computer Science, Carnegie Mellon */ - /* University, Pittsburgh, Pennsylvania, May 1996. (Submitted to */ - /* Discrete & Computational Geometry.) */ - /* */ - /* This file, the paper listed above, and other information are available */ - /* from the Web page http://www.cs.cmu.edu/~quake/robust.html . */ - /* */ - /*****************************************************************************/ - - /*****************************************************************************/ - /* */ - /* Using this code: */ - /* */ - /* First, read the short or long version of the paper (from the Web page */ - /* above). */ - /* */ - /* Be sure to call exactinit() once, before calling any of the arithmetic */ - /* functions or geometric predicates. Also be sure to turn on the */ - /* optimizer when compiling this file. */ - /* */ - /* */ - /* Several geometric predicates are defined. Their parameters are all */ - /* points. Each point is an array of two or three floating-point */ - /* numbers. The geometric predicates, described in the papers, are */ - /* */ - /* orient2d(pa, pb, pc) */ - /* orient2dfast(pa, pb, pc) */ - /* orient3d(pa, pb, pc, pd) */ - /* orient3dfast(pa, pb, pc, pd) */ - /* incircle(pa, pb, pc, pd) */ - /* incirclefast(pa, pb, pc, pd) */ - /* insphere(pa, pb, pc, pd, pe) */ - /* inspherefast(pa, pb, pc, pd, pe) */ - /* */ - /* Those with suffix "fast" are approximate, non-robust versions. Those */ - /* without the suffix are adaptive precision, robust versions. There */ - /* are also versions with the suffices "exact" and "slow", which are */ - /* non-adaptive, exact arithmetic versions, which I use only for timings */ - /* in my arithmetic papers. */ - /* */ - /* */ - /* An expansion is represented by an array of floating-point numbers, */ - /* sorted from smallest to largest magnitude (possibly with interspersed */ - /* zeros). The length of each expansion is stored as a separate integer, */ - /* and each arithmetic function returns an integer which is the length */ - /* of the expansion it created. */ - /* */ - /* Several arithmetic functions are defined. Their parameters are */ - /* */ - /* e, f Input expansions */ - /* elen, flen Lengths of input expansions (must be >= 1) */ - /* h Output expansion */ - /* b Input scalar */ - /* */ - /* The arithmetic functions are */ - /* */ - /* grow_expansion(elen, e, b, h) */ - /* grow_expansion_zeroelim(elen, e, b, h) */ - /* expansion_sum(elen, e, flen, f, h) */ - /* expansion_sum_zeroelim1(elen, e, flen, f, h) */ - /* expansion_sum_zeroelim2(elen, e, flen, f, h) */ - /* fast_expansion_sum(elen, e, flen, f, h) */ - /* fast_expansion_sum_zeroelim(elen, e, flen, f, h) */ - /* linear_expansion_sum(elen, e, flen, f, h) */ - /* linear_expansion_sum_zeroelim(elen, e, flen, f, h) */ - /* scale_expansion(elen, e, b, h) */ - /* scale_expansion_zeroelim(elen, e, b, h) */ - /* compress(elen, e, h) */ - /* */ - /* All of these are described in the long version of the paper; some are */ - /* described in the short version. All return an integer that is the */ - /* length of h. Those with suffix _zeroelim perform zero elimination, */ - /* and are recommended over their counterparts. The procedure */ - /* fast_expansion_sum_zeroelim() (or linear_expansion_sum_zeroelim() on */ - /* processors that do not use the round-to-even tiebreaking rule) is */ - /* recommended over expansion_sum_zeroelim(). Each procedure has a */ - /* little note next to it (in the code below) that tells you whether or */ - /* not the output expansion may be the same array as one of the input */ - /* expansions. */ - /* */ - /* */ - /* If you look around below, you'll also find macros for a bunch of */ - /* simple unrolled arithmetic operations, and procedures for printing */ - /* expansions (commented out because they don't work with all C */ - /* compilers) and for generating rand floating-point numbers whose */ - /* significand bits are all rand. Most of the macros have undocumented */ - /* requirements that certain of their parameters should not be the same */ - /* variable; for safety, better to make sure all the parameters are */ - /* distinct variables. Feel free to send email to jrs@cs.cmu.edu if you */ - /* have questions. */ - /* */ - /*****************************************************************************/ - - /* On some machines, the exact arithmetic routines might be defeated by the */ - /* use of internal extended precision floating-point registers. Sometimes */ - /* this problem can be fixed by defining certain values to be volatile, */ - /* thus forcing them to be stored to memory and rounded off. This isn't */ - /* a great solution, though, as it slows the arithmetic down. */ - /* */ - /* To try this out, write "#define INEXACT volatile" below. Normally, */ - /* however, INEXACT should be defined to be nothing. ("#define INEXACT".) */ - -#define INEXACT /* Nothing */ - /* #define INEXACT volatile */ - -#define REAL double /* float or double */ - - /* Which of the following two methods of finding the absolute values is */ - /* fastest is compiler-dependent. A few compilers can inline and optimize */ - /* the fabs() call; but most will incur the overhead of a function call, */ - /* which is disastrously slow. A faster way on IEEE machines might be to */ - /* mask the appropriate bit, but that's difficult to do in C. */ - -#define Absolute(a) ((a) >= 0.0 ? (a) : -(a)) - /* #define Absolute(a) fabs(a) */ - - /* Many of the operations are broken up into two pieces, a main part that */ - /* performs an approximate operation, and a "tail" that computes the */ - /* roundoff error of that operation. */ - /* */ - /* The operations Fast_Two_Sum(), Fast_Two_Diff(), Two_Sum(), Two_Diff(), */ - /* Split(), and Two_Product() are all implemented as described in the */ - /* reference. Each of these macros requires certain variables to be */ - /* defined in the calling routine. The variables `bvirt', `c', `abig', */ - /* `_i', `_j', `_k', `_l', `_m', and `_n' are declared `INEXACT' because */ - /* they store the result of an operation that may incur roundoff error. */ - /* The input parameter `x' (or the highest numbered `x_' parameter) must */ - /* also be declared `INEXACT'. */ - -#define Fast_Two_Sum_Tail(a, b, x, y) \ - bvirt = x - a; \ - y = b - bvirt - -#define Fast_Two_Sum(a, b, x, y) \ - x = (REAL) (a + b); \ - Fast_Two_Sum_Tail(a, b, x, y) - -#define Two_Sum_Tail(a, b, x, y) \ - bvirt = (REAL) (x - a); \ - avirt = x - bvirt; \ - bround = b - bvirt; \ - around = a - avirt; \ - y = around + bround - -#define Two_Sum(a, b, x, y) \ - x = (REAL) (a + b); \ - Two_Sum_Tail(a, b, x, y) - -#define Two_Diff_Tail(a, b, x, y) \ - bvirt = (REAL) (a - x); \ - avirt = x + bvirt; \ - bround = bvirt - b; \ - around = a - avirt; \ - y = around + bround - -#define Two_Diff(a, b, x, y) \ - x = (REAL) (a - b); \ - Two_Diff_Tail(a, b, x, y) - - - // c = (REAL) (splitter * a); - -#define Split(a, ahi, alo) \ - c = (REAL) (1.0 * a); \ - abig = (REAL) (c - a); \ - ahi = c - abig; \ - alo = a - ahi - -#define Two_Product_Tail(a, b, x, y) \ - Split(a, ahi, alo); \ - Split(b, bhi, blo); \ - err1 = x - (ahi * bhi); \ - err2 = err1 - (alo * bhi); \ - err3 = err2 - (ahi * blo); \ - y = (alo * blo) - err3 - -#define Two_Product(a, b, x, y) \ - x = (REAL) (a * b); \ - Two_Product_Tail(a, b, x, y) - - /* Macros for summing expansions of various fixed lengths. These are all */ - /* unrolled versions of Expansion_Sum(). */ - -#define Two_One_Diff(a1, a0, b, x2, x1, x0) \ - Two_Diff(a0, b , i, x0); \ - Two_Sum( a1, i, x2, x1) - -#define Two_Two_Diff(a1, a0, b1, b0, x3, x2, x1, x0) \ - Two_One_Diff(a1, a0, b0, j, zero, x0); \ - Two_One_Diff(j, zero, b1, x3, x2, x1) - - - //TK: weird globals, never initialised. Just replaced with 1.0 everywhere... - // REAL splitter(1); /* = 2^ceiling(p / 2) + 1. Used to split floats in half. */ - /* A set of coefficients used to calculate maximum roundoff errors. */ - // REAL resulterrbound; - // REAL ccwerrboundA, ccwerrboundB, ccwerrboundC; - // REAL o3derrboundA, o3derrboundB, o3derrboundC; - // REAL iccerrboundA, iccerrboundB, iccerrboundC; - // REAL isperrboundA, isperrboundB, isperrboundC; - - /*****************************************************************************/ - /* */ - /* fast_expansion_sum_zeroelim() Sum two expansions, eliminating zero */ - /* components from the output expansion. */ - /* */ - /* Sets h = e + f. See the long version of my paper for details. */ - /* */ - /* If round-to-even is used (as with IEEE 754), maintains the strongly */ - /* nonoverlapping property. (That is, if e is strongly nonoverlapping, h */ - /* will be also.) Does NOT maintain the nonoverlapping or nonadjacent */ - /* properties. */ - /* */ - /*****************************************************************************/ - - int fast_expansion_sum_zeroelim(const int& elen, REAL* e, const int& flen, REAL* f, REAL* h) - /* h cannot be e or f. */ - { - REAL Q; - INEXACT REAL Qnew; - INEXACT REAL hh; - INEXACT REAL bvirt; - REAL avirt, bround, around; - int eindex, findex, hindex; - REAL enow, fnow; - - enow = e[0]; - fnow = f[0]; - eindex = findex = 0; - if ((fnow > enow) == (fnow > -enow)) { - Q = enow; - enow = e[++eindex]; - } else { - Q = fnow; - fnow = f[++findex]; - } - hindex = 0; - if ((eindex < elen) && (findex < flen)) { - if ((fnow > enow) == (fnow > -enow)) { - Fast_Two_Sum(enow, Q, Qnew, hh); - enow = e[++eindex]; - } else { - Fast_Two_Sum(fnow, Q, Qnew, hh); - fnow = f[++findex]; - } - Q = Qnew; - if (hh != 0.0) { - h[hindex++] = hh; - } - while ((eindex < elen) && (findex < flen)) { - if ((fnow > enow) == (fnow > -enow)) { - Two_Sum(Q, enow, Qnew, hh); - enow = e[++eindex]; - } else { - Two_Sum(Q, fnow, Qnew, hh); - fnow = f[++findex]; - } - Q = Qnew; - if (hh != 0.0) { - h[hindex++] = hh; - } - } - } - while (eindex < elen) { - Two_Sum(Q, enow, Qnew, hh); - enow = e[++eindex]; - Q = Qnew; - if (hh != 0.0) { - h[hindex++] = hh; - } - } - while (findex < flen) { - Two_Sum(Q, fnow, Qnew, hh); - fnow = f[++findex]; - Q = Qnew; - if (hh != 0.0) { - h[hindex++] = hh; - } - } - if ((Q != 0.0) || (hindex == 0)) { - h[hindex++] = Q; - } - return hindex; - } - - - /*****************************************************************************/ - /* */ - /* estimate() Produce a one-word estimate of an expansion's value. */ - /* */ - /* See either version of my paper for details. */ - /* */ - /*****************************************************************************/ - - REAL estimate(const int& elen, REAL* e) - { - REAL Q; - int eindex; - - Q = e[0]; - for (eindex = 1; eindex < elen; ++eindex) { - Q += e[eindex]; - } - return Q; - } - - /*****************************************************************************/ - /* */ - /* orient2dfast() Approximate 2D orientation test. Nonrobust. */ - /* orient2dexact() Exact 2D orientation test. Robust. */ - /* orient2dslow() Another exact 2D orientation test. Robust. */ - /* orient2d() Adaptive exact 2D orientation test. Robust. */ - /* */ - /* Return a positive value if the points pa, pb, and pc occur */ - /* in counterclockwise order; a negative value if they occur */ - /* in clockwise order; and zero if they are collinear. The */ - /* result is also a rough approximation of twice the signed */ - /* area of the triangle defined by the three points. */ - /* */ - /* Only the first and last routine should be used; the middle two are for */ - /* timings. */ - /* */ - /* The last three use exact arithmetic to ensure a correct answer. The */ - /* result returned is the determinant of a matrix. In orient2d() only, */ - /* this determinant is computed adaptively, in the sense that exact */ - /* arithmetic is used only to the degree it is needed to ensure that the */ - /* returned value has the correct sign. Hence, orient2d() is usually quite */ - /* fast, but will run more slowly when the input points are collinear or */ - /* nearly so. */ - /* */ - /*****************************************************************************/ - - REAL orient2dadapt(REAL* pa, REAL* pb, REAL* pc, const REAL& detsum) - { - INEXACT REAL acx, acy, bcx, bcy; - REAL acxtail, acytail, bcxtail, bcytail; - INEXACT REAL detleft, detright; - REAL detlefttail, detrighttail; - REAL det, errbound; - REAL B[4], C1[8], C2[12], D[16]; - INEXACT REAL B3; - int C1length, C2length, Dlength; - REAL u[4]; - INEXACT REAL u3; - INEXACT REAL s1, t1; - REAL s0, t0; - - INEXACT REAL bvirt; - REAL avirt, bround, around; - INEXACT REAL c; - INEXACT REAL abig; - REAL ahi, alo, bhi, blo; - REAL err1, err2, err3; - INEXACT REAL i, j; - REAL zero; - - acx = (REAL) (pa[0] - pc[0]); - bcx = (REAL) (pb[0] - pc[0]); - acy = (REAL) (pa[1] - pc[1]); - bcy = (REAL) (pb[1] - pc[1]); - - Two_Product(acx, bcy, detleft, detlefttail); - Two_Product(acy, bcx, detright, detrighttail); - - Two_Two_Diff(detleft, detlefttail, detright, detrighttail, - B3, B[2], B[1], B[0]); - B[3] = B3; - - det = estimate(4, B); - // errbound = ccwerrboundB * detsum; - errbound = detsum; - if ((det >= errbound) || (-det >= errbound)) { - return det; - } - - Two_Diff_Tail(pa[0], pc[0], acx, acxtail); - Two_Diff_Tail(pb[0], pc[0], bcx, bcxtail); - Two_Diff_Tail(pa[1], pc[1], acy, acytail); - Two_Diff_Tail(pb[1], pc[1], bcy, bcytail); - - if ((acxtail == 0.0) && (acytail == 0.0) - && (bcxtail == 0.0) && (bcytail == 0.0)) { - return det; - } - - // errbound = ccwerrboundC * detsum + resulterrbound * Absolute(det); - errbound = detsum + Absolute(det); - det += (acx * bcytail + bcy * acxtail) - - (acy * bcxtail + bcx * acytail); - if ((det >= errbound) || (-det >= errbound)) { - return det; - } - - Two_Product(acxtail, bcy, s1, s0); - Two_Product(acytail, bcx, t1, t0); - Two_Two_Diff(s1, s0, t1, t0, u3, u[2], u[1], u[0]); - u[3] = u3; - C1length = fast_expansion_sum_zeroelim(4, B, 4, u, C1); - - Two_Product(acx, bcytail, s1, s0); - Two_Product(acy, bcxtail, t1, t0); - Two_Two_Diff(s1, s0, t1, t0, u3, u[2], u[1], u[0]); - u[3] = u3; - C2length = fast_expansion_sum_zeroelim(C1length, C1, 4, u, C2); - - Two_Product(acxtail, bcytail, s1, s0); - Two_Product(acytail, bcxtail, t1, t0); - Two_Two_Diff(s1, s0, t1, t0, u3, u[2], u[1], u[0]); - u[3] = u3; - Dlength = fast_expansion_sum_zeroelim(C2length, C2, 4, u, D); - - return(D[Dlength - 1]); - } - - REAL orient2d(REAL* pa, REAL* pb, REAL* pc) - { - REAL detleft, detright, det; - REAL detsum, errbound; - - detleft = (pa[0] - pc[0]) * (pb[1] - pc[1]); - detright = (pa[1] - pc[1]) * (pb[0] - pc[0]); - det = detleft - detright; - - if (detleft > 0.0) { - if (detright <= 0.0) { - return det; - } else { - detsum = detleft + detright; - } - } else if (detleft < 0.0) { - if (detright >= 0.0) { - return det; - } else { - detsum = -detleft - detright; - } - } else { - return det; - } - - // errbound = ccwerrboundA * detsum; - errbound = detsum; - if ((det >= errbound) || (-det >= errbound)) { - return det; - } - - return orient2dadapt(pa, pb, pc, detsum); - } - - - //////////////////////////////////////////////// - - //////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////// splay.h /////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////// - - //-------------------------------------------------------------------------/ - //Copyright (C) 2003, 2004, 2005, ALL RIGHTS RESERVED. - //Centre for Sys. Eng. & App. Mech. FEMAGSoft S.A. - //Universite Cathalique de Louvain 4, Avenue Albert Einstein - //Batiment Euler, Avenue Georges Lemaitre, 4 B-1348 Louvain-la-Neuve - //B-1348, Louvain-la-Neuve Belgium - //Belgium - //-------------------------------------------------------------------------/ - // - //Name: splay.h (self-adjusting balanced binary search tree) - //Purpose: declaration and implentation of splay tree class for fast - // binary searching - //Author: Liang, Wu (wu@mema.ucl.ac.be, wuliang@femagsoft.com) - //Created: 03/2002 - //Modified: 2003, 2004, 2005 - //-------------------------------------------------------------------------/ - - template <class T, class KeyType> - class SplayTree; - - template <class T, class KeyType> - class BTreeNode - { - public: - friend class SplayTree<T, KeyType>; - BTreeNode( ) : m_data(), m_left( nullptr ), m_right( nullptr ), m_visited(false) { } - BTreeNode( const T & data, BTreeNode *lt, BTreeNode *rt ) - : m_data(data),m_left( lt ), m_right( rt ), m_visited(false) { } - - T& data() { return m_data; } - BTreeNode* Left() { return m_left; } - BTreeNode* Right() { return m_right; } - void SetVisited(const bool& visited) { m_visited=visited; } - bool GetVisited() { return m_visited; } - KeyType keyValue() { return m_data->keyValue(); } - - private: - T m_data; - BTreeNode *m_left; - BTreeNode *m_right; - bool m_visited; - - }; - - - template <class T, class KeyType> - class SplayTree - { - public: - explicit SplayTree( ):m_root(nullptr),m_size(0) { } - SplayTree( const SplayTree & rhs ); - ~SplayTree( ); - - void MakeEmpty( ); - bool IsEmpty( ) const; - long int Size() { return m_size; } - BTreeNode<T, KeyType>* Root() { - // cppcheck false positive: - // cppcheck-suppress CastIntegerToAddressAtReturn - return m_root; - } - - void Find( const KeyType& keys, BTreeNode<T, KeyType>* & res); - void FindMin( BTreeNode<T, KeyType>* &min ); - void FindMax( BTreeNode<T, KeyType>* &max ); - // We only use this function for polygon Triangulation to find the direct - // left edge of an event vertex; - void FindMaxSmallerThan( const KeyType& keys, BTreeNode<T, KeyType>* &res); - - void Insert( const T & x ); - void Delete( const KeyType& keys); - void Delete( const KeyType& keys, BTreeNode<T, KeyType>* &res); - void DeleteMin(BTreeNode<T, KeyType>* &min); - void DeleteMax(BTreeNode<T, KeyType>* &max); - - const SplayTree & operator=( const SplayTree & rhs ); - void PreOrder( void(*Visit)(BTreeNode<T,KeyType> *u) ) - { PreOrder(Visit, m_root); } - void InOrder( void(*Visit)(BTreeNode<T,KeyType> *u) ) - { InOrder(Visit, m_root); } - - void InOrder( void(*Visit)(BTreeNode<T,KeyType>*u, double y), double y) - { InOrder(Visit, m_root, y); } - - void PostOrder( void(*Visit)(BTreeNode<T,KeyType> *u) ) - { PostOrder(Visit, m_root); } - - int Height( ) const { return Height(m_root); } //height of m_root - int Height(BTreeNode<T, KeyType> *t) const; //Height of subtree t; - BTreeNode<T, KeyType>* Left(BTreeNode<T, KeyType> *node) { return node->m_left; } - BTreeNode<T, KeyType>* Right(BTreeNode<T, KeyType> *node) { return node->m_right; } - - private: - BTreeNode<T, KeyType> *m_root; - long int m_size; - - void reclaimMemory( BTreeNode<T, KeyType> * t ) const; - BTreeNode<T, KeyType> * clone( BTreeNode<T, KeyType> *t ) const; - - //Transverse - void PreOrder( void(*Visit)(BTreeNode<T, KeyType> *u), BTreeNode<T, KeyType> *t); - void InOrder( void(*Visit)(BTreeNode<T, KeyType> *u), BTreeNode<T, KeyType> *t); - void PostOrder( void(*Visit)(BTreeNode<T, KeyType> *u), BTreeNode<T, KeyType> *t); - - void InOrder( void(*Visit)(BTreeNode<T, KeyType>*, double y), - BTreeNode<T, KeyType> *t, double y); - - - - // Tree manipulations - void rotateWithLeftChild( BTreeNode<T, KeyType> * & k2 ) const; - void rotateWithRightChild( BTreeNode<T, KeyType> * & k1 ) const; - void splay( const KeyType& keys, BTreeNode<T, KeyType> * & t ) const; - }; - - //---------------------------------------------------------------------- - //Constructor; - //---------------------------------------------------------------------- - template <class T, class KeyType> - SplayTree<T, KeyType>::SplayTree( const SplayTree<T, KeyType> & rhs ) - { - *this = rhs; - } - - //----------------------------------------------------------------------- - //Destructor. - //----------------------------------------------------------------------- - template <class T, class KeyType> - SplayTree<T, KeyType>::~SplayTree( ) - { - MakeEmpty( ); - } - - //------------------------------------------------------------------------ - //Insert x into the tree. - //------------------------------------------------------------------------ - template <class T, class KeyType> - void SplayTree<T, KeyType>::Insert( const T & x ) - { - - BTreeNode<T, KeyType> *newNode= new BTreeNode<T, KeyType>; - newNode->m_data=x; - - if( m_root == nullptr ) - { - newNode->m_left = newNode->m_right = nullptr; - m_root = newNode; ++m_size; - } - else - { - KeyType keys=x->keyValue(); - splay( keys, m_root ); - KeyType rootk=m_root->keyValue(); - if( keys < rootk ) - { - newNode->m_left = m_root->m_left; - newNode->m_right = m_root; - m_root->m_left = nullptr; - m_root = newNode; - ++m_size; - } - else if( keys > rootk ) - { - - newNode->m_right = m_root->m_right; - newNode->m_left = m_root; - m_root->m_right = nullptr; - m_root = newNode; - ++m_size; - } - else - { - //slight incresed the keyvalue to avoid duplicated keys - x->increaseKeyValue(1.0e-10); - Insert(x); - delete newNode; - } - } - } - - //--------------------------------------------------------------------- - //Remove the node with the keys from the tree, and retrieve the result - //--------------------------------------------------------------------- - template <class T, class KeyType> - void SplayTree<T, KeyType>::Delete( const KeyType& keys, BTreeNode<T, KeyType>* &res) - { - BTreeNode<T, KeyType> *newTree; - - splay( keys, m_root ); - if( m_root->keyValue() != keys ) { res=nullptr; return; } // Item not found; do nothing - - res = m_root; - - if( m_root->m_left == nullptr ) - newTree = m_root->m_right; - else - { - // Find the maximum in the m_left subtree - // Splay it to the m_root; and then attach m_right child - newTree = m_root->m_left; - splay( keys, newTree ); - newTree->m_right = m_root->m_right; - } - - m_root = newTree; - m_size--; - } - - //--------------------------------------------------------------------- - //Remove the node with the keys from the tree. - //--------------------------------------------------------------------- - template <class T, class KeyType> - void SplayTree<T, KeyType>::Delete( const KeyType& keys) - { - BTreeNode<T, KeyType> *newTree; - - splay( keys, m_root ); - KeyType rootk=m_root->keyValue(); - if( rootk != keys ) { return; } // Item not found; do nothing - - if( m_root->m_left == nullptr ) newTree = m_root->m_right; - else - { - // Find the maximum in the m_left subtree - // Splay it to the m_root; and then attach m_right child - newTree = m_root->m_left; - splay( keys, newTree ); - newTree->m_right = m_root->m_right; - } - - delete m_root; - m_root = newTree; - m_size--; - } - - - - //--------------------------------------------------------------------- - //Find and Delete the node with min keys from the tree; - //--------------------------------------------------------------------- - template <class T, class KeyType> - void SplayTree<T, KeyType>::DeleteMin(BTreeNode<T, KeyType>* &min) - { - if( IsEmpty( ) ) { min=nullptr; return; } - - double keys=-1.0e30; - splay( keys, m_root ); - - min = m_root; - - BTreeNode<T, KeyType> *newTree; - if( m_root->m_left == nullptr ) newTree = m_root->m_right; - else - { - newTree = m_root->m_left; - splay( keys, newTree ); - newTree->m_right = m_root->m_right; - } - - m_size--; - m_root = newTree; - - } - - //---------------------------------------------------------------------- - //Find and Delete the node with max keys from the tree; - //---------------------------------------------------------------------- - template <class T, class KeyType> - void SplayTree<T, KeyType>::DeleteMax(BTreeNode<T, KeyType>* &max) - { - if( IsEmpty( ) ) { max=nullptr; return; } - - double keys=1.0e30; - splay( keys, m_root ); - - max = m_root; - - BTreeNode<T, KeyType> *newTree; - if( m_root->m_left == nullptr ) newTree = m_root->m_right; - else - { - newTree = m_root->m_left; - splay( keys, newTree ); - newTree->m_right = m_root->m_right; - } - m_size--; - m_root = newTree; - } - - - //---------------------------------------------------------------------- - //Find the smallest item in the tree, but won't delete it from the tree. - //---------------------------------------------------------------------- - template <class T, class KeyType> - void SplayTree<T, KeyType>::FindMin(BTreeNode<T, KeyType>* & min ) - { - if( IsEmpty( ) ) { min=nullptr; return; } - BTreeNode<T, KeyType> *ptr = m_root; - - while( ptr->m_left != nullptr ) ptr = ptr->m_left; - splay( ptr->keyValue(), m_root ); - min = ptr; - } - - //---------------------------------------------------------------------- - //Find the largest item in the tree. but won't delete it from the tree. - //---------------------------------------------------------------------- - template <class T, class KeyType> - void SplayTree<T, KeyType>::FindMax(BTreeNode<T, KeyType>* & max) - { - if( IsEmpty( ) ) { max=nullptr; return; } - - BTreeNode<T, KeyType> *ptr = m_root; - while( ptr->m_right != nullptr ) ptr = ptr->m_right; - splay( ptr->keyValue(), m_root ); - max = ptr; - } - - //-------------------------------------------------------------------- - //Find the node with the keys in the tree. - //res==nullptr if it donesn't exist in the tree; - //-------------------------------------------------------------------- - template <class T, class KeyType> - void SplayTree<T, KeyType>::Find( const KeyType& keys, BTreeNode<T, KeyType>* & res) - { - if( IsEmpty( ) ) { res=nullptr; return; } - splay( keys, m_root ); - if( m_root->keyValue() != keys ) { res=nullptr; return; } - else res = m_root; - } - - //-------------------------------------------------------------------- - //Find the maximum node smaller than or equal to the given key. - //This function specially designed for polygon Triangulation to - //find the direct left edge at event vertex; - //-------------------------------------------------------------------- - template <class T, class KeyType> - void SplayTree<T, KeyType>::FindMaxSmallerThan( const KeyType& keys, BTreeNode<T, KeyType>* &res) - { - if( IsEmpty( ) ) { res=nullptr; return; } - splay( keys, m_root ); - - if( m_root->data()->keyValue() < keys) res=m_root; - else if(m_root->m_left) - { - res=m_root->m_left; - while(res->m_right) res=res->m_right; - } - else - { - assert(false); - } - } - - //-------------------------------------------------------------------- - //Make the tree logically empty. - //-------------------------------------------------------------------- - template <class T, class KeyType> - void SplayTree<T, KeyType>::MakeEmpty( ) - { - BTreeNode<T, KeyType>* ptr; - while( !IsEmpty( ) ) - { - DeleteMax(ptr); - delete ptr; - } - } - - //--------------------------------------------------------------------- - //Test if the tree is logically empty. - //--------------------------------------------------------------------- - template <class T, class KeyType> - bool SplayTree<T, KeyType>::IsEmpty( ) const - { - return m_root == nullptr; - } - - //---------------------------------------------------------------------- - //copy overload operator. - //---------------------------------------------------------------------- - template <class T, class KeyType> - const SplayTree<T, KeyType> & SplayTree<T, KeyType>::operator=( const SplayTree<T, KeyType> & rhs ) - { - if( this != &rhs ) - { - MakeEmpty( ); - m_root = clone( rhs.m_root ); - } - - return *this; - } - - //----------------------------------------------------------------------- - //Internal method to perform a top-down splay. - //x is the key of target node to splay around. - //t is the m_root of the subtree to splay. - //----------------------------------------------------------------------- - template <class T, class KeyType> - void SplayTree<T, KeyType>::splay( const KeyType& keys, BTreeNode<T, KeyType> * & t ) const - { - BTreeNode<T, KeyType> *leftTreeMax, *rightTreeMin; - // static BTreeNode<T, KeyType> header; - BTreeNode<T, KeyType> header;//TK: Removed static keyword. Rather a bit slower than thread problems... - - header.m_left = header.m_right = nullptr; - leftTreeMax = rightTreeMin = &header; - - for( ; ; ) - { - KeyType rkey=t->keyValue(); - if( keys < rkey ) - { - if(t->m_left == nullptr) break; - if( keys < t->m_left->keyValue() ) rotateWithLeftChild( t ); - if( t->m_left == nullptr ) break; - - // Link Right - rightTreeMin->m_left = t; - rightTreeMin = t; - t = t->m_left; - } - else if( keys > rkey ) - { - if( t->m_right == nullptr ) break; - if( keys > t->m_right->keyValue() ) rotateWithRightChild( t ); - if( t->m_right == nullptr ) break; - - // Link Left - leftTreeMax->m_right = t; - leftTreeMax = t; - t = t->m_right; - } - else break; - } - - leftTreeMax->m_right = t->m_left; - rightTreeMin->m_left = t->m_right; - t->m_left = header.m_right; - t->m_right = header.m_left; - - } - - //-------------------------------------------------------------------- - //Rotate binary tree node with m_left child. - //-------------------------------------------------------------------- - template <class T, class KeyType> - void SplayTree<T, KeyType>::rotateWithLeftChild( BTreeNode<T, KeyType> * & k2 ) const - { - BTreeNode<T, KeyType> *k1 = k2->m_left; - k2->m_left = k1->m_right; - k1->m_right = k2; - k2 = k1; - } - - //--------------------------------------------------------------------- - //Rotate binary tree node with m_right child. - //--------------------------------------------------------------------- - template <class T, class KeyType> - void SplayTree<T, KeyType>::rotateWithRightChild( BTreeNode<T, KeyType> * & k1 ) const - { - BTreeNode<T, KeyType> *k2 = k1->m_right; - k1->m_right = k2->m_left; - k2->m_left = k1; - k1 = k2; - } - - //---------------------------------------------------------------------- - //Internal method to reclaim internal nodes in subtree t. - //WARNING: This is prone to running out of stack space. - //---------------------------------------------------------------------- - template <class T, class KeyType> - void SplayTree<T, KeyType>::reclaimMemory( BTreeNode<T, KeyType> * t ) const - { - if( t != t->m_left ) - { - reclaimMemory( t->m_left ); - reclaimMemory( t->m_right ); - delete t; - } - } - - //----------------------------------------------------------------------- - //Internal method to clone subtree. - //WARNING: This is prone to running out of stack space. - //----------------------------------------------------------------------- - template <class T, class KeyType> - BTreeNode<T, KeyType> * SplayTree<T, KeyType>::clone( BTreeNode<T, KeyType> * t ) const - { - if( t == t->m_left ) // Cannot test against nullptrNode!!! - return nullptr; - else - return new BTreeNode<T, KeyType>( t->m_data, clone( t->m_left ), clone( t->m_right ) ); - } - - //----------------------------------------------------------------------- - //Tranverse the tree by pre-order method; - //----------------------------------------------------------------------- - template<class T, class KeyType> - void SplayTree<T, KeyType>::PreOrder( void(*Visit)(BTreeNode<T, KeyType> *u), BTreeNode<T, KeyType> *t) - { - if(t!=nullptr) - { - Visit(t); - PreOrder(Visit,t->m_left); - PreOrder(Visit,t->m_right); - } - - } - - //----------------------------------------------------------------------- - //Tranverse the tree by in-order method; - //----------------------------------------------------------------------- - template<class T, class KeyType> - void SplayTree<T, KeyType>::InOrder( void(*Visit)(BTreeNode<T, KeyType> *u), BTreeNode<T, KeyType> *t) - { - if(t!=nullptr) - { - InOrder(Visit,t->m_left); - Visit(t); - InOrder(Visit,t->m_right); - } - } - - - //----------------------------------------------------------------------- - //Tranverse the tree by in-order method; - //----------------------------------------------------------------------- - template<class T, class KeyType> - void SplayTree<T, KeyType>::InOrder( void(*Visit)(BTreeNode<T, KeyType>*u, double y) - , BTreeNode<T, KeyType> *t, double y) - { - if(t!=nullptr) - { - InOrder(Visit,t->m_left, y); - Visit(t, y); - InOrder(Visit,t->m_right, y); - } - } - - - - //----------------------------------------------------------------------- - //Tranverse the tree by post-order method; - //----------------------------------------------------------------------- - template<class T, class KeyType> - void SplayTree<T, KeyType>::PostOrder( void(*Visit)(BTreeNode<T, KeyType> *u), BTreeNode<T, KeyType> *t) - { - if(t!=nullptr) - { - PostOrder(Visit,t->m_left); - PostOrder(Visit,t->m_right); - Visit(t); - } - } - - //----------------------------------------------------------------------- - //return the height of subtree - //----------------------------------------------------------------------- - template<class T, class KeyType> - int SplayTree<T, KeyType>::Height(BTreeNode<T, KeyType> *subtree) const - { - if(subtree==nullptr) return 0; - int lh=Height(subtree->m_left); - int rh=Height(subtree->m_right); - - return (lh>rh)?(++lh):(++rh); - } - - - //////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////// geometry.h ////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////// - - //-------------------------------------------------------------------------/ - //Copyright (C) 2003, 2004, 2005, ALL RIGHTS RESERVED. - //Centre for Sys. Eng. & App. Mech. FEMAGSoft S.A. - //Universite Cathalique de Louvain 4, Avenue Albert Einstein - //Batiment Euler, Avenue Georges Lemaitre, 4 B-1348 Louvain-la-Neuve - //B-1348, Louvain-la-Neuve Belgium - //Belgium - //-------------------------------------------------------------------------/ - // - //Name: geometry.h (all geometry primitives related polygon triang- - // ulation by sweep line algorithm) - //Author: Liang, Wu (wu@mema.ucl.ac.be, wuliang@femagsoft.com) - //Created: 03/2001 - //Modified: 10/2005. Modified and simplified only for polygon triangul- - // ation purpose. - //-------------------------------------------------------------------------/ - - - //base class for points; - class Pointbase - { - public: - //constructors and destructor - Pointbase(): id(0), x(0.), y(0.), type(UNKNOWN), left(false){} - Pointbase(const Pointbase& pb); - - Pointbase(const double& xx, const double& yy) - :id(0), x(xx), y(yy), type(UNKNOWN), left(false) { } - - Pointbase(const int& idd, const double& xx, const double& yy) - :id(idd), x(xx), y(yy), type(UNKNOWN), left(false) { } - - Pointbase(const double& xx, const double& yy, const Type& ttype) - :id(0), x(xx), y(yy), type(ttype), left(false) { } - - Pointbase(const int& idd, const double& xx, const double& yy, const Type& ttype) - :id(idd),x(xx), y(yy), type(ttype), left(false) { } - - //operator overloading - friend bool operator==(const Pointbase&, const Pointbase&); - friend bool operator>(const Pointbase&, const Pointbase&); - friend bool operator<(const Pointbase&, const Pointbase&); - friend bool operator!=(const Pointbase&, const Pointbase&); - - //public data - unsigned int id; //id of point; - double x, y; //coordinates; - Type type; //type of points; - bool left; //left chain or not; - - Pointbase & operator= ( const Pointbase & pb ) - { - if (this != &pb) { - this->id=pb.id; - this->x=pb.x; - this->y=pb.y; - this->type=pb.type; - this->left=pb.left; - } - return *this; - } - }; - - //base class for polygon boundary - //Linebase class is a directed line segment with start/end point - class Linebase - { - public: - //constructors and destructor - Linebase(); - Linebase(Pointbase* ep1, Pointbase* ep2, const Type& type,long int & l_id); - Linebase(const Linebase& line); - ~Linebase() {}; - - unsigned int id() const { return m_id; } - - //two end points - Pointbase* endPoint(const int& i) const { return m_endp[i]; } - Type type() const { return m_type; } - double keyValue() const { return m_key; } - void setKeyValue(const double& y); - //slightly increased the key to avoid duplicated key for searching tree. - void increaseKeyValue(const double& diff) { m_key+=diff; } - //reverse a directed line segment; reversable only for inserted diagonals - void reverse(); - - //set and return helper of a directed line segment; - void setHelper(const unsigned int& i) { m_helper=i; } - unsigned int helper() { return m_helper; } - - protected: - unsigned int m_id; //id of a line segment; - Pointbase* m_endp[2]; //two end points; - - Type m_type; //type of a line segement, input/insert - double m_key; //key of a line segment for splay tree searching - unsigned int m_helper; //helper of a line segemnt - public: - Linebase & operator= ( const Linebase & line ) - { - if (this != &line) { - this->m_id=line.m_id; - this->m_endp[0]=line.m_endp[0]; - this->m_endp[1]=line.m_endp[1]; - this->m_type=line.m_type; - this->m_key=line.m_key; - this->m_helper=line.m_helper; - } - return *this; - } - }; - - //////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////// - ////////////////////////////////// geometry.cc ////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////////////////// - - //-------------------------------------------------------------------------/ - //Copyright (C) 2003, 2004, 2005, ALL RIGHTS RESERVED. - //Centre for Sys. Eng. & App. Mech. FEMAGSoft S.A. - //Universite Cathalique de Louvain 4, Avenue Albert Einstein - //Batiment Euler, Avenue Georges Lemaitre, 4 B-1348 Louvain-la-Neuve - //B-1348, Louvain-la-Neuve Belgium - //Belgium - //-------------------------------------------------------------------------/ - // - //Name: geometry.cc (all geometry primitive implementations related - // to polygon triangulation by sweep line algorithm) - //Author: Liang, Wu (wu@mema.ucl.ac.be, wuliang@femagsoft.com) - //Created: 03/2001 - //Modified: 10/2005. Modified and simplified only for polygon triangul- - // ation purpose. - //-------------------------------------------------------------------------/ - - - //Jonathan schewchuk's exact arithmetic code, see predicates.cc for detais; - extern double orient2d(double* pa, double* pb, double* pc); - - //---------------------------------------------------------------------------- - //square of the distance of two points; - //---------------------------------------------------------------------------- - double dist_sqr(const Pointbase& sp, const Pointbase& ep) - { - return sqr(sp.x-ep.x)+sqr(sp.y-ep.y); - } - - //---------------------------------------------------------------------------- - //square of the distance of two points; - //---------------------------------------------------------------------------- - double dist_sqr(double *pa, double *pb) - { - return sqr(pa[0]-pb[0])+sqr(pa[1]-pb[1]); - } - - void UpdateKey(BTreeNode<Linebase*,double>* node, double y) - { - node->data()->setKeyValue(y); - } - - //---------------------------------------------------------------------------- - //copy constructor - //---------------------------------------------------------------------------- - Pointbase::Pointbase(const Pointbase& pb) - { - this->id=pb.id; - this->x=pb.x; - this->y=pb.y; - this->type=pb.type; - this->left=pb.left; - } - - //---------------------------------------------------------------------------- - //operator ( ==, >, < and != ) overloading for pointbase class - //---------------------------------------------------------------------------- - bool operator==(const Pointbase& pa, const Pointbase& pb) - { - return (pa.x==pb.x && pa.y==pb.y); - } - - //---------------------------------------------------------------------------- - bool operator>(const Pointbase& pa, const Pointbase& pb) - { - return( (pa.y > pb.y) || ( (pa.y==pb.y) && (pa.x < pb.x)) ); - } - - //---------------------------------------------------------------------------- - bool operator<(const Pointbase& pa, const Pointbase& pb) - { - return( (pa.y < pb.y) || ( (pa.y==pb.y) && (pa.x > pb.x)) ); - } - - //---------------------------------------------------------------------------- - bool operator!=(const Pointbase& pa, const Pointbase& pb) - { - return !(pa.x==pb.x && pa.y==pb.y); - } - - //---------------------------------------------------------------------------- - //Linebase construct - //---------------------------------------------------------------------------- - Linebase::Linebase():m_type(UNKNOWN),m_key(0.),m_helper(0) - { - for(int i=0; i<2; ++i) m_endp[i]=0; - m_id=0; - } - - //----------------------------------------------------------------------------- - //Linebase construct - //----------------------------------------------------------------------------- - Linebase::Linebase(Pointbase* sp, Pointbase* ep, const Type& type, long int & l_id):m_type(type),m_key(0.),m_helper(0) - { - m_endp[0]=sp; - m_endp[1]=ep; - m_id=++l_id; - } - - //---------------------------------------------------------------------------- - //copy constructor - //---------------------------------------------------------------------------- - Linebase::Linebase(const Linebase& line) - { - this->m_id=line.m_id; - this->m_endp[0]=line.m_endp[0]; - this->m_endp[1]=line.m_endp[1]; - this->m_type=line.m_type; - this->m_key=line.m_key; - this->m_helper=line.m_helper; - } - - - //---------------------------------------------------------------------------- - //reverse a directed line segment, reverseable only for insert diagonals - //---------------------------------------------------------------------------- - void Linebase::reverse() - { - assert(m_type==INSERT); - Pointbase* tmp=m_endp[0]; - m_endp[0]=m_endp[1]; - m_endp[1]=tmp; - } - - void Linebase::setKeyValue(const double& y) - { - if( m_endp[1]->y==m_endp[0]->y ) - m_key=m_endp[0]->x < m_endp[1]->x ? m_endp[0]->x:m_endp[1]->x; - else m_key=( y - m_endp[0]->y ) * ( m_endp[1]->x - m_endp[0]->x ) / (m_endp[1]->y - m_endp[0]->y ) + m_endp[0]->x; - } - -}//end namespace internal_poltrig - -class PolygonTriangulator::Polygon -{ -public: - //constructor and destructor - Polygon(const std::vector<double>& x,const std::vector<double>& y); - ~Polygon(); - - // main member function for polygon triangulation; - void partition2Monotone(); - void searchMonotones(); - void triangulation(); - - //return all triangles - const Triangles* triangles() { return &m_triangles; } - - internal_poltrig::PointbaseMap& points() { return m_points; } - internal_poltrig::LineMap& edges() { return m_edges; } - - //private member functions. -private: - long int m_l_id;//previous a global, but that gives mem. crashes. Must be reinitted for every polygon. - - void set_contour (const std::vector<double>& x,const std::vector<double>& y); - void initializate(); - - //prev or next point/edge id for a given ith point/edge; - unsigned int prev(const unsigned int& i); - unsigned int next(const unsigned int& i); - - //handle event vertext according to vertex type; - void handleStartVertex(const unsigned int& ); - void handleEndVertex(const unsigned int& ); - void handleSplitVertex(const unsigned int& ); - void handleMergeVertex(const unsigned int& ); - void handleRegularVertexUp(const unsigned int& ); - void handleRegularVertexDown(const unsigned int& ); - - //add diagonal between two vertices; - void addDiagonal(const unsigned int& i, const unsigned int& j); - - - //angle ABC for three given points, for monotone polygon searching purpose; - double angleCosb(double *A, double *B, double *C); - //find the next edge, for monotone polygon searching purpose; - unsigned int selectNextEdge(internal_poltrig::Linebase* edge); - - //triangulate a monotone polygon piece; - void triangulateMonotone(internal_poltrig::Monopoly& mpoly); - - //private data memebers - internal_poltrig::PQueue m_qpoints; //priority queue for event points - internal_poltrig::EdgeBST m_edgebst; //edge binary searching tree (splaytree) - internal_poltrig::Monopolys m_mpolys; //all monotone polygon piece list; - Triangles m_triangles; //all triangle list; - - //data for monotone piece searching purpose; - internal_poltrig::AdjEdgeMap m_startAdjEdgeMap; //all edges starting from given points (map) - internal_poltrig::LineMap m_diagonals; //added diagonals to partition polygon to - //monotont pieces, not all diagonals of - - void init_vertices_and_lines(); - unsigned int m_ncontours; //number of contours - std::vector<unsigned int> m_nVertices; // - internal_poltrig::PointbaseMap m_points; //all vertices - internal_poltrig::LineMap m_edges; //all edges - double m_xmin,m_xmax, m_ymin,m_ymax; //boundary box for polygon - -}; - - -void PolygonTriangulator::Polygon::init_vertices_and_lines() -{ - int sid,eid; - int num=0; - - internal_poltrig::Type type; - - for(unsigned j=0; j<m_ncontours; ++j) - { - for(unsigned i=1; i<=m_nVertices[j]; ++i)//fixme: 0-based? - { - sid=num+i; - eid=(i==m_nVertices[j])?num+1:num+i+1; - type = internal_poltrig::INPUT; - internal_poltrig::Linebase* line=new internal_poltrig::Linebase(m_points[sid], m_points[eid], type,m_l_id); - m_edges[m_l_id]=line; - } - num+=m_nVertices[j]; - } - - int sum=0; - for(unsigned int i=0; i<m_ncontours; ++i) - { - sum+= m_nVertices[i]; - m_nVertices[i]=sum; - } - -} - - -//---------------------------------------------------------------------------- -//get input -//---------------------------------------------------------------------------- -void PolygonTriangulator::Polygon::set_contour(const std::vector<double>& x,const std::vector<double>& y) -{ - assert(x.size()==y.size()); - - m_nVertices.push_back( x.size() ); - unsigned int i = m_points.size()+1/*1*/;//fixme: get rid of the +1 ? - double xx,yy; - internal_poltrig::Type type; - for (unsigned int j = 0; j < m_nVertices[m_ncontours]; ++j, ++i) - { - xx=x.at(j); - yy=y.at(j); - type=internal_poltrig::INPUT; - internal_poltrig::Pointbase* point=new internal_poltrig::Pointbase(i,xx,yy,type); - if(xx > m_xmax ) m_xmax=xx; - if(xx < m_xmin ) m_xmin=xx; - if(yy > m_ymax ) m_ymax=yy; - if(yy < m_ymin ) m_ymin=yy; - m_points[i]=point; - } - - ++m_ncontours; - -} - - - - -//---------------------------------------------------------------------------- -//polygon class constructor -//---------------------------------------------------------------------------- -PolygonTriangulator::Polygon::Polygon(const std::vector<double>& x,const std::vector<double>& y) -{ - m_l_id = 0; - m_ncontours=0; - - m_xmin = m_ymin = std::numeric_limits<double>::infinity(); - m_xmax = m_ymax = - std::numeric_limits<double>::infinity(); - - - set_contour(x,y); - init_vertices_and_lines(); - initializate(); -} - -//---------------------------------------------------------------------------- -//polygon destructor -//---------------------------------------------------------------------------- -PolygonTriangulator::Polygon::~Polygon() -{ - //clear all dynamic allocated memory - internal_poltrig::PointbaseMap::iterator itp=m_points.begin(); - for(; itp!=m_points.end(); ++itp) - { - delete itp->second; - } - - internal_poltrig::LineMap::iterator itl=m_edges.begin(); - for(; itl!=m_edges.end(); ++itl) - { - delete itl->second; - } - -} - -//---------------------------------------------------------------------------- -//return the previous point (or edge) id for a given ith point (or edge); -//---------------------------------------------------------------------------- -unsigned int PolygonTriangulator::Polygon::prev(const unsigned int& i) -{ - unsigned int j(0),prevLoop(0),currentLoop(0); - - while ( i > m_nVertices[currentLoop] ) - { - prevLoop=currentLoop; - ++currentLoop; - } - - if( i==1 || (i==m_nVertices[prevLoop]+1) ) j=m_nVertices[currentLoop]; - else if( i <= m_nVertices[currentLoop] ) j=i-1; - - return j; -} - -//---------------------------------------------------------------------------- -//return the next point (or edge) id for a given ith point (or edge); -//---------------------------------------------------------------------------- -unsigned int PolygonTriangulator::Polygon::next(const unsigned int& i) -{ - unsigned int j(0),prevLoop(0),currentLoop(0); - - while ( i > m_nVertices[currentLoop] ) - { - prevLoop=currentLoop; - ++currentLoop; - } - - if( i < m_nVertices[currentLoop] ) j=i+1; - else if ( i==m_nVertices[currentLoop] ) - { - if( currentLoop==0) j=1; - else j=m_nVertices[prevLoop]+1; - } - - return j; -} - -//---------------------------------------------------------------------------- -//polygon initialization; -//to find types of all polygon vertices; -//create a priority queue for all vertices; -//construct an edge set for each vertex (the set holds all edges starting from -//the vertex, only for loop searching purpose). -//---------------------------------------------------------------------------- -void PolygonTriangulator::Polygon::initializate() -{ - internal_poltrig::PointbaseMap::iterator it=m_points.begin(); - for(; it!=m_points.end(); ++it) - { - int id=it->first; - int idp=prev(id); - int idn=next(id); - internal_poltrig::Pointbase p=*m_points[id], pnext=*m_points[idn], pprev=*m_points[idp]; - - if( p > pnext && pprev > p ) - m_points[id]->type=internal_poltrig::REGULAR_DOWN; - else if (p > pprev && pnext > p) - m_points[id]->type=internal_poltrig::REGULAR_UP; - else - { - double pa[2], pb[2], pc[2]; - - pa[0]=m_points[idp]->x; - pa[1]=m_points[idp]->y; - - pb[0]=m_points[id]->x; - pb[1]=m_points[id]->y; - - pc[0]=m_points[idn]->x; - pc[1]=m_points[idn]->y; - - double area=internal_poltrig::orient2d(pa,pb,pc); - - if( pprev > p && pnext > p ) m_points[id]->type=(area >0) ? internal_poltrig::END: internal_poltrig::MERGE ; - if( pprev < p && pnext < p ) m_points[id]->type=(area >0) ? internal_poltrig::START : internal_poltrig::SPLIT; - - } - - m_qpoints.push(*(it->second)); - - m_startAdjEdgeMap[id].insert(id); - - } -} - -//---------------------------------------------------------------------------- -//Add a diagonal from point id i to j -//---------------------------------------------------------------------------- -void PolygonTriangulator::Polygon::addDiagonal(const unsigned int& i, const unsigned int& j) -{ - internal_poltrig::Type type=internal_poltrig::INSERT; - internal_poltrig::Linebase* diag=new internal_poltrig::Linebase(m_points[i], m_points[j], type,m_l_id); - m_edges[diag->id()]=diag; - - m_startAdjEdgeMap[i].insert(diag->id()); - m_startAdjEdgeMap[j].insert(diag->id()); - - m_diagonals[diag->id()]=diag; - -} - -//---------------------------------------------------------------------------- -//Handle start vertex -//---------------------------------------------------------------------------- -void PolygonTriangulator::Polygon::handleStartVertex(const unsigned int& i) -{ - double y=m_points[i]->y; - m_edgebst.InOrder(internal_poltrig::UpdateKey, y); - - m_edges[i]->setHelper(i); - m_edges[i]->setKeyValue(y); - m_edgebst.Insert(m_edges[i]); - -} - -//---------------------------------------------------------------------------- -//Handle end vertex -//---------------------------------------------------------------------------- -void PolygonTriangulator::Polygon::handleEndVertex(const unsigned int& i) -{ - double y=m_points[i]->y; - m_edgebst.InOrder(internal_poltrig::UpdateKey, y); - - unsigned int previ=prev(i); - internal_poltrig::Linebase* edge=m_edges[previ]; - unsigned int helper=m_edges[previ]->helper(); - - - if(m_points[helper]->type==internal_poltrig::MERGE) addDiagonal(i, helper); - m_edgebst.Delete(edge->keyValue()); - -} - -//---------------------------------------------------------------------------- -//Handle split vertex -//---------------------------------------------------------------------------- -void PolygonTriangulator::Polygon::handleSplitVertex(const unsigned int& i) -{ - double x=m_points[i]->x, y=m_points[i]->y; - m_edgebst.InOrder(internal_poltrig::UpdateKey, y); - - internal_poltrig::BTreeNode<internal_poltrig::Linebase*, double>* leftnode; - m_edgebst.FindMaxSmallerThan(x, leftnode); - internal_poltrig::Linebase* leftedge=leftnode->data(); - - unsigned int helper=leftedge->helper(); - addDiagonal(i, helper); - - leftedge->setHelper(i); - m_edges[i]->setHelper(i); - m_edges[i]->setKeyValue(y); - m_edgebst.Insert(m_edges[i]); -} - -//---------------------------------------------------------------------------- -//Handle merge vertex -//---------------------------------------------------------------------------- -void PolygonTriangulator::Polygon::handleMergeVertex(const unsigned int& i) -{ - double x=m_points[i]->x, y=m_points[i]->y; - m_edgebst.InOrder(internal_poltrig::UpdateKey, y); - - unsigned int previ=prev(i); - unsigned int helper=m_edges[previ]->helper(); - if (m_points[helper]->type==internal_poltrig::MERGE) addDiagonal(i, helper); - m_edgebst.Delete(m_edges[previ]->keyValue()); - - internal_poltrig::BTreeNode<internal_poltrig::Linebase*, double>* leftnode; - m_edgebst.FindMaxSmallerThan(x, leftnode); - internal_poltrig::Linebase* leftedge=leftnode->data(); - - helper=leftedge->helper(); - if(m_points[helper]->type==internal_poltrig::MERGE) addDiagonal(i, helper); - - leftedge->setHelper(i); -} - -//---------------------------------------------------------------------------- -//Handle regular down vertex -//---------------------------------------------------------------------------- -void PolygonTriangulator::Polygon::handleRegularVertexDown(const unsigned int& i) -{ - double y=m_points[i]->y; - m_edgebst.InOrder(internal_poltrig::UpdateKey, y); - - unsigned int previ=prev(i); - unsigned int helper=m_edges[previ]->helper(); - if(m_points[helper]->type==internal_poltrig::MERGE) addDiagonal(i, helper); - - m_edgebst.Delete(m_edges[previ]->keyValue()); - m_edges[i]->setHelper(i); - m_edges[i]->setKeyValue(y); - m_edgebst.Insert(m_edges[i]); - -} - -//---------------------------------------------------------------------------- -////Handle regular up vertex -//---------------------------------------------------------------------------- -void PolygonTriangulator::Polygon::handleRegularVertexUp(const unsigned int& i) -{ - double x=m_points[i]->x, y=m_points[i]->y; - m_edgebst.InOrder(internal_poltrig::UpdateKey, y); - - internal_poltrig::BTreeNode<internal_poltrig::Linebase*, double>* leftnode; - m_edgebst.FindMaxSmallerThan(x, leftnode); - - internal_poltrig::Linebase* leftedge=leftnode->data(); - - unsigned int helper=leftedge->helper(); - if(m_points[helper]->type==internal_poltrig::MERGE) addDiagonal(i, helper); - leftedge->setHelper(i); - -} - -//---------------------------------------------------------------------------- -//partition polygon to monotone polygon pieces -//---------------------------------------------------------------------------- -void PolygonTriangulator::Polygon::partition2Monotone() -{ - - if(m_qpoints.top().type!=internal_poltrig::START) - { - std::cout<<"Please check your input polygon:\n1)orientations?\n2)duplicated points?\n"; - exit(1); - } - - while(!m_qpoints.empty()) - { - internal_poltrig::Pointbase vertex=m_qpoints.top(); - m_qpoints.pop(); - unsigned int id=vertex.id; - - switch(vertex.type) - { - case internal_poltrig::START: handleStartVertex(id); break; - case internal_poltrig::END: handleEndVertex(id); break; - case internal_poltrig::MERGE: handleMergeVertex(id); break; - case internal_poltrig::SPLIT: handleSplitVertex(id); break; - case internal_poltrig::REGULAR_UP: handleRegularVertexUp(id); break; - case internal_poltrig::REGULAR_DOWN: handleRegularVertexDown(id); break; - default: - std::cout<<"No duplicated points please!\n"; - exit(1); break; - } - } -} - - -//---------------------------------------------------------------------------- -//two Auxiliary functions to find monotone polygon pieces -//---------------------------------------------------------------------------- - -//---------------------------------------------------------------------------- -//calculate angle B for A, B, C three given points -//---------------------------------------------------------------------------- -double PolygonTriangulator::Polygon::angleCosb(double *pa, double *pb, double *pc) -{ - double dxab = pa[0] - pb[0]; - double dyab = pa[1] - pb[1]; - - double dxcb = pc[0] - pb[0]; - double dycb = pc[1] - pb[1]; - - double dxab2 = dxab * dxab; - double dyab2 = dyab * dyab; - double dxcb2 = dxcb * dxcb; - double dycb2 = dycb * dycb; - double ab = dxab2 + dyab2; - double cb = dxcb2 + dycb2; - - double cosb = dxab * dxcb + dyab * dycb; - double denom = sqrt( ab * cb); - - cosb/=denom; - - return cosb; -} - -//---------------------------------------------------------------------------- -//for any given edge, find the next edge we should choose when searching for -//monotone polygon pieces; -//---------------------------------------------------------------------------- -unsigned int PolygonTriangulator::Polygon::selectNextEdge(internal_poltrig::Linebase* edge) -{ - - unsigned int eid= edge->endPoint(1)->id; - std::set<unsigned int> edges=m_startAdjEdgeMap[eid]; - assert(!edges.empty()); - - unsigned int nexte=0; - if( edges.size() == 1 ) nexte=*(edges.begin()); - else if( edges.size() > 1 ) - { - unsigned int nexte_ccw(0), nexte_cw(0); - double max=-2.0,min=2.0; - - - std::set<unsigned int>::iterator it=edges.begin(); - for(; it!=edges.end(); ++it) - { - if(*it==edge->id()) continue; - double A[2], B[2], C[2]; - A[0]=edge->endPoint(0)->x; A[1]=edge->endPoint(0)->y; - B[0]=edge->endPoint(1)->x; B[1]=edge->endPoint(1)->y; - - if(edge->endPoint(1)!=m_edges[*it]->endPoint(0)) m_edges[*it]->reverse(); - C[0]=m_edges[*it]->endPoint(1)->x; C[1]=m_edges[*it]->endPoint(1)->y; - - double area=internal_poltrig::orient2d(A, B, C); - double cosb=angleCosb(A, B, C); - - if( area > 0 && max < cosb ) { nexte_ccw=*it; max=cosb; } - else if( min > cosb ) { nexte_cw=*it; min=cosb; } - } - - nexte = (nexte_ccw!=0) ? nexte_ccw : nexte_cw; - } - - return nexte; -} - -//---------------------------------------------------------------------------- -//searching all monotone pieces; -//---------------------------------------------------------------------------- -void PolygonTriangulator::Polygon::searchMonotones() -{ - int loop=0; - - internal_poltrig::LineMap edges=m_edges; - - while( edges.size() > m_diagonals.size() ) - { - ++loop; - internal_poltrig::Monopoly poly; - internal_poltrig::LineMap::iterator it=edges.begin(); - internal_poltrig::Pointbase* startp=it->second->endPoint(0); - internal_poltrig::Pointbase* endp=0; - internal_poltrig::Linebase* next=it->second; - - poly.push_back(startp->id); - - for(;;) - { - endp=next->endPoint(1); - if(next->type()!=internal_poltrig::INSERT) - { - edges.erase(next->id()); - m_startAdjEdgeMap[next->endPoint(0)->id].erase(next->id()); - } - if(endp==startp) break; - poly.push_back(endp->id); - - unsigned int nexte=selectNextEdge(next); - - if(nexte==0) - { - std::cout<<"Please check your input polygon:\n"; - std::cout<<"1)orientations?\n2)with duplicated points?\n3)is a simple one?\n"; - exit(1); - } - //assert( nexte > 0); - next=edges[nexte]; - if(next->endPoint(0) !=endp ) next->reverse(); - } - - m_mpolys.push_back(poly); - } -} - - -//---------------------------------------------------------------------------- -//triangulate a monotone polygon; -//---------------------------------------------------------------------------- -void PolygonTriangulator::Polygon::triangulateMonotone(internal_poltrig::Monopoly& mpoly) -{ - internal_poltrig::PQueue qvertex; - internal_poltrig::Monopoly::iterator it=mpoly.begin(), itnext; - for(; itnext=it, it!=mpoly.end(); ++it) - { - ++itnext; - if(itnext==mpoly.end()) itnext=mpoly.begin(); - internal_poltrig::Pointbase point=*m_points[*it], pointnext=*m_points[*itnext]; - point.left=(point > pointnext)? true:false; - qvertex.push(point); - } - - std::stack<internal_poltrig::Pointbase> spoint; - for(int i=0; i<2; ++i) { spoint.push(qvertex.top()); qvertex.pop(); } - - while ( qvertex.size() > 1 ) - { - internal_poltrig::Pointbase topQueuePoint=qvertex.top(); - internal_poltrig::Pointbase topStackPoint=spoint.top(); - - if(topQueuePoint.left!=topStackPoint.left) - { - while ( spoint.size() > 1 ) - { - internal_poltrig::Pointbase p1=spoint.top(); - spoint.pop(); - internal_poltrig::Pointbase p2=spoint.top(); - Triangle v(3); - v[0]=topQueuePoint.id; - v[1]=p1.id; - v[2]=p2.id; - sort(v.begin(),v.end());//TK - m_triangles.push_back(v); - - } - spoint.pop(); - spoint.push(topStackPoint); - spoint.push(topQueuePoint); - } - else - { - while( spoint.size() > 1 ) - { - internal_poltrig::Pointbase stack1Point=spoint.top(); - spoint.pop(); - internal_poltrig::Pointbase stack2Point=spoint.top(); - spoint.push(stack1Point); - double pa[2], pb[2], pc[2]; - pa[0]=topQueuePoint.x; pa[1]=topQueuePoint.y; - pb[0]=stack2Point.x; pb[1]=stack2Point.y; - pc[0]=stack1Point.x; pc[1]=stack1Point.y; - - double area=internal_poltrig::orient2d(pa,pb,pc); - bool left=stack1Point.left; - if( (area > 0 && left) || (area < 0 && !left ) ) - { - Triangle v(3); - v[0]=topQueuePoint.id; - v[1]=stack2Point.id; - v[2]=stack1Point.id; - sort(v.begin(),v.end());//TK - m_triangles.push_back(v); - spoint.pop(); - } else break; - } - - spoint.push(topQueuePoint); - - } - - qvertex.pop(); - - } - - internal_poltrig::Pointbase lastQueuePoint=qvertex.top(); - while( spoint.size() !=1 ) - { - internal_poltrig::Pointbase topPoint=spoint.top(); - spoint.pop(); - internal_poltrig::Pointbase top2Point=spoint.top(); - - Triangle v(3); - v[0]=lastQueuePoint.id; - v[1]=topPoint.id; - v[2]=top2Point.id; - sort(v.begin(),v.end());//TK - m_triangles.push_back(v); - } -} - -//---------------------------------------------------------------------------- -//main triangulation function; -////---------------------------------------------------------------------------- -void PolygonTriangulator::Polygon::triangulation() -{ - partition2Monotone(); - searchMonotones(); - internal_poltrig::Monopolys::iterator it=m_mpolys.begin(); - for(; it!=m_mpolys.end(); ++it) - triangulateMonotone(*it); -} - -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// - -PolygonTriangulator::PolygonTriangulator(const std::vector<double>& polygon_xcoords, - const std::vector<double>& polygon_ycoords) - : m_polygon(new Polygon(polygon_xcoords,polygon_ycoords)) -{ - m_polygon->triangulation(); -} - -PolygonTriangulator::~PolygonTriangulator() { delete m_polygon; } - -const PolygonTriangulator::Triangles* PolygonTriangulator::triangles() const -{ - return m_polygon->triangles(); -} - - diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/PolygonTriangulator.h b/DetectorDescription/GeoModel/GeoModelKernel/src/PolygonTriangulator.h deleted file mode 100644 index 558acef0608e2e77a345a003da63f91654d9f0a2..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/PolygonTriangulator.h +++ /dev/null @@ -1,62 +0,0 @@ - -/////////////////////////////////////////////////////////////////////// -// // -// Class: PolygonTriangulator // -// // -// Description: Triangulates any (non-complex) 2D polygon. // -// // -// Author: Thomas Kittelmann (Thomas.Kittelmann@cern.ch), March 2007 // -// // -// Notes: // -// // -// Actual algorithms are adapted from // -// http://www.mema.ucl.ac.be/~wu/Poly2Tri/poly2tri.html // -// (see copyright notice in .src file) // -// // -// Main changes performed for the present incarnation are // -// interface & namespace changes, indentation, small // -// performance tweaks and removal of unused features. // -// Most importantly, got rid of static and globals so the class // -// can be reliably used more than once per process. Also, the // -// output triangles are sorted to preserve "handedness". // -// // -/////////////////////////////////////////////////////////////////////// - - -#ifndef POLYGONTRIANGULATOR_H -#define POLYGONTRIANGULATOR_H - -#include <vector> -#include <list> - -class PolygonTriangulator { -public: - - typedef std::vector<unsigned> Triangle; - typedef std::list<Triangle> Triangles; - - //When constructed it automatically performs the triangulation. - PolygonTriangulator(const std::vector<double>& polygon_xcoords, - const std::vector<double>& polygon_ycoords); - - - // Access the result with this - const Triangles* triangles() const; - - // Output "handedness" (clockwise or anticlockwise order) is the - // same for all of the triangles as it were for the input points. - - //NB: If triangles().size()==0, something went wrong. - - ~PolygonTriangulator(); - -private: - // Copying/assignment not legal: - PolygonTriangulator( const PolygonTriangulator & ); - PolygonTriangulator & operator= ( const PolygonTriangulator & ); - - class Polygon; - Polygon * m_polygon; -}; - -#endif diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/RCBase.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/RCBase.cxx deleted file mode 100755 index 19f1e4c55606c8e3886ad317c66834ee9db8d0b0..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/RCBase.cxx +++ /dev/null @@ -1,34 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/RCBase.h" -#include <exception> - -RCBase::RCBase() - : m_count(0) -{ -} - -RCBase::~RCBase() -{ -} - -void RCBase::ref () const -{ - m_count++; -} - -void RCBase::unref () const -{ - if (m_count.load()>0) { - m_count--; - if (m_count.load()==0) - delete this; - } -} - -unsigned int RCBase::refCount () const -{ - return m_count.load(); -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/TemplateVolAction.cxx b/DetectorDescription/GeoModel/GeoModelKernel/src/TemplateVolAction.cxx deleted file mode 100755 index e1dccfb1776c8dea10877a8c4fbc562d8864a16f..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/TemplateVolAction.cxx +++ /dev/null @@ -1,18 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "GeoModelKernel/TemplateVolAction.h" - -TemplateVolAction::TemplateVolAction() - : GeoVolumeAction (GeoVolumeAction::TOP_DOWN) -{ -} - -TemplateVolAction::~TemplateVolAction() -{ -} - -void TemplateVolAction::handleVPhysVol (const GeoVPhysVol *) -{ -} diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/qt.pro b/DetectorDescription/GeoModel/GeoModelKernel/src/qt.pro deleted file mode 100644 index f34caee1ce27fd2a401d668e8f321e30bcac6192..0000000000000000000000000000000000000000 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/qt.pro +++ /dev/null @@ -1,34 +0,0 @@ -###################################################################### -# Automatically generated by qmake (2.01a) Thu Sep 18 19:41:36 2008 -###################################################################### - -TEMPLATE = lib dll -TARGET = GeoModelKernel -DEPENDPATH += . -INCLUDEPATH += . .. /usr/local/include - -DESTDIR= . -CONFIG += build_all debug c++11 - -# Input -HEADERS += ../GeoModelKernel/*.h - -SOURCES += *.cxx - -INSTALLS += target -target.path=/usr/local/lib - -headers.path=/usr/local/include/GeoModelKernel -headers.files= ../GeoModelKernel/*.h -INSTALLS += headers - -mac { - INCLUDEPATH += . .. -} - -unix { - QMAKE_CXXFLAGS += -std=c++11 - INCLUDEPATH += . .. -} - - diff --git a/DetectorDescription/GeoModel/GeoModelSvc/CMakeLists.txt b/DetectorDescription/GeoModel/GeoModelSvc/CMakeLists.txt index b79da15a4c597cb344877a9ca6c8f139b69776e3..2ae87919c5dad2126b8211c032be1c05b1b2f262 100644 --- a/DetectorDescription/GeoModel/GeoModelSvc/CMakeLists.txt +++ b/DetectorDescription/GeoModel/GeoModelSvc/CMakeLists.txt @@ -14,7 +14,6 @@ atlas_depends_on_subdirs( PRIVATE Control/StoreGate Database/RDBAccessSvc DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities Event/EventInfo Event/EventInfoMgt @@ -24,14 +23,17 @@ atlas_depends_on_subdirs( PRIVATE find_package( Boost COMPONENTS filesystem thread system ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) + +find_package( GeoModel ) + # Component(s) in the package: atlas_add_component( GeoModelSvc src/GeoModelSvc.cxx src/GeoDbTagSvc.cxx src/RDBMaterialManager.cxx src/components/GeoModelSvc_entries.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} AthenaBaseComps CxxUtils AthenaKernel SGTools StoreGateLib SGtests GeoModelKernel GeoModelUtilities EventInfo GaudiKernel ) + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaBaseComps CxxUtils AthenaKernel SGTools StoreGateLib SGtests GeoModelUtilities EventInfo GaudiKernel ) # Install files from the package: atlas_install_headers( GeoModelSvc ) diff --git a/DetectorDescription/GeoModel/GeoModelSvc/src/GeoModelSvc.cxx b/DetectorDescription/GeoModel/GeoModelSvc/src/GeoModelSvc.cxx index 9a2d25af76b21d0e1c5bee0ace27501f8a3791a3..87e010c774e9ff512bad3e28299a6f7a01c24f5c 100755 --- a/DetectorDescription/GeoModel/GeoModelSvc/src/GeoModelSvc.cxx +++ b/DetectorDescription/GeoModel/GeoModelSvc/src/GeoModelSvc.cxx @@ -6,6 +6,8 @@ #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" +#include "GeoModelKernel/GeoVolumeCursor.h" +#include "GeoModelKernel/Units.h" #include "GeoModelUtilities/GeoModelExperiment.h" #include "GeoModelSvc.h" #include "RDBMaterialManager.h" @@ -313,7 +315,7 @@ StatusCode GeoModelSvc::geoInit() // Build the world node from which everything else will be suspended const GeoMaterial* air = theMaterialManager->getMaterial("std::Air"); - const GeoBox* worldBox = new GeoBox(1000*CLHEP::cm,1000*CLHEP::cm, 1000*CLHEP::cm); + const GeoBox* worldBox = new GeoBox(1000*GeoModelKernelUnits::cm,1000*GeoModelKernelUnits::cm, 1000*GeoModelKernelUnits::cm); const GeoLogVol* worldLog = new GeoLogVol("WorldLog", worldBox, air); GeoPhysVol *worldPhys=new GeoPhysVol(worldLog); diff --git a/DetectorDescription/GeoModel/GeoModelSvc/src/GeoModelSvc.h b/DetectorDescription/GeoModel/GeoModelSvc/src/GeoModelSvc.h index a54fc8f44ff7890fa55d5f4b0e90ba850ae724fa..027f82af668a3f0df861e7aa8f3d2314c0b43250 100755 --- a/DetectorDescription/GeoModel/GeoModelSvc/src/GeoModelSvc.h +++ b/DetectorDescription/GeoModel/GeoModelSvc/src/GeoModelSvc.h @@ -5,7 +5,7 @@ #ifndef GEOMODELSVC_GEOMODELSVC_H #define GEOMODELSVC_GEOMODELSVC_H -#include "GeoModelKernel/Query.h" +#include "GeoModelKernel/GeoPVConstLink.h" #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelInterfaces/IGeoDbTagSvc.h" #include "GeoModelInterfaces/IGeoModelTool.h" @@ -16,6 +16,7 @@ #include "AthenaBaseComps/AthService.h" #include "StoreGate/StoreGateSvc.h" #include "EventInfoMgt/ITagInfoMgr.h" +#include <fstream> class ISvcLocator; diff --git a/DetectorDescription/GeoModel/GeoModelSvc/src/RDBMaterialManager.cxx b/DetectorDescription/GeoModel/GeoModelSvc/src/RDBMaterialManager.cxx index 9082962a454e794cac27b794d15d2fe6ee82ee4c..ba8282f9c873f7a57455bf1790f8665faeb50ea2 100755 --- a/DetectorDescription/GeoModel/GeoModelSvc/src/RDBMaterialManager.cxx +++ b/DetectorDescription/GeoModel/GeoModelSvc/src/RDBMaterialManager.cxx @@ -8,6 +8,7 @@ #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoElement.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGate.h" #include "StoreGate/DataHandle.h" @@ -67,7 +68,7 @@ int printElement ( GeoElement* &p_element) std::cout << " ***** CheckElement(): Print the Element: " << name << std::endl; std::cout << " ***** The Element: name, symbol, A, Z " << std::endl; - std::cout << " ***** "<<name <<" "<<symbol <<" "<< a * (CLHEP::mole / CLHEP::gram) <<" "<< z <<" " << std::endl; + std::cout << " ***** "<<name <<" "<<symbol <<" "<< a * (GeoModelKernelUnits::mole / GeoModelKernelUnits::gram) <<" "<< z <<" " << std::endl; return 1; } @@ -81,7 +82,7 @@ int printElement ( const GeoElement* &p_element) std::cout << " ***** PrintElement(): Print the Element: " << name << std::endl; std::cout << " ***** The Element: name, symbol, A, Z " << std::endl; - std::cout << " ***** "<<name <<" "<<symbol <<" "<< a * (CLHEP::mole / CLHEP::gram) <<" "<< z <<" " << std::endl; + std::cout << " ***** "<<name <<" "<<symbol <<" "<< a * (GeoModelKernelUnits::mole / GeoModelKernelUnits::gram) <<" "<< z <<" " << std::endl; return 1; } @@ -89,7 +90,7 @@ int printElement ( const GeoElement* &p_element) int printMaterial ( GeoMaterial* &p_material) { std::string name = p_material->getName(); - double density = p_material->getDensity() * (CLHEP::cm3 / CLHEP::gram); + double density = p_material->getDensity() * (GeoModelKernelUnits::cm3 / GeoModelKernelUnits::gram); std::cout << " ***** PrintMaterial(): Print the Material: " << name << std::endl; std::cout << " ***** The Material: name, density " << std::endl; @@ -101,7 +102,7 @@ int printMaterial ( GeoMaterial* &p_material) int printFullMaterial ( GeoMaterial* &p_material) { std::string name = p_material->getName(); - double density = p_material->getDensity() * (CLHEP::cm3 / CLHEP::gram); + double density = p_material->getDensity() * (GeoModelKernelUnits::cm3 / GeoModelKernelUnits::gram); std::cout << " ***** PrintFullMaterial(): Print the Material: " << name << std::endl; std::cout << " ***** The Material: name, density" << std::endl; @@ -588,7 +589,7 @@ GeoMaterial* RDBMaterialManager::getMaterial(const std::string & name) { if (ind == tmp_materials->size()) return NULL; - pmaterial = new GeoMaterial( material_name,material_density * (CLHEP::gram / CLHEP::cm3)); + pmaterial = new GeoMaterial( material_name,material_density * (GeoModelKernelUnits::gram / GeoModelKernelUnits::cm3)); bool firstComponent = true; @@ -802,7 +803,7 @@ const GeoMaterial* RDBMaterialManager:: getMaterial(const std::string &name) co if (ind == tmp_materials->size()) return NULL; - pmaterial = new GeoMaterial( material_name,material_density * (CLHEP::gram / CLHEP::cm3)); + pmaterial = new GeoMaterial( material_name,material_density * (GeoModelKernelUnits::gram / GeoModelKernelUnits::cm3)); bool firstComponent = true; bool hasSubMaterial = false; @@ -903,7 +904,7 @@ const GeoElement *RDBMaterialManager::getElement(const std::string & name) const element_a = rec->getDouble("A"); element_z = rec->getDouble("Z"); - pelement = new GeoElement( element_name , element_symbol ,element_z , element_a *(CLHEP::gram/CLHEP::mole)); + pelement = new GeoElement( element_name , element_symbol ,element_z , element_a *(GeoModelKernelUnits::gram/GeoModelKernelUnits::mole)); // a table to keep the memory allocation, and easy for delete pelement->ref(); @@ -946,7 +947,7 @@ const GeoElement *RDBMaterialManager::getElement(unsigned int atomicNumber) cons element_a = rec->getDouble("A"); element_z = rec->getDouble("Z"); - pelement = new GeoElement( element_name , element_symbol ,element_z , element_a *(CLHEP::gram/CLHEP::mole)); + pelement = new GeoElement( element_name , element_symbol ,element_z , element_a *(GeoModelKernelUnits::gram/GeoModelKernelUnits::mole)); // a table to keep the memory allocation, and easy for delete pelement->ref(); @@ -996,7 +997,7 @@ GeoElement *RDBMaterialManager::getElement(const std::string & name) { element_a = rec->getDouble("A"); element_z = rec->getDouble("Z"); - pelement = new GeoElement( element_name , element_symbol ,element_z , element_a *(CLHEP::gram/CLHEP::mole)); + pelement = new GeoElement( element_name , element_symbol ,element_z , element_a *(GeoModelKernelUnits::gram/GeoModelKernelUnits::mole)); // a table to keep the memory allocation, and easy for delete pelement->ref(); @@ -1038,7 +1039,7 @@ GeoElement *RDBMaterialManager::getElement(unsigned int atomicNumber) { element_a = rec->getDouble("A"); element_z = rec->getDouble("Z"); - pelement = new GeoElement( element_name , element_symbol ,element_z , element_a *(CLHEP::gram/CLHEP::mole)); + pelement = new GeoElement( element_name , element_symbol ,element_z , element_a *(GeoModelKernelUnits::gram/GeoModelKernelUnits::mole)); // a table to keep the memory allocation, and easy for delete pelement->ref(); @@ -1107,13 +1108,13 @@ std::ostream & RDBMaterialManager::printAll(std::ostream & o) const std::vector<GeoElement *>::const_iterator e; for (e=m_elementVector.begin();e!= m_elementVector.end();e++) { - o << (*e)->getSymbol() << '\t' << (*e)->getZ() << '\t' << (*e)->getA() * (CLHEP::mole / CLHEP::gram) << '\t' << (*e)->getName() << std::endl; + o << (*e)->getSymbol() << '\t' << (*e)->getZ() << '\t' << (*e)->getA() * (GeoModelKernelUnits::mole / GeoModelKernelUnits::gram) << '\t' << (*e)->getName() << std::endl; } std::map<std::string, GeoMaterial *>::const_iterator m; for (m=m_materialMap.begin();m!=m_materialMap.end();m++) { - o << "Material: " << (*m).first << " Density " << (*m).second->getDensity() * (CLHEP::cm3 / CLHEP::gram) << std::endl; + o << "Material: " << (*m).first << " Density " << (*m).second->getDensity() * (GeoModelKernelUnits::cm3 / GeoModelKernelUnits::gram) << std::endl; for (size_t i = 0; i< (*m).second->getNumElements();i++) { o <<" ***** ***** "<< int ((*m).second->getFraction(i)*100) << "% \t" << (*m).second->getElement(i)->getName() << std::endl; diff --git a/DetectorDescription/GeoModel/GeoModelUtilities/CMakeLists.txt b/DetectorDescription/GeoModel/GeoModelUtilities/CMakeLists.txt index af571f9f7145a7a70eeadcc86fd1f3eb3b4b6606..e0d3a273ec4cf8e87c1954cb406a341ed0028229 100644 --- a/DetectorDescription/GeoModel/GeoModelUtilities/CMakeLists.txt +++ b/DetectorDescription/GeoModel/GeoModelUtilities/CMakeLists.txt @@ -11,21 +11,20 @@ atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel Database/RDBAccessSvc DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel PRIVATE GaudiKernel ) # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) +find_package( Eigen ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( GeoModelUtilities src/*.cxx PUBLIC_HEADERS GeoModelUtilities - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} AthenaBaseComps GeoModelKernel + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaBaseComps SGTools PRIVATE_LINK_LIBRARIES GaudiKernel ) diff --git a/DetectorDescription/GeoModel/GeoModelUtilities/GeoModelUtilities/GeoAlignmentStore.h b/DetectorDescription/GeoModel/GeoModelUtilities/GeoModelUtilities/GeoAlignmentStore.h index 57ea209176f5459656e252696c5afce66eee74ac..2c5b88144cd89cfd076f955a8806656814750b59 100755 --- a/DetectorDescription/GeoModel/GeoModelUtilities/GeoModelUtilities/GeoAlignmentStore.h +++ b/DetectorDescription/GeoModel/GeoModelUtilities/GeoModelUtilities/GeoAlignmentStore.h @@ -6,10 +6,10 @@ #define GEOMODELUTILITIES_GEOALIGNMENTSTORE_H #include "GeoModelKernel/GeoVAlignmentStore.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelUtilities/TransformMap.h" #include "AthenaKernel/CLASS_DEF.h" #include "AthenaKernel/CondCont.h" -#include "CLHEP/Geometry/Transform3D.h" #include <stdexcept> class GeoAlignmentStore : public GeoVAlignmentStore @@ -18,20 +18,20 @@ class GeoAlignmentStore : public GeoVAlignmentStore GeoAlignmentStore() {} virtual ~GeoAlignmentStore() override {} - virtual void setDelta(const GeoAlignableTransform*, const HepGeom::Transform3D&) override; - virtual const HepGeom::Transform3D* getDelta(const GeoAlignableTransform*) const override; + virtual void setDelta(const GeoAlignableTransform*, const GeoTrf::Transform3D&) override; + virtual const GeoTrf::Transform3D* getDelta(const GeoAlignableTransform*) const override; - virtual void setAbsPosition(const GeoVFullPhysVol*, const HepGeom::Transform3D&) override; - virtual const HepGeom::Transform3D* getAbsPosition(const GeoVFullPhysVol*) const override; + virtual void setAbsPosition(const GeoVFullPhysVol*, const GeoTrf::Transform3D&) override; + virtual const GeoTrf::Transform3D* getAbsPosition(const GeoVFullPhysVol*) const override; - virtual void setDefAbsPosition(const GeoVFullPhysVol*, const HepGeom::Transform3D&) override; - virtual const HepGeom::Transform3D* getDefAbsPosition(const GeoVFullPhysVol*) const override; + virtual void setDefAbsPosition(const GeoVFullPhysVol*, const GeoTrf::Transform3D&) override; + virtual const GeoTrf::Transform3D* getDefAbsPosition(const GeoVFullPhysVol*) const override; private: - TransformMap<GeoAlignableTransform,HepGeom::Transform3D> m_deltas; - TransformMap<GeoVFullPhysVol,HepGeom::Transform3D> m_absPositions; - TransformMap<GeoVFullPhysVol,HepGeom::Transform3D> m_defAbsPositions; + TransformMap<GeoAlignableTransform,GeoTrf::Transform3D> m_deltas; + TransformMap<GeoVFullPhysVol,GeoTrf::Transform3D> m_absPositions; + TransformMap<GeoVFullPhysVol,GeoTrf::Transform3D> m_defAbsPositions; }; CLASS_DEF(GeoAlignmentStore, 135648236, 1) diff --git a/DetectorDescription/GeoModel/GeoModelUtilities/GeoModelUtilities/GeoDBUtils.h b/DetectorDescription/GeoModel/GeoModelUtilities/GeoModelUtilities/GeoDBUtils.h index 8420072fe32e989ff2d59c8bbfe9315f1f488ca6..ce79227f837669a4239694b0d8bb4216db1972c0 100755 --- a/DetectorDescription/GeoModel/GeoModelUtilities/GeoModelUtilities/GeoDBUtils.h +++ b/DetectorDescription/GeoModel/GeoModelUtilities/GeoModelUtilities/GeoDBUtils.h @@ -8,7 +8,9 @@ #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBRecord.h" #include <string> -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" + class GeoDBUtils { @@ -24,16 +26,16 @@ class GeoDBUtils { return NULL; } - inline static HepGeom::Transform3D getTransform (const IRDBRecord *currentRec) { - double x = currentRec->getDouble("TRANSX")*CLHEP::mm; - double y = currentRec->getDouble("TRANSY")*CLHEP::mm; - double z = currentRec->getDouble("TRANSZ")*CLHEP::mm; - double theta = currentRec->getDouble("THETA")*CLHEP::rad; - double phi = currentRec->getDouble("PHI")*CLHEP::rad; - double rotationAngle = currentRec->getDouble("ROTATIONANGLE")*CLHEP::rad; + inline static GeoTrf::Transform3D getTransform (const IRDBRecord *currentRec) { + double x = currentRec->getDouble("TRANSX")*GeoModelKernelUnits::mm; + double y = currentRec->getDouble("TRANSY")*GeoModelKernelUnits::mm; + double z = currentRec->getDouble("TRANSZ")*GeoModelKernelUnits::mm; + double theta = currentRec->getDouble("THETA")*GeoModelKernelUnits::rad; + double phi = currentRec->getDouble("PHI")*GeoModelKernelUnits::rad; + double rotationAngle = currentRec->getDouble("ROTATIONANGLE")*GeoModelKernelUnits::rad; - CLHEP::Hep3Vector axis(sin(theta)*cos(phi), sin(theta)*sin(phi),cos(theta)); - return HepGeom::Translate3D(x,y,z)*HepGeom::Rotate3D(rotationAngle,axis); + GeoTrf::Vector3D axis(sin(theta)*cos(phi), sin(theta)*sin(phi),cos(theta)); + return GeoTrf::Translate3D(x,y,z)*GeoTrf::Rotate3D(rotationAngle,axis); } }; diff --git a/DetectorDescription/GeoModel/GeoModelUtilities/GeoModelUtilities/GeoExtendedMaterial.h b/DetectorDescription/GeoModel/GeoModelUtilities/GeoModelUtilities/GeoExtendedMaterial.h index 50754634e7e6c72aad64524ba6fa3a16cf2a965b..1bd84a6a1930a9413c85531810ef9585c6738cf7 100755 --- a/DetectorDescription/GeoModel/GeoModelUtilities/GeoModelUtilities/GeoExtendedMaterial.h +++ b/DetectorDescription/GeoModel/GeoModelUtilities/GeoModelUtilities/GeoExtendedMaterial.h @@ -6,7 +6,7 @@ #define GeoExtendedMaterial_h 1 #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/PhysicalConstants.h" +#include "GeoModelKernel/Units.h" #include "GeoModelUtilities/GeoMaterialPropertiesTable.h" @@ -18,8 +18,8 @@ class GeoExtendedMaterial : public GeoMaterial GeoExtendedMaterial(const std::string &Name, double Density, GeoMaterialState State = stateUndefined, - double Temperature = CLHEP::STP_Temperature, - double Pressure = CLHEP::STP_Pressure); + double Temperature = GeoModelKernelUnits::STP_Temperature, + double Pressure = GeoModelKernelUnits::STP_Pressure); virtual ~GeoExtendedMaterial(); diff --git a/DetectorDescription/GeoModel/GeoModelUtilities/src/GeoAlignmentStore.cxx b/DetectorDescription/GeoModel/GeoModelUtilities/src/GeoAlignmentStore.cxx index adb7ad825861469c6a30c2069ad5cf3e9efc9f95..6e25227815e0a0cb2d8cec2f8a4af777fd0d0776 100644 --- a/DetectorDescription/GeoModel/GeoModelUtilities/src/GeoAlignmentStore.cxx +++ b/DetectorDescription/GeoModel/GeoModelUtilities/src/GeoAlignmentStore.cxx @@ -4,33 +4,33 @@ #include "GeoModelUtilities/GeoAlignmentStore.h" -void GeoAlignmentStore::setDelta(const GeoAlignableTransform* axf, const HepGeom::Transform3D& xf) +void GeoAlignmentStore::setDelta(const GeoAlignableTransform* axf, const GeoTrf::Transform3D& xf) { if(!m_deltas.setTransform(axf,xf)) throw ExcAlignmentStore("Attempted to overwrite Delta in the Alignment Store"); } -const HepGeom::Transform3D* GeoAlignmentStore::getDelta(const GeoAlignableTransform* axf) const +const GeoTrf::Transform3D* GeoAlignmentStore::getDelta(const GeoAlignableTransform* axf) const { return m_deltas.getTransform(axf); } -void GeoAlignmentStore::setAbsPosition(const GeoVFullPhysVol* fpv, const HepGeom::Transform3D& xf) +void GeoAlignmentStore::setAbsPosition(const GeoVFullPhysVol* fpv, const GeoTrf::Transform3D& xf) { m_absPositions.setTransform(fpv,xf); } -const HepGeom::Transform3D* GeoAlignmentStore::getAbsPosition(const GeoVFullPhysVol* fpv) const +const GeoTrf::Transform3D* GeoAlignmentStore::getAbsPosition(const GeoVFullPhysVol* fpv) const { return m_absPositions.getTransform(fpv); } -void GeoAlignmentStore::setDefAbsPosition(const GeoVFullPhysVol* fpv, const HepGeom::Transform3D& xf) +void GeoAlignmentStore::setDefAbsPosition(const GeoVFullPhysVol* fpv, const GeoTrf::Transform3D& xf) { m_defAbsPositions.setTransform(fpv,xf); } -const HepGeom::Transform3D* GeoAlignmentStore::getDefAbsPosition(const GeoVFullPhysVol* fpv) const +const GeoTrf::Transform3D* GeoAlignmentStore::getDefAbsPosition(const GeoVFullPhysVol* fpv) const { return m_defAbsPositions.getTransform(fpv); } diff --git a/DetectorDescription/GeoModel/GeoSpecialShapes/CMakeLists.txt b/DetectorDescription/GeoModel/GeoSpecialShapes/CMakeLists.txt index c8d260fdff39672901c1152850c4334521ad7d89..8411eee2fe6579b4e7f1edd93998dd7fa23906da 100644 --- a/DetectorDescription/GeoModel/GeoSpecialShapes/CMakeLists.txt +++ b/DetectorDescription/GeoModel/GeoSpecialShapes/CMakeLists.txt @@ -9,7 +9,6 @@ atlas_subdir( GeoSpecialShapes ) atlas_depends_on_subdirs( PUBLIC Control/SGTools Control/StoreGate - DetectorDescription/GeoModel/GeoModelKernel PRIVATE Control/AthenaKernel Control/CxxUtils @@ -24,6 +23,7 @@ find_package( CLHEP ) find_package( GSL ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) find_package( ROOT COMPONENTS Matrix Core Tree MathCore Hist RIO pthread MathMore Minuit Minuit2 Physics HistPainter Rint ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( GeoSpecialShapes @@ -33,18 +33,18 @@ atlas_add_library( GeoSpecialShapes INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} SGTools GeoModelKernel StoreGateLib SGtests + LINK_LIBRARIES ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} SGTools StoreGateLib SGtests PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${ROOT_LIBRARIES} ${GSL_LIBRARIES} AthenaKernel CxxUtils GeoModelUtilities GaudiKernel ) atlas_add_dictionary( LArGeoCheckerDict GeoSpecialShapes/LArGeoCheckerDict.h GeoSpecialShapes/selection.xml INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${ROOT_LIBRARIES} ${GSL_LIBRARIES} ${CLHEP_LIBRARIES} SGTools StoreGateLib SGtests GeoModelKernel AthenaKernel CxxUtils GeoModelUtilities GaudiKernel GeoSpecialShapes ) + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${ROOT_LIBRARIES} ${GSL_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} SGTools StoreGateLib SGtests AthenaKernel CxxUtils GeoModelUtilities GaudiKernel GeoSpecialShapes ) atlas_add_dictionary( LArWheelEnums GeoSpecialShapes/LArWheelCalculatorEnums.h GeoSpecialShapes/selectionEnums.xml INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${ROOT_LIBRARIES} ${GSL_LIBRARIES} ${CLHEP_LIBRARIES} SGTools StoreGateLib SGtests GeoModelKernel AthenaKernel CxxUtils GeoModelUtilities GaudiKernel GeoSpecialShapes ) + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${ROOT_LIBRARIES} ${GSL_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} SGTools StoreGateLib SGtests AthenaKernel CxxUtils GeoModelUtilities GaudiKernel GeoSpecialShapes ) diff --git a/ForwardDetectors/AFP/AFP_GeoModel/CMakeLists.txt b/ForwardDetectors/AFP/AFP_GeoModel/CMakeLists.txt index fb580b2f694ea713919f93a3102128ec7f69292e..cff22ddfd0bed4ed79e8f838bc17ca2d2479f5c5 100644 --- a/ForwardDetectors/AFP/AFP_GeoModel/CMakeLists.txt +++ b/ForwardDetectors/AFP/AFP_GeoModel/CMakeLists.txt @@ -8,29 +8,31 @@ atlas_subdir( AFP_GeoModel ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities ForwardDetectors/AFP/AFP_Geometry PRIVATE Control/StoreGate Database/AthenaPOOL/AthenaPoolUtilities DetectorDescription/GeoModel/GeoModelInterfaces + DetectorDescription/GeoPrimitives GaudiKernel ) # External dependencies: find_package( CLHEP ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( AFP_GeoModelLib src/*.cxx PUBLIC_HEADERS AFP_GeoModel - PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} + PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES AthenaKernel GeoModelKernel GeoModelUtilities AFP_Geometry StoreGateLib SGtests + LINK_LIBRARIES AthenaKernel ${GEOMODEL_LIBRARIES} GeoModelUtilities AFP_Geometry StoreGateLib SGtests PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaPoolUtilities GaudiKernel ) atlas_add_component( AFP_GeoModel src/components/*.cxx - INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaKernel GeoModelKernel GeoModelUtilities AFP_Geometry StoreGateLib SGtests AthenaPoolUtilities GaudiKernel AFP_GeoModelLib ) + INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaKernel GeoModelUtilities AFP_Geometry StoreGateLib SGtests AthenaPoolUtilities GaudiKernel AFP_GeoModelLib ) diff --git a/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelFactory.cxx b/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelFactory.cxx index fba5b202f2b1af4386af87156d7521ef81c6253e..682fd3512575b1bda215d95f2f1ebfed1ab7d60a 100755 --- a/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelFactory.cxx +++ b/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelFactory.cxx @@ -25,6 +25,8 @@ #include "GeoModelUtilities/GeoBorderSurfaceContainer.h" #include "AFP_Geometry/AFP_Geometry.h" +#include "GeoPrimitives/CLHEPtoEigenConverter.h" + #include <iostream> #include <fstream> @@ -245,7 +247,7 @@ void AFP_GeoModelFactory::create(GeoPhysVol *world) const GeoLogVol* pLogLongEnv = new GeoLogVol("AFP00_LogLongHamburgPipeEnv", pBoxLongEnv, m_MapMaterials[std::string("OpticalVacuum")]); GeoOpticalPhysVol* pPhysLongEnv = new GeoOpticalPhysVol(pLogLongEnv); sprintf(szLabel,"AFP00_LongHamburgPipeEnv"); - world->add(new GeoTransform(TransEnvInWorld)); + world->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransEnvInWorld))); world->add(new GeoNameTag(szLabel)); world->add(pPhysLongEnv); m_detectorManager->addTreeTop(pPhysLongEnv); @@ -270,7 +272,7 @@ void AFP_GeoModelFactory::create(GeoPhysVol *world) const GeoLogVol* pLogShortEnv = new GeoLogVol("AFP01_LogShortHamburgPipeEnv", pBoxShortEnv, m_MapMaterials[std::string("std::Vacuum")]); GeoPhysVol* pPhysShortEnv = new GeoPhysVol(pLogShortEnv); sprintf(szLabel,"AFP01_ShortHamburgPipeEnv"); - world->add(new GeoTransform(TransEnvInWorld)); + world->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransEnvInWorld))); world->add(new GeoNameTag(szLabel)); world->add(pPhysShortEnv); m_detectorManager->addTreeTop(pPhysShortEnv); @@ -290,7 +292,7 @@ void AFP_GeoModelFactory::create(GeoPhysVol *world) const GeoLogVol* pLogShortEnv1 = new GeoLogVol("AFP02_LogShortHamburgPipeEnv", pBoxShortEnv1, m_MapMaterials[std::string("std::Vacuum")]); GeoPhysVol* pPhysShortEnv1 = new GeoPhysVol(pLogShortEnv1); sprintf(szLabel,"AFP02_ShortHamburgPipeEnv"); - world->add(new GeoTransform(TransEnvInWorld)); + world->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransEnvInWorld))); world->add(new GeoNameTag(szLabel)); world->add(pPhysShortEnv1); m_detectorManager->addTreeTop(pPhysShortEnv1); @@ -310,7 +312,7 @@ void AFP_GeoModelFactory::create(GeoPhysVol *world) const GeoLogVol* pLogLongEnv1 = new GeoLogVol("AFP03_LogLongHamburgPipeEnv", pBoxLongEnv1, m_MapMaterials[std::string("OpticalVacuum")]); GeoOpticalPhysVol* pPhysLongEnv1 = new GeoOpticalPhysVol(pLogLongEnv1); sprintf(szLabel,"AFP03_LongHamburgPipeEnv"); - world->add(new GeoTransform(TransEnvInWorld)); + world->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransEnvInWorld))); world->add(new GeoNameTag(szLabel)); world->add(pPhysLongEnv1); m_detectorManager->addTreeTop(pPhysLongEnv1); diff --git a/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelHP.cxx b/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelHP.cxx index 41b181021684a856440a04470eb3db9cd8caccf5..8ca2d8b4e90ab0b577a77c4a21ab132dc5e4657e 100644 --- a/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelHP.cxx +++ b/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelHP.cxx @@ -19,6 +19,7 @@ #include "GeoModelKernel/GeoFullPhysVol.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "CLHEP/GenericFunctions/AbsFunction.hh" #include "CLHEP/GenericFunctions/Variable.hh" #include "CLHEP/GenericFunctions/Sin.hh" @@ -26,6 +27,8 @@ #include "GeoModelInterfaces/StoredMaterialManager.h" +#include "GeoPrimitives/CLHEPtoEigenConverter.h" + #include <iostream> #include <fstream> #include <string> @@ -51,7 +54,7 @@ void AFP_GeoModelFactory::AddShortHamburgPipe(GeoPhysVol* pPhysMotherVol, const sprintf(szLabel,"%s_ShortHamburgPipe",pszStationName); pPhysMotherVol->add(new GeoNameTag(szLabel)); - pPhysMotherVol->add(new GeoTransform(TransInMotherVolume*HepGeom::RotateZ3D((DETXSIDE==+1)? -180*CLHEP::deg:0.0*CLHEP::deg))); + pPhysMotherVol->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransInMotherVolume*HepGeom::RotateZ3D((DETXSIDE==+1)? -180*CLHEP::deg:0.0*CLHEP::deg)))); pPhysMotherVol->add(hamburgPipeSPhys); } @@ -66,7 +69,7 @@ void AFP_GeoModelFactory::AddLongHamburgPipe(GeoPhysVol* pPhysMotherVol, const c sprintf(szLabel,"%s_LongHamburgPipe",pszStationName); pPhysMotherVol->add(new GeoNameTag(szLabel)); - pPhysMotherVol->add(new GeoTransform(TransInMotherVolume*HepGeom::RotateZ3D((DETXSIDE==+1)? -180*CLHEP::deg:0.0*CLHEP::deg))); + pPhysMotherVol->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransInMotherVolume*HepGeom::RotateZ3D((DETXSIDE==+1)? -180*CLHEP::deg:0.0*CLHEP::deg)))); pPhysMotherVol->add(hamburgPipeSPhys); } @@ -79,13 +82,13 @@ GeoShape* AFP_GeoModelFactory::GetSolidLongHamburgPipe() // Common box with round corners const GeoBox* halftubeFull = new GeoBox(35*CLHEP::mm+0.5*thickness,50*CLHEP::mm+thickness,420*CLHEP::mm); const GeoBox* halftubeIn0 = new GeoBox(35*CLHEP::mm,50*CLHEP::mm,420*CLHEP::mm-thickness); - HepGeom::Transform3D moveHTubeIn = HepGeom::Translate3D(-thickness,0,0); + GeoTrf::Transform3D moveHTubeIn = GeoTrf::Translate3D(-thickness,0,0); const GeoShapeShift& halftubeIn = (*halftubeIn0)<<moveHTubeIn; GeoShapeSubtraction* halftube0 = new GeoShapeSubtraction(halftubeFull,&halftubeIn); const GeoTubs* cornerCutterH10 = new GeoTubs(18.05*CLHEP::mm+thickness, 35*CLHEP::mm, 420.1*CLHEP::mm, 0*CLHEP::deg, 90*CLHEP::deg); const GeoTubs* cornerCutterH20 = new GeoTubs(18.05*CLHEP::mm+thickness, 35*CLHEP::mm, 420.1*CLHEP::mm, 270*CLHEP::deg, 90*CLHEP::deg); - HepGeom::Transform3D moveCutterH1 = HepGeom::Translate3D(17*CLHEP::mm, 32*CLHEP::mm, 0); - HepGeom::Transform3D moveCutterH2 = HepGeom::Translate3D(17*CLHEP::mm, -32*CLHEP::mm, 0); + GeoTrf::Transform3D moveCutterH1 = GeoTrf::Translate3D(17*CLHEP::mm, 32*CLHEP::mm, 0); + GeoTrf::Transform3D moveCutterH2 = GeoTrf::Translate3D(17*CLHEP::mm, -32*CLHEP::mm, 0); const GeoShapeShift& cornerCutterH1 = (*cornerCutterH10)<<moveCutterH1; const GeoShapeShift& cornerCutterH2 = (*cornerCutterH20)<<moveCutterH2; GeoShapeSubtraction* halftube01 = new GeoShapeSubtraction(new GeoShapeSubtraction(halftube0, &cornerCutterH2), &cornerCutterH1); @@ -94,18 +97,18 @@ GeoShape* AFP_GeoModelFactory::GetSolidLongHamburgPipe() const GeoShapeShift& cornerAddH1 = (*cornerAddH10)<<moveCutterH1; const GeoShapeShift& cornerAddH2 = (*cornerAddH20)<<moveCutterH2; GeoShapeSubtraction* halftube02 = new GeoShapeSubtraction(new GeoShapeSubtraction(halftube01, &cornerAddH2), &cornerAddH1); - HepGeom::Transform3D moveHTube = HepGeom::Translate3D(35*CLHEP::mm+2*thickness2,0,0); + GeoTrf::Transform3D moveHTube = GeoTrf::Translate3D(35*CLHEP::mm+2*thickness2,0,0); const GeoShapeShift& halftube = (*halftube02)<<moveHTube; // Plane covering the middle part (detector housing) const GeoBox* plane0 = new GeoBox(0.5*thickness2, 50*CLHEP::mm+thickness, 350*CLHEP::mm); - HepGeom::Transform3D movePlane = HepGeom::Translate3D(0.5*thickness2,0,0); + GeoTrf::Transform3D movePlane = GeoTrf::Translate3D(0.5*thickness2,0,0); const GeoShapeShift& plane = (*plane0)<<movePlane; // Floor thinning const GeoTrd* floor0 = new GeoTrd(360*CLHEP::mm, 360*CLHEP::mm, 8*CLHEP::mm, 20*CLHEP::mm, 0.5*(thickness2-0.3*CLHEP::mm)); - HepGeom::Transform3D rotateFloor = HepGeom::RotateY3D(90*CLHEP::deg); - HepGeom::Transform3D moveFloor = HepGeom::Translate3D(0.5*thickness2+0.3*CLHEP::mm,0,0); + GeoTrf::Transform3D rotateFloor = GeoTrf::RotateY3D(90*CLHEP::deg); + GeoTrf::Transform3D moveFloor = GeoTrf::Translate3D(0.5*thickness2+0.3*CLHEP::mm,0,0); const GeoShapeShift& floor = (*floor0)<<rotateFloor<<moveFloor; // Thin window @@ -113,32 +116,32 @@ GeoShape* AFP_GeoModelFactory::GetSolidLongHamburgPipe() const GeoTrd* window20 = new GeoTrd(11*CLHEP::mm+0.5*(thickness2-0.3*CLHEP::mm), 11*CLHEP::mm+0.5*(thickness2-0.3*CLHEP::mm), 26*CLHEP::mm, 14*CLHEP::mm, 0.5*(thickness-HBPTHINWINDOWTHICKNESS)); const GeoBox* windowCutSide0 = new GeoBox(11.1*CLHEP::mm+0.5*(thickness2-0.3*CLHEP::mm), 6*CLHEP::mm, 0.5*(thickness-0.25*CLHEP::mm)+0.1*CLHEP::mm); const GeoBox* windowCutCorner0 = new GeoBox(35*CLHEP::mm, 20*CLHEP::mm, 0.5*(thickness-0.25*CLHEP::mm)+0.1*CLHEP::mm); - HepGeom::Transform3D moveCutSide = HepGeom::Translate3D(0,HBPWINDOWCUTYSIGN*20*CLHEP::mm,0); + GeoTrf::Transform3D moveCutSide = GeoTrf::Translate3D(0,HBPWINDOWCUTYSIGN*20*CLHEP::mm,0); const GeoShapeShift& windowCutSide = (*windowCutSide0)<<moveCutSide; - HepGeom::Transform3D moveCutCorner = HepGeom::Translate3D(11*CLHEP::mm-0.5*(thickness2-0.3*CLHEP::mm)+0.5*sqrt(2)*20*CLHEP::mm,HBPWINDOWCUTYSIGN*(2*CLHEP::mm+0.5*sqrt(2)*20*CLHEP::mm),0); - HepGeom::Transform3D rotateCutCorner = HepGeom::RotateZ3D(HBPWINDOWCUTYSIGN*-45*CLHEP::deg); + GeoTrf::Transform3D moveCutCorner = GeoTrf::Translate3D(11*CLHEP::mm-0.5*(thickness2-0.3*CLHEP::mm)+0.5*sqrt(2)*20*CLHEP::mm,HBPWINDOWCUTYSIGN*(2*CLHEP::mm+0.5*sqrt(2)*20*CLHEP::mm),0); + GeoTrf::Transform3D rotateCutCorner = GeoTrf::RotateZ3D(HBPWINDOWCUTYSIGN*-45*CLHEP::deg); const GeoShapeShift& windowCutCorner = (*windowCutCorner0)<<rotateCutCorner<<moveCutCorner; const GeoShapeSubtraction& window11 = window10->subtract(windowCutCorner); const GeoShapeSubtraction* window12 = new GeoShapeSubtraction(&window11, &windowCutSide); const GeoShapeSubtraction& window21 = window20->subtract(windowCutCorner); const GeoShapeSubtraction* window22 = new GeoShapeSubtraction(&window21, &windowCutSide); - HepGeom::Transform3D moveWindow1 = HepGeom::Translate3D(-11*CLHEP::mm+0.5*(thickness2+0.3*CLHEP::mm), HBPWINDOWCUTYSIGN*6*CLHEP::mm, 350*CLHEP::mm+0.5*thickness+HBPTHINWINDOWTHICKNESS); - HepGeom::Transform3D moveWindow2 = HepGeom::Translate3D(-11*CLHEP::mm+0.5*(thickness2+0.3*CLHEP::mm), HBPWINDOWCUTYSIGN*6*CLHEP::mm, -350*CLHEP::mm-0.5*thickness-HBPTHINWINDOWTHICKNESS); + GeoTrf::Transform3D moveWindow1 = GeoTrf::Translate3D(-11*CLHEP::mm+0.5*(thickness2+0.3*CLHEP::mm), HBPWINDOWCUTYSIGN*6*CLHEP::mm, 350*CLHEP::mm+0.5*thickness+HBPTHINWINDOWTHICKNESS); + GeoTrf::Transform3D moveWindow2 = GeoTrf::Translate3D(-11*CLHEP::mm+0.5*(thickness2+0.3*CLHEP::mm), HBPWINDOWCUTYSIGN*6*CLHEP::mm, -350*CLHEP::mm-0.5*thickness-HBPTHINWINDOWTHICKNESS); const GeoShapeShift& window1 = (*window12)<<moveWindow1; const GeoShapeShift& window2 = (*window22)<<moveWindow2; // Boxes with round corners on ends const GeoBox* endsFull0 = new GeoBox(25.85*CLHEP::mm, 50*CLHEP::mm+thickness, 35*CLHEP::mm); const GeoBox* endsIn0 = new GeoBox(25.85*CLHEP::mm-0.5*thickness, 50*CLHEP::mm, 35*CLHEP::mm-thickness); - HepGeom::Transform3D moveEndIn = HepGeom::Translate3D(thickness,0,0); + GeoTrf::Transform3D moveEndIn = GeoTrf::Translate3D(thickness,0,0); const GeoShapeShift& endsIn = (*endsIn0)<<moveEndIn; GeoShapeSubtraction* ends0 = new GeoShapeSubtraction(endsFull0,&endsIn); const GeoTubs* cornerCutter10 = new GeoTubs(9*CLHEP::mm+thickness, 20*CLHEP::mm, 35.1*CLHEP::mm, 90*CLHEP::deg, 90*CLHEP::deg); const GeoTubs* cornerCutter20 = new GeoTubs(9*CLHEP::mm+thickness, 20*CLHEP::mm, 35.1*CLHEP::mm, 180*CLHEP::deg, 90*CLHEP::deg); - HepGeom::Transform3D moveCutter1 = HepGeom::Translate3D(-(16.85*CLHEP::mm-thickness)*CLHEP::mm, 41*CLHEP::mm, 0); - HepGeom::Transform3D moveCutter2 = HepGeom::Translate3D(-(16.85*CLHEP::mm-thickness)*CLHEP::mm, -(41*CLHEP::mm), 0); - HepGeom::Transform3D moveAdd1 = HepGeom::Translate3D(-(16.85*CLHEP::mm-thickness), 41*CLHEP::mm, 0); - HepGeom::Transform3D moveAdd2 = HepGeom::Translate3D(-(16.85*CLHEP::mm-thickness), -(41*CLHEP::mm), 0); + GeoTrf::Transform3D moveCutter1 = GeoTrf::Translate3D(-(16.85*CLHEP::mm-thickness)*CLHEP::mm, 41*CLHEP::mm, 0); + GeoTrf::Transform3D moveCutter2 = GeoTrf::Translate3D(-(16.85*CLHEP::mm-thickness)*CLHEP::mm, -(41*CLHEP::mm), 0); + GeoTrf::Transform3D moveAdd1 = GeoTrf::Translate3D(-(16.85*CLHEP::mm-thickness), 41*CLHEP::mm, 0); + GeoTrf::Transform3D moveAdd2 = GeoTrf::Translate3D(-(16.85*CLHEP::mm-thickness), -(41*CLHEP::mm), 0); const GeoShapeShift& cornerCutter1 = (*cornerCutter10)<<moveCutter1; const GeoShapeShift& cornerCutter2 = (*cornerCutter20)<<moveCutter2; GeoShapeSubtraction* ends01 = new GeoShapeSubtraction(new GeoShapeSubtraction(ends0, &cornerCutter2), &cornerCutter1); @@ -147,16 +150,16 @@ GeoShape* AFP_GeoModelFactory::GetSolidLongHamburgPipe() const GeoShapeShift& cornerAdd1 = (*cornerAdd10)<<moveAdd1; const GeoShapeShift& cornerAdd2 = (*cornerAdd20)<<moveAdd2; GeoShapeSubtraction* ends = new GeoShapeSubtraction(new GeoShapeSubtraction(ends01, &cornerAdd2), &cornerAdd1); - HepGeom::Transform3D moveEnd1 = HepGeom::Translate3D(-25.9*CLHEP::mm+thickness2, 0, 385.1*CLHEP::mm); - HepGeom::Transform3D rotateEnd2 = HepGeom::RotateX3D(180*CLHEP::deg); + GeoTrf::Transform3D moveEnd1 = GeoTrf::Translate3D(-25.9*CLHEP::mm+thickness2, 0, 385.1*CLHEP::mm); + GeoTrf::Transform3D rotateEnd2 = GeoTrf::RotateX3D(180*CLHEP::deg); const GeoShapeShift& end1 = (*ends)<<moveEnd1; const GeoShapeShift& end2 = (*ends)<<moveEnd1<<rotateEnd2; // Holes for the beam pipe const GeoTube* hole10 = new GeoTube(0, 40*CLHEP::mm-0.1*CLHEP::mm, 0.55*thickness); const GeoTube* hole20 = new GeoTube(0, 40*CLHEP::mm-0.1*CLHEP::mm, 0.55*thickness); - HepGeom::Transform3D moveHole1 = HepGeom::Translate3D(15*CLHEP::mm+2*thickness2, 0, 420*CLHEP::mm-0.5*thickness); - HepGeom::Transform3D moveHole2 = HepGeom::Translate3D(15*CLHEP::mm+2*thickness2, 0, -(420*CLHEP::mm-0.5*thickness)); + GeoTrf::Transform3D moveHole1 = GeoTrf::Translate3D(15*CLHEP::mm+2*thickness2, 0, 420*CLHEP::mm-0.5*thickness); + GeoTrf::Transform3D moveHole2 = GeoTrf::Translate3D(15*CLHEP::mm+2*thickness2, 0, -(420*CLHEP::mm-0.5*thickness)); const GeoShapeShift& hole1 = (*hole10)<<moveHole1; const GeoShapeShift& hole2 = (*hole20)<<moveHole2; @@ -164,8 +167,8 @@ GeoShape* AFP_GeoModelFactory::GetSolidLongHamburgPipe() // Beam pipe in and out const GeoTube* tube10 = new GeoTube(40*CLHEP::mm, 40*CLHEP::mm+thickness, 75*CLHEP::mm); const GeoTube* tube20 = new GeoTube(40*CLHEP::mm, 40*CLHEP::mm+thickness, 75*CLHEP::mm); - HepGeom::Transform3D moveTube1 = HepGeom::Translate3D(15*CLHEP::mm+2*thickness2, 0, 495.05*CLHEP::mm); - HepGeom::Transform3D moveTube2 = HepGeom::Translate3D(15*CLHEP::mm+2*thickness2, 0, -495.05*CLHEP::mm); + GeoTrf::Transform3D moveTube1 = GeoTrf::Translate3D(15*CLHEP::mm+2*thickness2, 0, 495.05*CLHEP::mm); + GeoTrf::Transform3D moveTube2 = GeoTrf::Translate3D(15*CLHEP::mm+2*thickness2, 0, -495.05*CLHEP::mm); const GeoShapeShift& tube1 = (*tube10)<<moveTube1; const GeoShapeShift& tube2 = (*tube20)<<moveTube2; @@ -193,13 +196,13 @@ GeoShape* AFP_GeoModelFactory::GetSolidShortHamburgPipe() // Common box with round corners const GeoBox* halftubeSFull = new GeoBox(35*CLHEP::mm+0.5*thickness,50*CLHEP::mm+thickness,120*CLHEP::mm); const GeoBox* halftubeSIn0 = new GeoBox(35*CLHEP::mm,50*CLHEP::mm,120*CLHEP::mm-thickness); - HepGeom::Transform3D moveHSTubeIn = HepGeom::Translate3D(-thickness,0,0); + GeoTrf::Transform3D moveHSTubeIn = GeoTrf::Translate3D(-thickness,0,0); const GeoShapeShift& halftubeSIn = (*halftubeSIn0)<<moveHSTubeIn; GeoShapeSubtraction* halftubeS0 = new GeoShapeSubtraction(halftubeSFull,&halftubeSIn); const GeoTubs* cornerCutterHS10 = new GeoTubs(18.05*CLHEP::mm+thickness, 35*CLHEP::mm, 120.1*CLHEP::mm, 0*CLHEP::deg, 90*CLHEP::deg); const GeoTubs* cornerCutterHS20 = new GeoTubs(18.05*CLHEP::mm+thickness, 35*CLHEP::mm, 120.1*CLHEP::mm, 270*CLHEP::deg, 90*CLHEP::deg); - HepGeom::Transform3D moveCutterHS1 = HepGeom::Translate3D(17*CLHEP::mm, 32*CLHEP::mm, 0); - HepGeom::Transform3D moveCutterHS2 = HepGeom::Translate3D(17*CLHEP::mm, -32*CLHEP::mm, 0); + GeoTrf::Transform3D moveCutterHS1 = GeoTrf::Translate3D(17*CLHEP::mm, 32*CLHEP::mm, 0); + GeoTrf::Transform3D moveCutterHS2 = GeoTrf::Translate3D(17*CLHEP::mm, -32*CLHEP::mm, 0); const GeoShapeShift& cornerCutterHS1 = (*cornerCutterHS10)<<moveCutterHS1; const GeoShapeShift& cornerCutterHS2 = (*cornerCutterHS20)<<moveCutterHS2; GeoShapeSubtraction* halftubeS01 = new GeoShapeSubtraction(new GeoShapeSubtraction(halftubeS0, &cornerCutterHS2), &cornerCutterHS1); @@ -208,18 +211,18 @@ GeoShape* AFP_GeoModelFactory::GetSolidShortHamburgPipe() const GeoShapeShift& cornerAddHS1 = (*cornerAddHS10)<<moveCutterHS1; const GeoShapeShift& cornerAddHS2 = (*cornerAddHS20)<<moveCutterHS2; GeoShapeSubtraction* halftubeS02 = new GeoShapeSubtraction(new GeoShapeSubtraction(halftubeS01, &cornerAddHS2), &cornerAddHS1); - HepGeom::Transform3D moveHSTube = HepGeom::Translate3D(35*CLHEP::mm+2*thickness2,0,0); + GeoTrf::Transform3D moveHSTube = GeoTrf::Translate3D(35*CLHEP::mm+2*thickness2,0,0); const GeoShapeShift& halftubeS = (*halftubeS02)<<moveHSTube; // Plane covering the middle part (detector housing) const GeoBox* planeS0 = new GeoBox(0.5*thickness2, 50*CLHEP::mm+thickness, 50*CLHEP::mm); - HepGeom::Transform3D movePlaneS = HepGeom::Translate3D(0.5*thickness2,0,0); + GeoTrf::Transform3D movePlaneS = GeoTrf::Translate3D(0.5*thickness2,0,0); const GeoShapeShift& planeS = (*planeS0)<<movePlaneS; // Floor thinning const GeoTrd* floor0 = new GeoTrd(60*CLHEP::mm, 60*CLHEP::mm, 8*CLHEP::mm, 20*CLHEP::mm, 0.5*(thickness2-0.3*CLHEP::mm)); - HepGeom::Transform3D rotateFloor = HepGeom::RotateY3D(90*CLHEP::deg); - HepGeom::Transform3D moveFloor = HepGeom::Translate3D(0.5*thickness2+0.3*CLHEP::mm,0,0); + GeoTrf::Transform3D rotateFloor = GeoTrf::RotateY3D(90*CLHEP::deg); + GeoTrf::Transform3D moveFloor = GeoTrf::Translate3D(0.5*thickness2+0.3*CLHEP::mm,0,0); const GeoShapeShift& floor = (*floor0)<<rotateFloor<<moveFloor; // Thin window @@ -227,17 +230,17 @@ GeoShape* AFP_GeoModelFactory::GetSolidShortHamburgPipe() const GeoTrd* window20 = new GeoTrd(11*CLHEP::mm+0.5*(thickness2-0.3*CLHEP::mm), 11*CLHEP::mm+0.5*(thickness2-0.3*CLHEP::mm), 26*CLHEP::mm, 14*CLHEP::mm, 0.5*(thickness-HBPTHINWINDOWTHICKNESS)); const GeoBox* windowCutSide0 = new GeoBox(11.1*CLHEP::mm+0.5*(thickness2-0.3*CLHEP::mm), 6*CLHEP::mm, 0.5*(thickness-0.25*CLHEP::mm)+0.1*CLHEP::mm); const GeoBox* windowCutCorner0 = new GeoBox(35*CLHEP::mm, 20*CLHEP::mm, 0.5*(thickness-0.25*CLHEP::mm)+0.1*CLHEP::mm); - HepGeom::Transform3D moveCutSide = HepGeom::Translate3D(0,HBPWINDOWCUTYSIGN*20*CLHEP::mm,0); + GeoTrf::Transform3D moveCutSide = GeoTrf::Translate3D(0,HBPWINDOWCUTYSIGN*20*CLHEP::mm,0); const GeoShapeShift& windowCutSide = (*windowCutSide0)<<moveCutSide; - HepGeom::Transform3D moveCutCorner = HepGeom::Translate3D(11*CLHEP::mm-0.5*(thickness2-0.3*CLHEP::mm)+0.5*sqrt(2)*20*CLHEP::mm,HBPWINDOWCUTYSIGN*(2*CLHEP::mm+0.5*sqrt(2)*20*CLHEP::mm),0); - HepGeom::Transform3D rotateCutCorner = HepGeom::RotateZ3D(HBPWINDOWCUTYSIGN*-45*CLHEP::deg); + GeoTrf::Transform3D moveCutCorner = GeoTrf::Translate3D(11*CLHEP::mm-0.5*(thickness2-0.3*CLHEP::mm)+0.5*sqrt(2)*20*CLHEP::mm,HBPWINDOWCUTYSIGN*(2*CLHEP::mm+0.5*sqrt(2)*20*CLHEP::mm),0); + GeoTrf::Transform3D rotateCutCorner = GeoTrf::RotateZ3D(HBPWINDOWCUTYSIGN*-45*CLHEP::deg); const GeoShapeShift& windowCutCorner = (*windowCutCorner0)<<rotateCutCorner<<moveCutCorner; const GeoShapeSubtraction& window11 = window10->subtract(windowCutCorner); const GeoShapeSubtraction* window12 = new GeoShapeSubtraction(&window11, &windowCutSide); const GeoShapeSubtraction& window21 = window20->subtract(windowCutCorner); const GeoShapeSubtraction* window22 = new GeoShapeSubtraction(&window21, &windowCutSide); - HepGeom::Transform3D moveWindow1 = HepGeom::Translate3D(-11*CLHEP::mm+0.5*(thickness2+0.3*CLHEP::mm), HBPWINDOWCUTYSIGN*6*CLHEP::mm, 50*CLHEP::mm+0.5*thickness+HBPTHINWINDOWTHICKNESS); - HepGeom::Transform3D moveWindow2 = HepGeom::Translate3D(-11*CLHEP::mm+0.5*(thickness2+0.3*CLHEP::mm), HBPWINDOWCUTYSIGN*6*CLHEP::mm, -50*CLHEP::mm-0.5*thickness-HBPTHINWINDOWTHICKNESS); + GeoTrf::Transform3D moveWindow1 = GeoTrf::Translate3D(-11*CLHEP::mm+0.5*(thickness2+0.3*CLHEP::mm), HBPWINDOWCUTYSIGN*6*CLHEP::mm, 50*CLHEP::mm+0.5*thickness+HBPTHINWINDOWTHICKNESS); + GeoTrf::Transform3D moveWindow2 = GeoTrf::Translate3D(-11*CLHEP::mm+0.5*(thickness2+0.3*CLHEP::mm), HBPWINDOWCUTYSIGN*6*CLHEP::mm, -50*CLHEP::mm-0.5*thickness-HBPTHINWINDOWTHICKNESS); const GeoShapeShift& window1 = (*window12)<<moveWindow1; const GeoShapeShift& window2 = (*window22)<<moveWindow2; @@ -245,15 +248,15 @@ GeoShape* AFP_GeoModelFactory::GetSolidShortHamburgPipe() // Boxes with round corners on ends const GeoBox* endsSFull0 = new GeoBox(25.85*CLHEP::mm, 50*CLHEP::mm+thickness, 35*CLHEP::mm); const GeoBox* endsSIn0 = new GeoBox(25.85*CLHEP::mm-0.5*thickness, 50*CLHEP::mm, 35*CLHEP::mm-thickness); - HepGeom::Transform3D moveEndSIn = HepGeom::Translate3D(thickness,0,0); + GeoTrf::Transform3D moveEndSIn = GeoTrf::Translate3D(thickness,0,0); const GeoShapeShift& endsSIn = (*endsSIn0)<<moveEndSIn; GeoShapeSubtraction* endsS0 = new GeoShapeSubtraction(endsSFull0,&endsSIn); const GeoTubs* cornerCutterS10 = new GeoTubs(9*CLHEP::mm+thickness, 20*CLHEP::mm, 35.1*CLHEP::mm, 90*CLHEP::deg, 90*CLHEP::deg); const GeoTubs* cornerCutterS20 = new GeoTubs(9*CLHEP::mm+thickness, 20*CLHEP::mm, 35.1*CLHEP::mm, 180*CLHEP::deg, 90*CLHEP::deg); - HepGeom::Transform3D moveCutterS1 = HepGeom::Translate3D(-(16.85*CLHEP::mm-thickness)*CLHEP::mm, 41*CLHEP::mm, 0); - HepGeom::Transform3D moveCutterS2 = HepGeom::Translate3D(-(16.85*CLHEP::mm-thickness)*CLHEP::mm, -(41*CLHEP::mm), 0); - HepGeom::Transform3D moveAddS1 = HepGeom::Translate3D(-(16.85*CLHEP::mm-thickness), 41*CLHEP::mm, 0); - HepGeom::Transform3D moveAddS2 = HepGeom::Translate3D(-(16.85*CLHEP::mm-thickness), -(41*CLHEP::mm), 0); + GeoTrf::Transform3D moveCutterS1 = GeoTrf::Translate3D(-(16.85*CLHEP::mm-thickness)*CLHEP::mm, 41*CLHEP::mm, 0); + GeoTrf::Transform3D moveCutterS2 = GeoTrf::Translate3D(-(16.85*CLHEP::mm-thickness)*CLHEP::mm, -(41*CLHEP::mm), 0); + GeoTrf::Transform3D moveAddS1 = GeoTrf::Translate3D(-(16.85*CLHEP::mm-thickness), 41*CLHEP::mm, 0); + GeoTrf::Transform3D moveAddS2 = GeoTrf::Translate3D(-(16.85*CLHEP::mm-thickness), -(41*CLHEP::mm), 0); const GeoShapeShift& cornerCutterS1 = (*cornerCutterS10)<<moveCutterS1; const GeoShapeShift& cornerCutterS2 = (*cornerCutterS20)<<moveCutterS2; GeoShapeSubtraction* endsS01 = new GeoShapeSubtraction(new GeoShapeSubtraction(endsS0, &cornerCutterS2), &cornerCutterS1); @@ -262,16 +265,16 @@ GeoShape* AFP_GeoModelFactory::GetSolidShortHamburgPipe() const GeoShapeShift& cornerAddS1 = (*cornerAddS10)<<moveAddS1; const GeoShapeShift& cornerAddS2 = (*cornerAddS20)<<moveAddS2; GeoShapeSubtraction* endsS = new GeoShapeSubtraction(new GeoShapeSubtraction(endsS01, &cornerAddS2), &cornerAddS1); - HepGeom::Transform3D moveEndS1 = HepGeom::Translate3D(-25.9*CLHEP::mm+thickness2, 0, 85.1*CLHEP::mm); - HepGeom::Transform3D rotateEndS2 = HepGeom::RotateX3D(180*CLHEP::deg); + GeoTrf::Transform3D moveEndS1 = GeoTrf::Translate3D(-25.9*CLHEP::mm+thickness2, 0, 85.1*CLHEP::mm); + GeoTrf::Transform3D rotateEndS2 = GeoTrf::RotateX3D(180*CLHEP::deg); const GeoShapeShift& endS1 = (*endsS)<<moveEndS1; const GeoShapeShift& endS2 = (*endsS)<<moveEndS1<<rotateEndS2; // Holes for the beam pipe const GeoTube* holeS10 = new GeoTube(0, 40*CLHEP::mm-0.05*CLHEP::mm, 0.55*thickness); const GeoTube* holeS20 = new GeoTube(0, 40*CLHEP::mm-0.05*CLHEP::mm, 0.55*thickness); - HepGeom::Transform3D moveholeS1 = HepGeom::Translate3D(15*CLHEP::mm+2*thickness2, 0, 120*CLHEP::mm-0.5*thickness); - HepGeom::Transform3D moveholeS2 = HepGeom::Translate3D(15*CLHEP::mm+2*thickness2, 0, -(120*CLHEP::mm-0.5*thickness)); + GeoTrf::Transform3D moveholeS1 = GeoTrf::Translate3D(15*CLHEP::mm+2*thickness2, 0, 120*CLHEP::mm-0.5*thickness); + GeoTrf::Transform3D moveholeS2 = GeoTrf::Translate3D(15*CLHEP::mm+2*thickness2, 0, -(120*CLHEP::mm-0.5*thickness)); const GeoShapeShift& holeS1 = (*holeS10)<<moveholeS1; const GeoShapeShift& holeS2 = (*holeS20)<<moveholeS2; @@ -279,8 +282,8 @@ GeoShape* AFP_GeoModelFactory::GetSolidShortHamburgPipe() // Beam pipe in and out const GeoTube* tubeS10 = new GeoTube(40*CLHEP::mm, 40*CLHEP::mm+thickness, 75*CLHEP::mm); const GeoTube* tubeS20 = new GeoTube(40*CLHEP::mm, 40*CLHEP::mm+thickness, 75*CLHEP::mm); - HepGeom::Transform3D movetubeS1 = HepGeom::Translate3D(15*CLHEP::mm+2*thickness2, 0, 195.05*CLHEP::mm); - HepGeom::Transform3D movetubeS2 = HepGeom::Translate3D(15*CLHEP::mm+2*thickness2, 0, -195.05*CLHEP::mm); + GeoTrf::Transform3D movetubeS1 = GeoTrf::Translate3D(15*CLHEP::mm+2*thickness2, 0, 195.05*CLHEP::mm); + GeoTrf::Transform3D movetubeS2 = GeoTrf::Translate3D(15*CLHEP::mm+2*thickness2, 0, -195.05*CLHEP::mm); const GeoShapeShift& tubeS1 = (*tubeS10)<<movetubeS1; const GeoShapeShift& tubeS2 = (*tubeS20)<<movetubeS2; @@ -303,12 +306,12 @@ GeoShape* AFP_GeoModelFactory::GetSolidShortWindowPlates() { double plateXHalfLength = 0.5*52/sin(m_CfgParams.hbpcfg.windowPlateAngle*CLHEP::deg)*CLHEP::mm; const GeoBox* windowPlate = new GeoBox(plateXHalfLength, 53*CLHEP::mm, 0.5*m_CfgParams.hbpcfg.windowPlateThickness*CLHEP::mm); - HepGeom::Transform3D moveXPlate1 = HepGeom::Translate3D(-plateXHalfLength, 0, 0); - HepGeom::Transform3D moveZPlate1 = HepGeom::Translate3D(0, 0, 75*CLHEP::mm); - HepGeom::Transform3D rotatePlate1 = HepGeom::RotateY3D((90-m_CfgParams.hbpcfg.windowPlateAngle)*CLHEP::deg); - HepGeom::Transform3D moveXPlate2 = HepGeom::Translate3D(-plateXHalfLength, 0, 0); - HepGeom::Transform3D moveZPlate2 = HepGeom::Translate3D(0, 0, -75*CLHEP::mm); - HepGeom::Transform3D rotatePlate2 = HepGeom::RotateY3D(-(90-m_CfgParams.hbpcfg.windowPlateAngle)*CLHEP::deg); + GeoTrf::Transform3D moveXPlate1 = GeoTrf::Translate3D(-plateXHalfLength, 0, 0); + GeoTrf::Transform3D moveZPlate1 = GeoTrf::Translate3D(0, 0, 75*CLHEP::mm); + GeoTrf::Transform3D rotatePlate1 = GeoTrf::RotateY3D((90-m_CfgParams.hbpcfg.windowPlateAngle)*CLHEP::deg); + GeoTrf::Transform3D moveXPlate2 = GeoTrf::Translate3D(-plateXHalfLength, 0, 0); + GeoTrf::Transform3D moveZPlate2 = GeoTrf::Translate3D(0, 0, -75*CLHEP::mm); + GeoTrf::Transform3D rotatePlate2 = GeoTrf::RotateY3D(-(90-m_CfgParams.hbpcfg.windowPlateAngle)*CLHEP::deg); const GeoShapeShift& windowPlate1 = (*windowPlate)<<moveXPlate1<<rotatePlate1<<moveZPlate1; const GeoShapeShift& windowPlate2 = (*windowPlate)<<moveXPlate2<<rotatePlate2<<moveZPlate2; @@ -319,12 +322,12 @@ GeoShape* AFP_GeoModelFactory::GetSolidLongWindowPlates() { double plateXHalfLength = 0.5*52/sin(m_CfgParams.hbpcfg.windowPlateAngle*CLHEP::deg)*CLHEP::mm; const GeoBox* windowPlate = new GeoBox(plateXHalfLength, 53*CLHEP::mm, 0.5*m_CfgParams.hbpcfg.windowPlateThickness*CLHEP::mm); - HepGeom::Transform3D moveXPlate1 = HepGeom::Translate3D(-plateXHalfLength, 0, 0); - HepGeom::Transform3D moveZPlate1 = HepGeom::Translate3D(0, 0, 350*CLHEP::mm); - HepGeom::Transform3D rotatePlate1 = HepGeom::RotateY3D((90-m_CfgParams.hbpcfg.windowPlateAngle)*CLHEP::deg); - HepGeom::Transform3D moveXPlate2 = HepGeom::Translate3D(-plateXHalfLength, 0, 0); - HepGeom::Transform3D moveZPlate2 = HepGeom::Translate3D(0, 0, -350*CLHEP::mm); - HepGeom::Transform3D rotatePlate2 = HepGeom::RotateY3D(-(90-m_CfgParams.hbpcfg.windowPlateAngle)*CLHEP::deg); + GeoTrf::Transform3D moveXPlate1 = GeoTrf::Translate3D(-plateXHalfLength, 0, 0); + GeoTrf::Transform3D moveZPlate1 = GeoTrf::Translate3D(0, 0, 350*CLHEP::mm); + GeoTrf::Transform3D rotatePlate1 = GeoTrf::RotateY3D((90-m_CfgParams.hbpcfg.windowPlateAngle)*CLHEP::deg); + GeoTrf::Transform3D moveXPlate2 = GeoTrf::Translate3D(-plateXHalfLength, 0, 0); + GeoTrf::Transform3D moveZPlate2 = GeoTrf::Translate3D(0, 0, -350*CLHEP::mm); + GeoTrf::Transform3D rotatePlate2 = GeoTrf::RotateY3D(-(90-m_CfgParams.hbpcfg.windowPlateAngle)*CLHEP::deg); const GeoShapeShift& windowPlate1 = (*windowPlate)<<moveXPlate1<<rotatePlate1<<moveZPlate1; const GeoShapeShift& windowPlate2 = (*windowPlate)<<moveXPlate2<<rotatePlate2<<moveZPlate2; @@ -342,7 +345,7 @@ void AFP_GeoModelFactory::AddShortWindowPlates(GeoPhysVol* pPhysMotherVol, const sprintf(szLabel,"%s_ShortWindowPlates",pszStationName); pPhysMotherVol->add(new GeoNameTag(szLabel)); - pPhysMotherVol->add(new GeoTransform(TransInMotherVolume*HepGeom::RotateZ3D((DETXSIDE==+1)? -180*CLHEP::deg:0.0*CLHEP::deg))); + pPhysMotherVol->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransInMotherVolume*HepGeom::RotateZ3D((DETXSIDE==+1)? -180*CLHEP::deg:0.0*CLHEP::deg)))); pPhysMotherVol->add(windowPlatesSPhys); } @@ -357,6 +360,6 @@ void AFP_GeoModelFactory::AddLongWindowPlates(GeoPhysVol* pPhysMotherVol, const sprintf(szLabel,"%s_LongWindowPlates",pszStationName); pPhysMotherVol->add(new GeoNameTag(szLabel)); - pPhysMotherVol->add(new GeoTransform(TransInMotherVolume*HepGeom::RotateZ3D((DETXSIDE==+1)? -180*CLHEP::deg:0.0*CLHEP::deg))); + pPhysMotherVol->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransInMotherVolume*HepGeom::RotateZ3D((DETXSIDE==+1)? -180*CLHEP::deg:0.0*CLHEP::deg)))); pPhysMotherVol->add(windowPlatesPhys); } diff --git a/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelRP.cxx b/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelRP.cxx index 7d57f120c87686fbcf2fc1c650c5f7af050704ca..eec0dff0d6acdaabb29b3ea14616a0061a10848e 100644 --- a/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelRP.cxx +++ b/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelRP.cxx @@ -26,6 +26,7 @@ #include "CLHEP/GenericFunctions/Cos.hh" #include "GeoModelInterfaces/StoredMaterialManager.h" +#include "GeoPrimitives/CLHEPtoEigenConverter.h" #include <iostream> #include <fstream> @@ -65,7 +66,6 @@ void AFP_GeoModelFactory::AddRomanPot(GeoPhysVol* pPhysMotherVol, const char* ps char szLabel[32]; double fLength,fRMin,fRMax; GeoShapeShift* pMoveCut; - HepGeom::Transform3D TransCut; GeoShape* pSolCut; //HepGeom::Transform3D TransRPot=TransInMotherVolume*HepGeom::TranslateX3D(-(0.5*RPOT_MAINTUBUS_LENGTH+RPOT_FLOOR_WNDTHICKNESS)); @@ -82,7 +82,7 @@ void AFP_GeoModelFactory::AddRomanPot(GeoPhysVol* pPhysMotherVol, const char* ps sprintf(szLabel,"%s_RPMainTubus",pszStationName); GeoFullPhysVol* pPhysTubus=new GeoFullPhysVol(pLogTubus); pPhysMotherVol->add(new GeoNameTag(szLabel)); - pPhysMotherVol->add(new GeoTransform(TransRPot*HepGeom::RotateY3D(90*CLHEP::deg))); + pPhysMotherVol->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransRPot*HepGeom::RotateY3D(90*CLHEP::deg)))); pPhysMotherVol->add(pPhysTubus); //Main tubus - floor (bottom) part --------------------------------------------------------------------------- @@ -97,7 +97,7 @@ void AFP_GeoModelFactory::AddRomanPot(GeoPhysVol* pPhysMotherVol, const char* ps pPhysTubus=new GeoFullPhysVol(pLogTubus); sprintf(szLabel,"%s_RPMainTubusFloorPart",pszStationName); pPhysMotherVol->add(new GeoNameTag(szLabel)); - pPhysMotherVol->add(new GeoTransform(TransRPot*HepGeom::TranslateX3D(0.5*fLength+0.5*fMainTubusSteelPartLength)*HepGeom::RotateY3D(90*CLHEP::deg))); + pPhysMotherVol->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransRPot*HepGeom::TranslateX3D(0.5*fLength+0.5*fMainTubusSteelPartLength)*HepGeom::RotateY3D(90*CLHEP::deg)))); pPhysMotherVol->add(pPhysTubus); //--upper mass @@ -113,7 +113,7 @@ void AFP_GeoModelFactory::AddRomanPot(GeoPhysVol* pPhysMotherVol, const char* ps pPhysTubus=new GeoFullPhysVol(pLogTubus); sprintf(szLabel,"%s_LogRPMainTubusUMass",pszStationName); pPhysMotherVol->add(new GeoNameTag(szLabel)); - pPhysMotherVol->add(new GeoTransform(TransRPot*HepGeom::TranslateX3D(0.5*fLength+0.5*fMainTubusSteelPartLength)*HepGeom::RotateY3D(90*CLHEP::deg))); + pPhysMotherVol->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransRPot*HepGeom::TranslateX3D(0.5*fLength+0.5*fMainTubusSteelPartLength)*HepGeom::RotateY3D(90*CLHEP::deg)))); pPhysMotherVol->add(pPhysTubus); //-lower mass @@ -128,7 +128,7 @@ void AFP_GeoModelFactory::AddRomanPot(GeoPhysVol* pPhysMotherVol, const char* ps pPhysTubus=new GeoFullPhysVol(pLogTubus); sprintf(szLabel,"%s_LogRPMainTubusLMass",pszStationName); pPhysMotherVol->add(new GeoNameTag(szLabel)); - pPhysMotherVol->add(new GeoTransform(TransRPot*HepGeom::TranslateX3D(0.5*fLength+0.5*fMainTubusSteelPartLength)*HepGeom::RotateY3D(90*CLHEP::deg))); + pPhysMotherVol->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransRPot*HepGeom::TranslateX3D(0.5*fLength+0.5*fMainTubusSteelPartLength)*HepGeom::RotateY3D(90*CLHEP::deg)))); pPhysMotherVol->add(pPhysTubus); // //cut volume 1 @@ -200,7 +200,7 @@ void AFP_GeoModelFactory::AddRomanPot(GeoPhysVol* pPhysMotherVol, const char* ps double fTrdHYLength1=0.5*RPOT_FLOOR_WNDWIDTH-RPOT_FLOOR_WNDTHICKNESS*tan(RPOT_FLOOR_WNDFACET); double fTrdHZLength=0.5*(RPOT_FLOOR_THICKNESS-RPOT_FLOOR_WNDTHICKNESS); pSolCut=new GeoTrd(fTrdHXLength1,fTrdHXLength2,fTrdHYLength1,fTrdHYLength2,fTrdHZLength); - TransCut=HepGeom::TranslateZ3D(0.5*fLength-fTrdHZLength); + GeoTrf::Transform3D TransCut=GeoTrf::TranslateZ3D(0.5*fLength-fTrdHZLength); pMoveCut=new GeoShapeShift(pSolCut, TransCut); GeoShapeSubtraction* pSolFloor=new GeoShapeSubtraction(pSolTubus, pMoveCut); @@ -209,7 +209,7 @@ void AFP_GeoModelFactory::AddRomanPot(GeoPhysVol* pPhysMotherVol, const char* ps pPhysTubus=new GeoFullPhysVol(pLogTubus); sprintf(szLabel,"%s_RPFloorTubus",pszStationName); pPhysMotherVol->add(new GeoNameTag(szLabel)); - pPhysMotherVol->add(new GeoTransform(TransRPot*HepGeom::TranslateX3D(0.5*fMainTubusSteelPartLength+RPOT_MAINTUBUS_FLOORPARTLENGTH+0.5*RPOT_FLOOR_THICKNESS)*HepGeom::RotateY3D(90*CLHEP::deg))); + pPhysMotherVol->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransRPot*HepGeom::TranslateX3D(0.5*fMainTubusSteelPartLength+RPOT_MAINTUBUS_FLOORPARTLENGTH+0.5*RPOT_FLOOR_THICKNESS)*HepGeom::RotateY3D(90*CLHEP::deg)))); pPhysMotherVol->add(pPhysTubus); //Flange tubus ------------------------------------------------------------------------------------------------- @@ -223,7 +223,7 @@ void AFP_GeoModelFactory::AddRomanPot(GeoPhysVol* pPhysMotherVol, const char* ps pPhysTubus=new GeoFullPhysVol(pLogTubus); sprintf(szLabel,"%s_RPFlangeTubus",pszStationName); pPhysMotherVol->add(new GeoNameTag(szLabel)); - pPhysMotherVol->add(new GeoTransform(TransRPot*HepGeom::TranslateX3D(-0.5*fMainTubusSteelPartLength-0.5*RPOT_FLANGE_THICKNESS)*HepGeom::RotateY3D(90*CLHEP::deg))); + pPhysMotherVol->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransRPot*HepGeom::TranslateX3D(-0.5*fMainTubusSteelPartLength-0.5*RPOT_FLANGE_THICKNESS)*HepGeom::RotateY3D(90*CLHEP::deg)))); pPhysMotherVol->add(pPhysTubus); diff --git a/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelSID.cxx b/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelSID.cxx index af9d123d3250f818e5ce1778ba6290057d2b257c..46fd4fbdc5cf58a69b75b5a8802fc32bc753e297 100644 --- a/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelSID.cxx +++ b/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelSID.cxx @@ -18,12 +18,14 @@ #include "GeoModelKernel/GeoFullPhysVol.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "CLHEP/GenericFunctions/AbsFunction.hh" #include "CLHEP/GenericFunctions/Variable.hh" #include "CLHEP/GenericFunctions/Sin.hh" #include "CLHEP/GenericFunctions/Cos.hh" #include "GeoModelInterfaces/StoredMaterialManager.h" +#include "GeoPrimitives/CLHEPtoEigenConverter.h" #include <iostream> #include <fstream> @@ -70,7 +72,7 @@ void AFP_GeoModelFactory::AddSiDetector(GeoPhysVol* pPhysMotherVol, const char* GeoFullPhysVol* pPhysSIDVacuumSensor=new GeoFullPhysVol(pLogSIDVacuumSensor); sprintf(szLabel,"%s_SIDVacuumSensor[%i]",pszStationName,nSpecVacSensorID); pPhysMotherVol->add(new GeoNameTag(szLabel)); - pPhysMotherVol->add(new GeoTransform(m_pGeometry->GetSIDTransform(ESTT_VACUUMSENSOR,pszStationName,nSpecVacSensorID))); + pPhysMotherVol->add(new GeoTransform(Amg::CLHEPTransformToEigen(m_pGeometry->GetSIDTransform(ESTT_VACUUMSENSOR,pszStationName,nSpecVacSensorID)))); pPhysMotherVol->add(pPhysSIDVacuumSensor); //add global vacuum sensitive volume (ID=11) @@ -94,7 +96,7 @@ void AFP_GeoModelFactory::AddSiDetector(GeoPhysVol* pPhysMotherVol, const char* sprintf(szLabel,"%s_SIDPlate[%i]",pszStationName,i); pPhysMotherVol->add(new GeoNameTag(szLabel)); //pPhysMotherVol->add(new GeoTransform(PlateTotTrans)); - pPhysMotherVol->add(new GeoTransform(m_pGeometry->GetSIDTransform(ESTT_PLATE,pszStationName,i))); + pPhysMotherVol->add(new GeoTransform(Amg::CLHEPTransformToEigen(m_pGeometry->GetSIDTransform(ESTT_PLATE,pszStationName,i)))); pPhysMotherVol->add(pPhysSIDPlate); //m_pDetectorManager->addTreeTop(pPhysSIDPlate); @@ -119,7 +121,7 @@ void AFP_GeoModelFactory::AddSiDetector(GeoPhysVol* pPhysMotherVol, const char* sprintf(szLabel,"%s_SIDSensor[%i]",pszStationName,i); pPhysMotherVol->add(new GeoNameTag(szLabel)); //pPhysMotherVol->add(new GeoTransform(TransSID)); - pPhysMotherVol->add(new GeoTransform(m_pGeometry->GetSIDTransform(ESTT_SENSOR,pszStationName,i))); + pPhysMotherVol->add(new GeoTransform(Amg::CLHEPTransformToEigen(m_pGeometry->GetSIDTransform(ESTT_SENSOR,pszStationName,i)))); pPhysMotherVol->add(pPhysSID); //m_MapSIDTransToLocal[std::string(pszStationName)][i]=m_pGeometry->GetSIDTransform(ESTT_SENSORLOCAL,pszStationName,i); @@ -133,7 +135,7 @@ void AFP_GeoModelFactory::AddSiDetector(GeoPhysVol* pPhysMotherVol, const char* pPhysMotherVol->add(new GeoNameTag(szLabel)); //pPhysMotherVol->add(new GeoTransform(TotTransform*HepGeom::Translate3D(fxm,0.0*CLHEP::mm,i*NOMINALSIDSPACING/cos(falpha))*HepGeom::RotateY3D(falpha))); //pPhysMotherVol->add(new GeoTransform(HepGeom::Translate3D(DETXSIDE*(-pMainPlate->getXHalfLength()+((GeoBox*)m_MapShapes["Sensor"])->getXHalfLength()), 0.0*CLHEP::mm, -pMainPlate->getZHalfLength()-0.5*SID_VACUUMSENSORTHICKNESS))); - pPhysMotherVol->add(new GeoTransform(m_pGeometry->GetSIDTransform(ESTT_VACUUMSENSOR,pszStationName,i))); + pPhysMotherVol->add(new GeoTransform(Amg::CLHEPTransformToEigen(m_pGeometry->GetSIDTransform(ESTT_VACUUMSENSOR,pszStationName,i)))); pPhysMotherVol->add(pPhysSIDVacuumSensor); } } @@ -141,22 +143,22 @@ void AFP_GeoModelFactory::AddSiDetector(GeoPhysVol* pPhysMotherVol, const char* GeoShape* AFP_GeoModelFactory::CreateSolidSIDSupport() { - double fdelta=0.01*CLHEP::mm; - - // main plate + edge - GeoBox* pMainBlock=new GeoBox(0.5*75.6*CLHEP::mm,0.5*(80-2*3.25)*CLHEP::mm,0.5*SID_PLATETHICKNESS); - GeoBox* pEdge=new GeoBox(0.5*(94-75.6+10)*CLHEP::mm,0.5*(108-14)*CLHEP::mm, 0.5*SID_PLATETHICKNESS); - HepGeom::Transform3D TransEdge=HepGeom::Translate3D(DETXSIDE*(pMainBlock->getXHalfLength()+pEdge->getXHalfLength()),pEdge->getYHalfLength()-pMainBlock->getYHalfLength(), 0.0*CLHEP::mm); - GeoShapeShift* pMoveEdge=new GeoShapeShift(pEdge, TransEdge); - GeoShapeUnion* pSupport1=new GeoShapeUnion(pMainBlock,pMoveEdge); - - // cut sensitive area - GeoBox* pSensorCut=new GeoBox(0.5*(21.0+10)*CLHEP::mm, 0.5*(22+10.0)*CLHEP::mm, 0.5*SID_PLATETHICKNESS+fdelta); - HepGeom::Transform3D TransSensorCut=HepGeom::Translate3D(DETXSIDE*(-pMainBlock->getXHalfLength()+pSensorCut->getXHalfLength()-fdelta), 0.0*CLHEP::mm, 0.0*CLHEP::mm); - GeoShapeShift* pMoveSensorCut=new GeoShapeShift(pSensorCut, TransSensorCut); - GeoShapeSubtraction* pSupport2=new GeoShapeSubtraction(pSupport1, pMoveSensorCut); - - return pSupport2; + double fdelta=0.01*CLHEP::mm; + + // main plate + edge + GeoBox* pMainBlock=new GeoBox(0.5*75.6*CLHEP::mm,0.5*(80-2*3.25)*CLHEP::mm,0.5*SID_PLATETHICKNESS); + GeoBox* pEdge=new GeoBox(0.5*(94-75.6+10)*CLHEP::mm,0.5*(108-14)*CLHEP::mm, 0.5*SID_PLATETHICKNESS); + GeoTrf::Transform3D TransEdge=GeoTrf::Translate3D(DETXSIDE*(pMainBlock->getXHalfLength()+pEdge->getXHalfLength()),pEdge->getYHalfLength()-pMainBlock->getYHalfLength(), 0.0*CLHEP::mm); + GeoShapeShift* pMoveEdge=new GeoShapeShift(pEdge,TransEdge); + GeoShapeUnion* pSupport1=new GeoShapeUnion(pMainBlock,pMoveEdge); + + // cut sensitive area + GeoBox* pSensorCut=new GeoBox(0.5*(21.0+10)*CLHEP::mm, 0.5*(22+10.0)*CLHEP::mm, 0.5*SID_PLATETHICKNESS+fdelta); + GeoTrf::Transform3D TransSensorCut=GeoTrf::Translate3D(DETXSIDE*(-pMainBlock->getXHalfLength()+pSensorCut->getXHalfLength()-fdelta), 0.0*CLHEP::mm, 0.0*CLHEP::mm); + GeoShapeShift* pMoveSensorCut=new GeoShapeShift(pSensorCut, TransSensorCut); + GeoShapeSubtraction* pSupport2=new GeoShapeSubtraction(pSupport1, pMoveSensorCut); + + return pSupport2; } GeoShape* AFP_GeoModelFactory::CreateSolidSIDPlate() @@ -165,35 +167,35 @@ GeoShape* AFP_GeoModelFactory::CreateSolidSIDPlate() double fSensorHolderWidth=0.3*CLHEP::mm; double fSensorHolderPlateWidth=0.0*CLHEP::mm;//0.3*CLHEP::mm; //thin plate under sensor - double fPlateThickness=m_CfgParams.sidcfg.fSupportThickness; - - //main plate including cover + edge - GeoBox* pMainPlate=new GeoBox(0.5*SID_MAINPLATEXDIM, 0.5*SID_MAINPLATEYDIM, 0.5*fPlateThickness); - GeoBox* pEdge=new GeoBox(0.5*(94*CLHEP::mm-SID_MAINPLATEXDIM),0.5*108*CLHEP::mm, 0.5*fPlateThickness); - HepGeom::Transform3D TransEdge=HepGeom::Translate3D(DETXSIDE*(pMainPlate->getXHalfLength()+pEdge->getXHalfLength()),0.0*CLHEP::mm, 0.0*CLHEP::mm); - GeoShapeShift* pMoveEdge=new GeoShapeShift(pEdge, TransEdge); - GeoShapeUnion* pDetPlate1=new GeoShapeUnion(pMainPlate,pMoveEdge); - - //cut sensitive area - GeoBox* pSensorCut=new GeoBox(0.5*21.0*CLHEP::mm, 0.5*22.0*CLHEP::mm,pMainPlate->getZHalfLength()-0.5*fSensorHolderWidth); - HepGeom::Transform3D TransSensorCut=HepGeom::Translate3D(DETXSIDE*(-pMainPlate->getXHalfLength()+pSensorCut->getXHalfLength()-fdelta),0.0*CLHEP::mm, -pMainPlate->getZHalfLength()+pSensorCut->getZHalfLength()-fdelta); - GeoShapeShift* pMoveSensorCut=new GeoShapeShift(pSensorCut, TransSensorCut); - GeoShapeSubtraction* pDetPlate2=new GeoShapeSubtraction(pDetPlate1, pMoveSensorCut); - + double fPlateThickness=m_CfgParams.sidcfg.fSupportThickness; + + //main plate including cover + edge + GeoBox* pMainPlate=new GeoBox(0.5*SID_MAINPLATEXDIM, 0.5*SID_MAINPLATEYDIM, 0.5*fPlateThickness); + GeoBox* pEdge=new GeoBox(0.5*(94*CLHEP::mm-SID_MAINPLATEXDIM),0.5*108*CLHEP::mm, 0.5*fPlateThickness); + GeoTrf::Transform3D TransEdge=GeoTrf::Translate3D(DETXSIDE*(pMainPlate->getXHalfLength()+pEdge->getXHalfLength()),0.0*CLHEP::mm, 0.0*CLHEP::mm); + GeoShapeShift* pMoveEdge=new GeoShapeShift(pEdge, TransEdge); + GeoShapeUnion* pDetPlate1=new GeoShapeUnion(pMainPlate,pMoveEdge); + + //cut sensitive area + GeoBox* pSensorCut=new GeoBox(0.5*21.0*CLHEP::mm, 0.5*22.0*CLHEP::mm,pMainPlate->getZHalfLength()-0.5*fSensorHolderWidth); + GeoTrf::Transform3D TransSensorCut=GeoTrf::Translate3D(DETXSIDE*(-pMainPlate->getXHalfLength()+pSensorCut->getXHalfLength()-fdelta),0.0*CLHEP::mm, -pMainPlate->getZHalfLength()+pSensorCut->getZHalfLength()-fdelta); + GeoShapeShift* pMoveSensorCut=new GeoShapeShift(pSensorCut, TransSensorCut); + GeoShapeSubtraction* pDetPlate2=new GeoShapeSubtraction(pDetPlate1, pMoveSensorCut); + GeoBox* pSensorCut2=new GeoBox(0.5*18*CLHEP::mm+fdelta,0.5*16*CLHEP::mm,0.5*(fSensorHolderWidth-fSensorHolderPlateWidth)+fdelta); - HepGeom::Transform3D TransSensorCut2=HepGeom::Translate3D(DETXSIDE*(-pMainPlate->getXHalfLength()+pSensorCut2->getXHalfLength()-fdelta),0.0*CLHEP::mm, pMainPlate->getZHalfLength()-pSensorCut2->getZHalfLength()-fSensorHolderPlateWidth+fdelta); - GeoShapeShift* pMoveSensorCut2=new GeoShapeShift(pSensorCut2, TransSensorCut2); - GeoShapeSubtraction* pDetPlate3=new GeoShapeSubtraction(pDetPlate2, pMoveSensorCut2); + GeoTrf::Transform3D TransSensorCut2=GeoTrf::Translate3D(DETXSIDE*(-pMainPlate->getXHalfLength()+pSensorCut2->getXHalfLength()-fdelta),0.0*CLHEP::mm, pMainPlate->getZHalfLength()-pSensorCut2->getZHalfLength()-fSensorHolderPlateWidth+fdelta); + GeoShapeShift* pMoveSensorCut2=new GeoShapeShift(pSensorCut2, TransSensorCut2); + GeoShapeSubtraction* pDetPlate3=new GeoShapeSubtraction(pDetPlate2, pMoveSensorCut2); - //cut side edges - GeoBox* pSideEdge=new GeoBox(0.5*27.5*CLHEP::mm, 0.5*12.5*CLHEP::mm, 0.5*2*CLHEP::mm); - HepGeom::Transform3D TransSideEdgeUp=HepGeom::Translate3D(DETXSIDE*(-pMainPlate->getXHalfLength()+pSideEdge->getXHalfLength()-fdelta),pMainPlate->getYHalfLength()-pSideEdge->getYHalfLength()+fdelta,-pMainPlate->getZHalfLength()+pSideEdge->getZHalfLength()-fdelta); - GeoShapeShift* pMoveSideEdgeUp=new GeoShapeShift(pSideEdge,TransSideEdgeUp); - GeoShapeSubtraction* pDetPlate4=new GeoShapeSubtraction(pDetPlate3, pMoveSideEdgeUp); + //cut side edges + GeoBox* pSideEdge=new GeoBox(0.5*27.5*CLHEP::mm, 0.5*12.5*CLHEP::mm, 0.5*2*CLHEP::mm); + GeoTrf::Transform3D TransSideEdgeUp=GeoTrf::Translate3D(DETXSIDE*(-pMainPlate->getXHalfLength()+pSideEdge->getXHalfLength()-fdelta),pMainPlate->getYHalfLength()-pSideEdge->getYHalfLength()+fdelta,-pMainPlate->getZHalfLength()+pSideEdge->getZHalfLength()-fdelta); + GeoShapeShift* pMoveSideEdgeUp=new GeoShapeShift(pSideEdge,TransSideEdgeUp); + GeoShapeSubtraction* pDetPlate4=new GeoShapeSubtraction(pDetPlate3, pMoveSideEdgeUp); - HepGeom::Transform3D TransSideEdgeDown=HepGeom::Translate3D(DETXSIDE*(-pMainPlate->getXHalfLength()+pSideEdge->getXHalfLength()-fdelta),-pMainPlate->getYHalfLength()+pSideEdge->getYHalfLength()-fdelta,-pMainPlate->getZHalfLength()+pSideEdge->getZHalfLength()-fdelta); - GeoShapeShift* pMoveSideEdgeDown=new GeoShapeShift(pSideEdge,TransSideEdgeDown); - GeoShapeSubtraction* pDetPlate5=new GeoShapeSubtraction(pDetPlate4, pMoveSideEdgeDown); + GeoTrf::Transform3D TransSideEdgeDown=GeoTrf::Translate3D(DETXSIDE*(-pMainPlate->getXHalfLength()+pSideEdge->getXHalfLength()-fdelta),-pMainPlate->getYHalfLength()+pSideEdge->getYHalfLength()-fdelta,-pMainPlate->getZHalfLength()+pSideEdge->getZHalfLength()-fdelta); + GeoShapeShift* pMoveSideEdgeDown=new GeoShapeShift(pSideEdge,TransSideEdgeDown); + GeoShapeSubtraction* pDetPlate5=new GeoShapeSubtraction(pDetPlate4, pMoveSideEdgeDown); //m_MapShapes["MainPlate"]=pMainPlate; //m_MapShapes["EdgePlate"]=pEdge; @@ -205,65 +207,65 @@ GeoShape* AFP_GeoModelFactory::CreateSolidSIDPlate() GeoShape* AFP_GeoModelFactory::CreateSolidSIDCooling() { // Symmetric part - GeoBox* pCoolingCh1=new GeoBox(0.5*22*CLHEP::mm, 0.5*4*CLHEP::mm, 0.5*4*CLHEP::mm); - HepGeom::Transform3D DownLeft1=HepGeom::Translate3D(DETXSIDE*(-75.6/2.+pCoolingCh1->getXHalfLength()+2.)*CLHEP::mm, (13.+4.+2.+2.)*CLHEP::mm, 0.0*CLHEP::mm); - GeoShapeShift* pMoveDownLeft1=new GeoShapeShift(pCoolingCh1, DownLeft1); - - GeoBox* pCoolingCh11=new GeoBox(0.5*25.*CLHEP::mm, 0.5*4*CLHEP::mm, 0.5*4*CLHEP::mm); - HepGeom::Transform3D DownLeft2=HepGeom::Translate3D(DETXSIDE*(-75.6/2.+pCoolingCh11->getXHalfLength()+2.)*CLHEP::mm, (13.+2.)*CLHEP::mm, 0.0*CLHEP::mm); - GeoShapeShift* pMoveDownLeft2=new GeoShapeShift(pCoolingCh11, DownLeft2); - GeoShapeUnion* pCoolingChU1=new GeoShapeUnion(pMoveDownLeft1,pMoveDownLeft2); - - GeoBox* pCoolingCh2=new GeoBox(0.5*4*CLHEP::mm, 0.5*(4+2+4)*CLHEP::mm, 0.5*4*CLHEP::mm); - HepGeom::Transform3D DownLeft3=HepGeom::Translate3D(DETXSIDE*(-75.6/2.+pCoolingCh2->getXHalfLength()+2.)*CLHEP::mm, (13.+pCoolingCh2->getYHalfLength())*CLHEP::mm, 0.0*CLHEP::mm); - GeoShapeShift* pMoveDownLeft3=new GeoShapeShift(pCoolingCh2, DownLeft3); - GeoShapeUnion* pCoolingChU2=new GeoShapeUnion(pCoolingChU1,pMoveDownLeft3); + GeoBox* pCoolingCh1=new GeoBox(0.5*22*CLHEP::mm, 0.5*4*CLHEP::mm, 0.5*4*CLHEP::mm); + GeoTrf::Transform3D DownLeft1=GeoTrf::Translate3D(DETXSIDE*(-75.6/2.+pCoolingCh1->getXHalfLength()+2.)*CLHEP::mm, (13.+4.+2.+2.)*CLHEP::mm, 0.0*CLHEP::mm); + GeoShapeShift* pMoveDownLeft1=new GeoShapeShift(pCoolingCh1, DownLeft1); - double alpha1=-CLHEP::pi*15.5/180.; - GeoBox* pCoolingCh3=new GeoBox(0.5*39./std::cos(alpha1)*CLHEP::mm, 0.5*4*CLHEP::mm, 0.5*4*CLHEP::mm); - HepGeom::Transform3D MidLeft=HepGeom::Translate3D(DETXSIDE*(-75.6/2.+pCoolingCh3->getXHalfLength()+23.)*CLHEP::mm, 26.25*CLHEP::mm, 0.0*CLHEP::mm)*HepGeom::RotateZ3D(alpha1); - GeoShapeShift* pMoveMidLeft=new GeoShapeShift(pCoolingCh3, MidLeft); - GeoShapeUnion* pCoolingChU3=new GeoShapeUnion(pCoolingChU2,pMoveMidLeft); + GeoBox* pCoolingCh11=new GeoBox(0.5*25.*CLHEP::mm, 0.5*4*CLHEP::mm, 0.5*4*CLHEP::mm); + GeoTrf::Transform3D DownLeft2=GeoTrf::Translate3D(DETXSIDE*(-75.6/2.+pCoolingCh11->getXHalfLength()+2.)*CLHEP::mm, (13.+2.)*CLHEP::mm, 0.0*CLHEP::mm); + GeoShapeShift* pMoveDownLeft2=new GeoShapeShift(pCoolingCh11, DownLeft2); + GeoShapeUnion* pCoolingChU1=new GeoShapeUnion(pMoveDownLeft1,pMoveDownLeft2); + + GeoBox* pCoolingCh2=new GeoBox(0.5*4*CLHEP::mm, 0.5*(4+2+4)*CLHEP::mm, 0.5*4*CLHEP::mm); + GeoTrf::Transform3D DownLeft3=GeoTrf::Translate3D(DETXSIDE*(-75.6/2.+pCoolingCh2->getXHalfLength()+2.)*CLHEP::mm, (13.+pCoolingCh2->getYHalfLength())*CLHEP::mm, 0.0*CLHEP::mm); + GeoShapeShift* pMoveDownLeft3=new GeoShapeShift(pCoolingCh2, DownLeft3); + GeoShapeUnion* pCoolingChU2=new GeoShapeUnion(pCoolingChU1,pMoveDownLeft3); + + double alpha1=-CLHEP::pi*15.5/180.; + GeoBox* pCoolingCh3=new GeoBox(0.5*39./std::cos(alpha1)*CLHEP::mm, 0.5*4*CLHEP::mm, 0.5*4*CLHEP::mm); + GeoTrf::Transform3D MidLeft=GeoTrf::Translate3D(DETXSIDE*(-75.6/2.+pCoolingCh3->getXHalfLength()+23.)*CLHEP::mm, 26.25*CLHEP::mm, 0.0*CLHEP::mm)*GeoTrf::RotateZ3D(alpha1); + GeoShapeShift* pMoveMidLeft=new GeoShapeShift(pCoolingCh3, MidLeft); + GeoShapeUnion* pCoolingChU3=new GeoShapeUnion(pCoolingChU2,pMoveMidLeft); - GeoBox* pCoolingCh4=new GeoBox(0.5*(18+14)*CLHEP::mm, 0.5*4*CLHEP::mm, 0.5*4*CLHEP::mm); - HepGeom::Transform3D UpLeft=HepGeom::Translate3D(DETXSIDE*(-75.6/2.+pCoolingCh4->getXHalfLength()+62.)*CLHEP::mm, 31.5*CLHEP::mm, 0.0*CLHEP::mm); - GeoShapeShift* pMoveUpLeft=new GeoShapeShift(pCoolingCh4, UpLeft); - GeoShapeUnion* pCoolingChU4=new GeoShapeUnion(pCoolingChU3,pMoveUpLeft); - - HepGeom::RotateX3D Rot=HepGeom::RotateX3D(CLHEP::pi); - GeoShapeShift* pRot=new GeoShapeShift(pCoolingChU4, Rot); - GeoShapeUnion* pCoolingChU5=new GeoShapeUnion(pCoolingChU4,pRot); - - GeoBox* pCoolingCh5=new GeoBox(0.5*(25.99)*CLHEP::mm, 0.5*4*CLHEP::mm, 0.5*4*CLHEP::mm); - HepGeom::Transform3D Center1=HepGeom::Translate3D(DETXSIDE*(-37.8+25.)*CLHEP::mm, 0.0*CLHEP::mm, 0.0*CLHEP::mm)*HepGeom::RotateZ3D(-CLHEP::pi/2.); - GeoShapeShift* pMoveCenter1=new GeoShapeShift(pCoolingCh5, Center1); - GeoShapeUnion* pCoolingChU6=new GeoShapeUnion(pCoolingChU5,pMoveCenter1); - - // Asymmetric (central) part - GeoBox* pCoolingCh6=new GeoBox(0.5*(48.2)*CLHEP::mm, 0.5*4*CLHEP::mm, 0.5*4*CLHEP::mm); - HepGeom::Transform3D Center2=HepGeom::Translate3D(DETXSIDE*(-75.6/2.+pCoolingCh6->getXHalfLength()+45.8)*CLHEP::mm, -12.*CLHEP::mm, 0.0*CLHEP::mm); - GeoShapeShift* pMoveCenter2=new GeoShapeShift(pCoolingCh6, Center2); - GeoShapeUnion* pCoolingChU7=new GeoShapeUnion(pCoolingChU6,pMoveCenter2); - - GeoBox* pCoolingCh7=new GeoBox(0.5*(18.6)*CLHEP::mm, 0.5*4*CLHEP::mm, 0.5*4*CLHEP::mm); - HepGeom::Transform3D Center3=HepGeom::Translate3D(DETXSIDE*(-75.6/2.+pCoolingCh7->getXHalfLength()+31.4)*CLHEP::mm, -6.*CLHEP::mm, 0.0*CLHEP::mm)*HepGeom::RotateZ3D(+CLHEP::pi/4.01); - GeoShapeShift* pMoveCenter3=new GeoShapeShift(pCoolingCh7, Center3); - GeoShapeUnion* pCoolingChU8=new GeoShapeUnion(pCoolingChU7,pMoveCenter3); - - GeoBox* pCoolingCh8=new GeoBox(0.5*(8.6)*CLHEP::mm, 0.5*4*CLHEP::mm, 0.5*4*CLHEP::mm); - HepGeom::Transform3D Center4=HepGeom::Translate3D(DETXSIDE*(-75.6/2.+pCoolingCh8->getXHalfLength()+27.)*CLHEP::mm, 0.0*CLHEP::mm, 0.0*CLHEP::mm); - GeoShapeShift* pMoveCenter4=new GeoShapeShift(pCoolingCh8, Center4); - GeoShapeUnion* pCoolingChU9=new GeoShapeUnion(pCoolingChU8,pMoveCenter4); - - return pCoolingChU9; + GeoBox* pCoolingCh4=new GeoBox(0.5*(18+14)*CLHEP::mm, 0.5*4*CLHEP::mm, 0.5*4*CLHEP::mm); + GeoTrf::Transform3D UpLeft=GeoTrf::Translate3D(DETXSIDE*(-75.6/2.+pCoolingCh4->getXHalfLength()+62.)*CLHEP::mm, 31.5*CLHEP::mm, 0.0*CLHEP::mm); + GeoShapeShift* pMoveUpLeft=new GeoShapeShift(pCoolingCh4, UpLeft); + GeoShapeUnion* pCoolingChU4=new GeoShapeUnion(pCoolingChU3,pMoveUpLeft); + + GeoTrf::RotateX3D Rot=GeoTrf::RotateX3D(CLHEP::pi); + GeoShapeShift* pRot=new GeoShapeShift(pCoolingChU4, Rot); + GeoShapeUnion* pCoolingChU5=new GeoShapeUnion(pCoolingChU4,pRot); + + GeoBox* pCoolingCh5=new GeoBox(0.5*(25.99)*CLHEP::mm, 0.5*4*CLHEP::mm, 0.5*4*CLHEP::mm); + GeoTrf::Transform3D Center1=GeoTrf::Translate3D(DETXSIDE*(-37.8+25.)*CLHEP::mm, 0.0*CLHEP::mm, 0.0*CLHEP::mm)*GeoTrf::RotateZ3D(-CLHEP::pi/2.); + GeoShapeShift* pMoveCenter1=new GeoShapeShift(pCoolingCh5, Center1); + GeoShapeUnion* pCoolingChU6=new GeoShapeUnion(pCoolingChU5,pMoveCenter1); + + // Asymmetric (central) part + GeoBox* pCoolingCh6=new GeoBox(0.5*(48.2)*CLHEP::mm, 0.5*4*CLHEP::mm, 0.5*4*CLHEP::mm); + GeoTrf::Transform3D Center2=GeoTrf::Translate3D(DETXSIDE*(-75.6/2.+pCoolingCh6->getXHalfLength()+45.8)*CLHEP::mm, -12.*CLHEP::mm, 0.0*CLHEP::mm); + GeoShapeShift* pMoveCenter2=new GeoShapeShift(pCoolingCh6, Center2); + GeoShapeUnion* pCoolingChU7=new GeoShapeUnion(pCoolingChU6,pMoveCenter2); + + GeoBox* pCoolingCh7=new GeoBox(0.5*(18.6)*CLHEP::mm, 0.5*4*CLHEP::mm, 0.5*4*CLHEP::mm); + GeoTrf::Transform3D Center3=GeoTrf::Translate3D(DETXSIDE*(-75.6/2.+pCoolingCh7->getXHalfLength()+31.4)*CLHEP::mm, -6.*CLHEP::mm, 0.0*CLHEP::mm)*GeoTrf::RotateZ3D(+CLHEP::pi/4.01); + GeoShapeShift* pMoveCenter3=new GeoShapeShift(pCoolingCh7, Center3); + GeoShapeUnion* pCoolingChU8=new GeoShapeUnion(pCoolingChU7,pMoveCenter3); + + GeoBox* pCoolingCh8=new GeoBox(0.5*(8.6)*CLHEP::mm, 0.5*4*CLHEP::mm, 0.5*4*CLHEP::mm); + GeoTrf::Transform3D Center4=GeoTrf::Translate3D(DETXSIDE*(-75.6/2.+pCoolingCh8->getXHalfLength()+27.)*CLHEP::mm, 0.0*CLHEP::mm, 0.0*CLHEP::mm); + GeoShapeShift* pMoveCenter4=new GeoShapeShift(pCoolingCh8, Center4); + GeoShapeUnion* pCoolingChU9=new GeoShapeUnion(pCoolingChU8,pMoveCenter4); + + return pCoolingChU9; } GeoShape* AFP_GeoModelFactory::CreateSolidSIDVacuumLayer() { - // sensitive layer of vacuum (very thin) - GeoBox* pVacuumSensor=new GeoBox(0.5*180.0*CLHEP::mm,0.5*160.0*CLHEP::mm,0.5*SID_VACUUMSENSORTHICKNESS); - - return pVacuumSensor; + // sensitive layer of vacuum (very thin) + GeoBox* pVacuumSensor=new GeoBox(0.5*180.0*CLHEP::mm,0.5*160.0*CLHEP::mm,0.5*SID_VACUUMSENSORTHICKNESS); + + return pVacuumSensor; } diff --git a/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelTD.cxx b/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelTD.cxx index f260c07cfdd7a350bbf346733e4e36b71314cb55..974d5d13f8958fe15eec6bd3f00890e2bd2fd40e 100644 --- a/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelTD.cxx +++ b/ForwardDetectors/AFP/AFP_GeoModel/src/AFP_GeoModelTD.cxx @@ -26,6 +26,8 @@ #include "StoreGate/StoreGateSvc.h" #include "GeoModelUtilities/GeoModelTool.h" +#include "GeoPrimitives/CLHEPtoEigenConverter.h" + #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GeoModelUtilities/GeoOpticalPhysVol.h" #include "GeoModelUtilities/GeoOpticalSurface.h" @@ -199,7 +201,6 @@ void AFP_GeoModelFactory::AddSepRadLBar(const char* pszStationName, const int nQ double fd,falpha; const double fslimcut=TD_SLIMCUT; CLHEP::Hep3Vector vecCutShift; - CLHEP::HepRotation Rot; GeoBox* pSolAux; char szLabel[64]; //G4LogicalBorderSurface* pSurface; --TODO @@ -230,11 +231,11 @@ void AFP_GeoModelFactory::AddSepRadLBar(const char* pszStationName, const int nQ GeoShape* pSolVertBar=NULL; if(LQBarDims.bIs45degElbow){ fd=LQBarDims.fVertBarXDim/sin(45.0*CLHEP::deg); //cut box dim - Rot=CLHEP::HepRotation(); Rot.rotateZ(45.0*CLHEP::deg); - vecCutShift=HepGeom::Vector3D<double>(0.5*LQBarDims.fVertBarXDim,0.5*fVertAirYDim,0.0*CLHEP::mm); + GeoTrf::RotateZ3D Rot(45.0*CLHEP::deg); + GeoTrf::Translation3D vecCutShift(0.5*LQBarDims.fVertBarXDim,0.5*fVertAirYDim,0.0*CLHEP::mm); pSolAux=new GeoBox(0.5*fd+fslimcut,0.5*fd+fslimcut,0.5*LQBarDims.fLBarZDim+fslimcut); - HepGeom::Transform3D TransCutWnd=HepGeom::Transform3D(Rot,vecCutShift); + GeoTrf::Transform3D TransCutWnd = vecCutShift*Rot; GeoShapeShift* pMoveCutWnd=new GeoShapeShift(pSolAux, TransCutWnd); GeoShapeSubtraction* pSolVertBar2=new GeoShapeSubtraction(pSolVertBar1, pMoveCutWnd); //G4SubtractionSolid* pSolVertBar2=new G4SubtractionSolid("SolVertBar2",pSolVertBar1,pSolAux,pRot,vecCutShift); @@ -250,7 +251,7 @@ void AFP_GeoModelFactory::AddSepRadLBar(const char* pszStationName, const int nQ GeoOpticalPhysVol* pPhysVertBar=new GeoOpticalPhysVol(pLogVertBar); sprintf(szLabel,"%s_Q%i_VertBar[%i]",pszStationName,nQuarticID,nLQBarID); pPhysMotherVolume->add(new GeoNameTag(szLabel)); - pPhysMotherVolume->add(new GeoTransform(LQBarTotTransform)); + pPhysMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(LQBarTotTransform))); pPhysMotherVolume->add(pPhysVertBar); sprintf(szLabel,"%s_Q%i_VertAirLightGuideSurface[%i]",pszStationName,nQuarticID,nLQBarID); bsContainer->push_back(GeoBorderSurface(szLabel, pPhysVertBar, pPhysMotherVolume, m_pReflectionOptSurface)); @@ -272,10 +273,10 @@ void AFP_GeoModelFactory::AddSepRadLBar(const char* pszStationName, const int nQ HepGeom::Vector3D<double> vecX=vecA4+vecA5; vecCutShift=CLHEP::Hep3Vector(0.0*CLHEP::mm,-0.5*LQBarDims.fRadiatorLength,0.5*LQBarDims.fLBarZDim)+CLHEP::Hep3Vector(vecX); - Rot=CLHEP::HepRotation(); Rot.rotateX(-(90.0*CLHEP::deg-falpha)); + GeoTrf::RotateX3D Rot(-(90.0*CLHEP::deg-falpha)); pSolAux=new GeoBox(0.5*LQBarDims.fVertBarXDim+fslimcut,0.5*fd+fslimcut,0.5*fd+fslimcut); - HepGeom::Transform3D TransCutWnd=HepGeom::Transform3D(Rot,vecCutShift); + GeoTrf::Transform3D TransCutWnd=GeoTrf::Translation3D(vecCutShift.x(),vecCutShift.y(),vecCutShift.z())*Rot; GeoShapeShift* pMoveCutWnd=new GeoShapeShift(pSolAux, TransCutWnd); GeoShapeSubtraction* pSolRadiator2=new GeoShapeSubtraction(pSolRadiator1, pMoveCutWnd); //G4SubtractionSolid* pSolRadiator2=new G4SubtractionSolid("SolRadiator2",pSolRadiator1,pSolAux,pRot,vecCutShift); @@ -299,7 +300,7 @@ void AFP_GeoModelFactory::AddSepRadLBar(const char* pszStationName, const int nQ GeoPhysVol* pPhysRadiator=new GeoPhysVol(pLogRadiator); sprintf(szLabel,"%s_Q%i_Radiator[%i]",pszStationName,nQuarticID,nLQBarID); pPhysMotherVolume->add(new GeoNameTag(szLabel)); - pPhysMotherVolume->add(new GeoTransform(LQBarTotTransform*TransRadiator2VertBar)); + pPhysMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(LQBarTotTransform*TransRadiator2VertBar))); pPhysMotherVolume->add(pPhysRadiator); sprintf(szLabel,"%s_Q%i_RadiatorSurface[%i]",pszStationName,nQuarticID,nLQBarID); bsContainer->push_back(GeoBorderSurface(szLabel, pPhysVertBar, pPhysMotherVolume, m_pOpticalSurface)); @@ -369,11 +370,11 @@ void AFP_GeoModelFactory::AddHorizontalArm(const char* pszStationName, const int HepGeom::Vector3D<double> vecA2=+0.5*fd*sqrt(2.0)*(HepGeom::RotateZ3D(+(45.0*CLHEP::deg-falpha))*HepGeom::Vector3D<double>(1.0,0.0,0.0)).unit(); HepGeom::Vector3D<double> vecX=vecA1+vecA2; CLHEP::Hep3Vector vecCutShift=CLHEP::Hep3Vector(bAddSepPart? 0.5*fTaperPartXDim:0.5*LQBarDims.fHorzBarXDim,0.5*LQBarDims.fHorzBarYDim,0.0)+CLHEP::Hep3Vector(vecX); - CLHEP::HepRotation Rot=CLHEP::HepRotation(); Rot.rotateZ(falpha); + GeoTrf::RotateZ3D Rot(falpha); GeoBox* pSolAux=new GeoBox(0.5*fd,0.5*fd,0.5*LQBarDims.fLBarZDim+fslimcut); - HepGeom::Transform3D TransCutWnd=HepGeom::Transform3D(Rot,vecCutShift); + GeoTrf::Transform3D TransCutWnd = GeoTrf::Translation3D(vecCutShift.x(),vecCutShift.y(),vecCutShift.z())*Rot; GeoShapeShift* pMoveCutWnd=new GeoShapeShift(pSolAux, TransCutWnd); pSolHorzBar=new GeoShapeSubtraction(pSolHorzBar1, pMoveCutWnd); //pSolHorzBar=new G4SubtractionSolid("SolHorzBarWithTaper",pSolHorzBar1,pSolAux,pRot,vecCutShift); @@ -395,7 +396,7 @@ void AFP_GeoModelFactory::AddHorizontalArm(const char* pszStationName, const int pPhysHorzBar=new GeoOpticalPhysVol(pLogHorzBar); sprintf(szLabel,"%s_Q%i_HorzBarTaper[%i]",pszStationName, nQuarticID, nLQBarID); pPhysMotherVolume->add(new GeoNameTag(szLabel)); - pPhysMotherVolume->add(new GeoTransform(TransInMotherVolume)); + pPhysMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransInMotherVolume))); pPhysMotherVolume->add(pPhysHorzBar); sprintf(szLabel,"%s_Q%i_HorzTaperAirGuideSurface[%i]",pszStationName,nQuarticID,nLQBarID); bsContainer->push_back(GeoBorderSurface(szLabel, pPhysHorzBar, pPhysMotherVolume, (LQBarDims.eTaperMaterial==EM_VACUUM)? m_pReflectionOptSurface:m_pOpticalSurface)); @@ -411,7 +412,7 @@ void AFP_GeoModelFactory::AddHorizontalArm(const char* pszStationName, const int pPhysHorzBar=new GeoOpticalPhysVol(pLogHorzBar); sprintf(szLabel,"%s_Q%i_HorzBar[%i]",pszStationName, nQuarticID, nLQBarID); pPhysMotherVolume->add(new GeoNameTag(szLabel)); - pPhysMotherVolume->add(new GeoTransform(TransInMotherVolume)); + pPhysMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransInMotherVolume))); pPhysMotherVolume->add(pPhysHorzBar); sprintf(szLabel,"%s_Q%i_HorzAirGuideSurface[%i]",pszStationName,nQuarticID,nLQBarID); bsContainer->push_back(GeoBorderSurface(szLabel, pPhysHorzBar, pPhysMotherVolume, m_pReflectionOptSurface)); @@ -429,7 +430,7 @@ void AFP_GeoModelFactory::AddHorizontalArm(const char* pszStationName, const int pPhysHorzBar=new GeoOpticalPhysVol(pLogHorzBar); sprintf(szLabel,"%s_Q%i_HorzBar[%i]",pszStationName, nQuarticID, nLQBarID); pPhysMotherVolume->add(new GeoNameTag(szLabel)); - pPhysMotherVolume->add(new GeoTransform(TransInMotherVolume)); + pPhysMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransInMotherVolume))); pPhysMotherVolume->add(pPhysHorzBar); if(LQBarDims.eType==ELBT_HYBRID || LQBarDims.eType==ELBT_HYBRIDMETALELBOW) { @@ -468,7 +469,7 @@ void AFP_GeoModelFactory::AddSensor(const char* pszStationName, const int nQuart //sprintf(szLabel,"%s_Q%i_TDSensor[%i]",pszStationName,nQuarticID,nRowsCnt*i+j); sprintf(szLabel,"%s_Q%i_TDSensor[%i][%02i]",pszStationName,nQuarticID,nLQBarID,(m_CfgParams.tdcfg.nColsCnt>1)? nLQBarID:i); pPhysMotherVolume->add(new GeoNameTag(szLabel)); - pPhysMotherVolume->add(new GeoTransform(TotTransform)); + pPhysMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(TotTransform))); pPhysMotherVolume->add(pPhysSensor); //TotTransform=TransInMotherVolume*HepGeom::TranslateZ3D(fFirstSensorZPos+i*fSensorLength); //sprintf(szLabel,"%s_Q%i_LogSensor[%i][%02i]",pszStationName,nQuarticID,nLQBarID,(m_LBarDimensions.nNumOfLBars>1)? nLQBarID:i); diff --git a/ForwardDetectors/AFP/AFP_Geometry/AFP_Geometry/AFP_ConfigParams.h b/ForwardDetectors/AFP/AFP_Geometry/AFP_Geometry/AFP_ConfigParams.h index b9bcb4b9303d5af68d12e9fb4fd392ae5ab35bcc..6ee1da52a210ac3e6fad09eedc4dfddb61b26175 100644 --- a/ForwardDetectors/AFP/AFP_Geometry/AFP_Geometry/AFP_ConfigParams.h +++ b/ForwardDetectors/AFP/AFP_Geometry/AFP_Geometry/AFP_ConfigParams.h @@ -10,8 +10,8 @@ #include <vector> #include <string> +#include "CLHEP/Geometry/Transform3D.h" #include "AFP_Geometry/AFP_constants.h" -#include "GeoModelKernel/GeoTransform.h" enum eLQBarType { ELBT_UNDEFINED=0, ELBT_REGULAR=1, ELBT_METALELBOW=2, ELBT_AIRGUIDE=3, ELBT_HYBRID=4, ELBT_HYBRIDMETALELBOW=5, ELBT_ONEARM=6, ELBT_ONEARMAIRGUIDE=7, ELBT_MIKELBAR=8 }; enum eSkinReflectivityMode { ESRM_SINGLE=1, ESRM_SPECTRAL1=2 }; diff --git a/ForwardDetectors/AFP/AFP_Geometry/AFP_Geometry/AFP_Geometry.h b/ForwardDetectors/AFP/AFP_Geometry/AFP_Geometry/AFP_Geometry.h index 7069f519e0638ea5feff1037b81ea37e020c3965..22dafcf98a05c95318dc451cd5797ac4794072e8 100644 --- a/ForwardDetectors/AFP/AFP_Geometry/AFP_Geometry/AFP_Geometry.h +++ b/ForwardDetectors/AFP/AFP_Geometry/AFP_Geometry/AFP_Geometry.h @@ -10,7 +10,6 @@ #include "AFP_Geometry/AFP_ConfigParams.h" #include "CLHEP/Geometry/Point3D.h" -#include "GeoModelKernel/GeoTransform.h" #include "AthenaKernel/CLASS_DEF.h" #include <list> diff --git a/ForwardDetectors/AFP/AFP_Geometry/CMakeLists.txt b/ForwardDetectors/AFP/AFP_Geometry/CMakeLists.txt index de155c59036042f10d2bdbbece3d013498f4ae9a..557ff779a12a09c1817c0bbae73808ab7a6a5ef8 100644 --- a/ForwardDetectors/AFP/AFP_Geometry/CMakeLists.txt +++ b/ForwardDetectors/AFP/AFP_Geometry/CMakeLists.txt @@ -8,7 +8,6 @@ atlas_subdir( AFP_Geometry ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel - DetectorDescription/GeoModel/GeoModelKernel PRIVATE Control/StoreGate GaudiKernel @@ -23,6 +22,6 @@ atlas_add_library( AFP_Geometry PUBLIC_HEADERS AFP_Geometry INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} GeoModelKernel StoreGateLib SGtests + LINK_LIBRARIES ${CLHEP_LIBRARIES} StoreGateLib SGtests PRIVATE_LINK_LIBRARIES AthenaKernel GaudiKernel PathResolver ) diff --git a/ForwardDetectors/ALFA/ALFA_GeoModel/CMakeLists.txt b/ForwardDetectors/ALFA/ALFA_GeoModel/CMakeLists.txt index c0c2769378a0326dc50adc486f235bbf86058b3f..92f6f3c1654d6fce58ad41453d940d332334f44a 100644 --- a/ForwardDetectors/ALFA/ALFA_GeoModel/CMakeLists.txt +++ b/ForwardDetectors/ALFA/ALFA_GeoModel/CMakeLists.txt @@ -11,8 +11,8 @@ atlas_depends_on_subdirs( PUBLIC Database/AthenaPOOL/AthenaPoolUtilities Database/RDBAccessSvc DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities + DetectorDescription/GeoPrimitives ForwardDetectors/ALFA/ALFA_Geometry PRIVATE Control/StoreGate @@ -21,13 +21,14 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( ALFA_GeoModel src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} AthenaKernel AthenaPoolUtilities GeoModelKernel GeoModelUtilities ALFA_Geometry StoreGateLib SGtests GaudiKernel ) + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaKernel AthenaPoolUtilities GeoModelUtilities ALFA_Geometry StoreGateLib SGtests GaudiKernel ) # Install files from the package: atlas_install_headers( ALFA_GeoModel ) diff --git a/ForwardDetectors/ALFA/ALFA_GeoModel/src/ALFA_DetectorFactory.cxx b/ForwardDetectors/ALFA/ALFA_GeoModel/src/ALFA_DetectorFactory.cxx index d24ad6e620f8ace10c014d88e79b21160338ff44..e2c6f1d75ef3a32d3fa1c16961a65a30228ec912 100755 --- a/ForwardDetectors/ALFA/ALFA_GeoModel/src/ALFA_DetectorFactory.cxx +++ b/ForwardDetectors/ALFA/ALFA_GeoModel/src/ALFA_DetectorFactory.cxx @@ -14,6 +14,7 @@ #include "GeoModelKernel/GeoShapeSubtraction.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoNameTag.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoFullPhysVol.h" @@ -21,6 +22,8 @@ #include "GeoModelUtilities/StoredAlignX.h" #include "GeoModelUtilities/StoredPhysVol.h" +#include "GeoPrimitives/CLHEPtoEigenConverter.h" + #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" #include "AthenaKernel/getMessageSvc.h" @@ -392,15 +395,15 @@ void ALFA_DetectorFactory::CreateAxes(GeoPhysVol* pMotherVolume) GeoFullPhysVol* pPhysBoxZ=new GeoFullPhysVol(pLogBoxZ); pMotherVolume->add(new GeoNameTag("BoxX")); - pMotherVolume->add(new GeoTransform(HepGeom::Translate3D(0, 0, 0))); + pMotherVolume->add(new GeoTransform(GeoTrf::Transform3D::Identity())); pMotherVolume->add(pPhysBoxX); pMotherVolume->add(new GeoNameTag("BoxY")); - pMotherVolume->add(new GeoTransform(HepGeom::Translate3D(0, 0, 0))); + pMotherVolume->add(new GeoTransform(GeoTrf::Transform3D::Identity())); pMotherVolume->add(pPhysBoxY); pMotherVolume->add(new GeoNameTag("BoxZ")); - pMotherVolume->add(new GeoTransform(HepGeom::Translate3D(0, 0, 0))); + pMotherVolume->add(new GeoTransform(GeoTrf::Transform3D::Identity())); pMotherVolume->add(pPhysBoxZ); //helper box @@ -416,7 +419,6 @@ void ALFA_DetectorFactory::CreateAxes(GeoPhysVol* pMotherVolume) void ALFA_DetectorFactory::AddBeamPipeInStation(GeoFullPhysVol* pPhysStation, const char* pszStationLabel) { char szLabel[32]; - HepGeom::Transform3D TransTube; double fzs=2*ALFASTATIONHSIZEZ; double fzd=INNERDETZSPACE; @@ -429,15 +431,13 @@ void ALFA_DetectorFactory::AddBeamPipeInStation(GeoFullPhysVol* pPhysStation, co GeoFullPhysVol* pPhysTube=new GeoFullPhysVol(pLogTube); sprintf(szLabel,"%s_IBP01",pszStationLabel); - TransTube=HepGeom::TranslateZ3D(fZPos); pPhysStation->add(new GeoNameTag(szLabel)); - pPhysStation->add(new GeoTransform(TransTube)); + pPhysStation->add(new GeoTransform(GeoTrf::TranslateZ3D(fZPos))); pPhysStation->add(pPhysTube); sprintf(szLabel,"%s_IBP02",pszStationLabel); - TransTube=HepGeom::TranslateZ3D(-fZPos); pPhysStation->add(new GeoNameTag(szLabel)); - pPhysStation->add(new GeoTransform(TransTube)); + pPhysStation->add(new GeoTransform(GeoTrf::TranslateZ3D(-fZPos))); pPhysStation->add(pPhysTube); } @@ -455,7 +455,7 @@ void ALFA_DetectorFactory::AddGlobalVacuumSensorInStation(GeoFullPhysVol *pPhysS GeoLogVol* pLogGVS=new GeoLogVol(szLabel,pSolGVS,m_MapMaterials[string("std::Vacuum")]); GeoFullPhysVol* pPhysGVS=new GeoFullPhysVol(pLogGVS); - HepGeom::Transform3D TransGVS=HepGeom::TranslateZ3D(fZOffset); + GeoTrf::TranslateZ3D TransGVS(fZOffset); pPhysStation->add(new GeoNameTag(szLabel)); pPhysStation->add(new GeoTransform(TransGVS)); pPhysStation->add(pPhysGVS); @@ -483,7 +483,7 @@ void ALFA_DetectorFactory::ConstructAlfaStations(map<eAStationName,ALFAPHYSVOLUM pPhysAlfaBox=new GeoFullPhysVol(pLogAlfaBox); //TransAlfaBox=HepGeom::Translate3D(AStationParams.IdealMainPoint[0], AStationParams.IdealMainPoint[1], AStationParams.IdealMainPoint[2]); pWorld->add(new GeoNameTag(szLabel)); - pWorld->add(new GeoTransform(AStationParams.ASTransformInATLAS)); + pWorld->add(new GeoTransform(Amg::CLHEPTransformToEigen(AStationParams.ASTransformInATLAS))); pWorld->add(pPhysAlfaBox); m_pDetectorManager->addTreeTop(pPhysAlfaBox); if(m_Config.bAddIBP) AddBeamPipeInStation(pPhysAlfaBox,AStationParams.szLabel); @@ -501,7 +501,7 @@ void ALFA_DetectorFactory::ConstructAlfaStations(map<eAStationName,ALFAPHYSVOLUM pPhysAlfaBox=new GeoFullPhysVol(pLogAlfaBox); //TransAlfaBox=HepGeom::Translate3D(AStationParams.IdealMainPoint[0], AStationParams.IdealMainPoint[1], AStationParams.IdealMainPoint[2]); pWorld->add(new GeoNameTag(szLabel)); - pWorld->add(new GeoTransform(AStationParams.ASTransformInATLAS)); + pWorld->add(new GeoTransform(Amg::CLHEPTransformToEigen(AStationParams.ASTransformInATLAS))); pWorld->add(pPhysAlfaBox); m_pDetectorManager->addTreeTop(pPhysAlfaBox); if(m_Config.bAddIBP) AddBeamPipeInStation(pPhysAlfaBox,AStationParams.szLabel); @@ -519,7 +519,7 @@ void ALFA_DetectorFactory::ConstructAlfaStations(map<eAStationName,ALFAPHYSVOLUM pPhysAlfaBox=new GeoFullPhysVol(pLogAlfaBox); //TransAlfaBox=HepGeom::Translate3D(AStationParams.IdealMainPoint[0], AStationParams.IdealMainPoint[1], AStationParams.IdealMainPoint[2]); pWorld->add(new GeoNameTag(szLabel)); - pWorld->add(new GeoTransform(AStationParams.ASTransformInATLAS)); + pWorld->add(new GeoTransform(Amg::CLHEPTransformToEigen(AStationParams.ASTransformInATLAS))); pWorld->add(pPhysAlfaBox); m_pDetectorManager->addTreeTop(pPhysAlfaBox); if(m_Config.bAddIBP) AddBeamPipeInStation(pPhysAlfaBox,AStationParams.szLabel); @@ -537,7 +537,7 @@ void ALFA_DetectorFactory::ConstructAlfaStations(map<eAStationName,ALFAPHYSVOLUM pPhysAlfaBox=new GeoFullPhysVol(pLogAlfaBox); //TransAlfaBox=HepGeom::Translate3D(AStationParams.IdealMainPoint[0], AStationParams.IdealMainPoint[1], AStationParams.IdealMainPoint[2]); pWorld->add(new GeoNameTag(szLabel)); - pWorld->add(new GeoTransform(AStationParams.ASTransformInATLAS)); + pWorld->add(new GeoTransform(Amg::CLHEPTransformToEigen(AStationParams.ASTransformInATLAS))); pWorld->add(pPhysAlfaBox); m_pDetectorManager->addTreeTop(pPhysAlfaBox); if(m_Config.bAddIBP) AddBeamPipeInStation(pPhysAlfaBox,AStationParams.szLabel); @@ -572,11 +572,11 @@ void ALFA_DetectorFactory::ConstructBeampipe(GeoPhysVol* pWorld) //TransTube=HepGeom::Translate3D(0.0*CLHEP::mm, 0.0*CLHEP::mm, AStationParams01.IdealMainPoint[2]+ALFASTATIONHSIZEZ+ALFAEDGEBEAMPIPEHLENGTH); TransTube=HepGeom::TranslateZ3D(ALFASTATIONHSIZEZ+ALFAEDGEBEAMPIPEHLENGTH)*AStationParams01.ASTransformInATLAS; pWorld->add(new GeoNameTag(szLabel)); - pWorld->add(new GeoTransform(TransTube)); + pWorld->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransTube))); pWorld->add(pPhysTube); m_pDetectorManager->addTreeTop(pPhysTube); pWorld->add(new GeoNameTag(szLabel2)); - pWorld->add(new GeoTransform(TransTube)); + pWorld->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransTube))); pWorld->add(pPhysTube2); m_pDetectorManager->addTreeTop(pPhysTube2); LogStream<<MSG::INFO<<"ALFA_Beampipe01: hlength="<<ALFAEDGEBEAMPIPEHLENGTH<<", z="<<AStationParams01.IdealMainPoint[2]+ALFASTATIONHSIZEZ+ALFAEDGEBEAMPIPEHLENGTH<<endmsg; @@ -595,11 +595,11 @@ void ALFA_DetectorFactory::ConstructBeampipe(GeoPhysVol* pWorld) //TransTube=HepGeom::Translate3D(0.0*CLHEP::mm, 0.0*CLHEP::mm, AStationParams01.IdealMainPoint[2]-ALFASTATIONHSIZEZ-fInnerTubeHLength); TransTube=HepGeom::TranslateZ3D(-ALFASTATIONHSIZEZ-fInnerTubeHLength)*AStationParams01.ASTransformInATLAS; pWorld->add(new GeoNameTag(szLabel)); - pWorld->add(new GeoTransform(TransTube)); + pWorld->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransTube))); pWorld->add(pPhysTube); m_pDetectorManager->addTreeTop(pPhysTube); pWorld->add(new GeoNameTag(szLabel2)); - pWorld->add(new GeoTransform(TransTube)); + pWorld->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransTube))); pWorld->add(pPhysTube2); m_pDetectorManager->addTreeTop(pPhysTube2); LogStream<<MSG::INFO<<"ALFA_Beampipe02: hlength="<<fInnerTubeHLength<<", z="<<AStationParams01.IdealMainPoint[2]-ALFASTATIONHSIZEZ-fInnerTubeHLength<<endmsg; @@ -616,11 +616,11 @@ void ALFA_DetectorFactory::ConstructBeampipe(GeoPhysVol* pWorld) //TransTube=HepGeom::Translate3D(0.0*CLHEP::mm, 0.0*CLHEP::mm, AStationParams01.IdealMainPoint[2]-ALFASTATIONHSIZEZ-ALFAEDGEBEAMPIPEHLENGTH); TransTube=HepGeom::TranslateZ3D(-ALFASTATIONHSIZEZ-ALFAEDGEBEAMPIPEHLENGTH)*AStationParams01.ASTransformInATLAS; pWorld->add(new GeoNameTag(szLabel)); - pWorld->add(new GeoTransform(TransTube)); + pWorld->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransTube))); pWorld->add(pPhysTube); m_pDetectorManager->addTreeTop(pPhysTube); pWorld->add(new GeoNameTag(szLabel2)); - pWorld->add(new GeoTransform(TransTube)); + pWorld->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransTube))); pWorld->add(pPhysTube2); m_pDetectorManager->addTreeTop(pPhysTube2); LogStream<<MSG::INFO<<"ALFA_Beampipe03: hlength="<<ALFAEDGEBEAMPIPEHLENGTH<<", z="<<AStationParams01.IdealMainPoint[2]-ALFASTATIONHSIZEZ-ALFAEDGEBEAMPIPEHLENGTH<<endmsg; @@ -637,11 +637,11 @@ void ALFA_DetectorFactory::ConstructBeampipe(GeoPhysVol* pWorld) //TransTube=HepGeom::Translate3D(0.0*CLHEP::mm, 0.0*CLHEP::mm, AStationParams01.IdealMainPoint[2]+ALFASTATIONHSIZEZ+ALFAEDGEBEAMPIPEHLENGTH); TransTube=HepGeom::TranslateZ3D(+ALFASTATIONHSIZEZ+ALFAEDGEBEAMPIPEHLENGTH)*AStationParams01.ASTransformInATLAS; pWorld->add(new GeoNameTag(szLabel)); - pWorld->add(new GeoTransform(TransTube)); + pWorld->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransTube))); pWorld->add(pPhysTube); m_pDetectorManager->addTreeTop(pPhysTube); pWorld->add(new GeoNameTag(szLabel2)); - pWorld->add(new GeoTransform(TransTube)); + pWorld->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransTube))); pWorld->add(pPhysTube2); m_pDetectorManager->addTreeTop(pPhysTube2); LogStream<<MSG::INFO<<"ALFA_Beampipe04: hlength="<<ALFAEDGEBEAMPIPEHLENGTH<<", z="<<AStationParams01.IdealMainPoint[2]+ALFASTATIONHSIZEZ+ALFAEDGEBEAMPIPEHLENGTH<<endmsg; @@ -660,11 +660,11 @@ void ALFA_DetectorFactory::ConstructBeampipe(GeoPhysVol* pWorld) //TransTube=HepGeom::Translate3D(0.0*CLHEP::mm, 0.0*CLHEP::mm, AStationParams01.IdealMainPoint[2]-ALFASTATIONHSIZEZ-fInnerTubeHLength); TransTube=HepGeom::TranslateZ3D(-ALFASTATIONHSIZEZ-fInnerTubeHLength)*AStationParams01.ASTransformInATLAS; pWorld->add(new GeoNameTag(szLabel)); - pWorld->add(new GeoTransform(TransTube)); + pWorld->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransTube))); pWorld->add(pPhysTube); m_pDetectorManager->addTreeTop(pPhysTube); pWorld->add(new GeoNameTag(szLabel2)); - pWorld->add(new GeoTransform(TransTube)); + pWorld->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransTube))); pWorld->add(pPhysTube2); m_pDetectorManager->addTreeTop(pPhysTube2); LogStream<<MSG::INFO<<"ALFA_Beampipe02: hlength="<<fInnerTubeHLength<<", z="<<AStationParams01.IdealMainPoint[2]-ALFASTATIONHSIZEZ-fInnerTubeHLength<<endmsg; @@ -681,11 +681,11 @@ void ALFA_DetectorFactory::ConstructBeampipe(GeoPhysVol* pWorld) //TransTube=HepGeom::Translate3D(0.0*CLHEP::mm, 0.0*CLHEP::mm, AStationParams01.IdealMainPoint[2]-ALFASTATIONHSIZEZ-ALFAEDGEBEAMPIPEHLENGTH); TransTube=HepGeom::TranslateZ3D(-ALFASTATIONHSIZEZ-ALFAEDGEBEAMPIPEHLENGTH)*AStationParams01.ASTransformInATLAS; pWorld->add(new GeoNameTag(szLabel)); - pWorld->add(new GeoTransform(TransTube)); + pWorld->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransTube))); pWorld->add(pPhysTube); m_pDetectorManager->addTreeTop(pPhysTube); pWorld->add(new GeoNameTag(szLabel2)); - pWorld->add(new GeoTransform(TransTube)); + pWorld->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransTube))); pWorld->add(pPhysTube2); m_pDetectorManager->addTreeTop(pPhysTube2); LogStream<<MSG::INFO<<"ALFA_Beampipe06: hlength="<<ALFAEDGEBEAMPIPEHLENGTH<<", z="<<AStationParams01.IdealMainPoint[2]-ALFASTATIONHSIZEZ-ALFAEDGEBEAMPIPEHLENGTH<<endmsg; @@ -775,8 +775,8 @@ void ALFA_DetectorFactory::create(GeoPhysVol* pWorld) pPhysAlfaBox=mapActiveStations[RPosParams.eASName].pPhysVolume; TransAlfaBox=mapActiveStations[RPosParams.eASName].Transform; - pAlTransRPBox=new GeoAlignableTransform(RPosParams.RPTransformInStation); - pAlTransDetInRPMainPoint=new GeoAlignableTransform(RPosParams.DetTransformInMainPoint); + pAlTransRPBox=new GeoAlignableTransform(Amg::CLHEPTransformToEigen(RPosParams.RPTransformInStation)); + pAlTransDetInRPMainPoint=new GeoAlignableTransform(Amg::CLHEPTransformToEigen(RPosParams.DetTransformInMainPoint)); //create Roman pot ---------------------------------------------------------------------------- sprintf(szLabel,"LogRPBox[%02d]",eRPName); @@ -797,7 +797,7 @@ void ALFA_DetectorFactory::create(GeoPhysVol* pWorld) sprintf(szLabel,"RPAir[%02d]",eRPName); TransRPAir=HepGeom::Translate3D(0.0,0.0,0.0); pPhysRPBox->add(new GeoNameTag(szLabel)); - pPhysRPBox->add(new GeoTransform(TransRPAir)); + pPhysRPBox->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransRPAir))); pPhysRPBox->add(pPhysRPAir); //LogStream<<MSG::INFO<<"MARK4"<<endmsg; @@ -808,7 +808,7 @@ void ALFA_DetectorFactory::create(GeoPhysVol* pWorld) sprintf(szLabel,"Trigger[%02d]",eRPName); pPhysRPAir->add(new GeoNameTag(szLabel)); pPhysRPAir->add(pAlTransDetInRPMainPoint); - pPhysRPAir->add(new GeoTransform(HepGeom::Translate3D(-22.0*CLHEP::mm,-31.325*CLHEP::mm,11.3*CLHEP::mm))); + pPhysRPAir->add(new GeoTransform(GeoTrf::Translate3D(-22.0*CLHEP::mm,-31.325*CLHEP::mm,11.3*CLHEP::mm))); pPhysRPAir->add(pPhysObj); //LogStream<<MSG::INFO<<"MARK5"<<endmsg; @@ -819,7 +819,7 @@ void ALFA_DetectorFactory::create(GeoPhysVol* pWorld) sprintf(szLabel,"RPSupport[%02d]",eRPName); pPhysRPAir->add(new GeoNameTag(szLabel)); pPhysRPAir->add(pAlTransDetInRPMainPoint); - pPhysRPAir->add(new GeoTransform(HepGeom::Translate3D(0.0*CLHEP::mm,85.475*CLHEP::mm,-28.5*CLHEP::mm))); + pPhysRPAir->add(new GeoTransform(GeoTrf::Translate3D(0.0*CLHEP::mm,85.475*CLHEP::mm,-28.5*CLHEP::mm))); pPhysRPAir->add(pPhysObj); //LogStream<<MSG::INFO<<"MARK6"<<endmsg; @@ -831,7 +831,7 @@ void ALFA_DetectorFactory::create(GeoPhysVol* pWorld) sprintf(szLabel,"G10Substrate[%02d][%d]",eRPName,i); pPhysRPAir->add(new GeoNameTag(szLabel)); pPhysRPAir->add(pAlTransDetInRPMainPoint); - pPhysRPAir->add(new GeoTransform(HepGeom::Translate3D(ALFA_stagger[i]*CLHEP::mm,-27.525*CLHEP::mm,(-17.5+i*2)*CLHEP::mm)*HepGeom::RotateX3D(-90.0*CLHEP::deg))); + pPhysRPAir->add(new GeoTransform(GeoTrf::Translate3D(ALFA_stagger[i]*CLHEP::mm,-27.525*CLHEP::mm,(-17.5+i*2)*CLHEP::mm)*GeoTrf::RotateX3D(-90.0*CLHEP::deg))); pPhysRPAir->add(pPhysObj); } @@ -843,7 +843,7 @@ void ALFA_DetectorFactory::create(GeoPhysVol* pWorld) sprintf(szLabel,"RPSupport[%02d][%d]",eRPName,i); pPhysRPAir->add(new GeoNameTag(szLabel)); pPhysRPAir->add(pAlTransDetInRPMainPoint); - pPhysRPAir->add(new GeoTransform(HepGeom::Translate3D(0.0*CLHEP::mm,5.975*CLHEP::mm,(-17.5+i*2)*CLHEP::mm))); + pPhysRPAir->add(new GeoTransform(GeoTrf::Translate3D(0.0*CLHEP::mm,5.975*CLHEP::mm,(-17.5+i*2)*CLHEP::mm))); pPhysRPAir->add(pPhysObj); } //LogStream<<MSG::INFO<<"MARK7"<<endmsg; @@ -863,7 +863,7 @@ void ALFA_DetectorFactory::create(GeoPhysVol* pWorld) sprintf(szLabel,"ODPlate[%02d][%d]",eRPName,i); pPhysRPAir->add(new GeoNameTag(szLabel)); pPhysRPAir->add(pAlTransDetInRPMainPoint); - pPhysRPAir->add(new GeoTransform(HepGeom::Translate3D(0.0*CLHEP::mm,-0.175*CLHEP::mm,(15+i*2)*CLHEP::mm))); + pPhysRPAir->add(new GeoTransform(GeoTrf::Translate3D(0.0*CLHEP::mm,-0.175*CLHEP::mm,(15+i*2)*CLHEP::mm))); pPhysRPAir->add(pPhysObj); } //LogStream<<MSG::INFO<<"MARK9"<<endmsg; @@ -909,47 +909,47 @@ GeoShape* ALFA_DetectorFactory::CreateSolidRP() GeoBox* RPbox2 = new GeoBox(21*CLHEP::mm,5.425*CLHEP::mm,7.5*CLHEP::mm); GeoBox* RPbox3 = new GeoBox(22*CLHEP::mm,1*CLHEP::mm,8.5*CLHEP::mm); - HepGeom::Transform3D RP_Move1= HepGeom::Translate3D(0, 4.425*CLHEP::mm, 0); + GeoTrf::Transform3D RP_Move1= GeoTrf::Translate3D(0, 4.425*CLHEP::mm, 0); GeoShapeShift * mowe1 = new GeoShapeShift(RPbox3,RP_Move1); GeoShapeUnion * RPsemi1 = new GeoShapeUnion(RPbox2, mowe1); - HepGeom::Transform3D RP_Move2= HepGeom::Translate3D( 38.5*CLHEP::mm, -35.25*CLHEP::mm, 14.5*CLHEP::mm); + GeoTrf::Transform3D RP_Move2= GeoTrf::Translate3D( 38.5*CLHEP::mm, -35.25*CLHEP::mm, 14.5*CLHEP::mm); GeoShapeShift * mowe2 = new GeoShapeShift(RPsemi1,RP_Move2); GeoShapeUnion * RPsemi2 = new GeoShapeUnion(RPbox1, mowe2); - HepGeom::Transform3D RP_Move3= HepGeom::Translate3D(-38.5*CLHEP::mm, -35.25*CLHEP::mm, 14.5*CLHEP::mm); + GeoTrf::Transform3D RP_Move3= GeoTrf::Translate3D(-38.5*CLHEP::mm, -35.25*CLHEP::mm, 14.5*CLHEP::mm); GeoShapeShift * mowe3 = new GeoShapeShift(RPsemi1,RP_Move3); GeoShapeUnion * RPsemi3 = new GeoShapeUnion(RPsemi2, mowe3); GeoTube* RPtube1 = new GeoTube(0*CLHEP::mm,74*CLHEP::mm,26.675*CLHEP::mm); GeoTube* RPtube2 = new GeoTube(0*CLHEP::mm,126.5*CLHEP::mm,9.875*CLHEP::mm); - HepGeom::Transform3D RP_Move4= HepGeom::Translate3D(0*CLHEP::mm, 0*CLHEP::mm, -36.55*CLHEP::mm); + GeoTrf::Transform3D RP_Move4= GeoTrf::Translate3D(0*CLHEP::mm, 0*CLHEP::mm, -36.55*CLHEP::mm); GeoShapeShift * mowe4 = new GeoShapeShift(RPtube2,RP_Move4); GeoShapeUnion * RPsemi4 = new GeoShapeUnion(RPtube1, mowe4); GeoBox* RPbox4 = new GeoBox(104*CLHEP::mm,104*CLHEP::mm,9.875*CLHEP::mm); GeoBox* RPbox5 = new GeoBox(131.75*CLHEP::mm,131.75*CLHEP::mm,22.5*CLHEP::mm); - HepGeom::Transform3D RP_Move5= HepGeom::Translate3D(0*CLHEP::mm, 0*CLHEP::mm, -56.3*CLHEP::mm); + GeoTrf::Transform3D RP_Move5= GeoTrf::Translate3D(0*CLHEP::mm, 0*CLHEP::mm, -56.3*CLHEP::mm); GeoShapeShift * mowe5 = new GeoShapeShift(RPbox4,RP_Move5); GeoShapeUnion * RPsemi5 = new GeoShapeUnion(RPsemi4, mowe5); - HepGeom::Transform3D RP_Move6= HepGeom::Translate3D(0*CLHEP::mm, 0*CLHEP::mm, -88.675*CLHEP::mm); + GeoTrf::Transform3D RP_Move6= GeoTrf::Translate3D(0*CLHEP::mm, 0*CLHEP::mm, -88.675*CLHEP::mm); GeoShapeShift * mowe6 = new GeoShapeShift(RPbox5,RP_Move6); GeoShapeUnion * RPsemi6 = new GeoShapeUnion(RPsemi5, mowe6); - HepGeom::Transform3D RP_MoveRot7= HepGeom::Translate3D(0*CLHEP::mm, 56.5*CLHEP::mm, -8.5*CLHEP::mm)*HepGeom::RotateX3D(90*CLHEP::deg); + GeoTrf::Transform3D RP_MoveRot7= GeoTrf::Translate3D(0*CLHEP::mm, 56.5*CLHEP::mm, -8.5*CLHEP::mm)*GeoTrf::RotateX3D(90*CLHEP::deg); GeoShapeShift * mowe7 = new GeoShapeShift(RPsemi6,RP_MoveRot7); GeoShapeUnion * RPsemi7 = new GeoShapeUnion(RPsemi3, mowe7); GeoBox* RPbox6 = new GeoBox(16.97*CLHEP::mm,16.97*CLHEP::mm,0.75*CLHEP::mm); - HepGeom::Transform3D RP_MoveRot8= HepGeom::Translate3D(0*CLHEP::mm, -21.525*CLHEP::mm, 22.25*CLHEP::mm)*HepGeom::RotateZ3D(45*CLHEP::deg); + GeoTrf::Transform3D RP_MoveRot8= GeoTrf::Translate3D(0*CLHEP::mm, -21.525*CLHEP::mm, 22.25*CLHEP::mm)*GeoTrf::RotateZ3D(45*CLHEP::deg); GeoShapeShift * mowe8 = new GeoShapeShift(RPbox6,RP_MoveRot8); GeoShapeSubtraction * RPsemi8 = new GeoShapeSubtraction(RPsemi7, mowe8); - HepGeom::Transform3D RP_MoveRot9= HepGeom::Translate3D(0*CLHEP::mm, -21.525*CLHEP::mm, -22.25*CLHEP::mm)*HepGeom::RotateZ3D(45*CLHEP::deg); + GeoTrf::Transform3D RP_MoveRot9= GeoTrf::Translate3D(0*CLHEP::mm, -21.525*CLHEP::mm, -22.25*CLHEP::mm)*GeoTrf::RotateZ3D(45*CLHEP::deg); GeoShapeShift * mowe9 = new GeoShapeShift(RPbox6,RP_MoveRot9); GeoShapeSubtraction * shapeRP = new GeoShapeSubtraction(RPsemi8, mowe9); @@ -964,23 +964,23 @@ GeoShape* ALFA_DetectorFactory::CreateSolidAir() GeoBox* RP_Airbox4 = new GeoBox(20*CLHEP::mm,5.675*CLHEP::mm,6.5*CLHEP::mm); GeoTube* RP_Airtube1 = new GeoTube(0*CLHEP::mm,69*CLHEP::mm,65.425*CLHEP::mm); - HepGeom::Transform3D RP_Air_Move1= HepGeom::Translate3D(0,31.325*CLHEP::mm, 0); + GeoTrf::Transform3D RP_Air_Move1= GeoTrf::Translate3D(0,31.325*CLHEP::mm, 0); GeoShapeShift * mowe1 = new GeoShapeShift(RP_Airbox2,RP_Air_Move1); GeoShapeUnion * RP_Airsemi1 = new GeoShapeUnion(RP_Airbox1, mowe1); - HepGeom::Transform3D RP_Air_Move2= HepGeom::Translate3D(0,-28.75*CLHEP::mm, 0); + GeoTrf::Transform3D RP_Air_Move2= GeoTrf::Translate3D(0,-28.75*CLHEP::mm, 0); GeoShapeShift * mowe2 = new GeoShapeShift(RP_Airbox3,RP_Air_Move2); GeoShapeUnion * RP_Airsemi2 = new GeoShapeUnion(RP_Airsemi1, mowe2); - HepGeom::Transform3D RP_Air_Move3= HepGeom::Translate3D( 38.5*CLHEP::mm,-33.5*CLHEP::mm,14.5*CLHEP::mm); + GeoTrf::Transform3D RP_Air_Move3= GeoTrf::Translate3D( 38.5*CLHEP::mm,-33.5*CLHEP::mm,14.5*CLHEP::mm); GeoShapeShift * mowe3 = new GeoShapeShift(RP_Airbox4,RP_Air_Move3); GeoShapeUnion * RP_Airsemi3 = new GeoShapeUnion(RP_Airsemi2, mowe3); - HepGeom::Transform3D RP_Air_Move4= HepGeom::Translate3D(-38.5*CLHEP::mm,-33.5*CLHEP::mm,14.5*CLHEP::mm); + GeoTrf::Transform3D RP_Air_Move4= GeoTrf::Translate3D(-38.5*CLHEP::mm,-33.5*CLHEP::mm,14.5*CLHEP::mm); GeoShapeShift * mowe4 = new GeoShapeShift(RP_Airbox4,RP_Air_Move4); GeoShapeUnion * RP_Airsemi4 = new GeoShapeUnion(RP_Airsemi3, mowe4); - HepGeom::Transform3D RP_Air_MoveRot5= HepGeom::Translate3D(0*CLHEP::mm,100.25*CLHEP::mm, -8.5*CLHEP::mm)*HepGeom::RotateX3D(90*CLHEP::deg); + GeoTrf::Transform3D RP_Air_MoveRot5= GeoTrf::Translate3D(0*CLHEP::mm,100.25*CLHEP::mm, -8.5*CLHEP::mm)*GeoTrf::RotateX3D(90*CLHEP::deg); GeoShapeShift * mowe5 = new GeoShapeShift(RP_Airtube1,RP_Air_MoveRot5); GeoShapeUnion * shapeRP_Air = new GeoShapeUnion(RP_Airsemi4, mowe5); @@ -993,19 +993,19 @@ GeoShape* ALFA_DetectorFactory::CreateSolidTrigger() GeoBox* ALFA_Trigbox2 = new GeoBox(15.75*CLHEP::mm,15.75*CLHEP::mm,3*CLHEP::mm); GeoBox* ALFA_Trigbox3 = new GeoBox(3*CLHEP::mm,7.5*CLHEP::mm,1.5*CLHEP::mm); - HepGeom::Transform3D ALFA_Trig_MoveRot1= HepGeom::Translate3D(17.235*CLHEP::mm, -17.235*CLHEP::mm, 0*CLHEP::mm)*HepGeom::RotateZ3D(45*CLHEP::deg); + GeoTrf::Transform3D ALFA_Trig_MoveRot1= GeoTrf::Translate3D(17.235*CLHEP::mm, -17.235*CLHEP::mm, 0*CLHEP::mm)*GeoTrf::RotateZ3D(45*CLHEP::deg); GeoShapeShift * mowe1 = new GeoShapeShift(ALFA_Trigbox2, ALFA_Trig_MoveRot1); GeoShapeSubtraction * ALFA_Trigsemi1 = new GeoShapeSubtraction(ALFA_Trigbox1, mowe1); - HepGeom::Transform3D ALFA_Trig_Move2= HepGeom::Translate3D(0*CLHEP::mm,0*CLHEP::mm, 3.5*CLHEP::mm); + GeoTrf::Transform3D ALFA_Trig_Move2= GeoTrf::Translate3D(0*CLHEP::mm,0*CLHEP::mm, 3.5*CLHEP::mm); GeoShapeShift * mowe2 = new GeoShapeShift(ALFA_Trigsemi1,ALFA_Trig_Move2); GeoShapeUnion * ALFA_Trigsemi2 = new GeoShapeUnion(ALFA_Trigsemi1, mowe2); - HepGeom::Transform3D ALFA_Trig_Move3= HepGeom::Translate3D(44*CLHEP::mm, 0*CLHEP::mm, 0*CLHEP::mm); + GeoTrf::Transform3D ALFA_Trig_Move3= GeoTrf::Translate3D(44*CLHEP::mm, 0*CLHEP::mm, 0*CLHEP::mm); GeoShapeShift * mowe3 = new GeoShapeShift(ALFA_Trigbox3,ALFA_Trig_Move3); GeoShapeUnion * ALFA_Trigsemi3 = new GeoShapeUnion(ALFA_Trigbox3, mowe3); - HepGeom::Transform3D ALFA_Trig_MoveRot4= HepGeom::Translate3D(22*CLHEP::mm, 10.424*CLHEP::mm, -7.6*CLHEP::mm)*HepGeom::RotateZ3D(-45*CLHEP::deg); + GeoTrf::Transform3D ALFA_Trig_MoveRot4= GeoTrf::Translate3D(22*CLHEP::mm, 10.424*CLHEP::mm, -7.6*CLHEP::mm)*GeoTrf::RotateZ3D(-45*CLHEP::deg); GeoShapeShift * mowe4 = new GeoShapeShift(ALFA_Trigsemi2,ALFA_Trig_MoveRot4); GeoShapeUnion * shapeALFA_Trigger = new GeoShapeUnion(ALFA_Trigsemi3, mowe4); @@ -1019,15 +1019,15 @@ GeoShape* ALFA_DetectorFactory::CreateSolidRPSupport() GeoBox* RP_Supbox3 = new GeoBox(18*CLHEP::mm, 5*CLHEP::mm,18*CLHEP::mm); GeoBox* RP_Supbox4 = new GeoBox(18*CLHEP::mm,3.5*CLHEP::mm,18*CLHEP::mm); - HepGeom::Transform3D RP_Sup_Move1= HepGeom::Translate3D(0, 42*CLHEP::mm, 8*CLHEP::mm); + GeoTrf::Transform3D RP_Sup_Move1= GeoTrf::Translate3D(0, 42*CLHEP::mm, 8*CLHEP::mm); GeoShapeShift * mowe1 = new GeoShapeShift(RP_Supbox2, RP_Sup_Move1); GeoShapeUnion * RP_Supsemi1 = new GeoShapeUnion(RP_Supbox1, mowe1); - HepGeom::Transform3D RP_Sup_Move2= HepGeom::Translate3D(0, 56*CLHEP::mm, 20*CLHEP::mm); + GeoTrf::Transform3D RP_Sup_Move2= GeoTrf::Translate3D(0, 56*CLHEP::mm, 20*CLHEP::mm); GeoShapeShift * mowe2 = new GeoShapeShift(RP_Supbox3, RP_Sup_Move2); GeoShapeUnion * RP_Supsemi2 = new GeoShapeUnion(RP_Supsemi1, mowe2); - HepGeom::Transform3D RP_Sup_Move3= HepGeom::Translate3D(0, 64.5*CLHEP::mm, 20*CLHEP::mm); + GeoTrf::Transform3D RP_Sup_Move3= GeoTrf::Translate3D(0, 64.5*CLHEP::mm, 20*CLHEP::mm); GeoShapeShift * mowe3 = new GeoShapeShift(RP_Supbox4, RP_Sup_Move3); GeoShapeUnion * shapeRP_Support = new GeoShapeUnion(RP_Supsemi2, mowe3); @@ -1040,11 +1040,11 @@ GeoShape* ALFA_DetectorFactory::CreateSolidG10Shapes() GeoTrd* G10trd2 = new GeoTrd( 30*CLHEP::mm, 9.5*CLHEP::mm, 0.15*CLHEP::mm, 0.15*CLHEP::mm, 10.25*CLHEP::mm); GeoBox* G10box1 = new GeoBox( 30*CLHEP::mm, 0.15*CLHEP::mm, 3.75*CLHEP::mm); - HepGeom::Transform3D G10_Move1= HepGeom::Translate3D(0, 0, 4.75*CLHEP::mm); + GeoTrf::Transform3D G10_Move1= GeoTrf::Translate3D(0, 0, 4.75*CLHEP::mm); GeoShapeShift* mowe1 = new GeoShapeShift(G10box1, G10_Move1); GeoShapeUnion* G10_Subsemi1 = new GeoShapeUnion(G10trd1, mowe1); - HepGeom::Transform3D G10_Move2= HepGeom::Translate3D(0, 0, 18.75*CLHEP::mm); + GeoTrf::Transform3D G10_Move2= GeoTrf::Translate3D(0, 0, 18.75*CLHEP::mm); GeoShapeShift* mowe2 = new GeoShapeShift(G10trd2, G10_Move2); GeoShapeUnion* shapeG10_Substrate = new GeoShapeUnion(G10_Subsemi1, mowe2); @@ -1061,20 +1061,20 @@ map<int,GeoShape*>* ALFA_DetectorFactory::CreateSolidTiPlates() GeoBox* TiPlate_box1 = new GeoBox(16*CLHEP::mm,120*CLHEP::mm,0.75*CLHEP::mm); GeoBox* TiPlate_box2 = new GeoBox(19.9793*CLHEP::mm,19.9793*CLHEP::mm,2*CLHEP::mm); - HepGeom::Transform3D TiPlate_Move1= HepGeom::Translate3D(0, 69*CLHEP::mm, 0); + GeoTrf::Transform3D TiPlate_Move1= GeoTrf::Translate3D(0, 69*CLHEP::mm, 0); GeoShapeShift * mowe1 = new GeoShapeShift(TiPlate_Holder,TiPlate_Move1); GeoShapeUnion * TiPlatesemi1 = new GeoShapeUnion(TiPlate_Substr, mowe1); for(i=0; i<ALFA_Nb_Plates; i++){ - HepGeom::Transform3D TiPlate_MoveRot2 = HepGeom::Translate3D(ALFA_stagger[i]*CLHEP::mm, -26.872*CLHEP::mm, 1*CLHEP::mm)*HepGeom::RotateZ3D( 45*CLHEP::deg); - HepGeom::Transform3D TiPlate_MoveRot3 = HepGeom::Translate3D(ALFA_stagger[i]*CLHEP::mm, -26.872*CLHEP::mm,-1*CLHEP::mm)*HepGeom::RotateZ3D(-45*CLHEP::deg); + GeoTrf::Transform3D TiPlate_MoveRot2 = GeoTrf::Translate3D(ALFA_stagger[i]*CLHEP::mm, -26.872*CLHEP::mm, 1*CLHEP::mm)*GeoTrf::RotateZ3D( 45*CLHEP::deg); + GeoTrf::Transform3D TiPlate_MoveRot3 = GeoTrf::Translate3D(ALFA_stagger[i]*CLHEP::mm, -26.872*CLHEP::mm,-1*CLHEP::mm)*GeoTrf::RotateZ3D(-45*CLHEP::deg); GeoShapeShift * mowe2 = new GeoShapeShift(TiPlate_box1, TiPlate_MoveRot2); GeoShapeShift * mowe3 = new GeoShapeShift(TiPlate_box1, TiPlate_MoveRot3); GeoShapeSubtraction * TiPlatesemi2 = new GeoShapeSubtraction(TiPlatesemi1,mowe2); GeoShapeSubtraction * TiPlatesemi3 = new GeoShapeSubtraction(TiPlatesemi2,mowe3); - HepGeom::Transform3D TiPlate_MoveRot4 = HepGeom::Translate3D(ALFA_stagger[i]*CLHEP::mm, -32.5*CLHEP::mm,0*CLHEP::mm)*HepGeom::RotateZ3D(-45*CLHEP::deg); + GeoTrf::Transform3D TiPlate_MoveRot4 = GeoTrf::Translate3D(ALFA_stagger[i]*CLHEP::mm, -32.5*CLHEP::mm,0*CLHEP::mm)*GeoTrf::RotateZ3D(-45*CLHEP::deg); GeoShapeShift * mowe4 = new GeoShapeShift(TiPlate_box2, TiPlate_MoveRot4); GeoShapeSubtraction* shapeTi_Plate = new GeoShapeSubtraction(TiPlatesemi3, mowe4); @@ -1093,11 +1093,11 @@ map<int,GeoShape*>* ALFA_DetectorFactory::CreateSolidODPlates() GeoBox* OD_Tibox2 = new GeoBox(10*CLHEP::mm,36.5*CLHEP::mm,1*CLHEP::mm); GeoBox* OD_Tibox3 = new GeoBox(19*CLHEP::mm,21.5*CLHEP::mm,2*CLHEP::mm); - HepGeom::Transform3D OD_Move01= HepGeom::Translate3D(0, 75.15*CLHEP::mm, 0); + GeoTrf::Transform3D OD_Move01= GeoTrf::Translate3D(0, 75.15*CLHEP::mm, 0); GeoShapeShift * mowe01 = new GeoShapeShift(OD_Tibox2,OD_Move01); GeoShapeUnion * OD_Tisemi01 = new GeoShapeUnion(OD_Tibox1, mowe01); - HepGeom::Transform3D OD_Move02= HepGeom::Translate3D(0, -19.15*CLHEP::mm, 0);//(0, -29.383*CLHEP::mm, 0); + GeoTrf::Transform3D OD_Move02= GeoTrf::Translate3D(0, -19.15*CLHEP::mm, 0);//(0, -29.383*CLHEP::mm, 0); GeoShapeShift * mowe02 = new GeoShapeShift(OD_Tibox3, OD_Move02); GeoShapeSubtraction * OD_Tisemi02 = new GeoShapeSubtraction(OD_Tisemi01, mowe02); @@ -1107,52 +1107,52 @@ map<int,GeoShape*>* ALFA_DetectorFactory::CreateSolidODPlates() GeoBox* OD_Tibox6 = new GeoBox(72.5*CLHEP::mm,150*CLHEP::mm,1*CLHEP::mm); GeoBox* OD_Tibox7 = new GeoBox(150*CLHEP::mm,72.5*CLHEP::mm,1*CLHEP::mm); - HepGeom::Transform3D OD_Move04 = HepGeom::Translate3D(72.5*CLHEP::mm, 0*CLHEP::mm, 0*CLHEP::mm); + GeoTrf::Transform3D OD_Move04 = GeoTrf::Translate3D(72.5*CLHEP::mm, 0*CLHEP::mm, 0*CLHEP::mm); GeoShapeShift * mowe04 = new GeoShapeShift(OD_Tibox6,OD_Move04); GeoShapeSubtraction * OD_Tisemi04 = new GeoShapeSubtraction(OD_Titube1, mowe04); - HepGeom::Transform3D OD_Move05 = HepGeom::Translate3D(0*CLHEP::mm, 72.5*CLHEP::mm, 0*CLHEP::mm); + GeoTrf::Transform3D OD_Move05 = GeoTrf::Translate3D(0*CLHEP::mm, 72.5*CLHEP::mm, 0*CLHEP::mm); GeoShapeShift * mowe05 = new GeoShapeShift(OD_Tibox7,OD_Move05); GeoShapeSubtraction * OD_Tisemi05 = new GeoShapeSubtraction(OD_Tisemi04, mowe05); GeoBox* OD_Tibox8 = new GeoBox(8.*CLHEP::mm,20.*CLHEP::mm,0.6*CLHEP::mm); GeoBox* OD_Tibox9 = new GeoBox(20.*CLHEP::mm,60.*CLHEP::mm,0.6*CLHEP::mm); - HepGeom::Transform3D OD_Move06= HepGeom::Translate3D(4*CLHEP::mm, -42.5*CLHEP::mm, 0.*CLHEP::mm); + GeoTrf::Transform3D OD_Move06= GeoTrf::Translate3D(4*CLHEP::mm, -42.5*CLHEP::mm, 0.*CLHEP::mm); GeoShapeShift * mowe06 = new GeoShapeShift(OD_Tibox8,OD_Move06); GeoShapeUnion * OD_Tisemi06 = new GeoShapeUnion(OD_Tisemi05, mowe06); - HepGeom::Transform3D OD_Move07= HepGeom::Translate3D(-42.5*CLHEP::mm, 60*CLHEP::mm, 0.*CLHEP::mm); + GeoTrf::Transform3D OD_Move07= GeoTrf::Translate3D(-42.5*CLHEP::mm, 60*CLHEP::mm, 0.*CLHEP::mm); GeoShapeShift * mowe07 = new GeoShapeShift(OD_Tibox9,OD_Move07); GeoShapeUnion * OD_Tisemi07 = new GeoShapeUnion(OD_Tisemi06, mowe07); for(i=0;i<OD_Nb_Plates;i++) { - HepGeom::Transform3D OD_Move08= HepGeom::Translate3D(-27*CLHEP::mm, (-8.183+OD_stagger[i])*CLHEP::mm, 0);//(0, -29.383*CLHEP::mm, 0); + GeoTrf::Transform3D OD_Move08= GeoTrf::Translate3D(-27*CLHEP::mm, (-8.183+OD_stagger[i])*CLHEP::mm, 0);//(0, -29.383*CLHEP::mm, 0); GeoShapeShift * mowe08 = new GeoShapeShift(OD_Tisemi07, OD_Move08); GeoShapeSubtraction * OD_Tisemi08 = new GeoShapeSubtraction(OD_Tibox5, mowe08); - HepGeom::Transform3D OD_Move09= HepGeom::Translate3D(27*CLHEP::mm, (-8.183+OD_stagger[i])*CLHEP::mm, 0)*HepGeom::RotateY3D(180*CLHEP::deg); + GeoTrf::Transform3D OD_Move09= GeoTrf::Translate3D(27*CLHEP::mm, (-8.183+OD_stagger[i])*CLHEP::mm, 0)*GeoTrf::RotateY3D(180*CLHEP::deg); GeoShapeShift * mowe09 = new GeoShapeShift(OD_Tisemi07, OD_Move09); GeoShapeSubtraction * OD_Tisemi09 = new GeoShapeSubtraction(OD_Tisemi08, mowe09); - HepGeom::Transform3D OD_Move11= HepGeom::Translate3D(-27*CLHEP::mm, (-0.383+OD_stagger[i])*CLHEP::mm, 0);//(0, -29.383*CLHEP::mm, 0); + GeoTrf::Transform3D OD_Move11= GeoTrf::Translate3D(-27*CLHEP::mm, (-0.383+OD_stagger[i])*CLHEP::mm, 0);//(0, -29.383*CLHEP::mm, 0); GeoShapeShift * mowe11 = new GeoShapeShift(OD_Tisemi07, OD_Move11); GeoShapeSubtraction * OD_Tisemi11 = new GeoShapeSubtraction(OD_Tibox5, mowe11); - HepGeom::Transform3D OD_Move12= HepGeom::Translate3D(27*CLHEP::mm, (-0.383+OD_stagger[i])*CLHEP::mm, 0)*HepGeom::RotateY3D(180*CLHEP::deg); + GeoTrf::Transform3D OD_Move12= GeoTrf::Translate3D(27*CLHEP::mm, (-0.383+OD_stagger[i])*CLHEP::mm, 0)*GeoTrf::RotateY3D(180*CLHEP::deg); GeoShapeShift * mowe12 = new GeoShapeShift(OD_Tisemi07, OD_Move12); GeoShapeSubtraction * OD_Tisemi12 = new GeoShapeSubtraction(OD_Tisemi11, mowe12); - HepGeom::Transform3D OD_Move14= HepGeom::Translate3D(0*CLHEP::mm, 0*CLHEP::mm, 0.7*CLHEP::mm); + GeoTrf::Transform3D OD_Move14= GeoTrf::Translate3D(0*CLHEP::mm, 0*CLHEP::mm, 0.7*CLHEP::mm); GeoShapeShift * mowe14 = new GeoShapeShift(OD_Tisemi09,OD_Move14); GeoShapeUnion * OD_Tisemi14 = new GeoShapeUnion(OD_Tisemi02, mowe14); - HepGeom::Transform3D OD_Move15= HepGeom::Translate3D(0*CLHEP::mm, 0*CLHEP::mm,-0.7*CLHEP::mm); + GeoTrf::Transform3D OD_Move15= GeoTrf::Translate3D(0*CLHEP::mm, 0*CLHEP::mm,-0.7*CLHEP::mm); GeoShapeShift * mowe15 = new GeoShapeShift(OD_Tisemi12,OD_Move15); GeoShapeUnion * OD_Tisemi15 = new GeoShapeUnion(OD_Tisemi14, mowe15); - HepGeom::Transform3D OD_Move16 = HepGeom::Translate3D(0, -19.15*CLHEP::mm, 0); + GeoTrf::Transform3D OD_Move16 = GeoTrf::Translate3D(0, -19.15*CLHEP::mm, 0); GeoShapeShift * mowe16 = new GeoShapeShift(OD_Tibox3, OD_Move16); GeoShapeSubtraction * shapeOD_TiPlate = new GeoShapeSubtraction(OD_Tisemi15, mowe16); @@ -1178,19 +1178,19 @@ void ALFA_DetectorFactory::ConstructODFiberCladdings(const eRPotName eRPName, Ge GeoBox* OD_Cladbox3 = new GeoBox(30*CLHEP::mm,50*CLHEP::mm,1*CLHEP::mm); GeoBox* OD_Cladbox4 = new GeoBox(50*CLHEP::mm,30*CLHEP::mm,1*CLHEP::mm); - HepGeom::Transform3D OD_CladMove1 = HepGeom::Translate3D(30*CLHEP::mm, 0*CLHEP::mm, 0*CLHEP::mm); + GeoTrf::Transform3D OD_CladMove1 = GeoTrf::Translate3D(30*CLHEP::mm, 0*CLHEP::mm, 0*CLHEP::mm); GeoShapeShift * mowe1 = new GeoShapeShift(OD_Cladbox3, OD_CladMove1); GeoShapeSubtraction * OD_Cladsemi1 = new GeoShapeSubtraction(OD_Cladtube1, mowe1); - HepGeom::Transform3D OD_CladMove2 = HepGeom::Translate3D(0*CLHEP::mm, 30*CLHEP::mm, 0*CLHEP::mm); + GeoTrf::Transform3D OD_CladMove2 = GeoTrf::Translate3D(0*CLHEP::mm, 30*CLHEP::mm, 0*CLHEP::mm); GeoShapeShift * mowe2 = new GeoShapeShift(OD_Cladbox4, OD_CladMove2); GeoShapeSubtraction * OD_Cladsemi2 = new GeoShapeSubtraction(OD_Cladsemi1, mowe2); - HepGeom::Transform3D OD_CladMov3= HepGeom::Translate3D(4*CLHEP::mm, -26.25*CLHEP::mm, 0); + GeoTrf::Transform3D OD_CladMov3= GeoTrf::Translate3D(4*CLHEP::mm, -26.25*CLHEP::mm, 0); GeoShapeShift * mowe3 = new GeoShapeShift(OD_Cladbox1, OD_CladMov3); GeoShapeUnion * OD_Cladsemi3 = new GeoShapeUnion(OD_Cladsemi2, mowe3); - HepGeom::Transform3D OD_CladMov4= HepGeom::Translate3D(-26.25*CLHEP::mm, 15*CLHEP::mm, 0); + GeoTrf::Transform3D OD_CladMov4= GeoTrf::Translate3D(-26.25*CLHEP::mm, 15*CLHEP::mm, 0); GeoShapeShift * mowe4 = new GeoShapeShift(OD_Cladbox2, OD_CladMov4); GeoShapeUnion * shapeOD_Cladding = new GeoShapeUnion(OD_Cladsemi3, mowe4); @@ -1213,7 +1213,7 @@ void ALFA_DetectorFactory::ConstructODFiberCladdings(const eRPotName eRPName, Ge ConstructODFibers00(eRPName, i, EFT_ODFIBERU0, physOD_CladdingU_0, MotherTransform, TransODCladdingU0); pPhysMotherVolume->add(pDetTransform); - pPhysMotherVolume->add(new GeoTransform(TransODCladdingU0)); + pPhysMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransODCladdingU0))); sprintf(szLabel,"physODclad[%d][0][%d]",eRPName,i); pPhysMotherVolume->add(new GeoNameTag(szLabel)); pPhysMotherVolume->add(physOD_CladdingU_0); @@ -1224,7 +1224,7 @@ void ALFA_DetectorFactory::ConstructODFiberCladdings(const eRPotName eRPName, Ge ConstructODFibers01(eRPName, i, EFT_ODFIBERU1, physOD_CladdingU_1, MotherTransform, TransODCladdingU1); pPhysMotherVolume->add(pDetTransform); - pPhysMotherVolume->add(new GeoTransform(TransODCladdingU1)); + pPhysMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransODCladdingU1))); sprintf(szLabel,"physODclad[%d][1][%d]",eRPName,i); pPhysMotherVolume->add(new GeoNameTag(szLabel)); pPhysMotherVolume->add(physOD_CladdingU_1); @@ -1235,7 +1235,7 @@ void ALFA_DetectorFactory::ConstructODFiberCladdings(const eRPotName eRPName, Ge ConstructODFibers00(eRPName, i, EFT_ODFIBERV0, physOD_CladdingV_0, MotherTransform, TransODCladdingV0); pPhysMotherVolume->add(pDetTransform); - pPhysMotherVolume->add(new GeoTransform(TransODCladdingV0)); + pPhysMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransODCladdingV0))); sprintf(szLabel,"physODclad[%d][2][%d]",eRPName,i); pPhysMotherVolume->add(new GeoNameTag(szLabel)); pPhysMotherVolume->add(physOD_CladdingV_0); @@ -1246,7 +1246,7 @@ void ALFA_DetectorFactory::ConstructODFiberCladdings(const eRPotName eRPName, Ge ConstructODFibers01(eRPName, i, EFT_ODFIBERV1, physOD_CladdingV_1, MotherTransform, TransODCladdingV1); pPhysMotherVolume->add(pDetTransform); - pPhysMotherVolume->add(new GeoTransform(TransODCladdingV1)); + pPhysMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransODCladdingV1))); sprintf(szLabel,"physODclad[%d][3][%d]",eRPName,i); pPhysMotherVolume->add(new GeoNameTag(szLabel)); pPhysMotherVolume->add(physOD_CladdingV_1); @@ -1269,15 +1269,15 @@ void ALFA_DetectorFactory::ConstructODFibers00(const eRPotName eRPName, const in for(i=0; i<OD_Nb_Fibers; i++){ GeoTube* OD_Fibertube1 = new GeoTube((29.51-0.5*i)*CLHEP::mm,(29.99-0.5*i)*CLHEP::mm,0.24*CLHEP::mm); - HepGeom::Transform3D OD_FiberMove1 = HepGeom::Translate3D(30*CLHEP::mm, 0*CLHEP::mm, 0*CLHEP::mm); + GeoTrf::Transform3D OD_FiberMove1 = GeoTrf::Translate3D(30*CLHEP::mm, 0*CLHEP::mm, 0*CLHEP::mm); GeoShapeShift * mowe1 = new GeoShapeShift(OD_Fiberbox3, OD_FiberMove1); GeoShapeSubtraction * OD_Fibersemi1 = new GeoShapeSubtraction(OD_Fibertube1, mowe1); - HepGeom::Transform3D OD_FiberMove2 = HepGeom::Translate3D(0*CLHEP::mm, 30*CLHEP::mm, 0*CLHEP::mm); + GeoTrf::Transform3D OD_FiberMove2 = GeoTrf::Translate3D(0*CLHEP::mm, 30*CLHEP::mm, 0*CLHEP::mm); GeoShapeShift * mowe2 = new GeoShapeShift(OD_Fiberbox4, OD_FiberMove2); GeoShapeSubtraction * OD_Fibersemi2 = new GeoShapeSubtraction(OD_Fibersemi1, mowe2); - HepGeom::Transform3D OD_FiberMov4= HepGeom::Translate3D((-29.75+0.5*i)*CLHEP::mm, 15*CLHEP::mm, 0); + GeoTrf::Transform3D OD_FiberMov4= GeoTrf::Translate3D((-29.75+0.5*i)*CLHEP::mm, 15*CLHEP::mm, 0); GeoShapeShift * mowe4 = new GeoShapeShift(OD_Fiberbox2, OD_FiberMov4); GeoShapeUnion * shapeOD_Fiber = new GeoShapeUnion(OD_Fibersemi2, mowe4); @@ -1304,7 +1304,7 @@ void ALFA_DetectorFactory::ConstructODFibers00(const eRPotName eRPName, const in //ODFiber00Active - physical volumes GeoPhysVol* physOD_FiberActive = new GeoPhysVol(logOD_FiberActive); - pMotherVolume->add(new GeoTransform(TransODFiber)); + pMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransODFiber))); pMotherVolume->add(new GeoNameTag(szLabel)); pMotherVolume->add(physOD_FiberActive); @@ -1355,7 +1355,7 @@ void ALFA_DetectorFactory::ConstructODFibers00(const eRPotName eRPName, const in if (eFType==EFT_ODFIBERU0) sprintf(szLabel,"ODFiberU0[%d][%d][%d]",eRPName,iODPlate+1,i+1); else if (eFType==EFT_ODFIBERV0) sprintf(szLabel,"ODFiberV0[%d][%d][%d]",eRPName,iODPlate+1,i+1); GeoPhysVol* physOD_Fiber = new GeoPhysVol(logOD_Fiber); - pMotherVolume->add(new GeoTransform(HepGeom::Translate3D(0*CLHEP::mm,0*CLHEP::mm,0*CLHEP::mm))); + pMotherVolume->add(new GeoTransform(GeoTrf::Translate3D(0*CLHEP::mm,0*CLHEP::mm,0*CLHEP::mm))); pMotherVolume->add(new GeoNameTag(szLabel)); pMotherVolume->add(physOD_Fiber); } @@ -1375,15 +1375,15 @@ void ALFA_DetectorFactory::ConstructODFibers01(const eRPotName eRPName, const in for(i=0; i<OD_Nb_Fibers; i++){ GeoTube* OD_Fibertube1 = new GeoTube((22.51+0.5*i)*CLHEP::mm,(22.99+0.5*i)*CLHEP::mm,0.24*CLHEP::mm); - HepGeom::Transform3D OD_FiberMove1 = HepGeom::Translate3D(30*CLHEP::mm, 0*CLHEP::mm, 0*CLHEP::mm); + GeoTrf::Transform3D OD_FiberMove1 = GeoTrf::Translate3D(30*CLHEP::mm, 0*CLHEP::mm, 0*CLHEP::mm); GeoShapeShift * mowe1 = new GeoShapeShift(OD_Fiberbox3, OD_FiberMove1); GeoShapeSubtraction * OD_Fibersemi1 = new GeoShapeSubtraction(OD_Fibertube1, mowe1); - HepGeom::Transform3D OD_FiberMove2 = HepGeom::Translate3D(0*CLHEP::mm, 30*CLHEP::mm, 0*CLHEP::mm); + GeoTrf::Transform3D OD_FiberMove2 = GeoTrf::Translate3D(0*CLHEP::mm, 30*CLHEP::mm, 0*CLHEP::mm); GeoShapeShift * mowe2 = new GeoShapeShift(OD_Fiberbox4, OD_FiberMove2); GeoShapeSubtraction * OD_Fibersemi2 = new GeoShapeSubtraction(OD_Fibersemi1, mowe2); - HepGeom::Transform3D OD_FiberMov4= HepGeom::Translate3D((-22.75-0.5*i)*CLHEP::mm, 15*CLHEP::mm, 0); + GeoTrf::Transform3D OD_FiberMov4= GeoTrf::Translate3D((-22.75-0.5*i)*CLHEP::mm, 15*CLHEP::mm, 0); GeoShapeShift * mowe4 = new GeoShapeShift(OD_Fiberbox2, OD_FiberMov4); GeoShapeUnion * shapeOD_Fiber = new GeoShapeUnion(OD_Fibersemi2, mowe4); @@ -1418,7 +1418,7 @@ void ALFA_DetectorFactory::ConstructODFibers01(const eRPotName eRPName, const in //ODFiber01Active - physical volumes GeoPhysVol* physOD_FiberActive = new GeoPhysVol(logOD_FiberActive); - pMotherVolume->add(new GeoTransform(TransODFiber)); + pMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransODFiber))); pMotherVolume->add(new GeoNameTag(szLabel)); pMotherVolume->add(physOD_FiberActive); @@ -1445,7 +1445,7 @@ void ALFA_DetectorFactory::ConstructODFibers01(const eRPotName eRPName, const in if (eFType==EFT_ODFIBERU1) sprintf(szLabel,"ODFiberU1[%d][%d][%d]",eRPName,iODPlate+1,i+1); else if (eFType==EFT_ODFIBERV1) sprintf(szLabel,"ODFiberV1[%d][%d][%d]",eRPName,iODPlate+1,i+1); GeoPhysVol* physOD_Fiber = new GeoPhysVol(logOD_Fiber); - pMotherVolume->add(new GeoTransform(HepGeom::Translate3D(0*CLHEP::mm,0*CLHEP::mm,0*CLHEP::mm))); + pMotherVolume->add(new GeoTransform(GeoTrf::Translate3D(0*CLHEP::mm,0*CLHEP::mm,0*CLHEP::mm))); pMotherVolume->add(new GeoNameTag(szLabel)); pMotherVolume->add(physOD_Fiber); } @@ -1493,7 +1493,7 @@ void ALFA_DetectorFactory::ConstructUFiberCladdings(const eRPotName eRPName, Geo //G4RotationMatrix* Clad_Rot1 = new G4RotationMatrix; //Clad_Rot1 -> rotateZ(-45*CLHEP::deg); //G4ThreeVector Clad_Move1(-17.415*CLHEP::mm, -17.415*CLHEP::mm, 0*CLHEP::mm); - HepGeom::Transform3D Clad_Move1=HepGeom::Translate3D(-17.415*CLHEP::mm, -17.415*CLHEP::mm, 0*CLHEP::mm)*HepGeom::RotateZ3D(-45*CLHEP::deg); + GeoTrf::Transform3D Clad_Move1=GeoTrf::Translate3D(-17.415*CLHEP::mm, -17.415*CLHEP::mm, 0*CLHEP::mm)*GeoTrf::RotateZ3D(-45*CLHEP::deg); mowe1=new GeoShapeShift(ALFA_Cladbox2,Clad_Move1); shapeALFA_Clad = new GeoShapeSubtraction(ALFA_Cladbox1,mowe1); @@ -1505,7 +1505,7 @@ void ALFA_DetectorFactory::ConstructUFiberCladdings(const eRPotName eRPName, Geo physALFA_CladdingU[i] = new GeoFullPhysVol(pLogCladdingU); pMotherVolume->add(new GeoNameTag(strLabel)); pMotherVolume->add(pDetTransform); - pMotherVolume->add(new GeoTransform(TransCladdingU[i])); + pMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransCladdingU[i]))); pMotherVolume->add(physALFA_CladdingU[i]); /* @@ -1545,7 +1545,7 @@ void ALFA_DetectorFactory::ConstructUFiberCladdings(const eRPotName eRPName, Geo double fAngle=m_pGeoReader->GetUFiberAngle(eRPName, i+1, j+1); double fDx=fXPos-(+15.75-0.5*(j))*CLHEP::mm; - HepGeom::Transform3D TrimMove=HepGeom::Translate3D((-33.165+0.5*j)*CLHEP::mm-fDx, -17.415*CLHEP::mm, 0*CLHEP::mm)*HepGeom::RotateZ3D(+45.0*CLHEP::deg); //bug fix 23.2.2010 + GeoTrf::Transform3D TrimMove=GeoTrf::Translate3D((-33.165+0.5*j)*CLHEP::mm-fDx, -17.415*CLHEP::mm, 0*CLHEP::mm)*GeoTrf::RotateZ3D(+45.0*CLHEP::deg); //bug fix 23.2.2010 const GeoShapeShift* Sh6=new GeoShapeShift(CladTrim,TrimMove); const GeoShapeSubtraction* solFibU=new GeoShapeSubtraction(Fib1,Sh6); sprintf(strLabel,"logALFA_FiberU[%d]",j+1); @@ -1555,7 +1555,7 @@ void ALFA_DetectorFactory::ConstructUFiberCladdings(const eRPotName eRPName, Geo TransFiber=HepGeom::Translate3D(fXPos, 0*CLHEP::mm, 0*CLHEP::mm)*HepGeom::RotateZ3D(-fAngle); physiFibU=new GeoFullPhysVol(logALFA_FiberU); physALFA_CladdingU[i]->add(new GeoNameTag(strLabel)); - physALFA_CladdingU[i]->add(new GeoTransform(TransFiber)); + physALFA_CladdingU[i]->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransFiber))); physALFA_CladdingU[i]->add(physiFibU); //set translation vector of the fiber with respect to the main reference point @@ -1604,7 +1604,7 @@ void ALFA_DetectorFactory::ConstructVFiberCladdings(const eRPotName eRPName, Geo //G4RotationMatrix* Clad_Rot1 = new G4RotationMatrix; //Clad_Rot1 -> rotateZ(-45*CLHEP::deg); //G4ThreeVector Clad_Move1(-17.415*CLHEP::mm, -17.415*CLHEP::mm, 0*CLHEP::mm); - HepGeom::Transform3D Clad_Move1=HepGeom::Translate3D(+17.415*CLHEP::mm, -17.415*CLHEP::mm, 0*CLHEP::mm)*HepGeom::RotateZ3D(-45*CLHEP::deg); + GeoTrf::Transform3D Clad_Move1=GeoTrf::Translate3D(+17.415*CLHEP::mm, -17.415*CLHEP::mm, 0*CLHEP::mm)*GeoTrf::RotateZ3D(-45*CLHEP::deg); mowe1=new GeoShapeShift(ALFA_Cladbox2,Clad_Move1); shapeALFA_Clad = new GeoShapeSubtraction(ALFA_Cladbox1,mowe1); @@ -1616,7 +1616,7 @@ void ALFA_DetectorFactory::ConstructVFiberCladdings(const eRPotName eRPName, Geo physALFA_CladdingV[i] = new GeoFullPhysVol(pLogCladdingV); pMotherVolume->add(new GeoNameTag(strLabel)); pMotherVolume->add(pDetTransform); - pMotherVolume->add(new GeoTransform(TransCladdingV[i])); + pMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransCladdingV[i]))); pMotherVolume->add(physALFA_CladdingV[i]); } @@ -1647,7 +1647,7 @@ void ALFA_DetectorFactory::ConstructVFiberCladdings(const eRPotName eRPName, Geo double fAngle=m_pGeoReader->GetVFiberAngle(eRPName, i+1, j+1); double fDx=fXPos-(+15.75-0.5*(j))*CLHEP::mm; - HepGeom::Transform3D TrimMove=HepGeom::Translate3D((1.665+0.5*j)*CLHEP::mm-fDx, -17.415*CLHEP::mm, 0*CLHEP::mm)*HepGeom::RotateZ3D(+45.0*CLHEP::deg); + GeoTrf::Transform3D TrimMove=GeoTrf::Translate3D((1.665+0.5*j)*CLHEP::mm-fDx, -17.415*CLHEP::mm, 0*CLHEP::mm)*GeoTrf::RotateZ3D(+45.0*CLHEP::deg); const GeoShapeShift* Sh6=new GeoShapeShift(CladTrim,TrimMove); const GeoShapeSubtraction* solFibV=new GeoShapeSubtraction(Fib1,Sh6); sprintf(strLabel,"logALFA_FiberV[%d]",j+1); @@ -1658,7 +1658,7 @@ void ALFA_DetectorFactory::ConstructVFiberCladdings(const eRPotName eRPName, Geo physiFibV=new GeoFullPhysVol(logALFA_FiberV); physALFA_CladdingV[i]->add(new GeoNameTag(strLabel)); - physALFA_CladdingV[i]->add(new GeoTransform(TransFiber)); + physALFA_CladdingV[i]->add(new GeoTransform(Amg::CLHEPTransformToEigen(TransFiber))); physALFA_CladdingV[i]->add(physiFibV); //set translation vector of the fiber with respect to the main reference point @@ -1947,7 +1947,7 @@ void ALFA_DetectorFactory::UpdateTransforms(PALIGNPARAMETERS pAlignParams) if(sc==StatusCode::SUCCESS){ pAlTrans=pAlignX->getAlignX(); //pAlTrans->setDelta(RPosParams.RPSWTransformInStation); - pAlTrans->setDelta(RPosParams.RPTransformInStation); + pAlTrans->setDelta(Amg::CLHEPTransformToEigen(RPosParams.RPTransformInStation)); } sprintf(szLabel,"AlTransDetInRPMainPoint[%02d]",eRPName); @@ -1955,7 +1955,7 @@ void ALFA_DetectorFactory::UpdateTransforms(PALIGNPARAMETERS pAlignParams) if(sc==StatusCode::SUCCESS){ pAlTrans=pAlignX->getAlignX(); //pAlTrans->setDelta(RPosParams.DetSWTransformInMainPoint); - pAlTrans->setDelta(RPosParams.DetTransformInMainPoint); + pAlTrans->setDelta(Amg::CLHEPTransformToEigen(RPosParams.DetTransformInMainPoint)); } } diff --git a/ForwardDetectors/ALFA/ALFA_GeoModel/src/ALFA_DetectorTool.cxx b/ForwardDetectors/ALFA/ALFA_GeoModel/src/ALFA_DetectorTool.cxx index a43313394d4ea284588f7f1fd7a9ad66dd029abf..dc4c44db52447beb7605f33436d1098372fed8f8 100755 --- a/ForwardDetectors/ALFA/ALFA_GeoModel/src/ALFA_DetectorTool.cxx +++ b/ForwardDetectors/ALFA/ALFA_GeoModel/src/ALFA_DetectorTool.cxx @@ -244,9 +244,9 @@ StatusCode ALFA_DetectorTool::align(IOVSVC_CALLBACK_ARGS) sc=detStore()->retrieve(pStPhysRPBox,"StRPBox[03]"); if(sc.isSuccess()){ const GeoFullPhysVol* pPhysRPBox=pStPhysRPBox->getPhysVol(); - const HepGeom::Transform3D& xf= pPhysRPBox->getAbsoluteTransform(); + const GeoTrf::Transform3D& xf= pPhysRPBox->getAbsoluteTransform(); - msg(MSG::INFO) << "Translation of RPBOX: "<< xf.getTranslation() << endmsg; + msg(MSG::INFO) << "Translation of RPBOX: "<< xf.translation() << endmsg; } if(detStore()->retrieve(listAttrColl,COOLFOLDER_DETSWCORR )==StatusCode::SUCCESS){ @@ -263,8 +263,8 @@ StatusCode ALFA_DetectorTool::align(IOVSVC_CALLBACK_ARGS) sc=detStore()->retrieve(pStPhysRPBox,"StRPBox[03]"); if(sc.isSuccess()){ const GeoFullPhysVol* pPhysRPBox=pStPhysRPBox->getPhysVol(); - const HepGeom::Transform3D& xf= pPhysRPBox->getAbsoluteTransform(); - msg(MSG::INFO) << "Translation of RPBOX after update: "<< xf.getTranslation() << endmsg; + const GeoTrf::Transform3D& xf= pPhysRPBox->getAbsoluteTransform(); + msg(MSG::INFO) << "Translation of RPBOX after update: "<< xf.translation() << endmsg; } } else{ diff --git a/ForwardDetectors/ALFA/ALFA_Geometry/ALFA_Geometry/ALFA_Config.h b/ForwardDetectors/ALFA/ALFA_Geometry/ALFA_Geometry/ALFA_Config.h index 4edf51634d32689bc2aa227f6ca4152c868f65cd..a1f3a153b360713031ef97b4f69fd3eee26b3e49 100644 --- a/ForwardDetectors/ALFA/ALFA_Geometry/ALFA_Geometry/ALFA_Config.h +++ b/ForwardDetectors/ALFA/ALFA_Geometry/ALFA_Geometry/ALFA_Config.h @@ -9,7 +9,6 @@ #include "ALFA_constants.h" #include "CLHEP/Geometry/Point3D.h" -#include "GeoModelKernel/GeoTransform.h" #include <list> #include <map> diff --git a/ForwardDetectors/ALFA/ALFA_Geometry/ALFA_Geometry/ALFA_GeometryReader.h b/ForwardDetectors/ALFA/ALFA_Geometry/ALFA_Geometry/ALFA_GeometryReader.h index 7405dcdc31fc652e9506ec37e71857d4c07beb77..9f1aa48b810c9608d6716b0c9e2edf02d314b97c 100644 --- a/ForwardDetectors/ALFA/ALFA_Geometry/ALFA_Geometry/ALFA_GeometryReader.h +++ b/ForwardDetectors/ALFA/ALFA_Geometry/ALFA_Geometry/ALFA_GeometryReader.h @@ -8,8 +8,8 @@ #include "ALFA_constants.h" +#include "CLHEP/Geometry/Transform3D.h" #include "CLHEP/Geometry/Point3D.h" -#include "GeoModelKernel/GeoTransform.h" #include "AthenaKernel/CLASS_DEF.h" #include "ALFA_Geometry/ALFA_ConfigParams.h" diff --git a/ForwardDetectors/ALFA/ALFA_Geometry/CMakeLists.txt b/ForwardDetectors/ALFA/ALFA_Geometry/CMakeLists.txt index 3910308730cc145d135044473edac67224ddc31f..7a8854b5553dce33fb8a5aad9e6a9dd015bb56aa 100644 --- a/ForwardDetectors/ALFA/ALFA_Geometry/CMakeLists.txt +++ b/ForwardDetectors/ALFA/ALFA_Geometry/CMakeLists.txt @@ -10,7 +10,6 @@ atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel Database/RDBAccessSvc DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel GaudiKernel PRIVATE Control/StoreGate @@ -27,7 +26,7 @@ atlas_add_library( ALFA_Geometry PUBLIC_HEADERS ALFA_Geometry INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} AthenaKernel GeoModelKernel GaudiKernel StoreGateLib SGtests + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} AthenaKernel GaudiKernel StoreGateLib SGtests PRIVATE_LINK_LIBRARIES PathResolver ) # Install files from the package: diff --git a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/CMakeLists.txt b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/CMakeLists.txt index 2027c917822b6042cc8cbca7f80ef10bc9f439e6..3d637b720bf1aaabbf48bb45762ed656de2c7d91 100644 --- a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/CMakeLists.txt +++ b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/CMakeLists.txt @@ -8,7 +8,6 @@ atlas_subdir( ForwardRegionGeoModel ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities GaudiKernel PRIVATE @@ -18,6 +17,8 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( CLHEP ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( ForwardRegionGeoModelLib @@ -25,13 +26,13 @@ atlas_add_library( ForwardRegionGeoModelLib PUBLIC_HEADERS ForwardRegionGeoModel INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaKernel GeoModelKernel GeoModelUtilities GaudiKernel StoreGateLib SGtests + LINK_LIBRARIES ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaKernel GeoModelUtilities GaudiKernel StoreGateLib SGtests PRIVATE_LINK_LIBRARIES PathResolver ) atlas_add_component( ForwardRegionGeoModel src/components/*.cxx INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} GeoModelKernel GeoModelUtilities GaudiKernel StoreGateLib SGtests PathResolver ForwardRegionGeoModelLib ) + LINK_LIBRARIES ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} GeoModelUtilities GaudiKernel StoreGateLib SGtests PathResolver ForwardRegionGeoModelLib ) # Install files from the package: atlas_install_runtime( share/*.csv ) diff --git a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelElements.cxx b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelElements.cxx index 4f292748a9684041844d1c5e307d70c8569efa20..2e884a193a867e949c62efc3671766b2ffe17113 100644 --- a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelElements.cxx +++ b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelElements.cxx @@ -17,20 +17,20 @@ #include "GeoModelKernel/GeoFullPhysVol.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" -#include "CLHEP/GenericFunctions/AbsFunction.hh" -#include "CLHEP/GenericFunctions/Sin.hh" -#include "CLHEP/GenericFunctions/Cos.hh" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" +#include "GeoGenericFunctions/AbsFunction.h" +#include "GeoGenericFunctions/Sin.h" +#include "GeoGenericFunctions/Cos.h" GeoPhysVol* ForwardRegionGeoModelFactory::insertMagnetEnvelope(std::string name, double x, double y, double z, double rotationAngle, double diameter, double halfL, double dL, GeoPhysVol* fwrPhys) { const GeoTube *tube = new GeoTube(0, diameter/2, halfL-dL); - HepGeom::Transform3D shift = HepGeom::Translate3D(x,y,z); - HepGeom::Transform3D rotate = HepGeom::RotateY3D(rotationAngle); -// HepGeom::Transform3D rotateX180 = HepGeom::RotateX3D(180*CLHEP::deg); + GeoTrf::Transform3D shift = GeoTrf::Translate3D(x,y,z); + GeoTrf::Transform3D rotate = GeoTrf::RotateY3D(rotationAngle); +// Transform3D rotateX180 = GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg); const GeoShapeShift& magTube0 = (*tube)<<rotate<<shift; // const GeoShapeUnion& magTube = magTube0.add((*tube)<<rotate<<shift<<rotateX180); @@ -49,7 +49,7 @@ GeoPhysVol* ForwardRegionGeoModelFactory::insertMagnetEnvelope(std::string name, void ForwardRegionGeoModelFactory::insertCircularElement(std::string name, double x, double y, double z, double rotationAngle, double xAperture, double yAperture, double halfL, double dL, double tubeThickness, GeoPhysVol* fwrPhys) { - double r0 = std::max(xAperture,yAperture)*CLHEP::mm/2; + double r0 = std::max(xAperture,yAperture)*GeoModelKernelUnits::mm/2; const GeoTube *ringTube = new GeoTube(r0, r0+tubeThickness, halfL-dL); @@ -58,9 +58,9 @@ void ForwardRegionGeoModelFactory::insertCircularElement(std::string name, doubl GeoPhysVol *ringPhys = new GeoPhysVol(ringLog); //create rotation and traslation and add them to the tree of volumes of the world (move and rotate the volume) - GeoTransform *move = new GeoTransform(HepGeom::Translate3D(x,y,z)); + GeoTransform *move = new GeoTransform(GeoTrf::Translate3D(x,y,z)); fwrPhys->add(move); - GeoTransform *rotate = new GeoTransform(HepGeom::RotateY3D(rotationAngle)); + GeoTransform *rotate = new GeoTransform(GeoTrf::RotateY3D(rotationAngle)); fwrPhys->add(rotate); GeoNameTag *tag = new GeoNameTag(name); @@ -69,7 +69,7 @@ void ForwardRegionGeoModelFactory::insertCircularElement(std::string name, doubl fwrPhys->add(ringPhys); // // The other side of the forward region may be obtained by rotation -// GeoTransform *rotateX180 = new GeoTransform(HepGeom::RotateX3D(180*CLHEP::deg)); +// GeoTransform *rotateX180 = new GeoTransform(GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)); // // the other side // fwrPhys->add(rotateX180); @@ -87,12 +87,12 @@ void ForwardRegionGeoModelFactory::insertEllipticalElement(std::string name, dou // GeoEllipticalTube causes VP1 to fall, so for visualization GeoBox is used if(!m_Config.vp1Compatibility) { - ringTube0 = new GeoEllipticalTube(xAperture*CLHEP::mm/2+tubeThickness, yAperture*CLHEP::mm/2+tubeThickness, halfL-dL); - ringTube2 = new GeoEllipticalTube(xAperture*CLHEP::mm/2, yAperture*CLHEP::mm/2, halfL-dL); + ringTube0 = new GeoEllipticalTube(xAperture*GeoModelKernelUnits::mm/2+tubeThickness, yAperture*GeoModelKernelUnits::mm/2+tubeThickness, halfL-dL); + ringTube2 = new GeoEllipticalTube(xAperture*GeoModelKernelUnits::mm/2, yAperture*GeoModelKernelUnits::mm/2, halfL-dL); } else { - ringTube0 = new GeoBox(xAperture*CLHEP::mm/2+tubeThickness, yAperture*CLHEP::mm/2+tubeThickness, halfL-dL); - ringTube2 = new GeoBox(xAperture*CLHEP::mm/2, yAperture*CLHEP::mm/2, halfL-dL); + ringTube0 = new GeoBox(xAperture*GeoModelKernelUnits::mm/2+tubeThickness, yAperture*GeoModelKernelUnits::mm/2+tubeThickness, halfL-dL); + ringTube2 = new GeoBox(xAperture*GeoModelKernelUnits::mm/2, yAperture*GeoModelKernelUnits::mm/2, halfL-dL); } GeoShapeSubtraction * ringTube = new GeoShapeSubtraction(ringTube0, ringTube2); @@ -101,9 +101,9 @@ void ForwardRegionGeoModelFactory::insertEllipticalElement(std::string name, dou GeoPhysVol *ringPhys = new GeoPhysVol(ringLog); //create rotation and traslation and add them to the tree of volumes of the world (move and rotate the volume) - GeoTransform *move = new GeoTransform(HepGeom::Translate3D(x,y,z)); + GeoTransform *move = new GeoTransform(GeoTrf::Translate3D(x,y,z)); fwrPhys->add(move); - GeoTransform *rotate = new GeoTransform(HepGeom::RotateY3D(rotationAngle)); + GeoTransform *rotate = new GeoTransform(GeoTrf::RotateY3D(rotationAngle)); fwrPhys->add(rotate); GeoNameTag *tag = new GeoNameTag(name); @@ -112,7 +112,7 @@ void ForwardRegionGeoModelFactory::insertEllipticalElement(std::string name, dou fwrPhys->add(ringPhys); // // The other side of the forward region may be obtained by rotation -// GeoTransform *rotateX180 = new GeoTransform(HepGeom::RotateX3D(180*CLHEP::deg)); +// GeoTransform *rotateX180 = new GeoTransform(GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)); // // the other side // fwrPhys->add(rotateX180); @@ -125,22 +125,22 @@ void ForwardRegionGeoModelFactory::insertEllipticalElement(std::string name, dou void ForwardRegionGeoModelFactory::insertXRecticircularElement(std::string name, double x, double y, double z, double rotationAngle, double xAperture, double yAperture, double halfL, double dL, double tubeThickness, GeoPhysVol* fwrPhys) { - double beamScreenSeparation = 1.5*CLHEP::mm; - double beamScreenCuThick = 0.05*CLHEP::mm; - double beamScreenSteelThick = 1*CLHEP::mm; + double beamScreenSeparation = 1.5*GeoModelKernelUnits::mm; + double beamScreenCuThick = 0.05*GeoModelKernelUnits::mm; + double beamScreenSteelThick = 1*GeoModelKernelUnits::mm; - const GeoTube *ringTube = new GeoTube(yAperture*CLHEP::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation, yAperture*CLHEP::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation+tubeThickness, halfL-dL); - const GeoTube *circ = new GeoTube(0, yAperture*CLHEP::mm/2, halfL-dL); - const GeoBox *rect = new GeoBox(xAperture*CLHEP::mm/2, yAperture*CLHEP::mm/2, halfL-dL); + const GeoTube *ringTube = new GeoTube(yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation+tubeThickness, halfL-dL); + const GeoTube *circ = new GeoTube(0, yAperture*GeoModelKernelUnits::mm/2, halfL-dL); + const GeoBox *rect = new GeoBox(xAperture*GeoModelKernelUnits::mm/2, yAperture*GeoModelKernelUnits::mm/2, halfL-dL); GeoShapeIntersection *innerVac = new GeoShapeIntersection(rect,circ); - const GeoTube *circ2 = new GeoTube(0, yAperture*CLHEP::mm/2+beamScreenCuThick, halfL-dL); - const GeoBox *rect2 = new GeoBox(xAperture*CLHEP::mm/2+beamScreenCuThick, yAperture*CLHEP::mm/2+beamScreenCuThick, halfL-dL); + const GeoTube *circ2 = new GeoTube(0, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick, halfL-dL); + const GeoBox *rect2 = new GeoBox(xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick, halfL-dL); GeoShapeIntersection *beamScreenCu0 = new GeoShapeIntersection(rect2,circ2); GeoShapeSubtraction *beamScreenCu = new GeoShapeSubtraction(beamScreenCu0, innerVac); - const GeoTube *circ3 = new GeoTube(0, yAperture*CLHEP::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL); - const GeoBox *rect3 = new GeoBox(xAperture*CLHEP::mm/2+beamScreenCuThick+beamScreenSteelThick, yAperture*CLHEP::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL); + const GeoTube *circ3 = new GeoTube(0, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL); + const GeoBox *rect3 = new GeoBox(xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL); GeoShapeIntersection *beamScreenSteel01 = new GeoShapeIntersection(rect3,circ3); GeoShapeSubtraction *beamScreenSteel02 = new GeoShapeSubtraction(beamScreenSteel01, innerVac); GeoShapeSubtraction *beamScreenSteel = new GeoShapeSubtraction(beamScreenSteel02, beamScreenCu); @@ -154,9 +154,9 @@ void ForwardRegionGeoModelFactory::insertXRecticircularElement(std::string name, GeoPhysVol *ringPhysSteel = new GeoPhysVol(ringLogSteel); //create rotation and traslation and add them to the tree of volumes of the world (move and rotate the volume) - GeoTransform *move = new GeoTransform(HepGeom::Translate3D(x,y,z)); + GeoTransform *move = new GeoTransform(GeoTrf::Translate3D(x,y,z)); fwrPhys->add(move); - GeoTransform *rotate = new GeoTransform(HepGeom::RotateY3D(rotationAngle)); + GeoTransform *rotate = new GeoTransform(GeoTrf::RotateY3D(rotationAngle)); fwrPhys->add(rotate); GeoNameTag *tag = new GeoNameTag(name+"BeamPipe"); @@ -179,7 +179,7 @@ void ForwardRegionGeoModelFactory::insertXRecticircularElement(std::string name, // // The other side of the forward region may be obtain by rotation -// GeoTransform *rotateX180 = new GeoTransform(HepGeom::RotateX3D(180*CLHEP::deg)); +// GeoTransform *rotateX180 = new GeoTransform(GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)); // // the other side // fwrPhys->add(rotateX180); @@ -206,22 +206,22 @@ void ForwardRegionGeoModelFactory::insertXRecticircularElement(std::string name, void ForwardRegionGeoModelFactory::insertYRecticircularElement(std::string name, double x, double y, double z, double rotationAngle, double xAperture, double yAperture, double halfL, double dL, double tubeThickness, GeoPhysVol* fwrPhys) { - double beamScreenSeparation = 1.5*CLHEP::mm; - double beamScreenCuThick = 0.05*CLHEP::mm; - double beamScreenSteelThick = 1*CLHEP::mm; + double beamScreenSeparation = 1.5*GeoModelKernelUnits::mm; + double beamScreenCuThick = 0.05*GeoModelKernelUnits::mm; + double beamScreenSteelThick = 1*GeoModelKernelUnits::mm; - const GeoTube *ringTube = new GeoTube(xAperture*CLHEP::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation, xAperture*CLHEP::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation+tubeThickness, halfL-dL); - const GeoTube *circ = new GeoTube(0, xAperture*CLHEP::mm/2, halfL-dL); - const GeoBox *rect = new GeoBox(xAperture*CLHEP::mm/2, yAperture*CLHEP::mm/2, halfL-dL); + const GeoTube *ringTube = new GeoTube(xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation, xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick+beamScreenSeparation+tubeThickness, halfL-dL); + const GeoTube *circ = new GeoTube(0, xAperture*GeoModelKernelUnits::mm/2, halfL-dL); + const GeoBox *rect = new GeoBox(xAperture*GeoModelKernelUnits::mm/2, yAperture*GeoModelKernelUnits::mm/2, halfL-dL); GeoShapeIntersection *innerVac = new GeoShapeIntersection(rect,circ); - const GeoTube *circ2 = new GeoTube(0, xAperture*CLHEP::mm/2+beamScreenCuThick, halfL-dL); - const GeoBox *rect2 = new GeoBox(xAperture*CLHEP::mm/2+beamScreenCuThick, yAperture*CLHEP::mm/2+beamScreenCuThick, halfL-dL); + const GeoTube *circ2 = new GeoTube(0, xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick, halfL-dL); + const GeoBox *rect2 = new GeoBox(xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick, halfL-dL); GeoShapeIntersection *beamScreenCu0 = new GeoShapeIntersection(rect2,circ2); GeoShapeSubtraction *beamScreenCu = new GeoShapeSubtraction(beamScreenCu0, innerVac); - const GeoTube *circ3 = new GeoTube(0, xAperture*CLHEP::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL); - const GeoBox *rect3 = new GeoBox(xAperture*CLHEP::mm/2+beamScreenCuThick+beamScreenSteelThick, yAperture*CLHEP::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL); + const GeoTube *circ3 = new GeoTube(0, xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL); + const GeoBox *rect3 = new GeoBox(xAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick, yAperture*GeoModelKernelUnits::mm/2+beamScreenCuThick+beamScreenSteelThick, halfL-dL); GeoShapeIntersection *beamScreenSteel01 = new GeoShapeIntersection(rect3,circ3); GeoShapeSubtraction *beamScreenSteel02 = new GeoShapeSubtraction(beamScreenSteel01, innerVac); GeoShapeSubtraction *beamScreenSteel = new GeoShapeSubtraction(beamScreenSteel02, beamScreenCu); @@ -235,9 +235,9 @@ void ForwardRegionGeoModelFactory::insertYRecticircularElement(std::string name, GeoPhysVol *ringPhysSteel = new GeoPhysVol(ringLogSteel); //create rotation and traslation and add them to the tree of volumes of the world (move and rotate the volume) - GeoTransform *move = new GeoTransform(HepGeom::Translate3D(x,y,z)); + GeoTransform *move = new GeoTransform(GeoTrf::Translate3D(x,y,z)); fwrPhys->add(move); - GeoTransform *rotate = new GeoTransform(HepGeom::RotateY3D(rotationAngle)); + GeoTransform *rotate = new GeoTransform(GeoTrf::RotateY3D(rotationAngle)); fwrPhys->add(rotate); GeoNameTag *tag = new GeoNameTag(name+"BeamPipe"); @@ -258,7 +258,7 @@ void ForwardRegionGeoModelFactory::insertYRecticircularElement(std::string name, fwrPhys->add(ringPhysSteel); // // The other side of the forward region may be obtain by rotation -// GeoTransform *rotateX180 = new GeoTransform(HepGeom::RotateX3D(180*CLHEP::deg)); +// GeoTransform *rotateX180 = new GeoTransform(GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)); // // the other side // fwrPhys->add(rotateX180); @@ -290,13 +290,13 @@ void ForwardRegionGeoModelFactory::insertTrousersElement(std::string name, doubl // CONSTANTS double TAN_A, TAN_B, TAN_C, TAN_Dsmall, TAN_Dbig, TAN_thick1, TAN_xseparation; - TAN_A = 700*CLHEP::mm; - TAN_B = 500*CLHEP::mm; - TAN_C = 3700*CLHEP::mm; - TAN_Dsmall = 52*CLHEP::mm; - TAN_Dbig = 212*CLHEP::mm; - TAN_thick1 = 4.5*CLHEP::mm; - TAN_xseparation = 80*CLHEP::mm; + TAN_A = 700*GeoModelKernelUnits::mm; + TAN_B = 500*GeoModelKernelUnits::mm; + TAN_C = 3700*GeoModelKernelUnits::mm; + TAN_Dsmall = 52*GeoModelKernelUnits::mm; + TAN_Dbig = 212*GeoModelKernelUnits::mm; + TAN_thick1 = 4.5*GeoModelKernelUnits::mm; + TAN_xseparation = 80*GeoModelKernelUnits::mm; // Derived constants double TAN_Rsmall, TAN_Rbig, TAN_coneZh, TAN_coneR, TAN_coneXh;//, TAN_halflength; @@ -310,16 +310,16 @@ void ForwardRegionGeoModelFactory::insertTrousersElement(std::string name, doubl // volume construction // inner part - GeoPcon *TANi_cone0 = new GeoPcon(0,360*CLHEP::deg); + GeoPcon *TANi_cone0 = new GeoPcon(0,360*GeoModelKernelUnits::deg); TANi_cone0->addPlane(2*TAN_coneZh, TAN_Rsmall, 2*TAN_Rbig); TANi_cone0->addPlane(TAN_coneZh, TAN_Rsmall, 2*TAN_Rbig); TANi_cone0->addPlane(-TAN_coneZh, TAN_coneR, 2*TAN_Rbig); - HepGeom::Transform3D TAN_moveCone = HepGeom::Translate3D(TAN_coneXh,0,0.5*(TAN_A-TAN_B)); - HepGeom::Transform3D TAN_rotateCone = HepGeom::RotateY3D(5*CLHEP::deg); + GeoTrf::Transform3D TAN_moveCone = GeoTrf::Translate3D(TAN_coneXh,0,0.5*(TAN_A-TAN_B)); + GeoTrf::Transform3D TAN_rotateCone = GeoTrf::RotateY3D(5*GeoModelKernelUnits::deg); const GeoShapeShift& TANi_cone = (*TANi_cone0)<<TAN_rotateCone<<TAN_moveCone; const GeoBox *TAN_box0 = new GeoBox(2*TAN_Rbig,2*TAN_Rbig,TAN_A+TAN_B); - HepGeom::Transform3D TAN_moveBox = HepGeom::Translate3D(-2*TAN_Rbig,0,0); + GeoTrf::Transform3D TAN_moveBox = GeoTrf::Translate3D(-2*TAN_Rbig,0,0); const GeoShapeShift& TAN_box = (*TAN_box0)<<TAN_moveBox; const GeoTube *TANi_bigtube = new GeoTube(0, TAN_Rbig, 0.5*(TAN_A+TAN_B)); @@ -327,14 +327,14 @@ void ForwardRegionGeoModelFactory::insertTrousersElement(std::string name, doubl GeoShapeSubtraction *TANi_hcyl = new GeoShapeSubtraction(TANi_bigtube, &TAN_box); GeoShapeSubtraction *TANi_h = new GeoShapeSubtraction(TANi_hcyl, &TANi_cone); - HepGeom::Transform3D TAN_moveH = HepGeom::Translate3D(0,0,-0.5*TAN_C); - HepGeom::Transform3D TAN_rotateH = HepGeom::RotateZ3D(180*CLHEP::deg); + GeoTrf::Transform3D TAN_moveH = GeoTrf::Translate3D(0,0,-0.5*TAN_C); + GeoTrf::Transform3D TAN_rotateH = GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg); - HepGeom::Transform3D TAN_moveTube1 = HepGeom::Translate3D(TAN_xseparation,0,0.5*(TAN_A+TAN_B)); - HepGeom::Transform3D TAN_moveTube2 = HepGeom::Translate3D(-TAN_xseparation,0,0.5*(TAN_A+TAN_B)); + GeoTrf::Transform3D TAN_moveTube1 = GeoTrf::Translate3D(TAN_xseparation,0,0.5*(TAN_A+TAN_B)); + GeoTrf::Transform3D TAN_moveTube2 = GeoTrf::Translate3D(-TAN_xseparation,0,0.5*(TAN_A+TAN_B)); // outer part - GeoPcon *TANo_cone0 = new GeoPcon(0,360*CLHEP::deg); + GeoPcon *TANo_cone0 = new GeoPcon(0,360*GeoModelKernelUnits::deg); TANo_cone0->addPlane(2*TAN_coneZh, TAN_Rsmall+TAN_thick1, 2*TAN_Rbig); TANo_cone0->addPlane(TAN_coneZh, TAN_Rsmall+TAN_thick1, 2*TAN_Rbig); TANo_cone0->addPlane(-TAN_coneZh, TAN_coneR+TAN_thick1, 2*TAN_Rbig); @@ -347,7 +347,7 @@ void ForwardRegionGeoModelFactory::insertTrousersElement(std::string name, doubl GeoShapeSubtraction *TANo_h = new GeoShapeSubtraction(TANo_hcyl, &TANo_cone); const GeoTube *TAN_antiblock0 = new GeoTube(0, TAN_Rsmall, 0.5*(TAN_A+2*TAN_B)); // antiblock tube -- just in case.. - HepGeom::Transform3D TAN_moveAntiblock = HepGeom::Translate3D(TAN_xseparation,0,0); + GeoTrf::Transform3D TAN_moveAntiblock = GeoTrf::Translate3D(TAN_xseparation,0,0); const GeoShapeShift& TAN_antiblock = (*TAN_antiblock0)<<TAN_moveAntiblock; GeoShapeSubtraction *TAN_shape0 = new GeoShapeSubtraction(TANo_h, TANi_h); @@ -355,7 +355,7 @@ void ForwardRegionGeoModelFactory::insertTrousersElement(std::string name, doubl const GeoShapeShift& TAN_shape1 = (*TAN_shape)<<TAN_moveH; const GeoShapeShift& TAN_shape2 = (*TAN_shape)<<TAN_moveH<<TAN_rotateH; - const GeoTube *TANo_ftube = new GeoTube(TAN_Rsmall,TAN_Rsmall+TAN_thick1,0.5*TAN_C-0.1*CLHEP::mm); + const GeoTube *TANo_ftube = new GeoTube(TAN_Rsmall,TAN_Rsmall+TAN_thick1,0.5*TAN_C-0.1*GeoModelKernelUnits::mm); const GeoShapeShift& TANo_ftube1 = (*TANo_ftube)<<TAN_moveTube1; const GeoShapeShift& TANo_ftube2 = (*TANo_ftube)<<TAN_moveTube2; @@ -369,9 +369,9 @@ void ForwardRegionGeoModelFactory::insertTrousersElement(std::string name, doubl GeoPhysVol *ringPhys = new GeoPhysVol(ringLog); //create rotation and traslation and add them to the tree of volumes of the world (move and rotate the volume) - GeoTransform *move = new GeoTransform(HepGeom::Translate3D(x,y,z)); + GeoTransform *move = new GeoTransform(GeoTrf::Translate3D(x,y,z)); fwrPhys->add(move); - GeoTransform *rotate = new GeoTransform(HepGeom::RotateY3D(rotationAngle)); + GeoTransform *rotate = new GeoTransform(GeoTrf::RotateY3D(rotationAngle)); fwrPhys->add(rotate); GeoNameTag *tag = new GeoNameTag(name); @@ -380,7 +380,7 @@ void ForwardRegionGeoModelFactory::insertTrousersElement(std::string name, doubl fwrPhys->add(ringPhys); // // The other side of the forward region may be obtained by rotation -// GeoTransform *rotateX180 = new GeoTransform(HepGeom::RotateX3D(180*CLHEP::deg)); +// GeoTransform *rotateX180 = new GeoTransform(GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)); // // the other side // fwrPhys->add(rotateX180); @@ -395,48 +395,48 @@ void ForwardRegionGeoModelFactory::insertTCLElement(std::string name, double x, { // Constants double TCL_BOX_halflength, TCL_BOX_halfwidth, TCL_BOX_halfheight, TCL_BOX_sideThickness, TCL_BOX_topBottomThickness, TCL_BOX_endThickness, TCL_TUBE_halflength, TCL_TUBE_halfapperture, TCL_TUBE_thickness; - TCL_BOX_sideThickness = 6*CLHEP::mm; - TCL_BOX_topBottomThickness = 18*CLHEP::mm; - TCL_BOX_endThickness = 18*CLHEP::mm; + TCL_BOX_sideThickness = 6*GeoModelKernelUnits::mm; + TCL_BOX_topBottomThickness = 18*GeoModelKernelUnits::mm; + TCL_BOX_endThickness = 18*GeoModelKernelUnits::mm; - TCL_BOX_halflength = 621*CLHEP::mm; - TCL_BOX_halfwidth = 132*CLHEP::mm; + TCL_BOX_halflength = 621*GeoModelKernelUnits::mm; + TCL_BOX_halfwidth = 132*GeoModelKernelUnits::mm; TCL_BOX_halfheight = 60+TCL_BOX_topBottomThickness; - TCL_TUBE_halflength = 59.5*CLHEP::mm; - TCL_TUBE_halfapperture = 53*CLHEP::mm; - TCL_TUBE_thickness = 2*CLHEP::mm; + TCL_TUBE_halflength = 59.5*GeoModelKernelUnits::mm; + TCL_TUBE_halfapperture = 53*GeoModelKernelUnits::mm; + TCL_TUBE_thickness = 2*GeoModelKernelUnits::mm; double TCL_CuBlock_halflength, TCL_CuBlock_halfwidth, TCL_CuBlock_halfheight, TCL_CuBlockCylCut_zDepth, TCL_CuBlockCylCut_angle, TCL_CuBlockCylCut_cylR, TCL_CuBlockCylCut_cylHalflength, TCL_CuBlockCylCut_xDepth, TCL_CuBlockCylCut_xShift; - TCL_CuBlock_halflength = 597*CLHEP::mm; - TCL_CuBlock_halfwidth = 14.5*CLHEP::mm; - TCL_CuBlock_halfheight = 40*CLHEP::mm; + TCL_CuBlock_halflength = 597*GeoModelKernelUnits::mm; + TCL_CuBlock_halfwidth = 14.5*GeoModelKernelUnits::mm; + TCL_CuBlock_halfheight = 40*GeoModelKernelUnits::mm; - TCL_CuBlockCylCut_zDepth = 90*CLHEP::mm; - TCL_CuBlockCylCut_angle = 12*CLHEP::deg; - TCL_CuBlockCylCut_cylR = 40*CLHEP::mm; + TCL_CuBlockCylCut_zDepth = 90*GeoModelKernelUnits::mm; + TCL_CuBlockCylCut_angle = 12*GeoModelKernelUnits::deg; + TCL_CuBlockCylCut_cylR = 40*GeoModelKernelUnits::mm; TCL_CuBlockCylCut_cylHalflength = TCL_CuBlockCylCut_zDepth/cos(TCL_CuBlockCylCut_angle); TCL_CuBlockCylCut_xDepth = TCL_CuBlockCylCut_zDepth*tan(TCL_CuBlockCylCut_angle); TCL_CuBlockCylCut_xShift = -TCL_CuBlock_halfwidth-TCL_CuBlockCylCut_cylR/cos(TCL_CuBlockCylCut_angle)+TCL_CuBlockCylCut_xDepth; double TCL_CuBeam_halflength, TCL_CuBeam_halfwidth, TCL_CuBeam_halfheight, TCL_Cooling_width; - TCL_CuBeam_halflength = 530*CLHEP::mm; - TCL_CuBeam_halfwidth = 15*CLHEP::mm; - TCL_CuBeam_halfheight = 40*CLHEP::mm; + TCL_CuBeam_halflength = 530*GeoModelKernelUnits::mm; + TCL_CuBeam_halfwidth = 15*GeoModelKernelUnits::mm; + TCL_CuBeam_halfheight = 40*GeoModelKernelUnits::mm; - TCL_Cooling_width = 9*CLHEP::mm; + TCL_Cooling_width = 9*GeoModelKernelUnits::mm; // rotate by 180 deg around X and Y - HepGeom::Transform3D rotateX180 = HepGeom::RotateX3D(180*CLHEP::deg); - HepGeom::Transform3D rotateY180 = HepGeom::RotateY3D(180*CLHEP::deg); + GeoTrf::Transform3D rotateX180 = GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg); + GeoTrf::Transform3D rotateY180 = GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg); // inner vacuum volume solid const GeoBox * boxIn = new GeoBox(TCL_BOX_halfwidth-TCL_BOX_sideThickness, TCL_BOX_halfheight-TCL_BOX_topBottomThickness, TCL_BOX_halflength-TCL_BOX_endThickness); const GeoTube * tubeIn = new GeoTube(0, TCL_TUBE_halfapperture, TCL_TUBE_halflength+0.5*TCL_BOX_endThickness); - HepGeom::Transform3D moveTubeIn = HepGeom::Translate3D(0, 0, TCL_BOX_halflength+TCL_TUBE_halflength-0.5*TCL_BOX_endThickness); + GeoTrf::Transform3D moveTubeIn = GeoTrf::Translate3D(0, 0, TCL_BOX_halflength+TCL_TUBE_halflength-0.5*TCL_BOX_endThickness); const GeoShapeShift& tubeIn1 = (*tubeIn)<<moveTubeIn; const GeoShapeShift& tubeIn2 = (*tubeIn)<<moveTubeIn<<rotateY180; const GeoShapeUnion * innerVac0 = new GeoShapeUnion(boxIn,&tubeIn1); @@ -445,7 +445,7 @@ void ForwardRegionGeoModelFactory::insertTCLElement(std::string name, double x, // outer steel case solid const GeoBox * boxFull = new GeoBox(TCL_BOX_halfwidth, TCL_BOX_halfheight, TCL_BOX_halflength); const GeoTube * tubeOut = new GeoTube(TCL_TUBE_halfapperture, TCL_TUBE_halfapperture+TCL_TUBE_thickness, TCL_TUBE_halflength); - HepGeom::Transform3D moveTubeOut = HepGeom::Translate3D(0, 0, TCL_BOX_halflength+TCL_TUBE_halflength); + GeoTrf::Transform3D moveTubeOut = GeoTrf::Translate3D(0, 0, TCL_BOX_halflength+TCL_TUBE_halflength); const GeoShapeShift& tubeOut1 = (*tubeOut)<<moveTubeOut; const GeoShapeShift& tubeOut2 = (*tubeOut)<<moveTubeOut<<rotateY180; const GeoShapeUnion * outerSteelFull0 = new GeoShapeUnion(boxFull,&tubeOut1); @@ -455,29 +455,29 @@ void ForwardRegionGeoModelFactory::insertTCLElement(std::string name, double x, // Copper block solid const GeoBox * cuBoxFull = new GeoBox(TCL_CuBlock_halfwidth, TCL_CuBlock_halfheight, TCL_CuBlock_halflength); const GeoTube * cylCut0 = new GeoTube(0, TCL_CuBlockCylCut_cylR, TCL_CuBlockCylCut_cylHalflength); - HepGeom::Transform3D rotateCylCut = HepGeom::RotateY3D(TCL_CuBlockCylCut_angle); - HepGeom::Transform3D moveCylCut = HepGeom::Translate3D(TCL_CuBlockCylCut_xShift, 0, TCL_CuBlock_halflength); + GeoTrf::Transform3D rotateCylCut = GeoTrf::RotateY3D(TCL_CuBlockCylCut_angle); + GeoTrf::Transform3D moveCylCut = GeoTrf::Translate3D(TCL_CuBlockCylCut_xShift, 0, TCL_CuBlock_halflength); const GeoShapeShift& cylCut1 = (*cylCut0)<<rotateCylCut<<moveCylCut; const GeoShapeShift& cylCut2 = (*cylCut0)<<rotateCylCut<<moveCylCut<<rotateX180; const GeoShapeSubtraction * cuBox0 = new GeoShapeSubtraction(cuBoxFull, &cylCut1); const GeoShapeSubtraction * cuBox1 = new GeoShapeSubtraction(cuBox0, &cylCut2); - HepGeom::Transform3D moveCuBoxI = HepGeom::Translate3D(TCLJawDistI+TCL_CuBlock_halfwidth, 0, 0); + GeoTrf::Transform3D moveCuBoxI = GeoTrf::Translate3D(TCLJawDistI+TCL_CuBlock_halfwidth, 0, 0); const GeoShapeShift& cuBoxI = (*cuBox1)<<moveCuBoxI; - HepGeom::Transform3D moveCuBoxO = HepGeom::Translate3D(+TCLJawDistO+TCL_CuBlock_halfwidth, 0, 0); + GeoTrf::Transform3D moveCuBoxO = GeoTrf::Translate3D(+TCLJawDistO+TCL_CuBlock_halfwidth, 0, 0); const GeoShapeShift& cuBoxO = (*cuBox1)<<moveCuBoxO<<rotateY180; // Copper beam solid const GeoBox * cuBeamFull = new GeoBox(TCL_CuBeam_halfwidth, TCL_CuBeam_halfheight, TCL_CuBeam_halflength); - HepGeom::Transform3D moveCuBeamI = HepGeom::Translate3D(TCLJawDistI+2*TCL_CuBlock_halfwidth+TCL_Cooling_width+TCL_CuBeam_halfwidth, 0, 0); + GeoTrf::Transform3D moveCuBeamI = GeoTrf::Translate3D(TCLJawDistI+2*TCL_CuBlock_halfwidth+TCL_Cooling_width+TCL_CuBeam_halfwidth, 0, 0); const GeoShapeShift& cuBeamI = (*cuBeamFull)<<moveCuBeamI; - HepGeom::Transform3D moveCuBeamO = HepGeom::Translate3D(+TCLJawDistO+2*TCL_CuBlock_halfwidth+TCL_Cooling_width+TCL_CuBeam_halfwidth, 0, 0); + GeoTrf::Transform3D moveCuBeamO = GeoTrf::Translate3D(+TCLJawDistO+2*TCL_CuBlock_halfwidth+TCL_Cooling_width+TCL_CuBeam_halfwidth, 0, 0); const GeoShapeShift& cuBeamO = (*cuBeamFull)<<moveCuBeamO<<rotateY180; // Watter cooling in first aproximation (water box) const GeoBox * waterBox = new GeoBox(0.5*TCL_Cooling_width, TCL_CuBlock_halfheight, TCL_CuBlock_halflength); - HepGeom::Transform3D moveWaterBoxI = HepGeom::Translate3D(TCLJawDistI+2*TCL_CuBlock_halfwidth+0.5*TCL_Cooling_width, 0, 0); + GeoTrf::Transform3D moveWaterBoxI = GeoTrf::Translate3D(TCLJawDistI+2*TCL_CuBlock_halfwidth+0.5*TCL_Cooling_width, 0, 0); const GeoShapeShift& waterBoxI = (*waterBox)<<moveWaterBoxI; - HepGeom::Transform3D moveWaterBoxO = HepGeom::Translate3D(+TCLJawDistO+2*TCL_CuBlock_halfwidth+0.5*TCL_Cooling_width, 0, 0); + GeoTrf::Transform3D moveWaterBoxO = GeoTrf::Translate3D(+TCLJawDistO+2*TCL_CuBlock_halfwidth+0.5*TCL_Cooling_width, 0, 0); const GeoShapeShift& waterBoxO = (*waterBox)<<moveWaterBoxO<<rotateY180; @@ -504,7 +504,7 @@ void ForwardRegionGeoModelFactory::insertTCLElement(std::string name, double x, GeoPhysVol *waterBoxPhysO = new GeoPhysVol(waterBoxLogO); //create rotation and traslation and add them to the tree of volumes of the world (move and rotate the volume) - GeoTransform *move = new GeoTransform(HepGeom::Translate3D(x,y,z)); + GeoTransform *move = new GeoTransform(GeoTrf::Translate3D(x,y,z)); fwrPhys->add(move); GeoNameTag *tag = new GeoNameTag(name); diff --git a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelFactory.cxx b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelFactory.cxx index bb6c0bfcb4ae262198fe4e7b51f687d073de8225..da38507471985160813b683bd77fbe5a44f156e8 100755 --- a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelFactory.cxx +++ b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelFactory.cxx @@ -16,13 +16,12 @@ #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoFullPhysVol.h" -#include "GeoModelKernel/GeoTransform.h" -#include "GeoModelKernel/GeoAlignableTransform.h" -#include "CLHEP/GenericFunctions/AbsFunction.hh" -#include "CLHEP/GenericFunctions/Variable.hh" -#include "CLHEP/GenericFunctions/Sin.hh" -#include "CLHEP/GenericFunctions/Cos.hh" -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" +#include "GeoGenericFunctions/AbsFunction.h" +#include "GeoGenericFunctions/Variable.h" +#include "GeoGenericFunctions/Sin.h" +#include "GeoGenericFunctions/Cos.h" #include "CLHEP/Geometry/Point3D.h" #include "StoreGate/StoreGateSvc.h" #include "StoreGate/DataHandle.h" @@ -48,28 +47,28 @@ void FWD_CONFIGURATION::clear() { - TCL4JawDistB1I = 57*CLHEP::mm; - TCL5JawDistB1I = 57*CLHEP::mm; - TCL6JawDistB1I = 57*CLHEP::mm; - TCL4JawDistB2I = 57*CLHEP::mm; - TCL5JawDistB2I = 57*CLHEP::mm; - TCL6JawDistB2I = 57*CLHEP::mm; - TCL4JawDistB1O = 57*CLHEP::mm; - TCL5JawDistB1O = 57*CLHEP::mm; - TCL6JawDistB1O = 57*CLHEP::mm; - TCL4JawDistB2O = 57*CLHEP::mm; - TCL5JawDistB2O = 57*CLHEP::mm; - TCL6JawDistB2O = 57*CLHEP::mm; + TCL4JawDistB1I = 57*GeoModelKernelUnits::mm; + TCL5JawDistB1I = 57*GeoModelKernelUnits::mm; + TCL6JawDistB1I = 57*GeoModelKernelUnits::mm; + TCL4JawDistB2I = 57*GeoModelKernelUnits::mm; + TCL5JawDistB2I = 57*GeoModelKernelUnits::mm; + TCL6JawDistB2I = 57*GeoModelKernelUnits::mm; + TCL4JawDistB1O = 57*GeoModelKernelUnits::mm; + TCL5JawDistB1O = 57*GeoModelKernelUnits::mm; + TCL6JawDistB1O = 57*GeoModelKernelUnits::mm; + TCL4JawDistB2O = 57*GeoModelKernelUnits::mm; + TCL5JawDistB2O = 57*GeoModelKernelUnits::mm; + TCL6JawDistB2O = 57*GeoModelKernelUnits::mm; vp1Compatibility = false; buildTCL4 = false; buildTCL6 = false; ALFAInNewPosition = false; - newPosB7L1 = 245656.77*CLHEP::mm; - newPosB7R1 = -245656.11*CLHEP::mm; - posAFPL1 = 204500*CLHEP::mm; - posAFPL2 = 212675*CLHEP::mm; - posAFPR1 = -204500*CLHEP::mm; - posAFPL2 = -212675*CLHEP::mm; + newPosB7L1 = 245656.77*GeoModelKernelUnits::mm; + newPosB7R1 = -245656.11*GeoModelKernelUnits::mm; + posAFPL1 = 204500*GeoModelKernelUnits::mm; + posAFPL2 = 212675*GeoModelKernelUnits::mm; + posAFPR1 = -204500*GeoModelKernelUnits::mm; + posAFPL2 = -212675*GeoModelKernelUnits::mm; } @@ -118,7 +117,7 @@ void ForwardRegionGeoModelFactory::DefineMaterials() // water matName = "water"; - GeoMaterial *water = new GeoMaterial("H20", 1.0*CLHEP::gram/CLHEP::cm3); + GeoMaterial *water = new GeoMaterial("H20", 1.0*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); GeoElement *hydrogen = new GeoElement("Hydrogen","H",1.0, 1.010); GeoElement *oxygen = new GeoElement("Oxygen", "O", 8.0, 16.0); water->add(hydrogen,0.11); @@ -146,7 +145,7 @@ void ForwardRegionGeoModelFactory::DefineMaterials() // Copper for beam screens matName = "Copper"; - GeoMaterial *copper = new GeoMaterial("Copper", 8.94*CLHEP::g/CLHEP::cm3); + GeoMaterial *copper = new GeoMaterial("Copper", 8.94*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); copper->add(const_cast<GeoElement*> (Cu),1.0); copper->lock(); m_MapMaterials.insert(std::pair<std::string,GeoMaterial*>(matName,copper)); @@ -154,7 +153,7 @@ void ForwardRegionGeoModelFactory::DefineMaterials() // Tungsten for TCL6 matName = "Tungsten"; const GeoElement* W = materialManager->getElement("Wolfram"); - GeoMaterial *tungsten = new GeoMaterial("Tungsten", 19.25*CLHEP::g/CLHEP::cm3); + GeoMaterial *tungsten = new GeoMaterial("Tungsten", 19.25*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); tungsten->add(const_cast<GeoElement*> (W),1.0); tungsten->lock(); m_MapMaterials.insert(std::pair<std::string,GeoMaterial*>(matName,tungsten)); @@ -162,14 +161,14 @@ void ForwardRegionGeoModelFactory::DefineMaterials() // GlidCop AL15 copper -- aproximate composition (trace impurities (< 0.01 wt. %) not included) // source: http://www-ferp.ucsd.edu/LIB/PROPS/compcu15.html matName = "GlidCopAL15"; - GeoMaterial *glidcop=new GeoMaterial("GlidCopAL15", 8.90*CLHEP::g/CLHEP::cm3); + GeoMaterial *glidcop=new GeoMaterial("GlidCopAL15", 8.90*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); double aCu, aAl, aO, aB, aTot; - aCu=99.7*Cu->getA()/(CLHEP::g/CLHEP::mole); - aAl=0.15*Al->getA()/(CLHEP::g/CLHEP::mole); - aO=0.13*O->getA()/(CLHEP::g/CLHEP::mole); - aB=0.02*B->getA()/(CLHEP::g/CLHEP::mole); + aCu=99.7*Cu->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + aAl=0.15*Al->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + aO=0.13*O->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + aB=0.02*B->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); aTot=aCu+aAl+aO+aB; glidcop->add(const_cast<GeoElement*> (Cu), aCu/aTot); @@ -181,20 +180,20 @@ void ForwardRegionGeoModelFactory::DefineMaterials() // Steel Grade 316L (Roman Pot) matName = "Steel"; - GeoMaterial *steel=new GeoMaterial("Steel", 8*CLHEP::g/CLHEP::cm3); + GeoMaterial *steel=new GeoMaterial("Steel", 8*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); double aC,aN,aSi,aP,aS,aCr,aMn,aFe,aNi,aMo,Atot; - aFe=62.045*Fe->getA()/(CLHEP::g/CLHEP::mole); - aC =0.03*C ->getA()/(CLHEP::g/CLHEP::mole); - aMn=2.0*Mn ->getA()/(CLHEP::g/CLHEP::mole); - aSi=0.75*Si->getA()/(CLHEP::g/CLHEP::mole); - aP =0.045*P->getA()/(CLHEP::g/CLHEP::mole); - aS =0.03*S ->getA()/(CLHEP::g/CLHEP::mole); - aCr=18.0*Cr->getA()/(CLHEP::g/CLHEP::mole); - aMo=3.0*Mo ->getA()/(CLHEP::g/CLHEP::mole); - aNi=14.0*Ni->getA()/(CLHEP::g/CLHEP::mole); - aN =0.10*N ->getA()/(CLHEP::g/CLHEP::mole); + aFe=62.045*Fe->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + aC =0.03*C ->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + aMn=2.0*Mn ->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + aSi=0.75*Si->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + aP =0.045*P->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + aS =0.03*S ->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + aCr=18.0*Cr->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + aMo=3.0*Mo ->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + aNi=14.0*Ni->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + aN =0.10*N ->getA()/(GeoModelKernelUnits::g/GeoModelKernelUnits::mole); Atot=aFe+aC+aMn+aSi+aP+aS+aCr+aMo+aNi+aN; steel->add(const_cast<GeoElement*> (Fe),aFe/Atot); @@ -264,8 +263,8 @@ void ForwardRegionGeoModelFactory::constructElements(GeoPhysVol *fwrPhys,std::ve double startX = pointMagStart[0]; double endX = pointMagEnd[0]; double rotationAngle = atan2(endX - startX,endZ - startZ); - double r = atof(loadedDataFile[i][xAperture].c_str())*CLHEP::mm/2; - double dL = abs(r*tan(rotationAngle))+0.2*CLHEP::mm; + double r = atof(loadedDataFile[i][xAperture].c_str())*GeoModelKernelUnits::mm/2; + double dL = abs(r*tan(rotationAngle))+0.2*GeoModelKernelUnits::mm; // move start and end points of the magnet element and neighbour elemens accordingly @@ -290,12 +289,12 @@ void ForwardRegionGeoModelFactory::constructElements(GeoPhysVol *fwrPhys,std::ve // --------------- elements cycle ----------------- for(int i=0; i < lDFSize; i++) { - startZ = atof(loadedDataFile[i][zStart].c_str())*CLHEP::m; - endZ = atof(loadedDataFile[i][zEnd].c_str())*CLHEP::m; - startX = atof(loadedDataFile[i][xStart].c_str())*CLHEP::m; - endX = atof(loadedDataFile[i][xEnd].c_str())*CLHEP::m; - startY = atof(loadedDataFile[i][yStart].c_str())*CLHEP::m; - endY = atof(loadedDataFile[i][yEnd].c_str())*CLHEP::m; + startZ = atof(loadedDataFile[i][zStart].c_str())*GeoModelKernelUnits::m; + endZ = atof(loadedDataFile[i][zEnd].c_str())*GeoModelKernelUnits::m; + startX = atof(loadedDataFile[i][xStart].c_str())*GeoModelKernelUnits::m; + endX = atof(loadedDataFile[i][xEnd].c_str())*GeoModelKernelUnits::m; + startY = atof(loadedDataFile[i][yStart].c_str())*GeoModelKernelUnits::m; + endY = atof(loadedDataFile[i][yEnd].c_str())*GeoModelKernelUnits::m; // translation of element x = (startX + endX)/2; @@ -309,10 +308,10 @@ void ForwardRegionGeoModelFactory::constructElements(GeoPhysVol *fwrPhys,std::ve // half-length of element halfL = sqrt((endX - startX)*(endX - startX) + (endZ - startZ)*(endZ - startZ))/2; - r = atof(loadedDataFile[i][xAperture].c_str())*CLHEP::mm/2; + r = atof(loadedDataFile[i][xAperture].c_str())*GeoModelKernelUnits::mm/2; // overlap correction - dL = abs(r*tan(rotationAngle))+0.2*CLHEP::mm; + dL = abs(r*tan(rotationAngle))+0.2*GeoModelKernelUnits::mm; // do not shorten magnetic volumes if(loadedDataFile[i][name].find("Mag") != std::string::npos) @@ -324,7 +323,7 @@ void ForwardRegionGeoModelFactory::constructElements(GeoPhysVol *fwrPhys,std::ve if(atoi(loadedDataFile[i][type].c_str()) == 0){ // envelope to allow tracking with G4TrackAction if(loadedDataFile[i][name] == "VCDBP.7R1.B"){ - GeoPhysVol* trackEnv = insertMagnetEnvelope(loadedDataFile[i][name], x, y, z, rotationAngle, 100*CLHEP::mm, halfL, dL, fwrPhys); + GeoPhysVol* trackEnv = insertMagnetEnvelope(loadedDataFile[i][name], x, y, z, rotationAngle, 100*GeoModelKernelUnits::mm, halfL, dL, fwrPhys); insertCircularElement(loadedDataFile[i][name], x, y, z, rotationAngle, atof(loadedDataFile[i][xAperture].c_str()), atof(loadedDataFile[i][yAperture].c_str()), halfL, dL, atof(loadedDataFile[i][tubeThickness].c_str()), trackEnv); } else @@ -351,20 +350,20 @@ void ForwardRegionGeoModelFactory::constructElements(GeoPhysVol *fwrPhys,std::ve // elliptical aperture if(atoi(loadedDataFile[i][type].c_str()) == 1) { - magEnv = insertMagnetEnvelope(loadedDataFile[i][name], x, y, z, rotationAngle, 20*CLHEP::cm, halfL, dL, fwrPhys); + magEnv = insertMagnetEnvelope(loadedDataFile[i][name], x, y, z, rotationAngle, 20*GeoModelKernelUnits::cm, halfL, dL, fwrPhys); insertEllipticalElement(loadedDataFile[i][name], x, y, z, rotationAngle, atof(loadedDataFile[i][xAperture].c_str()), atof(loadedDataFile[i][yAperture].c_str()), halfL, dL, atof(loadedDataFile[i][tubeThickness].c_str()), magEnv); } - double magDiam = 19.4*CLHEP::cm; + double magDiam = 19.4*GeoModelKernelUnits::cm; if(loadedDataFile[i][name].find("Mag") != std::string::npos) - magDiam= 19.4*CLHEP::cm; + magDiam= 19.4*GeoModelKernelUnits::cm; if(loadedDataFile[i][name] == "LQXAA.1R1MagQ1" || loadedDataFile[i][name] == "LQXAG.3R1MagQ3") - magDiam = 48*CLHEP::cm; + magDiam = 48*GeoModelKernelUnits::cm; if(loadedDataFile[i][name] == "LQXBA.2R1MagQ2a" || loadedDataFile[i][name] == "LQXBA.2R1MagQ2b") - magDiam = 52*CLHEP::cm; + magDiam = 52*GeoModelKernelUnits::cm; //else magDiam = std::max(atof(loadedDataFile[i][xAperture].c_str()), atof(loadedDataFile[i][yAperture].c_str()))+2*atof(loadedDataFile[i][tubeThickness].c_str()); - //else magDiam = 19.4*CLHEP::cm; + //else magDiam = 19.4*GeoModelKernelUnits::cm; // rectcircular aperture with flats in x if(atoi(loadedDataFile[i][type].c_str()) == 2) { @@ -398,37 +397,37 @@ void ForwardRegionGeoModelFactory::create(GeoPhysVol *world) double startZ,endZ; - if(m_Config.vp1Compatibility) startZ = 19.0*CLHEP::m; - else startZ = 22.0*CLHEP::m; - endZ = 268.904*CLHEP::m; + if(m_Config.vp1Compatibility) startZ = 19.0*GeoModelKernelUnits::m; + else startZ = 22.0*GeoModelKernelUnits::m; + endZ = 268.904*GeoModelKernelUnits::m; //rotationAngle_old = 0; // mother volume -- union of tubes, one for each side - //const GeoBox *fwrBox = new GeoBox(2*CLHEP::m,0.5*CLHEP::m,(endZ-startZ)/2); - const GeoTube *fwrTubeL = new GeoTube(0,2*CLHEP::m,(endZ-startZ)/2); - GeoTube *fwrTubeR = new GeoTube(0,2*CLHEP::m,(endZ-startZ)/2); - HepGeom::Transform3D shiftL = HepGeom::Translate3D(0,0,(endZ+startZ)/2); - HepGeom::Transform3D shiftR = HepGeom::Translate3D(0,0,-(endZ+startZ)/2); + //const GeoBox *fwrBox = new GeoBox(2*GeoModelKernelUnits::m,0.5*GeoModelKernelUnits::m,(endZ-startZ)/2); + const GeoTube *fwrTubeL = new GeoTube(0,2*GeoModelKernelUnits::m,(endZ-startZ)/2); + GeoTube *fwrTubeR = new GeoTube(0,2*GeoModelKernelUnits::m,(endZ-startZ)/2); + GeoTrf::Transform3D shiftL = GeoTrf::Translate3D(0,0,(endZ+startZ)/2); + GeoTrf::Transform3D shiftR = GeoTrf::Translate3D(0,0,-(endZ+startZ)/2); const GeoShapeShift& fwrTube0 = (*fwrTubeL)<<shiftL; const GeoShapeUnion& fwrTube1 = fwrTube0.add((*fwrTubeR)<<shiftR); // cut out slots for ALFA - const GeoTube *alfa = new GeoTube(0, 2*CLHEP::m, 500*CLHEP::mm); - HepGeom::Transform3D shiftAlfaL1 = HepGeom::Translate3D(0,0,237388*CLHEP::mm); - HepGeom::Transform3D shiftAlfaR1 = HepGeom::Translate3D(0,0,-237408*CLHEP::mm); - HepGeom::Transform3D shiftAlfaL2 = HepGeom::Translate3D(0,0,(m_Config.ALFAInNewPosition ? m_Config.newPosB7L1 : 241528*CLHEP::mm)); - HepGeom::Transform3D shiftAlfaR2 = HepGeom::Translate3D(0,0,(m_Config.ALFAInNewPosition ? m_Config.newPosB7R1 :-241548*CLHEP::mm)); + const GeoTube *alfa = new GeoTube(0, 2*GeoModelKernelUnits::m, 500*GeoModelKernelUnits::mm); + GeoTrf::Transform3D shiftAlfaL1 = GeoTrf::Translate3D(0,0,237388*GeoModelKernelUnits::mm); + GeoTrf::Transform3D shiftAlfaR1 = GeoTrf::Translate3D(0,0,-237408*GeoModelKernelUnits::mm); + GeoTrf::Transform3D shiftAlfaL2 = GeoTrf::Translate3D(0,0,(m_Config.ALFAInNewPosition ? m_Config.newPosB7L1 : 241528*GeoModelKernelUnits::mm)); + GeoTrf::Transform3D shiftAlfaR2 = GeoTrf::Translate3D(0,0,(m_Config.ALFAInNewPosition ? m_Config.newPosB7R1 :-241548*GeoModelKernelUnits::mm)); const GeoShapeSubtraction& fwrTube2 = fwrTube1.subtract((*alfa)<<shiftAlfaL1).subtract((*alfa)<<shiftAlfaL2).subtract((*alfa)<<shiftAlfaR1).subtract((*alfa)<<shiftAlfaR2); // cut out slots for AFP - const GeoTube *afp = new GeoTube(0, 2.5*CLHEP::m, 280*CLHEP::mm); - const GeoTube *afp2 = new GeoTube(0, 2.5*CLHEP::m, 580*CLHEP::mm); - HepGeom::Transform3D shiftAfpL1 = HepGeom::Translate3D(0,0,m_Config.posAFPL1); - HepGeom::Transform3D shiftAfpR1 = HepGeom::Translate3D(0,0,m_Config.posAFPR1); - HepGeom::Transform3D shiftAfpL2 = HepGeom::Translate3D(0,0,m_Config.posAFPL2); - HepGeom::Transform3D shiftAfpR2 = HepGeom::Translate3D(0,0,m_Config.posAFPR2); + const GeoTube *afp = new GeoTube(0, 2.5*GeoModelKernelUnits::m, 280*GeoModelKernelUnits::mm); + const GeoTube *afp2 = new GeoTube(0, 2.5*GeoModelKernelUnits::m, 580*GeoModelKernelUnits::mm); + GeoTrf::Transform3D shiftAfpL1 = GeoTrf::Translate3D(0,0,m_Config.posAFPL1); + GeoTrf::Transform3D shiftAfpR1 = GeoTrf::Translate3D(0,0,m_Config.posAFPR1); + GeoTrf::Transform3D shiftAfpL2 = GeoTrf::Translate3D(0,0,m_Config.posAFPL2); + GeoTrf::Transform3D shiftAfpR2 = GeoTrf::Translate3D(0,0,m_Config.posAFPR2); const GeoShapeSubtraction& fwrTube = fwrTube2.subtract((*afp)<<shiftAfpL1).subtract((*afp)<<shiftAfpR1).subtract((*afp2)<<shiftAfpL2).subtract((*afp2)<<shiftAfpR2); diff --git a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelTool.cxx b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelTool.cxx index daba635469dcb41ad227842185fb0a3972db8f7f..cd2494ced12ee55c80fd0439ae2a0094dca0ad2d 100755 --- a/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelTool.cxx +++ b/ForwardDetectors/ForwardSimulation/ForwardRegionGeoModel/src/ForwardRegionGeoModelTool.cxx @@ -10,6 +10,7 @@ #include "GaudiKernel/ISvcLocator.h" #include "GaudiKernel/MsgStream.h" #include "StoreGate/StoreGateSvc.h" +#include "GeoModelKernel/Units.h" /** ** Constructor(s) @@ -18,28 +19,28 @@ ForwardRegionGeoModelTool::ForwardRegionGeoModelTool( const std::string& type, c : GeoModelTool( type, name, parent ) { m_Config.clear(); - declareProperty("TCL4JawDistB1I",m_Config.TCL4JawDistB1I=57*CLHEP::mm); - declareProperty("TCL4JawDistB2I",m_Config.TCL4JawDistB2I=57*CLHEP::mm); - declareProperty("TCL5JawDistB1I",m_Config.TCL5JawDistB1I=57*CLHEP::mm); - declareProperty("TCL5JawDistB2I",m_Config.TCL5JawDistB2I=57*CLHEP::mm); - declareProperty("TCL6JawDistB1I",m_Config.TCL6JawDistB1I=57*CLHEP::mm); - declareProperty("TCL6JawDistB2I",m_Config.TCL6JawDistB2I=57*CLHEP::mm); - declareProperty("TCL4JawDistB1O",m_Config.TCL4JawDistB1O=57*CLHEP::mm); - declareProperty("TCL4JawDistB2O",m_Config.TCL4JawDistB2O=57*CLHEP::mm); - declareProperty("TCL5JawDistB1O",m_Config.TCL5JawDistB1O=57*CLHEP::mm); - declareProperty("TCL5JawDistB2O",m_Config.TCL5JawDistB2O=57*CLHEP::mm); - declareProperty("TCL6JawDistB1O",m_Config.TCL6JawDistB1O=57*CLHEP::mm); - declareProperty("TCL6JawDistB2O",m_Config.TCL6JawDistB2O=57*CLHEP::mm); + declareProperty("TCL4JawDistB1I",m_Config.TCL4JawDistB1I=57*GeoModelKernelUnits::mm); + declareProperty("TCL4JawDistB2I",m_Config.TCL4JawDistB2I=57*GeoModelKernelUnits::mm); + declareProperty("TCL5JawDistB1I",m_Config.TCL5JawDistB1I=57*GeoModelKernelUnits::mm); + declareProperty("TCL5JawDistB2I",m_Config.TCL5JawDistB2I=57*GeoModelKernelUnits::mm); + declareProperty("TCL6JawDistB1I",m_Config.TCL6JawDistB1I=57*GeoModelKernelUnits::mm); + declareProperty("TCL6JawDistB2I",m_Config.TCL6JawDistB2I=57*GeoModelKernelUnits::mm); + declareProperty("TCL4JawDistB1O",m_Config.TCL4JawDistB1O=57*GeoModelKernelUnits::mm); + declareProperty("TCL4JawDistB2O",m_Config.TCL4JawDistB2O=57*GeoModelKernelUnits::mm); + declareProperty("TCL5JawDistB1O",m_Config.TCL5JawDistB1O=57*GeoModelKernelUnits::mm); + declareProperty("TCL5JawDistB2O",m_Config.TCL5JawDistB2O=57*GeoModelKernelUnits::mm); + declareProperty("TCL6JawDistB1O",m_Config.TCL6JawDistB1O=57*GeoModelKernelUnits::mm); + declareProperty("TCL6JawDistB2O",m_Config.TCL6JawDistB2O=57*GeoModelKernelUnits::mm); declareProperty("vp1Compatibility", m_Config.vp1Compatibility=false); declareProperty("buildTCL4",m_Config.buildTCL4=false); declareProperty("buildTCL6",m_Config.buildTCL6=false); declareProperty("ALFAInNewPosition",m_Config.ALFAInNewPosition=false); - declareProperty("newPosB7L1",m_Config.newPosB7L1=245656.77*CLHEP::mm); - declareProperty("newPosB7R1",m_Config.newPosB7R1=-245656.11*CLHEP::mm); - declareProperty("posAFPL1",m_Config.posAFPL1=204500*CLHEP::mm); - declareProperty("posAFPR1",m_Config.posAFPR1=-204500*CLHEP::mm); - declareProperty("posAFPL2",m_Config.posAFPL2=212675*CLHEP::mm); - declareProperty("posAFPR2",m_Config.posAFPR2=-212675*CLHEP::mm); + declareProperty("newPosB7L1",m_Config.newPosB7L1=245656.77*GeoModelKernelUnits::mm); + declareProperty("newPosB7R1",m_Config.newPosB7R1=-245656.11*GeoModelKernelUnits::mm); + declareProperty("posAFPL1",m_Config.posAFPL1=204500*GeoModelKernelUnits::mm); + declareProperty("posAFPR1",m_Config.posAFPR1=-204500*GeoModelKernelUnits::mm); + declareProperty("posAFPL2",m_Config.posAFPL2=212675*GeoModelKernelUnits::mm); + declareProperty("posAFPR2",m_Config.posAFPR2=-212675*GeoModelKernelUnits::mm); } /** diff --git a/ForwardDetectors/LUCID/LUCID_GeoModel/CMakeLists.txt b/ForwardDetectors/LUCID/LUCID_GeoModel/CMakeLists.txt index 98759e89f8448d0100e1430897301422ffda632d..a15717f40dc593ff7f5f598f767df4f064e01bc1 100644 --- a/ForwardDetectors/LUCID/LUCID_GeoModel/CMakeLists.txt +++ b/ForwardDetectors/LUCID/LUCID_GeoModel/CMakeLists.txt @@ -7,7 +7,6 @@ atlas_subdir( LUCID_GeoModel ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities GaudiKernel PRIVATE @@ -19,20 +18,20 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( LUCID_GeoModelLib src/*.cxx PUBLIC_HEADERS LUCID_GeoModel - PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES GeoModelKernel GeoModelUtilities GaudiKernel StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} AthenaKernel SGTools ) + PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} + LINK_LIBRARIES ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} GeoModelUtilities GaudiKernel StoreGateLib SGtests + PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} AthenaKernel SGTools ) atlas_add_component( LUCID_GeoModel src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} GeoModelKernel GeoModelUtilities GaudiKernel AthenaKernel SGTools StoreGateLib SGtests LUCID_GeoModelLib ) + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} GeoModelUtilities GaudiKernel AthenaKernel SGTools StoreGateLib SGtests LUCID_GeoModelLib ) diff --git a/ForwardDetectors/LUCID/LUCID_GeoModel/src/GetRefIndex.cxx b/ForwardDetectors/LUCID/LUCID_GeoModel/src/GetRefIndex.cxx index f926c62af1d5870dc631c20676e25634530d0e17..518c44509c22c2582198e089bd5bf5d17fdb1e67 100644 --- a/ForwardDetectors/LUCID/LUCID_GeoModel/src/GetRefIndex.cxx +++ b/ForwardDetectors/LUCID/LUCID_GeoModel/src/GetRefIndex.cxx @@ -7,15 +7,16 @@ #include <iomanip> #include <math.h> -#include "CLHEP/Units/PhysicalConstants.h" -#include "CLHEP/Units/SystemOfUnits.h" +//#include "CLHEP/Units/PhysicalConstants.h" +//#include "CLHEP/Units/SystemOfUnits.h" #include "LUCID_DetectorFactory.h" #include "GetRefIndex.h" +#include "GeoModelKernel/Units.h" double GetRefIndexGas(double lambda, double pressure, double temperature) { - double e = 2.*M_PI*CLHEP::hbarc/(CLHEP::eV*CLHEP::nm)/lambda; + double e = 2.*M_PI*GeoModelKernelUnits::hbarc/(GeoModelKernelUnits::eV*GeoModelKernelUnits::nm)/lambda; double e0 = 17; double k = 0.25938; double x = k*pressure/temperature/(1 - pow(e/e0, 2)); @@ -28,7 +29,7 @@ double GetRefIndexQuartz(double lambda) { double const SellCoeu[] = {46.41, 228.71, 0.014}; double const SellCoed[] = {10.666, 18.125, 0.125}; - double e = 2.*M_PI*CLHEP::hbarc/(CLHEP::eV*CLHEP::nm)/lambda; + double e = 2.*M_PI*GeoModelKernelUnits::hbarc/(GeoModelKernelUnits::eV*GeoModelKernelUnits::nm)/lambda; double r = 1.; for(int i=0; i<3; i++) r += SellCoeu[i]/(SellCoed[i]*SellCoed[i] - e*e); diff --git a/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_DetectorFactory.cxx b/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_DetectorFactory.cxx index fc0384bf23bd3c9342c2342ee50ecca4580fb405..eaae2ee41532ee4af5d0838273a99618fa8263c8 100755 --- a/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_DetectorFactory.cxx +++ b/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_DetectorFactory.cxx @@ -15,6 +15,8 @@ #include "GeoModelKernel/GeoFullPhysVol.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "GeoModelUtilities/GeoExtendedMaterial.h" #include "GeoModelUtilities/GeoMaterialPropertiesTable.h" #include "GeoModelUtilities/GeoOpticalSurface.h" @@ -78,7 +80,7 @@ void LUCID_DetectorFactory::create(GeoPhysVol* world) { log << MSG::DEBUG << " Build LUCID side A " << endmsg; - GeoPcon* aShape = new GeoPcon(0, 360*CLHEP::deg); + GeoPcon* aShape = new GeoPcon(0, 360*GeoModelKernelUnits::deg); aShape->addPlane( 0, m_lp->coolingRadius, m_lp->VJconeRadiusFront); aShape->addPlane(m_lp->VJconelength, m_lp->coolingRadius, m_lp->VJconeRadiusBack); @@ -90,7 +92,7 @@ void LUCID_DetectorFactory::create(GeoPhysVol* world) { addCooling(phyVolA); addVessel (phyVolA); - world->add(new GeoAlignableTransform(HepGeom::Translate3D(0, 0, m_lp->VJdistanceToIP))); + world->add(new GeoAlignableTransform(GeoTrf::Translate3D(0, 0, m_lp->VJdistanceToIP))); world->add(new GeoNameTag("LucidSideA")); world->add(phyVolA); @@ -100,7 +102,7 @@ void LUCID_DetectorFactory::create(GeoPhysVol* world) { GeoFullPhysVol* phyVolC = phyVolA->clone(); - world->add(new GeoAlignableTransform(HepGeom::Translate3D(0, 0, -m_lp->VJdistanceToIP )*HepGeom::RotateY3D(180*CLHEP::degree)*HepGeom::RotateZ3D(180*CLHEP::degree))); + world->add(new GeoAlignableTransform(GeoTrf::Translate3D(0, 0, -m_lp->VJdistanceToIP )*GeoTrf::RotateY3D(180*GeoModelKernelUnits::degree)*GeoTrf::RotateZ3D(180*GeoModelKernelUnits::degree))); world->add(new GeoNameTag("LucidSideC")); world->add(phyVolC); @@ -121,7 +123,7 @@ void LUCID_DetectorFactory::buildMaterials() { m_alu = m_materialManager->getMaterial("std::Aluminium"); - log << MSG::DEBUG << " Aluminium density[g/cm3]: " << m_alu->getDensity()/(CLHEP::g/CLHEP::cm3) << endmsg; + log << MSG::DEBUG << " Aluminium density[g/cm3]: " << m_alu->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; log << MSG::DEBUG << " Build Cherenkov Gas " << endmsg; @@ -134,9 +136,9 @@ void LUCID_DetectorFactory::buildMaterials() { m_gas->add(const_cast<GeoElement*>(fluorine), 10*fluorine->getA()/(4*carbon->getA() + 10*fluorine->getA())); log << MSG::DEBUG << " gasState : " << m_gas->getState() << endmsg; - log << MSG::DEBUG << " gasTemperature[kelvin]: " << m_gas->getTemperature()/CLHEP::kelvin << endmsg; - log << MSG::DEBUG << " gasPressure [bar]: " << m_gas->getPressure()/CLHEP::bar << endmsg; - log << MSG::DEBUG << " gasDensity [g/cm3]: " << m_gas->getDensity()/(CLHEP::g/CLHEP::cm3) << endmsg; + log << MSG::DEBUG << " gasTemperature[kelvin]: " << m_gas->getTemperature()/GeoModelKernelUnits::kelvin << endmsg; + log << MSG::DEBUG << " gasPressure [bar]: " << m_gas->getPressure()/GeoModelKernelUnits::bar << endmsg; + log << MSG::DEBUG << " gasDensity [g/cm3]: " << m_gas->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; log << MSG::DEBUG << " Wavelength dependent properties " << endmsg; @@ -149,16 +151,16 @@ void LUCID_DetectorFactory::buildMaterials() { double* gasAbsLength = new double[waveLengthNum]; double* tubeReflectivity = new double[waveLengthNum]; - double absLengthScale = (m_lp->gasPressure) ? (m_lp->gasPressure/CLHEP::bar) : 1; + double absLengthScale = (m_lp->gasPressure) ? (m_lp->gasPressure/GeoModelKernelUnits::bar) : 1; for(int i=0; i<waveLengthNum; i++) { - photonWaveLength[i] = (m_lp->waveLengthMin + i*m_lp->waveLengthStep)*CLHEP::nm; - photonEnergy [i] = 2.*M_PI*(CLHEP::hbarc/(CLHEP::eV*CLHEP::nm))/(photonWaveLength[i]/CLHEP::nm)*CLHEP::eV; - quartzRefIndex [i] = GetRefIndexQuartz (photonWaveLength[i]/CLHEP::nm); - gasRefIndex [i] = GetRefIndexGas (photonWaveLength[i]/CLHEP::nm, m_lp->gasPressure/CLHEP::bar, m_lp->gasTemperature/CLHEP::kelvin); - gasAbsLength [i] = GetAbsLengthGas (photonWaveLength[i]/CLHEP::nm)*CLHEP::m/absLengthScale; - tubeReflectivity[i] = GetReflectivity (photonWaveLength[i]/CLHEP::nm); + photonWaveLength[i] = (m_lp->waveLengthMin + i*m_lp->waveLengthStep)*GeoModelKernelUnits::nm; + photonEnergy [i] = 2.*M_PI*(GeoModelKernelUnits::hbarc/(GeoModelKernelUnits::eV*GeoModelKernelUnits::nm))/(photonWaveLength[i]/GeoModelKernelUnits::nm)*GeoModelKernelUnits::eV; + quartzRefIndex [i] = GetRefIndexQuartz (photonWaveLength[i]/GeoModelKernelUnits::nm); + gasRefIndex [i] = GetRefIndexGas (photonWaveLength[i]/GeoModelKernelUnits::nm, m_lp->gasPressure/GeoModelKernelUnits::bar, m_lp->gasTemperature/GeoModelKernelUnits::kelvin); + gasAbsLength [i] = GetAbsLengthGas (photonWaveLength[i]/GeoModelKernelUnits::nm)*GeoModelKernelUnits::m/absLengthScale; + tubeReflectivity[i] = GetReflectivity (photonWaveLength[i]/GeoModelKernelUnits::nm); } log << MSG::DEBUG << " **************************************************************************************************** " << endmsg; @@ -167,11 +169,11 @@ void LUCID_DetectorFactory::buildMaterials() { for(int i=0; i<waveLengthNum; i++) { log << MSG::DEBUG - << std::setw(11) << photonWaveLength[i]/CLHEP::nm - << std::setw(11) << photonEnergy [i]/CLHEP::eV + << std::setw(11) << photonWaveLength[i]/GeoModelKernelUnits::nm + << std::setw(11) << photonEnergy [i]/GeoModelKernelUnits::eV << std::setw(13) << quartzRefIndex [i] << std::setw(10) << gasRefIndex [i] - << std::setw(16) << gasAbsLength [i]/CLHEP::m + << std::setw(16) << gasAbsLength [i]/GeoModelKernelUnits::m << std::setw(17) << tubeReflectivity[i] << endmsg; } @@ -190,7 +192,7 @@ void LUCID_DetectorFactory::buildMaterials() { log << MSG::DEBUG << " Build Quartz for PMT windows" << endmsg; - m_quartz = new GeoExtendedMaterial("SiO2", m_lp->quartzDensity, stateSolid, CLHEP::STP_Temperature); + m_quartz = new GeoExtendedMaterial("SiO2", m_lp->quartzDensity, stateSolid, GeoModelKernelUnits::STP_Temperature); const GeoElement* oxygen = m_materialManager->getElement("Oxygen"); const GeoElement* silicon = m_materialManager->getElement("Silicon"); @@ -211,7 +213,7 @@ void LUCID_DetectorFactory::buildMaterials() { m_cop = m_materialManager->getMaterial("std::Copper"); - log << MSG::DEBUG << " Copper density[g/cm3]: " << m_cop->getDensity()/(CLHEP::g/CLHEP::cm3) << endmsg; + log << MSG::DEBUG << " Copper density[g/cm3]: " << m_cop->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; log << MSG::DEBUG << " Build Reflective Tube Optical Surfaces " << endmsg; @@ -249,17 +251,17 @@ void LUCID_DetectorFactory::calcTubeParams() { for (int i=0; i<nLayers; i++) { - m_tubeTheta [i] = atan(layerRadius[i]/m_lp->distanceToIP)*CLHEP::rad; - tubePhiOffset[i] = (i==0)*M_PI/8*CLHEP::rad; + m_tubeTheta [i] = atan(layerRadius[i]/m_lp->distanceToIP)*GeoModelKernelUnits::rad; + tubePhiOffset[i] = (i==0)*M_PI/8*GeoModelKernelUnits::rad; for (int j=0; j<nPmtTubesPerLayer; j++) { - tubePhiAngle[i][j] = 2*M_PI*j/nPmtTubesPerLayer*CLHEP::rad + tubePhiOffset[i]; + tubePhiAngle[i][j] = 2*M_PI*j/nPmtTubesPerLayer*GeoModelKernelUnits::rad + tubePhiOffset[i]; - double tubeDistance = layerRadius[i] + m_lp->tubeLength/2*sin(m_tubeTheta[i]/CLHEP::rad); + double tubeDistance = layerRadius[i] + m_lp->tubeLength/2*sin(m_tubeTheta[i]/GeoModelKernelUnits::rad); - m_tubePosition[i][j][0] = tubeDistance*cos(tubePhiAngle[i][j]/CLHEP::rad); if (fabs(m_tubePosition[i][j][0]) < 1e-10) m_tubePosition[i][j][0] = 0; - m_tubePosition[i][j][1] = tubeDistance*sin(tubePhiAngle[i][j]/CLHEP::rad); if (fabs(m_tubePosition[i][j][1]) < 1e-10) m_tubePosition[i][j][1] = 0; + m_tubePosition[i][j][0] = tubeDistance*cos(tubePhiAngle[i][j]/GeoModelKernelUnits::rad); if (fabs(m_tubePosition[i][j][0]) < 1e-10) m_tubePosition[i][j][0] = 0; + m_tubePosition[i][j][1] = tubeDistance*sin(tubePhiAngle[i][j]/GeoModelKernelUnits::rad); if (fabs(m_tubePosition[i][j][1]) < 1e-10) m_tubePosition[i][j][1] = 0; } } @@ -274,13 +276,13 @@ void LUCID_DetectorFactory::calcTubeParams() { log << MSG::DEBUG << setiosflags(std::ios::right) << std::setw( 6) << lay << std::setw( 5) << tub - << std::setw(11) << m_lp->tubeRadius/CLHEP::mm - << std::setw(16) << layerRadius [lay]/CLHEP::mm - << std::setw(14) << m_tubeTheta [lay]/CLHEP::degree - << std::setw(19) << tubePhiOffset [lay]/CLHEP::degree - << std::setw(18) << tubePhiAngle [lay][tub]/CLHEP::degree - << std::setw(19) << m_tubePosition[lay][tub][0]/CLHEP::mm - << std::setw(18) << m_tubePosition[lay][tub][1]/CLHEP::mm + << std::setw(11) << m_lp->tubeRadius/GeoModelKernelUnits::mm + << std::setw(16) << layerRadius [lay]/GeoModelKernelUnits::mm + << std::setw(14) << m_tubeTheta [lay]/GeoModelKernelUnits::degree + << std::setw(19) << tubePhiOffset [lay]/GeoModelKernelUnits::degree + << std::setw(18) << tubePhiAngle [lay][tub]/GeoModelKernelUnits::degree + << std::setw(19) << m_tubePosition[lay][tub][0]/GeoModelKernelUnits::mm + << std::setw(18) << m_tubePosition[lay][tub][1]/GeoModelKernelUnits::mm << endmsg; log << MSG::DEBUG << " ********************************************************************************************************************************* " << endmsg; @@ -296,12 +298,12 @@ void LUCID_DetectorFactory::addVJcone(GeoFullPhysVol* parent) { m_lp->VJconeRadiusBack - m_lp->VJconeThickness, m_lp->VJconeRadiusFront, m_lp->VJconeRadiusBack, - (m_lp->VJconelength - (m_lp->VJconeFrontRingLength - m_lp->VJconeFrontRingOverlap))/2, 0*CLHEP::deg,360*CLHEP::deg); + (m_lp->VJconelength - (m_lp->VJconeFrontRingLength - m_lp->VJconeFrontRingOverlap))/2, 0*GeoModelKernelUnits::deg,360*GeoModelKernelUnits::deg); GeoLogVol* logVol0 = new GeoLogVol("lvVJcone", aShape0, m_alu); GeoPhysVol* phyVol0 = new GeoPhysVol(logVol0); - parent->add(new GeoTransform(HepGeom::TranslateZ3D((m_lp->VJconelength + (m_lp->VJconeFrontRingLength - m_lp->VJconeFrontRingOverlap))/2))); + parent->add(new GeoTransform(GeoTrf::TranslateZ3D((m_lp->VJconelength + (m_lp->VJconeFrontRingLength - m_lp->VJconeFrontRingOverlap))/2))); parent->add(new GeoNameTag("LucidVJcone")); parent->add(phyVol0); @@ -311,7 +313,7 @@ void LUCID_DetectorFactory::addVJcone(GeoFullPhysVol* parent) { GeoLogVol* logVol1 = new GeoLogVol("lvVJconeFrontRing", aShape1, m_alu); GeoPhysVol* phyVol1 = new GeoPhysVol(logVol1); - parent->add(new GeoTransform(HepGeom::TranslateZ3D(m_lp->VJconeFrontRingLength/2))); + parent->add(new GeoTransform(GeoTrf::TranslateZ3D(m_lp->VJconeFrontRingLength/2))); parent->add(new GeoNameTag("LucidVJconeFrontRing")); parent->add(phyVol1); } @@ -326,7 +328,7 @@ void LUCID_DetectorFactory::addCooling(GeoFullPhysVol* parent) { GeoLogVol* logVol = new GeoLogVol("lvCooling", aShape, m_cop); GeoPhysVol* phyVol = new GeoPhysVol(logVol); - parent->add(new GeoTransform(HepGeom::Translate3D(0, 0, m_lp->vesselLength/2 + (m_lp->distanceToIP - m_lp->VJdistanceToIP)))); + parent->add(new GeoTransform(GeoTrf::Translate3D(0, 0, m_lp->vesselLength/2 + (m_lp->distanceToIP - m_lp->VJdistanceToIP)))); parent->add(new GeoNameTag("LucidCooling")); parent->add(phyVol); } @@ -336,7 +338,7 @@ void LUCID_DetectorFactory::addVessel(GeoFullPhysVol* parent) { MsgStream log(Athena::getMessageSvc(), "LUCID_DetectorFactory::addVessel"); log << MSG::INFO << " LUCID_DetectorFactory::addVessel " << endmsg; - GeoPcon* aShape = new GeoPcon(0, 360*CLHEP::deg); + GeoPcon* aShape = new GeoPcon(0, 360*GeoModelKernelUnits::deg); aShape->addPlane( 0, m_lp->vesselInnerRadius, m_lp->vesselOuterRadMin + m_lp->vesselOuterThickness); aShape->addPlane(m_lp->vesselLength, m_lp->vesselInnerRadius, m_lp->vesselOuterRadMax + m_lp->vesselOuterThickness); @@ -347,7 +349,7 @@ void LUCID_DetectorFactory::addVessel(GeoFullPhysVol* parent) { addVesselGas(phyVol); - parent->add(new GeoAlignableTransform(HepGeom::Translate3D(0, 0, m_lp->distanceToIP - m_lp->VJdistanceToIP ))); + parent->add(new GeoAlignableTransform(GeoTrf::Translate3D(0, 0, m_lp->distanceToIP - m_lp->VJdistanceToIP ))); parent->add(new GeoNameTag("LucidVessel")); parent->add(phyVol); } @@ -358,7 +360,7 @@ void LUCID_DetectorFactory::addVesselGas(GeoPhysVol* parent) { log << MSG::INFO << " LUCID_DetectorFactory::addVesselGas " << endmsg; - GeoPcon* aShape = new GeoPcon(0, 360*CLHEP::deg); + GeoPcon* aShape = new GeoPcon(0, 360*GeoModelKernelUnits::deg); aShape->addPlane( 0, m_lp->vesselInnerRadius + m_lp->vesselInnerThickness, m_lp->vesselOuterRadMin); aShape->addPlane(m_lp->vesselLength, m_lp->vesselInnerRadius + m_lp->vesselInnerThickness, m_lp->vesselOuterRadMax); @@ -382,7 +384,7 @@ void LUCID_DetectorFactory::addBulkHeads(GeoPhysVol* parent) { GeoLogVol* logVol0 = new GeoLogVol("lvBulkHead0", aShape0, m_alu); GeoPhysVol* phyVol0 = new GeoPhysVol(logVol0); - parent->add(new GeoTransform(HepGeom::Translate3D(0, 0, m_lp->bulkheadThickness/2))); + parent->add(new GeoTransform(GeoTrf::Translate3D(0, 0, m_lp->bulkheadThickness/2))); parent->add(new GeoNameTag("LucidBulkHead0")); parent->add(phyVol0); @@ -390,7 +392,7 @@ void LUCID_DetectorFactory::addBulkHeads(GeoPhysVol* parent) { GeoLogVol* logVol1 = new GeoLogVol("lvBulkHead1", aShape1, m_alu); GeoPhysVol* phyVol1 = new GeoPhysVol(logVol1); - parent->add(new GeoTransform(HepGeom::Translate3D(0, 0, m_lp->vesselLength - m_lp->bulkheadThickness/2))); + parent->add(new GeoTransform(GeoTrf::Translate3D(0, 0, m_lp->vesselLength - m_lp->bulkheadThickness/2))); parent->add(new GeoNameTag("LucidBulkHead1")); parent->add(phyVol1); } @@ -428,30 +430,31 @@ void LUCID_DetectorFactory::addTubes(GeoPhysVol* parent) { double x = m_tubePosition[lay][tub][0]; double y = m_tubePosition[lay][tub][1]; - + double r = sqrt(x*x+y*y); + char sname[256]; log << MSG::DEBUG << " Add PMT as daugther of the TubeGas " << endmsg; sprintf(sname, "LucidPmt%d", tubeNumber); phyVol2->add(new GeoNameTag (sname)); - phyVol2->add(new GeoTransform(HepGeom::Translate3D(0, 0, (m_lp->tubeLength - m_lp->pmtThickness)/2))); + phyVol2->add(new GeoTransform(GeoTrf::Translate3D(0, 0, (m_lp->tubeLength - m_lp->pmtThickness)/2))); phyVol2->add(phyVol3); log << MSG::DEBUG << " Add Alluminium Tube as daugther of the VesselGas " << endmsg; sprintf(sname, "LucidTube%d", tubeNumber); parent->add(new GeoNameTag (sname)); - parent->add(new GeoTransform(HepGeom::Rotate3D (m_tubeTheta[lay], CLHEP::Hep3Vector(-y, x, 0)))); - parent->add(new GeoTransform(HepGeom::Translate3D(x, y, m_lp->vesselLength/2 + (m_lp->vesselLength - m_lp->tubeLength)/2 - m_lp->bulkheadThickness))); + parent->add(new GeoTransform(GeoTrf::Rotate3D (m_tubeTheta[lay],GeoTrf:: Vector3D(-y/r, x/r, 0)))); + parent->add(new GeoTransform(GeoTrf::Translate3D(x, y, m_lp->vesselLength/2 + (m_lp->vesselLength - m_lp->tubeLength)/2 - m_lp->bulkheadThickness))); parent->add(phyVol1); log << MSG::DEBUG << " Add TubeGas as daugther of the VesselGas " << endmsg; sprintf(sname, "LucidTubeGas%d", tubeNumber); parent->add(new GeoNameTag (sname)); - parent->add(new GeoTransform(HepGeom::Rotate3D (m_tubeTheta[lay], CLHEP::Hep3Vector(-y, x, 0)))); - parent->add(new GeoTransform(HepGeom::Translate3D(x, y, m_lp->vesselLength/2 + (m_lp->vesselLength - m_lp->tubeLength)/2 - m_lp->bulkheadThickness))); + parent->add(new GeoTransform(GeoTrf::Rotate3D (m_tubeTheta[lay], GeoTrf::Vector3D(-y/r, x/r, 0)))); + parent->add(new GeoTransform(GeoTrf::Translate3D(x, y, m_lp->vesselLength/2 + (m_lp->vesselLength - m_lp->tubeLength)/2 - m_lp->bulkheadThickness))); parent->add(phyVol2); log << MSG::DEBUG << " Add the Optical Surface between Gas and Tube physica volumes " << endmsg; @@ -479,6 +482,7 @@ void LUCID_DetectorFactory::addTubes(GeoPhysVol* parent) { log << MSG::DEBUG << " Set Fiber-Readout Tubes on Inner layer at 45 degrees " << endmsg; x = y = r*cos(M_PI/4); + double r1 = sqrt(x*x + y*y); if (tubeNumber==17 || tubeNumber==18) x = -x; if (tubeNumber==18 || tubeNumber==19) y = -y; @@ -489,23 +493,23 @@ void LUCID_DetectorFactory::addTubes(GeoPhysVol* parent) { sprintf(sname, "LucidPmt%d", tubeNumber); phyVol2->add(new GeoNameTag (sname)); - phyVol2->add(new GeoTransform(HepGeom::Translate3D(0, 0, (m_lp->tubeLength - m_lp->pmtThickness)/2))); + phyVol2->add(new GeoTransform(GeoTrf::Translate3D(0, 0, (m_lp->tubeLength - m_lp->pmtThickness)/2))); phyVol2->add(phyVol3); log << MSG::DEBUG << " Add Alluminium Tube as daugther of the VesselGas " << endmsg; sprintf(sname, "LucidTube%d", tubeNumber); parent->add(new GeoNameTag (sname)); - parent->add(new GeoTransform(HepGeom::Rotate3D (m_tubeTheta[0], CLHEP::Hep3Vector(-y, x, 0)))); - parent->add(new GeoTransform(HepGeom::Translate3D(x, y, m_lp->vesselLength/2 + (m_lp->vesselLength - m_lp->tubeLength)/2 - m_lp->bulkheadThickness))); + parent->add(new GeoTransform(GeoTrf::Rotate3D (m_tubeTheta[0], GeoTrf::Vector3D(-y/r1, x/r1, 0)))); + parent->add(new GeoTransform(GeoTrf::Translate3D(x, y, m_lp->vesselLength/2 + (m_lp->vesselLength - m_lp->tubeLength)/2 - m_lp->bulkheadThickness))); parent->add(phyVol1); log << MSG::DEBUG << " Add TubeGas as daugther of the VesselGas " << endmsg; sprintf(sname, "LucidTubeGas%d", tubeNumber); parent->add(new GeoNameTag (sname)); - parent->add(new GeoTransform(HepGeom::Rotate3D (m_tubeTheta[0], CLHEP::Hep3Vector(-y, x, 0)))); - parent->add(new GeoTransform(HepGeom::Translate3D(x, y, m_lp->vesselLength/2 + (m_lp->vesselLength - m_lp->tubeLength )/2 - m_lp->bulkheadThickness))); + parent->add(new GeoTransform(GeoTrf::Rotate3D (m_tubeTheta[0], GeoTrf::Vector3D(-y/r1, x/r1, 0)))); + parent->add(new GeoTransform(GeoTrf::Translate3D(x, y, m_lp->vesselLength/2 + (m_lp->vesselLength - m_lp->tubeLength )/2 - m_lp->bulkheadThickness))); parent->add(phyVol2); log << MSG::DEBUG << " Add the Optical Surface between Gas and Tube physica volumes " << endmsg; diff --git a/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_RDBAaccess.cxx b/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_RDBAaccess.cxx index 9942f3f901e81ee5b7cbe8872ee97558415c31ac..f301f728917299e459d18fb1f494a54d1e88e4ad 100755 --- a/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_RDBAaccess.cxx +++ b/ForwardDetectors/LUCID/LUCID_GeoModel/src/LUCID_RDBAaccess.cxx @@ -4,7 +4,8 @@ #include "LUCID_RDBAaccess.h" -#include "CLHEP/Units/SystemOfUnits.h" +//#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include "GeoModelUtilities/DecodeVersionKey.h" #include "RDBAccessSvc/IRDBAccessSvc.h" @@ -72,34 +73,34 @@ void LUCID_RDBAccess::SetParameters() { for(AccessSvc_iter = m_lucidParams->begin(); AccessSvc_iter != m_lucidParams->end(); AccessSvc_iter++) { - distanceToIP = (*AccessSvc_iter)->getDouble("DISTANCETOIP")*CLHEP::mm; - VJdistanceToIP = (*AccessSvc_iter)->getDouble("VJDISTANCETOIP")*CLHEP::mm; - VJconelength = (*AccessSvc_iter)->getDouble("VJCONELENGTH")*CLHEP::mm; - VJconeRadiusFront = (*AccessSvc_iter)->getDouble("VJCONERADIUSFRONT")*CLHEP::mm; - VJconeRadiusBack = (*AccessSvc_iter)->getDouble("VJCONERADIUSBACK")*CLHEP::mm; - VJconeThickness = (*AccessSvc_iter)->getDouble("VJCONETHICKNESS")*CLHEP::mm; - VJconeFrontRingThickness = (*AccessSvc_iter)->getDouble("VJCONEFRONTRINGTHICKNESS")*CLHEP::mm; - VJconeFrontRingLength = (*AccessSvc_iter)->getDouble("VJCONEFRONTRINGLENGTH")*CLHEP::mm; - VJconeFrontRingOverlap = (*AccessSvc_iter)->getDouble("VJCONEFRONTRINGOVERLAP")*CLHEP::mm; - vesselInnerRadius = (*AccessSvc_iter)->getDouble("VESSELINNERRADIUS")*CLHEP::mm; - vesselInnerThickness = (*AccessSvc_iter)->getDouble("VESSELINNERTHICKNESS")*CLHEP::mm; - vesselOuterRadMin = (*AccessSvc_iter)->getDouble("VESSELOUTERRADMIN")*CLHEP::mm + 3*CLHEP::mm; - vesselOuterRadMax = (*AccessSvc_iter)->getDouble("VESSELOUTERRADMAX")*CLHEP::mm + 3*CLHEP::mm; - vesselOuterThickness = (*AccessSvc_iter)->getDouble("VESSELOUTERTHICKNESS")*CLHEP::mm; - vesselLength = (*AccessSvc_iter)->getDouble("VESSELLENGTH")*CLHEP::mm; - bulkheadThickness = (*AccessSvc_iter)->getDouble("BULKHEADTHICKNESS")*CLHEP::mm; - coolingRadius = (*AccessSvc_iter)->getDouble("COOLINGRADIUS")*CLHEP::mm; - coolingThickness = (*AccessSvc_iter)->getDouble("COOLINGTHICKNESS")*CLHEP::mm; - layerRadius1 = (*AccessSvc_iter)->getDouble("LAYERRADIUS1")*CLHEP::mm; - layerRadius2 = (*AccessSvc_iter)->getDouble("LAYERRADIUS2")*CLHEP::mm; - tubeRadius = (*AccessSvc_iter)->getDouble("TUBERADIUS")*CLHEP::mm; - tubeThickness = (*AccessSvc_iter)->getDouble("TUBETHICKNESS")*CLHEP::mm; - tubeLength = (*AccessSvc_iter)->getDouble("TUBELENGTH")*CLHEP::mm; - pmtThickness = (*AccessSvc_iter)->getDouble("PMTTHICKNESS")*CLHEP::mm; - gasPressure = (*AccessSvc_iter)->getDouble("GASPRESSURE")*CLHEP::bar; - gasDensity = (*AccessSvc_iter)->getDouble("GASDENSITY")*CLHEP::gram/CLHEP::cm3; - gasTemperature = (*AccessSvc_iter)->getDouble("GASTEMPERATURE")*CLHEP::kelvin; - quartzDensity = (*AccessSvc_iter)->getDouble("QUARTZDENSITY")*CLHEP::gram/CLHEP::cm3; + distanceToIP = (*AccessSvc_iter)->getDouble("DISTANCETOIP")*GeoModelKernelUnits::mm; + VJdistanceToIP = (*AccessSvc_iter)->getDouble("VJDISTANCETOIP")*GeoModelKernelUnits::mm; + VJconelength = (*AccessSvc_iter)->getDouble("VJCONELENGTH")*GeoModelKernelUnits::mm; + VJconeRadiusFront = (*AccessSvc_iter)->getDouble("VJCONERADIUSFRONT")*GeoModelKernelUnits::mm; + VJconeRadiusBack = (*AccessSvc_iter)->getDouble("VJCONERADIUSBACK")*GeoModelKernelUnits::mm; + VJconeThickness = (*AccessSvc_iter)->getDouble("VJCONETHICKNESS")*GeoModelKernelUnits::mm; + VJconeFrontRingThickness = (*AccessSvc_iter)->getDouble("VJCONEFRONTRINGTHICKNESS")*GeoModelKernelUnits::mm; + VJconeFrontRingLength = (*AccessSvc_iter)->getDouble("VJCONEFRONTRINGLENGTH")*GeoModelKernelUnits::mm; + VJconeFrontRingOverlap = (*AccessSvc_iter)->getDouble("VJCONEFRONTRINGOVERLAP")*GeoModelKernelUnits::mm; + vesselInnerRadius = (*AccessSvc_iter)->getDouble("VESSELINNERRADIUS")*GeoModelKernelUnits::mm; + vesselInnerThickness = (*AccessSvc_iter)->getDouble("VESSELINNERTHICKNESS")*GeoModelKernelUnits::mm; + vesselOuterRadMin = (*AccessSvc_iter)->getDouble("VESSELOUTERRADMIN")*GeoModelKernelUnits::mm + 3*GeoModelKernelUnits::mm; + vesselOuterRadMax = (*AccessSvc_iter)->getDouble("VESSELOUTERRADMAX")*GeoModelKernelUnits::mm + 3*GeoModelKernelUnits::mm; + vesselOuterThickness = (*AccessSvc_iter)->getDouble("VESSELOUTERTHICKNESS")*GeoModelKernelUnits::mm; + vesselLength = (*AccessSvc_iter)->getDouble("VESSELLENGTH")*GeoModelKernelUnits::mm; + bulkheadThickness = (*AccessSvc_iter)->getDouble("BULKHEADTHICKNESS")*GeoModelKernelUnits::mm; + coolingRadius = (*AccessSvc_iter)->getDouble("COOLINGRADIUS")*GeoModelKernelUnits::mm; + coolingThickness = (*AccessSvc_iter)->getDouble("COOLINGTHICKNESS")*GeoModelKernelUnits::mm; + layerRadius1 = (*AccessSvc_iter)->getDouble("LAYERRADIUS1")*GeoModelKernelUnits::mm; + layerRadius2 = (*AccessSvc_iter)->getDouble("LAYERRADIUS2")*GeoModelKernelUnits::mm; + tubeRadius = (*AccessSvc_iter)->getDouble("TUBERADIUS")*GeoModelKernelUnits::mm; + tubeThickness = (*AccessSvc_iter)->getDouble("TUBETHICKNESS")*GeoModelKernelUnits::mm; + tubeLength = (*AccessSvc_iter)->getDouble("TUBELENGTH")*GeoModelKernelUnits::mm; + pmtThickness = (*AccessSvc_iter)->getDouble("PMTTHICKNESS")*GeoModelKernelUnits::mm; + gasPressure = (*AccessSvc_iter)->getDouble("GASPRESSURE")*GeoModelKernelUnits::bar; + gasDensity = (*AccessSvc_iter)->getDouble("GASDENSITY")*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3; + gasTemperature = (*AccessSvc_iter)->getDouble("GASTEMPERATURE")*GeoModelKernelUnits::kelvin; + quartzDensity = (*AccessSvc_iter)->getDouble("QUARTZDENSITY")*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3; tubePolish = (*AccessSvc_iter)->getDouble("TUBEPOLISH"); waveLengthStep = (*AccessSvc_iter)->getDouble("WAVELENGTHSTEP"); waveLengthMin = (*AccessSvc_iter)->getDouble("WAVELENGTHMIN"); @@ -111,26 +112,26 @@ void LUCID_RDBAccess::Print() { MsgStream log(Athena::getMessageSvc(), "LUCID_GeoModel::LUCID_RDBAaccess"); - log << MSG::DEBUG << " distanceToIP [mm]: " << distanceToIP/CLHEP::mm << endmsg; - log << MSG::DEBUG << " vesselInnerRadius [mm]: " << vesselInnerRadius/CLHEP::mm << endmsg; - log << MSG::DEBUG << " vesselInnerThickness [mm]: " << vesselInnerThickness/CLHEP::mm << endmsg; - log << MSG::DEBUG << " vesselOuterRadMin [mm]: " << vesselOuterRadMin /CLHEP::mm << endmsg; - log << MSG::DEBUG << " vesselOuterRadMax [mm]: " << vesselOuterRadMax/CLHEP::mm << endmsg; - log << MSG::DEBUG << " vesselOuterThickness [mm]: " << vesselOuterThickness/CLHEP::mm << endmsg; - log << MSG::DEBUG << " vesselLength [mm]: " << vesselLength /CLHEP::mm << endmsg; - log << MSG::DEBUG << " bulkheadThickness [mm]: " << bulkheadThickness/CLHEP::mm << endmsg; - log << MSG::DEBUG << " coolingRadius [mm]: " << coolingRadius/CLHEP::mm << endmsg; - log << MSG::DEBUG << " coolingThickness [mm]: " << coolingThickness/CLHEP::mm << endmsg; - log << MSG::DEBUG << " layerRadius1 [mm]: " << layerRadius1/CLHEP::mm << endmsg; - log << MSG::DEBUG << " layerRadius2 [mm]: " << layerRadius2/CLHEP::mm << endmsg; - log << MSG::DEBUG << " tubeRadius [mm]: " << tubeRadius/CLHEP::mm << endmsg; - log << MSG::DEBUG << " tubeThickness [mm]: " << tubeThickness/CLHEP::mm << endmsg; - log << MSG::DEBUG << " tubeLength [mm]: " << tubeLength/CLHEP::mm << endmsg; - log << MSG::DEBUG << " pmtThickness [mm]: " << pmtThickness/CLHEP::mm << endmsg; - log << MSG::DEBUG << " gasPressure [bar]: " << gasPressure/CLHEP::bar << endmsg; - log << MSG::DEBUG << " gasDensity [g/cm3]: " << gasDensity/(CLHEP::gram/CLHEP::cm3) << endmsg; - log << MSG::DEBUG << " gasTempearture [kelvin]: " << gasTemperature/CLHEP::kelvin << endmsg; - log << MSG::DEBUG << " quartzDensity [g/cm3]: " << quartzDensity/(CLHEP::gram/CLHEP::cm3) << endmsg; + log << MSG::DEBUG << " distanceToIP [mm]: " << distanceToIP/GeoModelKernelUnits::mm << endmsg; + log << MSG::DEBUG << " vesselInnerRadius [mm]: " << vesselInnerRadius/GeoModelKernelUnits::mm << endmsg; + log << MSG::DEBUG << " vesselInnerThickness [mm]: " << vesselInnerThickness/GeoModelKernelUnits::mm << endmsg; + log << MSG::DEBUG << " vesselOuterRadMin [mm]: " << vesselOuterRadMin /GeoModelKernelUnits::mm << endmsg; + log << MSG::DEBUG << " vesselOuterRadMax [mm]: " << vesselOuterRadMax/GeoModelKernelUnits::mm << endmsg; + log << MSG::DEBUG << " vesselOuterThickness [mm]: " << vesselOuterThickness/GeoModelKernelUnits::mm << endmsg; + log << MSG::DEBUG << " vesselLength [mm]: " << vesselLength /GeoModelKernelUnits::mm << endmsg; + log << MSG::DEBUG << " bulkheadThickness [mm]: " << bulkheadThickness/GeoModelKernelUnits::mm << endmsg; + log << MSG::DEBUG << " coolingRadius [mm]: " << coolingRadius/GeoModelKernelUnits::mm << endmsg; + log << MSG::DEBUG << " coolingThickness [mm]: " << coolingThickness/GeoModelKernelUnits::mm << endmsg; + log << MSG::DEBUG << " layerRadius1 [mm]: " << layerRadius1/GeoModelKernelUnits::mm << endmsg; + log << MSG::DEBUG << " layerRadius2 [mm]: " << layerRadius2/GeoModelKernelUnits::mm << endmsg; + log << MSG::DEBUG << " tubeRadius [mm]: " << tubeRadius/GeoModelKernelUnits::mm << endmsg; + log << MSG::DEBUG << " tubeThickness [mm]: " << tubeThickness/GeoModelKernelUnits::mm << endmsg; + log << MSG::DEBUG << " tubeLength [mm]: " << tubeLength/GeoModelKernelUnits::mm << endmsg; + log << MSG::DEBUG << " pmtThickness [mm]: " << pmtThickness/GeoModelKernelUnits::mm << endmsg; + log << MSG::DEBUG << " gasPressure [bar]: " << gasPressure/GeoModelKernelUnits::bar << endmsg; + log << MSG::DEBUG << " gasDensity [g/cm3]: " << gasDensity/(GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3) << endmsg; + log << MSG::DEBUG << " gasTempearture [kelvin]: " << gasTemperature/GeoModelKernelUnits::kelvin << endmsg; + log << MSG::DEBUG << " quartzDensity [g/cm3]: " << quartzDensity/(GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3) << endmsg; log << MSG::DEBUG << " tubePolish : " << tubePolish << endmsg; log << MSG::DEBUG << " waveLengthStep : " << waveLengthStep << endmsg; log << MSG::DEBUG << " waveLengthMin : " << waveLengthMin << endmsg; diff --git a/ForwardDetectors/ZDC/ZDC_GeoM/CMakeLists.txt b/ForwardDetectors/ZDC/ZDC_GeoM/CMakeLists.txt index 8cd8f0f156b46b10d4005a4a685c4db6f3b10a80..0bdd429f7059adc37fbdcefc4a8c9900aed748b2 100644 --- a/ForwardDetectors/ZDC/ZDC_GeoM/CMakeLists.txt +++ b/ForwardDetectors/ZDC/ZDC_GeoM/CMakeLists.txt @@ -8,21 +8,24 @@ atlas_subdir( ZDC_GeoM ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities PRIVATE Control/StoreGate DetectorDescription/GeoModel/GeoModelInterfaces GaudiKernel ) +# External dependencies: +find_package( GeoModel ) + + # Component(s) in the package: atlas_add_library( ZDC_GeoMLib src/*.cxx PUBLIC_HEADERS ZDC_GeoM - LINK_LIBRARIES AthenaKernel GeoModelKernel GeoModelUtilities StoreGateLib SGtests + LINK_LIBRARIES ${GEOMODEL_LIBRARIES} AthenaKernel GeoModelUtilities StoreGateLib SGtests PRIVATE_LINK_LIBRARIES GaudiKernel ) atlas_add_component( ZDC_GeoM src/components/*.cxx - LINK_LIBRARIES AthenaKernel GeoModelKernel GeoModelUtilities StoreGateLib SGtests GaudiKernel ZDC_GeoMLib ) + LINK_LIBRARIES ${GEOMODEL_LIBRARIES} AthenaKernel GeoModelUtilities StoreGateLib SGtests GaudiKernel ZDC_GeoMLib ) diff --git a/ForwardDetectors/ZDC/ZDC_GeoM/src/ZDC_DetFactory.cxx b/ForwardDetectors/ZDC/ZDC_GeoM/src/ZDC_DetFactory.cxx index 547e1939b1e29f95b8c600bd8be1ef91cd54b2de..89a9a75de05c2371e2503ee76198ebc0c441e128 100644 --- a/ForwardDetectors/ZDC/ZDC_GeoM/src/ZDC_DetFactory.cxx +++ b/ForwardDetectors/ZDC/ZDC_GeoM/src/ZDC_DetFactory.cxx @@ -18,6 +18,8 @@ #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoSerialTransformer.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -34,7 +36,7 @@ //I have assumed that the cavity is 1016mm (4*4=16mm larger than the one in the above webpage) //Ionization chamber material is air currently -using namespace Genfun; +using namespace GeoGenfun; using namespace GeoXF; ZDC_DetFactory::ZDC_DetFactory(StoreGateSvc* detStore) : m_detectorManager(NULL) , m_detectorStore(detStore) {} @@ -53,27 +55,27 @@ void ZDC_DetFactory::create(GeoPhysVol* world) const GeoMaterial* air = materialManager->getMaterial("std::Air"); - GeoElement* Oxygen = new GeoElement ("Oxygen" ,"O" , 8.0 , 16.0*CLHEP::g/CLHEP::mole); - GeoElement* Sillicon = new GeoElement ("Sillicon","Si" , 14.0 , 28.085*CLHEP::g/CLHEP::mole); - GeoElement* Tung = new GeoElement ("Tungsten","W" , 74.0 , 183.84*CLHEP::g/CLHEP::mole); - GeoElement* Iron = new GeoElement ("Iron" ,"Fe" , 26.0 , 55.845 *CLHEP::g/CLHEP::mole); - GeoElement* Carbon = new GeoElement ("Carbon" ,"C" , 6.0 , 12.0107*CLHEP::g/CLHEP::mole); - GeoElement* Nickel = new GeoElement ("Nickel" ,"Ni" , 28.0 , 58.6934*CLHEP::g/CLHEP::mole); + GeoElement* Oxygen = new GeoElement ("Oxygen" ,"O" , 8.0 , 16.0*GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + GeoElement* Sillicon = new GeoElement ("Sillicon","Si" , 14.0 , 28.085*GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + GeoElement* Tung = new GeoElement ("Tungsten","W" , 74.0 , 183.84*GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + GeoElement* Iron = new GeoElement ("Iron" ,"Fe" , 26.0 , 55.845 *GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + GeoElement* Carbon = new GeoElement ("Carbon" ,"C" , 6.0 , 12.0107*GeoModelKernelUnits::g/GeoModelKernelUnits::mole); + GeoElement* Nickel = new GeoElement ("Nickel" ,"Ni" , 28.0 , 58.6934*GeoModelKernelUnits::g/GeoModelKernelUnits::mole); - GeoMaterial* Quartz = new GeoMaterial("Quartz",2.20*CLHEP::gram/CLHEP::cm3); + GeoMaterial* Quartz = new GeoMaterial("Quartz",2.20*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); Quartz->add(Sillicon,0.467); Quartz->add(Oxygen,0.533); Quartz->lock(); // Absorber composition: savannah.cern.ch/task/download.php?file_id=22925 - GeoMaterial* Tungsten = new GeoMaterial("Tungsten",18.155*CLHEP::g/CLHEP::cm3); + GeoMaterial* Tungsten = new GeoMaterial("Tungsten",18.155*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); Tungsten->add(Tung, 0.948); Tungsten->add(Nickel, 0.037); Tungsten->add(Iron, 0.015); Tungsten->lock(); - GeoMaterial* Steel = new GeoMaterial("Steel", 7.9*CLHEP::gram/CLHEP::cm3); + GeoMaterial* Steel = new GeoMaterial("Steel", 7.9*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); Steel->add(Iron , 0.98); Steel->add(Carbon, 0.02); Steel->lock(); @@ -82,11 +84,11 @@ void ZDC_DetFactory::create(GeoPhysVol* world) //List of shapes and logical volumes //https://atlasop.cern.ch/atlas-point1/twiki/pub/Main/ZDCOperationManualShifter/zdc_layout.png - GeoBox* Envelope_Box = new GeoBox (10.0*CLHEP::cm/2.0 ,20.0*CLHEP::cm/2.0 ,100.0*CLHEP::cm/2.0); - GeoBox* Module_Box = new GeoBox ( 9.0*CLHEP::cm/2.0 ,18.0*CLHEP::cm/2.0 , 13.4*CLHEP::cm/2.0); - GeoBox* Steel_Plate_Box = new GeoBox ( 9.0*CLHEP::cm/2.0 ,18.0*CLHEP::cm/2.0 , 1.0*CLHEP::cm/2.0); - GeoTube* Pixel_Tube = new GeoTube( 0.0*CLHEP::mm , 1.0*CLHEP::mm/2.0 , 13.4*CLHEP::cm/2.0); - GeoTube* Strip_Tube = new GeoTube( 0.0*CLHEP::mm , 1.5*CLHEP::mm/2.0 , 18.0*CLHEP::cm/2.0); + GeoBox* Envelope_Box = new GeoBox (10.0*GeoModelKernelUnits::cm/2.0 ,20.0*GeoModelKernelUnits::cm/2.0 ,100.0*GeoModelKernelUnits::cm/2.0); + GeoBox* Module_Box = new GeoBox ( 9.0*GeoModelKernelUnits::cm/2.0 ,18.0*GeoModelKernelUnits::cm/2.0 , 13.4*GeoModelKernelUnits::cm/2.0); + GeoBox* Steel_Plate_Box = new GeoBox ( 9.0*GeoModelKernelUnits::cm/2.0 ,18.0*GeoModelKernelUnits::cm/2.0 , 1.0*GeoModelKernelUnits::cm/2.0); + GeoTube* Pixel_Tube = new GeoTube( 0.0*GeoModelKernelUnits::mm , 1.0*GeoModelKernelUnits::mm/2.0 , 13.4*GeoModelKernelUnits::cm/2.0); + GeoTube* Strip_Tube = new GeoTube( 0.0*GeoModelKernelUnits::mm , 1.5*GeoModelKernelUnits::mm/2.0 , 18.0*GeoModelKernelUnits::cm/2.0); GeoLogVol* Envelope_Logical = new GeoLogVol("Envelope_Logical" ,Envelope_Box ,air); GeoLogVol* Steel_Plate_Logical = new GeoLogVol("Steel_Plate_Logical",Steel_Plate_Box ,Steel); @@ -122,8 +124,8 @@ void ZDC_DetFactory::create(GeoPhysVol* world) GeoIdentifierTag* Pixel_ID = new GeoIdentifierTag( 11000+L1*8+K1); GeoFullPhysVol* Pixel_Physical = new GeoFullPhysVol(Pixel_Logical); - ShiftX = new GeoAlignableTransform(HepGeom::TranslateX3D((4.5-K)*CLHEP::cm)); - ShiftY = new GeoAlignableTransform(HepGeom::TranslateY3D((4.5-L)*CLHEP::cm)); + ShiftX = new GeoAlignableTransform(GeoTrf::TranslateX3D((4.5-K)*GeoModelKernelUnits::cm)); + ShiftY = new GeoAlignableTransform(GeoTrf::TranslateY3D((4.5-L)*GeoModelKernelUnits::cm)); Module_Physical[0][0]->add(Pixel_ID); Module_Physical[0][0]->add(ShiftX); @@ -149,8 +151,8 @@ void ZDC_DetFactory::create(GeoPhysVol* world) GeoIdentifierTag* Pixel_ID = new GeoIdentifierTag( I*10000+2000+ Pix_id); GeoFullPhysVol* Pixel_Physical = new GeoFullPhysVol(Pixel_Logical); - ShiftX = new GeoAlignableTransform(HepGeom::TranslateX3D( (4.5-K)*CLHEP::cm )); - ShiftY = new GeoAlignableTransform(HepGeom::TranslateY3D( (5.5-L)*CLHEP::cm )); + ShiftX = new GeoAlignableTransform(GeoTrf::TranslateX3D( (4.5-K)*GeoModelKernelUnits::cm )); + ShiftY = new GeoAlignableTransform(GeoTrf::TranslateY3D( (5.5-L)*GeoModelKernelUnits::cm )); Module_Physical[I-1][1]->add(Pixel_ID); Module_Physical[I-1][1]->add(ShiftX); @@ -169,9 +171,9 @@ void ZDC_DetFactory::create(GeoPhysVol* world) GeoFullPhysVol* Strip_Physical = new GeoFullPhysVol (Strip_Logical); GeoIdentifierTag* Strip_ID = new GeoIdentifierTag(I*10000+J*1000+K*12+L*10+M); - RotateX = new GeoAlignableTransform(HepGeom::RotateX3D (90*CLHEP::deg)); - ShiftX = new GeoAlignableTransform(HepGeom::TranslateX3D((L-5.5)*CLHEP::cm + (M-0.75)*1.5*CLHEP::mm +0.75*CLHEP::mm)); - ShiftZ = new GeoAlignableTransform(HepGeom::TranslateZ3D((K*1.2 - 7.8)*CLHEP::cm)); + RotateX = new GeoAlignableTransform(GeoTrf::RotateX3D (90*GeoModelKernelUnits::deg)); + ShiftX = new GeoAlignableTransform(GeoTrf::TranslateX3D((L-5.5)*GeoModelKernelUnits::cm + (M-0.75)*1.5*GeoModelKernelUnits::mm +0.75*GeoModelKernelUnits::mm)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((K*1.2 - 7.8)*GeoModelKernelUnits::cm)); Module_Physical[I-1][J-1]->add(Strip_ID); Module_Physical[I-1][J-1]->add(ShiftZ); @@ -194,9 +196,9 @@ void ZDC_DetFactory::create(GeoPhysVol* world) GeoFullPhysVol* Strip_Physical = new GeoFullPhysVol(Strip_Logical); GeoIdentifierTag* Strip_ID = new GeoIdentifierTag(I*10000 + J*1000 + K*12 + L*10 + M); - RotateX = new GeoAlignableTransform(HepGeom::RotateX3D (90*CLHEP::deg)); - ShiftX = new GeoAlignableTransform(HepGeom::TranslateX3D((L-5.5)*CLHEP::cm + (M-0.75)*1.5*CLHEP::mm + 0.75*CLHEP::mm)); - ShiftZ = new GeoAlignableTransform(HepGeom::TranslateZ3D((K*1.2-7.8)*CLHEP::cm )); + RotateX = new GeoAlignableTransform(GeoTrf::RotateX3D (90*GeoModelKernelUnits::deg)); + ShiftX = new GeoAlignableTransform(GeoTrf::TranslateX3D((L-5.5)*GeoModelKernelUnits::cm + (M-0.75)*1.5*GeoModelKernelUnits::mm + 0.75*GeoModelKernelUnits::mm)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((K*1.2-7.8)*GeoModelKernelUnits::cm )); Module_Physical[I-1][J-1]->add(Strip_ID); Module_Physical[I-1][J-1]->add(ShiftZ); @@ -226,13 +228,13 @@ void ZDC_DetFactory::create(GeoPhysVol* world) Envelope_Physical[I] = new GeoFullPhysVol(Envelope_Logical); Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical); - ShiftZ = new GeoAlignableTransform(HepGeom::TranslateZ3D((-47.2 + 0.5)*CLHEP::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 0.5)*GeoModelKernelUnits::cm*sgn)); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Steel_Plate_Physical); Vol_Name = "EM_XY"; Vol_Name = Vol_Name + Vol_Name_append; - ShiftZ = new GeoAlignableTransform(HepGeom::TranslateZ3D ((-47.2 + 1 + 6.7)*CLHEP::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D ((-47.2 + 1 + 6.7)*GeoModelKernelUnits::cm*sgn)); tag = new GeoNameTag(Vol_Name.c_str()); Envelope_Physical[I]->add(tag); @@ -240,58 +242,58 @@ void ZDC_DetFactory::create(GeoPhysVol* world) Envelope_Physical[I]->add(Module_Physical[I][0]); Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical); - ShiftZ = new GeoAlignableTransform(HepGeom::TranslateZ3D((-47.2 + 1 + 13.4 +.5)*CLHEP::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 +.5)*GeoModelKernelUnits::cm*sgn)); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Steel_Plate_Physical); Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical); - ShiftZ = new GeoAlignableTransform(HepGeom::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + .5)*CLHEP::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + .5)*GeoModelKernelUnits::cm*sgn)); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Steel_Plate_Physical); Vol_Name = "HM_XY"; Vol_Name = Vol_Name + Vol_Name_append; - ShiftZ = new GeoAlignableTransform(HepGeom::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 6.7)*CLHEP::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 6.7)*GeoModelKernelUnits::cm*sgn)); tag = new GeoNameTag(Vol_Name.c_str()); Envelope_Physical[I]->add(tag); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Module_Physical[I][1]); Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical); - ShiftZ = new GeoAlignableTransform(HepGeom::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + .5)*CLHEP::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + .5)*GeoModelKernelUnits::cm*sgn)); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Steel_Plate_Physical); Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical); - ShiftZ = new GeoAlignableTransform(HepGeom::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 +.5)*CLHEP::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 +.5)*GeoModelKernelUnits::cm*sgn)); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Steel_Plate_Physical); Vol_Name = "HM_01"; Vol_Name = Vol_Name + Vol_Name_append; - ShiftZ = new GeoAlignableTransform(HepGeom::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 6.7)*CLHEP::cm*sgn )); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 6.7)*GeoModelKernelUnits::cm*sgn )); tag = new GeoNameTag(Vol_Name.c_str()); Envelope_Physical[I]->add(tag); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Module_Physical[I][2]); Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical); - ShiftZ = new GeoAlignableTransform(HepGeom::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + .5)*CLHEP::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + .5)*GeoModelKernelUnits::cm*sgn)); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Steel_Plate_Physical); Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical); - ShiftZ = new GeoAlignableTransform(HepGeom::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + 1 + .5)*CLHEP::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + 1 + .5)*GeoModelKernelUnits::cm*sgn)); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Steel_Plate_Physical); Vol_Name = "HM_02"; Vol_Name = Vol_Name + Vol_Name_append; - ShiftZ = new GeoAlignableTransform(HepGeom::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + 1 + 1 + 6.7)*CLHEP::cm*sgn )); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + 1 + 1 + 6.7)*GeoModelKernelUnits::cm*sgn )); tag = new GeoNameTag(Vol_Name.c_str()); Envelope_Physical[I]->add(tag); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Module_Physical[I][3]); Steel_Plate_Physical = new GeoFullPhysVol(Steel_Plate_Logical); - ShiftZ = new GeoAlignableTransform(HepGeom::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + 1 + 1 + 13.4 + .5)*CLHEP::cm*sgn)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D((-47.2 + 1 + 13.4 + 1 + 6 + 10 + 1 + 13.4 + 1 + 3 + 1 + 13.4 + 1 + 1 + 13.4 + .5)*GeoModelKernelUnits::cm*sgn)); Envelope_Physical[I]->add(ShiftZ); Envelope_Physical[I]->add(Steel_Plate_Physical); } @@ -303,7 +305,7 @@ void ZDC_DetFactory::create(GeoPhysVol* world) world->add(tag); - ShiftZ = new GeoAlignableTransform(HepGeom::TranslateZ3D(-141.580*CLHEP::m)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D(-141.580*GeoModelKernelUnits::m)); world->add(ShiftZ); world->add(Envelope_Physical[0]); @@ -318,7 +320,7 @@ void ZDC_DetFactory::create(GeoPhysVol* world) world->add(tag); - ShiftZ = new GeoAlignableTransform(HepGeom::TranslateZ3D(141.580 *CLHEP::m)); + ShiftZ = new GeoAlignableTransform(GeoTrf::TranslateZ3D(141.580 *GeoModelKernelUnits::m)); world->add(ShiftZ); world->add(Envelope_Physical[1]); diff --git a/Generators/GeneratorFilters/GeneratorFilters/VBFMjjIntervalFilter.h b/Generators/GeneratorFilters/GeneratorFilters/VBFMjjIntervalFilter.h index d321064c0340716e2d20bda266e98b0e4a088ab3..54dc51fe82f97522e97435c8b79e55530da78646 100644 --- a/Generators/GeneratorFilters/GeneratorFilters/VBFMjjIntervalFilter.h +++ b/Generators/GeneratorFilters/GeneratorFilters/VBFMjjIntervalFilter.h @@ -7,6 +7,7 @@ #include "GeneratorModules/GenFilter.h" #include "xAODJet/JetContainer.h" +#include "CLHEP/Vector/LorentzVector.h" class IAtRndmGenSvc; diff --git a/Generators/GeneratorFilters/src/HTFilter.cxx b/Generators/GeneratorFilters/src/HTFilter.cxx index e332acfde8f37126cb24bceda17ee0d63a2b4436..cda6a1ac76fff6b42234a9eb15df9f9c02efc9bd 100644 --- a/Generators/GeneratorFilters/src/HTFilter.cxx +++ b/Generators/GeneratorFilters/src/HTFilter.cxx @@ -20,6 +20,7 @@ #include "HepMC/GenEvent.h" // #include "GeneratorObjects/McEventCollection.h" #include "TruthUtils/HepMCHelpers.h" +#include "CLHEP/Units/SystemOfUnits.h" //-------------------------------------------------------------------------- diff --git a/Generators/GeneratorFilters/src/VBFMjjIntervalFilter.cxx b/Generators/GeneratorFilters/src/VBFMjjIntervalFilter.cxx index 2b167dfcdbebc420d019aadb2407e8e6d6c570d1..830c25e8a37b2a15141cb3316eca2c78d9705481 100644 --- a/Generators/GeneratorFilters/src/VBFMjjIntervalFilter.cxx +++ b/Generators/GeneratorFilters/src/VBFMjjIntervalFilter.cxx @@ -8,6 +8,7 @@ #include "StoreGate/DataHandle.h" #include "AthenaKernel/IAtRndmGenSvc.h" // For random numbers... #include "CLHEP/Random/RandomEngine.h" +#include "CLHEP/Units/SystemOfUnits.h" #include "EventInfo/EventInfo.h" // For setting the weight #include "EventInfo/EventType.h" // From event info - the real holder of the event weight diff --git a/InnerDetector/InDetAlignAlgs/InDetAlignGenAlgs/src/InDetAlignCog.cxx b/InnerDetector/InDetAlignAlgs/InDetAlignGenAlgs/src/InDetAlignCog.cxx index b756a435613f86559a1c9a1fb0c1160d7def486e..26a534e47dda089c31ec144a427062f10de09289 100644 --- a/InnerDetector/InDetAlignAlgs/InDetAlignGenAlgs/src/InDetAlignCog.cxx +++ b/InnerDetector/InDetAlignAlgs/InDetAlignGenAlgs/src/InDetAlignCog.cxx @@ -601,7 +601,7 @@ StatusCode InDetAlignCog::getTRT_Elements(bool cog_already_calculated, InDetAlig // Get Default Transform (of module in barrel, layer in endcap) - const Amg::Transform3D defTransform = Amg::CLHEPTransformToEigen( element->defTransform() ); + const Amg::Transform3D defTransform = element->defTransform(); ATH_MSG_VERBOSE("defTransform 2 3" << " " << bec << " " << phi_module << " " << layer_wheel << " " << straw_layer << " " << printTransform(defTransform)); diff --git a/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignFillTrack.cxx b/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignFillTrack.cxx index 1cf0a0aa793f6be091023aa2207d46e85c6fdff4..121aa2ed1749837fedfac122aa11a85cdab15d56 100644 --- a/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignFillTrack.cxx +++ b/InnerDetector/InDetAlignTools/InDetAlignGenTools/src/InDetAlignFillTrack.cxx @@ -40,6 +40,8 @@ #include "TrkToolInterfaces/ITrackSummaryTool.h" #include "TrkEventPrimitives/FitQuality.h" #include "CLHEP/GenericFunctions/CumulativeChiSquare.hh" +#include "CLHEP/Geometry/Point3D.h" +#include "CLHEP/Units/SystemOfUnits.h" #include "InDetAlignGenTools/InDetAlignFillTrack.h" #include "HepPDT/ParticleDataTable.hh" diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/CMakeLists.txt b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/CMakeLists.txt index 0eb8a5e0b91ad06bb04d6425f66d1c8f81e7a9fc..92013e6daa384bb493069b37a5a9873127d259a9 100644 --- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/CMakeLists.txt +++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/CMakeLists.txt @@ -28,7 +28,6 @@ atlas_depends_on_subdirs( InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry InnerDetector/InDetDetDescr/PixelCabling - InnerDetector/InDetDetDescr/PixelGeoModel Tools/PathResolver) # External dependencies: @@ -53,7 +52,7 @@ atlas_add_component( PixelConditionsAlgorithms ${CLHEP_LIBRARIES} AthenaBaseComps AthenaKernel AthenaPoolUtilities GaudiKernel PixelConditionsData SGTools StoreGateLib CoralDB GeoModelUtilities Identifier InDetIdentifier InDetReadoutGeometry - PixelGeoModelLib PixelCablingLib PixelConditionsAlgorithmsLib PathResolver ) + PixelCablingLib PixelConditionsAlgorithmsLib PathResolver ) # Install files from the package: #atlas_install_joboptions( share/*.py ) diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/CMakeLists.txt b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/CMakeLists.txt index 0f54ba381fea3ec32039513ddbd46774f36322a9..45a5d999e45bb6dced16ff214c9d159491804ab1 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/CMakeLists.txt +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/CMakeLists.txt @@ -14,6 +14,7 @@ atlas_depends_on_subdirs( PUBLIC DetectorDescription/Identifier DetectorDescription/DetDescrCond/DetDescrConditions DetectorDescription/GeoModel/GeoModelUtilities + DetectorDescription/GeoPrimitives GaudiKernel InnerDetector/InDetConditions/InDetConditionsSummaryService InnerDetector/InDetConditions/SCT_ConditionsData diff --git a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DetectorElementCondAlg.h b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DetectorElementCondAlg.h index d2d814a0268c923165f3e0c956d3d0aa2989d972..07c81ceb9ba2d1eef5c3015943896f70e5f5a5ca 100644 --- a/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DetectorElementCondAlg.h +++ b/InnerDetector/InDetConditions/SCT_ConditionsAlgorithms/src/SCT_DetectorElementCondAlg.h @@ -7,6 +7,7 @@ #include "AthenaBaseComps/AthAlgorithm.h" +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelUtilities/GeoAlignmentStore.h" #include "InDetReadoutGeometry/SiCommonItems.h" #include "InDetReadoutGeometry/SiDetectorElementCollection.h" diff --git a/InnerDetector/InDetDetDescr/BCM_GeoModel/CMakeLists.txt b/InnerDetector/InDetDetDescr/BCM_GeoModel/CMakeLists.txt index b02017798ff881931d645afa2e91cf0b32c41784..7c5cd7aadb89b94c87a1a9cb3c57d861032bcaef 100644 --- a/InnerDetector/InDetDetDescr/BCM_GeoModel/CMakeLists.txt +++ b/InnerDetector/InDetDetDescr/BCM_GeoModel/CMakeLists.txt @@ -10,7 +10,6 @@ atlas_depends_on_subdirs( PUBLIC Control/AthenaBaseComps Control/AthenaKernel DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel GaudiKernel PRIVATE Database/RDBAccessSvc @@ -19,13 +18,15 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( BCM_GeoModel src/*.cxx src/components/*.cxx INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} AthenaBaseComps AthenaKernel GeoModelKernel GaudiKernel GeoModelUtilities ) + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaBaseComps AthenaKernel GaudiKernel GeoModelUtilities ) # Install files from the package: atlas_install_headers( BCM_GeoModel ) diff --git a/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Builder.cxx b/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Builder.cxx index c2da53e0d19aae7acf09e5f46ed3070ee685bc70..79e8b6c9197f772d381929aace14e2fc86679d83 100755 --- a/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Builder.cxx +++ b/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Builder.cxx @@ -231,14 +231,13 @@ StatusCode InDetDD::BCM_Builder::build(GeoVPhysVol* pv) BCM_ModuleParameters* parameters = manager->Module(i); //setting transformation - CLHEP::Hep3Vector pos(parameters->Position_X(), parameters->Position_Y(), parameters->Position_Z()); - CLHEP::HepRotation rm; - rm.rotateY(-90.*CLHEP::deg); - rm.rotateZ(-90.*CLHEP::deg); - rm.rotateX(parameters->Rotation_X()*CLHEP::deg); - rm.rotateY(parameters->Rotation_Y()*CLHEP::deg); - rm.rotateZ(parameters->Rotation_Z()*CLHEP::deg); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(rm,pos)); + GeoTrf::Translation3D pos(parameters->Position_X(), parameters->Position_Y(), parameters->Position_Z()); + GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(parameters->Rotation_Z()*GeoModelKernelUnits::deg) + * GeoTrf::RotateY3D(parameters->Rotation_Y()*GeoModelKernelUnits::deg) + * GeoTrf::RotateX3D(parameters->Rotation_X()*GeoModelKernelUnits::deg) + * GeoTrf::RotateZ3D(-90.*GeoModelKernelUnits::deg) + * GeoTrf::RotateY3D(-90.*GeoModelKernelUnits::deg); + GeoTransform* xform = new GeoTransform(GeoTrf::Transform3D(pos*rm)); xform->ref(); ATH_MSG_DEBUG(" --> Module " << i << " build!"); diff --git a/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Module.cxx b/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Module.cxx index 646fd13aab785cd9113cce021d331f22eccecf8a..28ba6043a842d80a786f7e053d317705e62c63ab 100755 --- a/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Module.cxx +++ b/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Module.cxx @@ -109,10 +109,9 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul //wall C GeoPhysVol* WallC = wall.Build(ModLength/2, ReducedModWidth/2, G10Thick, CuThick, g10, copper, mat_mgr); - CLHEP::Hep3Vector WallCPos(ModHeight/2 - WallThick/2, 0, 0); - CLHEP::HepRotation rmC; - rmC.rotateY(90.*CLHEP::deg); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(rmC,WallCPos)); + GeoTrf::Translation3D WallCPos(ModHeight/2 - WallThick/2, 0, 0); + GeoTrf::RotateY3D rmC(90.*GeoModelKernelUnits::deg); + GeoTransform* xform = new GeoTransform(GeoTrf::Transform3D(WallCPos*rmC)); GeoNameTag* tag = new GeoNameTag("Wall C"); env_bcmModPhys->add(tag); env_bcmModPhys->add(xform); @@ -121,9 +120,8 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul //wall D GeoPhysVol* WallD = wall.Build((ModTailHeight - WallThick - MainWallThick)/2, ReducedModWidth/2, CuThick, G10Thick, copper, g10, mat_mgr); - CLHEP::Hep3Vector WallDPos(ModHeight/2 - WallThick - (ModTailHeight - WallThick - MainWallThick)/2, 0, WallThick/2 - ModLength/2); - CLHEP::HepRotation rmD; - xform = new GeoTransform(HepGeom::Transform3D(rmD,WallDPos)); + GeoTrf::Translate3D WallDPos(ModHeight/2 - WallThick - (ModTailHeight - WallThick - MainWallThick)/2, 0, WallThick/2 - ModLength/2); + xform = new GeoTransform(WallDPos); tag = new GeoNameTag("Wall D"); env_bcmModPhys->add(tag); env_bcmModPhys->add(xform); @@ -132,8 +130,8 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul //wall H GeoPhysVol* WallH = wall.Build((ModTailHeight - WallThick - MainWallThick)/2, ReducedModWidth/2, LamelCuThick, LamelG10Thick, LamelCuThick, copper, g10, copper, mat_mgr); - CLHEP::Hep3Vector WallHPos(ModHeight/2 -WallThick - (ModTailHeight - WallThick - MainWallThick)/2, 0, ModLength/2 - LamelHoffset); - xform = new GeoTransform(HepGeom::Transform3D(rmD,WallHPos)); + GeoTrf::Translate3D WallHPos(ModHeight/2 -WallThick - (ModTailHeight - WallThick - MainWallThick)/2, 0, ModLength/2 - LamelHoffset); + xform = new GeoTransform(WallHPos); tag = new GeoNameTag("Wall H"); env_bcmModPhys->add(tag); env_bcmModPhys->add(xform); @@ -142,8 +140,8 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul //wall J GeoPhysVol* WallJ = wall.Build((ModTailHeight - WallThick - MainWallThick - MainWallBackCuThick)/2, ReducedModWidth/2, LamelCuThick, LamelG10Thick, LamelCuThick, copper, g10, copper, mat_mgr); - CLHEP::Hep3Vector WallJPos(ModHeight/2 -WallThick - (ModTailHeight - WallThick - MainWallThick - MainWallBackCuThick)/2, 0, ModLength/2 - LamelJoffset); - xform = new GeoTransform(HepGeom::Transform3D(rmD,WallJPos)); + GeoTrf::Translate3D WallJPos(ModHeight/2 -WallThick - (ModTailHeight - WallThick - MainWallThick - MainWallBackCuThick)/2, 0, ModLength/2 - LamelJoffset); + xform = new GeoTransform(WallJPos); tag = new GeoNameTag("Wall J"); env_bcmModPhys->add(tag); env_bcmModPhys->add(xform); @@ -152,8 +150,8 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul //wall E //if changing thickness of E one must also change length and position of MainWall and wallK (extra copper) GeoPhysVol* WallE = wall.Build(ModHeight/2 - WallThick, ReducedModWidth/2, parameters->BackWallThickness(), CuThick, g10, copper, mat_mgr); - CLHEP::Hep3Vector WallEPos(0, 0,ModLength/2 - (parameters->BackWallThickness()+CuThick)/2); - xform = new GeoTransform(HepGeom::Transform3D(rmD,WallEPos)); + GeoTrf::Translate3D WallEPos(0, 0,ModLength/2 - (parameters->BackWallThickness()+CuThick)/2); + xform = new GeoTransform(WallEPos); tag = new GeoNameTag("Wall E"); env_bcmModPhys->add(tag); env_bcmModPhys->add(xform); @@ -163,8 +161,8 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul double heightI = ModHeight - ModTailHeight - WallThick; GeoPhysVol* WallI = wall.Build(heightI/2, ReducedModWidth/2, LamelG10Thick, "bcmWallLog", g10); - CLHEP::Hep3Vector WallIPos(WallThick + heightI/2 - ModHeight/2, 0, ModLength/2 - LamelIoffset); - xform = new GeoTransform(HepGeom::Transform3D(rmD,WallIPos)); + GeoTrf::Translate3D WallIPos(WallThick + heightI/2 - ModHeight/2, 0, ModLength/2 - LamelIoffset); + xform = new GeoTransform(WallIPos); tag = new GeoNameTag("Wall I"); env_bcmModPhys->add(tag); env_bcmModPhys->add(xform); @@ -173,8 +171,8 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul //wall F GeoPhysVol* WallF = wall.Build(heightI/2, ReducedModWidth/2, CuThick, G10Thick, copper, g10, mat_mgr); - CLHEP::Hep3Vector WallFPos(WallThick + heightI/2 - ModHeight/2, 0, ModLength/2 - ModHeadLength + WallThick/2); - xform = new GeoTransform(HepGeom::Transform3D(rmD,WallFPos)); + GeoTrf::Translate3D WallFPos(WallThick + heightI/2 - ModHeight/2, 0, ModLength/2 - ModHeadLength + WallThick/2); + xform = new GeoTransform(WallFPos); tag = new GeoNameTag("Wall F"); env_bcmModPhys->add(tag); env_bcmModPhys->add(xform); @@ -183,8 +181,8 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul //wall G GeoPhysVol* WallG = wall.Build(ModHeadLength/2, ReducedModWidth/2, CuThick, G10Thick, copper, g10, mat_mgr); - CLHEP::Hep3Vector WallGPos(WallThick/2 - ModHeight/2, 0, ModLength/2 - ModHeadLength/2); - xform = new GeoTransform(HepGeom::Transform3D(rmC,WallGPos)); + GeoTrf::Translation3D WallGPos(WallThick/2 - ModHeight/2, 0, ModLength/2 - ModHeadLength/2); + xform = new GeoTransform(GeoTrf::Transform3D(WallGPos*rmC)); tag = new GeoNameTag("Wall G"); env_bcmModPhys->add(tag); env_bcmModPhys->add(xform); @@ -193,8 +191,8 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul //main wall GeoPhysVol* WallMain = wall.Build((ModLength - parameters->BackWallThickness() - CuThick)/2, ReducedModWidth/2, MainWallCuThick, MainWallG10Thick, copper, g10, mat_mgr); - CLHEP::Hep3Vector WallMainPos(ModHeight/2 + MainWallThick/2 - ModTailHeight, 0, -(parameters->BackWallThickness() + CuThick)/2); - xform = new GeoTransform(HepGeom::Transform3D(rmC,WallMainPos)); + GeoTrf::Translation3D WallMainPos(ModHeight/2 + MainWallThick/2 - ModTailHeight, 0, -(parameters->BackWallThickness() + CuThick)/2); + xform = new GeoTransform(GeoTrf::Transform3D(WallMainPos*rmC)); tag = new GeoNameTag("Wall Main"); env_bcmModPhys->add(tag); env_bcmModPhys->add(xform); @@ -205,8 +203,8 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul double lengthK = LamelHoffset - LamelHThick/2 - (parameters->BackWallThickness() + CuThick); GeoPhysVol* WallK = wall.Build(lengthK/2, ReducedModWidth/2, CuThick, "bcmWallLog",copper); - CLHEP::Hep3Vector WallKPos(ModHeight/2 + MainWallThick + CuThick/2 - ModTailHeight, 0, ModLength/2 - lengthK/2 - (parameters->BackWallThickness() + CuThick)); - xform = new GeoTransform(HepGeom::Transform3D(rmC,WallKPos)); + GeoTrf::Translation3D WallKPos(ModHeight/2 + MainWallThick + CuThick/2 - ModTailHeight, 0, ModLength/2 - lengthK/2 - (parameters->BackWallThickness() + CuThick)); + xform = new GeoTransform(GeoTrf::Transform3D(WallKPos*rmC)); tag = new GeoNameTag("Wall extra cupper"); env_bcmModPhys->add(tag); env_bcmModPhys->add(xform); @@ -216,8 +214,8 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul GeoPhysVol* DiamondVolA = wall.Build(diamondSize/2, diamondSize/2, diamondThick, "bcmDiamondLog", diamond); double diamond_x = ModHeight/2 + MainWallThick + diamondThick/2 - ModTailHeight; - CLHEP::Hep3Vector DiamondPosA(diamond_x, parameters->DiamondPosition_Y(), parameters->DiamondPosition_Z()); - xform = new GeoTransform(HepGeom::Transform3D(rmC,DiamondPosA)); + GeoTrf::Translation3D DiamondPosA(diamond_x, parameters->DiamondPosition_Y(), parameters->DiamondPosition_Z()); + xform = new GeoTransform(GeoTrf::Transform3D(DiamondPosA*rmC)); tag = new GeoNameTag("Diamond"); env_bcmModPhys->add(tag); env_bcmModPhys->add(new GeoIdentifierTag(11950)); @@ -226,8 +224,8 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul GeoPhysVol* DiamondVolB = wall.Build(diamondSize/2, diamondSize/2, diamondThick, "bcmDiamondLog", diamond); - CLHEP::Hep3Vector DiamondPosB(diamond_x + diamondThick + parameters->DiamondDelta_X(), parameters->DiamondPosition_Y() + parameters->DiamondDelta_Y(), parameters->DiamondPosition_Z() + parameters->DiamondDelta_Z()); - xform = new GeoTransform(HepGeom::Transform3D(rmC,DiamondPosB)); + GeoTrf::Translation3D DiamondPosB(diamond_x + diamondThick + parameters->DiamondDelta_X(), parameters->DiamondPosition_Y() + parameters->DiamondDelta_Y(), parameters->DiamondPosition_Z() + parameters->DiamondDelta_Z()); + xform = new GeoTransform(GeoTrf::Transform3D(DiamondPosB*rmC)); tag = new GeoNameTag("Diamond"); env_bcmModPhys->add(tag); env_bcmModPhys->add(new GeoIdentifierTag(11951)); @@ -237,10 +235,9 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul //wall A GeoPhysVol* WallA = wall.Build(ModTailHeight/2, (ModLength - ModHeadLength)/2, CuThick, G10Thick, copper, g10, mat_mgr); - CLHEP::Hep3Vector WallAPos((ModHeight - ModTailHeight)/2 , (ReducedModWidth + WallThick)/2, -ModHeadLength/2); - CLHEP::HepRotation rmA; - rmA.rotateX(90.*CLHEP::deg); - xform = new GeoTransform(HepGeom::Transform3D(rmA,WallAPos)); + GeoTrf::Translation3D WallAPos((ModHeight - ModTailHeight)/2 , (ReducedModWidth + WallThick)/2, -ModHeadLength/2); + GeoTrf::RotateX3D rmA(90.*GeoModelKernelUnits::deg); + xform = new GeoTransform(GeoTrf::Transform3D(WallAPos*rmA)); tag = new GeoNameTag("Wall A"); env_bcmModPhys->add(tag); env_bcmModPhys->add(xform); @@ -249,8 +246,8 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul //wall AA GeoPhysVol* WallAA = wall.Build(ModTailHeight/2, (ModLength - ModHeadLength)/2, G10Thick, CuThick, g10, copper, mat_mgr); - CLHEP::Hep3Vector WallAAPos((ModHeight - ModTailHeight)/2 , -(ReducedModWidth + WallThick)/2, -ModHeadLength/2); - xform = new GeoTransform(HepGeom::Transform3D(rmA,WallAAPos)); + GeoTrf::Translation3D WallAAPos((ModHeight - ModTailHeight)/2 , -(ReducedModWidth + WallThick)/2, -ModHeadLength/2); + xform = new GeoTransform(GeoTrf::Transform3D(WallAAPos*rmA)); tag = new GeoNameTag("Wall AA"); env_bcmModPhys->add(tag); env_bcmModPhys->add(xform); @@ -259,8 +256,8 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul //wall B GeoPhysVol* WallB = wall.Build(ModHeight/2, ModHeadLength/2, CuThick, G10Thick, copper, g10, mat_mgr); - CLHEP::Hep3Vector WallBPos(0, (ReducedModWidth + WallThick)/2, (ModLength - ModHeadLength)/2); - xform = new GeoTransform(HepGeom::Transform3D(rmA,WallBPos)); + GeoTrf::Translation3D WallBPos(0, (ReducedModWidth + WallThick)/2, (ModLength - ModHeadLength)/2); + xform = new GeoTransform(GeoTrf::Transform3D(WallBPos*rmA)); tag = new GeoNameTag("Wall B"); env_bcmModPhys->add(tag); env_bcmModPhys->add(xform); @@ -269,8 +266,8 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul //wall BB GeoPhysVol* WallBB = wall.Build(ModHeight/2, ModHeadLength/2, G10Thick, CuThick, g10, copper, mat_mgr); - CLHEP::Hep3Vector WallBBPos(0, -(ReducedModWidth + WallThick)/2, (ModLength - ModHeadLength)/2); - xform = new GeoTransform(HepGeom::Transform3D(rmA,WallBBPos)); + GeoTrf::Translation3D WallBBPos(0, -(ReducedModWidth + WallThick)/2, (ModLength - ModHeadLength)/2); + xform = new GeoTransform(GeoTrf::Transform3D(WallBBPos*rmA)); tag = new GeoNameTag("Wall BB"); env_bcmModPhys->add(tag); env_bcmModPhys->add(xform); @@ -281,12 +278,8 @@ GeoPhysVol* BCM_Module::Build(const AbsMaterialManager* mat_mgr, const BCM_Modul // Add the BCM envelop inside the new complex encompassing volume // -------------------------------------------------------------------------------------- - CLHEP::HepRotation rmEnv; - rmEnv.rotateZ(90.*CLHEP::deg); - rmEnv.rotateY(90.*CLHEP::deg); - - CLHEP::Hep3Vector WallEnvPos(0., 0., 0.); - xform = new GeoTransform(HepGeom::Transform3D(rmEnv,WallEnvPos)); + GeoTrf::Transform3D rmEnv = GeoTrf::RotateY3D(90.*GeoModelKernelUnits::deg)*GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg); + xform = new GeoTransform(rmEnv); tag = new GeoNameTag("EnvBcmWallLog"); bcmModPhys->add(tag); bcmModPhys->add(xform); diff --git a/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Wall.cxx b/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Wall.cxx index cc2adaab24a69d20255c02421231a1a0bcdfe558..c9cdb3954e63c7e3e902b1620ad2df25373cdbb8 100755 --- a/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Wall.cxx +++ b/InnerDetector/InDetDetDescr/BCM_GeoModel/src/BCM_Wall.cxx @@ -37,9 +37,8 @@ GeoPhysVol* BCM_Wall::Build(double halfX, double halfY, double thick_one, double const GeoLogVol* bcmWallOneLog = new GeoLogVol("bcmWallLog", bcmWallOneBox, material_one); GeoPhysVol* bcmWallOnePhys = new GeoPhysVol(bcmWallOneLog); - CLHEP::Hep3Vector WallOnePos(0,0,thick_one/2 - wallthick/2); - CLHEP::HepRotation rm; - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(rm,WallOnePos)); + GeoTrf::Translate3D WallOnePos(0,0,thick_one/2 - wallthick/2); + GeoTransform* xform = new GeoTransform(WallOnePos); bcmWallPhys->add(xform); bcmWallPhys->add(bcmWallOnePhys); @@ -49,8 +48,8 @@ GeoPhysVol* BCM_Wall::Build(double halfX, double halfY, double thick_one, double const GeoLogVol* bcmWallTwoLog = new GeoLogVol("bcmWallLog", bcmWallTwoBox, material_two); GeoPhysVol* bcmWallTwoPhys = new GeoPhysVol(bcmWallTwoLog); - CLHEP::Hep3Vector WallTwoPos(0,0,wallthick/2 - thick_two/2); - xform = new GeoTransform(HepGeom::Transform3D(rm,WallTwoPos)); + GeoTrf::Translate3D WallTwoPos(0,0,wallthick/2 - thick_two/2); + xform = new GeoTransform(WallTwoPos); bcmWallPhys->add(xform); bcmWallPhys->add(bcmWallTwoPhys); @@ -73,9 +72,8 @@ GeoPhysVol* BCM_Wall::Build(double halfX, double halfY, double thick_one, double const GeoLogVol* bcmWallOneLog = new GeoLogVol("bcmWallLog", bcmWallOneBox, material_one); GeoPhysVol* bcmWallOnePhys = new GeoPhysVol(bcmWallOneLog); - CLHEP::Hep3Vector WallOnePos(0,0,thick_one/2 - wallthick/2); - CLHEP::HepRotation rm; - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(rm,WallOnePos)); + GeoTrf::Translate3D WallOnePos(0,0,thick_one/2 - wallthick/2); + GeoTransform* xform = new GeoTransform(WallOnePos); bcmWallPhys->add(xform); bcmWallPhys->add(bcmWallOnePhys); @@ -85,8 +83,8 @@ GeoPhysVol* BCM_Wall::Build(double halfX, double halfY, double thick_one, double const GeoLogVol* bcmWallTwoLog = new GeoLogVol("bcmWallLog", bcmWallTwoBox, material_two); GeoPhysVol* bcmWallTwoPhys = new GeoPhysVol(bcmWallTwoLog); - CLHEP::Hep3Vector WallTwoPos(0,0,thick_one -wallthick/2 + thick_two/2); - xform = new GeoTransform(HepGeom::Transform3D(rm,WallTwoPos)); + GeoTrf::Translate3D WallTwoPos(0,0,thick_one -wallthick/2 + thick_two/2); + xform = new GeoTransform(WallTwoPos); bcmWallPhys->add(xform); bcmWallPhys->add(bcmWallTwoPhys); @@ -96,8 +94,8 @@ GeoPhysVol* BCM_Wall::Build(double halfX, double halfY, double thick_one, double const GeoLogVol* bcmWallThreeLog = new GeoLogVol("bcmWallLog", bcmWallThreeBox, material_three); GeoPhysVol* bcmWallThreePhys = new GeoPhysVol(bcmWallThreeLog); - CLHEP::Hep3Vector WallThreePos(0,0,wallthick/2 - thick_three/2); - xform = new GeoTransform(HepGeom::Transform3D(rm,WallThreePos)); + GeoTrf::Translate3D WallThreePos(0,0,wallthick/2 - thick_three/2); + xform = new GeoTransform(WallThreePos); bcmWallPhys->add(xform); bcmWallPhys->add(bcmWallThreePhys); diff --git a/InnerDetector/InDetDetDescr/BLM_GeoModel/CMakeLists.txt b/InnerDetector/InDetDetDescr/BLM_GeoModel/CMakeLists.txt index 68d046510be1a3cb62a3548fa988ab79e2fe66ac..b5ea30eeef762b7fa8c770e289e742d2974d1f4d 100644 --- a/InnerDetector/InDetDetDescr/BLM_GeoModel/CMakeLists.txt +++ b/InnerDetector/InDetDetDescr/BLM_GeoModel/CMakeLists.txt @@ -9,9 +9,7 @@ atlas_subdir( BLM_GeoModel ) atlas_depends_on_subdirs( PUBLIC Control/AthenaBaseComps Control/AthenaKernel - Control/AthenaKernel DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel GaudiKernel PRIVATE Database/RDBAccessSvc @@ -20,13 +18,14 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( BLM_GeoModel src/*.cxx src/components/*.cxx INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} AthenaBaseComps AthenaKernel AthenaKernel GeoModelKernel GaudiKernel GeoModelUtilities ) + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaBaseComps AthenaKernel GaudiKernel GeoModelUtilities ) # Install files from the package: atlas_install_headers( BLM_GeoModel ) diff --git a/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Builder.cxx b/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Builder.cxx index 6a400d2c42d2dc8f5facee3805e288a0261de0f6..12c308b8d30797e99383936189daad6ac7382644 100644 --- a/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Builder.cxx +++ b/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Builder.cxx @@ -240,12 +240,11 @@ StatusCode InDetDD::BLM_Builder::build(GeoVPhysVol* pv) BLM_ModuleParameters* parameters = manager->Module(i); //setting transformation - CLHEP::Hep3Vector pos(parameters->R()*cos(parameters->Phi()*CLHEP::deg), parameters->R()*sin(parameters->Phi()*CLHEP::deg), parameters->Z()); - CLHEP::HepRotation rm; - rm.rotateX(parameters->Rotation_X()*CLHEP::deg); - rm.rotateY(parameters->Rotation_Y()*CLHEP::deg); - rm.rotateZ(parameters->Rotation_Z()*CLHEP::deg); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(rm,pos)); + GeoTrf::Translation3D pos(parameters->R()*cos(parameters->Phi()*GeoModelKernelUnits::deg), parameters->R()*sin(parameters->Phi()*GeoModelKernelUnits::deg), parameters->Z()); + GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(parameters->Rotation_Z()*GeoModelKernelUnits::deg) + * GeoTrf::RotateY3D(parameters->Rotation_Y()*GeoModelKernelUnits::deg) + * GeoTrf::RotateX3D(parameters->Rotation_X()*GeoModelKernelUnits::deg); + GeoTransform* xform = new GeoTransform(GeoTrf::Transform3D(pos*rm)); xform->ref(); //building module int k=i+222; diff --git a/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Module.cxx b/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Module.cxx index 405089fda998fac87ea70deb7c7fc705ca89ebc1..5b5e88207f4ee8ed6a2ea5ee4f3569ebc9569f08 100755 --- a/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Module.cxx +++ b/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Module.cxx @@ -47,7 +47,7 @@ GeoPhysVol* BLM_Module::Build(const AbsMaterialManager* mat_mgr, const BLM_Modul { if(msg) (*msg) << "BLM _ PEEK _ MISSING." << endmsg; - GeoMaterial* peektmp = new GeoMaterial("PEEK", 1.3*CLHEP::gram/CLHEP::cm3); + GeoMaterial* peektmp = new GeoMaterial("PEEK", 1.3*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); GeoElement* hydrogen = new GeoElement("Hydrogen", "H", 1.0, 1.010); GeoElement* oxygen = new GeoElement("Oxygen", "O", 8.0, 16.000); GeoElement* carbon = new GeoElement("Carbon", "C", 6.0, 12.010); @@ -63,7 +63,7 @@ GeoPhysVol* BLM_Module::Build(const AbsMaterialManager* mat_mgr, const BLM_Modul //PEEK /* //STAINLESS STEEL - GeoMaterial* stainless_steel = new GeoMaterial("S_steel", 7.8*CLHEP::gram/CLHEP::cm3); + GeoMaterial* stainless_steel = new GeoMaterial("S_steel", 7.8*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); GeoElement* iron = new GeoElement("Iron", "Fe", 26.0, 55.845); GeoElement* chromium = new GeoElement("Chromium", "Cr", 24.0, 51.996); stainless_steel->add(iron, 0.89); @@ -79,9 +79,8 @@ GeoPhysVol* BLM_Module::Build(const AbsMaterialManager* mat_mgr, const BLM_Modul //holder GeoPhysVol* holder = wall.BuildHolder(peek); - CLHEP::Hep3Vector holderPos(0, BLM_Wall::s_holder_height-ModHeight/2-BLM_Wall::s_holder_thickness/2, 0); - CLHEP::HepRotation holderRot; - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(holderRot, holderPos)); + GeoTrf::Translate3D holderPos(0, BLM_Wall::s_holder_height-ModHeight/2-BLM_Wall::s_holder_thickness/2, 0); + GeoTransform* xform = new GeoTransform(GeoTrf::Transform3D(holderPos)); GeoNameTag* tag = new GeoNameTag("Holder"); blmModPhys->add(tag); blmModPhys->add(xform); @@ -91,12 +90,12 @@ GeoPhysVol* BLM_Module::Build(const AbsMaterialManager* mat_mgr, const BLM_Modul GeoPhysVol* layer1a = wall.BuildLayerI(CuThick, copper, false); GeoPhysVol* layer1b = wall.BuildLayerI(LamelThick15, g10, false); GeoPhysVol* layer1c = wall.BuildLayerI(CuThick, copper, true); - CLHEP::Hep3Vector layer1Posa(0, BLM_Wall::s_holder_height-ModHeight/2+CuThick/2, ModLength/2-BLM_Wall::s_extended_length/2); - CLHEP::Hep3Vector layer1Posb(0, BLM_Wall::s_holder_height-ModHeight/2+CuThick+LamelThick15/2, ModLength/2-BLM_Wall::s_extended_length/2); - CLHEP::Hep3Vector layer1Posc(0, BLM_Wall::s_holder_height-ModHeight/2+3*CuThick/2+LamelThick15, ModLength/2-BLM_Wall::s_extended_length/2); - GeoTransform* yforma = new GeoTransform(HepGeom::Transform3D(holderRot, layer1Posa)); - GeoTransform* yformb = new GeoTransform(HepGeom::Transform3D(holderRot, layer1Posb)); - GeoTransform* yformc = new GeoTransform(HepGeom::Transform3D(holderRot, layer1Posc)); + GeoTrf::Translate3D layer1Posa(0, BLM_Wall::s_holder_height-ModHeight/2+CuThick/2, ModLength/2-BLM_Wall::s_extended_length/2); + GeoTrf::Translate3D layer1Posb(0, BLM_Wall::s_holder_height-ModHeight/2+CuThick+LamelThick15/2, ModLength/2-BLM_Wall::s_extended_length/2); + GeoTrf::Translate3D layer1Posc(0, BLM_Wall::s_holder_height-ModHeight/2+3*CuThick/2+LamelThick15, ModLength/2-BLM_Wall::s_extended_length/2); + GeoTransform* yforma = new GeoTransform(GeoTrf::Transform3D(layer1Posa)); + GeoTransform* yformb = new GeoTransform(GeoTrf::Transform3D(layer1Posb)); + GeoTransform* yformc = new GeoTransform(GeoTrf::Transform3D(layer1Posc)); tag = new GeoNameTag("Layer1"); blmModPhys->add(tag); blmModPhys->add(yforma); @@ -112,12 +111,12 @@ GeoPhysVol* BLM_Module::Build(const AbsMaterialManager* mat_mgr, const BLM_Modul GeoPhysVol* layer2a = wall.BuildLayerII(CuThick, copper); GeoPhysVol* layer2b = wall.BuildLayerII(LamelThick234, g10); GeoPhysVol* layer2c = wall.BuildLayerII(CuThick, copper); - CLHEP::Hep3Vector layer2Posa(0, BLM_Wall::s_holder_height-ModHeight/2+5*CuThick/2+LamelThick15, ModLength/2-BLM_Wall::s_length/2); - CLHEP::Hep3Vector layer2Posb(0, BLM_Wall::s_holder_height-ModHeight/2+3*CuThick+LamelThick15+LamelThick234/2, ModLength/2-BLM_Wall::s_length/2); - CLHEP::Hep3Vector layer2Posc(0, BLM_Wall::s_holder_height-ModHeight/2+7*CuThick/2+LamelThick15+LamelThick234, ModLength/2-BLM_Wall::s_length/2); - yforma = new GeoTransform(HepGeom::Transform3D(holderRot, layer2Posa)); - yformb = new GeoTransform(HepGeom::Transform3D(holderRot, layer2Posb)); - yformc = new GeoTransform(HepGeom::Transform3D(holderRot, layer2Posc)); + GeoTrf::Translate3D layer2Posa(0, BLM_Wall::s_holder_height-ModHeight/2+5*CuThick/2+LamelThick15, ModLength/2-BLM_Wall::s_length/2); + GeoTrf::Translate3D layer2Posb(0, BLM_Wall::s_holder_height-ModHeight/2+3*CuThick+LamelThick15+LamelThick234/2, ModLength/2-BLM_Wall::s_length/2); + GeoTrf::Translate3D layer2Posc(0, BLM_Wall::s_holder_height-ModHeight/2+7*CuThick/2+LamelThick15+LamelThick234, ModLength/2-BLM_Wall::s_length/2); + yforma = new GeoTransform(GeoTrf::Transform3D(layer2Posa)); + yformb = new GeoTransform(GeoTrf::Transform3D(layer2Posb)); + yformc = new GeoTransform(GeoTrf::Transform3D(layer2Posc)); tag = new GeoNameTag("Layer2"); blmModPhys->add(tag); blmModPhys->add(yforma); @@ -133,12 +132,12 @@ GeoPhysVol* BLM_Module::Build(const AbsMaterialManager* mat_mgr, const BLM_Modul GeoPhysVol* layer3a = wall.BuildLayerIII(CuThick, copper); GeoPhysVol* layer3b = wall.BuildLayerIII(LamelThick234, g10); GeoPhysVol* layer3c = wall.BuildLayerIII(CuThick, copper); - CLHEP::Hep3Vector layer3Posa(0, BLM_Wall::s_holder_height-ModHeight/2+9*CuThick/2+LamelThick15+LamelThick234, ModLength/2-BLM_Wall::s_length/2); - CLHEP::Hep3Vector layer3Posb(0, BLM_Wall::s_holder_height-ModHeight/2+5*CuThick+LamelThick15+3*LamelThick234/2, ModLength/2-BLM_Wall::s_length/2); - CLHEP::Hep3Vector layer3Posc(0, BLM_Wall::s_holder_height-ModHeight/2+11*CuThick/2+LamelThick15+2*LamelThick234, ModLength/2-BLM_Wall::s_length/2); - yforma = new GeoTransform(HepGeom::Transform3D(holderRot, layer3Posa)); - yformb = new GeoTransform(HepGeom::Transform3D(holderRot, layer3Posb)); - yformc = new GeoTransform(HepGeom::Transform3D(holderRot, layer3Posc)); + GeoTrf::Translate3D layer3Posa(0, BLM_Wall::s_holder_height-ModHeight/2+9*CuThick/2+LamelThick15+LamelThick234, ModLength/2-BLM_Wall::s_length/2); + GeoTrf::Translate3D layer3Posb(0, BLM_Wall::s_holder_height-ModHeight/2+5*CuThick+LamelThick15+3*LamelThick234/2, ModLength/2-BLM_Wall::s_length/2); + GeoTrf::Translate3D layer3Posc(0, BLM_Wall::s_holder_height-ModHeight/2+11*CuThick/2+LamelThick15+2*LamelThick234, ModLength/2-BLM_Wall::s_length/2); + yforma = new GeoTransform(GeoTrf::Transform3D(layer3Posa)); + yformb = new GeoTransform(GeoTrf::Transform3D(layer3Posb)); + yformc = new GeoTransform(GeoTrf::Transform3D(layer3Posc)); tag = new GeoNameTag("Layer3"); blmModPhys->add(tag); blmModPhys->add(yforma); @@ -154,12 +153,12 @@ GeoPhysVol* BLM_Module::Build(const AbsMaterialManager* mat_mgr, const BLM_Modul GeoPhysVol* layer4a = wall.BuildLayerIV(CuThick, copper); GeoPhysVol* layer4b = wall.BuildLayerIV(LamelThick234, g10); GeoPhysVol* layer4c = wall.BuildLayerIV(CuThick, copper); - CLHEP::Hep3Vector layer4Posa(0, BLM_Wall::s_holder_height-ModHeight/2+13*CuThick/2+LamelThick15+2*LamelThick234, ModLength/2-BLM_Wall::s_length/2); - CLHEP::Hep3Vector layer4Posb(0, BLM_Wall::s_holder_height-ModHeight/2+7*CuThick+LamelThick15+5*LamelThick234/2, ModLength/2-BLM_Wall::s_length/2); - CLHEP::Hep3Vector layer4Posc(0, BLM_Wall::s_holder_height-ModHeight/2+15*CuThick/2+LamelThick15+3*LamelThick234, ModLength/2-BLM_Wall::s_length/2); - yforma = new GeoTransform(HepGeom::Transform3D(holderRot, layer4Posa)); - yformb = new GeoTransform(HepGeom::Transform3D(holderRot, layer4Posb)); - yformc = new GeoTransform(HepGeom::Transform3D(holderRot, layer4Posc)); + GeoTrf::Translate3D layer4Posa(0, BLM_Wall::s_holder_height-ModHeight/2+13*CuThick/2+LamelThick15+2*LamelThick234, ModLength/2-BLM_Wall::s_length/2); + GeoTrf::Translate3D layer4Posb(0, BLM_Wall::s_holder_height-ModHeight/2+7*CuThick+LamelThick15+5*LamelThick234/2, ModLength/2-BLM_Wall::s_length/2); + GeoTrf::Translate3D layer4Posc(0, BLM_Wall::s_holder_height-ModHeight/2+15*CuThick/2+LamelThick15+3*LamelThick234, ModLength/2-BLM_Wall::s_length/2); + yforma = new GeoTransform(GeoTrf::Transform3D(layer4Posa)); + yformb = new GeoTransform(GeoTrf::Transform3D(layer4Posb)); + yformc = new GeoTransform(GeoTrf::Transform3D(layer4Posc)); tag = new GeoNameTag("Layer4"); blmModPhys->add(tag); blmModPhys->add(yforma); @@ -175,12 +174,12 @@ GeoPhysVol* BLM_Module::Build(const AbsMaterialManager* mat_mgr, const BLM_Modul GeoPhysVol* layer5a = wall.BuildLayerV(CuThick, copper); GeoPhysVol* layer5b = wall.BuildLayerV(LamelThick15, g10); GeoPhysVol* layer5c = wall.BuildLayerV(CuThick, copper); - CLHEP::Hep3Vector layer5Posa(0, BLM_Wall::s_holder_height-ModHeight/2+17*CuThick/2+LamelThick15+3*LamelThick234, ModLength/2-BLM_Wall::s_length/2); - CLHEP::Hep3Vector layer5Posb(0, BLM_Wall::s_holder_height-ModHeight/2+9*CuThick+3*LamelThick15/2+3*LamelThick234, ModLength/2-BLM_Wall::s_length/2); - CLHEP::Hep3Vector layer5Posc(0, BLM_Wall::s_holder_height-ModHeight/2+19*CuThick/2+2*LamelThick15+3*LamelThick234, ModLength/2-BLM_Wall::s_length/2); - yforma = new GeoTransform(HepGeom::Transform3D(holderRot, layer5Posa)); - yformb = new GeoTransform(HepGeom::Transform3D(holderRot, layer5Posb)); - yformc = new GeoTransform(HepGeom::Transform3D(holderRot, layer5Posc)); + GeoTrf::Translate3D layer5Posa(0, BLM_Wall::s_holder_height-ModHeight/2+17*CuThick/2+LamelThick15+3*LamelThick234, ModLength/2-BLM_Wall::s_length/2); + GeoTrf::Translate3D layer5Posb(0, BLM_Wall::s_holder_height-ModHeight/2+9*CuThick+3*LamelThick15/2+3*LamelThick234, ModLength/2-BLM_Wall::s_length/2); + GeoTrf::Translate3D layer5Posc(0, BLM_Wall::s_holder_height-ModHeight/2+19*CuThick/2+2*LamelThick15+3*LamelThick234, ModLength/2-BLM_Wall::s_length/2); + yforma = new GeoTransform(GeoTrf::Transform3D(layer5Posa)); + yformb = new GeoTransform(GeoTrf::Transform3D(layer5Posb)); + yformc = new GeoTransform(GeoTrf::Transform3D(layer5Posc)); tag = new GeoNameTag("Layer5"); blmModPhys->add(tag); blmModPhys->add(yforma); @@ -201,26 +200,24 @@ GeoPhysVol* BLM_Module::Build(const AbsMaterialManager* mat_mgr, const BLM_Modul GeoPhysVol* screw6 = wall.BuildScrew(10, stainless_steel); GeoPhysVol* screw7 = wall.BuildScrew(BLM_Wall::s_holder_thickness, stainless_steel); GeoPhysVol* screw8 = wall.BuildScrew(BLM_Wall::s_holder_thickness, stainless_steel); - CLHEP::HepRotation screwRot; - screwRot.rotateX(90.*CLHEP::deg); - CLHEP::HepRotation screwRot1; - screwRot1.rotateX(180.*CLHEP::deg); - CLHEP::Hep3Vector screwPos1(ModWidth/2-BLM_Wall::s_hole_position, BLM_Wall::s_holder_height-ModHeight/2+10*CuThick+2*LamelThick15+3*LamelThick234+1, ModLength/2-BLM_Wall::s_hole_position); - CLHEP::Hep3Vector screwPos2(BLM_Wall::s_hole_position-ModWidth/2, BLM_Wall::s_holder_height-ModHeight/2+10*CuThick+2*LamelThick15+3*LamelThick234+1, ModLength/2-BLM_Wall::s_hole_position); - CLHEP::Hep3Vector screwPos3(ModWidth/2-BLM_Wall::s_hole_position, BLM_Wall::s_holder_height-ModHeight/2+10*CuThick+2*LamelThick15+3*LamelThick234+1, ModLength/2-BLM_Wall::s_length+BLM_Wall::s_hole_position); - CLHEP::Hep3Vector screwPos4(BLM_Wall::s_hole_position-ModWidth/2, BLM_Wall::s_holder_height-ModHeight/2+10*CuThick+2*LamelThick15+3*LamelThick234+1, ModLength/2-BLM_Wall::s_length+BLM_Wall::s_hole_position); - CLHEP::Hep3Vector screwPos5(ModWidth/2-BLM_Wall::s_hole_position, BLM_Wall::s_holder_height-ModHeight/2+10*CuThick+2*LamelThick15+3*LamelThick234+1, ModLength/2-BLM_Wall::s_extended_length+2.1); - CLHEP::Hep3Vector screwPos6(BLM_Wall::s_hole_position-ModWidth/2, BLM_Wall::s_holder_height-ModHeight/2+10*CuThick+2*LamelThick15+3*LamelThick234+1, ModLength/2-BLM_Wall::s_extended_length+2.1); - CLHEP::Hep3Vector screwPos7(ModWidth/2-BLM_Wall::s_hole_position, 3.5-ModHeight/2, BLM_Wall::s_holder_thickness-ModLength/2+1); - CLHEP::Hep3Vector screwPos8(BLM_Wall::s_hole_position-ModWidth/2, 3.5-ModHeight/2, BLM_Wall::s_holder_thickness-ModLength/2+1); - GeoTransform* xform1 = new GeoTransform(HepGeom::Transform3D(screwRot, screwPos1)); - GeoTransform* xform2 = new GeoTransform(HepGeom::Transform3D(screwRot, screwPos2)); - GeoTransform* xform3 = new GeoTransform(HepGeom::Transform3D(screwRot, screwPos3)); - GeoTransform* xform4 = new GeoTransform(HepGeom::Transform3D(screwRot, screwPos4)); - GeoTransform* xform5 = new GeoTransform(HepGeom::Transform3D(screwRot, screwPos5)); - GeoTransform* xform6 = new GeoTransform(HepGeom::Transform3D(screwRot, screwPos6)); - GeoTransform* xform7 = new GeoTransform(HepGeom::Transform3D(screwRot1, screwPos7)); - GeoTransform* xform8 = new GeoTransform(HepGeom::Transform3D(screwRot1, screwPos8)); + GeoTrf::RotateX3D screwRot(90.*GeoModelKernelUnits::deg); + GeoTrf::RotateX3D screwRot1(180.*GeoModelKernelUnits::deg); + GeoTrf::Translation3D screwPos1(ModWidth/2-BLM_Wall::s_hole_position, BLM_Wall::s_holder_height-ModHeight/2+10*CuThick+2*LamelThick15+3*LamelThick234+1, ModLength/2-BLM_Wall::s_hole_position); + GeoTrf::Translation3D screwPos2(BLM_Wall::s_hole_position-ModWidth/2, BLM_Wall::s_holder_height-ModHeight/2+10*CuThick+2*LamelThick15+3*LamelThick234+1, ModLength/2-BLM_Wall::s_hole_position); + GeoTrf::Translation3D screwPos3(ModWidth/2-BLM_Wall::s_hole_position, BLM_Wall::s_holder_height-ModHeight/2+10*CuThick+2*LamelThick15+3*LamelThick234+1, ModLength/2-BLM_Wall::s_length+BLM_Wall::s_hole_position); + GeoTrf::Translation3D screwPos4(BLM_Wall::s_hole_position-ModWidth/2, BLM_Wall::s_holder_height-ModHeight/2+10*CuThick+2*LamelThick15+3*LamelThick234+1, ModLength/2-BLM_Wall::s_length+BLM_Wall::s_hole_position); + GeoTrf::Translation3D screwPos5(ModWidth/2-BLM_Wall::s_hole_position, BLM_Wall::s_holder_height-ModHeight/2+10*CuThick+2*LamelThick15+3*LamelThick234+1, ModLength/2-BLM_Wall::s_extended_length+2.1); + GeoTrf::Translation3D screwPos6(BLM_Wall::s_hole_position-ModWidth/2, BLM_Wall::s_holder_height-ModHeight/2+10*CuThick+2*LamelThick15+3*LamelThick234+1, ModLength/2-BLM_Wall::s_extended_length+2.1); + GeoTrf::Translation3D screwPos7(ModWidth/2-BLM_Wall::s_hole_position, 3.5-ModHeight/2, BLM_Wall::s_holder_thickness-ModLength/2+1); + GeoTrf::Translation3D screwPos8(BLM_Wall::s_hole_position-ModWidth/2, 3.5-ModHeight/2, BLM_Wall::s_holder_thickness-ModLength/2+1); + GeoTransform* xform1 = new GeoTransform(GeoTrf::Transform3D(screwPos1*screwRot)); + GeoTransform* xform2 = new GeoTransform(GeoTrf::Transform3D(screwPos2*screwRot)); + GeoTransform* xform3 = new GeoTransform(GeoTrf::Transform3D(screwPos3*screwRot)); + GeoTransform* xform4 = new GeoTransform(GeoTrf::Transform3D(screwPos4*screwRot)); + GeoTransform* xform5 = new GeoTransform(GeoTrf::Transform3D(screwPos5*screwRot)); + GeoTransform* xform6 = new GeoTransform(GeoTrf::Transform3D(screwPos6*screwRot)); + GeoTransform* xform7 = new GeoTransform(GeoTrf::Transform3D(screwPos7*screwRot1)); + GeoTransform* xform8 = new GeoTransform(GeoTrf::Transform3D(screwPos8*screwRot1)); tag = new GeoNameTag("Screw"); blmModPhys->add(tag); blmModPhys->add(xform1); @@ -249,8 +246,8 @@ GeoPhysVol* BLM_Module::Build(const AbsMaterialManager* mat_mgr, const BLM_Modul //clamp GeoPhysVol* clamp = wall.BuildClamp(g10); - CLHEP::Hep3Vector clampPos(0, BLM_Wall::s_holder_height-ModHeight/2+10*CuThick+2*LamelThick15+3*LamelThick234-BLM_Wall::s_clamp_thickness/2, ModLength/2-BLM_Wall::s_extended_length+2.1+2.5-BLM_Wall::s_clamp_length/2); - yforma = new GeoTransform(HepGeom::Transform3D(holderRot, clampPos)); + GeoTrf::Translate3D clampPos(0, BLM_Wall::s_holder_height-ModHeight/2+10*CuThick+2*LamelThick15+3*LamelThick234-BLM_Wall::s_clamp_thickness/2, ModLength/2-BLM_Wall::s_extended_length+2.1+2.5-BLM_Wall::s_clamp_length/2); + yforma = new GeoTransform(GeoTrf::Transform3D(clampPos)); tag = new GeoNameTag("Clamp"); blmModPhys->add(tag); blmModPhys->add(yforma); @@ -258,8 +255,8 @@ GeoPhysVol* BLM_Module::Build(const AbsMaterialManager* mat_mgr, const BLM_Modul //diamond//blmDiamondLog GeoPhysVol* DiamondVol = wall.BuildBlock(8, diamondThick, diamondSize, "blmDiamondLog", diamond); - CLHEP::Hep3Vector DiamondPos(parameters->DiamondPosition_X(), BLM_Wall::s_holder_height-ModHeight/2+CuThick+LamelThick15+diamondThick/2, ModLength/2-diamondSize/2-5+parameters->DiamondPosition_Z()); - xform = new GeoTransform(HepGeom::Transform3D(holderRot,DiamondPos)); + GeoTrf::Translate3D DiamondPos(parameters->DiamondPosition_X(), BLM_Wall::s_holder_height-ModHeight/2+CuThick+LamelThick15+diamondThick/2, ModLength/2-diamondSize/2-5+parameters->DiamondPosition_Z()); + xform = new GeoTransform(GeoTrf::Transform3D(DiamondPos)); tag = new GeoNameTag("Diamond"); blmModPhys->add(tag); blmModPhys->add(new GeoIdentifierTag(2009)); diff --git a/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Wall.cxx b/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Wall.cxx index 301a75ec9edcfd01da2cd068e5f593d42f44122e..e2983ec4d48a299d8d54f48dad7fd3d59ebfefe9 100755 --- a/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Wall.cxx +++ b/InnerDetector/InDetDetDescr/BLM_GeoModel/src/BLM_Wall.cxx @@ -29,15 +29,14 @@ GeoPhysVol* BLM_Wall::BuildClamp(const GeoMaterial* material) const GeoBox* blmWallBox = new GeoBox(s_width/2, s_clamp_thickness/2, s_clamp_length/2); const GeoTube* blmWallHole = new GeoTube(0, s_hole_r, s_clamp_thickness); //rotations - CLHEP::HepRotation rm; - rm.rotateX(90.*CLHEP::deg); + GeoTrf::RotateX3D rm(90.*GeoModelKernelUnits::deg); //position of holes - CLHEP::Hep3Vector pos1(s_width/2-s_hole_position, 0, s_clamp_length/2-2.5); - CLHEP::Hep3Vector pos2(s_hole_position-s_width/2, 0, s_clamp_length/2-2.5); + GeoTrf::Translation3D pos1(s_width/2-s_hole_position, 0, s_clamp_length/2-2.5); + GeoTrf::Translation3D pos2(s_hole_position-s_width/2, 0, s_clamp_length/2-2.5); //offsets - HepGeom::Transform3D offset1(rm,pos1); - HepGeom::Transform3D offset2(rm,pos2); + GeoTrf::Transform3D offset1 = pos1*rm; + GeoTrf::Transform3D offset2 = pos2*rm; const GeoShapeSubtraction& blm1 = blmWallBox->subtract(((*blmWallHole) << offset1)); const GeoShapeSubtraction& blmFinal = blm1.subtract(((*blmWallHole)<< offset2)); @@ -61,9 +60,7 @@ GeoPhysVol* BLM_Wall::BuildScrew(double length, const GeoMaterial* material) const GeoTube* blmScrew = new GeoTube(0, 2.5, 1); const GeoTube* blmScrew1 = new GeoTube(0, 1.5, length/2); //positions - CLHEP::HepRotation rm; - CLHEP::Hep3Vector pos1(0, 0, length/2+1); - HepGeom::Transform3D offset1(rm,pos1); + GeoTrf::Translate3D offset1(0, 0, length/2+1); const GeoShapeUnion& blmFinal = blmScrew->add(((*blmScrew1) << offset1)); const GeoLogVol* blmWallLog = new GeoLogVol("blmWallLog", &blmFinal, material); @@ -79,33 +76,28 @@ GeoPhysVol* BLM_Wall::BuildHolder(const GeoMaterial* material) const GeoTube* blmWallHole = new GeoTube(0, s_hole_r, s_holder_thickness); const GeoBox* blmWallHole1 = new GeoBox(s_holder_spacing/2, s_holder_height, (s_holder_spacing_length+s_holder_thickness)/2+1); //rotations - CLHEP::HepRotation rm; - CLHEP::HepRotation rm1; - rm.rotateX(90.*CLHEP::deg); + GeoTrf::RotateX3D rm(90.*GeoModelKernelUnits::deg); //position of holes - CLHEP::Hep3Vector pos1(s_width/2-s_hole_position, 0, s_holder_length/2-s_hole_position); - CLHEP::Hep3Vector pos2(s_hole_position-s_width/2, 0, s_holder_length/2-s_hole_position); - CLHEP::Hep3Vector pos3(s_width/2-s_hole_position, 0, s_holder_length/2-s_length+s_hole_position); - CLHEP::Hep3Vector pos4(s_hole_position-s_width/2, 0, s_holder_length/2-s_length+s_hole_position); - CLHEP::Hep3Vector pos5(s_width/2-s_hole_position, 0, s_holder_length/2-s_extended_length+2.1); - CLHEP::Hep3Vector pos6(s_hole_position-s_width/2, 0, s_holder_length/2-s_extended_length+2.1); - CLHEP::Hep3Vector pos9(s_width/2-s_hole_position, 3.5+s_holder_thickness/2-s_holder_height, s_holder_thickness/2-s_holder_length/2); - CLHEP::Hep3Vector pos10(s_hole_position-s_width/2, 3.5+s_holder_thickness/2-s_holder_height, s_holder_thickness/2-s_holder_length/2); + GeoTrf::Translation3D pos1(s_width/2-s_hole_position, 0, s_holder_length/2-s_hole_position); + GeoTrf::Translation3D pos2(s_hole_position-s_width/2, 0, s_holder_length/2-s_hole_position); + GeoTrf::Translation3D pos3(s_width/2-s_hole_position, 0, s_holder_length/2-s_length+s_hole_position); + GeoTrf::Translation3D pos4(s_hole_position-s_width/2, 0, s_holder_length/2-s_length+s_hole_position); + GeoTrf::Translation3D pos5(s_width/2-s_hole_position, 0, s_holder_length/2-s_extended_length+2.1); + GeoTrf::Translation3D pos6(s_hole_position-s_width/2, 0, s_holder_length/2-s_extended_length+2.1); + GeoTrf::Translate3D offset9(s_width/2-s_hole_position, 3.5+s_holder_thickness/2-s_holder_height, s_holder_thickness/2-s_holder_length/2); + GeoTrf::Translate3D offset10(s_hole_position-s_width/2, 3.5+s_holder_thickness/2-s_holder_height, s_holder_thickness/2-s_holder_length/2); //position of vertical boxes - CLHEP::Hep3Vector pos7(0, s_holder_thickness/2-s_holder_height/2, s_holder_thickness/2-s_holder_length/2); + GeoTrf::Translate3D offset7(0, s_holder_thickness/2-s_holder_height/2, s_holder_thickness/2-s_holder_length/2); //position of the hole - CLHEP::Hep3Vector pos8(0, -s_holder_height/2, (s_holder_spacing_length+s_holder_thickness)/2-s_holder_length/2-2); + GeoTrf::Translate3D offset8(0, -s_holder_height/2, (s_holder_spacing_length+s_holder_thickness)/2-s_holder_length/2-2); //offsets - HepGeom::Transform3D offset1(rm,pos1); - HepGeom::Transform3D offset2(rm,pos2); - HepGeom::Transform3D offset3(rm,pos3); - HepGeom::Transform3D offset4(rm,pos4); - HepGeom::Transform3D offset5(rm,pos5); - HepGeom::Transform3D offset6(rm,pos6); - HepGeom::Transform3D offset7(rm1,pos7); - HepGeom::Transform3D offset8(rm1,pos8); - HepGeom::Transform3D offset9(rm1,pos9); - HepGeom::Transform3D offset10(rm1,pos10); + GeoTrf::Transform3D offset1 = pos1*rm; + GeoTrf::Transform3D offset2 = pos2*rm; + GeoTrf::Transform3D offset3 = pos3*rm; + GeoTrf::Transform3D offset4 = pos4*rm; + GeoTrf::Transform3D offset5 = pos5*rm; + GeoTrf::Transform3D offset6 = pos6*rm; + const GeoShapeUnion& blm1 = blmWallBox->add(((*blmWallBox1) << offset7)); const GeoShapeSubtraction& blm3 = blm1.subtract(((*blmWallHole1)<< offset8)); const GeoShapeSubtraction& blm4 = blm3.subtract(((*blmWallHole) << offset1)); @@ -132,29 +124,24 @@ GeoPhysVol* BLM_Wall::BuildLayerI(double thick, const GeoMaterial* material, boo const GeoShape* blmWallHole1 = new GeoBox(s_width/2-3.5, thick, 5.9); const GeoShape* blmWallHole2 = new GeoBox(s_width/2-6.1, thick, 4); const GeoShape* blmWallHole3 = new GeoBox(3.89, thick, 3.89); - CLHEP::HepRotation rm; - CLHEP::HepRotation rm1; - CLHEP::HepRotation rm2; - rm.rotateX(90.*CLHEP::deg); - rm1.rotateY(45.*CLHEP::deg); - CLHEP::Hep3Vector pos1(s_width/2-s_hole_position, 0, s_extended_length/2-s_hole_position); - CLHEP::Hep3Vector pos2(s_hole_position-s_width/2, 0, s_extended_length/2-s_hole_position); - CLHEP::Hep3Vector pos3(s_width/2-s_hole_position, 0, s_extended_length/2-s_length+s_hole_position); - CLHEP::Hep3Vector pos4(s_hole_position-s_width/2, 0, s_extended_length/2-s_length+s_hole_position); - CLHEP::Hep3Vector pos9(s_width/2-s_hole_position, 0, 2.1-s_extended_length/2); - CLHEP::Hep3Vector pos10(s_hole_position-s_width/2, 0, 2.1-s_extended_length/2); - CLHEP::Hep3Vector pos5(0, 0, s_extended_length/2-s_length+12.55); - CLHEP::Hep3Vector pos6(0, 0, s_extended_length/2-s_length+4); - CLHEP::Hep3Vector pos7(0, 0, s_extended_length/2+6.6-s_length); - HepGeom::Transform3D offset1(rm,pos1); - HepGeom::Transform3D offset2(rm,pos2); - HepGeom::Transform3D offset3(rm,pos3); - HepGeom::Transform3D offset4(rm,pos4); - HepGeom::Transform3D offset5(rm2,pos5); - HepGeom::Transform3D offset6(rm2,pos6); - HepGeom::Transform3D offset7(rm1,pos7); - HepGeom::Transform3D offset9(rm,pos9); - HepGeom::Transform3D offset10(rm,pos10); + GeoTrf::RotateX3D rm(90.*GeoModelKernelUnits::deg); + GeoTrf::RotateY3D rm1(45.*GeoModelKernelUnits::deg); + GeoTrf::Translation3D pos1(s_width/2-s_hole_position, 0, s_extended_length/2-s_hole_position); + GeoTrf::Translation3D pos2(s_hole_position-s_width/2, 0, s_extended_length/2-s_hole_position); + GeoTrf::Translation3D pos3(s_width/2-s_hole_position, 0, s_extended_length/2-s_length+s_hole_position); + GeoTrf::Translation3D pos4(s_hole_position-s_width/2, 0, s_extended_length/2-s_length+s_hole_position); + GeoTrf::Translation3D pos9(s_width/2-s_hole_position, 0, 2.1-s_extended_length/2); + GeoTrf::Translation3D pos10(s_hole_position-s_width/2, 0, 2.1-s_extended_length/2); + GeoTrf::Translate3D offset5(0, 0, s_extended_length/2-s_length+12.55); + GeoTrf::Translate3D offset6(0, 0, s_extended_length/2-s_length+4); + GeoTrf::Translation3D pos7(0, 0, s_extended_length/2+6.6-s_length); + GeoTrf::Transform3D offset1 = pos1*rm; + GeoTrf::Transform3D offset2 = pos2*rm; + GeoTrf::Transform3D offset3 = pos3*rm; + GeoTrf::Transform3D offset4 = pos4*rm; + GeoTrf::Transform3D offset7 = pos7*rm1; + GeoTrf::Transform3D offset9 = pos9*rm; + GeoTrf::Transform3D offset10 = pos10*rm; const GeoShapeSubtraction& blm1 = blmWallBox->subtract(((*blmWallHole3) << offset7)); const GeoShapeSubtraction& blm2 = blm1.subtract(((*blmWallHole) << offset2)); @@ -175,21 +162,19 @@ GeoPhysVol* BLM_Wall::BuildLayerI(double thick, const GeoMaterial* material, boo { const GeoShape* blmWallBox = new GeoBox(s_width/2, thick/2, s_extended_length/2); const GeoShape* blmWallHole = new GeoTube(0, s_hole_r, thick); - CLHEP::HepRotation rm; - CLHEP::HepRotation rm1; - rm.rotateX(90.*CLHEP::deg); - CLHEP::Hep3Vector pos1(s_width/2-s_hole_position, 0, s_extended_length/2-s_hole_position); - CLHEP::Hep3Vector pos2(s_hole_position-s_width/2, 0, s_extended_length/2-s_hole_position); - CLHEP::Hep3Vector pos3(s_width/2-s_hole_position, 0, s_extended_length/2-s_length+s_hole_position); - CLHEP::Hep3Vector pos4(s_hole_position-s_width/2, 0, s_extended_length/2-s_length+s_hole_position); - CLHEP::Hep3Vector pos5(s_width/2-s_hole_position, 0, 2.1-s_extended_length/2); - CLHEP::Hep3Vector pos6(s_hole_position-s_width/2, 0, 2.1-s_extended_length/2); - HepGeom::Transform3D offset1(rm,pos1); - HepGeom::Transform3D offset2(rm,pos2); - HepGeom::Transform3D offset3(rm,pos3); - HepGeom::Transform3D offset4(rm,pos4); - HepGeom::Transform3D offset5(rm,pos5); - HepGeom::Transform3D offset6(rm,pos6); + GeoTrf::RotateX3D rm(90.*GeoModelKernelUnits::deg); + GeoTrf::Translation3D pos1(s_width/2-s_hole_position, 0, s_extended_length/2-s_hole_position); + GeoTrf::Translation3D pos2(s_hole_position-s_width/2, 0, s_extended_length/2-s_hole_position); + GeoTrf::Translation3D pos3(s_width/2-s_hole_position, 0, s_extended_length/2-s_length+s_hole_position); + GeoTrf::Translation3D pos4(s_hole_position-s_width/2, 0, s_extended_length/2-s_length+s_hole_position); + GeoTrf::Translation3D pos5(s_width/2-s_hole_position, 0, 2.1-s_extended_length/2); + GeoTrf::Translation3D pos6(s_hole_position-s_width/2, 0, 2.1-s_extended_length/2); + GeoTrf::Transform3D offset1 = pos1*rm; + GeoTrf::Transform3D offset2 = pos2*rm; + GeoTrf::Transform3D offset3 = pos3*rm; + GeoTrf::Transform3D offset4 = pos4*rm; + GeoTrf::Transform3D offset5 = pos5*rm; + GeoTrf::Transform3D offset6 = pos6*rm; const GeoShapeSubtraction& blm1 = blmWallBox->subtract(((*blmWallHole) << offset1)); const GeoShapeSubtraction& blm2 = blm1.subtract(((*blmWallHole) << offset2)); const GeoShapeSubtraction& blm3 = blm2.subtract(((*blmWallHole) << offset3)); @@ -212,28 +197,23 @@ GeoPhysVol* BLM_Wall::BuildLayerII(double thick, const GeoMaterial* material) const GeoShape* blmWallHole2 = new GeoBox(s_width/2-6.1, thick, 4); //const GeoShape* blmWallHole3 = new GeoBox(1.76777, thick, 1.76777); const GeoShape* blmWallHole3 = new GeoBox(3.9, thick, 3.9); - CLHEP::HepRotation rm; - CLHEP::HepRotation rm1; - CLHEP::HepRotation rm2; - rm.rotateX(90.*CLHEP::deg); - rm1.rotateY(45.*CLHEP::deg); - CLHEP::Hep3Vector pos1(s_width/2-s_hole_position, 0, s_length/2-s_hole_position); - CLHEP::Hep3Vector pos2(s_hole_position-s_width/2, 0, s_length/2-s_hole_position); - CLHEP::Hep3Vector pos3(s_width/2-s_hole_position, 0, s_hole_position-s_length/2); - CLHEP::Hep3Vector pos4(s_hole_position-s_width/2, 0, s_hole_position-s_length/2); - CLHEP::Hep3Vector pos5(0, 0, 1.5); - CLHEP::Hep3Vector pos6(0, 0, -7.175); - CLHEP::Hep3Vector pos7(s_width/2-6.1, 0, 6.6-s_length/2); - //CLHEP::Hep3Vector pos8(6.1-s_width/2, 0, 6.6-s_length/2); - CLHEP::Hep3Vector pos8(0, 0, 6.6-s_length/2); - HepGeom::Transform3D offset1(rm,pos1); - HepGeom::Transform3D offset2(rm,pos2); - HepGeom::Transform3D offset3(rm,pos3); - HepGeom::Transform3D offset4(rm,pos4); - HepGeom::Transform3D offset5(rm2,pos5); - HepGeom::Transform3D offset6(rm2,pos6); - HepGeom::Transform3D offset7(rm1,pos7); - HepGeom::Transform3D offset8(rm1,pos8); + GeoTrf::RotateX3D rm(90.*GeoModelKernelUnits::deg); + GeoTrf::RotateY3D rm1(45.*GeoModelKernelUnits::deg); + GeoTrf::Translation3D pos1(s_width/2-s_hole_position, 0, s_length/2-s_hole_position); + GeoTrf::Translation3D pos2(s_hole_position-s_width/2, 0, s_length/2-s_hole_position); + GeoTrf::Translation3D pos3(s_width/2-s_hole_position, 0, s_hole_position-s_length/2); + GeoTrf::Translation3D pos4(s_hole_position-s_width/2, 0, s_hole_position-s_length/2); + GeoTrf::Translate3D offset5(0, 0, 1.5); + GeoTrf::Translate3D offset6(0, 0, -7.175); + //GeoTrf::Translation3D pos7(s_width/2-6.1, 0, 6.6-s_length/2); + //GeoTrf::Vector3D pos8(6.1-s_width/2, 0, 6.6-s_length/2); + GeoTrf::Translation3D pos8(0, 0, 6.6-s_length/2); + GeoTrf::Transform3D offset1 = pos1*rm; + GeoTrf::Transform3D offset2 = pos2*rm; + GeoTrf::Transform3D offset3 = pos3*rm; + GeoTrf::Transform3D offset4 = pos4*rm; + //GeoTrf::Transform3D offset7 = pos7*rm1; + GeoTrf::Transform3D offset8 = pos8*rm1; const GeoShapeSubtraction& blm1 = blmWallBox->subtract(((*blmWallHole3) << offset8)); const GeoShapeSubtraction& blm2 = blm1.subtract(((*blmWallHole) << offset2)); @@ -255,19 +235,16 @@ GeoPhysVol* BLM_Wall::BuildLayerIII(double thick, const GeoMaterial* material) const GeoShape* blmWallBox = new GeoBox(s_width/2, thick/2, s_length/2); const GeoShape* blmWallHole = new GeoTube(0, s_hole_r, thick); const GeoShape* blmWallHole1 = new GeoBox(s_width/2-3.5, thick, 5.425); - CLHEP::HepRotation rm; - CLHEP::HepRotation rm1; - rm.rotateX(90.*CLHEP::deg); - CLHEP::Hep3Vector pos1(s_width/2-s_hole_position, 0, s_length/2-s_hole_position); - CLHEP::Hep3Vector pos2(s_hole_position-s_width/2, 0, s_length/2-s_hole_position); - CLHEP::Hep3Vector pos3(s_width/2-s_hole_position, 0, s_hole_position-s_length/2); - CLHEP::Hep3Vector pos4(s_hole_position-s_width/2, 0, s_hole_position-s_length/2); - CLHEP::Hep3Vector pos5(0, 0, 2.075); - HepGeom::Transform3D offset1(rm,pos1); - HepGeom::Transform3D offset2(rm,pos2); - HepGeom::Transform3D offset3(rm,pos3); - HepGeom::Transform3D offset4(rm,pos4); - HepGeom::Transform3D offset5(rm1,pos5); + GeoTrf::RotateX3D rm(90.*GeoModelKernelUnits::deg); + GeoTrf::Translation3D pos1(s_width/2-s_hole_position, 0, s_length/2-s_hole_position); + GeoTrf::Translation3D pos2(s_hole_position-s_width/2, 0, s_length/2-s_hole_position); + GeoTrf::Translation3D pos3(s_width/2-s_hole_position, 0, s_hole_position-s_length/2); + GeoTrf::Translation3D pos4(s_hole_position-s_width/2, 0, s_hole_position-s_length/2); + GeoTrf::Translate3D offset5(0, 0, 2.075); + GeoTrf::Transform3D offset1 = pos1*rm; + GeoTrf::Transform3D offset2 = pos2*rm; + GeoTrf::Transform3D offset3 = pos3*rm; + GeoTrf::Transform3D offset4 = pos4*rm; const GeoShapeSubtraction& blm1 = blmWallBox->subtract(((*blmWallHole) << offset1)); const GeoShapeSubtraction& blm2 = blm1.subtract(((*blmWallHole) << offset2)); const GeoShapeSubtraction& blm3 = blm2.subtract(((*blmWallHole) << offset3)); @@ -286,21 +263,17 @@ GeoPhysVol* BLM_Wall::BuildLayerIV(double thick, const GeoMaterial* material) const GeoShape* blmWallHole = new GeoTube(0, s_hole_r, thick); const GeoShape* blmWallHole1 = new GeoBox(s_width/2-3.5, thick, 5.425); const GeoShape* blmWallHole2 = new GeoBox(s_width/2-8.1, thick, 4); - CLHEP::HepRotation rm; - CLHEP::HepRotation rm1; - rm.rotateX(90.*CLHEP::deg); - CLHEP::Hep3Vector pos1(s_width/2-s_hole_position, 0, s_length/2-s_hole_position); - CLHEP::Hep3Vector pos2(s_hole_position-s_width/2, 0, s_length/2-s_hole_position); - CLHEP::Hep3Vector pos3(s_width/2-s_hole_position, 0, s_hole_position-s_length/2); - CLHEP::Hep3Vector pos4(s_hole_position-s_width/2, 0, s_hole_position-s_length/2); - CLHEP::Hep3Vector pos5(0, 0, 2.075); - CLHEP::Hep3Vector pos6(0, 0, -7.175); - HepGeom::Transform3D offset1(rm,pos1); - HepGeom::Transform3D offset2(rm,pos2); - HepGeom::Transform3D offset3(rm,pos3); - HepGeom::Transform3D offset4(rm,pos4); - HepGeom::Transform3D offset5(rm1,pos5); - HepGeom::Transform3D offset6(rm1,pos6); + GeoTrf::RotateX3D rm(90.*GeoModelKernelUnits::deg); + GeoTrf::Translation3D pos1(s_width/2-s_hole_position, 0, s_length/2-s_hole_position); + GeoTrf::Translation3D pos2(s_hole_position-s_width/2, 0, s_length/2-s_hole_position); + GeoTrf::Translation3D pos3(s_width/2-s_hole_position, 0, s_hole_position-s_length/2); + GeoTrf::Translation3D pos4(s_hole_position-s_width/2, 0, s_hole_position-s_length/2); + GeoTrf::Translate3D offset5(0, 0, 2.075); + GeoTrf::Translate3D offset6(0, 0, -7.175); + GeoTrf::Transform3D offset1 = pos1*rm; + GeoTrf::Transform3D offset2 = pos2*rm; + GeoTrf::Transform3D offset3 = pos3*rm; + GeoTrf::Transform3D offset4 = pos4*rm; const GeoShapeSubtraction& blm1 = blmWallBox->subtract(((*blmWallHole) << offset1)); const GeoShapeSubtraction& blm2 = blm1.subtract(((*blmWallHole) << offset2)); const GeoShapeSubtraction& blm3 = blm2.subtract(((*blmWallHole) << offset3)); @@ -318,16 +291,15 @@ GeoPhysVol* BLM_Wall::BuildLayerV(double thick, const GeoMaterial* material) { const GeoShape* blmWallBox = new GeoBox(s_width/2, thick/2, s_length/2); const GeoShape* blmWallHole = new GeoTube(0, s_hole_r, thick); - CLHEP::HepRotation rm; - rm.rotateX(90.*CLHEP::deg); - CLHEP::Hep3Vector pos1(s_width/2-s_hole_position, 0, s_length/2-s_hole_position); - CLHEP::Hep3Vector pos2(s_hole_position-s_width/2, 0, s_length/2-s_hole_position); - CLHEP::Hep3Vector pos3(s_width/2-s_hole_position, 0, s_hole_position-s_length/2); - CLHEP::Hep3Vector pos4(s_hole_position-s_width/2, 0, s_hole_position-s_length/2); - HepGeom::Transform3D offset1(rm,pos1); - HepGeom::Transform3D offset2(rm,pos2); - HepGeom::Transform3D offset3(rm,pos3); - HepGeom::Transform3D offset4(rm,pos4); + GeoTrf::RotateX3D rm(90.*GeoModelKernelUnits::deg); + GeoTrf::Translation3D pos1(s_width/2-s_hole_position, 0, s_length/2-s_hole_position); + GeoTrf::Translation3D pos2(s_hole_position-s_width/2, 0, s_length/2-s_hole_position); + GeoTrf::Translation3D pos3(s_width/2-s_hole_position, 0, s_hole_position-s_length/2); + GeoTrf::Translation3D pos4(s_hole_position-s_width/2, 0, s_hole_position-s_length/2); + GeoTrf::Transform3D offset1 = pos1*rm; + GeoTrf::Transform3D offset2 = pos2*rm; + GeoTrf::Transform3D offset3 = pos3*rm; + GeoTrf::Transform3D offset4 = pos4*rm; const GeoShapeSubtraction& blm1 = blmWallBox->subtract(((*blmWallHole) << offset1)); const GeoShapeSubtraction& blm2 = blm1.subtract(((*blmWallHole) << offset2)); const GeoShapeSubtraction& blm3 = blm2.subtract(((*blmWallHole) << offset3)); diff --git a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/CMakeLists.txt b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/CMakeLists.txt index a9dee220a6c22bf163046db9298db0b833738160..35712cde5b08e3eaa3b80ff882ef53ec7e2f698d 100644 --- a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/CMakeLists.txt +++ b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/CMakeLists.txt @@ -9,18 +9,19 @@ atlas_subdir( InDetGeoModelUtils ) atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel Database/RDBAccessSvc - DetectorDescription/GeoModel/GeoModelKernel GaudiKernel PRIVATE Control/StoreGate DetectorDescription/GeoModel/GeoModelInterfaces DetectorDescription/GeoModel/GeoModelUtilities + DetectorDescription/GeoPrimitives DetectorDescription/GeometryDBSvc ) # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( InDetGeoModelUtils @@ -28,6 +29,6 @@ atlas_add_library( InDetGeoModelUtils PUBLIC_HEADERS InDetGeoModelUtils INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} AthenaKernel GeoModelKernel GaudiKernel StoreGateLib SGtests + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaKernel GaudiKernel StoreGateLib SGtests PRIVATE_LINK_LIBRARIES GeoModelUtilities ) diff --git a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/InDetGeoModelUtils/TopLevelPlacements.h b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/InDetGeoModelUtils/TopLevelPlacements.h index ae144a72c31932d7264b03740da7dce31bab265e..541fba5a4428927cadbb3159d7d03817e5b99db8 100755 --- a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/InDetGeoModelUtils/TopLevelPlacements.h +++ b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/InDetGeoModelUtils/TopLevelPlacements.h @@ -5,8 +5,9 @@ #ifndef INDETGEOMODELUTILS_TOPLEVELPLACEMENTS_H #define INDETGEOMODELUTILS_TOPLEVELPLACEMENTS_H -#include "CLHEP/Geometry/Transform3D.h" #include "RDBAccessSvc/IRDBAccessSvc.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include <map> #include <string> @@ -22,7 +23,7 @@ public: ~TopLevelPlacements(); bool present(const std::string & partName) const; - const HepGeom::Transform3D & transform(const std::string & partName) const; + const GeoTrf::Transform3D & transform(const std::string & partName) const; private: @@ -30,18 +31,17 @@ private: class Part { public: std::string label; - HepGeom::Transform3D transform; + GeoTrf::Transform3D transform; }; void fillPlacements(IRDBRecordset_ptr topLevelTable); - HepGeom::Transform3D partTransform(const IRDBRecord* record) const; + GeoTrf::Transform3D partTransform(const IRDBRecord* record) const; Part * getPart(const std::string & partName) const; std::map<std::string, Part *> m_parts; bool m_noTopLevelTable; - static HepGeom::Transform3D s_identityTransform; - + static GeoTrf::Transform3D s_identityTransform; }; #endif // INDETGEOMODELUTILS_TOPLEVELPLACEMENTS_H diff --git a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/ExtraMaterial.cxx b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/ExtraMaterial.cxx index 87de0f163a37107375ac09a7a35071aeb57a11b6..6dfe4a12d5e24b44ee2ac5d39c4d6f184bc8d337 100755 --- a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/ExtraMaterial.cxx +++ b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/ExtraMaterial.cxx @@ -9,16 +9,14 @@ //#include "InDetGeoModelUtils/InDetMaterialManager.h" #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBRecord.h" +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoFullPhysVol.h" #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoTubs.h" #include "GeoModelKernel/GeoCons.h" -#include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Geometry/Transform3D.h" - #include "GeoModelInterfaces/AbsMaterialManager.h" diff --git a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/GenericTubeMaker.cxx b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/GenericTubeMaker.cxx index 920a3f051611a1748435fc7b09f24ccb3e37dba2..94f7b5f36303677a0ac5ab8c80d37971cad81a95 100755 --- a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/GenericTubeMaker.cxx +++ b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/GenericTubeMaker.cxx @@ -12,6 +12,8 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoFullPhysVol.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "RDBAccessSvc/IRDBRecord.h" @@ -98,7 +100,7 @@ namespace InDetDD { GeoTransform* xform = 0; double zOffset = m_volData.zMid() - zParent; if (zOffset != 0 || iRepeat > 0) { - xform = new GeoTransform(HepGeom::TranslateZ3D(zOffset) * HepGeom::RotateZ3D(phi)); + xform = new GeoTransform(GeoTrf::TranslateZ3D(zOffset) * GeoTrf::RotateZ3D(phi)); } if (parent) { @@ -111,8 +113,8 @@ namespace InDetDD { // Place in negative z as well. if (m_volData.bothZ()) { - GeoTransform* xformNeg = new GeoTransform(HepGeom::RotateY3D(180 * CLHEP::deg) * HepGeom::TranslateZ3D( - zOffset) * HepGeom::RotateZ3D(phi)); + GeoTransform* xformNeg = new GeoTransform(GeoTrf::RotateY3D(180 * GeoModelKernelUnits::deg) * GeoTrf::TranslateZ3D( + zOffset) * GeoTrf::RotateZ3D(phi)); if (parent) { parent->add(xformNeg); parent->add(child); @@ -135,20 +137,20 @@ namespace InDetDD { if (parentPos) { if (newXform) { - parentPos->add(new GeoTransform(HepGeom::TranslateZ3D(zOffset) * HepGeom::RotateZ3D(phi))); + parentPos->add(new GeoTransform(GeoTrf::TranslateZ3D(zOffset) * GeoTrf::RotateZ3D(phi))); } parentPos->add(child); } else if (fullparentPos) { if (newXform) { - fullparentPos->add(new GeoTransform(HepGeom::TranslateZ3D(zOffset) * HepGeom::RotateZ3D(phi))); + fullparentPos->add(new GeoTransform(GeoTrf::TranslateZ3D(zOffset) * GeoTrf::RotateZ3D(phi))); } fullparentPos->add(child); } // Place in negative z as well. if (m_volData.bothZ()) { - GeoTransform* xformNeg = new GeoTransform(HepGeom::RotateY3D(180 * CLHEP::deg) * HepGeom::TranslateZ3D( - zOffset) * HepGeom::RotateZ3D(phi)); + GeoTransform* xformNeg = new GeoTransform(GeoTrf::RotateY3D(180 * GeoModelKernelUnits::deg) * GeoTrf::TranslateZ3D( + zOffset) * GeoTrf::RotateZ3D(phi)); if (parentNeg) { parentNeg->add(xformNeg); parentNeg->add(child); diff --git a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/InDetMaterialManager.cxx b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/InDetMaterialManager.cxx index f8ae66df9ce4848ed96b55a164611b6d00a5d8c1..e811e511ae69e7f650bd612a7c7f15f94ed58262 100755 --- a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/InDetMaterialManager.cxx +++ b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/InDetMaterialManager.cxx @@ -8,11 +8,11 @@ #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoElement.h" +#include "GeoModelKernel/Units.h" #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBRecord.h" #include "GeometryDBSvc/IGeometryDBSvc.h" #include "StoreGate/StoreGateSvc.h" -#include "CLHEP/Units/SystemOfUnits.h" #include <iostream> #include <iomanip> @@ -142,8 +142,8 @@ InDetMaterialManager::getCompositeMaterialForVolume(const std::string& newMatNam baseMaterials.reserve(2); fracWeight.reserve(2); - msg(MSG::DEBUG) << "Composite material : " << volumeTot / CLHEP::cm3 << " = " << volume1 / CLHEP::cm3 << " + " << - volume2 / CLHEP::cm3 << endmsg; + msg(MSG::DEBUG) << "Composite material : " << volumeTot / GeoModelKernelUnits::cm3 << " = " << volume1 / GeoModelKernelUnits::cm3 << " + " << + volume2 / GeoModelKernelUnits::cm3 << endmsg; msg(MSG::DEBUG) << "Composite material : " << matName1 << " " << matName2 << endmsg; double density1, density2; @@ -152,21 +152,21 @@ InDetMaterialManager::getCompositeMaterialForVolume(const std::string& newMatNam if ((iter = m_weightMap.find(matName1)) != m_weightMap.end()) { const GeoMaterial* mat1 = getMaterialForVolume(matName1, volume1); density1 = mat1->getDensity(); - msg(MSG::DEBUG) << "Composite material 1 - weight : " << density1 / (CLHEP::gram / CLHEP::cm3) << endmsg; + msg(MSG::DEBUG) << "Composite material 1 - weight : " << density1 / (GeoModelKernelUnits::gram / GeoModelKernelUnits::cm3) << endmsg; } else { const GeoMaterial* mat1 = getMaterial(matName1); density1 = mat1->getDensity(); - msg(MSG::DEBUG) << "Composite material 1 - standard : " << density1 / (CLHEP::gram / CLHEP::cm3) << endmsg; + msg(MSG::DEBUG) << "Composite material 1 - standard : " << density1 / (GeoModelKernelUnits::gram / GeoModelKernelUnits::cm3) << endmsg; } if ((iter = m_weightMap.find(matName2)) != m_weightMap.end()) { const GeoMaterial* mat2 = getMaterialForVolume(matName2, volume2); density2 = mat2->getDensity(); - msg(MSG::DEBUG) << "Composite material 2 - weight : " << density2 / (CLHEP::gram / CLHEP::cm3) << endmsg; + msg(MSG::DEBUG) << "Composite material 2 - weight : " << density2 / (GeoModelKernelUnits::gram / GeoModelKernelUnits::cm3) << endmsg; } else { const GeoMaterial* mat2 = getMaterial(matName2); density2 = mat2->getDensity(); - msg(MSG::DEBUG) << "Composite material 2 - standard : " << density2 / (CLHEP::gram / CLHEP::cm3) << endmsg; + msg(MSG::DEBUG) << "Composite material 2 - standard : " << density2 / (GeoModelKernelUnits::gram / GeoModelKernelUnits::cm3) << endmsg; } double weight1 = density1 * volume1; @@ -179,9 +179,9 @@ InDetMaterialManager::getCompositeMaterialForVolume(const std::string& newMatNam double frac2 = weight2 / (weight1 + weight2); double density_2 = 1.0 / (frac1 / density1 + frac2 / density2); double density_3 = (weight1 + weight2) / (volume1 + volume2); - msg(MSG::DEBUG) << "-> weights : " << weight1 / (CLHEP::gram) << " " << weight2 / (CLHEP::gram) << endmsg; - msg(MSG::DEBUG) << "-> density : " << density / (CLHEP::gram / CLHEP::cm3) << " " << density_2 / - (CLHEP::gram / CLHEP::cm3) << " " << density_3 / (CLHEP::gram / CLHEP::cm3) << endmsg; + msg(MSG::DEBUG) << "-> weights : " << weight1 / (GeoModelKernelUnits::gram) << " " << weight2 / (GeoModelKernelUnits::gram) << endmsg; + msg(MSG::DEBUG) << "-> density : " << density / (GeoModelKernelUnits::gram / GeoModelKernelUnits::cm3) << " " << density_2 / + (GeoModelKernelUnits::gram / GeoModelKernelUnits::cm3) << " " << density_3 / (GeoModelKernelUnits::gram / GeoModelKernelUnits::cm3) << endmsg; baseMaterials.push_back(matName1); @@ -228,8 +228,8 @@ InDetMaterialManager::getMaterialInternal(const std::string& origMaterialName, if (material) { if (!compareDensity(material->getDensity(), density)) { msg(MSG::WARNING) << "Density is not consistent for material " << newName2 - << " " << material->getDensity() / (CLHEP::gram / CLHEP::cm3) - << " / " << density / (CLHEP::gram / CLHEP::cm3) << endmsg; + << " " << material->getDensity() / (GeoModelKernelUnits::gram / GeoModelKernelUnits::cm3) + << " / " << density / (GeoModelKernelUnits::gram / GeoModelKernelUnits::cm3) << endmsg; } newMaterial = material; } else { @@ -311,7 +311,7 @@ InDetMaterialManager::addMaterial(GeoMaterial* material) { m_store[name] = material; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Created new material: " << name << ", " << material->getDensity() / - (CLHEP::g / CLHEP::cm3) << " CLHEP::g/CLHEP::cm3" << endmsg; + (GeoModelKernelUnits::g / GeoModelKernelUnits::cm3) << " g/cm3" << endmsg; } } @@ -338,7 +338,7 @@ InDetMaterialManager::addWeightTable(IRDBRecordset_ptr weightTable, const std::s if (db()->testField(weightTable, "BASEMATERIAL", i)) { materialBase = db()->getString(weightTable, "BASEMATERIAL", i); } - double weight = db()->getDouble(weightTable, "WEIGHT", i) * CLHEP::gram; + double weight = db()->getDouble(weightTable, "WEIGHT", i) * GeoModelKernelUnits::gram; //std::cout << materialName << " " << materialBase << " " << weight/CLHEP::g << std::endl; bool linearWeightFlag = false; @@ -364,7 +364,7 @@ void InDetMaterialManager::addWeightMaterial(std::string materialName, std::string materialBase, double weight, int linearWeightFlag) { // Weight in gr - weight = weight * CLHEP::gram; + weight = weight * GeoModelKernelUnits::gram; if (m_weightMap.find(materialName) != m_weightMap.end()) { msg(MSG::WARNING) << "Material: " << materialName << " already exists in weight table" << endmsg; @@ -389,7 +389,7 @@ InDetMaterialManager::addWeightTableOld(IRDBRecordset_ptr weightTable, const std if (!record->isFieldNull("BASEMATERIAL")) { materialBase = record->getString("BASEMATERIAL"); } - double weight = record->getDouble("WEIGHT") * CLHEP::gram; + double weight = record->getDouble("WEIGHT") * GeoModelKernelUnits::gram; //std::cout << materialName << " " << materialBase << " " << weight/CLHEP::g << std::endl; bool linearWeightFlag = false; @@ -492,12 +492,12 @@ InDetMaterialManager::getMaterialForVolume(const std::string& materialName, doub if (msgLvl(MSG::VERBOSE)) { msg(MSG::VERBOSE) << - "Found material in weight table - name, base, weight(CLHEP::g), volume(CLHEP::cm3), density(CLHEP::g/CLHEP::cm3): " + "Found material in weight table - name, base, weight(g), volume(cm3), density(g/cm3): " << materialName << ", " << materialBase << ", " - << weight / CLHEP::gram << ", " - << volume / CLHEP::cm3 << ", " - << density / (CLHEP::g / CLHEP::cm3) << endmsg; + << weight / GeoModelKernelUnits::gram << ", " + << volume / GeoModelKernelUnits::cm3 << ", " + << density / (GeoModelKernelUnits::g / GeoModelKernelUnits::cm3) << endmsg; } if (materialBase.empty()) { @@ -516,7 +516,7 @@ InDetMaterialManager::getMaterialForVolume(const std::string& materialName, doub msg(MSG::VERBOSE) << "Material not in weight table, using standard material: " << materialName - << ", volume(CLHEP::cm3) = " << volume / CLHEP::cm3 + << ", volume(cm3) = " << volume / GeoModelKernelUnits::cm3 << endmsg; return getMaterial(materialName); } @@ -586,7 +586,7 @@ InDetMaterialManager::getMaterialForVolumeLength(const std::string& materialName msg(MSG::VERBOSE) << "Material not in weight table, using standard material: " << materialName - << ", volume(CLHEP::cm3) = " << volume / CLHEP::cm3 + << ", volume(cm3) = " << volume / GeoModelKernelUnits::cm3 << endmsg; return getMaterial(materialName); } @@ -639,9 +639,9 @@ InDetMaterialManager::getMaterialForVolumeLength(const std::string& name, weight *= factors[iComp]; } msg(MSG::DEBUG) << "Material " << materialName - << " found in weight table, weight " << iter->second.weight / CLHEP::gram + << " found in weight table, weight " << iter->second.weight / GeoModelKernelUnits::gram << " factor " << factors[iComp] - << " w*fac*len " << weight * length / CLHEP::gram + << " w*fac*len " << weight * length / GeoModelKernelUnits::gram << " basMat " << materialBase << " linear? " << iter->second.linearWeightFlag << endmsg; @@ -668,7 +668,7 @@ InDetMaterialManager::getMaterialForVolumeLength(const std::string& name, */ // In this case the factor should correspond to the linear weight - double weight = factors.at(iComp) * length * CLHEP::gram; + double weight = factors.at(iComp) * length * GeoModelKernelUnits::gram; // If material not found, will get error message when attempting to make the material. So carry on here. baseMaterials.push_back(materialName); @@ -681,7 +681,7 @@ InDetMaterialManager::getMaterialForVolumeLength(const std::string& name, msg(MSG::VERBOSE) << "Creating material from multiple components: " << name << endmsg; for (unsigned int i = 0; i < materialComponents.size(); ++i) { msg(MSG::VERBOSE) << " Component " << i << ": Name = " << baseMaterials[i] - << " Weight(CLHEP::g) = " << fracWeight[i] / CLHEP::g << endmsg; + << " Weight(g) = " << fracWeight[i] / GeoModelKernelUnits::g << endmsg; } } @@ -799,7 +799,7 @@ InDetMaterialManager::addTextFileMaterials() { // read in material table for (unsigned int iMat = 0; iMat < db()->getTableSize(materialTable); iMat++) { std::string materialName = db()->getString(materialTable, "NAME", iMat); - double density = db()->getDouble(materialTable, "DENSITY", iMat) * CLHEP::g / CLHEP::cm3; + double density = db()->getDouble(materialTable, "DENSITY", iMat) * GeoModelKernelUnits::g / GeoModelKernelUnits::cm3; materials[materialName] = MaterialDef(materialName, density); } @@ -899,7 +899,7 @@ InDetMaterialManager::createMaterial(const MaterialDef& material) { // Now build the material GeoMaterial* newMaterial = new GeoMaterial(material.name(), material.density()); if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Creating material: " << material.name() - << " with density: " << material.density() / (CLHEP::g / CLHEP::cm3) << + << " with density: " << material.density() / (GeoModelKernelUnits::g / GeoModelKernelUnits::cm3) << endmsg; for (unsigned int i = 0; i < material.numComponents(); i++) { double fracWeight = material.fraction(i) / totWeight; diff --git a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/ServiceVolume.cxx b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/ServiceVolume.cxx index e722f04071822d4f45dd2123da58d82a3fc0d56f..55c9e70441e960b4a51497503116c761021ed0cd 100755 --- a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/ServiceVolume.cxx +++ b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/ServiceVolume.cxx @@ -52,31 +52,31 @@ // Ignored: ROUT, RIN2, ROUT2 // RIN: Radial position of center of tube // PHI: phi position of center -// WIDTH (CLHEP::mm): diameter +// WIDTH (mm): diameter // REPEAT: Repeat this many times in phi with equal distance between them. // ROD2 (hollow tube not centered around Z axis) // Ignored: ROUT, ROUT2 // RIN: Radial position of center of tube // RIN2: inner radius // PHI: phi position of center -// WIDTH (CLHEP::mm): diameter +// WIDTH (mm): diameter // REPEAT: Repeat this many times in phi with equal distance between them. // BOX // Ignored: RIN2, ROUT2 // ROUT-RIN = thickness of box (radially) // (RIN+ROUT)/2 = radial poistion of center of box // PHI: phi position of center -// WIDTH (CLHEP::mm) = width of box +// WIDTH (mm) = width of box // REPEAT: Repeat this many times in phi with equal distance between them. // TRAP // Ignored: RIN2, ROUT2 // ROUT-RIN = thickness of trapezoid (radially) // (RIN+ROUT)/2 = radial poistion of center of trapzoid // PHI: phi position of center -// WIDTH (CLHEP::mm) = width of trapezoid at center +// WIDTH (mm) = width of trapezoid at center // REPEAT: Repeat this many times in phi with equal distance between them. // -// **IMPORTANT NOTE** WIDTH can be in degrees or CLHEP::mm. See OraclePixGeoManager +// **IMPORTANT NOTE** WIDTH can be in degrees or mm. See OraclePixGeoManager #include "InDetGeoModelUtils/ServiceVolume.h" #include "GeoModelKernel/GeoTube.h" @@ -86,6 +86,7 @@ #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoTrap.h" #include "GeoModelKernel/GeoShapeSubtraction.h" +#include "GeoModelKernel/Units.h" #include <string> #include <iostream> @@ -238,10 +239,10 @@ namespace InDetDD { // Inner edge GeoShape* shapeTmp2 = 0; if (m_rmin == m_rmin2) { - shapeTmp2 = new GeoTube(0, m_rmin, halflength + 0.1 * CLHEP::mm); + shapeTmp2 = new GeoTube(0, m_rmin, halflength + 0.1 * GeoModelKernelUnits::mm); volume -= 2 * M_PI * m_rmin * m_rmin * halflength; } else { - shapeTmp2 = new GeoCons(0, 0, m_rmin, m_rmin2, halflength + 0.1 * CLHEP::mm, 0, 2 * M_PI); + shapeTmp2 = new GeoCons(0, 0, m_rmin, m_rmin2, halflength + 0.1 * GeoModelKernelUnits::mm, 0, 2 * M_PI); volume -= 2 * M_PI * pow(0.5 * (m_rmin + m_rmin2), 2) * halflength; } serviceShape = &(shapeTmp1->subtract(*shapeTmp2)); diff --git a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/ServiceVolumeMaker.cxx b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/ServiceVolumeMaker.cxx index c980d5cc37dc21ae2661a1da58a2401bd8dd6352..8e56a2b2ca2cf23a8a7be85305bfe7c833873aff 100755 --- a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/ServiceVolumeMaker.cxx +++ b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/ServiceVolumeMaker.cxx @@ -10,7 +10,7 @@ #include "RDBAccessSvc/IRDBRecordset.h" #include "GeometryDBSvc/IGeometryDBSvc.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" namespace InDetDD { ServiceVolumeSchema::ServiceVolumeSchema() { @@ -97,56 +97,56 @@ namespace InDetDD { double ServiceVolumeMakerMgr::rmin(int index) const { - return db()->getDouble(m_table, m_schema.rmin(), index) * CLHEP::mm; + return db()->getDouble(m_table, m_schema.rmin(), index) * GeoModelKernelUnits::mm; } double ServiceVolumeMakerMgr::rmax(int index) const { - return db()->getDouble(m_table, m_schema.rmax(), index) * CLHEP::mm; + return db()->getDouble(m_table, m_schema.rmax(), index) * GeoModelKernelUnits::mm; } double ServiceVolumeMakerMgr::rmin2(int index) const { - return db()->getDouble(m_table, m_schema.rmin2(), index) * CLHEP::mm; + return db()->getDouble(m_table, m_schema.rmin2(), index) * GeoModelKernelUnits::mm; } double ServiceVolumeMakerMgr::rmax2(int index) const { - return db()->getDouble(m_table, m_schema.rmax2(), index) * CLHEP::mm; + return db()->getDouble(m_table, m_schema.rmax2(), index) * GeoModelKernelUnits::mm; } double ServiceVolumeMakerMgr::zmin(int index) const { - return db()->getDouble(m_table, m_schema.zmin(), index) * CLHEP::mm; + return db()->getDouble(m_table, m_schema.zmin(), index) * GeoModelKernelUnits::mm; } double ServiceVolumeMakerMgr::zmax(int index) const { - return db()->getDouble(m_table, m_schema.zmax(), index) * CLHEP::mm; + return db()->getDouble(m_table, m_schema.zmax(), index) * GeoModelKernelUnits::mm; } double ServiceVolumeMakerMgr::phiDelta(int index) const { - return db()->getDouble(m_table, m_schema.phiDelta(), index) * CLHEP::deg; + return db()->getDouble(m_table, m_schema.phiDelta(), index) * GeoModelKernelUnits::deg; } double ServiceVolumeMakerMgr::width(int index) const { if (m_schema.has_width()) { - return db()->getDouble(m_table, m_schema.width(), index) * CLHEP::mm; + return db()->getDouble(m_table, m_schema.width(), index) * GeoModelKernelUnits::mm; } return 0; } double ServiceVolumeMakerMgr::phiStart(int index) const { - return db()->getDouble(m_table, m_schema.phiStart(), index) * CLHEP::deg; + return db()->getDouble(m_table, m_schema.phiStart(), index) * GeoModelKernelUnits::deg; } double ServiceVolumeMakerMgr::phiStep(int index) const { if (m_schema.has_phiStep()) { - return db()->getDouble(m_table, m_schema.phiStep(), index) * CLHEP::deg; + return db()->getDouble(m_table, m_schema.phiStep(), index) * GeoModelKernelUnits::deg; } return 0; } @@ -309,8 +309,8 @@ namespace InDetDD { double phiDelta = m_mgr->phiDelta(ii); bool fullPhiSector = false; - if (phiDelta == 0 || phiDelta >= 359.9 * CLHEP::degree) { - phiDelta = 360 * CLHEP::degree; + if (phiDelta == 0 || phiDelta >= 359.9 * GeoModelKernelUnits::degree) { + phiDelta = 360 * GeoModelKernelUnits::degree; fullPhiSector = true; } //else { @@ -340,12 +340,12 @@ namespace InDetDD { double phiWidth = phiDelta; if (shapeType == "CONS" || shapeType == "TUBS") { - const double phiepsilon = 0.001 * CLHEP::degree; + const double phiepsilon = 0.001 * GeoModelKernelUnits::degree; phiWidth -= 2 * phiepsilon; phiStart += phiepsilon; } - // Can be in degree or CLHEP::mm. Usually it is CLHEP::deg expect for BOX, TRAP and ROD shape + // Can be in degree or mm. Usually it is deg expect for BOX, TRAP and ROD shape // Geometry manager makes no assumptions about units. So we must interpret here. if (shapeType == "BOX" || shapeType == "ROD" || shapeType == "ROD2" || shapeType == "TRAP") { phiWidth = m_mgr->width(ii); // in mm diff --git a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/TopLevelPlacements.cxx b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/TopLevelPlacements.cxx index bd6b6f12ce86117c50ba3d599715e36c6b9da583..8f8fce59eefee18d1359cfaf7be0e7bc37f5f488 100755 --- a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/TopLevelPlacements.cxx +++ b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/TopLevelPlacements.cxx @@ -2,19 +2,13 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ - #include "InDetGeoModelUtils/TopLevelPlacements.h" - -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoModelKernel/Units.h" #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBRecord.h" +#include <iostream> - - - -HepGeom::Transform3D TopLevelPlacements::s_identityTransform = HepGeom::Transform3D(); - +GeoTrf::Transform3D TopLevelPlacements::s_identityTransform = GeoTrf::Transform3D::Identity(); TopLevelPlacements::TopLevelPlacements(IRDBRecordset_ptr topLevelTable) : m_noTopLevelTable(true) { @@ -26,7 +20,7 @@ TopLevelPlacements::~TopLevelPlacements() { for (iter = m_parts.begin(); iter != m_parts.end(); ++iter) delete iter->second; } -const HepGeom::Transform3D& +const GeoTrf::Transform3D& TopLevelPlacements::transform(const std::string& partName) const { Part* part = getPart(partName); @@ -63,18 +57,18 @@ TopLevelPlacements::fillPlacements(IRDBRecordset_ptr topLevelTable) { } } -HepGeom::Transform3D +GeoTrf::Transform3D TopLevelPlacements::partTransform(const IRDBRecord* record) const { - double posX = record->getDouble("POSX") * CLHEP::mm; - double posY = record->getDouble("POSY") * CLHEP::mm; - double posZ = record->getDouble("POSZ") * CLHEP::mm; - double rotX = record->getDouble("ROTX") * CLHEP::degree; - double rotY = record->getDouble("ROTY") * CLHEP::degree; - double rotZ = record->getDouble("ROTZ") * CLHEP::degree; + double posX = record->getDouble("POSX") * GeoModelKernelUnits::mm; + double posY = record->getDouble("POSY") * GeoModelKernelUnits::mm; + double posZ = record->getDouble("POSZ") * GeoModelKernelUnits::mm; + double rotX = record->getDouble("ROTX") * GeoModelKernelUnits::degree; + double rotY = record->getDouble("ROTY") * GeoModelKernelUnits::degree; + double rotZ = record->getDouble("ROTZ") * GeoModelKernelUnits::degree; int rotOrder = record->getInt("ROTORDER"); // Translation part - HepGeom::Transform3D transform = HepGeom::Translate3D(posX, posY, posZ); + GeoTrf::Translate3D transform(posX, posY, posZ); // If rotation is zero return translation if (rotX == 0 && rotY == 0 && rotZ == 0) { @@ -100,14 +94,14 @@ TopLevelPlacements::partTransform(const IRDBRecord* record) const { } // List of the three transforms - HepGeom::Transform3D* xformList[3] = { + GeoTrf::Transform3D* xformList[3] = { 0, 0, 0 }; - if (rotX != 0) xformList[0] = new HepGeom::RotateX3D(rotX); - if (rotY != 0) xformList[1] = new HepGeom::RotateY3D(rotY); - if (rotZ != 0) xformList[2] = new HepGeom::RotateZ3D(rotZ); + if (rotX != 0) xformList[0] = new GeoTrf::RotateX3D(rotX); + if (rotY != 0) xformList[1] = new GeoTrf::RotateY3D(rotY); + if (rotZ != 0) xformList[2] = new GeoTrf::RotateZ3D(rotZ); - HepGeom::Transform3D rotation; + GeoTrf::Transform3D rotation(GeoTrf::Transform3D::Identity()); if (xformList[ixyz1]) rotation = *(xformList[ixyz1]) * rotation; if (xformList[ixyz2]) rotation = *(xformList[ixyz2]) * rotation; if (xformList[ixyz3]) rotation = *(xformList[ixyz3]) * rotation; diff --git a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/TubeVolData.cxx b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/TubeVolData.cxx index d12523d06b71de476a15857d63f657627bdc0341..10e14267b979241d7bca3d8410a0b2758a30ad17 100755 --- a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/TubeVolData.cxx +++ b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/TubeVolData.cxx @@ -4,7 +4,7 @@ #include "InDetGeoModelUtils/TubeVolData.h" #include "RDBAccessSvc/IRDBRecord.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <cmath> #include <string> @@ -36,7 +36,7 @@ namespace InDetDD { m_length(0.), m_zMid(0.) { // add an 2*epsilon gap between phi sectors. - const double phiepsilon = 0.001 * CLHEP::degree; + const double phiepsilon = 0.001 * GeoModelKernelUnits::degree; bool fullPhiSector = false; @@ -45,14 +45,14 @@ namespace InDetDD { // The rest are obtained directly from RDB. if (m_record) { - m_phiStart = m_record->getDouble("PHISTART") * CLHEP::degree; - m_phiDelta = m_record->getDouble("PHIDELTA") * CLHEP::degree; - m_phiStep = m_record->getDouble("PHISTEP") * CLHEP::degree; + m_phiStart = m_record->getDouble("PHISTART") * GeoModelKernelUnits::degree; + m_phiDelta = m_record->getDouble("PHIDELTA") * GeoModelKernelUnits::degree; + m_phiStep = m_record->getDouble("PHISTEP") * GeoModelKernelUnits::degree; m_nRepeat = m_record->getInt("NREPEAT"); - m_rmin1 = m_record->getDouble("RMIN") * CLHEP::mm; - m_rmax1 = m_record->getDouble("RMAX") * CLHEP::mm; - m_rmin2 = m_record->getDouble("RMIN2") * CLHEP::mm; - m_rmax2 = m_record->getDouble("RMAX2") * CLHEP::mm; + m_rmin1 = m_record->getDouble("RMIN") * GeoModelKernelUnits::mm; + m_rmax1 = m_record->getDouble("RMAX") * GeoModelKernelUnits::mm; + m_rmin2 = m_record->getDouble("RMIN2") * GeoModelKernelUnits::mm; + m_rmax2 = m_record->getDouble("RMAX2") * GeoModelKernelUnits::mm; m_radialDiv = 0; if (!m_record->isFieldNull("RADIAL")) { m_radialDiv = m_record->getInt("RADIAL"); @@ -62,13 +62,13 @@ namespace InDetDD { m_bothZ = m_record->getInt("ZSYMM"); } - double zmin = m_record->getDouble("ZMIN") * CLHEP::mm; - double zmax = m_record->getDouble("ZMAX") * CLHEP::mm; + double zmin = m_record->getDouble("ZMIN") * GeoModelKernelUnits::mm; + double zmax = m_record->getDouble("ZMAX") * GeoModelKernelUnits::mm; m_length = std::abs(zmax - zmin); m_zMid = 0.5 * (zmin + zmax); - if (m_phiDelta == 0 || m_phiDelta >= 359.9 * CLHEP::degree) { - m_phiDelta = 360 * CLHEP::degree; + if (m_phiDelta == 0 || m_phiDelta >= 359.9 * GeoModelKernelUnits::degree) { + m_phiDelta = 360 * GeoModelKernelUnits::degree; fullPhiSector = true; } else { m_phiDelta -= 2 * phiepsilon; @@ -79,7 +79,7 @@ namespace InDetDD { if (m_nRepeat <= 0) m_nRepeat = 1; // if PHISTEP==0 then set it to be equi-distant steps filling up phi. if (m_phiStep == 0) { - m_phiStep = 360 * CLHEP::degree / m_nRepeat; + m_phiStep = 360 * GeoModelKernelUnits::degree / m_nRepeat; } if (m_rmin2 <= 0) m_rmin2 = m_rmin1; diff --git a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/VolumeBuilder.cxx b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/VolumeBuilder.cxx index b5051db82a43fdf941f197f8b2f178074851a059..a8367990da379e724ffa50947ded197229194b35 100755 --- a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/VolumeBuilder.cxx +++ b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/VolumeBuilder.cxx @@ -5,13 +5,14 @@ #include "InDetGeoModelUtils/VolumeBuilder.h" #include "InDetGeoModelUtils/ServiceVolume.h" #include "InDetGeoModelUtils/InDetMaterialManager.h" +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoFullPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoTransform.h" -#include "CLHEP/Geometry/Transform3D.h" - +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" namespace InDetDD { VolumeBuilder::VolumeBuilder(const Zone& zone, const std::vector<const ServiceVolume* >& services) @@ -225,7 +226,7 @@ namespace InDetDD { if (msgLvl(MSG::DEBUG)) { msg(MSG::DEBUG) << "Volume/material: " << logName << "/" << materialName << endmsg; if (!param.shapeType().empty()) msg(MSG::DEBUG) << " shape: " << param.shapeType() << endmsg; - msg(MSG::DEBUG) << " volume (CLHEP::cm3): " << volume / CLHEP::cm3 << endmsg; + msg(MSG::DEBUG) << " volume (cm3): " << volume / GeoModelKernelUnits::cm3 << endmsg; msg(MSG::DEBUG) << " rmin,rmax,zmin,zmax: " << param.rmin() << ", " << param.rmax() << ", " @@ -298,24 +299,24 @@ namespace InDetDD { rotateAroundY = true; } // Most are just translated in z - HepGeom::Transform3D xform = HepGeom::TranslateZ3D(zpos); + GeoTrf::Transform3D xform = GeoTrf::TranslateZ3D(zpos); double phiStart = 0; // BOX, ROD and TRAP need special treatment. const std::string& shapeType = param.shapeType(); if (shapeType == "TRAP" || shapeType == "TRAP2") { // Need to rotate by -90 deg. - xform = HepGeom::RotateZ3D(-90. * CLHEP::deg) * xform; + xform = GeoTrf::RotateZ3D(-90. * GeoModelKernelUnits::deg) * xform; } if (shapeType == "TRAP2") { - xform = HepGeom::RotateZ3D(-90. * CLHEP::deg) * xform; // * HepGeom::RotateX3D(-90.*CLHEP::deg); + xform = GeoTrf::RotateZ3D(-90. * GeoModelKernelUnits::deg) * xform; // * GeoTrf::RotateX3D(-90.*GeoModelKernelUnits::deg); } if (shapeType == "BOX" || shapeType == "TRAP" || shapeType == "TRAP2") { double radius = 0.5 * (param.rmin() + param.rmax()); - xform = HepGeom::TranslateX3D(radius) * xform; + xform = GeoTrf::TranslateX3D(radius) * xform; phiStart = param.phiLoc(); } else if (shapeType == "ROD" || shapeType == "ROD2") { double radius = param.rmin(); - xform = HepGeom::TranslateX3D(radius) * xform; + xform = GeoTrf::TranslateX3D(radius) * xform; phiStart = param.phiLoc(); } // For volumes that are placed more than once. @@ -325,11 +326,11 @@ namespace InDetDD { } double phi = phiStart + deltaPhi * iCopy; if (phi) { - xform = HepGeom::RotateZ3D(phi) * xform; + xform = GeoTrf::RotateZ3D(phi) * xform; } // For shapes that are not symmetric about a rotation around Y axis. We need to rotate. if (rotateAroundY) { - xform = HepGeom::RotateY3D(180. * CLHEP::degree) * xform; + xform = GeoTrf::RotateY3D(180. * GeoModelKernelUnits::degree) * xform; } return new GeoTransform(xform); } @@ -353,25 +354,25 @@ namespace InDetDD { rotateAroundY = true; } // Most are just translated in z - HepGeom::Transform3D xform = HepGeom::TranslateZ3D(zpos); + GeoTrf::Transform3D xform = GeoTrf::TranslateZ3D(zpos); const std::string& shapeType = param.shapeType(); double phiStart = 0; // BOX, ROD and TRAP need special treatment. if (shapeType == "TRAP") { // Need to rotate by -90 deg. - xform = HepGeom::RotateZ3D(-90. * CLHEP::deg) * xform; + xform = GeoTrf::RotateZ3D(-90. * GeoModelKernelUnits::deg) * xform; } if (shapeType == "TRAP2") { // Need to rotate by -90 deg. - xform = HepGeom::RotateX3D(-90. * CLHEP::deg) * xform; + xform = GeoTrf::RotateX3D(-90. * GeoModelKernelUnits::deg) * xform; } if (shapeType == "BOX" || shapeType == "TRAP" || shapeType == "TRAP2") { double radius = 0.5 * (param.rmin() + param.rmax()) - rCenter; - xform = HepGeom::TranslateX3D(radius) * xform; + xform = GeoTrf::TranslateX3D(radius) * xform; phiStart = param.phiLoc(); } else if (shapeType == "ROD" || shapeType == "ROD2") { double radius = param.rmin(); - xform = HepGeom::TranslateX3D(radius) * xform; + xform = GeoTrf::TranslateX3D(radius) * xform; phiStart = param.phiLoc(); } // For volumes that are placed more than once. @@ -381,11 +382,11 @@ namespace InDetDD { } double phi = phiStart + deltaPhi * iCopy; if (phi) { - xform = HepGeom::RotateZ3D(phi) * xform; + xform = GeoTrf::RotateZ3D(phi) * xform; } // For shapes that are not symmetric about a rotation around Y axis. We need to rotate. if (rotateAroundY) { - xform = HepGeom::RotateY3D(180. * CLHEP::degree) * xform; + xform = GeoTrf::RotateY3D(180. * GeoModelKernelUnits::degree) * xform; } return new GeoTransform(xform); } diff --git a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/VolumeSplitter.cxx b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/VolumeSplitter.cxx index 35fb29ef43a971a7cf6a547a0c9f94ef59f56b1d..d91cd6bbd7cf663fe3e0134ad5083c9f1fe6daf7 100755 --- a/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/VolumeSplitter.cxx +++ b/InnerDetector/InDetDetDescr/InDetGeoModelUtils/src/VolumeSplitter.cxx @@ -5,7 +5,7 @@ #include "InDetGeoModelUtils/VolumeSplitter.h" #include "InDetGeoModelUtils/VolumeSplitterUtils.h" #include "InDetGeoModelUtils/ServiceVolume.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <sstream> #include <algorithm> @@ -13,7 +13,7 @@ namespace InDetDD { VolumeSplitter::VolumeSplitter() : m_ownVolumes(true), - m_epsilon(0.0001 * CLHEP::mm) + m_epsilon(0.0001 * GeoModelKernelUnits::mm) {} VolumeSplitter::~VolumeSplitter() { @@ -150,7 +150,7 @@ namespace InDetDD { } } -// This takes care of cone like volumes and adjust the CLHEP::radius according to the adjusted z. +// This takes care of cone like volumes and adjust the radius according to the adjusted z. void VolumeSplitter::adjustR(const ServiceVolume& param, ServiceVolume* paramNew) { double z1 = param.zmin(); diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/CMakeLists.txt b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/CMakeLists.txt index fe9ae4f1765184adb7eeb92032370f1bfd438a17..40aebd365680c5b4545a98517b82601b8a8c8e50 100644 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/CMakeLists.txt +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/CMakeLists.txt @@ -11,7 +11,6 @@ atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel Control/StoreGate DetectorDescription/AtlasDetDescr - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities DetectorDescription/GeoPrimitives DetectorDescription/Identifier @@ -30,6 +29,7 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( CLHEP ) find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( InDetReadoutGeometry @@ -37,6 +37,6 @@ atlas_add_library( InDetReadoutGeometry PUBLIC_HEADERS InDetReadoutGeometry INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} AthenaKernel AtlasDetDescr GeoModelKernel GeoModelUtilities GeoPrimitives Identifier GaudiKernel InDetCondServices InDetIdentifier TrkDetElementBase TrkSurfaces TrkEventPrimitives StoreGateLib SGtests AthenaBaseComps DetDescrConditions + LINK_LIBRARIES ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaKernel AtlasDetDescr GeoModelUtilities GeoPrimitives Identifier GaudiKernel InDetCondServices InDetIdentifier TrkDetElementBase TrkSurfaces TrkEventPrimitives StoreGateLib SGtests AthenaBaseComps DetDescrConditions PRIVATE_LINK_LIBRARIES AthenaPoolUtilities IdDictDetDescr TRT_ConditionsData ) diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/ExtendedAlignableTransform.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/ExtendedAlignableTransform.h index 37e427afc36abc4d2449ccd5a255c1ff5afe41f0..9cf563c55b242b0b9fe576216de2e023d3c226e5 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/ExtendedAlignableTransform.h +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/ExtendedAlignableTransform.h @@ -11,6 +11,7 @@ #ifndef INDETREADOUTGEOMETRY_EXTENDEDALIGNABLETRANSFORM_H #define INDETREADOUTGEOMETRY_EXTENDEDALIGNABLETRANSFORM_H +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoVFullPhysVol.h" diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDetectorManager.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDetectorManager.h index 3744b92d1ef9f801b197ff16ca35beb32189c625..7d42b82f07c15fa4f3079099f022733278f0d211 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDetectorManager.h +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDetectorManager.h @@ -11,6 +11,7 @@ #ifndef InDetReadoutGeometry_PixelDetectorManager_h #define InDetReadoutGeometry_PixelDetectorManager_h 1 +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/GeoVPhysVol.h" #include "InDetReadoutGeometry/SiDetectorManager.h" diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDiodeMatrix.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDiodeMatrix.h index 35190f3655b9c0bab6c733b8ef997c356e9b6e7d..7dc7b3e60e47ea0c7ddafa2733fb29ea432c36c3 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDiodeMatrix.h +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/PixelDiodeMatrix.h @@ -12,6 +12,7 @@ #define INDETREADOUTGEOMETRY_PIXELDIODEMATRIX_H #include "InDetReadoutGeometry/SiCellId.h" +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/RCBase.h" #include "TrkDetElementBase/TrkDetElementBase.h" diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiCommonItems.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiCommonItems.h index 5f6f8ef5e00038c2a32ad8656778b7559fc9569f..99d2b50e97d81be1ad38ee3c239ad7f0fb2bacae 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiCommonItems.h +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiCommonItems.h @@ -17,6 +17,7 @@ class AtlasDetectorID; #include "AthenaKernel/MsgStreamMember.h" #include "GaudiKernel/ServiceHandle.h" #include "CLHEP/Geometry/Transform3D.h" +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/RCBase.h" #include "InDetCondServices/ISiLorentzAngleTool.h" diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiDetectorDesign.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiDetectorDesign.h index ea3d11ff2ae8001f9af8fed9eeb46ae5df753fa2..52487fb58cb39771612756d8d97da61ef98b3102 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiDetectorDesign.h +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiDetectorDesign.h @@ -17,6 +17,7 @@ #include "CLHEP/Geometry/Point3D.h" #include "CLHEP/Geometry/Vector3D.h" #include "AtlasDetDescr/AtlasDetectorID.h" +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/RCBase.h" #include "InDetDD_Defs.h" diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiDetectorElement.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiDetectorElement.h index 978e9e5a3ca7f13b4b8da8b3c7186eaa87ab0941..87a2c22cbe80a205012339c78d686f0dbb278cbf 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiDetectorElement.h +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/SiDetectorElement.h @@ -24,6 +24,8 @@ #include "InDetReadoutGeometry/InDetDD_Defs.h" #include "CLHEP/Geometry/Point3D.h" #include "GeoPrimitives/CLHEPtoEigenConverter.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" class AtlasDetectorID; class GeoVFullPhysVol; @@ -182,7 +184,7 @@ namespace InDetDD { //@{ // Position /// Local (simulation/hit frame) to global transform - virtual const HepGeom::Transform3D & transformHit() const; + virtual const GeoTrf::Transform3D & transformHit() const; /// Local (reconstruction frame) to global transform const Amg::Transform3D & transform() const; /// Default Local (reconstruction frame) to global transform @@ -662,7 +664,7 @@ namespace InDetDD { inline HepGeom::Point3D<double> SiDetectorElement::globalPositionHit(const HepGeom::Point3D<double> &localPos) const { - return transformHit()*localPos; + return Amg::EigenTransformToCLHEP(transformHit())*localPos; } inline Amg::Vector3D SiDetectorElement::globalPosition(const Amg::Vector2D &localPos) const @@ -674,7 +676,7 @@ namespace InDetDD { inline Amg::Vector3D SiDetectorElement::globalPositionHit(const Amg::Vector3D &localPos) const { - return Amg::CLHEPTransformToEigen(transformHit()) * localPos; + return transformHit() * localPos; } inline HepGeom::Point3D<double> SiDetectorElement::globalPositionCLHEP(const Amg::Vector2D &localPos) const diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_BarrelDescriptor.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_BarrelDescriptor.h index 793007ef80379c52711ff362ba4194a167d32fa2..244ff8ec08b3e208eea72f22f7f442ac2819a8a7 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_BarrelDescriptor.h +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_BarrelDescriptor.h @@ -10,6 +10,7 @@ #ifndef TRT_BarrelDescriptor_h #define TRT_BarrelDescriptor_h 1 +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/RCBase.h" #include "GeoModelKernel/GeoXF.h" #include <vector> diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_BaseElement.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_BaseElement.h index c240c7ccbad3ea012f9ab3c0f91c5c1c6d55f399..a59add9b67b6c009de8bd3e0e0fdf357f3610a62 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_BaseElement.h +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_BaseElement.h @@ -70,8 +70,8 @@ namespace InDetDD { // --- GeoModel transformation forwards ----------------------------------------------------- // - /** Get Default Transform (of module in barrel, layer in endcap) from GeoModel before alignment corrections: CLHEP */ - const HepGeom::Transform3D& defTransform() const; + /** Get Default Transform (of module in barrel, layer in endcap) from GeoModel before alignment corrections */ + inline const GeoTrf::Transform3D& defTransform() const { return getMaterialGeom()->getDefAbsoluteTransform(); } /** Default Local -> global transform of the straw (ie before alignment corrections) : CLHEP */ virtual HepGeom::Transform3D defStrawTransform(int straw) const = 0; @@ -235,7 +235,6 @@ namespace InDetDD { } -#include "TRT_BaseElement.icc" #endif diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_BaseElement.icc b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_BaseElement.icc deleted file mode 100755 index 828631ffe639d43c00fb32dde2a0a5adf0a6d0bc..0000000000000000000000000000000000000000 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_BaseElement.icc +++ /dev/null @@ -1,12 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -namespace InDetDD { - -inline const HepGeom::Transform3D & TRT_BaseElement::defTransform() const -{ - return getMaterialGeom()->getDefAbsoluteTransform(); -} - -} diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_Conditions.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_Conditions.h index 2c1551d6694b4d7ce8905b6d0c28cfd5d1159b30..fd3d53b578a62cc4ac78a90a379aeada54d5e74d 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_Conditions.h +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_Conditions.h @@ -11,6 +11,7 @@ #ifndef INDETREADOUTGEOMETRY_TRT_CONDITIONS_H #define INDETREADOUTGEOMETRY_TRT_CONDITIONS_H +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/RCBase.h" #include "CLHEP/Geometry/Transform3D.h" diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_DetectorManager.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_DetectorManager.h index 30e7231d79b6045bd64148d99147402a2b551e41..b79ad864f284c310d02fb84066b4fb6a2bc18185 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_DetectorManager.h +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_DetectorManager.h @@ -16,6 +16,7 @@ #include "InDetReadoutGeometry/InDetDD_Defs.h" #include "InDetReadoutGeometry/Version.h" #include "InDetReadoutGeometry/TRT_DetElementCollection.h" +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/GeoVPhysVol.h" #include "InDetIdentifier/TRT_ID.h" #include "GeoModelKernel/GeoXF.h" diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_EndcapDescriptor.h b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_EndcapDescriptor.h index e6b9a1c55b66764acccb12a8d100f64d3e7081e7..a6edf251a9cf89fa09ba9497765cb8ee24e98645 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_EndcapDescriptor.h +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/InDetReadoutGeometry/TRT_EndcapDescriptor.h @@ -10,6 +10,7 @@ #ifndef TRT_EndcapDescriptor_h #define TRT_EndcapDescriptor_h 1 +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/RCBase.h" #include "GeoModelKernel/GeoXF.h" diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SiDetectorElement.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SiDetectorElement.cxx index f1ddcf9bde3fb0a6183d8e38bf8a972ea62b53ad..6c9c34a291af0882c6b4bf8068628de98aee5f20 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SiDetectorElement.cxx +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SiDetectorElement.cxx @@ -153,14 +153,14 @@ SiDetectorElement::updateCache() const bool firstTimeTmp = m_firstTime; m_firstTime = false; - const HepGeom::Transform3D & geoTransform = transformHit(); + const GeoTrf::Transform3D & geoTransform = transformHit(); double radialShift = 0.; const InDetDD::StripStereoAnnulusDesign * testDesign = dynamic_cast<const InDetDD::StripStereoAnnulusDesign*>(m_design); if(testDesign) radialShift = testDesign->localModuleCentreRadius(); HepGeom::Point3D<double> centerGeoModel(radialShift, 0., 0.); - m_centerCLHEP = geoTransform * centerGeoModel; + m_centerCLHEP = Amg::EigenTransformToCLHEP(geoTransform) * centerGeoModel; m_center = Amg::Vector3D(m_centerCLHEP[0],m_centerCLHEP[1],m_centerCLHEP[2]); // @@ -193,9 +193,9 @@ SiDetectorElement::updateCache() const const HepGeom::Vector3D<double> &geoModelEtaAxis = localAxes[m_hitEta]; const HepGeom::Vector3D<double> &geoModelDepthAxis = localAxes[m_hitDepth]; - HepGeom::Vector3D<double> globalDepthAxis(geoTransform * geoModelDepthAxis); - HepGeom::Vector3D<double> globalPhiAxis(geoTransform * geoModelPhiAxis); - HepGeom::Vector3D<double> globalEtaAxis(geoTransform * geoModelEtaAxis); + HepGeom::Vector3D<double> globalDepthAxis(Amg::EigenTransformToCLHEP(geoTransform) * geoModelDepthAxis); + HepGeom::Vector3D<double> globalPhiAxis(Amg::EigenTransformToCLHEP(geoTransform) * geoModelPhiAxis); + HepGeom::Vector3D<double> globalEtaAxis(Amg::EigenTransformToCLHEP(geoTransform) * geoModelEtaAxis); @@ -298,7 +298,7 @@ SiDetectorElement::updateCache() const - m_transformCLHEP = geoTransform * recoToHitTransform(); + m_transformCLHEP = Amg::EigenTransformToCLHEP(geoTransform) * recoToHitTransform(); //m_transform = m_commonItems->solenoidFrame() * geoTransform * recoToHitTransform(); m_transform = Amg::CLHEPTransformToEigen(m_transformCLHEP); @@ -315,7 +315,7 @@ SiDetectorElement::updateCache() const msg(MSG::DEBUG) << "Local frame is left-handed, Swapping depth axis to make it right handed." << endmsg; m_depthDirection = !m_depthDirection; - m_transformCLHEP = geoTransform * recoToHitTransform(); + m_transformCLHEP = Amg::EigenTransformToCLHEP(geoTransform) * recoToHitTransform(); m_transform = Amg::CLHEPTransformToEigen(m_transformCLHEP); //m_transform = m_commonItems->solenoidFrame() * geoTransform * recoToHitTransform(); } else { @@ -363,11 +363,11 @@ SiDetectorElement::updateCache() const } -const HepGeom::Transform3D & +const GeoTrf::Transform3D & SiDetectorElement::transformHit() const { if (m_geoAlignStore) { - const HepGeom::Transform3D* ptrXf = m_geoAlignStore->getAbsPosition(getMaterialGeom()); + const GeoTrf::Transform3D* ptrXf = m_geoAlignStore->getAbsPosition(getMaterialGeom()); if(ptrXf) return *ptrXf; } return getMaterialGeom()->getAbsoluteTransform(); @@ -395,10 +395,10 @@ const HepGeom::Transform3D SiDetectorElement::defTransformCLHEP() const { if (m_geoAlignStore) { - const HepGeom::Transform3D* ptrXf = m_geoAlignStore->getDefAbsPosition(getMaterialGeom()); - if(ptrXf) return *ptrXf * recoToHitTransform(); + const GeoTrf::Transform3D* ptrXf = m_geoAlignStore->getDefAbsPosition(getMaterialGeom()); + if(ptrXf) return Amg::EigenTransformToCLHEP(*ptrXf) * recoToHitTransform(); } - return getMaterialGeom()->getDefAbsoluteTransform() * recoToHitTransform(); + return Amg::EigenTransformToCLHEP(getMaterialGeom()->getDefAbsoluteTransform()) * recoToHitTransform(); } const Amg::Transform3D diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SiDetectorManager.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SiDetectorManager.cxx index 4b7980893c116430cb99289de7c93f1509eaa4d7..eeeb8201d39f8dbeb4f58d05c1fb067425a1b36e 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SiDetectorManager.cxx +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/SiDetectorManager.cxx @@ -11,7 +11,7 @@ #include "StoreGate/StoreGateSvc.h" #include "GeoModelKernel/GeoXF.h" -#include "CLHEP/GenericFunctions/Variable.hh" +#include "GeoGenericFunctions/Variable.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "DetDescrConditions/AlignableTransformContainer.h" #include "InDetReadoutGeometry/SiDetectorElementCollection.h" @@ -85,12 +85,11 @@ namespace InDetDD const GeoVFullPhysVol* child = extXF->child(); if (child && extXF->alignableTransform()) { // the definitiv absolut transform is in CLHEP -> do the calculation in CLHEP - HepGeom::Transform3D localToGlobalXFCLHEP = Amg::EigenTransformToCLHEP(localToGlobalXF); - const HepGeom::Transform3D& transform = child->getDefAbsoluteTransform(); + const GeoTrf::Transform3D& transform = child->getDefAbsoluteTransform(); // calucluate the corrected delta according to the formula above - HepGeom::Transform3D correctedDelta = transform.inverse()*localToGlobalXFCLHEP // (A*B*C).inverse() * T - * Amg::EigenTransformToCLHEP(delta) // l - * localToGlobalXFCLHEP.inverse() * transform; // T.inverse() * (A*B*C) + GeoTrf::Transform3D correctedDelta = transform.inverse()*localToGlobalXF // (A*B*C).inverse() * T + * delta // l + * localToGlobalXF.inverse() * transform; // T.inverse() * (A*B*C) extXF->alignableTransform()->setDelta(correctedDelta, alignStore); return true; } else { @@ -123,8 +122,8 @@ namespace InDetDD const GeoVFullPhysVol * child = extXF->child(); if (child && extXF->alignableTransform()) { // do the calculation in CLHEP - const HepGeom::Transform3D& transform = child->getDefAbsoluteTransform(); - extXF->alignableTransform()->setDelta(transform.inverse() * Amg::EigenTransformToCLHEP(delta) * transform, alignStore); + const GeoTrf::Transform3D& transform = child->getDefAbsoluteTransform(); + extXF->alignableTransform()->setDelta(transform.inverse() * delta * transform, alignStore); return true; } else { return false; diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_BarrelElement.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_BarrelElement.cxx index a476eb4531dbf7705b447adc211bc6f61e168458..e44a52697d0ef947a756c29857e2305552ea19e4 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_BarrelElement.cxx +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_BarrelElement.cxx @@ -15,6 +15,8 @@ #include "TRT_ConditionsData/ExpandedIdentifier.h" #include "TRT_ConditionsData/StrawDxContainer.h" +#include "GeoPrimitives/CLHEPtoEigenConverter.h" + namespace InDetDD { TRT_BarrelElement::TRT_BarrelElement(const GeoVFullPhysVol *volume, @@ -95,7 +97,7 @@ HepGeom::Transform3D TRT_BarrelElement::calculateStrawTransform(int straw) const size_t offsetInto = m_descriptor->getStrawTransformOffset(); double zPos = -m_descriptor->strawZPos(); double zAng = m_code.isPosZ() ? M_PI : 0; - return getMaterialGeom()->getAbsoluteTransform()*((*f)(straw+offsetInto)) + return Amg::EigenTransformToCLHEP(getMaterialGeom()->getAbsoluteTransform()*((*f)(straw+offsetInto))) * HepGeom::RotateY3D(zAng)*HepGeom::TranslateZ3D(zPos) * calculateLocalStrawTransform(straw); ////return conditions()->solenoidFrame() @@ -152,7 +154,8 @@ HepGeom::Transform3D TRT_BarrelElement::defStrawTransform(int straw) const size_t offsetInto = m_descriptor->getStrawTransformOffset(); double zPos = -m_descriptor->strawZPos(); double zAng = m_code.isPosZ() ? M_PI : 0; - return getMaterialGeom()->getDefAbsoluteTransform()*((*f)(straw+offsetInto))* HepGeom::RotateY3D(zAng)*HepGeom::TranslateZ3D(zPos); + return Amg::EigenTransformToCLHEP(getMaterialGeom()->getDefAbsoluteTransform()*((*f)(straw+offsetInto))) + * HepGeom::RotateY3D(zAng)*HepGeom::TranslateZ3D(zPos); } else { std::cout << "calculateStrawTransform: f is 0 !!!!" << std::endl; return HepGeom::Transform3D(); diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_DetectorManager.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_DetectorManager.cxx index 643824f4b3518b6f46ff8e342e9618b267822ca4..d432e4298ce1e5c3360ca493363f6de3487377ac 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_DetectorManager.cxx +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_DetectorManager.cxx @@ -532,13 +532,13 @@ namespace InDetDD { if (!child) { msg(MSG::ERROR) << "global frame specified, but child == 0" << endmsg; } else { - const HepGeom::Transform3D & childXF = child->getDefAbsoluteTransform(); - extXF->alignableTransform()->setDelta(childXF.inverse() * Amg::EigenTransformToCLHEP(delta) * childXF); + const GeoTrf::Transform3D & childXF = child->getDefAbsoluteTransform(); + extXF->alignableTransform()->setDelta(childXF.inverse() * delta * childXF); } } else if (frame == InDetDD::local) { // Local // if its a local frame then no transform necessary. We set it directly. - extXF->alignableTransform()->setDelta(Amg::EigenTransformToCLHEP(delta)); + extXF->alignableTransform()->setDelta(delta); } else { // Other frame // if child or frame is zero it will have been set to local or global above @@ -547,9 +547,9 @@ namespace InDetDD { ATH_MSG_ERROR("Child can't be null if frame is 'other'"); return false; } else { - const HepGeom::Transform3D & xfChild = child->getDefAbsoluteTransform(); - const HepGeom::Transform3D & xfFrame = frameVol->getDefAbsoluteTransform(); - extXF->alignableTransform()->setDelta(xfChild.inverse() * xfFrame * Amg::EigenTransformToCLHEP(delta) * xfFrame.inverse() * xfChild); + const GeoTrf::Transform3D & xfChild = child->getDefAbsoluteTransform(); + const GeoTrf::Transform3D & xfFrame = frameVol->getDefAbsoluteTransform(); + extXF->alignableTransform()->setDelta(xfChild.inverse() * xfFrame * delta * xfFrame.inverse() * xfChild); } } diff --git a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_EndcapElement.cxx b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_EndcapElement.cxx index ce9c0fa38f9bfae8d9ebf0480d0b62b2bc5f52b2..c5637d308b56a475d283d09d610756780d9c660d 100755 --- a/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_EndcapElement.cxx +++ b/InnerDetector/InDetDetDescr/InDetReadoutGeometry/src/TRT_EndcapElement.cxx @@ -12,6 +12,7 @@ #include "GeoPrimitives/GeoPrimitives.h" #include "GeoPrimitives/CLHEPtoEigenConverter.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "CLHEP/Geometry/Transform3D.h" #include "TrkSurfaces/DiscBounds.h" @@ -97,7 +98,8 @@ namespace InDetDD { size_t offsetInto = m_descriptor->getStrawTransformOffset(); - return getMaterialGeom()->getAbsoluteTransform()*((*f)(istraw+offsetInto)) * calculateLocalStrawTransform(straw); + return Amg::EigenTransformToCLHEP(getMaterialGeom()->getAbsoluteTransform()*((*f)(istraw+offsetInto))) + * calculateLocalStrawTransform(straw); ////return conditions()->solenoidFrame() //// * getMaterialGeom()->getAbsoluteTransform()*((*f)(istraw+offsetInto)); @@ -108,7 +110,9 @@ namespace InDetDD { double phi = m_descriptor->startPhi() + m_descriptor->strawPitch() * straw; double r = m_descriptor->innerRadius() + 0.5 * m_descriptor->strawLength() ; - CLHEP::Hep3Vector pos(r*cos(phi), r*sin(phi), (getMaterialGeom()->getAbsoluteTransform()*HepGeom::Point3D<double>()).z()); + CLHEP::Hep3Vector pos(r*cos(phi) + , r*sin(phi) + , (Amg::EigenTransformToCLHEP(getMaterialGeom()->getAbsoluteTransform())*HepGeom::Point3D<double>()).z()); CLHEP::HepRotation rot; // Axis (in local (0,0,1)) points towards beam axis. rot.rotateY(-0.5*M_PI); // Make it point along -ve X. @@ -175,13 +179,15 @@ namespace InDetDD { int istraw = m_code.isPosZ() ? straw : m_descriptor->nStraws()-1 - straw; size_t offsetInto = m_descriptor->getStrawTransformOffset(); - return getMaterialGeom()->getDefAbsoluteTransform()*((*f)(istraw+offsetInto)); + return Amg::EigenTransformToCLHEP(getMaterialGeom()->getDefAbsoluteTransform()*((*f)(istraw+offsetInto))); } else { double phi = m_descriptor->startPhi() + m_descriptor->strawPitch() * straw; double r = m_descriptor->innerRadius() + 0.5 * m_descriptor->strawLength() ; - CLHEP::Hep3Vector pos(r*cos(phi), r*sin(phi), (getMaterialGeom()->getDefAbsoluteTransform()*HepGeom::Point3D<double>()).z()); + CLHEP::Hep3Vector pos(r*cos(phi) + , r*sin(phi) + , (Amg::EigenTransformToCLHEP(getMaterialGeom()->getDefAbsoluteTransform())*HepGeom::Point3D<double>()).z()); CLHEP::HepRotation rot; rot.rotateY(-0.5*M_PI); // Make it point along -ve X. rot.rotateZ(phi); @@ -228,9 +234,9 @@ namespace InDetDD { Amg::Transform3D * transform = 0; if (m_code.isPosZ()) - transform = new Amg::Transform3D(Amg::CLHEPTransformToEigen( (getMaterialGeom()->getAbsoluteTransform() * HepGeom::RotateZ3D(phiCenter)))); + transform = new Amg::Transform3D((getMaterialGeom()->getAbsoluteTransform() * GeoTrf::RotateZ3D(phiCenter))); else - transform = new Amg::Transform3D(Amg::CLHEPTransformToEigen( (getMaterialGeom()->getAbsoluteTransform() * HepGeom::RotateY3D(180*CLHEP::deg) * HepGeom::RotateZ3D(phiCenter)))); + transform = new Amg::Transform3D((getMaterialGeom()->getAbsoluteTransform() * GeoTrf::RotateY3D(180*CLHEP::deg) * GeoTrf::RotateZ3D(phiCenter))); // create the igredients and the cache Trk::DiscBounds* bounds = new Trk::DiscBounds(rMin, rMax, phiHalfWidth); diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/CMakeLists.txt b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/CMakeLists.txt index 1ab76249c6126c6fccc5a044ba651b853ae63694..cbc87c5da2af375289052924f127ed52085d4a5c 100644 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/CMakeLists.txt +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/CMakeLists.txt @@ -10,7 +10,7 @@ atlas_depends_on_subdirs( PUBLIC Control/AthenaBaseComps Control/AthenaKernel Database/RDBAccessSvc - DetectorDescription/GeoModel/GeoModelKernel + DetectorDescription/GeoPrimitives DetectorDescription/GeoModel/GeoModelUtilities GaudiKernel InnerDetector/InDetDetDescr/InDetGeoModelUtils @@ -23,15 +23,16 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( InDetServMatGeoModel src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} AthenaBaseComps AthenaKernel GeoModelKernel GeoModelUtilities GaudiKernel InDetGeoModelUtils SGTools StoreGateLib SGtests ) + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaBaseComps AthenaKernel GeoModelUtilities GaudiKernel InDetGeoModelUtils SGTools StoreGateLib SGtests ) # Install files from the package: atlas_install_headers( InDetServMatGeoModel ) diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactory.cxx index 7866fd46a53bdeeba484c8ee2c7d1c0197fdcd5b..98dfcadc27160a3671e96499e91d21c4835b3ffc 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactory.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactory.cxx @@ -5,6 +5,8 @@ #include "InDetServMatGeoModel/EndPlateFactory.h" // GeoModel includes +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoTube.h" @@ -46,29 +48,29 @@ void EndPlateFactory::create(GeoPhysVol *mother) //---------------------------------------------------------------------------------- // std::string matName = mat[(int) (*pbfi)[ii]->getFloat("MAT")]; // const GeoMaterial* cylMat = materialManager()->getMaterial(matName); -// double rmin = (*pbfi)[ii]->getFloat("RIN")*CLHEP::cm; +// double rmin = (*pbfi)[ii]->getFloat("RIN")*GeoModelKernelUnits::cm; //---------------------------------------------------------------------------------- - double safety = 0.01*CLHEP::mm; - double maxRofEP = 1075.0*CLHEP::mm - safety; // Interfere with TRT PatchPanel1 - double RibConnection = 550.0*CLHEP::mm; + double safety = 0.01*GeoModelKernelUnits::mm; + double maxRofEP = 1075.0*GeoModelKernelUnits::mm - safety; // Interfere with TRT PatchPanel1 + double RibConnection = 550.0*GeoModelKernelUnits::mm; - maxRofEP = (*shell)[0]->getDouble("EPMAXR")*CLHEP::mm - safety; - RibConnection = (*ribs)[0]->getDouble("RIBCONNECTION")*CLHEP::mm; + maxRofEP = (*shell)[0]->getDouble("EPMAXR")*GeoModelKernelUnits::mm - safety; + RibConnection = (*ribs)[0]->getDouble("RIBCONNECTION")*GeoModelKernelUnits::mm; // // Internal shell. Default (initial) values // - double rminInt = 425.*CLHEP::mm; - double rmaxInt = 1040.*CLHEP::mm; - double thickShell = 3.*CLHEP::mm; - double thick2 = 10.*CLHEP::mm; - double zposEP = 3370.*CLHEP::mm; - double zleng = 42.*CLHEP::mm; - rminInt = (*shell)[0]->getDouble("RMININT")*CLHEP::mm; - rmaxInt = (*shell)[0]->getDouble("RMAXINT")*CLHEP::mm; - thickShell = (*shell)[0]->getDouble("THICKSHELL")*CLHEP::mm; - thick2 = (*shell)[0]->getDouble("THICKADD")*CLHEP::mm; - zposEP = (*shell)[0]->getDouble("ZSTART")*CLHEP::mm; - zleng = (*shell)[0]->getDouble("ZSHIFT")*CLHEP::mm; + double rminInt = 425.*GeoModelKernelUnits::mm; + double rmaxInt = 1040.*GeoModelKernelUnits::mm; + double thickShell = 3.*GeoModelKernelUnits::mm; + double thick2 = 10.*GeoModelKernelUnits::mm; + double zposEP = 3370.*GeoModelKernelUnits::mm; + double zleng = 42.*GeoModelKernelUnits::mm; + rminInt = (*shell)[0]->getDouble("RMININT")*GeoModelKernelUnits::mm; + rmaxInt = (*shell)[0]->getDouble("RMAXINT")*GeoModelKernelUnits::mm; + thickShell = (*shell)[0]->getDouble("THICKSHELL")*GeoModelKernelUnits::mm; + thick2 = (*shell)[0]->getDouble("THICKADD")*GeoModelKernelUnits::mm; + zposEP = (*shell)[0]->getDouble("ZSTART")*GeoModelKernelUnits::mm; + zleng = (*shell)[0]->getDouble("ZSHIFT")*GeoModelKernelUnits::mm; GeoPcon* shellInt = new GeoPcon(0.,2*M_PI); @@ -86,10 +88,10 @@ void EndPlateFactory::create(GeoPhysVol *mother) const GeoLogVol* shellLogInt = new GeoLogVol("EPShellInt",shellInt,shellMat); GeoVPhysVol* shellPhysInt = new GeoPhysVol(shellLogInt); - CLHEP::Hep3Vector servpos1(0.,0., zposEP); - CLHEP::Hep3Vector servpos2(0.,0.,-zposEP); - GeoTransform *xform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos1)); - GeoTransform *xform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,M_PI,0.),servpos2)); + GeoTrf::Translate3D servpos1(0.,0., zposEP); + GeoTrf::Vector3D servpos2(0.,0.,-zposEP); + GeoTransform* xform1 = new GeoTransform(servpos1); + GeoTransform* xform2 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0,M_PI,0),servpos2)); mother->add(xform1); mother->add(shellPhysInt); mother->add(xform2); @@ -99,22 +101,22 @@ void EndPlateFactory::create(GeoPhysVol *mother) // // External shell (default/initial values) - double zgap = 50.*CLHEP::mm; - double rminExt = 250.*CLHEP::mm; + double zgap = 50.*GeoModelKernelUnits::mm; + double rminExt = 250.*GeoModelKernelUnits::mm; double rmaxExt = maxRofEP; - zgap = (*shell)[0]->getDouble("ZGAP")*CLHEP::mm; - rminExt = (*shell)[0]->getDouble("RMINEXT")*CLHEP::mm; + zgap = (*shell)[0]->getDouble("ZGAP")*GeoModelKernelUnits::mm; + rminExt = (*shell)[0]->getDouble("RMINEXT")*GeoModelKernelUnits::mm; const GeoTube* shellExt = new GeoTube(rminExt,rmaxExt,thickShell/2.); const GeoLogVol* shellLogExt = new GeoLogVol("EPShellExt",shellExt,shellMat); GeoVPhysVol* shellPhysExt = new GeoPhysVol(shellLogExt); - CLHEP::Hep3Vector servpos3(0.,0., zposEP+zleng+thickShell+zgap+thickShell/2.); - CLHEP::Hep3Vector servpos4(0.,0.,-zposEP-zleng-thickShell-zgap-thickShell/2.); - GeoTransform *xform3 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos3)); - GeoTransform *xform4 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,M_PI,0.),servpos4)); + GeoTrf::Translate3D servpos3(0.,0., zposEP+zleng+thickShell+zgap+thickShell/2.); + GeoTrf::Vector3D servpos4(0.,0.,-zposEP-zleng-thickShell-zgap-thickShell/2.); + GeoTransform *xform3 = new GeoTransform(servpos3); + GeoTransform* xform4 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0,M_PI,0),servpos4)); mother->add(xform3); mother->add(shellPhysExt); @@ -125,19 +127,19 @@ void EndPlateFactory::create(GeoPhysVol *mother) // // Insert - default (initial) values - double zthick = 16.0*CLHEP::mm; - double zinsert = 3018.*CLHEP::mm-zthick; - double rminins = 252.*CLHEP::mm; - double rmaxins = 435.*CLHEP::mm; - double rthick = 5.*CLHEP::mm; - double zlengi = 410.*CLHEP::mm; + double zthick = 16.0*GeoModelKernelUnits::mm; + double zinsert = 3018.*GeoModelKernelUnits::mm-zthick; + double rminins = 252.*GeoModelKernelUnits::mm; + double rmaxins = 435.*GeoModelKernelUnits::mm; + double rthick = 5.*GeoModelKernelUnits::mm; + double zlengi = 410.*GeoModelKernelUnits::mm; - zthick = (*insert)[0]->getDouble("ZTHICK")*CLHEP::mm; - zinsert = (*insert)[0]->getDouble("ZINSERT")*CLHEP::mm; - rminins = (*insert)[0]->getDouble("RMININS")*CLHEP::mm; - rmaxins = (*insert)[0]->getDouble("RMAXINS")*CLHEP::mm; - rthick = (*insert)[0]->getDouble("RTHICK")*CLHEP::mm; - zlengi = (*insert)[0]->getDouble("ZLENGINS")*CLHEP::mm; + zthick = (*insert)[0]->getDouble("ZTHICK")*GeoModelKernelUnits::mm; + zinsert = (*insert)[0]->getDouble("ZINSERT")*GeoModelKernelUnits::mm; + rminins = (*insert)[0]->getDouble("RMININS")*GeoModelKernelUnits::mm; + rmaxins = (*insert)[0]->getDouble("RMAXINS")*GeoModelKernelUnits::mm; + rthick = (*insert)[0]->getDouble("RTHICK")*GeoModelKernelUnits::mm; + zlengi = (*insert)[0]->getDouble("ZLENGINS")*GeoModelKernelUnits::mm; GeoPcon* Insert = new GeoPcon(0.,2*M_PI); Insert->addPlane(0. , rminins, rmaxins+rthick); @@ -151,10 +153,10 @@ void EndPlateFactory::create(GeoPhysVol *mother) const GeoLogVol* InsertLog = new GeoLogVol("EPInsert",Insert,insertMat); GeoVPhysVol* InsertPhys = new GeoPhysVol(InsertLog); - CLHEP::Hep3Vector servpos5(0.,0., zinsert); - CLHEP::Hep3Vector servpos6(0.,0.,-zinsert); - GeoTransform *xform5 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos5)); - GeoTransform *xform6 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,M_PI,0.),servpos6)); + GeoTrf::Translate3D servpos5(0.,0., zinsert); + GeoTrf::Vector3D servpos6(0.,0.,-zinsert); + GeoTransform *xform5 = new GeoTransform(servpos5); + GeoTransform* xform6 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0,M_PI,0),servpos6)); mother->add(xform5); mother->add(InsertPhys); @@ -167,15 +169,15 @@ void EndPlateFactory::create(GeoPhysVol *mother) // Short ribs - default (initial) values // Initial position is along X axis then move and rotate // - double ribY = 12.0*CLHEP::mm; + double ribY = 12.0*GeoModelKernelUnits::mm; double ribZ = zgap - safety; - double ribX = 380.0*CLHEP::mm; - double posX = 550.0*CLHEP::mm+ribX/2.; + double ribX = 380.0*GeoModelKernelUnits::mm; + double posX = 550.0*GeoModelKernelUnits::mm+ribX/2.; - ribY = (*ribs)[0]->getDouble("SHORTWID")*CLHEP::mm; + ribY = (*ribs)[0]->getDouble("SHORTWID")*GeoModelKernelUnits::mm; ribZ = zgap - safety; - ribX = (*ribs)[0]->getDouble("SHORTLENG")*CLHEP::mm; - posX = (*ribs)[0]->getDouble("SHORTRSTART")*CLHEP::mm + ribX/2.; + ribX = (*ribs)[0]->getDouble("SHORTLENG")*GeoModelKernelUnits::mm; + posX = (*ribs)[0]->getDouble("SHORTRSTART")*GeoModelKernelUnits::mm + ribX/2.; const GeoBox* ribShort = new GeoBox(ribX/2., ribY/2., ribZ/2.); @@ -192,12 +194,12 @@ void EndPlateFactory::create(GeoPhysVol *mother) for (int ip=1; ip<12; ip++){ if( ip==3 || ip==6 || ip==9) continue; double angl= ip*M_PI/6.; - CLHEP::Hep3Vector ribpos_pos( posX*cos(angl), posX*sin(angl), zposEP+zleng+thickShell+zgap/2.); - CLHEP::Hep3Vector ribpos_neg( posX*cos(angl), posX*sin(angl),-zposEP-zleng-thickShell-zgap/2.); - xrib = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(-angl,0.,0.),ribpos_pos)); + GeoTrf::Vector3D ribpos_pos( posX*cos(angl), posX*sin(angl), zposEP+zleng+thickShell+zgap/2.); + GeoTrf::Vector3D ribpos_neg( posX*cos(angl), posX*sin(angl),-zposEP-zleng-thickShell-zgap/2.); + xrib = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(-angl,0,0),ribpos_pos)); mother->add(xrib); mother->add(ribShortPhys); - xrib = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(-angl,0.,0.),ribpos_neg)); + xrib = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(-angl,0,0),ribpos_neg)); mother->add(xrib); mother->add(ribShortPhys); } @@ -205,22 +207,22 @@ void EndPlateFactory::create(GeoPhysVol *mother) //--------------------------------------------------------------------------------- // Long ribs (initial position is along X axis then move and rotate) // - double ribY1 = 20.0*CLHEP::mm; + double ribY1 = 20.0*GeoModelKernelUnits::mm; double ribZ1 = zgap - safety; - double ribX1 = RibConnection-250.*CLHEP::mm; - double posX1 = 250.*CLHEP::mm+ribX1/2.; + double ribX1 = RibConnection-250.*GeoModelKernelUnits::mm; + double posX1 = 250.*GeoModelKernelUnits::mm+ribX1/2.; - double ribY2 = 30.0*CLHEP::mm; + double ribY2 = 30.0*GeoModelKernelUnits::mm; double ribZ2 = zgap - safety; double ribX2 = maxRofEP - RibConnection; double posX2 = RibConnection+ribX2/2.; - ribY1 = (*ribs)[0]->getDouble("LONGWID1")*CLHEP::mm; + ribY1 = (*ribs)[0]->getDouble("LONGWID1")*GeoModelKernelUnits::mm; ribZ1 = zgap - safety; - ribX1 = RibConnection - (*ribs)[0]->getDouble("LONGLENG1")*CLHEP::mm; // LONGLENG1 is a RMIN of ribs - posX1 = (*ribs)[0]->getDouble("LONGLENG1")*CLHEP::mm + ribX1/2.; // It's determined by Pixel volume -> so 250.0!!! + ribX1 = RibConnection - (*ribs)[0]->getDouble("LONGLENG1")*GeoModelKernelUnits::mm; // LONGLENG1 is a RMIN of ribs + posX1 = (*ribs)[0]->getDouble("LONGLENG1")*GeoModelKernelUnits::mm + ribX1/2.; // It's determined by Pixel volume -> so 250.0!!! - ribY2 = (*ribs)[0]->getDouble("LONGWID2")*CLHEP::mm; + ribY2 = (*ribs)[0]->getDouble("LONGWID2")*GeoModelKernelUnits::mm; ribZ2 = zgap - safety; ribX2 = maxRofEP - RibConnection; posX2 = RibConnection+ribX2/2.; @@ -239,21 +241,21 @@ void EndPlateFactory::create(GeoPhysVol *mother) for (int ip=0; ip<4; ip++){ double angl= ip*M_PI/2.; // 1st part - CLHEP::Hep3Vector ribpos_pos1( posX1*cos(angl), posX1*sin(angl), zposEP+zleng+thickShell+zgap/2.); - CLHEP::Hep3Vector ribpos_neg1( posX1*cos(angl), posX1*sin(angl),-zposEP-zleng-thickShell-zgap/2.); - xrib = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(-angl,0.,0.),ribpos_pos1)); + GeoTrf::Vector3D ribpos_pos1( posX1*cos(angl), posX1*sin(angl), zposEP+zleng+thickShell+zgap/2.); + GeoTrf::Vector3D ribpos_neg1( posX1*cos(angl), posX1*sin(angl),-zposEP-zleng-thickShell-zgap/2.); + xrib = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(-angl,0,0),ribpos_pos1)); mother->add(xrib); mother->add(ribLong1Phys); - xrib = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(-angl,0.,0.),ribpos_neg1)); + xrib = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(-angl,0,0),ribpos_neg1)); mother->add(xrib); mother->add(ribLong1Phys); // 2nd part - CLHEP::Hep3Vector ribpos_pos2( posX2*cos(angl), posX2*sin(angl), zposEP+zleng+thickShell+zgap/2.); - CLHEP::Hep3Vector ribpos_neg2( posX2*cos(angl), posX2*sin(angl),-zposEP-zleng-thickShell-zgap/2.); - xrib = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(-angl,0.,0.),ribpos_pos2)); + GeoTrf::Vector3D ribpos_pos2( posX2*cos(angl), posX2*sin(angl), zposEP+zleng+thickShell+zgap/2.); + GeoTrf::Vector3D ribpos_neg2( posX2*cos(angl), posX2*sin(angl),-zposEP-zleng-thickShell-zgap/2.); + xrib = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(-angl,0,0),ribpos_pos2)); mother->add(xrib); mother->add(ribLong2Phys); - xrib = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(-angl,0.,0.),ribpos_neg2)); + xrib = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(-angl,0,0),ribpos_neg2)); mother->add(xrib); mother->add(ribLong2Phys); } diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactoryFS.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactoryFS.cxx index 7b97e625dfcd27f0b464524ab399d9db0c901e3a..508d487c5d1776fba304551d1f0969eac3871311 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactoryFS.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/EndPlateFactoryFS.cxx @@ -5,6 +5,8 @@ #include "InDetServMatGeoModel/EndPlateFactoryFS.h" // GeoModel includes +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoTube.h" @@ -62,29 +64,29 @@ void EndPlateFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) //---------------------------------------------------------------------------------- // std::string matName = mat[(int) (*pbfi)[ii]->getFloat("MAT")]; // const GeoMaterial* cylMat = materialManager->getMaterial(matName); -// double rmin = (*pbfi)[ii]->getFloat("RIN")*CLHEP::cm; +// double rmin = (*pbfi)[ii]->getFloat("RIN")*GeoModelKernelUnits::cm; //---------------------------------------------------------------------------------- - double safety = 0.01*CLHEP::mm; - double maxRofEP = 1075.0*CLHEP::mm - safety; // Interfere with TRT PatchPanel1 - double RibConnection = 550.0*CLHEP::mm; + double safety = 0.01*GeoModelKernelUnits::mm; + double maxRofEP = 1075.0*GeoModelKernelUnits::mm - safety; // Interfere with TRT PatchPanel1 + double RibConnection = 550.0*GeoModelKernelUnits::mm; - maxRofEP = (*shell)[0]->getDouble("EPMAXR")*CLHEP::mm - safety; - RibConnection = (*ribs)[0]->getDouble("RIBCONNECTION")*CLHEP::mm; + maxRofEP = (*shell)[0]->getDouble("EPMAXR")*GeoModelKernelUnits::mm - safety; + RibConnection = (*ribs)[0]->getDouble("RIBCONNECTION")*GeoModelKernelUnits::mm; // // Internal shell. Default (initial) values // - double rminInt = 425.*CLHEP::mm; - double rmaxInt = 1040.*CLHEP::mm; - double thickShell = 3.*CLHEP::mm; - double thick2 = 10.*CLHEP::mm; - double zposEP = 3370.*CLHEP::mm; - double zleng = 42.*CLHEP::mm; - rminInt = (*shell)[0]->getDouble("RMININT")*CLHEP::mm; - rmaxInt = (*shell)[0]->getDouble("RMAXINT")*CLHEP::mm; - thickShell = (*shell)[0]->getDouble("THICKSHELL")*CLHEP::mm; - thick2 = (*shell)[0]->getDouble("THICKADD")*CLHEP::mm; - zposEP = (*shell)[0]->getDouble("ZSTART")*CLHEP::mm; - zleng = (*shell)[0]->getDouble("ZSHIFT")*CLHEP::mm; + double rminInt = 425.*GeoModelKernelUnits::mm; + double rmaxInt = 1040.*GeoModelKernelUnits::mm; + double thickShell = 3.*GeoModelKernelUnits::mm; + double thick2 = 10.*GeoModelKernelUnits::mm; + double zposEP = 3370.*GeoModelKernelUnits::mm; + double zleng = 42.*GeoModelKernelUnits::mm; + rminInt = (*shell)[0]->getDouble("RMININT")*GeoModelKernelUnits::mm; + rmaxInt = (*shell)[0]->getDouble("RMAXINT")*GeoModelKernelUnits::mm; + thickShell = (*shell)[0]->getDouble("THICKSHELL")*GeoModelKernelUnits::mm; + thick2 = (*shell)[0]->getDouble("THICKADD")*GeoModelKernelUnits::mm; + zposEP = (*shell)[0]->getDouble("ZSTART")*GeoModelKernelUnits::mm; + zleng = (*shell)[0]->getDouble("ZSHIFT")*GeoModelKernelUnits::mm; GeoTube* shellInt1 = new GeoTube(rminInt,rminInt+thick2,zleng*0.5); GeoTube* shellInt2 = new GeoTube(rminInt,rmaxInt,thickShell*0.5); @@ -96,15 +98,15 @@ void EndPlateFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) const GeoLogVol* shellLogInt2 = new GeoLogVol("EPShellInt",shellInt2,shellMat); GeoVPhysVol* shellPhysInt2 = new GeoPhysVol(shellLogInt2); - CLHEP::Hep3Vector servpos11(0.,0., zposEP+zleng*0.5); - CLHEP::Hep3Vector servpos12(0.,0., zposEP+zleng+thickShell*0.5); - CLHEP::Hep3Vector servpos21(0.,0., -zposEP-zleng*0.5); - CLHEP::Hep3Vector servpos22(0.,0., -zposEP-zleng-thickShell*0.5); + GeoTrf::Translate3D servpos11(0.,0., zposEP+zleng*0.5); + GeoTrf::Translate3D servpos12(0.,0., zposEP+zleng+thickShell*0.5); + GeoTrf::Vector3D servpos21(0.,0., -zposEP-zleng*0.5); + GeoTrf::Vector3D servpos22(0.,0., -zposEP-zleng-thickShell*0.5); - GeoTransform *xform11 = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),servpos11)); - GeoTransform *xform12 = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),servpos12)); - GeoTransform *xform21 = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(0.,M_PI,0.),servpos21)); - GeoTransform *xform22 = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(0.,M_PI,0.),servpos22)); + GeoTransform *xform11 = new GeoTransform(servpos11); + GeoTransform *xform12 = new GeoTransform(servpos12); + GeoTransform *xform21 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0.,M_PI,0.),servpos21)); + GeoTransform *xform22 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0.,M_PI,0.),servpos22)); motherP->add(xform11); motherP->add(shellPhysInt1); motherP->add(xform12); @@ -118,22 +120,22 @@ void EndPlateFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) // // External shell (default/initial values) - double zgap = 50.*CLHEP::mm; - double rminExt = 250.*CLHEP::mm; + double zgap = 50.*GeoModelKernelUnits::mm; + double rminExt = 250.*GeoModelKernelUnits::mm; double rmaxExt = maxRofEP; - zgap = (*shell)[0]->getDouble("ZGAP")*CLHEP::mm; - rminExt = (*shell)[0]->getDouble("RMINEXT")*CLHEP::mm; + zgap = (*shell)[0]->getDouble("ZGAP")*GeoModelKernelUnits::mm; + rminExt = (*shell)[0]->getDouble("RMINEXT")*GeoModelKernelUnits::mm; const GeoTube* shellExt = new GeoTube(rminExt,rmaxExt,thickShell/2.); const GeoLogVol* shellLogExt = new GeoLogVol("EPShellExt",shellExt,shellMat); GeoVPhysVol* shellPhysExt = new GeoPhysVol(shellLogExt); - CLHEP::Hep3Vector servpos3(0.,0., zposEP+zleng+thickShell+zgap+thickShell/2.); - CLHEP::Hep3Vector servpos4(0.,0.,-zposEP-zleng-thickShell-zgap-thickShell/2.); - GeoTransform *xform3 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos3)); - GeoTransform *xform4 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,M_PI,0.),servpos4)); + GeoTrf::Translate3D servpos3(0.,0., zposEP+zleng+thickShell+zgap+thickShell/2.); + GeoTrf::Vector3D servpos4(0.,0.,-zposEP-zleng-thickShell-zgap-thickShell/2.); + GeoTransform *xform3 = new GeoTransform(servpos3); + GeoTransform *xform4 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0.,M_PI,0.),servpos4)); motherP->add(xform3); motherP->add(shellPhysExt); @@ -144,19 +146,19 @@ void EndPlateFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) // // Insert - default (initial) values - double zthick = 16.0*CLHEP::mm; - double zinsert = 3018.*CLHEP::mm-zthick; - double rminins = 252.*CLHEP::mm; - double rmaxins = 435.*CLHEP::mm; - double rthick = 5.*CLHEP::mm; - double zlengi = 410.*CLHEP::mm; + double zthick = 16.0*GeoModelKernelUnits::mm; + double zinsert = 3018.*GeoModelKernelUnits::mm-zthick; + double rminins = 252.*GeoModelKernelUnits::mm; + double rmaxins = 435.*GeoModelKernelUnits::mm; + double rthick = 5.*GeoModelKernelUnits::mm; + double zlengi = 410.*GeoModelKernelUnits::mm; - zthick = (*insert)[0]->getDouble("ZTHICK")*CLHEP::mm; - zinsert = (*insert)[0]->getDouble("ZINSERT")*CLHEP::mm; - rminins = (*insert)[0]->getDouble("RMININS")*CLHEP::mm; - rmaxins = (*insert)[0]->getDouble("RMAXINS")*CLHEP::mm; - rthick = (*insert)[0]->getDouble("RTHICK")*CLHEP::mm; - zlengi = (*insert)[0]->getDouble("ZLENGINS")*CLHEP::mm; + zthick = (*insert)[0]->getDouble("ZTHICK")*GeoModelKernelUnits::mm; + zinsert = (*insert)[0]->getDouble("ZINSERT")*GeoModelKernelUnits::mm; + rminins = (*insert)[0]->getDouble("RMININS")*GeoModelKernelUnits::mm; + rmaxins = (*insert)[0]->getDouble("RMAXINS")*GeoModelKernelUnits::mm; + rthick = (*insert)[0]->getDouble("RTHICK")*GeoModelKernelUnits::mm; + zlengi = (*insert)[0]->getDouble("ZLENGINS")*GeoModelKernelUnits::mm; GeoTube* Insert1 = new GeoTube(rminins,rmaxins+rthick,zthick*0.5); GeoTube* Insert2 = new GeoTube(rmaxins,rmaxins+rthick,(zlengi-zthick)*0.5); @@ -168,14 +170,14 @@ void EndPlateFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) const GeoLogVol* InsertLog2 = new GeoLogVol("EPInsert",Insert2,insertMat); GeoVPhysVol* InsertPhys2 = new GeoPhysVol(InsertLog2); - CLHEP::Hep3Vector servpos51(0.,0., zinsert+zthick*0.5); - CLHEP::Hep3Vector servpos52(0.,0., zinsert+(zthick+zlengi)*0.5); - CLHEP::Hep3Vector servpos61(0.,0., -zinsert-zthick*0.5); - CLHEP::Hep3Vector servpos62(0.,0., -zinsert-(zthick+zlengi)*0.5); - GeoTransform *xform51 = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),servpos51)); - GeoTransform *xform52 = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),servpos52)); - GeoTransform *xform61 = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(0.,M_PI,0.),servpos61)); - GeoTransform *xform62 = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(0.,M_PI,0.),servpos62)); + GeoTrf::Translate3D servpos51(0.,0., zinsert+zthick*0.5); + GeoTrf::Translate3D servpos52(0.,0., zinsert+(zthick+zlengi)*0.5); + GeoTrf::Vector3D servpos61(0.,0., -zinsert-zthick*0.5); + GeoTrf::Vector3D servpos62(0.,0., -zinsert-(zthick+zlengi)*0.5); + GeoTransform *xform51 = new GeoTransform(servpos51); + GeoTransform *xform52 = new GeoTransform(servpos52); + GeoTransform *xform61 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0.,M_PI,0.),servpos61)); + GeoTransform *xform62 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0.,M_PI,0.),servpos62)); motherP->add(xform51); motherP->add(InsertPhys1); @@ -192,15 +194,15 @@ void EndPlateFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) // Short ribs - default (initial) values // Initial position is along X axis then move and rotate // - double ribY = 12.0*CLHEP::mm; + double ribY = 12.0*GeoModelKernelUnits::mm; double ribZ = zgap - safety; - double ribX = 380.0*CLHEP::mm; - double posX = 550.0*CLHEP::mm+ribX/2.; + double ribX = 380.0*GeoModelKernelUnits::mm; + double posX = 550.0*GeoModelKernelUnits::mm+ribX/2.; - ribY = (*ribs)[0]->getDouble("SHORTWID")*CLHEP::mm; + ribY = (*ribs)[0]->getDouble("SHORTWID")*GeoModelKernelUnits::mm; ribZ = zgap - safety; - ribX = (*ribs)[0]->getDouble("SHORTLENG")*CLHEP::mm; - posX = (*ribs)[0]->getDouble("SHORTRSTART")*CLHEP::mm + ribX/2.; + ribX = (*ribs)[0]->getDouble("SHORTLENG")*GeoModelKernelUnits::mm; + posX = (*ribs)[0]->getDouble("SHORTRSTART")*GeoModelKernelUnits::mm + ribX/2.; const GeoBox* ribShort = new GeoBox(ribX/2., ribY/2., ribZ/2.); @@ -217,12 +219,12 @@ void EndPlateFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) for (int ip=1; ip<12; ip++){ if( ip==3 || ip==6 || ip==9) continue; double angl= ip*M_PI/6.; - CLHEP::Hep3Vector ribpos_pos( posX*cos(angl), posX*sin(angl), zposEP+zleng+thickShell+zgap/2.); - CLHEP::Hep3Vector ribpos_neg( posX*cos(angl), posX*sin(angl),-zposEP-zleng-thickShell-zgap/2.); - xrib = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(-angl,0.,0.),ribpos_pos)); + GeoTrf::Vector3D ribpos_pos( posX*cos(angl), posX*sin(angl), zposEP+zleng+thickShell+zgap/2.); + GeoTrf::Vector3D ribpos_neg( posX*cos(angl), posX*sin(angl),-zposEP-zleng-thickShell-zgap/2.); + xrib = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(-angl,0.,0.),ribpos_pos)); motherP->add(xrib); motherP->add(ribShortPhys); - xrib = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(-angl,0.,0.),ribpos_neg)); + xrib = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(-angl,0.,0.),ribpos_neg)); motherM->add(xrib); motherM->add(ribShortPhys); } @@ -230,22 +232,22 @@ void EndPlateFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) //--------------------------------------------------------------------------------- // Long ribs (initial position is along X axis then move and rotate) // - double ribY1 = 20.0*CLHEP::mm; + double ribY1 = 20.0*GeoModelKernelUnits::mm; double ribZ1 = zgap - safety; - double ribX1 = RibConnection-250.*CLHEP::mm; - double posX1 = 250.*CLHEP::mm+ribX1/2.; + double ribX1 = RibConnection-250.*GeoModelKernelUnits::mm; + double posX1 = 250.*GeoModelKernelUnits::mm+ribX1/2.; - double ribY2 = 30.0*CLHEP::mm; + double ribY2 = 30.0*GeoModelKernelUnits::mm; double ribZ2 = zgap - safety; double ribX2 = maxRofEP - RibConnection; double posX2 = RibConnection+ribX2/2.; - ribY1 = (*ribs)[0]->getDouble("LONGWID1")*CLHEP::mm; + ribY1 = (*ribs)[0]->getDouble("LONGWID1")*GeoModelKernelUnits::mm; ribZ1 = zgap - safety; - ribX1 = RibConnection - (*ribs)[0]->getDouble("LONGLENG1")*CLHEP::mm; // LONGLENG1 is a RMIN of ribs - posX1 = (*ribs)[0]->getDouble("LONGLENG1")*CLHEP::mm + ribX1/2.; // It's determined by Pixel volume -> so 250.0!!! + ribX1 = RibConnection - (*ribs)[0]->getDouble("LONGLENG1")*GeoModelKernelUnits::mm; // LONGLENG1 is a RMIN of ribs + posX1 = (*ribs)[0]->getDouble("LONGLENG1")*GeoModelKernelUnits::mm + ribX1/2.; // It's determined by Pixel volume -> so 250.0!!! - ribY2 = (*ribs)[0]->getDouble("LONGWID2")*CLHEP::mm; + ribY2 = (*ribs)[0]->getDouble("LONGWID2")*GeoModelKernelUnits::mm; ribZ2 = zgap - safety; ribX2 = maxRofEP - RibConnection; posX2 = RibConnection+ribX2/2.; @@ -264,21 +266,21 @@ void EndPlateFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) for (int ip=0; ip<4; ip++){ double angl= ip*M_PI/2.; // 1st part - CLHEP::Hep3Vector ribpos_pos1( posX1*cos(angl), posX1*sin(angl), zposEP+zleng+thickShell+zgap/2.); - CLHEP::Hep3Vector ribpos_neg1( posX1*cos(angl), posX1*sin(angl),-zposEP-zleng-thickShell-zgap/2.); - xrib = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(-angl,0.,0.),ribpos_pos1)); + GeoTrf::Vector3D ribpos_pos1( posX1*cos(angl), posX1*sin(angl), zposEP+zleng+thickShell+zgap/2.); + GeoTrf::Vector3D ribpos_neg1( posX1*cos(angl), posX1*sin(angl),-zposEP-zleng-thickShell-zgap/2.); + xrib = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(-angl,0.,0.),ribpos_pos1)); motherP->add(xrib); motherP->add(ribLong1Phys); - xrib = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(-angl,0.,0.),ribpos_neg1)); + xrib = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(-angl,0.,0.),ribpos_neg1)); motherM->add(xrib); motherM->add(ribLong1Phys); // 2nd part - CLHEP::Hep3Vector ribpos_pos2( posX2*cos(angl), posX2*sin(angl), zposEP+zleng+thickShell+zgap/2.); - CLHEP::Hep3Vector ribpos_neg2( posX2*cos(angl), posX2*sin(angl),-zposEP-zleng-thickShell-zgap/2.); - xrib = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(-angl,0.,0.),ribpos_pos2)); + GeoTrf::Vector3D ribpos_pos2( posX2*cos(angl), posX2*sin(angl), zposEP+zleng+thickShell+zgap/2.); + GeoTrf::Vector3D ribpos_neg2( posX2*cos(angl), posX2*sin(angl),-zposEP-zleng-thickShell-zgap/2.); + xrib = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(-angl,0.,0.),ribpos_pos2)); motherP->add(xrib); motherP->add(ribLong2Phys); - xrib = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(-angl,0.,0.),ribpos_neg2)); + xrib = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(-angl,0.,0.),ribpos_neg2)); motherM->add(xrib); motherM->add(ribLong2Phys); } diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatBuilderToolSLHC.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatBuilderToolSLHC.cxx index ad4299a2c7be2a61e85fb09db1582c442cd94a9e..87365a42dd85dc963e4228da3e279fa02eceb063 100644 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatBuilderToolSLHC.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatBuilderToolSLHC.cxx @@ -12,7 +12,7 @@ #include "GeoModelInterfaces/IGeoDbTagSvc.h" #include "RDBAccessSvc/IRDBAccessSvc.h" #include "InDetGeoModelUtils/InDetMaterialManager.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include "InDetServMatGeoModel/ServicesTracker.h" #include "InDetServMatGeoModel/ServicesTrackerBuilder.h" @@ -301,14 +301,14 @@ void InDetServMatBuilderToolSLHC::printNewVolume( const ServiceVolume& vol, << " zmin " << vol.zMin() << " zmax " << vol.zMax() << endmsg; - msg(MSG::DEBUG) << "name " << vol.name() << " density " << dens * CLHEP::cm3 / CLHEP::g - << " [g/cm3] weight " << dens*param.volume()/CLHEP::kg << " [kg]" << endmsg; + msg(MSG::DEBUG) << "name " << vol.name() << " density " << dens * GeoModelKernelUnits::cm3 / GeoModelKernelUnits::g + << " [g/cm3] weight " << dens*param.volume()/GeoModelKernelUnits::kg << " [kg]" << endmsg; } if (msgLvl(MSG::DEBUG)) { // FIXME: change to VERBOSE when done! msg(MSG::DEBUG) << "Number of elements: " << mat.getNumElements() << endmsg; for (unsigned int i=0; i< mat.getNumElements(); i++) { msg(MSG::DEBUG) << "Element " << mat.getElement(i)->getName() - << " weight " << mat.getFraction(i) * weight / CLHEP::g << endmsg; + << " weight " << mat.getFraction(i) * weight / GeoModelKernelUnits::g << endmsg; } } } @@ -316,16 +316,16 @@ void InDetServMatBuilderToolSLHC::printNewVolume( const ServiceVolume& vol, void InDetServMatBuilderToolSLHC::fixMissingMaterials() { /* - m_geoMgr->matMgr()->addWeightEntry( "CoaxialHVCable", "indet::CoaxialHVCableBase", 0.0026*CLHEP::gram, true, "indet"); - m_geoMgr->matMgr()->addWeightEntry( "TwistedPair_awg36", "indet::TwistedPair_awg36Base", 0.000381*CLHEP::gram, true, "indet"); - m_geoMgr->matMgr()->addWeightEntry( "ScreenedTwistP_36", "indet::ScreenedTwistP_36Base", 0.000978*CLHEP::gram, true, "indet"); - m_geoMgr->matMgr()->addWeightEntry( "Twinax", "indet::TwinaxBase", 0.00517*CLHEP::gram, true, "indet"); + m_geoMgr->matMgr()->addWeightEntry( "CoaxialHVCable", "indet::CoaxialHVCableBase", 0.0026*GeoModelKernelUnits::gram, true, "indet"); + m_geoMgr->matMgr()->addWeightEntry( "TwistedPair_awg36", "indet::TwistedPair_awg36Base", 0.000381*GeoModelKernelUnits::gram, true, "indet"); + m_geoMgr->matMgr()->addWeightEntry( "ScreenedTwistP_36", "indet::ScreenedTwistP_36Base", 0.000978*GeoModelKernelUnits::gram, true, "indet"); + m_geoMgr->matMgr()->addWeightEntry( "Twinax", "indet::TwinaxBase", 0.00517*GeoModelKernelUnits::gram, true, "indet"); */ - //m_geoMgr->matMgr()->addWeightEntry( "ShieldingSleeve", "indet::ShieldingSleeveBase", 0.033*CLHEP::gram, true, "indet"); - //m_geoMgr->matMgr()->addWeightEntry( "ProtectionSleeve", "indet::ProtectionSleeveBase", 0.004*CLHEP::gram, true, "indet"); + //m_geoMgr->matMgr()->addWeightEntry( "ShieldingSleeve", "indet::ShieldingSleeveBase", 0.033*GeoModelKernelUnits::gram, true, "indet"); + //m_geoMgr->matMgr()->addWeightEntry( "ProtectionSleeve", "indet::ProtectionSleeveBase", 0.004*GeoModelKernelUnits::gram, true, "indet"); /* // the wight is 1, because the real weight is in ServiceMaterial NOT NEEDED - m_geoMgr->matMgr()->addWeightEntry( "CoolingPipe", "std::Titanium", 1*CLHEP::gram, true, "indet"); + m_geoMgr->matMgr()->addWeightEntry( "CoolingPipe", "std::Titanium", 1*GeoModelKernelUnits::gram, true, "indet"); std::vector<std::string> comps(2); std::vector<double> fracs(2); diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactory.cxx index c29725f0f0b82c4497a0077fcad2b748802f27b6..6854e139abd657c605da5f75252937e5758b93db 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactory.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactory.cxx @@ -36,7 +36,7 @@ // StoreGate includes #include "StoreGate/StoreGateSvc.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <iostream> @@ -90,26 +90,26 @@ void InDetServMatFactory::create(GeoPhysVol *world ) InDetMaterialManager * materialManager = new InDetMaterialManager("InDetServMatMaterialManager", getAthenaComps()); materialManager->addScalingTable(scalingTable); - double safety = 0.001 * CLHEP::mm; - - double ZMaxBrlTRT = envelopes->getDouble("ZMAXBRLTRT") * CLHEP::mm; - double ZMaxBrlSCT = envelopes->getDouble("ZMAXBRLSCT") * CLHEP::mm; - double ZMinFwdSCTandTRT = envelopes->getDouble("ZMINFWDSCTANDTRT") * CLHEP::mm; - double ZMinSCTServInTRT = envelopes->getDouble("ZMINSCTSERVINTRT") * CLHEP::mm; - double ZMaxSCTServInTRT = envelopes->getDouble("ZMAXSCTSERVINTRT") * CLHEP::mm; - double ZMinPixServ = envelopes->getDouble("ZMINPIXSERV") * CLHEP::mm; - double ZMaxFwdTRTC = envelopes->getDouble("ZMAXFWDTRTC") * CLHEP::mm; - double ZMaxIDet = (*atls)[0]->getDouble("IDETZMX") * CLHEP::cm + safety; // 3470 mm - - double RMinBrlSCT = envelopes->getDouble("RMINBRLSCT") * CLHEP::mm; - double RMaxBrlTRT = envelopes->getDouble("RMAXBRLTRT") * CLHEP::mm; - double RMinBrlTRT = envelopes->getDouble("RMINBRLTRT") * CLHEP::mm; - double RMaxFwdTRT = envelopes->getDouble("RMAXFWDTRT") * CLHEP::mm; - double RMaxFwdSCT = envelopes->getDouble("RMAXFWDSCT") * CLHEP::mm; - double RMaxFwdTRTC = envelopes->getDouble("RMAXFWDTRTC") * CLHEP::mm; - double RMinPixServ = envelopes->getDouble("RMINPIXSERV") * CLHEP::mm; - double RMaxPixServ = envelopes->getDouble("RMAXPIXSERV") * CLHEP::mm; - double RMaxIDet = (*atls)[0]->getDouble("IDETOR") * CLHEP::cm + safety; // 1147 mm + double safety = 0.001 * GeoModelKernelUnits::mm; + + double ZMaxBrlTRT = envelopes->getDouble("ZMAXBRLTRT") * GeoModelKernelUnits::mm; + double ZMaxBrlSCT = envelopes->getDouble("ZMAXBRLSCT") * GeoModelKernelUnits::mm; + double ZMinFwdSCTandTRT = envelopes->getDouble("ZMINFWDSCTANDTRT") * GeoModelKernelUnits::mm; + double ZMinSCTServInTRT = envelopes->getDouble("ZMINSCTSERVINTRT") * GeoModelKernelUnits::mm; + double ZMaxSCTServInTRT = envelopes->getDouble("ZMAXSCTSERVINTRT") * GeoModelKernelUnits::mm; + double ZMinPixServ = envelopes->getDouble("ZMINPIXSERV") * GeoModelKernelUnits::mm; + double ZMaxFwdTRTC = envelopes->getDouble("ZMAXFWDTRTC") * GeoModelKernelUnits::mm; + double ZMaxIDet = (*atls)[0]->getDouble("IDETZMX") * GeoModelKernelUnits::cm + safety; // 3470 mm + + double RMinBrlSCT = envelopes->getDouble("RMINBRLSCT") * GeoModelKernelUnits::mm; + double RMaxBrlTRT = envelopes->getDouble("RMAXBRLTRT") * GeoModelKernelUnits::mm; + double RMinBrlTRT = envelopes->getDouble("RMINBRLTRT") * GeoModelKernelUnits::mm; + double RMaxFwdTRT = envelopes->getDouble("RMAXFWDTRT") * GeoModelKernelUnits::mm; + double RMaxFwdSCT = envelopes->getDouble("RMAXFWDSCT") * GeoModelKernelUnits::mm; + double RMaxFwdTRTC = envelopes->getDouble("RMAXFWDTRTC") * GeoModelKernelUnits::mm; + double RMinPixServ = envelopes->getDouble("RMINPIXSERV") * GeoModelKernelUnits::mm; + double RMaxPixServ = envelopes->getDouble("RMAXPIXSERV") * GeoModelKernelUnits::mm; + double RMaxIDet = (*atls)[0]->getDouble("IDETOR") * GeoModelKernelUnits::cm + safety; // 1147 mm // Since the TRT Wheel C space is not used in some versions and is used by some // other services we simplify the volume. @@ -124,12 +124,12 @@ void InDetServMatFactory::create(GeoPhysVol *world ) bool join1 = false; bool join2 = false; - if (std::abs(RMaxFwdTRTC - RMinPixServ) <= 1*CLHEP::mm){ + if (std::abs(RMaxFwdTRTC - RMinPixServ) <= 1*GeoModelKernelUnits::mm){ join1 = true; join2 = true; RMaxFwdTRTC = RMinPixServ; RMaxPixServ = RMinPixServ; - } else if ((RMaxFwdTRTC - 1*CLHEP::mm) <= RMaxPixServ) { + } else if ((RMaxFwdTRTC - 1*GeoModelKernelUnits::mm) <= RMaxPixServ) { join1 = true; RMaxPixServ = RMaxFwdTRTC; } @@ -142,8 +142,8 @@ void InDetServMatFactory::create(GeoPhysVol *world ) const GeoShapeUnion *ServVolAux = 0; if (!join1) { - GeoPcon* pixServP = new GeoPcon(0.,2*CLHEP::pi); - GeoPcon* pixServM = new GeoPcon(0.,2*CLHEP::pi); + GeoPcon* pixServP = new GeoPcon(0.,2*GeoModelKernelUnits::pi); + GeoPcon* pixServM = new GeoPcon(0.,2*GeoModelKernelUnits::pi); // Plane 1: Start at the end of the SCT endcap pixServP->addPlane(ZMinPixServ, RMinPixServ, RMaxPixServ); @@ -163,7 +163,7 @@ void InDetServMatFactory::create(GeoPhysVol *world ) } // This is the volume for the TRT/SCT services - GeoPcon *sctTrtServ = new GeoPcon(0.,2*CLHEP::pi); + GeoPcon *sctTrtServ = new GeoPcon(0.,2*GeoModelKernelUnits::pi); // Pixel Services if (join1) { diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC2.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC2.cxx index a44b966ae5608d2d093c1022ae7fc18910f4999e..43f828b400c740a4cca8498feed4e2da920dde00 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC2.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC2.cxx @@ -95,42 +95,42 @@ void InDetServMatFactoryDC2::create(GeoPhysVol *world) // double epsilon = 0.001; - double endZOfBTRT = (*trtb)[0]->getDouble("ZLEN")*CLHEP::cm; - double endZOfBSCT = (*sctg)[0]->getDouble("HLEN")*CLHEP::cm; - double begZOfFSCT = (*zscg)[0]->getDouble("ZLOEND")*CLHEP::cm; - double endZOfFSCT = (*zscg)[0]->getDouble("ZHIEND")*CLHEP::cm; + double endZOfBTRT = (*trtb)[0]->getDouble("ZLEN")*GeoModelKernelUnits::cm; + double endZOfBSCT = (*sctg)[0]->getDouble("HLEN")*GeoModelKernelUnits::cm; + double begZOfFSCT = (*zscg)[0]->getDouble("ZLOEND")*GeoModelKernelUnits::cm; + double endZOfFSCT = (*zscg)[0]->getDouble("ZHIEND")*GeoModelKernelUnits::cm; double endZOfFTRT = ((*trtb)[15]->getDouble("ZPOSA") + ((*trtb)[15]->getDouble("ZLEN")+(*trtb)[15]->getDouble("ZGAP"))/2. + ((*trtb)[2]->getDouble("ZPOSA")-(*trtb)[1]->getDouble("ZPOSA"))*3 - + (*trtb)[1]->getDouble("ZLEN")/2.)*CLHEP::cm; + + (*trtb)[1]->getDouble("ZLEN")/2.)*GeoModelKernelUnits::cm; - double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*CLHEP::cm; + double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; // This is endOfEndCapVolumeAB //double begZOfSCTServInTRT = ((trtb[7].zposa + (trtb[7].zlen + trtb[7].zgap)/2.) + - // (trtb[8].zposa - trtb[7].zposa)*7 + trtb[7].zlen/2.)*CLHEP::cm; + // (trtb[8].zposa - trtb[7].zposa)*7 + trtb[7].zlen/2.)*GeoModelKernelUnits::cm; // This is beginningOfEndCapVolumeC // double endZOfSCTServInTRT = (trtb[15].zposa + (trtb[15].zlen + trtb[15].zgap)/2. - - // trtb[1].zlen/2.)*CLHEP::cm; + // trtb[1].zlen/2.)*GeoModelKernelUnits::cm; - // The SCT services go from 2755.306 to 2775.306 CLHEP::mm + // The SCT services go from 2755.306 to 2775.306 GeoModelKernelUnits::mm // The TRT has a gap from 2712.25 to 2829.75 mm // We hard wire an envelope for these services instead. - double begZOfSCTServInTRT = 2755. * CLHEP::mm; - double endZOfSCTServInTRT = 2776. * CLHEP::mm; + double begZOfSCTServInTRT = 2755. * GeoModelKernelUnits::mm; + double endZOfSCTServInTRT = 2776. * GeoModelKernelUnits::mm; //std::cout << "Begin SCT services " << begZOfSCTServInTRT << std::endl; //std::cout << "End SCT services " << endZOfSCTServInTRT << std::endl; - double outROfPixel = (*zscg)[0]->getDouble("RINEND")*CLHEP::cm; - double inROfFTRT = (*trtb)[15]->getDouble("RI")*CLHEP::cm; - double outROfFSCT = (*zscg)[0]->getDouble("ROUEND")*CLHEP::cm; - double outROfBSCT = (*sctg)[0]->getDouble("RMAX")*CLHEP::cm; - double outROfPixelCables = (*pbfi)[0]->getFloat("ROUT")*CLHEP::cm; - double outROfIDet = (*atls)[0]->getDouble("IDETOR")*CLHEP::cm; - double outROfTRT = (*trtg)[0]->getDouble("RMAX")*CLHEP::cm; + double outROfPixel = (*zscg)[0]->getDouble("RINEND")*GeoModelKernelUnits::cm; + double inROfFTRT = (*trtb)[15]->getDouble("RI")*GeoModelKernelUnits::cm; + double outROfFSCT = (*zscg)[0]->getDouble("ROUEND")*GeoModelKernelUnits::cm; + double outROfBSCT = (*sctg)[0]->getDouble("RMAX")*GeoModelKernelUnits::cm; + double outROfPixelCables = (*pbfi)[0]->getFloat("ROUT")*GeoModelKernelUnits::cm; + double outROfIDet = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; + double outROfTRT = (*trtg)[0]->getDouble("RMAX")*GeoModelKernelUnits::cm; // // Create the envelope for the Pixel Services: diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC3.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC3.cxx index b772fcb94f7ce33c90cd822aa911d3ec3b2812de..024b50ae510bc2d2cd4689a8267a038762539a68 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC3.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryDC3.cxx @@ -87,24 +87,24 @@ void InDetServMatFactoryDC3::create(GeoPhysVol *world ) InDetMaterialManager * materialManager = new InDetMaterialManager("InDetServMatMaterialManager", getAthenaComps()); - double ZMaxBrlTRT = envelopes->getDouble("ZMAXBRLTRT") * CLHEP::mm; - double ZMaxBrlSCT = envelopes->getDouble("ZMAXBRLSCT") * CLHEP::mm; - double ZMinFwdSCTandTRT = envelopes->getDouble("ZMINFWDSCTANDTRT") * CLHEP::mm; - double ZMinSCTServInTRT = envelopes->getDouble("ZMINSCTSERVINTRT") * CLHEP::mm; - double ZMaxSCTServInTRT = envelopes->getDouble("ZMAXSCTSERVINTRT") * CLHEP::mm; - double ZMinPixServ = envelopes->getDouble("ZMINPIXSERV") * CLHEP::mm; - double ZMaxFwdTRTC = envelopes->getDouble("ZMAXFWDTRTC") * CLHEP::mm; - double ZMaxIDet = (*atls)[0]->getDouble("IDETZMX") * CLHEP::cm; // 3490 mm - - double RMinBrlSCT = envelopes->getDouble("RMINBRLSCT") * CLHEP::mm; - double RMaxBrlTRT = envelopes->getDouble("RMAXBRLTRT") * CLHEP::mm; - double RMinBrlTRT = envelopes->getDouble("RMINBRLTRT") * CLHEP::mm; - double RMaxFwdTRT = envelopes->getDouble("RMAXFWDTRT") * CLHEP::mm; - double RMaxFwdSCT = envelopes->getDouble("RMAXFWDSCT") * CLHEP::mm; - double RMaxFwdTRTC = envelopes->getDouble("RMAXFWDTRTC") * CLHEP::mm; - double RMinPixServ = envelopes->getDouble("RMINPIXSERV") * CLHEP::mm; - double RMaxPixServ = envelopes->getDouble("RMAXPIXSERV") * CLHEP::mm; - double RMaxIDet = (*atls)[0]->getDouble("IDETOR") * CLHEP::cm; // 1147 mm + double ZMaxBrlTRT = envelopes->getDouble("ZMAXBRLTRT") * GeoModelKernelUnits::mm; + double ZMaxBrlSCT = envelopes->getDouble("ZMAXBRLSCT") * GeoModelKernelUnits::mm; + double ZMinFwdSCTandTRT = envelopes->getDouble("ZMINFWDSCTANDTRT") * GeoModelKernelUnits::mm; + double ZMinSCTServInTRT = envelopes->getDouble("ZMINSCTSERVINTRT") * GeoModelKernelUnits::mm; + double ZMaxSCTServInTRT = envelopes->getDouble("ZMAXSCTSERVINTRT") * GeoModelKernelUnits::mm; + double ZMinPixServ = envelopes->getDouble("ZMINPIXSERV") * GeoModelKernelUnits::mm; + double ZMaxFwdTRTC = envelopes->getDouble("ZMAXFWDTRTC") * GeoModelKernelUnits::mm; + double ZMaxIDet = (*atls)[0]->getDouble("IDETZMX") * GeoModelKernelUnits::cm; // 3490 mm + + double RMinBrlSCT = envelopes->getDouble("RMINBRLSCT") * GeoModelKernelUnits::mm; + double RMaxBrlTRT = envelopes->getDouble("RMAXBRLTRT") * GeoModelKernelUnits::mm; + double RMinBrlTRT = envelopes->getDouble("RMINBRLTRT") * GeoModelKernelUnits::mm; + double RMaxFwdTRT = envelopes->getDouble("RMAXFWDTRT") * GeoModelKernelUnits::mm; + double RMaxFwdSCT = envelopes->getDouble("RMAXFWDSCT") * GeoModelKernelUnits::mm; + double RMaxFwdTRTC = envelopes->getDouble("RMAXFWDTRTC") * GeoModelKernelUnits::mm; + double RMinPixServ = envelopes->getDouble("RMINPIXSERV") * GeoModelKernelUnits::mm; + double RMaxPixServ = envelopes->getDouble("RMAXPIXSERV") * GeoModelKernelUnits::mm; + double RMaxIDet = (*atls)[0]->getDouble("IDETOR") * GeoModelKernelUnits::cm; // 1147 mm @@ -112,8 +112,8 @@ void InDetServMatFactoryDC3::create(GeoPhysVol *world ) // Create the envelope for the Pixel Services: // const GeoMaterial* air = materialManager->getMaterial("std::Air"); - GeoPcon* pixServP = new GeoPcon(0.,2*CLHEP::pi); - GeoPcon* pixServM = new GeoPcon(0.,2*CLHEP::pi); + GeoPcon* pixServP = new GeoPcon(0.,2*GeoModelKernelUnits::pi); + GeoPcon* pixServM = new GeoPcon(0.,2*GeoModelKernelUnits::pi); // Plane 1: Start at the end of the SCT endcap pixServP->addPlane(ZMinPixServ, RMinPixServ, RMaxPixServ); @@ -132,7 +132,7 @@ void InDetServMatFactoryDC3::create(GeoPhysVol *world ) const GeoShapeUnion *ServVolAux = new GeoShapeUnion(pixServP, pixServM); // This is the volume for the TRT/SCT services - GeoPcon *sctTrtServ = new GeoPcon(0.,2*CLHEP::pi); + GeoPcon *sctTrtServ = new GeoPcon(0.,2*GeoModelKernelUnits::pi); // THE BEGINNING sctTrtServ->addPlane(-ZMaxIDet, RMaxFwdTRTC, RMaxIDet); diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryFS.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryFS.cxx index c0dd46354f1c8dab029343975deed3b99e1598a5..4da8a0e8df60f7c9b9b4dde3fcc0a7b0b509dc0e 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryFS.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactoryFS.cxx @@ -32,7 +32,7 @@ #include "RDBAccessSvc/IRDBAccessSvc.h" #include "GaudiKernel/Bootstrap.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <iostream> @@ -91,26 +91,26 @@ void InDetServMatFactoryFS::create(GeoPhysVol *world ) const IRDBRecord *envelopes = (*servEnvelopeTable)[0]; - double safety = 0.001 * CLHEP::mm; + double safety = 0.001 * GeoModelKernelUnits::mm; - double ZMaxBrlTRT = envelopes->getDouble("ZMAXBRLTRT") * CLHEP::mm; - double ZMaxBrlSCT = envelopes->getDouble("ZMAXBRLSCT") * CLHEP::mm; - double ZMinFwdSCTandTRT = envelopes->getDouble("ZMINFWDSCTANDTRT") * CLHEP::mm; - double ZMinSCTServInTRT = envelopes->getDouble("ZMINSCTSERVINTRT") * CLHEP::mm; - double ZMaxSCTServInTRT = envelopes->getDouble("ZMAXSCTSERVINTRT") * CLHEP::mm; - double ZMinPixServ = envelopes->getDouble("ZMINPIXSERV") * CLHEP::mm; - double ZMaxFwdTRTC = envelopes->getDouble("ZMAXFWDTRTC") * CLHEP::mm; - double ZMaxIDet = (*atls)[0]->getDouble("IDETZMX") * CLHEP::cm + safety; // 3470 mm + double ZMaxBrlTRT = envelopes->getDouble("ZMAXBRLTRT") * GeoModelKernelUnits::mm; + double ZMaxBrlSCT = envelopes->getDouble("ZMAXBRLSCT") * GeoModelKernelUnits::mm; + double ZMinFwdSCTandTRT = envelopes->getDouble("ZMINFWDSCTANDTRT") * GeoModelKernelUnits::mm; + double ZMinSCTServInTRT = envelopes->getDouble("ZMINSCTSERVINTRT") * GeoModelKernelUnits::mm; + double ZMaxSCTServInTRT = envelopes->getDouble("ZMAXSCTSERVINTRT") * GeoModelKernelUnits::mm; + double ZMinPixServ = envelopes->getDouble("ZMINPIXSERV") * GeoModelKernelUnits::mm; + double ZMaxFwdTRTC = envelopes->getDouble("ZMAXFWDTRTC") * GeoModelKernelUnits::mm; + double ZMaxIDet = (*atls)[0]->getDouble("IDETZMX") * GeoModelKernelUnits::cm + safety; // 3470 mm - double RMinBrlSCT = envelopes->getDouble("RMINBRLSCT") * CLHEP::mm; - double RMaxBrlTRT = envelopes->getDouble("RMAXBRLTRT") * CLHEP::mm; - double RMinBrlTRT = envelopes->getDouble("RMINBRLTRT") * CLHEP::mm; - double RMaxFwdTRT = envelopes->getDouble("RMAXFWDTRT") * CLHEP::mm; - double RMaxFwdSCT = envelopes->getDouble("RMAXFWDSCT") * CLHEP::mm; - double RMaxFwdTRTC = envelopes->getDouble("RMAXFWDTRTC") * CLHEP::mm; - double RMinPixServ = envelopes->getDouble("RMINPIXSERV") * CLHEP::mm; - double RMaxPixServ = envelopes->getDouble("RMAXPIXSERV") * CLHEP::mm; - double RMaxIDet = (*atls)[0]->getDouble("IDETOR") * CLHEP::cm + safety; // 1147 mm + double RMinBrlSCT = envelopes->getDouble("RMINBRLSCT") * GeoModelKernelUnits::mm; + double RMaxBrlTRT = envelopes->getDouble("RMAXBRLTRT") * GeoModelKernelUnits::mm; + double RMinBrlTRT = envelopes->getDouble("RMINBRLTRT") * GeoModelKernelUnits::mm; + double RMaxFwdTRT = envelopes->getDouble("RMAXFWDTRT") * GeoModelKernelUnits::mm; + double RMaxFwdSCT = envelopes->getDouble("RMAXFWDSCT") * GeoModelKernelUnits::mm; + double RMaxFwdTRTC = envelopes->getDouble("RMAXFWDTRTC") * GeoModelKernelUnits::mm; + double RMinPixServ = envelopes->getDouble("RMINPIXSERV") * GeoModelKernelUnits::mm; + double RMaxPixServ = envelopes->getDouble("RMAXPIXSERV") * GeoModelKernelUnits::mm; + double RMaxIDet = (*atls)[0]->getDouble("IDETOR") * GeoModelKernelUnits::cm + safety; // 1147 mm // Since the TRT Wheel C space is not used in some versions and is used by some // other services we simplify the volume. @@ -125,12 +125,12 @@ void InDetServMatFactoryFS::create(GeoPhysVol *world ) bool join1 = false; bool join2 = false; - if (std::abs(RMaxFwdTRTC - RMinPixServ) <= 1*CLHEP::mm){ + if (std::abs(RMaxFwdTRTC - RMinPixServ) <= 1*GeoModelKernelUnits::mm){ join1 = true; join2 = true; RMaxFwdTRTC = RMinPixServ; RMaxPixServ = RMinPixServ; - } else if ((RMaxFwdTRTC - 1*CLHEP::mm) <= RMaxPixServ) { + } else if ((RMaxFwdTRTC - 1*GeoModelKernelUnits::mm) <= RMaxPixServ) { join1 = true; RMaxPixServ = RMaxFwdTRTC; } @@ -144,8 +144,8 @@ void InDetServMatFactoryFS::create(GeoPhysVol *world ) GeoPcon* pixServM = 0; if (!join1) { - pixServP = new GeoPcon(0.,2*CLHEP::pi); - pixServM = new GeoPcon(0.,2*CLHEP::pi); + pixServP = new GeoPcon(0.,2*GeoModelKernelUnits::pi); + pixServM = new GeoPcon(0.,2*GeoModelKernelUnits::pi); // Plane 1: Start at the end of the SCT endcap pixServP->addPlane(ZMinPixServ, RMinPixServ, RMaxPixServ); @@ -163,8 +163,8 @@ void InDetServMatFactoryFS::create(GeoPhysVol *world ) } // This is the volume for the TRT/SCT services - GeoPcon *sctTrtServP = new GeoPcon(0.,2*CLHEP::pi); - GeoPcon *sctTrtServM = new GeoPcon(0.,2*CLHEP::pi); + GeoPcon *sctTrtServP = new GeoPcon(0.,2*GeoModelKernelUnits::pi); + GeoPcon *sctTrtServM = new GeoPcon(0.,2*GeoModelKernelUnits::pi); // Pixel Services if (join1) { diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactorySLHC.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactorySLHC.cxx index 60272ec92c6c1aa57f4bdc11d40cd01d644c0d69..79bdc998f80467f07b538418186d3886b2f7c771 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactorySLHC.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatFactorySLHC.cxx @@ -75,9 +75,9 @@ void InDetServMatFactorySLHC::create(GeoPhysVol *world ) double cylLength; if (oldEnvelope()) { - innerRadius = geomDB()->getDouble("","SERVICESINNERRADIUS") * CLHEP::mm; - outerRadius = geomDB()->getDouble("","SERVICESOUTERRADIUS") * CLHEP::mm; - cylLength = geomDB()->getDouble("","SERVICESCYLLENGTH") * CLHEP::mm; + innerRadius = geomDB()->getDouble("","SERVICESINNERRADIUS") * GeoModelKernelUnits::mm; + outerRadius = geomDB()->getDouble("","SERVICESOUTERRADIUS") * GeoModelKernelUnits::mm; + cylLength = geomDB()->getDouble("","SERVICESCYLLENGTH") * GeoModelKernelUnits::mm; } else { innerRadius = envelopeRMin(); outerRadius = envelopeRMax(); @@ -86,7 +86,7 @@ void InDetServMatFactorySLHC::create(GeoPhysVol *world ) envelopeShape = new GeoTube(innerRadius, outerRadius, 0.5*cylLength); zone = new InDetDD::TubeZone("InDetServMat", -0.5*cylLength, 0.5*cylLength, innerRadius, outerRadius); } else { - GeoPcon* envelopeShapeTmp = new GeoPcon(0.,2*CLHEP::pi); + GeoPcon* envelopeShapeTmp = new GeoPcon(0.,2*GeoModelKernelUnits::pi); // table contains +ve z values only and envelope is assumed to be symmetric around z. int numPlanes = envelopeNumPlanes(); for (int i = 0; i < numPlanes * 2; i++) { @@ -183,7 +183,7 @@ InDetServMatFactorySLHC::envelopeNumPlanes() const double InDetServMatFactorySLHC::envelopeZ(int i) const { - double zmin = geomDB()->getDouble(m_InDetServGenEnvelope,"Z",i) * CLHEP::mm; + double zmin = geomDB()->getDouble(m_InDetServGenEnvelope,"Z",i) * GeoModelKernelUnits::mm; if (zmin < 0) msg(MSG::ERROR) << "InDetServGenEnvelope table should only contain +ve z values" << endmsg; return std::abs(zmin); } @@ -191,11 +191,11 @@ InDetServMatFactorySLHC::envelopeZ(int i) const double InDetServMatFactorySLHC::envelopeRMin(int i) const { - return geomDB()->getDouble(m_InDetServGenEnvelope,"RMIN",i) * CLHEP::mm; + return geomDB()->getDouble(m_InDetServGenEnvelope,"RMIN",i) * GeoModelKernelUnits::mm; } double InDetServMatFactorySLHC::envelopeRMax(int i) const { - return geomDB()->getDouble(m_InDetServGenEnvelope,"RMAX",i) * CLHEP::mm; + return geomDB()->getDouble(m_InDetServGenEnvelope,"RMAX",i) * GeoModelKernelUnits::mm; } diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatGeometryManager.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatGeometryManager.cxx index a85d8ea8fdab393c2fd8c3ab15d2243b43799b71..b1b87b9cf5c43f51a83bceda48cf175722a8f7b1 100644 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatGeometryManager.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/InDetServMatGeometryManager.cxx @@ -10,7 +10,7 @@ #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" InDetServMatGeometryManager::InDetServMatGeometryManager(const InDetDD::AthenaComps * athenaComps) : m_athenaComps(athenaComps), @@ -158,14 +158,14 @@ int InDetServMatGeometryManager::pixelNumLayers() const // layer radius double InDetServMatGeometryManager::pixelLayerRadius(int layer) const { - return db()->getDouble(m_PixelLayer,"RLAYER",layer) * CLHEP::mm; + return db()->getDouble(m_PixelLayer,"RLAYER",layer) * GeoModelKernelUnits::mm; } // layer length double InDetServMatGeometryManager::pixelLayerLength(int layer) const { int staveIndex = db()->getInt(m_PixelLayer,"STAVEINDEX",layer); - return db()->getDouble(m_PixelStave,"ENVLENGTH",staveIndex) * CLHEP::mm; + return db()->getDouble(m_PixelStave,"ENVLENGTH",staveIndex) * GeoModelKernelUnits::mm; } // Number of staves/sectors per barrel layer @@ -264,7 +264,7 @@ int InDetServMatGeometryManager::pixelNumDisks() const // disk Z position double InDetServMatGeometryManager::pixelDiskZ(int disk) const { - return db()->getDouble(m_PixelDisk,"ZDISK",disk) * CLHEP::mm; + return db()->getDouble(m_PixelDisk,"ZDISK",disk) * GeoModelKernelUnits::mm; } // disk min radius @@ -272,10 +272,10 @@ double InDetServMatGeometryManager::pixelDiskRMin(int disk) const { std::string route = pixelDiskServiceRoute(disk); if(route=="StdRoute") - return db()->getDouble(m_PixelDisk,"RMIN",disk) * CLHEP::mm - 11*CLHEP::mm; + return db()->getDouble(m_PixelDisk,"RMIN",disk) * GeoModelKernelUnits::mm - 11*GeoModelKernelUnits::mm; // support structures - SUP1RMIN is always closest to centre - return db()->getDouble(m_PixelDisk,"SUP1RMIN",disk) * CLHEP::mm; + return db()->getDouble(m_PixelDisk,"SUP1RMIN",disk) * GeoModelKernelUnits::mm; } @@ -284,10 +284,10 @@ double InDetServMatGeometryManager::pixelDiskRMax(int disk) const { std::string route = pixelDiskServiceRoute(disk); if(route=="StdRoute") - return db()->getDouble(m_PixelDisk,"RMAX",disk) * CLHEP::mm + 11*CLHEP::mm; + return db()->getDouble(m_PixelDisk,"RMAX",disk) * GeoModelKernelUnits::mm + 11*GeoModelKernelUnits::mm; // support structures - SUP3RMAX is always furthest from centre - return db()->getDouble(m_PixelDisk,"SUP3RMAX",disk) * CLHEP::mm; + return db()->getDouble(m_PixelDisk,"SUP3RMAX",disk) * GeoModelKernelUnits::mm; } @@ -297,7 +297,7 @@ double InDetServMatGeometryManager::pixelDiskEOSZOffset(int disk) const if (!db()->testField(m_PixelSvcRoute, "EOSZOFFSET")) return 0.0; else - return db()->getDouble(m_PixelSvcRoute,"EOSZOFFSET",disk) * CLHEP::mm; + return db()->getDouble(m_PixelSvcRoute,"EOSZOFFSET",disk) * GeoModelKernelUnits::mm; } // return name of support tube where @@ -310,7 +310,7 @@ std::string InDetServMatGeometryManager::pixelDiskServiceRoute(int disk) const double InDetServMatGeometryManager::pixelEnvelopeRMax() const { - return db()->getDouble(m_PixelEnvelope,"RMAX") * CLHEP::mm; + return db()->getDouble(m_PixelEnvelope,"RMAX") * GeoModelKernelUnits::mm; } int InDetServMatGeometryManager::pixelBarrelModuleType( int layer) const @@ -351,13 +351,13 @@ int InDetServMatGeometryManager::sctNumLayers() const // layer radius double InDetServMatGeometryManager::sctLayerRadius(int layer) const { - return db()->getDouble(m_SctBrlLayer,"RADIUS",layer) * CLHEP::mm; + return db()->getDouble(m_SctBrlLayer,"RADIUS",layer) * GeoModelKernelUnits::mm; } // layer length double InDetServMatGeometryManager::sctLayerLength(int layer) const { - return db()->getDouble(m_SctBrlLayer,"CYLLENGTH",layer) * CLHEP::mm; + return db()->getDouble(m_SctBrlLayer,"CYLLENGTH",layer) * GeoModelKernelUnits::mm; } // layer type. Long(0) or Short (1) strips. NEEDS CHECKING @@ -395,17 +395,17 @@ int InDetServMatGeometryManager::sctNumDisks() const // disk Z position double InDetServMatGeometryManager::sctDiskZ(int disk) const { - return db()->getDouble(m_SctFwdWheel,"ZPOSITION",disk) * CLHEP::mm; + return db()->getDouble(m_SctFwdWheel,"ZPOSITION",disk) * GeoModelKernelUnits::mm; } // disk Z position double InDetServMatGeometryManager::sctDiskRMax(int disk) const { - return db()->getDouble(m_SctFwdDiscSupport,"OUTERRADIUS",disk) * CLHEP::mm; + return db()->getDouble(m_SctFwdDiscSupport,"OUTERRADIUS",disk) * GeoModelKernelUnits::mm; } double InDetServMatGeometryManager::sctInnerSupport() const { - return db()->getDouble(m_SctBrlServPerLayer,"SUPPORTCYLINNERRAD",0) * CLHEP::mm; + return db()->getDouble(m_SctBrlServPerLayer,"SUPPORTCYLINNERRAD",0) * GeoModelKernelUnits::mm; } diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC2.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC2.cxx index 56735f08168474fcd15c7cfe80abc1a8b5776226..ce929352dd2120423ce40cf6d764c5c4c20f4880 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC2.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC2.cxx @@ -5,6 +5,8 @@ #include "InDetServMatGeoModel/PixelServMatFactoryDC2.h" // GeoModel includes +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoTube.h" @@ -74,8 +76,8 @@ void PixelServMatFactoryDC2::create(GeoPhysVol *mother) std::string matName = mat[(int) (*pbfi)[ii]->getFloat("MAT")]; const GeoMaterial* cylMat = materialManager->getMaterial(matName); - double rmin = (*pbfi)[ii]->getFloat("RIN")*CLHEP::cm; - double rmax = (*pbfi)[ii]->getFloat("ROUT")*CLHEP::cm; + double rmin = (*pbfi)[ii]->getFloat("RIN")*GeoModelKernelUnits::cm; + double rmax = (*pbfi)[ii]->getFloat("ROUT")*GeoModelKernelUnits::cm; double zmin = (*pbfi)[ii]->getFloat("ZIN"); double zmax = (*pbfi)[ii]->getFloat("ZOUT"); // elaborate it 'a la G3... @@ -84,9 +86,9 @@ void PixelServMatFactoryDC2::create(GeoPhysVol *mother) double rl = cylMat->getRadLength(); halflength = fabs(zmax) * rl /200. ; } else { - halflength = fabs(zmax-zmin)*CLHEP::cm; + halflength = fabs(zmax-zmin)*GeoModelKernelUnits::cm; } - double zpos = fabs(zmin*CLHEP::cm)+halflength+epsilon; + double zpos = fabs(zmin*GeoModelKernelUnits::cm)+halflength+epsilon; // Build the Phys Vol std::ostringstream o; o << ii; @@ -97,18 +99,18 @@ void PixelServMatFactoryDC2::create(GeoPhysVol *mother) if(rmin > 0.) // place two { - CLHEP::Hep3Vector servpos1(0.,0.,zpos); - CLHEP::Hep3Vector servpos2(0.,0.,-zpos); - GeoTransform *xform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),servpos1)); - GeoTransform *xform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),servpos2)); + GeoTrf::Translate3D servpos1(0.,0.,zpos); + GeoTrf::Translate3D servpos2(0.,0.,-zpos); + GeoTransform *xform1 = new GeoTransform(servpos1); + GeoTransform *xform2 = new GeoTransform(servpos2); mother->add(xform1); mother->add(ServPhys); mother->add(xform2); mother->add(ServPhys); } else { // only one on the right side if(zmin < 0) zpos = -zpos; - CLHEP::Hep3Vector servpos1(0.,0.,zpos); - GeoTransform *xform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),servpos1)); + GeoTrf::Translate3D servpos1(0.,0.,zpos); + GeoTransform *xform1 = new GeoTransform(servpos1); mother->add(xform1); mother->add(ServPhys); } diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC3.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC3.cxx index e60ea28344bd36d99b3f1c82a05fa81571c7d426..84d66d298dc28f11f49e17189a4f163e54d753fa 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC3.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryDC3.cxx @@ -5,6 +5,8 @@ #include "InDetServMatGeoModel/PixelServMatFactoryDC3.h" // GeoModel includes +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoTube.h" @@ -72,14 +74,14 @@ void PixelServMatFactoryDC3::create(GeoPhysVol *mother) std::cout << "Test Material std::Copper density="<<testMat->getDensity() <<" Rad.length="<<testMat->getRadLength()<<" Int.length="<<testMat->getIntLength()<<'\n'; - GeoMaterial* TIN = new GeoMaterial("Sn", 7.31*CLHEP::gram/CLHEP::cm3); -// GeoElement *testMat = new GeoElement("Tin", "Sn", 50.0, 118.69*CLHEP::amu_c2); + GeoMaterial* TIN = new GeoMaterial("Sn", 7.31*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); +// GeoElement *testMat = new GeoElement("Tin", "Sn", 50.0, 118.69*GeoModelKernelUnits::amu_c2); const GeoElement *tin = materialManager->getElement("Tin"); TIN->add(const_cast<GeoElement *>(tin),1.); TIN->lock(); testMat=TIN; std::cout << "Test Material Tin density="<<testMat->getDensity() <<" Rad.length="<<testMat->getRadLength()<<" Int.length="<<testMat->getIntLength()<<'\n'; - std::cout << "Atomic mass unit="<<CLHEP::amu_c2<<'\n'; + std::cout << "Atomic mass unit="<<GeoModelKernelUnits::amu_c2<<'\n'; std::cout << "gram/cm3 ="<<gram/cm3<<'\n'; */ @@ -99,8 +101,8 @@ void PixelServMatFactoryDC3::create(GeoPhysVol *mother) // <<" Rad.length="<<cylMat->getRadLength()<<'\n'; - double rmin = (*pbfi)[jj]->getFloat("RIN")*CLHEP::cm; - double rmax = (*pbfi)[jj]->getFloat("ROUT")*CLHEP::cm; + double rmin = (*pbfi)[jj]->getFloat("RIN")*GeoModelKernelUnits::cm; + double rmax = (*pbfi)[jj]->getFloat("ROUT")*GeoModelKernelUnits::cm; double zmin = (*pbfi)[jj]->getFloat("ZIN"); double zmax = (*pbfi)[jj]->getFloat("ZOUT"); @@ -113,7 +115,7 @@ void PixelServMatFactoryDC3::create(GeoPhysVol *mother) double rl = cylMat->getRadLength(); halflength = fabs(zmax) * rl /200. ; } else { - halflength = fabs(zmax-zmin)*CLHEP::cm; + halflength = fabs(zmax-zmin)*GeoModelKernelUnits::cm; } //VK Temporary!!! To bring thickness to nominal values @@ -123,7 +125,7 @@ void PixelServMatFactoryDC3::create(GeoPhysVol *mother) // if( ii == 0 ) zmin += 0.7; // in cm! //std::cout << "New="<<halflength<<", "<<zmin<<", "<<ii<<'\n'; - double zpos = fabs(zmin*CLHEP::cm)+halflength+epsilon; + double zpos = fabs(zmin*GeoModelKernelUnits::cm)+halflength+epsilon; // Build the Phys Vol std::ostringstream o; o << ii; @@ -149,17 +151,17 @@ void PixelServMatFactoryDC3::create(GeoPhysVol *mother) GeoPhysVol* ServPhys = new GeoPhysVol(ServLog); if(zmin < 0) zpos = -zpos; - CLHEP::Hep3Vector servpos1(0.,0.,zpos); - CLHEP::Hep3Vector servpos2(0.,0.,-zpos); + GeoTrf::Vector3D servpos1(0.,0.,zpos); + GeoTrf::Vector3D servpos2(0.,0.,-zpos); // if (ii==0 || ii==2 || ii==6 || ii==1){ for (int isec=0; isec<12 ; isec++){ - std::ostringstream o; + std::ostringstream o; o<<"_"; o << isec; std::string logNameTmp = logName+o.str(); //std::cout<<isec<<", "<<logNameTmp<<'\n'; - GeoTransform *xform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,0.,isec*M_PI/6.),servpos1)); - GeoTransform *xform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,0.,isec*M_PI/6.),servpos2)); + GeoTransform *xform1 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0.,0.,isec*M_PI/6.),servpos1)); + GeoTransform *xform2 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0.,0.,isec*M_PI/6.),servpos2)); xform2->ref();//artificial refcount increment mother->add(new GeoNameTag(logNameTmp)); mother->add(xform1);//xform1 is always used @@ -172,8 +174,8 @@ void PixelServMatFactoryDC3::create(GeoPhysVol *mother) xform2->unref(); //will delete it, if it was never used } }else{ - GeoTransform *xform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),servpos1)); - GeoTransform *xform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),servpos2)); + GeoTransform *xform1 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0,0,0),servpos1)); + GeoTransform *xform2 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0,0,0),servpos2)); xform2->ref();//artificial refcount increment mother->add(xform1); mother->add(ServPhys); diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryFS.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryFS.cxx index 371e02aa48e3cc3a369968f9407eb6c5631bf65d..e872b357bf66833acbce4df6aa0f5a260a3a67fa 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryFS.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/PixelServMatFactoryFS.cxx @@ -105,7 +105,7 @@ void PixelServMatFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) servicePcon->getDPhi()); GeoCons* cons = new GeoCons(servicePcon->getRMinPlane(2),servicePcon->getRMinPlane(3), - servicePcon->getRMaxPlane(2),servicePcon->getRMaxPlane(3)+1E-9*CLHEP::mm, + servicePcon->getRMaxPlane(2),servicePcon->getRMaxPlane(3)+1E-9*GeoModelKernelUnits::mm, (servicePcon->getZPlane(3)-servicePcon->getZPlane(2))*0.5, servicePcon->getSPhi(), servicePcon->getDPhi()); diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactory.cxx index 5310b5f5edf8e24b2761da2067bf7d2b26f96807..12d99004ab1d44fd93259e840c42dfd40af592f0 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactory.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactory.cxx @@ -5,6 +5,8 @@ #include "InDetServMatGeoModel/SCT_ServMatFactory.h" // GeoModel includes +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoTube.h" @@ -70,14 +72,14 @@ void SCT_ServMatFactory::create(GeoPhysVol *mother) //------------------------------------------ //VK 10/09/2005 Construct a gap for rails - double outROfIDet = (*atls)[0]->getDouble("IDETOR")*CLHEP::cm; - double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*CLHEP::cm; - // double minRofGap = 1050.0*CLHEP::mm; - // double minRofGap = 1110.0*CLHEP::mm; - double minRofGap = 1089.0*CLHEP::mm; - double phiWid=(70.*CLHEP::mm)/outROfIDet; + double outROfIDet = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; + double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; + // double minRofGap = 1050.0*GeoModelKernelUnits::mm; + // double minRofGap = 1110.0*GeoModelKernelUnits::mm; + double minRofGap = 1089.0*GeoModelKernelUnits::mm; + double phiWid=(70.*GeoModelKernelUnits::mm)/outROfIDet; // std::cout << "Gap phiWid = " << phiWid << std::endl; - double safetyGap=1.*CLHEP::mm; + double safetyGap=1.*GeoModelKernelUnits::mm; //created by Adam Agocs @@ -129,7 +131,7 @@ void SCT_ServMatFactory::create(GeoPhysVol *mother) double volumeCut = 0; const GeoShape* serviceTube = serviceTubeTmp; const GeoShape* serviceTube2 = serviceTubeTmp; //because of asymmetry - if( tubeHelper.volData().maxRadius() > minRofGap && tubeHelper.volData().phiStart()*CLHEP::radian < phiTop) { + if( tubeHelper.volData().maxRadius() > minRofGap && tubeHelper.volData().phiStart()*GeoModelKernelUnits::radian < phiTop) { // Subtract RailGap out of services if (NameOfService == "PPB1EFEG" || NameOfService == "CableTrayEFEG") { @@ -166,13 +168,13 @@ void SCT_ServMatFactory::create(GeoPhysVol *mother) const GeoLogVol* serv2Log = new GeoLogVol(logName,serviceTube2,material); GeoVPhysVol* serv2Phys = new GeoPhysVol(serv2Log); - HepGeom::TranslateZ3D trans(tubeHelper.volData().zMid()); - HepGeom::TranslateZ3D trans2(-tubeHelper.volData().zMid()); + GeoTrf::TranslateZ3D trans(tubeHelper.volData().zMid()); + GeoTrf::TranslateZ3D trans2(-tubeHelper.volData().zMid()); GeoTransform * xform1 = new GeoTransform(trans); GeoTransform * xform1Neg = new GeoTransform(trans2); - GeoTransform * xform2 = new GeoTransform(HepGeom::RotateZ3D(180*CLHEP::deg)*trans); - GeoTransform * xform2Neg = new GeoTransform(HepGeom::RotateZ3D(180*CLHEP::deg)*trans2); + GeoTransform * xform2 = new GeoTransform(GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)*trans); + GeoTransform * xform2Neg = new GeoTransform(GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)*trans2); // std::cerr << xform1 << std::endl << xform1Neg << std::endl << xform2 << std::endl << xform2Neg << std::endl; @@ -202,12 +204,12 @@ void SCT_ServMatFactory::create(GeoPhysVol *mother) for (unsigned int ii =0; ii < sctsup->size(); ii++) { - RMinW = (*sctsup)[ii]->getFloat("RMIN")*CLHEP::mm; - RMaxW = (*sctsup)[ii]->getFloat("RMAX")*CLHEP::mm; - ZHalfLengthW = (*sctsup)[ii]->getFloat("THICK")/2.*CLHEP::mm; - WidI = (*sctsup)[ii]->getFloat("WIDTHINNER")*CLHEP::mm; - WidO = (*sctsup)[ii]->getFloat("WIDTHOUTER")*CLHEP::mm; - ZStartW = (*sctsup)[ii]->getFloat("ZSTART")*CLHEP::mm; + RMinW = (*sctsup)[ii]->getFloat("RMIN")*GeoModelKernelUnits::mm; + RMaxW = (*sctsup)[ii]->getFloat("RMAX")*GeoModelKernelUnits::mm; + ZHalfLengthW = (*sctsup)[ii]->getFloat("THICK")/2.*GeoModelKernelUnits::mm; + WidI = (*sctsup)[ii]->getFloat("WIDTHINNER")*GeoModelKernelUnits::mm; + WidO = (*sctsup)[ii]->getFloat("WIDTHOUTER")*GeoModelKernelUnits::mm; + ZStartW = (*sctsup)[ii]->getFloat("ZSTART")*GeoModelKernelUnits::mm; NameOfMaterial = (*sctsup)[ii]->getString("MATERIAL"); DPhi = asin(WidI/2./RMinW); @@ -225,7 +227,7 @@ void SCT_ServMatFactory::create(GeoPhysVol *mother) // double DPhiDop = asin(WidI/2./(Shift-H1)); double DPhiDop = atan(WidI/2./(Shift-H1)); const GeoShape* pTub2 = new GeoTubs(0., RMaxDop, ZHalfLengthW, M_PI-DPhiDop, 2.*DPhiDop); - const GeoShape* pTub3 = (GeoShape*) & ((*pTub2) << HepGeom::TranslateX3D(Shift)); + const GeoShape* pTub3 = (GeoShape*) & ((*pTub2) << GeoTrf::TranslateX3D(Shift)); wing = (GeoShape*) & (*pTub1).intersect(*pTub3); // GeoModel calculates the volume incorrectly so we calculate it here. @@ -258,10 +260,10 @@ void SCT_ServMatFactory::create(GeoPhysVol *mother) const GeoLogVol* wingLog = new GeoLogVol(logName,wing,wingMat); GeoVPhysVol* wingPhys = new GeoPhysVol(wingLog); - GeoTransform* wPos1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), CLHEP::Hep3Vector(0.,0., ZStartW+ZHalfLengthW))); - GeoTransform* wPos2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(M_PI,0.,0.),CLHEP::Hep3Vector(0.,0., ZStartW+ZHalfLengthW))); - GeoTransform* wPos3 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), CLHEP::Hep3Vector(0.,0.,-ZStartW-ZHalfLengthW))); - GeoTransform* wPos4 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(M_PI,0.,0.),CLHEP::Hep3Vector(0.,0.,-ZStartW-ZHalfLengthW))); + GeoTransform* wPos1 = new GeoTransform(GeoTrf::Translate3D(0.,0., ZStartW+ZHalfLengthW)); + GeoTransform* wPos2 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(M_PI,0,0),GeoTrf::Vector3D(0.,0., ZStartW+ZHalfLengthW))); + GeoTransform* wPos3 = new GeoTransform(GeoTrf::Translate3D(0.,0.,-ZStartW-ZHalfLengthW)); + GeoTransform* wPos4 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(M_PI,0,0),GeoTrf::Vector3D(0.,0.,-ZStartW-ZHalfLengthW))); mother->add(wPos1); mother->add(wingPhys); mother->add(wPos2); @@ -291,14 +293,14 @@ void SCT_ServMatFactory::create(GeoPhysVol *mother) //------------------------------------------ //VK 10/09/2005 Construct a gap for rails - double outROfIDet = (*atls)[0]->getDouble("IDETOR")*CLHEP::cm; - double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*CLHEP::cm; - // double minRofGap = 1050.0*CLHEP::mm; - // double minRofGap = 1110.0*CLHEP::mm; - double minRofGap = 1089.0*CLHEP::mm; - double phiWid=(70.*CLHEP::mm)/outROfIDet; + double outROfIDet = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; + double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; + // double minRofGap = 1050.0*GeoModelKernelUnits::mm; + // double minRofGap = 1110.0*GeoModelKernelUnits::mm; + double minRofGap = 1089.0*GeoModelKernelUnits::mm; + double phiWid=(70.*GeoModelKernelUnits::mm)/outROfIDet; // std::cout << "Gap phiWid = " << phiWid << std::endl; - double safetyGap=1.*CLHEP::mm; + double safetyGap=1.*GeoModelKernelUnits::mm; const GeoShape* railGap1=new GeoTubs( minRofGap, outROfIDet+safetyGap ,endZOfIDet+safetyGap , -phiWid/2.,phiWid); const GeoShape* railGap2=new GeoTubs( minRofGap, outROfIDet+safetyGap ,endZOfIDet+safetyGap , @@ -365,12 +367,12 @@ void SCT_ServMatFactory::create(GeoPhysVol *mother) for (unsigned int ii =0; ii < sctsup->size(); ii++) { - RMinW = (*sctsup)[ii]->getFloat("RMIN")*CLHEP::mm; - RMaxW = (*sctsup)[ii]->getFloat("RMAX")*CLHEP::mm; - ZHalfLengthW = (*sctsup)[ii]->getFloat("THICK")/2.*CLHEP::mm; - WidI = (*sctsup)[ii]->getFloat("WIDTHINNER")*CLHEP::mm; - WidO = (*sctsup)[ii]->getFloat("WIDTHOUTER")*CLHEP::mm; - ZStartW = (*sctsup)[ii]->getFloat("ZSTART")*CLHEP::mm; + RMinW = (*sctsup)[ii]->getFloat("RMIN")*GeoModelKernelUnits::mm; + RMaxW = (*sctsup)[ii]->getFloat("RMAX")*GeoModelKernelUnits::mm; + ZHalfLengthW = (*sctsup)[ii]->getFloat("THICK")/2.*GeoModelKernelUnits::mm; + WidI = (*sctsup)[ii]->getFloat("WIDTHINNER")*GeoModelKernelUnits::mm; + WidO = (*sctsup)[ii]->getFloat("WIDTHOUTER")*GeoModelKernelUnits::mm; + ZStartW = (*sctsup)[ii]->getFloat("ZSTART")*GeoModelKernelUnits::mm; DPhi = asin(WidI/2./RMinW); const GeoShape* pTub1 = new GeoTubs(RMinW, RMaxW, ZHalfLengthW, 0.-DPhi, 2.*DPhi); //Basic shape @@ -385,7 +387,7 @@ void SCT_ServMatFactory::create(GeoPhysVol *mother) // double DPhiDop = asin(WidI/2./(Shift-H1)); double DPhiDop = atan(WidI/2./(Shift-H1)); const GeoShape* pTub2 = new GeoTubs(0., RMaxDop, ZHalfLengthW, M_PI-DPhiDop, 2.*DPhiDop); - const GeoShape* pTub3 = (GeoShape*) & ((*pTub2) << HepGeom::TranslateX3D(Shift)); + const GeoShape* pTub3 = (GeoShape*) & ((*pTub2) << GeoTrf::TranslateX3D(Shift)); wing = (GeoShape*) & (*pTub1).intersect(*pTub3); // GeoModel calculates the volume incorrectly so we calculate it here. @@ -418,10 +420,10 @@ void SCT_ServMatFactory::create(GeoPhysVol *mother) const GeoLogVol* wingLog = new GeoLogVol(logName,wing,wingMat); GeoVPhysVol* wingPhys = new GeoPhysVol(wingLog); - GeoTransform* wPos1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), CLHEP::Hep3Vector(0.,0., ZStartW+ZHalfLengthW))); - GeoTransform* wPos2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(M_PI,0.,0.),CLHEP::Hep3Vector(0.,0., ZStartW+ZHalfLengthW))); - GeoTransform* wPos3 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), CLHEP::Hep3Vector(0.,0.,-ZStartW-ZHalfLengthW))); - GeoTransform* wPos4 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(M_PI,0.,0.),CLHEP::Hep3Vector(0.,0.,-ZStartW-ZHalfLengthW))); + GeoTransform* wPos1 = new GeoTransform(GeoTrf::Translate3D(0.,0., ZStartW+ZHalfLengthW)); + GeoTransform* wPos2 = new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translation3D(0.,0., ZStartW+ZHalfLengthW)*GeoTrf::RotateX3D(M_PI))); + GeoTransform* wPos3 = new GeoTransform(GeoTrf::Translate3D(0.,0.,-ZStartW-ZHalfLengthW)); + GeoTransform* wPos4 = new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translation3D(0.,0.,-ZStartW-ZHalfLengthW)*GeoTrf::RotateX3D(M_PI))); mother->add(wPos1); mother->add(wingPhys); mother->add(wPos2); diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC2.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC2.cxx index 4626e5092bd58f1cf31e2bade37fff4722a4d12b..32ed55a0bbb3fed658f7c8d4416605e336972fd4 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC2.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC2.cxx @@ -5,6 +5,8 @@ #include "InDetServMatGeoModel/SCT_ServMatFactoryDC2.h" // GeoModel includes +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoTube.h" @@ -76,20 +78,20 @@ void SCT_ServMatFactoryDC2::create(GeoPhysVol *mother) // Build SCT services in Endcap. // (Code taken from TRT_GeoModel) - double innerRadiusOfSCTSupport = (*tsci)[0]->getDouble("RMIN")*CLHEP::cm + 2*epsilon; - double outerRadiusOfSCTSupport = (*tsci)[0]->getDouble("RMAX")*CLHEP::cm; - double lengthOfSCTSupport = ((*tsci)[0]->getDouble("ZMAX")-(*tsci)[0]->getDouble("ZMIN"))*CLHEP::cm - epsilon; - double positionOfSCTSupport= 0.5 * ((*tsci)[0]->getDouble("ZMAX")+(*tsci)[0]->getDouble("ZMIN"))*CLHEP::cm; + double innerRadiusOfSCTSupport = (*tsci)[0]->getDouble("RMIN")*GeoModelKernelUnits::cm + 2*epsilon; + double outerRadiusOfSCTSupport = (*tsci)[0]->getDouble("RMAX")*GeoModelKernelUnits::cm; + double lengthOfSCTSupport = ((*tsci)[0]->getDouble("ZMAX")-(*tsci)[0]->getDouble("ZMIN"))*GeoModelKernelUnits::cm - epsilon; + double positionOfSCTSupport= 0.5 * ((*tsci)[0]->getDouble("ZMAX")+(*tsci)[0]->getDouble("ZMIN"))*GeoModelKernelUnits::cm; - double innerRadiusOfSCTCables = (*tsci)[1]->getDouble("RMIN")*CLHEP::cm + 2*epsilon; - double outerRadiusOfSCTCables = (*tsci)[1]->getDouble("RMAX")*CLHEP::cm; - double lengthOfSCTCables = ((*tsci)[1]->getDouble("ZMAX")-(*tsci)[1]->getDouble("ZMIN"))*CLHEP::cm - epsilon; - double positionOfSCTCables = 0.5 * ((*tsci)[1]->getDouble("ZMAX")+(*tsci)[1]->getDouble("ZMIN"))*CLHEP::cm; + double innerRadiusOfSCTCables = (*tsci)[1]->getDouble("RMIN")*GeoModelKernelUnits::cm + 2*epsilon; + double outerRadiusOfSCTCables = (*tsci)[1]->getDouble("RMAX")*GeoModelKernelUnits::cm; + double lengthOfSCTCables = ((*tsci)[1]->getDouble("ZMAX")-(*tsci)[1]->getDouble("ZMIN"))*GeoModelKernelUnits::cm - epsilon; + double positionOfSCTCables = 0.5 * ((*tsci)[1]->getDouble("ZMAX")+(*tsci)[1]->getDouble("ZMIN"))*GeoModelKernelUnits::cm; - double innerRadiusOfSCTCooling = (*tsci)[2]->getDouble("RMIN")*CLHEP::cm + 2*epsilon; - double outerRadiusOfSCTCooling = (*tsci)[2]->getDouble("RMAX")*CLHEP::cm; - double lengthOfSCTCooling = ((*tsci)[2]->getDouble("ZMAX")-(*tsci)[2]->getDouble("ZMIN"))*CLHEP::cm - epsilon; - double positionOfSCTCooling = 0.5 * ((*tsci)[2]->getDouble("ZMAX")+(*tsci)[2]->getDouble("ZMIN"))*CLHEP::cm; + double innerRadiusOfSCTCooling = (*tsci)[2]->getDouble("RMIN")*GeoModelKernelUnits::cm + 2*epsilon; + double outerRadiusOfSCTCooling = (*tsci)[2]->getDouble("RMAX")*GeoModelKernelUnits::cm; + double lengthOfSCTCooling = ((*tsci)[2]->getDouble("ZMAX")-(*tsci)[2]->getDouble("ZMIN"))*GeoModelKernelUnits::cm - epsilon; + double positionOfSCTCooling = 0.5 * ((*tsci)[2]->getDouble("ZMAX")+(*tsci)[2]->getDouble("ZMIN"))*GeoModelKernelUnits::cm; // For new LMT we get name from SCT table ZSCG. @@ -104,15 +106,15 @@ void SCT_ServMatFactoryDC2::create(GeoPhysVol *mother) // We define it here for now as a quick fix. // Thickness of CuK 896 tapes smeared in phi = 0.08575cm - double tapeCrossSection = (*zscg)[0]->getDouble("ALAREA")*CLHEP::cm2; + double tapeCrossSection = (*zscg)[0]->getDouble("ALAREA")*GeoModelKernelUnits::cm2; double rave = 2*innerRadiusOfSCTCables*outerRadiusOfSCTCables/(innerRadiusOfSCTCables+outerRadiusOfSCTCables); - double thickness = 988*tapeCrossSection/(2*CLHEP::pi*rave); + double thickness = 988*tapeCrossSection/(2*GeoModelKernelUnits::pi*rave); // We need to scale the density to fit in with space given. - //std::cout << "LMT thickness (CLHEP::mm) = " << thickness/CLHEP::mm << std::endl; + //std::cout << "LMT thickness (GeoModelKernelUnits::mm) = " << thickness/GeoModelKernelUnits::mm << std::endl; double densityfactor = thickness/lengthOfSCTCables; const GeoElement *copper = m_materialManager->getElement("Copper"); const GeoMaterial *kapton = m_materialManager->getMaterial("std::Kapton"); - GeoMaterial * matCuKapton = new GeoMaterial("CuKaptoninTRT",densityfactor * 2.94*CLHEP::gram/CLHEP::cm3); + GeoMaterial * matCuKapton = new GeoMaterial("CuKaptoninTRT",densityfactor * 2.94*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); matCuKapton->add(const_cast<GeoElement*>(copper), 0.6142); matCuKapton->add(const_cast<GeoMaterial*>(kapton), 0.3858); matCuKapton->lock(); @@ -125,8 +127,8 @@ void SCT_ServMatFactoryDC2::create(GeoPhysVol *mother) GeoTube *sSCTSupport = new GeoTube( innerRadiusOfSCTSupport, outerRadiusOfSCTSupport, 0.5*lengthOfSCTSupport); GeoLogVol *lSCTSupport = new GeoLogVol("SCTSupport", sSCTSupport, sctCablesMaterial); GeoPhysVol *pSCTSupport = new GeoPhysVol(lSCTSupport); - GeoTransform *xSCTSupportPlus = new GeoTransform(HepGeom::TranslateZ3D(+positionOfSCTSupport)); - GeoTransform *xSCTSupportMinus = new GeoTransform(HepGeom::TranslateZ3D(-positionOfSCTSupport)); + GeoTransform *xSCTSupportPlus = new GeoTransform(GeoTrf::TranslateZ3D(+positionOfSCTSupport)); + GeoTransform *xSCTSupportMinus = new GeoTransform(GeoTrf::TranslateZ3D(-positionOfSCTSupport)); mother->add(xSCTSupportPlus); mother->add(pSCTSupport); mother->add(xSCTSupportMinus); @@ -136,8 +138,8 @@ void SCT_ServMatFactoryDC2::create(GeoPhysVol *mother) GeoTube *sSCTCables = new GeoTube(innerRadiusOfSCTCables, outerRadiusOfSCTCables, 0.5*lengthOfSCTCables); GeoLogVol *lSCTCables = new GeoLogVol("SCTCables", sSCTCables, m_materialManager->getMaterial("trt::SCTCables")); GeoPhysVol *pSCTCables = new GeoPhysVol(lSCTCables); - GeoTransform *xSCTCablesPlus = new GeoTransform(HepGeom::TranslateZ3D(+positionOfSCTCables )); - GeoTransform *xSCTCablesMinus = new GeoTransform(HepGeom::TranslateZ3D(-positionOfSCTCables )); + GeoTransform *xSCTCablesPlus = new GeoTransform(GeoTrf::TranslateZ3D(+positionOfSCTCables )); + GeoTransform *xSCTCablesMinus = new GeoTransform(GeoTrf::TranslateZ3D(-positionOfSCTCables )); mother->add(xSCTCablesPlus); mother->add(pSCTCables); @@ -149,8 +151,8 @@ void SCT_ServMatFactoryDC2::create(GeoPhysVol *mother) GeoTube *sSCTCooling = new GeoTube( innerRadiusOfSCTCooling, outerRadiusOfSCTCooling, 0.5*lengthOfSCTCooling); GeoLogVol *lSCTCooling = new GeoLogVol("SCTCooling", sSCTCooling, m_materialManager->getMaterial("trt::SCTCooling")); GeoPhysVol *pSCTCooling = new GeoPhysVol(lSCTCooling); - GeoTransform *xSCTCoolingPlus = new GeoTransform(HepGeom::TranslateZ3D(+positionOfSCTCooling )); - GeoTransform *xSCTCoolingMinus = new GeoTransform(HepGeom::TranslateZ3D(-positionOfSCTCooling )); + GeoTransform *xSCTCoolingPlus = new GeoTransform(GeoTrf::TranslateZ3D(+positionOfSCTCooling )); + GeoTransform *xSCTCoolingMinus = new GeoTransform(GeoTrf::TranslateZ3D(-positionOfSCTCooling )); mother->add(xSCTCoolingPlus); mother->add(pSCTCooling); mother->add(xSCTCoolingMinus); @@ -165,15 +167,15 @@ void SCT_ServMatFactoryDC2::create(GeoPhysVol *mother) std::ostringstream o; o << jj; std::string logName = "SctInel"+o.str(); - double halflength = ((*inel)[ii]->getFloat("ZMAX")-(*inel)[ii]->getFloat("ZMIN"))/2.*CLHEP::cm; + double halflength = ((*inel)[ii]->getFloat("ZMAX")-(*inel)[ii]->getFloat("ZMIN"))/2.*GeoModelKernelUnits::cm; int volType = (int) (*inel)[ii]->getFloat("VOLTYP"); const GeoShape* serviceTube = createShape(volType, - (*inel)[ii]->getFloat("RMIN1")*CLHEP::cm, - (*inel)[ii]->getFloat("RMAX1")*CLHEP::cm, + (*inel)[ii]->getFloat("RMIN1")*GeoModelKernelUnits::cm, + (*inel)[ii]->getFloat("RMAX1")*GeoModelKernelUnits::cm, halflength, - (*inel)[ii]->getFloat("RMIN2")*CLHEP::cm, - (*inel)[ii]->getFloat("RMAX2")*CLHEP::cm); + (*inel)[ii]->getFloat("RMIN2")*GeoModelKernelUnits::cm, + (*inel)[ii]->getFloat("RMAX2")*GeoModelKernelUnits::cm); // create the material... @@ -192,21 +194,21 @@ void SCT_ServMatFactoryDC2::create(GeoPhysVol *mother) cylMat = createMaterial(nameStr.str(), volType, fractionRL, - (*inel)[ii]->getFloat("RMIN1")*CLHEP::cm, - (*inel)[ii]->getFloat("RMAX1")*CLHEP::cm, + (*inel)[ii]->getFloat("RMIN1")*GeoModelKernelUnits::cm, + (*inel)[ii]->getFloat("RMAX1")*GeoModelKernelUnits::cm, halflength, - (*inel)[ii]->getFloat("RMIN2")*CLHEP::cm, - (*inel)[ii]->getFloat("RMAX2")*CLHEP::cm); + (*inel)[ii]->getFloat("RMIN2")*GeoModelKernelUnits::cm, + (*inel)[ii]->getFloat("RMAX2")*GeoModelKernelUnits::cm); } const GeoLogVol* ServLog = new GeoLogVol(logName,serviceTube,cylMat); GeoVPhysVol* ServPhys = new GeoPhysVol(ServLog); - double zpos = ((*inel)[ii]->getFloat("ZMAX")+(*inel)[ii]->getFloat("ZMIN"))/2.*CLHEP::cm+epsilon; + double zpos = ((*inel)[ii]->getFloat("ZMAX")+(*inel)[ii]->getFloat("ZMIN"))/2.*GeoModelKernelUnits::cm+epsilon; // place two - CLHEP::Hep3Vector servpos1(0.,0.,zpos); - CLHEP::Hep3Vector servpos2(0.,0.,-zpos); - GeoTransform *xform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),servpos1)); - GeoTransform *xform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),servpos2)); + GeoTrf::Translate3D servpos1(0.,0.,zpos); + GeoTrf::Translate3D servpos2(0.,0.,-zpos); + GeoTransform *xform1 = new GeoTransform(servpos1); + GeoTransform *xform2 = new GeoTransform(servpos2); mother->add(xform1); mother->add(ServPhys); mother->add(xform2); @@ -225,7 +227,7 @@ const GeoShape* SCT_ServMatFactoryDC2::createShape(int volType, double rmax2=0.) { - const double epsilon = 0.001*CLHEP::mm; + const double epsilon = 0.001*GeoModelKernelUnits::mm; enum VOLTYPE{Tube=1, Cone, ICone}; const GeoShape* IDShape = 0; if(volType == Tube) { diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC3.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC3.cxx index 9003a271c909b3deb74c3dc59bdff2b1306178b5..2f2ff0f25c4fe050710519fbe269aca9c43d3b46 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC3.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryDC3.cxx @@ -5,6 +5,8 @@ #include "InDetServMatGeoModel/SCT_ServMatFactoryDC3.h" // GeoModel includes +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoTube.h" @@ -64,10 +66,10 @@ void SCT_ServMatFactoryDC3::create(GeoPhysVol *mother) //const IRDBRecordset* sctFwdServices = rdbAccessSvc()->getRecordset("SctFwdServices", sctVersionKey.tag(), sctVersionKey.node()); //VVK 10/09/2005 Construct a gap for rails - double outROfIDet = (*atls)[0]->getDouble("IDETOR")*CLHEP::cm; - double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*CLHEP::cm; - double minRofGap = 1050.0*CLHEP::mm; - double phiWid=(70.*CLHEP::mm)/outROfIDet; double safetyGap=1.*CLHEP::mm; + double outROfIDet = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; + double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; + double minRofGap = 1050.0*GeoModelKernelUnits::mm; + double phiWid=(70.*GeoModelKernelUnits::mm)/outROfIDet; double safetyGap=1.*GeoModelKernelUnits::mm; const GeoShape* railGap1=new GeoTubs( minRofGap, outROfIDet+safetyGap ,endZOfIDet+safetyGap , -phiWid/2.,phiWid); const GeoShape* railGap2=new GeoTubs( minRofGap, outROfIDet+safetyGap ,endZOfIDet+safetyGap , @@ -80,25 +82,25 @@ void SCT_ServMatFactoryDC3::create(GeoPhysVol *mother) // (Code taken from TRT_GeoModel) // Hardwire min sct services for now. The database structures should be moved out of TRT anyway. - double rminSCTServ = 620*CLHEP::mm; + double rminSCTServ = 620*GeoModelKernelUnits::mm; - //double innerRadiusOfSCTSupport = (*tsci)[0]->getDouble("RMIN")*CLHEP::cm + 2*epsilon; + //double innerRadiusOfSCTSupport = (*tsci)[0]->getDouble("RMIN")*GeoModelKernelUnits::cm + 2*epsilon; double innerRadiusOfSCTSupport = rminSCTServ + 2*epsilon; - double outerRadiusOfSCTSupport = (*tsci)[0]->getDouble("RMAX")*CLHEP::cm; - double lengthOfSCTSupport = ((*tsci)[0]->getDouble("ZMAX")-(*tsci)[0]->getDouble("ZMIN"))*CLHEP::cm - epsilon; - double positionOfSCTSupport= 0.5 * ((*tsci)[0]->getDouble("ZMAX")+(*tsci)[0]->getDouble("ZMIN"))*CLHEP::cm; + double outerRadiusOfSCTSupport = (*tsci)[0]->getDouble("RMAX")*GeoModelKernelUnits::cm; + double lengthOfSCTSupport = ((*tsci)[0]->getDouble("ZMAX")-(*tsci)[0]->getDouble("ZMIN"))*GeoModelKernelUnits::cm - epsilon; + double positionOfSCTSupport= 0.5 * ((*tsci)[0]->getDouble("ZMAX")+(*tsci)[0]->getDouble("ZMIN"))*GeoModelKernelUnits::cm; - //double innerRadiusOfSCTCables = (*tsci)[1]->getDouble("RMIN")*CLHEP::cm + 2*epsilon; + //double innerRadiusOfSCTCables = (*tsci)[1]->getDouble("RMIN")*GeoModelKernelUnits::cm + 2*epsilon; double innerRadiusOfSCTCables = rminSCTServ + 2*epsilon; - double outerRadiusOfSCTCables = (*tsci)[1]->getDouble("RMAX")*CLHEP::cm; - double lengthOfSCTCables = ((*tsci)[1]->getDouble("ZMAX")-(*tsci)[1]->getDouble("ZMIN"))*CLHEP::cm - epsilon; - double positionOfSCTCables = 0.5 * ((*tsci)[1]->getDouble("ZMAX")+(*tsci)[1]->getDouble("ZMIN"))*CLHEP::cm; + double outerRadiusOfSCTCables = (*tsci)[1]->getDouble("RMAX")*GeoModelKernelUnits::cm; + double lengthOfSCTCables = ((*tsci)[1]->getDouble("ZMAX")-(*tsci)[1]->getDouble("ZMIN"))*GeoModelKernelUnits::cm - epsilon; + double positionOfSCTCables = 0.5 * ((*tsci)[1]->getDouble("ZMAX")+(*tsci)[1]->getDouble("ZMIN"))*GeoModelKernelUnits::cm; - //double innerRadiusOfSCTCooling = (*tsci)[2]->getDouble("RMIN")*CLHEP::cm + 2*epsilon; + //double innerRadiusOfSCTCooling = (*tsci)[2]->getDouble("RMIN")*GeoModelKernelUnits::cm + 2*epsilon; double innerRadiusOfSCTCooling = rminSCTServ + 2*epsilon; - double outerRadiusOfSCTCooling = (*tsci)[2]->getDouble("RMAX")*CLHEP::cm; - double lengthOfSCTCooling = ((*tsci)[2]->getDouble("ZMAX")-(*tsci)[2]->getDouble("ZMIN"))*CLHEP::cm - epsilon; - double positionOfSCTCooling = 0.5 * ((*tsci)[2]->getDouble("ZMAX")+(*tsci)[2]->getDouble("ZMIN"))*CLHEP::cm; + double outerRadiusOfSCTCooling = (*tsci)[2]->getDouble("RMAX")*GeoModelKernelUnits::cm; + double lengthOfSCTCooling = ((*tsci)[2]->getDouble("ZMAX")-(*tsci)[2]->getDouble("ZMIN"))*GeoModelKernelUnits::cm - epsilon; + double positionOfSCTCooling = 0.5 * ((*tsci)[2]->getDouble("ZMAX")+(*tsci)[2]->getDouble("ZMIN"))*GeoModelKernelUnits::cm; // For new LMT we get name from SCT table SctFwdServices. @@ -113,15 +115,15 @@ void SCT_ServMatFactoryDC3::create(GeoPhysVol *mother) // We define it here for now as a quick fix. // Thickness of CuK 896 tapes smeared in phi = 0.08575cm - double tapeCrossSection = (*sctFwdServices)[0]->getDouble("POWERTAPECROSSSECT")*CLHEP::mm2; + double tapeCrossSection = (*sctFwdServices)[0]->getDouble("POWERTAPECROSSSECT")*GeoModelKernelUnits::mm2; double rave = 2*innerRadiusOfSCTCables*outerRadiusOfSCTCables/(innerRadiusOfSCTCables+outerRadiusOfSCTCables); - double thickness = 988*tapeCrossSection/(2*CLHEP::pi*rave); + double thickness = 988*tapeCrossSection/(2*GeoModelKernelUnits::pi*rave); // We need to scale the density to fit in with space given. - //std::cout << "LMT thickness (mm) = " << thickness/CLHEP::mm << std::endl; + //std::cout << "LMT thickness (mm) = " << thickness/GeoModelKernelUnits::mm << std::endl; double densityfactor = thickness/lengthOfSCTCables; const GeoElement *copper = m_materialManager->getElement("Copper"); const GeoMaterial *kapton = m_materialManager->getMaterial("std::Kapton"); - GeoMaterial * matCuKapton = new GeoMaterial("CuKaptoninTRT",densityfactor * 2.94*CLHEP::gram/CLHEP::cm3); + GeoMaterial * matCuKapton = new GeoMaterial("CuKaptoninTRT",densityfactor * 2.94*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); matCuKapton->add(const_cast<GeoElement*>(copper), 0.6142); matCuKapton->add(const_cast<GeoMaterial*>(kapton), 0.3858); matCuKapton->lock(); @@ -138,8 +140,8 @@ void SCT_ServMatFactoryDC3::create(GeoPhysVol *mother) GeoTube *sSCTSupport = new GeoTube( innerRadiusOfSCTSupport, outerRadiusOfSCTSupport, 0.5*lengthOfSCTSupport); GeoLogVol *lSCTSupport = new GeoLogVol("SCTSupport", sSCTSupport, sctCablesMaterial); GeoPhysVol *pSCTSupport = new GeoPhysVol(lSCTSupport); - GeoTransform *xSCTSupportPlus = new GeoTransform(HepGeom::TranslateZ3D(+positionOfSCTSupport)); - GeoTransform *xSCTSupportMinus = new GeoTransform(HepGeom::TranslateZ3D(-positionOfSCTSupport)); + GeoTransform *xSCTSupportPlus = new GeoTransform(GeoTrf::TranslateZ3D(+positionOfSCTSupport)); + GeoTransform *xSCTSupportMinus = new GeoTransform(GeoTrf::TranslateZ3D(-positionOfSCTSupport)); mother->add(xSCTSupportPlus); mother->add(pSCTSupport); mother->add(xSCTSupportMinus); @@ -149,8 +151,8 @@ void SCT_ServMatFactoryDC3::create(GeoPhysVol *mother) GeoTube *sSCTCables = new GeoTube(innerRadiusOfSCTCables, outerRadiusOfSCTCables, 0.5*lengthOfSCTCables); GeoLogVol *lSCTCables = new GeoLogVol("SCTCables", sSCTCables, materialManager()->getMaterial("trt::SCTCables")); GeoPhysVol *pSCTCables = new GeoPhysVol(lSCTCables); - GeoTransform *xSCTCablesPlus = new GeoTransform(HepGeom::TranslateZ3D(+positionOfSCTCables )); - GeoTransform *xSCTCablesMinus = new GeoTransform(HepGeom::TranslateZ3D(-positionOfSCTCables )); + GeoTransform *xSCTCablesPlus = new GeoTransform(GeoTrf::TranslateZ3D(+positionOfSCTCables )); + GeoTransform *xSCTCablesMinus = new GeoTransform(GeoTrf::TranslateZ3D(-positionOfSCTCables )); mother->add(xSCTCablesPlus); mother->add(pSCTCables); @@ -162,8 +164,8 @@ void SCT_ServMatFactoryDC3::create(GeoPhysVol *mother) GeoTube *sSCTCooling = new GeoTube( innerRadiusOfSCTCooling, outerRadiusOfSCTCooling, 0.5*lengthOfSCTCooling); GeoLogVol *lSCTCooling = new GeoLogVol("SCTCooling", sSCTCooling, materialManager()->getMaterial("trt::SCTCooling")); GeoPhysVol *pSCTCooling = new GeoPhysVol(lSCTCooling); - GeoTransform *xSCTCoolingPlus = new GeoTransform(HepGeom::TranslateZ3D(+positionOfSCTCooling )); - GeoTransform *xSCTCoolingMinus = new GeoTransform(HepGeom::TranslateZ3D(-positionOfSCTCooling )); + GeoTransform *xSCTCoolingPlus = new GeoTransform(GeoTrf::TranslateZ3D(+positionOfSCTCooling )); + GeoTransform *xSCTCoolingMinus = new GeoTransform(GeoTrf::TranslateZ3D(-positionOfSCTCooling )); mother->add(xSCTCoolingPlus); mother->add(pSCTCooling); mother->add(xSCTCoolingMinus); @@ -183,19 +185,19 @@ void SCT_ServMatFactoryDC3::create(GeoPhysVol *mother) std::ostringstream o; o << irecold++; std::string logName = "SctInel"+o.str(); - double halflength = ((*inel)[ii]->getFloat("ZMAX")-(*inel)[ii]->getFloat("ZMIN"))/2.*CLHEP::cm; + double halflength = ((*inel)[ii]->getFloat("ZMAX")-(*inel)[ii]->getFloat("ZMIN"))/2.*GeoModelKernelUnits::cm; int volType = (int) (*inel)[ii]->getFloat("VOLTYP"); const GeoShape* serviceTubeTmp1 = createShape(volType, - (*inel)[ii]->getFloat("RMIN1")*CLHEP::cm, - (*inel)[ii]->getFloat("RMAX1")*CLHEP::cm, + (*inel)[ii]->getFloat("RMIN1")*GeoModelKernelUnits::cm, + (*inel)[ii]->getFloat("RMAX1")*GeoModelKernelUnits::cm, halflength, - (*inel)[ii]->getFloat("RMIN2")*CLHEP::cm, - (*inel)[ii]->getFloat("RMAX2")*CLHEP::cm); + (*inel)[ii]->getFloat("RMIN2")*GeoModelKernelUnits::cm, + (*inel)[ii]->getFloat("RMAX2")*GeoModelKernelUnits::cm); const GeoShape* serviceTube = serviceTubeTmp1; - if( (*inel)[ii]->getFloat("RMAX1")*CLHEP::cm > minRofGap || - (*inel)[ii]->getFloat("RMAX2")*CLHEP::cm > minRofGap ) { + if( (*inel)[ii]->getFloat("RMAX1")*GeoModelKernelUnits::cm > minRofGap || + (*inel)[ii]->getFloat("RMAX2")*GeoModelKernelUnits::cm > minRofGap ) { // //VVK Subtract RailGap out of services const GeoShape* serviceTubeTmp2 = (GeoShape*) & (*serviceTubeTmp1).subtract(*railGap1); @@ -221,21 +223,21 @@ void SCT_ServMatFactoryDC3::create(GeoPhysVol *mother) cylMat = createMaterial(nameStr.str(), volType, fractionRL, - (*inel)[ii]->getFloat("RMIN1")*CLHEP::cm, - (*inel)[ii]->getFloat("RMAX1")*CLHEP::cm, + (*inel)[ii]->getFloat("RMIN1")*GeoModelKernelUnits::cm, + (*inel)[ii]->getFloat("RMAX1")*GeoModelKernelUnits::cm, halflength, - (*inel)[ii]->getFloat("RMIN2")*CLHEP::cm, - (*inel)[ii]->getFloat("RMAX2")*CLHEP::cm); + (*inel)[ii]->getFloat("RMIN2")*GeoModelKernelUnits::cm, + (*inel)[ii]->getFloat("RMAX2")*GeoModelKernelUnits::cm); } const GeoLogVol* ServLog = new GeoLogVol(logName,serviceTube,cylMat); GeoVPhysVol* ServPhys = new GeoPhysVol(ServLog); - double zpos = ((*inel)[ii]->getFloat("ZMAX")+(*inel)[ii]->getFloat("ZMIN"))/2.*CLHEP::cm+epsilon; + double zpos = ((*inel)[ii]->getFloat("ZMAX")+(*inel)[ii]->getFloat("ZMIN"))/2.*GeoModelKernelUnits::cm+epsilon; // place two - CLHEP::Hep3Vector servpos1(0.,0.,zpos); - CLHEP::Hep3Vector servpos2(0.,0.,-zpos); - GeoTransform *xform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),servpos1)); - GeoTransform *xform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),servpos2)); + GeoTrf::Translate3D servpos1(0.,0.,zpos); + GeoTrf::Translate3D servpos2(0.,0.,-zpos); + GeoTransform *xform1 = new GeoTransform(servpos1); + GeoTransform *xform2 = new GeoTransform(servpos2); mother->add(xform1); mother->add(ServPhys); mother->add(xform2); @@ -255,7 +257,7 @@ const GeoShape* SCT_ServMatFactoryDC3::createShape(int volType, double rmax2=0.) { - const double epsilon = 0.001*CLHEP::mm; + const double epsilon = 0.001*GeoModelKernelUnits::mm; enum VOLTYPE{Tube=1, Cone, ICone}; const GeoShape* IDShape = 0; if(volType == Tube) { diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryFS.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryFS.cxx index a63fe0fc192a6200fdd8ceeb0cacad083f957a6a..a519849def8bf7714f02cfaa372b2a945bd293c1 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryFS.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SCT_ServMatFactoryFS.cxx @@ -5,6 +5,8 @@ #include "InDetServMatGeoModel/SCT_ServMatFactoryFS.h" // GeoModel includes +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoTubs.h" @@ -72,11 +74,11 @@ void SCT_ServMatFactoryFS::create(GeoPhysVol *motherP,GeoPhysVol *motherM) //------------------------------------------ //VK 10/09/2005 Construct a gap for rails - double outROfIDet = (*atls)[0]->getDouble("IDETOR")*CLHEP::cm; - double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*CLHEP::cm; - double minRofGap = 1089.0*CLHEP::mm; - double phiWid=(70.*CLHEP::mm)/outROfIDet; - double safetyGap=1.*CLHEP::mm; + double outROfIDet = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; + double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; + double minRofGap = 1089.0*GeoModelKernelUnits::mm; + double phiWid=(70.*GeoModelKernelUnits::mm)/outROfIDet; + double safetyGap=1.*GeoModelKernelUnits::mm; const GeoShape* railGap1=new GeoTubs( minRofGap, outROfIDet+safetyGap ,endZOfIDet+safetyGap , -phiWid/2.,phiWid); const GeoShape* railGap2=new GeoTubs( minRofGap, outROfIDet+safetyGap ,endZOfIDet+safetyGap , @@ -157,7 +159,7 @@ void SCT_ServMatFactoryFS::create(GeoPhysVol *motherP,GeoPhysVol *motherM) // Shape 2. Cons component of the pcon cons = new GeoCons(servicePcon->getRMinPlane(1),servicePcon->getRMinPlane(2), - servicePcon->getRMaxPlane(1),servicePcon->getRMaxPlane(2)+1E-9*CLHEP::mm, + servicePcon->getRMaxPlane(1),servicePcon->getRMaxPlane(2)+1E-9*GeoModelKernelUnits::mm, (servicePcon->getZPlane(2)-servicePcon->getZPlane(1))*0.5, 0,2*M_PI); @@ -216,12 +218,12 @@ void SCT_ServMatFactoryFS::create(GeoPhysVol *motherP,GeoPhysVol *motherM) for (unsigned int ii =0; ii < sctsup->size(); ii++) { - RMinW = (*sctsup)[ii]->getFloat("RMIN")*CLHEP::mm; - RMaxW = (*sctsup)[ii]->getFloat("RMAX")*CLHEP::mm; - ZHalfLengthW = (*sctsup)[ii]->getFloat("THICK")/2.*CLHEP::mm; - WidI = (*sctsup)[ii]->getFloat("WIDTHINNER")*CLHEP::mm; - WidO = (*sctsup)[ii]->getFloat("WIDTHOUTER")*CLHEP::mm; - ZStartW = (*sctsup)[ii]->getFloat("ZSTART")*CLHEP::mm; + RMinW = (*sctsup)[ii]->getFloat("RMIN")*GeoModelKernelUnits::mm; + RMaxW = (*sctsup)[ii]->getFloat("RMAX")*GeoModelKernelUnits::mm; + ZHalfLengthW = (*sctsup)[ii]->getFloat("THICK")/2.*GeoModelKernelUnits::mm; + WidI = (*sctsup)[ii]->getFloat("WIDTHINNER")*GeoModelKernelUnits::mm; + WidO = (*sctsup)[ii]->getFloat("WIDTHOUTER")*GeoModelKernelUnits::mm; + ZStartW = (*sctsup)[ii]->getFloat("ZSTART")*GeoModelKernelUnits::mm; DPhi = asin(WidI/2./RMinW); const GeoShape* pTub1 = new GeoTubs(RMinW, RMaxW, ZHalfLengthW, 0.-DPhi, 2.*DPhi); //Basic shape @@ -236,7 +238,7 @@ void SCT_ServMatFactoryFS::create(GeoPhysVol *motherP,GeoPhysVol *motherM) // double DPhiDop = asin(WidI/2./(Shift-H1)); double DPhiDop = atan(WidI/2./(Shift-H1)); const GeoShape* pTub2 = new GeoTubs(0., RMaxDop, ZHalfLengthW, M_PI-DPhiDop, 2.*DPhiDop); - const GeoShape* pTub3 = (GeoShape*) & ((*pTub2) << HepGeom::TranslateX3D(Shift)); + const GeoShape* pTub3 = (GeoShape*) & ((*pTub2) << GeoTrf::TranslateX3D(Shift)); wing = (GeoShape*) & (*pTub1).intersect(*pTub3); // GeoModel calculates the volume incorrectly so we calculate it here. @@ -269,10 +271,10 @@ void SCT_ServMatFactoryFS::create(GeoPhysVol *motherP,GeoPhysVol *motherM) const GeoLogVol* wingLog = new GeoLogVol(logName,wing,wingMat); GeoVPhysVol* wingPhys = new GeoPhysVol(wingLog); - GeoTransform* wPos1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), CLHEP::Hep3Vector(0.,0., ZStartW+ZHalfLengthW))); - GeoTransform* wPos2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(M_PI,0.,0.),CLHEP::Hep3Vector(0.,0., ZStartW+ZHalfLengthW))); - GeoTransform* wPos3 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), CLHEP::Hep3Vector(0.,0.,-ZStartW-ZHalfLengthW))); - GeoTransform* wPos4 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(M_PI,0.,0.),CLHEP::Hep3Vector(0.,0.,-ZStartW-ZHalfLengthW))); + GeoTransform* wPos1 = new GeoTransform(GeoTrf::Translate3D(0.,0., ZStartW+ZHalfLengthW)); + GeoTransform* wPos2 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(M_PI,0.,0.),GeoTrf::Vector3D(0.,0., ZStartW+ZHalfLengthW))); + GeoTransform* wPos3 = new GeoTransform(GeoTrf::Translate3D(0.,0.,-ZStartW-ZHalfLengthW)); + GeoTransform* wPos4 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(M_PI,0.,0.),GeoTrf::Vector3D(0.,0.,-ZStartW-ZHalfLengthW))); motherP->add(wPos1); motherP->add(wingPhys); motherP->add(wPos2); diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/ServiceVolume.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/ServiceVolume.cxx index 6ffacbd81c18cc09a48c7af9cbdc382233199445..9b96b7a7738f87e87c89b9994ef1cec715c63220 100644 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/ServiceVolume.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/ServiceVolume.cxx @@ -6,7 +6,7 @@ #include "InDetServMatGeoModel/ServicesLayer.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <iostream> void ServiceVolume::dump( bool dumpMaterial) const diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactory.cxx index a4fc9ad753da634a2bba22dd0ea4e0e98df80b5f..291fc8bde5358a70a6bf65c10690466a48ab20c0 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactory.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactory.cxx @@ -5,6 +5,8 @@ #include "InDetServMatGeoModel/SquirrelCageFactory.h" // GeoModel includes +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoTube.h" @@ -68,37 +70,37 @@ void SquirrelCageFactory::create(GeoPhysVol *mother) // Squirrel cage rings // Default (initial) ring parameters // -// double rminInt = 1074.0*CLHEP::mm; -// double ringThick = 4.0*CLHEP::mm; -// double ringGap = 20.*CLHEP::mm; -// double ringWid = 40.*CLHEP::mm; +// double rminInt = 1074.0*GeoModelKernelUnits::mm; +// double ringThick = 4.0*GeoModelKernelUnits::mm; +// double ringGap = 20.*GeoModelKernelUnits::mm; +// double ringWid = 40.*GeoModelKernelUnits::mm; // - double rminInt = (*cage)[0]->getDouble("RINGRMIN")*CLHEP::mm; - double ringThick = (*cage)[0]->getDouble("RINGTHICK")*CLHEP::mm; - double ringGap = (*cage)[0]->getDouble("RINGGAP")*CLHEP::mm; - double ringWid = (*cage)[0]->getDouble("RINGWIDTH")*CLHEP::mm; + double rminInt = (*cage)[0]->getDouble("RINGRMIN")*GeoModelKernelUnits::mm; + double ringThick = (*cage)[0]->getDouble("RINGTHICK")*GeoModelKernelUnits::mm; + double ringGap = (*cage)[0]->getDouble("RINGGAP")*GeoModelKernelUnits::mm; + double ringWid = (*cage)[0]->getDouble("RINGWIDTH")*GeoModelKernelUnits::mm; // //--- Default (initial) z positions -// double zposFirstRing = 805.0*CLHEP::mm+161.0*CLHEP::mm; -// double zposGap1 = 390.*CLHEP::mm; -// double zposGap2 = 402.*CLHEP::mm; -// double zposGap3 = 446.*CLHEP::mm; -// double zposGap4 = 331.*CLHEP::mm; +// double zposFirstRing = 805.0*GeoModelKernelUnits::mm+161.0*GeoModelKernelUnits::mm; +// double zposGap1 = 390.*GeoModelKernelUnits::mm; +// double zposGap2 = 402.*GeoModelKernelUnits::mm; +// double zposGap3 = 446.*GeoModelKernelUnits::mm; +// double zposGap4 = 331.*GeoModelKernelUnits::mm; // - double zposFirstRing = (*cage)[0]->getDouble("ZBASE")*CLHEP::mm; - double zposGap1 = (*cage)[0]->getDouble("ZGAP1")*CLHEP::mm; - double zposGap2 = (*cage)[0]->getDouble("ZGAP2")*CLHEP::mm; - double zposGap3 = (*cage)[0]->getDouble("ZGAP3")*CLHEP::mm; - double zposGap4 = (*cage)[0]->getDouble("ZGAP4")*CLHEP::mm; + double zposFirstRing = (*cage)[0]->getDouble("ZBASE")*GeoModelKernelUnits::mm; + double zposGap1 = (*cage)[0]->getDouble("ZGAP1")*GeoModelKernelUnits::mm; + double zposGap2 = (*cage)[0]->getDouble("ZGAP2")*GeoModelKernelUnits::mm; + double zposGap3 = (*cage)[0]->getDouble("ZGAP3")*GeoModelKernelUnits::mm; + double zposGap4 = (*cage)[0]->getDouble("ZGAP4")*GeoModelKernelUnits::mm; // // Now support ring -// double rminSup = 830.0*CLHEP::mm; -// double supThick = 90.0*CLHEP::mm; -// double supWid = 12.0*CLHEP::mm; +// double rminSup = 830.0*GeoModelKernelUnits::mm; +// double supThick = 90.0*GeoModelKernelUnits::mm; +// double supWid = 12.0*GeoModelKernelUnits::mm; // - double rminSup = (*cage)[0]->getDouble("SUPRMIN")*CLHEP::mm; - double supThick = (*cage)[0]->getDouble("SUPTHICK")*CLHEP::mm; - double supWid = (*cage)[0]->getDouble("SUPWIDTH")*CLHEP::mm; + double rminSup = (*cage)[0]->getDouble("SUPRMIN")*GeoModelKernelUnits::mm; + double supThick = (*cage)[0]->getDouble("SUPTHICK")*GeoModelKernelUnits::mm; + double supWid = (*cage)[0]->getDouble("SUPWIDTH")*GeoModelKernelUnits::mm; // double zposSupRing = zposFirstRing+ringWid*5. + zposGap1 + zposGap2 + zposGap3 + zposGap4; @@ -170,11 +172,11 @@ void SquirrelCageFactory::create(GeoPhysVol *mother) GeoBox* UShapePart2 = new GeoBox(xDepthUSP2/2., yWidthUSP2/2., zLengthUS/2.); GeoBox* UShapePart3 = new GeoBox(xDepthUSP3/2., yWidthUSP3/2., zLengthUS/2.); - CLHEP::Hep3Vector trans1UShapeP2(xDepthUSP2/2. - xDepthUSP1/2., yWidthUSP1/2. + yWidthUSP2/2., 0.); - CLHEP::Hep3Vector trans2UShapeP2(- xDepthUSP2/2. + xDepthUSP1/2., yWidthUSP1/2. + yWidthUSP2/2., 0.); + GeoTrf::Vector3D trans1UShapeP2(xDepthUSP2/2. - xDepthUSP1/2., yWidthUSP1/2. + yWidthUSP2/2., 0.); + GeoTrf::Vector3D trans2UShapeP2(- xDepthUSP2/2. + xDepthUSP1/2., yWidthUSP1/2. + yWidthUSP2/2., 0.); - CLHEP::Hep3Vector trans1UShapeP3(xDepthUSP3/2. - xDepthUSP1/2., - yWidthUSP1/2. - yWidthUSP3/2., 0.); - CLHEP::Hep3Vector trans2UShapeP3(- xDepthUSP3/2. + xDepthUSP1/2., - yWidthUSP1/2. - yWidthUSP3/2., 0.); + GeoTrf::Vector3D trans1UShapeP3(xDepthUSP3/2. - xDepthUSP1/2., - yWidthUSP1/2. - yWidthUSP3/2., 0.); + GeoTrf::Vector3D trans2UShapeP3(- xDepthUSP3/2. + xDepthUSP1/2., - yWidthUSP1/2. - yWidthUSP3/2., 0.); //Determining the exact place of "U" Shape support @@ -194,14 +196,14 @@ void SquirrelCageFactory::create(GeoPhysVol *mother) //Inner double phiICRT = asin((yWidthUSP1/2. + yWidthUSP2 + coordY) / rminInt); - double DphiICRT = CLHEP::pi - 2*phiICRT; + double DphiICRT = GeoModelKernelUnits::pi - 2*phiICRT; double phiICRB = asin((yWidthUSP1/2. + yWidthUSP2 - coordY) / rminInt); - double DphiICRB = CLHEP::pi - 2*phiICRB; + double DphiICRB = GeoModelKernelUnits::pi - 2*phiICRB; GeoTubs* ICRT = new GeoTubs(rminInt, rminInt + ringThick, ringWid/2., phiICRT, DphiICRT); - GeoTubs* ICRB = new GeoTubs(rminInt, rminInt + ringThick, ringWid/2., CLHEP::pi + phiICRB, DphiICRB); + GeoTubs* ICRB = new GeoTubs(rminInt, rminInt + ringThick, ringWid/2., GeoModelKernelUnits::pi + phiICRB, DphiICRB); const GeoLogVol* ICRTLog = new GeoLogVol("SQringIntTop", ICRT, ringMat); @@ -213,10 +215,10 @@ void SquirrelCageFactory::create(GeoPhysVol *mother) //Outer double phiECRT = asin((yWidthUSP1/2. + yWidthUSP2 + coordY) / (rminInt+ringGap+ringThick)); - double DphiECRT = CLHEP::pi - 2*phiECRT; + double DphiECRT = GeoModelKernelUnits::pi - 2*phiECRT; double phiECRB = asin((yWidthUSP1/2. + yWidthUSP2 - coordY) / (rminInt+ringGap+ringThick)); - double DphiECRB = CLHEP::pi - 2*phiECRB; + double DphiECRB = GeoModelKernelUnits::pi - 2*phiECRB; // std::cerr << "phiET: " << phiECRT << ", DphiET: " << DphiECRT << std::endl; // std::cerr << "phiIT: " << phiICRT << ", DphiIT: " << DphiICRT << std::endl; @@ -224,7 +226,7 @@ void SquirrelCageFactory::create(GeoPhysVol *mother) // std::cerr << "phiIB: " << phiICRB << ", DphiIB: " << DphiICRB << std::endl; GeoTubs* ECRT = new GeoTubs(rminInt+ringGap+ringThick, rminInt+2.*ringThick+ringGap, ringWid/2., phiECRT, DphiECRT); - GeoTubs* ECRB = new GeoTubs(rminInt+ringGap+ringThick, rminInt+2.*ringThick+ringGap, ringWid/2., CLHEP::pi + phiECRB, DphiECRB); + GeoTubs* ECRB = new GeoTubs(rminInt+ringGap+ringThick, rminInt+2.*ringThick+ringGap, ringWid/2., GeoModelKernelUnits::pi + phiECRB, DphiECRB); const GeoLogVol* ECRTLog = new GeoLogVol("SQringExtTop", ECRT, ringMat); GeoVPhysVol* ECRTPhys = new GeoPhysVol(ECRTLog); @@ -241,26 +243,26 @@ void SquirrelCageFactory::create(GeoPhysVol *mother) //Positioning and adding to geometry //Rings - CLHEP::Hep3Vector servpos1(0.,0., zposFirstRing+ringWid/2.); - CLHEP::Hep3Vector servpos2(0.,0.,-zposFirstRing-ringWid/2.); - CLHEP::Hep3Vector servpos3(0.,0., zposFirstRing+ringWid*3./2. + zposGap1); - CLHEP::Hep3Vector servpos4(0.,0.,-zposFirstRing-ringWid*3./2. - zposGap1); - CLHEP::Hep3Vector servpos5(0.,0., zposFirstRing+ringWid*5./2. + zposGap1 + zposGap2); - CLHEP::Hep3Vector servpos6(0.,0.,-zposFirstRing-ringWid*5./2. - zposGap1 - zposGap2); - CLHEP::Hep3Vector servpos7(0.,0., zposFirstRing+ringWid*7./2. + zposGap1 + zposGap2 + zposGap3); - CLHEP::Hep3Vector servpos8(0.,0.,-zposFirstRing-ringWid*7./2. - zposGap1 - zposGap2 - zposGap3); - CLHEP::Hep3Vector servpos9(0.,0., zposFirstRing+ringWid*9./2. + zposGap1 + zposGap2 + zposGap3 + zposGap4); - CLHEP::Hep3Vector servpos10(0.,0.,-zposFirstRing-ringWid*9./2. - zposGap1 - zposGap2 - zposGap3 - zposGap4); - GeoTransform *xform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos1)); - GeoTransform *xform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,0.,0.),servpos2)); - GeoTransform *xform3 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos3)); - GeoTransform *xform4 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,0.,0.),servpos4)); - GeoTransform *xform5 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos5)); - GeoTransform *xform6 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,0.,0.),servpos6)); - GeoTransform *xform7 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos7)); - GeoTransform *xform8 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,0.,0.),servpos8)); - GeoTransform *xform9 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos9)); - GeoTransform *xform10 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,0.,0.),servpos10)); + GeoTrf::Translate3D servpos1(0.,0., zposFirstRing+ringWid/2.); + GeoTrf::Translate3D servpos2(0.,0.,-zposFirstRing-ringWid/2.); + GeoTrf::Translate3D servpos3(0.,0., zposFirstRing+ringWid*3./2. + zposGap1); + GeoTrf::Translate3D servpos4(0.,0.,-zposFirstRing-ringWid*3./2. - zposGap1); + GeoTrf::Translate3D servpos5(0.,0., zposFirstRing+ringWid*5./2. + zposGap1 + zposGap2); + GeoTrf::Translate3D servpos6(0.,0.,-zposFirstRing-ringWid*5./2. - zposGap1 - zposGap2); + GeoTrf::Translate3D servpos7(0.,0., zposFirstRing+ringWid*7./2. + zposGap1 + zposGap2 + zposGap3); + GeoTrf::Translate3D servpos8(0.,0.,-zposFirstRing-ringWid*7./2. - zposGap1 - zposGap2 - zposGap3); + GeoTrf::Translate3D servpos9(0.,0., zposFirstRing+ringWid*9./2. + zposGap1 + zposGap2 + zposGap3 + zposGap4); + GeoTrf::Translate3D servpos10(0.,0.,-zposFirstRing-ringWid*9./2. - zposGap1 - zposGap2 - zposGap3 - zposGap4); + GeoTransform *xform1 = new GeoTransform(servpos1); + GeoTransform *xform2 = new GeoTransform(servpos2); + GeoTransform *xform3 = new GeoTransform(servpos3); + GeoTransform *xform4 = new GeoTransform(servpos4); + GeoTransform *xform5 = new GeoTransform(servpos5); + GeoTransform *xform6 = new GeoTransform(servpos6); + GeoTransform *xform7 = new GeoTransform(servpos7); + GeoTransform *xform8 = new GeoTransform(servpos8); + GeoTransform *xform9 = new GeoTransform(servpos9); + GeoTransform *xform10 = new GeoTransform(servpos10); mother->add(xform1); mother->add(ICRTPhys); mother->add(xform1); mother->add(ECRTPhys); mother->add(xform2); mother->add(ICRTPhys); mother->add(xform2); mother->add(ECRTPhys); @@ -286,45 +288,58 @@ void SquirrelCageFactory::create(GeoPhysVol *mother) // "U Shape" support - CLHEP::Hep3Vector USSupCoordX(rminInt + xDepthUSP1/2., 0, 0); + GeoTrf::Vector3D USSupCoordX(rminInt + xDepthUSP1/2., 0, 0); - GeoTransform* transUSS; - transUSS = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), USSupCoordX + CLHEP::Hep3Vector(0, coordY, bUSS + zLengthUS/2.))); + GeoTransform* transUSS{nullptr}; + GeoTrf::Vector3D tmpVec(0,0,0); + tmpVec = USSupCoordX + GeoTrf::Vector3D(0, coordY, bUSS + zLengthUS/2.); + transUSS = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(transUSS); mother->add(UShapePP1); - transUSS = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), USSupCoordX + CLHEP::Hep3Vector(0, coordY, bUSS + zLengthUS/2.) + trans1UShapeP2 )); + tmpVec = USSupCoordX + GeoTrf::Vector3D(0, coordY, bUSS + zLengthUS/2.) + trans1UShapeP2; + transUSS = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(transUSS); mother->add(UShapePP2); - transUSS = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), USSupCoordX + CLHEP::Hep3Vector(0, coordY, bUSS + zLengthUS/2.) + trans1UShapeP3 )); + tmpVec = USSupCoordX + GeoTrf::Vector3D(0, coordY, bUSS + zLengthUS/2.) + trans1UShapeP3 ; + transUSS = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(transUSS); mother->add(UShapePP3); - transUSS = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), -USSupCoordX + CLHEP::Hep3Vector(0, coordY, bUSS + zLengthUS/2.))); + tmpVec = -USSupCoordX + GeoTrf::Vector3D(0, coordY, bUSS + zLengthUS/2.); + transUSS = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(transUSS); mother->add(UShapePP1); - transUSS = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), -USSupCoordX + CLHEP::Hep3Vector(0, coordY, bUSS + zLengthUS/2.) + trans2UShapeP2 )); + tmpVec = -USSupCoordX + GeoTrf::Vector3D(0, coordY, bUSS + zLengthUS/2.) + trans2UShapeP2; + transUSS = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(transUSS); mother->add(UShapePP2); - transUSS = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), -USSupCoordX + CLHEP::Hep3Vector(0, coordY, bUSS + zLengthUS/2.) + trans2UShapeP3 )); + tmpVec = -USSupCoordX + GeoTrf::Vector3D(0, coordY, bUSS + zLengthUS/2.) + trans2UShapeP3; + transUSS = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(transUSS); mother->add(UShapePP3); - transUSS = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), USSupCoordX - CLHEP::Hep3Vector(0, - coordY, bUSS + zLengthUS/2.))); + tmpVec = USSupCoordX - GeoTrf::Vector3D(0, - coordY, bUSS + zLengthUS/2.); + transUSS = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(transUSS); mother->add(UShapePP1); - transUSS = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), USSupCoordX - CLHEP::Hep3Vector(0, - coordY, bUSS + zLengthUS/2.) + trans1UShapeP2 )); + tmpVec = USSupCoordX - GeoTrf::Vector3D(0, - coordY, bUSS + zLengthUS/2.) + trans1UShapeP2; + transUSS = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(transUSS); mother->add(UShapePP2); - transUSS = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), USSupCoordX - CLHEP::Hep3Vector(0, - coordY, bUSS + zLengthUS/2.) + trans1UShapeP3 )); + tmpVec = USSupCoordX - GeoTrf::Vector3D(0, - coordY, bUSS + zLengthUS/2.) + trans1UShapeP3; + transUSS = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(transUSS); mother->add(UShapePP3); - transUSS = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), - USSupCoordX - CLHEP::Hep3Vector(0, - coordY, bUSS + zLengthUS/2.))); + tmpVec = - USSupCoordX - GeoTrf::Vector3D(0, - coordY, bUSS + zLengthUS/2.); + transUSS = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(transUSS); mother->add(UShapePP1); - transUSS = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), - USSupCoordX - CLHEP::Hep3Vector(0, - coordY, bUSS + zLengthUS/2.) + trans2UShapeP2 )); + tmpVec = - USSupCoordX - GeoTrf::Vector3D(0, - coordY, bUSS + zLengthUS/2.) + trans2UShapeP2; + transUSS = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(transUSS); mother->add(UShapePP2); - transUSS = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), - USSupCoordX - CLHEP::Hep3Vector(0, - coordY, bUSS + zLengthUS/2.) + trans2UShapeP3 )); + tmpVec = - USSupCoordX - GeoTrf::Vector3D(0, - coordY, bUSS + zLengthUS/2.) + trans2UShapeP3; + transUSS = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(transUSS); mother->add(UShapePP3); //Support ring positioning - CLHEP::Hep3Vector suppos1(0.,0., zposSupRing+supWid/2.); - CLHEP::Hep3Vector suppos2(0.,0.,-zposSupRing-supWid/2.); - GeoTransform *sform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), suppos1)); - GeoTransform *sform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,M_PI,0.),suppos2)); + GeoTrf::Translate3D suppos1(0.,0., zposSupRing+supWid/2.); + GeoTrf::Vector3D suppos2(0.,0.,-zposSupRing-supWid/2.); + GeoTransform *sform1 = new GeoTransform(suppos1); + GeoTransform *sform2 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0,M_PI,0),suppos2)); mother->add(sform1); mother->add(ringPhysSup); mother->add(sform2); @@ -351,46 +366,46 @@ void SquirrelCageFactory::create(GeoPhysVol *mother) // Squirrel cage rings // Default (initial) ring parameters // - double rminInt = 1074.0*CLHEP::mm; - double ringThick = 4.0*CLHEP::mm; - double ringGap = 20.*CLHEP::mm; - double ringWid = 40.*CLHEP::mm; + double rminInt = 1074.0*GeoModelKernelUnits::mm; + double ringThick = 4.0*GeoModelKernelUnits::mm; + double ringGap = 20.*GeoModelKernelUnits::mm; + double ringWid = 40.*GeoModelKernelUnits::mm; // - rminInt = (*cage)[0]->getDouble("RINGRMIN")*CLHEP::mm; - ringThick = (*cage)[0]->getDouble("RINGTHICK")*CLHEP::mm; - ringGap = (*cage)[0]->getDouble("RINGGAP")*CLHEP::mm; - ringWid = (*cage)[0]->getDouble("RINGWIDTH")*CLHEP::mm; + rminInt = (*cage)[0]->getDouble("RINGRMIN")*GeoModelKernelUnits::mm; + ringThick = (*cage)[0]->getDouble("RINGTHICK")*GeoModelKernelUnits::mm; + ringGap = (*cage)[0]->getDouble("RINGGAP")*GeoModelKernelUnits::mm; + ringWid = (*cage)[0]->getDouble("RINGWIDTH")*GeoModelKernelUnits::mm; // //--- Default (initial) z positions - double zposFirstRing = 805.0*CLHEP::mm+161.0*CLHEP::mm; - double zposGap1 = 390.*CLHEP::mm; - double zposGap2 = 402.*CLHEP::mm; - double zposGap3 = 446.*CLHEP::mm; - double zposGap4 = 331.*CLHEP::mm; + double zposFirstRing = 805.0*GeoModelKernelUnits::mm+161.0*GeoModelKernelUnits::mm; + double zposGap1 = 390.*GeoModelKernelUnits::mm; + double zposGap2 = 402.*GeoModelKernelUnits::mm; + double zposGap3 = 446.*GeoModelKernelUnits::mm; + double zposGap4 = 331.*GeoModelKernelUnits::mm; // - zposFirstRing = (*cage)[0]->getDouble("ZBASE")*CLHEP::mm; - zposGap1 = (*cage)[0]->getDouble("ZGAP1")*CLHEP::mm; - zposGap2 = (*cage)[0]->getDouble("ZGAP2")*CLHEP::mm; - zposGap3 = (*cage)[0]->getDouble("ZGAP3")*CLHEP::mm; - zposGap4 = (*cage)[0]->getDouble("ZGAP4")*CLHEP::mm; + zposFirstRing = (*cage)[0]->getDouble("ZBASE")*GeoModelKernelUnits::mm; + zposGap1 = (*cage)[0]->getDouble("ZGAP1")*GeoModelKernelUnits::mm; + zposGap2 = (*cage)[0]->getDouble("ZGAP2")*GeoModelKernelUnits::mm; + zposGap3 = (*cage)[0]->getDouble("ZGAP3")*GeoModelKernelUnits::mm; + zposGap4 = (*cage)[0]->getDouble("ZGAP4")*GeoModelKernelUnits::mm; // // Now support ring - double rminSup = 830.0*CLHEP::mm; - double supThick = 90.0*CLHEP::mm; - double supWid = 12.0*CLHEP::mm; + double rminSup = 830.0*GeoModelKernelUnits::mm; + double supThick = 90.0*GeoModelKernelUnits::mm; + double supWid = 12.0*GeoModelKernelUnits::mm; // - rminSup = (*cage)[0]->getDouble("SUPRMIN")*CLHEP::mm; - supThick = (*cage)[0]->getDouble("SUPTHICK")*CLHEP::mm; - supWid = (*cage)[0]->getDouble("SUPWIDTH")*CLHEP::mm; + rminSup = (*cage)[0]->getDouble("SUPRMIN")*GeoModelKernelUnits::mm; + supThick = (*cage)[0]->getDouble("SUPTHICK")*GeoModelKernelUnits::mm; + supWid = (*cage)[0]->getDouble("SUPWIDTH")*GeoModelKernelUnits::mm; // double zposSupRing = zposFirstRing+ringWid*5. + zposGap1 + zposGap2 + zposGap3 + zposGap4; // // Now support ribbon - double ribWid = 68.0*CLHEP::mm ; - ribWid = (*cage)[0]->getDouble("RIBWIDTH")*CLHEP::mm; + double ribWid = 68.0*GeoModelKernelUnits::mm ; + ribWid = (*cage)[0]->getDouble("RIBWIDTH")*GeoModelKernelUnits::mm; double ribLeng = ringWid*5. + zposGap1 + zposGap2 + zposGap3 + zposGap4; double ribThick = 0; - if (sqversion >= 3) ribThick = (*cage)[0]->getDouble("RIBTHICK")*CLHEP::mm; + if (sqversion >= 3) ribThick = (*cage)[0]->getDouble("RIBTHICK")*GeoModelKernelUnits::mm; double safety =0.01; double ribThickMax = ringGap - 2*safety; if (ribThick == 0 || ribThick > ribThickMax) { @@ -425,26 +440,26 @@ void SquirrelCageFactory::create(GeoPhysVol *mother) GeoVPhysVol* ringPhysSup = new GeoPhysVol(ringLogSup); GeoVPhysVol* ribPhysSup = new GeoPhysVol(ribLogSup); - CLHEP::Hep3Vector servpos1(0.,0., zposFirstRing+ringWid/2.); - CLHEP::Hep3Vector servpos2(0.,0.,-zposFirstRing-ringWid/2.); - CLHEP::Hep3Vector servpos3(0.,0., zposFirstRing+ringWid*3./2. + zposGap1); - CLHEP::Hep3Vector servpos4(0.,0.,-zposFirstRing-ringWid*3./2. - zposGap1); - CLHEP::Hep3Vector servpos5(0.,0., zposFirstRing+ringWid*5./2. + zposGap1 + zposGap2); - CLHEP::Hep3Vector servpos6(0.,0.,-zposFirstRing-ringWid*5./2. - zposGap1 - zposGap2); - CLHEP::Hep3Vector servpos7(0.,0., zposFirstRing+ringWid*7./2. + zposGap1 + zposGap2 + zposGap3); - CLHEP::Hep3Vector servpos8(0.,0.,-zposFirstRing-ringWid*7./2. - zposGap1 - zposGap2 - zposGap3); - CLHEP::Hep3Vector servpos9(0.,0., zposFirstRing+ringWid*9./2. + zposGap1 + zposGap2 + zposGap3 + zposGap4); - CLHEP::Hep3Vector servpos10(0.,0.,-zposFirstRing-ringWid*9./2. - zposGap1 - zposGap2 - zposGap3 - zposGap4); - GeoTransform *xform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos1)); - GeoTransform *xform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,M_PI,0.),servpos2)); - GeoTransform *xform3 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos3)); - GeoTransform *xform4 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,M_PI,0.),servpos4)); - GeoTransform *xform5 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos5)); - GeoTransform *xform6 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,M_PI,0.),servpos6)); - GeoTransform *xform7 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos7)); - GeoTransform *xform8 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,M_PI,0.),servpos8)); - GeoTransform *xform9 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos9)); - GeoTransform *xform10 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,M_PI,0.),servpos10)); + GeoTrf::Translate3D servpos1(0.,0., zposFirstRing+ringWid/2.); + GeoTrf::Translation3D servpos2(0.,0.,-zposFirstRing-ringWid/2.); + GeoTrf::Translate3D servpos3(0.,0., zposFirstRing+ringWid*3./2. + zposGap1); + GeoTrf::Translation3D servpos4(0.,0.,-zposFirstRing-ringWid*3./2. - zposGap1); + GeoTrf::Translate3D servpos5(0.,0., zposFirstRing+ringWid*5./2. + zposGap1 + zposGap2); + GeoTrf::Translation3D servpos6(0.,0.,-zposFirstRing-ringWid*5./2. - zposGap1 - zposGap2); + GeoTrf::Translate3D servpos7(0.,0., zposFirstRing+ringWid*7./2. + zposGap1 + zposGap2 + zposGap3); + GeoTrf::Translation3D servpos8(0.,0.,-zposFirstRing-ringWid*7./2. - zposGap1 - zposGap2 - zposGap3); + GeoTrf::Translate3D servpos9(0.,0., zposFirstRing+ringWid*9./2. + zposGap1 + zposGap2 + zposGap3 + zposGap4); + GeoTrf::Translation3D servpos10(0.,0.,-zposFirstRing-ringWid*9./2. - zposGap1 - zposGap2 - zposGap3 - zposGap4); + GeoTransform *xform1 = new GeoTransform(servpos1); + GeoTransform *xform2 = new GeoTransform(GeoTrf::Transform3D(servpos2*GeoTrf::RotateY3D(M_PI))); + GeoTransform *xform3 = new GeoTransform(servpos3); + GeoTransform *xform4 = new GeoTransform(GeoTrf::Transform3D(servpos4*GeoTrf::RotateY3D(M_PI))); + GeoTransform *xform5 = new GeoTransform(servpos5); + GeoTransform *xform6 = new GeoTransform(GeoTrf::Transform3D(servpos6*GeoTrf::RotateY3D(M_PI))); + GeoTransform *xform7 = new GeoTransform(servpos7); + GeoTransform *xform8 = new GeoTransform(GeoTrf::Transform3D(servpos8*GeoTrf::RotateY3D(M_PI))); + GeoTransform *xform9 = new GeoTransform(servpos9); + GeoTransform *xform10 = new GeoTransform(GeoTrf::Transform3D(servpos10*GeoTrf::RotateY3D(M_PI))); mother->add(xform1); mother->add(ringPhysInt); mother->add(xform1); @@ -488,10 +503,10 @@ void SquirrelCageFactory::create(GeoPhysVol *mother) //Support ring positioning - CLHEP::Hep3Vector suppos1(0.,0., zposSupRing+supWid/2.); - CLHEP::Hep3Vector suppos2(0.,0.,-zposSupRing-supWid/2.); - GeoTransform *sform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), suppos1)); - GeoTransform *sform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,M_PI,0.),suppos2)); + GeoTrf::Translate3D suppos1(0.,0., zposSupRing+supWid/2.); + GeoTrf::Translation3D suppos2(0.,0.,-zposSupRing-supWid/2.); + GeoTransform *sform1 = new GeoTransform(suppos1); + GeoTransform *sform2 = new GeoTransform(GeoTrf::Transform3D(suppos2*GeoTrf::RotateY3D(M_PI))); mother->add(sform1); mother->add(ringPhysSup); mother->add(sform2); @@ -500,12 +515,12 @@ void SquirrelCageFactory::create(GeoPhysVol *mother) //Support ribbon positioning - CLHEP::Hep3Vector ribpos1( 0., 0., zposFirstRing+ribLeng/2.); - CLHEP::Hep3Vector ribpos2( 0., 0.,-zposFirstRing-ribLeng/2.); - GeoTransform *rform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), ribpos1)); - GeoTransform *rform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,0.,M_PI),ribpos1)); - GeoTransform *rform3 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), ribpos2)); - GeoTransform *rform4 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,0.,M_PI),ribpos2)); + GeoTrf::Translate3D ribpos1( 0., 0., zposFirstRing+ribLeng/2.); + GeoTrf::Translate3D ribpos2( 0., 0.,-zposFirstRing-ribLeng/2.); + GeoTransform *rform1 = new GeoTransform(ribpos1); + GeoTransform *rform2 = new GeoTransform(ribpos1*GeoTrf::RotateZ3D(M_PI)); + GeoTransform *rform3 = new GeoTransform(ribpos2); + GeoTransform *rform4 = new GeoTransform(ribpos2*GeoTrf::RotateZ3D(M_PI)); mother->add(rform1); diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactoryFS.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactoryFS.cxx index 24b3b6aa352f8a55449b5ec2e103d6e72e54dcf0..5983eed14c9297b9d6baaada8ccce50e9aa59496 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactoryFS.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SquirrelCageFactoryFS.cxx @@ -5,6 +5,8 @@ #include "InDetServMatGeoModel/SquirrelCageFactoryFS.h" // GeoModel includes +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoTube.h" @@ -72,46 +74,46 @@ void SquirrelCageFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) // Squirrel cage rings // Default (initial) ring parameters // - double rminInt = 1074.0*CLHEP::mm; - double ringThick = 4.0*CLHEP::mm; - double ringGap = 20.*CLHEP::mm; - double ringWid = 40.*CLHEP::mm; + double rminInt = 1074.0*GeoModelKernelUnits::mm; + double ringThick = 4.0*GeoModelKernelUnits::mm; + double ringGap = 20.*GeoModelKernelUnits::mm; + double ringWid = 40.*GeoModelKernelUnits::mm; // - rminInt = (*cage)[0]->getDouble("RINGRMIN")*CLHEP::mm; - ringThick = (*cage)[0]->getDouble("RINGTHICK")*CLHEP::mm; - ringGap = (*cage)[0]->getDouble("RINGGAP")*CLHEP::mm; - ringWid = (*cage)[0]->getDouble("RINGWIDTH")*CLHEP::mm; + rminInt = (*cage)[0]->getDouble("RINGRMIN")*GeoModelKernelUnits::mm; + ringThick = (*cage)[0]->getDouble("RINGTHICK")*GeoModelKernelUnits::mm; + ringGap = (*cage)[0]->getDouble("RINGGAP")*GeoModelKernelUnits::mm; + ringWid = (*cage)[0]->getDouble("RINGWIDTH")*GeoModelKernelUnits::mm; // //--- Default (initial) z positions - double zposFirstRing = 805.0*CLHEP::mm+161.0*CLHEP::mm; - double zposGap1 = 390.*CLHEP::mm; - double zposGap2 = 402.*CLHEP::mm; - double zposGap3 = 446.*CLHEP::mm; - double zposGap4 = 331.*CLHEP::mm; + double zposFirstRing = 805.0*GeoModelKernelUnits::mm+161.0*GeoModelKernelUnits::mm; + double zposGap1 = 390.*GeoModelKernelUnits::mm; + double zposGap2 = 402.*GeoModelKernelUnits::mm; + double zposGap3 = 446.*GeoModelKernelUnits::mm; + double zposGap4 = 331.*GeoModelKernelUnits::mm; // - zposFirstRing = (*cage)[0]->getDouble("ZBASE")*CLHEP::mm; - zposGap1 = (*cage)[0]->getDouble("ZGAP1")*CLHEP::mm; - zposGap2 = (*cage)[0]->getDouble("ZGAP2")*CLHEP::mm; - zposGap3 = (*cage)[0]->getDouble("ZGAP3")*CLHEP::mm; - zposGap4 = (*cage)[0]->getDouble("ZGAP4")*CLHEP::mm; + zposFirstRing = (*cage)[0]->getDouble("ZBASE")*GeoModelKernelUnits::mm; + zposGap1 = (*cage)[0]->getDouble("ZGAP1")*GeoModelKernelUnits::mm; + zposGap2 = (*cage)[0]->getDouble("ZGAP2")*GeoModelKernelUnits::mm; + zposGap3 = (*cage)[0]->getDouble("ZGAP3")*GeoModelKernelUnits::mm; + zposGap4 = (*cage)[0]->getDouble("ZGAP4")*GeoModelKernelUnits::mm; // // Now support ring - double rminSup = 830.0*CLHEP::mm; - double supThick = 90.0*CLHEP::mm; - double supWid = 12.0*CLHEP::mm; + double rminSup = 830.0*GeoModelKernelUnits::mm; + double supThick = 90.0*GeoModelKernelUnits::mm; + double supWid = 12.0*GeoModelKernelUnits::mm; // - rminSup = (*cage)[0]->getDouble("SUPRMIN")*CLHEP::mm; - supThick = (*cage)[0]->getDouble("SUPTHICK")*CLHEP::mm; - supWid = (*cage)[0]->getDouble("SUPWIDTH")*CLHEP::mm; + rminSup = (*cage)[0]->getDouble("SUPRMIN")*GeoModelKernelUnits::mm; + supThick = (*cage)[0]->getDouble("SUPTHICK")*GeoModelKernelUnits::mm; + supWid = (*cage)[0]->getDouble("SUPWIDTH")*GeoModelKernelUnits::mm; // double zposSupRing = zposFirstRing+ringWid*5. + zposGap1 + zposGap2 + zposGap3 + zposGap4; // // Now support ribbon - double ribWid = 68.0*CLHEP::mm ; - ribWid = (*cage)[0]->getDouble("RIBWIDTH")*CLHEP::mm; + double ribWid = 68.0*GeoModelKernelUnits::mm ; + ribWid = (*cage)[0]->getDouble("RIBWIDTH")*GeoModelKernelUnits::mm; double ribLeng = ringWid*5. + zposGap1 + zposGap2 + zposGap3 + zposGap4; double ribThick = 0; - if (sqversion >= 3) ribThick = (*cage)[0]->getDouble("RIBTHICK")*CLHEP::mm; + if (sqversion >= 3) ribThick = (*cage)[0]->getDouble("RIBTHICK")*GeoModelKernelUnits::mm; double safety =0.01; double ribThickMax = ringGap - 2*safety; if (ribThick == 0 || ribThick > ribThickMax) { @@ -146,26 +148,26 @@ void SquirrelCageFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) GeoVPhysVol* ringPhysSup = new GeoPhysVol(ringLogSup); GeoVPhysVol* ribPhysSup = new GeoPhysVol(ribLogSup); - CLHEP::Hep3Vector servpos1(0.,0., zposFirstRing+ringWid/2.); - CLHEP::Hep3Vector servpos2(0.,0.,-zposFirstRing-ringWid/2.); - CLHEP::Hep3Vector servpos3(0.,0., zposFirstRing+ringWid*3./2. + zposGap1); - CLHEP::Hep3Vector servpos4(0.,0.,-zposFirstRing-ringWid*3./2. - zposGap1); - CLHEP::Hep3Vector servpos5(0.,0., zposFirstRing+ringWid*5./2. + zposGap1 + zposGap2); - CLHEP::Hep3Vector servpos6(0.,0.,-zposFirstRing-ringWid*5./2. - zposGap1 - zposGap2); - CLHEP::Hep3Vector servpos7(0.,0., zposFirstRing+ringWid*7./2. + zposGap1 + zposGap2 + zposGap3); - CLHEP::Hep3Vector servpos8(0.,0.,-zposFirstRing-ringWid*7./2. - zposGap1 - zposGap2 - zposGap3); - CLHEP::Hep3Vector servpos9(0.,0., zposFirstRing+ringWid*9./2. + zposGap1 + zposGap2 + zposGap3 + zposGap4); - CLHEP::Hep3Vector servpos10(0.,0.,-zposFirstRing-ringWid*9./2. - zposGap1 - zposGap2 - zposGap3 - zposGap4); - GeoTransform *xform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos1)); - GeoTransform *xform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,M_PI,0.),servpos2)); - GeoTransform *xform3 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos3)); - GeoTransform *xform4 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,M_PI,0.),servpos4)); - GeoTransform *xform5 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos5)); - GeoTransform *xform6 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,M_PI,0.),servpos6)); - GeoTransform *xform7 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos7)); - GeoTransform *xform8 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,M_PI,0.),servpos8)); - GeoTransform *xform9 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), servpos9)); - GeoTransform *xform10 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,M_PI,0.),servpos10)); + GeoTrf::Translate3D servpos1(0.,0., zposFirstRing+ringWid/2.); + GeoTrf::Vector3D servpos2(0.,0.,-zposFirstRing-ringWid/2.); + GeoTrf::Translate3D servpos3(0.,0., zposFirstRing+ringWid*3./2. + zposGap1); + GeoTrf::Vector3D servpos4(0.,0.,-zposFirstRing-ringWid*3./2. - zposGap1); + GeoTrf::Translate3D servpos5(0.,0., zposFirstRing+ringWid*5./2. + zposGap1 + zposGap2); + GeoTrf::Vector3D servpos6(0.,0.,-zposFirstRing-ringWid*5./2. - zposGap1 - zposGap2); + GeoTrf::Translate3D servpos7(0.,0., zposFirstRing+ringWid*7./2. + zposGap1 + zposGap2 + zposGap3); + GeoTrf::Vector3D servpos8(0.,0.,-zposFirstRing-ringWid*7./2. - zposGap1 - zposGap2 - zposGap3); + GeoTrf::Translate3D servpos9(0.,0., zposFirstRing+ringWid*9./2. + zposGap1 + zposGap2 + zposGap3 + zposGap4); + GeoTrf::Vector3D servpos10(0.,0.,-zposFirstRing-ringWid*9./2. - zposGap1 - zposGap2 - zposGap3 - zposGap4); + GeoTransform *xform1 = new GeoTransform(servpos1); + GeoTransform *xform2 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0.,M_PI,0.),servpos2)); + GeoTransform *xform3 = new GeoTransform(servpos3); + GeoTransform *xform4 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0.,M_PI,0.),servpos4)); + GeoTransform *xform5 = new GeoTransform(servpos5); + GeoTransform *xform6 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0.,M_PI,0.),servpos6)); + GeoTransform *xform7 = new GeoTransform(servpos7); + GeoTransform *xform8 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0.,M_PI,0.),servpos8)); + GeoTransform *xform9 = new GeoTransform(servpos9); + GeoTransform *xform10 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0.,M_PI,0.),servpos10)); motherP->add(xform1); motherP->add(ringPhysInt); motherP->add(xform1); @@ -209,10 +211,10 @@ void SquirrelCageFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) //Support ring positioning - CLHEP::Hep3Vector suppos1(0.,0., zposSupRing+supWid/2.); - CLHEP::Hep3Vector suppos2(0.,0.,-zposSupRing-supWid/2.); - GeoTransform *sform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), suppos1)); - GeoTransform *sform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,M_PI,0.),suppos2)); + GeoTrf::Translate3D suppos1(0.,0., zposSupRing+supWid/2.); + GeoTrf::Vector3D suppos2(0.,0.,-zposSupRing-supWid/2.); + GeoTransform *sform1 = new GeoTransform(suppos1); + GeoTransform *sform2 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0.,M_PI,0.),suppos2)); motherP->add(sform1); motherP->add(ringPhysSup); motherM->add(sform2); @@ -221,12 +223,12 @@ void SquirrelCageFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) //Support ribbon positioning - CLHEP::Hep3Vector ribpos1( 0., 0., zposFirstRing+ribLeng/2.); - CLHEP::Hep3Vector ribpos2( 0., 0.,-zposFirstRing-ribLeng/2.); - GeoTransform *rform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), ribpos1)); - GeoTransform *rform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,0.,M_PI),ribpos1)); - GeoTransform *rform3 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), ribpos2)); - GeoTransform *rform4 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(0.,0.,M_PI),ribpos2)); + GeoTrf::Vector3D ribpos1( 0., 0., zposFirstRing+ribLeng/2.); + GeoTrf::Vector3D ribpos2( 0., 0.,-zposFirstRing-ribLeng/2.); + GeoTransform *rform1 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0,0,0),ribpos1)); + GeoTransform *rform2 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0.,0.,M_PI),ribpos1)); + GeoTransform *rform3 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0,0,0),ribpos2)); + GeoTransform *rform4 = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0.,0.,M_PI),ribpos2)); motherP->add(rform1); diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactory.cxx index 346960aee288007ee9d63aff7b1e610351074e11..f6ca11d8b999bf50dba164f854d74e4be2ff2771 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactory.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactory.cxx @@ -5,6 +5,8 @@ #include "InDetServMatGeoModel/SupportRailFactory.h" // GeoModel includes +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoTube.h" @@ -66,18 +68,18 @@ void SupportRailFactory::create(GeoPhysVol *mother) // // Default(initial) values // - double RMAX_ID = 1150.0*CLHEP::mm -1.0*CLHEP::mm; //Some safety margin - double railLengthB = 1600.0*CLHEP::mm; - double railWidthB = 5.5*CLHEP::mm; - double railThickB = 34.7*CLHEP::mm; + double RMAX_ID = 1150.0*GeoModelKernelUnits::mm -1.0*GeoModelKernelUnits::mm; //Some safety margin + double railLengthB = 1600.0*GeoModelKernelUnits::mm; + double railWidthB = 5.5*GeoModelKernelUnits::mm; + double railThickB = 34.7*GeoModelKernelUnits::mm; // - double railLengthE = 2600.0*CLHEP::mm; -// double railWidthE = 14.*CLHEP::mm; -// double railThickE = 14.7*CLHEP::mm; + double railLengthE = 2600.0*GeoModelKernelUnits::mm; +// double railWidthE = 14.*GeoModelKernelUnits::mm; +// double railThickE = 14.7*GeoModelKernelUnits::mm; // - double suppLength = 6800.0*CLHEP::mm; - double suppWidth = 54.*CLHEP::mm; -// double suppThick = 22.6*CLHEP::mm; + double suppLength = 6800.0*GeoModelKernelUnits::mm; + double suppWidth = 54.*GeoModelKernelUnits::mm; +// double suppThick = 22.6*GeoModelKernelUnits::mm; // // Database // @@ -93,7 +95,7 @@ void SupportRailFactory::create(GeoPhysVol *mother) const GeoMaterial* alum = materialManager()->getMaterial((*railrec)[0]->getString("MATSUP")); //Radius of Squirrel cage - double rminInt = (*cage)[0]->getDouble("RINGRMIN")*CLHEP::mm; + double rminInt = (*cage)[0]->getDouble("RINGRMIN")*GeoModelKernelUnits::mm; //Thick of U Shape Support std::unique_ptr<IRDBQuery> queryUSP = rdbAccessSvc()->getQuery("IDDetRailUSP",indetVersionKey.tag(), indetVersionKey.node()); if(!queryUSP) @@ -110,21 +112,21 @@ void SupportRailFactory::create(GeoPhysVol *mother) double epsilon = 0.01; // +Some safety margin - RMAX_ID = (*atls)[0]->getDouble("IDETOR")*CLHEP::cm; - //railLengthB = (*railrec)[0]->getDouble("LENGTHB")*CLHEP::mm; At database there is 34.7 but it could cause crash. + RMAX_ID = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; + //railLengthB = (*railrec)[0]->getDouble("LENGTHB")*GeoModelKernelUnits::mm; At database there is 34.7 but it could cause crash. - railWidthB = (*railrec)[0]->getDouble("WIDTHB")*CLHEP::mm; - railThickB = (*railrec)[0]->getDouble("THICKB")*CLHEP::mm; + railWidthB = (*railrec)[0]->getDouble("WIDTHB")*GeoModelKernelUnits::mm; + railThickB = (*railrec)[0]->getDouble("THICKB")*GeoModelKernelUnits::mm; //------------ Limited by EP ExternalShell - railLengthE = (*endplate)[0]->getDouble("ZSTART")*CLHEP::mm - +(*endplate)[0]->getDouble("ZSHIFT")*CLHEP::mm - +(*endplate)[0]->getDouble("ZGAP")*CLHEP::mm - railLengthB/2.; -// railWidthE = (*railrec)[0]->getDouble("WIDTHE")*CLHEP::mm; -// railThickE = (*railrec)[0]->getDouble("THICKE")*CLHEP::mm; + railLengthE = (*endplate)[0]->getDouble("ZSTART")*GeoModelKernelUnits::mm + +(*endplate)[0]->getDouble("ZSHIFT")*GeoModelKernelUnits::mm + +(*endplate)[0]->getDouble("ZGAP")*GeoModelKernelUnits::mm - railLengthB/2.; +// railWidthE = (*railrec)[0]->getDouble("WIDTHE")*GeoModelKernelUnits::mm; +// railThickE = (*railrec)[0]->getDouble("THICKE")*GeoModelKernelUnits::mm; suppLength = railLengthB + 2.*railLengthE; - suppWidth = (*railrec)[0]->getDouble("WIDTHSUP")*CLHEP::mm; -// suppThick = (*railrec)[0]->getDouble("THICKSUP")*CLHEP::mm; + suppWidth = (*railrec)[0]->getDouble("WIDTHSUP")*GeoModelKernelUnits::mm; +// suppThick = (*railrec)[0]->getDouble("THICKSUP")*GeoModelKernelUnits::mm; double zLengthB = (*idSupportRails)[0]->getDouble("ZLENGTH"); double yWidthB = (*idSupportRails)[0]->getDouble("YWIDTH"); @@ -217,12 +219,12 @@ void SupportRailFactory::create(GeoPhysVol *mother) //GeoBox** railEndcap = new GeoBox*[numberOfPieces]; GeoBox* railEndcap[numberOfPieces]; - // CLHEP::Hep3Vector* vectorForTrans = new CLHEP::Hep3Vector[numberOfPieces]; - // //CLHEP::Hep3Vector vectorForTrans[numberOfPieces]; - CLHEP::Hep3Vector vectorForTrans[numberOfPieces]; + // GeoTrf::Vector3D* vectorForTrans = new GeoTrf::Vector3D[numberOfPieces]; + // //GeoTrf::Vector3D vectorForTrans[numberOfPieces]; + GeoTrf::Vector3D vectorForTrans[numberOfPieces]; GeoBox* railEndcapFirst = new GeoBox(railEBx/2., railEBy/2., railLengthE/2); - CLHEP::Hep3Vector vectorForTransFirst (0., 0., 0.); + GeoTrf::Vector3D vectorForTransFirst (0., 0., 0.); double lastY = 0.; double startY = 0.; @@ -238,12 +240,12 @@ void SupportRailFactory::create(GeoPhysVol *mother) railEndcap[i] = new GeoBox(railEBx/2. - xa, ya/2, railLengthE/2); if (i == 0) { - vectorForTrans[0] = CLHEP::Hep3Vector(0., railEBy/2. + ya/2, 0.) + vectorForTransFirst; + vectorForTrans[0] = GeoTrf::Vector3D(0., railEBy/2. + ya/2, 0.) + vectorForTransFirst; lastY = ya/2; } else { - vectorForTrans[i] = vectorForTrans[i-1] + CLHEP::Hep3Vector(0., lastY + ya/2, 0.); + vectorForTrans[i] = vectorForTrans[i-1] + GeoTrf::Vector3D(0., lastY + ya/2, 0.); lastY = ya/2; } @@ -253,12 +255,12 @@ void SupportRailFactory::create(GeoPhysVol *mother) const GeoShape* elementOfRailSupport2 = new GeoBox(railSP2x/2., railSP2y/2., suppLength/2); const GeoShape* elementOfRailSupport3 = new GeoBox(railSP3x/2., railSP3y/2., suppLength/2); - CLHEP::Hep3Vector transRailSupport1(0., 0., 0.); - CLHEP::Hep3Vector transRailSupport2Part1(-railSP1x/2. + railSP2x/2., railSP1y/2. + railSP2y/2. ,0.); - CLHEP::Hep3Vector transRailSupport3Part1(-railSP1x/2. - railSP3x/2., railSP1y/2. + railSP2y - railSP3y/2. , 0.); + GeoTrf::Vector3D transRailSupport1(0., 0., 0.); + GeoTrf::Vector3D transRailSupport2Part1(-railSP1x/2. + railSP2x/2., railSP1y/2. + railSP2y/2. ,0.); + GeoTrf::Vector3D transRailSupport3Part1(-railSP1x/2. - railSP3x/2., railSP1y/2. + railSP2y - railSP3y/2. , 0.); - CLHEP::Hep3Vector transRailSupport2Part2(railSP1x/2. - railSP2x/2., railSP1y/2. + railSP2y/2. ,0.); - CLHEP::Hep3Vector transRailSupport3Part2(railSP1x/2. + railSP3x/2., railSP1y/2. + railSP2y - railSP3y/2. ,0.); + GeoTrf::Vector3D transRailSupport2Part2(railSP1x/2. - railSP2x/2., railSP1y/2. + railSP2y/2. ,0.); + GeoTrf::Vector3D transRailSupport3Part2(railSP1x/2. + railSP3x/2., railSP1y/2. + railSP2y - railSP3y/2. ,0.); //Definition of Barrel Tracker Support Rail @@ -267,17 +269,17 @@ void SupportRailFactory::create(GeoPhysVol *mother) const GeoBox* trackerSRBP3 = new GeoBox(trackerSRBP3x/2., trackerSRBP3y/2., zLengthB/2); const GeoBox* trackerSRBP4 = new GeoBox(trackerSRBP4x/2., trackerSRBP4y/2., zLengthB/2); - CLHEP::Hep3Vector trans1TSRBP1(0., 0.,0.); - CLHEP::Hep3Vector trans2TSRBP1(0., 0.,0.); + GeoTrf::Vector3D trans1TSRBP1(0., 0.,0.); + GeoTrf::Vector3D trans2TSRBP1(0., 0.,0.); - CLHEP::Hep3Vector trans1TSRBP2(trackerSRBP1x/2. + trackerSRBP2x/2., - (trackerSRBP1y/2. - trackerSRBP2y/2. - distBottom), 0.); - CLHEP::Hep3Vector trans2TSRBP2(-trackerSRBP1x/2. - trackerSRBP2x/2., - (trackerSRBP1y/2. - trackerSRBP2y/2. - distBottom), 0.); + GeoTrf::Vector3D trans1TSRBP2(trackerSRBP1x/2. + trackerSRBP2x/2., - (trackerSRBP1y/2. - trackerSRBP2y/2. - distBottom), 0.); + GeoTrf::Vector3D trans2TSRBP2(-trackerSRBP1x/2. - trackerSRBP2x/2., - (trackerSRBP1y/2. - trackerSRBP2y/2. - distBottom), 0.); - CLHEP::Hep3Vector trans1TSRBP3(trackerSRBP1x/2. + trackerSRBP2x + trackerSRBP3x/2., - (trackerSRBP1y/2. - trackerSRBP3y/2. - distBottom), 0.); - CLHEP::Hep3Vector trans2TSRBP3(- trackerSRBP1x/2. - trackerSRBP2x - trackerSRBP3x/2., - (trackerSRBP1y/2. - trackerSRBP3y/2. - distBottom), 0.); + GeoTrf::Vector3D trans1TSRBP3(trackerSRBP1x/2. + trackerSRBP2x + trackerSRBP3x/2., - (trackerSRBP1y/2. - trackerSRBP3y/2. - distBottom), 0.); + GeoTrf::Vector3D trans2TSRBP3(- trackerSRBP1x/2. - trackerSRBP2x - trackerSRBP3x/2., - (trackerSRBP1y/2. - trackerSRBP3y/2. - distBottom), 0.); - CLHEP::Hep3Vector trans1TSRBP4(trackerSRBP1x/2. + trackerSRBP2x + trackerSRBP4x/2., trackerSRBP1y/2. - trackerSRBP4y/2. - distTop, 0.); - CLHEP::Hep3Vector trans2TSRBP4(- trackerSRBP1x/2. - trackerSRBP2x - trackerSRBP4x/2.,trackerSRBP1y/2. - trackerSRBP4y/2. - distTop, 0.); + GeoTrf::Vector3D trans1TSRBP4(trackerSRBP1x/2. + trackerSRBP2x + trackerSRBP4x/2., trackerSRBP1y/2. - trackerSRBP4y/2. - distTop, 0.); + GeoTrf::Vector3D trans2TSRBP4(- trackerSRBP1x/2. - trackerSRBP2x - trackerSRBP4x/2.,trackerSRBP1y/2. - trackerSRBP4y/2. - distTop, 0.); //Definition Of Endcap Tracker Support Rail @@ -285,14 +287,14 @@ void SupportRailFactory::create(GeoPhysVol *mother) const GeoBox* trackerSREP2 = new GeoBox(trackerSREP2x/2., trackerSREP2y/2.,zLengthE/2.); const GeoBox* trackerSREP3 = new GeoBox(trackerSREP3x/2., trackerSREP3y/2.,zLengthE/2.); - CLHEP::Hep3Vector trans1TSREP1(0. ,0.,0.); - CLHEP::Hep3Vector trans2TSREP1(0. ,0.,0.); + GeoTrf::Vector3D trans1TSREP1(0. ,0.,0.); + GeoTrf::Vector3D trans2TSREP1(0. ,0.,0.); - CLHEP::Hep3Vector trans1TSREP2(trackerSREP1x/2. + trackerSREP2x/2., -trackerSREP1y/2. + trackerSREP2y/2., 0.); - CLHEP::Hep3Vector trans2TSREP2(- trackerSREP1x/2. - trackerSREP2x/2., -trackerSREP1y/2. + trackerSREP2y/2., 0.); + GeoTrf::Vector3D trans1TSREP2(trackerSREP1x/2. + trackerSREP2x/2., -trackerSREP1y/2. + trackerSREP2y/2., 0.); + GeoTrf::Vector3D trans2TSREP2(- trackerSREP1x/2. - trackerSREP2x/2., -trackerSREP1y/2. + trackerSREP2y/2., 0.); - CLHEP::Hep3Vector trans1TSREP3(trackerSREP1x/2. + trackerSREP3x/2., trackerSREP1y/2. - trackerSREP3y/2., 0.); - CLHEP::Hep3Vector trans2TSREP3(- trackerSREP1x/2. - trackerSREP3x/2., trackerSREP1y/2. - trackerSREP3y/2., 0.); + GeoTrf::Vector3D trans1TSREP3(trackerSREP1x/2. + trackerSREP3x/2., trackerSREP1y/2. - trackerSREP3y/2., 0.); + GeoTrf::Vector3D trans2TSREP3(- trackerSREP1x/2. - trackerSREP3x/2., trackerSREP1y/2. - trackerSREP3y/2., 0.); @@ -352,30 +354,34 @@ void SupportRailFactory::create(GeoPhysVol *mother) //Support rail - male part - CLHEP::Hep3Vector suppPos1Part1(rminInt + xDepthUSP2 + railSP2x - railSP1x/2., - yWidthUSP1/2. + railSP1y/2. + coordY, 0.); - CLHEP::Hep3Vector suppPos2Part1( - rminInt - xDepthUSP2 - railSP2x + railSP1x/2., - yWidthUSP1/2. + railSP1y/2. + coordY, 0.); + GeoTrf::Vector3D suppPos1Part1(rminInt + xDepthUSP2 + railSP2x - railSP1x/2., - yWidthUSP1/2. + railSP1y/2. + coordY, 0.); + GeoTrf::Vector3D suppPos2Part1( - rminInt - xDepthUSP2 - railSP2x + railSP1x/2., - yWidthUSP1/2. + railSP1y/2. + coordY, 0.); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),suppPos1Part1)); + pos = new GeoTransform(GeoTrf::Translate3D(suppPos1Part1.x(),suppPos1Part1.y(),suppPos1Part1.z())); mother->add(pos); mother->add(railSupportPhysPart1); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),suppPos2Part1)); + pos = new GeoTransform(GeoTrf::Translate3D(suppPos2Part1.x(),suppPos2Part1.y(),suppPos2Part1.z())); mother->add(pos); mother->add(railSupportPhysPart1); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),suppPos1Part1 + transRailSupport2Part2)); + GeoTrf::Vector3D tmpVec = suppPos1Part1 + transRailSupport2Part2; + pos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(pos); mother->add(railSupportPhysPart2); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),suppPos2Part1 + transRailSupport2Part1)); + tmpVec = suppPos2Part1 + transRailSupport2Part1; + pos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(pos); mother->add(railSupportPhysPart2); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),suppPos1Part1+ transRailSupport3Part2)); + tmpVec = suppPos1Part1+ transRailSupport3Part2; + pos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(pos); mother->add(railSupportPhysPart3); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),suppPos2Part1+ transRailSupport3Part1)); + tmpVec = suppPos2Part1+ transRailSupport3Part1; + pos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(pos); mother->add(railSupportPhysPart3); @@ -387,140 +393,169 @@ void SupportRailFactory::create(GeoPhysVol *mother) // double safety=0.01; // to provide safety gap for G4 - CLHEP::Hep3Vector railBpos1(railSP1x/2. - railThickB/2. - railSP2x, railSP1y/2. + railWidthB/2., 0.); - CLHEP::Hep3Vector railBpos2(- railSP1x/2. + railThickB/2. + railSP2x, railSP1y/2. + railWidthB/2., 0.); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railBpos1 + suppPos1Part1)); + GeoTrf::Vector3D railBpos1(railSP1x/2. - railThickB/2. - railSP2x, railSP1y/2. + railWidthB/2., 0.); + GeoTrf::Vector3D railBpos2(- railSP1x/2. + railThickB/2. + railSP2x, railSP1y/2. + railWidthB/2., 0.); + tmpVec = railBpos1 + suppPos1Part1; + pos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(pos); mother->add(railBarrelPhys); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railBpos2 + suppPos2Part1)); + tmpVec = railBpos2 + suppPos2Part1; + pos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(pos); mother->add(railBarrelPhys); // // Endcap steel rails // - CLHEP::Hep3Vector railEpos1( railSP1x/2 + railSP3x - exactPl, railSP1y/2. + railEBy/2., (railLengthB+railLengthE)/2.); - CLHEP::Hep3Vector railEpos2( -railSP1x/2 - railSP3x + exactPl, railSP1y/2. + railEBy/2., (railLengthB+railLengthE)/2.); - CLHEP::Hep3Vector railEpos3( railSP1x/2 + railSP3x - exactPl, railSP1y/2. + railEBy/2.,-(railLengthB+railLengthE)/2.); - CLHEP::Hep3Vector railEpos4( -railSP1x/2 - railSP3x + exactPl, railSP1y/2. + railEBy/2.,-(railLengthB+railLengthE)/2.); - - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railEpos1 + vectorForTransFirst + suppPos1Part1)); + GeoTrf::Vector3D railEpos1( railSP1x/2 + railSP3x - exactPl, railSP1y/2. + railEBy/2., (railLengthB+railLengthE)/2.); + GeoTrf::Vector3D railEpos2( -railSP1x/2 - railSP3x + exactPl, railSP1y/2. + railEBy/2., (railLengthB+railLengthE)/2.); + GeoTrf::Vector3D railEpos3( railSP1x/2 + railSP3x - exactPl, railSP1y/2. + railEBy/2.,-(railLengthB+railLengthE)/2.); + GeoTrf::Vector3D railEpos4( -railSP1x/2 - railSP3x + exactPl, railSP1y/2. + railEBy/2.,-(railLengthB+railLengthE)/2.); + tmpVec = railEpos1 + vectorForTransFirst + suppPos1Part1; + pos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(pos); mother->add(railEndcapFirstPhys); for (int i = 0; i < numberOfPieces; i++) { - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), railEpos1 + vectorForTrans[i] + suppPos1Part1)); - mother->add(pos); - mother->add(railEndcapPhys[i]); + tmpVec = railEpos1 + vectorForTrans[i] + suppPos1Part1; + pos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); + mother->add(pos); + mother->add(railEndcapPhys[i]); } - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railEpos2 + vectorForTransFirst + suppPos2Part1)); + tmpVec = railEpos2 + vectorForTransFirst + suppPos2Part1; + pos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(pos); mother->add(railEndcapFirstPhys); for (int i = 0; i < numberOfPieces; i++) { - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), railEpos2 + vectorForTrans[i] + suppPos2Part1)); - mother->add(pos); - mother->add(railEndcapPhys[i]); + tmpVec = railEpos2 + vectorForTrans[i] + suppPos2Part1; + pos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); + mother->add(pos); + mother->add(railEndcapPhys[i]); } - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railEpos3 + vectorForTransFirst + suppPos1Part1)); + tmpVec = railEpos3 + vectorForTransFirst + suppPos1Part1; + pos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(pos); mother->add(railEndcapFirstPhys); for (int i = 0; i < numberOfPieces; i++) { - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), railEpos3 + vectorForTrans[i] + suppPos1Part1)); - mother->add(pos); - mother->add(railEndcapPhys[i]); + tmpVec = railEpos3 + vectorForTrans[i] + suppPos1Part1; + pos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); + mother->add(pos); + mother->add(railEndcapPhys[i]); } - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railEpos4 + vectorForTransFirst + suppPos2Part1)); + tmpVec = railEpos4 + vectorForTransFirst + suppPos2Part1; + pos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(pos); mother->add(railEndcapFirstPhys); for (int i = 0; i < numberOfPieces; i++) { - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), railEpos4 + vectorForTrans[i] + suppPos2Part1)); - mother->add(pos); - mother->add(railEndcapPhys[i]); + tmpVec = railEpos4 + vectorForTrans[i] + suppPos2Part1; + pos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); + mother->add(pos); + mother->add(railEndcapPhys[i]); } - CLHEP::Hep3Vector transToInnerWall(rminInt + xDepthUSP2 + railSP2x + railSP3x + trackerSRBP2x + trackerSRBP1x, 0, 0); - CLHEP::Hep3Vector transMalePart(0., 0., 0.); + GeoTrf::Vector3D transToInnerWall(rminInt + xDepthUSP2 + railSP2x + railSP3x + trackerSRBP2x + trackerSRBP1x, 0, 0); + GeoTrf::Vector3D transMalePart(0., 0., 0.); GeoTransform *xfPos; GeoTransform *xfNeg; //Barrel - xfPos = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),transToInnerWall - CLHEP::Hep3Vector(trackerSRBP1x/2., 0, 0) + trans2TSRBP1 + transMalePart)); - xfNeg = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),- transToInnerWall + CLHEP::Hep3Vector(trackerSRBP1x/2., 0, 0) + trans1TSRBP1 + transMalePart)); + tmpVec = transToInnerWall - GeoTrf::Vector3D(trackerSRBP1x/2., 0, 0) + trans2TSRBP1 + transMalePart; + xfPos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); + tmpVec = - transToInnerWall + GeoTrf::Vector3D(trackerSRBP1x/2., 0,0) + trans1TSRBP1 + transMalePart; + xfNeg = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(xfPos); mother->add(trackerSRBPP1); mother->add(xfNeg); mother->add(trackerSRBPP1); - xfPos = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),transToInnerWall - CLHEP::Hep3Vector(trackerSRBP1x/2., 0, 0) + trans2TSRBP2 + transMalePart)); - xfNeg = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), - transToInnerWall + CLHEP::Hep3Vector(trackerSRBP1x/2., 0, 0) + trans1TSRBP2 + transMalePart)); + tmpVec = transToInnerWall - GeoTrf::Vector3D(trackerSRBP1x/2., 0, 0) + trans2TSRBP2 + transMalePart; + xfPos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); + tmpVec = - transToInnerWall + GeoTrf::Vector3D(trackerSRBP1x/2., 0, 0) + trans1TSRBP2 + transMalePart; + xfNeg = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(xfPos); mother->add(trackerSRBPP2); mother->add(xfNeg); mother->add(trackerSRBPP2); - xfPos = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), transToInnerWall - CLHEP::Hep3Vector(trackerSRBP1x/2., 0, 0) + trans2TSRBP3 + transMalePart)); - xfNeg = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), - transToInnerWall + CLHEP::Hep3Vector(trackerSRBP1x/2., 0, 0) + trans1TSRBP3 + transMalePart)); + tmpVec = transToInnerWall - GeoTrf::Vector3D(trackerSRBP1x/2., 0,0) + trans2TSRBP3 + transMalePart; + xfPos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); + tmpVec = - transToInnerWall + GeoTrf::Vector3D(trackerSRBP1x/2., 0, 0) + trans1TSRBP3 + transMalePart; + xfNeg = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(xfPos); mother->add(trackerSRBPP3); mother->add(xfNeg); mother->add(trackerSRBPP3); - xfPos = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), transToInnerWall - CLHEP::Hep3Vector(trackerSRBP1x/2., 0, 0) + trans2TSRBP4 + transMalePart)); - xfNeg = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), -transToInnerWall + CLHEP::Hep3Vector(trackerSRBP1x/2., 0, 0) + trans1TSRBP4 + transMalePart)); + tmpVec = transToInnerWall - GeoTrf::Vector3D(trackerSRBP1x/2., 0,0) + trans2TSRBP4 + transMalePart; + xfPos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); + tmpVec = -transToInnerWall + GeoTrf::Vector3D(trackerSRBP1x/2., 0, 0) + trans1TSRBP4 + transMalePart; + xfNeg = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(xfPos); mother->add(trackerSRBPP4); mother->add(xfNeg); mother->add(trackerSRBPP4); //Endcap positiv - xfPos = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), transToInnerWall - CLHEP::Hep3Vector(trackerSREP1x/2., 1.5, zLengthB/2 + zLengthE/2) + trans2TSREP1 + transMalePart)); - xfNeg = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), - transToInnerWall + CLHEP::Hep3Vector(trackerSREP1x/2., -1.5, zLengthB/2 + zLengthE/2) + trans1TSREP1 + transMalePart)); + tmpVec = transToInnerWall - GeoTrf::Vector3D(trackerSREP1x/2., 1.5, zLengthB/2 + zLengthE/2) + trans2TSREP1 + transMalePart; + xfPos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); + tmpVec = - transToInnerWall + GeoTrf::Vector3D(trackerSREP1x/2., -1.5, zLengthB/2 + zLengthE/2) + trans1TSREP1 + transMalePart; + xfNeg = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(xfPos); mother->add(trackerSREPP1); mother->add(xfNeg); mother->add(trackerSREPP1); - xfPos = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), transToInnerWall - CLHEP::Hep3Vector(trackerSREP1x/2., 1.5, zLengthB/2 + zLengthE/2) + trans2TSREP2 + transMalePart)); - xfNeg = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), - transToInnerWall + CLHEP::Hep3Vector(trackerSREP1x/2., -1.5, zLengthB/2 + zLengthE/2) + trans1TSREP2 + transMalePart)); + tmpVec = transToInnerWall - GeoTrf::Vector3D(trackerSREP1x/2., 1.5, zLengthB/2 + zLengthE/2) + trans2TSREP2 + transMalePart; + xfPos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); + tmpVec = - transToInnerWall + GeoTrf::Vector3D(trackerSREP1x/2., -1.5, zLengthB/2 + zLengthE/2) + trans1TSREP2 + transMalePart; + xfNeg = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(xfPos); mother->add(trackerSREPP2); mother->add(xfNeg); mother->add(trackerSREPP2); - xfPos = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), transToInnerWall - CLHEP::Hep3Vector(trackerSREP1x/2., 1.5, zLengthB/2 + zLengthE/2) + trans2TSREP3 + transMalePart)); - xfNeg = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), - transToInnerWall + CLHEP::Hep3Vector(trackerSREP1x/2., -1.5, zLengthB/2 + zLengthE/2) + trans1TSREP3 + transMalePart)); + tmpVec = transToInnerWall - GeoTrf::Vector3D(trackerSREP1x/2., 1.5, zLengthB/2 + zLengthE/2) + trans2TSREP3 + transMalePart; + xfPos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); + tmpVec = - transToInnerWall + GeoTrf::Vector3D(trackerSREP1x/2., -1.5, zLengthB/2 + zLengthE/2) + trans1TSREP3 + transMalePart; + xfNeg = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(xfPos); mother->add(trackerSREPP3); mother->add(xfNeg); mother->add(trackerSREPP3); //Endcap negativ - - xfPos = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), transToInnerWall - CLHEP::Hep3Vector(trackerSREP1x/2., 1.5, - zLengthB/2 - zLengthE/2) + trans2TSREP1 + transMalePart)); - xfNeg = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), - transToInnerWall + CLHEP::Hep3Vector(trackerSREP1x/2., -1.5, - zLengthB/2 - zLengthE/2) + trans1TSREP1 + transMalePart)); + + tmpVec = transToInnerWall - GeoTrf::Vector3D(trackerSREP1x/2., 1.5, - zLengthB/2 - zLengthE/2) + trans2TSREP1 + transMalePart; + xfPos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); + tmpVec = - transToInnerWall + GeoTrf::Vector3D(trackerSREP1x/2., -1.5, - zLengthB/2 - zLengthE/2) + trans1TSREP1 + transMalePart; + xfNeg = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(xfPos); mother->add(trackerSREPP1); mother->add(xfNeg); mother->add(trackerSREPP1); - xfPos = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), transToInnerWall - CLHEP::Hep3Vector(trackerSREP1x/2., 1.5, - zLengthB/2 - zLengthE/2) + trans2TSREP2 + transMalePart)); - xfNeg = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), - transToInnerWall + CLHEP::Hep3Vector(trackerSREP1x/2., -1.5, - zLengthB/2 - zLengthE/2) + trans1TSREP2 + transMalePart)); + tmpVec = transToInnerWall - GeoTrf::Vector3D(trackerSREP1x/2., 1.5, - zLengthB/2 - zLengthE/2) + trans2TSREP2 + transMalePart; + xfPos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); + tmpVec = - transToInnerWall + GeoTrf::Vector3D(trackerSREP1x/2., -1.5, - zLengthB/2 - zLengthE/2) + trans1TSREP2 + transMalePart; + xfNeg = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(xfPos); mother->add(trackerSREPP2); mother->add(xfNeg); mother->add(trackerSREPP2); - xfPos = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), transToInnerWall - CLHEP::Hep3Vector(trackerSREP1x/2., 1.5, - zLengthB/2 - zLengthE/2) + trans2TSREP3 + transMalePart)); - xfNeg = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), - transToInnerWall + CLHEP::Hep3Vector(trackerSREP1x/2., -1.5, - zLengthB/2 - zLengthE/2) + trans1TSREP3 + transMalePart)); + tmpVec = transToInnerWall - GeoTrf::Vector3D(trackerSREP1x/2., 1.5, - zLengthB/2 - zLengthE/2) + trans2TSREP3 + transMalePart; + xfPos = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); + tmpVec = - transToInnerWall + GeoTrf::Vector3D(trackerSREP1x/2., -1.5, - zLengthB/2 - zLengthE/2) + trans1TSREP3 + transMalePart; + xfNeg = new GeoTransform(GeoTrf::Translate3D(tmpVec.x(),tmpVec.y(),tmpVec.z())); mother->add(xfPos); mother->add(trackerSREPP3); mother->add(xfNeg); @@ -544,18 +579,18 @@ void SupportRailFactory::create(GeoPhysVol *mother) // // Default(initial) values // - double RMAX_ID = 1150.0*CLHEP::mm -1.0*CLHEP::mm; //Some safety margin - double railLengthB = 1600.0*CLHEP::mm; - double railWidthB = 5.5*CLHEP::mm; - double railThickB = 34.7*CLHEP::mm; + double RMAX_ID = 1150.0*GeoModelKernelUnits::mm -1.0*GeoModelKernelUnits::mm; //Some safety margin + double railLengthB = 1600.0*GeoModelKernelUnits::mm; + double railWidthB = 5.5*GeoModelKernelUnits::mm; + double railThickB = 34.7*GeoModelKernelUnits::mm; // - double railLengthE = 2600.0*CLHEP::mm; - double railWidthE = 14.*CLHEP::mm; - double railThickE = 14.7*CLHEP::mm; + double railLengthE = 2600.0*GeoModelKernelUnits::mm; + double railWidthE = 14.*GeoModelKernelUnits::mm; + double railThickE = 14.7*GeoModelKernelUnits::mm; // - double suppLength = 6800.0*CLHEP::mm; - double suppWidth = 54.*CLHEP::mm; - double suppThick = 22.6*CLHEP::mm; + double suppLength = 6800.0*GeoModelKernelUnits::mm; + double suppWidth = 54.*GeoModelKernelUnits::mm; + double suppThick = 22.6*GeoModelKernelUnits::mm; // // Database // @@ -578,20 +613,20 @@ void SupportRailFactory::create(GeoPhysVol *mother) double epsilon = 0.01; // +Some safety margin - RMAX_ID = (*atls)[0]->getDouble("IDETOR")*CLHEP::cm; - railLengthB = (*railrec)[0]->getDouble("LENGTHB")*CLHEP::mm; - railWidthB = (*railrec)[0]->getDouble("WIDTHB")*CLHEP::mm; - railThickB = (*railrec)[0]->getDouble("THICKB")*CLHEP::mm; + RMAX_ID = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; + railLengthB = (*railrec)[0]->getDouble("LENGTHB")*GeoModelKernelUnits::mm; + railWidthB = (*railrec)[0]->getDouble("WIDTHB")*GeoModelKernelUnits::mm; + railThickB = (*railrec)[0]->getDouble("THICKB")*GeoModelKernelUnits::mm; //------------ Limited by EP ExternalShell - railLengthE = (*endplate)[0]->getDouble("ZSTART")*CLHEP::mm - +(*endplate)[0]->getDouble("ZSHIFT")*CLHEP::mm - +(*endplate)[0]->getDouble("ZGAP")*CLHEP::mm - railLengthB/2.; - railWidthE = (*railrec)[0]->getDouble("WIDTHE")*CLHEP::mm; - railThickE = (*railrec)[0]->getDouble("THICKE")*CLHEP::mm; + railLengthE = (*endplate)[0]->getDouble("ZSTART")*GeoModelKernelUnits::mm + +(*endplate)[0]->getDouble("ZSHIFT")*GeoModelKernelUnits::mm + +(*endplate)[0]->getDouble("ZGAP")*GeoModelKernelUnits::mm - railLengthB/2.; + railWidthE = (*railrec)[0]->getDouble("WIDTHE")*GeoModelKernelUnits::mm; + railThickE = (*railrec)[0]->getDouble("THICKE")*GeoModelKernelUnits::mm; suppLength = railLengthB + 2.*railLengthE; - suppWidth = (*railrec)[0]->getDouble("WIDTHSUP")*CLHEP::mm; - suppThick = (*railrec)[0]->getDouble("THICKSUP")*CLHEP::mm; + suppWidth = (*railrec)[0]->getDouble("WIDTHSUP")*GeoModelKernelUnits::mm; + suppThick = (*railrec)[0]->getDouble("THICKSUP")*GeoModelKernelUnits::mm; // // To avoid rail corner outside ID envelope RMAX_ID = sqrt(RMAX_ID*RMAX_ID-suppWidth*suppWidth/4.)-epsilon; @@ -616,43 +651,43 @@ void SupportRailFactory::create(GeoPhysVol *mother) // double safety=0.01; // to provide safety gap for G4 - CLHEP::Hep3Vector railBpos1( ( RMAX_ID-suppThick-railThickB/2.-safety), 0., 0.); - CLHEP::Hep3Vector railBpos2( (-RMAX_ID+suppThick+railThickB/2.+safety), 0., 0.); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railBpos1)); + GeoTrf::Translate3D railBpos1( ( RMAX_ID-suppThick-railThickB/2.-safety), 0., 0.); + GeoTrf::Translate3D railBpos2( (-RMAX_ID+suppThick+railThickB/2.+safety), 0., 0.); + pos = new GeoTransform(railBpos1); mother->add(pos); mother->add(railBarrelPhys); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railBpos2)); + pos = new GeoTransform(railBpos2); mother->add(pos); mother->add(railBarrelPhys); // // Endcap steel rails // - CLHEP::Hep3Vector railEpos1( ( RMAX_ID-suppThick-railThickE/2.-safety), 0., (railLengthB+railLengthE)/2.); - CLHEP::Hep3Vector railEpos2( (-RMAX_ID+suppThick+railThickE/2.+safety), 0., (railLengthB+railLengthE)/2.); - CLHEP::Hep3Vector railEpos3( ( RMAX_ID-suppThick-railThickE/2.-safety), 0.,-(railLengthB+railLengthE)/2.); - CLHEP::Hep3Vector railEpos4( (-RMAX_ID+suppThick+railThickE/2.+safety), 0.,-(railLengthB+railLengthE)/2.); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railEpos1)); + GeoTrf::Translate3D railEpos1( ( RMAX_ID-suppThick-railThickE/2.-safety), 0., (railLengthB+railLengthE)/2.); + GeoTrf::Translate3D railEpos2( (-RMAX_ID+suppThick+railThickE/2.+safety), 0., (railLengthB+railLengthE)/2.); + GeoTrf::Translate3D railEpos3( ( RMAX_ID-suppThick-railThickE/2.-safety), 0.,-(railLengthB+railLengthE)/2.); + GeoTrf::Translate3D railEpos4( (-RMAX_ID+suppThick+railThickE/2.+safety), 0.,-(railLengthB+railLengthE)/2.); + pos = new GeoTransform(railEpos1); mother->add(pos); mother->add(railEndcapPhys); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railEpos2)); + pos = new GeoTransform(railEpos2); mother->add(pos); mother->add(railEndcapPhys); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railEpos3)); + pos = new GeoTransform(railEpos3); mother->add(pos); mother->add(railEndcapPhys); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railEpos4)); + pos = new GeoTransform(railEpos4); mother->add(pos); mother->add(railEndcapPhys); // // Rail supports // - CLHEP::Hep3Vector suppPos1( ( RMAX_ID-suppThick/2.), 0., 0.); - CLHEP::Hep3Vector suppPos2( (-RMAX_ID+suppThick/2.), 0., 0.); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),suppPos1)); + GeoTrf::Translate3D suppPos1( ( RMAX_ID-suppThick/2.), 0., 0.); + GeoTrf::Translate3D suppPos2( (-RMAX_ID+suppThick/2.), 0., 0.); + pos = new GeoTransform(suppPos1); mother->add(pos); mother->add(supportPhys); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),suppPos2)); + pos = new GeoTransform(suppPos2); mother->add(pos); mother->add(supportPhys); diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactoryFS.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactoryFS.cxx index 1020cb4e2acc25f8971f2a1aebf5aa09623fa563..2b51616c3c2a2d1c387efd22b8eb23bbc5fb3540 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactoryFS.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/SupportRailFactoryFS.cxx @@ -5,6 +5,8 @@ #include "InDetServMatGeoModel/SupportRailFactoryFS.h" // GeoModel includes +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoTube.h" @@ -70,18 +72,18 @@ void SupportRailFactoryFS::create(GeoPhysVol *motherP,GeoPhysVol *motherM) // // Default(initial) values // - double RMAX_ID = 1150.0*CLHEP::mm -1.0*CLHEP::mm; //Some safety margin - double railLengthB = 1600.0*CLHEP::mm; - double railWidthB = 5.5*CLHEP::mm; - double railThickB = 34.7*CLHEP::mm; + double RMAX_ID = 1150.0*GeoModelKernelUnits::mm -1.0*GeoModelKernelUnits::mm; //Some safety margin + double railLengthB = 1600.0*GeoModelKernelUnits::mm; + double railWidthB = 5.5*GeoModelKernelUnits::mm; + double railThickB = 34.7*GeoModelKernelUnits::mm; // - double railLengthE = 2600.0*CLHEP::mm; - double railWidthE = 14.*CLHEP::mm; - double railThickE = 14.7*CLHEP::mm; + double railLengthE = 2600.0*GeoModelKernelUnits::mm; + double railWidthE = 14.*GeoModelKernelUnits::mm; + double railThickE = 14.7*GeoModelKernelUnits::mm; // - double suppLength = 6800.0*CLHEP::mm; - double suppWidth = 54.*CLHEP::mm; - double suppThick = 22.6*CLHEP::mm; + double suppLength = 6800.0*GeoModelKernelUnits::mm; + double suppWidth = 54.*GeoModelKernelUnits::mm; + double suppThick = 22.6*GeoModelKernelUnits::mm; // // Database // @@ -104,20 +106,20 @@ void SupportRailFactoryFS::create(GeoPhysVol *motherP,GeoPhysVol *motherM) double epsilon = 0.01; // +Some safety margin - RMAX_ID = (*atls)[0]->getDouble("IDETOR")*CLHEP::cm; - railLengthB = (*railrec)[0]->getDouble("LENGTHB")*CLHEP::mm; - railWidthB = (*railrec)[0]->getDouble("WIDTHB")*CLHEP::mm; - railThickB = (*railrec)[0]->getDouble("THICKB")*CLHEP::mm; + RMAX_ID = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; + railLengthB = (*railrec)[0]->getDouble("LENGTHB")*GeoModelKernelUnits::mm; + railWidthB = (*railrec)[0]->getDouble("WIDTHB")*GeoModelKernelUnits::mm; + railThickB = (*railrec)[0]->getDouble("THICKB")*GeoModelKernelUnits::mm; //------------ Limited by EP ExternalShell - railLengthE = (*endplate)[0]->getDouble("ZSTART")*CLHEP::mm - +(*endplate)[0]->getDouble("ZSHIFT")*CLHEP::mm - +(*endplate)[0]->getDouble("ZGAP")*CLHEP::mm - railLengthB*0.5; - railWidthE = (*railrec)[0]->getDouble("WIDTHE")*CLHEP::mm; - railThickE = (*railrec)[0]->getDouble("THICKE")*CLHEP::mm; + railLengthE = (*endplate)[0]->getDouble("ZSTART")*GeoModelKernelUnits::mm + +(*endplate)[0]->getDouble("ZSHIFT")*GeoModelKernelUnits::mm + +(*endplate)[0]->getDouble("ZGAP")*GeoModelKernelUnits::mm - railLengthB*0.5; + railWidthE = (*railrec)[0]->getDouble("WIDTHE")*GeoModelKernelUnits::mm; + railThickE = (*railrec)[0]->getDouble("THICKE")*GeoModelKernelUnits::mm; suppLength = railLengthB + 2.*railLengthE; - suppWidth = (*railrec)[0]->getDouble("WIDTHSUP")*CLHEP::mm; - suppThick = (*railrec)[0]->getDouble("THICKSUP")*CLHEP::mm; + suppWidth = (*railrec)[0]->getDouble("WIDTHSUP")*GeoModelKernelUnits::mm; + suppThick = (*railrec)[0]->getDouble("THICKSUP")*GeoModelKernelUnits::mm; // // To avoid rail corner outside ID envelope RMAX_ID = sqrt(RMAX_ID*RMAX_ID-suppWidth*suppWidth/4.)-epsilon; @@ -142,59 +144,59 @@ void SupportRailFactoryFS::create(GeoPhysVol *motherP,GeoPhysVol *motherM) // double safety=0.01; // to provide safety gap for G4 - CLHEP::Hep3Vector railBpos1P( ( RMAX_ID-suppThick-railThickB*0.5-safety), 0., railLengthB*0.25); - CLHEP::Hep3Vector railBpos2P( (-RMAX_ID+suppThick+railThickB*0.5+safety), 0., railLengthB*0.25); - CLHEP::Hep3Vector railBpos1M( ( RMAX_ID-suppThick-railThickB*0.5-safety), 0.,-railLengthB*0.25); - CLHEP::Hep3Vector railBpos2M( (-RMAX_ID+suppThick+railThickB*0.5+safety), 0.,-railLengthB*0.25); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railBpos1P)); + GeoTrf::Translate3D railBpos1P( ( RMAX_ID-suppThick-railThickB*0.5-safety), 0., railLengthB*0.25); + GeoTrf::Translate3D railBpos2P( (-RMAX_ID+suppThick+railThickB*0.5+safety), 0., railLengthB*0.25); + GeoTrf::Translate3D railBpos1M( ( RMAX_ID-suppThick-railThickB*0.5-safety), 0.,-railLengthB*0.25); + GeoTrf::Translate3D railBpos2M( (-RMAX_ID+suppThick+railThickB*0.5+safety), 0.,-railLengthB*0.25); + pos = new GeoTransform(railBpos1P); motherP->add(pos); motherP->add(railBarrelPhys); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railBpos2P)); + pos = new GeoTransform(railBpos2P); motherP->add(pos); motherP->add(railBarrelPhys); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railBpos1M)); + pos = new GeoTransform(railBpos1M); motherM->add(pos); motherM->add(railBarrelPhys); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railBpos2M)); + pos = new GeoTransform(railBpos2M); motherM->add(pos); motherM->add(railBarrelPhys); // // Endcap steel rails // - CLHEP::Hep3Vector railEpos1( ( RMAX_ID-suppThick-railThickE*0.5-safety), 0., (railLengthB+railLengthE)*0.5); - CLHEP::Hep3Vector railEpos2( (-RMAX_ID+suppThick+railThickE*0.5+safety), 0., (railLengthB+railLengthE)*0.5); - CLHEP::Hep3Vector railEpos3( ( RMAX_ID-suppThick-railThickE*0.5-safety), 0.,-(railLengthB+railLengthE)*0.5); - CLHEP::Hep3Vector railEpos4( (-RMAX_ID+suppThick+railThickE*0.5+safety), 0.,-(railLengthB+railLengthE)*0.5); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railEpos1)); + GeoTrf::Translate3D railEpos1( ( RMAX_ID-suppThick-railThickE*0.5-safety), 0., (railLengthB+railLengthE)*0.5); + GeoTrf::Translate3D railEpos2( (-RMAX_ID+suppThick+railThickE*0.5+safety), 0., (railLengthB+railLengthE)*0.5); + GeoTrf::Translate3D railEpos3( ( RMAX_ID-suppThick-railThickE*0.5-safety), 0.,-(railLengthB+railLengthE)*0.5); + GeoTrf::Translate3D railEpos4( (-RMAX_ID+suppThick+railThickE*0.5+safety), 0.,-(railLengthB+railLengthE)*0.5); + pos = new GeoTransform(railEpos1); motherP->add(pos); motherP->add(railEndcapPhys); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railEpos2)); + pos = new GeoTransform(railEpos2); motherP->add(pos); motherP->add(railEndcapPhys); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railEpos3)); + pos = new GeoTransform(railEpos3); motherM->add(pos); motherM->add(railEndcapPhys); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),railEpos4)); + pos = new GeoTransform(railEpos4); motherM->add(pos); motherM->add(railEndcapPhys); // // Rail supports // - CLHEP::Hep3Vector suppPos1P( ( RMAX_ID-suppThick*0.5), 0., suppLength*0.25); - CLHEP::Hep3Vector suppPos2P( (-RMAX_ID+suppThick*0.5), 0., suppLength*0.25); - CLHEP::Hep3Vector suppPos1M( ( RMAX_ID-suppThick*0.5), 0.,-suppLength*0.25); - CLHEP::Hep3Vector suppPos2M( (-RMAX_ID+suppThick*0.5), 0.,-suppLength*0.25); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),suppPos1P)); + GeoTrf::Translate3D suppPos1P( ( RMAX_ID-suppThick*0.5), 0., suppLength*0.25); + GeoTrf::Translate3D suppPos2P( (-RMAX_ID+suppThick*0.5), 0., suppLength*0.25); + GeoTrf::Translate3D suppPos1M( ( RMAX_ID-suppThick*0.5), 0.,-suppLength*0.25); + GeoTrf::Translate3D suppPos2M( (-RMAX_ID+suppThick*0.5), 0.,-suppLength*0.25); + pos = new GeoTransform(suppPos1P); motherP->add(pos); motherP->add(supportPhys); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),suppPos2P)); + pos = new GeoTransform(suppPos2P); motherP->add(pos); motherP->add(supportPhys); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),suppPos1M)); + pos = new GeoTransform(suppPos1M); motherM->add(pos); motherM->add(supportPhys); - pos = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),suppPos2M)); + pos = new GeoTransform(suppPos2M); motherM->add(pos); motherM->add(supportPhys); diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactory.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactory.cxx index 0506fc6bd2173f7c41aead92d3df9653c1c98fca..f4738c0bd9b9c225c7b4bf6ea60b81f824288616 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactory.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactory.cxx @@ -5,6 +5,8 @@ #include "InDetServMatGeoModel/TRT_ServMatFactory.h" // GeoModel includes +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoTube.h" @@ -77,11 +79,11 @@ void TRT_ServMatFactory::create(GeoPhysVol *mother) m_materialManager->addScalingTable(scalingTable); //VK 10/09/2005 Construct a gap for rails - double outROfIDet = (*atls)[0]->getDouble("IDETOR")*CLHEP::cm; - double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*CLHEP::cm; + double outROfIDet = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; + double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; //VK 26.03.2007 Construct a gap for SquirrelCage ribbon - double rminInt = (*cage)[0]->getDouble("RINGRMIN")*CLHEP::mm; + double rminInt = (*cage)[0]->getDouble("RINGRMIN")*GeoModelKernelUnits::mm; //created by Adam Agocs IRDBRecordset_ptr commonParameters = rdbAccessSvc()->getRecordsetPtr("IDDetRailCommon",indetVersionKey.tag(), indetVersionKey.node()); @@ -118,7 +120,7 @@ void TRT_ServMatFactory::create(GeoPhysVol *mother) const GeoShape* serviceTube = serviceTubeTmp; - if( tubeHelper.volData().maxRadius() > rminInt && tubeHelper.volData().phiDelta() > 359.9*CLHEP::degree) + if( tubeHelper.volData().maxRadius() > rminInt && tubeHelper.volData().phiDelta() > 359.9*GeoModelKernelUnits::degree) { // Subtract RailGap out of services serviceTube = (GeoShape*) & (*serviceTubeTmp).subtract(*railGap2).subtract(*railGap1); @@ -133,12 +135,13 @@ void TRT_ServMatFactory::create(GeoPhysVol *mother) if (tubeHelper.name() == "FwdServ") { - GeoTransform *xform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), CLHEP::Hep3Vector(0, 0, tubeHelper.volData().zMid() ) )); - GeoTransform *xform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(), - CLHEP::Hep3Vector(0, 0, tubeHelper.volData().zMid() ) )); - mother->add(xform1); mother->add(servPhys); mother->add(xform2); mother->add(servPhys); + GeoTransform *xform1 = new GeoTransform(GeoTrf::Translate3D(0, 0, tubeHelper.volData().zMid() )); + GeoTransform *xform2 = new GeoTransform(GeoTrf::Translate3D(0, 0, -tubeHelper.volData().zMid() )); + mother->add(xform1); mother->add(servPhys); mother->add(xform2); mother->add(servPhys); + } + else { + tubeHelper.placeVolume(mother, servPhys); } - else - tubeHelper.placeVolume(mother, servPhys); } railGap1->unref(); railGap2->unref(); @@ -162,8 +165,8 @@ void TRT_ServMatFactory::create(GeoPhysVol *mother) m_materialManager->addScalingTable(scalingTable); //VK 10/09/2005 Construct a gap for rails - double outROfIDet = (*atls)[0]->getDouble("IDETOR")*CLHEP::cm; - double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*CLHEP::cm; + double outROfIDet = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; + double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; double minRofGap = 1050.0; double phiWid=70./outROfIDet; double safetyGap=1.; const GeoShape* railGap1=new GeoTubs( minRofGap, outROfIDet+safetyGap ,endZOfIDet+safetyGap , @@ -176,10 +179,10 @@ void TRT_ServMatFactory::create(GeoPhysVol *mother) //VK 26.03.2007 Construct a gap for SquirrelCage ribbon - double rminInt = (*cage)[0]->getDouble("RINGRMIN")*CLHEP::mm; - double ringThick = (*cage)[0]->getDouble("RINGTHICK")*CLHEP::mm; - double ringGap = (*cage)[0]->getDouble("RINGGAP")*CLHEP::mm; - double ribWid = (*cage)[0]->getDouble("RIBWIDTH")*CLHEP::mm; + double rminInt = (*cage)[0]->getDouble("RINGRMIN")*GeoModelKernelUnits::mm; + double ringThick = (*cage)[0]->getDouble("RINGTHICK")*GeoModelKernelUnits::mm; + double ringGap = (*cage)[0]->getDouble("RINGGAP")*GeoModelKernelUnits::mm; + double ribWid = (*cage)[0]->getDouble("RIBWIDTH")*GeoModelKernelUnits::mm; double phiWidSQ=ribWid/(rminInt+ringThick+ringGap/2.); @@ -211,7 +214,7 @@ void TRT_ServMatFactory::create(GeoPhysVol *mother) const GeoShape* ribSup2 = new GeoTubs( tubeHelper.volData().rmin(), tubeHelper.volData().rmax(), 0.5*tubeHelper.volData().length(), -phiWidSQ/2.+M_PI, phiWidSQ); serviceTube = (GeoShape*) & (*serviceTubeTmp).subtract(*ribSup1).subtract(*ribSup2); - } else if( tubeHelper.volData().maxRadius() > minRofGap && tubeHelper.volData().phiDelta() > 359.9*CLHEP::degree) { + } else if( tubeHelper.volData().maxRadius() > minRofGap && tubeHelper.volData().phiDelta() > 359.9*GeoModelKernelUnits::degree) { // Subtract RailGap out of services serviceTube = (GeoShape*) & (*serviceTubeTmp).subtract(*railGap2).subtract(*railGap1); } diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC2.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC2.cxx index 9d63a9e75ecd2f65bf2d13e2dd6c35dacab981f5..51e16b5d09928e4b67c32487fecfb432764ee244 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC2.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC2.cxx @@ -5,6 +5,8 @@ #include "InDetServMatGeoModel/TRT_ServMatFactoryDC2.h" // GeoModel includes +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoTube.h" @@ -73,10 +75,10 @@ void TRT_ServMatFactoryDC2::create(GeoPhysVol *mother) for (int ii=0; ii<NUMBEROFPANEL; ii++) { const GeoMaterial* cylMat = m_materialManager->getMaterial("trt::PatchOut"); - double rmin = (*ipan)[ii]->getFloat("RMIN")*CLHEP::cm; - double rmax = (*ipan)[ii]->getFloat("RMAX")*CLHEP::cm; - double zmin = (*ipan)[ii]->getFloat("ZMIN")*CLHEP::cm; - double zmax = (*ipan)[ii]->getFloat("ZMAX")*CLHEP::cm; + double rmin = (*ipan)[ii]->getFloat("RMIN")*GeoModelKernelUnits::cm; + double rmax = (*ipan)[ii]->getFloat("RMAX")*GeoModelKernelUnits::cm; + double zmin = (*ipan)[ii]->getFloat("ZMIN")*GeoModelKernelUnits::cm; + double zmax = (*ipan)[ii]->getFloat("ZMAX")*GeoModelKernelUnits::cm; double halflength = (zmax-zmin)/2.-2*epsilon; double zpos = zmin + halflength+2*epsilon; @@ -88,10 +90,10 @@ void TRT_ServMatFactoryDC2::create(GeoPhysVol *mother) const GeoLogVol* ServLog = new GeoLogVol(logName,serviceTube,cylMat); GeoVPhysVol* ServPhys = new GeoPhysVol(ServLog); // place two - CLHEP::Hep3Vector servpos1(0.,0.,zpos); - CLHEP::Hep3Vector servpos2(0.,0.,-zpos); - GeoTransform *xform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),servpos1)); - GeoTransform *xform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),servpos2)); + GeoTrf::Translate3D servpos1(0.,0.,zpos); + GeoTrf::Translate3D servpos2(0.,0.,-zpos); + GeoTransform *xform1 = new GeoTransform(servpos1); + GeoTransform *xform2 = new GeoTransform(servpos2); mother->add(xform1); mother->add(ServPhys); mother->add(xform2); @@ -105,15 +107,15 @@ void TRT_ServMatFactoryDC2::create(GeoPhysVol *mother) std::ostringstream o; o << ii; std::string logName = "TrtInel"+o.str(); - double halflength = ((*inel)[ii]->getFloat("ZMAX")-(*inel)[ii]->getFloat("ZMIN"))/2.*CLHEP::cm; + double halflength = ((*inel)[ii]->getFloat("ZMAX")-(*inel)[ii]->getFloat("ZMIN"))/2.*GeoModelKernelUnits::cm; int volType = (int) (*inel)[ii]->getFloat("VOLTYP"); const GeoShape* serviceTube = createShape(volType, - (*inel)[ii]->getFloat("RMIN1")*CLHEP::cm, - (*inel)[ii]->getFloat("RMAX1")*CLHEP::cm, + (*inel)[ii]->getFloat("RMIN1")*GeoModelKernelUnits::cm, + (*inel)[ii]->getFloat("RMAX1")*GeoModelKernelUnits::cm, halflength, - (*inel)[ii]->getFloat("RMIN2")*CLHEP::cm, - (*inel)[ii]->getFloat("RMAX2")*CLHEP::cm); + (*inel)[ii]->getFloat("RMIN2")*GeoModelKernelUnits::cm, + (*inel)[ii]->getFloat("RMAX2")*GeoModelKernelUnits::cm); // create the material... // In AGE the radiation length is specified and from that the density is // calculated assuming the material is C. I do the same here for now but @@ -130,21 +132,21 @@ void TRT_ServMatFactoryDC2::create(GeoPhysVol *mother) cylMat = createMaterial(nameStr.str(), volType, fractionRL, - (*inel)[ii]->getFloat("RMIN1")*CLHEP::cm, - (*inel)[ii]->getFloat("RMAX1")*CLHEP::cm, + (*inel)[ii]->getFloat("RMIN1")*GeoModelKernelUnits::cm, + (*inel)[ii]->getFloat("RMAX1")*GeoModelKernelUnits::cm, halflength, - (*inel)[ii]->getFloat("RMIN2")*CLHEP::cm, - (*inel)[ii]->getFloat("RMAX2")*CLHEP::cm); + (*inel)[ii]->getFloat("RMIN2")*GeoModelKernelUnits::cm, + (*inel)[ii]->getFloat("RMAX2")*GeoModelKernelUnits::cm); } const GeoLogVol* ServLog = new GeoLogVol(logName,serviceTube,cylMat); GeoVPhysVol* ServPhys = new GeoPhysVol(ServLog); - double zpos = ((*inel)[ii]->getFloat("ZMAX")+(*inel)[ii]->getFloat("ZMIN"))/2.*CLHEP::cm+epsilon; + double zpos = ((*inel)[ii]->getFloat("ZMAX")+(*inel)[ii]->getFloat("ZMIN"))/2.*GeoModelKernelUnits::cm+epsilon; // place two - CLHEP::Hep3Vector servpos1(0.,0.,zpos); - CLHEP::Hep3Vector servpos2(0.,0.,-zpos); - GeoTransform *xform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),servpos1)); - GeoTransform *xform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),servpos2)); + GeoTrf::Translate3D servpos1(0.,0.,zpos); + GeoTrf::Translate3D servpos2(0.,0.,-zpos); + GeoTransform *xform1 = new GeoTransform(servpos1); + GeoTransform *xform2 = new GeoTransform(servpos2); mother->add(xform1); mother->add(ServPhys); mother->add(xform2); @@ -163,7 +165,7 @@ const GeoShape* TRT_ServMatFactoryDC2::createShape(int volType, double rmax2=0.) { - const double epsilon = 0.001*CLHEP::mm; + const double epsilon = 0.001*GeoModelKernelUnits::mm; enum VOLTYPE{Tube=1, Cone, ICone}; const GeoShape* IDShape = 0; if(volType == Tube) { diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC3.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC3.cxx index bd83601d73d0fd1e3a48ccc68d566abf88ca7a19..8ea66da54eda33bea61eba76cdf592679b49967a 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC3.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryDC3.cxx @@ -5,6 +5,8 @@ #include "InDetServMatGeoModel/TRT_ServMatFactoryDC3.h" // GeoModel includes +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoTube.h" @@ -61,8 +63,8 @@ void TRT_ServMatFactoryDC3::create(GeoPhysVol *mother) //VVK 10/09/2005 Construct a gap for rails - double outROfIDet = (*atls)[0]->getDouble("IDETOR")*CLHEP::cm; - double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*CLHEP::cm; + double outROfIDet = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; + double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; double minRofGap = 1050.0; double phiWid=70./outROfIDet; double safetyGap=1.; const GeoShape* railGap1=new GeoTubs( minRofGap, outROfIDet+safetyGap ,endZOfIDet+safetyGap , @@ -76,10 +78,10 @@ void TRT_ServMatFactoryDC3::create(GeoPhysVol *mother) for (int ii=0; ii<NUMBEROFPANEL; ii++) { const GeoMaterial* cylMat = materialManager()->getMaterial("trt::PatchOut"); - double rmin = (*ipan)[ii]->getFloat("RMIN")*CLHEP::cm; - double rmax = (*ipan)[ii]->getFloat("RMAX")*CLHEP::cm; - double zmin = (*ipan)[ii]->getFloat("ZMIN")*CLHEP::cm; - double zmax = (*ipan)[ii]->getFloat("ZMAX")*CLHEP::cm; + double rmin = (*ipan)[ii]->getFloat("RMIN")*GeoModelKernelUnits::cm; + double rmax = (*ipan)[ii]->getFloat("RMAX")*GeoModelKernelUnits::cm; + double zmin = (*ipan)[ii]->getFloat("ZMIN")*GeoModelKernelUnits::cm; + double zmax = (*ipan)[ii]->getFloat("ZMAX")*GeoModelKernelUnits::cm; double halflength = (zmax-zmin)/2.-2*epsilon; double zpos = zmin + halflength+2*epsilon; @@ -102,10 +104,10 @@ void TRT_ServMatFactoryDC3::create(GeoPhysVol *mother) GeoVPhysVol* ServPhys = new GeoPhysVol(ServLog); // place two - CLHEP::Hep3Vector servpos1(0.,0.,zpos); - CLHEP::Hep3Vector servpos2(0.,0.,-zpos); - GeoTransform *xform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),servpos1)); - GeoTransform *xform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),servpos2)); + GeoTrf::Translate3D servpos1(0.,0.,zpos); + GeoTrf::Translate3D servpos2(0.,0.,-zpos); + GeoTransform *xform1 = new GeoTransform(servpos1); + GeoTransform *xform2 = new GeoTransform(servpos2); mother->add(xform1); mother->add(ServPhys); mother->add(xform2); @@ -131,12 +133,12 @@ void TRT_ServMatFactoryDC3::create(GeoPhysVol *mother) o << irecold++; std::string logName = "TrtInel"+o.str(); int volType = (int) (*inel)[ii]->getFloat("VOLTYP"); - double RMIN1=(*inel)[ii]->getFloat("RMIN1")*CLHEP::cm; - double RMAX1=(*inel)[ii]->getFloat("RMAX1")*CLHEP::cm; - double RMIN2=(*inel)[ii]->getFloat("RMIN2")*CLHEP::cm; - double RMAX2=(*inel)[ii]->getFloat("RMAX2")*CLHEP::cm; - double ZMAX= (*inel)[ii]->getFloat("ZMAX")*CLHEP::cm; - double ZMIN= (*inel)[ii]->getFloat("ZMIN")*CLHEP::cm; + double RMIN1=(*inel)[ii]->getFloat("RMIN1")*GeoModelKernelUnits::cm; + double RMAX1=(*inel)[ii]->getFloat("RMAX1")*GeoModelKernelUnits::cm; + double RMIN2=(*inel)[ii]->getFloat("RMIN2")*GeoModelKernelUnits::cm; + double RMAX2=(*inel)[ii]->getFloat("RMAX2")*GeoModelKernelUnits::cm; + double ZMAX= (*inel)[ii]->getFloat("ZMAX")*GeoModelKernelUnits::cm; + double ZMIN= (*inel)[ii]->getFloat("ZMIN")*GeoModelKernelUnits::cm; //VK Change of TRT barrel cables definition // if(ii == 3) { RMIN1 += 0; RMAX1=RMIN1+0.589; ZMIN=950.; ZMAX=3250;} @@ -182,10 +184,10 @@ void TRT_ServMatFactoryDC3::create(GeoPhysVol *mother) GeoVPhysVol* ServPhys = new GeoPhysVol(ServLog); double zpos = (ZMAX+ZMIN)/2.+epsilon; // place two - CLHEP::Hep3Vector servpos1(0.,0.,zpos); - CLHEP::Hep3Vector servpos2(0.,0.,-zpos); - GeoTransform *xform1 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),servpos1)); - GeoTransform *xform2 = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),servpos2)); + GeoTrf::Translate3D servpos1(0.,0.,zpos); + GeoTrf::Translate3D servpos2(0.,0.,-zpos); + GeoTransform *xform1 = new GeoTransform(servpos1); + GeoTransform *xform2 = new GeoTransform(servpos2); mother->add(xform1); mother->add(ServPhys); mother->add(xform2); @@ -205,7 +207,7 @@ void TRT_ServMatFactoryDC3::create(GeoPhysVol *mother) double rmax2=0.) { - const double epsilon = 0.001*CLHEP::mm; + const double epsilon = 0.001*GeoModelKernelUnits::mm; enum VOLTYPE{Tube=1, Cone, ICone}; const GeoShape* IDShape = 0; if(volType == Tube) { diff --git a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryFS.cxx b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryFS.cxx index 60ce650f9c974c107d3949c09a5f42d2dff50ef7..342c02f44fde239444ce41f9aebfdaec1cddd9d6 100755 --- a/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryFS.cxx +++ b/InnerDetector/InDetDetDescr/InDetServMatGeoModel/src/TRT_ServMatFactoryFS.cxx @@ -75,8 +75,8 @@ void TRT_ServMatFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) //VK 10/09/2005 Construct a gap for rails - double outROfIDet = (*atls)[0]->getDouble("IDETOR")*CLHEP::cm; - double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*CLHEP::cm; + double outROfIDet = (*atls)[0]->getDouble("IDETOR")*GeoModelKernelUnits::cm; + double endZOfIDet = (*atls)[0]->getDouble("IDETZMX")*GeoModelKernelUnits::cm; double minRofGap = 1050.0; double phiWid=70./outROfIDet; double safetyGap=1.; const GeoShape* railGap1=new GeoTubs( minRofGap, outROfIDet+safetyGap ,endZOfIDet+safetyGap , @@ -89,10 +89,10 @@ void TRT_ServMatFactoryFS::create(GeoPhysVol *motherP, GeoPhysVol *motherM) //VK 26.03.2007 Construct a gap for SquirrelCage ribbon - double rminInt = (*cage)[0]->getDouble("RINGRMIN")*CLHEP::mm; - double ringThick = (*cage)[0]->getDouble("RINGTHICK")*CLHEP::mm; - double ringGap = (*cage)[0]->getDouble("RINGGAP")*CLHEP::mm; - double ribWid = (*cage)[0]->getDouble("RIBWIDTH")*CLHEP::mm; + double rminInt = (*cage)[0]->getDouble("RINGRMIN")*GeoModelKernelUnits::mm; + double ringThick = (*cage)[0]->getDouble("RINGTHICK")*GeoModelKernelUnits::mm; + double ringGap = (*cage)[0]->getDouble("RINGGAP")*GeoModelKernelUnits::mm; + double ribWid = (*cage)[0]->getDouble("RIBWIDTH")*GeoModelKernelUnits::mm; double phiWidSQ=ribWid/(rminInt+ringThick+ringGap/2.); diff --git a/InnerDetector/InDetDetDescr/InDetTrackingGeometry/CMakeLists.txt b/InnerDetector/InDetDetDescr/InDetTrackingGeometry/CMakeLists.txt index 5b643f28a1e31a746552919905405cf24bd7cdba..f049c6b8419c75964b4cd33eeca30f9e24eeb56c 100644 --- a/InnerDetector/InDetDetDescr/InDetTrackingGeometry/CMakeLists.txt +++ b/InnerDetector/InDetDetDescr/InDetTrackingGeometry/CMakeLists.txt @@ -18,7 +18,6 @@ atlas_depends_on_subdirs( PUBLIC AtlasGeometryCommon/BeamPipeGeoModel AtlasGeometryCommon/SubDetectorEnvelopes Control/StoreGate - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/Identifier InnerDetector/InDetDetDescr/InDetReadoutGeometry Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv @@ -29,13 +28,14 @@ atlas_depends_on_subdirs( PUBLIC find_package( Boost COMPONENTS filesystem thread system ) find_package( Eigen ) find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( InDetTrackingGeometry src/*.cxx src/components/*.cxx INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps GeoPrimitives GaudiKernel InDetIdentifier TrkDetDescrInterfaces TrkDetDescrUtils TrkGeometry BeamPipeGeoModelLib StoreGateLib SGtests GeoModelKernel Identifier InDetReadoutGeometry TrkDetDescrGeoModelCnv TrkSurfaces TrkVolumes ) + LINK_LIBRARIES ${Boost_LIBRARIES} ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaBaseComps GeoPrimitives GaudiKernel InDetIdentifier TrkDetDescrInterfaces TrkDetDescrUtils TrkGeometry BeamPipeGeoModelLib StoreGateLib SGtests Identifier InDetReadoutGeometry TrkDetDescrGeoModelCnv TrkSurfaces TrkVolumes ) # Install files from the package: atlas_install_headers( InDetTrackingGeometry ) diff --git a/InnerDetector/InDetDetDescr/InDetTrackingGeometry/src/BeamPipeBuilder.cxx b/InnerDetector/InDetDetDescr/InDetTrackingGeometry/src/BeamPipeBuilder.cxx index 2527cf4616a3ae7da027d2a38d81888889432f1f..b0f843b2a3d567d0dce304c1f15c563ef881748e 100755 --- a/InnerDetector/InDetDetDescr/InDetTrackingGeometry/src/BeamPipeBuilder.cxx +++ b/InnerDetector/InDetDetDescr/InDetTrackingGeometry/src/BeamPipeBuilder.cxx @@ -36,7 +36,7 @@ InDet::BeamPipeBuilder::BeamPipeBuilder(const std::string& t, const std::string& m_beamPipeOffsetX(0.*Gaudi::Units::mm), m_beamPipeOffsetY(0.*Gaudi::Units::mm), m_beamPipeRadius(33.1*Gaudi::Units::mm), - m_beamPipeHalflength(2.7*CLHEP::m), + m_beamPipeHalflength(2.7*Gaudi::Units::m), m_beamPipeThickness(1.*Gaudi::Units::mm), m_beamPipeX0(352.8*Gaudi::Units::mm), m_beamPipeL0(407.*Gaudi::Units::mm), @@ -109,9 +109,9 @@ const std::vector< const Trk::CylinderLayer* >* InDet::BeamPipeBuilder::cylindri if (m_beamPipeMgr){ // get the central top volume PVConstLink beamPipeTopVolume = m_beamPipeMgr->getTreeTop(0); - (*beamPipeTransform) = Amg::Translation3D(beamPipeTopVolume->getX().getTranslation().x(), - beamPipeTopVolume->getX().getTranslation().y(), - beamPipeTopVolume->getX().getTranslation().z()); + (*beamPipeTransform) = Amg::Translation3D(beamPipeTopVolume->getX().translation().x(), + beamPipeTopVolume->getX().translation().y(), + beamPipeTopVolume->getX().translation().z()); const GeoLogVol* beamPipeLogVolume = beamPipeTopVolume->getLogVol(); const GeoTube* beamPipeTube = 0; if (beamPipeLogVolume){ diff --git a/InnerDetector/InDetDetDescr/PixelCabling/CMakeLists.txt b/InnerDetector/InDetDetDescr/PixelCabling/CMakeLists.txt index 115ba20ca14031f341cf1648e3938479d12abf5f..3cf3b433165735f2c1d4b2ea160dca920f35583d 100644 --- a/InnerDetector/InDetDetDescr/PixelCabling/CMakeLists.txt +++ b/InnerDetector/InDetDetDescr/PixelCabling/CMakeLists.txt @@ -16,8 +16,8 @@ atlas_depends_on_subdirs( Control/StoreGate Database/AthenaPOOL/AthenaPoolUtilities DetectorDescription/Identifier + InnerDetector/InDetDetDescr/InDetReadoutGeometry InnerDetector/InDetDetDescr/InDetIdentifier - InnerDetector/InDetDetDescr/PixelGeoModel Tools/PathResolver ) # External dependencies: @@ -38,8 +38,7 @@ atlas_add_component( PixelCabling ${TDAQ-COMMON_INCLUDE_DIRS} LINK_LIBRARIES ${CORAL_LIBRARIES} ${Boost_LIBRARIES} ${TDAQ-COMMON_LIBRARIES} GaudiKernel AthenaBaseComps SGTools StoreGateLib - AthenaPoolUtilities Identifier InDetIdentifier PathResolver PixelGeoModelLib - PixelCablingLib ) + AthenaPoolUtilities Identifier InDetIdentifier InDetReadoutGeometry PathResolver PixelCablingLib ) # Install files from the package: atlas_install_python_modules( python/*.py ) diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/CMakeLists.txt b/InnerDetector/InDetDetDescr/PixelGeoModel/CMakeLists.txt index 6be57eed88d1aa1b1393b9cb9fe30c19099a44f9..6718e6b69827f786da3bab532b0c64be0ffe0d69 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/CMakeLists.txt +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/CMakeLists.txt @@ -12,9 +12,9 @@ atlas_depends_on_subdirs( Control/AthenaKernel Database/RDBAccessSvc DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities DetectorDescription/Identifier + DetectorDescription/GeoPrimitives GaudiKernel InnerDetector/InDetDetDescr/InDetGeoModelUtils InnerDetector/InDetDetDescr/InDetReadoutGeometry @@ -27,14 +27,15 @@ atlas_depends_on_subdirs( InnerDetector/InDetDetDescr/InDetIdentifier ) # External dependencies: -find_package( CLHEP ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( PixelGeoModelLib PixelGeoModel/*.h src/*.cxx PUBLIC_HEADERS PixelGeoModel - INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaBaseComps AthenaKernel GeoModelKernel + INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} + LINK_LIBRARIES ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaBaseComps AthenaKernel GeoModelUtilities Identifier GaudiKernel InDetGeoModelUtils InDetReadoutGeometry PRIVATE_LINK_LIBRARIES SGTools StoreGateLib DetDescrConditions diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Det.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Det.cxx index 09a31ecd1a00dff90c800df1fabf1771f0fc42ec..f75a38c352fcb30e0ceadde2c20b1112d209457a 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Det.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Det.cxx @@ -2,9 +2,9 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/DBM_Det.h" -#include "PixelGeoModel/DBM_Telescope.h" -#include "PixelGeoModel/DBM_Services.h" +#include "DBM_Det.h" +#include "DBM_Telescope.h" +#include "DBM_Services.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoIdentifierTag.h" @@ -21,7 +21,7 @@ DBM_Det::DBM_Det() { // Radius to beamline // Hardcoded, so if change then change in DBM_module too - double trans_rad = 46.678*CLHEP::mm + (m_gmt_mgr->DBMTelescopeY()) / 2.; // 10-CLHEP::degree version + double trans_rad = 46.678*GeoModelKernelUnits::mm + (m_gmt_mgr->DBMTelescopeY()) / 2.; // 10-GeoModelKernelUnits::degree version // TRANS_X TRANS_Y TRANS_Z ROT_X ROT_Y ROT_Z m_module[0].push_back(trans_rad); m_module[0].push_back(0); m_module[0].push_back(Trans_Y); m_module[0].push_back(0); m_module[0].push_back(0); m_module[0].push_back(270); @@ -36,21 +36,19 @@ GeoVPhysVol* DBM_Det::Build() double safety = 0.001; //create a cylinder 8mm smaller than the BPSS outer radius to place the 4 DBM telescopes - double rmin = 45.*CLHEP::mm;//41.0*CLHEP::mm; - double rmax = 150.*CLHEP::mm; //244.*CLHEP::mm; - double halflength = m_gmt_mgr->DBMTelescopeZ()/2.;//200.*CLHEP::mm + double rmin = 45.*GeoModelKernelUnits::mm;//41.0*GeoModelKernelUnits::mm; + double rmax = 150.*GeoModelKernelUnits::mm; //244.*GeoModelKernelUnits::mm; + double halflength = m_gmt_mgr->DBMTelescopeZ()/2.;//200.*GeoModelKernelUnits::mm GeoTube * Shape = new GeoTube(rmin,rmax,halflength); const GeoMaterial* air = m_mat_mgr->getMaterial("std::Air"); const GeoLogVol* Log = new GeoLogVol("OutsideDBM",Shape,air); GeoFullPhysVol* Phys = new GeoFullPhysVol(Log); - CLHEP::HepRotation pp0rm; - // add PP0 board DBM_PP0 pp0Board; GeoVPhysVol* pp0BoardPhys = pp0Board.Build(); - CLHEP::Hep3Vector pp0Pos(0., 0., -halflength + m_gmt_mgr->DBMPP0Thick()/2. + safety); - GeoTransform* pp0xform = new GeoTransform(HepGeom::Transform3D(pp0rm,pp0Pos)); + GeoTrf::Translate3D pp0Pos(0., 0., -halflength + m_gmt_mgr->DBMPP0Thick()/2. + safety); + GeoTransform* pp0xform = new GeoTransform(pp0Pos); GeoNameTag* pp0tag = new GeoNameTag("DBM_PP0"); Phys->add(pp0tag); Phys->add(pp0xform); @@ -68,12 +66,11 @@ GeoVPhysVol* DBM_Det::Build() else if ((m_gmt_mgr->GetSide() < 0) && (i == 2)) m_gmt_mgr->SetPhi(0); //setting transformation - CLHEP::HepRotation rm; - CLHEP::Hep3Vector pos(m_module[i].at(0), m_module[i].at(1), m_module[i].at(2)); - rm.rotateX(m_module[i].at(3)*CLHEP::deg); - rm.rotateY(m_module[i].at(4)*CLHEP::deg); - rm.rotateZ(m_module[i].at(5)*CLHEP::deg); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(rm,pos)); + GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(m_module[i].at(5)*GeoModelKernelUnits::deg) + * GeoTrf::RotateY3D(m_module[i].at(4)*GeoModelKernelUnits::deg) + * GeoTrf::RotateX3D(m_module[i].at(3)*GeoModelKernelUnits::deg); + GeoTrf::Translation3D pos(m_module[i].at(0), m_module[i].at(1), m_module[i].at(2)); + GeoTransform* xform = new GeoTransform(GeoTrf::Transform3D(pos*rm)); GeoNameTag* tag = new GeoNameTag("DBM Module"); GeoVPhysVol* dbmModPhys = dbm.Build(); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/DBM_Det.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Det.h similarity index 88% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/DBM_Det.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Det.h index 711a8c95fd570cf7b437454c4bf622bfb6bb4eef..eff928892053a578a529f78c0f614136c75c9ebb 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/DBM_Det.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Det.h @@ -9,9 +9,7 @@ #define DBMDET_H -#include "PixelGeoModel/GeoVPixelFactory.h" -#include "CLHEP/Geometry/Transform3D.h" - +#include "GeoVPixelFactory.h" #include "GaudiKernel/MsgStream.h" #include <iostream> diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Module.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Module.cxx index 1fedff25c77a830ab48442ff38287361788517f6..d4bfe3ff3f60e478282e7d5df6f500199669ff69 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Module.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Module.cxx @@ -3,7 +3,7 @@ */ -#include "PixelGeoModel/DBM_Module.h" +#include "DBM_Module.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" @@ -64,7 +64,7 @@ GeoVPhysVol* DBM_Module::Build() GeoIdentifierTag* diamondTag = new GeoIdentifierTag(400); - double safety = 0.003*CLHEP::mm; + double safety = 0.003*GeoModelKernelUnits::mm; //diamond dimension double diamond_X = m_gmt_mgr->DBMDiamondX(); @@ -84,8 +84,8 @@ GeoVPhysVol* DBM_Module::Build() //distances from bottom of the ceramic //Hardcoded! - double bot2Chip = 0.0*CLHEP::mm; - double bot2Diamond = 1.685*CLHEP::mm; + double bot2Chip = 0.0*GeoModelKernelUnits::mm; + double bot2Diamond = 1.685*GeoModelKernelUnits::mm; //--------------------------------------------- @@ -93,8 +93,8 @@ GeoVPhysVol* DBM_Module::Build() // Position of the corner closest to IP and beamline // Hardcoded, so if change then change in GeoPixelEnvelope and DBM_Det too - double ZToIP = 887.002*CLHEP::mm; - double RToBeam = 46.678*CLHEP::mm; + double ZToIP = 887.002*GeoModelKernelUnits::mm; + double RToBeam = 46.678*GeoModelKernelUnits::mm; // layer spacing double Zspacing = m_gmt_mgr->DBMSpacingZ(); @@ -146,10 +146,7 @@ GeoVPhysVol* DBM_Module::Build() const GeoLogVol* dbmModuleLog = new GeoLogVol("dbmModuleLog", dbmModuleBox, air); GeoPhysVol* dbmModulePhys = new GeoPhysVol(dbmModuleLog); - CLHEP::HepRotation rm; - rm.rotateY(270.*CLHEP::deg); - rm.rotateZ(90.*CLHEP::deg); - + GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(270.*GeoModelKernelUnits::deg); //diamond const GeoBox* dbmDiamondBox = new GeoBox(diamond_Z/2.0, diamond_X/2.0, diamond_Y/2.0 ); @@ -181,8 +178,8 @@ GeoVPhysVol* DBM_Module::Build() // add the element to the manager m_DDmgr->addDetectorElement(element); - CLHEP::Hep3Vector dbmDiamondPos(0, bot2Diamond+diamond_Y/2.0-substrate_Y/2.0, diamond_Z/2.0-max_thick/2.0); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(rm,dbmDiamondPos)); + GeoTrf::Translation3D dbmDiamondPos(0, bot2Diamond+diamond_Y/2.0-substrate_Y/2.0, diamond_Z/2.0-max_thick/2.0); + GeoTransform* xform = new GeoTransform(GeoTrf::Transform3D(dbmDiamondPos*rm)); //tag = new GeoNameTag("dbmDiamond"); //dbmModulePhys->add(tag); dbmModulePhys->add(diamondTag); @@ -194,8 +191,8 @@ GeoVPhysVol* DBM_Module::Build() const GeoLogVol* dbmFEI4Log = new GeoLogVol("dbmWallLogF4", dbmFEI4Box, chip_mat); //should this be "dbmdiamondLog"? GeoPhysVol* dbmFEI4Phys = new GeoPhysVol(dbmFEI4Log); - CLHEP::Hep3Vector dbmFEI4Pos(0, bot2Chip+chip_Y/2.0-substrate_Y/2.0, max_thick/2.0-substrate_Z-chip_thick/2.0); - xform = new GeoTransform(HepGeom::Transform3D(rm,dbmFEI4Pos)); + GeoTrf::Translation3D dbmFEI4Pos(0, bot2Chip+chip_Y/2.0-substrate_Y/2.0, max_thick/2.0-substrate_Z-chip_thick/2.0); + xform = new GeoTransform(GeoTrf::Transform3D(dbmFEI4Pos*rm)); //tag = new GeoNameTag("dbmFEI4"); //dbmModulePhys->add(tag); dbmModulePhys->add(xform); @@ -207,9 +204,8 @@ GeoVPhysVol* DBM_Module::Build() const GeoLogVol* dbmSubstLog = new GeoLogVol("dbmWallLogCe", dbmSubstBox, aluminiumNitride); GeoPhysVol* dbmSubstPhys = new GeoPhysVol(dbmSubstLog); - CLHEP::HepRotation rmA; - CLHEP::Hep3Vector dbmSubstPos(0, 0, max_thick/2.0-substrate_Z/2.0); - xform = new GeoTransform(HepGeom::Transform3D(rmA,dbmSubstPos)); + GeoTrf::Translate3D dbmSubstPos(0, 0, max_thick/2.0-substrate_Z/2.0); + xform = new GeoTransform(dbmSubstPos); //tag = new GeoNameTag("dbmSubstrate"); //dbmModulePhys->add(tag); dbmModulePhys->add(xform); @@ -228,10 +224,9 @@ GeoVPhysVol* DBM_Module::Build() double globPosZ = ZToIP + layerUnitPos_Z + (sensorPosInModuleCage_Z * cos(angle) - sensorPosInModuleCage_Y * sin(angle)); double globPosY = RToBeam + layerUnitPos_Y + (sensorPosInModuleCage_Z * sin(angle) + sensorPosInModuleCage_Y * cos(angle)); - CLHEP::HepRotation rmX10; - rmX10.rotateX(-10.*CLHEP::deg); - CLHEP::Hep3Vector alignTransformPos(0, globPosY, globPosZ); - GeoAlignableTransform *xformAlign = new GeoAlignableTransform(HepGeom::Transform3D(rmX10, alignTransformPos)); + GeoTrf::RotateX3D rmX10(-10.*GeoModelKernelUnits::deg); + GeoTrf::Translation3D alignTransformPos(0, globPosY, globPosZ); + GeoAlignableTransform *xformAlign = new GeoAlignableTransform(GeoTrf::Transform3D(alignTransformPos*rmX10)); m_DDmgr->addAlignableTransform(0, idwafer, xformAlign, dbmDiamondPhys); //----------------------------------------------------- diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/DBM_Module.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Module.h similarity index 90% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/DBM_Module.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Module.h index 40e44caf86f12d6343f6e823dd5f2e1ee3f13a68..13509ca8928151fbe4734d6a9a82c48f19e512d3 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/DBM_Module.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Module.h @@ -5,14 +5,12 @@ #ifndef DBMModule_H #define DBMModule_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" -#include "CLHEP/Geometry/Transform3D.h" - /* @class DBM_Module * * Build the DBM Module consisting of diamond sensor, FEI4 and ceramic substrate diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_ModuleCage.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_ModuleCage.cxx index 3f21d33368097f802a12e2f5bd3ddb64162c469e..2f72f02edd60997b3a200e7079c3f3d575650936 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_ModuleCage.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_ModuleCage.cxx @@ -2,8 +2,8 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/DBM_ModuleCage.h" -#include "PixelGeoModel/DBM_Module.h" +#include "DBM_ModuleCage.h" +#include "DBM_Module.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoTransform.h" @@ -20,7 +20,7 @@ GeoVPhysVol* DBM_ModuleCage::Build() { // safety, to make sure volumes don't overlap - double safety = 0.005*CLHEP::mm; + double safety = 0.005*GeoModelKernelUnits::mm; // Telescope dimension double layerUnitY = m_gmt_mgr->DBMModuleCageY(); @@ -113,8 +113,6 @@ GeoVPhysVol* DBM_ModuleCage::Build() { // Y coordinate double mainPlatePosY = -layerUnitY/2. + mainPlateY/2.; - CLHEP::HepRotation rm; - // store initial value Eta value int tempLD = m_gmt_mgr->GetLD(); @@ -137,8 +135,8 @@ GeoVPhysVol* DBM_ModuleCage::Build() { GeoVPhysVol* modulePhys = module.Build(); Rspacing = m_gmt_mgr->DBMSpacingRadial(); - CLHEP::Hep3Vector modulePos(0, -layerUnitY/2. + Rspacing + ceramicY/2., mainPlatePosZ[i]-mainPlateZ/2.-(ceramicZ+FEI4Z+moduleAirGap+diamondZ + kaptonZ)/2.-2*safety); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(rm,modulePos)); + GeoTrf::Translate3D modulePos(0, -layerUnitY/2. + Rspacing + ceramicY/2., mainPlatePosZ[i]-mainPlateZ/2.-(ceramicZ+FEI4Z+moduleAirGap+diamondZ + kaptonZ)/2.-2*safety); + GeoTransform* xform = new GeoTransform(modulePos); GeoNameTag* tag = new GeoNameTag(tag_module[i].c_str()); containerPhys->add(tag); containerPhys->add(new GeoIdentifierTag(i)); @@ -147,27 +145,27 @@ GeoVPhysVol* DBM_ModuleCage::Build() { // add main plate - CLHEP::Hep3Vector mPSideAPos((mainPlateX+mPlateWindowX)/4.+safety/2., mainPlatePosY, mainPlatePosZ[i]); - xform = new GeoTransform(HepGeom::Transform3D(rm,mPSideAPos)); + GeoTrf::Translate3D mPSideAPos((mainPlateX+mPlateWindowX)/4.+safety/2., mainPlatePosY, mainPlatePosZ[i]); + xform = new GeoTransform(mPSideAPos); tag = new GeoNameTag(tag_mainPlate[i].c_str()); containerPhys->add(tag); containerPhys->add(xform); containerPhys->add(mPSidePhys); - CLHEP::Hep3Vector mPSideBPos(-(mainPlateX+mPlateWindowX)/4.-safety/2., mainPlatePosY, mainPlatePosZ[i]); - xform = new GeoTransform(HepGeom::Transform3D(rm,mPSideBPos)); + GeoTrf::Translate3D mPSideBPos(-(mainPlateX+mPlateWindowX)/4.-safety/2., mainPlatePosY, mainPlatePosZ[i]); + xform = new GeoTransform(mPSideBPos); containerPhys->add(tag); containerPhys->add(xform); containerPhys->add(mPSidePhys); - CLHEP::Hep3Vector mPBotPos(0.0, (-layerUnitY + mPlateWindowPos)/2.-safety/2., mainPlatePosZ[i]); - xform = new GeoTransform(HepGeom::Transform3D(rm,mPBotPos)); + GeoTrf::Translate3D mPBotPos(0.0, (-layerUnitY + mPlateWindowPos)/2.-safety/2., mainPlatePosZ[i]); + xform = new GeoTransform(mPBotPos); containerPhys->add(tag); containerPhys->add(xform); containerPhys->add(mPCenterBotPhys); - CLHEP::Hep3Vector mPTopPos(0.0, (-layerUnitY + mainPlateY + mPlateWindowY + mPlateWindowPos)/2.+safety/2., mainPlatePosZ[i]); - xform = new GeoTransform(HepGeom::Transform3D(rm,mPTopPos)); + GeoTrf::Translate3D mPTopPos(0.0, (-layerUnitY + mainPlateY + mPlateWindowY + mPlateWindowPos)/2.+safety/2., mainPlatePosZ[i]); + xform = new GeoTransform(mPTopPos); containerPhys->add(tag); containerPhys->add(xform); containerPhys->add(mPCenterTopPhys); @@ -198,8 +196,8 @@ GeoVPhysVol* DBM_ModuleCage::Build() { //**** add flex support - CLHEP::Hep3Vector flexSuppPos(0.0, flexSuppPosY, flexSuppPosZ); - xform = new GeoTransform(HepGeom::Transform3D(rm,flexSuppPos)); + GeoTrf::Translate3D flexSuppPos(0.0, flexSuppPosY, flexSuppPosZ); + xform = new GeoTransform(flexSuppPos); tag = new GeoNameTag(tag_flex[i].c_str()); containerPhys->add(tag); containerPhys->add(xform); @@ -215,27 +213,27 @@ GeoVPhysVol* DBM_ModuleCage::Build() { double rodPosZ = mainPlatePosZ[i] - mainPlateZ/2.0 - layer1Space/2.; // Z position of rod - CLHEP::Hep3Vector rodAPos(mPlateRod2RodX/2., topRodPosY, rodPosZ); - xform = new GeoTransform(HepGeom::Transform3D(rm,rodAPos)); + GeoTrf::Translate3D rodAPos(mPlateRod2RodX/2., topRodPosY, rodPosZ); + xform = new GeoTransform(rodAPos); tag = new GeoNameTag(tag_rod[i].c_str()); containerPhys->add(tag); containerPhys->add(xform); containerPhys->add(rodAPhys); - CLHEP::Hep3Vector rodBPos(-mPlateRod2RodX/2., topRodPosY, rodPosZ); - xform = new GeoTransform(HepGeom::Transform3D(rm,rodBPos)); + GeoTrf::Translate3D rodBPos(-mPlateRod2RodX/2., topRodPosY, rodPosZ); + xform = new GeoTransform(rodBPos); containerPhys->add(tag); containerPhys->add(xform); containerPhys->add(rodAPhys); - CLHEP::Hep3Vector rodCPos(mPlateRod2RodX/2., botRodPosY, rodPosZ); - xform = new GeoTransform(HepGeom::Transform3D(rm,rodCPos)); + GeoTrf::Translate3D rodCPos(mPlateRod2RodX/2., botRodPosY, rodPosZ); + xform = new GeoTransform(rodCPos); containerPhys->add(tag); containerPhys->add(xform); containerPhys->add(rodAPhys); - CLHEP::Hep3Vector rodDPos(-mPlateRod2RodX/2., botRodPosY, rodPosZ); - xform = new GeoTransform(HepGeom::Transform3D(rm,rodDPos)); + GeoTrf::Translate3D rodDPos(-mPlateRod2RodX/2., botRodPosY, rodPosZ); + xform = new GeoTransform(rodDPos); containerPhys->add(tag); containerPhys->add(xform); containerPhys->add(rodAPhys); @@ -246,27 +244,27 @@ GeoVPhysVol* DBM_ModuleCage::Build() { double topRodPosZ = mainPlatePosZ[i] - mainPlateZ/2. - (Zspacing - mainPlateZ - flexSupportZ)/2.; double botRodPosZ = mainPlatePosZ[i] - mainPlateZ/2. - (Zspacing - mainPlateZ)/2.; - CLHEP::Hep3Vector rodAPos(mPlateRod2RodX/2., topRodPosY, topRodPosZ); - xform = new GeoTransform(HepGeom::Transform3D(rm,rodAPos)); + GeoTrf::Translate3D rodAPos(mPlateRod2RodX/2., topRodPosY, topRodPosZ); + xform = new GeoTransform(rodAPos); tag = new GeoNameTag(tag_rod[i].c_str()); containerPhys->add(tag); containerPhys->add(xform); containerPhys->add(topRodPhys); - CLHEP::Hep3Vector rodBPos(-mPlateRod2RodX/2., topRodPosY, topRodPosZ); - xform = new GeoTransform(HepGeom::Transform3D(rm,rodBPos)); + GeoTrf::Translate3D rodBPos(-mPlateRod2RodX/2., topRodPosY, topRodPosZ); + xform = new GeoTransform(rodBPos); containerPhys->add(tag); containerPhys->add(xform); containerPhys->add(topRodPhys); - CLHEP::Hep3Vector rodCPos(mPlateRod2RodX/2., botRodPosY, botRodPosZ); - xform = new GeoTransform(HepGeom::Transform3D(rm,rodCPos)); + GeoTrf::Translate3D rodCPos(mPlateRod2RodX/2., botRodPosY, botRodPosZ); + xform = new GeoTransform(rodCPos); containerPhys->add(tag); containerPhys->add(xform); containerPhys->add(botRodPhys); - CLHEP::Hep3Vector rodDPos(-mPlateRod2RodX/2., botRodPosY, botRodPosZ); - xform = new GeoTransform(HepGeom::Transform3D(rm,rodDPos)); + GeoTrf::Translate3D rodDPos(-mPlateRod2RodX/2., botRodPosY, botRodPosZ); + xform = new GeoTransform(rodDPos); containerPhys->add(tag); containerPhys->add(xform); containerPhys->add(botRodPhys); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/DBM_ModuleCage.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_ModuleCage.h similarity index 84% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/DBM_ModuleCage.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_ModuleCage.h index 11191d35010ba342411a0b4e14e1c1350387d66b..a4db870afa1b89be4a9fbb5fb6dddfca2cddec69 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/DBM_ModuleCage.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_ModuleCage.h @@ -5,8 +5,7 @@ #ifndef DBMModuleCage_h #define DBMModuleCage_h -#include "PixelGeoModel/GeoVPixelFactory.h" -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoVPixelFactory.h" #include "GaudiKernel/MsgStream.h" #include <iostream> diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Services.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Services.cxx index c876266ed71ad4eeaa50f344be5f077076130cf8..4301bab27c3ae511282db4a315dffff2b4246175 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Services.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Services.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/DBM_Services.h" +#include "DBM_Services.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoTransform.h" diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/DBM_Services.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Services.h similarity index 80% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/DBM_Services.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Services.h index d4645b7ee7ac65e2c95e2ad90fdc5120fdf480fe..07d1c75beb69b32ca74a13bc3aad47624e366f47 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/DBM_Services.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Services.h @@ -5,8 +5,7 @@ #ifndef DBMSERVICES_h #define DBMSERVICES_h -#include "PixelGeoModel/GeoVPixelFactory.h" -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoVPixelFactory.h" #include "GaudiKernel/MsgStream.h" #include <iostream> diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Telescope.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Telescope.cxx index 2d458fa35b2d28017dc3621cdb1cc6e50cb73b64..35b64596c7ca4f54785b2e4b119f3e2f368a7542 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Telescope.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Telescope.cxx @@ -2,8 +2,8 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/DBM_Telescope.h" -#include "PixelGeoModel/DBM_ModuleCage.h" +#include "DBM_Telescope.h" +#include "DBM_ModuleCage.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoTransform.h" @@ -23,7 +23,7 @@ GeoVPhysVol* DBM_Telescope::Build() { - double safety = 0.005*CLHEP::mm; + double safety = 0.005*GeoModelKernelUnits::mm; // telescope tilting angle in degree double angle = m_gmt_mgr->DBMAngle(); @@ -83,22 +83,20 @@ GeoVPhysVol* DBM_Telescope::Build() { const GeoLogVol* telescopeLog = new GeoLogVol("dbmTelescopeLog", telescopeBox, air); GeoPhysVol* telescopePhys = new GeoPhysVol(telescopeLog); - CLHEP::HepRotation rm; - CLHEP::HepRotation rmX10; - rmX10.rotateX(-10.*CLHEP::deg); + GeoTrf::RotateX3D rmX10(-10.*GeoModelKernelUnits::deg); DBM_ModuleCage moduleCage; GeoVPhysVol* moduleCagePhys = moduleCage.Build(); // parameters for rotating the 3-layer unit double lyRadius = sqrt(layerUnitY*layerUnitY/4 + layerUnitZ*layerUnitZ/4); - double lyAngle = atan(layerUnitY/layerUnitZ);//21.6444*CLHEP::deg; // arctan(DBM3LayersY / DBM3LayersZ) + double lyAngle = atan(layerUnitY/layerUnitZ);//21.6444*GeoModelKernelUnits::deg; // arctan(DBM3LayersY / DBM3LayersZ) // position of bottom tip of the 3-layers unit, which is the rotation point double layerUnitPos_Y = (trapBackY/cos(angle) - coolingSidePlateY)*cos(angle); double layerUnitPos_Z = coolingSidePlateY*sin(angle) + trapBackShortZ + bracketZ - brcktLockZ; - CLHEP::Hep3Vector layerUnitPos( 0.0, -telescopeY/2. + layerUnitPos_Y + lyRadius * sin(lyAngle+angle), -telescopeZ/2. + layerUnitPos_Z + lyRadius * cos(lyAngle+angle) + 3*safety); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(rmX10,layerUnitPos)); + GeoTrf::Translation3D layerUnitPos( 0.0, -telescopeY/2. + layerUnitPos_Y + lyRadius * sin(lyAngle+angle), -telescopeZ/2. + layerUnitPos_Z + lyRadius * cos(lyAngle+angle) + 3*safety); + GeoTransform* xform = new GeoTransform(GeoTrf::Transform3D(layerUnitPos*rmX10)); GeoNameTag* tag = new GeoNameTag("dbm3layers"); telescopePhys->add(tag); telescopePhys->add(xform); @@ -109,12 +107,12 @@ GeoVPhysVol* DBM_Telescope::Build() { // back trapezoid block with window, will be rotated by 90 degree along the x-axis - const GeoTrap* trapBack = new GeoTrap(trapBackY/2., trapBack_theta, 90.0*CLHEP::deg, trapBackShortZ/2., trapBackX/2., trapBackX/2, 0.0, (trapBackShortZ+trapBackY*tan(angle))/2., trapBackX/2., trapBackX/2., 0.0); + const GeoTrap* trapBack = new GeoTrap(trapBackY/2., trapBack_theta, 90.0*GeoModelKernelUnits::deg, trapBackShortZ/2., trapBackX/2., trapBackX/2, 0.0, (trapBackShortZ+trapBackY*tan(angle))/2., trapBackX/2., trapBackX/2., 0.0); double brWindowPosY = brcktWindow_offset + brcktWindow_centerZ * tan(angle) + brcktWindowY/(2 * cos(angle)); const GeoBox* brWindow = new GeoBox(brcktWindowX/2., trapBackShortZ, brcktWindowY/2.); - CLHEP::Hep3Vector brWindowPos(0., 0., trapBackY/2. - brWindowPosY); - HepGeom::Transform3D brWindowShift(rmX10,brWindowPos); + GeoTrf::Translation3D brWindowPos(0., 0., trapBackY/2. - brWindowPosY); + GeoTrf::Transform3D brWindowShift(brWindowPos*rmX10); const GeoShapeSubtraction& trapBack1 = trapBack->subtract(((*brWindow) << brWindowShift)); @@ -122,11 +120,10 @@ GeoVPhysVol* DBM_Telescope::Build() { const GeoLogVol* trapBackLog = new GeoLogVol("bracketLog", &trapBack1, dbmPeek4); GeoPhysVol* trapBackPhys = new GeoPhysVol(trapBackLog); - CLHEP::HepRotation rmX90; - rmX90.rotateX(90.*CLHEP::deg); // rotate along x-axis by 90 degree + GeoTrf::RotateX3D rmX90(90.*GeoModelKernelUnits::deg); double trapBackPos_Z = -telescopeZ/2. + bracketZ - brcktLockZ + ( (trapBackShortZ+trapBackY*tan(angle))/2. + trapBackY/2.*sin(trapBack_theta) - trapBackY*tan(trapBack_theta) ); - CLHEP::Hep3Vector trapBackPos(0.0, -telescopeY/2. + trapBackY/2. + safety, trapBackPos_Z + 3*safety); - xform = new GeoTransform(HepGeom::Transform3D(rmX90,trapBackPos)); + GeoTrf::Translation3D trapBackPos(0.0, -telescopeY/2. + trapBackY/2. + safety, trapBackPos_Z + 3*safety); + xform = new GeoTransform(GeoTrf::Transform3D(trapBackPos*rmX90)); tag = new GeoNameTag("trapBack"); telescopePhys->add(tag); telescopePhys->add(xform); @@ -138,8 +135,8 @@ GeoVPhysVol* DBM_Telescope::Build() { const GeoLogVol* brcktTopBlockLog = new GeoLogVol("bracketLog", brcktTopBlock, dbmPeekAluminium); GeoPhysVol* brcktTopBlockPhys = new GeoPhysVol(brcktTopBlockLog); - CLHEP::Hep3Vector brcktTopBlockPos( 0., -telescopeY/2. + brcktSideBlockY + (bracketY - brcktSideBlockY)/2.+2*safety, -telescopeZ/2. + brcktTopBlockZ/2.); - xform = new GeoTransform(HepGeom::Transform3D(rm,brcktTopBlockPos)); + GeoTrf::Translate3D brcktTopBlockPos( 0., -telescopeY/2. + brcktSideBlockY + (bracketY - brcktSideBlockY)/2.+2*safety, -telescopeZ/2. + brcktTopBlockZ/2.); + xform = new GeoTransform(brcktTopBlockPos); tag = new GeoNameTag("brcktTopBlock"); telescopePhys->add(tag); telescopePhys->add(xform); @@ -151,15 +148,15 @@ GeoVPhysVol* DBM_Telescope::Build() { const GeoLogVol* brcktSideLog = new GeoLogVol("brcktSideLog", brcktSideBlock, dbmPeek2); GeoPhysVol* brcktSidePhys = new GeoPhysVol(brcktSideLog); - CLHEP::Hep3Vector brcktSidePos1( bracketX/2. - brcktSideBlockX/2., -telescopeY/2. + brcktSideBlockY/2.+safety, -telescopeZ/2. + brcktTopBlockZ/2.); - xform = new GeoTransform(HepGeom::Transform3D(rm,brcktSidePos1)); + GeoTrf::Translate3D brcktSidePos1( bracketX/2. - brcktSideBlockX/2., -telescopeY/2. + brcktSideBlockY/2.+safety, -telescopeZ/2. + brcktTopBlockZ/2.); + xform = new GeoTransform(brcktSidePos1); tag = new GeoNameTag("brcktSideBlock"); telescopePhys->add(tag); telescopePhys->add(xform); telescopePhys->add(brcktSidePhys); - CLHEP::Hep3Vector brcktSidePos2( -bracketX/2. + brcktSideBlockX/2., -telescopeY/2. + brcktSideBlockY/2. + safety, -telescopeZ/2. + brcktTopBlockZ/2.); - xform = new GeoTransform(HepGeom::Transform3D(rm,brcktSidePos2)); + GeoTrf::Translate3D brcktSidePos2( -bracketX/2. + brcktSideBlockX/2., -telescopeY/2. + brcktSideBlockY/2. + safety, -telescopeZ/2. + brcktTopBlockZ/2.); + xform = new GeoTransform(brcktSidePos2); tag = new GeoNameTag("brcktSideBlock"); telescopePhys->add(tag); telescopePhys->add(xform); @@ -171,8 +168,8 @@ GeoVPhysVol* DBM_Telescope::Build() { const GeoLogVol* brcktLockLog = new GeoLogVol("bracketLog", brcktLock, dbmPeek3); GeoPhysVol* brcktLockPhys = new GeoPhysVol(brcktLockLog); - CLHEP::Hep3Vector brcktLockPos( 0., -telescopeY/2. + trapBackY + brcktLockY/2. + 2*safety, -telescopeZ/2. + bracketZ - brcktLockZ/2. + safety); - xform = new GeoTransform(HepGeom::Transform3D(rm,brcktLockPos)); + GeoTrf::Translate3D brcktLockPos( 0., -telescopeY/2. + trapBackY + brcktLockY/2. + 2*safety, -telescopeZ/2. + bracketZ - brcktLockZ/2. + safety); + xform = new GeoTransform(brcktLockPos); tag = new GeoNameTag("brcktLock"); telescopePhys->add(tag); telescopePhys->add(xform); @@ -185,38 +182,38 @@ GeoVPhysVol* DBM_Telescope::Build() { const GeoLogVol* sidePlateLog = new GeoLogVol("sidePlateLog", sidePlate, dbmAluminium2); GeoPhysVol* sidePlatePhys = new GeoPhysVol(sidePlateLog); - double spAngle = angle + 17.57126*CLHEP::deg; + double spAngle = angle + 17.57126*GeoModelKernelUnits::deg; double spRadius = 1/2. * sqrt(coolingSidePlateZ*coolingSidePlateZ + coolingSidePlateY*coolingSidePlateY); - CLHEP::Hep3Vector sidePlatePos1( mainPlateX/2. + coolingSidePlateX/2. + 2*safety, - telescopeY/2. + spRadius * sin(spAngle), -telescopeZ/2. + layerUnitPos_Z - coolingSidePlatePos*cos(angle) + spRadius * cos(spAngle)); - xform = new GeoTransform(HepGeom::Transform3D(rmX10, sidePlatePos1)); + GeoTrf::Translation3D sidePlatePos1( mainPlateX/2. + coolingSidePlateX/2. + 2*safety, - telescopeY/2. + spRadius * sin(spAngle), -telescopeZ/2. + layerUnitPos_Z - coolingSidePlatePos*cos(angle) + spRadius * cos(spAngle)); + xform = new GeoTransform(GeoTrf::Transform3D(sidePlatePos1*rmX10)); tag = new GeoNameTag("sidePlate"); telescopePhys->add(tag); telescopePhys->add(xform); telescopePhys->add(sidePlatePhys); - CLHEP::Hep3Vector sidePlatePos2( -mainPlateX/2. - coolingSidePlateX/2. - 2*safety, - telescopeY/2. + spRadius * sin(spAngle), -telescopeZ/2. + layerUnitPos_Z - coolingSidePlatePos*cos(angle) + spRadius * cos(spAngle)); - xform = new GeoTransform(HepGeom::Transform3D(rmX10, sidePlatePos2)); + GeoTrf::Translation3D sidePlatePos2( -mainPlateX/2. - coolingSidePlateX/2. - 2*safety, - telescopeY/2. + spRadius * sin(spAngle), -telescopeZ/2. + layerUnitPos_Z - coolingSidePlatePos*cos(angle) + spRadius * cos(spAngle)); + xform = new GeoTransform(GeoTrf::Transform3D(sidePlatePos2*rmX10)); tag = new GeoNameTag("sidePlate"); telescopePhys->add(tag); telescopePhys->add(xform); telescopePhys->add(sidePlatePhys); //cooling plates next to the bracket unit - const GeoTrap* coolingFin = new GeoTrap(coolingFinHeight/2., trapBack_theta, 90.0*CLHEP::deg, (coolingFinLongZ - coolingFinHeight*tan(angle))/2., coolingFinThick/2., coolingFinThick/2, 0.0, coolingFinLongZ/2., coolingFinThick/2., coolingFinThick/2., 0.0); + const GeoTrap* coolingFin = new GeoTrap(coolingFinHeight/2., trapBack_theta, 90.0*GeoModelKernelUnits::deg, (coolingFinLongZ - coolingFinHeight*tan(angle))/2., coolingFinThick/2., coolingFinThick/2, 0.0, coolingFinLongZ/2., coolingFinThick/2., coolingFinThick/2., 0.0); const GeoMaterial* dbmAluminium3 = m_mat_mgr->getMaterialForVolume("pix::DBMAluminium3", coolingFin->volume()); const GeoLogVol* finLog = new GeoLogVol("finLog", coolingFin, dbmAluminium3); GeoPhysVol* coolingFinPhys = new GeoPhysVol(finLog); - CLHEP::Hep3Vector finPos1( mainPlateX/2. - coolingFinThick/2. + safety, -telescopeY/2. + coolingFinHeight/2. + 4*safety, -telescopeZ/2. + coolingFinPos + 0.05*CLHEP::mm); - xform = new GeoTransform(HepGeom::Transform3D(rmX90, finPos1)); + GeoTrf::Translation3D finPos1( mainPlateX/2. - coolingFinThick/2. + safety, -telescopeY/2. + coolingFinHeight/2. + 4*safety, -telescopeZ/2. + coolingFinPos + 0.05*GeoModelKernelUnits::mm); + xform = new GeoTransform(GeoTrf::Transform3D(finPos1*rmX90)); tag = new GeoNameTag("finPlate"); telescopePhys->add(tag); telescopePhys->add(xform); telescopePhys->add(coolingFinPhys); - CLHEP::Hep3Vector finPos2( -mainPlateX/2. + coolingFinThick/2. - safety, -telescopeY/2. + coolingFinHeight/2. + 4*safety, -telescopeZ/2. + coolingFinPos + 0.05*CLHEP::mm); - xform = new GeoTransform(HepGeom::Transform3D(rmX90, finPos2)); + GeoTrf::Translation3D finPos2( -mainPlateX/2. + coolingFinThick/2. - safety, -telescopeY/2. + coolingFinHeight/2. + 4*safety, -telescopeZ/2. + coolingFinPos + 0.05*GeoModelKernelUnits::mm); + xform = new GeoTransform(GeoTrf::Transform3D(finPos2*rmX90)); tag = new GeoNameTag("finPlate"); telescopePhys->add(tag); telescopePhys->add(xform); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/DBM_Telescope.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Telescope.h similarity index 81% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/DBM_Telescope.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Telescope.h index 7900f2f2aaaee0079397424ee697be52e8ef586f..7a9570249d55fb545bf20d29ef39629df461dcfc 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/DBM_Telescope.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/DBM_Telescope.h @@ -6,8 +6,7 @@ #ifndef DBMTelescope_H #define DBMTelescope_H -#include "PixelGeoModel/GeoVPixelFactory.h" -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoVPixelFactory.h" #include "GaudiKernel/MsgStream.h" #include <iostream> diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelBarrel.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelBarrel.cxx index e47e6cdf25670608da5a3b6a2064206b11e405fd..27885db1d8c8a7cba1e8f63342e4be838dd54ef8 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelBarrel.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelBarrel.cxx @@ -2,12 +2,12 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/GeoPixelBarrel.h" -#include "PixelGeoModel/GeoPixelLayer.h" -#include "PixelGeoModel/GeoPixelServices.h" -#include "PixelGeoModel/GeoPixelOldFrame.h" -#include "PixelGeoModel/GeoPixelStaveRing.h" -#include "PixelGeoModel/GeoPixelIFlexServices.h" +#include "GeoPixelBarrel.h" +#include "GeoPixelLayer.h" +#include "GeoPixelServices.h" +#include "GeoPixelOldFrame.h" +#include "GeoPixelStaveRing.h" +#include "GeoPixelIFlexServices.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoPara.h" #include "GeoModelKernel/GeoTube.h" @@ -67,11 +67,11 @@ GeoVPhysVol* GeoPixelBarrel::Build( ) { if(m_gmt_mgr->isLDPresent()){ std::ostringstream lname; lname << "Layer" << ii; - // GeoAlignableTransform * xform = new GeoAlignableTransform(HepGeom::Transform3D()); + // GeoAlignableTransform * xform = new GeoAlignableTransform(GeoTrf::Transform3D()); // IBL layer shift ( 2mm shift issue ) double layerZshift = m_gmt_mgr->PixelLayerGlobalShift(); - GeoAlignableTransform* xform = new GeoAlignableTransform(HepGeom::Transform3D(CLHEP::HepRotation(),CLHEP::Hep3Vector(0.,0.,layerZshift))); + GeoAlignableTransform* xform = new GeoAlignableTransform(GeoTrf::Translate3D(0.,0.,layerZshift)); GeoVPhysVol* layerphys = layer.Build(); GeoNameTag *tag = new GeoNameTag(lname.str()); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelBarrel.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelBarrel.h similarity index 89% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelBarrel.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelBarrel.h index 1e3966b012c08a3e69e6febf216fbb18f6b928e5..16f097816ab7e10cc55e2c5d6309036c78855d42 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelBarrel.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelBarrel.h @@ -5,7 +5,7 @@ #ifndef GEOPIXELBARREL_H #define GEOPIXELBARREL_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" class GeoPixelServices; class GeoPixelBarrel : public GeoVPixelFactory { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelCable.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelCable.cxx index 006dd2bd842d04fdec12aab1a3c8dc440e416c17..a6c8e52e21abc5447440496c251d199949702454 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelCable.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelCable.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/GeoPixelCable.h" +#include "GeoPixelCable.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" @@ -70,7 +70,7 @@ GeoVPhysVol* GeoPixelCable::Build() { std::ostringstream o; o << m_gmt_mgr->getLD_Label() << label; logName = logName+o.str(); - //std::cout << logName << ": " << weight/CLHEP::g << " g, " << thickness << std::endl; + //std::cout << logName << ": " << weight/GeoModelKernelUnits::g << " g, " << thickness << std::endl; GeoLogVol* theCable = new GeoLogVol(logName,cableBox,cableMat); GeoPhysVol* cablePhys = new GeoPhysVol(theCable); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelCable.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelCable.h similarity index 92% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelCable.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelCable.h index 5d7b6228a27850825f65cb4fc75900477e213952..c27414f2d6d2fac77e932b85da83bf99645a7737 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelCable.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelCable.h @@ -5,7 +5,7 @@ #ifndef GEOPIXELCABLE_H #define GEOPIXELCABLE_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" #include <vector> class GeoPixelCable : public GeoVPixelFactory { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelChip.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelChip.cxx index feed0f3e476f35f8dd348ce4526760fb0ec827be..65ccdc0c24551233903fa19562190cd36fd00880 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelChip.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelChip.cxx @@ -11,7 +11,7 @@ // // Contains: nothing // -#include "PixelGeoModel/GeoPixelChip.h" +#include "GeoPixelChip.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelChip.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelChip.h similarity index 88% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelChip.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelChip.h index 143ac4f211e6f5a5ac4154416c09ebb20c0a23eb..57c7e6ec078883c05fa984ed60a9e60e6272921d 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelChip.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelChip.h @@ -5,7 +5,7 @@ #ifndef GEOPIXELCHIP_H #define GEOPIXELCHIP_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" class GeoLogVol; class GeoPixelChip : public GeoVPixelFactory { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDetailedStaveSupport.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDetailedStaveSupport.cxx index 0d74323902180d9e20a5ba5241ef6cd9260d9e43..6b6b9382d6673da425c4bb3c00e1e97125fcd564 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDetailedStaveSupport.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDetailedStaveSupport.cxx @@ -6,10 +6,10 @@ // Build detailed stave support : face plate + carbon foam + cable flex + cooling pipe + end blocks // This is built one time per layer. -#include "PixelGeoModel/GeoPixelDetailedStaveSupport.h" +#include "GeoPixelDetailedStaveSupport.h" -#include "PixelGeoModel/GeoPixelSiCrystal.h" -#include "PixelGeoModel/GeoPixelModule.h" +#include "GeoPixelSiCrystal.h" +#include "GeoPixelModule.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoTube.h" @@ -20,11 +20,13 @@ #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoTransform.h" +#include "GeoModelKernel/GeoDefinitions.h" #include <algorithm> using std::max; GeoPixelDetailedStaveSupport::GeoPixelDetailedStaveSupport() + : m_transform(GeoTrf::Transform3D::Identity()) { m_staveEnvelopShape=0; m_bVerbose = (m_gmt_mgr->msgLvl(MSG::DEBUG)); @@ -199,9 +201,9 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { double halfMecStaveWidth=MechanicalStaveWidth*0.5; // SafetyMargin - m_SafetyMargin=.001*CLHEP::mm; + m_SafetyMargin=.001*GeoModelKernelUnits::mm; double xGblOffset=FacePlateThick+m_SafetyMargin; - double safetyMarginZ=.001*CLHEP::mm; + double safetyMarginZ=.001*GeoModelKernelUnits::mm; // Compute approximated stave shape based on DB parameters ComputeStaveExternalShape(); @@ -406,7 +408,7 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { const GeoMaterial* foam_material = m_mat_mgr->getMaterial(m_gmt_mgr->getMaterialName("CarbonFoam",0,0)); GeoNameTag* foam_tag = new GeoNameTag("CarbonFoam"); - GeoTransform* foam_xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),CLHEP::Hep3Vector())); + GeoTransform* foam_xform = new GeoTransform(GeoTrf::Transform3D::Identity()); GeoLogVol * foam_logVol = new GeoLogVol("CarbonFoam",foam_shape,foam_material); GeoPhysVol * foam_logVolPV = new GeoPhysVol(foam_logVol); @@ -448,16 +450,16 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { omegaVolume, omegaVolume,"pix::Omega_IBL", glueVolume,"pix::Stycast2850FT"); - m_gmt_mgr->msg(MSG::INFO)<<"***> new material : "<<omega_material->getName()<<" "<<omega_material->getDensity()/(CLHEP::gram/CLHEP::cm3)<<endmsg; + m_gmt_mgr->msg(MSG::INFO)<<"***> new material : "<<omega_material->getName()<<" "<<omega_material->getDensity()/(GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3)<<endmsg; omega_logVol = new GeoLogVol("Omega",omega_shape,omega_material); } GeoNameTag* omega_tag = new GeoNameTag("Omega"); - GeoTransform* omega_xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),CLHEP::Hep3Vector())); + GeoTransform* omega_xform = new GeoTransform(GeoTrf::Transform3D::Identity()); // const GeoMaterial* omega_material = m_mat_mgr->getMaterial(m_gmt_mgr->getMaterialName("Omega",0,0)); // GeoNameTag* omega_tag = new GeoNameTag("Omega"); - // GeoTransform* omega_xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),CLHEP::Hep3Vector())); + // GeoTransform* omega_xform = new GeoTransform(GeoTrf::Transform3D(GeoModelKernelUnits::HepRotation(),GeoTrf::Vector3D())); // GeoLogVol * omega_logVol = new GeoLogVol("Omega",omega_shape,omega_material); GeoPhysVol * omega_logVolPV = new GeoPhysVol(omega_logVol); @@ -473,8 +475,8 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { // ------------------------------------------------------------------------------------------------------------ GeoBox * faceplate_shape = new GeoBox(FacePlateThick*0.5,MechanicalStaveWidth*0.5,MiddleSectionLength*.5); - CLHEP::Hep3Vector faceplate_pos((plate1x+plate2x+plate3x+plate4x)*0.25,(plate1y+plate2y+plate3y+plate4y)*0.25,0.0); - GeoTransform* faceplate_xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),faceplate_pos)); + GeoTrf::Translate3D faceplate_pos((plate1x+plate2x+plate3x+plate4x)*0.25,(plate1y+plate2y+plate3y+plate4y)*0.25,0.0); + GeoTransform* faceplate_xform = new GeoTransform(faceplate_pos); std::string faceplateMatName; const GeoMaterial* faceplate_material; @@ -498,7 +500,7 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { facePlateVolume, facePlateVolume,"pix::FacePlate_IBL", glueVolume,"pix::Stycast2850FT"); - m_gmt_mgr->msg(MSG::INFO)<<"***> new material : "<<faceplate_material->getName()<<" "<<faceplate_material->getDensity()/(CLHEP::gram/CLHEP::cm3)<<endmsg; + m_gmt_mgr->msg(MSG::INFO)<<"***> new material : "<<faceplate_material->getName()<<" "<<faceplate_material->getDensity()/(GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3)<<endmsg; } // Create composite material made of faceplate + grease if a thickness of grease is defined is DB @@ -523,7 +525,7 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { facePlateVolume,faceplateMatName, greaseVolume,"pix::ThermGrease_IBL"); faceplate_logVol = new GeoLogVol("FacePlate",faceplate_shape,faceplate_material); - m_gmt_mgr->msg(MSG::INFO)<<"***> new material : "<<faceplate_material->getName()<<" "<<faceplate_material->getDensity()/(CLHEP::gram/CLHEP::cm3)<<endmsg; + m_gmt_mgr->msg(MSG::INFO)<<"***> new material : "<<faceplate_material->getName()<<" "<<faceplate_material->getDensity()/(GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3)<<endmsg; } // const GeoMaterial* faceplate_material = m_mat_mgr->getMaterial(m_gmt_mgr->getMaterialName("FacePlate",0,0)); @@ -623,9 +625,9 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { // } // Add flex in 3D model : A component - CLHEP::Hep3Vector cableflex_pos((flex1x+flex2x+flex3x+flex4x)*0.25,(flex1y+flex2y+flex3y+flex4y)*0.25,ModulePosZ+flexGapZ*0.5); - // GeoTransform* cableflex_xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(0.0,0.0,-fabs(flex_angle)),cableflex_pos)); - GeoTransform* cableflex_xform = new GeoTransform(HepGeom::Translate3D(cableflex_pos)*HepGeom::RotateZ3D(fabs(flex_angle))); + GeoTrf::Translation3D cableflex_pos((flex1x+flex2x+flex3x+flex4x)*0.25,(flex1y+flex2y+flex3y+flex4y)*0.25,ModulePosZ+flexGapZ*0.5); + // GeoTransform* cableflex_xform = new GeoTransform(GeoTrf::Transform3D(GeoModelKernelUnits::HepRotation(0.0,0.0,-fabs(flex_angle)),cableflex_pos)); + GeoTransform* cableflex_xform = new GeoTransform(GeoTrf::Transform3D(cableflex_pos*GeoTrf::RotateZ3D(fabs(flex_angle)))); GeoLogVol * cableflex_logVol = 0; if(bFlexAndWing||bFlexConstantThickness) @@ -670,8 +672,8 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { // Add flex in 3D model : A component double zPos = (iModule+.5)*ModuleLength_flex+(iModule+.5)*ModuleGap_flex; - CLHEP::Hep3Vector wingflex_posA(wingFlexPosX, wingFlexPosY , zPos-ModuleLength_flex*.25); - GeoTransform* wingflex_xformA = new GeoTransform(HepGeom::Translate3D(wingflex_posA)*HepGeom::RotateZ3D(fabs(flex_angle))); + GeoTrf::Translation3D wingflex_posA(wingFlexPosX, wingFlexPosY , zPos-ModuleLength_flex*.25); + GeoTransform* wingflex_xformA = new GeoTransform(GeoTrf::Transform3D(wingflex_posA*GeoTrf::RotateZ3D(fabs(flex_angle)))); GeoPhysVol * wingflex_logVolPV_1 = new GeoPhysVol(wingflex_logVol); GeoNameTag* wingflex_tag = new GeoNameTag(wingName.str()); @@ -679,8 +681,8 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { logVolPV->add(wingflex_xformA); logVolPV->add(wingflex_logVolPV_1); - CLHEP::Hep3Vector wingflex_posA_2(wingFlexPosX, wingFlexPosY , zPos+ModuleLength_flex*.25); - GeoTransform* wingflex_xformA_2 = new GeoTransform(HepGeom::Translate3D(wingflex_posA_2)*HepGeom::RotateZ3D(fabs(flex_angle))); + GeoTrf::Translation3D wingflex_posA_2(wingFlexPosX, wingFlexPosY , zPos+ModuleLength_flex*.25); + GeoTransform* wingflex_xformA_2 = new GeoTransform(GeoTrf::Transform3D(wingflex_posA_2*GeoTrf::RotateZ3D(fabs(flex_angle)))); GeoPhysVol * wingflex_logVolPV_2 = new GeoPhysVol(wingflex_logVol); logVolPV->add(wingflex_tag); @@ -689,16 +691,16 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { // Add flex in 3D model : C component - CLHEP::Hep3Vector wingflex_posC(wingFlexPosX, wingFlexPosY , -zPos-ModuleLength_flex*.25); - GeoTransform* wingflex_xformC = new GeoTransform(HepGeom::Translate3D(wingflex_posC)*HepGeom::RotateZ3D(fabs(flex_angle))); + GeoTrf::Translation3D wingflex_posC(wingFlexPosX, wingFlexPosY , -zPos-ModuleLength_flex*.25); + GeoTransform* wingflex_xformC = new GeoTransform(GeoTrf::Transform3D(wingflex_posC*GeoTrf::RotateZ3D(fabs(flex_angle)))); GeoPhysVol * wingflex_logVolPV_C1 = new GeoPhysVol(wingflex_logVol); logVolPV->add(wingflex_tag); logVolPV->add(wingflex_xformC); logVolPV->add(wingflex_logVolPV_C1); - CLHEP::Hep3Vector wingflex_posC_2(wingFlexPosX, wingFlexPosY , -zPos+ModuleLength_flex*.25); - GeoTransform* wingflex_xformC_2 = new GeoTransform(HepGeom::Translate3D(wingflex_posC_2)*HepGeom::RotateZ3D(fabs(flex_angle))); + GeoTrf::Translation3D wingflex_posC_2(wingFlexPosX, wingFlexPosY , -zPos+ModuleLength_flex*.25); + GeoTransform* wingflex_xformC_2 = new GeoTransform(GeoTrf::Transform3D(wingflex_posC_2*GeoTrf::RotateZ3D(fabs(flex_angle)))); GeoPhysVol * wingflex_logVolPV_C2 = new GeoPhysVol(wingflex_logVol); logVolPV->add(wingflex_tag); @@ -713,7 +715,9 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { logVolPV->add(cableflex_xform); logVolPV->add(cableflex_logVolPV); - m_gmt_mgr->msg(MSG::INFO)<<cableflex_pos<<" "<<FlexThicknessRL<<" / "; + m_gmt_mgr->msg(MSG::INFO) + << "(" << cableflex_pos.x() << "," << cableflex_pos.y() << "," << cableflex_pos.z() << ")" + << " " << FlexThicknessRL<<" / "; // Add flex in 3D model : C component if((ModuleNumber_flex%2==1&&iModule>0)||ModuleNumber_flex%2==0) @@ -721,8 +725,8 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { std::ostringstream lname; lname << "StaveFlex_"<<iFlexModule<<"C"; - CLHEP::Hep3Vector cableflex_pos2((flex1x+flex2x+flex3x+flex4x)*0.25,(flex1y+flex2y+flex3y+flex4y)*0.25,-ModulePosZ-flexGapZ*0.5); - GeoTransform* cableflex_xform2 = new GeoTransform(HepGeom::Translate3D(cableflex_pos2)*HepGeom::RotateZ3D(fabs(flex_angle))); + GeoTrf::Translation3D cableflex_pos2((flex1x+flex2x+flex3x+flex4x)*0.25,(flex1y+flex2y+flex3y+flex4y)*0.25,-ModulePosZ-flexGapZ*0.5); + GeoTransform* cableflex_xform2 = new GeoTransform(GeoTrf::Transform3D(cableflex_pos2*GeoTrf::RotateZ3D(fabs(flex_angle)))); GeoLogVol * cableflex_logVol = 0; const GeoMaterial* scaledFlexMaterial=0; @@ -791,8 +795,8 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { wingName << "WingFlex"; // Add flex in 3D model : A component - CLHEP::Hep3Vector wingflex_posA((flex1x+flex2x+flex3x+flex4x)*0.25,(flex1y+flex2y+flex3y+flex4y)*0.25,(wingZmax-wingZmin)*.5+FlexStaveMiddleGap); - GeoTransform* wingflex_xformA = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(0.0,0.0,-fabs(flex_angle)),wingflex_posA)); + GeoTrf::Vector3D wingflex_posA((flex1x+flex2x+flex3x+flex4x)*0.25,(flex1y+flex2y+flex3y+flex4y)*0.25,(wingZmax-wingZmin)*.5+FlexStaveMiddleGap); + GeoTransform* wingflex_xformA = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0.0,0.0,-fabs(flex_angle)),wingflex_posA)); const GeoMaterial* wingflex_material= m_mat_mgr->getMaterial("pix::WingFlexA"); GeoLogVol * wingflex_logVol = new GeoLogVol(wingName.str(),wingflex_shape,wingflex_material); @@ -803,8 +807,8 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { logVolPV->add(wingflex_xformA); logVolPV->add(wingflex_logVolPV); - CLHEP::Hep3Vector wingflex_posC((flex1x+flex2x+flex3x+flex4x)*0.25,(flex1y+flex2y+flex3y+flex4y)*0.25,-((wingZmax-wingZmin)*.5+FlexStaveMiddleGap)); - GeoTransform* wingflex_xformC = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(0.0,0.0,-fabs(flex_angle)),wingflex_posC)); + GeoTrf::Vector3D wingflex_posC((flex1x+flex2x+flex3x+flex4x)*0.25,(flex1y+flex2y+flex3y+flex4y)*0.25,-((wingZmax-wingZmin)*.5+FlexStaveMiddleGap)); + GeoTransform* wingflex_xformC = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0.0,0.0,-fabs(flex_angle)),wingflex_posC)); logVolPV->add(wingflex_tag); logVolPV->add(wingflex_xformC); logVolPV->add(wingflex_logVolPV); @@ -829,16 +833,16 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { else { m_gmt_mgr->msg(MSG::INFO)<<"** TUBE : with Stycast "<<TubeGlueThick<<" diam "<<TubeOuterDiam*0.5<<" "<<TubeInnerDiam*0.5<<endmsg; - double glueVolume = (TubeOuterDiam*0.5+TubeGlueThick)*(TubeOuterDiam*0.5+TubeGlueThick)*CLHEP::pi*MiddleSectionLength; - double tubeOuterVolume = TubeOuterDiam*TubeOuterDiam*0.25*CLHEP::pi*MiddleSectionLength; - double tubeInnerVolume = TubeInnerDiam*TubeInnerDiam*0.25*CLHEP::pi*MiddleSectionLength; + double glueVolume = (TubeOuterDiam*0.5+TubeGlueThick)*(TubeOuterDiam*0.5+TubeGlueThick)*GeoModelKernelUnits::pi*MiddleSectionLength; + double tubeOuterVolume = TubeOuterDiam*TubeOuterDiam*0.25*GeoModelKernelUnits::pi*MiddleSectionLength; + double tubeInnerVolume = TubeInnerDiam*TubeInnerDiam*0.25*GeoModelKernelUnits::pi*MiddleSectionLength; const std::string compMatName="CoolingPipeGlue_IBL"; const GeoMaterial* cp_material = m_mat_mgr->getCompositeMaterialForVolume(compMatName, tubeOuterVolume-tubeInnerVolume, tubeOuterVolume-tubeInnerVolume,"pix::CoolingPipe_IBL", glueVolume-tubeOuterVolume,"pix::Stycast2850FT"); - m_gmt_mgr->msg(MSG::INFO)<<"***> new material : "<<cp_material->getName()<<" "<<cp_material->getDensity()/(CLHEP::gram/CLHEP::cm3)<<endmsg; + m_gmt_mgr->msg(MSG::INFO)<<"***> new material : "<<cp_material->getName()<<" "<<cp_material->getDensity()/(GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3)<<endmsg; cp_logVol = new GeoLogVol("CoolingPipe",coolingPipe,cp_material); } @@ -849,8 +853,8 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { // GeoPhysVol * cp_logPV = new GeoPhysVol(cp_log); GeoNameTag* cp_tag = new GeoNameTag("CoolingPipe"); - CLHEP::Hep3Vector cp_pos(xGblOffset+TubeMiddlePos,0.0,0.0); - GeoTransform* cp_xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),cp_pos)); + GeoTrf::Translate3D cp_pos(xGblOffset+TubeMiddlePos,0.0,0.0); + GeoTransform* cp_xform = new GeoTransform(cp_pos); foam_logVolPV->add(cp_tag); foam_logVolPV->add(cp_xform); foam_logVolPV->add(cp_logPV); @@ -861,8 +865,7 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { GeoPhysVol * cp_inner_logPV = new GeoPhysVol(cp_inner_log); GeoNameTag* cp_inner_tag = new GeoNameTag("CoolingPipeInner"); - CLHEP::Hep3Vector cp_inner_pos(0.0,0.0,0.0); - GeoTransform* cp_inner_xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),cp_inner_pos)); + GeoTransform* cp_inner_xform = new GeoTransform(GeoTrf::Transform3D::Identity()); cp_logPV->add(cp_inner_tag); cp_logPV->add(cp_inner_xform); cp_logPV->add(cp_inner_logPV); @@ -963,8 +966,8 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { GeoPhysVol * cp_endblock_logPV = new GeoPhysVol(cp_endblock_log); GeoNameTag* cp_endblock_tag = new GeoNameTag("EndBlockCoolingPipe"); - CLHEP::Hep3Vector cp_endblock_pos(xGblOffset+TubeMiddlePos,0.0,0.0); - GeoTransform* cp_endblock_xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),cp_endblock_pos)); + GeoTrf::Translate3D cp_endblock_pos(xGblOffset+TubeMiddlePos,0.0,0.0); + GeoTransform* cp_endblock_xform = new GeoTransform(cp_endblock_pos); m_endblockAPhysVol->add(cp_endblock_tag); m_endblockAPhysVol->add(cp_endblock_xform); m_endblockAPhysVol->add(cp_endblock_logPV); @@ -980,8 +983,7 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { GeoPhysVol * cp_endblock_inner_logPV = new GeoPhysVol(cp_endblock_inner_log); GeoNameTag* cp_endblock_inner_tag = new GeoNameTag("EndBlockCoolingPipeInner"); - CLHEP::Hep3Vector cp_endblock_inner_pos(0.0,0.0,0.0); - GeoTransform* cp_endblock_inner_xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),cp_endblock_inner_pos)); + GeoTransform* cp_endblock_inner_xform = new GeoTransform(GeoTrf::Transform3D::Identity()); cp_endblock_logPV->add(cp_endblock_inner_tag); cp_endblock_logPV->add(cp_endblock_inner_xform); cp_endblock_logPV->add(cp_endblock_inner_logPV); @@ -1024,8 +1026,8 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { // Add flex in 3D model : A component // GeoNameTag* cableflex_tag = new GeoNameTag(lname.str()); - CLHEP::Hep3Vector cableflex_pos(EndblockFlexXpos,EndblockFlexYpos,0.); - m_endblockFlexTrf = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(0.0,0.0,-fabs(flex_angle)),cableflex_pos)); + GeoTrf::Vector3D cableflex_pos(EndblockFlexXpos,EndblockFlexYpos,0.); + m_endblockFlexTrf = new GeoTransform(GeoTrf::GeoTransformRT(GeoTrf::GeoRotation(0.0,0.0,-fabs(flex_angle)),cableflex_pos)); GeoLogVol * cableflex_logVol = new GeoLogVol(lname.str(),cableflex_shape,scaledFlexMaterial); m_endblockFlexPhysVol = new GeoPhysVol(cableflex_logVol); @@ -1047,8 +1049,8 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { m_serviceCoolPipePhysVol = new GeoPhysVol(cp_service_log); // GeoNameTag* cp_service_tag = new GeoNameTag("ServiceCoolingPipe"); -// CLHEP::Hep3Vector cp_service_pos(xGblOffset+TubeMiddlePos,0.0,0.0); -// GeoTransform* cp_service_xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),cp_service_pos)); +// GeoTrf::Vector3D cp_service_pos(xGblOffset+TubeMiddlePos,0.0,0.0); +// GeoTransform* cp_service_xform = new GeoTransform(GeoTrf::Transform3D(GeoModelKernelUnits::HepRotation(),cp_service_pos)); // // service_logVolPV->add(cp_service_tag); // // service_logVolPV->add(cp_service_xform); // // service_logVolPV->add(cp_service_logPV); @@ -1062,17 +1064,16 @@ GeoVPhysVol* GeoPixelDetailedStaveSupport::Build() { GeoPhysVol * cp_service_inner_logPV = new GeoPhysVol(cp_service_inner_log); GeoNameTag* cp_service_inner_tag = new GeoNameTag("SrvCoolingPipeInner"); - CLHEP::Hep3Vector cp_service_inner_pos(0.0,0.0,0.0); - GeoTransform* cp_service_inner_xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),cp_service_inner_pos)); + GeoTransform* cp_service_inner_xform = new GeoTransform(GeoTrf::Transform3D::Identity()); m_serviceCoolPipePhysVol->add(cp_service_inner_tag); m_serviceCoolPipePhysVol->add(cp_service_inner_xform); m_serviceCoolPipePhysVol->add(cp_service_inner_logPV); - CLHEP::Hep3Vector cpipe_posA(xGblOffset+TubeMiddlePos,0.0,(MechanicalStaveLength*0.5+m_endblockSrvLength*0.5)-m_serviceZpos); - m_serviceCoolPipeTrfA = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),cpipe_posA)); + GeoTrf::Translate3D cpipe_posA(xGblOffset+TubeMiddlePos,0.0,(MechanicalStaveLength*0.5+m_endblockSrvLength*0.5)-m_serviceZpos); + m_serviceCoolPipeTrfA = new GeoTransform(GeoTrf::Transform3D(cpipe_posA)); - CLHEP::Hep3Vector cpipe_posC(xGblOffset+TubeMiddlePos,0.0,-((MechanicalStaveLength*0.5+m_endblockSrvLength*0.5)-m_serviceZpos)); - m_serviceCoolPipeTrfC = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),cpipe_posC)); + GeoTrf::Translate3D cpipe_posC(xGblOffset+TubeMiddlePos,0.0,-((MechanicalStaveLength*0.5+m_endblockSrvLength*0.5)-m_serviceZpos)); + m_serviceCoolPipeTrfC = new GeoTransform(GeoTrf::Transform3D(cpipe_posC)); } // ------------------------------------------------------------------------------------------------------------ @@ -1121,7 +1122,7 @@ void GeoPixelDetailedStaveSupport::computeStaveEnvelopTransformAndSize(double mo double stave_xOffset=StaveModuleOffset+moduleThickP, stave_yOffset=MechanicalStaveOffset; m_gmt_mgr->msg(MSG::INFO)<<" stave xoffset = "<< stave_xOffset <<endmsg; m_gmt_mgr->msg(MSG::INFO)<<" stave yoffset = "<< stave_yOffset <<endmsg; - m_transform = HepGeom::Translate3D(stave_xOffset,stave_yOffset,0); + m_transform = GeoTrf::Translate3D(stave_xOffset,stave_yOffset,0); double staveSupportThickness=FacePlateThick+m_FoamMiddleThick; m_thicknessP = staveSupportThickness; @@ -1310,7 +1311,7 @@ void GeoPixelDetailedStaveSupport::RemoveCoincidentAndColinearPointsFromShape(st int i2=(iPt+1)%(nbPoint); double zDist=fabs(sqrt((xPoint[i1]-xPoint[i2])*(xPoint[i1]-xPoint[i2])+(yPoint[i1]-yPoint[i2])*(yPoint[i1]-yPoint[i2]))); - if(zDist<0.01*CLHEP::mm){ + if(zDist<0.01*GeoModelKernelUnits::mm){ xPoint.erase(xPoint.begin()+i1); yPoint.erase(yPoint.begin()+i1); bRemovedPoint=true; @@ -1511,13 +1512,13 @@ void GeoPixelDetailedStaveSupport::AddSurroundingXYMargin(double vMarginX, doubl void GeoPixelDetailedStaveSupport::ComputeStaveExternalShape() { - HepGeom::Point3D<double> midStaveCenter(m_gmt_mgr->IBLStaveOmegaMidCenterX(),0.0,0.0); + GeoTrf::Vector3D midStaveCenter(m_gmt_mgr->IBLStaveOmegaMidCenterX(),0.0,0.0); double midStaveRadius=m_gmt_mgr->IBLStaveOmegaMidRadius(); - double midStaveAngle=90.0*CLHEP::deg-m_gmt_mgr->IBLStaveOmegaMidAngle(); + double midStaveAngle=90.0*GeoModelKernelUnits::deg-m_gmt_mgr->IBLStaveOmegaMidAngle(); - HepGeom::Point3D<double> endStaveCenter(m_gmt_mgr->IBLStaveOmegaEndCenterX(),m_gmt_mgr->IBLStaveOmegaEndCenterY(),0.0); + GeoTrf::Vector3D endStaveCenter(m_gmt_mgr->IBLStaveOmegaEndCenterX(),m_gmt_mgr->IBLStaveOmegaEndCenterY(),0.0); double endStaveRadius=m_gmt_mgr->IBLStaveOmegaEndRadius(); - double endStaveAngle=90.0*CLHEP::deg+m_gmt_mgr->IBLStaveOmegaEndAngle(); + double endStaveAngle=90.0*GeoModelKernelUnits::deg+m_gmt_mgr->IBLStaveOmegaEndAngle(); double omegaThick = m_gmt_mgr->IBLStaveOmegaThickness(); double omegaEndStavePointY = m_gmt_mgr->IBLStaveMechanicalStaveWidth()*0.5; @@ -1543,7 +1544,7 @@ void GeoPixelDetailedStaveSupport::ComputeStaveExternalShape() double endStavePt2=-sqrt(endStaveRadius*endStaveRadius-endStaveCenter.x()*endStaveCenter.x())+endStaveCenter.y(); double endStavePt=endStavePt1; if(fabs(endStavePt2-omegaEndStavePointY)<fabs(endStavePt1-omegaEndStavePointY))endStavePt=endStavePt2; - HepGeom::Point3D<double> endStavePoint(0.0,endStavePt,0.0); + GeoTrf::Vector3D endStavePoint(0.0,endStavePt,0.0); m_OmegaEndStaveThick=omegaEndStavePointY-endStavePt; m_gmt_mgr->msg(MSG::DEBUG)<<"End stave Y point : "<<endStavePt<<" "<<omegaEndStavePointY<<" -> "<<m_OmegaEndStaveThick<<endmsg; m_gmt_mgr->msg(MSG::DEBUG)<<"Angles : "<<midStaveAngle<<" "<<endStaveAngle<<endmsg; @@ -1551,37 +1552,36 @@ void GeoPixelDetailedStaveSupport::ComputeStaveExternalShape() // ***** compute points coordinates defining stave long side // midSidePt : point next to cooling pipe - HepGeom::Point3D<double> midSidePt(0.0,0.0,0.0); - midSidePt=HepGeom::Point3D<double>(midStaveCenter.x()+midStaveRadius*midCos, midStaveCenter.y()+midStaveRadius*midSin, 0.0); + GeoTrf::Vector3D midSidePt(midStaveCenter.x()+midStaveRadius*midCos, midStaveCenter.y()+midStaveRadius*midSin, 0.0); m_gmt_mgr->msg(MSG::DEBUG)<< "midSidePt : "<<midSidePt.x()<<" "<<midSidePt.y()<<endmsg; m_gmt_mgr->msg(MSG::DEBUG)<< "-> verif : "<<(midSidePt.x()-midStaveCenter.x())*(midSidePt.x()-midStaveCenter.x())+(midSidePt.y()-midStaveCenter.y())*(midSidePt.y()-midStaveCenter.y())-midStaveRadius*midStaveRadius<<" ps : "<<(midSidePt.x()-midStaveCenter.x())*midSin+(midSidePt.y()-midStaveCenter.y())*midCos<<endmsg; - HepGeom::Point3D<double> midSidePt_omega(0.0,0.0,0.0); - CLHEP::Hep3Vector midSideDir(midSidePt.x()-midStaveCenter.x(),midSidePt.y()-midStaveCenter.y(),0.0); + GeoTrf::Vector3D midSidePt_omega(0.0,0.0,0.0); + GeoTrf::Vector3D midSideDir(midSidePt.x()-midStaveCenter.x(),midSidePt.y()-midStaveCenter.y(),0.0); midSidePt_omega=NeighbourPoint_Rad(midSidePt,midSideDir,omegaThick); // endSidePt : point next to end of stave - HepGeom::Point3D<double> endSidePt(0.0,0.0,0.0); - endSidePt=HepGeom::Point3D<double>(endStaveCenter.x()+endStaveRadius*midCos, endStaveCenter.y()+endStaveRadius*midSin, 0.0); + GeoTrf::Vector3D endSidePt(0.0,0.0,0.0); + endSidePt=GeoTrf::Vector3D(endStaveCenter.x()+endStaveRadius*midCos, endStaveCenter.y()+endStaveRadius*midSin, 0.0); m_gmt_mgr->msg(MSG::DEBUG)<< "endSidePt : "<<endSidePt.x()<<" "<<endSidePt.y()<<endmsg; m_gmt_mgr->msg(MSG::DEBUG)<< "-> verif : "<<(endSidePt.x()-endStaveCenter.x())*(endSidePt.x()-endStaveCenter.x())+(endSidePt.y()-endStaveCenter.y())*(endSidePt.y()-endStaveCenter.y())-endStaveRadius*endStaveRadius<<" ps : "<<(endSidePt.x()-endStaveCenter.x())*midSin-(endSidePt.y()-endStaveCenter.y())*midCos<<endmsg; - HepGeom::Point3D<double> endSidePt_omega(0.0,0.0,0.0); - CLHEP::Hep3Vector endSideDir(endSidePt.x()-endStaveCenter.x(),endSidePt.y()-endStaveCenter.y(),0.0); + GeoTrf::Vector3D endSidePt_omega(0.0,0.0,0.0); + GeoTrf::Vector3D endSideDir(endSidePt.x()-endStaveCenter.x(),endSidePt.y()-endStaveCenter.y(),0.0); endSidePt_omega=NeighbourPoint_Rad(endSidePt,endSideDir,omegaThick); // ***** Points defining the vertex of foam module and omega module // Foam module - HepGeom::Point3D<double> midStavePoint(0.0,0.0,0.0); + GeoTrf::Vector3D midStavePoint(0.0,0.0,0.0); midStavePoint=IntersectionPoint(midSidePt.x(),midSidePt.y(),endSidePt.x(),endSidePt.y(), midSidePt.x(),-midSidePt.y(),endSidePt.x(),-endSidePt.y()); m_FoamMiddleThick=midStavePoint.x(); m_gmt_mgr->msg(MSG::DEBUG)<< "Foam thickness (middle) "<<m_FoamMiddleThick<<" ("<<midStavePoint.y()<<") "<<endmsg; // Omega module - HepGeom::Point3D<double> midStavePoint_omega(0.0,0.0,0.0); + GeoTrf::Vector3D midStavePoint_omega(0.0,0.0,0.0); midStavePoint_omega=IntersectionPoint(midSidePt_omega.x(),midSidePt_omega.y(),endSidePt_omega.x(),endSidePt_omega.y(), midSidePt_omega.x(),-midSidePt_omega.y(),endSidePt_omega.x(),-endSidePt_omega.y()); m_OmegaMidStaveThick=midStavePoint_omega.x()-midStavePoint.x(); @@ -1591,23 +1591,23 @@ void GeoPixelDetailedStaveSupport::ComputeStaveExternalShape() // ***** Points defining the rounded shape at the edge of the stave // Neighbour endstave point (without omega) - HepGeom::Point3D<double> endStavePoint_omega(0.0,0.0,0.0); - CLHEP::Hep3Vector endStaveDir(endStavePoint.x()-endStaveCenter.x(),endStavePoint.y()-endStaveCenter.y(),0.0); + GeoTrf::Vector3D endStavePoint_omega(0.0,0.0,0.0); + GeoTrf::Vector3D endStaveDir(endStavePoint.x()-endStaveCenter.x(),endStavePoint.y()-endStaveCenter.y(),0.0); endStavePoint_omega=NeighbourPoint_Rad(endStavePoint,endStaveDir,omegaThick); - HepGeom::Point3D<double> endSidePt_omega2(0.0,0.0,0.0); + GeoTrf::Vector3D endSidePt_omega2(0.0,0.0,0.0); endSidePt_omega2=IntersectionPoint(midSidePt_omega.x(),midSidePt_omega.y(),endSidePt_omega.x(),endSidePt_omega.y(), endStavePoint_omega.x(),endStavePoint_omega.y(),endStavePoint.x(),endStavePoint.y()+m_OmegaEndStaveThick); m_gmt_mgr->msg(MSG::DEBUG)<< "EndStave + omega par intersection X/Y "<<endSidePt_omega2.x()<<" "<<endSidePt_omega2.y()<<endmsg; m_OmegaEndStavePointX=endSidePt_omega2.x(); m_OmegaEndStavePointY=endSidePt_omega2.y(); - HepGeom::Point3D<double> endSidePt_inner(0.0,0.0,0.0); - CLHEP::Hep3Vector endSidePt_vec(endSidePt_omega2.x()-endStavePoint.x(),endSidePt_omega2.y()-(endStavePoint.y()+m_OmegaEndStaveThick),0.0); + GeoTrf::Vector3D endSidePt_inner(0.0,0.0,0.0); + GeoTrf::Vector3D endSidePt_vec(endSidePt_omega2.x()-endStavePoint.x(),endSidePt_omega2.y()-(endStavePoint.y()+m_OmegaEndStaveThick),0.0); endSidePt_inner=NeighbourPoint_Perp(endSidePt_omega2,endSidePt_vec,omegaThick,-1); // Compute Rx3,Ry3 coordinates - HepGeom::Point3D<double> endSidePt_inter(0.0,0.0,0.0); + GeoTrf::Vector3D endSidePt_inter(0.0,0.0,0.0); endSidePt_inter=IntersectionPoint(midSidePt.x(),midSidePt.y(),endSidePt.x(),endSidePt.y(), endSidePt_inner.x(),endSidePt_inner.y(),endStavePoint.x(),endStavePoint.y()); m_FoamEdgePointX=endSidePt_inter.x(); @@ -1623,7 +1623,7 @@ void GeoPixelDetailedStaveSupport::ComputeStaveExternalShape() m_gmt_mgr->msg(MSG::DEBUG)<< "Verfi angles : "<<angle1<<" "<<angle2<<" "<<angle3<<" / "<<angle1*180.0/3.1415<<" "<<angle2*180.0/3.1415<<endmsg; // Compute mid stave side point - HepGeom::Point3D<double> midSidePoint(0.0,0.0,0.0); + GeoTrf::Vector3D midSidePoint(0.0,0.0,0.0); midSidePoint=IntersectionPoint(midSidePt_omega.x(),midSidePt_omega.y(),endSidePt_omega.x(),endSidePt_omega.y(), 0.0,(endStavePoint.y()+m_OmegaEndStaveThick)*0.5,10.0,(endStavePoint.y()+m_OmegaEndStaveThick)*0.5); m_MidStaveSidePointX=midSidePoint.x(); @@ -1632,50 +1632,50 @@ void GeoPixelDetailedStaveSupport::ComputeStaveExternalShape() } -HepGeom::Point3D<double> GeoPixelDetailedStaveSupport::IntersectionPoint(double Ax,double Ay,double Bx,double By,double Cx,double Cy,double Dx,double Dy) +GeoTrf::Vector3D GeoPixelDetailedStaveSupport::IntersectionPoint(double Ax,double Ay,double Bx,double By,double Cx,double Cy,double Dx,double Dy) { double tmp=(Bx-Ax)*(Dy-Cy)-(By-Ay)*(Dx-Cx); double invTmp=1.0/tmp; double r=((Ay-Cy)*(Dx-Cx)-(Ax-Cx)*(Dy-Cy))*invTmp; - HepGeom::Point3D<double> inter(Ax+r*(Bx-Ax),Ay+r*(By-Ay),0.0); + GeoTrf::Vector3D inter(Ax+r*(Bx-Ax),Ay+r*(By-Ay),0.0); return inter; } -CLHEP::Hep3Vector GeoPixelDetailedStaveSupport::NormalizeDir(CLHEP::Hep3Vector v) +GeoTrf::Vector3D GeoPixelDetailedStaveSupport::NormalizeDir(GeoTrf::Vector3D v) { double tmp=1.0/sqrt(v.x()*v.x()+v.y()*v.y()); - return CLHEP::Hep3Vector(v.x()*tmp,v.y()*tmp,0.0); + return GeoTrf::Vector3D(v.x()*tmp,v.y()*tmp,0.0); } -HepGeom::Point3D<double> GeoPixelDetailedStaveSupport::NeighbourPoint_Rad(HepGeom::Point3D<double> p, CLHEP::Hep3Vector v, double delta) +GeoTrf::Vector3D GeoPixelDetailedStaveSupport::NeighbourPoint_Rad(GeoTrf::Vector3D p, GeoTrf::Vector3D v, double delta) { - CLHEP::Hep3Vector vNorm=NormalizeDir(v); + GeoTrf::Vector3D vNorm=NormalizeDir(v); double xnew=p.x()+delta*vNorm.x(); double ynew=p.y()+delta*vNorm.y(); - return HepGeom::Point3D<double>(xnew,ynew,0.0); + return GeoTrf::Vector3D(xnew,ynew,0.0); } -HepGeom::Point3D<double> GeoPixelDetailedStaveSupport::NeighbourPoint_Perp(HepGeom::Point3D<double> p, CLHEP::Hep3Vector v, double delta, int iDir) +GeoTrf::Vector3D GeoPixelDetailedStaveSupport::NeighbourPoint_Perp(GeoTrf::Vector3D p, GeoTrf::Vector3D v, double delta, int iDir) { - CLHEP::Hep3Vector vNorm=NormalizeDir(v); + GeoTrf::Vector3D vNorm=NormalizeDir(v); double xnew=p.x()-iDir*delta*vNorm.y(); double ynew=p.y()+iDir*delta*vNorm.x(); - return HepGeom::Point3D<double>(xnew,ynew,0.0); + return GeoTrf::Vector3D(xnew,ynew,0.0); } double GeoPixelDetailedStaveSupport::ComputeAngle(double ux, double uy, double vx, double vy) { - CLHEP::Hep3Vector u(ux,uy,0.0); - CLHEP::Hep3Vector v(vx,vy,0.0); + GeoTrf::Vector3D u(ux,uy,0.0); + GeoTrf::Vector3D v(vx,vy,0.0); - CLHEP::Hep3Vector uNorm=NormalizeDir(u); - CLHEP::Hep3Vector vNorm=NormalizeDir(v); + GeoTrf::Vector3D uNorm=NormalizeDir(u); + GeoTrf::Vector3D vNorm=NormalizeDir(v); double pScal=uNorm.x()*vNorm.x()+uNorm.y()*vNorm.y(); double angle=acos(pScal); @@ -1683,7 +1683,7 @@ double GeoPixelDetailedStaveSupport::ComputeAngle(double ux, double uy, double v return angle; } -double GeoPixelDetailedStaveSupport::ComputeDistance(HepGeom::Point3D<double> p, HepGeom::Point3D<double> q) +double GeoPixelDetailedStaveSupport::ComputeDistance(GeoTrf::Vector3D p, GeoTrf::Vector3D q) { return sqrt((q.x()-p.x())*(q.x()-p.x())+(q.y()-p.y())*(q.y()-p.y())); } diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelDetailedStaveSupport.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDetailedStaveSupport.h similarity index 80% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelDetailedStaveSupport.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDetailedStaveSupport.h index 0542199492805e25f2d2a06623bc588a0ada1400..9eaadecff17414982a67fe5281f7ff0825a7932d 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelDetailedStaveSupport.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDetailedStaveSupport.h @@ -5,8 +5,9 @@ #ifndef GEOPIXELDETAILEDSTAVESUPPORT_H #define GEOPIXELDETAILEDSTAVESUPPORT_H -#include "PixelGeoModel/GeoPixelStaveSupport.h" -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoPixelStaveSupport.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" @@ -16,7 +17,7 @@ public: GeoPixelDetailedStaveSupport(); virtual GeoVPhysVol* Build(); virtual GeoVPhysVol* getPhysVol() const {return m_physVol;} - virtual const HepGeom::Transform3D & transform() const {return m_transform;} + virtual const GeoTrf::Transform3D & transform() const {return m_transform;} virtual double thicknessP() const {return m_thicknessP;} virtual double thicknessN() const {return m_thicknessN;} virtual GeoSimplePolygonBrep* computeStaveEnvelopShape( double safetyMargin); @@ -46,7 +47,7 @@ private: GeoTransform* m_serviceCoolPipeTrfA; GeoTransform* m_serviceCoolPipeTrfC; - HepGeom::Transform3D m_transform; + GeoTrf::Transform3D m_transform; double m_thicknessP; double m_thicknessN; double m_thicknessN_svc; @@ -73,12 +74,12 @@ private: double m_MidStaveSidePointY; void ComputeStaveExternalShape(); - HepGeom::Point3D<double> IntersectionPoint(double Ax,double Ay,double Bx,double By,double Cx,double Cy,double Dx,double Dy); - CLHEP::Hep3Vector NormalizeDir(CLHEP::Hep3Vector v); - HepGeom::Point3D<double> NeighbourPoint_Rad(HepGeom::Point3D<double> p, CLHEP::Hep3Vector v, double delta); - HepGeom::Point3D<double> NeighbourPoint_Perp(HepGeom::Point3D<double> p, CLHEP::Hep3Vector v, double delta, int iDir); + GeoTrf::Vector3D IntersectionPoint(double Ax,double Ay,double Bx,double By,double Cx,double Cy,double Dx,double Dy); + GeoTrf::Vector3D NormalizeDir(GeoTrf::Vector3D v); + GeoTrf::Vector3D NeighbourPoint_Rad(GeoTrf::Vector3D p, GeoTrf::Vector3D v, double delta); + GeoTrf::Vector3D NeighbourPoint_Perp(GeoTrf::Vector3D p, GeoTrf::Vector3D v, double delta, int iDir); double ComputeAngle(double ux, double uy, double vx, double vy); - double ComputeDistance(HepGeom::Point3D<double> p, HepGeom::Point3D<double> q); + double ComputeDistance(GeoTrf::Vector3D p, GeoTrf::Vector3D q); }; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDisk.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDisk.cxx index bc0d5132beb734623959f1bdef8160b3dd43b4e8..3ba59bf0a3c4448ce070940906f03cf50a8ee5a4 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDisk.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDisk.cxx @@ -2,10 +2,10 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/GeoPixelDisk.h" -#include "PixelGeoModel/GeoPixelModule.h" -#include "PixelGeoModel/GeoPixelDiskSupports.h" -#include "PixelGeoModel/GeoPixelSiCrystal.h" +#include "GeoPixelDisk.h" +#include "GeoPixelModule.h" +#include "GeoPixelDiskSupports.h" +#include "GeoPixelSiCrystal.h" #include "InDetGeoModelUtils/ExtraMaterial.h" @@ -55,7 +55,7 @@ GeoVPhysVol* GeoPixelDisk::Build( ) { // Need to specify some eta. Assume all module the same GeoPixelModule psd(theSensor); double zpos = m_gmt_mgr->PixelECSiDz1()*0.5; - double deltaPhi = 360.*CLHEP::deg/ (float) nbECSector; + double deltaPhi = 360.*GeoModelKernelUnits::deg/ (float) nbECSector; // This is the start angle of the even modules (3.75 deg): double startAngle = deltaPhi*0.25; // Start angle could eventually come from the database... @@ -133,19 +133,20 @@ GeoVPhysVol* GeoPixelDisk::Build( ) { m_gmt_mgr->SetPhi(phiId); double angle = ii*0.5*deltaPhi+startAngle; - //if ( m_gmt_mgr->GetSide()<0 ) angle = 360*CLHEP::deg-(ii*deltaPhi+startAngle); + //if ( m_gmt_mgr->GetSide()<0 ) angle = 360*GeoModelKernelUnits::deg-(ii*deltaPhi+startAngle); int diskSide = (ii%2) ? +1 : -1; // even: -1, odd +1 - CLHEP::HepRotation rm; - rm.rotateY(90*CLHEP::deg); + + + GeoTrf::Transform3D rmX(GeoTrf::Transform3D::Identity()); if (oldGeometry && m_gmt_mgr->GetSide()<0) { - if (diskSide > 0) rm.rotateX(180.*CLHEP::deg); // This is for compatibilty with older geomtries. + if (diskSide > 0) rmX = GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg); // This is for compatibilty with older geomtries. } else { - if (diskSide < 0) rm.rotateX(180.*CLHEP::deg); // depth axis points towards disk. + if (diskSide < 0) rmX = GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg); // depth axis points towards disk. } - rm.rotateZ(angle); - CLHEP::Hep3Vector pos(moduleRadius,0.,diskSide*zpos); - pos.rotateZ(angle); - GeoAlignableTransform* xform = new GeoAlignableTransform(HepGeom::Transform3D(rm,pos)); + GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(angle) * rmX * GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + GeoTrf::Vector3D pos(moduleRadius,0.,diskSide*zpos); + pos = GeoTrf::RotateZ3D(angle)*pos; + GeoAlignableTransform* xform = new GeoAlignableTransform(GeoTrf::Translate3D(pos.x(),pos.y(),pos.z())*rm); GeoVPhysVol * modulePhys = psd.Build(); std::ostringstream nameTag; nameTag << "ModuleEC" << phiId; @@ -166,7 +167,7 @@ GeoVPhysVol* GeoPixelDisk::Build( ) { GeoPixelDiskSupports pds; for(int ii =0; ii< pds.NCylinders(); ii++) { pds.SetCylinder(ii); - GeoTransform* xform = new GeoTransform( HepGeom::Translate3D(0, 0, pds.ZPos()) ); + GeoTransform* xform = new GeoTransform( GeoTrf::Translate3D(0, 0, pds.ZPos()) ); diskPhys->add(xform); diskPhys->add(pds.Build() ); } @@ -207,11 +208,11 @@ double GeoPixelDisk::Thickness() { // 7-1 I switch to the minimum thickness possible as the cables are right // outside this volume. // - // return 10*CLHEP::mm; + // return 10*GeoModelKernelUnits::mm; // GWG. It would be nice to get these numbers from the module itself to // ensure consistency. - double safety = 0.01* CLHEP::mm; // This is the safety added to the module. - double zClearance = 0.5 * CLHEP::mm; // Clearance for misalignments + double safety = 0.01* GeoModelKernelUnits::mm; // This is the safety added to the module. + double zClearance = 0.5 * GeoModelKernelUnits::mm; // Clearance for misalignments double tck = 2*(safety + 0.5*m_gmt_mgr->PixelBoardThickness() + std::max(m_gmt_mgr->PixelHybridThickness(), m_gmt_mgr->PixelChipThickness()+m_gmt_mgr->PixelChipGap()) diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelDisk.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDisk.h similarity index 87% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelDisk.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDisk.h index 2c0c281e84e3a17ff7c746d57390c7554975cee5..484e5919ae5950fd2d3242d18338587683e09baf 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelDisk.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDisk.h @@ -5,7 +5,7 @@ #ifndef GEOPIXELDISK_H #define GEOPIXELDISK_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" class GeoLogVol; class GeoPixelDisk : public GeoVPixelFactory { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDiskSLHC.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDiskSLHC.cxx index deeca836e1f4db019d4235b01845d5dc7aff23f9..13d094d8afe8209fc95f7132363418bcbb3cf85e 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDiskSLHC.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDiskSLHC.cxx @@ -2,10 +2,10 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/GeoPixelDiskSLHC.h" -#include "PixelGeoModel/GeoPixelDiskSupports.h" -#include "PixelGeoModel/GeoPixelSiCrystal.h" -#include "PixelGeoModel/GeoPixelRingSLHC.h" +#include "GeoPixelDiskSLHC.h" +#include "GeoPixelDiskSupports.h" +#include "GeoPixelSiCrystal.h" +#include "GeoPixelRingSLHC.h" #include "InDetGeoModelUtils/ExtraMaterial.h" @@ -77,7 +77,7 @@ GeoVPhysVol* GeoPixelDiskSLHC::Build( ) { // front rings first (away from IP) m_gmt_mgr->setDiskFront(); GeoPixelRingSLHC gpRingF(theSensor); - GeoTransform* xfront = new GeoTransform( HepGeom::Translate3D(0, 0, zpos) ); + GeoTransform* xfront = new GeoTransform( GeoTrf::Translate3D(0, 0, zpos) ); diskPhys->add( new GeoNameTag("PixelECRing") ); diskPhys->add( new GeoIdentifierTag(2*iring) ); diskPhys->add( xfront ); @@ -89,7 +89,7 @@ GeoVPhysVol* GeoPixelDiskSLHC::Build( ) { // then back rings (near IP) m_gmt_mgr->setDiskBack(); GeoPixelRingSLHC gpRingB(theSensor); - GeoTransform* xback = new GeoTransform( HepGeom::Translate3D(0, 0, -zpos) ); + GeoTransform* xback = new GeoTransform( GeoTrf::Translate3D(0, 0, -zpos) ); diskPhys->add( new GeoNameTag("PixelECRing") ); diskPhys->add( new GeoIdentifierTag(2*iring+1) ); // unique diskPhys->add( xback ); @@ -103,7 +103,7 @@ GeoVPhysVol* GeoPixelDiskSLHC::Build( ) { for(int ii =0; ii< pds.NCylinders(); ii++) { pds.SetCylinder(ii); GeoNameTag* tag = new GeoNameTag("DiskSupport"); - GeoTransform* xform = new GeoTransform( HepGeom::Translate3D(0, 0, pds.ZPos()) ); + GeoTransform* xform = new GeoTransform( GeoTrf::Translate3D(0, 0, pds.ZPos()) ); diskPhys->add(tag); diskPhys->add(xform); diskPhys->add(pds.Build() ); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelDiskSLHC.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDiskSLHC.h similarity index 85% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelDiskSLHC.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDiskSLHC.h index 4397cfdf5f5636cb52269dfc4171250d0e462381..d3b882e6d1cbd18fc20555dab7845d0d566b7e3b 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelDiskSLHC.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDiskSLHC.h @@ -5,7 +5,7 @@ #ifndef GEOPIXELDISKSLHC_H #define GEOPIXELDISKSLHC_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" class GeoPixelDiskSLHC : public GeoVPixelFactory { public: diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDiskSupports.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDiskSupports.cxx index a305d0e53c777530d11906cb327eca23be117034..7e3e94f2b598f610b07b7720513ed6a0074c1d62 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDiskSupports.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDiskSupports.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/GeoPixelDiskSupports.h" +#include "GeoPixelDiskSupports.h" #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelDiskSupports.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDiskSupports.h similarity index 92% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelDiskSupports.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDiskSupports.h index 1a7c34155504c5b3d384b23dcb415fca72ce2a8a..c60302eac1aeb8f18bebabc0e7f03fa0d8fbf481 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelDiskSupports.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelDiskSupports.h @@ -5,7 +5,7 @@ #ifndef GEOPIXELDISKSUPPORTS_H #define GEOPIXELDISKSUPPORTS_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" class GeoLogVol; class GeoPixelDiskSupports : public GeoVPixelFactory { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelECCable.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelECCable.cxx index b0a9ff094aa99d9e2faf3f8d4587c19f6241b52e..552112bcba06ed13f19b93efa951be426fd6f9d3 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelECCable.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelECCable.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/GeoPixelECCable.h" +#include "GeoPixelECCable.h" #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelECCable.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelECCable.h similarity index 86% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelECCable.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelECCable.h index cde825e4b4e00c54b8f83eefeedf32ac46191af0..ec4bf77bb4e007d456ac0443eff0b586cb846a4f 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelECCable.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelECCable.h @@ -5,7 +5,7 @@ #ifndef GEOPIXELECCABLE_H #define GEOPIXELECCABLE_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" class GeoLogVol; class GeoPixelECCable : public GeoVPixelFactory { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelEndCap.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelEndCap.cxx index 533c324f560b88a94fd5e1e38aa0250b5ff26ca0..4279d0d89a2b84a19553f701e3afb29b5f4593f0 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelEndCap.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelEndCap.cxx @@ -2,11 +2,11 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/GeoPixelEndCap.h" -#include "PixelGeoModel/GeoPixelDisk.h" -#include "PixelGeoModel/GeoPixelDiskSLHC.h" -#include "PixelGeoModel/GeoPixelECCable.h" -#include "PixelGeoModel/GeoPixelServices.h" +#include "GeoPixelEndCap.h" +#include "GeoPixelDisk.h" +#include "GeoPixelDiskSLHC.h" +#include "GeoPixelECCable.h" +#include "GeoPixelServices.h" #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoNameTag.h" @@ -78,7 +78,7 @@ GeoVPhysVol* GeoPixelEndCap::Build( ) { std::ostringstream nameTag; nameTag << "Disk" << idisk; GeoNameTag * tag = new GeoNameTag(nameTag.str()); - GeoAlignableTransform* xform = new GeoAlignableTransform(HepGeom::TranslateZ3D(zdisk)); + GeoAlignableTransform* xform = new GeoAlignableTransform(GeoTrf::TranslateZ3D(zdisk)); GeoVPhysVol * diskPhys = 0; if (m_gmt_mgr->slhc()) { @@ -102,10 +102,10 @@ GeoVPhysVol* GeoPixelEndCap::Build( ) { // if (pecc && pd) { // Not in SLHC double dz = pd->Thickness()/2. + m_gmt_mgr->PixelECCablesDistance() ; - GeoTransform * xformCablesPlus = new GeoTransform(HepGeom::TranslateZ3D(zdisk+dz)); + GeoTransform * xformCablesPlus = new GeoTransform(GeoTrf::TranslateZ3D(zdisk+dz)); ecPhys->add(xformCablesPlus); ecPhys->add(pecc->Build() ); - GeoTransform * xformCablesMinus = new GeoTransform(HepGeom::TranslateZ3D(zdisk-dz)); + GeoTransform * xformCablesMinus = new GeoTransform(GeoTrf::TranslateZ3D(zdisk-dz)); ecPhys->add(xformCablesMinus); ecPhys->add(pecc->Build() ); } diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelEndCap.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelEndCap.h similarity index 89% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelEndCap.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelEndCap.h index 72b43040a8ac278c5921ee1d9cf7cbd3cab19f0a..eba497217a34eeb1eded74c7e0ff3b1cd373b785 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelEndCap.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelEndCap.h @@ -5,7 +5,7 @@ #ifndef GEOPIXELENDCAP_H #define GEOPIXELENDCAP_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" class GeoPixelServices; class GeoPixelEndCap : public GeoVPixelFactory { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelEnvelope.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelEnvelope.cxx index 1f1bdb7fab8dcdf710bd0b347a21f7f3b0f5acb9..0a19ebf30ecb225e9a89ac48438ed8ab495f2715 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelEnvelope.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelEnvelope.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/GeoPixelEnvelope.h" +#include "GeoPixelEnvelope.h" #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoPcon.h" #include "GeoModelKernel/GeoLogVol.h" @@ -12,14 +12,14 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoMaterial.h" -#include "PixelGeoModel/GeoPixelBarrel.h" -#include "PixelGeoModel/GeoPixelEndCap.h" -#include "PixelGeoModel/GeoPixelServices.h" -#include "PixelGeoModel/GeoPixelFrame.h" -#include "PixelGeoModel/GeoPixelOldFrame.h" -#include "PixelGeoModel/GeoPixelIFlexServices.h" -#include "PixelGeoModel/GeoPixelIBLFwdServices.h" -#include "PixelGeoModel/DBM_Det.h" +#include "GeoPixelBarrel.h" +#include "GeoPixelEndCap.h" +#include "GeoPixelServices.h" +#include "GeoPixelFrame.h" +#include "GeoPixelOldFrame.h" +#include "GeoPixelIFlexServices.h" +#include "GeoPixelIBLFwdServices.h" +#include "DBM_Det.h" #include "InDetGeoModelUtils/VolumeBuilder.h" #include "InDetGeoModelUtils/VolumeSplitterUtils.h" @@ -59,7 +59,7 @@ GeoVPhysVol* GeoPixelEnvelope::Build( ) { envelopeShape = new GeoTube(rmin,rmax,halflength); pixZone = new InDetDD::TubeZone("Pixel",-halflength,halflength,rmin,rmax); } else { - GeoPcon* envelopeShapeTmp = new GeoPcon(0.,2*CLHEP::pi); + GeoPcon* envelopeShapeTmp = new GeoPcon(0.,2*GeoModelKernelUnits::pi); // table contains +ve z values only and envelope is assumed to be symmetric around z. int numPlanes = m_gmt_mgr->PixelEnvelopeNumPlanes(); for (int i = 0; i < numPlanes * 2; i++) { @@ -91,7 +91,7 @@ GeoVPhysVol* GeoPixelEnvelope::Build( ) { // // Add the Barrel: // - HepGeom::Transform3D barrelTransform = m_gmt_mgr->partTransform("Barrel"); + GeoTrf::Transform3D barrelTransform = m_gmt_mgr->partTransform("Barrel"); m_gmt_mgr->SetBarrel(); GeoPixelBarrel brl(pixServices); @@ -115,10 +115,10 @@ GeoVPhysVol* GeoPixelEnvelope::Build( ) { m_DDmgr->numerology().addEndcap(2); - HepGeom::Transform3D endcapATransform = m_gmt_mgr->partTransform("EndcapA"); + GeoTrf::Transform3D endcapATransform = m_gmt_mgr->partTransform("EndcapA"); m_gmt_mgr->SetPos(); - GeoTransform* xform = new GeoTransform(endcapATransform * HepGeom::TranslateZ3D(zpos)); + GeoTransform* xform = new GeoTransform(endcapATransform * GeoTrf::TranslateZ3D(zpos)); GeoNameTag* tag = new GeoNameTag("EndCapA"); envelopePhys->add(tag); envelopePhys->add(new GeoIdentifierTag(2)); @@ -131,11 +131,11 @@ GeoVPhysVol* GeoPixelEnvelope::Build( ) { m_DDmgr->numerology().addEndcap(-2); - HepGeom::Transform3D endcapCTransform = m_gmt_mgr->partTransform("EndcapC"); + GeoTrf::Transform3D endcapCTransform = m_gmt_mgr->partTransform("EndcapC"); m_gmt_mgr->SetEndcap(); m_gmt_mgr->SetNeg(); - GeoTransform* xform = new GeoTransform(endcapCTransform * HepGeom::TranslateZ3D(-zpos) * HepGeom::RotateY3D(180*CLHEP::deg)); + GeoTransform* xform = new GeoTransform(endcapCTransform * GeoTrf::TranslateZ3D(-zpos) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg)); GeoNameTag* tag = new GeoNameTag("EndCapC"); envelopePhys->add(tag); envelopePhys->add(new GeoIdentifierTag(-2)); @@ -237,7 +237,7 @@ GeoVPhysVol* GeoPixelEnvelope::Build( ) { // so if change then change in DBM_module too if (m_gmt_mgr->dbm()) { - HepGeom::Translate3D dbmTransform1( 0, 0, 887.002*CLHEP::mm + ( m_gmt_mgr->DBMTelescopeZ() )/2.); //Add 0.002mm to 887mm for safety + GeoTrf::Translate3D dbmTransform1( 0, 0, 887.002*GeoModelKernelUnits::mm + ( m_gmt_mgr->DBMTelescopeZ() )/2.); //Add 0.002mm to 887mm for safety //m_DDmgr->numerology().addEndcap(4); m_gmt_mgr->SetPartsDBM(); @@ -253,7 +253,7 @@ GeoVPhysVol* GeoPixelEnvelope::Build( ) { //m_DDmgr->numerology().addEndcap(-4); m_gmt_mgr->SetNeg(); GeoNameTag* tag2 = new GeoNameTag("DBMC"); - GeoTransform* dbmTransform2 = new GeoTransform(HepGeom::TranslateZ3D(-887.002*CLHEP::mm - ( m_gmt_mgr->DBMTelescopeZ() )/2.) * HepGeom::RotateY3D(180*CLHEP::deg)); + GeoTransform* dbmTransform2 = new GeoTransform(GeoTrf::TranslateZ3D(-887.002*GeoModelKernelUnits::mm - ( m_gmt_mgr->DBMTelescopeZ() )/2.) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg)); envelopePhys->add(tag2); envelopePhys->add(new GeoIdentifierTag(-4)); envelopePhys->add(dbmTransform2); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelEnvelope.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelEnvelope.h similarity index 84% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelEnvelope.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelEnvelope.h index 0e21e84d5bf9e63703bc83bf85c491393f8cd886..da67c0c8e4623d33a509ff210a910c0705b9a44f 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelEnvelope.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelEnvelope.h @@ -5,7 +5,7 @@ #ifndef GEOPIXELENVELOPE_H #define GEOPIXELENVELOPE_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" class GeoPixelEnvelope : public GeoVPixelFactory { public: diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelFluid.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelFluid.cxx index 4f353b767dc4319c7c3a99470ce2d9cc24d51dfd..5a9fc2db145a2e6a7ca17850cee031193581f5ea 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelFluid.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelFluid.cxx @@ -6,7 +6,7 @@ // This class builds one trapezoid // // -#include "PixelGeoModel/GeoPixelFluid.h" +#include "GeoPixelFluid.h" #include "GeoModelKernel/GeoTrd.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelFluid.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelFluid.h similarity index 91% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelFluid.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelFluid.h index e6503ca4be0140054e4e4b14a0a64d73f4ec6859..06909551298b43c11e6fe630b24ca67ff045adc3 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelFluid.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelFluid.h @@ -5,7 +5,7 @@ #ifndef GEOPIXELFLUID_H #define GEOPIXELFLUID_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" #include <sstream> class GeoLogVol; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelFrame.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelFrame.cxx index b1a906be92f6ace1f93ca698705aeb41f31184cb..e626969c244f7d3ef7fc5cc2311a1480d80238a3 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelFrame.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelFrame.cxx @@ -4,7 +4,8 @@ // Build the global support frame -#include "PixelGeoModel/GeoPixelFrame.h" +#include "GeoPixelFrame.h" +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoPara.h" #include "GeoModelKernel/GeoTrap.h" @@ -14,8 +15,7 @@ #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoTransform.h" - -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <algorithm> GeoPixelFrame::GeoPixelFrame() @@ -47,18 +47,18 @@ void GeoPixelFrame::BuildAndPlace(GeoFullPhysVol * parent, int section) //////////////////////// // Make envelope to hold the frame - //double safety = 0.001 * CLHEP::mm; - double epsilon = 0.00001 * CLHEP::mm; + //double safety = 0.001 * GeoModelKernelUnits::mm; + double epsilon = 0.00001 * GeoModelKernelUnits::mm; double halflength = 0.5*std::abs(zmax - zmin); - double alpha = CLHEP::pi/numSides; + double alpha = GeoModelKernelUnits::pi/numSides; double cosalpha = cos(alpha); double sinalpha = sin(alpha); /* double rminEnv = (rminSide-safety)/cosalpha; double rmaxEnv = (rmaxSide+safety)/cosalpha; - GeoPgon * frameEnvShape = new GeoPgon(phiLoc-alpha,2*CLHEP::pi,numSides); + GeoPgon * frameEnvShape = new GeoPgon(phiLoc-alpha,2*GeoModelKernelUnits::pi,numSides); frameEnvShape->addPlane(zCenter-halflength-0.5*epsilon,rminEnv,rmaxEnv); frameEnvShape->addPlane(zCenter+halflength+0.5*epsilon,rminEnv,rmaxEnv); @@ -134,7 +134,7 @@ void GeoPixelFrame::BuildAndPlace(GeoFullPhysVol * parent, int section) if (numElements) { double sideThick = rmaxSide - rminSide; - std::vector<HepGeom::Transform3D> sideTransVec; + std::vector<GeoTrf::Transform3D> sideTransVec; std::vector<GeoShape *> sideElementShapeVec; sideTransVec.reserve(numElements); sideElementShapeVec.reserve(numElements); @@ -160,7 +160,7 @@ void GeoPixelFrame::BuildAndPlace(GeoFullPhysVol * parent, int section) zSideMax = std::max(zSideMax, zmaxInput); } GeoShape * sideElementShape = 0; - HepGeom::Transform3D rotateShape; + GeoTrf::Transform3D rotateShape(GeoTrf::Transform3D::Identity()); double shapeVolume = 0; if (same(zMin1,zMin2) && same(zMax1,zMax2)) { // Use a box @@ -172,13 +172,13 @@ void GeoPixelFrame::BuildAndPlace(GeoFullPhysVol * parent, int section) double thetaPara = 0; double phiPara = 0; sideElementShape = new GeoPara(0.5*std::abs(zMax1-zMin1), 0.5*sideWidth-epsilon, 0.5*sideThick, alphaPara, thetaPara, phiPara); - rotateShape = HepGeom::RotateY3D(-90*CLHEP::deg); + rotateShape = GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); shapeVolume = std::abs(zMax1-zMin1) * (sideWidth-2*epsilon) * sideThick; } else {// // other cases not implemented. Should not occur for the frame. std::cout << "GeoPixelFrame: This case is not handled for building the frame" << std::endl; } - sideTransVec.push_back(HepGeom::TranslateZ3D(0.25*(zMin1+zMin2+zMax1+zMax2))*rotateShape); + sideTransVec.push_back(GeoTrf::TranslateZ3D(0.25*(zMin1+zMin2+zMax1+zMax2))*rotateShape); sideElementShapeVec.push_back(sideElementShape); //totSideVolume += sideElementShape->volume(); totSideVolume += shapeVolume; @@ -194,7 +194,7 @@ void GeoPixelFrame::BuildAndPlace(GeoFullPhysVol * parent, int section) std::string sideMatName = m_gmt_mgr->PixelFrameSideMaterial(section); const GeoMaterial* sideMat = m_mat_mgr->getMaterialForVolume(sideMatName,numSides*totSideVolume); for (int iElement = 0; iElement < numElements; iElement++) { - GeoTransform * transSideElement = new GeoTransform(HepGeom::TranslateZ3D(-zSideCenter)*sideTransVec[iElement]); + GeoTransform * transSideElement = new GeoTransform(GeoTrf::TranslateZ3D(-zSideCenter)*sideTransVec[iElement]); std::ostringstream frameSideName; frameSideName << "FrameSide" << iElement; GeoLogVol * sideElementLV = new GeoLogVol(frameSideName.str(), sideElementShapeVec[iElement], sideMat); @@ -212,18 +212,18 @@ void GeoPixelFrame::BuildAndPlace(GeoFullPhysVol * parent, int section) // place the corners and sides. for (int iSide = 0; iSide<numSides; iSide++) { double angleCorner = phiLoc + alpha * (2*iSide - 1); - GeoTransform * cornerTrans = new GeoTransform(HepGeom::TranslateZ3D(zCenter)*HepGeom::RotateZ3D(angleCorner)); + GeoTransform * cornerTrans = new GeoTransform(GeoTrf::TranslateZ3D(zCenter)*GeoTrf::RotateZ3D(angleCorner)); // Place the corners parent->add(cornerTrans); parent->add(cornerPV); if (sideEnvelopePV) { double angleSide = phiLoc + alpha * (2*iSide); - HepGeom::Transform3D oddEvenRotate; + GeoTrf::Transform3D oddEvenRotate(GeoTrf::Transform3D::Identity()); if (iSide%2 && mirrorSides) { - oddEvenRotate = HepGeom::RotateZ3D(CLHEP::pi); // Every 2nd side we mirror the side. + oddEvenRotate = GeoTrf::RotateZ3D(GeoModelKernelUnits::pi); // Every 2nd side we mirror the side. } - GeoTransform * sideTrans = new GeoTransform(HepGeom::TranslateZ3D(zSideCenter)*HepGeom::RotateZ3D(angleSide) - *HepGeom::TranslateX3D(midRadius)*oddEvenRotate); + GeoTransform * sideTrans = new GeoTransform(GeoTrf::TranslateZ3D(zSideCenter)*GeoTrf::RotateZ3D(angleSide) + *GeoTrf::TranslateX3D(midRadius)*oddEvenRotate); // Place the sides parent->add(sideTrans); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelFrame.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelFrame.h similarity index 90% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelFrame.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelFrame.h index 34d97b4b46b07be70c39f1c2d5e8e2d41254ef64..6648da6ba285bc9815daf58a26dd9ab86b0039f3 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelFrame.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelFrame.h @@ -5,7 +5,7 @@ #ifndef GEOPIXELFRAME_H #define GEOPIXELFRAME_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" class GeoPixelFrame : public GeoVPixelFactory { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelHybrid.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelHybrid.cxx index 84086a8f87c5a7f43bfa4b351badea88b3378a96..d2918ede95e25e3debd495385e79f76497789e04 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelHybrid.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelHybrid.cxx @@ -11,7 +11,7 @@ // // Contains: nothing // -#include "PixelGeoModel/GeoPixelHybrid.h" +#include "GeoPixelHybrid.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelHybrid.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelHybrid.h similarity index 88% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelHybrid.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelHybrid.h index 21a12fd12d9b1b6eb14d12f2ec1808571fc9bfbb..ed159c5257e5e0f2d03180a0b3b1b35ff4d33da8 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelHybrid.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelHybrid.h @@ -5,7 +5,7 @@ #ifndef GEOPIXELHYBRID_H #define GEOPIXELHYBRID_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" class GeoLogVol; class GeoPixelHybrid : public GeoVPixelFactory { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdServices.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdServices.cxx index e39504eb91e3846a555a1debc3e923ee6eac33cb..616831e979f99cd11ce0d886d91c33c47fee55ac 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdServices.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdServices.cxx @@ -6,10 +6,10 @@ // Build IBL fwd services (wavy shape) // This is built one time per layer. -#include "PixelGeoModel/GeoPixelIBLFwdServices.h" +#include "GeoPixelIBLFwdServices.h" -#include "PixelGeoModel/GeoPixelIBLFwdSvcCADModel.h" -#include "PixelGeoModel/GeoPixelIBLFwdSvcModel1.h" +#include "GeoPixelIBLFwdSvcCADModel.h" +#include "GeoPixelIBLFwdSvcModel1.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelIBLFwdServices.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdServices.h similarity index 81% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelIBLFwdServices.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdServices.h index 4b5984340d486f41c854f2d064256f1d4516e5fc..9b23be3728c30d7177e8e00ae1d8a76cf4c33426 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelIBLFwdServices.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdServices.h @@ -5,17 +5,14 @@ #ifndef GEOPIXELIBLFWDSERVICES_H #define GEOPIXELIBLFWDSERVICES_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" -#include "PixelGeoModel/GeoPixelStaveSupport.h" -#include "PixelGeoModel/GeoPixelLadder.h" +#include "GeoPixelStaveSupport.h" +#include "GeoPixelLadder.h" -#include "CLHEP/Geometry/Transform3D.h" #include "GeoModelKernel/GeoPhysVol.h" - class GeoTransform; -class GeoPhysVol; class GeoPixelIBLFwdServices : public GeoVPixelFactory { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcCADModel.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcCADModel.cxx index 9748cd9a02cbe7e374dd58e316902016cf61b48d..11643a2de6523f460452fef64f100be6a91ab5f8 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcCADModel.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcCADModel.cxx @@ -6,7 +6,7 @@ // Build IBL fwd services (wavy shape) // This is built one time per layer. -#include "PixelGeoModel/GeoPixelIBLFwdSvcCADModel.h" +#include "GeoPixelIBLFwdSvcCADModel.h" #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoTubs.h" @@ -53,7 +53,7 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() m_gmt_mgr->msg(MSG::INFO) <<"Build IBL fwd services - CAD tool design - Torus object is defined"<<endmsg; - // double safety = 0.01*CLHEP::mm; + // double safety = 0.01*GeoModelKernelUnits::mm; // IBL layer shift ( 2mm shift issue ) double layerZshift = m_gmt_mgr->PixelLayerGlobalShift(); @@ -63,7 +63,7 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() // check if sectors are properly defined if(nSectors==0) return 0; - double angle=360./(double)nSectors*CLHEP::deg; + double angle=360./(double)nSectors*GeoModelKernelUnits::deg; // Defines the IBL_Fwd02 section in the IBL services area double innerRadius = 33.; @@ -94,7 +94,7 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() double lgFwdSvc[4]={511., 561., 560., 706. }; double devLgFwdSvc[4]={512., 562., 562., 707. }; double devTotalLength = 2460.188; - double pi = CLHEP::pi; + double pi = GeoModelKernelUnits::pi; // Cable bundle sizes double rminCable = 0.; @@ -112,7 +112,7 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() double zposRing = 0.; double totalLength=0.; double hermJunction = .4; - double breakAngle = 11.*CLHEP::deg; + double breakAngle = 11.*GeoModelKernelUnits::deg; // Loop over the wavy shape sections to build a cable and a cooling pipe const GeoShape * gblShapeCableA = 0; @@ -133,9 +133,9 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() double tubeLength=deltaJunction+zpos0-zMin+hermJunction; double zposTrans=zMin+tubeLength*.5-zpos0; const GeoTube* tubeShape = new GeoTube(0., rmaxCable, tubeLength*.5); - HepGeom::Transform3D trfA = HepGeom::TranslateZ3D(zpos0+zposTrans-zMiddle); + GeoTrf::Transform3D trfA = GeoTrf::TranslateZ3D(zpos0+zposTrans-zMiddle); gblShapeCableA = addShape(gblShapeCableA, tubeShape, trfA ); - HepGeom::Transform3D trfC = HepGeom::RotateY3D(pi)*HepGeom::TranslateZ3D(zpos0+zposTrans-zMiddle); + GeoTrf::Transform3D trfC = GeoTrf::RotateY3D(pi)*GeoTrf::TranslateZ3D(zpos0+zposTrans-zMiddle); gblShapeCableC = addShape(gblShapeCableC, tubeShape, trfC ); // std::cout<<"IBL_fwd : junction "<<std::setprecision(15)<<i<<" : "<<zpos0+zposTrans-tubeLength*.5<<" "<<zpos0+zposTrans+tubeLength*.5<<" // "<<zMin<<std::endl; @@ -151,9 +151,9 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() double rtor = radius; const GeoTorus* torusShape = new GeoTorus(rminCable,rmaxCable,rtor,pi*.5-theta,2.*theta); double angle=(i%2==0)?breakAngle:pi-breakAngle; - HepGeom::Transform3D trfA = HepGeom::RotateZ3D(angle)*HepGeom::RotateY3D(-pi*.5)*HepGeom::TranslateY3D(-radius+delta)* HepGeom::TranslateX3D(zpos0+zpos-zMiddle); + GeoTrf::Transform3D trfA = GeoTrf::RotateZ3D(angle)*GeoTrf::RotateY3D(-pi*.5)*GeoTrf::TranslateY3D(-radius+delta)* GeoTrf::TranslateX3D(zpos0+zpos-zMiddle); gblShapeCableA = addShape(gblShapeCableA, torusShape, trfA ); - HepGeom::Transform3D trfC = HepGeom::RotateZ3D(angle)*HepGeom::RotateY3D(pi*.5)*HepGeom::TranslateY3D(-radius+delta)* HepGeom::TranslateX3D(zpos0+zpos-zMiddle); + GeoTrf::Transform3D trfC = GeoTrf::RotateZ3D(angle)*GeoTrf::RotateY3D(pi*.5)*GeoTrf::TranslateY3D(-radius+delta)* GeoTrf::TranslateX3D(zpos0+zpos-zMiddle); gblShapeCableC = addShape(gblShapeCableC, torusShape, trfC ); const GeoTorus* torusShape_cooling = new GeoTorus(rminCooling,rmaxCooling,rtor,pi*.5-theta,2.*theta); @@ -167,9 +167,9 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() double tubeLength=zMax-zpos+hermJunction; double zposTrans=zMax-tubeLength*.5; const GeoTube* tubeShape = new GeoTube(0., rmaxCable, tubeLength*.5); - HepGeom::Transform3D trfA = HepGeom::TranslateZ3D(zposTrans-zMiddle); + GeoTrf::Transform3D trfA = GeoTrf::TranslateZ3D(zposTrans-zMiddle); gblShapeCableA = addShape(gblShapeCableA, tubeShape, trfA ); - HepGeom::Transform3D trfC = HepGeom::RotateY3D(pi)*HepGeom::TranslateZ3D(zposTrans-zMiddle); + GeoTrf::Transform3D trfC = GeoTrf::RotateY3D(pi)*GeoTrf::TranslateZ3D(zposTrans-zMiddle); gblShapeCableC = addShape(gblShapeCableC, tubeShape, trfC ); const GeoTube* tubeShape_cooling = new GeoTube(0., rmaxCooling, tubeLength*.5); @@ -195,12 +195,12 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() // -------------- Alignement of the services with the previous services (Fwd01 area) double cooling_radius = 35.1; - double cooling_angle = -2.154*CLHEP::deg; + double cooling_angle = -2.154*GeoModelKernelUnits::deg; if(m_gmt_mgr->PixelStaveAxe()==1) { cooling_radius = 34.7 + layerRadius-33.25; - cooling_angle = -.1*CLHEP::deg; + cooling_angle = -.1*GeoModelKernelUnits::deg; } double cable_radius = 36.501; @@ -222,7 +222,7 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() std::ostringstream tmp1; tmp1 << "IBL_Fwd02_Cooling_A" << ii; GeoNameTag * tag1 = new GeoNameTag(tmp1.str()); - GeoTransform* xformA1 = new GeoTransform(HepGeom::RotateZ3D(phiOfCooling)*HepGeom::TranslateX3D(cooling_radius)); + GeoTransform* xformA1 = new GeoTransform(GeoTrf::RotateZ3D(phiOfCooling)*GeoTrf::TranslateX3D(cooling_radius)); m_supportPhysA->add(tag1); m_supportPhysA->add(xformA1); m_supportPhysA->add(coolingPhysVolA); @@ -230,7 +230,7 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() std::ostringstream tmp1C; tmp1C << "IBL_Fwd02_Cooling_C" << ii; GeoNameTag * tag1C = new GeoNameTag(tmp1C.str()); - GeoTransform* xformC1 = new GeoTransform(HepGeom::RotateZ3D(phiOfCooling)*HepGeom::TranslateX3D(cooling_radius)); + GeoTransform* xformC1 = new GeoTransform(GeoTrf::RotateZ3D(phiOfCooling)*GeoTrf::TranslateX3D(cooling_radius)); m_supportPhysC->add(tag1C); m_supportPhysC->add(xformC1); m_supportPhysC->add(coolingPhysVolC); @@ -240,7 +240,7 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() std::ostringstream tmp2; tmp2 << "IBL_Fwd02_Cable_A" << ii; GeoNameTag * tag2 = new GeoNameTag(tmp2.str()); - GeoTransform* xformA2 = new GeoTransform(HepGeom::RotateZ3D(phiOfCable)*HepGeom::TranslateX3D(cable_radius)); + GeoTransform* xformA2 = new GeoTransform(GeoTrf::RotateZ3D(phiOfCable)*GeoTrf::TranslateX3D(cable_radius)); m_supportPhysA->add(tag2); m_supportPhysA->add(xformA2); m_supportPhysA->add(cablePhysVolA); @@ -248,7 +248,7 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() std::ostringstream tmp2C; tmp2C << "IBL_Fwd02_Cable_C" << ii; GeoNameTag * tag2C = new GeoNameTag(tmp2C.str()); - GeoTransform* xformC2 = new GeoTransform(HepGeom::RotateZ3D(phiOfCable)*HepGeom::TranslateX3D(cable_radius)); + GeoTransform* xformC2 = new GeoTransform(GeoTrf::RotateZ3D(phiOfCable)*GeoTrf::TranslateX3D(cable_radius)); m_supportPhysC->add(tag2C); m_supportPhysC->add(xformC2); m_supportPhysC->add(cablePhysVolC); @@ -259,10 +259,10 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() double middleA = zMiddle+layerZshift; double middleC = -zMiddle+layerZshift; - HepGeom::Transform3D supportTrfA = HepGeom::TranslateZ3D(middleA); + GeoTrf::Transform3D supportTrfA = GeoTrf::TranslateZ3D(middleA); m_xformSupportA = new GeoTransform(supportTrfA); - HepGeom::Transform3D supportTrfC = HepGeom::TranslateZ3D(middleC); + GeoTrf::Transform3D supportTrfC = GeoTrf::TranslateZ3D(middleC); m_xformSupportC = new GeoTransform(supportTrfC); return 0; @@ -272,7 +272,7 @@ GeoVPhysVol* GeoPixelIBLFwdSvcCADModel::Build() } -const GeoShape * GeoPixelIBLFwdSvcCADModel::addShape(const GeoShape * lastShape, const GeoShape * nextShape, const HepGeom::Transform3D & trans) +const GeoShape * GeoPixelIBLFwdSvcCADModel::addShape(const GeoShape * lastShape, const GeoShape * nextShape, const GeoTrf::Transform3D & trans) { const GeoShape * shiftedShape = &(*nextShape << trans); if (lastShape) { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelIBLFwdSvcCADModel.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcCADModel.h similarity index 76% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelIBLFwdSvcCADModel.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcCADModel.h index 8ad8a742b950ed614a0a9b845d50724da617d60a..63a6ddb10b6f3143c03f114fc82d6711077c9083 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelIBLFwdSvcCADModel.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcCADModel.h @@ -5,17 +5,16 @@ #ifndef GEOPIXELIBLFWDSVC_CADMODEL_H #define GEOPIXELIBLFWDSVC_CADMODEL_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" -#include "PixelGeoModel/GeoPixelStaveSupport.h" -#include "PixelGeoModel/GeoPixelLadder.h" +#include "GeoPixelStaveSupport.h" +#include "GeoPixelLadder.h" -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" - class GeoTransform; -class GeoPhysVol; class GeoPixelIBLFwdSvcCADModel : public GeoVPixelFactory { @@ -36,7 +35,7 @@ public: GeoTransform *m_xformSupportA; GeoTransform *m_xformSupportC; - const GeoShape* addShape(const GeoShape * lastShape, const GeoShape * nextShape, const HepGeom::Transform3D & trans); + const GeoShape* addShape(const GeoShape * lastShape, const GeoShape * nextShape, const GeoTrf::Transform3D & trans); }; #endif diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcModel1.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcModel1.cxx index 8ee32562e12301ec07639084aa79972f910b49d7..ae12b9fea422583e2a0595de332f33eeba4b5246 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcModel1.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcModel1.cxx @@ -6,7 +6,7 @@ // Build IBL fwd services (wavy shape) // This is built one time per layer. -#include "PixelGeoModel/GeoPixelIBLFwdSvcModel1.h" +#include "GeoPixelIBLFwdSvcModel1.h" #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoTubs.h" @@ -39,7 +39,7 @@ GeoVPhysVol* GeoPixelIBLFwdSvcModel1::Build() m_gmt_mgr->msg(MSG::INFO) <<"Build IBL fwd services"<<endmsg; - // double safety = 0.01*CLHEP::mm; + // double safety = 0.01*GeoModelKernelUnits::mm; // IBL layer shift ( 2mm shift issue ) double layerZshift = m_gmt_mgr->PixelLayerGlobalShift(); @@ -49,7 +49,7 @@ GeoVPhysVol* GeoPixelIBLFwdSvcModel1::Build() // check if sectors are properly defined if(nSectors==0) return 0; - double angle=360./(double)nSectors*CLHEP::deg; + double angle=360./(double)nSectors*GeoModelKernelUnits::deg; // Defines the IBL_Fwd02 section in the IBL services area double innerRadius = 33.; @@ -98,15 +98,15 @@ GeoVPhysVol* GeoPixelIBLFwdSvcModel1::Build() // double zposRing = 0.; double totalLength=0.; // double hermJunction = .4; - double breakAngle = 11.*CLHEP::deg; + double breakAngle = 11.*GeoModelKernelUnits::deg; double cooling_radius = 35.1; - double cooling_angle = -2.154*CLHEP::deg; + double cooling_angle = -2.154*GeoModelKernelUnits::deg; if(m_gmt_mgr->PixelStaveAxe()==1) { cooling_radius = 34.7 + layerRadius-33.25; - cooling_angle = -.1*CLHEP::deg; + cooling_angle = -.1*GeoModelKernelUnits::deg; } double cable_radius = 36.501; @@ -189,10 +189,10 @@ GeoVPhysVol* GeoPixelIBLFwdSvcModel1::Build() // Cable const GeoTube* cableShape = new GeoTube(rminCable, rmaxCable, zHalfLength); - double angle = 0.; //11.*CLHEP::deg; - HepGeom::Transform3D trfA1 = HepGeom::RotateZ3D(angle)*HepGeom::TranslateZ3D(zpos-zMiddle); + double angle = 0.; //11.*GeoModelKernelUnits::deg; + GeoTrf::Transform3D trfA1 = GeoTrf::RotateZ3D(angle)*GeoTrf::TranslateZ3D(zpos-zMiddle); gblShapeCableA = addShape(gblShapeCableA, cableShape, trfA1 ); - HepGeom::Transform3D trfC1 = HepGeom::RotateZ3D(angle)*HepGeom::TranslateZ3D(zMax-(zpos-zMin)-zMiddle); + GeoTrf::Transform3D trfC1 = GeoTrf::RotateZ3D(angle)*GeoTrf::TranslateZ3D(zMax-(zpos-zMin)-zMiddle); gblShapeCableC = addShape(gblShapeCableC, cableShape, trfC1 ); // Cooling @@ -211,9 +211,9 @@ GeoVPhysVol* GeoPixelIBLFwdSvcModel1::Build() // Cable const GeoTube* cableShape = new GeoTube(rminCable, rmaxCable, cableHalfLength); double angle= 0.; - HepGeom::Transform3D trfA1 = HepGeom::RotateZ3D(angle)*HepGeom::TranslateY3D(deltaMiddleLoc)* HepGeom::TranslateZ3D(zpos-zMiddle)*HepGeom::RotateX3D(-angleSign*deltaPhiLoc); + GeoTrf::Transform3D trfA1 = GeoTrf::RotateZ3D(angle)*GeoTrf::TranslateY3D(deltaMiddleLoc)* GeoTrf::TranslateZ3D(zpos-zMiddle)*GeoTrf::RotateX3D(-angleSign*deltaPhiLoc); gblShapeCableA = addShape(gblShapeCableA, cableShape, trfA1 ); - HepGeom::Transform3D trfC1 = HepGeom::RotateZ3D(angle)*HepGeom::TranslateY3D(deltaMiddleLoc)* HepGeom::TranslateZ3D(zMax-(zpos-zMin)-zMiddle)*HepGeom::RotateX3D(angleSign*deltaPhiLoc); + GeoTrf::Transform3D trfC1 = GeoTrf::RotateZ3D(angle)*GeoTrf::TranslateY3D(deltaMiddleLoc)* GeoTrf::TranslateZ3D(zMax-(zpos-zMin)-zMiddle)*GeoTrf::RotateX3D(angleSign*deltaPhiLoc); gblShapeCableC = addShape(gblShapeCableC, cableShape, trfC1 ); // Cooling @@ -269,12 +269,12 @@ GeoVPhysVol* GeoPixelIBLFwdSvcModel1::Build() std::ostringstream tmp1; tmp1 << "IBL_Fwd02_Cooling_AC" << ii; GeoNameTag * tag1 = new GeoNameTag(tmp1.str()); - GeoTransform* xformA1 = new GeoTransform(HepGeom::RotateZ3D(phiOfCooling)*HepGeom::TranslateX3D(cooling_radius)); + GeoTransform* xformA1 = new GeoTransform(GeoTrf::RotateZ3D(phiOfCooling)*GeoTrf::TranslateX3D(cooling_radius)); m_supportPhysA->add(tag1); m_supportPhysA->add(xformA1); m_supportPhysA->add(coolingPhysVolA); - GeoTransform* xformC1 = new GeoTransform(HepGeom::RotateZ3D(phiOfCooling)*HepGeom::TranslateX3D(cooling_radius)); + GeoTransform* xformC1 = new GeoTransform(GeoTrf::RotateZ3D(phiOfCooling)*GeoTrf::TranslateX3D(cooling_radius)); m_supportPhysC->add(tag1); m_supportPhysC->add(xformC1); m_supportPhysC->add(coolingPhysVolC); @@ -284,12 +284,12 @@ GeoVPhysVol* GeoPixelIBLFwdSvcModel1::Build() std::ostringstream tmp2; tmp2 << "IBL_Fwd02_Cable_AC" << ii; GeoNameTag * tag2 = new GeoNameTag(tmp2.str()); - GeoTransform* xformA2 = new GeoTransform(HepGeom::RotateZ3D(phiOfCable)*HepGeom::TranslateX3D(cable_radius)*HepGeom::RotateZ3D(breakAngle)); + GeoTransform* xformA2 = new GeoTransform(GeoTrf::RotateZ3D(phiOfCable)*GeoTrf::TranslateX3D(cable_radius)*GeoTrf::RotateZ3D(breakAngle)); m_supportPhysA->add(tag2); m_supportPhysA->add(xformA2); m_supportPhysA->add(cablePhysVolA); - GeoTransform* xformC2 = new GeoTransform(HepGeom::RotateZ3D(phiOfCable)*HepGeom::TranslateX3D(cable_radius)*HepGeom::RotateZ3D(breakAngle)); + GeoTransform* xformC2 = new GeoTransform(GeoTrf::RotateZ3D(phiOfCable)*GeoTrf::TranslateX3D(cable_radius)*GeoTrf::RotateZ3D(breakAngle)); m_supportPhysC->add(tag2); m_supportPhysC->add(xformC2); m_supportPhysC->add(cablePhysVolC); @@ -299,17 +299,17 @@ GeoVPhysVol* GeoPixelIBLFwdSvcModel1::Build() double middleA = zMiddle+layerZshift; double middleC = -zMiddle+layerZshift; - HepGeom::Transform3D supportTrfA = HepGeom::TranslateZ3D(middleA); + GeoTrf::Transform3D supportTrfA = GeoTrf::TranslateZ3D(middleA); m_xformSupportA = new GeoTransform(supportTrfA); - HepGeom::Transform3D supportTrfC = HepGeom::TranslateZ3D(middleC); + GeoTrf::Transform3D supportTrfC = GeoTrf::TranslateZ3D(middleC); m_xformSupportC = new GeoTransform(supportTrfC); return 0; } -const GeoShape * GeoPixelIBLFwdSvcModel1::addShape(const GeoShape * lastShape, const GeoShape * nextShape, const HepGeom::Transform3D & trans) +const GeoShape * GeoPixelIBLFwdSvcModel1::addShape(const GeoShape * lastShape, const GeoShape * nextShape, const GeoTrf::Transform3D & trans) { const GeoShape * shiftedShape = &(*nextShape << trans); if (lastShape) { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelIBLFwdSvcModel1.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcModel1.h similarity index 76% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelIBLFwdSvcModel1.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcModel1.h index 212e2d98706b619649361e5d8aa52a5195a95c83..e931d2105b5bed7b8ae214d51d69f05322e64f3f 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelIBLFwdSvcModel1.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIBLFwdSvcModel1.h @@ -5,17 +5,16 @@ #ifndef GEOPIXELIBLFWDSVCMODEL1_H #define GEOPIXELIBLFWDSVCMODEL1_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" -#include "PixelGeoModel/GeoPixelStaveSupport.h" -#include "PixelGeoModel/GeoPixelLadder.h" +#include "GeoPixelStaveSupport.h" +#include "GeoPixelLadder.h" -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPhysVol.h" - class GeoTransform; -class GeoPhysVol; class GeoPixelIBLFwdSvcModel1 : public GeoVPixelFactory { @@ -36,7 +35,7 @@ public: GeoTransform *m_xformSupportA; GeoTransform *m_xformSupportC; - const GeoShape* addShape(const GeoShape * lastShape, const GeoShape * nextShape, const HepGeom::Transform3D & trans); + const GeoShape* addShape(const GeoShape * lastShape, const GeoShape * nextShape, const GeoTrf::Transform3D & trans); }; #endif diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIFlexServices.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIFlexServices.cxx index 1abcb581eaf7cce88e6d47c7fff1728d3d7babb5..3463842e192ac70335d603eab8732c43d234d14c 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIFlexServices.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIFlexServices.cxx @@ -6,7 +6,7 @@ // Build detailed stave support : face plate + carbon foam + cable flex + cooling pipe + end blocks // This is built one time per layer. -#include "PixelGeoModel/GeoPixelIFlexServices.h" +#include "GeoPixelIFlexServices.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoTube.h" @@ -35,7 +35,7 @@ GeoVPhysVol* GeoPixelIFlexServices::Build() m_gmt_mgr->msg(MSG::INFO) <<"Build IBL I-Flex services"<<endmsg; - double safety = 0.01*CLHEP::mm; + double safety = 0.01*GeoModelKernelUnits::mm; // IBL layer shift ( 2mm shift issue ) double layerZshift = m_gmt_mgr->PixelLayerGlobalShift(); @@ -45,7 +45,7 @@ GeoVPhysVol* GeoPixelIFlexServices::Build() // check if sectors are properly defined if(nSectors==0) return 0; - double angle=360./(double)nSectors*CLHEP::deg; + double angle=360./(double)nSectors*GeoModelKernelUnits::deg; double zmin=0., zmax=0.; double deltaLength = 0.; @@ -108,12 +108,12 @@ GeoVPhysVol* GeoPixelIFlexServices::Build() double cooling_radius = 35.1; double TubeOuterDiam = m_gmt_mgr->IBLStaveTubeOuterDiameter(); double TubeInnerDiam = m_gmt_mgr->IBLStaveTubeInnerDiameter(); - double cooling_angle = -2.154*CLHEP::deg; + double cooling_angle = -2.154*GeoModelKernelUnits::deg; if(m_gmt_mgr->PixelStaveAxe()==1) { cooling_radius = 34.7 + layerRadius-33.25; - cooling_angle = -.1*CLHEP::deg; + cooling_angle = -.1*GeoModelKernelUnits::deg; } const GeoTube* service_coolingPipeA = new GeoTube(0.0,TubeOuterDiam*0.5,halfLengthA); @@ -134,8 +134,7 @@ GeoVPhysVol* GeoPixelIFlexServices::Build() GeoPhysVol * cp_service_inner_logPVC = new GeoPhysVol(cp_service_inner_logC); GeoNameTag* cp_service_inner_tag = new GeoNameTag("PP0CoolingPipeInner"); - CLHEP::Hep3Vector cp_service_inner_pos(0.0,0.0,0.0); - GeoTransform* cp_service_inner_xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),cp_service_inner_pos)); + GeoTransform* cp_service_inner_xform = new GeoTransform(GeoTrf::Transform3D::Identity()); cpPhysVolA->add(cp_service_inner_tag); cpPhysVolA->add(cp_service_inner_xform); cpPhysVolA->add(cp_service_inner_logPVA); @@ -146,9 +145,9 @@ GeoVPhysVol* GeoPixelIFlexServices::Build() GeoLogVol* flex_logVolA = 0; GeoLogVol* flex_logVolC = 0; - double flex_angle = -15.001*CLHEP::deg; + double flex_angle = -15.001*GeoModelKernelUnits::deg; if(m_gmt_mgr->PixelStaveAxe()==1) - flex_angle += 2.14*CLHEP::deg; + flex_angle += 2.14*GeoModelKernelUnits::deg; double flex_rot=0.30265; flex_rot=-0.30265*.5; @@ -174,8 +173,6 @@ GeoVPhysVol* GeoPixelIFlexServices::Build() GeoBox * flex_shapeA = new GeoBox((flex_rmax-flex_rmin)*.5, flex_width*.5, halfLengthA); GeoBox * flex_shapeC = new GeoBox((flex_rmax-flex_rmin)*.5, flex_width*.5, halfLengthC); - CLHEP::Hep3Vector flex_pos(0.,0.,0.); - // GeoTransform* flex_xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(0.0,0.0,fabs(flex_rot)),flex_pos)); const GeoMaterial* flex_material = m_mat_mgr->getMaterial(flexMatName); if(flex_material==0) { @@ -228,7 +225,7 @@ GeoVPhysVol* GeoPixelIFlexServices::Build() std::ostringstream tmp1; tmp1 << "fl" << ii; GeoNameTag * tag1 = new GeoNameTag(tmp1.str()); - GeoTransform* xform1 = new GeoTransform(HepGeom::RotateZ3D(phiOfCooling)*HepGeom::TranslateX3D(cooling_radius)); + GeoTransform* xform1 = new GeoTransform(GeoTrf::RotateZ3D(phiOfCooling)*GeoTrf::TranslateX3D(cooling_radius)); m_supportPhysA->add(tag1); m_supportPhysA->add(xform1); m_supportPhysA->add(cpPhysVolA); @@ -247,12 +244,12 @@ GeoVPhysVol* GeoPixelIFlexServices::Build() if(m_section==2){ // Intermediate flex - GeoTransform* xformA2 = new GeoTransform(HepGeom::RotateZ3D(phiOfFlex)*HepGeom::TranslateX3D(flexYmidPos)*HepGeom::RotateZ3D(-90.*CLHEP::deg)*HepGeom::RotateY3D(-90.*CLHEP::deg)*HepGeom::RotateX3D(flex_rot)); + GeoTransform* xformA2 = new GeoTransform(GeoTrf::RotateZ3D(phiOfFlex)*GeoTrf::TranslateX3D(flexYmidPos)*GeoTrf::RotateZ3D(-90.*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90.*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(flex_rot)); m_supportPhysA->add(tag2); m_supportPhysA->add(xformA2); m_supportPhysA->add(flexPhysVolA); - GeoTransform* xformC2 = new GeoTransform(HepGeom::RotateZ3D(phiOfFlex)*HepGeom::TranslateX3D(flexYmidPos)*HepGeom::RotateZ3D(-90.*CLHEP::deg)*HepGeom::RotateY3D(90.*CLHEP::deg)*HepGeom::RotateX3D(-flex_rot)); + GeoTransform* xformC2 = new GeoTransform(GeoTrf::RotateZ3D(phiOfFlex)*GeoTrf::TranslateX3D(flexYmidPos)*GeoTrf::RotateZ3D(-90.*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90.*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(-flex_rot)); m_supportPhysC->add(tag2); m_supportPhysC->add(xformC2); m_supportPhysC->add(flexPhysVolC); @@ -262,7 +259,7 @@ GeoVPhysVol* GeoPixelIFlexServices::Build() // dogleg and PP0 flexes - GeoTransform* xform2 = new GeoTransform(HepGeom::RotateZ3D(phiOfFlex)*HepGeom::TranslateX3D((flex_rmin+flex_rmax)*.5)*HepGeom::RotateZ3D(flex_rot)); + GeoTransform* xform2 = new GeoTransform(GeoTrf::RotateZ3D(phiOfFlex)*GeoTrf::TranslateX3D((flex_rmin+flex_rmax)*.5)*GeoTrf::RotateZ3D(flex_rot)); m_supportPhysA->add(tag2); m_supportPhysA->add(xform2); @@ -279,12 +276,12 @@ GeoVPhysVol* GeoPixelIFlexServices::Build() double middleA = zStartPosA+halfLengthA; double middleC = zStartPosC+halfLengthC; - HepGeom::Transform3D supportTrfA = HepGeom::TranslateZ3D(middleA); //(zmin+zmax)*0.5+layerZshift); + GeoTrf::Transform3D supportTrfA = GeoTrf::TranslateZ3D(middleA); //(zmin+zmax)*0.5+layerZshift); m_xformSupportA = new GeoTransform(supportTrfA); // std::cout<<"Section final A "<<m_section<<" - "<<middleA-halfLengthA<<" "<<middleA+halfLengthA<<" "<<middleA<<std::endl; - HepGeom::Transform3D supportTrfC = HepGeom::TranslateZ3D(middleC); //(zmin+zmax)*0.5+layerZshift); + GeoTrf::Transform3D supportTrfC = GeoTrf::TranslateZ3D(middleC); //(zmin+zmax)*0.5+layerZshift); m_xformSupportC = new GeoTransform(supportTrfC); // std::cout<<"Section final C "<<m_section<<" - "<<middleC-halfLengthC<<" "<<middleC+halfLengthC<<" "<<middleC<<std::endl; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelIFlexServices.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIFlexServices.h similarity index 79% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelIFlexServices.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIFlexServices.h index ec9d64c31a87a1e54637fa50ddfcdcf83bbdae5d..bc929cde3cf842647020df4beeb6a931a6057a5d 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelIFlexServices.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelIFlexServices.h @@ -5,17 +5,14 @@ #ifndef GEOPIXELIFLEXSERVICES_H #define GEOPIXELIFLEXSERVICES_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" -#include "PixelGeoModel/GeoPixelStaveSupport.h" -#include "PixelGeoModel/GeoPixelLadder.h" +#include "GeoPixelStaveSupport.h" +#include "GeoPixelLadder.h" -#include "CLHEP/Geometry/Transform3D.h" #include "GeoModelKernel/GeoPhysVol.h" - class GeoTransform; -class GeoPhysVol; class GeoPixelIFlexServices : public GeoVPixelFactory { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadder.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadder.cxx index 73565d3a0fce8f03668149203ca282ee7482ccd7..bcbc577a590b9c4df7b7792c4fb00159a00170cf 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadder.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadder.cxx @@ -2,10 +2,10 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/GeoPixelLadder.h" -#include "PixelGeoModel/GeoPixelStaveSupport.h" -#include "PixelGeoModel/GeoPixelModule.h" -#include "PixelGeoModel/GeoPixelSiCrystal.h" +#include "GeoPixelLadder.h" +#include "GeoPixelStaveSupport.h" +#include "GeoPixelModule.h" +#include "GeoPixelSiCrystal.h" #include "InDetReadoutGeometry/PixelDetectorManager.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoTubs.h" @@ -37,7 +37,7 @@ GeoPixelLadder::GeoPixelLadder(GeoPixelSiCrystal& theSensor, // Length of the ladder is in the db // double length = m_gmt_mgr->PixelLadderLength(); - double safety = 0.01*CLHEP::mm; + double safety = 0.01*GeoModelKernelUnits::mm; m_width = calcWidth(); m_thicknessP = 0.5 * m_gmt_mgr->PixelLadderThickness(); @@ -58,7 +58,7 @@ GeoPixelLadder::GeoPixelLadder(GeoPixelSiCrystal& theSensor, const GeoShape * ladderShape = 0; // If upper and lower thicknesses are within 100 um. Make them the same. - if (std::abs(m_thicknessP - m_thicknessN) < 0.1*CLHEP::mm) { + if (std::abs(m_thicknessP - m_thicknessN) < 0.1*GeoModelKernelUnits::mm) { m_thicknessP = std::max(m_thicknessP,m_thicknessN); m_thicknessN = m_thicknessP; double halfThickness = m_thicknessP; @@ -67,7 +67,7 @@ GeoPixelLadder::GeoPixelLadder(GeoPixelSiCrystal& theSensor, else if (m_gmt_mgr->PixelBentStaveNModule() != 0) { // Calculate thickness from bent stave part - double angle = m_gmt_mgr->PixelLadderBentStaveAngle() * CLHEP::pi / 180.0; + double angle = m_gmt_mgr->PixelLadderBentStaveAngle() * GeoModelKernelUnits::pi / 180.0; double BentStaveThickness = double(m_gmt_mgr->PixelBentStaveNModule()) * m_gmt_mgr->PixelLadderModuleDeltaZ() * sin(angle); // Extend +ve or -ve ladder thickness according to stave angle @@ -85,14 +85,14 @@ GeoPixelLadder::GeoPixelLadder(GeoPixelSiCrystal& theSensor, // Shift ladder outwards if stave bends away from beam pipe double shift = 0.5*BentStaveThickness; if (angle > 0) shift *= -1.0; - const GeoShape & shiftedBox = (*box) << HepGeom::TranslateX3D(shift); + const GeoShape & shiftedBox = (*box) << GeoTrf::TranslateX3D(shift); ladderShape = &shiftedBox; } else if (!(m_gmt_mgr->PixelStaveLayout()>3&& m_gmt_mgr->PixelStaveLayout()<7)){ double halfThickness = 0.5*(m_thicknessP+m_thicknessN); double shift = 0.5*(m_thicknessP-m_thicknessN); GeoBox * box = new GeoBox(halfThickness, m_width/2., length/2.); - const GeoShape & shiftedBox = (*box) << HepGeom::TranslateX3D(shift); + const GeoShape & shiftedBox = (*box) << GeoTrf::TranslateX3D(shift); ladderShape = &shiftedBox; } else if(m_staveSupport) @@ -321,12 +321,11 @@ GeoVPhysVol* GeoPixelLadder::Build( ) { } - CLHEP::Hep3Vector modulepos(xpos+xposShift,yposShift,zpos); + GeoTrf::Translation3D modulepos(xpos+xposShift,yposShift,zpos); // // Rotate if module is inclined. // - CLHEP::HepRotation rm; - rm.rotateY(m_gmt_mgr->PixelModuleAngle()*m_gmt_mgr->PixelModuleAngleSign(etaModule) ); + GeoTrf::RotateY3D rm(m_gmt_mgr->PixelModuleAngle()*m_gmt_mgr->PixelModuleAngleSign(etaModule) ); // // Place the Module // @@ -342,7 +341,7 @@ GeoVPhysVol* GeoPixelLadder::Build( ) { GeoNameTag * tag = new GeoNameTag(nameTag.str()); GeoAlignableTransform* xform; - xform = new GeoAlignableTransform(HepGeom::Transform3D(rm,modulepos)); + xform = new GeoAlignableTransform(GeoTrf::Transform3D(modulepos*rm)); ladderPhys->add(tag); ladderPhys->add(new GeoIdentifierTag(m_gmt_mgr->Eta() ) ); ladderPhys->add(xform); @@ -383,27 +382,25 @@ GeoVPhysVol* GeoPixelLadder::Build( ) { // const GeoMaterial* materialSup = m_mat_mgr->getMaterialForVolume(matName,shapeSupBent->volume()); const GeoMaterial* materialSup = m_mat_mgr->getMaterial("pix::StaveSupportBase"); - double ang = m_gmt_mgr->PixelLadderBentStaveAngle() * CLHEP::pi / 180.0; + double ang = m_gmt_mgr->PixelLadderBentStaveAngle() * GeoModelKernelUnits::pi / 180.0; double xst = xOffset - (bentStaveHalfLength * sin(ang)); // Construct bent stave at negative z GeoLogVol* logVolBentNeg = new GeoLogVol("StaveSupportBentNeg2",shapeSupBent,materialSup); GeoPhysVol* physVolBentNeg = new GeoPhysVol(logVolBentNeg); - CLHEP::HepRotation rmNeg; - rmNeg.rotateY(ang); + GeoTrf::RotateY3D rmNeg(ang); double zstneg = -length/2.0 - (bentStaveHalfLength * cos(ang)); - HepGeom::Point3D<double> stavePosNeg(xst,0.,zstneg); - ladderPhys->add(new GeoTransform(HepGeom::Transform3D(rmNeg,stavePosNeg))); + GeoTrf::Translation3D stavePosNeg(xst,0.,zstneg); + ladderPhys->add(new GeoTransform(GeoTrf::Transform3D(stavePosNeg*rmNeg))); ladderPhys->add(physVolBentNeg); // COnstruct bent stave at positive z GeoLogVol* logVolBentPos = new GeoLogVol("StaveSupportBentPos2",shapeSupBent,materialSup); GeoPhysVol* physVolBentPos = new GeoPhysVol(logVolBentPos); - CLHEP::HepRotation rmPos; - rmPos.rotateY(-ang); + GeoTrf::RotateY3D rmPos(-ang); double zstpos = length/2.0 + (bentStaveHalfLength * cos(ang)); - HepGeom::Point3D<double> stavePosPos(xst,0.,zstpos); - ladderPhys->add(new GeoTransform(HepGeom::Transform3D(rmPos,stavePosPos))); + GeoTrf::Translation3D stavePosPos(xst,0.,zstpos); + ladderPhys->add(new GeoTransform(GeoTrf::Transform3D(stavePosPos*rmPos))); ladderPhys->add(physVolBentPos); } @@ -418,7 +415,7 @@ double GeoPixelLadder::calcThickness() { // to avoid duplication of code // - const double safety = 0.01*CLHEP::mm; + const double safety = 0.01*GeoModelKernelUnits::mm; double clearance = m_gmt_mgr->PixelLadderThicknessClearance(); clearance = std::max(clearance, safety); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelLadder.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadder.h similarity index 95% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelLadder.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadder.h index f21daabb9ffc4eae749cd3b4b730406eef963d3e..8f3486bae637a9a5f7239548c16e890ac287d414 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelLadder.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadder.h @@ -5,7 +5,7 @@ #ifndef GEOPIXELLADDER_H #define GEOPIXELLADDER_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" class GeoLogVol; class GeoPixelSiCrystal; class GeoPixelStaveSupport; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadderServices.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadderServices.cxx index 697b6a7ecd65f93292b5faf9ed2fbb455466fd6e..1af721b80a5ef948804f08033688efc0e1a96bd4 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadderServices.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadderServices.cxx @@ -6,9 +6,9 @@ // This class builds the Ladder services (Omega + Al tube + glue + part of pigtail + connector) // // -#include "PixelGeoModel/GeoPixelLadderServices.h" -#include "PixelGeoModel/GeoPixelFluid.h" -#include "PixelGeoModel/GeoPixelCable.h" +#include "GeoPixelLadderServices.h" +#include "GeoPixelFluid.h" +#include "GeoPixelCable.h" #include "GeoModelKernel/GeoTubs.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoPara.h" @@ -37,7 +37,7 @@ GeoPixelLadderServices::GeoPixelLadderServices(int ladderType) // //const GeoBox* ladderSvcBox = new GeoBox(thickness/2.,width/2.,halflength); // Quick fix - we hardwire the numbers. Need to work out a way to extract this from the database numbers. - double safety = 0.01*CLHEP::mm; + double safety = 0.01*GeoModelKernelUnits::mm; double xBase = 0; // ConnA: Part to fit Connector @@ -47,29 +47,29 @@ GeoPixelLadderServices::GeoPixelLadderServices(int ladderType) double xOffsetConnC = xOffsetConnA; - //double xMaxConnA = 1.250 * CLHEP::cm + xOffsetConnA + safety; - // double xMaxConnC = 1.6575 * CLHEP::cm + xOffsetConnC + safety; + //double xMaxConnA = 1.250 * GeoModelKernelUnits::cm + xOffsetConnA + safety; + // double xMaxConnC = 1.6575 * GeoModelKernelUnits::cm + xOffsetConnC + safety; // max offset is 12.5mm + 1/2 thickness of cables - // double xMaxConnA = 1.5075 * CLHEP::cm + 0.5* 0.15*CLHEP::cm + xOffsetConnA + safety; + // double xMaxConnA = 1.5075 * GeoModelKernelUnits::cm + 0.5* 0.15*GeoModelKernelUnits::cm + xOffsetConnA + safety; double xMaxConnA = m_gmt_mgr->PixelConnectorPosX(1) + 0.5*m_gmt_mgr->PixelConnectorWidthX(1) + xOffsetConnA + safety; - double xMaxConnC = 1.25 * CLHEP::cm + 0.5* 0.0125*CLHEP::cm + xOffsetConnC + safety; - double xMaxOmegaBase = 0.055 * CLHEP::cm + xBase + 1*CLHEP::mm; // The 1 mm is just extra safety. - double yWidthConnA = 1.0 * CLHEP::cm; - double yWidthConnC = 0.2 * CLHEP::cm; + double xMaxConnC = 1.25 * GeoModelKernelUnits::cm + 0.5* 0.0125*GeoModelKernelUnits::cm + xOffsetConnC + safety; + double xMaxOmegaBase = 0.055 * GeoModelKernelUnits::cm + xBase + 1*GeoModelKernelUnits::mm; // The 1 mm is just extra safety. + double yWidthConnA = 1.0 * GeoModelKernelUnits::cm; + double yWidthConnC = 0.2 * GeoModelKernelUnits::cm; double yPosConnA = m_gmt_mgr->PixelLadderCableOffsetY() - m_gmt_mgr->PixelLadderServicesY(); double yPosConnC = yPosConnA; double xCenter = 0; double xWidthOmegaBase = xMaxOmegaBase - xBase; double xWidthConnA = xMaxConnA - xBase; double xWidthConnC = xMaxConnC - xBase; - double yWidthOmega = 1.2*CLHEP::cm + m_epsilon; + double yWidthOmega = 1.2*GeoModelKernelUnits::cm + m_epsilon; const GeoBox* omegaBaseEnv = new GeoBox(0.5*xWidthOmegaBase, 0.5*yWidthOmega, halflength); const GeoBox* connAEnv = new GeoBox(0.5*xWidthConnA, 0.5*yWidthConnA + safety, halflength); const GeoBox* connCEnv = new GeoBox(0.5*xWidthConnC, 0.5*yWidthConnC + safety, halflength); - HepGeom::Transform3D omegaBaseShift = HepGeom::Translate3D(xBase + 0.5*xWidthOmegaBase - xCenter, 0., 0.); - HepGeom::Transform3D connAShift = HepGeom::Translate3D(xBase + 0.5*xWidthConnA - xCenter, yPosConnA, 0.); - HepGeom::Transform3D connCShift = HepGeom::Translate3D(xBase + 0.5*xWidthConnC - xCenter, yPosConnC, 0.); + GeoTrf::Transform3D omegaBaseShift = GeoTrf::Translate3D(xBase + 0.5*xWidthOmegaBase - xCenter, 0., 0.); + GeoTrf::Transform3D connAShift = GeoTrf::Translate3D(xBase + 0.5*xWidthConnA - xCenter, yPosConnA, 0.); + GeoTrf::Transform3D connCShift = GeoTrf::Translate3D(xBase + 0.5*xWidthConnC - xCenter, yPosConnC, 0.); const GeoShape & ladderSvcShape = ((*omegaBaseEnv) << omegaBaseShift) .add(*connAEnv << connAShift) @@ -78,10 +78,10 @@ GeoPixelLadderServices::GeoPixelLadderServices(int ladderType) m_ladderServicesLV = new GeoLogVol("LadderSvc",&ladderSvcShape,air); m_ladderServicesLV->ref(); // store coordinates of corners of envelope. - m_envelopeCornerA1 = HepGeom::Point3D<double>(xMaxConnA - xCenter, yPosConnA + 0.5* yWidthConnA + safety, 0.); - m_envelopeCornerA2 = HepGeom::Point3D<double>(xMaxConnA - xCenter, yPosConnA - 0.5* yWidthConnA + safety, 0.); - m_envelopeCornerC1 = HepGeom::Point3D<double>(xMaxConnC - xCenter, yPosConnC + 0.5* yWidthConnC + safety, 0.); - m_envelopeCornerC2 = HepGeom::Point3D<double>(xMaxConnC - xCenter, yPosConnC - 0.5* yWidthConnC + safety, 0.); + m_envelopeCornerA1 = GeoTrf::Vector3D(xMaxConnA - xCenter, yPosConnA + 0.5* yWidthConnA + safety, 0.); + m_envelopeCornerA2 = GeoTrf::Vector3D(xMaxConnA - xCenter, yPosConnA - 0.5* yWidthConnA + safety, 0.); + m_envelopeCornerC1 = GeoTrf::Vector3D(xMaxConnC - xCenter, yPosConnC + 0.5* yWidthConnC + safety, 0.); + m_envelopeCornerC2 = GeoTrf::Vector3D(xMaxConnC - xCenter, yPosConnC - 0.5* yWidthConnC + safety, 0.); m_xOffset = xBase; @@ -98,7 +98,7 @@ GeoPixelLadderServices::~GeoPixelLadderServices(){ GeoVPhysVol* GeoPixelLadderServices::Build() { GeoPhysVol* ladderSvcPhys = new GeoPhysVol(m_ladderServicesLV); //double thickness = m_gmt_mgr->PixelLadderThickness()+m_gmt_mgr->PixelCableThickness(); - //double thickness = m_gmt_mgr->PixelLadderThickness() + m_gmt_mgr->PixelCableThickness() + 0.25*CLHEP::cm; // plus 0.25 cm New DC3 ??? + //double thickness = m_gmt_mgr->PixelLadderThickness() + m_gmt_mgr->PixelCableThickness() + 0.25*GeoModelKernelUnits::cm; // plus 0.25 cm New DC3 ??? //double thickness = m_gmt_mgr->PixelLadderThickness()+ 6.5; // m_gmt_mgr->PixelCableThickness() was 0.4 cm, plus 0.25 cm New DC3 // // The Glue @@ -121,7 +121,7 @@ GeoVPhysVol* GeoPixelLadderServices::Build() { double zpos = fluid.posZ(); GeoVPhysVol* fluidPhys = fluid.Build(); - GeoTransform* xform = new GeoTransform(HepGeom::Translate3D(xpos,ypos,zpos)); + GeoTransform* xform = new GeoTransform(GeoTrf::Translate3D(xpos,ypos,zpos)); ladderSvcPhys->add(xform); ladderSvcPhys->add(fluidPhys); @@ -141,7 +141,7 @@ GeoVPhysVol* GeoPixelLadderServices::Build() { double xpos = m_xOffset + cable.getStackOffset() + m_gmt_mgr->PixelLadderCableOffsetX() - m_gmt_mgr->PixelLadderServicesX(); double ypos = m_yOffset + m_gmt_mgr->PixelLadderCableOffsetY() - m_gmt_mgr->PixelLadderServicesY(); double zpos = cable.zpos(); - GeoTransform* xform = new GeoTransform(HepGeom::Translate3D(xpos,ypos,zpos)); + GeoTransform* xform = new GeoTransform(GeoTrf::Translate3D(xpos,ypos,zpos)); ladderSvcPhys->add(xform); ladderSvcPhys->add(phys); } @@ -154,16 +154,16 @@ GeoVPhysVol* GeoPixelLadderServices::BuildOmega() { double xOffset = m_xOffset; double yOffset = m_yOffset; /* - double xUpperBend = xOffset + 2.9*CLHEP::mm; + double xUpperBend = xOffset + 2.9*GeoModelKernelUnits::mm; double yUpperBend = yOffset + 0; - double radUpperBend = 2.3*CLHEP::mm; + double radUpperBend = 2.3*GeoModelKernelUnits::mm; double xLowerBend = xOffset + 0.9; - double yLowerBend = yOffset + 3.35*CLHEP::mm; - double radLowerBend = 0.8*CLHEP::mm; - double yStart= yOffset + (4.675+0.5*2.65)*CLHEP::mm; + double yLowerBend = yOffset + 3.35*GeoModelKernelUnits::mm; + double radLowerBend = 0.8*GeoModelKernelUnits::mm; + double yStart= yOffset + (4.675+0.5*2.65)*GeoModelKernelUnits::mm; double yEnd = yOffset -yStart; - double thick = 0.3*CLHEP::mm; - double length = 816*CLHEP::mm; + double thick = 0.3*GeoModelKernelUnits::mm; + double length = 816*GeoModelKernelUnits::mm; double zOffset = 0; */ double xUpperBend = xOffset + m_gmt_mgr->PixelOmegaUpperBendX(); @@ -192,13 +192,13 @@ GeoVPhysVol* GeoPixelLadderServices::BuildOmega() { // Tube sector for upper bend - GeoTubs * upperBendShape = new GeoTubs(radUpperBend - thick, radUpperBend, 0.5* length, alpha-0.5*CLHEP::pi, CLHEP::pi - 2*alpha); + GeoTubs * upperBendShape = new GeoTubs(radUpperBend - thick, radUpperBend, 0.5* length, alpha-0.5*GeoModelKernelUnits::pi, GeoModelKernelUnits::pi - 2*alpha); // Tube sector for lower bend (+y) - GeoTubs * lowerBendShapeP = new GeoTubs(radLowerBend - thick, radLowerBend, 0.5* length, CLHEP::pi, 0.5*CLHEP::pi-alpha); + GeoTubs * lowerBendShapeP = new GeoTubs(radLowerBend - thick, radLowerBend, 0.5* length, GeoModelKernelUnits::pi, 0.5*GeoModelKernelUnits::pi-alpha); // Tube sector for lower bend (-y) - GeoTubs * lowerBendShapeM = new GeoTubs(radLowerBend - thick, radLowerBend, 0.5* length, 0.5*CLHEP::pi + alpha, 0.5*CLHEP::pi-alpha); + GeoTubs * lowerBendShapeM = new GeoTubs(radLowerBend - thick, radLowerBend, 0.5* length, 0.5*GeoModelKernelUnits::pi + alpha, 0.5*GeoModelKernelUnits::pi-alpha); // Lower Straight section (+y) GeoBox * lowerStraightBoxP = new GeoBox(0.5*thick, 0.5*(yStart - yLowerBend), 0.5*length); @@ -211,13 +211,13 @@ GeoVPhysVol* GeoPixelLadderServices::BuildOmega() { // Put it all together const GeoShape & omegaShape = - (*lowerStraightBoxP << HepGeom::Translate3D(xLowerBend-radLowerBend+0.5*thick,0.5*(yLowerBend+yStart),zOffset) ) - .add(*lowerBendShapeP << HepGeom::Translate3D(xLowerBend,yLowerBend,zOffset) ) - .add(*upperStraightBox << HepGeom::Translate3D(0.5*(xLowerStraight+xUpperStraight),0.5*(yLowerStraight+yUpperStraight),zOffset)*HepGeom::RotateZ3D(0.5*CLHEP::pi-alpha) ) - .add(*upperBendShape << HepGeom::Translate3D(xUpperBend,yUpperBend,zOffset) ) - .add(*upperStraightBox << HepGeom::Translate3D(0.5*(xLowerStraight+xUpperStraight),-0.5*(yLowerStraight+yUpperStraight),zOffset)*HepGeom::RotateZ3D(0.5*CLHEP::pi+alpha) ) - .add(*lowerBendShapeM << HepGeom::Translate3D(xLowerBend,-yLowerBend,zOffset) ) - .add(*lowerStraightBoxM << HepGeom::Translate3D(xLowerBend-radLowerBend+0.5*thick,0.5*(-yLowerBend+yEnd),zOffset) ); + (*lowerStraightBoxP << GeoTrf::Translate3D(xLowerBend-radLowerBend+0.5*thick,0.5*(yLowerBend+yStart),zOffset) ) + .add(*lowerBendShapeP << GeoTrf::Translate3D(xLowerBend,yLowerBend,zOffset) ) + .add(*upperStraightBox << GeoTrf::Translate3D(0.5*(xLowerStraight+xUpperStraight),0.5*(yLowerStraight+yUpperStraight),zOffset)*GeoTrf::RotateZ3D(0.5*GeoModelKernelUnits::pi-alpha) ) + .add(*upperBendShape << GeoTrf::Translate3D(xUpperBend,yUpperBend,zOffset) ) + .add(*upperStraightBox << GeoTrf::Translate3D(0.5*(xLowerStraight+xUpperStraight),-0.5*(yLowerStraight+yUpperStraight),zOffset)*GeoTrf::RotateZ3D(0.5*GeoModelKernelUnits::pi+alpha) ) + .add(*lowerBendShapeM << GeoTrf::Translate3D(xLowerBend,-yLowerBend,zOffset) ) + .add(*lowerStraightBoxM << GeoTrf::Translate3D(xLowerBend-radLowerBend+0.5*thick,0.5*(-yLowerBend+yEnd),zOffset) ); double totVolume = lowerStraightBoxP->volume() @@ -240,14 +240,14 @@ GeoVPhysVol* GeoPixelLadderServices::BuildAlTube() { double yOffset = m_yOffset; /* - double xUpperBend = xOffset + 2.7*CLHEP::mm; + double xUpperBend = xOffset + 2.7*GeoModelKernelUnits::mm; double yUpperBend = yOffset; - double radUpperBend = 2.0*CLHEP::mm; + double radUpperBend = 2.0*GeoModelKernelUnits::mm; double xLowerBend = xOffset + 0.55; - double yLowerBend = yOffset+1.925*CLHEP::mm; - double radLowerBend = 0.5*CLHEP::mm; - double thick = 0.2*CLHEP::mm; - double length = 838*CLHEP::mm; + double yLowerBend = yOffset+1.925*GeoModelKernelUnits::mm; + double radLowerBend = 0.5*GeoModelKernelUnits::mm; + double thick = 0.2*GeoModelKernelUnits::mm; + double length = 838*GeoModelKernelUnits::mm; double zOffset = 0; */ @@ -275,13 +275,13 @@ GeoVPhysVol* GeoPixelLadderServices::BuildAlTube() { // Tube sector for upper bend - GeoTubs * upperBendShape = new GeoTubs(radUpperBend - thick, radUpperBend, 0.5* length, alpha-0.5*CLHEP::pi, CLHEP::pi - 2*alpha); + GeoTubs * upperBendShape = new GeoTubs(radUpperBend - thick, radUpperBend, 0.5* length, alpha-0.5*GeoModelKernelUnits::pi, GeoModelKernelUnits::pi - 2*alpha); // Tube sector for lower bend (+y) - GeoTubs * lowerBendShapeP = new GeoTubs(radLowerBend - thick, radLowerBend, 0.5* length, 0.5*CLHEP::pi-alpha, 0.5*CLHEP::pi+alpha); + GeoTubs * lowerBendShapeP = new GeoTubs(radLowerBend - thick, radLowerBend, 0.5* length, 0.5*GeoModelKernelUnits::pi-alpha, 0.5*GeoModelKernelUnits::pi+alpha); // Tube sector for lower bend (-y) - GeoTubs * lowerBendShapeM = new GeoTubs(radLowerBend - thick, radLowerBend, 0.5* length, CLHEP::pi, 0.5*CLHEP::pi+alpha); + GeoTubs * lowerBendShapeM = new GeoTubs(radLowerBend - thick, radLowerBend, 0.5* length, GeoModelKernelUnits::pi, 0.5*GeoModelKernelUnits::pi+alpha); // Lower Straight section GeoBox * lowerStraightBox = new GeoBox(0.5*thick, yLowerBend, 0.5*length); @@ -291,12 +291,12 @@ GeoVPhysVol* GeoPixelLadderServices::BuildAlTube() { // Put it all together const GeoShape & alTubeShape = - (*lowerStraightBox << HepGeom::Translate3D(xLowerBend-radLowerBend+0.5*thick,0,zOffset) ) - .add(*lowerBendShapeP << HepGeom::Translate3D(xLowerBend,yLowerBend,zOffset) ) - .add(*upperStraightBox << HepGeom::Translate3D(0.5*(xLowerStraight+xUpperStraight),0.5*(yLowerStraight+yUpperStraight),zOffset)*HepGeom::RotateZ3D(0.5*CLHEP::pi-alpha) ) - .add(*upperBendShape << HepGeom::Translate3D(xUpperBend,yUpperBend,zOffset) ) - .add(*upperStraightBox << HepGeom::Translate3D(0.5*(xLowerStraight+xUpperStraight),-0.5*(yLowerStraight+yUpperStraight),zOffset)*HepGeom::RotateZ3D(0.5*CLHEP::pi+alpha) ) - .add(*lowerBendShapeM << HepGeom::Translate3D(xLowerBend,-yLowerBend,zOffset) ); + (*lowerStraightBox << GeoTrf::Translate3D(xLowerBend-radLowerBend+0.5*thick,0,zOffset) ) + .add(*lowerBendShapeP << GeoTrf::Translate3D(xLowerBend,yLowerBend,zOffset) ) + .add(*upperStraightBox << GeoTrf::Translate3D(0.5*(xLowerStraight+xUpperStraight),0.5*(yLowerStraight+yUpperStraight),zOffset)*GeoTrf::RotateZ3D(0.5*GeoModelKernelUnits::pi-alpha) ) + .add(*upperBendShape << GeoTrf::Translate3D(xUpperBend,yUpperBend,zOffset) ) + .add(*upperStraightBox << GeoTrf::Translate3D(0.5*(xLowerStraight+xUpperStraight),-0.5*(yLowerStraight+yUpperStraight),zOffset)*GeoTrf::RotateZ3D(0.5*GeoModelKernelUnits::pi+alpha) ) + .add(*lowerBendShapeM << GeoTrf::Translate3D(xLowerBend,-yLowerBend,zOffset) ); double totVolume = lowerStraightBox->volume() @@ -333,7 +333,7 @@ void GeoPixelLadderServices::BuildGlue(GeoPhysVol * parent) { GeoLogVol* glueLV = new GeoLogVol("Glue",glueShape,glueMat); GeoPhysVol* gluePV = new GeoPhysVol(glueLV); - GeoTransform * xform = new GeoTransform(HepGeom::Translate3D(m_xOffset+x1+0.5*thickness, m_yOffset-0.5*(y1+y2), zOffset)); + GeoTransform * xform = new GeoTransform(GeoTrf::Translate3D(m_xOffset+x1+0.5*thickness, m_yOffset-0.5*(y1+y2), zOffset)); parent->add(xform); parent->add(gluePV); @@ -362,7 +362,7 @@ void GeoPixelLadderServices::BuildPigtailAndConnector(GeoPhysVol * parent) { // Connector int numConn = m_gmt_mgr->PixelNumConnectorElements(); std::vector<GeoPhysVol *> connectorPhysVols(numConn); - std::vector<HepGeom::Transform3D> connectorTransforms(numConn); + std::vector<GeoTrf::Transform3D> connectorTransforms(numConn); for (int iConn = 0; iConn < numConn; iConn++) { double xPosConnector = xOffset + m_gmt_mgr->PixelConnectorPosX(iConn); double yPosConnector = yOffset + m_gmt_mgr->PixelConnectorPosY(iConn); @@ -375,7 +375,7 @@ void GeoPixelLadderServices::BuildPigtailAndConnector(GeoPhysVol * parent) { const GeoMaterial* connectorMat = m_mat_mgr->getMaterialForVolume(matNameConnector,connectorShape->volume()); GeoLogVol * connectorLV = new GeoLogVol("Connector",connectorShape,connectorMat); connectorPhysVols[iConn] = new GeoPhysVol(connectorLV); - connectorTransforms[iConn] = HepGeom::Translate3D(xPosConnector, yPosConnector, zPosConnector); + connectorTransforms[iConn] = GeoTrf::Translate3D(xPosConnector, yPosConnector, zPosConnector); } for (int iModule = 0; iModule<m_gmt_mgr->PixelNModule(); iModule++) { @@ -383,13 +383,13 @@ void GeoPixelLadderServices::BuildPigtailAndConnector(GeoPhysVol * parent) { double zShift = m_gmt_mgr->PixelModuleZPosition(moduleEta); // Place pigtail - GeoTransform * xformPigtail = new GeoTransform(HepGeom::Translate3D(xPosPigtail, yPosPigtail, zShift+zPosPigtail)); + GeoTransform * xformPigtail = new GeoTransform(GeoTrf::Translate3D(xPosPigtail, yPosPigtail, zShift+zPosPigtail)); parent->add(xformPigtail); parent->add(pigtailPhys); // Place connector for (int iConn = 0; iConn < numConn; iConn++) { - GeoTransform * xformConnector = new GeoTransform(HepGeom::TranslateZ3D(zShift)*connectorTransforms[iConn]); + GeoTransform * xformConnector = new GeoTransform(GeoTrf::TranslateZ3D(zShift)*connectorTransforms[iConn]); parent->add(xformConnector); parent->add(connectorPhysVols[iConn]); } diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelLadderServices.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadderServices.h similarity index 54% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelLadderServices.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadderServices.h index af2f303c3fd54a2da0204b3f5f8851cbbcca0144..84fb11c61b4ba628a6d50aef12778a9463dd7f0f 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelLadderServices.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLadderServices.h @@ -5,8 +5,9 @@ #ifndef GEOPIXELLADDERSERVICES_H #define GEOPIXELLADDERSERVICES_H -#include "PixelGeoModel/GeoVPixelFactory.h" -#include "CLHEP/Geometry/Point3D.h" +#include "GeoVPixelFactory.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" class GeoLogVol; class GeoPhysVol; @@ -16,10 +17,10 @@ class GeoPixelLadderServices : public GeoVPixelFactory { GeoPixelLadderServices(int ladderType); virtual ~GeoPixelLadderServices(); virtual GeoVPhysVol* Build(); - const HepGeom::Point3D<double> & envelopeCornerA1() {return m_envelopeCornerA1;} - const HepGeom::Point3D<double> & envelopeCornerA2() {return m_envelopeCornerA2;} - const HepGeom::Point3D<double> & envelopeCornerC1() {return m_envelopeCornerC1;} - const HepGeom::Point3D<double> & envelopeCornerC2() {return m_envelopeCornerC2;} + const GeoTrf::Vector3D & envelopeCornerA1() {return m_envelopeCornerA1;} + const GeoTrf::Vector3D & envelopeCornerA2() {return m_envelopeCornerA2;} + const GeoTrf::Vector3D & envelopeCornerC1() {return m_envelopeCornerC1;} + const GeoTrf::Vector3D & envelopeCornerC2() {return m_envelopeCornerC2;} double referenceX() {return m_xOffset;} double referenceY() {return m_yOffset;} @@ -32,10 +33,10 @@ class GeoPixelLadderServices : public GeoVPixelFactory { const GeoLogVol* m_ladderServicesLV; int m_ladderType; - HepGeom::Point3D<double> m_envelopeCornerA1; - HepGeom::Point3D<double> m_envelopeCornerA2; - HepGeom::Point3D<double> m_envelopeCornerC1; - HepGeom::Point3D<double> m_envelopeCornerC2; + GeoTrf::Vector3D m_envelopeCornerA1; + GeoTrf::Vector3D m_envelopeCornerA2; + GeoTrf::Vector3D m_envelopeCornerC1; + GeoTrf::Vector3D m_envelopeCornerC2; double m_xOffset; double m_yOffset; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLayer.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLayer.cxx index a1f7aca79291bac1ccb0824dfd077666a93f5d5e..8e103b87779df90b75e9fe0239792a079c188a6a 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLayer.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLayer.cxx @@ -2,17 +2,17 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ - -#include "PixelGeoModel/GeoPixelLayer.h" -#include "PixelGeoModel/GeoPixelLadder.h" -#include "PixelGeoModel/GeoPixelTMT.h" -#include "PixelGeoModel/GeoPixelSimpleStaveSupport.h" -#include "PixelGeoModel/GeoPixelDetailedStaveSupport.h" -#include "PixelGeoModel/GeoPixelStaveRingServices.h" -#include "PixelGeoModel/GeoPixelLadderServices.h" -#include "PixelGeoModel/GeoPixelPigtail.h" -#include "PixelGeoModel/GeoPixelSiCrystal.h" -#include "PixelGeoModel/GeoPixelStaveRing.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoPixelLayer.h" +#include "GeoPixelLadder.h" +#include "GeoPixelTMT.h" +#include "GeoPixelSimpleStaveSupport.h" +#include "GeoPixelDetailedStaveSupport.h" +#include "GeoPixelStaveRingServices.h" +#include "GeoPixelLadderServices.h" +#include "GeoPixelPigtail.h" +#include "GeoPixelSiCrystal.h" +#include "GeoPixelStaveRing.h" #include "InDetGeoModelUtils/ExtraMaterial.h" #include "InDetReadoutGeometry/PixelDetectorManager.h" @@ -136,10 +136,10 @@ GeoVPhysVol* GeoPixelLayer::Build() { //std::cout << "Distance along ladder surface from center to point of closest approach: " << distToClosestPoint << std::endl; // Calculate the radius of the corners of the ladder. - HepGeom::Point3D<double> ladderLowerCorner(-ladderHalfThickN, ladderHalfWidth, 0); - HepGeom::Point3D<double> ladderUpperCorner(ladderHalfThickP, -ladderHalfWidth, 0); - ladderLowerCorner = HepGeom::TranslateX3D(layerRadius) * HepGeom::RotateZ3D(std::abs(ladderTilt)) * ladderLowerCorner; - ladderUpperCorner = HepGeom::TranslateX3D(layerRadius) * HepGeom::RotateZ3D(std::abs(ladderTilt)) * ladderUpperCorner; + GeoTrf::Vector3D ladderLowerCorner(-ladderHalfThickN, ladderHalfWidth, 0); + GeoTrf::Vector3D ladderUpperCorner(ladderHalfThickP, -ladderHalfWidth, 0); + ladderLowerCorner = GeoTrf::TranslateX3D(layerRadius) * GeoTrf::RotateZ3D(std::abs(ladderTilt)) * ladderLowerCorner; + ladderUpperCorner = GeoTrf::TranslateX3D(layerRadius) * GeoTrf::RotateZ3D(std::abs(ladderTilt)) * ladderUpperCorner; double layerThicknessN = layerRadius - ladderLowerCorner.perp(); double layerThicknessP = ladderUpperCorner.perp() - layerRadius; // Will be recalculated below in case of additional services @@ -182,9 +182,9 @@ GeoVPhysVol* GeoPixelLayer::Build() { // Variables that are used later int maxLadType = 0; std::vector<GeoVPhysVol *> ladderServicesArray; - HepGeom::Transform3D ladderServicesTransform; + GeoTrf::Transform3D ladderServicesTransform(GeoTrf::Transform3D::Identity()); GeoVPhysVol* pigtailPhysVol = 0; - HepGeom::Transform3D transPigtail; + GeoTrf::Transform3D transPigtail(GeoTrf::Transform3D::Identity()); // Only make services in non SLHC geometries if (staveLayout == 0) { @@ -244,10 +244,10 @@ GeoVPhysVol* GeoPixelLayer::Build() { // We need the dimensions of the GeoPixelLadderServices. They are all the same in this regards // so any of them will do - use the first one. - HepGeom::Point3D<double> corner1 = firstLadderServices->envelopeCornerC1(); - HepGeom::Point3D<double> corner2 = firstLadderServices->envelopeCornerC2(); - HepGeom::Point3D<double> corner3 = firstLadderServices->envelopeCornerA1(); - HepGeom::Point3D<double> corner4 = firstLadderServices->envelopeCornerA2(); + GeoTrf::Vector3D corner1 = firstLadderServices->envelopeCornerC1(); + GeoTrf::Vector3D corner2 = firstLadderServices->envelopeCornerC2(); + GeoTrf::Vector3D corner3 = firstLadderServices->envelopeCornerA1(); + GeoTrf::Vector3D corner4 = firstLadderServices->envelopeCornerA2(); // translate relative to sensor center (center of tilt rotation), // then tilt then translate by radius of layer, then calculate r. @@ -256,13 +256,13 @@ GeoVPhysVol* GeoPixelLayer::Build() { // xCenter, yCenter or coordinates of ladder services relative to active layer center (center of tilt rotation) xCenter = (firstLadderServices->referenceX() + xLadderServicesOffset); yCenter = (firstLadderServices->referenceY() + yLadderServicesOffset); - HepGeom::Transform3D ladderSvcToglobal = HepGeom::TranslateX3D(layerRadius) - * HepGeom::RotateZ3D(ladderTilt) - * HepGeom::Translate3D(xCenter, yCenter, 0); - HepGeom::Point3D<double> corner1global = ladderSvcToglobal * corner1; - HepGeom::Point3D<double> corner2global = ladderSvcToglobal * corner2; - HepGeom::Point3D<double> corner3global = ladderSvcToglobal * corner3; - HepGeom::Point3D<double> corner4global = ladderSvcToglobal * corner4; + GeoTrf::Transform3D ladderSvcToglobal = GeoTrf::TranslateX3D(layerRadius) + * GeoTrf::RotateZ3D(ladderTilt) + * GeoTrf::Translate3D(xCenter, yCenter, 0); + GeoTrf::Vector3D corner1global = ladderSvcToglobal * corner1; + GeoTrf::Vector3D corner2global = ladderSvcToglobal * corner2; + GeoTrf::Vector3D corner3global = ladderSvcToglobal * corner3; + GeoTrf::Vector3D corner4global = ladderSvcToglobal * corner4; double rMaxTmp = std::max(corner1global.perp(), std::max(corner2global.perp(), @@ -287,14 +287,14 @@ GeoVPhysVol* GeoPixelLayer::Build() { // The tube and cooling have there reference point // In y: center of cooling tube // In x: ~center of envelope (will change it to base of glue layer.) - ladderServicesTransform = HepGeom::Translate3D(xCenter, yCenter, 0); + ladderServicesTransform = GeoTrf::Translate3D(xCenter, yCenter, 0); // // The Pigtail // GeoPixelPigtail pigtail; pigtailPhysVol = pigtail.Build(); - transPigtail = HepGeom::Translate3D(m_gmt_mgr->PixelPigtailBendX() + m_gmt_mgr->PixelLadderCableOffsetX(), + transPigtail = GeoTrf::Translate3D(m_gmt_mgr->PixelPigtailBendX() + m_gmt_mgr->PixelLadderCableOffsetX(), m_gmt_mgr->PixelPigtailBendY() + m_gmt_mgr->PixelLadderCableOffsetY(), 0.); @@ -304,7 +304,7 @@ GeoVPhysVol* GeoPixelLayer::Build() { // // Layer dimensions from above, etc // - double safety = 0.01 * CLHEP::mm; + double safety = 0.01 * GeoModelKernelUnits::mm; double rmin = m_gmt_mgr->PixelLayerRadius()-layerThicknessN - safety; double rmax = m_gmt_mgr->PixelLayerRadius()+layerThicknessP + safety; double length = m_gmt_mgr->PixelLadderLength() + 4*m_epsilon; // Ladder has length m_gmt_mgr->PixelLadderLength() + 2*m_epsilon @@ -315,7 +315,7 @@ GeoVPhysVol* GeoPixelLayer::Build() { if(m_gmt_mgr->GetLD()==0&&m_gmt_mgr->ibl()&&m_gmt_mgr->PixelStaveLayout()>3&&m_gmt_mgr->PixelStaveLayout()<8) { bAddIBLStaveRings=true; - double safety = 0.001 * CLHEP::mm; + double safety = 0.001 * GeoModelKernelUnits::mm; double outerRadius = m_gmt_mgr->IBLSupportMidRingInnerRadius(); rmax=outerRadius-safety; @@ -346,8 +346,8 @@ GeoVPhysVol* GeoPixelLayer::Build() { // // A few variables needed below // - double angle=(nSectors>0)?(360./(double)nSectors)*CLHEP::deg:(360.*CLHEP::deg); - HepGeom::Transform3D transRadiusAndTilt = HepGeom::TranslateX3D(layerRadius)*HepGeom::RotateZ3D(ladderTilt); + double angle=(nSectors>0)?(360./(double)nSectors)*GeoModelKernelUnits::deg:(360.*GeoModelKernelUnits::deg); + GeoTrf::Transform3D transRadiusAndTilt = GeoTrf::TranslateX3D(layerRadius)*GeoTrf::RotateZ3D(ladderTilt); double phiOfModuleZero = m_gmt_mgr->PhiOfModuleZero(); // IBL rotations are defined vs the cooling pipe center... @@ -355,14 +355,13 @@ GeoVPhysVol* GeoPixelLayer::Build() { { // Point that defines the center of the cooling pipe - HepGeom::Point3D<double> centerCoolingPipe = m_gmt_mgr->IBLStaveRotationAxis() ; - HepGeom::Point3D<double> centerCoolingPipe_inv = -centerCoolingPipe; + GeoTrf::Vector3D centerCoolingPipe = m_gmt_mgr->IBLStaveRotationAxis() ; // Transforms - HepGeom::Transform3D staveTrf = HepGeom::RotateZ3D(ladderTilt)*HepGeom::Translate3D(centerCoolingPipe_inv); + GeoTrf::Transform3D staveTrf = GeoTrf::RotateZ3D(ladderTilt)*GeoTrf::Translate3D(-centerCoolingPipe.x(),-centerCoolingPipe.y(),-centerCoolingPipe.z()); double staveRadius = m_gmt_mgr->IBLStaveRadius() ; - transRadiusAndTilt = HepGeom::TranslateX3D(staveRadius)*staveTrf; + transRadiusAndTilt = GeoTrf::TranslateX3D(staveRadius)*staveTrf; } // @@ -396,7 +395,7 @@ GeoVPhysVol* GeoPixelLayer::Build() { double phiOfSector = phiOfModuleZero + ii*angle; // transform equiv RotZ(phiOfSector)*TransZ(layerRadius)*RotZ(tilt) - HepGeom::Transform3D ladderTransform = HepGeom::RotateZ3D(phiOfSector) * transRadiusAndTilt; + GeoTrf::Transform3D ladderTransform = GeoTrf::RotateZ3D(phiOfSector) * transRadiusAndTilt; // // Place the active ladders @@ -499,7 +498,7 @@ GeoVPhysVol* GeoPixelLayer::Build() { if(m_gmt_mgr->PixelStaveAxe()==1) { GeoNameTag *tagM = new GeoNameTag("Brl0M_StaveRing"); - GeoTransform *xformSupportMidRing = new GeoTransform(HepGeom::Transform3D()); + GeoTransform *xformSupportMidRing = new GeoTransform(GeoTrf::Transform3D::Identity()); GeoVPhysVol *supportPhysMidRing = getSupportMidRing(); layerPhys->add(tagM); layerPhys->add(xformSupportMidRing); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelLayer.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLayer.h similarity index 95% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelLayer.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLayer.h index 64847a9fb5ae80145b30e768e8796ad85eaca020..317b1207ddcba7591968fcd882ed56b8150f7f68 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelLayer.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelLayer.h @@ -5,7 +5,7 @@ #ifndef PIXELGEOMODEL_GEOPIXELLAYER_H #define PIXELGEOMODEL_GEOPIXELLAYER_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" class GeoPhysVol; class GeoTransform; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelModule.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelModule.cxx index 612341d9e3f40b8a6474e2cad4b00990fe05599f..9f0fb3b103fee2b94f8b5894d0131a9d0d247733 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelModule.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelModule.cxx @@ -2,10 +2,10 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/GeoPixelModule.h" -#include "PixelGeoModel/GeoPixelHybrid.h" -#include "PixelGeoModel/GeoPixelChip.h" -#include "PixelGeoModel/GeoPixelSiCrystal.h" +#include "GeoPixelModule.h" +#include "GeoPixelHybrid.h" +#include "GeoPixelChip.h" +#include "GeoPixelSiCrystal.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" @@ -57,12 +57,12 @@ GeoPixelModule::GeoPixelModule(GeoPixelSiCrystal& theSensor) : // Shift so the center of the box is the center of the sensor. double shift = 0.5 * (ThicknessP() - ThicknessN_noSvc()); - // const GeoShape & shiftedBox = (*moduleBox) << HepGeom::TranslateX3D(shift); + // const GeoShape & shiftedBox = (*moduleBox) << GeoTrf::TranslateX3D(shift); // moduleShape = &shiftedBox; thickness = ThicknessP()+ThicknessN_noSvc(); const GeoBox* moduleBox = new GeoBox(thickness/2.,width/2.,length/2.); - const GeoShape & shiftedBox = (*moduleBox) << HepGeom::TranslateX3D(shift); + const GeoShape & shiftedBox = (*moduleBox) << GeoTrf::TranslateX3D(shift); const GeoShape * moduleShape = &shiftedBox; if(m_moduleSvcThickness<0.001) { @@ -71,19 +71,19 @@ GeoPixelModule::GeoPixelModule(GeoPixelSiCrystal& theSensor) : } else { const GeoShape * gblShape = 0; - gblShape = addShape(gblShape, moduleShape, HepGeom::Transform3D() ); + gblShape = addShape(gblShape, moduleShape, GeoTrf::Transform3D::Identity() ); double svcWidth = width*.6; m_moduleSvcWidth = svcWidth; const GeoBox* moduleSvcBox1 = new GeoBox(m_moduleSvcThickness*.5,svcWidth*.25,length*.5); double yShift = width*.5-svcWidth*.75; double xShift = thickness*.5+m_moduleSvcThickness*.5; - gblShape = addShape(gblShape, moduleSvcBox1, (HepGeom::TranslateX3D(-xShift)*HepGeom::TranslateY3D(-yShift)) ); + gblShape = addShape(gblShape, moduleSvcBox1, (GeoTrf::TranslateX3D(-xShift)*GeoTrf::TranslateY3D(-yShift)) ); const GeoBox* moduleSvcBox2 = new GeoBox(m_moduleSvcThickness*.25,svcWidth*.25,length*.5); yShift = width*.5-svcWidth*.25; xShift = thickness*.5+m_moduleSvcThickness*.25; - gblShape = addShape(gblShape, moduleSvcBox2, (HepGeom::TranslateX3D(-xShift)*HepGeom::TranslateY3D(-yShift)) ); + gblShape = addShape(gblShape, moduleSvcBox2, (GeoTrf::TranslateX3D(-xShift)*GeoTrf::TranslateY3D(-yShift)) ); for(int iSvc=0; iSvc<m_nbModuleSvc; iSvc++) { @@ -97,7 +97,7 @@ GeoPixelModule::GeoPixelModule(GeoPixelSiCrystal& theSensor) : double offsetY = m_gmt_mgr->PixelModuleServiceOffsetY(iSvc); double xPos = -0.5*(m_gmt_mgr->PixelBoardThickness(m_isModule3D)-m_gmt_mgr->PixelHybridThickness(m_isModule3D)) - offsetX - thick_svc*.5; const GeoBox* moduleSvcBox3 = new GeoBox(thick_svc*.5+.01,width_svc*.5+.01,length*.5+.01); - gblShape = addShape(gblShape, moduleSvcBox3, (HepGeom::TranslateX3D(xPos)*HepGeom::TranslateY3D(offsetY)) ); + gblShape = addShape(gblShape, moduleSvcBox3, (GeoTrf::TranslateX3D(xPos)*GeoTrf::TranslateY3D(offsetY)) ); } } @@ -131,16 +131,16 @@ GeoVPhysVol* GeoPixelModule::Build( ) { } modulePhys->add(new GeoIdentifierTag(idTag) ); //Sensor is centered so we don't need the transform. - //GeoTransform *xformsi = new GeoTransform(HepGeom::Transform3D()); + //GeoTransform *xformsi = new GeoTransform(GeoTrf::Transform3D()); //modulePhys->add(xformsi); modulePhys->add(theSi ); // // Place the Hybrid // - if (m_gmt_mgr->PixelHybridThickness(m_isModule3D)>0.00001*CLHEP::mm){ + if (m_gmt_mgr->PixelHybridThickness(m_isModule3D)>0.00001*GeoModelKernelUnits::mm){ GeoPixelHybrid ph(m_isModule3D); double hybxpos = -0.5*(m_gmt_mgr->PixelBoardThickness(m_isModule3D)+m_gmt_mgr->PixelHybridThickness(m_isModule3D)); - GeoTransform* xform = new GeoTransform(HepGeom::TranslateX3D(hybxpos)); + GeoTransform* xform = new GeoTransform(GeoTrf::TranslateX3D(hybxpos)); modulePhys->add(xform); modulePhys->add(ph.Build() ); } @@ -151,7 +151,7 @@ GeoVPhysVol* GeoPixelModule::Build( ) { GeoPixelChip pc(m_isModule3D); double chipxpos = 0.5*(m_gmt_mgr->PixelBoardThickness(m_isModule3D)+m_gmt_mgr->PixelChipThickness(m_isModule3D))+m_gmt_mgr->PixelChipGap(m_isModule3D); double chipypos =m_gmt_mgr->PixelChipOffset(m_isModule3D); - GeoTransform* xform = new GeoTransform(HepGeom::TranslateX3D(chipxpos)*HepGeom::TranslateY3D(chipypos)); + GeoTransform* xform = new GeoTransform(GeoTrf::TranslateX3D(chipxpos)*GeoTrf::TranslateY3D(chipypos)); modulePhys->add(xform); modulePhys->add(pc.Build() ); @@ -183,7 +183,7 @@ GeoVPhysVol* GeoPixelModule::Build( ) { double xPos = -0.5*(m_gmt_mgr->PixelBoardThickness(m_isModule3D)-m_gmt_mgr->PixelHybridThickness(m_isModule3D)) - offsetX - thick*.5; double yPos = offsetY; double zPos = offsetZ; - GeoTransform* xform = new GeoTransform(HepGeom::Translate3D(xPos,yPos,zPos)); + GeoTransform* xform = new GeoTransform(GeoTrf::Translate3D(xPos,yPos,zPos)); modulePhys->add(xform); modulePhys->add(svcPhys); } @@ -200,7 +200,7 @@ double GeoPixelModule::ThicknessN_noSvc() { // is the max of ThicknessP and thickness from the module center to // the outer surface of the hybrid plus some safety. // - double safety = 0.01*CLHEP::mm; + double safety = 0.01*GeoModelKernelUnits::mm; double thickn = 0.5 * m_gmt_mgr->PixelBoardThickness(m_isModule3D)+ m_gmt_mgr->PixelHybridThickness(m_isModule3D) + safety; double thick = max(thickn, ThicknessP()); @@ -234,7 +234,7 @@ double GeoPixelModule::ThicknessN() { // - double safety = 0.01*CLHEP::mm; + double safety = 0.01*GeoModelKernelUnits::mm; double thickn = 0.5 * m_gmt_mgr->PixelBoardThickness(m_isModule3D)+ m_gmt_mgr->PixelHybridThickness(m_isModule3D) + safety; double thick = max(thickn, ThicknessP()); @@ -265,7 +265,7 @@ double GeoPixelModule::ThicknessP() { // is thickness from the module center to the outer surface of the // chips plus some safety. - double safety = 0.01*CLHEP::mm; + double safety = 0.01*GeoModelKernelUnits::mm; double thick = 0.5 * m_gmt_mgr->PixelBoardThickness(m_isModule3D) + m_gmt_mgr->PixelChipThickness(m_isModule3D)+m_gmt_mgr->PixelChipGap(m_isModule3D) + safety; @@ -305,7 +305,7 @@ Identifier GeoPixelModule::getID() { } -const GeoShape * GeoPixelModule::addShape(const GeoShape * lastShape, const GeoShape * nextShape, const HepGeom::Transform3D & trans) +const GeoShape * GeoPixelModule::addShape(const GeoShape * lastShape, const GeoShape * nextShape, const GeoTrf::Transform3D & trans) { const GeoShape * shiftedShape = &(*nextShape << trans); if (lastShape) { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelModule.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelModule.h similarity index 90% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelModule.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelModule.h index 43b254bfbdd4305c04fc2f11787c7df087847921..74ca2f44fb00ddb2c89bd0a1af74f92ad19dffd2 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelModule.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelModule.h @@ -5,7 +5,7 @@ #ifndef GEOPIXELMODULE_H #define GEOPIXELMODULE_H #include "Identifier/Identifier.h" -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" class GeoLogVol; class GeoPixelSiCrystal; @@ -27,7 +27,7 @@ class GeoPixelModule : public GeoVPixelFactory { private: - const GeoShape* addShape(const GeoShape * lastShape, const GeoShape * nextShape, const HepGeom::Transform3D & trans); + const GeoShape* addShape(const GeoShape * lastShape, const GeoShape * nextShape, const GeoTrf::Transform3D & trans); const GeoLogVol* m_theModule; Identifier m_id; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelOldFrame.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelOldFrame.cxx index 0973f6f752dfc2c360a2caf8310a6d7076e5d9ea..e50c4ccec30f04d962a2a7522e771f52c65625df 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelOldFrame.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelOldFrame.cxx @@ -6,8 +6,8 @@ // New description of the pixel support frame (M.Zdrazil + AR) // The box part (of barrel) // -#include "PixelGeoModel/GeoPixelOldFrame.h" -#include "PixelGeoModel/PixelLegacyManager.h" +#include "GeoPixelOldFrame.h" +#include "PixelLegacyManager.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoTrap.h" #include "GeoModelKernel/GeoLogVol.h" @@ -113,16 +113,16 @@ void GeoPixelOldFrame::BuildInBarrel(GeoFullPhysVol * parent) { // First part m_legacyManager->setBarrelInSFrame(); - double alpha = 45.*CLHEP::deg; + double alpha = 45.*GeoModelKernelUnits::deg; double w1 = m_legacyManager->PixelBarrelBFrameWidth(); double w2 = m_legacyManager->PixelBarrelTFrameWidth(); double off = m_legacyManager->PixelBarrelFrameOffset(); for (int ii = 0; ii < m_legacyManager->PixelBarrelNBFrame(); ii++) { GeoNameTag* tag = new GeoNameTag("Inside Box Frame"); double thet = ((float)ii+0.5)*alpha; - CLHEP::Hep3Vector pos(w1*cos(thet),w1*sin(thet),off); - CLHEP::HepRotation rm; rm.rotateZ(((float)ii+2.5)*alpha); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(rm,pos)); + GeoTrf::Translation3D pos(w1*cos(thet),w1*sin(thet),off); + GeoTrf::RotateZ3D rm(((float)ii+2.5)*alpha); + GeoTransform* xform = new GeoTransform(GeoTrf::Transform3D(pos*rm)); parent->add(tag); parent->add(xform); parent->add(BuildBox()); @@ -131,9 +131,9 @@ void GeoPixelOldFrame::BuildInBarrel(GeoFullPhysVol * parent) { for (int ii = 0; ii < m_legacyManager->PixelBarrelNTFrame(); ii++) { GeoNameTag* tag = new GeoNameTag("Inside Trap Frame"); double thet = ((float)ii+1.)*alpha; - CLHEP::Hep3Vector pos(w2*cos(thet),w2*sin(thet),off); - CLHEP::HepRotation rm; rm.rotateZ(((float)ii+3.0)*alpha); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(rm,pos)); + GeoTrf::Translation3D pos(w2*cos(thet),w2*sin(thet),off); + GeoTrf::RotateZ3D rm(((float)ii+3.0)*alpha); + GeoTransform* xform = new GeoTransform(GeoTrf::Transform3D(pos*rm)); parent->add(tag); parent->add(xform); parent->add(BuildTrap()); @@ -150,14 +150,14 @@ void GeoPixelOldFrame::BuildInBarrel(GeoFullPhysVol * parent) { for (int ii = 0; ii < m_legacyManager->PixelBarrelNBFrame(); ii++) { GeoNameTag* tag = new GeoNameTag("Outside Box Frame"); double thet = ((float)ii+0.5)*alpha; - CLHEP::Hep3Vector pos(w1*cos(thet),w1*sin(thet),off); - CLHEP::HepRotation rm; rm.rotateZ(((float)ii+2.5)*alpha); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(rm,pos)); + GeoTrf::Translation3D pos(w1*cos(thet),w1*sin(thet),off); + GeoTrf::RotateZ3D rm(((float)ii+2.5)*alpha); + GeoTransform* xform = new GeoTransform(GeoTrf::Transform3D(pos*rm)); parent->add(tag); parent->add(xform); parent->add(BuildBox()); - pos.setZ(-off); - GeoTransform* xform2 = new GeoTransform(HepGeom::Transform3D(rm,pos)); + pos.z()= -off; + GeoTransform* xform2 = new GeoTransform(GeoTrf::Transform3D(pos*rm)); parent->add(tag); parent->add(xform2); parent->add(BuildBox()); @@ -166,14 +166,14 @@ void GeoPixelOldFrame::BuildInBarrel(GeoFullPhysVol * parent) { m_legacyManager->setBarrelOutSFrame(); GeoNameTag* tag = new GeoNameTag("Outside Trap Frame"); double thet = ((float)ii+1.)*alpha; - CLHEP::Hep3Vector pos(w2*cos(thet),w2*sin(thet),off); - CLHEP::HepRotation rm; rm.rotateZ(((float)ii+3.0)*alpha); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(rm,pos)); + GeoTrf::Translation3D pos(w2*cos(thet),w2*sin(thet),off); + GeoTrf::RotateZ3D rm(((float)ii+3.0)*alpha); + GeoTransform* xform = new GeoTransform(GeoTrf::Transform3D(pos*rm)); parent->add(tag); parent->add(xform); parent->add(BuildTrap()); - pos.setZ(-off); - GeoTransform* xform2 = new GeoTransform(HepGeom::Transform3D(rm,pos)); + pos.z() = -off; + GeoTransform* xform2 = new GeoTransform(GeoTrf::Transform3D(pos*rm)); parent->add(tag); parent->add(xform2); parent->add(BuildTrap()); @@ -181,19 +181,15 @@ void GeoPixelOldFrame::BuildInBarrel(GeoFullPhysVol * parent) { m_legacyManager->setEndConeSFrame(); GeoNameTag* tag2 = new GeoNameTag("Outside End Cone Trap Frame"); thet = ((float)ii+0.5)*alpha; - CLHEP::Hep3Vector posec(radi*cos(thet),radi*sin(thet),zpec); - CLHEP::HepRotation rm2; - rm2.rotateX(alxec); - rm2.rotateZ(((float)ii+2.5)*alpha); - GeoTransform* xform3 = new GeoTransform(HepGeom::Transform3D(rm2,posec)); + GeoTrf::Translation3D posec(radi*cos(thet),radi*sin(thet),zpec); + GeoTrf::Transform3D rm2 = GeoTrf::RotateZ3D(((float)ii+2.5)*alpha)*GeoTrf::RotateX3D(alxec); + GeoTransform* xform3 = new GeoTransform(GeoTrf::Transform3D(posec*rm2)); parent->add(tag2); parent->add(xform3); parent->add(BuildTrap()); - posec.setZ(-zpec); - CLHEP::HepRotation rm3; - rm3.rotateX(-alxec); - rm3.rotateZ(((float)ii+2.5)*alpha); - GeoTransform* xform4 = new GeoTransform(HepGeom::Transform3D(rm3,posec)); + posec.z() = -zpec; + GeoTrf::Transform3D rm3 = GeoTrf::RotateZ3D(((float)ii+2.5)*alpha)*GeoTrf::RotateX3D(-alxec); + GeoTransform* xform4 = new GeoTransform(GeoTrf::Transform3D(posec*rm3)); parent->add(tag2); parent->add(xform4); parent->add(BuildTrap()); @@ -210,7 +206,7 @@ void GeoPixelOldFrame::BuildOutBarrel(GeoFullPhysVol * parent) { // Add the pixel frame inside the endcap volume // m_legacyManager->setEndcapInSFrame(); - double alpha = 45.*CLHEP::deg; + double alpha = 45.*GeoModelKernelUnits::deg; double w1 = m_legacyManager->PixelEndcapBFrameWidth(); double w2 = m_legacyManager->PixelEndcapTFrameWidth(); double off = m_legacyManager->PixelEndcapFrameOffset()+m_legacyManager->PixelEndcapFrameLength(); @@ -218,18 +214,18 @@ void GeoPixelOldFrame::BuildOutBarrel(GeoFullPhysVol * parent) { for (int ii = 0; ii < m_legacyManager->PixelEndcapNBFrame(); ii++) { GeoNameTag* tag = new GeoNameTag("Outside Outer Endcap Box Frame"); double thet = ((float)ii+0.5)*alpha; - CLHEP::Hep3Vector pos(w1*cos(thet),w1*sin(thet),off); - CLHEP::HepRotation rm; rm.rotateZ(((float)ii+2.5)*alpha); - + GeoTrf::Translation3D pos(w1*cos(thet),w1*sin(thet),off); + GeoTrf::RotateZ3D rm(((float)ii+2.5)*alpha); + if (endcapAPresent) { - GeoTransform* xform1 = new GeoTransform(HepGeom::Transform3D(rm,pos)); + GeoTransform* xform1 = new GeoTransform(GeoTrf::Transform3D(pos*rm)); parent->add(tag); parent->add(xform1); parent->add(BuildBox()); } if (endcapCPresent) { - pos.setZ(-off); - GeoTransform* xform2 = new GeoTransform(HepGeom::Transform3D(rm,pos)); + pos.z() = -off; + GeoTransform* xform2 = new GeoTransform(GeoTrf::Transform3D(pos*rm)); parent->add(tag); parent->add(xform2); parent->add(BuildBox()); @@ -239,17 +235,17 @@ void GeoPixelOldFrame::BuildOutBarrel(GeoFullPhysVol * parent) { for (int ii = 0; ii < m_legacyManager->PixelEndcapNTFrame(); ii++) { GeoNameTag* tag = new GeoNameTag("Outside Outer Endcap Trap Frame"); double thet = ((float)ii+1.)*alpha; - CLHEP::Hep3Vector pos(w2*cos(thet),w2*sin(thet),off); - CLHEP::HepRotation rm; rm.rotateZ(((float)ii+3.0)*alpha); + GeoTrf::Translation3D pos(w2*cos(thet),w2*sin(thet),off); + GeoTrf::RotateZ3D rm(((float)ii+3.0)*alpha); if (endcapAPresent) { - GeoTransform* xform1 = new GeoTransform(HepGeom::Transform3D(rm,pos)); + GeoTransform* xform1 = new GeoTransform(GeoTrf::Transform3D(pos*rm)); parent->add(tag); parent->add(xform1); parent->add(BuildTrap()); } if (endcapCPresent) { - pos.setZ(-off); - GeoTransform* xform2 = new GeoTransform(HepGeom::Transform3D(rm,pos)); + pos.z() = -off; + GeoTransform* xform2 = new GeoTransform(GeoTrf::Transform3D(pos*rm)); parent->add(tag); parent->add(xform2); parent->add(BuildTrap()); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelOldFrame.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelOldFrame.h similarity index 92% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelOldFrame.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelOldFrame.h index 2a40a4964e3690a233cd05ec066e54d3d84ac3e1..2a4d9a5d71bdf5461092524af56fab2796f0735a 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelOldFrame.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelOldFrame.h @@ -5,7 +5,7 @@ #ifndef GEOPIXELOLDFRAME_H #define GEOPIXELOLDFRAME_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" class GeoLogVol; class GeoFullPhysVol; class GeoVPhysVol; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelPigtail.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelPigtail.cxx index e945ff3fedcd7cf42a35283e1f8fa3941a0ff1d5..e7cab3d7fd9576f8b56f0de0a3e55340b699d43e 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelPigtail.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelPigtail.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/GeoPixelPigtail.h" +#include "GeoPixelPigtail.h" #include "GeoModelKernel/GeoTubs.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" @@ -41,7 +41,7 @@ GeoVPhysVol* GeoPixelPigtail::Build() { GeoPhysVol* pigtailPart = new GeoPhysVol(theTubs); double zpos = posZ + zShift; - GeoTransform* xform = new GeoTransform(HepGeom::TranslateZ3D(zpos)); + GeoTransform* xform = new GeoTransform(GeoTrf::TranslateZ3D(zpos)); pigtailPhys->add(xform); pigtailPhys->add(pigtailPart); } diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelPigtail.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelPigtail.h similarity index 86% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelPigtail.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelPigtail.h index 5f8766c7bbfb7863aa1a94318fa5303abc24b5de..f21415b6d678b645cefdb40847ff07c0bccaeea2 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelPigtail.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelPigtail.h @@ -5,7 +5,7 @@ #ifndef GEOPIXELPIGTAIL_H #define GEOPIXELPIGTAIL_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" class GeoLogVol; class GeoPixelPigtail : public GeoVPixelFactory { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelRingSLHC.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelRingSLHC.cxx index 092b102ea469a0a0571c360258ae875288ad9a54..01ace765ff7d7e445f6bc01cb50c1fb946bf7223 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelRingSLHC.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelRingSLHC.cxx @@ -2,9 +2,9 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/GeoPixelRingSLHC.h" -#include "PixelGeoModel/GeoPixelModule.h" -#include "PixelGeoModel/GeoPixelSiCrystal.h" +#include "GeoPixelRingSLHC.h" +#include "GeoPixelModule.h" +#include "GeoPixelSiCrystal.h" // #include "InDetGeoModelUtils/ExtraMaterial.h" @@ -42,8 +42,8 @@ GeoVPhysVol* GeoPixelRingSLHC::Build() { //(sar) Original block was in c'tor... // Dimensions from class methods // - double rmin = m_gmt_mgr->PixelRingRMin(); // Default is 0.01 CLHEP::mm safety added - double rmax = m_gmt_mgr->PixelRingRMax(); // Default is 0.01 CLHEP::mm safety added + double rmin = m_gmt_mgr->PixelRingRMin(); // Default is 0.01 GeoModelKernelUnits::mm safety added + double rmax = m_gmt_mgr->PixelRingRMax(); // Default is 0.01 GeoModelKernelUnits::mm safety added double halflength = m_gmt_mgr->PixelRingThickness()/2.; const GeoMaterial* air = m_mat_mgr->getMaterial("std::Air"); const GeoTube* ringTube = new GeoTube(rmin,rmax,halflength); @@ -60,7 +60,7 @@ GeoVPhysVol* GeoPixelRingSLHC::Build() { if(nmodules==0) return ringPhys; // deltaPhi is angle between two adjacent modules regardless of side of the disk - double deltaPhi = 360.*CLHEP::deg / (double)nmodules; + double deltaPhi = 360.*GeoModelKernelUnits::deg / (double)nmodules; // This is the start angle of the even modules // Start angle could eventually come from the database... @@ -99,15 +99,13 @@ GeoVPhysVol* GeoPixelRingSLHC::Build() { double angle = imod*deltaPhi+startAngle; + GeoTrf::Transform3D rm = GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + if( m_gmt_mgr->isDiskBack() ) rm = rm * GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg); + rm = rm * GeoTrf::RotateZ3D(angle); - CLHEP::HepRotation rm; - rm.rotateY(90*CLHEP::deg); - if( m_gmt_mgr->isDiskBack() ) rm.rotateX(180.*CLHEP::deg); // depth axis points towards disk. - - rm.rotateZ(angle); - CLHEP::Hep3Vector pos(moduleRadius,0,zpos); - pos.rotateZ(angle); - GeoAlignableTransform* xform = new GeoAlignableTransform(HepGeom::Transform3D(rm,pos)); + GeoTrf::Vector3D pos(moduleRadius,0,zpos); + pos = GeoTrf::RotateZ3D(angle)*pos; + GeoAlignableTransform* xform = new GeoAlignableTransform(GeoTrf::Translate3D(pos.x(),pos.y(),pos.z())*rm); GeoVPhysVol * modulePhys = gpmod.Build(); std::ostringstream ostr; ostr << "Disk" << idisk << "_Sector" << iring; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelRingSLHC.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelRingSLHC.h similarity index 89% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelRingSLHC.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelRingSLHC.h index ccce4bc091b310045600f07086af53515adce847..397d1ba5200ecba1e5cdb1b2f4c5941227ff6c72 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelRingSLHC.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelRingSLHC.h @@ -5,7 +5,7 @@ #ifndef GEOPIXELRINGSLHC_H #define GEOPIXELRINGSLHC_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" class GeoPixelSiCrystal; class GeoLogVol; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelServices.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelServices.cxx index a5d761bdb3d115a3889d495e4b5edfe0f633036e..30aaf37b6dc521f8df3db7f93f5d43d71edee5f8 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelServices.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelServices.cxx @@ -34,7 +34,7 @@ // TUBS // Ignored: RIN2,ROUT2 // PHI: phi start location of tube sector -// WIDTH (CLHEP::deg): phi width of sector +// WIDTH (GeoModelKernelUnits::deg): phi width of sector // REPEAT: Repeat the tube sector this many times in phi with equal distance between them. // CONS, CONE // WIDTH,REPEAT ignored if CONE @@ -72,33 +72,33 @@ // Ignored: ROUT, RIN2, ROUT2 // RIN: Radial position of center of tube // PHI: phi position of center -// WIDTH (CLHEP::mm): diameter +// WIDTH (GeoModelKernelUnits::mm): diameter // REPEAT: Repeat this many times in phi with equal distance between them. // ROD2 // Ignored: ROUT, RIN2, ROUT2 // RIN: Radial position of center of tube // PHI: phi position of center -// WIDTH (CLHEP::mm): diameter +// WIDTH (GeoModelKernelUnits::mm): diameter // REPEAT: Repeat this many times in phi with equal distance between them. // BOX // Ignored: RIN2, ROUT2 // ROUT-RIN = thickness of box (radially) // (RIN+ROUT)/2 = radial poistion of center of box // PHI: phi position of center -// WIDTH (CLHEP::mm) = width of box +// WIDTH (GeoModelKernelUnits::mm) = width of box // REPEAT: Repeat this many times in phi with equal distance between them. // TRAP // Ignored: RIN2, ROUT2 // ROUT-RIN = thickness of trapezoid (radially) // (RIN+ROUT)/2 = radial poistion of center of trapzoid // PHI: phi position of center -// WIDTH (CLHEP::mm) = width of trapezoid at center +// WIDTH (GeoModelKernelUnits::mm) = width of trapezoid at center // REPEAT: Repeat this many times in phi with equal distance between them. // -// **IMPORTANT NOTE** WIDTH can be in degrees or CLHEP::mm. See OraclePixGeoManager +// **IMPORTANT NOTE** WIDTH can be in degrees or GeoModelKernelUnits::mm. See OraclePixGeoManager -#include "PixelGeoModel/GeoPixelServices.h" +#include "GeoPixelServices.h" #include "InDetGeoModelUtils/VolumeSplitterUtils.h" #include "InDetGeoModelUtils/VolumeBuilder.h" #include "InDetGeoModelUtils/ServiceVolume.h" @@ -206,7 +206,7 @@ GeoPixelServices::GeoPixelServices(InDetDD::Zone * pixZone) std::vector<const InDetDD::ServiceVolume *> servicesOutPix; double svc3_rMin = 99999., svc3_rMax = 0.; std::vector<const InDetDD::ServiceVolume *> servicesOther; - double safety=0.001*CLHEP::mm; + double safety=0.001*GeoModelKernelUnits::mm; for(std::vector<const InDetDD::ServiceVolume *>::const_iterator it=services.begin(); it!=services.end(); it++) { @@ -403,15 +403,15 @@ void GeoPixelServices::initializeOld(const std::string & a) double phiLoc = m_gmt_mgr->PixelServicePhiLoc(a, ii); double phiWidth = m_gmt_mgr->PixelServiceWidth(a, ii); - // Can be in degree or CLHEP::mm. Usually it is CLHEP::deg expect for BOX, TRAP and ROD shape + // Can be in degree or GeoModelKernelUnits::mm. Usually it is GeoModelKernelUnits::deg expect for BOX, TRAP and ROD shape // Geometry manager makes no assumptions about units. So we must interpret here. if (shapeType == "BOX" || shapeType == "ROD" || shapeType == "ROD2" || shapeType == "TRAP") { - phiWidth *= CLHEP::mm; + phiWidth *= GeoModelKernelUnits::mm; } else { - phiWidth *= CLHEP::degree; + phiWidth *= GeoModelKernelUnits::degree; } - if (phiWidth == 0) phiWidth = 2*CLHEP::pi; + if (phiWidth == 0) phiWidth = 2*GeoModelKernelUnits::pi; if (rmin2 <= 0) rmin2 = param.rmin(); if (rmax2 <= 0) rmax2 = param.rmax(); if (repeat == 0) repeat = 1; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelServices.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelServices.h similarity index 95% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelServices.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelServices.h index 9f5d2ca9e735abd55b723c236243c9c8ebae65e7..de701826a8ad4c4edaeb4dd2770ba44199d85b72 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelServices.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelServices.h @@ -5,7 +5,7 @@ #ifndef GEOPIXELSERVICES_H #define GEOPIXELSERVICES_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" class GeoTransform; namespace InDetDD { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSiCrystal.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSiCrystal.cxx index f2fcc130d89826e8a44e80c464c82dfdb21b9713..57fc49f96acbb47748d8450229d1672b8c5a50a6 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSiCrystal.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSiCrystal.cxx @@ -11,7 +11,7 @@ // // Contains: nothing // -#include "PixelGeoModel/GeoPixelSiCrystal.h" +#include "GeoPixelSiCrystal.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoFullPhysVol.h" @@ -109,17 +109,17 @@ GeoPixelSiCrystal::GeoPixelSiCrystal(bool isBLayer, bool isModule3D) if ( (m_gmt_mgr->DesignRPActiveArea(m_isModule3D) > width) || (m_gmt_mgr->DesignZActiveArea(m_isModule3D) > length) || - (width - m_gmt_mgr->DesignRPActiveArea(m_isModule3D) > 4 * CLHEP::mm) || - (length - m_gmt_mgr->DesignZActiveArea(m_isModule3D) > 4 * CLHEP::mm) ) { + (width - m_gmt_mgr->DesignRPActiveArea(m_isModule3D) > 4 * GeoModelKernelUnits::mm) || + (length - m_gmt_mgr->DesignZActiveArea(m_isModule3D) > 4 * GeoModelKernelUnits::mm) ) { m_gmt_mgr->msg(MSG::WARNING) << "GeoPixelSiCrystal: Active area not consistent with sensor size. Sensor: " - << width/CLHEP::mm << " x " << length/CLHEP::mm << ", Active: " - << m_gmt_mgr->DesignRPActiveArea(m_isModule3D)/CLHEP::mm << " x " << m_gmt_mgr->DesignZActiveArea(m_isModule3D)/CLHEP::mm + << width/GeoModelKernelUnits::mm << " x " << length/GeoModelKernelUnits::mm << ", Active: " + << m_gmt_mgr->DesignRPActiveArea(m_isModule3D)/GeoModelKernelUnits::mm << " x " << m_gmt_mgr->DesignZActiveArea(m_isModule3D)/GeoModelKernelUnits::mm << endmsg; } else { if (m_gmt_mgr->msgLvl(MSG::DEBUG)) m_gmt_mgr->msg(MSG::DEBUG) << "GeoPixelSiCrystal: Sensor: " - << width/CLHEP::mm << " x " << length/CLHEP::mm << ", Active: " - << m_gmt_mgr->DesignRPActiveArea(m_isModule3D)/CLHEP::mm << " x " << m_gmt_mgr->DesignZActiveArea(m_isModule3D)/CLHEP::mm + << width/GeoModelKernelUnits::mm << " x " << length/GeoModelKernelUnits::mm << ", Active: " + << m_gmt_mgr->DesignRPActiveArea(m_isModule3D)/GeoModelKernelUnits::mm << " x " << m_gmt_mgr->DesignZActiveArea(m_isModule3D)/GeoModelKernelUnits::mm << endmsg; } diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelSiCrystal.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSiCrystal.h similarity index 95% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelSiCrystal.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSiCrystal.h index 129f0e61e140032043ea181ae5d135082bb0b6d3..711b6119c4f208c7115b9bfe5b27c166b31264d8 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelSiCrystal.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSiCrystal.h @@ -6,7 +6,7 @@ #define GEOPIXELSICRYSTAL_H #include "Identifier/Identifier.h" -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" class GeoLogVol; namespace InDetDD { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSimpleStaveSupport.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSimpleStaveSupport.cxx index 6dcc6471db15103db7409f9a449ab6e8d3b59e51..134f811f597d01222e27108635517675f23fe1e0 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSimpleStaveSupport.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSimpleStaveSupport.cxx @@ -5,7 +5,7 @@ // Build simple stave support as a box // This is built one time per layer. -#include "PixelGeoModel/GeoPixelSimpleStaveSupport.h" +#include "GeoPixelSimpleStaveSupport.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" @@ -14,6 +14,7 @@ GeoPixelSimpleStaveSupport::GeoPixelSimpleStaveSupport() + : m_transform(GeoTrf::Transform3D::Identity()) { m_physVol = Build(); m_physVol->ref(); @@ -36,7 +37,7 @@ GeoVPhysVol* GeoPixelSimpleStaveSupport::Build() { const GeoMaterial* material = m_mat_mgr->getMaterialForVolume(matName,shape->volume()); GeoLogVol* logVol = new GeoLogVol("StaveSupport",shape,material); - m_transform = HepGeom::Translate3D(xOffset,yOffset,0); + m_transform = GeoTrf::Translate3D(xOffset,yOffset,0); m_thicknessP = xOffset + 0.5*thickness; m_thicknessN = -xOffset + 0.5*thickness; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelSimpleStaveSupport.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSimpleStaveSupport.h similarity index 84% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelSimpleStaveSupport.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSimpleStaveSupport.h index 0688cb25b0694fa1c6cd9538dece7f92228e374c..3086935ef9d2b118e771bfa3c2b69bce31ac84ba 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelSimpleStaveSupport.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelSimpleStaveSupport.h @@ -5,8 +5,9 @@ #ifndef GEOPIXELSIMPLESTAVESUPPORT_H #define GEOPIXELSIMPLESTAVESUPPORT_H -#include "PixelGeoModel/GeoPixelStaveSupport.h" -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoPixelStaveSupport.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" class GeoPixelSimpleStaveSupport : public GeoPixelStaveSupport { @@ -15,7 +16,7 @@ public: virtual ~GeoPixelSimpleStaveSupport(); virtual GeoVPhysVol* Build(); virtual GeoVPhysVol* getPhysVol() const {return m_physVol;} - virtual const HepGeom::Transform3D & transform() const {return m_transform;} + virtual const GeoTrf::Transform3D & transform() const {return m_transform;} virtual double thicknessP() const {return m_thicknessP;} virtual double thicknessN() const {return m_thicknessN;} virtual GeoSimplePolygonBrep* computeStaveEnvelopShape(double) { return 0;} @@ -33,7 +34,7 @@ public: private: GeoVPhysVol* m_physVol; - HepGeom::Transform3D m_transform; + GeoTrf::Transform3D m_transform; double m_thicknessP; double m_thicknessN; }; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRing.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRing.cxx index 87dcd7e1e7acd42f0b9fc419179eddc5577ae2e8..f949df028596d1ff62268a03087b0e29af96ced9 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRing.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRing.cxx @@ -5,10 +5,10 @@ // Build detailed stave support : face plate + carbon foam + cable flex + cooling pipe + end blocks // This is built one time per layer. -#include "PixelGeoModel/GeoPixelStaveRing.h" +#include "GeoPixelStaveRing.h" -#include "PixelGeoModel/GeoPixelSiCrystal.h" -#include "PixelGeoModel/GeoPixelModule.h" +#include "GeoPixelSiCrystal.h" +#include "GeoPixelModule.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoTube.h" @@ -48,7 +48,7 @@ GeoVPhysVol* GeoPixelStaveRing::Build(){ m_gmt_mgr->msg(MSG::INFO) <<"Build detailed stave ring support : "<<m_ringName<<" "<<m_ringPosition<<endmsg; - double safety = 0.001*CLHEP::mm; + double safety = 0.001*GeoModelKernelUnits::mm; bool isBLayer = false; if(m_gmt_mgr->GetLD() == 0) isBLayer = true; GeoPixelSiCrystal theSensor(isBLayer); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelStaveRing.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRing.h similarity index 83% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelStaveRing.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRing.h index 891f12ac7ad197213aa2a30614d7788a9969bdf4..0a1510e18ca67c881fe779957d8534388a446d20 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelStaveRing.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRing.h @@ -5,9 +5,7 @@ #ifndef GEOPIXELSTAVERING_H #define GEOPIXELSTAVERING_H -#include "PixelGeoModel/GeoPixelStaveSupport.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "GeoModelKernel/GeoTransform.h" +#include "GeoVPixelFactory.h" class GeoPixelStaveRing : public GeoVPixelFactory { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRingServices.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRingServices.cxx index 1c8b31dd59fbf3cb0df63b11f59db1223d02d2a6..66130eeedae9448060317632bd3619ce2b5084d2 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRingServices.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRingServices.cxx @@ -6,9 +6,9 @@ // Build detailed stave support : face plate + carbon foam + cable flex + cooling pipe + end blocks // This is built one time per layer. -#include "PixelGeoModel/GeoPixelStaveRingServices.h" +#include "GeoPixelStaveRingServices.h" -#include "PixelGeoModel/GeoPixelStaveRing.h" +#include "GeoPixelStaveRing.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoTube.h" @@ -43,7 +43,7 @@ GeoVPhysVol* GeoPixelStaveRingServices::Build() double ladderHalfThickN = m_ladder.thicknessN(); double ladderHalfThickP = m_ladder.thicknessP(); - double safetyMargin = 0.001*CLHEP::mm; + double safetyMargin = 0.001*GeoModelKernelUnits::mm; // Get endblock from m_staveSupport GeoPhysVol* endblockA=dynamic_cast<GeoPhysVol*>(m_staveSupport.getEndblockEnvelopShape(2)); @@ -56,7 +56,7 @@ GeoVPhysVol* GeoPixelStaveRingServices::Build() GeoPhysVol* serviceCoolPipe=dynamic_cast<GeoPhysVol*>(m_staveSupport.getEndblockEnvelopShape(3)); GeoTransform* serviceCoolPipeTrfA=m_staveSupport.getEndblockEnvelopShapeTrf(2); GeoTransform* serviceCoolPipeTrfC=m_staveSupport.getEndblockEnvelopShapeTrf(-2); - const HepGeom::Transform3D ladderLocalTrf=m_staveSupport.transform(); + const GeoTrf::Transform3D ladderLocalTrf=m_staveSupport.transform(); double dogLegStaveLength=17.87; double halfSupportLength=endblockLength*0.5+dogLegStaveLength*0.5; @@ -109,21 +109,20 @@ GeoVPhysVol* GeoPixelStaveRingServices::Build() } else { - double angle=360./nSectors*CLHEP::deg; - HepGeom::Transform3D transRadiusAndTilt = HepGeom::TranslateX3D(layerRadius)*HepGeom::RotateZ3D(ladderTilt); + double angle=360./nSectors*GeoModelKernelUnits::deg; + GeoTrf::Transform3D transRadiusAndTilt = GeoTrf::TranslateX3D(layerRadius)*GeoTrf::RotateZ3D(ladderTilt); double phiOfModuleZero = m_gmt_mgr->PhiOfModuleZero(); if(m_gmt_mgr->PixelStaveAxe()==1) { // Point that defines the center of the cooling pipe - HepGeom::Point3D<double> centerCoolingPipe = m_gmt_mgr->IBLStaveRotationAxis() ; - HepGeom::Point3D<double> centerCoolingPipe_inv = -centerCoolingPipe; + GeoTrf::Vector3D centerCoolingPipe = m_gmt_mgr->IBLStaveRotationAxis() ; // Transforms - HepGeom::Transform3D staveTrf = HepGeom::RotateZ3D(ladderTilt)*HepGeom::Translate3D(centerCoolingPipe_inv); + GeoTrf::Transform3D staveTrf = GeoTrf::RotateZ3D(ladderTilt)*GeoTrf::Translate3D(-centerCoolingPipe.x(),-centerCoolingPipe.y(),-centerCoolingPipe.z()); double staveRadius = m_gmt_mgr->IBLStaveRadius() ; - transRadiusAndTilt = HepGeom::TranslateX3D(staveRadius)*staveTrf; + transRadiusAndTilt = GeoTrf::TranslateX3D(staveRadius)*staveTrf; } for(int ii = 0; ii < nSectors; ii++) { @@ -132,7 +131,7 @@ GeoVPhysVol* GeoPixelStaveRingServices::Build() double phiOfSector = phiOfModuleZero + ii*angle; // transform equiv RotZ(phiOfSector)*TransZ(layerRadius)*RotZ(tilt) - HepGeom::Transform3D ladderTransform = HepGeom::RotateZ3D(phiOfSector) * transRadiusAndTilt ; + GeoTrf::Transform3D ladderTransform = GeoTrf::RotateZ3D(phiOfSector) * transRadiusAndTilt ; // // Place endblock and endblock flex @@ -140,12 +139,12 @@ GeoVPhysVol* GeoPixelStaveRingServices::Build() std::ostringstream nameTag; nameTag << "Endblock" << ii; GeoNameTag * tag = new GeoNameTag(nameTag.str()); - GeoTransform* xformA = new GeoTransform(ladderTransform*ladderLocalTrf*HepGeom::TranslateZ3D(endblockZpos-serviceZpos-dogLegStaveLength*0.5)); + GeoTransform* xformA = new GeoTransform(ladderTransform*ladderLocalTrf*GeoTrf::TranslateZ3D(endblockZpos-serviceZpos-dogLegStaveLength*0.5)); m_supportPhysA->add(tag); m_supportPhysA->add(xformA); m_supportPhysA->add(endblockA); - GeoTransform* xformC = new GeoTransform(ladderTransform*ladderLocalTrf*HepGeom::TranslateZ3D(-endblockZpos+serviceZpos+dogLegStaveLength*0.5)); + GeoTransform* xformC = new GeoTransform(ladderTransform*ladderLocalTrf*GeoTrf::TranslateZ3D(-endblockZpos+serviceZpos+dogLegStaveLength*0.5)); m_supportPhysC->add(tag); m_supportPhysC->add(xformC); m_supportPhysC->add(endblockC); @@ -156,8 +155,8 @@ GeoVPhysVol* GeoPixelStaveRingServices::Build() std::ostringstream nameTagFlex; nameTagFlex << "EndblockFlex" << ii; GeoNameTag * tagFlex = new GeoNameTag(nameTagFlex.str()); - GeoTransform* xformFlexA = new GeoTransform(ladderTransform*ladderLocalTrf*(endblockFlexTrf->getTransform())*HepGeom::TranslateZ3D(-dogLegStaveLength*0.5)); - GeoTransform* xformFlexB = new GeoTransform(ladderTransform*ladderLocalTrf*(endblockFlexTrf->getTransform())*HepGeom::TranslateZ3D(dogLegStaveLength*0.5)); + GeoTransform* xformFlexA = new GeoTransform(ladderTransform*ladderLocalTrf*(endblockFlexTrf->getTransform())*GeoTrf::TranslateZ3D(-dogLegStaveLength*0.5)); + GeoTransform* xformFlexB = new GeoTransform(ladderTransform*ladderLocalTrf*(endblockFlexTrf->getTransform())*GeoTrf::TranslateZ3D(dogLegStaveLength*0.5)); m_supportPhysA->add(tagFlex); m_supportPhysA->add(xformFlexA); @@ -184,7 +183,7 @@ GeoVPhysVol* GeoPixelStaveRingServices::Build() m_supportPhysC->add(xformPipeC); m_supportPhysC->add(serviceCoolPipe); - HepGeom::Point3D<double> p=ladderTransform*ladderLocalTrf*(serviceCoolPipeTrfA->getTransform())*HepGeom::Point3D<double>(0.,0.,0.); +// GeoTrf::Vector3D p=ladderTransform*ladderLocalTrf*(serviceCoolPipeTrfA->getTransform())*GeoTrf::Vector3D(0.,0.,0.); // std::cout<<"Cooling pipe srv : "<<p.x()<<" "<<p.y()<<" "<<p.z(); // std::cout<<" r : "<<sqrt(p.x()*p.x()+p.y()*p.y())<<" "; // std::cout<<" ang : "<<acos(p.x()/sqrt(p.x()*p.x()+p.y()*p.y()))*180./3.1415<<" "; @@ -209,7 +208,7 @@ GeoVPhysVol* GeoPixelStaveRingServices::Build() double dimX=dimX_lin/cos(alpha1)-.15; double dimY=m_gmt_mgr->IBLStaveFlexWidth(); double dimZ=m_gmt_mgr->IBLStaveFlexBaseThickness(); - double angle=90.*CLHEP::deg-alpha1; //90.-27.99; + double angle=90.*GeoModelKernelUnits::deg-alpha1; //90.-27.99; double delta=m_gmt_mgr->IBLFlexDoglegDY(); double trX=-dimX_lin*tan(alpha1)*0.5; //-3.28; double trZ=eoStave+dimX_lin*0.5; @@ -223,13 +222,13 @@ GeoVPhysVol* GeoPixelStaveRingServices::Build() for(unsigned int iPt=0; iPt<xShape.size(); iPt++) tmp_shape->addVertex(xShape[iPt],yShape[iPt]); - // GeoPara * tmp_shape = new GeoPara(0.47,5.5,9.,0.*CLHEP::deg,55.*CLHEP::deg,0.); + // GeoPara * tmp_shape = new GeoPara(0.47,5.5,9.,0.*GeoModelKernelUnits::deg,55.*GeoModelKernelUnits::deg,0.); std::string flexMatName = m_gmt_mgr->IBLFlexMaterial(1,"doglegA"); const GeoMaterial* tmp_material = m_mat_mgr->getMaterial(flexMatName); GeoLogVol* tmp_logVol = new GeoLogVol("FlexDogLeg1",tmp_shape,tmp_material); GeoPhysVol * tmp_logVolPV = new GeoPhysVol(tmp_logVol); GeoNameTag* tmp_tag = new GeoNameTag("FlexDogLeg1"); - HepGeom::Transform3D trfGblA=ladderTransform*ladderLocalTrf*HepGeom::TranslateX3D(trX)*HepGeom::TranslateZ3D(trZ)*(endblockFlexTrf->getTransform())*HepGeom::RotateY3D(angle); + GeoTrf::Transform3D trfGblA=ladderTransform*ladderLocalTrf*GeoTrf::TranslateX3D(trX)*GeoTrf::TranslateZ3D(trZ)*(endblockFlexTrf->getTransform())*GeoTrf::RotateY3D(angle); GeoTransform* tmp_xformA = new GeoTransform(trfGblA); m_supportPhysA->add(tmp_tag); @@ -238,7 +237,7 @@ GeoVPhysVol* GeoPixelStaveRingServices::Build() trX=-dimX_lin*tan(alpha1)*0.5; //-3.28; trZ=-(eoStave+dimX_lin*0.5); - HepGeom::Transform3D trfGblC=ladderTransform*ladderLocalTrf*HepGeom::TranslateX3D(trX)*HepGeom::TranslateZ3D(trZ)*(endblockFlexTrf->getTransform())*HepGeom::RotateY3D(-angle); + GeoTrf::Transform3D trfGblC=ladderTransform*ladderLocalTrf*GeoTrf::TranslateX3D(trX)*GeoTrf::TranslateZ3D(trZ)*(endblockFlexTrf->getTransform())*GeoTrf::RotateY3D(-angle); GeoTransform* tmp_xformC = new GeoTransform(trfGblC); m_supportPhysC->add(tmp_tag); @@ -254,7 +253,7 @@ GeoVPhysVol* GeoPixelStaveRingServices::Build() double trX2=trX*2.-dimX2_lin*tan(alpha2)*0.5; //-3.28; double trZ2=eoStave+dimX_lin+dimX2_lin*0.5; xShape.clear(); yShape.clear(); - angle=90.*CLHEP::deg-alpha2; + angle=90.*GeoModelKernelUnits::deg-alpha2; xShape.push_back(dimX2*0.5); yShape.push_back(dimY2*0.5); xShape.push_back(-dimX2*0.5); yShape.push_back(dimY2*0.5); xShape.push_back(-dimX2*0.5); yShape.push_back(-dimY2*0.5); @@ -267,13 +266,13 @@ GeoVPhysVol* GeoPixelStaveRingServices::Build() GeoPhysVol * tmp2_logVolPV = new GeoPhysVol(tmp2_logVol); GeoNameTag* tmp2_tag = new GeoNameTag("FlexDogLeg2"); - GeoTransform* tmp2_xformA = new GeoTransform(ladderTransform*ladderLocalTrf*HepGeom::TranslateX3D(trX2)*HepGeom::TranslateZ3D(trZ2)*(endblockFlexTrf->getTransform())*HepGeom::RotateY3D(angle)*HepGeom::TranslateY3D(delta*.75)); + GeoTransform* tmp2_xformA = new GeoTransform(ladderTransform*ladderLocalTrf*GeoTrf::TranslateX3D(trX2)*GeoTrf::TranslateZ3D(trZ2)*(endblockFlexTrf->getTransform())*GeoTrf::RotateY3D(angle)*GeoTrf::TranslateY3D(delta*.75)); m_supportPhysA->add(tmp2_tag); m_supportPhysA->add(tmp2_xformA); m_supportPhysA->add(tmp2_logVolPV); trZ2=-(eoStave+dimX_lin+dimX2_lin*0.5); - GeoTransform* tmp2_xformC = new GeoTransform(ladderTransform*ladderLocalTrf*HepGeom::TranslateX3D(trX2)*HepGeom::TranslateZ3D(trZ2)*(endblockFlexTrf->getTransform())*HepGeom::RotateY3D(-angle)*HepGeom::TranslateY3D(delta*.75)); + GeoTransform* tmp2_xformC = new GeoTransform(ladderTransform*ladderLocalTrf*GeoTrf::TranslateX3D(trX2)*GeoTrf::TranslateZ3D(trZ2)*(endblockFlexTrf->getTransform())*GeoTrf::RotateY3D(-angle)*GeoTrf::TranslateY3D(delta*.75)); m_supportPhysC->add(tmp2_tag); m_supportPhysC->add(tmp2_xformC); m_supportPhysC->add(tmp2_logVolPV); @@ -284,30 +283,30 @@ GeoVPhysVol* GeoPixelStaveRingServices::Build() // IBL layer shift ( 2mm shift issue ) double layerZshift = m_gmt_mgr->PixelLayerGlobalShift(); - CLHEP::Hep3Vector ring_posA(0.0,0.0,staveRing.GetPositionAlongZAxis()-serviceZpos-dogLegStaveLength*0.5+layerZshift); - GeoTransform* xformA = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),ring_posA)); + GeoTrf::Translate3D ring_posA(0.0,0.0,staveRing.GetPositionAlongZAxis()-serviceZpos-dogLegStaveLength*0.5+layerZshift); + GeoTransform* xformA = new GeoTransform(ring_posA); m_supportPhysA->add(tagA); m_supportPhysA->add(xformA); m_supportPhysA->add(ringphysA); - CLHEP::Hep3Vector ring_posC(0.0,0.0,-staveRing.GetPositionAlongZAxis()+serviceZpos+dogLegStaveLength*0.5-layerZshift); - GeoTransform* xformC = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),ring_posC)); + GeoTrf::Translate3D ring_posC(0.0,0.0,-staveRing.GetPositionAlongZAxis()+serviceZpos+dogLegStaveLength*0.5-layerZshift); + GeoTransform* xformC = new GeoTransform(ring_posC); m_supportPhysC->add(tagC); m_supportPhysC->add(xformC); m_supportPhysC->add(ringphysC); m_gmt_mgr->msg(MSG::DEBUG)<<"IBL EOS : zpos "<<serviceZpos<<endmsg; - HepGeom::Transform3D supportTrfA = HepGeom::TranslateZ3D(serviceZpos+dogLegStaveLength*0.5+layerZshift); + GeoTrf::Transform3D supportTrfA = GeoTrf::TranslateZ3D(serviceZpos+dogLegStaveLength*0.5+layerZshift); m_xformSupportA = new GeoTransform(supportTrfA); - HepGeom::Transform3D supportTrfC = HepGeom::TranslateZ3D(-serviceZpos-dogLegStaveLength*0.5+layerZshift); + GeoTrf::Transform3D supportTrfC = GeoTrf::TranslateZ3D(-serviceZpos-dogLegStaveLength*0.5+layerZshift); m_xformSupportC = new GeoTransform(supportTrfC); std::ostringstream lnameM; lnameM << "Brl0M_StaveRing"; m_supportMidRing = staveRing.SetParametersAndBuild(lnameM.str(),"Mid"); - CLHEP::Hep3Vector ring_posM(0.0,0.0,0.0+layerZshift); - m_xformSupportMidRing = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),ring_posM)); + GeoTrf::Translate3D ring_posM(0.0,0.0,0.0+layerZshift); + m_xformSupportMidRing = new GeoTransform(ring_posM); return 0; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelStaveRingServices.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRingServices.h similarity index 84% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelStaveRingServices.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRingServices.h index de473e5f6c7087a5260ef2bcb8a0e9deea3d11c7..e4ebb9393c97b6778b6b2992eceebf66ba5fae9a 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelStaveRingServices.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveRingServices.h @@ -5,17 +5,14 @@ #ifndef GEOPIXELSTAVERINGSERVICES_H #define GEOPIXELSTAVERINGSERVICES_H -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" -#include "PixelGeoModel/GeoPixelStaveSupport.h" -#include "PixelGeoModel/GeoPixelLadder.h" +#include "GeoPixelStaveSupport.h" +#include "GeoPixelLadder.h" -#include "CLHEP/Geometry/Transform3D.h" #include "GeoModelKernel/GeoPhysVol.h" - class GeoTransform; -class GeoPhysVol; class GeoPixelStaveRingServices : public GeoVPixelFactory { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelStaveSupport.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveSupport.h similarity index 86% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelStaveSupport.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveSupport.h index 05a15c622e8a490f522bccb32ca21eddc0354d4d..0b077797b64d9feb3e0d776f79359e1352a6a3e1 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelStaveSupport.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelStaveSupport.h @@ -5,8 +5,9 @@ #ifndef GEOPIXELSTAVESUPPORT_H #define GEOPIXELSTAVESUPPORT_H -#include "PixelGeoModel/GeoVPixelFactory.h" -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoVPixelFactory.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoSimplePolygonBrep.h" #include "GeoModelKernel/GeoTransform.h" @@ -14,7 +15,7 @@ class GeoPixelStaveSupport : public GeoVPixelFactory { public: virtual GeoVPhysVol* getPhysVol() const = 0; - virtual const HepGeom::Transform3D & transform() const = 0; + virtual const GeoTrf::Transform3D & transform() const = 0; virtual double thicknessP() const = 0; virtual double thicknessN() const = 0; virtual GeoSimplePolygonBrep* computeStaveEnvelopShape(double) = 0; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelTMT.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelTMT.cxx index 2138e77957ca532db0dd792e04672a4f016f85ba..5d2286e73b42245c64923a90fc9cb66c2e4f2c30 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelTMT.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelTMT.cxx @@ -7,7 +7,7 @@ // Each layer is given slightly different mass due to differences // in the measured mass. -#include "PixelGeoModel/GeoPixelTMT.h" +#include "GeoPixelTMT.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoTubs.h" #include "GeoModelKernel/GeoTrap.h" @@ -15,14 +15,15 @@ #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoNameTag.h" - #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoShapeUnion.h" +#include "GeoModelKernel/Units.h" #include <utility> //std::swap #include <cmath> -GeoPixelTMT::GeoPixelTMT() +GeoPixelTMT::GeoPixelTMT(): + m_transform(GeoTrf::Transform3D::Identity()) { m_physVol = Build(); m_physVol->ref(); @@ -50,7 +51,7 @@ GeoVPhysVol* GeoPixelTMT::Build() { GeoNameTag* tag = new GeoNameTag("TMT"); // this part is unchanged: reading the DB, creating the shapes of the volumes and defining their position - HepGeom::RotateX3D traprot(180.*CLHEP::deg); + GeoTrf::RotateX3D traprot(180.*GeoModelKernelUnits::deg); int halfNModule = m_gmt_mgr->PixelNModule()/2; @@ -106,7 +107,7 @@ GeoVPhysVol* GeoPixelTMT::Build() { GeoLogVol* tmpLogVol= new GeoLogVol("TMT",shape,material); GeoPhysVol* tmpPhysVol= new GeoPhysVol(tmpLogVol); - GeoTransform* trans = new GeoTransform(HepGeom::Translate3D(xpos,ypos,zpos)); + GeoTransform* trans = new GeoTransform(GeoTrf::Translate3D(xpos,ypos,zpos)); theTMT->add(tag); theTMT->add(trans); @@ -123,12 +124,12 @@ GeoVPhysVol* GeoPixelTMT::Build() { // move the dublicates to the correct relative position and add it to the assembly double zshift = m_gmt_mgr->PixelModuleZPosition(1) * ii; - GeoTransform* transPos = new GeoTransform(HepGeom::Translate3D(xpos,ypos,zpos+zshift)); + GeoTransform* transPos = new GeoTransform(GeoTrf::Translate3D(xpos,ypos,zpos+zshift)); theTMT->add(tag); theTMT->add(transPos); theTMT->add(tmpPhysVol); - GeoTransform* transNeg = new GeoTransform(HepGeom::Translate3D(xpos,ypos,-(zpos+zshift))*HepGeom::RotateX3D(180*CLHEP::deg)); + GeoTransform* transNeg = new GeoTransform(GeoTrf::Translate3D(xpos,ypos,-(zpos+zshift))*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)); theTMT->add(tag); theTMT->add(transNeg); theTMT->add(tmpPhysVol); @@ -143,7 +144,7 @@ GeoVPhysVol* GeoPixelTMT::Build() { } const GeoShape * -GeoPixelTMT::addShape(const GeoShape * lastShape, const GeoShape * nextShape, const HepGeom::Transform3D & trans) +GeoPixelTMT::addShape(const GeoShape * lastShape, const GeoShape * nextShape, const GeoTrf::Transform3D & trans) { const GeoShape * shiftedShape = &(*nextShape << trans); if (lastShape) { diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelTMT.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelTMT.h similarity index 83% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelTMT.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelTMT.h index 06eee2be40d6679058144d12063dc37292bffd88..40c1c9ef77506ebe7f037ab09af8ba9f365835dc 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoPixelTMT.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoPixelTMT.h @@ -5,8 +5,9 @@ #ifndef GEOPIXELTMT_H #define GEOPIXELTMT_H -#include "PixelGeoModel/GeoPixelStaveSupport.h" -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoPixelStaveSupport.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "AthenaKernel/MsgStreamMember.h" class GeoShape; @@ -18,7 +19,7 @@ public: virtual ~GeoPixelTMT(); virtual GeoVPhysVol* Build(); virtual GeoVPhysVol* getPhysVol() const {return m_physVol;} - virtual const HepGeom::Transform3D & transform() const {return m_transform;} + virtual const GeoTrf::Transform3D & transform() const {return m_transform;} virtual double thicknessP() const {return 0;} // Use ladder thickness from database virtual double thicknessN() const {return 0;} // Use ladder thickness from database virtual GeoSimplePolygonBrep* computeStaveEnvelopShape(double) { return 0;} @@ -35,10 +36,10 @@ public: MsgStream& msg (MSG::Level lvl) const { return m_msg << lvl;} private: - const GeoShape * addShape(const GeoShape * lastShape, const GeoShape * nextShape, const HepGeom::Transform3D & trans); + const GeoShape * addShape(const GeoShape * lastShape, const GeoShape * nextShape, const GeoTrf::Transform3D & trans); GeoVPhysVol* m_physVol; - HepGeom::Transform3D m_transform; + GeoTrf::Transform3D m_transform; mutable Athena::MsgStreamMember m_msg; }; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoVPixelFactory.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoVPixelFactory.cxx index a0097586054c819c6dd85bd40f8963dc1af66d66..c92e41de73ae04f4d84f4f2b22740643fee9954e 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoVPixelFactory.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoVPixelFactory.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/GeoVPixelFactory.h" +#include "GeoVPixelFactory.h" using InDetDD::PixelDetectorManager; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoVPixelFactory.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoVPixelFactory.h similarity index 94% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoVPixelFactory.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoVPixelFactory.h index a932c7bcdb27b9d95cc0e596e9a24741b7cfaeb7..9cbb97057a9348bf930ab9eb3dcdc8c70c9ce04a 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/GeoVPixelFactory.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/GeoVPixelFactory.h @@ -11,7 +11,7 @@ #include "GeoModelKernel/GeoFullPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" -#include "PixelGeoModel/PixelGeometryManager.h" +#include "PixelGeometryManager.h" #include "InDetGeoModelUtils/InDetMaterialManager.h" // fwd declaration diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/OraclePixGeoManager.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/OraclePixGeoManager.cxx index b33aed42418e19cf5f81cf6ff5e8edeb491c4012..a4a53b36862262f81358fdd2888031f0d0602524 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/OraclePixGeoManager.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/OraclePixGeoManager.cxx @@ -2,10 +2,10 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/OraclePixGeoManager.h" -#include "PixelGeoModel/PixelLegacyManager.h" -#include "PixelGeoModel/PixelMaterialMap.h" -#include "PixelGeoModel/PixelStaveTypes.h" +#include "OraclePixGeoManager.h" +#include "PixelLegacyManager.h" +#include "PixelMaterialMap.h" +#include "PixelStaveTypes.h" #include "InDetGeoModelUtils/PairIndexMap.h" #include "InDetGeoModelUtils/TopLevelPlacements.h" #include "InDetGeoModelUtils/InDetMaterialManager.h" @@ -30,9 +30,7 @@ // Distorted material manager // #include "InDetGeoModelUtils/DistortedMaterialManager.h" - -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" using InDetDD::PixelDetectorManager; @@ -66,7 +64,7 @@ OraclePixGeoManager::OraclePixGeoManager(const PixelGeoModelAthenaComps * athena m_diskRingIndexMap(0), m_zPositionMap(0), m_dbVersion(0), - m_defaultLengthUnit(CLHEP::mm) + m_defaultLengthUnit(GeoModelKernelUnits::mm) { m_commonItems = 0; m_pDDmgr = 0; @@ -173,8 +171,8 @@ OraclePixGeoManager::init() m_distortedMatManager = new InDetDD::DistortedMaterialManager; - // Set default lenth unit to CLHEP::mm for newer version and CLHEP::cm for older versions - m_defaultLengthUnit = (dbVersion() < 3) ? CLHEP::cm : CLHEP::mm; + // Set default lenth unit to GeoModelKernelUnits::mm for newer version and GeoModelKernelUnits::cm for older versions + m_defaultLengthUnit = (dbVersion() < 3) ? GeoModelKernelUnits::cm : GeoModelKernelUnits::mm; // Get the top level placements m_placements = new TopLevelPlacements(m_PixelTopLevel); @@ -265,7 +263,7 @@ OraclePixGeoManager::getIdHelper() } -const HepGeom::Transform3D & +const GeoTrf::Transform3D & OraclePixGeoManager::partTransform(const std::string & partName) const { return m_placements->transform(partName); @@ -517,7 +515,7 @@ double OraclePixGeoManager::PixelBoardLength(bool isModule3D) double OraclePixGeoManager::PixelBoardThickness(bool isModule3D) { if (m_dc1Geometry && isBarrel() && (m_currentLD == 0)) { - return 200*CLHEP::micrometer; + return 200*GeoModelKernelUnits::micrometer; } if(ibl()&&isModule3D) @@ -827,7 +825,7 @@ double OraclePixGeoManager::PixelServiceRMin2(const std::string & type, int inde if (!getPixelServiceRecordTestField("RIN2",type,index)) { return 0; } else { - return getPixelServiceRecordDouble("RIN2",type,index) * CLHEP::mm; + return getPixelServiceRecordDouble("RIN2",type,index) * GeoModelKernelUnits::mm; } } @@ -835,7 +833,7 @@ double OraclePixGeoManager::PixelServiceRMax2(const std::string & type, int inde if (!getPixelServiceRecordTestField("ROUT2",type,index)) { return 0; } else { - return getPixelServiceRecordDouble("ROUT2",type,index) * CLHEP::mm; + return getPixelServiceRecordDouble("ROUT2",type,index) * GeoModelKernelUnits::mm; } } @@ -862,7 +860,7 @@ double OraclePixGeoManager::PixelServicePhiLoc(const std::string & type, int ind if (!getPixelServiceRecordTestField("PHI",type,index)) { return 0; } else { - return getPixelServiceRecordDouble("PHI",type,index) * CLHEP::degree; + return getPixelServiceRecordDouble("PHI",type,index) * GeoModelKernelUnits::degree; } } @@ -870,7 +868,7 @@ double OraclePixGeoManager::PixelServiceWidth(const std::string & type, int inde if (!getPixelServiceRecordTestField("WIDTH",type,index)) { return 0; } else { - // Can be in degree or CLHEP::mm. Leave it to GeoPixelServices to interpret. + // Can be in degree or GeoModelKernelUnits::mm. Leave it to GeoPixelServices to interpret. return getPixelServiceRecordDouble("WIDTH",type,index); } } @@ -1097,42 +1095,42 @@ double OraclePixGeoManager::PixelCableZStart(int index) { if (dbVersion() < 3) return m_legacyManager->PixelCableZStart(index); - return db()->getDouble(m_PixelBarrelCable,"ZSTART",index) * CLHEP::mm; + return db()->getDouble(m_PixelBarrelCable,"ZSTART",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelCableZEnd(int index) { if (dbVersion() < 3) return m_legacyManager->PixelCableZEnd(index); - return db()->getDouble(m_PixelBarrelCable,"ZEND",index) * CLHEP::mm; + return db()->getDouble(m_PixelBarrelCable,"ZEND",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelCableWidth(int index) { if (dbVersion() < 3) return m_legacyManager->PixelCableWidth(index); - return db()->getDouble(m_PixelBarrelCable,"WIDTH",index) * CLHEP::mm; + return db()->getDouble(m_PixelBarrelCable,"WIDTH",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelCableThickness(int index) { if (dbVersion() < 3) return m_legacyManager->PixelCableThickness(index); - return db()->getDouble(m_PixelBarrelCable,"THICK",index) * CLHEP::mm; + return db()->getDouble(m_PixelBarrelCable,"THICK",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelCableStackOffset(int index) { if (dbVersion() < 3) return m_legacyManager->PixelCableStackOffset(index); - return db()->getDouble(m_PixelBarrelCable,"STACKPOS",index) * CLHEP::mm; + return db()->getDouble(m_PixelBarrelCable,"STACKPOS",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelCableWeight(int index) { if (dbVersion() < 3) return 0; - return db()->getDouble(m_PixelBarrelCable,"WEIGHT",index) * CLHEP::g; + return db()->getDouble(m_PixelBarrelCable,"WEIGHT",index) * GeoModelKernelUnits::g; } std::string @@ -1312,19 +1310,19 @@ unsigned int OraclePixGeoManager::PixelEnvelopeNumPlanes() double OraclePixGeoManager::PixelEnvelopeZ(int i) { - double zmin = db()->getDouble(m_PixelEnvelope,"Z",i) * CLHEP::mm; + double zmin = db()->getDouble(m_PixelEnvelope,"Z",i) * GeoModelKernelUnits::mm; if (zmin < 0) msg(MSG::ERROR) << "PixelEnvelope table should only contain +ve z values" << endmsg; return std::abs(zmin); } double OraclePixGeoManager::PixelEnvelopeRMin(int i) { - return db()->getDouble(m_PixelEnvelope,"RMIN",i) * CLHEP::mm; + return db()->getDouble(m_PixelEnvelope,"RMIN",i) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelEnvelopeRMax(int i) { - return db()->getDouble(m_PixelEnvelope,"RMAX",i) * CLHEP::mm; + return db()->getDouble(m_PixelEnvelope,"RMAX",i) * GeoModelKernelUnits::mm; } @@ -1369,32 +1367,32 @@ int OraclePixGeoManager::PixelFrameSections() double OraclePixGeoManager::PixelFrameRMinSide(int sectionIndex) { - return db()->getDouble(m_PixelFrame, "RMINSIDE", sectionIndex) * CLHEP::mm; + return db()->getDouble(m_PixelFrame, "RMINSIDE", sectionIndex) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelFrameRMaxSide(int sectionIndex) { - return db()->getDouble(m_PixelFrame, "RMAXSIDE", sectionIndex) * CLHEP::mm; + return db()->getDouble(m_PixelFrame, "RMAXSIDE", sectionIndex) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelFrameSideWidth(int sectionIndex) { - return db()->getDouble(m_PixelFrame, "SIDEWIDTH", sectionIndex) * CLHEP::mm; + return db()->getDouble(m_PixelFrame, "SIDEWIDTH", sectionIndex) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelFrameZMin(int sectionIndex) { - return db()->getDouble(m_PixelFrame, "ZMIN", sectionIndex) * CLHEP::mm; + return db()->getDouble(m_PixelFrame, "ZMIN", sectionIndex) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelFrameZMax(int sectionIndex) { - return db()->getDouble(m_PixelFrame, "ZMAX", sectionIndex) * CLHEP::mm; + return db()->getDouble(m_PixelFrame, "ZMAX", sectionIndex) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelFramePhiStart(int sectionIndex) { - return db()->getDouble(m_PixelFrame, "PHISTART", sectionIndex) * CLHEP::deg; + return db()->getDouble(m_PixelFrame, "PHISTART", sectionIndex) * GeoModelKernelUnits::deg; } int OraclePixGeoManager::PixelFrameNumSides(int sectionIndex) @@ -1479,28 +1477,28 @@ double OraclePixGeoManager::PixelFrameElementZMin1(int sectionIndex, int element { int index = getFrameElementIndex(sectionIndex, element); if (index < 0) return 0; // Error message already printed in getFrameElementIndex. - return db()->getDouble(m_PixelFrameSect, "ZMIN1", index) * CLHEP::mm; + return db()->getDouble(m_PixelFrameSect, "ZMIN1", index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelFrameElementZMin2(int sectionIndex, int element) { int index = getFrameElementIndex(sectionIndex, element); if (index < 0) return 0; // Error message already printed in getFrameElementIndex. - return db()->getDouble(m_PixelFrameSect, "ZMIN2", index) * CLHEP::mm; + return db()->getDouble(m_PixelFrameSect, "ZMIN2", index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelFrameElementZMax1(int sectionIndex, int element) { int index = getFrameElementIndex(sectionIndex, element); if (index < 0) return 0; // Error message already printed in getFrameElementIndex. - return db()->getDouble(m_PixelFrameSect, "ZMAX1", index) * CLHEP::mm; + return db()->getDouble(m_PixelFrameSect, "ZMAX1", index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelFrameElementZMax2(int sectionIndex, int element) { int index = getFrameElementIndex(sectionIndex, element); if (index < 0) return 0; // Error message already printed in getFrameElementIndex. - return db()->getDouble(m_PixelFrameSect, "ZMAX2", index) * CLHEP::mm; + return db()->getDouble(m_PixelFrameSect, "ZMAX2", index) * GeoModelKernelUnits::mm; } int OraclePixGeoManager::PixelStaveIndex(int layer) @@ -1584,14 +1582,14 @@ double OraclePixGeoManager::PixelLadderLength() { if (useLegacy()) return m_legacyManager->PixelLadderLength(); int index = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"ENVLENGTH",index)*CLHEP::mm; + return db()->getDouble(m_PixelStave,"ENVLENGTH",index)*GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelLadderWidthClearance() { - if (useLegacy()) return 0.9*CLHEP::mm; + if (useLegacy()) return 0.9*GeoModelKernelUnits::mm; int index = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"CLEARANCEY",index)*CLHEP::mm; + return db()->getDouble(m_PixelStave,"CLEARANCEY",index)*GeoModelKernelUnits::mm; } // Only used if ladder thickness is automatically calculated it, ie ENVTHICK = 0 @@ -1600,63 +1598,63 @@ double OraclePixGeoManager::PixelLadderThicknessClearance() { int index = PixelStaveIndex(m_currentLD); if (db()->testField(m_PixelStave,"CLEARANCEX",index)) { - return db()->getDouble(m_PixelStave,"CLEARANCEX",index)*CLHEP::mm; + return db()->getDouble(m_PixelStave,"CLEARANCEX",index)*GeoModelKernelUnits::mm; } - return 0.1*CLHEP::mm; + return 0.1*GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelLadderThickness() { if (useLegacy()) return m_legacyManager->PixelLadderThickness(); // 2*1.48972 mm int index = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"ENVTHICK",index)*CLHEP::mm; + return db()->getDouble(m_PixelStave,"ENVTHICK",index)*GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelLadderTilt() { - return db()->getDouble(m_PixelLayer,"STAVETILT",m_currentLD)*CLHEP::deg; + return db()->getDouble(m_PixelLayer,"STAVETILT",m_currentLD)*GeoModelKernelUnits::deg; } double OraclePixGeoManager::PixelLadderServicesX() { if (useLegacy()) return m_legacyManager->PixelLadderServicesX(); // 1.48972 mm int index = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"SERVICEOFFSETX",index) * CLHEP::mm; + return db()->getDouble(m_PixelStave,"SERVICEOFFSETX",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelLadderServicesY() { if (useLegacy()) return m_legacyManager->PixelLadderServicesY(); // 3mm int index = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"SERVICEOFFSETY",index) * CLHEP::mm; + return db()->getDouble(m_PixelStave,"SERVICEOFFSETY",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelLadderCableOffsetX() { if (useLegacy()) return m_legacyManager->PixelLadderCableOffsetX(); // 0 int index = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"CABLEOFFSETX",index) * CLHEP::mm; + return db()->getDouble(m_PixelStave,"CABLEOFFSETX",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelLadderCableOffsetY() { if (useLegacy()) return m_legacyManager->PixelLadderCableOffsetY(); // 4mm int index = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"CABLEOFFSETY",index) * CLHEP::mm; + return db()->getDouble(m_PixelStave,"CABLEOFFSETY",index) * GeoModelKernelUnits::mm; } // SLHC/IBL only double OraclePixGeoManager::PixelLadderSupportThickness() { int index = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"SUPPORTTHICK",index) * CLHEP::mm; + return db()->getDouble(m_PixelStave,"SUPPORTTHICK",index) * GeoModelKernelUnits::mm; } // SLHC/IBL only double OraclePixGeoManager::PixelLadderSupportWidth() { int index = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"SUPPORTWIDTH",index) * CLHEP::mm; + return db()->getDouble(m_PixelStave,"SUPPORTWIDTH",index) * GeoModelKernelUnits::mm; } @@ -1690,16 +1688,16 @@ double OraclePixGeoManager::PixelLadderSupportLength() { int index = PixelStaveIndex(m_currentLD); if (db()->testField(m_PixelStave,"SUPPORTHLENGTH",index)) { - double halflength = db()->getDouble(m_PixelStave,"SUPPORTHLENGTH",index) * CLHEP::mm; + double halflength = db()->getDouble(m_PixelStave,"SUPPORTHLENGTH",index) * GeoModelKernelUnits::mm; if (halflength > 0) return 2 * halflength; } - double safety = 0.01*CLHEP::mm; + double safety = 0.01*GeoModelKernelUnits::mm; return PixelLadderLength() - safety; } // IBL detailed stave support only -HepGeom::Point3D<double> OraclePixGeoManager::IBLStaveRotationAxis() +GeoTrf::Vector3D OraclePixGeoManager::IBLStaveRotationAxis() { // set layer to 0 (in order to read read IBL data) int currentLD_tmp = m_currentLD; @@ -1713,7 +1711,7 @@ HepGeom::Point3D<double> OraclePixGeoManager::IBLStaveRotationAxis() IBLStaveFacePlateThickness() + IBLStaveFacePlateGreaseThickness() + // plate thickness (grease + plate) IBLStaveTubeMiddlePos(); // from plate to colling pipe center double yCenterCoolingPipe = IBLStaveMechanicalStaveOffset(); - HepGeom::Point3D<double> centerCoolingPipe(xCenterCoolingPipe, yCenterCoolingPipe, 0.); + GeoTrf::Vector3D centerCoolingPipe(xCenterCoolingPipe, yCenterCoolingPipe, 0.); m_currentLD = currentLD_tmp; return centerCoolingPipe; @@ -1727,17 +1725,17 @@ double OraclePixGeoManager::IBLStaveRadius() m_currentLD = 0; // Point that defines the center of the cooling pipe - HepGeom::Point3D<double> centerCoolingPipe_inv = -IBLStaveRotationAxis(); - HepGeom::Point3D<double> origin(0.,0.,0.); + GeoTrf::Vector3D centerCoolingPipe_inv = -IBLStaveRotationAxis(); + GeoTrf::Vector3D origin(0.,0.,0.); double layerRadius = PixelLayerRadius(); double ladderTilt = PixelLadderTilt(); // Transforms - HepGeom::Transform3D staveTrf = HepGeom::RotateZ3D(ladderTilt)*HepGeom::Translate3D(centerCoolingPipe_inv); - HepGeom::Point3D<double> sensorPos = staveTrf*origin; + GeoTrf::Transform3D staveTrf = GeoTrf::RotateZ3D(ladderTilt)*GeoTrf::Translate3D(centerCoolingPipe_inv.x(),centerCoolingPipe_inv.y(),centerCoolingPipe_inv.z()); + GeoTrf::Vector3D sensorPos = staveTrf*origin; double yPos = sensorPos.y(); - HepGeom::Point3D<double> sensorPos_layer(sqrt(layerRadius*layerRadius-yPos*yPos),yPos,0.); + GeoTrf::Vector3D sensorPos_layer(sqrt(layerRadius*layerRadius-yPos*yPos),yPos,0.); double staveRadius = sensorPos_layer.x()-sensorPos.x(); @@ -1751,7 +1749,7 @@ double OraclePixGeoManager::IBLStaveFacePlateThickness() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"FACEPLATETHICK",index)) { - double thickness = db()->getDouble(m_PixelIBLStave,"FACEPLATETHICK",index) * CLHEP::mm; + double thickness = db()->getDouble(m_PixelIBLStave,"FACEPLATETHICK",index) * GeoModelKernelUnits::mm; if (thickness > 0) return thickness ; } return 0.0; @@ -1762,7 +1760,7 @@ double OraclePixGeoManager:: IBLStaveMechanicalStaveWidth() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"STAVEWIDTH",index)) { - double value = db()->getDouble(m_PixelIBLStave,"STAVEWIDTH",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"STAVEWIDTH",index) * GeoModelKernelUnits::mm; if (value > 0) return value ; } return 0.0; @@ -1773,7 +1771,7 @@ double OraclePixGeoManager:: IBLStaveMechanicalStaveEndBlockLength() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"ENDBLOCKLENGTH",index)) { - double value = db()->getDouble(m_PixelIBLStave,"ENDBLOCKLENGTH",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"ENDBLOCKLENGTH",index) * GeoModelKernelUnits::mm; if (value > 0) return value ; } return 0.0; @@ -1784,7 +1782,7 @@ double OraclePixGeoManager:: IBLStaveMechanicalStaveEndBlockFixPoint() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"ENDBLOCKFIXINGPOS",index)) { - double value = db()->getDouble(m_PixelIBLStave,"ENDBLOCKFIXINGPOS",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"ENDBLOCKFIXINGPOS",index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -1796,7 +1794,7 @@ double OraclePixGeoManager:: IBLStaveMechanicalStaveEndBlockOmegaOverlap() try{ int index=0; if (db()->testField(m_PixelIBLStave,"ENDBLOCKOMEGAOVERLAP",index)) { - double value = db()->getDouble(m_PixelIBLStave,"ENDBLOCKOMEGAOVERLAP",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"ENDBLOCKOMEGAOVERLAP",index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -1812,7 +1810,7 @@ double OraclePixGeoManager::IBLStaveLength() { int index=0; if (db()->testField(m_PixelIBLStave,"STAVELENGTH",index)) { - double value = db()->getDouble(m_PixelIBLStave,"STAVELENGTH",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"STAVELENGTH",index) * GeoModelKernelUnits::mm; return value ; } } @@ -1822,7 +1820,7 @@ double OraclePixGeoManager::IBLStaveLength() // IBL stave length not eqal to other stave length } - return 748.0 * CLHEP::mm; + return 748.0 * GeoModelKernelUnits::mm; } double OraclePixGeoManager:: IBLStaveMechanicalStaveOffset(bool isModule3D) @@ -1830,11 +1828,11 @@ double OraclePixGeoManager:: IBLStaveMechanicalStaveOffset(bool isModule3D) // int index = PixelStaveIndex(m_currentLD); int index=0; if (!isModule3D&&db()->testField(m_PixelIBLStave,"MODULELATERALOFFSET",index)) { - double value = db()->getDouble(m_PixelIBLStave,"MODULELATERALOFFSET",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"MODULELATERALOFFSET",index) * GeoModelKernelUnits::mm; return value ; } if (isModule3D&&db()->testField(m_PixelIBLStave,"MODULELATERALOFFSET3D",index)) { - double value = db()->getDouble(m_PixelIBLStave,"MODULELATERALOFFSET3D",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"MODULELATERALOFFSET3D",index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -1845,7 +1843,7 @@ double OraclePixGeoManager:: IBLStaveMechanicalStaveModuleOffset() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"STAVETOMODULEGAP",index)) { - double value = db()->getDouble(m_PixelIBLStave,"STAVETOMODULEGAP",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"STAVETOMODULEGAP",index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -1856,7 +1854,7 @@ double OraclePixGeoManager:: IBLStaveTubeOuterDiameter() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"TUBEOUTERDIAM",index)) { - double value = db()->getDouble(m_PixelIBLStave,"TUBEOUTERDIAM",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"TUBEOUTERDIAM",index) * GeoModelKernelUnits::mm; if (value > 0) return value ; } return 0.0; @@ -1867,7 +1865,7 @@ double OraclePixGeoManager:: IBLStaveTubeInnerDiameter() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"TUBEINNERDIAM",index)) { - double value = db()->getDouble(m_PixelIBLStave,"TUBEINNERDIAM",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"TUBEINNERDIAM",index) * GeoModelKernelUnits::mm; if (value > 0) return value ; } return 0.0; @@ -1878,7 +1876,7 @@ double OraclePixGeoManager:: IBLStaveTubeMiddlePos() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"TUBEMIDDLEPOS",index)) { - double value = db()->getDouble(m_PixelIBLStave,"TUBEMIDDLEPOS",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"TUBEMIDDLEPOS",index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -1889,7 +1887,7 @@ double OraclePixGeoManager:: IBLStaveFlexLayerThickness() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"FLEXLAYERTHICK",index)) { - double value = db()->getDouble(m_PixelIBLStave,"FLEXLAYERTHICK",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"FLEXLAYERTHICK",index) * GeoModelKernelUnits::mm; if (value > 0) return value ; } return 0.0; @@ -1900,7 +1898,7 @@ double OraclePixGeoManager:: IBLStaveFlexBaseThickness() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"FLEXBASETHICK",index)) { - double value = db()->getDouble(m_PixelIBLStave,"FLEXBASETHICK",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"FLEXBASETHICK",index) * GeoModelKernelUnits::mm; if (value > 0) return value ; } return 0.0; @@ -1911,7 +1909,7 @@ double OraclePixGeoManager:: IBLStaveFlexWidth() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"FLEXWIDTH",index)) { - double value = db()->getDouble(m_PixelIBLStave,"FLEXWIDTH",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"FLEXWIDTH",index) * GeoModelKernelUnits::mm; if (value > 0) return value ; } return 0.0; @@ -1922,7 +1920,7 @@ double OraclePixGeoManager:: IBLStaveFlexOffset() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"FLEXOFFSET",index)) { - double value = db()->getDouble(m_PixelIBLStave,"FLEXOFFSET",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"FLEXOFFSET",index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -1934,7 +1932,7 @@ double OraclePixGeoManager::IBLStaveOmegaThickness() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"OMEGATHICK",index)) { - double value = db()->getDouble(m_PixelIBLStave,"OMEGATHICK",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"OMEGATHICK",index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -1945,7 +1943,7 @@ double OraclePixGeoManager::IBLStaveOmegaEndCenterX() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"OMEGAENDCENTERX",index)) { - double value = db()->getDouble(m_PixelIBLStave,"OMEGAENDCENTERX",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"OMEGAENDCENTERX",index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -1955,7 +1953,7 @@ double OraclePixGeoManager::IBLStaveOmegaEndCenterY() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"OMEGAENDCENTERY",index)) { - double value = db()->getDouble(m_PixelIBLStave,"OMEGAENDCENTERY",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"OMEGAENDCENTERY",index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -1965,7 +1963,7 @@ double OraclePixGeoManager::IBLStaveOmegaEndRadius() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"OMEGAENDRADIUS",index)) { - double value = db()->getDouble(m_PixelIBLStave,"OMEGAENDRADIUS",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"OMEGAENDRADIUS",index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -1975,7 +1973,7 @@ double OraclePixGeoManager::IBLStaveOmegaEndAngle() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"OMEGAENDANGLE",index)) { - double value = db()->getDouble(m_PixelIBLStave,"OMEGAENDANGLE",index) * CLHEP::deg; + double value = db()->getDouble(m_PixelIBLStave,"OMEGAENDANGLE",index) * GeoModelKernelUnits::deg; return value ; } return 0.0; @@ -1986,7 +1984,7 @@ double OraclePixGeoManager::IBLStaveOmegaMidCenterX() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"OMEGAMIDCENTERX",index)) { - double value = db()->getDouble(m_PixelIBLStave,"OMEGAMIDCENTERX",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"OMEGAMIDCENTERX",index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -1997,7 +1995,7 @@ double OraclePixGeoManager::IBLStaveOmegaMidRadius() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"OMEGAMIDRADIUS",index)) { - double value = db()->getDouble(m_PixelIBLStave,"OMEGAMIDRADIUS",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"OMEGAMIDRADIUS",index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -2007,7 +2005,7 @@ double OraclePixGeoManager::IBLStaveOmegaMidAngle() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"OMEGAOPENINGANGLE",index)) { - double value = db()->getDouble(m_PixelIBLStave,"OMEGAOPENINGANGLE",index) * CLHEP::deg; + double value = db()->getDouble(m_PixelIBLStave,"OMEGAOPENINGANGLE",index) * GeoModelKernelUnits::deg; return value ; } return 0.0; @@ -2035,7 +2033,7 @@ double OraclePixGeoManager::IBLStaveModuleGap() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"MODULEGAP",index)) { - double value = db()->getDouble(m_PixelIBLStave,"MODULEGAP",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLStave,"MODULEGAP",index) * GeoModelKernelUnits::mm; if (value > 0) return value ; } return 0.0; @@ -2046,7 +2044,7 @@ int OraclePixGeoManager::IBLStaveModuleType() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLStave,"MODULETYPE",index)) { - int value = db()->getInt(m_PixelIBLStave,"MODULETYPE",index) * CLHEP::mm; + int value = db()->getInt(m_PixelIBLStave,"MODULETYPE",index) * GeoModelKernelUnits::mm; if (value > 0) return value ; } return 0; @@ -2058,7 +2056,7 @@ double OraclePixGeoManager::IBLStaveFacePlateGreaseThickness() try{ int index=0; if (db()->testField(m_PixelIBLGlueGrease,"FACEPLATEGREASETHICK",index)) { - double value = db()->getDouble(m_PixelIBLGlueGrease,"FACEPLATEGREASETHICK",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLGlueGrease,"FACEPLATEGREASETHICK",index) * GeoModelKernelUnits::mm; return value ; } return 0.; @@ -2073,7 +2071,7 @@ double OraclePixGeoManager::IBLStaveFacePlateGlueThickness() try{ int index=0; if (db()->testField(m_PixelIBLGlueGrease,"FACEPLATEGLUETHICK",index)) { - double value = db()->getDouble(m_PixelIBLGlueGrease,"FACEPLATEGLUETHICK",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLGlueGrease,"FACEPLATEGLUETHICK",index) * GeoModelKernelUnits::mm; return value ; } return 0.; @@ -2088,7 +2086,7 @@ double OraclePixGeoManager::IBLStaveTubeGlueThickness() try{ int index=0; if (db()->testField(m_PixelIBLGlueGrease,"TUBEGLUETHICK",index)) { - double value = db()->getDouble(m_PixelIBLGlueGrease,"TUBEGLUETHICK",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLGlueGrease,"TUBEGLUETHICK",index) * GeoModelKernelUnits::mm; return value ; } return 0.; @@ -2103,7 +2101,7 @@ double OraclePixGeoManager::IBLStaveOmegaGlueThickness() try{ int index=0; if (db()->testField(m_PixelIBLGlueGrease,"OMEGAGLUETHICK",index)) { - double value = db()->getDouble(m_PixelIBLGlueGrease,"OMEGAGLUETHICK",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLGlueGrease,"OMEGAGLUETHICK",index) * GeoModelKernelUnits::mm; return value ; } return 0.; @@ -2118,7 +2116,7 @@ double OraclePixGeoManager:: IBLSupportRingWidth() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLSupport,"STAVERINGWIDTH",index)) { - double value = db()->getDouble(m_PixelIBLSupport,"STAVERINGWIDTH",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLSupport,"STAVERINGWIDTH",index) * GeoModelKernelUnits::mm; if (value > 0) return value ; } return 0.0; @@ -2129,7 +2127,7 @@ double OraclePixGeoManager:: IBLSupportRingInnerRadius() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLSupport,"STAVERINGINNERRADIUS",index)) { - double value = db()->getDouble(m_PixelIBLSupport,"STAVERINGINNERRADIUS",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLSupport,"STAVERINGINNERRADIUS",index) * GeoModelKernelUnits::mm; if (value > 0) return value ; } return 0.0; @@ -2140,7 +2138,7 @@ double OraclePixGeoManager:: IBLSupportRingOuterRadius() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLSupport,"STAVERINGOUTERRADIUS",index)) { - double value = db()->getDouble(m_PixelIBLSupport,"STAVERINGOUTERRADIUS",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLSupport,"STAVERINGOUTERRADIUS",index) * GeoModelKernelUnits::mm; if (value > 0) return value ; } return 0.0; @@ -2152,7 +2150,7 @@ double OraclePixGeoManager:: IBLSupportMechanicalStaveRingFixPoint() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLSupport,"STAVERINGFIXINGPOS",index)) { - double value = db()->getDouble(m_PixelIBLSupport,"STAVERINGFIXINGPOS",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLSupport,"STAVERINGFIXINGPOS",index) * GeoModelKernelUnits::mm; if (value > 0) return value ; } return 0.0; @@ -2163,7 +2161,7 @@ double OraclePixGeoManager:: IBLSupportMidRingWidth() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLSupport,"STAVEMIDRINGWIDTH",index)) { - double value = db()->getDouble(m_PixelIBLSupport,"STAVEMIDRINGWIDTH",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLSupport,"STAVEMIDRINGWIDTH",index) * GeoModelKernelUnits::mm; if (value > 0) return value ; } return 0.0; @@ -2174,7 +2172,7 @@ double OraclePixGeoManager:: IBLSupportMidRingInnerRadius() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLSupport,"STAVEMIDRINGINNERRADIUS",index)) { - double value = db()->getDouble(m_PixelIBLSupport,"STAVEMIDRINGINNERRADIUS",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLSupport,"STAVEMIDRINGINNERRADIUS",index) * GeoModelKernelUnits::mm; if (value > 0) return value; } return 0.0; @@ -2185,7 +2183,7 @@ double OraclePixGeoManager:: IBLSupportMidRingOuterRadius() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLSupport,"STAVEMIDRINGOUTERRADIUS",index)) { - double value = db()->getDouble(m_PixelIBLSupport,"STAVEMIDRINGOUTERRADIUS",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLSupport,"STAVEMIDRINGOUTERRADIUS",index) * GeoModelKernelUnits::mm; if (value > 0) return value ; } return 0.0; @@ -2196,7 +2194,7 @@ double OraclePixGeoManager::IBLFlexMiddleGap() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,"FLEXMIDGAP",index)) { - double value = db()->getDouble(m_PixelIBLFlex,"FLEXMIDGAP",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLFlex,"FLEXMIDGAP",index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -2216,7 +2214,7 @@ double OraclePixGeoManager::IBLFlexDoglegLength() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,"FLEXDOGLEGLENGTH",index)) { - double value = db()->getDouble(m_PixelIBLFlex,"FLEXDOGLEGLENGTH",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLFlex,"FLEXDOGLEGLENGTH",index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -2228,7 +2226,7 @@ double OraclePixGeoManager::IBLStaveFlexWingWidth() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,"FLEXWINGWIDTH",index)) { - double value = db()->getDouble(m_PixelIBLFlex,"FLEXWINGWIDTH",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLFlex,"FLEXWINGWIDTH",index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -2239,7 +2237,7 @@ double OraclePixGeoManager::IBLStaveFlexWingThick() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,"FLEXWINGTHICK",index)) { - double value = db()->getDouble(m_PixelIBLFlex,"FLEXWINGTHICK",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLFlex,"FLEXWINGTHICK",index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -2250,7 +2248,7 @@ double OraclePixGeoManager::IBLFlexDoglegRatio() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,"FLEXDOGLEGRATIO",index)) { - double value = db()->getDouble(m_PixelIBLFlex,"FLEXDOGLEGRATIO",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLFlex,"FLEXDOGLEGRATIO",index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -2264,7 +2262,7 @@ double OraclePixGeoManager::IBLFlexDoglegHeight(int iHeight) // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,lname.str(),index)) { - double value = db()->getDouble(m_PixelIBLFlex,lname.str(),index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLFlex,lname.str(),index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -2275,7 +2273,7 @@ double OraclePixGeoManager::IBLFlexDoglegDY() // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,"FLEXDOGLEGDY",index)) { - double value = db()->getDouble(m_PixelIBLFlex,"FLEXDOGLEGDY",index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLFlex,"FLEXDOGLEGDY",index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -2289,7 +2287,7 @@ double OraclePixGeoManager::IBLFlexPP0Z(int iPos) // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,lname.str(),index)) { - double value = db()->getDouble(m_PixelIBLFlex,lname.str(),index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLFlex,lname.str(),index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -2304,7 +2302,7 @@ double OraclePixGeoManager::IBLFlexPP0Rmin(int iPos) // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,lname.str(),index)) { - double value = db()->getDouble(m_PixelIBLFlex,lname.str(),index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLFlex,lname.str(),index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -2318,7 +2316,7 @@ double OraclePixGeoManager::IBLFlexPP0Rmax(int iPos) // int index = PixelStaveIndex(m_currentLD); int index=0; if (db()->testField(m_PixelIBLFlex,lname.str(),index)) { - double value = db()->getDouble(m_PixelIBLFlex,lname.str(),index) * CLHEP::mm; + double value = db()->getDouble(m_PixelIBLFlex,lname.str(),index) * GeoModelKernelUnits::mm; return value ; } return 0.0; @@ -2369,10 +2367,10 @@ double OraclePixGeoManager:: IBLServiceGetMinRadialPosition(const std::string& s double zmin, zmax, r; int symm; if(srvType=="simple"){ - zmin=db()->getDouble(m_PixelSimpleService,"ZMIN",ii)*CLHEP::mm; - zmax=db()->getDouble(m_PixelSimpleService,"ZMAX",ii)*CLHEP::mm; + zmin=db()->getDouble(m_PixelSimpleService,"ZMIN",ii)*GeoModelKernelUnits::mm; + zmax=db()->getDouble(m_PixelSimpleService,"ZMAX",ii)*GeoModelKernelUnits::mm; symm=db()->getInt(m_PixelSimpleService,"ZSYMM",ii); - r=db()->getDouble(m_PixelSimpleService,"RMAX",ii)*CLHEP::mm; + r=db()->getDouble(m_PixelSimpleService,"RMAX",ii)*GeoModelKernelUnits::mm; } else { zmin=PixelServiceZMin(srvType, ii); @@ -2419,10 +2417,10 @@ double OraclePixGeoManager:: IBLServiceGetMaxRadialPosition(const std::string& s double zmin, zmax, r; int symm; if(srvType=="simple"){ - zmin=db()->getDouble(m_PixelSimpleService,"ZMIN",ii)*CLHEP::mm; - zmax=db()->getDouble(m_PixelSimpleService,"ZMAX",ii)*CLHEP::mm; + zmin=db()->getDouble(m_PixelSimpleService,"ZMIN",ii)*GeoModelKernelUnits::mm; + zmax=db()->getDouble(m_PixelSimpleService,"ZMAX",ii)*GeoModelKernelUnits::mm; symm=db()->getInt(m_PixelSimpleService,"ZSYMM",ii); - r=db()->getDouble(m_PixelSimpleService,"RMAX",ii)*CLHEP::mm; + r=db()->getDouble(m_PixelSimpleService,"RMAX",ii)*GeoModelKernelUnits::mm; } else { zmin=PixelServiceZMin(srvType, ii); @@ -2462,10 +2460,10 @@ double OraclePixGeoManager::PhiOfModuleZero() { // For backward compatibilty first module is at 1/2 a module division if (!db()->testField(m_PixelLayer,"PHIOFMODULEZERO",m_currentLD)){ - if(NPixelSectors()>0) return 180.0*CLHEP::degree/NPixelSectors(); + if(NPixelSectors()>0) return 180.0*GeoModelKernelUnits::degree/NPixelSectors(); return 0.; } else { - return db()->getDouble(m_PixelLayer,"PHIOFMODULEZERO",m_currentLD) * CLHEP::degree; + return db()->getDouble(m_PixelLayer,"PHIOFMODULEZERO",m_currentLD) * GeoModelKernelUnits::degree; } } @@ -2483,7 +2481,7 @@ int OraclePixGeoManager::PixelNModule() double OraclePixGeoManager::PixelModuleAngle() { int staveIndex = PixelStaveIndex(m_currentLD); - return db()->getDouble(m_PixelStave,"MODULETILT",staveIndex)*CLHEP::deg; + return db()->getDouble(m_PixelStave,"MODULETILT",staveIndex)*GeoModelKernelUnits::deg; } double OraclePixGeoManager::PixelModuleDrDistance() @@ -2526,7 +2524,7 @@ double OraclePixGeoManager::PixelModuleZPositionTabulated(int etaModule, int typ msg(MSG::ERROR) << "Z position not found for etaModule,type = " << etaModule << ", " << type << endmsg; return 0; } - return db()->getDouble(m_PixelStaveZ,"ZPOS",index) * CLHEP::mm; + return db()->getDouble(m_PixelStaveZ,"ZPOS",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelModuleShiftFlag(int etaModule) @@ -2539,7 +2537,7 @@ double OraclePixGeoManager::PixelModuleStaggerDistance() { int staveIndex = PixelStaveIndex(m_currentLD); if (!(slhc() || ibl()) || !db()->testField(m_PixelStave,"STAGGERDIST",staveIndex)) return 0; - return db()->getDouble(m_PixelStave,"STAGGERDIST",staveIndex) * CLHEP::mm; + return db()->getDouble(m_PixelStave,"STAGGERDIST",staveIndex) * GeoModelKernelUnits::mm; } int OraclePixGeoManager::PixelModuleStaggerSign(int etaModule) @@ -2692,49 +2690,49 @@ int OraclePixGeoManager::PixelTMTNumParts() double OraclePixGeoManager::PixelTMTWidthX1(int iPart) { if (useLegacy()) return m_legacyManager->PixelTMTWidthX1(iPart); - return db()->getDouble(m_PixelTMT,"WIDTHX1",iPart) * CLHEP::mm; + return db()->getDouble(m_PixelTMT,"WIDTHX1",iPart) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelTMTWidthX2(int iPart) { if (useLegacy()) return m_legacyManager->PixelTMTWidthX2(iPart); - return db()->getDouble(m_PixelTMT,"WIDTHX2",iPart) * CLHEP::mm; + return db()->getDouble(m_PixelTMT,"WIDTHX2",iPart) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelTMTWidthY(int iPart) { if (useLegacy()) return m_legacyManager->PixelTMTWidthY(iPart); - return db()->getDouble(m_PixelTMT,"WIDTHY",iPart) * CLHEP::mm; + return db()->getDouble(m_PixelTMT,"WIDTHY",iPart) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelTMTBaseX1(int iPart) { if (useLegacy()) return m_legacyManager->PixelTMTBaseX1(iPart); - return db()->getDouble(m_PixelTMT,"BASEX1",iPart) * CLHEP::mm; + return db()->getDouble(m_PixelTMT,"BASEX1",iPart) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelTMTBaseX2(int iPart) { if (useLegacy()) return m_legacyManager->PixelTMTBaseX2(iPart); - return db()->getDouble(m_PixelTMT,"BASEX2",iPart) * CLHEP::mm; + return db()->getDouble(m_PixelTMT,"BASEX2",iPart) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelTMTPosY(int iPart) { if (useLegacy()) return m_legacyManager->PixelTMTPosY(iPart); - return db()->getDouble(m_PixelTMT,"Y",iPart) * CLHEP::mm; + return db()->getDouble(m_PixelTMT,"Y",iPart) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelTMTPosZ1(int iPart) { if (useLegacy()) return m_legacyManager->PixelTMTPosZ1(iPart); - return db()->getDouble(m_PixelTMT,"Z1",iPart) * CLHEP::mm; + return db()->getDouble(m_PixelTMT,"Z1",iPart) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelTMTPosZ2(int iPart) { if (useLegacy()) return m_legacyManager->PixelTMTPosZ2(iPart); - return db()->getDouble(m_PixelTMT,"Z2",iPart) * CLHEP::mm; + return db()->getDouble(m_PixelTMT,"Z2",iPart) * GeoModelKernelUnits::mm; } bool OraclePixGeoManager::PixelTMTPerModule(int iPart) @@ -2749,61 +2747,61 @@ bool OraclePixGeoManager::PixelTMTPerModule(int iPart) double OraclePixGeoManager::PixelOmegaUpperBendX() { if (useLegacy()) return m_legacyManager->PixelOmegaUpperBendX(); - return db()->getDouble(m_PixelOmega,"UPPERBENDX") * CLHEP::mm; + return db()->getDouble(m_PixelOmega,"UPPERBENDX") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelOmegaUpperBendY() { if (useLegacy()) return m_legacyManager->PixelOmegaUpperBendY(); - return db()->getDouble(m_PixelOmega,"UPPERBENDY") * CLHEP::mm; + return db()->getDouble(m_PixelOmega,"UPPERBENDY") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelOmegaUpperBendRadius() { if (useLegacy()) return m_legacyManager->PixelOmegaUpperBendRadius(); - return db()->getDouble(m_PixelOmega,"UPPERBENDR") * CLHEP::mm; + return db()->getDouble(m_PixelOmega,"UPPERBENDR") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelOmegaLowerBendX() { if (useLegacy()) return m_legacyManager->PixelOmegaLowerBendX(); - return db()->getDouble(m_PixelOmega,"LOWERBENDX") * CLHEP::mm; + return db()->getDouble(m_PixelOmega,"LOWERBENDX") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelOmegaLowerBendY() { if (useLegacy()) return m_legacyManager->PixelOmegaLowerBendY(); - return db()->getDouble(m_PixelOmega,"LOWERBENDY") * CLHEP::mm; + return db()->getDouble(m_PixelOmega,"LOWERBENDY") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelOmegaLowerBendRadius() { if (useLegacy()) return m_legacyManager->PixelOmegaLowerBendRadius(); - return db()->getDouble(m_PixelOmega,"LOWERBENDR") * CLHEP::mm; + return db()->getDouble(m_PixelOmega,"LOWERBENDR") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelOmegaWallThickness() { if (useLegacy()) return m_legacyManager->PixelOmegaWallThickness(); - return db()->getDouble(m_PixelOmega,"THICK") * CLHEP::mm; + return db()->getDouble(m_PixelOmega,"THICK") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelOmegaLength() { if (useLegacy()) return m_legacyManager->PixelOmegaLength(); - return db()->getDouble(m_PixelOmega,"LENGTH") * CLHEP::mm; + return db()->getDouble(m_PixelOmega,"LENGTH") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelOmegaStartY() { if (useLegacy()) return m_legacyManager->PixelOmegaStartY(); - return db()->getDouble(m_PixelOmega,"STARTY") * CLHEP::mm; + return db()->getDouble(m_PixelOmega,"STARTY") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelOmegaEndY() { if (useLegacy()) return m_legacyManager->PixelOmegaEndY(); - return db()->getDouble(m_PixelOmega,"ENDY") * CLHEP::mm; + return db()->getDouble(m_PixelOmega,"ENDY") * GeoModelKernelUnits::mm; } // @@ -2813,49 +2811,49 @@ double OraclePixGeoManager::PixelOmegaEndY() double OraclePixGeoManager::PixelAlTubeUpperBendX() { if (useLegacy()) return m_legacyManager->PixelAlTubeUpperBendX(); - return db()->getDouble(m_PixelAlTube,"UPPERBENDX") * CLHEP::mm; + return db()->getDouble(m_PixelAlTube,"UPPERBENDX") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelAlTubeUpperBendY() { if (useLegacy()) return m_legacyManager->PixelAlTubeUpperBendY(); - return db()->getDouble(m_PixelAlTube,"UPPERBENDY") * CLHEP::mm; + return db()->getDouble(m_PixelAlTube,"UPPERBENDY") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelAlTubeUpperBendRadius() { if (useLegacy()) return m_legacyManager->PixelAlTubeUpperBendRadius(); - return db()->getDouble(m_PixelAlTube,"UPPERBENDR") * CLHEP::mm; + return db()->getDouble(m_PixelAlTube,"UPPERBENDR") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelAlTubeLowerBendX() { if (useLegacy()) return m_legacyManager->PixelAlTubeLowerBendX(); - return db()->getDouble(m_PixelAlTube,"LOWERBENDX") * CLHEP::mm; + return db()->getDouble(m_PixelAlTube,"LOWERBENDX") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelAlTubeLowerBendY() { if (useLegacy()) return m_legacyManager->PixelAlTubeLowerBendY(); - return db()->getDouble(m_PixelAlTube,"LOWERBENDY") * CLHEP::mm; + return db()->getDouble(m_PixelAlTube,"LOWERBENDY") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelAlTubeLowerBendRadius() { if (useLegacy()) return m_legacyManager->PixelAlTubeLowerBendRadius(); - return db()->getDouble(m_PixelAlTube,"LOWERBENDR") * CLHEP::mm; + return db()->getDouble(m_PixelAlTube,"LOWERBENDR") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelAlTubeWallThickness() { if (useLegacy()) return m_legacyManager->PixelAlTubeWallThickness(); - return db()->getDouble(m_PixelAlTube,"THICK") * CLHEP::mm; + return db()->getDouble(m_PixelAlTube,"THICK") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelAlTubeLength() { if (useLegacy()) return m_legacyManager->PixelAlTubeLength(); - return db()->getDouble(m_PixelAlTube,"LENGTH") * CLHEP::mm; + return db()->getDouble(m_PixelAlTube,"LENGTH") * GeoModelKernelUnits::mm; } // @@ -2871,37 +2869,37 @@ int OraclePixGeoManager::PixelNumOmegaGlueElements() double OraclePixGeoManager::PixelOmegaGlueStartX(int index) { if (useLegacy()) return m_legacyManager->PixelOmegaGlueStartX(index); - return db()->getDouble(m_PixelOmegaGlue,"STARTX",index) * CLHEP::mm; + return db()->getDouble(m_PixelOmegaGlue,"STARTX",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelOmegaGlueThickness(int index) { if (useLegacy()) return m_legacyManager->PixelOmegaGlueThickness(index); - return db()->getDouble(m_PixelOmegaGlue,"THICK",index) * CLHEP::mm; + return db()->getDouble(m_PixelOmegaGlue,"THICK",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelOmegaGlueStartY(int index) { if (useLegacy()) return m_legacyManager->PixelOmegaGlueStartY(index); - return db()->getDouble(m_PixelOmegaGlue,"STARTY",index) * CLHEP::mm; + return db()->getDouble(m_PixelOmegaGlue,"STARTY",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelOmegaGlueEndY(int index) { if (useLegacy()) return m_legacyManager->PixelOmegaGlueEndY(index); - return db()->getDouble(m_PixelOmegaGlue,"ENDY",index) * CLHEP::mm; + return db()->getDouble(m_PixelOmegaGlue,"ENDY",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelOmegaGlueLength(int index) { if (useLegacy()) return m_legacyManager->PixelOmegaGlueLength(index); - return db()->getDouble(m_PixelOmegaGlue,"LENGTH",index) * CLHEP::mm; + return db()->getDouble(m_PixelOmegaGlue,"LENGTH",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelOmegaGluePosZ(int index) { if (useLegacy()) return m_legacyManager->PixelOmegaGluePosZ(index); - return db()->getDouble(m_PixelOmegaGlue,"Z",index) * CLHEP::mm; + return db()->getDouble(m_PixelOmegaGlue,"Z",index) * GeoModelKernelUnits::mm; } int OraclePixGeoManager::PixelOmegaGlueTypeNum(int index) @@ -2917,45 +2915,45 @@ int OraclePixGeoManager::PixelOmegaGlueTypeNum(int index) double OraclePixGeoManager::PixelFluidZ1(int index) { if (useLegacy()) return m_legacyManager->PixelFluidZ1(index); - return db()->getDouble(m_PixelFluid,"Z1",index) * CLHEP::mm; + return db()->getDouble(m_PixelFluid,"Z1",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelFluidZ2(int index) { if (useLegacy()) return m_legacyManager->PixelFluidZ2(index); - return db()->getDouble(m_PixelFluid,"Z2",index) * CLHEP::mm; + return db()->getDouble(m_PixelFluid,"Z2",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelFluidThick1(int index) { if (useLegacy()) return m_legacyManager->PixelFluidThick1(index); - return db()->getDouble(m_PixelFluid,"THICK1",index) * CLHEP::mm; + return db()->getDouble(m_PixelFluid,"THICK1",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelFluidThick2(int index) { if (useLegacy()) return m_legacyManager->PixelFluidThick2(index); - return db()->getDouble(m_PixelFluid,"THICK2",index) * CLHEP::mm; + return db()->getDouble(m_PixelFluid,"THICK2",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelFluidWidth(int index) { if (useLegacy()) return m_legacyManager->PixelFluidWidth(index); - return db()->getDouble(m_PixelFluid,"WIDTH",index) * CLHEP::mm; + return db()->getDouble(m_PixelFluid,"WIDTH",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelFluidX(int index) { if (useLegacy()) return m_legacyManager->PixelFluidX(index); - return db()->getDouble(m_PixelFluid,"X",index) * CLHEP::mm; + return db()->getDouble(m_PixelFluid,"X",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelFluidY(int index) { if (useLegacy()) return m_legacyManager->PixelFluidY(index); - return db()->getDouble(m_PixelFluid,"Y",index) * CLHEP::mm; + return db()->getDouble(m_PixelFluid,"Y",index) * GeoModelKernelUnits::mm; } int OraclePixGeoManager::PixelFluidType(int index) @@ -3001,25 +2999,25 @@ int OraclePixGeoManager::PixelFluidOrient(int layer, int phi) double OraclePixGeoManager::PixelPigtailThickness() { if (useLegacy()) return m_legacyManager->PixelPigtailThickness(); - return db()->getDouble(m_PixelPigtail,"THICK") * CLHEP::mm; + return db()->getDouble(m_PixelPigtail,"THICK") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelPigtailStartY() { if (useLegacy()) return m_legacyManager->PixelPigtailStartY(); - return db()->getDouble(m_PixelPigtail,"STARTY") * CLHEP::mm; + return db()->getDouble(m_PixelPigtail,"STARTY") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelPigtailEndY() { if (useLegacy()) return m_legacyManager->PixelPigtailEndY(); - return db()->getDouble(m_PixelPigtail,"ENDY") * CLHEP::mm; + return db()->getDouble(m_PixelPigtail,"ENDY") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelPigtailWidthZ() { if (useLegacy()) return m_legacyManager->PixelPigtailWidthZ(); - return db()->getDouble(m_PixelPigtail,"WIDTHZ") * CLHEP::mm; + return db()->getDouble(m_PixelPigtail,"WIDTHZ") * GeoModelKernelUnits::mm; } // Different width from the curved section in old geometry @@ -3032,31 +3030,31 @@ double OraclePixGeoManager::PixelPigtailFlatWidthZ() double OraclePixGeoManager::PixelPigtailPosX() { if (useLegacy()) return m_legacyManager->PixelPigtailPosX(); - return db()->getDouble(m_PixelPigtail,"X") * CLHEP::mm; + return db()->getDouble(m_PixelPigtail,"X") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelPigtailPosZ() { if (useLegacy()) return m_legacyManager->PixelPigtailPosZ(); - return db()->getDouble(m_PixelPigtail,"Z") * CLHEP::mm; + return db()->getDouble(m_PixelPigtail,"Z") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelPigtailBendX() { if (useLegacy()) return m_legacyManager->PixelPigtailBendX(); - return db()->getDouble(m_PixelPigtail,"BENDX") * CLHEP::mm; + return db()->getDouble(m_PixelPigtail,"BENDX") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelPigtailBendY() { if (useLegacy()) return m_legacyManager->PixelPigtailBendY(); - return db()->getDouble(m_PixelPigtail,"BENDY") * CLHEP::mm; + return db()->getDouble(m_PixelPigtail,"BENDY") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelPigtailBendRMin() { if (useLegacy()) return m_legacyManager->PixelPigtailBendRMin(); - return db()->getDouble(m_PixelPigtail,"BENDRMIN") * CLHEP::mm; + return db()->getDouble(m_PixelPigtail,"BENDRMIN") * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelPigtailBendRMax() @@ -3068,19 +3066,19 @@ double OraclePixGeoManager::PixelPigtailBendRMax() double OraclePixGeoManager::PixelPigtailBendPhiMin() { if (useLegacy()) return m_legacyManager->PixelPigtailBendPhiMin(); - return db()->getDouble(m_PixelPigtail,"BENDPHIMIN") * CLHEP::deg; + return db()->getDouble(m_PixelPigtail,"BENDPHIMIN") * GeoModelKernelUnits::deg; } double OraclePixGeoManager::PixelPigtailBendPhiMax() { if (useLegacy()) return m_legacyManager->PixelPigtailBendPhiMax(); - return db()->getDouble(m_PixelPigtail,"BENDPHIMAX") * CLHEP::deg; + return db()->getDouble(m_PixelPigtail,"BENDPHIMAX") * GeoModelKernelUnits::deg; } double OraclePixGeoManager::PixelPigtailEnvelopeLength() { if (useLegacy()) return m_legacyManager->PixelPigtailEnvelopeLength(); - return db()->getDouble(m_PixelPigtail,"ENVLENGTH") * CLHEP::mm; + return db()->getDouble(m_PixelPigtail,"ENVLENGTH") * GeoModelKernelUnits::mm; } // @@ -3095,37 +3093,37 @@ int OraclePixGeoManager::PixelNumConnectorElements() double OraclePixGeoManager::PixelConnectorWidthX(int index) { if (useLegacy()) return m_legacyManager->PixelConnectorWidthX(index); - return db()->getDouble(m_PixelConnector,"WIDTHX",index) * CLHEP::mm; + return db()->getDouble(m_PixelConnector,"WIDTHX",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelConnectorWidthY(int index) { if (useLegacy()) return m_legacyManager->PixelConnectorWidthY(index); - return db()->getDouble(m_PixelConnector,"WIDTHY",index) * CLHEP::mm; + return db()->getDouble(m_PixelConnector,"WIDTHY",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelConnectorWidthZ(int index) { if (useLegacy()) return m_legacyManager->PixelConnectorWidthZ(index); - return db()->getDouble(m_PixelConnector,"WIDTHZ",index) * CLHEP::mm; + return db()->getDouble(m_PixelConnector,"WIDTHZ",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelConnectorPosX(int index) { if (useLegacy()) return m_legacyManager->PixelConnectorPosX(index); - return db()->getDouble(m_PixelConnector,"X",index) * CLHEP::mm; + return db()->getDouble(m_PixelConnector,"X",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelConnectorPosY(int index) { if (useLegacy()) return m_legacyManager->PixelConnectorPosY(index); - return db()->getDouble(m_PixelConnector,"Y",index) * CLHEP::mm; + return db()->getDouble(m_PixelConnector,"Y",index) * GeoModelKernelUnits::mm; } double OraclePixGeoManager::PixelConnectorPosZ(int index) { if (useLegacy()) return m_legacyManager->PixelConnectorPosZ(index); - return db()->getDouble(m_PixelConnector,"Z",index) * CLHEP::mm; + return db()->getDouble(m_PixelConnector,"Z",index) * GeoModelKernelUnits::mm; } // @@ -3389,7 +3387,7 @@ double OraclePixGeoManager::DesignPitchRP(bool isModule3D) return m_legacyManager->DesignPitchRP(isInnermostPixelLayer()); } else { int type = designType((ibl()&&isModule3D)); - return db()->getDouble(m_PixelReadout,"PITCHPHI",type) * CLHEP::mm; + return db()->getDouble(m_PixelReadout,"PITCHPHI",type) * GeoModelKernelUnits::mm; } } @@ -3399,7 +3397,7 @@ double OraclePixGeoManager::DesignPitchZ(bool isModule3D) return m_legacyManager->DesignPitchZ(isInnermostPixelLayer()); } else { int type = designType((ibl()&&isModule3D)); - return db()->getDouble(m_PixelReadout,"PITCHETA",type) * CLHEP::mm; + return db()->getDouble(m_PixelReadout,"PITCHETA",type) * GeoModelKernelUnits::mm; } } @@ -3410,7 +3408,7 @@ double OraclePixGeoManager::DesignPitchZLong(bool isModule3D) return m_legacyManager->DesignPitchZLong(isInnermostPixelLayer()); } else { int type = designType((ibl()&&isModule3D)); - double pitch = db()->getDouble(m_PixelReadout,"PITCHETALONG",type) * CLHEP::mm; + double pitch = db()->getDouble(m_PixelReadout,"PITCHETALONG",type) * GeoModelKernelUnits::mm; if (pitch == 0) pitch = DesignPitchZ(isModule3D); return pitch; } @@ -3425,7 +3423,7 @@ double OraclePixGeoManager::DesignPitchZLongEnd(bool isModule3D) int type = designType((ibl()&&isModule3D)); double pitch = 0; if (db()->testField(m_PixelReadout,"PITCHETAEND",type)) { - pitch = db()->getDouble(m_PixelReadout,"PITCHETAEND",type) * CLHEP::mm; + pitch = db()->getDouble(m_PixelReadout,"PITCHETAEND",type) * GeoModelKernelUnits::mm; } if (pitch == 0) pitch = DesignPitchZLong(isModule3D); return pitch; @@ -3520,18 +3518,18 @@ double OraclePixGeoManager::PixelDiskRMin(bool includeSupports) if (!slhc()) { return db()->getDouble(m_PixelDisk,"RIDISK",m_currentLD)*mmcm(); } else { - double result = db()->getDouble(m_PixelDisk,"RMIN",m_currentLD) * CLHEP::mm; + double result = db()->getDouble(m_PixelDisk,"RMIN",m_currentLD) * GeoModelKernelUnits::mm; if(includeSupports) { result = std::min( result, PixelDiskSupportRMin(0) ); } int etaInner = 0; // Inner ring int ringType = getDiskRingType(m_currentLD,etaInner); if (ringType >= 0 && db()->testField(m_PixelRing,"RMIN",ringType) && db()->getDouble(m_PixelRing,"RMIN",ringType)) { - double ringRmin = db()->getDouble(m_PixelRing,"RMIN",ringType) * CLHEP::mm - 0.01*CLHEP::mm; // ring envelope has a 0.01mm safety + double ringRmin = db()->getDouble(m_PixelRing,"RMIN",ringType) * GeoModelKernelUnits::mm - 0.01*GeoModelKernelUnits::mm; // ring envelope has a 0.01mm safety if (ringRmin < result) { msg(MSG::WARNING) << "Ring rmin is less than disk rmin for disk : " << m_currentLD << ". Ring rmin: " << ringRmin << ", Disk rmin: " << result <<endmsg; - result = ringRmin - 0.1*CLHEP::mm; // NB. ring envelope has a 0.01mm saftey added, but we add a little more. + result = ringRmin - 0.1*GeoModelKernelUnits::mm; // NB. ring envelope has a 0.01mm saftey added, but we add a little more. } } return result; @@ -3541,7 +3539,7 @@ double OraclePixGeoManager::PixelDiskRMin(bool includeSupports) // SLHC only double OraclePixGeoManager::PixelDiskRMax(bool includeSupports) { - double result = db()->getDouble(m_PixelDisk,"RMAX",m_currentLD) * CLHEP::mm; + double result = db()->getDouble(m_PixelDisk,"RMAX",m_currentLD) * GeoModelKernelUnits::mm; if(includeSupports) { result = std::max( result, PixelDiskSupportRMax(2) ); } @@ -3553,11 +3551,11 @@ double OraclePixGeoManager::PixelDiskRMax(bool includeSupports) // This is not so nice as PixelRingRMax can potentially call PixelDiskRMax, however it // only calls PixelDiskRMax if the above condition is not satisified. So hopefully OK. // TODO: Code could do with some improvement to make it less fragile. - double ringRmax = PixelRingRMax(0.01*CLHEP::mm); // ring envelope has a 0.01mm safety + double ringRmax = PixelRingRMax(0.01*GeoModelKernelUnits::mm); // ring envelope has a 0.01mm safety if (ringRmax > result) { msg(MSG::WARNING) << "Ring rmax is greater than disk rmax for disk : " << m_currentLD << ". Ring rmax: " << ringRmax << ", Disk rmax: " << result <<endmsg; - result = ringRmax + 0.1*CLHEP::mm; // NB. ring envelope has a 0.01mm saftey added, but we add a little more. + result = ringRmax + 0.1*GeoModelKernelUnits::mm; // NB. ring envelope has a 0.01mm saftey added, but we add a little more. } } // restore state @@ -3593,7 +3591,7 @@ double OraclePixGeoManager::PixelRingRcenter() { // If ring rmin is present and non-zero use that. int ringType = getDiskRingType(m_currentLD,m_eta); if (ringType >=0 && db()->testField(m_PixelRing,"RMIN",ringType) && db()->getDouble(m_PixelRing,"RMIN",ringType)) { - return db()->getDouble(m_PixelRing,"RMIN",ringType) * CLHEP::mm + PixelModuleLength()/2; + return db()->getDouble(m_PixelRing,"RMIN",ringType) * GeoModelKernelUnits::mm + PixelModuleLength()/2; } else { // Otherwise calculate from disk rmin/rmax int nrings = PixelDiskNRings(); @@ -3616,7 +3614,7 @@ double OraclePixGeoManager::PixelRingRMin(double safety) { // If ring rmin is present and non-zero use that. int ringType = getDiskRingType(m_currentLD,m_eta); if (ringType >= 0 && db()->testField(m_PixelRing,"RMIN",ringType) && db()->getDouble(m_PixelRing,"RMIN",ringType)) { - return db()->getDouble(m_PixelRing,"RMIN",ringType) * CLHEP::mm - std::abs(safety); + return db()->getDouble(m_PixelRing,"RMIN",ringType) * GeoModelKernelUnits::mm - std::abs(safety); } else { // Otherwise calculated it from disk rmin if(m_eta==0) return PixelDiskRMin() - std::abs(safety); @@ -3662,7 +3660,7 @@ double OraclePixGeoManager::PixelRingZpos() { double OraclePixGeoManager::PixelRingZoffset() { int index = getDiskRingIndex(m_currentLD,m_eta); - return std::abs(db()->getDouble(m_PixelDiskRing,"ZOFFSET",index))*CLHEP::mm; + return std::abs(db()->getDouble(m_PixelDiskRing,"ZOFFSET",index))*GeoModelKernelUnits::mm; } // SLHC only @@ -3676,13 +3674,13 @@ int OraclePixGeoManager::PixelRingSide() double OraclePixGeoManager::PixelRingStagger() { int ringType = getDiskRingType(m_currentLD,m_eta); - return db()->getDouble(m_PixelRing,"STAGGER",ringType)*CLHEP::mm; + return db()->getDouble(m_PixelRing,"STAGGER",ringType)*GeoModelKernelUnits::mm; } // SLHC only //int OraclePixGeoManager::PixelRingNmodules() { -// return db()->getInt("PixelRing","NMODULES",ringIndex)*CLHEP::mm(); +// return db()->getInt("PixelRing","NMODULES",ringIndex)*GeoModelKernelUnits::mm(); //} @@ -3772,7 +3770,7 @@ double OraclePixGeoManager::PixelModuleThicknessN() { // is the max of ThicknessP and thickness from the module center to // the outer surface of the hybrid plus some safety. // - double safety = 0.01*CLHEP::mm; + double safety = 0.01*GeoModelKernelUnits::mm; double thickn = 0.5 * PixelBoardThickness() + PixelHybridThickness() + safety; double thick = std::max(thickn, PixelModuleThicknessP()); @@ -3787,7 +3785,7 @@ double OraclePixGeoManager::PixelModuleThicknessP() { // is thickness from the module center to the outer surface of the // chips plus some safety. - double safety = 0.01*CLHEP::mm; + double safety = 0.01*GeoModelKernelUnits::mm; double thick = 0.5 * PixelBoardThickness() + PixelChipThickness() + PixelChipGap() + safety; @@ -3831,39 +3829,39 @@ double OraclePixGeoManager::PixelModuleLength() { // return angle of the telescope double OraclePixGeoManager::DBMAngle() { - return db()->getDouble(m_DBMTelescope,"ANGLE")*CLHEP::deg; + return db()->getDouble(m_DBMTelescope,"ANGLE")*GeoModelKernelUnits::deg; } // return dimension of the DBM telescope double OraclePixGeoManager::DBMTelescopeX() { - return db()->getDouble(m_DBMTelescope,"WIDTH")*CLHEP::mm; + return db()->getDouble(m_DBMTelescope,"WIDTH")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMTelescopeY() { - return db()->getDouble(m_DBMTelescope,"HEIGHT")*CLHEP::mm; + return db()->getDouble(m_DBMTelescope,"HEIGHT")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMTelescopeZ() { - return db()->getDouble(m_DBMTelescope,"LENGTH")*CLHEP::mm; + return db()->getDouble(m_DBMTelescope,"LENGTH")*GeoModelKernelUnits::mm; } // return height and length of the module cage having a 3-layers structure double OraclePixGeoManager::DBMModuleCageY() { - return db()->getDouble(m_DBMTelescope,"CAGE_HEIGHT")*CLHEP::mm; + return db()->getDouble(m_DBMTelescope,"CAGE_HEIGHT")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMModuleCageZ() { - return db()->getDouble(m_DBMTelescope,"CAGE_LENGTH")*CLHEP::mm; + return db()->getDouble(m_DBMTelescope,"CAGE_LENGTH")*GeoModelKernelUnits::mm; } // return layer spacing double OraclePixGeoManager::DBMSpacingZ() { - return db()->getDouble(m_DBMCage,"ZSPACING")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"ZSPACING")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMSpacingRadial() { if (m_currentLD == 0) - return db()->getDouble(m_DBMCage,"RADIAL_SPACE_0")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"RADIAL_SPACE_0")*GeoModelKernelUnits::mm; else if (m_currentLD == 1) - return db()->getDouble(m_DBMCage,"RADIAL_SPACE_1")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"RADIAL_SPACE_1")*GeoModelKernelUnits::mm; else if (m_currentLD == 2) - return db()->getDouble(m_DBMCage,"RADIAL_SPACE_2")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"RADIAL_SPACE_2")*GeoModelKernelUnits::mm; else { msg(MSG::WARNING) << "DBMSpacingRadial() is not found" << endmsg; return 0.; @@ -3871,174 +3869,174 @@ double OraclePixGeoManager::DBMSpacingRadial() { } // return dimension of bracket unit double OraclePixGeoManager::DBMBracketX() { - return db()->getDouble(m_DBMBracket,"WIDTH")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"WIDTH")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMBracketY() { - return db()->getDouble(m_DBMBracket,"HEIGHT")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"HEIGHT")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMBracketZ() { - return db()->getDouble(m_DBMBracket,"THICKNESS")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"THICKNESS")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMTrapezBackTheta() { - return db()->getDouble(m_DBMBracket,"TRAPEZBACK_THETA")*CLHEP::deg; + return db()->getDouble(m_DBMBracket,"TRAPEZBACK_THETA")*GeoModelKernelUnits::deg; } double OraclePixGeoManager::DBMTrapezBackX() { - return db()->getDouble(m_DBMBracket,"TRAPEZBACK_WIDTH")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"TRAPEZBACK_WIDTH")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMTrapezBackY() { - return db()->getDouble(m_DBMBracket,"TRAPEZBACK_HEIGHT")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"TRAPEZBACK_HEIGHT")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMTrapezBackShortZ() { - return db()->getDouble(m_DBMBracket,"TRAPEZBACK_ZSHORT")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"TRAPEZBACK_ZSHORT")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMBrcktWindowX() { - return db()->getDouble(m_DBMBracket,"WINDOW_WIDTH")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"WINDOW_WIDTH")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMBrcktWindowY() { - return db()->getDouble(m_DBMBracket,"WINDOW_HEIGHT")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"WINDOW_HEIGHT")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMBrcktWindowOffset() { - return db()->getDouble(m_DBMBracket,"WINDOW_OFFSET")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"WINDOW_OFFSET")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMBrcktWindowCenterZ() { - return db()->getDouble(m_DBMBracket,"WINDOW_CENTERZ")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"WINDOW_CENTERZ")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMBrcktTopBlockZ() { - return db()->getDouble(m_DBMBracket,"TOPBLOCK_THICK")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"TOPBLOCK_THICK")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMBrcktSideBlockX() { - return db()->getDouble(m_DBMBracket,"SIDEBLOCK_WIDTH")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"SIDEBLOCK_WIDTH")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMBrcktSideBlockY() { - return db()->getDouble(m_DBMBracket,"SIDEBLOCK_HEIGHT")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"SIDEBLOCK_HEIGHT")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMBrcktLockZ() { - return db()->getDouble(m_DBMBracket,"LOCK_THICK")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"LOCK_THICK")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMBrcktLockY() { - return db()->getDouble(m_DBMBracket,"LOCK_HEIGHT")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"LOCK_HEIGHT")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMBrcktFinLongZ() { - return db()->getDouble(m_DBMBracket,"COOLINGFIN_ZLONG")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"COOLINGFIN_ZLONG")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMBrcktFinHeight() { - return db()->getDouble(m_DBMBracket,"COOLINGFIN_HEIGHT")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"COOLINGFIN_HEIGHT")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMBrcktFinThick() { - return db()->getDouble(m_DBMBracket,"COOLINGFIN_THICK")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"COOLINGFIN_THICK")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMBrcktFinPos() { - return db()->getDouble(m_DBMBracket,"COOLINGFIN_POS")*CLHEP::mm; + return db()->getDouble(m_DBMBracket,"COOLINGFIN_POS")*GeoModelKernelUnits::mm; } // return spacing between V-slide and first layer double OraclePixGeoManager::DBMSpace() { - return db()->getDouble(m_DBMCage,"SPACING1")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"SPACING1")*GeoModelKernelUnits::mm; } // return dimensions of the main plate double OraclePixGeoManager::DBMMainPlateX() { - return db()->getDouble(m_DBMCage,"MAINPLATE_WIDTH")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"MAINPLATE_WIDTH")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMMainPlateY() { - return db()->getDouble(m_DBMCage,"MAINPLATE_HEIGHT")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"MAINPLATE_HEIGHT")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMMainPlateZ() { - return db()->getDouble(m_DBMCage,"MAINPLATE_THICK")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"MAINPLATE_THICK")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMMPlateWindowWidth() { - return db()->getDouble(m_DBMCage,"MPWINDOW_WIDTH")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"MPWINDOW_WIDTH")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMMPlateWindowHeight() { - return db()->getDouble(m_DBMCage,"MPWINDOW_HEIGHT")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"MPWINDOW_HEIGHT")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMMPlateWindowPos() { - return db()->getDouble(m_DBMCage,"MPWINDOW_POS")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"MPWINDOW_POS")*GeoModelKernelUnits::mm; } // return dimensions of aluminium side plates double OraclePixGeoManager::DBMCoolingSidePlateX() { - return db()->getDouble(m_DBMCage,"SIDEPLATE_THICK")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"SIDEPLATE_THICK")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMCoolingSidePlateY() { - return db()->getDouble(m_DBMCage,"SIDEPLATE_HEIGHT")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"SIDEPLATE_HEIGHT")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMCoolingSidePlateZ() { - return db()->getDouble(m_DBMCage,"SIDEPLATE_LENGTH")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"SIDEPLATE_LENGTH")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMCoolingSidePlatePos() { - return db()->getDouble(m_DBMCage,"SIDEPLATE_POS")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"SIDEPLATE_POS")*GeoModelKernelUnits::mm; } // return dimension of sensor, chip and ceramic double OraclePixGeoManager::DBMDiamondX() { - return db()->getDouble(m_DBMModule,"DIAMOND_WIDTH")*CLHEP::mm; + return db()->getDouble(m_DBMModule,"DIAMOND_WIDTH")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMDiamondY() { - return db()->getDouble(m_DBMModule,"DIAMOND_HEIGHT")*CLHEP::mm; + return db()->getDouble(m_DBMModule,"DIAMOND_HEIGHT")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMDiamondZ() { - return db()->getDouble(m_DBMModule,"DIAMOND_THICK")*CLHEP::mm; + return db()->getDouble(m_DBMModule,"DIAMOND_THICK")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMFEI4X() { - return db()->getDouble(m_DBMModule,"FEI4_WIDTH")*CLHEP::mm; + return db()->getDouble(m_DBMModule,"FEI4_WIDTH")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMFEI4Y() { - return db()->getDouble(m_DBMModule,"FEI4_HEIGHT")*CLHEP::mm; + return db()->getDouble(m_DBMModule,"FEI4_HEIGHT")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMFEI4Z() { - return db()->getDouble(m_DBMModule,"FEI4_THICK")*CLHEP::mm; + return db()->getDouble(m_DBMModule,"FEI4_THICK")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMCeramicX() { - return db()->getDouble(m_DBMModule,"CERAMIC_WIDTH")*CLHEP::mm; + return db()->getDouble(m_DBMModule,"CERAMIC_WIDTH")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMCeramicY() { - return db()->getDouble(m_DBMModule,"CERAMIC_HEIGHT")*CLHEP::mm; + return db()->getDouble(m_DBMModule,"CERAMIC_HEIGHT")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMCeramicZ() { - return db()->getDouble(m_DBMModule,"CERAMIC_THICK")*CLHEP::mm; + return db()->getDouble(m_DBMModule,"CERAMIC_THICK")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMAirGap() { - return db()->getDouble(m_DBMModule,"AIR_GAP")*CLHEP::mm; + return db()->getDouble(m_DBMModule,"AIR_GAP")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMKaptonZ() { - return db()->getDouble(m_DBMModule,"KAPTONZ")*CLHEP::mm; + return db()->getDouble(m_DBMModule,"KAPTONZ")*GeoModelKernelUnits::mm; } // flex support double OraclePixGeoManager::DBMFlexSupportX() { - return db()->getDouble(m_DBMCage,"FLEXSUPP_WIDTH")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"FLEXSUPP_WIDTH")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMFlexSupportY() { - return db()->getDouble(m_DBMCage,"FLEXSUPP_HEIGHT")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"FLEXSUPP_HEIGHT")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMFlexSupportZ() { - return db()->getDouble(m_DBMCage,"FLEXSUPP_THICK")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"FLEXSUPP_THICK")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMFlexSupportOffset() { - return db()->getDouble(m_DBMCage, "FLEXSUPP_OFFSET")*CLHEP::mm; + return db()->getDouble(m_DBMCage, "FLEXSUPP_OFFSET")*GeoModelKernelUnits::mm; } // return radius of supporting rod double OraclePixGeoManager::DBMRodRadius() { - return db()->getDouble(m_DBMCage,"ROD_RADIUS")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"ROD_RADIUS")*GeoModelKernelUnits::mm; } // return distance between center of rods double OraclePixGeoManager::DBMMPlateRod2RodY() { - return db()->getDouble(m_DBMCage,"ROD2ROD_VERT")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"ROD2ROD_VERT")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMMPlateRod2RodX() { - return db()->getDouble(m_DBMCage,"ROD2ROD_HOR")*CLHEP::mm; + return db()->getDouble(m_DBMCage,"ROD2ROD_HOR")*GeoModelKernelUnits::mm; } // radius and thickness of PP0 board double OraclePixGeoManager::DBMPP0RIn() { - return db()->getDouble(m_DBMTelescope,"PP0_RIN")*CLHEP::mm; + return db()->getDouble(m_DBMTelescope,"PP0_RIN")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMPP0ROut() { - return db()->getDouble(m_DBMTelescope,"PP0_ROUT")*CLHEP::mm; + return db()->getDouble(m_DBMTelescope,"PP0_ROUT")*GeoModelKernelUnits::mm; } double OraclePixGeoManager::DBMPP0Thick() { - return db()->getDouble(m_DBMTelescope,"PP0_THICK")*CLHEP::mm; + return db()->getDouble(m_DBMTelescope,"PP0_THICK")*GeoModelKernelUnits::mm; } diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/OraclePixGeoManager.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/OraclePixGeoManager.h similarity index 98% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/OraclePixGeoManager.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/OraclePixGeoManager.h index 4efca302e47b36e19dbca6c25bd9a11c0602ae78..04dbd659378bc69bdbaae11333a5d1c2ad898d6c 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/OraclePixGeoManager.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/OraclePixGeoManager.h @@ -5,8 +5,9 @@ #ifndef OraclePixelGeoManager_H #define OraclePixelGeoManager_H -#include "PixelGeoModel/PixelGeometryManager.h" -#include "CLHEP/Geometry/Transform3D.h" +#include "PixelGeometryManager.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include <string> #include <map> #include <vector> @@ -168,7 +169,7 @@ class OraclePixGeoManager : public PixelGeometryManager { // db version int m_dbVersion; - // default length unit set according to db version (CLHEP::mm or CLHEP::cm) + // default length unit set according to db version (GeoModelKernelUnits::mm or GeoModelKernelUnits::cm) double m_defaultLengthUnit; public: @@ -424,7 +425,7 @@ class OraclePixGeoManager : public PixelGeometryManager { double PixelLadderCableOffsetY(); // Stave support (IBL) - HepGeom::Point3D<double> IBLStaveRotationAxis(); + GeoTrf::Vector3D IBLStaveRotationAxis(); double IBLStaveRadius(); double IBLStaveFacePlateThickness(); double IBLStaveMechanicalStaveWidth(); @@ -793,7 +794,7 @@ class OraclePixGeoManager : public PixelGeometryManager { const PixelID * getIdHelper(); // Top Level placements - const HepGeom::Transform3D & partTransform(const std::string & partName) const; + const GeoTrf::Transform3D & partTransform(const std::string & partName) const; bool partPresent(const std::string & partName) const; std::string getMaterialName(const std::string & volumeName, int layerdisk = 0, int typenum = 0); @@ -835,7 +836,7 @@ class OraclePixGeoManager : public PixelGeometryManager { double CalculateThickness(double,std::string); int determineDbVersion(); void addDefaultMaterials(); - // return default length unit (CLHEP::mm or CLHEP::cm) + // return default length unit (GeoModelKernelUnits::mm or GeoModelKernelUnits::cm) double mmcm() {return m_defaultLengthUnit;} }; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.cxx index afd98c69949e204c263dd9e80eef41e7fae1b45e..a945c0463b074ebe0f584950a2d909c115fa3b0f 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.cxx @@ -6,7 +6,7 @@ // This allows one to keep a stable copy of the DC2 version and // allow development of future versions. -#include "PixelGeoModel/PixelDetectorDC1DC2.h" +#include "PixelDetectorDC1DC2.h" #include "InDetReadoutGeometry/InDetDD_Defs.h" #include "InDetReadoutGeometry/PixelDetectorManager.h" @@ -79,7 +79,7 @@ GeoVPhysVol* GeoPixelBarrel::Build( ) { //cout << "Layer" << ii << endl; m_gmt_mgr->SetCurrentLD(ii); if(m_gmt_mgr->isLDPresent()) { - GeoAlignableTransform * xform = new GeoAlignableTransform(HepGeom::Transform3D()); + GeoAlignableTransform * xform = new GeoAlignableTransform(GeoTrf::Transform3D::Identity()); GeoVPhysVol* layerphys = layer.Build(); GeoNameTag *tag = new GeoNameTag(lname[ii]); barrelPhys->add(tag); @@ -102,8 +102,8 @@ GeoVPhysVol* GeoPixelBarrel::Build( ) { for(int ii =0; ii< brlsvc.NCylinders(); ii++) { brlsvc.SetCylinder(ii); GeoNameTag* tag = new GeoNameTag("Outside Barrel Service"); - CLHEP::Hep3Vector pos(0.,0.,brlsvc.ZPos() ); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),pos)); + GeoTrf::Translate3D pos(0.,0.,brlsvc.ZPos() ); + GeoTransform* xform = new GeoTransform(pos); barrelPhys->add(tag); barrelPhys->add(xform); barrelPhys->add(brlsvc.Build() ); @@ -152,19 +152,19 @@ double GeoPixelCable::Length() { double GeoPixelCable::Thickness() { // - // This is calculated from the CLHEP::rad length of the cables and their mass + // This is calculated from the GeoModelKernelUnits::rad length of the cables and their mass // I have to go back on this later when I'll have defined a material // manager, for the time being I get the thickness by atlsim, using dtree // anf hardwire the numbers in the code... // I have to come back on the thickness using the cables recipes // - if(m_moduleNumber == 0) return 2.*0.0028412*CLHEP::cm; - if(m_moduleNumber == 1) return 2.*0.0056795*CLHEP::cm; - if(m_moduleNumber == 2) return 2.*0.0056830*CLHEP::cm; - if(m_moduleNumber == 3) return 2.*0.0056763*CLHEP::cm; - if(m_moduleNumber == 4) return 2.*0.0056752*CLHEP::cm; - if(m_moduleNumber == 5) return 2.*0.0057058*CLHEP::cm; - if(m_moduleNumber == 6) return 2.*0.0056818*CLHEP::cm; + if(m_moduleNumber == 0) return 2.*0.0028412*GeoModelKernelUnits::cm; + if(m_moduleNumber == 1) return 2.*0.0056795*GeoModelKernelUnits::cm; + if(m_moduleNumber == 2) return 2.*0.0056830*GeoModelKernelUnits::cm; + if(m_moduleNumber == 3) return 2.*0.0056763*GeoModelKernelUnits::cm; + if(m_moduleNumber == 4) return 2.*0.0056752*GeoModelKernelUnits::cm; + if(m_moduleNumber == 5) return 2.*0.0057058*GeoModelKernelUnits::cm; + if(m_moduleNumber == 6) return 2.*0.0056818*GeoModelKernelUnits::cm; return 0.; @@ -249,8 +249,8 @@ GeoVPhysVol* GeoPixelDisk::Build( ) { // GeoPixelSubDisk psd(theSensor); double zpos = -m_gmt_mgr->PixelECSiDz1()/2.; - double angle = 360.*CLHEP::deg/ (float) m_gmt_mgr->PixelECNSectors1(); - CLHEP::Hep3Vector pos(0.,0.,zpos); + double angle = 360.*GeoModelKernelUnits::deg/ (float) m_gmt_mgr->PixelECNSectors1(); + GeoTrf::Translation3D pos(0.,0.,zpos); // Set numerology m_gmt_mgr->SetEta(0); @@ -261,10 +261,8 @@ GeoVPhysVol* GeoPixelDisk::Build( ) { m_gmt_mgr->SetEta(0); for (int ii = 0; ii < m_gmt_mgr->PixelECNSectors1(); ii++) { m_gmt_mgr->SetPhi(ii); - CLHEP::HepRotation rm; - rm.rotateX(180.*CLHEP::deg ); - rm.rotateZ(ii*angle+angle/2.); - GeoAlignableTransform* xform = new GeoAlignableTransform(HepGeom::Transform3D(rm,pos)); + GeoTrf::Transform3D rm = GeoTrf::RotateZ3D(ii*angle+angle/2.)*GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg); + GeoAlignableTransform* xform = new GeoAlignableTransform(GeoTrf::Transform3D(pos*rm)); GeoVPhysVol * modulePhys = psd.Build(); GeoNameTag* tag = new GeoNameTag("DiskSector"); diskPhys->add(tag); @@ -280,12 +278,11 @@ GeoVPhysVol* GeoPixelDisk::Build( ) { // Odd modules m_gmt_mgr->SetEta(1); zpos = m_gmt_mgr->PixelECSiDz2()/2.; - pos = CLHEP::Hep3Vector(0.,0.,zpos); + pos = GeoTrf::Translation3D(0.,0.,zpos); for (int ii = 0; ii < m_gmt_mgr->PixelECNSectors1(); ii++) { m_gmt_mgr->SetPhi(ii); - CLHEP::HepRotation rm; - rm.rotateZ((ii+1)*angle); - GeoAlignableTransform* xform = new GeoAlignableTransform(HepGeom::Transform3D(rm,pos)); + GeoTrf::RotateZ3D rm((ii+1)*angle); + GeoAlignableTransform* xform = new GeoAlignableTransform(GeoTrf::Transform3D(pos*rm)); GeoVPhysVol * modulePhys = psd.Build(); GeoNameTag* tag = new GeoNameTag("DiskSector"); diskPhys->add(tag); @@ -303,9 +300,9 @@ GeoVPhysVol* GeoPixelDisk::Build( ) { GeoPixelDiskSupports pds; for(int ii =0; ii< pds.NCylinders(); ii++) { pds.SetCylinder(ii); - CLHEP::Hep3Vector pos(0.,0.,pds.ZPos() ); + GeoTrf::Translate3D pos(0.,0.,pds.ZPos() ); GeoNameTag* tag = new GeoNameTag("DiskSupport"); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),pos)); + GeoTransform* xform = new GeoTransform(pos); diskPhys->add(tag); diskPhys->add(xform); diskPhys->add(pds.Build() ); @@ -331,7 +328,7 @@ double GeoPixelDisk::Thickness() { // 7-1 I switch to the minimum thickness possible as the cables are right // outside this volume. // - // return 10*CLHEP::mm; + // return 10*GeoModelKernelUnits::mm; double tck = 2*(m_gmt_mgr->PixelBoardThickness() +std::max(m_gmt_mgr->PixelHybridThickness(),m_gmt_mgr->PixelChipThickness())); tck += std::max(m_gmt_mgr->PixelECSiDz1(),m_gmt_mgr->PixelECSiDz2()); @@ -480,9 +477,9 @@ GeoVPhysVol* GeoPixelEndCap::Build( ) { //position of the disk double zdisk = m_gmt_mgr->PixelDiskPosition()-ecz; // place the disk - CLHEP::Hep3Vector pos(0.,0.,zdisk); + GeoTrf::Translate3D pos(0.,0.,zdisk); GeoNameTag* tag = new GeoNameTag("Disk"); - GeoAlignableTransform* xform = new GeoAlignableTransform(HepGeom::Transform3D(CLHEP::HepRotation(), pos)); + GeoAlignableTransform* xform = new GeoAlignableTransform(pos); GeoVPhysVol * diskPhys = pd.Build(); ecPhys->add(tag); ecPhys->add(new GeoIdentifierTag(ii)); @@ -498,15 +495,15 @@ GeoVPhysVol* GeoPixelEndCap::Build( ) { // place the cables twice for the two active parts // double dz = pd.Thickness()/2. + m_gmt_mgr->PixelECCablesDistance() ; - pos = CLHEP::Hep3Vector(0.,0.,zdisk+dz); + pos = GeoTrf::Translate3D(0.,0.,zdisk+dz); tag = new GeoNameTag("ECCables"); - GeoTransform * xformCablesPlus = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), pos)); + GeoTransform * xformCablesPlus = new GeoTransform(pos); ecPhys->add(tag); ecPhys->add(xformCablesPlus); ecPhys->add(pecc.Build() ); - pos = CLHEP::Hep3Vector(0.,0.,zdisk-dz); + pos = GeoTrf::Translate3D(0.,0.,zdisk-dz); tag = new GeoNameTag("ECCables"); - GeoTransform * xformCablesMinus = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(), pos)); + GeoTransform * xformCablesMinus = new GeoTransform(pos); ecPhys->add(tag); ecPhys->add(xformCablesMinus); ecPhys->add(pecc.Build() ); @@ -523,8 +520,8 @@ GeoVPhysVol* GeoPixelEndCap::Build( ) { for(int ii =0; ii< ecsvc.NCylinders(); ii++) { ecsvc.SetCylinder(ii); GeoNameTag* tag = new GeoNameTag("Outside Endcap Service"); - CLHEP::Hep3Vector pos(0.,0.,ecsvc.ZPos() ); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),pos)); + GeoTrf::Translate3D pos(0.,0.,ecsvc.ZPos() ); + GeoTransform* xform = new GeoTransform(pos); ecPhys->add(tag); ecPhys->add(xform); ecPhys->add(ecsvc.Build() ); @@ -571,8 +568,8 @@ GeoVPhysVol* GeoPixelEnvelope::Build( ) { for(int ii =0; ii< brlsvc.NCylinders(); ii++) { brlsvc.SetCylinder(ii); GeoNameTag* tag = new GeoNameTag("Outside Barrel Service"); - CLHEP::Hep3Vector pos(0.,0.,brlsvc.ZPos() ); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),pos)); + GeoTrf::Translate3D pos(0.,0.,brlsvc.ZPos() ); + GeoTransform* xform = new GeoTransform(pos); envelopePhys->add(tag); envelopePhys->add(new GeoIdentifierTag(ii) ); envelopePhys->add(xform); @@ -588,18 +585,16 @@ GeoVPhysVol* GeoPixelEnvelope::Build( ) { m_gmt_mgr->SetPos(); GeoPixelEndCap pec; double zpos = (m_gmt_mgr->PixelEndcapZMax()+m_gmt_mgr->PixelEndcapZMin())/2.; - CLHEP::Hep3Vector pos(0.,0.,zpos); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),pos)); + GeoTrf::Translate3D pos(0.,0.,zpos); + GeoTransform* xform = new GeoTransform(pos); tag = new GeoNameTag("EndCap 1"); envelopePhys->add(tag); envelopePhys->add(new GeoIdentifierTag(2)); envelopePhys->add(xform); envelopePhys->add(pec.Build() ); m_gmt_mgr->SetNeg(); - pos = CLHEP::Hep3Vector(0.,0.,-zpos); - CLHEP::HepRotation rm; - rm.rotateX(180.*CLHEP::deg); - xform = new GeoTransform(HepGeom::Transform3D(rm,pos)); + GeoTrf::RotateX3D rm(180.*GeoModelKernelUnits::deg); + xform = new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translation3D(0.,0.,-zpos)*rm)); tag = new GeoNameTag("EndCap 2"); envelopePhys->add(tag); envelopePhys->add(new GeoIdentifierTag(-2)); @@ -613,8 +608,8 @@ GeoVPhysVol* GeoPixelEnvelope::Build( ) { for(int ii =0; ii< ecsvc.NCylinders(); ii++) { ecsvc.SetCylinder(ii); GeoNameTag* tag = new GeoNameTag("Outside Endcap Service"); - CLHEP::Hep3Vector pos(0.,0.,ecsvc.ZPos() ); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),pos)); + GeoTrf::Translate3D pos(0.,0.,ecsvc.ZPos() ); + GeoTransform* xform = new GeoTransform(pos); envelopePhys->add(tag); envelopePhys->add(xform); envelopePhys->add(new GeoIdentifierTag(ii) ); @@ -733,15 +728,14 @@ GeoVPhysVol* GeoPixelLadder::Build( ) { // Get the z position from the db // float zpos = m_gmt_mgr->PixelModulePosition(jj)*side; - CLHEP::Hep3Vector modulepos(xpos,0.,zpos); + GeoTrf::Translation3D modulepos(xpos,0.,zpos); // // // - CLHEP::HepRotation rm; // // again change sign w.r.t. g4 // - rm.rotateY(m_gmt_mgr->PixelModuleAngle()*m_gmt_mgr->PixelModuleAngleSign(ii) ); + GeoTrf::RotateY3D rm(m_gmt_mgr->PixelModuleAngle()*m_gmt_mgr->PixelModuleAngleSign(ii) ); // // Place the Module // @@ -750,11 +744,11 @@ GeoVPhysVol* GeoPixelLadder::Build( ) { GeoAlignableTransform* xform; // OLD EXAMPLE FOR ALIGNEMENT!! // if(m_gmt_mgr->IsAlign() ) { - // xform = new GeoSiAlTransform(HepGeom::Transform3D(rm,modulepos), pm.getID() ); + // xform = new GeoSiAlTransform(GeoTrf::Transform3D(rm,modulepos), pm.getID() ); // } else { - // xform = new GeoTransform(HepGeom::Transform3D(rm,modulepos)); + // xform = new GeoTransform(GeoTrf::Transform3D(rm,modulepos)); // } - xform = new GeoAlignableTransform(HepGeom::Transform3D(rm,modulepos)); + xform = new GeoAlignableTransform(GeoTrf::Transform3D(modulepos*rm)); ladderPhys->add(tag); ladderPhys->add(new GeoIdentifierTag(m_gmt_mgr->Eta() ) ); ladderPhys->add(xform); @@ -834,7 +828,7 @@ GeoVPhysVol* GeoPixelLayer::Build() { // // This is the maximum possible w/o going out of the mother volume! // - double LayerThickness = 8.499*CLHEP::mm; + double LayerThickness = 8.499*GeoModelKernelUnits::mm; const GeoMaterial* air = m_mat_mgr->getMaterial("std::Air"); // // Layer dimensions from the geometry manager @@ -855,14 +849,14 @@ GeoVPhysVol* GeoPixelLayer::Build() { GeoPixelLadder pl(theSensor); GeoPixelTubeCables ptc; int nsectors = m_gmt_mgr->NPixelSectors(); - double angle=360./nsectors*CLHEP::deg; + double angle=360./nsectors*GeoModelKernelUnits::deg; double layerradius = m_gmt_mgr->PixelLayerRadius(); double xcblpos = layerradius + (pl.Thickness()/2.+ptc.Thickness()/2)/cos(m_gmt_mgr->PixelLadderTilt()); - CLHEP::Hep3Vector posladder(layerradius, 0.,0.); - CLHEP::Hep3Vector postubecables(xcblpos, 0.,0.); - posladder.rotateZ(angle/2.); - postubecables.rotateZ(angle/2.); - + GeoTrf::Vector3D posladder(layerradius, 0.,0.); + posladder = GeoTrf::RotateZ3D(angle/2.)*posladder; + GeoTrf::Vector3D postubecables(xcblpos, 0.,0.); + postubecables = GeoTrf::RotateZ3D(angle/2.)*postubecables; + // Set numerology m_DDmgr->numerology().setNumPhiModulesForLayer(m_gmt_mgr->GetLD(),nsectors); m_DDmgr->numerology().setNumEtaModulesForLayer(m_gmt_mgr->GetLD(),m_gmt_mgr->PixelNModule()); @@ -872,33 +866,32 @@ GeoVPhysVol* GeoPixelLayer::Build() { // for(int ii = 0; ii < nsectors; ii++) { m_gmt_mgr->SetPhi(ii); - CLHEP::HepRotation rm; // // change the sign w.r.t G4 (same sign as G3) // - rm.rotateZ(( +(float) ii+0.5)*angle+m_gmt_mgr->PixelLadderTilt() ); + GeoTrf::RotateZ3D rm(( +(float) ii+0.5)*angle+m_gmt_mgr->PixelLadderTilt() ); // // Place the ladders // GeoNameTag *tag = new GeoNameTag("Ladder"); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(rm,posladder)); + GeoTransform* xform = new GeoTransform(GeoTrf::Translate3D(posladder.x(),posladder.y(),posladder.z())*rm); layerPhys->add(tag); layerPhys->add(new GeoIdentifierTag(ii) ); layerPhys->add(xform); GeoVPhysVol* ladderphys = pl.Build() ; layerPhys->add(ladderphys ); - posladder.rotateZ(angle); + posladder = GeoTrf::RotateZ3D(angle)*posladder; if(m_gmt_mgr->DoServices() ) { // // Place the box w/ the tubes and cables for the layer // tag = new GeoNameTag("TubesAndCables"); - xform = new GeoTransform(HepGeom::Transform3D(rm,postubecables)); + xform = new GeoTransform(GeoTrf::Translate3D(postubecables.x(),postubecables.y(),postubecables.z())*rm); layerPhys->add(tag); layerPhys->add(xform); GeoVPhysVol* TCphys = ptc.Build() ; layerPhys->add(TCphys ); - postubecables.rotateZ(angle); + postubecables = GeoTrf::RotateZ3D(angle)*postubecables; } } return layerPhys; @@ -941,7 +934,7 @@ GeoVPhysVol* GeoPixelModule::Build( ) { GeoVPhysVol *theSi = m_theSensor.Build(); m_id = m_theSensor.getID(); GeoNameTag *tag = new GeoNameTag("Si Crystal"); - GeoTransform *xformsi = new GeoTransform(HepGeom::Transform3D()); + GeoTransform *xformsi = new GeoTransform(GeoTrf::Transform3D::Identity()); modulePhys->add(tag); modulePhys->add(new GeoIdentifierTag(100) ); modulePhys->add(xformsi); @@ -951,8 +944,8 @@ GeoVPhysVol* GeoPixelModule::Build( ) { // GeoPixelHybrid ph; double xpos = -0.5*(m_gmt_mgr->PixelBoardThickness()+m_gmt_mgr->PixelHybridThickness()); - CLHEP::Hep3Vector hybpos(xpos,0.,0.); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D( CLHEP::HepRotation(),hybpos) ); + GeoTrf::Translate3D hybpos(xpos,0.,0.); + GeoTransform* xform = new GeoTransform(hybpos); tag = new GeoNameTag("Hybrid"); modulePhys->add(tag); modulePhys->add(xform); @@ -962,8 +955,8 @@ GeoVPhysVol* GeoPixelModule::Build( ) { // GeoPixelChip pc; xpos = 0.5*(m_gmt_mgr->PixelBoardThickness()+m_gmt_mgr->PixelChipThickness())+m_gmt_mgr->PixelChipGap(); - CLHEP::Hep3Vector chippos(xpos,0.,0.); - xform = new GeoTransform(HepGeom::Transform3D (CLHEP::HepRotation(),chippos) ); + GeoTrf::Translate3D chippos(xpos,0.,0.); + xform = new GeoTransform(chippos); tag = new GeoNameTag("Chip"); modulePhys->add(tag); modulePhys->add(xform); @@ -1350,7 +1343,7 @@ m_theSensor(theSensor) double rmax = RMax(); double halflength = Thickness()/2.; const GeoMaterial* air = m_mat_mgr->getMaterial("std::Air"); - const GeoTubs* SDTubs = new GeoTubs(rmin,rmax,halflength,-180.*CLHEP::deg/m_gmt_mgr->PixelECNSectors1()+0.000005,360.*CLHEP::deg/m_gmt_mgr->PixelECNSectors1()-0.00001); + const GeoTubs* SDTubs = new GeoTubs(rmin,rmax,halflength,-180.*GeoModelKernelUnits::deg/m_gmt_mgr->PixelECNSectors1()+0.000005,360.*GeoModelKernelUnits::deg/m_gmt_mgr->PixelECNSectors1()-0.00001); m_theSubDisk = new GeoLogVol("SubDiskLog",SDTubs,air); m_theSubDisk->ref(); } @@ -1366,11 +1359,9 @@ GeoVPhysVol* GeoPixelSubDisk::Build( ) { // double xpos = RMin()+m_gmt_mgr->PixelBoardLength()/2.; GeoNameTag* tag = new GeoNameTag("SiCrystal"); - CLHEP::HepRotation rm; - rm.rotateY(90.*CLHEP::deg); - rm.rotateX(180.*CLHEP::deg); - CLHEP::Hep3Vector pos(xpos,0.,0.); - GeoAlignableTransform* xformsi = new GeoAlignableTransform(HepGeom::Transform3D(rm,pos) ); + GeoTrf::Transform3D rm = GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90.*GeoModelKernelUnits::deg); + GeoTrf::Translation3D pos(xpos,0.,0.); + GeoAlignableTransform* xformsi = new GeoAlignableTransform(GeoTrf::Transform3D(pos*rm)); SDPhys->add(tag); SDPhys->add(new GeoIdentifierTag(200) ); SDPhys->add(xformsi); @@ -1381,8 +1372,8 @@ GeoVPhysVol* GeoPixelSubDisk::Build( ) { GeoPixelHybrid ph; tag = new GeoNameTag("Hybrid"); double zpos = 0.5*(m_gmt_mgr->PixelBoardThickness()+m_gmt_mgr->PixelHybridThickness())+m_epsilon/2.; - pos = CLHEP::Hep3Vector(xpos,0.,zpos); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(rm,pos) ); + pos = GeoTrf::Translation3D(xpos,0.,zpos); + GeoTransform* xform = new GeoTransform(GeoTrf::Transform3D(pos*rm) ); SDPhys->add(tag); SDPhys->add(xform); SDPhys->add(ph.Build() ); @@ -1392,8 +1383,8 @@ GeoVPhysVol* GeoPixelSubDisk::Build( ) { GeoPixelChip pc; tag = new GeoNameTag("Chip"); zpos = -0.5*(m_gmt_mgr->PixelBoardThickness()+m_gmt_mgr->PixelChipThickness())-m_gmt_mgr->PixelChipGap(); - pos = CLHEP::Hep3Vector(xpos,0.,zpos); - xform = new GeoTransform(HepGeom::Transform3D(rm,pos) ); + pos = GeoTrf::Translation3D(xpos,0.,zpos); + xform = new GeoTransform(GeoTrf::Transform3D(pos*rm) ); SDPhys->add(tag); SDPhys->add(xform); SDPhys->add(pc.Build() ); @@ -1464,8 +1455,8 @@ GeoVPhysVol* GeoPixelTubeCables::Build( ) { GeoNameTag* tag = new GeoNameTag("LadderStructure"); GeoVPhysVol* ladderstructPhys = pls.Build() ; double xpos = 0.5*(-this->Thickness()+m_gmt_mgr->PixelLadderThickness()); - CLHEP::Hep3Vector pos(xpos,0.,0.); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),pos)); + GeoTrf::Translate3D pos(xpos,0.,0.); + GeoTransform* xform = new GeoTransform(pos); TCPhys->add(tag); TCPhys->add(xform); TCPhys->add(ladderstructPhys); @@ -1492,8 +1483,8 @@ GeoVPhysVol* GeoPixelTubeCables::Build( ) { // in the same way. // xcabshift += pc.Thickness()/2.; - CLHEP::Hep3Vector cablepos(xcabpos,0.,zcabpos); - GeoTransform* xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),cablepos)); + GeoTrf::Translate3D cablepos(xcabpos,0.,zcabpos); + GeoTransform* xform = new GeoTransform(cablepos); GeoNameTag *tag = new GeoNameTag("Cable"); // // Left side @@ -1507,8 +1498,8 @@ GeoVPhysVol* GeoPixelTubeCables::Build( ) { // Right side // GeoVPhysVol *cablePhys2 = pc.Build(); - cablepos = CLHEP::Hep3Vector(xcabpos,0.,-zcabpos); - xform = new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotation(),cablepos)); + cablepos = GeoTrf::Translate3D(xcabpos,0.,-zcabpos); + xform = new GeoTransform(cablepos); TCPhys->add(tag); TCPhys->add(xform); // TCPhys->add(new GeoIdentifierTag(ii+100) ); @@ -1772,29 +1763,29 @@ double OraclePixGeoManager::CalculateThickness(double tck,string mat) { ///////////////////////////////////////////////////////// double OraclePixGeoManager::PixelBoardWidth() { - if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("BOARDWIDTH")*CLHEP::cm; - if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("BOARDWIDTH")*CLHEP::cm; + if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("BOARDWIDTH")*GeoModelKernelUnits::cm; + if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("BOARDWIDTH")*GeoModelKernelUnits::cm; return 0.; } double OraclePixGeoManager::PixelBoardLength() { - if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("BOARDLENGTH")*CLHEP::cm; - if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("BOARDLENGTH")*CLHEP::cm; + if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("BOARDLENGTH")*GeoModelKernelUnits::cm; + if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("BOARDLENGTH")*GeoModelKernelUnits::cm; return 0.; } double OraclePixGeoManager::PixelBoardThickness() { if (m_dc1Geometry && isBarrel() && (m_currentLD == 0)) { - return 200*CLHEP::micrometer; + return 200*GeoModelKernelUnits::micrometer; } - if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("BOARDTHICK")*CLHEP::cm; - if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("BOARDTHICK")*CLHEP::cm; + if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("BOARDTHICK")*GeoModelKernelUnits::cm; + if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("BOARDTHICK")*GeoModelKernelUnits::cm; return 0.; } double OraclePixGeoManager::PixelBoardActiveLen() { - if(isEndcap()) return (*m_pxei)[m_currentLD]->getDouble("DRACTIVE")*CLHEP::cm; - if(isBarrel()) return (*m_pxbi)[m_currentLD]->getDouble("DZELEB")*CLHEP::cm; + if(isEndcap()) return (*m_pxei)[m_currentLD]->getDouble("DRACTIVE")*GeoModelKernelUnits::cm; + if(isBarrel()) return (*m_pxbi)[m_currentLD]->getDouble("DZELEB")*GeoModelKernelUnits::cm; return 0.; } ///////////////////////////////////////////////////////// @@ -1804,14 +1795,14 @@ double OraclePixGeoManager::PixelBoardActiveLen() ///////////////////////////////////////////////////////// double OraclePixGeoManager::PixelHybridWidth() { - if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("HYBRIDWIDTH")*CLHEP::cm; - if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("HYBRIDWIDTH")*CLHEP::cm; + if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("HYBRIDWIDTH")*GeoModelKernelUnits::cm; + if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("HYBRIDWIDTH")*GeoModelKernelUnits::cm; return 0.; } double OraclePixGeoManager::PixelHybridLength() { - if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("HYBRIDLENGTH")*CLHEP::cm; - if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("HYBRIDLENGTH")*CLHEP::cm; + if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("HYBRIDLENGTH")*GeoModelKernelUnits::cm; + if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("HYBRIDLENGTH")*GeoModelKernelUnits::cm; return 0.; } double OraclePixGeoManager::PixelHybridThickness() @@ -1829,7 +1820,7 @@ double OraclePixGeoManager::PixelHybridThickness() } // if it is negative is given in % of r.l. if(thick > 0.) { - return thick*CLHEP::cm; + return thick*GeoModelKernelUnits::cm; } return CalculateThickness(thick,mat); @@ -1842,20 +1833,20 @@ double OraclePixGeoManager::PixelHybridThickness() double OraclePixGeoManager::PixelChipWidth() { - if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("CHIPWIDTH")*CLHEP::cm; - if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("CHIPWIDTH")*CLHEP::cm; + if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("CHIPWIDTH")*GeoModelKernelUnits::cm; + if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("CHIPWIDTH")*GeoModelKernelUnits::cm; return 0.; } double OraclePixGeoManager::PixelChipLength() { - if(isBarrel())return (*m_PixelModule)[m_currentLD]->getDouble("CHIPLENGTH")*CLHEP::cm; - if(isEndcap())return (*m_PixelModule)[m_currentLD+3]->getDouble("CHIPLENGTH")*CLHEP::cm; + if(isBarrel())return (*m_PixelModule)[m_currentLD]->getDouble("CHIPLENGTH")*GeoModelKernelUnits::cm; + if(isEndcap())return (*m_PixelModule)[m_currentLD+3]->getDouble("CHIPLENGTH")*GeoModelKernelUnits::cm; return 0.; } double OraclePixGeoManager::PixelChipGap() { - if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("CHIPGAP")*CLHEP::cm; - if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("CHIPGAP")*CLHEP::cm; + if(isBarrel()) return (*m_PixelModule)[m_currentLD]->getDouble("CHIPGAP")*GeoModelKernelUnits::cm; + if(isEndcap()) return (*m_PixelModule)[m_currentLD+3]->getDouble("CHIPGAP")*GeoModelKernelUnits::cm; return 0.; } double OraclePixGeoManager::PixelChipThickness() { @@ -1871,7 +1862,7 @@ double OraclePixGeoManager::PixelChipThickness() { } // if it is negative is given in % of r.l. if(thick > 0.) { - return thick*CLHEP::cm; + return thick*GeoModelKernelUnits::cm; } return CalculateThickness(thick,mat); @@ -1884,20 +1875,20 @@ double OraclePixGeoManager::PixelChipThickness() { ///////////////////////////////////////////////////////// double OraclePixGeoManager::PixelECCarbonRMin(string a) { if(a == "Inner") { - return (*m_PixelDisk)[m_currentLD]->getDouble("SUP1RMIN")*CLHEP::cm; + return (*m_PixelDisk)[m_currentLD]->getDouble("SUP1RMIN")*GeoModelKernelUnits::cm; } else if (a == "Central") { - return (*m_PixelDisk)[m_currentLD]->getDouble("SUP2RMIN")*CLHEP::cm; + return (*m_PixelDisk)[m_currentLD]->getDouble("SUP2RMIN")*GeoModelKernelUnits::cm; } - return (*m_PixelDisk)[m_currentLD]->getDouble("SUP3RMIN")*CLHEP::cm; + return (*m_PixelDisk)[m_currentLD]->getDouble("SUP3RMIN")*GeoModelKernelUnits::cm; } double OraclePixGeoManager::PixelECCarbonRMax(string a) { if(a == "Inner") { - return (*m_PixelDisk)[m_currentLD]->getDouble("SUP1RMAX")*CLHEP::cm; + return (*m_PixelDisk)[m_currentLD]->getDouble("SUP1RMAX")*GeoModelKernelUnits::cm; } else if (a == "Central") { - return (*m_PixelDisk)[m_currentLD]->getDouble("SUP2RMAX")*CLHEP::cm; + return (*m_PixelDisk)[m_currentLD]->getDouble("SUP2RMAX")*GeoModelKernelUnits::cm; } else { - return (*m_PixelDisk)[m_currentLD]->getDouble("SUP3RMAX")*CLHEP::cm; + return (*m_PixelDisk)[m_currentLD]->getDouble("SUP3RMAX")*GeoModelKernelUnits::cm; } } @@ -1916,7 +1907,7 @@ double OraclePixGeoManager::PixelECCarbonThickness(string a) { imat =(*m_PixelDisk)[m_currentLD]->getInt("SUP3MAT")-1; } if(tck>0.) { - return tck*CLHEP::cm; + return tck*GeoModelKernelUnits::cm; } return CalculateThickness(tck,mat[imat]); } @@ -1988,12 +1979,12 @@ double* OraclePixGeoManager::PixelServiceR(string a, int n) { } } // If this is negative this is the thickness of the cyl in % of r.l. - r[0] = rmin*CLHEP::cm; + r[0] = rmin*GeoModelKernelUnits::cm; if(rmax > 0) { - r[1] = rmax*CLHEP::cm; + r[1] = rmax*GeoModelKernelUnits::cm; } else { string material = PixelServiceMaterial(a,n); - r[1] = fabs(rmin*CLHEP::cm)+CalculateThickness(rmax,material); + r[1] = fabs(rmin*GeoModelKernelUnits::cm)+CalculateThickness(rmax,material); } return r; } @@ -2021,15 +2012,15 @@ double* OraclePixGeoManager::PixelServiceZ(string a,int n) { z[1] = (*m_PixelEndcapService)[n+m_endcapInFrames]->getDouble("ZOUT"); } } - z[0] = z[0] *CLHEP::cm; + z[0] = z[0] *GeoModelKernelUnits::cm; if(z[0]*(z[1]) > -0.000000001) { // same sign and z[0] > 0. - z[1] = z[1] *CLHEP::cm; + z[1] = z[1] *GeoModelKernelUnits::cm; } else { string material = PixelServiceMaterial(a,n); z[1] = z[0] * (1 + CalculateThickness(z[1],material)/fabs(z[0])); } if(isEndcap() && a == "Inside" ) { // Translate to the ecnter of EndCap - double center = ((*m_PixelEndcapGeneral)[0]->getDouble("ZMAX")+(*m_PixelEndcapGeneral)[0]->getDouble("ZMIN"))/2.*CLHEP::cm; + double center = ((*m_PixelEndcapGeneral)[0]->getDouble("ZMAX")+(*m_PixelEndcapGeneral)[0]->getDouble("ZMIN"))/2.*GeoModelKernelUnits::cm; z[0] = z[0]-center; z[1] = z[1]-center; } @@ -2157,7 +2148,7 @@ double OraclePixGeoManager::PixelLadderThickness() { double tck = (*m_PixelStave)[0]->getDouble("SUPPORTTHICK"); if( tck > 0.) { - return tck*CLHEP::cm; + return tck*GeoModelKernelUnits::cm; } else { return CalculateThickness(tck,"pix::Ladder"); } @@ -2167,7 +2158,7 @@ double OraclePixGeoManager::PixelECCablesThickness() { double tck = (*m_PixelDisk)[m_currentLD]->getDouble("CABLETHICK"); if( tck > 0.) { - return tck*CLHEP::cm; + return tck*GeoModelKernelUnits::cm; } else { return CalculateThickness(tck,"pix::ECCables"); } @@ -2228,31 +2219,31 @@ double OraclePixGeoManager::Voltage(bool isBLayer){ // override B-layer voltage for DC1 geometry by // value in old DB (approx ratio of thicknesses (200/250 = 0.8) // 97.1*0.8 = 77.68. In Nova its 77.7. - if (isBLayer && m_dc1Geometry) return 77.7*CLHEP::volt; - if(isBLayer) { return (*m_plor)[0]->getDouble("VOLTAGE")*CLHEP::volt;} - return (*m_plor)[1]->getDouble("VOLTAGE")*CLHEP::volt; + if (isBLayer && m_dc1Geometry) return 77.7*GeoModelKernelUnits::volt; + if(isBLayer) { return (*m_plor)[0]->getDouble("VOLTAGE")*GeoModelKernelUnits::volt;} + return (*m_plor)[1]->getDouble("VOLTAGE")*GeoModelKernelUnits::volt; } double OraclePixGeoManager::Temperature(bool isBLayer){ - if(isBLayer) { return (*m_plor)[0]->getDouble("TEMPC")*CLHEP::kelvin+CLHEP::STP_Temperature;} - return (*m_plor)[1]->getDouble("TEMPC")*CLHEP::kelvin+CLHEP::STP_Temperature; + if(isBLayer) { return (*m_plor)[0]->getDouble("TEMPC")*GeoModelKernelUnits::kelvin+GeoModelKernelUnits::STP_Temperature;} + return (*m_plor)[1]->getDouble("TEMPC")*GeoModelKernelUnits::kelvin+GeoModelKernelUnits::STP_Temperature; } -const HepGeom::Vector3D<double> & +const GeoTrf::Vector3D & OraclePixGeoManager::magneticField(bool isBLayer) const { if (m_magFieldFromNova) { if(isBLayer) { - m_magField = HepGeom::Vector3D<double>(0, 0, (*m_plrn)[0]->getDouble("BFIELD") * CLHEP::tesla); + m_magField = GeoTrf::Vector3D(0, 0, (*m_plrn)[0]->getDouble("BFIELD") * GeoModelKernelUnits::tesla); } else { - m_magField = HepGeom::Vector3D<double>(0, 0, (*m_plrn)[1]->getDouble("BFIELD") * CLHEP::tesla); + m_magField = GeoTrf::Vector3D(0, 0, (*m_plrn)[1]->getDouble("BFIELD") * GeoModelKernelUnits::tesla); } } return m_magField; } void -OraclePixGeoManager::setMagneticField(const HepGeom::Vector3D<double> & field) +OraclePixGeoManager::setMagneticField(const GeoTrf::Vector3D & field) { m_magField = field; m_magFieldFromNova = false; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelDetectorDC1DC2.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.h similarity index 88% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelDetectorDC1DC2.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.h index e24294946713eaeb3f53a6204a9ad3490b483fdb..4a59f7251044a91b4588141f23ef9e6390ba00e7 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelDetectorDC1DC2.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorDC1DC2.h @@ -5,8 +5,9 @@ #include "Identifier/Identifier.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Vector3D.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "RDBAccessSvc/IRDBRecord.h" //IRDBRecord used in code in the header #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBAccessSvc.h" //for IRDBRecordset_ptr typedef @@ -94,7 +95,7 @@ class GeoPixelCable : public GeoVPixelFactory { #ifndef GEOPIXELCHIP_H #define GEOPIXELCHIP_H -//#include "PixelGeoModel/GeoVPixelFactory.h" +//#include "GeoVPixelFactory.h" class GeoPixelChip : public GeoVPixelFactory { public: @@ -565,8 +566,8 @@ class PixelGeometryManager { virtual double Temperature(bool isBLayer)=0; // Magnetic field - virtual const HepGeom::Vector3D<double> & magneticField(bool isBLayer = false) const=0; - virtual void setMagneticField(const HepGeom::Vector3D<double> & field)=0; + virtual const GeoTrf::Vector3D & magneticField(bool isBLayer = false) const=0; + virtual void setMagneticField(const GeoTrf::Vector3D & field)=0; virtual bool useMagneticFieldSvc() const=0; virtual void setUseMagneticFieldSvc(bool flag)=0; @@ -656,7 +657,7 @@ class OraclePixGeoManager : public PixelGeometryManager { // Magnetic Field bool m_magFieldFromNova; bool m_useMagFieldSvc; - mutable HepGeom::Vector3D<double> m_magField; + mutable GeoTrf::Vector3D m_magField; // Class holding items that only one instance is needed for all detector elements. InDetDD::SiCommonItems * m_commonItems; @@ -904,8 +905,8 @@ class OraclePixGeoManager : public PixelGeometryManager { double Temperature(bool isBLayer); // Magnetic field - const HepGeom::Vector3D<double> & magneticField(bool isBLayer = false) const; - void setMagneticField(const HepGeom::Vector3D<double> & field); + const GeoTrf::Vector3D& magneticField(bool isBLayer = false) const; + void setMagneticField(const GeoTrf::Vector3D& field); bool useMagneticFieldSvc() const; void setUseMagneticFieldSvc(bool flag); @@ -925,16 +926,16 @@ class OraclePixGeoManager : public PixelGeometryManager { // ATLS double OraclePixGeoManager::GetATLSRadius() { - return (*m_atls)[0]->getDouble("RMAX")*CLHEP::cm; + return (*m_atls)[0]->getDouble("RMAX")*GeoModelKernelUnits::cm; } double OraclePixGeoManager::GetATLSRmin() { - return (*m_atls)[0]->getDouble("RMIN")*CLHEP::cm; + return (*m_atls)[0]->getDouble("RMIN")*GeoModelKernelUnits::cm; } double OraclePixGeoManager::GetATLSLength() { - return (*m_atls)[0]->getDouble("ZMAX")*CLHEP::cm; + return (*m_atls)[0]->getDouble("ZMAX")*GeoModelKernelUnits::cm; } // @@ -950,35 +951,35 @@ int OraclePixGeoManager::PixelEndcapMinorVersion() { return static_cast<int>(((*m_PixelEndcapGeneral)[0]->getDouble("VERSION") - PixelEndcapMajorVersion())*10 + 0.5);} // PXBG -double OraclePixGeoManager::PixelRMin() {return (*m_PixelCommon)[0]->getDouble("RMIN")*CLHEP::cm;} -double OraclePixGeoManager::PixelRMax() {return (*m_PixelCommon)[0]->getDouble("RMAX")*CLHEP::cm;} -double OraclePixGeoManager::PixelHalfLength() {return (*m_PixelCommon)[0]->getDouble("HALFLENGTH")*CLHEP::cm;} +double OraclePixGeoManager::PixelRMin() {return (*m_PixelCommon)[0]->getDouble("RMIN")*GeoModelKernelUnits::cm;} +double OraclePixGeoManager::PixelRMax() {return (*m_PixelCommon)[0]->getDouble("RMAX")*GeoModelKernelUnits::cm;} +double OraclePixGeoManager::PixelHalfLength() {return (*m_PixelCommon)[0]->getDouble("HALFLENGTH")*GeoModelKernelUnits::cm;} int OraclePixGeoManager::PixelBarrelNLayer() {return (*m_PixelBarrelGeneral)[0]->getInt("NLAYER");} // m_PixelBarrelGeneral -double OraclePixGeoManager::PixelBarrelRMin() {return (*m_PixelBarrelGeneral)[0]->getDouble("RMIN")*CLHEP::cm;} -double OraclePixGeoManager::PixelBarrelRMax() {return (*m_PixelBarrelGeneral)[0]->getDouble("RMAX")*CLHEP::cm;} -double OraclePixGeoManager::PixelBarrelHalfLength() {return (*m_PixelBarrelGeneral)[0]->getDouble("HALFLENGTH")*CLHEP::cm;} +double OraclePixGeoManager::PixelBarrelRMin() {return (*m_PixelBarrelGeneral)[0]->getDouble("RMIN")*GeoModelKernelUnits::cm;} +double OraclePixGeoManager::PixelBarrelRMax() {return (*m_PixelBarrelGeneral)[0]->getDouble("RMAX")*GeoModelKernelUnits::cm;} +double OraclePixGeoManager::PixelBarrelHalfLength() {return (*m_PixelBarrelGeneral)[0]->getDouble("HALFLENGTH")*GeoModelKernelUnits::cm;} // PXBI double OraclePixGeoManager::PixelLayerRadius() { - return (*m_PixelLayer)[m_currentLD]->getDouble("RLAYER")*CLHEP::cm; + return (*m_PixelLayer)[m_currentLD]->getDouble("RLAYER")*GeoModelKernelUnits::cm; } double OraclePixGeoManager::PixelLadderHalfLength() { - return (*m_PixelStave)[0]->getDouble("SUPPORTHLENGTH")*CLHEP::cm; + return (*m_PixelStave)[0]->getDouble("SUPPORTHLENGTH")*GeoModelKernelUnits::cm; } double OraclePixGeoManager::PixelLadderWidth() { - return (*m_PixelStave)[0]->getDouble("SUPPORTWIDTH")*CLHEP::cm; + return (*m_PixelStave)[0]->getDouble("SUPPORTWIDTH")*GeoModelKernelUnits::cm; } double OraclePixGeoManager::PixelLadderTilt() { - return (*m_PixelLayer)[m_currentLD]->getDouble("STAVETILT")*CLHEP::deg; + return (*m_PixelLayer)[m_currentLD]->getDouble("STAVETILT")*GeoModelKernelUnits::deg; } int OraclePixGeoManager::NPixelSectors() { @@ -987,7 +988,7 @@ int OraclePixGeoManager::NPixelSectors() double OraclePixGeoManager::PixelBalcony() { - return (*m_pxbi)[m_currentLD]->getDouble("DXELEB")*CLHEP::cm; + return (*m_pxbi)[m_currentLD]->getDouble("DXELEB")*GeoModelKernelUnits::cm; } int OraclePixGeoManager::PixelNModule() @@ -997,17 +998,17 @@ int OraclePixGeoManager::PixelNModule() double OraclePixGeoManager::PixelModuleAngle() { - return (*m_PixelStave)[0]->getDouble("MODULETILT")*CLHEP::deg; + return (*m_PixelStave)[0]->getDouble("MODULETILT")*GeoModelKernelUnits::deg; } double OraclePixGeoManager::PixelModuleDrDistance() { - return (*m_PixelStave)[0]->getDouble("CENTRMODULESHIFT")*CLHEP::cm; + return (*m_PixelStave)[0]->getDouble("CENTRMODULESHIFT")*GeoModelKernelUnits::cm; } double OraclePixGeoManager::PixelModulePosition(int im) { - return (*m_PixelStave)[0]->getDouble("MODULEDZ")*CLHEP::cm*im; + return (*m_PixelStave)[0]->getDouble("MODULEDZ")*GeoModelKernelUnits::cm*im; } // OBSOLETE!!! TO MOVE INTO THE NEW FACTORY @@ -1028,23 +1029,23 @@ double OraclePixGeoManager::PixelModuleAngleSign(int im) // PBAC double OraclePixGeoManager::PixelCableWidth() { - return (*m_PixelStave)[0]->getDouble("CABLEWIDTH")*CLHEP::cm; + return (*m_PixelStave)[0]->getDouble("CABLEWIDTH")*GeoModelKernelUnits::cm; } double OraclePixGeoManager::PixelCableThickness() { - return (*m_PixelStave)[0]->getDouble("CABLETHICK")*CLHEP::cm; + return (*m_PixelStave)[0]->getDouble("CABLETHICK")*GeoModelKernelUnits::cm; } double OraclePixGeoManager::PixelCableZMax() { - return (*m_PixelStave)[0]->getDouble("SUPPORTHLENGTH")*CLHEP::cm; + return (*m_PixelStave)[0]->getDouble("SUPPORTHLENGTH")*GeoModelKernelUnits::cm; } double OraclePixGeoManager::PixelCableZMin() { - return (*m_PixelStave)[0]->getDouble("CABLEZMIN")*CLHEP::cm; + return (*m_PixelStave)[0]->getDouble("CABLEZMIN")*GeoModelKernelUnits::cm; } double OraclePixGeoManager::PixelCableDeltaZ() { - return (*m_PixelStave)[0]->getDouble("MODULEDZ")*CLHEP::cm; + return (*m_PixelStave)[0]->getDouble("MODULEDZ")*GeoModelKernelUnits::cm; } @@ -1052,24 +1053,24 @@ double OraclePixGeoManager::PixelCableDeltaZ() { int OraclePixGeoManager::PixelEndcapNDisk() {return (*m_PixelEndcapGeneral)[0]->getInt("NDISK");} // Endcap container PEVO -double OraclePixGeoManager::PixelEndcapRMin() {return (*m_PixelEndcapGeneral)[0]->getDouble("RMIN")*CLHEP::cm;} +double OraclePixGeoManager::PixelEndcapRMin() {return (*m_PixelEndcapGeneral)[0]->getDouble("RMIN")*GeoModelKernelUnits::cm;} -double OraclePixGeoManager::PixelEndcapRMax() {return (*m_PixelEndcapGeneral)[0]->getDouble("RMAX")*CLHEP::cm;} +double OraclePixGeoManager::PixelEndcapRMax() {return (*m_PixelEndcapGeneral)[0]->getDouble("RMAX")*GeoModelKernelUnits::cm;} -double OraclePixGeoManager::PixelEndcapZMin() {return (*m_PixelEndcapGeneral)[0]->getDouble("ZMIN")*CLHEP::cm;} +double OraclePixGeoManager::PixelEndcapZMin() {return (*m_PixelEndcapGeneral)[0]->getDouble("ZMIN")*GeoModelKernelUnits::cm;} -double OraclePixGeoManager::PixelEndcapZMax() {return (*m_PixelEndcapGeneral)[0]->getDouble("ZMAX")*CLHEP::cm;} +double OraclePixGeoManager::PixelEndcapZMax() {return (*m_PixelEndcapGeneral)[0]->getDouble("ZMAX")*GeoModelKernelUnits::cm;} int OraclePixGeoManager::PixelEndcapNSupportFrames() {return (int) (*m_PixelEndcapGeneral)[0]->getDouble("NFRAME");} // Endcap Inner (PXEI) -double OraclePixGeoManager::PixelDiskPosition() {return (*m_PixelDisk)[m_currentLD]->getDouble("ZDISK")*CLHEP::cm;} +double OraclePixGeoManager::PixelDiskPosition() {return (*m_PixelDisk)[m_currentLD]->getDouble("ZDISK")*GeoModelKernelUnits::cm;} -double OraclePixGeoManager::PixelDiskRMin() {return (*m_PixelDisk)[m_currentLD]->getDouble("RIDISK")*CLHEP::cm;} +double OraclePixGeoManager::PixelDiskRMin() {return (*m_PixelDisk)[m_currentLD]->getDouble("RIDISK")*GeoModelKernelUnits::cm;} -double OraclePixGeoManager::PixelECSiDz1() {return (*m_PixelDisk)[m_currentLD]->getDouble("DZCOUNTER")*CLHEP::cm;} +double OraclePixGeoManager::PixelECSiDz1() {return (*m_PixelDisk)[m_currentLD]->getDouble("DZCOUNTER")*GeoModelKernelUnits::cm;} -double OraclePixGeoManager::PixelECSiDz2() {return (*m_PixelDisk)[m_currentLD]->getDouble("DZCOUNTER")*CLHEP::cm;} +double OraclePixGeoManager::PixelECSiDz2() {return (*m_PixelDisk)[m_currentLD]->getDouble("DZCOUNTER")*GeoModelKernelUnits::cm;} int OraclePixGeoManager::PixelECNSectors1() {return (*m_PixelDisk)[m_currentLD]->getInt("NMODULE");} @@ -1077,53 +1078,53 @@ int OraclePixGeoManager::PixelECNSectors2() {return (*m_PixelDisk)[m_currentLD]- // Endcap Cables PEAC double OraclePixGeoManager::PixelECCablesRMin() { - return (*m_PixelDisk)[m_currentLD]->getDouble("RMINCABLE")*CLHEP::cm; + return (*m_PixelDisk)[m_currentLD]->getDouble("RMINCABLE")*GeoModelKernelUnits::cm; } double OraclePixGeoManager::PixelECCablesRMax() { - return (*m_PixelDisk)[m_currentLD]->getDouble("RMAXCABLE")*CLHEP::cm; + return (*m_PixelDisk)[m_currentLD]->getDouble("RMAXCABLE")*GeoModelKernelUnits::cm; } double OraclePixGeoManager::PixelECCablesDistance() { - return (*m_PixelDisk)[m_currentLD]->getDouble("ZCABLE")*CLHEP::cm; + return (*m_PixelDisk)[m_currentLD]->getDouble("ZCABLE")*GeoModelKernelUnits::cm; } // // Design // double OraclePixGeoManager::DesignRPActiveArea(){ - return (*m_pxbi)[0]->getDouble("DYACTIVE")*CLHEP::cm; + return (*m_pxbi)[0]->getDouble("DYACTIVE")*GeoModelKernelUnits::cm; } double OraclePixGeoManager::DesignZActiveArea(){ - return (*m_pxbi)[0]->getDouble("DZELEB")*CLHEP::cm; + return (*m_pxbi)[0]->getDouble("DZELEB")*GeoModelKernelUnits::cm; } double OraclePixGeoManager::DesignPitchRP(bool isBLayer) { - if(isBLayer) return (*m_pxbd)[0]->getDouble("PITCHRP")*CLHEP::cm; - else return (*m_pxbd)[1]->getDouble("PITCHRP")*CLHEP::cm; + if(isBLayer) return (*m_pxbd)[0]->getDouble("PITCHRP")*GeoModelKernelUnits::cm; + else return (*m_pxbd)[1]->getDouble("PITCHRP")*GeoModelKernelUnits::cm; } double OraclePixGeoManager::DesignPitchZ(bool isBLayer) { double pitchZ; if(isBLayer) { if (m_dc1Geometry) { // Override NOVA - pitchZ = 300 * CLHEP::micrometer; + pitchZ = 300 * GeoModelKernelUnits::micrometer; } else { - pitchZ = (*m_pxbd)[0]->getDouble("PITCHZ") * CLHEP::cm; + pitchZ = (*m_pxbd)[0]->getDouble("PITCHZ") * GeoModelKernelUnits::cm; } } else { - pitchZ = (*m_pxbd)[1]->getDouble("PITCHZ") * CLHEP::cm; + pitchZ = (*m_pxbd)[1]->getDouble("PITCHZ") * GeoModelKernelUnits::cm; } return pitchZ; } double OraclePixGeoManager::DesignGapRP() { - return (*m_pdch)[0]->getDouble("GAPRP")*CLHEP::cm; + return (*m_pdch)[0]->getDouble("GAPRP")*GeoModelKernelUnits::cm; } double OraclePixGeoManager::DesignGapZ() { - return (*m_pdch)[0]->getDouble("GAPZ")*CLHEP::cm; + return (*m_pdch)[0]->getDouble("GAPZ")*GeoModelKernelUnits::cm; } diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactory.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactory.cxx index 6a640ecb7ad8a58eccabd8bb05fe8ac402c7af7f..160edfb488baf2c572c8e31e2f65ada8d103469c 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactory.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactory.cxx @@ -2,12 +2,12 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/PixelDetectorFactory.h" +#include "PixelDetectorFactory.h" #include "StoreGate/StoreGateSvc.h" -#include "PixelGeoModel/PixelSwitches.h" +#include "PixelSwitches.h" // Envelope, as a starting point of the geometry -#include "PixelGeoModel/GeoPixelEnvelope.h" +#include "GeoPixelEnvelope.h" // GeoModel includes #include "GeoModelKernel/GeoNameTag.h" @@ -20,8 +20,8 @@ #include "InDetReadoutGeometry/PixelModuleDesign.h" #include "InDetReadoutGeometry/PixelDetectorManager.h" -#include "PixelGeoModel/OraclePixGeoManager.h" -#include "PixelGeoModel/PixelGeoModelAthenaComps.h" +#include "OraclePixGeoManager.h" +#include "PixelGeoModelAthenaComps.h" #include "InDetIdentifier/PixelID.h" @@ -120,12 +120,12 @@ void PixelDetectorFactory::create(GeoPhysVol *world) m_geometryManager->SetCurrentLD(0); m_geometryManager->SetBarrel(); if(msgLvl(MSG::DEBUG)) { - msg(MSG::DEBUG) << " B-Layer basic eta pitch: " << m_geometryManager->DesignPitchZ()/CLHEP::micrometer << "um" << endmsg; - msg(MSG::DEBUG) << " B-Layer sensor thickness: " << m_geometryManager->PixelBoardThickness()/CLHEP::micrometer << "um" << endmsg; + msg(MSG::DEBUG) << " B-Layer basic eta pitch: " << m_geometryManager->DesignPitchZ()/GeoModelKernelUnits::micrometer << "um" << endmsg; + msg(MSG::DEBUG) << " B-Layer sensor thickness: " << m_geometryManager->PixelBoardThickness()/GeoModelKernelUnits::micrometer << "um" << endmsg; } // Top level transform - HepGeom::Transform3D topTransform = m_geometryManager->partTransform("Pixel"); + GeoTrf::Transform3D topTransform = m_geometryManager->partTransform("Pixel"); // diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelDetectorFactory.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactory.h similarity index 100% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelDetectorFactory.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactory.h diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactoryDC2.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactoryDC2.cxx index 28ffa3153b1b7244bedb0bd1a4f5929c37645c08..9731105c0ecbb1a6114f36d0c7daf70b113d9b1a 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactoryDC2.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactoryDC2.cxx @@ -3,12 +3,12 @@ */ -#include "PixelGeoModel/PixelDetectorFactoryDC2.h" +#include "PixelDetectorFactoryDC2.h" // Envelope, as a starting point of the geometry -//#include "PixelGeoModel/GeoPixelEnvelope.h" -#include "PixelGeoModel/PixelDetectorDC1DC2.h" -#include "PixelGeoModel/PixelSwitches.h" +//#include "GeoPixelEnvelope.h" +#include "PixelDetectorDC1DC2.h" +#include "PixelSwitches.h" // GeoModel includes #include "GeoModelKernel/GeoNameTag.h" @@ -20,7 +20,7 @@ #include "InDetReadoutGeometry/InDetDD_Defs.h" #include "InDetReadoutGeometry/PixelModuleDesign.h" -#include "PixelGeoModel/PixelGeoModelAthenaComps.h" +#include "PixelGeoModelAthenaComps.h" #include "InDetIdentifier/PixelID.h" @@ -125,18 +125,18 @@ void PixelDetectorFactoryDC2::create(GeoPhysVol *world) msg(MSG::INFO) << " " << m_detectorManager->getVersion().fullDescription() << endmsg; // Printout the parameters that are different in DC1 and DC2. - msg(MSG::INFO) << " B-Layer basic eta pitch: " << geometryManager->DesignPitchZ(true)/CLHEP::micrometer << "um" << endmsg; + msg(MSG::INFO) << " B-Layer basic eta pitch: " << geometryManager->DesignPitchZ(true)/GeoModelKernelUnits::micrometer << "um" << endmsg; } geometryManager->SetCurrentLD(0); geometryManager->SetBarrel(); if(msgLvl(MSG::INFO)) - msg(MSG::INFO) << " B-Layer sensor thickness: " << geometryManager->PixelBoardThickness()/CLHEP::micrometer << "um" << endmsg; + msg(MSG::INFO) << " B-Layer sensor thickness: " << geometryManager->PixelBoardThickness()/GeoModelKernelUnits::micrometer << "um" << endmsg; // // Create the Pixel Envelope... GeoPixelEnvelope pe; GeoVPhysVol* pephys = pe.Build() ; - GeoAlignableTransform * transform = new GeoAlignableTransform(HepGeom::Transform3D()); + GeoAlignableTransform * transform = new GeoAlignableTransform(GeoTrf::Transform3D::Identity()); // // Add this to the world diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelDetectorFactoryDC2.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactoryDC2.h similarity index 100% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelDetectorFactoryDC2.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactoryDC2.h diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactorySR1.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactorySR1.cxx index 1633bb780edac1671c7826cd12f4a5a14c63d669..e0a93585e536fe18d9147ad4b1eeef71a67122d3 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactorySR1.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactorySR1.cxx @@ -2,14 +2,14 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/PixelDetectorFactorySR1.h" +#include "PixelDetectorFactorySR1.h" -#include "PixelGeoModel/PixelSwitches.h" +#include "PixelSwitches.h" // Envelope, as a starting point of the geometry -#include "PixelGeoModel/GeoPixelBarrel.h" -#include "PixelGeoModel/GeoPixelEndCap.h" -#include "PixelGeoModel/GeoPixelServices.h" +#include "GeoPixelBarrel.h" +#include "GeoPixelEndCap.h" +#include "GeoPixelServices.h" // GeoModel includes #include "GeoModelKernel/GeoNameTag.h" @@ -22,8 +22,8 @@ #include "InDetReadoutGeometry/InDetDD_Defs.h" #include "InDetReadoutGeometry/PixelModuleDesign.h" -#include "PixelGeoModel/PixelGeoModelAthenaComps.h" -#include "PixelGeoModel/OraclePixGeoManager.h" +#include "PixelGeoModelAthenaComps.h" +#include "OraclePixGeoManager.h" #include "InDetIdentifier/PixelID.h" @@ -110,8 +110,8 @@ void PixelDetectorFactorySR1::create(GeoPhysVol *world) msg(MSG::INFO) << " " << m_detectorManager->getVersion().fullDescription() << endmsg; // Printout the parameters that are different in DC1 and DC2. - msg(MSG::INFO) << " B-Layer basic eta pitch: " << m_geometryManager->DesignPitchZ()/CLHEP::micrometer << "um" << endmsg; - msg(MSG::INFO) << " B-Layer sensor thickness: " << m_geometryManager->PixelBoardThickness()/CLHEP::micrometer << "um" << endmsg; + msg(MSG::INFO) << " B-Layer basic eta pitch: " << m_geometryManager->DesignPitchZ()/GeoModelKernelUnits::micrometer << "um" << endmsg; + msg(MSG::INFO) << " B-Layer sensor thickness: " << m_geometryManager->PixelBoardThickness()/GeoModelKernelUnits::micrometer << "um" << endmsg; } bool barrelPresent = m_geometryManager->partPresent("Barrel"); @@ -141,7 +141,7 @@ void PixelDetectorFactorySR1::create(GeoPhysVol *world) } // Top level transform - HepGeom::Transform3D topTransform = m_geometryManager->partTransform("Pixel"); + GeoTrf::Transform3D topTransform = m_geometryManager->partTransform("Pixel"); if (barrelPresent) { // @@ -151,7 +151,7 @@ void PixelDetectorFactorySR1::create(GeoPhysVol *world) GeoPixelBarrel brl(pixServices); physVol = brl.Build(); - HepGeom::Transform3D barrelTransform = m_geometryManager->partTransform("Barrel"); + GeoTrf::Transform3D barrelTransform = m_geometryManager->partTransform("Barrel"); transform = new GeoAlignableTransform(topTransform*barrelTransform); // Add this to the world @@ -178,8 +178,8 @@ void PixelDetectorFactorySR1::create(GeoPhysVol *world) m_geometryManager->SetPos(); physVol = pec.Build(); - HepGeom::Transform3D endcapATransform = m_geometryManager->partTransform("EndcapA"); - transform = new GeoAlignableTransform(topTransform * endcapATransform * HepGeom::TranslateZ3D(zpos)); + GeoTrf::Transform3D endcapATransform = m_geometryManager->partTransform("EndcapA"); + transform = new GeoAlignableTransform(topTransform * endcapATransform * GeoTrf::TranslateZ3D(zpos)); GeoNameTag* tag = new GeoNameTag("Pixel"); world->add(tag); @@ -194,8 +194,8 @@ void PixelDetectorFactorySR1::create(GeoPhysVol *world) m_geometryManager->SetNeg(); physVol = pec.Build(); - HepGeom::Transform3D endcapCTransform = m_geometryManager->partTransform("EndcapC"); - transform = new GeoAlignableTransform(topTransform * endcapCTransform * HepGeom::TranslateZ3D(-zpos) * HepGeom::RotateY3D(180*CLHEP::deg)); + GeoTrf::Transform3D endcapCTransform = m_geometryManager->partTransform("EndcapC"); + transform = new GeoAlignableTransform(topTransform * endcapCTransform * GeoTrf::TranslateZ3D(-zpos) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg)); GeoNameTag* tag = new GeoNameTag("Pixel"); world->add(tag); diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelDetectorFactorySR1.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactorySR1.h similarity index 100% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelDetectorFactorySR1.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorFactorySR1.h diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorTool.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorTool.cxx index 0ae6886735b602304041f28bd15c509367cc991d..bec8812f87e257b10b0dab61850d771448796d7d 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorTool.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorTool.cxx @@ -3,17 +3,17 @@ */ -#include "PixelGeoModel/PixelDetectorTool.h" -#include "PixelGeoModel/PixelDetectorFactory.h" -#include "PixelGeoModel/PixelDetectorFactorySR1.h" -#include "PixelGeoModel/PixelDetectorFactoryDC2.h" -#include "PixelGeoModel/PixelGeometryManager.h" -#include "PixelGeoModel/PixelSwitches.h" +#include "PixelDetectorTool.h" +#include "PixelDetectorFactory.h" +#include "PixelDetectorFactorySR1.h" +#include "PixelDetectorFactoryDC2.h" +#include "PixelGeometryManager.h" +#include "PixelSwitches.h" #include "PixelGeoModel/IBLParameterSvc.h" #include "InDetReadoutGeometry/PixelDetectorManager.h" #include "InDetReadoutGeometry/InDetDD_Defs.h" #include "DetDescrConditions/AlignableTransformContainer.h" -#include "PixelGeoModel/PixelGeoModelAthenaComps.h" +#include "PixelGeoModelAthenaComps.h" #include "GeoModelUtilities/GeoModelExperiment.h" #include "GaudiKernel/ServiceHandle.h" #include "StoreGate/StoreGateSvc.h" diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelDetectorTool.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorTool.h similarity index 100% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelDetectorTool.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelDetectorTool.h diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelGeoModelAthenaComps.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelGeoModelAthenaComps.cxx index 582da9124626fe5503f443133aa0ca6afd7f9592..b981d52691813b11e5155f228cdd831cd54fa19c 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelGeoModelAthenaComps.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelGeoModelAthenaComps.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/PixelGeoModelAthenaComps.h" +#include "PixelGeoModelAthenaComps.h" PixelGeoModelAthenaComps::PixelGeoModelAthenaComps() : InDetDD::AthenaComps("PixelGeoModel"), diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelGeoModelAthenaComps.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelGeoModelAthenaComps.h similarity index 100% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelGeoModelAthenaComps.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelGeoModelAthenaComps.h diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelGeometryManager.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelGeometryManager.cxx index 2af97ee9680b91b8a34caf0158278ec6cc9c400e..b8f2f517b62355d71bf5e27957a5345eb5ae0f26 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelGeometryManager.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelGeometryManager.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/PixelGeometryManager.h" +#include "PixelGeometryManager.h" using namespace std; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelGeometryManager.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelGeometryManager.h similarity index 98% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelGeometryManager.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelGeometryManager.h index a576355b95687f207f5009f050c518d60f45bec8..6d29cd6f795ea9ee5891f814b6e117e0dc9eced7 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelGeometryManager.h +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelGeometryManager.h @@ -8,10 +8,10 @@ #include <string> #include <iostream> #include <map> +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Geometry/Vector3D.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "PixelGeoModel/PixelGeoModelAthenaComps.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "PixelGeoModelAthenaComps.h" #include "RDBAccessSvc/IRDBAccessSvc.h" class InDetMaterialManager; @@ -268,7 +268,7 @@ public: virtual int PixelStaveIndex(int layer)=0; // Stave support (IBL) - virtual HepGeom::Point3D<double> IBLStaveRotationAxis()=0; + virtual GeoTrf::Vector3D IBLStaveRotationAxis()=0; virtual double IBLStaveRadius()=0; virtual double IBLStaveFacePlateThickness()=0; virtual double IBLStaveMechanicalStaveWidth()=0; @@ -611,7 +611,7 @@ public: virtual const PixelID * getIdHelper() = 0; // Top Level placements - virtual const HepGeom::Transform3D & partTransform(const std::string & partName) const = 0; + virtual const GeoTrf::Transform3D & partTransform(const std::string & partName) const = 0; virtual bool partPresent(const std::string & partName) const = 0; virtual std::string getMaterialName(const std::string & volumeName, int layerdisk = 0, int typenum = 0) = 0; diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelLegacyManager.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelLegacyManager.cxx index 1b721a886477e32c6657b91d1b41f73d0919daf2..1bd7b37a9ece6dfdb4da379e1f2aaca8f14917ff 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelLegacyManager.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelLegacyManager.cxx @@ -3,11 +3,12 @@ */ -#include "PixelGeoModel/PixelLegacyManager.h" +#include "PixelLegacyManager.h" #include "RDBAccessSvc/IRDBAccessSvc.h" #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/Units.h" #include <sstream> #include <string> @@ -88,36 +89,36 @@ int PixelLegacyManager::PixelBarrelNTFrame() double PixelLegacyManager::PixelBarrelBFrameWidth() { if (m_BarrelInSFrame) { - return (*m_pfba)[0]->getDouble("WIDTH1")*CLHEP::cm; + return (*m_pfba)[0]->getDouble("WIDTH1")*GeoModelKernelUnits::cm; } else { - return (*m_pfec)[0]->getDouble("WIDTH1")*CLHEP::cm; + return (*m_pfec)[0]->getDouble("WIDTH1")*GeoModelKernelUnits::cm; } } double PixelLegacyManager::PixelBarrelTFrameWidth() { if (m_BarrelInSFrame) { - return (*m_pfba)[0]->getDouble("WIDTH2")*CLHEP::cm; + return (*m_pfba)[0]->getDouble("WIDTH2")*GeoModelKernelUnits::cm; } else { - return (*m_pfec)[0]->getDouble("WIDTH2")*CLHEP::cm; + return (*m_pfec)[0]->getDouble("WIDTH2")*GeoModelKernelUnits::cm; } } double PixelLegacyManager::PixelBarrelFrameLength() { if (m_BarrelInSFrame) { - return (*m_pfba)[0]->getDouble("LENGTH")*CLHEP::cm; + return (*m_pfba)[0]->getDouble("LENGTH")*GeoModelKernelUnits::cm; } else { - return (*m_pfec)[0]->getDouble("LENGTH")*CLHEP::cm; + return (*m_pfec)[0]->getDouble("LENGTH")*GeoModelKernelUnits::cm; } } double PixelLegacyManager::PixelBarrelFrameOffset() { if (m_BarrelInSFrame) { - return (*m_pfba)[0]->getDouble("OFFSET")*CLHEP::cm; + return (*m_pfba)[0]->getDouble("OFFSET")*GeoModelKernelUnits::cm; } else { - return (*m_pfec)[0]->getDouble("OFFSET")*CLHEP::cm; + return (*m_pfec)[0]->getDouble("OFFSET")*GeoModelKernelUnits::cm; } } @@ -134,33 +135,33 @@ int PixelLegacyManager::PixelEndcapNTFrame() double PixelLegacyManager::PixelEndcapBFrameWidth() { - return (*m_pecf)[0]->getDouble("WIDTH1")*CLHEP::cm; + return (*m_pecf)[0]->getDouble("WIDTH1")*GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelEndcapTFrameWidth() { - return (*m_pecf)[0]->getDouble("WIDTH2")*CLHEP::cm; + return (*m_pecf)[0]->getDouble("WIDTH2")*GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelEndcapFrameLength() { - return (*m_pecf)[0]->getDouble("LENGTH")*CLHEP::cm; + return (*m_pecf)[0]->getDouble("LENGTH")*GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelEndcapFrameOffset() { - return (*m_pecf)[0]->getDouble("OFFSET")*CLHEP::cm; + return (*m_pecf)[0]->getDouble("OFFSET")*GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelBFrameHalfLength() { if (m_BarrelInSFrame) { - return (*m_pbba)[0]->getDouble("DZ")*CLHEP::cm; + return (*m_pbba)[0]->getDouble("DZ")*GeoModelKernelUnits::cm; } else { if (m_EndcapInSFrame) { - return (*m_pecb)[0]->getDouble("DZ")*CLHEP::cm; + return (*m_pecb)[0]->getDouble("DZ")*GeoModelKernelUnits::cm; } else { - return (*m_pbec)[0]->getDouble("DZ")*CLHEP::cm; + return (*m_pbec)[0]->getDouble("DZ")*GeoModelKernelUnits::cm; } } } @@ -168,12 +169,12 @@ double PixelLegacyManager::PixelBFrameHalfLength() double PixelLegacyManager::PixelBFrameHalfWidth() { if (m_BarrelInSFrame) { - return (*m_pbba)[0]->getDouble("DY")*CLHEP::cm; + return (*m_pbba)[0]->getDouble("DY")*GeoModelKernelUnits::cm; } else { if (m_EndcapInSFrame) { - return (*m_pecb)[0]->getDouble("DY")*CLHEP::cm; + return (*m_pecb)[0]->getDouble("DY")*GeoModelKernelUnits::cm; } else { - return (*m_pbec)[0]->getDouble("DY")*CLHEP::cm; + return (*m_pbec)[0]->getDouble("DY")*GeoModelKernelUnits::cm; } } } @@ -181,12 +182,12 @@ double PixelLegacyManager::PixelBFrameHalfWidth() double PixelLegacyManager::PixelBFrameHalfThickness() { if (m_BarrelInSFrame) { - return (*m_pbba)[0]->getDouble("DX")*CLHEP::cm; + return (*m_pbba)[0]->getDouble("DX")*GeoModelKernelUnits::cm; } else { if (m_EndcapInSFrame) { - return (*m_pecb)[0]->getDouble("DX")*CLHEP::cm; + return (*m_pecb)[0]->getDouble("DX")*GeoModelKernelUnits::cm; } else { - return (*m_pbec)[0]->getDouble("DX")*CLHEP::cm; + return (*m_pbec)[0]->getDouble("DX")*GeoModelKernelUnits::cm; } } } @@ -194,15 +195,15 @@ double PixelLegacyManager::PixelBFrameHalfThickness() double PixelLegacyManager::PixelTFrameHalfLength() { if (m_BarrelInSFrame) { - return (*m_ptba)[0]->getDouble("DZ")*CLHEP::cm; + return (*m_ptba)[0]->getDouble("DZ")*GeoModelKernelUnits::cm; } else { if (m_EndcapInSFrame) { - return (*m_pect)[0]->getDouble("DZ")*CLHEP::cm; + return (*m_pect)[0]->getDouble("DZ")*GeoModelKernelUnits::cm; } else { if (m_EndConeSFrame) { - return (*m_pecn)[0]->getDouble("DZ")*CLHEP::cm; + return (*m_pecn)[0]->getDouble("DZ")*GeoModelKernelUnits::cm; } else { - return (*m_ptec)[0]->getDouble("DZ")*CLHEP::cm; + return (*m_ptec)[0]->getDouble("DZ")*GeoModelKernelUnits::cm; } } } @@ -211,15 +212,15 @@ double PixelLegacyManager::PixelTFrameHalfLength() double PixelLegacyManager::PixelTFrameHalfWidthY() { if (m_BarrelInSFrame) { - return (*m_ptba)[0]->getDouble("DY")*CLHEP::cm; + return (*m_ptba)[0]->getDouble("DY")*GeoModelKernelUnits::cm; } else { if (m_EndcapInSFrame) { - return (*m_pect)[0]->getDouble("DY")*CLHEP::cm; + return (*m_pect)[0]->getDouble("DY")*GeoModelKernelUnits::cm; } else { if (m_EndConeSFrame) { - return (*m_pecn)[0]->getDouble("DY")*CLHEP::cm; + return (*m_pecn)[0]->getDouble("DY")*GeoModelKernelUnits::cm; } else { - return (*m_ptec)[0]->getDouble("DY")*CLHEP::cm; + return (*m_ptec)[0]->getDouble("DY")*GeoModelKernelUnits::cm; } } } @@ -228,15 +229,15 @@ double PixelLegacyManager::PixelTFrameHalfWidthY() double PixelLegacyManager::PixelTFrameHalfWidthXzn() { if (m_BarrelInSFrame) { - return (*m_ptba)[0]->getDouble("DX1")*CLHEP::cm; + return (*m_ptba)[0]->getDouble("DX1")*GeoModelKernelUnits::cm; } else { if (m_EndcapInSFrame) { - return (*m_pect)[0]->getDouble("DX1")*CLHEP::cm; + return (*m_pect)[0]->getDouble("DX1")*GeoModelKernelUnits::cm; } else { if (m_EndConeSFrame) { - return (*m_pecn)[0]->getDouble("DX1")*CLHEP::cm; + return (*m_pecn)[0]->getDouble("DX1")*GeoModelKernelUnits::cm; } else { - return (*m_ptec)[0]->getDouble("DX1")*CLHEP::cm; + return (*m_ptec)[0]->getDouble("DX1")*GeoModelKernelUnits::cm; } } } @@ -245,15 +246,15 @@ double PixelLegacyManager::PixelTFrameHalfWidthXzn() double PixelLegacyManager::PixelTFrameHalfWidthXzp() { if (m_BarrelInSFrame) { - return (*m_ptba)[0]->getDouble("DX2")*CLHEP::cm; + return (*m_ptba)[0]->getDouble("DX2")*GeoModelKernelUnits::cm; } else { if (m_EndcapInSFrame) { - return (*m_pect)[0]->getDouble("DX2")*CLHEP::cm; + return (*m_pect)[0]->getDouble("DX2")*GeoModelKernelUnits::cm; } else { if (m_EndConeSFrame) { - return (*m_pecn)[0]->getDouble("DX2")*CLHEP::cm; + return (*m_pecn)[0]->getDouble("DX2")*GeoModelKernelUnits::cm; } else { - return (*m_ptec)[0]->getDouble("DX2")*CLHEP::cm; + return (*m_ptec)[0]->getDouble("DX2")*GeoModelKernelUnits::cm; } } } @@ -262,15 +263,15 @@ double PixelLegacyManager::PixelTFrameHalfWidthXzp() double PixelLegacyManager::PixelTFrameDzDr() { if (m_BarrelInSFrame) { - return (*m_ptba)[0]->getDouble("DZDR")*CLHEP::deg; + return (*m_ptba)[0]->getDouble("DZDR")*GeoModelKernelUnits::deg; } else { if (m_EndcapInSFrame) { - return (*m_pect)[0]->getDouble("DZDR")*CLHEP::cm; + return (*m_pect)[0]->getDouble("DZDR")*GeoModelKernelUnits::cm; } else { if (m_EndConeSFrame) { - return (*m_pecn)[0]->getDouble("DZDR")*CLHEP::deg; + return (*m_pecn)[0]->getDouble("DZDR")*GeoModelKernelUnits::deg; } else { - return (*m_ptec)[0]->getDouble("DZDR")*CLHEP::deg; + return (*m_ptec)[0]->getDouble("DZDR")*GeoModelKernelUnits::deg; } } } @@ -278,33 +279,33 @@ double PixelLegacyManager::PixelTFrameDzDr() double PixelLegacyManager::PixelBarrelFrameECRadius() { - return (*m_pecn)[0]->getDouble("RADIUS")*CLHEP::cm; + return (*m_pecn)[0]->getDouble("RADIUS")*GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelBarrelFrameECZPos() { - return (*m_pecn)[0]->getDouble("Z")*CLHEP::cm; + return (*m_pecn)[0]->getDouble("Z")*GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelBarrelFrameECAlphaX() { - return (*m_pecn)[0]->getDouble("ANGLEX")*CLHEP::deg; + return (*m_pecn)[0]->getDouble("ANGLEX")*GeoModelKernelUnits::deg; } double PixelLegacyManager::PixelBarrelFrameECAlphaY() { - return (*m_pecn)[0]->getDouble("ANGLEY")*CLHEP::deg; + return (*m_pecn)[0]->getDouble("ANGLEY")*GeoModelKernelUnits::deg; } double PixelLegacyManager::PixelLadderThickness() { - return 2 * 1.48972*CLHEP::mm; + return 2 * 1.48972*GeoModelKernelUnits::mm; } double PixelLegacyManager::PixelLadderLength() { - return 2 * (*m_pxbi)[0]->getDouble("DZLADDER")*CLHEP::cm; + return 2 * (*m_pxbi)[0]->getDouble("DZLADDER")*GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelLadderServicesX() @@ -314,28 +315,28 @@ double PixelLegacyManager::PixelLadderServicesX() double PixelLegacyManager::PixelLadderServicesY() { - return 3*CLHEP::mm; + return 3*GeoModelKernelUnits::mm; } double PixelLegacyManager::PixelLadderCableOffsetX() { - return 0.099*CLHEP::mm; + return 0.099*GeoModelKernelUnits::mm; } double PixelLegacyManager::PixelLadderCableOffsetY() { - return 4*CLHEP::mm; + return 4*GeoModelKernelUnits::mm; } double PixelLegacyManager::PixelLadderConnectorOffsetX() { - return -5.8*CLHEP::mm; + return -5.8*GeoModelKernelUnits::mm; } double PixelLegacyManager::PixelLadderPigtailOffsetY() { - return -0.5*CLHEP::mm - PixelLadderCableOffsetY(); + return -0.5*GeoModelKernelUnits::mm - PixelLadderCableOffsetY(); } @@ -352,34 +353,34 @@ double PixelLegacyManager::PixelCableZStart(int index) { // In old code two cables were connected to middle. Correction stops them touching. - double correction = (index == 7) ? 0.000001*CLHEP::cm : 0; - return ((*m_poci)[index]->getDouble("Z") - (*m_poci)[index]->getDouble("DZ")) * CLHEP::cm + correction; + double correction = (index == 7) ? 0.000001*GeoModelKernelUnits::cm : 0; + return ((*m_poci)[index]->getDouble("Z") - (*m_poci)[index]->getDouble("DZ")) * GeoModelKernelUnits::cm + correction; } double PixelLegacyManager::PixelCableZEnd(int index) { // In old code two cables were connected to middle. Correction stops them touching. - double correction = (index == 7) ? 0.000001*CLHEP::cm : 0; - return ((*m_poci)[index]->getDouble("Z") + (*m_poci)[index]->getDouble("DZ")) * CLHEP::cm + correction; + double correction = (index == 7) ? 0.000001*GeoModelKernelUnits::cm : 0; + return ((*m_poci)[index]->getDouble("Z") + (*m_poci)[index]->getDouble("DZ")) * GeoModelKernelUnits::cm + correction; } double PixelLegacyManager::PixelCableWidth(int index) { - return (*m_poci)[index]->getDouble("DY") * CLHEP::cm; + return (*m_poci)[index]->getDouble("DY") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelCableThickness(int index) { - return (*m_poci)[index]->getDouble("DX")*CLHEP::cm; + return (*m_poci)[index]->getDouble("DX")*GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelCableStackOffset(int index) { - return (*m_poci)[index]->getDouble("X")*CLHEP::cm; + return (*m_poci)[index]->getDouble("X")*GeoModelKernelUnits::cm; } @@ -416,47 +417,47 @@ double PixelLegacyManager::PixelTMTVariable(int iPart, const std::string & varNa double PixelLegacyManager::PixelTMTDzdr(int iPart) { - return PixelTMTVariable(iPart, "DZDR") * CLHEP::deg; + return PixelTMTVariable(iPart, "DZDR") * GeoModelKernelUnits::deg; } double PixelLegacyManager::PixelTMTPosX(int iPart) { - return PixelTMTVariable(iPart, "X") * CLHEP::cm; + return PixelTMTVariable(iPart, "X") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelTMTPosZ(int iPart) { - return PixelTMTVariable(iPart, "Z") * CLHEP::cm; + return PixelTMTVariable(iPart, "Z") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelTMTLength(int iPart) { - return 2 * PixelTMTVariable(iPart, "DZ") * CLHEP::cm; + return 2 * PixelTMTVariable(iPart, "DZ") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelTMTWidthX2(int iPart) { - return 2 * PixelTMTVariable(iPart, "DX2") * CLHEP::cm; + return 2 * PixelTMTVariable(iPart, "DX2") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelTMTWidthX1(int iPart) { - return 2 * PixelTMTVariable(iPart, "DX1") * CLHEP::cm; + return 2 * PixelTMTVariable(iPart, "DX1") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelTMTWidthY(int iPart) { - return 2 * PixelTMTVariable(iPart, "DY") * CLHEP::cm; + return 2 * PixelTMTVariable(iPart, "DY") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelTMTBaseX1(int iPart) { double theta = PixelTMTDzdr(iPart); if (theta == 0) { - return PixelTMTVariable(iPart, "X")*CLHEP::cm + 0.25*(PixelTMTWidthX1(iPart)+PixelTMTWidthX2(iPart)); + return PixelTMTVariable(iPart, "X")*GeoModelKernelUnits::cm + 0.25*(PixelTMTWidthX1(iPart)+PixelTMTWidthX2(iPart)); } else { - return PixelTMTVariable(iPart, "X")*CLHEP::cm - 0.5*PixelTMTLength(iPart) * tan(theta) + 0.5*PixelTMTWidthX1(iPart); + return PixelTMTVariable(iPart, "X")*GeoModelKernelUnits::cm - 0.5*PixelTMTLength(iPart) * tan(theta) + 0.5*PixelTMTWidthX1(iPart); } } @@ -464,15 +465,15 @@ double PixelLegacyManager::PixelTMTBaseX2(int iPart) { double theta = PixelTMTDzdr(iPart); if (theta == 0) { - return PixelTMTVariable(iPart, "X")*CLHEP::cm + 0.25*(PixelTMTWidthX1(iPart)+PixelTMTWidthX2(iPart)); + return PixelTMTVariable(iPart, "X")*GeoModelKernelUnits::cm + 0.25*(PixelTMTWidthX1(iPart)+PixelTMTWidthX2(iPart)); } else { - return PixelTMTVariable(iPart, "X")*CLHEP::cm + 0.5*PixelTMTLength(iPart) * tan(theta) + 0.5*PixelTMTWidthX2(iPart); + return PixelTMTVariable(iPart, "X")*GeoModelKernelUnits::cm + 0.5*PixelTMTLength(iPart) * tan(theta) + 0.5*PixelTMTWidthX2(iPart); } } double PixelLegacyManager::PixelTMTPosY(int iPart) { - return PixelTMTVariable(iPart, "Y") * CLHEP::cm; + return PixelTMTVariable(iPart, "Y") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelTMTPosZ1(int iPart) @@ -497,52 +498,52 @@ bool PixelLegacyManager::PixelTMTPerModule(int iPart) // double PixelLegacyManager::PixelOmegaUpperBendX() { - return (*m_poti)[2]->getDouble("X") * CLHEP::cm; + return (*m_poti)[2]->getDouble("X") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelOmegaUpperBendY() { - return (*m_poti)[2]->getDouble("Y") * CLHEP::cm; + return (*m_poti)[2]->getDouble("Y") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelOmegaUpperBendRadius() { - return (*m_poti)[2]->getDouble("RMAX") * CLHEP::cm; + return (*m_poti)[2]->getDouble("RMAX") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelOmegaLowerBendX() { - return (*m_poti)[0]->getDouble("X") * CLHEP::cm; + return (*m_poti)[0]->getDouble("X") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelOmegaLowerBendY() { - return (*m_poti)[0]->getDouble("Y") * CLHEP::cm; + return (*m_poti)[0]->getDouble("Y") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelOmegaLowerBendRadius() { - return (*m_poti)[0]->getDouble("RMAX") * CLHEP::cm; + return (*m_poti)[0]->getDouble("RMAX") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelOmegaWallThickness() { - return ((*m_poti)[0]->getDouble("RMAX") - (*m_poti)[0]->getDouble("RMIN")) * CLHEP::cm; + return ((*m_poti)[0]->getDouble("RMAX") - (*m_poti)[0]->getDouble("RMIN")) * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelOmegaLength() { - return 2. * (*m_poti)[0]->getDouble("DZ") * CLHEP::cm; + return 2. * (*m_poti)[0]->getDouble("DZ") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelOmegaStartY() { - return ((*m_posi)[0]->getDouble("Y") + 0.5*(*m_posi)[0]->getDouble("DY")) * CLHEP::cm; + return ((*m_posi)[0]->getDouble("Y") + 0.5*(*m_posi)[0]->getDouble("DY")) * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelOmegaEndY() { - return ((*m_posi)[1]->getDouble("Y") - 0.5*(*m_posi)[1]->getDouble("DY")) * CLHEP::cm; + return ((*m_posi)[1]->getDouble("Y") - 0.5*(*m_posi)[1]->getDouble("DY")) * GeoModelKernelUnits::cm; } // @@ -551,42 +552,42 @@ double PixelLegacyManager::PixelOmegaEndY() double PixelLegacyManager::PixelAlTubeUpperBendX() { - return (*m_poti)[5]->getDouble("X") * CLHEP::cm; + return (*m_poti)[5]->getDouble("X") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelAlTubeUpperBendY() { - return (*m_poti)[5]->getDouble("Y") * CLHEP::cm; + return (*m_poti)[5]->getDouble("Y") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelAlTubeUpperBendRadius() { - return (*m_poti)[5]->getDouble("RMAX") * CLHEP::cm; + return (*m_poti)[5]->getDouble("RMAX") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelAlTubeLowerBendX() { - return (*m_poti)[3]->getDouble("X") * CLHEP::cm; + return (*m_poti)[3]->getDouble("X") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelAlTubeLowerBendY() { - return (*m_poti)[3]->getDouble("Y") * CLHEP::cm; + return (*m_poti)[3]->getDouble("Y") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelAlTubeLowerBendRadius() { - return (*m_poti)[3]->getDouble("RMAX") * CLHEP::cm; + return (*m_poti)[3]->getDouble("RMAX") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelAlTubeWallThickness() { - return ((*m_poti)[3]->getDouble("RMAX") - (*m_poti)[3]->getDouble("RMIN")) * CLHEP::cm; + return ((*m_poti)[3]->getDouble("RMAX") - (*m_poti)[3]->getDouble("RMIN")) * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelAlTubeLength() { - return 2 * (*m_poti)[3]->getDouble("DZ") * CLHEP::cm; + return 2 * (*m_poti)[3]->getDouble("DZ") * GeoModelKernelUnits::cm; } // @@ -600,32 +601,32 @@ int PixelLegacyManager::PixelNumOmegaGlueElements() double PixelLegacyManager::PixelOmegaGlueStartX(int index) { - return ((*m_posi)[index+2]->getDouble("X") - 0.5*(*m_posi)[index+2]->getDouble("DX")) * CLHEP::cm; + return ((*m_posi)[index+2]->getDouble("X") - 0.5*(*m_posi)[index+2]->getDouble("DX")) * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelOmegaGlueThickness(int index) { - return (*m_posi)[index+2]->getDouble("DX") * CLHEP::cm; + return (*m_posi)[index+2]->getDouble("DX") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelOmegaGlueStartY(int index) { - return ((*m_posi)[index+2]->getDouble("Y") - 0.5*(*m_posi)[index+2]->getDouble("DY")) * CLHEP::cm; + return ((*m_posi)[index+2]->getDouble("Y") - 0.5*(*m_posi)[index+2]->getDouble("DY")) * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelOmegaGlueEndY(int index) { - return ((*m_posi)[index+2]->getDouble("Y") + 0.5*(*m_posi)[index+2]->getDouble("DY")) * CLHEP::cm; + return ((*m_posi)[index+2]->getDouble("Y") + 0.5*(*m_posi)[index+2]->getDouble("DY")) * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelOmegaGlueLength(int index) { - return 2 * (*m_posi)[index+2]->getDouble("DZ") * CLHEP::cm; + return 2 * (*m_posi)[index+2]->getDouble("DZ") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelOmegaGluePosZ(int index) { - return (*m_posi)[index+2]->getDouble("Z") * CLHEP::cm; + return (*m_posi)[index+2]->getDouble("Z") * GeoModelKernelUnits::cm; } int PixelLegacyManager::PixelOmegaGlueTypeNum(int index) @@ -639,24 +640,24 @@ int PixelLegacyManager::PixelOmegaGlueTypeNum(int index) double PixelLegacyManager::PixelFluidZ1(int index) { - double dz = (*m_pcff)[index%2]->getDouble("DZ")*CLHEP::cm; - double posz = (*m_pcff)[index%2]->getDouble("Z")*CLHEP::cm; + double dz = (*m_pcff)[index%2]->getDouble("DZ")*GeoModelKernelUnits::cm; + double posz = (*m_pcff)[index%2]->getDouble("Z")*GeoModelKernelUnits::cm; return posz-dz; } double PixelLegacyManager::PixelFluidZ2(int index) { - double dz = (*m_pcff)[index%2]->getDouble("DZ")*CLHEP::cm; - double posz = (*m_pcff)[index%2]->getDouble("Z")*CLHEP::cm; + double dz = (*m_pcff)[index%2]->getDouble("DZ")*GeoModelKernelUnits::cm; + double posz = (*m_pcff)[index%2]->getDouble("Z")*GeoModelKernelUnits::cm; return posz+dz; } double PixelLegacyManager::PixelFluidThick1(int index) { if (index < 2) { - return 2*(*m_pcff)[index%2]->getDouble("DX1")*CLHEP::cm; + return 2*(*m_pcff)[index%2]->getDouble("DX1")*GeoModelKernelUnits::cm; } else { - return 2*(*m_pcff)[index%2]->getDouble("DX2")*CLHEP::cm; + return 2*(*m_pcff)[index%2]->getDouble("DX2")*GeoModelKernelUnits::cm; } } @@ -664,26 +665,26 @@ double PixelLegacyManager::PixelFluidThick1(int index) double PixelLegacyManager::PixelFluidThick2(int index) { if (index < 2) { - return 2*(*m_pcff)[index%2]->getDouble("DX2")*CLHEP::cm; + return 2*(*m_pcff)[index%2]->getDouble("DX2")*GeoModelKernelUnits::cm; } else { - return 2*(*m_pcff)[index%2]->getDouble("DX1")*CLHEP::cm; + return 2*(*m_pcff)[index%2]->getDouble("DX1")*GeoModelKernelUnits::cm; } } double PixelLegacyManager::PixelFluidWidth(int index) { - return 2*(*m_pcff)[index%2]->getDouble("DY")*CLHEP::cm; + return 2*(*m_pcff)[index%2]->getDouble("DY")*GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelFluidX(int index) { - return (*m_pcff)[index%2]->getDouble("X")*CLHEP::cm; + return (*m_pcff)[index%2]->getDouble("X")*GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelFluidY(int index) { - return (*m_pcff)[index%2]->getDouble("Y")*CLHEP::cm; + return (*m_pcff)[index%2]->getDouble("Y")*GeoModelKernelUnits::cm; } int PixelLegacyManager::PixelFluidType(int index) @@ -715,17 +716,17 @@ int PixelLegacyManager::PixelFluidOrient(int layer, int phi) // double PixelLegacyManager::PixelPigtailThickness() { - return (*m_poai)[0]->getDouble("DX") * CLHEP::cm; + return (*m_poai)[0]->getDouble("DX") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelPigtailStartY() { - return -0.5*(*m_poai)[0]->getDouble("DY") * CLHEP::cm; + return -0.5*(*m_poai)[0]->getDouble("DY") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelPigtailEndY() { - return 0.5*(*m_poai)[0]->getDouble("DY") * CLHEP::cm; + return 0.5*(*m_poai)[0]->getDouble("DY") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelPigtailFlatWidthZ() @@ -733,59 +734,59 @@ double PixelLegacyManager::PixelPigtailFlatWidthZ() // Assume its actually the full width but in old geometry it was interpreted as a half width so we // multiply by 2. This gives the flat section twice the width of the curved section which I don't think was the // intention. - return 2*(*m_poai)[0]->getDouble("DZ") * CLHEP::cm; + return 2*(*m_poai)[0]->getDouble("DZ") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelPigtailWidthZ() { - return 2*(*m_pobi)[0]->getDouble("DZ") * CLHEP::cm; + return 2*(*m_pobi)[0]->getDouble("DZ") * GeoModelKernelUnits::cm; } // FIXME some weird offset double PixelLegacyManager::PixelPigtailPosX() { - return (*m_poai)[0]->getDouble("X") * CLHEP::cm + PixelLadderConnectorOffsetX(); + return (*m_poai)[0]->getDouble("X") * GeoModelKernelUnits::cm + PixelLadderConnectorOffsetX(); } double PixelLegacyManager::PixelPigtailPosZ() { - return (*m_poai)[0]->getDouble("Z") * CLHEP::cm; + return (*m_poai)[0]->getDouble("Z") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelPigtailBendX() { - return (*m_pobi)[0]->getDouble("X") * CLHEP::cm + PixelLadderConnectorOffsetX(); + return (*m_pobi)[0]->getDouble("X") * GeoModelKernelUnits::cm + PixelLadderConnectorOffsetX(); } double PixelLegacyManager::PixelPigtailBendY() { - return (*m_pobi)[0]->getDouble("Y") * CLHEP::cm + PixelLadderPigtailOffsetY(); + return (*m_pobi)[0]->getDouble("Y") * GeoModelKernelUnits::cm + PixelLadderPigtailOffsetY(); } double PixelLegacyManager::PixelPigtailBendRMin() { - return (*m_pobi)[0]->getDouble("RMIN") * CLHEP::cm; + return (*m_pobi)[0]->getDouble("RMIN") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelPigtailBendRMax() { - return (*m_pobi)[0]->getDouble("RMAX") * CLHEP::cm; + return (*m_pobi)[0]->getDouble("RMAX") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelPigtailBendPhiMin() { - return (*m_pobi)[0]->getDouble("PHI1") * CLHEP::deg; + return (*m_pobi)[0]->getDouble("PHI1") * GeoModelKernelUnits::deg; } double PixelLegacyManager::PixelPigtailBendPhiMax() { - return (*m_pobi)[0]->getDouble("PHI2") * CLHEP::deg; + return (*m_pobi)[0]->getDouble("PHI2") * GeoModelKernelUnits::deg; } double PixelLegacyManager::PixelPigtailEnvelopeLength() { // FIXME Check - return 2*(*m_posi)[9]->getDouble("DZ") * CLHEP::cm; + return 2*(*m_posi)[9]->getDouble("DZ") * GeoModelKernelUnits::cm; } // @@ -798,22 +799,22 @@ int PixelLegacyManager::PixelNumConnectorElements() double PixelLegacyManager::PixelConnectorWidthX(int index) { - return (*m_poai)[index+1]->getDouble("DX") * CLHEP::cm; + return (*m_poai)[index+1]->getDouble("DX") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelConnectorWidthY(int index) { - return (*m_poai)[index+1]->getDouble("DY") * CLHEP::cm; + return (*m_poai)[index+1]->getDouble("DY") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelConnectorWidthZ(int index) { - return 2*(*m_poai)[index+1]->getDouble("DZ") * CLHEP::cm; + return 2*(*m_poai)[index+1]->getDouble("DZ") * GeoModelKernelUnits::cm; } double PixelLegacyManager::PixelConnectorPosX(int index) { - return (*m_poai)[index+1]->getDouble("X") * CLHEP::cm + PixelLadderConnectorOffsetX(); + return (*m_poai)[index+1]->getDouble("X") * GeoModelKernelUnits::cm + PixelLadderConnectorOffsetX(); } double PixelLegacyManager::PixelConnectorPosY(int) @@ -823,8 +824,8 @@ double PixelLegacyManager::PixelConnectorPosY(int) double PixelLegacyManager::PixelConnectorPosZ(int index) { - // same as (*m_pobi)[0]->getDouble("Z") * CLHEP::cm; - return (*m_poai)[index+1]->getDouble("Z") * CLHEP::cm; + // same as (*m_pobi)[0]->getDouble("Z") * GeoModelKernelUnits::cm; + return (*m_poai)[index+1]->getDouble("Z") * GeoModelKernelUnits::cm; } @@ -907,19 +908,19 @@ int PixelLegacyManager::EmptyRowConnections(int index) double PixelLegacyManager::DesignRPActiveArea() { - return (*m_pxbi)[0]->getDouble("DYACTIVE")*CLHEP::cm; + return (*m_pxbi)[0]->getDouble("DYACTIVE")*GeoModelKernelUnits::cm; } double PixelLegacyManager::DesignZActiveArea() { - return (*m_pxbi)[0]->getDouble("DZELEB")*CLHEP::cm; + return (*m_pxbi)[0]->getDouble("DZELEB")*GeoModelKernelUnits::cm; } double PixelLegacyManager::DesignPitchRP(bool isBLayer) { int type = designType(isBLayer); - return (*m_pxbd)[type]->getDouble("PITCHRP")*CLHEP::cm; + return (*m_pxbd)[type]->getDouble("PITCHRP")*GeoModelKernelUnits::cm; } // FIXME m_dc1Geometry @@ -929,9 +930,9 @@ double PixelLegacyManager::DesignPitchZ(bool isBLayer) double pitchZ; if(isBLayer && m_dc1Geometry) { // Override NOVA - pitchZ = 300 * CLHEP::micrometer; + pitchZ = 300 * GeoModelKernelUnits::micrometer; } else { - pitchZ = (*m_pxbd)[type]->getDouble("PITCHZ") * CLHEP::cm; + pitchZ = (*m_pxbd)[type]->getDouble("PITCHZ") * GeoModelKernelUnits::cm; } return pitchZ; } @@ -944,12 +945,12 @@ double PixelLegacyManager::DesignPitchZLong(bool isBLayer) double PixelLegacyManager::DesignGapRP() { - return (*m_pdch)[0]->getDouble("GAPRP")*CLHEP::cm; + return (*m_pdch)[0]->getDouble("GAPRP")*GeoModelKernelUnits::cm; } double PixelLegacyManager::DesignGapZ() { - return (*m_pdch)[0]->getDouble("GAPZ")*CLHEP::cm; + return (*m_pdch)[0]->getDouble("GAPZ")*GeoModelKernelUnits::cm; } int PixelLegacyManager::DesignCircuitsEta() diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelLegacyManager.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelLegacyManager.h similarity index 100% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelLegacyManager.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelLegacyManager.h diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelMaterialMap.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelMaterialMap.cxx index de8662a400b566067eeb010fb7360463ac5f3287..8ae48dc8c516cbceb14531b58d4bd2aa9c75b6b9 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelMaterialMap.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelMaterialMap.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/PixelMaterialMap.h" +#include "PixelMaterialMap.h" #include "GeometryDBSvc/IGeometryDBSvc.h" #include "RDBAccessSvc/IRDBRecordset.h" diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelMaterialMap.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelMaterialMap.h similarity index 100% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelMaterialMap.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelMaterialMap.h diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelStaveTypes.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelStaveTypes.cxx index 1b09f63cf73adbe6b9d7657be45d1736c57154c2..c6fd36caa6c1b618cd5c2a6f4eb7058240a435f5 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelStaveTypes.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelStaveTypes.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/PixelStaveTypes.h" +#include "PixelStaveTypes.h" #include "GeometryDBSvc/IGeometryDBSvc.h" #include "RDBAccessSvc/IRDBRecordset.h" diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelStaveTypes.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelStaveTypes.h similarity index 100% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelStaveTypes.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelStaveTypes.h diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelSwitches.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelSwitches.cxx index ee874fb791998efe53f8bbf0200a393e1ff5f9db..ee273c1f38afaf81c6058b8d6c5a1b73e5fca157 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelSwitches.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelSwitches.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#include "PixelGeoModel/PixelSwitches.h" +#include "PixelSwitches.h" PixelSwitches::PixelSwitches() : m_services(true), diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelSwitches.h b/InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelSwitches.h similarity index 100% rename from InnerDetector/InDetDetDescr/PixelGeoModel/PixelGeoModel/PixelSwitches.h rename to InnerDetector/InDetDetDescr/PixelGeoModel/src/PixelSwitches.h diff --git a/InnerDetector/InDetDetDescr/PixelGeoModel/src/components/PixelGeoModel_entries.cxx b/InnerDetector/InDetDetDescr/PixelGeoModel/src/components/PixelGeoModel_entries.cxx index 5e9ef7510a3c71633156db871247a7d5e736b83a..93750eecd121c2243aaab53671a6a7aee031acbd 100644 --- a/InnerDetector/InDetDetDescr/PixelGeoModel/src/components/PixelGeoModel_entries.cxx +++ b/InnerDetector/InDetDetDescr/PixelGeoModel/src/components/PixelGeoModel_entries.cxx @@ -1,4 +1,4 @@ -#include "PixelGeoModel/PixelDetectorTool.h" +#include "../PixelDetectorTool.h" #include "PixelGeoModel/IBLParameterSvc.h" DECLARE_COMPONENT( PixelDetectorTool ) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/CMakeLists.txt b/InnerDetector/InDetDetDescr/SCT_GeoModel/CMakeLists.txt index 320b94bf0b9dff27919f7d86228a1220c6a518c0..edc57338d200d59973fab1aa4665782dfedbfbc2 100644 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/CMakeLists.txt +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/CMakeLists.txt @@ -9,8 +9,8 @@ atlas_subdir( SCT_GeoModel ) atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel Database/RDBAccessSvc - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities + DetectorDescription/GeoPrimitives GaudiKernel InnerDetector/InDetDetDescr/InDetGeoModelUtils InnerDetector/InDetDetDescr/InDetReadoutGeometry @@ -26,22 +26,16 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: -atlas_add_library( SCT_GeoModelLib - src/*.cxx - PUBLIC_HEADERS SCT_GeoModel - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} AthenaKernel GeoModelKernel GeoModelUtilities GaudiKernel InDetGeoModelUtils InDetReadoutGeometry StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES SGTools AthenaPoolUtilities DetDescrConditions Identifier InDetIdentifier ) - atlas_add_component( SCT_GeoModel + src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} AthenaKernel GeoModelKernel GeoModelUtilities GaudiKernel InDetGeoModelUtils InDetReadoutGeometry SGTools StoreGateLib SGtests AthenaPoolUtilities DetDescrConditions Identifier InDetIdentifier SCT_GeoModelLib ) + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaKernel GeoModelUtilities GaudiKernel InDetGeoModelUtils InDetReadoutGeometry SGTools StoreGateLib SGtests AthenaPoolUtilities DetDescrConditions Identifier InDetIdentifier ) # Install files from the package: atlas_install_python_modules( python/*.py ) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_GeneralParameters.h b/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_GeneralParameters.h index 2f00b2724ef6931310aa034864e9f395be48fc87..922a69f6fce3319641cd226b17b9b0b0ecdf17bc 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_GeneralParameters.h +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_GeneralParameters.h @@ -5,7 +5,7 @@ #ifndef SCT_GeoModel_SCT_GeneralParameters_H #define SCT_GeoModel_SCT_GeneralParameters_H -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoModelKernel/GeoDefinitions.h" #include <map> #include <string> @@ -31,7 +31,7 @@ public: double biasVoltage() const; double depletionVoltage() const; - const HepGeom::Transform3D & partTransform(const std::string & partName) const; + const GeoTrf::Transform3D & partTransform(const std::string & partName) const; bool partPresent(const std::string & partName) const; private: diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_InnerSide.h b/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_InnerSide.h index 44681ab41a5f89b971ae1250c0f2afd355064657..fd91a3788d0175bd1e4b52a075126bed8718858e 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_InnerSide.h +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_InnerSide.h @@ -10,8 +10,9 @@ #ifndef SCT_GEOMODEL_SCT_INNERSIDE_H #define SCT_GEOMODEL_SCT_INNERSIDE_H +#include "GeoPrimitives/GeoPrimitives.h" #include "SCT_GeoModel/SCT_ComponentFactory.h" -#include "CLHEP/Vector/ThreeVector.h" +#include "GeoModelKernel/GeoDefinitions.h" #include <string> @@ -42,8 +43,8 @@ public: double width() const {return m_width;} double length() const {return m_length;} - CLHEP::Hep3Vector * env1RefPointVector() const {return m_env1RefPointVector;} - CLHEP::Hep3Vector * env2RefPointVector() const {return m_env2RefPointVector;} + GeoTrf::Vector3D * env1RefPointVector() const {return m_env1RefPointVector;} + GeoTrf::Vector3D * env2RefPointVector() const {return m_env2RefPointVector;} // *** End of modified lines. ------------------ (00)********************************* @@ -76,8 +77,8 @@ private: // *** 16:30 Wed 15th Jun 2005 D.Naito modified. (02)********************************* // *** -->> (02)********************************* - CLHEP::Hep3Vector * m_env1RefPointVector; - CLHEP::Hep3Vector * m_env2RefPointVector; + GeoTrf::Vector3D * m_env1RefPointVector; + GeoTrf::Vector3D * m_env2RefPointVector; // *** End of modified lines. ------------------ (02)********************************* }; diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_Module.h b/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_Module.h index c0e27493b5dda77ed0400b0012a4c2ca82cb2d40..cd739b6b249d5f9ebeaffb8f3e6b61a3e5f184e9 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_Module.h +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_Module.h @@ -5,10 +5,9 @@ #ifndef SCT_GEOMODEL_SCT_MODULE_H #define SCT_GEOMODEL_SCT_MODULE_H +#include "GeoPrimitives/GeoPrimitives.h" #include "SCT_GeoModel/SCT_ComponentFactory.h" - -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" +#include "GeoModelKernel/GeoDefinitions.h" #include <string> @@ -46,8 +45,8 @@ public: double env2Width() const {return m_env2Width;} double env2Length() const {return m_env2Length;} - CLHEP::Hep3Vector * env1RefPointVector() const {return m_env1RefPointVector;} - CLHEP::Hep3Vector * env2RefPointVector() const {return m_env2RefPointVector;} + GeoTrf::Vector3D * env1RefPointVector() const {return m_env1RefPointVector;} + GeoTrf::Vector3D * env2RefPointVector() const {return m_env2RefPointVector;} double sensorGap() const {return m_sensorGap;} double stereoInner() const {return m_stereoInner;} @@ -97,12 +96,12 @@ private: const SCT_BaseBoard * m_baseBoard; //const SCT_Sensor * m_sensor; // 14:00 Thu 14th Jul 2005 D.Naito removed. - HepGeom::Transform3D * m_innerSidePos; - HepGeom::Transform3D * m_outerSidePos; - HepGeom::Translate3D * m_baseBoardPos; // 6th Apr 2005 S.Mima + GeoTrf::Transform3D * m_innerSidePos; + GeoTrf::Transform3D * m_outerSidePos; + GeoTrf::Translate3D * m_baseBoardPos; // 6th Apr 2005 S.Mima - CLHEP::Hep3Vector * m_env1RefPointVector; - CLHEP::Hep3Vector * m_env2RefPointVector; + GeoTrf::Vector3D * m_env1RefPointVector; + GeoTrf::Vector3D * m_env2RefPointVector; }; diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_OuterSide.h b/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_OuterSide.h index cd458f9324e238d6cf970148d535f9c77dedcb1f..d3fd0dab87777e53379a9c22d98f25971cbfb637 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_OuterSide.h +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_OuterSide.h @@ -5,9 +5,9 @@ #ifndef SCT_GEOMODEL_SCT_OUTERSIDE_H #define SCT_GEOMODEL_SCT_OUTERSIDE_H +#include "GeoPrimitives/GeoPrimitives.h" #include "SCT_GeoModel/SCT_ComponentFactory.h" -#include "CLHEP/Vector/ThreeVector.h" - +#include "GeoModelKernel/GeoDefinitions.h" #include <string> class GeoMaterial; @@ -38,8 +38,8 @@ public: double width() const {return m_width;} double length() const {return m_length;} - CLHEP::Hep3Vector * env1RefPointVector() const {return m_env1RefPointVector;} - CLHEP::Hep3Vector * env2RefPointVector() const {return m_env2RefPointVector;} + GeoTrf::Vector3D * env1RefPointVector() const {return m_env1RefPointVector;} + GeoTrf::Vector3D * env2RefPointVector() const {return m_env2RefPointVector;} const SCT_Hybrid * hybrid() const {return m_hybrid;} const SCT_Pigtail * pigtail() const {return m_pigtail;} @@ -67,8 +67,8 @@ private: GeoTransform * m_hybridPos; GeoTransform * m_pigtailPos; GeoTransform * m_sensorPos; - CLHEP::Hep3Vector * m_env1RefPointVector; - CLHEP::Hep3Vector * m_env2RefPointVector; + GeoTrf::Vector3D * m_env1RefPointVector; + GeoTrf::Vector3D * m_env2RefPointVector; }; diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_Ski.h b/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_Ski.h index 71491fd9bc35db3d0ebd02baad8efef782da0c1f..63b035611703e85256e707e1b7d9c180e6a9c52e 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_Ski.h +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/SCT_GeoModel/SCT_Ski.h @@ -7,8 +7,8 @@ #include "SCT_GeoModel/SCT_ComponentFactory.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" +#include "GeoModelKernel/GeoDefinitions.h" + #include <string> #include <vector> @@ -58,8 +58,8 @@ public: const SCT_CoolingPipe * coolingPipe() const {return m_coolingPipe;} GeoTransform * getRefPointTransform() const {return m_refPointTransform;} - CLHEP::Hep3Vector * env1RefPointVector() const {return m_env1RefPointVector;} - CLHEP::Hep3Vector * env2RefPointVector() const {return m_env2RefPointVector;} + GeoTrf::Vector3D * env1RefPointVector() const {return m_env1RefPointVector;} + GeoTrf::Vector3D * env2RefPointVector() const {return m_env2RefPointVector;} double env1Thickness() const {return m_env1Thickness;} double env1Width() const {return m_env1Width;} double env2Thickness() const {return m_env2Thickness;} @@ -124,9 +124,9 @@ private: GeoTransform * m_coolingPipePos; //! For calculations of envelopes of SCT_DetailLayer. - CLHEP::Hep3Vector * m_env1RefPointVector; + GeoTrf::Vector3D * m_env1RefPointVector; //! For calculations of envelopes of SCT_DetailLayer. - CLHEP::Hep3Vector * m_env2RefPointVector; + GeoTrf::Vector3D * m_env2RefPointVector; double m_env1Thickness; double m_env1Width; @@ -134,7 +134,7 @@ private: double m_env2Width; std::vector<GeoNameTag *> m_nameTag; - std::vector<HepGeom::Transform3D> m_modulePos; + std::vector<GeoTrf::Transform3D> m_modulePos; std::vector<GeoTransform *> m_doglegPos; std::vector<GeoTransform *> m_coolingBlockPos; diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Barrel.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Barrel.cxx index d23c7c67504856eb81aa17879bee1e507bcf9b12..ce889524052db66238e836c5be1891775fd6147a 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Barrel.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Barrel.cxx @@ -33,7 +33,7 @@ #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoShape.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <iostream> @@ -59,7 +59,7 @@ SCT_Barrel::getParameters() m_thermalShieldEndWallThickness = parameters->thermalShieldEndCapThickness(); // Clearannce in z between layer and interlink. - m_zClearance = 1*CLHEP::mm; + m_zClearance = 1*GeoModelKernelUnits::mm; // Layer internal structure and services depend on geometry version m_isOldGeometry = parameters->isOldGeometry(); @@ -117,7 +117,7 @@ SCT_Barrel::build(SCT_Identifier id) const barrel->add(new GeoNameTag("Layer#"+intToString(iLayer))); barrel->add(new GeoIdentifierTag(iLayer)); // Identifier layer= iLayer id.setLayerDisk(iLayer); - GeoAlignableTransform * transform = new GeoAlignableTransform(HepGeom::Transform3D()); + GeoAlignableTransform * transform = new GeoAlignableTransform(GeoTrf::Transform3D::Identity()); barrel->add(transform); GeoVPhysVol * layerPV = layer.build(id); barrel->add(layerPV); @@ -129,18 +129,18 @@ SCT_Barrel::build(SCT_Identifier id) const // Build and place the interlinks double interLinkZPos = 0.; interLinkZPos = 0.5 * layerLength + m_zClearance + 0.5 * interLink.length(); - barrel->add(new GeoTransform(HepGeom::TranslateZ3D(+interLinkZPos))); + barrel->add(new GeoTransform(GeoTrf::TranslateZ3D(+interLinkZPos))); barrel->add(interLink.getVolume()); - barrel->add(new GeoTransform(HepGeom::TranslateZ3D(-interLinkZPos))); + barrel->add(new GeoTransform(GeoTrf::TranslateZ3D(-interLinkZPos))); barrel->add(interLink.getVolume()); // Build and place the cooling spiders double spiderZPos = 0.; SCT_Spider spider("Spider"); spiderZPos = interLinkZPos + 0.5*interLink.length() + 0.5*spider.length(); - barrel->add(new GeoTransform(HepGeom::TranslateZ3D(+spiderZPos))); + barrel->add(new GeoTransform(GeoTrf::TranslateZ3D(+spiderZPos))); barrel->add(spider.getVolume()); - barrel->add(new GeoTransform(HepGeom::TranslateZ3D(-spiderZPos))); + barrel->add(new GeoTransform(GeoTrf::TranslateZ3D(-spiderZPos))); barrel->add(spider.getVolume()); // Build and place the thermal shield. @@ -151,9 +151,9 @@ SCT_Barrel::build(SCT_Identifier id) const // Build and place SCT to Pixel attachment SCT_PixelAttachment pixelAttachment("AttachmentPixelToSCT"); - barrel->add(new GeoTransform(HepGeom::TranslateZ3D(+pixelAttachment.zPosition()))); // +ve z + barrel->add(new GeoTransform(GeoTrf::TranslateZ3D(+pixelAttachment.zPosition()))); // +ve z barrel->add(pixelAttachment.getVolume()); - barrel->add(new GeoTransform(HepGeom::TranslateZ3D(-pixelAttachment.zPosition()))); // -ve z + barrel->add(new GeoTransform(GeoTrf::TranslateZ3D(-pixelAttachment.zPosition()))); // -ve z barrel->add(pixelAttachment.getVolume()); // Extra Material @@ -204,8 +204,8 @@ void SCT_Barrel::buildThermalShield(GeoFullPhysVol * parent) const const GeoMaterial* bulkheadMaterial = materials.getMaterialForVolume(bulkheadMaterialName,bulkheadShape->volume()); const GeoLogVol * bulkheadLog = new GeoLogVol("ThShieldBulkhead", bulkheadShape, bulkheadMaterial); GeoPhysVol * bulkhead = new GeoPhysVol(bulkheadLog); - GeoTransform * bulkheadPosPlus = new GeoTransform(HepGeom::TranslateZ3D(+(endPanelZMax-endPanelThickness-0.5*bulkheadThickness))); - GeoTransform * bulkheadPosMinus = new GeoTransform(HepGeom::TranslateZ3D(-(endPanelZMax-endPanelThickness-0.5*bulkheadThickness))); + GeoTransform * bulkheadPosPlus = new GeoTransform(GeoTrf::TranslateZ3D(+(endPanelZMax-endPanelThickness-0.5*bulkheadThickness))); + GeoTransform * bulkheadPosMinus = new GeoTransform(GeoTrf::TranslateZ3D(-(endPanelZMax-endPanelThickness-0.5*bulkheadThickness))); parent->add(bulkheadPosPlus); parent->add(bulkhead); parent->add(bulkheadPosMinus); @@ -216,8 +216,8 @@ void SCT_Barrel::buildThermalShield(GeoFullPhysVol * parent) const const GeoMaterial* endPanelMaterial = materials.getMaterialForVolume(endPanelMaterialName,endPanelShape->volume()); const GeoLogVol * endPanelLog = new GeoLogVol("ThShieldEndPanel", endPanelShape, endPanelMaterial); GeoPhysVol * endPanel = new GeoPhysVol(endPanelLog); - GeoTransform * endPanelPosPlus = new GeoTransform(HepGeom::TranslateZ3D(+(endPanelZMax-0.5*endPanelThickness))); - GeoTransform * endPanelPosMinus = new GeoTransform(HepGeom::TranslateZ3D(-(endPanelZMax-0.5*endPanelThickness))); + GeoTransform * endPanelPosPlus = new GeoTransform(GeoTrf::TranslateZ3D(+(endPanelZMax-0.5*endPanelThickness))); + GeoTransform * endPanelPosMinus = new GeoTransform(GeoTrf::TranslateZ3D(-(endPanelZMax-0.5*endPanelThickness))); parent->add(endPanelPosPlus); parent->add(endPanel); parent->add(endPanelPosMinus); @@ -263,8 +263,8 @@ void SCT_Barrel::buildEMIShield(GeoFullPhysVol * parent) const } else { const GeoTube* cutOut = new GeoTube(innerRadius, outerRadius, 0.5*pixelAttachmentLength); // std::cout << "Cut-out volume = " << cutOut->volume() << std::endl; - const GeoShape* emiTemp = (GeoShape*)&(emiShieldTube->subtract(*cutOut << HepGeom::TranslateZ3D(pixelAttachmentZpos))); - emiShieldShape = (GeoShape*)&emiTemp->subtract(*cutOut << HepGeom::TranslateZ3D(-pixelAttachmentZpos)); + const GeoShape* emiTemp = (GeoShape*)&(emiShieldTube->subtract(*cutOut << GeoTrf::TranslateZ3D(pixelAttachmentZpos))); + emiShieldShape = (GeoShape*)&emiTemp->subtract(*cutOut << GeoTrf::TranslateZ3D(-pixelAttachmentZpos)); double emiVolume = emiShieldTube->volume() - 2. * cutOut->volume(); // std::cout << "EMI final volume = " << emiVolume << std::endl; material = materials.getMaterialForVolume(materialName, emiVolume); @@ -277,13 +277,13 @@ void SCT_Barrel::buildEMIShield(GeoFullPhysVol * parent) const if (!m_isOldGeometry) { double dphi = jointRPhi / outerRadius; const GeoTubs* emiJointTubs = new GeoTubs(outerRadius, outerRadius+jointDeltaR, 0.5*length, - -0.5 * dphi * CLHEP::radian, dphi * CLHEP::radian); + -0.5 * dphi * GeoModelKernelUnits::radian, dphi * GeoModelKernelUnits::radian); // std::cout << "EMIJoint tubs volume = " << emiJointTubs->volume() << std::endl; const GeoTubs* jointCutOut = new GeoTubs(outerRadius, outerRadius+jointDeltaR, 0.5*pixelAttachmentLength, - -0.5 * dphi * CLHEP::radian, dphi * CLHEP::radian); + -0.5 * dphi * GeoModelKernelUnits::radian, dphi * GeoModelKernelUnits::radian); // std::cout << "Cut-out volume = " << jointCutOut->volume() << std::endl; - const GeoShape* jointTemp = (GeoShape*)&(emiJointTubs->subtract(*jointCutOut << HepGeom::TranslateZ3D(pixelAttachmentZpos))); - const GeoShape* emiJointShape = (GeoShape*)&jointTemp->subtract(*jointCutOut << HepGeom::TranslateZ3D(-pixelAttachmentZpos)); + const GeoShape* jointTemp = (GeoShape*)&(emiJointTubs->subtract(*jointCutOut << GeoTrf::TranslateZ3D(pixelAttachmentZpos))); + const GeoShape* emiJointShape = (GeoShape*)&jointTemp->subtract(*jointCutOut << GeoTrf::TranslateZ3D(-pixelAttachmentZpos)); double jointVolume = emiJointTubs->volume() - 2. * jointCutOut->volume(); // std::cout << "EMIJoint final volume = " << jointVolume << std::endl; const GeoMaterial * jointMaterial = materials.getMaterialForVolume(jointMaterialName, jointVolume); @@ -291,8 +291,8 @@ void SCT_Barrel::buildEMIShield(GeoFullPhysVol * parent) const GeoPhysVol * emiJoint = new GeoPhysVol(emiJointLog); // Place 3 copies for (int i=0; i<3; i++) { - double angle = (90. + i * 120.) * CLHEP::degree; - parent->add(new GeoTransform(HepGeom::RotateZ3D(angle))); + double angle = (90. + i * 120.) * GeoModelKernelUnits::degree; + parent->add(new GeoTransform(GeoTrf::RotateZ3D(angle))); parent->add(emiJoint); } } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelModuleParameters.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelModuleParameters.cxx index 526214f557ad46aa405bdf97ffb9868b35234d38..5e9b1e1dc34181b74d7d2c489666878de40ceff9 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelModuleParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelModuleParameters.cxx @@ -9,7 +9,7 @@ #include "RDBAccessSvc/IRDBRecord.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <cmath> @@ -19,16 +19,16 @@ using std::abs; // A few hard wired numbers (some of which should go in NOVA) // /* -const double SCT_MODULE_HYBRID_OFFSET = 5.0 * CLHEP::mm; // Planar distance from center of sensor to edge of hybrid. +const double SCT_MODULE_HYBRID_OFFSET = 5.0 * GeoModelKernelUnits::mm; // Planar distance from center of sensor to edge of hybrid. const int STEREO_UPPER_SIGN = -1; // Sign of stereo rotation of upper sensor with axis going // from lower to upper const double PITCH = 80 * micrometer; -const double HALF_ACTIVE_STRIP_LENGTH = 31 * CLHEP::mm; -const double NOMINAL_WAFER_LENGTH = 63.960 * CLHEP::mm; -const double REF_DISTANCE_BETWEEN_FIDUCIALS = 2.19 * CLHEP::mm; -const double DISTANCE_CORNER_MARK_TO_CENTER = 31.750 * CLHEP::mm; -const double DISTANCE_CORNER_MARK_TO_FIDUCIAL = 0.8 * CLHEP::mm; +const double HALF_ACTIVE_STRIP_LENGTH = 31 * GeoModelKernelUnits::mm; +const double NOMINAL_WAFER_LENGTH = 63.960 * GeoModelKernelUnits::mm; +const double REF_DISTANCE_BETWEEN_FIDUCIALS = 2.19 * GeoModelKernelUnits::mm; +const double DISTANCE_CORNER_MARK_TO_CENTER = 31.750 * GeoModelKernelUnits::mm; +const double DISTANCE_CORNER_MARK_TO_FIDUCIAL = 0.8 * GeoModelKernelUnits::mm; const double DISTANCE_CENTER_TO_CENTER = 2 * (DISTANCE_CORNER_MARK_TO_CENTER - DISTANCE_CORNER_MARK_TO_FIDUCIAL) + REF_DISTANCE_BETWEEN_FIDUCIALS; @@ -45,19 +45,19 @@ SCT_BarrelModuleParameters::SCT_BarrelModuleParameters() double SCT_BarrelModuleParameters::sensorThickness() const { - return m_rdb->brlSensor()->getDouble("THICKNESS") * CLHEP::mm; + return m_rdb->brlSensor()->getDouble("THICKNESS") * GeoModelKernelUnits::mm; } double SCT_BarrelModuleParameters::sensorWidth() const { - return m_rdb->brlSensor()->getDouble("WIDTH") * CLHEP::mm; + return m_rdb->brlSensor()->getDouble("WIDTH") * GeoModelKernelUnits::mm; } double SCT_BarrelModuleParameters::sensorLength() const { - return m_rdb->brlSensor()->getDouble("WAFERLENGTH") * CLHEP::mm; + return m_rdb->brlSensor()->getDouble("WAFERLENGTH") * GeoModelKernelUnits::mm; } int @@ -75,20 +75,20 @@ SCT_BarrelModuleParameters::sensorMaterial() const double SCT_BarrelModuleParameters::sensorDistCenterToCenter() const { - return 2 * m_rdb->brlSensor()->getDouble("CENTERTOFIDUCIAL") * CLHEP::mm - + m_rdb->brlSensor()->getDouble("FIDUCIALSEP") * CLHEP::mm; + return 2 * m_rdb->brlSensor()->getDouble("CENTERTOFIDUCIAL") * GeoModelKernelUnits::mm + + m_rdb->brlSensor()->getDouble("FIDUCIALSEP") * GeoModelKernelUnits::mm; } double SCT_BarrelModuleParameters::sensorStripLength() const { - return 2 * m_rdb->brlSensor()->getDouble("ACTIVEHALFLENGTH") * CLHEP::mm; + return 2 * m_rdb->brlSensor()->getDouble("ACTIVEHALFLENGTH") * GeoModelKernelUnits::mm; } double SCT_BarrelModuleParameters::sensorStripPitch() const { - return m_rdb->brlSensor()->getDouble("STRIPPITCH") * CLHEP::mm; + return m_rdb->brlSensor()->getDouble("STRIPPITCH") * GeoModelKernelUnits::mm; } int @@ -118,19 +118,19 @@ SCT_BarrelModuleParameters::sensorStripShift() const double SCT_BarrelModuleParameters::baseBoardThickness() const { - return m_rdb->brlModule()->getDouble("BASEBOARDTHICKNESS") * CLHEP::mm; + return m_rdb->brlModule()->getDouble("BASEBOARDTHICKNESS") * GeoModelKernelUnits::mm; } double SCT_BarrelModuleParameters::baseBoardWidth() const { - return m_rdb->brlModule()->getDouble("BASEBOARDWIDTH") * CLHEP::mm; + return m_rdb->brlModule()->getDouble("BASEBOARDWIDTH") * GeoModelKernelUnits::mm; } double SCT_BarrelModuleParameters::baseBoardLength() const { - return m_rdb->brlModule()->getDouble("BASEBOARDLENGTH") * CLHEP::mm; + return m_rdb->brlModule()->getDouble("BASEBOARDLENGTH") * GeoModelKernelUnits::mm; } std::string @@ -142,13 +142,13 @@ SCT_BarrelModuleParameters::baseBoardMaterial() const double SCT_BarrelModuleParameters::baseBoardOffsetY() const { - return m_rdb->brlModule()->getDouble("BASEBOARDOFFSETY") * CLHEP::mm; + return m_rdb->brlModule()->getDouble("BASEBOARDOFFSETY") * GeoModelKernelUnits::mm; } double SCT_BarrelModuleParameters::baseBoardOffsetZ() const { - return m_rdb->brlModule()->getDouble("BASEBOARDOFFSETZ") * CLHEP::mm; + return m_rdb->brlModule()->getDouble("BASEBOARDOFFSETZ") * GeoModelKernelUnits::mm; } // @@ -157,19 +157,19 @@ SCT_BarrelModuleParameters::baseBoardOffsetZ() const double SCT_BarrelModuleParameters::hybridThickness() const { - return m_rdb->brlModule()->getDouble("HYBRIDTHICKNESS") * CLHEP::mm; + return m_rdb->brlModule()->getDouble("HYBRIDTHICKNESS") * GeoModelKernelUnits::mm; } double SCT_BarrelModuleParameters::hybridWidth() const { - return m_rdb->brlModule()->getDouble("HYBRIDWIDTH") * CLHEP::mm; + return m_rdb->brlModule()->getDouble("HYBRIDWIDTH") * GeoModelKernelUnits::mm; } double SCT_BarrelModuleParameters::hybridLength() const { - return m_rdb->brlModule()->getDouble("HYBRIDLENGTH") * CLHEP::mm; + return m_rdb->brlModule()->getDouble("HYBRIDLENGTH") * GeoModelKernelUnits::mm; } std::string @@ -181,13 +181,13 @@ SCT_BarrelModuleParameters::hybridMaterial() const double SCT_BarrelModuleParameters::hybridOffsetX() const { - return m_rdb->brlModule()->getDouble("HYBRIDOFFSETX") * CLHEP::mm; + return m_rdb->brlModule()->getDouble("HYBRIDOFFSETX") * GeoModelKernelUnits::mm; } double SCT_BarrelModuleParameters::hybridOffsetZ() const { - return m_rdb->brlModule()->getDouble("HYBRIDOFFSETZ") * CLHEP::mm; + return m_rdb->brlModule()->getDouble("HYBRIDOFFSETZ") * GeoModelKernelUnits::mm; } // @@ -196,19 +196,19 @@ SCT_BarrelModuleParameters::hybridOffsetZ() const double SCT_BarrelModuleParameters::pigtailThickness() const { - return m_rdb->brlModule()->getDouble("PIGTAILTHICKNESS") * CLHEP::mm; + return m_rdb->brlModule()->getDouble("PIGTAILTHICKNESS") * GeoModelKernelUnits::mm; } double SCT_BarrelModuleParameters::pigtailWidth() const { - return m_rdb->brlModule()->getDouble("PIGTAILWIDTH") * CLHEP::mm; + return m_rdb->brlModule()->getDouble("PIGTAILWIDTH") * GeoModelKernelUnits::mm; } double SCT_BarrelModuleParameters::pigtailLength() const { - return m_rdb->brlModule()->getDouble("PIGTAILLENGTH") * CLHEP::mm; + return m_rdb->brlModule()->getDouble("PIGTAILLENGTH") * GeoModelKernelUnits::mm; } std::string @@ -242,14 +242,14 @@ SCT_BarrelModuleParameters::moduleUpperSideNumber() const double SCT_BarrelModuleParameters::moduleStereoAngle() const { - return m_rdb->brlModule()->getDouble("STEREOANGLE") * CLHEP::milliradian; + return m_rdb->brlModule()->getDouble("STEREOANGLE") * GeoModelKernelUnits::milliradian; } double SCT_BarrelModuleParameters::moduleSensorToSensorGap() const { - return m_rdb->brlModule()->getDouble("SENSORTOSENSORGAP") * CLHEP::mm; + return m_rdb->brlModule()->getDouble("SENSORTOSENSORGAP") * GeoModelKernelUnits::mm; } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelParameters.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelParameters.cxx index 8347fe542b024f4ea68d8703d7319bc5e3ddde59..ae69ebf0f092cf1424f73940fa36a9506880d487 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_BarrelParameters.cxx @@ -8,9 +8,7 @@ #include "SCT_GeoModel/SCT_DataBase.h" #include "RDBAccessSvc/IRDBRecord.h" - - -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <cmath> #include <iostream> @@ -34,7 +32,7 @@ SCT_BarrelParameters::skiFirstStagger() const double SCT_BarrelParameters::skiRadialSep() const { - return m_rdb->brlSki()->getDouble("SKIRADIALSEP") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("SKIRADIALSEP") * GeoModelKernelUnits::mm; } int @@ -46,7 +44,7 @@ SCT_BarrelParameters::modulesPerSki() const double SCT_BarrelParameters::skiZPosition(int index) const { - return m_rdb->brlSkiZ(index)->getDouble("ZPOSITION") * CLHEP::mm; + return m_rdb->brlSkiZ(index)->getDouble("ZPOSITION") * GeoModelKernelUnits::mm; } int @@ -61,7 +59,7 @@ SCT_BarrelParameters::skiModuleIdentifier(int index) const double SCT_BarrelParameters::tilt(int iLayer) const { - return m_rdb->brlLayer(iLayer)->getDouble("TILT") * CLHEP::degree; + return m_rdb->brlLayer(iLayer)->getDouble("TILT") * GeoModelKernelUnits::degree; } int @@ -74,7 +72,7 @@ SCT_BarrelParameters::layerStereoSign(int iLayer) const double SCT_BarrelParameters::radius(int iLayer) const { - return m_rdb->brlLayer(iLayer)->getDouble("RADIUS") * CLHEP::mm; + return m_rdb->brlLayer(iLayer)->getDouble("RADIUS") * GeoModelKernelUnits::mm; } int @@ -86,7 +84,7 @@ SCT_BarrelParameters::skisPerLayer(int iLayer) const double SCT_BarrelParameters::layerBracketPhiOffset(int iLayer) const { - return m_rdb->brlLayer(iLayer)->getDouble("BRACKETPHIOFFSET") * CLHEP::deg; + return m_rdb->brlLayer(iLayer)->getDouble("BRACKETPHIOFFSET") * GeoModelKernelUnits::deg; } double @@ -95,9 +93,9 @@ SCT_BarrelParameters::layerPhiOfRefModule(int iLayer) const // For backward compatibility, if field is null return (90 - tilt) // as ref module is horizontal in old versions. if (m_rdb->brlLayer(iLayer)->isFieldNull("PHIOFREFMODULE")) { - return 90*CLHEP::deg - tilt(iLayer); + return 90*GeoModelKernelUnits::deg - tilt(iLayer); } - return m_rdb->brlLayer(iLayer)->getDouble("PHIOFREFMODULE") * CLHEP::deg; + return m_rdb->brlLayer(iLayer)->getDouble("PHIOFREFMODULE") * GeoModelKernelUnits::deg; } @@ -107,19 +105,19 @@ SCT_BarrelParameters::layerPhiOfRefModule(int iLayer) const double SCT_BarrelParameters::bracketThickness() const { - return m_rdb->brlSki()->getDouble("BRACKETTHICKNESS") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("BRACKETTHICKNESS") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::bracketWidth() const { - return m_rdb->brlSki()->getDouble("BRACKETWIDTH") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("BRACKETWIDTH") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::bracketLength() const { - return m_rdb->brlSki()->getDouble("BRACKETLENGTH") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("BRACKETLENGTH") * GeoModelKernelUnits::mm; } std::string @@ -134,19 +132,19 @@ SCT_BarrelParameters::bracketMaterial() const double SCT_BarrelParameters::doglegThickness() const { - return m_rdb->brlSki()->getDouble("DOGLEGTHICKNESS") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("DOGLEGTHICKNESS") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::doglegWidth() const { - return m_rdb->brlSki()->getDouble("DOGLEGWIDTH") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("DOGLEGWIDTH") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::doglegLength() const { - return m_rdb->brlSki()->getDouble("DOGLEGLENGTH") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("DOGLEGLENGTH") * GeoModelKernelUnits::mm; } std::string @@ -158,13 +156,13 @@ SCT_BarrelParameters::doglegMaterial() const double SCT_BarrelParameters::doglegOffsetX() const { - return m_rdb->brlSki()->getDouble("DOGLEGOFFSETX") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("DOGLEGOFFSETX") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::doglegOffsetY() const { - return m_rdb->brlSki()->getDouble("DOGLEGOFFSETY") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("DOGLEGOFFSETY") * GeoModelKernelUnits::mm; } // @@ -173,19 +171,19 @@ SCT_BarrelParameters::doglegOffsetY() const double SCT_BarrelParameters::coolingBlockThickness() const { - return m_rdb->brlSki()->getDouble("COOLINGBLOCKTHICK") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("COOLINGBLOCKTHICK") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::coolingBlockWidth() const { - return m_rdb->brlSki()->getDouble("COOLINGBLOCKWIDTH") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("COOLINGBLOCKWIDTH") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::coolingBlockLength() const { - return m_rdb->brlSki()->getDouble("COOLINGBLOCKLENGTH") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("COOLINGBLOCKLENGTH") * GeoModelKernelUnits::mm; } std::string @@ -197,19 +195,19 @@ SCT_BarrelParameters::coolingBlockMaterial() const double SCT_BarrelParameters::coolingBlockOffsetX() const { - return m_rdb->brlSki()->getDouble("COOLINGBLOCKOFFSETX") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("COOLINGBLOCKOFFSETX") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::coolingBlockOffsetY() const { - return m_rdb->brlSki()->getDouble("COOLINGBLOCKOFFSETY") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("COOLINGBLOCKOFFSETY") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::coolingBlockOffsetZ() const { - return m_rdb->brlSki()->getDouble("COOLINGBLOCKOFFSETZ") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("COOLINGBLOCKOFFSETZ") * GeoModelKernelUnits::mm; } // @@ -218,7 +216,7 @@ SCT_BarrelParameters::coolingBlockOffsetZ() const double SCT_BarrelParameters::coolingPipeRadius() const { - return m_rdb->brlSki()->getDouble("COOLINGPIPERADIUS") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("COOLINGPIPERADIUS") * GeoModelKernelUnits::mm; } std::string @@ -230,13 +228,13 @@ SCT_BarrelParameters::coolingPipeMaterial() const double SCT_BarrelParameters::coolingPipeOffsetX() const { - return m_rdb->brlSki()->getDouble("COOLINGPIPEOFFSETX") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("COOLINGPIPEOFFSETX") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::coolingPipeOffsetY() const { - return m_rdb->brlSki()->getDouble("COOLINGPIPEOFFSETY") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("COOLINGPIPEOFFSETY") * GeoModelKernelUnits::mm; } @@ -246,13 +244,13 @@ SCT_BarrelParameters::coolingPipeOffsetY() const double SCT_BarrelParameters::powerTapeThickness() const { - return m_rdb->brlSki()->getDouble("POWERTAPETHICKNESS") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("POWERTAPETHICKNESS") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::powerTapeWidth() const { - return m_rdb->brlSki()->getDouble("POWERTAPEWIDTH") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("POWERTAPEWIDTH") * GeoModelKernelUnits::mm; } std::string @@ -264,7 +262,7 @@ SCT_BarrelParameters::powerTapeMaterial() const double SCT_BarrelParameters::powerTapeStartPointOffset() const { - return m_rdb->brlSki()->getDouble("POWERTAPESTARTOFFSET") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("POWERTAPESTARTOFFSET") * GeoModelKernelUnits::mm; } // @@ -273,13 +271,13 @@ SCT_BarrelParameters::powerTapeStartPointOffset() const double SCT_BarrelParameters::harnessThickness() const { - return m_rdb->brlSki()->getDouble("HARNESSTHICKNESS") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("HARNESSTHICKNESS") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::harnessWidth() const { - return m_rdb->brlSki()->getDouble("HARNESSWIDTH") * CLHEP::mm; + return m_rdb->brlSki()->getDouble("HARNESSWIDTH") * GeoModelKernelUnits::mm; } std::string @@ -294,7 +292,7 @@ SCT_BarrelParameters::harnessMaterial() const double SCT_BarrelParameters::supportCylInnerRadius(int iLayer) const { - return m_rdb->brlServPerLayer(iLayer)->getDouble("SUPPORTCYLINNERRAD") * CLHEP::mm; + return m_rdb->brlServPerLayer(iLayer)->getDouble("SUPPORTCYLINNERRAD") * GeoModelKernelUnits::mm; } double @@ -306,7 +304,7 @@ SCT_BarrelParameters::supportCylOuterRadius(int iLayer) const double SCT_BarrelParameters::supportCylDeltaR(int iLayer) const { - return m_rdb->brlServPerLayer(iLayer)->getDouble("SUPPORTCYLDELTAR") * CLHEP::mm; + return m_rdb->brlServPerLayer(iLayer)->getDouble("SUPPORTCYLDELTAR") * GeoModelKernelUnits::mm; } std::string @@ -322,13 +320,13 @@ SCT_BarrelParameters::supportCylMaterial(int iLayer) const double SCT_BarrelParameters::flangeDeltaZ(int iLayer) const { - return m_rdb->brlServPerLayer(iLayer)->getDouble("FLANGEDELTAZ") * CLHEP::mm; + return m_rdb->brlServPerLayer(iLayer)->getDouble("FLANGEDELTAZ") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::flangeDeltaR(int iLayer) const { - return m_rdb->brlServPerLayer(iLayer)->getDouble("FLANGEDELTAR") * CLHEP::mm; + return m_rdb->brlServPerLayer(iLayer)->getDouble("FLANGEDELTAR") * GeoModelKernelUnits::mm; } std::string @@ -343,13 +341,13 @@ SCT_BarrelParameters::flangeMaterial(int iLayer) const double SCT_BarrelParameters::clampDeltaZ(int iLayer) const { - return m_rdb->brlServPerLayer(iLayer)->getDouble("CLAMPDELTAZ") * CLHEP::mm; + return m_rdb->brlServPerLayer(iLayer)->getDouble("CLAMPDELTAZ") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::clampDeltaR(int iLayer) const { - return m_rdb->brlServPerLayer(iLayer)->getDouble("CLAMPDELTAR") * CLHEP::mm; + return m_rdb->brlServPerLayer(iLayer)->getDouble("CLAMPDELTAR") * GeoModelKernelUnits::mm; } std::string @@ -364,7 +362,7 @@ SCT_BarrelParameters::clampMaterial(int iLayer) const double SCT_BarrelParameters::coolingEndDeltaR(int iLayer) const { - return m_rdb->brlServPerLayer(iLayer)->getDouble("COOLINGENDDELTAR") * CLHEP::mm; + return m_rdb->brlServPerLayer(iLayer)->getDouble("COOLINGENDDELTAR") * GeoModelKernelUnits::mm; } std::string @@ -379,7 +377,7 @@ SCT_BarrelParameters::coolingEndMaterial(int iLayer) const double SCT_BarrelParameters::closeOutDeltaZ(int iLayer) const { - return m_rdb->brlServPerLayer(iLayer)->getDouble("CLOSEOUTDELTAZ") * CLHEP::mm; + return m_rdb->brlServPerLayer(iLayer)->getDouble("CLOSEOUTDELTAZ") * GeoModelKernelUnits::mm; } std::string @@ -394,19 +392,19 @@ SCT_BarrelParameters::closeOutMaterial(int iLayer) const double SCT_BarrelParameters::interLinkDeltaZ() const { - return m_rdb->brlServices()->getDouble("INTERLINKDELTAZ") * CLHEP::mm; + return m_rdb->brlServices()->getDouble("INTERLINKDELTAZ") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::interLinkInnerRadius() const { - return m_rdb->brlServices()->getDouble("INTERLINKINNERRADIUS") * CLHEP::mm; + return m_rdb->brlServices()->getDouble("INTERLINKINNERRADIUS") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::interLinkOuterRadius() const { - return m_rdb->brlServices()->getDouble("INTERLINKOUTERRADIUS") * CLHEP::mm; + return m_rdb->brlServices()->getDouble("INTERLINKOUTERRADIUS") * GeoModelKernelUnits::mm; } std::string @@ -419,9 +417,9 @@ double SCT_BarrelParameters::interLinkDeltaPhi() const { if (m_rdb->brlServices()->isFieldNull("INTERLINKDPHI")) { - return 360.*CLHEP::deg; + return 360.*GeoModelKernelUnits::deg; } - return m_rdb->brlServices()->getDouble("INTERLINKDPHI") * CLHEP::deg; + return m_rdb->brlServices()->getDouble("INTERLINKDPHI") * GeoModelKernelUnits::deg; } double @@ -430,7 +428,7 @@ SCT_BarrelParameters::interLinkPhiPos() const if (m_rdb->brlServices()->isFieldNull("INTERLINKPHIPOS")) { return 0.; } - return m_rdb->brlServices()->getDouble("INTERLINKPHIPOS") * CLHEP::deg; + return m_rdb->brlServices()->getDouble("INTERLINKPHIPOS") * GeoModelKernelUnits::deg; } int @@ -448,7 +446,7 @@ SCT_BarrelParameters::bearingDeltaPhi() const if (m_rdb->brlServices()->isFieldNull("BEARINGDPHI")) { return 0.; } - return m_rdb->brlServices()->getDouble("BEARINGDPHI") * CLHEP::deg; + return m_rdb->brlServices()->getDouble("BEARINGDPHI") * GeoModelKernelUnits::deg; } double @@ -457,7 +455,7 @@ SCT_BarrelParameters::bearingPhiPos() const if (m_rdb->brlServices()->isFieldNull("BEARINGPHIPOS")) { return 0.; } - return m_rdb->brlServices()->getDouble("BEARINGPHIPOS") * CLHEP::deg; + return m_rdb->brlServices()->getDouble("BEARINGPHIPOS") * GeoModelKernelUnits::deg; } int @@ -491,13 +489,13 @@ SCT_BarrelParameters::includeFSI() const double SCT_BarrelParameters::fsiFlangeInnerRadius() const { - return m_rdb->brlFSI()->getDouble("FLANGEINNERRADIUS") * CLHEP::mm; + return m_rdb->brlFSI()->getDouble("FLANGEINNERRADIUS") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::fsiFlangeOuterRadius() const { - return m_rdb->brlFSI()->getDouble("FLANGEOUTERRADIUS") * CLHEP::mm; + return m_rdb->brlFSI()->getDouble("FLANGEOUTERRADIUS") * GeoModelKernelUnits::mm; } std::string @@ -509,7 +507,7 @@ SCT_BarrelParameters::fsiFlangeMaterial() const double SCT_BarrelParameters::fsiFibreMaskDeltaR() const { - return m_rdb->brlFSI()->getDouble("FIBREMASKDELTAR") * CLHEP::mm; + return m_rdb->brlFSI()->getDouble("FIBREMASKDELTAR") * GeoModelKernelUnits::mm; } std::string @@ -521,19 +519,19 @@ SCT_BarrelParameters::fsiFibreMaskMaterial() const double SCT_BarrelParameters::fsiEndJewelRadialWidth() const { - return m_rdb->brlFSI()->getDouble("ENDJEWELRADIALWIDTH") * CLHEP::mm; + return m_rdb->brlFSI()->getDouble("ENDJEWELRADIALWIDTH") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::fsiEndJewelRPhiWidth() const { - return m_rdb->brlFSI()->getDouble("ENDJEWELRPHIWIDTH") * CLHEP::mm; + return m_rdb->brlFSI()->getDouble("ENDJEWELRPHIWIDTH") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::fsiEndJewelLength() const { - return m_rdb->brlFSI()->getDouble("ENDJEWELLENGTH") * CLHEP::mm; + return m_rdb->brlFSI()->getDouble("ENDJEWELLENGTH") * GeoModelKernelUnits::mm; } std::string @@ -551,31 +549,31 @@ SCT_BarrelParameters::fsiEndJewelNRepeat(int iLayer) const double SCT_BarrelParameters::fsiEndJewelPhi(int iLayer) const { - return m_rdb->brlFSILocation(iLayer)->getDouble("ENDJEWELPHI") * CLHEP::degree; + return m_rdb->brlFSILocation(iLayer)->getDouble("ENDJEWELPHI") * GeoModelKernelUnits::degree; } double SCT_BarrelParameters::fsiEndJewelZ(int iLayer) const { - return m_rdb->brlFSILocation(iLayer)->getDouble("ENDJEWELZ") * CLHEP::mm; + return m_rdb->brlFSILocation(iLayer)->getDouble("ENDJEWELZ") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::fsiScorpionRadialWidth() const { - return m_rdb->brlFSI()->getDouble("SCORPIONRADIALWIDTH") * CLHEP::mm; + return m_rdb->brlFSI()->getDouble("SCORPIONRADIALWIDTH") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::fsiScorpionRPhiWidth() const { - return m_rdb->brlFSI()->getDouble("SCORPIONRPHIWIDTH") * CLHEP::mm; + return m_rdb->brlFSI()->getDouble("SCORPIONRPHIWIDTH") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::fsiScorpionLength() const { - return m_rdb->brlFSI()->getDouble("SCORPIONLENGTH") * CLHEP::mm; + return m_rdb->brlFSI()->getDouble("SCORPIONLENGTH") * GeoModelKernelUnits::mm; } std::string @@ -593,13 +591,13 @@ SCT_BarrelParameters::fsiScorpionNRepeat(int iLayer) const double SCT_BarrelParameters::fsiScorpionPhi(int iLayer) const { - return m_rdb->brlFSILocation(iLayer)->getDouble("SCORPIONPHI") * CLHEP::degree; + return m_rdb->brlFSILocation(iLayer)->getDouble("SCORPIONPHI") * GeoModelKernelUnits::degree; } double SCT_BarrelParameters::fsiScorpionZ(int iLayer) const { - return m_rdb->brlFSILocation(iLayer)->getDouble("SCORPIONZ") * CLHEP::mm; + return m_rdb->brlFSILocation(iLayer)->getDouble("SCORPIONZ") * GeoModelKernelUnits::mm; } @@ -609,19 +607,19 @@ SCT_BarrelParameters::fsiScorpionZ(int iLayer) const double SCT_BarrelParameters::spiderDeltaZ() const { - return m_rdb->brlServices()->getDouble("SPIDERDELTAZ") * CLHEP::mm; + return m_rdb->brlServices()->getDouble("SPIDERDELTAZ") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::spiderInnerRadius() const { - return m_rdb->brlServices()->getDouble("SPIDERINNERRADIUS") * CLHEP::mm; + return m_rdb->brlServices()->getDouble("SPIDERINNERRADIUS") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::spiderOuterRadius() const { - return m_rdb->brlServices()->getDouble("SPIDEROUTERRADIUS") * CLHEP::mm; + return m_rdb->brlServices()->getDouble("SPIDEROUTERRADIUS") * GeoModelKernelUnits::mm; } std::string @@ -636,85 +634,85 @@ SCT_BarrelParameters::spiderMaterial() const double SCT_BarrelParameters::thermalShieldInnerRadius() const { - return m_rdb->brlThermalShield()->getDouble("INNERRADIUS") * CLHEP::mm; + return m_rdb->brlThermalShield()->getDouble("INNERRADIUS") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::thermalShieldOuterRadius() const { - return m_rdb->brlThermalShield()->getDouble("OUTERRADIUS") * CLHEP::mm; + return m_rdb->brlThermalShield()->getDouble("OUTERRADIUS") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::thermalShieldEndZMax() const { - return m_rdb->brlThermalShield()->getDouble("ENDZMAX") * CLHEP::mm; + return m_rdb->brlThermalShield()->getDouble("ENDZMAX") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::thermalShieldCylTotalThickness() const { - return m_rdb->brlThermalShield()->getDouble("CYLTOTALTHICKNESS") * CLHEP::mm; + return m_rdb->brlThermalShield()->getDouble("CYLTOTALTHICKNESS") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::thermalShieldCylInnerWallThickness() const { - return m_rdb->brlThermalShield()->getDouble("CYLINNERWALLTHICK") * CLHEP::mm; + return m_rdb->brlThermalShield()->getDouble("CYLINNERWALLTHICK") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::thermalShieldCylOuterWallThickness() const { - return m_rdb->brlThermalShield()->getDouble("CYLOUTERWALLTHICK") * CLHEP::mm; + return m_rdb->brlThermalShield()->getDouble("CYLOUTERWALLTHICK") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::thermalShieldSpacerZWidth() const { - return m_rdb->brlThermalShield()->getDouble("SPACERZWIDTH") * CLHEP::mm; + return m_rdb->brlThermalShield()->getDouble("SPACERZWIDTH") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::thermalShieldFirstSpacerZMin() const { - return m_rdb->brlThermalShield()->getDouble("FIRSTSPACERZMIN") * CLHEP::mm; + return m_rdb->brlThermalShield()->getDouble("FIRSTSPACERZMIN") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::thermalShieldEndCapCylThickness() const { - return m_rdb->brlThermalShield()->getDouble("ENDCAPCYLTHICKNESS") * CLHEP::mm; + return m_rdb->brlThermalShield()->getDouble("ENDCAPCYLTHICKNESS") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::thermalShieldEndCapThickness() const { - return m_rdb->brlThermalShield()->getDouble("ENDCAPTHICKNESS") * CLHEP::mm; + return m_rdb->brlThermalShield()->getDouble("ENDCAPTHICKNESS") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::thermalShieldBulkheadInnerRadius() const { - return m_rdb->brlThermalShield()->getDouble("BULKHEADINNERRADIUS") * CLHEP::mm; + return m_rdb->brlThermalShield()->getDouble("BULKHEADINNERRADIUS") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::thermalShieldBulkheadOuterRadius() const { - return m_rdb->brlThermalShield()->getDouble("BULKHEADOUTERRADIUS") * CLHEP::mm; + return m_rdb->brlThermalShield()->getDouble("BULKHEADOUTERRADIUS") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::thermalShieldEndPanelInnerRadius() const { - return m_rdb->brlThermalShield()->getDouble("ENDPANELINNERRADIUS") * CLHEP::mm; + return m_rdb->brlThermalShield()->getDouble("ENDPANELINNERRADIUS") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::thermalShieldEndPanelOuterRadius() const { - return m_rdb->brlThermalShield()->getDouble("ENDPANELOUTERRADIUS") * CLHEP::mm; + return m_rdb->brlThermalShield()->getDouble("ENDPANELOUTERRADIUS") * GeoModelKernelUnits::mm; } std::string @@ -747,19 +745,19 @@ SCT_BarrelParameters::thermalShieldMaterialInnerSect() const double SCT_BarrelParameters::emiShieldInnerRadius() const { - return m_rdb->brlServices()->getDouble("EMIINNERRADIUS") * CLHEP::mm; + return m_rdb->brlServices()->getDouble("EMIINNERRADIUS") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::emiShieldDeltaR() const { - return m_rdb->brlServices()->getDouble("EMIDELTAR") * CLHEP::mm; + return m_rdb->brlServices()->getDouble("EMIDELTAR") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::emiShieldZMax() const { - return m_rdb->brlServices()->getDouble("EMIZMAX") * CLHEP::mm; + return m_rdb->brlServices()->getDouble("EMIZMAX") * GeoModelKernelUnits::mm; } std::string @@ -771,13 +769,13 @@ SCT_BarrelParameters::emiShieldMaterial() const double SCT_BarrelParameters::emiJointDeltaR() const { - return m_rdb->brlServices()->getDouble("EMIJOINTDELTAR") * CLHEP::mm; + return m_rdb->brlServices()->getDouble("EMIJOINTDELTAR") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::emiJointRPhi() const { - return m_rdb->brlServices()->getDouble("EMIJOINTRPHI") * CLHEP::mm; + return m_rdb->brlServices()->getDouble("EMIJOINTRPHI") * GeoModelKernelUnits::mm; } std::string @@ -794,25 +792,25 @@ SCT_BarrelParameters::emiJointMaterial() const double SCT_BarrelParameters::pixelAttachmentInnerRadius() const { - return m_rdb->brlServices()->getDouble("PIXELATTACHINNERRAD") * CLHEP::mm; + return m_rdb->brlServices()->getDouble("PIXELATTACHINNERRAD") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::pixelAttachmentOuterRadius() const { - return m_rdb->brlServices()->getDouble("PIXELATTACHOUTERRAD") * CLHEP::mm; + return m_rdb->brlServices()->getDouble("PIXELATTACHOUTERRAD") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::pixelAttachmentZMin() const { - return m_rdb->brlServices()->getDouble("PIXELATTACHZMIN") * CLHEP::mm; + return m_rdb->brlServices()->getDouble("PIXELATTACHZMIN") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::pixelAttachmentDeltaZ() const { - return m_rdb->brlServices()->getDouble("PIXELATTACHDELTAZ") * CLHEP::mm; + return m_rdb->brlServices()->getDouble("PIXELATTACHDELTAZ") * GeoModelKernelUnits::mm; } std::string @@ -833,31 +831,31 @@ SCT_BarrelParameters::numLayers() const double SCT_BarrelParameters::barrelInnerRadius() const { - return m_rdb->brlGeneral()->getDouble("INNERRADIUS") * CLHEP::mm; + return m_rdb->brlGeneral()->getDouble("INNERRADIUS") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::barrelOuterRadius() const { - return m_rdb->brlGeneral()->getDouble("OUTERRADIUS") * CLHEP::mm; + return m_rdb->brlGeneral()->getDouble("OUTERRADIUS") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::barrelLength() const { - return m_rdb->brlGeneral()->getDouble("LENGTH") * CLHEP::mm; + return m_rdb->brlGeneral()->getDouble("LENGTH") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::cylinderLength() const { - return m_rdb->brlGeneral()->getDouble("CYLINDERLENGTH") * CLHEP::mm; + return m_rdb->brlGeneral()->getDouble("CYLINDERLENGTH") * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::activeLength() const { - return m_rdb->brlGeneral()->getDouble("ACTIVELENGTH") * CLHEP::mm; + return m_rdb->brlGeneral()->getDouble("ACTIVELENGTH") * GeoModelKernelUnits::mm; } bool diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Bracket.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Bracket.cxx index 1b31c5abc0f42bfa03aebffc3c02e65207d7807c..599d5081a5cf2a03085433b3e746c9dccca40a66 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Bracket.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Bracket.cxx @@ -16,7 +16,7 @@ #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_Bracket::SCT_Bracket(const std::string & name) : SCT_SharedComponentFactory(name) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Clamp.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Clamp.cxx index f32066bda0c4e40dc9cc2804341e0e35f17d514d..a85fb7efcdf376c2b353aa9bc4b91c288645c8f3 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Clamp.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Clamp.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_Clamp::SCT_Clamp(const std::string & name, int iLayer, diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_CloseOut.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_CloseOut.cxx index 3058263df5c5ab4e8ae429976be318529fc2049d..b4b6db173cf9f9079c9ebd299f50e6ed4d54cf5c 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_CloseOut.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_CloseOut.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_CloseOut::SCT_CloseOut(const std::string & name, int iLayer) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ComponentFactory.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ComponentFactory.cxx index 330e67bef7aed764ce42a3dbe8c5a44485403526..cf2f14e1296374157b889e61df0f66a00b9ce6ce 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ComponentFactory.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ComponentFactory.cxx @@ -3,7 +3,7 @@ */ #include "SCT_GeoModel/SCT_ComponentFactory.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <sstream> #include <string> @@ -13,7 +13,7 @@ using InDetDD::SCT_DetectorManager; SCT_DetectorManager * SCT_ComponentFactory::s_detectorManager = 0; const SCT_GeometryManager * SCT_ComponentFactory::s_geometryManager = 0; -double SCT_ComponentFactory::s_epsilon = 1.0e-6 * CLHEP::mm; +double SCT_ComponentFactory::s_epsilon = 1.0e-6 * GeoModelKernelUnits::mm; SCT_ComponentFactory::SCT_ComponentFactory(const std::string & name) : m_name(name) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_CoolingBlock.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_CoolingBlock.cxx index c79fee013c935cb8d1a1211e1ff700f6eee89e05..5db571788fa8949b60130de4947ae25e2e8a78bd 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_CoolingBlock.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_CoolingBlock.cxx @@ -13,7 +13,7 @@ #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_CoolingBlock::SCT_CoolingBlock(const std::string & name) : SCT_SharedComponentFactory(name) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_CoolingEnd.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_CoolingEnd.cxx index a8e06fefe1561ad73e2e73d732b7ecbb0a351f05..969f719c3ebb6f60807844ee522ab581aa20fdcd 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_CoolingEnd.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_CoolingEnd.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_CoolingEnd::SCT_CoolingEnd(const std::string & name, int iLayer, diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_CoolingPipe.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_CoolingPipe.cxx index 71ecc0369c6bdded346e7106f844fd716c86c6ce..cf1d88eaa641bba281c0ad5480393737532ac93e 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_CoolingPipe.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_CoolingPipe.cxx @@ -13,7 +13,7 @@ #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_CoolingPipe::SCT_CoolingPipe(const std::string & name, double length) : SCT_SharedComponentFactory(name), m_length(length) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_DetectorFactory.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_DetectorFactory.cxx index f14ae1944cf27663af1083d3f0f2503ca9f760a8..3a9fdd418ed61f896ef448c7910d3c8479fab9c6 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_DetectorFactory.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_DetectorFactory.cxx @@ -49,9 +49,9 @@ #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/ISvcLocator.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/Rotation.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/GeoDefinitions.h" + +#include "GeoModelKernel/Units.h" #include <iostream> @@ -153,7 +153,7 @@ void SCT_DetectorFactory::create(GeoPhysVol *world) const SCT_GeneralParameters * sctGeneral = m_geometryManager->generalParameters(); - HepGeom::Transform3D sctTransform = sctGeneral->partTransform("SCT"); + GeoTrf::Transform3D sctTransform = sctGeneral->partTransform("SCT"); std::string barrelLabel = "Barrel"; std::string forwardPlusLabel = "EndcapA"; @@ -211,9 +211,9 @@ void SCT_DetectorFactory::create(GeoPhysVol *world) SCT_Identifier idFwdPlus; idFwdPlus.setBarrelEC(2); GeoVPhysVol * forwardPlusPV = sctForwardPlus.build(idFwdPlus); - HepGeom::Transform3D fwdTransformPlus(sctTransform + GeoTrf::Transform3D fwdTransformPlus(sctTransform * sctGeneral->partTransform(forwardPlusLabel) - * HepGeom::TranslateZ3D(sctForwardPlus.zCenter())); + * GeoTrf::TranslateZ3D(sctForwardPlus.zCenter())); GeoAlignableTransform * fwdGeoTransformPlus = new GeoAlignableTransform(fwdTransformPlus); //indet->add(new GeoNameTag("SCT_ForwardPlus")); @@ -245,13 +245,13 @@ void SCT_DetectorFactory::create(GeoPhysVol *world) idFwdMinus.setBarrelEC(-2); GeoVPhysVol * forwardMinusPV = sctForwardMinus.build(idFwdMinus); - HepGeom::Transform3D rot; - rot = HepGeom::RotateY3D(180 * CLHEP::degree); + GeoTrf::Transform3D rot; + rot = GeoTrf::RotateY3D(180 * GeoModelKernelUnits::degree); - HepGeom::Transform3D fwdTransformMinus(sctTransform + GeoTrf::Transform3D fwdTransformMinus(sctTransform * sctGeneral->partTransform(forwardMinusLabel) * rot - * HepGeom::TranslateZ3D(sctForwardMinus.zCenter())); + * GeoTrf::TranslateZ3D(sctForwardMinus.zCenter())); GeoAlignableTransform * fwdGeoTransformMinus = new GeoAlignableTransform(fwdTransformMinus); //indet->add(new GeoNameTag("SCT_ForwardMinus")); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Dogleg.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Dogleg.cxx index ebf9e4fefee2cea8a8ee69ad5ead91cb1c298f15..e79d3211d0a27bae118b0241115ebaeb0b686ed3 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Dogleg.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Dogleg.cxx @@ -16,7 +16,7 @@ #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_Dogleg::SCT_Dogleg(const std::string & name) : SCT_SharedComponentFactory(name) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIEndJewel.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIEndJewel.cxx index 0a56ad8214ecf385de2a2c2b4fe645e8805010df..f05175588911f798bfaec00f44cd4f2cfd5884cd 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIEndJewel.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIEndJewel.cxx @@ -13,7 +13,7 @@ #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_FSIEndJewel::SCT_FSIEndJewel(const std::string & name) : SCT_SharedComponentFactory(name) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIFibreMask.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIFibreMask.cxx index d714b0b5e71b26ce46a8cd8841b7697c8f55b1af..96c53597a00d66b52e86cba972027de4ccfa111c 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIFibreMask.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIFibreMask.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_FSIFibreMask::SCT_FSIFibreMask(const std::string & name, int iLayer, double length) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIHelper.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIHelper.cxx index 18c1691472e73d1f19c993b28ad117cc7a886535..5b0b4e3c9bcd8958deb068f7602f5de83798ec73 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIHelper.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIHelper.cxx @@ -6,7 +6,7 @@ #include "SCT_GeoModel/SCT_FSIHelper.h" #include "SCT_GeoModel/SCT_DataBase.h" #include "RDBAccessSvc/IRDBRecord.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <iostream> @@ -66,8 +66,8 @@ FSIHelper::fill() // Loop through location types for (int iLocIndex = 0; iLocIndex < m_rdb->fwdFSILocationSize(); iLocIndex++) { std::string locType = m_rdb->fwdFSILocation(iLocIndex)->getString("LOCTYPE"); - double radius = m_rdb->fwdFSILocation(iLocIndex)->getDouble("LOCR") * CLHEP::mm; - double rphi = m_rdb->fwdFSILocation(iLocIndex)->getDouble("LOCPHI") * CLHEP::deg; + double radius = m_rdb->fwdFSILocation(iLocIndex)->getDouble("LOCR") * GeoModelKernelUnits::mm; + double rphi = m_rdb->fwdFSILocation(iLocIndex)->getDouble("LOCPHI") * GeoModelKernelUnits::deg; int side = m_rdb->fwdFSILocation(iLocIndex)->getInt("SIDE"); FSILocation * location = new FSILocation(locType, radius, rphi, side); m_locationTypes[locType] = location; diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIScorpion.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIScorpion.cxx index ed7cdb1a6bd4b90260d014fbd51fbfe509f8db9f..57a8a419a60b2aecbbd29dbe299d3c4c5d2d5fe4 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIScorpion.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FSIScorpion.cxx @@ -13,7 +13,7 @@ #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_FSIScorpion::SCT_FSIScorpion(const std::string & name) : SCT_SharedComponentFactory(name) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Flange.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Flange.cxx index dfac1d8135b85cbac7fe15931bfed897887d0944..4422b3f751c0a1da9299bb72d606d9279c8d6380 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Flange.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Flange.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_Flange::SCT_Flange(const std::string & name, int iLayer) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Forward.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Forward.cxx index 6416d33b5498733c8a63af453decae918da45818..9282e83020c2c72473c71bc906fa689d9f4a6232 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Forward.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Forward.cxx @@ -32,7 +32,7 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <sstream> #include <cmath> @@ -140,7 +140,7 @@ SCT_Forward::build(SCT_Identifier id) const // << " at " << zpos << ", thickness = " << wheel->thickness() << std::endl; forward->add(new GeoNameTag(wheelName.str())); forward->add(new GeoIdentifierTag(iWheel)); - GeoAlignableTransform * transform = new GeoAlignableTransform(HepGeom::TranslateZ3D(zpos)); + GeoAlignableTransform * transform = new GeoAlignableTransform(GeoTrf::TranslateZ3D(zpos)); forward->add(transform); id.setLayerDisk(iWheel); GeoVPhysVol * wheelPV = wheel->build(id); @@ -155,7 +155,7 @@ SCT_Forward::build(SCT_Identifier id) const // SCT_FwdSupportFrame supportFrame("SupportFrame"); double supportFrameZPos = supportFrame.zPosition() - zCenter(); - forward->add(new GeoTransform(HepGeom::TranslateZ3D(supportFrameZPos))); + forward->add(new GeoTransform(GeoTrf::TranslateZ3D(supportFrameZPos))); forward->add(supportFrame.getVolume()); // Make and Place Cylinder Services @@ -167,7 +167,7 @@ SCT_Forward::build(SCT_Identifier id) const supportFrame.outerRadius(), m_outerRadiusCylinderServices, supportFrame.length()); - forward->add(new GeoTransform(HepGeom::TranslateZ3D(supportFrameZPos))); + forward->add(new GeoTransform(GeoTrf::TranslateZ3D(supportFrameZPos))); forward->add(cylinderServices.getVolume()); } else { @@ -204,7 +204,7 @@ SCT_Forward::build(SCT_Identifier id) const // Place the cooling pipes double coolingPipeZPos = coolingPipe.zPosition() - zCenter(); - forward->add(new GeoTransform(HepGeom::TranslateZ3D(coolingPipeZPos))); + forward->add(new GeoTransform(GeoTrf::TranslateZ3D(coolingPipeZPos))); forward->add(coolingPipe.getVolume()); // Set rStart for next cooling pipe equal to outer radius of this cooling pipe. @@ -224,7 +224,7 @@ SCT_Forward::build(SCT_Identifier id) const // Calculate radius to start placing power tapes. This is half way bewteen outer radius // of support fram and outer radius of forward envelope. // The -1 mm is to avoid a clash with the thermal shield. - double innerRadiusPowerTapes = 0.5*(supportFrame.outerRadius() + m_outerRadius) - 1*CLHEP::mm; + double innerRadiusPowerTapes = 0.5*(supportFrame.outerRadius() + m_outerRadius) - 1*GeoModelKernelUnits::mm; // Inner radius of cylinder representing power tapes. Gets incremented for each wheel. double rStart = innerRadiusPowerTapes; @@ -247,7 +247,7 @@ SCT_Forward::build(SCT_Identifier id) const // Place Power Tapes double powerTapeZPos = powerTape.zPosition() - zCenter(); - forward->add(new GeoTransform(HepGeom::TranslateZ3D(powerTapeZPos))); + forward->add(new GeoTransform(GeoTrf::TranslateZ3D(powerTapeZPos))); forward->add(powerTape.getVolume()); // Set rStart for next power tape equal to outer radius of this power tape. @@ -263,7 +263,7 @@ SCT_Forward::build(SCT_Identifier id) const SCT_FwdThermalShieldElement thermalShieldElement("FwdThermalShieldElement"+intToString(iElement), iElement); double elementZPos = thermalShieldElement.zPosition() - zCenter(); - forward->add(new GeoTransform(HepGeom::TranslateZ3D(elementZPos))); + forward->add(new GeoTransform(GeoTrf::TranslateZ3D(elementZPos))); forward->add(thermalShieldElement.getVolume()); } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ForwardModuleParameters.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ForwardModuleParameters.cxx index 639f97ce4876ee0ccde6c5c1b865038db39a85fb..d1617a10e14e585fccbe1b5109c23f366ceb2c9e 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ForwardModuleParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ForwardModuleParameters.cxx @@ -9,7 +9,7 @@ #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBRecord.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <cmath> @@ -31,55 +31,55 @@ SCT_ForwardModuleParameters::fwdSensorNumWafers(int iModuleType) const double SCT_ForwardModuleParameters::fwdSensorThickness(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("THICKNESS") * CLHEP::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("THICKNESS") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorInnerWidthNear(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("INNERWIDTHNEAR") * CLHEP::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("INNERWIDTHNEAR") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorInnerWidthFar(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("INNERWIDTHFAR") * CLHEP::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("INNERWIDTHFAR") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorOuterWidthNear(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("OUTERWIDTHNEAR") * CLHEP::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("OUTERWIDTHNEAR") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorOuterWidthFar(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("OUTERWIDTHFAR") * CLHEP::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("OUTERWIDTHFAR") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorLengthNear(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHNEAR") * CLHEP::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHNEAR") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorLengthFar(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHFAR") * CLHEP::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHFAR") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorRadiusNear(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("RADIUSNEAR") * CLHEP::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("RADIUSNEAR") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorRadiusFar(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("RADIUSFAR") * CLHEP::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("RADIUSFAR") * GeoModelKernelUnits::mm; } std::string @@ -109,19 +109,19 @@ SCT_ForwardModuleParameters::fwdSensorActiveFar(int iModuleType) const double SCT_ForwardModuleParameters::fwdSensorActiveHalfLengthNear(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("ACTIVEHALFLENGTHNEAR") * CLHEP::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("ACTIVEHALFLENGTHNEAR") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorActiveHalfLengthFar(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("ACTIVEHALFLENGTHFAR") * CLHEP::mm; + return m_rdb->fwdSensor(iModuleType)->getDouble("ACTIVEHALFLENGTHFAR") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorAngularPitch(int iModuleType) const { - return m_rdb->fwdSensor(iModuleType)->getDouble("ANGULARPITCH") * CLHEP::radian; + return m_rdb->fwdSensor(iModuleType)->getDouble("ANGULARPITCH") * GeoModelKernelUnits::radian; } int @@ -149,37 +149,37 @@ SCT_ForwardModuleParameters::fwdSensorStripShift(int iModuleType) const double SCT_ForwardModuleParameters::fwdHybridThickness() const { - return m_rdb->fwdHybrid()->getDouble("THICKNESS") * CLHEP::mm; + return m_rdb->fwdHybrid()->getDouble("THICKNESS") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdHybridInnerWidth() const { - return m_rdb->fwdHybrid()->getDouble("INNERWIDTH") * CLHEP::mm; + return m_rdb->fwdHybrid()->getDouble("INNERWIDTH") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdHybridOuterWidth() const { - return m_rdb->fwdHybrid()->getDouble("OUTERWIDTH") * CLHEP::mm; + return m_rdb->fwdHybrid()->getDouble("OUTERWIDTH") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdHybridLength() const { - return m_rdb->fwdHybrid()->getDouble("LENGTH") * CLHEP::mm; + return m_rdb->fwdHybrid()->getDouble("LENGTH") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdHybridLengthToCorner() const { - return m_rdb->fwdHybrid()->getDouble("LENGTHTOCORNER") * CLHEP::mm; + return m_rdb->fwdHybrid()->getDouble("LENGTHTOCORNER") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdHybridMountPointToInnerEdge() const { - return m_rdb->fwdHybrid()->getDouble("MOUNTPOINTTOINEDGE") * CLHEP::mm; + return m_rdb->fwdHybrid()->getDouble("MOUNTPOINTTOINEDGE") * GeoModelKernelUnits::mm; } std::string @@ -194,26 +194,26 @@ SCT_ForwardModuleParameters::fwdHybridMaterial() const double SCT_ForwardModuleParameters::fwdSpineThickness(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("THICKNESS") * CLHEP::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("THICKNESS") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSpineWidth(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("WIDTH") * CLHEP::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("WIDTH") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSpineEndToModuleCenter(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("ENDTOMODULECENTER") * CLHEP::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("ENDTOMODULECENTER") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSpineEndLocatorToEndMount(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("ENDLOCATORTOENDMOUNT") * CLHEP::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("ENDLOCATORTOENDMOUNT") * GeoModelKernelUnits::mm; } @@ -230,55 +230,55 @@ SCT_ForwardModuleParameters::fwdSpineMaterial(int iModuleType) const double SCT_ForwardModuleParameters::fwdSubSpineInnerWidth(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("SUBINNERWIDTH") * CLHEP::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("SUBINNERWIDTH") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSubSpineInnerLength(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("SUBINNERLENGTH") * CLHEP::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("SUBINNERLENGTH") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSubSpineInnerRefDist(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("SUBINNERREFDIST") * CLHEP::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("SUBINNERREFDIST") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSubSpineMiddleWidth(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("SUBMIDDLEWIDTH") * CLHEP::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("SUBMIDDLEWIDTH") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSubSpineMiddleLength(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("SUBMIDDLELENGTH") * CLHEP::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("SUBMIDDLELENGTH") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSubSpineMiddleRefDist(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("SUBMIDDLEREFDIST") * CLHEP::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("SUBMIDDLEREFDIST") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSubSpineOuterWidth(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("SUBOUTERWIDTH") * CLHEP::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("SUBOUTERWIDTH") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSubSpineOuterLength(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("SUBOUTERLENGTH") * CLHEP::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("SUBOUTERLENGTH") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSubSpineOuterRefDist(int iModuleType) const { - return m_rdb->fwdSpine(iModuleType)->getDouble("SUBOUTERREFDIST") * CLHEP::mm; + return m_rdb->fwdSpine(iModuleType)->getDouble("SUBOUTERREFDIST") * GeoModelKernelUnits::mm; } std::string @@ -301,7 +301,7 @@ SCT_ForwardModuleParameters::fwdModuleNumTypes() const double SCT_ForwardModuleParameters::fwdModuleStereoAngle(int iModuleType) const { - return m_rdb->fwdModule(iModuleType)->getDouble("STEREOANGLE") * CLHEP::milliradian; + return m_rdb->fwdModule(iModuleType)->getDouble("STEREOANGLE") * GeoModelKernelUnits::milliradian; } int @@ -323,25 +323,25 @@ SCT_ForwardModuleParameters::fwdModuleUpperSideNumber(int iModuleType) const double SCT_ForwardModuleParameters::fwdModuleGlueThickness(int iModuleType) const { - return m_rdb->fwdModule(iModuleType)->getDouble("GLUETHICKNESS") * CLHEP::mm; + return m_rdb->fwdModule(iModuleType)->getDouble("GLUETHICKNESS") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdModuleMountPoint(int iModuleType) const { - return m_rdb->fwdModule(iModuleType)->getDouble("MOUNTPOINT") * CLHEP::mm; + return m_rdb->fwdModule(iModuleType)->getDouble("MOUNTPOINT") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdModuleDistBtwMountPoints(int iModuleType) const { - return m_rdb->fwdModule(iModuleType)->getDouble("DISTBTWMOUNTPOINTS") * CLHEP::mm; + return m_rdb->fwdModule(iModuleType)->getDouble("DISTBTWMOUNTPOINTS") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdModuleHybridEdgeToSpine(int iModuleType) const { - return m_rdb->fwdModule(iModuleType)->getDouble("HYBRIDEDGETOSPINE")*CLHEP::mm; + return m_rdb->fwdModule(iModuleType)->getDouble("HYBRIDEDGETOSPINE")*GeoModelKernelUnits::mm; } bool @@ -367,19 +367,19 @@ SCT_ForwardModuleParameters::fwdModuleConnectorPresent() const double SCT_ForwardModuleParameters::fwdModuleConnectorDeltaR() const { - return m_rdb->fwdModuleConnector()->getDouble("DELTAR") * CLHEP::mm; + return m_rdb->fwdModuleConnector()->getDouble("DELTAR") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdModuleConnectorRPhi() const { - return m_rdb->fwdModuleConnector()->getDouble("RPHI") * CLHEP::mm; + return m_rdb->fwdModuleConnector()->getDouble("RPHI") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdModuleConnectorThickness() const { - return m_rdb->fwdModuleConnector()->getDouble("THICKNESS") * CLHEP::mm; + return m_rdb->fwdModuleConnector()->getDouble("THICKNESS") * GeoModelKernelUnits::mm; } std::string diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ForwardParameters.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ForwardParameters.cxx index a8069626575de9df7ffd021361e0eb8f7e253970..a56ae8177ae54af028955ea37b02c1ec7539175f 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ForwardParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_ForwardParameters.cxx @@ -10,8 +10,7 @@ #include "RDBAccessSvc/IRDBRecord.h" #include "SCT_GeoModel/SCT_FSIHelper.h" - -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <iostream> #include <cmath> @@ -39,13 +38,13 @@ SCT_ForwardParameters::fwdRingNumModules(int iRing) const double SCT_ForwardParameters::fwdRingModuleStagger(int iRing) const { - return m_rdb->fwdRing(iRing)->getDouble("MODULESTAGGER") * CLHEP::mm; + return m_rdb->fwdRing(iRing)->getDouble("MODULESTAGGER") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdRingPhiOfRefModule(int iRing) const { - return m_rdb->fwdRing(iRing)->getDouble("PHIOFREFMODULE") * CLHEP::deg; + return m_rdb->fwdRing(iRing)->getDouble("PHIOFREFMODULE") * GeoModelKernelUnits::deg; } @@ -58,7 +57,7 @@ SCT_ForwardParameters::fwdRingUsualRingSide(int iRing) const double SCT_ForwardParameters::fwdRingDistToDiscCenter(int iRing) const { - return m_rdb->fwdRing(iRing)->getDouble("RINGTODISCCENTER") * CLHEP::mm; + return m_rdb->fwdRing(iRing)->getDouble("RINGTODISCCENTER") * GeoModelKernelUnits::mm; } @@ -69,7 +68,7 @@ SCT_ForwardParameters::fwdRingDistToDiscCenter(int iRing) const double SCT_ForwardParameters::fwdWheelZPosition(int iWheel) const { - return m_rdb->fwdWheel(iWheel)->getDouble("ZPOSITION") * CLHEP::mm; + return m_rdb->fwdWheel(iWheel)->getDouble("ZPOSITION") * GeoModelKernelUnits::mm; } // Returns +/-1 @@ -168,19 +167,19 @@ SCT_ForwardParameters::fwdWheelModuleType(int iWheel, int iRing, int ec) const double SCT_ForwardParameters::fwdDiscSupportInnerRadius() const { - return m_rdb->fwdDiscSupport()->getDouble("INNERRADIUS") * CLHEP::mm; + return m_rdb->fwdDiscSupport()->getDouble("INNERRADIUS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdDiscSupportOuterRadius() const { - return m_rdb->fwdDiscSupport()->getDouble("OUTERRADIUS") * CLHEP::mm; + return m_rdb->fwdDiscSupport()->getDouble("OUTERRADIUS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdDiscSupportThickness() const { - return m_rdb->fwdDiscSupport()->getDouble("THICKNESS") * CLHEP::mm; + return m_rdb->fwdDiscSupport()->getDouble("THICKNESS") * GeoModelKernelUnits::mm; } std::string @@ -207,7 +206,7 @@ SCT_ForwardParameters::fwdPatchPanelType(int iLoc) const double SCT_ForwardParameters::fwdPatchPanelLocAngle(int iLoc) const { - return m_rdb->fwdPatchPanelLoc(iLoc)->getDouble("LOCANGLE") * CLHEP::degree; + return m_rdb->fwdPatchPanelLoc(iLoc)->getDouble("LOCANGLE") * GeoModelKernelUnits::degree; } bool @@ -225,26 +224,26 @@ SCT_ForwardParameters::fwdNumPatchPanelTypes() const double SCT_ForwardParameters::fwdPatchPanelThickness(int iType) const { - return m_rdb->fwdPatchPanel(iType)->getDouble("THICKNESS") * CLHEP::mm; + return m_rdb->fwdPatchPanel(iType)->getDouble("THICKNESS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdPatchPanelMidRadius(int iType) const { - return m_rdb->fwdPatchPanel(iType)->getDouble("MIDRADIUS") * CLHEP::mm; + return m_rdb->fwdPatchPanel(iType)->getDouble("MIDRADIUS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdPatchPanelDeltaR(int iType) const { - return m_rdb->fwdPatchPanel(iType)->getDouble("DELTAR") * CLHEP::mm; + return m_rdb->fwdPatchPanel(iType)->getDouble("DELTAR") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdPatchPanelRPhi(int iType) const { - return m_rdb->fwdPatchPanel(iType)->getDouble("RPHI") * CLHEP::mm; + return m_rdb->fwdPatchPanel(iType)->getDouble("RPHI") * GeoModelKernelUnits::mm; } std::string @@ -270,19 +269,19 @@ SCT_ForwardParameters::fwdPPConnectorPresent() const double SCT_ForwardParameters::fwdPPConnectorThickness() const { - return m_rdb->fwdPPConnector()->getDouble("THICKNESS") * CLHEP::mm; + return m_rdb->fwdPPConnector()->getDouble("THICKNESS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdPPConnectorDeltaR() const { - return m_rdb->fwdPPConnector()->getDouble("DELTAR") * CLHEP::mm; + return m_rdb->fwdPPConnector()->getDouble("DELTAR") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdPPConnectorRPhi() const { - return m_rdb->fwdPPConnector()->getDouble("RPHI") * CLHEP::mm; + return m_rdb->fwdPPConnector()->getDouble("RPHI") * GeoModelKernelUnits::mm; } std::string @@ -308,19 +307,19 @@ SCT_ForwardParameters::fwdPPCoolingPresent() const double SCT_ForwardParameters::fwdPPCoolingThickness() const { - return m_rdb->fwdPPCooling()->getDouble("THICKNESS") * CLHEP::mm; + return m_rdb->fwdPPCooling()->getDouble("THICKNESS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdPPCoolingDeltaR() const { - return m_rdb->fwdPPCooling()->getDouble("DELTAR") * CLHEP::mm; + return m_rdb->fwdPPCooling()->getDouble("DELTAR") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdPPCoolingRPhi() const { - return m_rdb->fwdPPCooling()->getDouble("RPHI") * CLHEP::mm; + return m_rdb->fwdPPCooling()->getDouble("RPHI") * GeoModelKernelUnits::mm; } std::string @@ -348,25 +347,25 @@ SCT_ForwardParameters::fwdCoolingBlockMainOrSecondary(int iType) const double SCT_ForwardParameters::fwdCoolingBlockDeltaR(int iType) const { - return m_rdb->fwdCoolingBlock(iType)->getDouble("DELTAR") * CLHEP::mm; + return m_rdb->fwdCoolingBlock(iType)->getDouble("DELTAR") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdCoolingBlockRPhi(int iType) const { - return m_rdb->fwdCoolingBlock(iType)->getDouble("RPHI") * CLHEP::mm; + return m_rdb->fwdCoolingBlock(iType)->getDouble("RPHI") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdCoolingBlockThickness(int iType) const { - return m_rdb->fwdCoolingBlock(iType)->getDouble("THICKNESS") * CLHEP::mm; + return m_rdb->fwdCoolingBlock(iType)->getDouble("THICKNESS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdCoolingBlockOffsetFromDisc(int iType) const { - return m_rdb->fwdCoolingBlock(iType)->getDouble("OFFSETFROMDISC") * CLHEP::mm; + return m_rdb->fwdCoolingBlock(iType)->getDouble("OFFSETFROMDISC") * GeoModelKernelUnits::mm; } std::string @@ -382,19 +381,19 @@ SCT_ForwardParameters::fwdCoolingBlockMaterial(int iType) const double SCT_ForwardParameters::fwdDiscPowerTapeInnerRadius(int iRing) const { - return m_rdb->fwdRingServices(iRing)->getDouble("POWERTAPEINNERRADIUS") * CLHEP::mm; + return m_rdb->fwdRingServices(iRing)->getDouble("POWERTAPEINNERRADIUS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdDiscPowerTapeOuterRadius(int iRing) const { - return m_rdb->fwdRingServices(iRing)->getDouble("POWERTAPEOUTERRADIUS") * CLHEP::mm; + return m_rdb->fwdRingServices(iRing)->getDouble("POWERTAPEOUTERRADIUS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdDiscPowerTapeThickness(int iRing) const { - return m_rdb->fwdRingServices(iRing)->getDouble("POWERTAPETHICKNESS") * CLHEP::mm; + return m_rdb->fwdRingServices(iRing)->getDouble("POWERTAPETHICKNESS") * GeoModelKernelUnits::mm; } std::string @@ -411,19 +410,19 @@ SCT_ForwardParameters::fwdDiscPowerTapeMaterial(int iRing) const double SCT_ForwardParameters::fwdRingCoolingInnerRadius(int iRing) const { - return m_rdb->fwdRingServices(iRing)->getDouble("COOLINGINNERRADIUS") * CLHEP::mm; + return m_rdb->fwdRingServices(iRing)->getDouble("COOLINGINNERRADIUS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdRingCoolingOuterRadius(int iRing) const { - return m_rdb->fwdRingServices(iRing)->getDouble("COOLINGOUTERRADIUS") * CLHEP::mm; + return m_rdb->fwdRingServices(iRing)->getDouble("COOLINGOUTERRADIUS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdRingCoolingThickness(int iRing) const { - return m_rdb->fwdRingServices(iRing)->getDouble("COOLINGTHICKNESS") * CLHEP::mm; + return m_rdb->fwdRingServices(iRing)->getDouble("COOLINGTHICKNESS") * GeoModelKernelUnits::mm; } std::string @@ -449,13 +448,13 @@ SCT_ForwardParameters::fwdDiscFixationPresent() const double SCT_ForwardParameters::fwdDiscFixationThickness() const { - return m_rdb->fwdDiscFixation()->getDouble("THICKNESS") * CLHEP::mm; + return m_rdb->fwdDiscFixation()->getDouble("THICKNESS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdDiscFixationRadius() const { - return m_rdb->fwdDiscFixation()->getDouble("RADIUS") * CLHEP::mm; + return m_rdb->fwdDiscFixation()->getDouble("RADIUS") * GeoModelKernelUnits::mm; } std::string @@ -470,25 +469,25 @@ SCT_ForwardParameters::fwdDiscFixationMaterial() const double SCT_ForwardParameters::fwdSupportFrameRadialThickness() const { - return m_rdb->fwdServices()->getDouble("SUPPORTFRAMEDELTAR") * CLHEP::mm; + return m_rdb->fwdServices()->getDouble("SUPPORTFRAMEDELTAR") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdSupportFrameInnerRadius() const { - return m_rdb->fwdServices()->getDouble("SUPPORTFRAMEINNERRAD") * CLHEP::mm; + return m_rdb->fwdServices()->getDouble("SUPPORTFRAMEINNERRAD") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdSupportFrameZMin() const { - return m_rdb->fwdServices()->getDouble("SUPPORTFRAMEZMIN") * CLHEP::mm; + return m_rdb->fwdServices()->getDouble("SUPPORTFRAMEZMIN") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdSupportFrameZMax() const { - return m_rdb->fwdServices()->getDouble("SUPPORTFRAMEZMAX") * CLHEP::mm; + return m_rdb->fwdServices()->getDouble("SUPPORTFRAMEZMAX") * GeoModelKernelUnits::mm; } std::string @@ -503,7 +502,7 @@ SCT_ForwardParameters::fwdSupportFrameMaterial() const double SCT_ForwardParameters::fwdCoolingPipeRadius() const { - return m_rdb->fwdServices()->getDouble("COOLINGPIPERADIUS") * CLHEP::mm; + return m_rdb->fwdServices()->getDouble("COOLINGPIPERADIUS") * GeoModelKernelUnits::mm; } std::string @@ -518,7 +517,7 @@ SCT_ForwardParameters::fwdCoolingPipeMaterial() const double SCT_ForwardParameters::fwdPowerTapeCrossSectArea() const { - return m_rdb->fwdServices()->getDouble("POWERTAPECROSSSECT") * CLHEP::mm2; + return m_rdb->fwdServices()->getDouble("POWERTAPECROSSSECT") * GeoModelKernelUnits::mm2; } @@ -540,21 +539,21 @@ SCT_ForwardParameters::fwdFSINumGeomTypes() const double SCT_ForwardParameters::fwdFSIGeomDeltaR(int iType) const { - return m_rdb->fwdFSIType(iType)->getDouble("DELTAR") * CLHEP::mm; + return m_rdb->fwdFSIType(iType)->getDouble("DELTAR") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdFSIGeomRPhi(int iType) const { - return m_rdb->fwdFSIType(iType)->getDouble("RPHI") * CLHEP::mm; + return m_rdb->fwdFSIType(iType)->getDouble("RPHI") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdFSIGeomThickness(int iType) const { // Fix for SCT-DC3-03. May be removed when ATLAS-DC3-07 is obsolete. - if (iType == 0 && m_rdb->versionTag() == "SCT-DC3-03") return 26*CLHEP::mm; - return m_rdb->fwdFSIType(iType)->getDouble("THICKNESS") * CLHEP::mm; + if (iType == 0 && m_rdb->versionTag() == "SCT-DC3-03") return 26*GeoModelKernelUnits::mm; + return m_rdb->fwdFSIType(iType)->getDouble("THICKNESS") * GeoModelKernelUnits::mm; } std::string @@ -567,8 +566,8 @@ double SCT_ForwardParameters::fwdFSIGeomZOffset(int iType) const { // Fix for SCT-DC3-03. May be removed when ATLAS-DC3-07 is obsolete. - if (iType == 0 && m_rdb->versionTag() == "SCT-DC3-03") return 22*CLHEP::mm; - return m_rdb->fwdFSIType(iType)->getDouble("ZOFFSET") * CLHEP::mm; + if (iType == 0 && m_rdb->versionTag() == "SCT-DC3-03") return 22*GeoModelKernelUnits::mm; + return m_rdb->fwdFSIType(iType)->getDouble("ZOFFSET") * GeoModelKernelUnits::mm; } @@ -617,7 +616,7 @@ SCT_ForwardParameters::fwdCylinderServiceLocName(int iLoc) const double SCT_ForwardParameters::fwdCylinderServiceLocAngle(int iLoc) const { - return m_rdb->fwdCylServLoc(iLoc)->getDouble("LOCANGLE") * CLHEP::degree; + return m_rdb->fwdCylServLoc(iLoc)->getDouble("LOCANGLE") * GeoModelKernelUnits::degree; } int @@ -641,13 +640,13 @@ SCT_ForwardParameters::fwdCylinderServiceMaterial(int iType) const double SCT_ForwardParameters::fwdCylinderServiceDeltaR(int iType) const { - return m_rdb->fwdCylServ(iType)->getDouble("DELTAR") * CLHEP::mm; + return m_rdb->fwdCylServ(iType)->getDouble("DELTAR") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdCylinderServiceRPhi(int iType) const { - return m_rdb->fwdCylServ(iType)->getDouble("RPHI") * CLHEP::mm; + return m_rdb->fwdCylServ(iType)->getDouble("RPHI") * GeoModelKernelUnits::mm; } // @@ -668,25 +667,25 @@ SCT_ForwardParameters::fwdThermalShieldMaterial(int iElement) const double SCT_ForwardParameters::fwdThermalShieldInnerRadius(int iElement) const { - return m_rdb->fwdThermalShield(iElement)->getDouble("INNERRADIUS") * CLHEP::mm; + return m_rdb->fwdThermalShield(iElement)->getDouble("INNERRADIUS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdThermalShieldOuterRadius(int iElement) const { - return m_rdb->fwdThermalShield(iElement)->getDouble("OUTERRADIUS") * CLHEP::mm; + return m_rdb->fwdThermalShield(iElement)->getDouble("OUTERRADIUS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdThermalShieldZMin(int iElement) const { - return m_rdb->fwdThermalShield(iElement)->getDouble("ZMIN") * CLHEP::mm; + return m_rdb->fwdThermalShield(iElement)->getDouble("ZMIN") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdThermalShieldZMax(int iElement) const { - return m_rdb->fwdThermalShield(iElement)->getDouble("ZMAX") * CLHEP::mm; + return m_rdb->fwdThermalShield(iElement)->getDouble("ZMAX") * GeoModelKernelUnits::mm; } @@ -702,31 +701,31 @@ SCT_ForwardParameters::fwdNumWheels() const double SCT_ForwardParameters::fwdInnerRadius() const { - return m_rdb->fwdGeneral()->getDouble("INNERRADIUS") * CLHEP::mm; + return m_rdb->fwdGeneral()->getDouble("INNERRADIUS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdOuterRadius() const { - return m_rdb->fwdGeneral()->getDouble("OUTERRADIUS") * CLHEP::mm; + return m_rdb->fwdGeneral()->getDouble("OUTERRADIUS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdZMin() const { - return m_rdb->fwdGeneral()->getDouble("ZMIN") * CLHEP::mm; + return m_rdb->fwdGeneral()->getDouble("ZMIN") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdZMax() const { - return m_rdb->fwdGeneral()->getDouble("ZMAX") * CLHEP::mm; + return m_rdb->fwdGeneral()->getDouble("ZMAX") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdTrtGapPos() const { - return m_rdb->fwdGeneral()->getDouble("TRTGAPPOS") * CLHEP::mm; + return m_rdb->fwdGeneral()->getDouble("TRTGAPPOS") * GeoModelKernelUnits::mm; } // @@ -752,19 +751,19 @@ SCT_ForwardParameters::fwdOptoHarnessDiscType(int index) const double SCT_ForwardParameters::fwdOptoHarnessInnerRadius(int index) const { - return m_rdb->fwdOptoHarness(index)->getDouble("INNERRADIUS") * CLHEP::mm; + return m_rdb->fwdOptoHarness(index)->getDouble("INNERRADIUS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdOptoHarnessOuterRadius(int index) const { - return m_rdb->fwdOptoHarness(index)->getDouble("OUTERRADIUS") * CLHEP::mm; + return m_rdb->fwdOptoHarness(index)->getDouble("OUTERRADIUS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdOptoHarnessThickness(int index) const { - return m_rdb->fwdOptoHarness(index)->getDouble("THICKNESS") * CLHEP::mm; + return m_rdb->fwdOptoHarness(index)->getDouble("THICKNESS") * GeoModelKernelUnits::mm; } std::string diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCoolingBlock.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCoolingBlock.cxx index 7bda26a10105c3bc8101ac2611e3e663fa5e6193..b3420cf13797aabf14b2c13852b2fb6eb2a869d2 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCoolingBlock.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCoolingBlock.cxx @@ -13,7 +13,9 @@ #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" + +#include <iostream> SCT_FwdCoolingBlock::SCT_FwdCoolingBlock(const std::string & name, int hiLo, int mainOrSecondary) : SCT_SharedComponentFactory(name), m_hiLo(hiLo), m_mainSec(mainOrSecondary) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCoolingPipe.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCoolingPipe.cxx index 490698dcc643e1a4fce38a28c8434f2ff33a1b07..2365854c61dfe46327ee4adacf05ede013b499bb 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCoolingPipe.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCoolingPipe.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <cmath> @@ -47,13 +47,13 @@ GeoVPhysVol * SCT_FwdCoolingPipe::build() { // Calculate the dimensions. - // area = CLHEP::pi*(pipeRadius)^2 * numPipes - // also area = 2*CLHEP::pi*r_ave*delta_r approx= 2 * CLHEP::pi * rMin * delta_r + // area = GeoModelKernelUnits::pi*(pipeRadius)^2 * numPipes + // also area = 2*GeoModelKernelUnits::pi*r_ave*delta_r approx= 2 * GeoModelKernelUnits::pi * rMin * delta_r // solve for delta_r // m_thickness = delta_r - double area = CLHEP::pi * sqr(m_pipeRadius) * m_numPipes; - m_thickness = area/(2. * CLHEP::pi * m_innerRadius); + double area = GeoModelKernelUnits::pi * sqr(m_pipeRadius) * m_numPipes; + m_thickness = area/(2. * GeoModelKernelUnits::pi * m_innerRadius); m_outerRadius = m_innerRadius + m_thickness; diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCylinderServices.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCylinderServices.cxx index 1be6a6d138bec23ea02343eef6457c9434b99b95..75544a45403829787034d4fe4cee5abe506c3bc8 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCylinderServices.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdCylinderServices.cxx @@ -17,10 +17,10 @@ #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" +#include "GeoModelKernel/Units.h" +#include "GeoModelKernel/GeoDefinitions.h" + + #include <sstream> @@ -136,7 +136,7 @@ SCT_FwdCylinderServices::build() double coolingDPhi = m_coolingRPhi / coolingRmin; const GeoCons* coolingShape = new GeoCons(coolingRmin, coolingRmin, coolingRmax1, coolingRmax2, 0.5 * m_length, - -0.5 * coolingDPhi * CLHEP::radian, coolingDPhi * CLHEP::radian); + -0.5 * coolingDPhi * GeoModelKernelUnits::radian, coolingDPhi * GeoModelKernelUnits::radian); const GeoLogVol * coolingLog = new GeoLogVol("CoolingPipe", coolingShape, materials.getMaterialForVolume(m_coolingMaterialName, coolingShape->volume())); GeoPhysVol * coolingPipe = new GeoPhysVol(coolingLog); @@ -146,7 +146,7 @@ SCT_FwdCylinderServices::build() double lmtRmax2 = lmtRmin + 1.8 * m_lmtDeltaR; double lmtDPhi = m_lmtRPhi / lmtRmin; const GeoCons* lmtShape = new GeoCons(lmtRmin, lmtRmin, lmtRmax1, lmtRmax2, 0.5 * m_length, - -0.5 * lmtDPhi * CLHEP::radian, lmtDPhi * CLHEP::radian); + -0.5 * lmtDPhi * GeoModelKernelUnits::radian, lmtDPhi * GeoModelKernelUnits::radian); const GeoLogVol * lmtLog = new GeoLogVol("LMT", lmtShape, materials.getMaterialForVolume(m_lmtMaterialName,lmtShape->volume())); GeoPhysVol * lmt = new GeoPhysVol(lmtLog); @@ -156,7 +156,7 @@ SCT_FwdCylinderServices::build() double lmtCoolingDPhi = m_lmtCoolingRPhi / lmtCoolingRmin; double lmtLength = m_length - 2. * m_lmtCoolingZOffset; const GeoTubs* lmtCoolingShape = new GeoTubs(lmtCoolingRmin, lmtCoolingRmax, 0.5 * lmtLength, - -0.5 * lmtCoolingDPhi * CLHEP::radian, lmtCoolingDPhi * CLHEP::radian); + -0.5 * lmtCoolingDPhi * GeoModelKernelUnits::radian, lmtCoolingDPhi * GeoModelKernelUnits::radian); const GeoLogVol * lmtCoolingLog = new GeoLogVol("LMTCooling", lmtCoolingShape, materials.getMaterialForVolume(m_lmtCoolingMaterialName,lmtCoolingShape->volume())); GeoPhysVol * lmtCooling = new GeoPhysVol(lmtCoolingLog); @@ -166,7 +166,7 @@ SCT_FwdCylinderServices::build() double fibreRmax2 = fibreRmin + 1.8 * m_fibreDeltaR; double fibreDPhi = m_fibreRPhi / fibreRmin; const GeoCons* fibreShape = new GeoCons(fibreRmin, fibreRmin, fibreRmax1, fibreRmax2, 0.5 * m_length, - -0.5 * fibreDPhi * CLHEP::radian, fibreDPhi * CLHEP::radian); + -0.5 * fibreDPhi * GeoModelKernelUnits::radian, fibreDPhi * GeoModelKernelUnits::radian); const GeoLogVol * fibreLog = new GeoLogVol("Fibres", fibreShape, materials.getMaterialForVolume(m_fibreMaterialName,fibreShape->volume())); GeoPhysVol * fibres = new GeoPhysVol(fibreLog); @@ -175,7 +175,7 @@ SCT_FwdCylinderServices::build() double nPipeRmax = nPipeRmin + m_nPipeDeltaR; double nPipeDPhi = m_nPipeRPhi / nPipeRmin; const GeoTubs* nPipeShape = new GeoTubs(nPipeRmin, nPipeRmax, 0.5 * m_length, - -0.5 * nPipeDPhi * CLHEP::radian, nPipeDPhi * CLHEP::radian); + -0.5 * nPipeDPhi * GeoModelKernelUnits::radian, nPipeDPhi * GeoModelKernelUnits::radian); const GeoLogVol * nPipeLog = new GeoLogVol("NPipe", nPipeShape, materials.getMaterialForVolume(m_nPipeMaterialName,nPipeShape->volume())); GeoPhysVol * nPipe = new GeoPhysVol(nPipeLog); @@ -184,7 +184,7 @@ SCT_FwdCylinderServices::build() double railRmax = railRmin + m_railDeltaR; double railDPhi = m_railRPhi / railRmin; const GeoTubs* railShape = new GeoTubs(railRmin, railRmax, - 0.5 * m_length, -0.5 * railDPhi * CLHEP::radian, railDPhi * CLHEP::radian); + 0.5 * m_length, -0.5 * railDPhi * GeoModelKernelUnits::radian, railDPhi * GeoModelKernelUnits::radian); const GeoLogVol * railLog = new GeoLogVol("Rail", railShape, materials.getMaterialForVolume(m_railMaterialName,railShape->volume())); GeoPhysVol * rail = new GeoPhysVol(railLog); @@ -193,43 +193,43 @@ SCT_FwdCylinderServices::build() // Cooling pipe for (unsigned int iLoc = 0; iLoc < m_coolingLocAngle.size(); iLoc++) { - double coolingAngle = m_coolingLocAngle[iLoc] + iquad * 90*CLHEP::degree; - // std::cout << "Placing cooling pipe at " << coolingAngle / CLHEP::degree << " CLHEP::degrees" << std::endl; - cylinder->add(new GeoTransform(HepGeom::RotateZ3D(coolingAngle))); + double coolingAngle = m_coolingLocAngle[iLoc] + iquad * 90*GeoModelKernelUnits::degree; + // std::cout << "Placing cooling pipe at " << coolingAngle / GeoModelKernelUnits::degree << " GeoModelKernelUnits::degrees" << std::endl; + cylinder->add(new GeoTransform(GeoTrf::RotateZ3D(coolingAngle))); cylinder->add(coolingPipe); } // Low Mass Tapes and LMT Cooling are at same phi positions for (unsigned int iLoc = 0; iLoc < m_lmtLocAngle.size(); iLoc++) { - double lmtAngle = m_lmtLocAngle[iLoc] + iquad * 90*CLHEP::degree; - // std::cout << "Placing LMT at " << lmtAngle / CLHEP::degree << " CLHEP::degrees" << std::endl; - cylinder->add(new GeoTransform(HepGeom::RotateZ3D(lmtAngle))); + double lmtAngle = m_lmtLocAngle[iLoc] + iquad * 90*GeoModelKernelUnits::degree; + // std::cout << "Placing LMT at " << lmtAngle / GeoModelKernelUnits::degree << " GeoModelKernelUnits::degrees" << std::endl; + cylinder->add(new GeoTransform(GeoTrf::RotateZ3D(lmtAngle))); cylinder->add(lmt); - cylinder->add(new GeoTransform(HepGeom::RotateZ3D(lmtAngle)*HepGeom::TranslateZ3D(m_lmtCoolingZOffset))); + cylinder->add(new GeoTransform(GeoTrf::RotateZ3D(lmtAngle)*GeoTrf::TranslateZ3D(m_lmtCoolingZOffset))); cylinder->add(lmtCooling); } // Fibres are between pairs of LMTs for (unsigned int iLoc = 0; iLoc < m_fibreLocAngle.size(); iLoc++) { - double fibreAngle = m_fibreLocAngle[iLoc] + iquad * 90*CLHEP::degree; - // std::cout << "Placing fibres at " << fibreAngle / CLHEP::degree << " CLHEP::degrees" << std::endl; - cylinder->add(new GeoTransform(HepGeom::RotateZ3D(fibreAngle))); + double fibreAngle = m_fibreLocAngle[iLoc] + iquad * 90*GeoModelKernelUnits::degree; + // std::cout << "Placing fibres at " << fibreAngle / GeoModelKernelUnits::degree << " GeoModelKernelUnits::degrees" << std::endl; + cylinder->add(new GeoTransform(GeoTrf::RotateZ3D(fibreAngle))); cylinder->add(fibres); } // N2 Pipes for (unsigned int iLoc = 0; iLoc < m_nPipeLocAngle.size(); iLoc++) { - double nPipeAngle = m_nPipeLocAngle[iLoc] + iquad * 90*CLHEP::degree; - // std::cout << "Placing N2 pipe at " << nPipeAngle / CLHEP::degree << " CLHEP::degrees" << std::endl; - cylinder->add(new GeoTransform(HepGeom::RotateZ3D(nPipeAngle))); + double nPipeAngle = m_nPipeLocAngle[iLoc] + iquad * 90*GeoModelKernelUnits::degree; + // std::cout << "Placing N2 pipe at " << nPipeAngle / GeoModelKernelUnits::degree << " GeoModelKernelUnits::degrees" << std::endl; + cylinder->add(new GeoTransform(GeoTrf::RotateZ3D(nPipeAngle))); cylinder->add(nPipe); } // Rails for (unsigned int iLoc = 0; iLoc < m_railLocAngle.size(); iLoc++) { - double railAngle = m_railLocAngle[iLoc] + iquad * 90*CLHEP::degree; - // std::cout << "Placing rail at " << railAngle / CLHEP::degree << " CLHEP::degrees" << std::endl; - cylinder->add(new GeoTransform(HepGeom::RotateZ3D(railAngle))); + double railAngle = m_railLocAngle[iLoc] + iquad * 90*GeoModelKernelUnits::degree; + // std::cout << "Placing rail at " << railAngle / GeoModelKernelUnits::degree << " GeoModelKernelUnits::degrees" << std::endl; + cylinder->add(new GeoTransform(GeoTrf::RotateZ3D(railAngle))); cylinder->add(rail); } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdDiscFixation.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdDiscFixation.cxx index 734b3ee651809fe4b39eb605be3ad2e07b828b86..0bd1309dc1643f5384805c733315c037c983cd63 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdDiscFixation.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdDiscFixation.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_FwdDiscFixation::SCT_FwdDiscFixation(const std::string & name) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdDiscPowerTape.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdDiscPowerTape.cxx index 930585f15a51a0672ac3db5849cd3f1eb5ff8be8..bb71f56acd3dcc47a878be091486c33df00c9741 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdDiscPowerTape.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdDiscPowerTape.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_FwdDiscPowerTape::SCT_FwdDiscPowerTape(const std::string & name, int iRing) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdDiscSupport.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdDiscSupport.cxx index 814773ea56d12c49e75adf6a14fcf3355edbcd3a..9e66dc2944b76834c3a4c3529ea72c8ab8ade1f6 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdDiscSupport.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdDiscSupport.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_FwdDiscSupport::SCT_FwdDiscSupport(const std::string & name, int iWheel) : SCT_SharedComponentFactory(name), m_iWheel(iWheel) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdFSI.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdFSI.cxx index 563e36f945147350503e0520a222812937544a50..98c77903a3f0ce3891165b5276435619e78a5446 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdFSI.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdFSI.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_FwdFSI::SCT_FwdFSI(const std::string & name, int type) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdHybrid.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdHybrid.cxx index 5da3902d00321a0a86c7953bfb571fed6c91e6c5..761b82e5d9d4bfb09830841a8ce4976dc523a73f 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdHybrid.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdHybrid.cxx @@ -28,11 +28,11 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" + +#include "GeoModelKernel/GeoDefinitions.h" + -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" #include <cmath> @@ -54,9 +54,9 @@ SCT_FwdHybrid::getParameters() m_materialName = parameters->fwdHybridMaterial(); - //double CLHEP::radlength; - //CLHEP::radlength = 18.8 * CLHEP::cm; - // [CLHEP::cm] for carbon (Partickle Physics Booklet) + //double GeoModelKernelUnits::radlength; + //GeoModelKernelUnits::radlength = 18.8 * GeoModelKernelUnits::cm; + // [GeoModelKernelUnits::cm] for carbon (Partickle Physics Booklet) m_thickness = parameters->fwdHybridThickness(); m_thickness2 = m_thickness; @@ -96,7 +96,7 @@ GeoVPhysVol * SCT_FwdHybrid::build() // double position = zsmi[m_ringType].mountd - zhyb->hybysh + (zhyb->hyby - zhyb->hybycor) / 2.; if (m_ringType == 0) { position = -1 * position; }; // outer module, hybrid in inner side - const GeoShape & hybridPos1 = (*hybridShape2 << HepGeom::TranslateZ3D(position)); + const GeoShape & hybridPos1 = (*hybridShape2 << GeoTrf::TranslateZ3D(position)); position = parameters->fwdModuleMountPoint(m_ringType) - (m_mountPointToInnerEdge) + m_length - 0.5 * parameters->fwdHybridLengthToCorner(); @@ -105,10 +105,10 @@ GeoVPhysVol * SCT_FwdHybrid::build() position = -1 * position; }; double rotation = 0.; - if (m_ringType == 0) rotation = 180. * CLHEP::deg; + if (m_ringType == 0) rotation = 180. * GeoModelKernelUnits::deg; - const GeoShape & hybridPos2 = (*hybridShape1 << HepGeom::RotateX3D(rotation) - << HepGeom::TranslateZ3D(position) ); + const GeoShape & hybridPos2 = (*hybridShape1 << GeoTrf::RotateX3D(rotation) + << GeoTrf::TranslateZ3D(position) ); SCT_MaterialManager materials; diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModule.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModule.cxx index ae995a69fb794baa8f9ebda3bc6914a54764fe3e..7c5baa4f2af3f18d3289ded5ce1c8ac49a39a911 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModule.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModule.cxx @@ -37,11 +37,11 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" + + -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" #include <cmath> #include <sstream> @@ -104,42 +104,42 @@ const GeoLogVol * SCT_FwdModule::preBuild() const SCT_GeneralParameters * generalParameters = geometryManager()->generalParameters(); double safety = generalParameters->safety(); - double safetyTmp = safety * CLHEP::cm; // For compatibility with minor bug in older version - safety already in CLHEP units; + double safetyTmp = safety * GeoModelKernelUnits::cm; // For compatibility with minor bug in older version - safety already in CLHEP units; - // module_length = (zhyb->hyby - zhyb->hybysh + zsmi[m_ringType].mountd2 + 0.33 ) * CLHEP::cm + safety; + // module_length = (zhyb->hyby - zhyb->hybysh + zsmi[m_ringType].mountd2 + 0.33 ) * GeoModelKernelUnits::cm + safety; // Distance from outer bybrid edge to outer spine edge. - // FIXME: The 1.05CLHEP::mm is not needed - double moduleLength = m_hybrid->mountPointToOuterEdge() + m_mountPointToCenter + m_spine->moduleCenterToEnd() + 1.05 * CLHEP::mm; + // FIXME: The 1.05GeoModelKernelUnits::mm is not needed + double moduleLength = m_hybrid->mountPointToOuterEdge() + m_mountPointToCenter + m_spine->moduleCenterToEnd() + 1.05 * GeoModelKernelUnits::mm; m_length = moduleLength + safety; // We add a bit of safety for the envelope - // module_thickness = (zhyb->hybz0 * 2 + safety) * CLHEP::cm; + // module_thickness = (zhyb->hybz0 * 2 + safety) * GeoModelKernelUnits::cm; double sensorEnvelopeThickness = 2 * m_sensor->thickness() + m_spine->thickness() + 2 * m_glueThickness; m_thickness = std::max(sensorEnvelopeThickness, m_hybrid->thickness()); - // module_widthInner = ((zsmo->subdq + zssp[m_ringType].ssp0l + 0.325) * 2.+ 0.7 + safety)*CLHEP::cm; // upto to NOVA_760 - // module_widthOuter = ((zsmo->subdq + zssp[m_ringType].ssp2l + 0.325) * 2.+ 0.7 + safety)*CLHEP::cm; // upto to NOVA_760 + // module_widthInner = ((zsmo->subdq + zssp[m_ringType].ssp0l + 0.325) * 2.+ 0.7 + safety)*GeoModelKernelUnits::cm; // upto to NOVA_760 + // module_widthOuter = ((zsmo->subdq + zssp[m_ringType].ssp2l + 0.325) * 2.+ 0.7 + safety)*GeoModelKernelUnits::cm; // upto to NOVA_760 - //module_widthInner = ((zsmo->subdq + zssp[m_ringType].ssp0l) * 2.+ 0.7 + safety)*CLHEP::cm; - //module_widthOuter = ((zsmo->subdq + zssp[m_ringType].ssp2l) * 2.+ 0.7 + safety)*CLHEP::cm; + //module_widthInner = ((zsmo->subdq + zssp[m_ringType].ssp0l) * 2.+ 0.7 + safety)*GeoModelKernelUnits::cm; + //module_widthOuter = ((zsmo->subdq + zssp[m_ringType].ssp2l) * 2.+ 0.7 + safety)*GeoModelKernelUnits::cm; - m_widthInner = (m_spine->width() + 2 * m_subspineL->innerWidth() + 0.7*CLHEP::cm) + safetyTmp; - m_widthOuter = (m_spine->width() + 2 * m_subspineL->outerWidth() + 0.7*CLHEP::cm) + safetyTmp; + m_widthInner = (m_spine->width() + 2 * m_subspineL->innerWidth() + 0.7*GeoModelKernelUnits::cm) + safetyTmp; + m_widthOuter = (m_spine->width() + 2 * m_subspineL->outerWidth() + 0.7*GeoModelKernelUnits::cm) + safetyTmp; if (m_ringType == 3 ) { - // module_widthOuter = (( zsmo->subdq + zssp[m_ringType].ssp2l + 0.325) * 2.+ 1.6 + safety)*CLHEP::cm; // upto to NOVA_760 - // module_widthOuter = (( zsmo->subdq + zssp[m_ringType].ssp2l) * 2.+ 1.6 + safety)*CLHEP::cm; - m_widthOuter = m_spine->width() + 2 * m_subspineL->outerWidth() + 1.6*CLHEP::cm + safetyTmp; + // module_widthOuter = (( zsmo->subdq + zssp[m_ringType].ssp2l + 0.325) * 2.+ 1.6 + safety)*GeoModelKernelUnits::cm; // upto to NOVA_760 + // module_widthOuter = (( zsmo->subdq + zssp[m_ringType].ssp2l) * 2.+ 1.6 + safety)*GeoModelKernelUnits::cm; + m_widthOuter = m_spine->width() + 2 * m_subspineL->outerWidth() + 1.6*GeoModelKernelUnits::cm + safetyTmp; } // Calculate module shift. Distance between module physics center and center of envelope. int hybridSign = m_hybridIsOnInnerEdge ? +1: -1; - //module_shift = (zhyb->hyby - zhyb->hybysh + zsmi[m_ringType].mountd + 0.05)*CLHEP::cm; + //module_shift = (zhyb->hyby - zhyb->hybysh + zsmi[m_ringType].mountd + 0.05)*GeoModelKernelUnits::cm; //module_shift = hybrid * (module_length / 2. - module_shift); - double moduleCenterToHybridOuterEdge = m_hybrid->mountPointToOuterEdge() + m_mountPointToCenter + 0.5*CLHEP::mm; - //FIXME: Should be: (ie don't need the 0.5CLHEP::mm) + double moduleCenterToHybridOuterEdge = m_hybrid->mountPointToOuterEdge() + m_mountPointToCenter + 0.5*GeoModelKernelUnits::mm; + //FIXME: Should be: (ie don't need the 0.5GeoModelKernelUnits::mm) // double moduleCenterToHybridOuterEdge = m_hybrid->mountPointToOuterEdge() + m_mountPointToCenter ; m_moduleShift = hybridSign * (0.5 * m_length - moduleCenterToHybridOuterEdge); @@ -161,7 +161,7 @@ const GeoLogVol * SCT_FwdModule::preBuild() const GeoTrd * moduleEnvelopeShape = new GeoTrd(0.5 * m_thickness, 0.5 * m_thickness, 0.5 * m_widthInner, 0.5 * m_widthOuter, 0.5 * m_length); - const GeoShapeShift & moduleEnvelope = (*moduleEnvelopeShape << HepGeom::TranslateZ3D(m_moduleShift) ); + const GeoShapeShift & moduleEnvelope = (*moduleEnvelopeShape << GeoTrf::TranslateZ3D(m_moduleShift) ); SCT_MaterialManager materials; GeoLogVol * moduleLog = new GeoLogVol(getName(), &moduleEnvelope, materials.gasMaterial()); @@ -194,14 +194,13 @@ GeoVPhysVol * SCT_FwdModule::build(SCT_Identifier id) const double rotation; positionX =-(0.5*m_spine->thickness() + m_glueThickness + 0.5*m_sensor->thickness()); rotation = 0.5 * m_stereoAngle; - CLHEP::Hep3Vector vecB(positionX,0,0); - CLHEP::HepRotation rotB; - rotB.rotateZ(180*CLHEP::degree); // Rotate so that X axis goes from backside to implant side - rotB.rotateX(rotation); + GeoTrf::Translation3D vecB(positionX,0,0); + // Rotate so that X axis goes from backside to implant side + GeoTrf::Transform3D rotB = GeoTrf::RotateX3D(rotation)*GeoTrf::RotateZ3D(180*GeoModelKernelUnits::degree); // First translate in z (only non-zero for truncated middle) // Then rotate and then translate in x. GeoAlignableTransform *bottomTransform - = new GeoAlignableTransform(HepGeom::Transform3D(rotB,vecB)*HepGeom::TranslateZ3D(positionZ)); + = new GeoAlignableTransform(GeoTrf::Transform3D(vecB*rotB)*GeoTrf::TranslateZ3D(positionZ)); int bottomSideNumber = (m_upperSide) ? 0 : 1; id.setSide(bottomSideNumber); @@ -216,21 +215,20 @@ GeoVPhysVol * SCT_FwdModule::build(SCT_Identifier id) const if (m_ringType == 2) { // Place glass pieces in place of sensor - module->add(new GeoTransform(HepGeom::Transform3D(rotB,vecB))); + module->add(new GeoTransform(GeoTrf::Transform3D(vecB*rotB))); module->add(m_sensor->getInactive()); } // Position top (x>0) sensor positionX=-positionX; rotation=-rotation; - CLHEP::HepRotation rotT; - //rotT.rotateZ(180*CLHEP::degree); // Rotate so that X axis goes from implant side to backside - rotT.rotateX(rotation); - CLHEP::Hep3Vector vecT(positionX,0,0); + GeoTrf::RotateX3D rotT(rotation); + //rotT.rotateZ(180*GeoModelKernelUnits::degree); // Rotate so that X axis goes from implant side to backside + GeoTrf::Translation3D vecT(positionX,0,0); // First translate in z (only non-zero for truncated middle) // Then rotate and then translate in x. GeoAlignableTransform *topTransform - = new GeoAlignableTransform(HepGeom::Transform3D(rotT,vecT)*HepGeom::TranslateZ3D(positionZ)); + = new GeoAlignableTransform(GeoTrf::Transform3D(vecT*rotT)*GeoTrf::TranslateZ3D(positionZ)); int topSideNumber = m_upperSide; id.setSide(topSideNumber); @@ -244,7 +242,7 @@ GeoVPhysVol * SCT_FwdModule::build(SCT_Identifier id) const detectorManager()->addAlignableTransform(0, id.getWaferId(), topTransform, topSensorPV); if (m_ringType == 2) { // Place glass pieces in place of sensor - module->add(new GeoTransform(HepGeom::Transform3D(rotT,vecT))); + module->add(new GeoTransform(GeoTrf::Transform3D(vecT*rotT))); module->add(m_sensor->getInactive()); }; diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModuleConnector.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModuleConnector.cxx index df662b0483bf80eea2f6e2cf6c9e8d63c372b801..d2428723b1e563db1698818b1d929e412ce32b8b 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModuleConnector.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdModuleConnector.cxx @@ -14,8 +14,7 @@ #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoShape.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Units/PhysicalConstants.h" // For pi +#include "GeoModelKernel/Units.h" #include <cmath> #include <iostream> @@ -49,13 +48,13 @@ SCT_FwdModuleConnector::build() const GeoBox * moduleConnShape = new GeoBox(0.5 * m_thickness, 0.5 * m_rphi, 0.5 * m_deltaR); m_material = materials.getMaterialForVolume(m_materialName, moduleConnShape->volume()); // std::cout << "Material = " << m_material->getName() << std::endl; - // std::cout << "Density = " << m_material->getDensity()/(gram/CLHEP::cm3) << std::endl; + // std::cout << "Density = " << m_material->getDensity()/(gram/GeoModelKernelUnits::cm3) << std::endl; // Shift to correct position within module double xposition = 0.5 * (parameters->fwdHybridThickness() + m_thickness); double zposition = parameters->fwdModuleMountPoint(m_ringType) - parameters->fwdHybridMountPointToInnerEdge() + parameters->fwdHybridLength() - 0.5*(m_deltaR); if (m_ringType == 0) { zposition = -1 * zposition; }; // outer module, hybrid in inner side - const GeoShape & connectorPos = (*moduleConnShape << HepGeom::Translate3D(xposition,0.,zposition)); + const GeoShape & connectorPos = (*moduleConnShape << GeoTrf::Translate3D(xposition,0.,zposition)); const GeoLogVol * moduleConnLog = new GeoLogVol(getName(), &connectorPos, m_material); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdOptoHarness.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdOptoHarness.cxx index deed889f44ec87eb541b847f5ee7b9f7d7a3fefa..422f0087e19c0869b35b9a8c25d6aba30f589e71 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdOptoHarness.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdOptoHarness.cxx @@ -12,8 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Units/PhysicalConstants.h" // For pi +#include "GeoModelKernel/Units.h" #include <cmath> #include <iostream> @@ -59,7 +58,7 @@ SCT_FwdOptoHarness::build() m_material = materials.getMaterialForVolume(m_materialName, optoHarnessShape->volume()); // m_material = materials.getMaterial(m_materialName); // cout << "Material = " << m_material->getName() << endl; - // cout << "Density = " << m_material->getDensity()/(gram/CLHEP::cm3) << endl; + // cout << "Density = " << m_material->getDensity()/(gram/GeoModelKernelUnits::cm3) << endl; const GeoLogVol * optoHarnessLog = new GeoLogVol(getName(), optoHarnessShape, m_material); GeoPhysVol * optoHarness = new GeoPhysVol(optoHarnessLog); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPPConnector.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPPConnector.cxx index 1598f0d413315e69cc497e5980d2a7d891db8f15..29b530629e481c1c1773e5e48197a28edd04c905 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPPConnector.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPPConnector.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_FwdPPConnector::SCT_FwdPPConnector(const std::string & name) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPPCooling.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPPCooling.cxx index 0c4a4e0135d08cc90728bfe7f633747f278339ae..ef6c3b76ee745e00f9d99f57d538b72827b85493 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPPCooling.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPPCooling.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_FwdPPCooling::SCT_FwdPPCooling(const std::string & name) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPatchPanel.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPatchPanel.cxx index c7e3982af68cae85953b0361c6f5a936f313d83b..514a6bf0270a66836b51eccea72821be89e005c3 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPatchPanel.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPatchPanel.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_FwdPatchPanel::SCT_FwdPatchPanel(const std::string & name, int type) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPowerTape.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPowerTape.cxx index 5bceb97faaacab8bab1ca4dbbb6e0066be425081..136cd3e68c9e3e7b2d40af2281d2e8cc8bbab7f5 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPowerTape.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdPowerTape.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <cmath> @@ -45,11 +45,11 @@ GeoVPhysVol * SCT_FwdPowerTape::build() { // Calculate the dimensions. - // The area = 2*CLHEP::pi*r_ave*delta_r approx= 2 * CLHEP::pi * rMin * delta_r + // The area = 2*GeoModelKernelUnits::pi*r_ave*delta_r approx= 2 * GeoModelKernelUnits::pi * rMin * delta_r // where m_thickness = delta_r double area = m_crossSectArea * m_numModules; - m_thickness = area/(2. * CLHEP::pi * m_innerRadius); + m_thickness = area/(2. * GeoModelKernelUnits::pi * m_innerRadius); m_outerRadius = m_innerRadius + m_thickness; // Make the support disk. A simple tube. diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdRing.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdRing.cxx index 53d81d14de53c1dc23acc0fa341e1a7452b61238..d7194c036ad7787c3eb47ef65bc32839b9d35c79 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdRing.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdRing.cxx @@ -25,10 +25,10 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" +#include "GeoModelKernel/Units.h" +#include "GeoModelKernel/GeoDefinitions.h" + + #include <sstream> #include <cmath> @@ -128,8 +128,8 @@ SCT_FwdRing::preBuild() // If disc is rotated then recalculate the angle. // It assumed the disc is rotated around the Y axis. // TODO: Check this assumption. - if (m_discRotated) angle = CLHEP::pi - angle; - double divisionAngle = 2*CLHEP::pi / m_numModules; + if (m_discRotated) angle = GeoModelKernelUnits::pi - angle; + double divisionAngle = 2*GeoModelKernelUnits::pi / m_numModules; // Now we choose module 0 as the first module with -0.5 * divAngle < phi <= 0.5 * divAngle double moduleCount = angle / divisionAngle; @@ -140,7 +140,7 @@ SCT_FwdRing::preBuild() // Determine numbering for -ve endcap. // This is for a rotation around Y axis. // After rotation we want the first module closest to phi = 0. - double angleNegEC = CLHEP::pi - m_startAngle; + double angleNegEC = GeoModelKernelUnits::pi - m_startAngle; double moduleCountNegEC = angleNegEC / divisionAngle; m_moduleZero = static_cast<int>(floor(moduleCountNegEC + 0.5 - 0.0001)); @@ -151,16 +151,16 @@ SCT_FwdRing::preBuild() // std::cout << "RingType, RingSide, Stereo, rotated = " << m_iRing << " " << m_ringSide << " " // << m_stereoSign << " " << m_discRotated << std::endl; - // std::cout << "Ref Start angle and stagger " << m_refStartAngle/CLHEP::deg << " " << m_refFirstStagger << std::endl; - // std::cout << "First Start angle and stagger " << m_startAngle/CLHEP::deg << " " << m_firstStagger << std::endl; + // std::cout << "Ref Start angle and stagger " << m_refStartAngle/GeoModelKernelUnits::deg << " " << m_refFirstStagger << std::endl; + // std::cout << "First Start angle and stagger " << m_startAngle/GeoModelKernelUnits::deg << " " << m_firstStagger << std::endl; // std::cout << "Module zero in -ve endcap " << m_moduleZero << std::endl; makeModuleServices(); // Make envelope for ring - double moduleClearanceZ = 0.6 * CLHEP::mm; // Arbitrary choice - double moduleClearanceR = 0.5 * CLHEP::mm; + double moduleClearanceZ = 0.6 * GeoModelKernelUnits::mm; // Arbitrary choice + double moduleClearanceR = 0.5 * GeoModelKernelUnits::mm; m_innerRadius = m_module->innerRadius() - 0.5*m_module->stereoAngle()*(0.5*m_module->innerWidth()) - moduleClearanceR; m_outerRadius = sqrt(sqr(m_module->outerRadius()) + sqr(0.5*m_module->outerWidth())) @@ -168,15 +168,15 @@ SCT_FwdRing::preBuild() // Calculate clearance we have. NB. This is an approximate. //std::cout << "Module clearance (radial value does not take into account stereo rotation:" << std::endl; - //std::cout << " radial: " << moduleClearanceR/CLHEP::mm << " mm" << std::endl; - //std::cout << " away from disc in z " << moduleClearanceZ/CLHEP::mm << " mm" << std::endl; + //std::cout << " radial: " << moduleClearanceR/GeoModelKernelUnits::mm << " mm" << std::endl; + //std::cout << " away from disc in z " << moduleClearanceZ/GeoModelKernelUnits::mm << " mm" << std::endl; //std::cout << " Lo Module to cooling block: " << -m_moduleStagger-0.5*m_module->thickness() - m_moduleServicesLoOuterZPos << std::endl; //std::cout << " Hi Module to cooling block: " << +m_moduleStagger-0.5*m_module->thickness() - m_moduleServicesHiOuterZPos << std::endl; //std::cout << " Module to Module: " << m_moduleStagger-m_module->thickness() << std::endl; //std::cout << " towards disc in z " // << std::min(m_moduleStagger-m_module->thickness(), // std::min(-m_moduleStagger-0.5*m_module->thickness() - m_moduleServicesLoOuterZPos, - // +m_moduleStagger-0.5*m_module->thickness() - m_moduleServicesHiOuterZPos)) / CLHEP::mm << " mm" << std::endl; + // +m_moduleStagger-0.5*m_module->thickness() - m_moduleServicesHiOuterZPos)) / GeoModelKernelUnits::mm << " mm" << std::endl; m_thicknessOuter = 0.5 * m_module->thickness() + m_moduleStagger + moduleClearanceZ; m_thicknessInner = m_maxModuleServicesBaseToRingCenter + 2*m_safety; @@ -190,7 +190,7 @@ SCT_FwdRing::preBuild() SCT_MaterialManager materials; const GeoTube * tmpShape = new GeoTube(m_innerRadius, m_outerRadius, 0.5 * m_thickness); - const GeoShape & ringEnvelopeShape = (*tmpShape << HepGeom::Translate3D(0, 0, envelopeShift)); + const GeoShape & ringEnvelopeShape = (*tmpShape << GeoTrf::Translate3D(0, 0, envelopeShift)); GeoLogVol * ringLog = new GeoLogVol(getName(), &ringEnvelopeShape, materials.gasMaterial()); //std::cout << "m_innerRadius = " << m_innerRadius << std::endl; @@ -209,7 +209,7 @@ SCT_FwdRing::build(SCT_Identifier id) const // Physical volume for the half ring GeoPhysVol * ring = new GeoPhysVol(m_logVolume); - double deltaPhi = 360*CLHEP::degree / m_numModules; + double deltaPhi = 360*GeoModelKernelUnits::degree / m_numModules; bool negativeEndCap = (id.getBarrelEC() < 0); for (int i = 0; i < m_numModules; i++){ @@ -264,19 +264,18 @@ SCT_FwdRing::build(SCT_Identifier id) const //std::cout << "Endcap# = " <<id.getBarrelEC() // << ", idModule = " << idModule // << ", i = " << i - // << ", phi = " << phi/CLHEP::degree << std::endl; + // << ", phi = " << phi/GeoModelKernelUnits::degree << std::endl; - CLHEP::HepRotation rot; - rot.rotateY(90*CLHEP::degree); + GeoTrf::Transform3D rot = GeoTrf::RotateZ3D(phi + 0.5 * m_module->stereoAngle() * m_stereoSign); if (m_ringSide > 0) { - rot.rotateX(180*CLHEP::degree); + rot = rot*GeoTrf::RotateX3D(180*GeoModelKernelUnits::degree); } - rot.rotateZ(phi + 0.5 * m_module->stereoAngle() * m_stereoSign); + rot = rot*GeoTrf::RotateY3D(90*GeoModelKernelUnits::degree); double zPos = staggerUpperLower * m_moduleStagger * m_ringSide; - CLHEP::Hep3Vector xyz(m_module->sensorCenterRadius(), 0, zPos); - xyz.rotateZ(phi); - HepGeom::Transform3D modulePos(rot,xyz); + GeoTrf::Vector3D xyz(m_module->sensorCenterRadius(), 0, zPos); + xyz = GeoTrf::RotateZ3D(phi)*xyz; + GeoTrf::Transform3D modulePos = GeoTrf::Translate3D(xyz.x(),xyz.y(),xyz.z())*rot; // Add the module @@ -311,7 +310,7 @@ SCT_FwdRing::build(SCT_Identifier id) const } - ring->add(new GeoTransform(HepGeom::RotateZ3D(phi)*HepGeom::Translate3D(rModuleServices, 0, zModuleServices))); + ring->add(new GeoTransform(GeoTrf::RotateZ3D(phi)*GeoTrf::Translate3D(rModuleServices, 0, zModuleServices))); ring->add(moduleServices); } @@ -390,15 +389,15 @@ SCT_FwdRing::makeModuleServices() // Add the cooling blocks // Main Upper - m_moduleServicesHi->add(new GeoTransform(HepGeom::Translate3D(coolingBlkMainR - m_moduleServicesHiRPos, 0, 0))); + m_moduleServicesHi->add(new GeoTransform(GeoTrf::Translate3D(coolingBlkMainR - m_moduleServicesHiRPos, 0, 0))); m_moduleServicesHi->add(m_coolingBlockHiMain->getVolume()); // Secondary Upper - m_moduleServicesHi->add(new GeoTransform(HepGeom::Translate3D(coolingBlkHiSecRMid - m_moduleServicesHiRPos, 0, 0))); + m_moduleServicesHi->add(new GeoTransform(GeoTrf::Translate3D(coolingBlkHiSecRMid - m_moduleServicesHiRPos, 0, 0))); m_moduleServicesHi->add(m_coolingBlockHiSec->getVolume()); // Main Lower - m_moduleServicesLo->add(new GeoTransform(HepGeom::Translate3D(coolingBlkMainR - m_moduleServicesLoRPos, 0, 0))); + m_moduleServicesLo->add(new GeoTransform(GeoTrf::Translate3D(coolingBlkMainR - m_moduleServicesLoRPos, 0, 0))); m_moduleServicesLo->add(m_coolingBlockLoMain->getVolume()); // Secondary Lower - m_moduleServicesLo->add(new GeoTransform(HepGeom::Translate3D(coolingBlkLoSecRMid - m_moduleServicesLoRPos, 0, 0))); + m_moduleServicesLo->add(new GeoTransform(GeoTrf::Translate3D(coolingBlkLoSecRMid - m_moduleServicesLoRPos, 0, 0))); m_moduleServicesLo->add(m_coolingBlockLoSec->getVolume()); } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdRingCooling.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdRingCooling.cxx index 97bb03481542c2378b8e300e9118ec69e17cba33..4c321aa924e41565c6d3af50cbf3693d16c0ec7d 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdRingCooling.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdRingCooling.cxx @@ -12,8 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Units/PhysicalConstants.h" // For pi +#include "GeoModelKernel/Units.h" #include <cmath> diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSensor.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSensor.cxx index b8b9c54094b9170525d91e21b984c306bd1ee210..a681a2f0291dde7d5f2a3dc23f65d3de5a4ad7b1 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSensor.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSensor.cxx @@ -31,11 +31,11 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" + +#include "GeoModelKernel/GeoDefinitions.h" + -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" #include "InDetReadoutGeometry/SCT_DetectorManager.h" #include "InDetReadoutGeometry/SCT_ForwardModuleSideDesign.h" @@ -157,10 +157,10 @@ const GeoLogVol * SCT_FwdSensor::preBuild() // define the sensor as a boolean volume of the two wafers. // relative position of near sensor double positionNearZ = m_radiusN - m_sensorRadius; - const GeoShape & sensorPosN = (*sensorShapeN<< HepGeom::TranslateZ3D(positionNearZ)) ; + const GeoShape & sensorPosN = (*sensorShapeN<< GeoTrf::TranslateZ3D(positionNearZ)) ; // relative position of near sensor double positionFarZ = m_radiusF - m_sensorRadius; - const GeoShape & sensorPosF = (*sensorShapeF<< HepGeom::TranslateZ3D(positionFarZ) ); + const GeoShape & sensorPosF = (*sensorShapeF<< GeoTrf::TranslateZ3D(positionFarZ) ); sensorShape = &(sensorPosF.add(sensorPosN)); } @@ -172,7 +172,7 @@ const GeoLogVol * SCT_FwdSensor::preBuild() if (m_ringType == 2) { // Make inactive glass sensor. double positionZ = m_radiusN - m_sensorRadius; - const GeoShape & sensorPosN = (*sensorShapeN<< HepGeom::TranslateZ3D(positionZ) ); + const GeoShape & sensorPosN = (*sensorShapeN<< GeoTrf::TranslateZ3D(positionZ) ); GeoLogVol * inactiveLog = new GeoLogVol(getName()+"Glass", &sensorPosN, m_materialGlass); m_inactive = new GeoPhysVol(inactiveLog); m_inactive->ref(); @@ -316,10 +316,10 @@ void SCT_FwdSensor::makeDesign() // This is the default and no action is required. // Can force axes not to be swapped by setting to false. // - // bool phiSyCLHEP::mmetric = true; - // bool etaSyCLHEP::mmetric = false; - // bool depthSyCLHEP::mmetric = true; - // m_design->setSyCLHEP::mmetry(phiSyCLHEP::mmetric, etaSyCLHEP::mmetric, depthSyCLHEP::mmetric, + // bool phiSyGeoModelKernelUnits::mmetric = true; + // bool etaSyGeoModelKernelUnits::mmetric = false; + // bool depthSyGeoModelKernelUnits::mmetric = true; + // m_design->setSyGeoModelKernelUnits::mmetry(phiSyGeoModelKernelUnits::mmetric, etaSyGeoModelKernelUnits::mmetric, depthSyGeoModelKernelUnits::mmetric, // } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSpine.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSpine.cxx index c7291d18e0877ad0587225f9442973e8faedf4d8..7e01fc5b52f6548cf046ae052a65d293b794ec40 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSpine.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSpine.cxx @@ -25,11 +25,11 @@ #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoShapeUnion.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" + +#include "GeoModelKernel/GeoDefinitions.h" + -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" #include <cmath> @@ -70,7 +70,7 @@ SCT_FwdSpine::getParameters() - parameters->fwdHybridMountPointToInnerEdge() - parameters->fwdModuleHybridEdgeToSpine(m_ringType); - // (zssp[m_ringType].spndox + zsmi[m_ringType].mountd - zhyb->hybysh - zhyb->hybgap0) * CLHEP::cm; + // (zssp[m_ringType].spndox + zsmi[m_ringType].mountd - zhyb->hybysh - zhyb->hybgap0) * GeoModelKernelUnits::cm; } @@ -98,7 +98,7 @@ SCT_FwdSpine::build() SCT_MaterialManager materials; - const GeoShape & spinePosMain = (*spineShapeMain << HepGeom::TranslateZ3D(position) ); + const GeoShape & spinePosMain = (*spineShapeMain << GeoTrf::TranslateZ3D(position) ); m_material = materials.getMaterialForVolume(m_materialName, spineShapeMain->volume()); GeoLogVol * spineLog = new GeoLogVol(getName(), &spinePosMain, m_material); GeoPhysVol * spine = new GeoPhysVol(spineLog); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSubSpine.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSubSpine.cxx index bd8c0303a094743491e5401f5d2d170d80d57651..20b6b3db60229ba902f8649e3b3512e457d2eb4c 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSubSpine.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSubSpine.cxx @@ -25,11 +25,11 @@ #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoShapeUnion.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" + +#include "GeoModelKernel/GeoDefinitions.h" + -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" #include <cmath> @@ -100,7 +100,7 @@ GeoVPhysVol * SCT_FwdSubSpine::build() position = mountPosition - parameters->fwdSubSpineInnerRefDist(m_ringType) - 0.5*m_length1; position = position * HybPos; position2 = (widthMain + m_width1) / 2.; - const GeoShape & spinePos1 = (*spineShape1 << HepGeom::TranslateY3D(m_spineSide * position2) << HepGeom::TranslateZ3D(position) ); + const GeoShape & spinePos1 = (*spineShape1 << GeoTrf::TranslateY3D(m_spineSide * position2) << GeoTrf::TranslateZ3D(position) ); // Middle sub spine @@ -109,7 +109,7 @@ GeoVPhysVol * SCT_FwdSubSpine::build() position = mountPosition - parameters->fwdSubSpineMiddleRefDist(m_ringType) - 0.5*m_length2; position = position * HybPos; position2 = (widthMain + m_width2) / 2.; - const GeoShape & spinePos2 = (*spineShape2 << HepGeom::TranslateY3D(m_spineSide * position2) << HepGeom::TranslateZ3D(position) ); + const GeoShape & spinePos2 = (*spineShape2 << GeoTrf::TranslateY3D(m_spineSide * position2) << GeoTrf::TranslateZ3D(position) ); subSpineMiddle = &spinePos2; } @@ -117,7 +117,7 @@ GeoVPhysVol * SCT_FwdSubSpine::build() position = mountPosition - parameters->fwdSubSpineOuterRefDist(m_ringType) - 0.5*m_length3; position = position * HybPos; position2 = (widthMain + m_width3) / 2.; - const GeoShape & spinePos3 = (*spineShape3 << HepGeom::TranslateY3D(m_spineSide * position2) << HepGeom::TranslateZ3D(position) ); + const GeoShape & spinePos3 = (*spineShape3 << GeoTrf::TranslateY3D(m_spineSide * position2) << GeoTrf::TranslateZ3D(position) ); const GeoShapeUnion & spineTmp = (spinePos1).add(spinePos3); if (m_ringType != 3) { diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSupportFrame.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSupportFrame.cxx index 6da8b36f7f795b916aa18a8573a83281447d4803..cdac143bd99834bcc32bb06244b739f056eb32f0 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSupportFrame.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdSupportFrame.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_FwdSupportFrame::SCT_FwdSupportFrame(const std::string & name) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdThermalShieldElement.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdThermalShieldElement.cxx index 8c9f7518517eb68f694c9ef4f50de273b8753ab2..d956aca563facace248629163cb2cc25c90caa18 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdThermalShieldElement.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdThermalShieldElement.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <cmath> diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdWheel.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdWheel.cxx index 0e922091a4c2c72a29e825d5ee87a589bcfa73a5..c28934fe5d36caf00e71f560ac3c946e98596fe3 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdWheel.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_FwdWheel.cxx @@ -37,10 +37,10 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" +#include "GeoModelKernel/Units.h" +#include "GeoModelKernel/GeoDefinitions.h" + + #include <sstream> @@ -111,12 +111,12 @@ SCT_FwdWheel::getParameters() // FIXME: Check and put these in DB or calculate them // We have a maximum width of 80.2. Make it 75 for some clearance. - //m_innerRadius = 267 * CLHEP::mm; - //m_outerRadius = 590 * CLHEP::mm; - //m_thickness = 100 * CLHEP::mm; + //m_innerRadius = 267 * GeoModelKernelUnits::mm; + //m_outerRadius = 590 * GeoModelKernelUnits::mm; + //m_thickness = 100 * GeoModelKernelUnits::mm; // These get swapped later if the wheel is rotated. - m_thicknessFront = 30 * CLHEP::mm; - m_thicknessBack = 45 * CLHEP::mm; + m_thicknessFront = 30 * GeoModelKernelUnits::mm; + m_thicknessBack = 45 * GeoModelKernelUnits::mm; m_numFSITypes = parameters->fwdFSINumGeomTypes(); m_fsiVector = &(parameters->fsiVector(m_iWheel)); @@ -207,7 +207,7 @@ SCT_FwdWheel::preBuild() // If first or last wheel there is nothing protruding beyond the rings so we reduce the // envelope size. Comes to about 20 mm. Note the front becomes the back later for the last wheel. if ((m_iWheel == 0) || (m_iWheel == m_numWheels - 1)) { - m_thicknessFront = maxModuleThickness + 1*CLHEP::mm; // We give plenty of safety as we have the room. + m_thicknessFront = maxModuleThickness + 1*GeoModelKernelUnits::mm; // We give plenty of safety as we have the room. // But now modified by disc fixations if(m_discFixationPresent) { m_thicknessFront = std::max(m_thicknessFront,m_discFixation->radius() + m_safety); @@ -249,7 +249,7 @@ SCT_FwdWheel::preBuild() // TODO. Have to account for FSI and patch panels //m_thickness = 2. * maxRingOffset + maxThickness; - // m_thickness = 100 * CLHEP::mm; + // m_thickness = 100 * GeoModelKernelUnits::mm; // std::cout << "Wheel " << m_iWheel << ":" << std::endl; // std::cout << " innerRadius = " << m_innerRadius << std::endl; @@ -261,7 +261,7 @@ SCT_FwdWheel::preBuild() double envelopeShift = 0.5*(m_thicknessBack - m_thicknessFront); const GeoTube * tmpShape = new GeoTube(m_innerRadius, m_outerRadius, 0.5 * m_thickness); - const GeoShape & fwdWheelEnvelopeShape = *tmpShape << HepGeom::Translate3D(0, 0, envelopeShift); + const GeoShape & fwdWheelEnvelopeShape = *tmpShape << GeoTrf::Translate3D(0, 0, envelopeShift); const GeoLogVol * fwdWheelLog = new GeoLogVol(getName(), &fwdWheelEnvelopeShape, materials.gasMaterial()); @@ -305,11 +305,10 @@ SCT_FwdWheel::build(SCT_Identifier id) const // std::cout << " ring outer radius = " << ring->outerRadius() << std::endl; - CLHEP::Hep3Vector pos(0, 0, ringZpos); std::string ringNameTag = "Ring#" + intToString(ring->identifier()); wheel->add(new GeoNameTag(ringNameTag)); wheel->add(new GeoIdentifierTag(ring->identifier())); - wheel->add(new GeoTransform(HepGeom::Translate3D(pos))); + wheel->add(new GeoTransform(GeoTrf::Translate3D(0, 0, ringZpos))); id.setEtaModule(ring->identifier()); wheel->add(ring->build(id)); @@ -319,7 +318,7 @@ SCT_FwdWheel::build(SCT_Identifier id) const iRing); double coolingZpos = ring->ringSide() * (0.5*(m_discSupport->thickness() + cooling.thickness())); //std::cout << "coolingZpos, thickness = " << coolingZpos << ", " << cooling->thickness() << std::endl; - wheel->add(new GeoTransform(HepGeom::TranslateZ3D(coolingZpos))); + wheel->add(new GeoTransform(GeoTrf::TranslateZ3D(coolingZpos))); wheel->add(cooling.getVolume()); // Power Tapes @@ -356,7 +355,7 @@ SCT_FwdWheel::build(SCT_Identifier id) const //std::cout << " modules min " << std::abs(ringZpos) - 0.5*ring->thicknessInner() << std::endl; //std::cout << "new powerTapeZpos, thickness = " << powerTapeZpos << ", " << powerTape->thickness() << std::endl; - wheel->add(new GeoTransform(HepGeom::TranslateZ3D(powerTapeZpos))); + wheel->add(new GeoTransform(GeoTrf::TranslateZ3D(powerTapeZpos))); wheel->add(powerTape.getVolume()); @@ -392,7 +391,7 @@ SCT_FwdWheel::build(SCT_Identifier id) const for (int iRepeat = 0; iRepeat < numRepeat; iRepeat++) { // Calculate the location. - double patchPanelAngle = m_patchPanelLocAngle[iPPLoc] + iRepeat * 90*CLHEP::degree; + double patchPanelAngle = m_patchPanelLocAngle[iPPLoc] + iRepeat * 90*GeoModelKernelUnits::degree; double patchPanelZpos = patchPanelSide * (powerTapeZMax + 0.5*m_patchPanel[ppType]->thickness() + m_safety); double patchPanelR = m_patchPanel[ppType]->midRadius(); @@ -404,7 +403,7 @@ SCT_FwdWheel::build(SCT_Identifier id) const } // Add it to the wheel - wheel->add(new GeoTransform(HepGeom::RotateZ3D(patchPanelAngle)*HepGeom::TranslateX3D(patchPanelR)*HepGeom::TranslateZ3D(patchPanelZpos))); + wheel->add(new GeoTransform(GeoTrf::RotateZ3D(patchPanelAngle)*GeoTrf::TranslateX3D(patchPanelR)*GeoTrf::TranslateZ3D(patchPanelZpos))); wheel->add(m_patchPanel[ppType]->getVolume()); // Make and add the connector for PPF0e (type 0) @@ -419,7 +418,7 @@ SCT_FwdWheel::build(SCT_Identifier id) const std::cout << " Wheel outer radius: " << m_outerRadius << std::endl; } // Add it to the wheel - wheel->add(new GeoTransform(HepGeom::RotateZ3D(patchPanelAngle)*HepGeom::TranslateX3D(ppConnectorR)*HepGeom::TranslateZ3D(ppConnectorZpos))); + wheel->add(new GeoTransform(GeoTrf::RotateZ3D(patchPanelAngle)*GeoTrf::TranslateX3D(ppConnectorR)*GeoTrf::TranslateZ3D(ppConnectorZpos))); wheel->add(m_pPConnector->getVolume()); } @@ -435,7 +434,7 @@ SCT_FwdWheel::build(SCT_Identifier id) const std::cout << " Wheel outer radius: " << m_outerRadius << std::endl; } // Add it to the wheel - wheel->add(new GeoTransform(HepGeom::RotateZ3D(patchPanelAngle)*HepGeom::TranslateX3D(ppCoolingR)*HepGeom::TranslateZ3D(ppCoolingZpos))); + wheel->add(new GeoTransform(GeoTrf::RotateZ3D(patchPanelAngle)*GeoTrf::TranslateX3D(ppCoolingR)*GeoTrf::TranslateZ3D(ppCoolingZpos))); wheel->add(m_pPCooling->getVolume()); } } @@ -454,7 +453,7 @@ SCT_FwdWheel::build(SCT_Identifier id) const if(m_numRings > 2) {optoharnessName+="I";} SCT_FwdOptoHarness optoharness(optoharnessName+"W"+intToString(m_iWheel),m_numRings); double optoHarnessZpos = 0.5*m_rotateWheel*(m_discSupport->thickness() + optoharness.thickness()); - wheel->add(new GeoTransform(HepGeom::TranslateZ3D(optoHarnessZpos))); + wheel->add(new GeoTransform(GeoTrf::TranslateZ3D(optoHarnessZpos))); wheel->add(optoharness.getVolume()); optoHarnessZMax = optoHarnessZpos + 0.5*optoharness.thickness(); } @@ -472,8 +471,8 @@ SCT_FwdWheel::build(SCT_Identifier id) const // << "Sim type: " << (*m_fsiVector)[iFSI]->simTypeString() << ", " // << "Actual type: " << (*m_fsiVector)[iFSI]->actualType() << ", " // << "Loc type: " << (*m_fsiVector)[iFSI]->locationType() << ", " - // << "Radius(mm): " << fsiRadius/CLHEP::mm << ", " - // << "Phi(deg): " << fsiPhi/CLHEP::deg << ", " + // << "Radius(mm): " << fsiRadius/GeoModelKernelUnits::mm << ", " + // << "Phi(deg): " << fsiPhi/GeoModelKernelUnits::deg << ", " // << "Thickness(mm): " << m_fsiType[type]->thickness() << ", " // << "ZOffset(mm): " << m_fsiType[type]->zOffset() << ", " // << "RPhi(mm): " << m_fsiType[type]->rphi() << ", " @@ -504,7 +503,7 @@ SCT_FwdWheel::build(SCT_Identifier id) const } } - wheel->add(new GeoTransform(HepGeom::RotateZ3D(fsiPhi)*HepGeom::TranslateX3D(fsiRadius)*HepGeom::TranslateZ3D(fsiZpos))); + wheel->add(new GeoTransform(GeoTrf::RotateZ3D(fsiPhi)*GeoTrf::TranslateX3D(fsiRadius)*GeoTrf::TranslateZ3D(fsiZpos))); wheel->add(m_fsiType[type]->getVolume()); @@ -516,7 +515,7 @@ SCT_FwdWheel::build(SCT_Identifier id) const // The disc fixations repeat in the four quadrants. for (int iRepeat = 0; iRepeat < 4; iRepeat++) { // Calculate the location. - double discFixationAngle = m_discFixationLocAngle[iLoc] + iRepeat * 90*CLHEP::degree; + double discFixationAngle = m_discFixationLocAngle[iLoc] + iRepeat * 90*GeoModelKernelUnits::degree; double discFixationR = m_ringMaxRadius + 0.5*m_discFixation->thickness() + m_safety; // Check is within wheel if (discFixationR + 0.5*m_discFixation->thickness() >= m_outerRadius) { @@ -525,7 +524,7 @@ SCT_FwdWheel::build(SCT_Identifier id) const std::cout << " Wheel outer radius: " << m_outerRadius << std::endl; } // Add it to the wheel - wheel->add(new GeoTransform(HepGeom::RotateY3D(90.*CLHEP::degree)*HepGeom::RotateX3D(discFixationAngle)*HepGeom::TranslateZ3D(discFixationR))); + wheel->add(new GeoTransform(GeoTrf::RotateY3D(90.*GeoModelKernelUnits::degree)*GeoTrf::RotateX3D(discFixationAngle)*GeoTrf::TranslateZ3D(discFixationR))); wheel->add(m_discFixation->getVolume()); } } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_GeneralParameters.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_GeneralParameters.cxx index b6039ef3e27f817a3fba896eb1818c5fb6de1fa9..f5ae06e737864ffeb8a0381c10b4e145c0118d10 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_GeneralParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_GeneralParameters.cxx @@ -6,14 +6,14 @@ #include "SCT_GeoModel/SCT_DataBase.h" #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoModelKernel/Units.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "InDetGeoModelUtils/TopLevelPlacements.h" #include <iostream> -const double SCT_SAFETY = 0.01 * CLHEP::mm; // Used in some places to make envelopes slightly larger to ensure +const double SCT_SAFETY = 0.01 * GeoModelKernelUnits::mm; // Used in some places to make envelopes slightly larger to ensure // no overlaps due to rounding errors. @@ -30,7 +30,7 @@ SCT_GeneralParameters::~SCT_GeneralParameters() } -const HepGeom::Transform3D & +const GeoTrf::Transform3D & SCT_GeneralParameters::partTransform(const std::string & partName) const { return m_placements->transform(partName); @@ -62,9 +62,9 @@ double SCT_GeneralParameters::temperature() const { if (m_rdb->conditionsTable()->size() == 0) { - return 266.15 * CLHEP::kelvin; // -7 C + return 266.15 * GeoModelKernelUnits::kelvin; // -7 C } - return (m_rdb->conditions()->getDouble("TEMPERATURE") + 273.15) * CLHEP::kelvin; + return (m_rdb->conditions()->getDouble("TEMPERATURE") + 273.15) * GeoModelKernelUnits::kelvin; } @@ -72,18 +72,18 @@ double SCT_GeneralParameters::biasVoltage() const { if (m_rdb->conditionsTable()->size() == 0) { - return 100 * CLHEP::volt; + return 100 * GeoModelKernelUnits::volt; } - return m_rdb->conditions()->getDouble("BIASVOLT") * CLHEP::volt; + return m_rdb->conditions()->getDouble("BIASVOLT") * GeoModelKernelUnits::volt; } double SCT_GeneralParameters::depletionVoltage() const { if (m_rdb->conditionsTable()->size() == 0) { - return 20 * CLHEP::volt; + return 20 * GeoModelKernelUnits::volt; } - return m_rdb->conditions()->getDouble("DEPLETIONVOLT") * CLHEP::volt; + return m_rdb->conditions()->getDouble("DEPLETIONVOLT") * GeoModelKernelUnits::volt; } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Harness.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Harness.cxx index 8c712f019bad40fdeae2c91c84453dd539e25a15..a713cba01739d2a60d5b374a57cffed8c429912d 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Harness.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Harness.cxx @@ -13,7 +13,7 @@ #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_Harness::SCT_Harness(const std::string & name, double length) : SCT_SharedComponentFactory(name), m_length(length) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Hybrid.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Hybrid.cxx index 6a4293a48aacb9942dd6eebe47bb6dd0070f9492..3572f1656085ffc753ec12284399aec1f029a100 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Hybrid.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Hybrid.cxx @@ -13,7 +13,7 @@ #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_Hybrid::SCT_Hybrid(const std::string & name) : SCT_SharedComponentFactory(name) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_InnerSide.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_InnerSide.cxx index a50bb9c1e95a0798045ef3930a4e6daa31a8249f..b30430ed63fc0866dfe37422f720fedbf7f6ce6f 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_InnerSide.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_InnerSide.cxx @@ -32,9 +32,8 @@ #include "GeoModelKernel/GeoShape.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" - -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include <cmath> @@ -125,11 +124,11 @@ SCT_InnerSide::preBuild() // *** 16:30 Wed 15th Jun 2005 D.Naito modified. (00)********************************* // *** -->> (00)********************************* - m_env1RefPointVector = new CLHEP::Hep3Vector(0.0, 0.0, 0.0); - m_env2RefPointVector = new CLHEP::Hep3Vector(-ise2PosX, -ise2PosY, -ise2PosZ); + m_env1RefPointVector = new GeoTrf::Vector3D(0.0, 0.0, 0.0); + m_env2RefPointVector = new GeoTrf::Vector3D(-ise2PosX, -ise2PosY, -ise2PosZ); // *** End of modified lines. ------------------ (00)********************************* - m_hybridPos = new GeoTransform(HepGeom::Translate3D(hybridPosX, hybridPosY, hybridPosZ)); + m_hybridPos = new GeoTransform(GeoTrf::Translate3D(hybridPosX, hybridPosY, hybridPosZ)); m_hybridPos->ref(); // The depth axis goes from the backside to the implant side @@ -142,11 +141,11 @@ SCT_InnerSide::preBuild() // // Shown is the outer side. The inner side is the same but with a rotation of 180 deg around the z-axis. // - //CLHEP::HepRotation rotSensor; - //rotSensor.rotateZ(180*CLHEP::deg); - //m_outerSidePos = new HepGeom::Transform3D(rotOuter, CLHEP::Hep3Vector(0.5 * (m_sensorGap + sectThickness), 0., 0.)); - //m_sensorPos = new GeoTransform(HepGeom::Transform3D(rotSensor, CLHEP::Hep3Vector(sensorPosX, sensorPosY, sensorPosZ))); - m_sensorPos = new GeoTransform(HepGeom::Translate3D(sensorPosX, sensorPosY, sensorPosZ)); + //GeoModelKernelUnits::HepRotation rotSensor; + //rotSensor.rotateZ(180*GeoModelKernelUnits::deg); + //m_outerSidePos = new GeoTrf::Transform3D(rotOuter, GeoTrf::Vector3D(0.5 * (m_sensorGap + sectThickness), 0., 0.)); + //m_sensorPos = new GeoTransform(GeoTrf::Transform3D(rotSensor, GeoTrf::Vector3D(sensorPosX, sensorPosY, sensorPosZ))); + m_sensorPos = new GeoTransform(GeoTrf::Translate3D(sensorPosX, sensorPosY, sensorPosZ)); m_sensorPos->ref(); // @@ -160,7 +159,7 @@ SCT_InnerSide::preBuild() 0.5 * l_ise2); const GeoShape & InnerSideEnvelopeShape = (*ise1Shape). - add(*ise2Shape << HepGeom::Translate3D(ise2PosX, ise2PosY, ise2PosZ)); + add(*ise2Shape << GeoTrf::Translate3D(ise2PosX, ise2PosY, ise2PosZ)); const GeoLogVol * InnerSideEnvelopeLog = new GeoLogVol("InnerSideEnvelope", &InnerSideEnvelopeShape, diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_InterLink.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_InterLink.cxx index 48a59aacabd65970a4472056d054697964562a79..a9694cdbc6893f09724ed807a2bb2ef505c1fa58 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_InterLink.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_InterLink.cxx @@ -14,7 +14,7 @@ #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoTransform.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_InterLink::SCT_InterLink(const std::string & name) : SCT_SharedComponentFactory(name), @@ -109,28 +109,28 @@ SCT_InterLink::build() m_interLink->ref(); // Interlink segments: - m_interLinkSegShape = new GeoTubs(m_innerRadius, m_outerRadius, 0.5*m_length, - 0.5*m_dPhi*CLHEP::radian, m_dPhi*CLHEP::radian); + m_interLinkSegShape = new GeoTubs(m_innerRadius, m_outerRadius, 0.5*m_length, - 0.5*m_dPhi*GeoModelKernelUnits::radian, m_dPhi*GeoModelKernelUnits::radian); m_interLinkSegLog = new GeoLogVol("InterlinkSegment", m_interLinkSegShape, materials.getMaterialForVolume(m_materialName, m_interLinkSegShape->volume())); m_interLinkSeg = new GeoPhysVol(m_interLinkSegLog); m_interLinkSeg->ref(); for(int i=0; i<m_nRepeat; i++) { - double interlinkAngle = m_phiPos + (i * 360./m_nRepeat)*CLHEP::deg; - GeoTransform* geoTransform = new GeoTransform(HepGeom::RotateZ3D(interlinkAngle)); + double interlinkAngle = m_phiPos + (i * 360./m_nRepeat)*GeoModelKernelUnits::deg; + GeoTransform* geoTransform = new GeoTransform(GeoTrf::RotateZ3D(interlinkAngle)); m_geoTransforms.push_back(geoTransform); m_interLink->add(geoTransform); m_interLink->add(m_interLinkSeg); } // B6 bearings - m_bearingShape = new GeoTubs(m_innerRadiusBearing, m_outerRadiusBearing, 0.5*m_lengthBearing, - 0.5*m_dPhiBearing*CLHEP::radian, m_dPhiBearing*CLHEP::radian); + m_bearingShape = new GeoTubs(m_innerRadiusBearing, m_outerRadiusBearing, 0.5*m_lengthBearing, - 0.5*m_dPhiBearing*GeoModelKernelUnits::radian, m_dPhiBearing*GeoModelKernelUnits::radian); m_bearingLog = new GeoLogVol("Bearing", m_bearingShape, materials.getMaterialForVolume(m_materialNameBearing, m_bearingShape->volume())); m_bearing = new GeoPhysVol(m_bearingLog); m_bearing->ref(); for(int i=0; i<m_nRepeatBearing; i++) { - double bearingAngle = m_phiPosBearing + (i * 360./m_nRepeatBearing)*CLHEP::deg; - GeoTransform* geoTransform = new GeoTransform(HepGeom::RotateZ3D(bearingAngle)); + double bearingAngle = m_phiPosBearing + (i * 360./m_nRepeatBearing)*GeoModelKernelUnits::deg; + GeoTransform* geoTransform = new GeoTransform(GeoTrf::RotateZ3D(bearingAngle)); m_geoTransforms.push_back(geoTransform); m_interLink->add(geoTransform); m_interLink->add(m_bearing); @@ -139,16 +139,16 @@ SCT_InterLink::build() // FSI Flange segments: // These exactly fill gaps between interlink segments, with smaller radial extent if(m_includeFSIFlange) { - double dPhiFSI = (360./m_nRepeat)*CLHEP::deg - m_dPhi; - m_FSIFlangeShape = new GeoTubs(m_innerRadiusFSIFlange, m_outerRadiusFSIFlange, 0.5*m_length, - 0.5*dPhiFSI*CLHEP::radian, dPhiFSI*CLHEP::radian); + double dPhiFSI = (360./m_nRepeat)*GeoModelKernelUnits::deg - m_dPhi; + m_FSIFlangeShape = new GeoTubs(m_innerRadiusFSIFlange, m_outerRadiusFSIFlange, 0.5*m_length, - 0.5*dPhiFSI*GeoModelKernelUnits::radian, dPhiFSI*GeoModelKernelUnits::radian); m_FSIFlangeLog = new GeoLogVol("FSIFlangeSegment", m_FSIFlangeShape, materials.getMaterialForVolume(m_materialNameFSIFlange, m_FSIFlangeShape->volume())); m_FSIFlange = new GeoPhysVol(m_FSIFlangeLog); m_FSIFlange->ref(); for(int i=0; i<m_nRepeat; i++) { - double phiPosFSI = m_phiPos + (180./m_nRepeat)*CLHEP::deg; - double FSIFlangeAngle = phiPosFSI + (i * 360./m_nRepeat)*CLHEP::deg; - GeoTransform* geoTransform = new GeoTransform(HepGeom::RotateZ3D(FSIFlangeAngle)); + double phiPosFSI = m_phiPos + (180./m_nRepeat)*GeoModelKernelUnits::deg; + double FSIFlangeAngle = phiPosFSI + (i * 360./m_nRepeat)*GeoModelKernelUnits::deg; + GeoTransform* geoTransform = new GeoTransform(GeoTrf::RotateZ3D(FSIFlangeAngle)); m_geoTransforms.push_back(geoTransform); m_interLink->add(geoTransform); m_interLink->add(m_FSIFlange); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Layer.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Layer.cxx index 7f7e191b456460eff4b2c5cb3dbf2e1e0edfcee9..d8fbdccbe6902c355b5320a2f810b84a31c71c04 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Layer.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Layer.cxx @@ -39,10 +39,8 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoShapeSubtraction.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include <sstream> #include <cmath> @@ -151,7 +149,7 @@ SCT_Layer::preBuild() // Calculations for making active layer components - called ski. // This is the modules + doglegs + cooling blocks + coolingpipe // - double divisionAngle = 360 * CLHEP::degree / m_skisPerLayer; + double divisionAngle = 360 * GeoModelKernelUnits::degree / m_skisPerLayer; // We define here the first module(id = 0) as the nearest module to phi = 0 with positive phi. // We allow slightly negative in case of rounding errors. @@ -201,7 +199,7 @@ SCT_Layer::preBuild() // Build the volume representing the cooling inlets, outlet and U-bends. // We cannot do this until we have the dimensions of the clamp double coolingInnerRadius = m_clamp->outerRadius(); - double clearance = 1*CLHEP::mm; + double clearance = 1*GeoModelKernelUnits::mm; double coolingLength = 0.5*m_cylinderLength - 0.5*m_activeLength - clearance; m_coolingEnd = new SCT_CoolingEnd("CoolingEnd"+layerNumStr, m_iLayer, coolingInnerRadius, coolingLength); @@ -273,7 +271,7 @@ SCT_Layer::build(SCT_Identifier id) const // We make this a fullPhysVol for alignment code. GeoFullPhysVol * layer = new GeoFullPhysVol(m_logVolume); - double divisionAngle = 360 * CLHEP::degree / m_skisPerLayer; + double divisionAngle = 360 * GeoModelKernelUnits::degree / m_skisPerLayer; // // Active Layer @@ -292,17 +290,15 @@ SCT_Layer::build(SCT_Identifier id) const double phi = m_skiPhiStart + iSki * divisionAngle; - // std::cout << "m_skiPhiStart = " << m_skiPhiStart/CLHEP::degree << ", phi = " << phi/CLHEP::degree << std::endl; + // std::cout << "m_skiPhiStart = " << m_skiPhiStart/GeoModelKernelUnits::degree << ", phi = " << phi/GeoModelKernelUnits::degree << std::endl; - CLHEP::Hep3Vector pos(m_radius, 0, 0); - CLHEP::HepRotation rot; - rot.rotateZ(phi); - rot.rotateZ(m_tilt); - pos.rotateZ(phi); + GeoTrf::Vector3D pos(m_radius, 0, 0); + pos = GeoTrf::RotateZ3D(phi)*pos; + GeoTrf::Transform3D rot = GeoTrf::RotateZ3D(m_tilt)*GeoTrf::RotateZ3D(phi); // Because the ski envelope center is not positioned at the rotation axis for the ski we must first // apply the inverse of refPointTransform() of the ski. - HepGeom::Transform3D trans(HepGeom::Transform3D(rot,pos) * m_ski->getRefPointTransform()->getTransform().inverse()); + GeoTrf::Transform3D trans(GeoTrf::Transform3D(GeoTrf::Translate3D(pos.x(),pos.y(),pos.z())*rot) * m_ski->getRefPointTransform()->getTransform().inverse()); // std::cout << "Adding ski at pos: " << pos << std::endl; // std::cout << " StereoInner = " << m_module->stereoInner() << std::endl; @@ -315,15 +311,15 @@ SCT_Layer::build(SCT_Identifier id) const // And add the service material double clampZPos = 0.5 * m_cylinderLength - 0.5 * m_clamp->length(); - activeLayer->add(new GeoTransform(HepGeom::TranslateZ3D(clampZPos))); + activeLayer->add(new GeoTransform(GeoTrf::TranslateZ3D(clampZPos))); activeLayer->add(m_clamp->getVolume()); - activeLayer->add(new GeoTransform(HepGeom::TranslateZ3D(-clampZPos))); + activeLayer->add(new GeoTransform(GeoTrf::TranslateZ3D(-clampZPos))); activeLayer->add(m_clamp->getVolume()); double coolingZPos = 0.5 * m_cylinderLength - 0.5 * m_coolingEnd->length(); - activeLayer->add(new GeoTransform(HepGeom::TranslateZ3D(coolingZPos))); + activeLayer->add(new GeoTransform(GeoTrf::TranslateZ3D(coolingZPos))); activeLayer->add(m_coolingEnd->getVolume()); - activeLayer->add(new GeoTransform(HepGeom::TranslateZ3D(-coolingZPos))); + activeLayer->add(new GeoTransform(GeoTrf::TranslateZ3D(-coolingZPos))); activeLayer->add(m_coolingEnd->getVolume()); // @@ -341,9 +337,7 @@ SCT_Layer::build(SCT_Identifier id) const for (int iSki = 0; iSki < m_skisPerLayer; iSki++){ //for (int iSki = 0; iSki < 2; iSki++){ double phi = m_skiAuxPhiStart + iSki * divisionAngle; - CLHEP::HepRotation rot; - rot.rotateZ(phi); - auxLayer->add(new GeoTransform(HepGeom::Rotate3D(rot))); + auxLayer->add(new GeoTransform(GeoTrf::RotateZ3D(phi))); auxLayer->add(m_skiAux->getVolume()); } @@ -365,9 +359,9 @@ SCT_Layer::build(SCT_Identifier id) const // Position flanges. One at each end. double flangeZPos = 0.5 * m_cylinderLength - 0.5 * m_flange->length(); - supportLayer->add(new GeoTransform(HepGeom::TranslateZ3D(flangeZPos))); + supportLayer->add(new GeoTransform(GeoTrf::TranslateZ3D(flangeZPos))); supportLayer->add(m_flange->getVolume()); - supportLayer->add(new GeoTransform(HepGeom::TranslateZ3D(-flangeZPos))); + supportLayer->add(new GeoTransform(GeoTrf::TranslateZ3D(-flangeZPos))); supportLayer->add(m_flange->getVolume()); // Position supportCyl @@ -376,20 +370,20 @@ SCT_Layer::build(SCT_Identifier id) const if(m_includeFSI) { // Position FSI fibre masks double fibreMaskZPos = 0.5 * m_cylinderLength - m_flange->length() - 0.5 * m_fibreMask->length(); - supportLayer->add(new GeoTransform(HepGeom::TranslateZ3D(fibreMaskZPos))); + supportLayer->add(new GeoTransform(GeoTrf::TranslateZ3D(fibreMaskZPos))); supportLayer->add(m_fibreMask->getVolume()); - supportLayer->add(new GeoTransform(HepGeom::TranslateZ3D(-fibreMaskZPos))); + supportLayer->add(new GeoTransform(GeoTrf::TranslateZ3D(-fibreMaskZPos))); supportLayer->add(m_fibreMask->getVolume()); // Position FSI End jewels double jewelRadius = std::sqrt(m_fibreMask->innerRadius()*m_fibreMask->innerRadius() - 0.25 * m_endJewel->rPhiWidth()*m_endJewel->rPhiWidth()) - 0.5 * m_endJewel->radialWidth(); // std::cout << "jewelRadius = " << jewelRadius << std::endl; for ( int i=0; i<m_nRepeatEndJewel; i++) { - double jewelAngle = m_phiEndJewel + i * 360.*CLHEP::degree/m_nRepeatEndJewel; + double jewelAngle = m_phiEndJewel + i * 360.*GeoModelKernelUnits::degree/m_nRepeatEndJewel; // std::cout << "jewelAngle = " << jewelAngle << std::endl; - supportLayer->add(new GeoTransform(HepGeom::RotateZ3D(jewelAngle)*HepGeom::TranslateX3D(jewelRadius)*HepGeom::TranslateZ3D(m_zEndJewel))); + supportLayer->add(new GeoTransform(GeoTrf::RotateZ3D(jewelAngle)*GeoTrf::TranslateX3D(jewelRadius)*GeoTrf::TranslateZ3D(m_zEndJewel))); supportLayer->add(m_endJewel->getVolume()); - supportLayer->add(new GeoTransform(HepGeom::RotateZ3D(jewelAngle)*HepGeom::TranslateX3D(jewelRadius)*HepGeom::TranslateZ3D(-m_zEndJewel))); + supportLayer->add(new GeoTransform(GeoTrf::RotateZ3D(jewelAngle)*GeoTrf::TranslateX3D(jewelRadius)*GeoTrf::TranslateZ3D(-m_zEndJewel))); supportLayer->add(m_endJewel->getVolume()); } @@ -397,11 +391,11 @@ SCT_Layer::build(SCT_Identifier id) const double scorpionRadius = std::sqrt(m_supportCyl->innerRadius()*m_supportCyl->innerRadius() - 0.25 * m_scorpion->rPhiWidth()*m_scorpion->rPhiWidth()) - 0.5 * m_scorpion->radialWidth(); // std::cout << "scorpionRadius = " << scorpionRadius << std::endl; for ( int i=0; i<m_nRepeatScorpion; i++) { - double scorpionAngle = m_phiScorpion + i * 360.*CLHEP::degree/m_nRepeatScorpion; + double scorpionAngle = m_phiScorpion + i * 360.*GeoModelKernelUnits::degree/m_nRepeatScorpion; // std::cout << "scorpionAngle = " << scorpionAngle << std::endl; - supportLayer->add(new GeoTransform(HepGeom::RotateZ3D(scorpionAngle)*HepGeom::TranslateX3D(scorpionRadius)*HepGeom::TranslateZ3D(m_zScorpion))); + supportLayer->add(new GeoTransform(GeoTrf::RotateZ3D(scorpionAngle)*GeoTrf::TranslateX3D(scorpionRadius)*GeoTrf::TranslateZ3D(m_zScorpion))); supportLayer->add(m_scorpion->getVolume()); - supportLayer->add(new GeoTransform(HepGeom::RotateZ3D(scorpionAngle)*HepGeom::TranslateX3D(scorpionRadius)*HepGeom::TranslateZ3D(-m_zScorpion))); + supportLayer->add(new GeoTransform(GeoTrf::RotateZ3D(scorpionAngle)*GeoTrf::TranslateX3D(scorpionRadius)*GeoTrf::TranslateZ3D(-m_zScorpion))); supportLayer->add(m_scorpion->getVolume()); } } @@ -426,26 +420,26 @@ SCT_Layer::activeEnvelopeExtent(double & rmin, double & rmax) // These are the coordinates of the corners of the ski envelope. // x is in the radial direction and x is in the phi direction. - //CLHEP::Hep3Vector c0(); - CLHEP::Hep3Vector c1(-(m_ski->env1RefPointVector()->x()) - 0.5*(m_ski->env1Thickness()), + //GeoTrf::Vector3D c0(); + GeoTrf::Vector3D c1(-(m_ski->env1RefPointVector()->x()) - 0.5*(m_ski->env1Thickness()), -(m_ski->env1RefPointVector()->y()) + 0.5*(m_ski->env1Width()), 0.0); - CLHEP::Hep3Vector c2(-(m_ski->env2RefPointVector()->x()) - 0.5*(m_ski->env2Thickness()), + GeoTrf::Vector3D c2(-(m_ski->env2RefPointVector()->x()) - 0.5*(m_ski->env2Thickness()), -(m_ski->env2RefPointVector()->y()) + 0.5*(m_ski->env2Width()), 0.0); - //CLHEP::Hep3Vector c3(); - CLHEP::Hep3Vector c4(-(m_ski->env1RefPointVector()->x()) + 0.5*(m_ski->env1Thickness()), + //GeoTrf::Vector3D c3(); + GeoTrf::Vector3D c4(-(m_ski->env1RefPointVector()->x()) + 0.5*(m_ski->env1Thickness()), -(m_ski->env1RefPointVector()->y()) - 0.5*(m_ski->env1Width()), 0.0); //c0.rotateZ(m_tilt); - c1.rotateZ(m_tilt); - c2.rotateZ(m_tilt); + c1 = GeoTrf::RotateZ3D(m_tilt)*c1; + c2 = GeoTrf::RotateZ3D(m_tilt)*c2; //c3.rotateZ(m_tilt); - c4.rotateZ(m_tilt); + c4 = GeoTrf::RotateZ3D(m_tilt)*c4; - CLHEP::Hep3Vector vxmax = c4; - CLHEP::Hep3Vector vxmin; + GeoTrf::Vector3D vxmax = c4; + GeoTrf::Vector3D vxmin; if (c1.x() < c2.x()) { vxmin = c1; } @@ -471,7 +465,7 @@ SCT_Layer::calcSkiPhiOffset() // First calculated for abs(m_tilt). - double divisionAngle = 360 * CLHEP::degree / m_skisPerLayer; + double divisionAngle = 360 * GeoModelKernelUnits::degree / m_skisPerLayer; // double activeHalfWidth = 0.5 * m_skiAux->ski()->module()->activeWidth(); // double moduleHalfThickness = 0.5 * m_skiAux->ski()->module()->thickness(); @@ -501,7 +495,7 @@ SCT_Layer::calcSkiPhiOffset() //// std::cout << " Active width = " << m_skiAux->ski()->module()->activeWidth() << std::endl; //std::cout << " Module width = " << m_module->width() << std::endl; //std::cout << " Active width = " << m_module->activeWidth() << std::endl; - //std::cout << " Division angle = " << divisionAngle/CLHEP::degree << " CLHEP::deg" << std::endl; - //std::cout << " Ski phi offset = " << skiPhiOffset/CLHEP::degree << " CLHEP::deg" << std::endl; + //std::cout << " Division angle = " << divisionAngle/GeoModelKernelUnits::degree << " GeoModelKernelUnits::deg" << std::endl; + //std::cout << " Ski phi offset = " << skiPhiOffset/GeoModelKernelUnits::degree << " GeoModelKernelUnits::deg" << std::endl; return skiPhiOffset; } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_MaterialManager.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_MaterialManager.cxx index b7c66278b1033098d16b526bddf441e0bdfd7d9a..d5d853261358a77f7fce44ca38483b0d8dd71c77 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_MaterialManager.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_MaterialManager.cxx @@ -64,7 +64,7 @@ SCT_MaterialManager::loadMaterials() //const GeoMaterial *kapton = getMaterial("std::Kapton"); // 30th Aug 2005 D.Naito added. // CuKapton for Low Mass Tapes - //GeoMaterial * matCuKapton = new GeoMaterial("sct::CuKapton",2.94*gram/CLHEP::cm3); + //GeoMaterial * matCuKapton = new GeoMaterial("sct::CuKapton",2.94*gram/GeoModelKernelUnits::cm3); //matCuKapton->add(const_cast<GeoElement*>(copper), 0.6142); //matCuKapton->add(const_cast<GeoMaterial*>(kapton), 0.3858); //addMaterial(matCuKapton); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Module.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Module.cxx index 487468c5c2a33840530d502adf30f8bac554bebf..dea79f0f86d192fd3bf633fe878a4c5b0617a4d8 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Module.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Module.cxx @@ -32,14 +32,11 @@ #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" // 8th Aug 2005 S.Mima modified. #include "GeoModelKernel/GeoShapeSubtraction.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" - #include <cmath> SCT_Module::SCT_Module(const std::string & name) @@ -132,80 +129,80 @@ SCT_Module::preBuild() // Define constants for convenience. // for corner of outer side sensor. - CLHEP::Hep3Vector a(0.0, 0.5 * sensorWidth, 0.5 * sensorLength); - CLHEP::Hep3Vector b(0.0, -0.5 * sensorWidth, a.z()); - CLHEP::Hep3Vector c(0.0, b.y(),-0.5 * sensorLength); - CLHEP::Hep3Vector d(0.0, a.y(), c.z()); + GeoTrf::Vector3D a(0.0, 0.5 * sensorWidth, 0.5 * sensorLength); + GeoTrf::Vector3D b(0.0, -0.5 * sensorWidth, a.z()); + GeoTrf::Vector3D c(0.0, b.y(),-0.5 * sensorLength); + GeoTrf::Vector3D d(0.0, a.y(), c.z()); // for corner of inner side sensor. - CLHEP::Hep3Vector e(0.0, a.y(), a.z()); - CLHEP::Hep3Vector f(0.0, b.y(), b.z()); - CLHEP::Hep3Vector g(0.0, c.y(), c.z()); - CLHEP::Hep3Vector h(0.0, d.y(), d.z()); + GeoTrf::Vector3D e(0.0, a.y(), a.z()); + GeoTrf::Vector3D f(0.0, b.y(), b.z()); + GeoTrf::Vector3D g(0.0, c.y(), c.z()); + GeoTrf::Vector3D h(0.0, d.y(), d.z()); // for corner of base board. - CLHEP::Hep3Vector u(0.0, + GeoTrf::Vector3D u(0.0, m_baseBoardOffsetY + 0.5*baseBoardWidth, m_baseBoardOffsetZ + 0.5*baseBoardLength); - CLHEP::Hep3Vector v(0.0, m_baseBoardOffsetY - 0.5*baseBoardWidth, u.z()); - CLHEP::Hep3Vector w(0.0, v.y(), m_baseBoardOffsetZ - 0.5*baseBoardLength); - CLHEP::Hep3Vector x(0.0, u.y(),w.z()); + GeoTrf::Vector3D v(0.0, m_baseBoardOffsetY - 0.5*baseBoardWidth, u.z()); + GeoTrf::Vector3D w(0.0, v.y(), m_baseBoardOffsetZ - 0.5*baseBoardLength); + GeoTrf::Vector3D x(0.0, u.y(),w.z()); // for corner of hybrid, connectorouter and pigtail of outer side. - //CLHEP::Hep3Vector i(0.0, + //GeoTrf::Vector3D i(0.0, // 0.5*outerSideHybridWidth, // m_outerSide->hybridOffsetZ() + 0.5*outerSideHybridLength); - // CLHEP::Hep3Vector k(0.0, + // GeoTrf::Vector3D k(0.0, // -0.5*outerSideHybridWidth, // m_outerSide->hybridOffsetZ() + 0.5*outerSidePigtailLength); - //CLHEP::Hep3Vector l(0.0, + //GeoTrf::Vector3D l(0.0, // -0.5*outerSideHybridWidth - m_outerSide->pigtail()->width(), k.z()); - //CLHEP::Hep3Vector m(0.0, l.y(), + //GeoTrf::Vector3D m(0.0, l.y(), // m_outerSide->hybridOffsetZ() - 0.5*outerSidePigtailLength); - //CLHEP::Hep3Vector n(0.0, k.y(),m.z()); - //CLHEP::Hep3Vector p(0.0, i.y(), + //GeoTrf::Vector3D n(0.0, k.y(),m.z()); + //GeoTrf::Vector3D p(0.0, i.y(), // m_outerSide->hybridOffsetZ() - 0.5*outerSideHybridLength); - CLHEP::Hep3Vector i(0.0, + GeoTrf::Vector3D i(0.0, 0.5*outerSideHybridWidth, m_outerSide->hybridOffsetZ() + 0.5*outerSidePigtailLength); - CLHEP::Hep3Vector l(0.0, + GeoTrf::Vector3D l(0.0, -0.5*outerSideHybridWidth - m_outerSide->pigtail()->width(), i.z()); - CLHEP::Hep3Vector m(0.0, l.y(), + GeoTrf::Vector3D m(0.0, l.y(), m_outerSide->hybridOffsetZ() - 0.5*outerSidePigtailLength); - CLHEP::Hep3Vector p(0.0, i.y(), + GeoTrf::Vector3D p(0.0, i.y(), m.z()); // for corner of hybrid and interConnect of inner side. - CLHEP::Hep3Vector q(0.0, 0.5*outerSideHybridWidth, m_outerSide->hybridOffsetZ() + 0.5*outerSideHybridLength ); - CLHEP::Hep3Vector r(0.0, -0.5*innerSideHybridWidth, q.z()); - CLHEP::Hep3Vector s(0.0, r.y(), m_innerSide->hybridOffsetZ() - 0.5*innerSideHybridLength); - CLHEP::Hep3Vector t(0.0, q.y(), s.z()); - - // All points turn +-20 mCLHEP::rad around physical center of module. - a.rotateX(m_stereoOuter/CLHEP::radian); - b.rotateX(m_stereoOuter/CLHEP::radian); - c.rotateX(m_stereoOuter/CLHEP::radian); - d.rotateX(m_stereoOuter/CLHEP::radian); - - e.rotateX(m_stereoInner/CLHEP::radian); - f.rotateX(m_stereoInner/CLHEP::radian); - g.rotateX(m_stereoInner/CLHEP::radian); - h.rotateX(m_stereoInner/CLHEP::radian); - - i.rotateX(m_stereoOuter/CLHEP::radian); - //k.rotateX(m_stereoOuter/CLHEP::radian); - l.rotateX(m_stereoOuter/CLHEP::radian); - m.rotateX(m_stereoOuter/CLHEP::radian); - //n.rotateX(m_stereoOuter/CLHEP::radian); - p.rotateX(m_stereoOuter/CLHEP::radian); - - q.rotateX(m_stereoInner/CLHEP::radian); - r.rotateX(m_stereoInner/CLHEP::radian); - s.rotateX(m_stereoInner/CLHEP::radian); - t.rotateX(m_stereoInner/CLHEP::radian); + GeoTrf::Vector3D q(0.0, 0.5*outerSideHybridWidth, m_outerSide->hybridOffsetZ() + 0.5*outerSideHybridLength ); + GeoTrf::Vector3D r(0.0, -0.5*innerSideHybridWidth, q.z()); + GeoTrf::Vector3D s(0.0, r.y(), m_innerSide->hybridOffsetZ() - 0.5*innerSideHybridLength); + GeoTrf::Vector3D t(0.0, q.y(), s.z()); + + // All points turn +-20 mGeoModelKernelUnits::rad around physical center of module. + a = GeoTrf::RotateX3D(m_stereoOuter/GeoModelKernelUnits::radian)*a; + b = GeoTrf::RotateX3D(m_stereoOuter/GeoModelKernelUnits::radian)*b; + c = GeoTrf::RotateX3D(m_stereoOuter/GeoModelKernelUnits::radian)*c; + d = GeoTrf::RotateX3D(m_stereoOuter/GeoModelKernelUnits::radian)*d; + + e = GeoTrf::RotateX3D(m_stereoInner/GeoModelKernelUnits::radian)*e; + f = GeoTrf::RotateX3D(m_stereoInner/GeoModelKernelUnits::radian)*f; + g = GeoTrf::RotateX3D(m_stereoInner/GeoModelKernelUnits::radian)*g; + h = GeoTrf::RotateX3D(m_stereoInner/GeoModelKernelUnits::radian)*h; + + i = GeoTrf::RotateX3D(m_stereoOuter/GeoModelKernelUnits::radian)*i; + //k.rotateX(m_stereoOuter/GeoModelKernelUnits::radian); + l = GeoTrf::RotateX3D(m_stereoOuter/GeoModelKernelUnits::radian)*l; + m = GeoTrf::RotateX3D(m_stereoOuter/GeoModelKernelUnits::radian)*m; + //n.rotateX(m_stereoOuter/GeoModelKernelUnits::radian); + p = GeoTrf::RotateX3D(m_stereoOuter/GeoModelKernelUnits::radian)*p; + + q = GeoTrf::RotateX3D(m_stereoInner/GeoModelKernelUnits::radian)*q; + r = GeoTrf::RotateX3D(m_stereoInner/GeoModelKernelUnits::radian)*r; + s = GeoTrf::RotateX3D(m_stereoInner/GeoModelKernelUnits::radian)*s; + t = GeoTrf::RotateX3D(m_stereoInner/GeoModelKernelUnits::radian)*t; // Calculate demension of envelope1. const double z_ab = std::max(a.z(), b.z()); @@ -240,7 +237,7 @@ SCT_Module::preBuild() const double yCenterEnv1 = yminEnv1 + 0.5*widthEnv1; const double zCenterEnv1 = zmaxEnv1 - 0.5*lengthEnv1; - m_env1RefPointVector = new CLHEP::Hep3Vector(-xCenterEnv1, -yCenterEnv1, -zCenterEnv1); + m_env1RefPointVector = new GeoTrf::Vector3D(-xCenterEnv1, -yCenterEnv1, -zCenterEnv1); // Calculate demension of envelope2. const double z_ikl = std::max(i.z(), l.z()); @@ -271,7 +268,7 @@ SCT_Module::preBuild() const double yCenterEnv2 = ymaxEnv2 - 0.5*widthEnv2; const double zCenterEnv2 = zmaxEnv2 - 0.5*lengthEnv2; - m_env2RefPointVector = new CLHEP::Hep3Vector(-xCenterEnv2, -yCenterEnv2, -zCenterEnv2); + m_env2RefPointVector = new GeoTrf::Vector3D(-xCenterEnv2, -yCenterEnv2, -zCenterEnv2); // 8th Aug 2005 S.Mima modified. // Calculate dimension of subbox @@ -324,28 +321,23 @@ SCT_Module::preBuild() const GeoBox * subBox = new GeoBox(0.5*thicknessSubBox, 0.5*widthSubBox, 0.6*lengthSubBox); // In the following, envelope1 and envelope2 are added and SUBBOX is pulled. - const GeoShape & moduleEnvelope = (*envelope1 << HepGeom::Translate3D(xCenterEnv1, yCenterEnv1, zCenterEnv1)). - add(*envelope2 << HepGeom::Translate3D(xCenterEnv2, yCenterEnv2, zCenterEnv2)). - subtract(*subBox << HepGeom::Translate3D(xCenterSubBox, yCenterSubBox, zCenterSubBox)); + const GeoShape & moduleEnvelope = (*envelope1 << GeoTrf::Translate3D(xCenterEnv1, yCenterEnv1, zCenterEnv1)). + add(*envelope2 << GeoTrf::Translate3D(xCenterEnv2, yCenterEnv2, zCenterEnv2)). + subtract(*subBox << GeoTrf::Translate3D(xCenterSubBox, yCenterSubBox, zCenterSubBox)); const GeoLogVol * moduleLog = new GeoLogVol(getName(), &moduleEnvelope, materials.gasMaterial()); // // inner side // - CLHEP::HepRotation rotInner; - rotInner.rotateZ(180*CLHEP::deg); - rotInner.rotateX(m_stereoInner); - m_innerSidePos = new HepGeom::Transform3D(rotInner, - CLHEP::Hep3Vector(ISPosX, 0.0, 0.0)); + GeoTrf::Transform3D rotInner = GeoTrf::RotateX3D(m_stereoInner) * GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg); + m_innerSidePos = new GeoTrf::Transform3D(GeoTrf::Transform3D(GeoTrf::Translation3D(ISPosX, 0.0, 0.0)*rotInner)); // // outer side // - CLHEP::HepRotation rotOuter; - rotOuter.rotateX(m_stereoOuter); - m_outerSidePos = new HepGeom::Transform3D(rotOuter, - CLHEP::Hep3Vector(OSPosX, 0.0, 0.0)); + GeoTrf::RotateX3D rotOuter(m_stereoOuter); + m_outerSidePos = new GeoTrf::Transform3D(GeoTrf::Transform3D(GeoTrf::Translation3D(OSPosX, 0.0, 0.0)*rotOuter)); // // base board @@ -353,7 +345,7 @@ SCT_Module::preBuild() // const double baseBoardPosY = m_baseBoardOffsetY; const double baseBoardPosZ = m_baseBoardOffsetZ; - m_baseBoardPos = new HepGeom::Translate3D(CLHEP::Hep3Vector( 0.0, baseBoardPosY, baseBoardPosZ)); + m_baseBoardPos = new GeoTrf::Translate3D(0.0, baseBoardPosY, baseBoardPosZ); return moduleLog; diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_OuterSide.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_OuterSide.cxx index e0acd61372e5e4668eac32c6869ff60af898ebce..b9b9a7b6e92c13a68e5dfc99e629d6ffd3d1988c 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_OuterSide.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_OuterSide.cxx @@ -28,9 +28,9 @@ #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" +#include "GeoModelKernel/Units.h" +#include "GeoModelKernel/GeoDefinitions.h" + #include <cmath> @@ -131,13 +131,13 @@ SCT_OuterSide::preBuild() // *** 16:30 Wed 15th Jun 2005 D.Naito modified. (02)********************************* // *** -->> (02)********************************* - m_env1RefPointVector = new CLHEP::Hep3Vector(0.0, 0.0, 0.0); - m_env2RefPointVector = new CLHEP::Hep3Vector(-ose2PosX, -ose2PosY, -ose2PosZ); + m_env1RefPointVector = new GeoTrf::Vector3D(0.0, 0.0, 0.0); + m_env2RefPointVector = new GeoTrf::Vector3D(-ose2PosX, -ose2PosY, -ose2PosZ); // *** End of modified lines. ------------------ (02)********************************* - m_hybridPos = new GeoTransform(HepGeom::Translate3D(hybridPosX, hybridPosY, hybridPosZ)); + m_hybridPos = new GeoTransform(GeoTrf::Translate3D(hybridPosX, hybridPosY, hybridPosZ)); m_hybridPos->ref(); - m_pigtailPos = new GeoTransform(HepGeom::Translate3D(pigtailPosX, pigtailPosY, pigtailPosZ)); + m_pigtailPos = new GeoTransform(GeoTrf::Translate3D(pigtailPosX, pigtailPosY, pigtailPosZ)); m_pigtailPos->ref(); // The depth axis goes from the backside to the implant side @@ -148,13 +148,13 @@ SCT_OuterSide::preBuild() // --- hybrid | // ------- sensor | x-axis // - // Shown is the outer side. The inner side is the same but with a rotation of 180 CLHEP::deg around the z-axis. + // Shown is the outer side. The inner side is the same but with a rotation of 180 GeoModelKernelUnits::deg around the z-axis. // - //CLHEP::HepRotation rotSensor; - //rotSensor.rotateZ(180*CLHEP::deg); - //m_outerSidePos = new HepGeom::Transform3D(rotOuter, CLHEP::Hep3Vector(0.5 * (m_sensorGap + sectThickness), 0., 0.)); - //m_sensorPos = new GeoTransform(HepGeom::Transform3D(rotSensor, CLHEP::Hep3Vector(sensorPosX, sensorPosY, sensorPosZ))); - m_sensorPos = new GeoTransform(HepGeom::Translate3D(sensorPosX, sensorPosY, sensorPosZ)); + //GeoModelKernelUnits::HepRotation rotSensor; + //rotSensor.rotateZ(180*GeoModelKernelUnits::deg); + //m_outerSidePos = new GeoTrf::Transform3D(rotOuter, GeoTrf::Vector3D(0.5 * (m_sensorGap + sectThickness), 0., 0.)); + //m_sensorPos = new GeoTransform(GeoTrf::Transform3D(rotSensor, GeoTrf::Vector3D(sensorPosX, sensorPosY, sensorPosZ))); + m_sensorPos = new GeoTransform(GeoTrf::Translate3D(sensorPosX, sensorPosY, sensorPosZ)); m_sensorPos->ref(); // @@ -168,7 +168,7 @@ SCT_OuterSide::preBuild() 0.5 * l_ose2); const GeoShape & OuterSideEnvelopeShape = (*ose1Shape). - add(*ose2Shape << HepGeom::Translate3D(ose2PosX, ose2PosY, ose2PosZ)); + add(*ose2Shape << GeoTrf::Translate3D(ose2PosX, ose2PosY, ose2PosZ)); const GeoLogVol * OuterSideEnvelopeLog = new GeoLogVol("OuterSideEnvelope", &OuterSideEnvelopeShape, diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Pigtail.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Pigtail.cxx index 76023859d3f22c22d5f35d03763bb11733368015..11ae5d4618b0ca5ca6ec10a5cdfb2ecffea6c858 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Pigtail.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Pigtail.cxx @@ -13,7 +13,7 @@ #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_Pigtail::SCT_Pigtail(const std::string & name) : SCT_SharedComponentFactory(name) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_PixelAttachment.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_PixelAttachment.cxx index 0c0f063603463d79b05ff3a64e6a60ccccf27537..3d3a11f4aba4a6ca84b395625c2755098b27cede 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_PixelAttachment.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_PixelAttachment.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" // This is the SCT to Pixel attachment. This was originally defined in the // general indet services but it is in the SCT mother volume. diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_PowerTape.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_PowerTape.cxx index c8a6db4f401ed46f33093fe6aa114daf515c4ca5..2449ed9c07c25ed709ab44912f415fa8a96ca3b8 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_PowerTape.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_PowerTape.cxx @@ -13,7 +13,7 @@ #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_PowerTape::SCT_PowerTape(const std::string & name, double length) : SCT_SharedComponentFactory(name), m_length(length) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Sensor.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Sensor.cxx index 46b3c688a907a589797ff15a68fa2c5746af7713..6cc41f4ffb5cbc8dd69d2fbb3753e35de6a7c20c 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Sensor.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Sensor.cxx @@ -21,7 +21,7 @@ #include "InDetReadoutGeometry/SiCommonItems.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" using namespace InDetDD; @@ -122,10 +122,10 @@ SCT_Sensor::makeDesign() // This is the default and no action is required. // Can force axes not to be swapped by setting to false. // - // bool phiSyCLHEP::mmetric = true; - // bool etaSyCLHEP::mmetric = true; - // bool depthSyCLHEP::mmetric = true; - // m_design->setSyCLHEP::mmetry(phiSyCLHEP::mmetric, etaSyCLHEP::mmetric, depthSyCLHEP::mmetric, + // bool phiSyGeoModelKernelUnits::mmetric = true; + // bool etaSyGeoModelKernelUnits::mmetric = true; + // bool depthSyGeoModelKernelUnits::mmetric = true; + // m_design->setSyGeoModelKernelUnits::mmetry(phiSyGeoModelKernelUnits::mmetric, etaSyGeoModelKernelUnits::mmetric, depthSyGeoModelKernelUnits::mmetric, // } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Ski.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Ski.cxx index b7755133fa1be244d8503c71c2be85976c882707..bae8c9ba459f737137ecc625e981069b4a662a30 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Ski.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Ski.cxx @@ -28,10 +28,8 @@ #include "GeoModelKernel/GeoShape.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include <sstream> #include <cmath> @@ -104,8 +102,8 @@ SCT_Ski::getParameters() const GeoLogVol * SCT_Ski::preBuild() { - const double rphiClearance = 0.5*CLHEP::mm; - const double radialClearance = 0.5*CLHEP::mm; + const double rphiClearance = 0.5*GeoModelKernelUnits::mm; + const double radialClearance = 0.5*GeoModelKernelUnits::mm; // Make components. @@ -136,26 +134,26 @@ SCT_Ski::preBuild() // *** 18:00 Fri 27th May 2005 D.Naito put some comments. // I need to calculate moduleYMax and moduleYMin for yModuleOffset, - // because the modules is asyCLHEP::mmetry in y direction. + // because the modules is asyGeoModelKernelUnits::mmetry in y direction. // // These are coordinates of corners of module's envelopes. // - //CLHEP::Hep3Vector c0(0.0, 0.5*(m_module->env1Width()), 0.5*(m_module->env1Length())); - //CLHEP::Hep3Vector c1(0.0, -0.5*(m_module->env1Width()), 0.5*(m_module->env1Length())); - //CLHEP::Hep3Vector c2(0.0, -0.5*(m_module->env1Width()), -0.5*(m_module->env1Length())); - //CLHEP::Hep3Vector c3(0.0, 0.5*(m_module->env1Width()), -0.5*(m_module->env1Length())); - //CLHEP::Hep3Vector c4(0.0, + //GeoTrf::Vector3D c0(0.0, 0.5*(m_module->env1Width()), 0.5*(m_module->env1Length())); + //GeoTrf::Vector3D c1(0.0, -0.5*(m_module->env1Width()), 0.5*(m_module->env1Length())); + //GeoTrf::Vector3D c2(0.0, -0.5*(m_module->env1Width()), -0.5*(m_module->env1Length())); + //GeoTrf::Vector3D c3(0.0, 0.5*(m_module->env1Width()), -0.5*(m_module->env1Length())); + //GeoTrf::Vector3D c4(0.0, // -(m_module->env2RefPointVector()->y()) + 0.5*(m_module->env2Width()), // -(m_module->env2RefPointVector()->z()) + 0.5*(m_module->env2Length())); - //CLHEP::Hep3Vector c5(0.0, + //GeoTrf::Vector3D c5(0.0, // -(m_module->env2RefPointVector()->y()) - 0.5*(m_module->env2Width()), // -(m_module->env2RefPointVector()->z()) + 0.5*(m_module->env2Length())); - //CLHEP::Hep3Vector c6(0.0, + //GeoTrf::Vector3D c6(0.0, // -(m_module->env2RefPointVector()->y()) - 0.5*(m_module->env2Width()), // -(m_module->env2RefPointVector()->z()) - 0.5*(m_module->env2Length())); - //CLHEP::Hep3Vector c7(0.0, + //GeoTrf::Vector3D c7(0.0, // -(m_module->env2RefPointVector()->y()) + 0.5*(m_module->env2Width()), // -(m_module->env2RefPointVector()->z()) - 0.5*(m_module->env2Length())); @@ -254,7 +252,7 @@ SCT_Ski::preBuild() double xCoolingPipePos = coolingPipeOffsetX() - m_coolingPipeRadialOffset; //double yCoolingPipePos = yCoolingBlockPosMin + m_coolingPipePhiOffset; double yCoolingPipePos = coolingPipeOffsetY() + m_coolingPipePhiOffset; - m_coolingPipePos = new GeoTransform(HepGeom::Translate3D(xCoolingPipePos, yCoolingPipePos, 0)); + m_coolingPipePos = new GeoTransform(GeoTrf::Translate3D(xCoolingPipePos, yCoolingPipePos, 0)); m_coolingPipePos->ref(); // // @@ -275,13 +273,12 @@ SCT_Ski::preBuild() double yModulePos = yModuleOffset; // *** End of modified lines. ------------------ (04)********************************* double zModulePos = m_zPos[iModule]; - CLHEP::HepRotation rot; - + // There is only one type of module and this is rotated one way or the other // to get the phi-v (-ve), u-phi (+ve) orientations - rot.rotateX(0.5 * m_stereoSign * m_module->stereoAngle()); - CLHEP::Hep3Vector pos(xModulePos, yModulePos, zModulePos); - m_modulePos.push_back(HepGeom::Transform3D(rot, pos)); + GeoTrf::RotateX3D rot(0.5 * m_stereoSign * m_module->stereoAngle()); + GeoTrf::Translation3D pos(xModulePos, yModulePos, zModulePos); + m_modulePos.push_back(GeoTrf::Transform3D(pos*rot)); // // Calculate position of cooling block @@ -290,7 +287,7 @@ SCT_Ski::preBuild() double xCoolingBlockPos = xCoolingBlockOffset + xModulePos; double yCoolingBlockPos = yCoolingBlockOffset + yModulePos; double zCoolingBlockPos = zCoolingBlockOffset + zModulePos; - m_coolingBlockPos.push_back(new GeoTransform(HepGeom::Translate3D(xCoolingBlockPos, yCoolingBlockPos, zCoolingBlockPos))); + m_coolingBlockPos.push_back(new GeoTransform(GeoTrf::Translate3D(xCoolingBlockPos, yCoolingBlockPos, zCoolingBlockPos))); // @@ -299,7 +296,7 @@ SCT_Ski::preBuild() double xDoglegPos = xDoglegOffset + xModulePos; double yDoglegPos = yDoglegOffset + yModulePos; double zDoglegPos = zDoglegOffset + zModulePos; - m_doglegPos.push_back(new GeoTransform(HepGeom::Translate3D(xDoglegPos, yDoglegPos, zDoglegPos))); + m_doglegPos.push_back(new GeoTransform(GeoTrf::Translate3D(xDoglegPos, yDoglegPos, zDoglegPos))); // alternate staggering stagger_sign = - stagger_sign; @@ -312,41 +309,41 @@ SCT_Ski::preBuild() // These are coordinates of corners of module's envelopes. // - CLHEP::Hep3Vector c0(0.0, + GeoTrf::Vector3D c0(0.0, -(m_module->env1RefPointVector()->y()) + 0.5*(m_module->env1Width()), -(m_module->env1RefPointVector()->z()) + 0.5*(m_module->env1Length())); - CLHEP::Hep3Vector c1(0.0, + GeoTrf::Vector3D c1(0.0, -(m_module->env1RefPointVector()->y()) - 0.5*(m_module->env1Width()), -(m_module->env1RefPointVector()->z()) + 0.5*(m_module->env1Length())); - CLHEP::Hep3Vector c2(0.0, + GeoTrf::Vector3D c2(0.0, -(m_module->env1RefPointVector()->y()) - 0.5*(m_module->env1Width()), -(m_module->env1RefPointVector()->z()) - 0.5*(m_module->env1Length())); - CLHEP::Hep3Vector c3(0.0, + GeoTrf::Vector3D c3(0.0, -(m_module->env1RefPointVector()->y()) + 0.5*(m_module->env1Width()), -(m_module->env1RefPointVector()->z()) - 0.5*(m_module->env1Length())); - CLHEP::Hep3Vector c4(0.0, + GeoTrf::Vector3D c4(0.0, -(m_module->env2RefPointVector()->y()) + 0.5*(m_module->env2Width()), -(m_module->env2RefPointVector()->z()) + 0.5*(m_module->env2Length())); - CLHEP::Hep3Vector c5(0.0, + GeoTrf::Vector3D c5(0.0, -(m_module->env2RefPointVector()->y()) - 0.5*(m_module->env2Width()), -(m_module->env2RefPointVector()->z()) + 0.5*(m_module->env2Length())); - CLHEP::Hep3Vector c6(0.0, + GeoTrf::Vector3D c6(0.0, -(m_module->env2RefPointVector()->y()) - 0.5*(m_module->env2Width()), -(m_module->env2RefPointVector()->z()) - 0.5*(m_module->env2Length())); - CLHEP::Hep3Vector c7(0.0, + GeoTrf::Vector3D c7(0.0, -(m_module->env2RefPointVector()->y()) + 0.5*(m_module->env2Width()), -(m_module->env2RefPointVector()->z()) - 0.5*(m_module->env2Length())); double moduleYMax = c4.y(); double moduleYMin = c5.y(); - c0.rotateX(0.5 * m_stereoSign * m_module->stereoAngle()); - c1.rotateX(0.5 * m_stereoSign * m_module->stereoAngle()); - c2.rotateX(0.5 * m_stereoSign * m_module->stereoAngle()); - c3.rotateX(0.5 * m_stereoSign * m_module->stereoAngle()); - c4.rotateX(0.5 * m_stereoSign * m_module->stereoAngle()); - c5.rotateX(0.5 * m_stereoSign * m_module->stereoAngle()); - c6.rotateX(0.5 * m_stereoSign * m_module->stereoAngle()); - c7.rotateX(0.5 * m_stereoSign * m_module->stereoAngle()); + c0 = GeoTrf::RotateX3D(0.5 * m_stereoSign * m_module->stereoAngle())*c0; + c1 = GeoTrf::RotateX3D(0.5 * m_stereoSign * m_module->stereoAngle())*c1; + c2 = GeoTrf::RotateX3D(0.5 * m_stereoSign * m_module->stereoAngle())*c2; + c3 = GeoTrf::RotateX3D(0.5 * m_stereoSign * m_module->stereoAngle())*c3; + c4 = GeoTrf::RotateX3D(0.5 * m_stereoSign * m_module->stereoAngle())*c4; + c5 = GeoTrf::RotateX3D(0.5 * m_stereoSign * m_module->stereoAngle())*c5; + c6 = GeoTrf::RotateX3D(0.5 * m_stereoSign * m_module->stereoAngle())*c6; + c7 = GeoTrf::RotateX3D(0.5 * m_stereoSign * m_module->stereoAngle())*c7; moduleYMax = std::max(std::max(c0.y(), c4.y()), std::max(c7.y(), c3.y())); moduleYMin = std::min(std::min(c1.y(), c5.y()), std::min(c6.y(), c2.y())); @@ -419,7 +416,7 @@ SCT_Ski::preBuild() //double xCoolingPipeShift = xCoolingPipePos - xCenter; //double yCoolingPipeShift = yCoolingPipePos - yCenter; - m_refPointTransform = new GeoTransform(HepGeom::Translate3D(-xCenter, -yCenter, 0)); + m_refPointTransform = new GeoTransform(GeoTrf::Translate3D(-xCenter, -yCenter, 0)); m_refPointTransform->ref(); // std::cout << "xCenter, yCenter = " << xCenter << " " << yCenter << std::endl; // std::cout << "xShift2, yShift2 = " << xShift2 << " " << yShift2 << std::endl; @@ -427,8 +424,8 @@ SCT_Ski::preBuild() // *** 10:00 Tue 31st May 2005 D.Naito modified. (14)********************************* // *** -->> (14)********************************* - m_env1RefPointVector = new CLHEP::Hep3Vector(-xCenter, -yCenter, 0.0); - m_env2RefPointVector = new CLHEP::Hep3Vector(-xShift2, -yShift2, 0.0); + m_env1RefPointVector = new GeoTrf::Vector3D(-xCenter, -yCenter, 0.0); + m_env2RefPointVector = new GeoTrf::Vector3D(-xShift2, -yShift2, 0.0); m_env1Thickness = xmax1-xmin1; m_env1Width = ymax1-ymin1; m_env2Thickness = xmax2-xmin2; @@ -441,7 +438,7 @@ SCT_Ski::preBuild() const GeoShape * skiEnvelopeShape = 0; const GeoShape & tmpShape = (*envelope1). - add(*envelope2 << HepGeom::Translate3D(xShift2, yShift2, 0)); + add(*envelope2 << GeoTrf::Translate3D(xShift2, yShift2, 0)); skiEnvelopeShape = &tmpShape; diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SkiAux.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SkiAux.cxx index 67757c85e528057a2b9763ceb936e0875aa55c07..3c3d51e8e56c9e44ed7d03c1a5a033830c420a33 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SkiAux.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SkiAux.cxx @@ -24,10 +24,8 @@ #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include <cmath> @@ -198,30 +196,27 @@ SCT_SkiAux::build() // 15th Aug 2005 S.Mima modified. // double baseBoardPosZ = m_ski->zPos(iModule) + m_ski->module()->baseBoardCenter(); double coolingCenterPosZ = m_ski->zPos(iModule) + m_ski->coolingBlockOffsetZ(); - CLHEP::Hep3Vector posBracket(xBracketPos, yBracketPos, coolingCenterPosZ); - CLHEP::HepRotation rotBracket; - rotBracket.rotateZ(m_bracketPhiOffset); - skiAux->add(new GeoTransform(HepGeom::Transform3D(rotBracket, posBracket))); + GeoTrf::Translation3D posBracket(xBracketPos, yBracketPos, coolingCenterPosZ); + GeoTrf::RotateZ3D rotBracket(m_bracketPhiOffset); + skiAux->add(new GeoTransform(GeoTrf::Transform3D(posBracket*rotBracket))); skiAux->add(m_bracket->getVolume()); } // Position the harness if(m_harness != 0) { - CLHEP::Hep3Vector posHarness(xHarnessPos, yHarnessPos, 0); - CLHEP::HepRotation rotHarness; - rotHarness.rotateZ(m_powerTapePhiOffset); - skiAux->add(new GeoTransform(HepGeom::Transform3D(rotHarness,posHarness))); + GeoTrf::Translation3D posHarness(xHarnessPos, yHarnessPos, 0); + GeoTrf::RotateZ3D rotHarness(m_powerTapePhiOffset); + skiAux->add(new GeoTransform(GeoTrf::Transform3D(posHarness*rotHarness))); skiAux->add(m_harness->getVolume()); } // // Position the power tapes // - CLHEP::Hep3Vector posTape(xTapePos, yTapePos, 0); - CLHEP::HepRotation rotTape; - rotTape.rotateZ(m_powerTapePhiOffset); + GeoTrf::Translation3D posTape(xTapePos, yTapePos, 0); + GeoTrf::RotateZ3D rotTape(m_powerTapePhiOffset); - skiAux->add(new GeoTransform(HepGeom::Transform3D(rotTape,posTape))); + skiAux->add(new GeoTransform(GeoTrf::Transform3D(posTape*rotTape))); skiAux->add(m_skiPowerTape->getVolume()); diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SkiPowerTape.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SkiPowerTape.cxx index c968b66209eba986d71e3a12f1c72d9817f59ee9..9b11aeb79d5cffaea02bd07a5eed36c749b92de5 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SkiPowerTape.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SkiPowerTape.cxx @@ -25,17 +25,13 @@ #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" - +#include "GeoModelKernel/Units.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" +#include <iostream> #include <sstream> #include <cmath> -#include "CLHEP/Units/SystemOfUnits.h" - - SCT_SkiPowerTape::SCT_SkiPowerTape(const std::string & name, const SCT_Ski * ski, @@ -98,7 +94,7 @@ SCT_SkiPowerTape::build() // nPos is used to stack the power tapes. Modules closest to interlink are // furthest from support. The positive and negative z positions are - // syCLHEP::mmetric. nPos = 5,4,3,2,1,0,0,1,2,3,4,5 for the 12 modules. + // syGeoModelKernelUnits::mmetric. nPos = 5,4,3,2,1,0,0,1,2,3,4,5 for the 12 modules. int nPos; // test sign of zpos to determine whether the tape runs to the @@ -159,9 +155,9 @@ SCT_SkiPowerTape::build() // Position the tape - skiPowerTape->add(new GeoTransform(HepGeom::Translate3D(xTapePos, yTapePos, tapeMid))); + skiPowerTape->add(new GeoTransform(GeoTrf::Translate3D(xTapePos, yTapePos, tapeMid))); skiPowerTape->add(powerTape.getVolume()); - mass += (powerTape.getVolume()->getLogVol()->getShape()->volume()/CLHEP::cm3)*(powerTape.material()->getDensity()/CLHEP::g/CLHEP::cm3); + mass += (powerTape.getVolume()->getLogVol()->getShape()->volume()/GeoModelKernelUnits::cm3)*(powerTape.material()->getDensity()/GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); ltot += tapeLength; } diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Spider.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Spider.cxx index 6ac7338c91201f9211cf0c39723a4eaa41905dfa..fc375224b9d69127e7f360237a781f3d254b47ca 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Spider.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_Spider.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_Spider::SCT_Spider(const std::string & name) diff --git a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SupportCyl.cxx b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SupportCyl.cxx index eee354f84df7bde666911828c7985f2e4942b4e7..a9a81399933d6348d8c07ccf6fe2970f952f50ea 100755 --- a/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SupportCyl.cxx +++ b/InnerDetector/InDetDetDescr/SCT_GeoModel/src/SCT_SupportCyl.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" SCT_SupportCyl::SCT_SupportCyl(const std::string & name, int iLayer, double length) diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/CMakeLists.txt b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/CMakeLists.txt index 85912db7009aabf2483d30b29209f26d5f933aae..24ba4ff519969bfafea1a48e8b699d41ad957903 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/CMakeLists.txt +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/CMakeLists.txt @@ -18,27 +18,21 @@ atlas_depends_on_subdirs( PUBLIC Control/SGTools Control/StoreGate DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeometryDBSvc + DetectorDescription/GeoPrimitives InnerDetector/InDetConditions/InDetCondServices InnerDetector/InDetDetDescr/InDetIdentifier ) # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: -atlas_add_library( SCT_SLHC_GeoModelLib - src/*.cxx - PUBLIC_HEADERS SCT_SLHC_GeoModel - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} GeoModelUtilities Identifier GaudiKernel InDetGeoModelUtils InDetReadoutGeometry StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES SGTools GeoModelKernel InDetCondServices InDetIdentifier ) - atlas_add_component( SCT_SLHC_GeoModel + src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} GeoModelUtilities Identifier GaudiKernel InDetGeoModelUtils InDetReadoutGeometry SGTools StoreGateLib SGtests GeoModelKernel InDetCondServices InDetIdentifier SCT_SLHC_GeoModelLib ) + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${GEOMODEL_LIBRARIES} GeoModelUtilities Identifier GaudiKernel InDetGeoModelUtils InDetReadoutGeometry SGTools StoreGateLib SGtests InDetCondServices InDetIdentifier ) diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_FwdRing.h b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_FwdRing.h index 4056b1a373eb8fcd0d2a3f46e31e0541be422cd3..b0f51bd76a9eaf7615de2886f6bb3c1d30b371ef 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_FwdRing.h +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_FwdRing.h @@ -6,8 +6,8 @@ #define SCT_SLHC_GeoModel_SCT_FWDRING_H #include "SCT_SLHC_GeoModel/SCT_ComponentFactory.h" - -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include <vector> class GeoNameTag; diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_GeneralParameters.h b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_GeneralParameters.h index 85f4b3d2c736c1805ed38e4ccab0f16a39c6cb21..fbc29a9013823399ce05a90e38726d0260e235d0 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_GeneralParameters.h +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_GeneralParameters.h @@ -5,7 +5,8 @@ #ifndef SCT_SLHC_GeoModel_SCT_GeneralParameters_H #define SCT_SLHC_GeoModel_SCT_GeneralParameters_H -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "SCT_SLHC_GeoModel/SCT_ParametersBase.h" #include <string> @@ -32,7 +33,7 @@ public: // General double safety() const; - const HepGeom::Transform3D & partTransform(const std::string & partName) const; + const GeoTrf::Transform3D & partTransform(const std::string & partName) const; bool partPresent(const std::string & partName) const; double envelopeRMin() const; diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_InnerSide.h b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_InnerSide.h index 3c521a7cd552ad0220564b1215c5c01e52ee96a6..8ec86aea6a275185ca770b5c721c867651940581 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_InnerSide.h +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_InnerSide.h @@ -14,7 +14,7 @@ class GeoMaterial; class GeoVPhysVol; class GeoLogVol; class GeoTransform; -#include "CLHEP/Vector/ThreeVector.h" + namespace InDetDDSLHC { diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_Module.h b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_Module.h index 44145db0a7bb4d9856b01750048073092c41238f..c663fc6a59f4e86f4c55c613e1ceb843940b99f9 100755 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_Module.h +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_Module.h @@ -7,8 +7,9 @@ #include "SCT_SLHC_GeoModel/SCT_ComponentFactory.h" #include "SCT_SLHC_GeoModel/SCT_Identifier.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" + #include <string> class GeoMaterial; diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_OuterSide.h b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_OuterSide.h index ada173f18459f520ffee412c716bdfd8b2e61df4..0a57bdcff7b74bab48867def24a71e5f9e49f00a 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_OuterSide.h +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_OuterSide.h @@ -14,7 +14,7 @@ class GeoMaterial; class GeoVPhysVol; class GeoLogVol; class GeoTransform; -#include "CLHEP/Vector/ThreeVector.h" + namespace InDetDDSLHC { diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_Ski.h b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_Ski.h index 80af0ab72137aba234de67c8a6853293b12775b4..90445eac049094d241109e1c401421423a8e7556 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_Ski.h +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/SCT_SLHC_GeoModel/SCT_Ski.h @@ -7,8 +7,8 @@ #include "SCT_SLHC_GeoModel/SCT_ComponentFactory.h" #include "SCT_SLHC_GeoModel/SCT_Identifier.h" - -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include <string> #include <vector> @@ -19,7 +19,7 @@ class GeoPhysVol; class GeoLogVol; class GeoNameTag; class GeoTransform; -#include "CLHEP/Vector/ThreeVector.h" + namespace InDetDDSLHC { diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Barrel.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Barrel.cxx index c318fe92b8923e50ad587fd23bedecdd256ed334..3788efffe3facdfd078ae43cb6f17756e051cc08 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Barrel.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Barrel.cxx @@ -24,7 +24,7 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" namespace InDetDDSLHC { @@ -64,8 +64,8 @@ const GeoLogVol* SCT_Barrel::preBuild(){ const GeoTube* sct_barrel_2 = new GeoTube(m_intermediateRadius, m_outerRadius, 0.25*(m_length-m_intermediateLength)); //make a single envelope for sct barrel const GeoShape & barrelEnvelopeShape = (*sct_barrel_1). - add(*sct_barrel_2 << HepGeom::TranslateZ3D(0.25*(m_length+m_intermediateLength))). - add(*sct_barrel_2 << HepGeom::TranslateZ3D(-0.25*(m_length+m_intermediateLength))); + add(*sct_barrel_2 << GeoTrf::TranslateZ3D(0.25*(m_length+m_intermediateLength))). + add(*sct_barrel_2 << GeoTrf::TranslateZ3D(-0.25*(m_length+m_intermediateLength))); barrelLog = new GeoLogVol(getName(), &barrelEnvelopeShape, materials->gasMaterial()); }else if(layoutType == 2){//same length barrels const GeoTube* barrelEnvelopeShape = new GeoTube(m_innerRadius, m_outerRadius, 0.5*m_length); @@ -91,7 +91,7 @@ GeoVPhysVol* SCT_Barrel::build(SCT_Identifier id) const{ barrel->add(new GeoNameTag("Layer#"+intToString(iLayer))); barrel->add(new GeoIdentifierTag(iLayer)); // Identifier layer= iLayer id.setLayerDisk(iLayer); - GeoAlignableTransform* transform = new GeoAlignableTransform(HepGeom::Transform3D()); + GeoAlignableTransform* transform = new GeoAlignableTransform(GeoTrf::Transform3D()); barrel->add(transform); GeoVPhysVol* layerPV = layer.build(id); barrel->add(layerPV); diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelModuleParameters.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelModuleParameters.cxx index c8d43d9b13fe7ff39c832b1b61efda023166c059..5fed24ed9d449a3c992cfb083bbefa27eef3a7d5 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelModuleParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelModuleParameters.cxx @@ -6,7 +6,7 @@ #include "SCT_SLHC_GeoModel/SCT_GeometryManager.h" #include "SCT_SLHC_GeoModel/SCT_DataBase.h" #include "GeometryDBSvc/IGeometryDBSvc.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <cmath> @@ -36,7 +36,7 @@ SCT_BarrelModuleParameters::SCT_BarrelModuleParameters(const SCT_DataBase * sctd double SCT_BarrelModuleParameters::sensorThickness(int moduleType) const { - double thickness = db()->getDouble(m_SctBrlSensor, "THICKNESS", moduleType) * CLHEP::mm; + double thickness = db()->getDouble(m_SctBrlSensor, "THICKNESS", moduleType) * GeoModelKernelUnits::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "-----------2 sensorThickness mod_typ("<<moduleType<<") = "<< thickness << endmsg; return thickness; } @@ -44,7 +44,7 @@ SCT_BarrelModuleParameters::sensorThickness(int moduleType) const double SCT_BarrelModuleParameters::sensorWidth(int moduleType) const { - double width = db()->getDouble(m_SctBrlSensor, "WIDTH", moduleType) * CLHEP::mm; + double width = db()->getDouble(m_SctBrlSensor, "WIDTH", moduleType) * GeoModelKernelUnits::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"-----------2 DXYZ2 sensorWidth mod_typ("<<moduleType<<") = "<< width <<endmsg; return width; } @@ -52,7 +52,7 @@ SCT_BarrelModuleParameters::sensorWidth(int moduleType) const double SCT_BarrelModuleParameters::sensorLength(int moduleType) const { - double sensorLen = db()->getDouble(m_SctBrlSensor, "LENGTH", moduleType) * CLHEP::mm; + double sensorLen = db()->getDouble(m_SctBrlSensor, "LENGTH", moduleType) * GeoModelKernelUnits::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"-----------2 SensorLength DXYZ3 mod_typ("<<moduleType<<") = "<<sensorLen <<endmsg; return sensorLen; } @@ -81,7 +81,7 @@ double SCT_BarrelModuleParameters::baseBoardThickness(int moduleType) const { //sprintf(paraName, "BRL_M%d_BBTHICK", moduleType); - double bbthick = db()->getDouble(m_SctBrlModule, "BASEBOARDTHICKNESS", moduleType) * CLHEP::mm; + double bbthick = db()->getDouble(m_SctBrlModule, "BASEBOARDTHICKNESS", moduleType) * GeoModelKernelUnits::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"-----------2 baseBoardThickness BBTHICK mod_typ("<<moduleType<<") = "<< bbthick <<endmsg; return bbthick; } @@ -89,13 +89,13 @@ SCT_BarrelModuleParameters::baseBoardThickness(int moduleType) const double SCT_BarrelModuleParameters::baseBoardWidth(int moduleType) const { - double bbwidth = db()->getDouble(m_SctBrlModule, "BASEBOARDWIDTH", moduleType) * CLHEP::mm; + double bbwidth = db()->getDouble(m_SctBrlModule, "BASEBOARDWIDTH", moduleType) * GeoModelKernelUnits::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"-----------2 baseBoardWidth BBWID mod_typ("<<moduleType<<") = "<< bbwidth <<endmsg; return bbwidth; } double SCT_BarrelModuleParameters::baseBoardLength(int moduleType) const{ - double bblength = db()->getDouble(m_SctBrlModule, "BASEBOARDLENGTH", moduleType) * CLHEP::mm; + double bblength = db()->getDouble(m_SctBrlModule, "BASEBOARDLENGTH", moduleType) * GeoModelKernelUnits::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"-----------2 baseBoardLength BBLEN mod_typ("<<moduleType<<") = "<<bblength <<endmsg; return bblength; } @@ -109,16 +109,16 @@ SCT_BarrelModuleParameters::baseBoardMaterial(int moduleType) const } double SCT_BarrelModuleParameters::baseBoardOffsetY(int /*moduleType*/) const{ //if(moduleType == 1) - return -5.7*CLHEP::mm; + return -5.7*GeoModelKernelUnits::mm; //else - // return -5.7*CLHEP::mm; + // return -5.7*GeoModelKernelUnits::mm; } double SCT_BarrelModuleParameters::baseBoardOffsetZ(int moduleType) const{ if(moduleType == 1) - return -7.1*CLHEP::mm; + return -7.1*GeoModelKernelUnits::mm; else - return -1.9*CLHEP::mm; + return -1.9*GeoModelKernelUnits::mm; } // @@ -127,13 +127,13 @@ double SCT_BarrelModuleParameters::baseBoardOffsetZ(int moduleType) const{ double SCT_BarrelModuleParameters::moduleStereoAngle(int moduleType) const { - return db()->getDouble(m_SctBrlModule, "STEREOANGLE", moduleType) * CLHEP::mrad; + return db()->getDouble(m_SctBrlModule, "STEREOANGLE", moduleType) * GeoModelKernelUnits::mrad; } double SCT_BarrelModuleParameters::moduleInterSidesGap(int moduleType) const { - return db()->getDouble(m_SctBrlModule, "INTERSIDESGAP", moduleType) * CLHEP::mm; + return db()->getDouble(m_SctBrlModule, "INTERSIDESGAP", moduleType) * GeoModelKernelUnits::mm; } // Barrel Module Side Design @@ -141,7 +141,7 @@ SCT_BarrelModuleParameters::moduleInterSidesGap(int moduleType) const double SCT_BarrelModuleParameters::barrelModelSideStripPitch(int moduleType) const { - double pitch = db()->getDouble(m_SctBrlSensor, "STRIPPITCH", moduleType) * CLHEP::mm; + double pitch = db()->getDouble(m_SctBrlSensor, "STRIPPITCH", moduleType) * GeoModelKernelUnits::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"-----------2 barrelModelSideStripPitch PITCH mod_typ("<<moduleType<<") = "<<pitch <<endmsg; return pitch; } @@ -149,7 +149,7 @@ SCT_BarrelModuleParameters::barrelModelSideStripPitch(int moduleType) const double SCT_BarrelModuleParameters::barrelModelSideStripLength(int moduleType) const { - double stripLen = db()->getDouble(m_SctBrlSensor, "STRIPLENGTH", moduleType) * CLHEP::mm; + double stripLen = db()->getDouble(m_SctBrlSensor, "STRIPLENGTH", moduleType) * GeoModelKernelUnits::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"-----------2 barrelModelSideStripLength STRIPLEN mod_typ("<<moduleType<<") = "<<stripLen <<endmsg; return stripLen; } @@ -157,7 +157,7 @@ SCT_BarrelModuleParameters::barrelModelSideStripLength(int moduleType) const double SCT_BarrelModuleParameters::barrelModelSideTotalDeadLength(int moduleType) const { - double stripdeadLen = db()->getDouble(m_SctBrlSensor, "STRIPDEADLENGTH", moduleType) * CLHEP::mm; + double stripdeadLen = db()->getDouble(m_SctBrlSensor, "STRIPDEADLENGTH", moduleType) * GeoModelKernelUnits::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"-----------2 barrelModelSideTotalDeadLength STRIPDEADLEN mod_typ("<<moduleType<<") = "<<stripdeadLen<<endmsg; return stripdeadLen; } @@ -177,7 +177,7 @@ double SCT_BarrelModuleParameters::barrelModelSideSegmentGap(int moduleType) const { if (m_SctBrlSensor) { - return db()->getDouble(m_SctBrlSensor, "SEGMENTGAP", moduleType) * CLHEP::mm; + return db()->getDouble(m_SctBrlSensor, "SEGMENTGAP", moduleType) * GeoModelKernelUnits::mm; } else { return 0; } diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelModuleParametersOld.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelModuleParametersOld.cxx index 912c04fdbaef8c9f30162a007f0bd460e5f444cd..e71ae56a28a0b1eea1ef97466d38ab2ad5f2668b 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelModuleParametersOld.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelModuleParametersOld.cxx @@ -9,7 +9,7 @@ #include "GaudiKernel/MsgStream.h" #include "RDBAccessSvc/IRDBRecord.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <cmath> #include <cstring> @@ -41,12 +41,12 @@ void barrelModSplitString(const std::string& str, std::vector<std::string>& str_ // -const double PITCH = 80*CLHEP::micrometer; -const double HALF_ACTIVE_STRIP_LENGTH = 31*CLHEP::mm; -const double NOMINAL_WAFER_LENGTH = 63.960*CLHEP::mm; -const double REF_DISTANCE_BETWEEN_FIDUCIALS = 2.19*CLHEP::mm; -const double DISTANCE_CORNER_MARK_TO_CENTER = 31.750*CLHEP::mm; -const double DISTANCE_CORNER_MARK_TO_FIDUCIAL = 0.8*CLHEP::mm; +const double PITCH = 80*GeoModelKernelUnits::micrometer; +const double HALF_ACTIVE_STRIP_LENGTH = 31*GeoModelKernelUnits::mm; +const double NOMINAL_WAFER_LENGTH = 63.960*GeoModelKernelUnits::mm; +const double REF_DISTANCE_BETWEEN_FIDUCIALS = 2.19*GeoModelKernelUnits::mm; +const double DISTANCE_CORNER_MARK_TO_CENTER = 31.750*GeoModelKernelUnits::mm; +const double DISTANCE_CORNER_MARK_TO_FIDUCIAL = 0.8*GeoModelKernelUnits::mm; const double DISTANCE_CENTER_TO_CENTER = 2*(DISTANCE_CORNER_MARK_TO_CENTER - DISTANCE_CORNER_MARK_TO_FIDUCIAL) + REF_DISTANCE_BETWEEN_FIDUCIALS; @@ -131,7 +131,7 @@ SCT_BarrelModuleParametersOld::sensorThickness(int moduleType) const char paraName[50]; sprintf(paraName, "BRL_M%d_DXYZ1", moduleType); std::cout<<"-----------2 sensorThickness DXYZ1 mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second <<std::endl; - return (m_SCT_Modules->find(paraName))->second*CLHEP::cm; + return (m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm; } double @@ -139,8 +139,8 @@ SCT_BarrelModuleParametersOld::sensorWidth(int moduleType) const { char paraName[50]; sprintf(paraName, "BRL_M%d_DXYZ2", moduleType); - std::cout<<"-----------2 DXYZ2 sensorWidth mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second*CLHEP::cm <<std::endl; - return (m_SCT_Modules->find(paraName))->second*CLHEP::cm; + std::cout<<"-----------2 DXYZ2 sensorWidth mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm <<std::endl; + return (m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm; } double @@ -148,7 +148,7 @@ SCT_BarrelModuleParametersOld::sensorLength(int moduleType) const { char paraName[50]; sprintf(paraName, "BRL_M%d_DXYZ3", moduleType); - float sensorLen = (m_SCT_Modules->find(paraName))->second*CLHEP::cm; + float sensorLen = (m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm; std::cout<<"-----------2 SensorLentgh DXYZ3 mod_typ("<<moduleType<<") = "<<sensorLen <<std::endl; return sensorLen; } @@ -171,8 +171,8 @@ SCT_BarrelModuleParametersOld::baseBoardThickness(int moduleType) const { char paraName[50]; sprintf(paraName, "BRL_M%d_BBTHICK", moduleType); - std::cout<<"-----------2 baseBoardThickness BBTHICK mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second*CLHEP::cm <<std::endl; - return (m_SCT_Modules->find(paraName))->second*CLHEP::cm; + std::cout<<"-----------2 baseBoardThickness BBTHICK mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm <<std::endl; + return (m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm; } double @@ -180,15 +180,15 @@ SCT_BarrelModuleParametersOld::baseBoardWidth(int moduleType) const { char paraName[50]; sprintf(paraName, "BRL_M%d_BBWID", moduleType); - std::cout<<"-----------2 baseBoardWidth BBWID mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second*CLHEP::cm <<std::endl; - return (m_SCT_Modules->find(paraName))->second*CLHEP::cm; + std::cout<<"-----------2 baseBoardWidth BBWID mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm <<std::endl; + return (m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm; } double SCT_BarrelModuleParametersOld::baseBoardLength(int moduleType) const{ char paraName[50]; sprintf(paraName, "BRL_M%d_BBLEN", moduleType); std::cout<<"-----------2 baseBoardLength BBLEN mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second <<std::endl; - return (m_SCT_Modules->find(paraName))->second*CLHEP::cm; + return (m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm; } std::string @@ -202,16 +202,16 @@ SCT_BarrelModuleParametersOld::baseBoardMaterial(int moduleType) const } double SCT_BarrelModuleParametersOld::baseBoardOffsetY(int /*moduleType*/) const{ //if(moduleType == 1) - return -5.7*CLHEP::mm; + return -5.7*GeoModelKernelUnits::mm; //else - // return -5.7*CLHEP::mm; + // return -5.7*GeoModelKernelUnits::mm; } double SCT_BarrelModuleParametersOld::baseBoardOffsetZ(int moduleType) const{ if(moduleType == 1) - return -7.1*CLHEP::mm; + return -7.1*GeoModelKernelUnits::mm; else - return -1.9*CLHEP::mm; + return -1.9*GeoModelKernelUnits::mm; } // @@ -222,7 +222,7 @@ SCT_BarrelModuleParametersOld::moduleStereoAngle(int moduleType) const { char paraName[50]; sprintf(paraName, "BRL_M%d_STEREOANGLE", moduleType); - return (m_SCT_Modules->find(paraName))->second*CLHEP::milliradian; + return (m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::milliradian; } double @@ -230,7 +230,7 @@ SCT_BarrelModuleParametersOld::moduleInterSidesGap(int moduleType) const { char paraName[50]; sprintf(paraName, "BRL_M%d_INTERSIDESGAP", moduleType); - return (double)(m_SCT_Modules->find(paraName))->second*CLHEP::mm; + return (double)(m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::mm; } // Barrel Module Side Design @@ -240,8 +240,8 @@ SCT_BarrelModuleParametersOld::barrelModelSideStripPitch(int moduleType) const { char paraName[50]; sprintf(paraName, "BRL_M%d_PITCH", moduleType); - std::cout<<"-----------2 barrelModelSideStripPitch PITCH mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second*CLHEP::micrometer <<std::endl; - return (double)(m_SCT_Modules->find(paraName))->second*CLHEP::micrometer; + std::cout<<"-----------2 barrelModelSideStripPitch PITCH mod_typ("<<moduleType<<") = "<<(m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::micrometer <<std::endl; + return (double)(m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::micrometer; } double @@ -249,7 +249,7 @@ SCT_BarrelModuleParametersOld::barrelModelSideStripLength(int moduleType) const { char paraName[50]; sprintf(paraName, "BRL_M%d_STRIPLEN", moduleType); - double stripLen = (m_SCT_Modules->find(paraName))->second*CLHEP::cm; + double stripLen = (m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm; std::cout<<"-----------2 barrelModelSideStripLength STRIPLEN mod_typ("<<moduleType<<") = "<<stripLen <<std::endl; return stripLen; } @@ -259,7 +259,7 @@ SCT_BarrelModuleParametersOld::barrelModelSideTotalDeadLength(int moduleType) co { char paraName[50]; sprintf(paraName, "BRL_M%d_STRIPDEADLEN", moduleType); - double stripdeadLen = (m_SCT_Modules->find(paraName))->second*CLHEP::cm; + double stripdeadLen = (m_SCT_Modules->find(paraName))->second*GeoModelKernelUnits::cm; std::cout<<"-----------2 barrelModelSideTotalDeadLength STRIPDEADLEN mod_typ("<<moduleType<<") = "<<stripdeadLen<<std::endl; return stripdeadLen; } @@ -300,7 +300,7 @@ SCT_BarrelModuleParametersOld::barrelDeadEdge(int moduleType) const char paraName2[50]; sprintf(paraName1, "BRL_M%d_DXYZ3", moduleType); sprintf(paraName2, "BRL_M%d_STRIPLEN", moduleType); - float deadEdge = 0.5*((m_SCT_Modules->find(paraName1))->second-(m_SCT_Modules->find(paraName2))->second)*CLHEP::mm; + float deadEdge = 0.5*((m_SCT_Modules->find(paraName1))->second-(m_SCT_Modules->find(paraName2))->second)*GeoModelKernelUnits::mm; std::cout<<"-----------2 barrelDeadEdge DEADED mod_typ("<<moduleType<<") = "<<deadEdge<<std::endl; return deadEdge; } diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelParameters.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelParameters.cxx index f49401d3009f4998adaf5bad49b15b347fa56e67..75881f23f5062447089e16fcfdaf0a1a5ed31e91 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelParameters.cxx @@ -6,7 +6,7 @@ #include "SCT_SLHC_GeoModel/SCT_DataBase.h" #include "RDBAccessSvc/IRDBRecordset.h" #include "GeometryDBSvc/IGeometryDBSvc.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <iostream> #include <cmath> @@ -56,7 +56,7 @@ SCT_BarrelParameters::SCT_BarrelParameters(const SCT_DataBase * sctdb, const SCT moduleIdVec = new std::vector<int>; m_moduleIdMap[type] = moduleIdVec; } - zposVec->push_back(db()->getDouble(m_SctBrlSkiZ,"ZPOSITION",i)*CLHEP::mm); + zposVec->push_back(db()->getDouble(m_SctBrlSkiZ,"ZPOSITION",i)*GeoModelKernelUnits::mm); moduleIdVec->push_back(db()->getInt(m_SctBrlSkiZ,"MODULEID",i)); } } @@ -100,9 +100,9 @@ SCT_BarrelParameters::skiFirstStagger() const{ double SCT_BarrelParameters::skiRadialSep(int ilayer) const{ - // return 2.8*CLHEP::mm;//CLHEP::mm + // return 2.8*GeoModelKernelUnits::mm;//GeoModelKernelUnits::mm int ladType = ladderType(ilayer); - return db()->getDouble(m_SctBrlLadder,"MODULESRADIALSEP",ladType) * CLHEP::mm; + return db()->getDouble(m_SctBrlLadder,"MODULESRADIALSEP",ladType) * GeoModelKernelUnits::mm; } @@ -145,17 +145,17 @@ SCT_BarrelParameters::skiZPosition(int ilayer, int module) const{ int break_mod = modulesPerSki(ilayer) / 2; double zsep = db()->getDouble(m_SctBrlLadder,"ZSEP",ladType); //CALCULATE NEGATIVE END POSITION FIRST, TO KEEP MODULE ORDERING THE SAME - double first_pos = (-cylInnerZMin(ilayer) - (break_mod - 0.5)*zsep) * CLHEP::mm; + double first_pos = (-cylInnerZMin(ilayer) - (break_mod - 0.5)*zsep) * GeoModelKernelUnits::mm; //PSOTION OF FIRST MODULE AFTER THE BREAK - double break_pos = cylInnerZMin(ilayer) * CLHEP::mm ; + double break_pos = cylInnerZMin(ilayer) * GeoModelKernelUnits::mm ; - if(module < break_mod ) zpos = first_pos + (zsep * module) * CLHEP::mm; - else zpos = (break_pos + (zsep * (module - break_mod + 0.5))) * CLHEP::mm; + if(module < break_mod ) zpos = first_pos + (zsep * module) * GeoModelKernelUnits::mm; + else zpos = (break_pos + (zsep * (module - break_mod + 0.5))) * GeoModelKernelUnits::mm; } else{ int ladType = ladderType(ilayer); - zpos = db()->getDouble(m_SctBrlLadder,"ZSEP",ladType) * (module - 0.5*(modulesPerSki(ilayer) - 1)) * CLHEP::mm; + zpos = db()->getDouble(m_SctBrlLadder,"ZSEP",ladType) * (module - 0.5*(modulesPerSki(ilayer) - 1)) * GeoModelKernelUnits::mm; } } else { std::map<int, std::vector<double> *>::const_iterator iter = m_zpositionMap.find(zpostype); @@ -208,25 +208,25 @@ SCT_BarrelParameters::skiModuleIdentifier(int ilayer, int module) const{ // double SCT_BarrelParameters::tilt(int ilayer) const{ - double tilt = db()->getDouble(m_SctBrlLayer,"TILT",ilayer) * CLHEP::degree; - if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 tilt layer TILT("<<ilayer<<") = "<< tilt/CLHEP::degree << endmsg; + double tilt = db()->getDouble(m_SctBrlLayer,"TILT",ilayer) * GeoModelKernelUnits::degree; + if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 tilt layer TILT("<<ilayer<<") = "<< tilt/GeoModelKernelUnits::degree << endmsg; return tilt; } double SCT_BarrelParameters::radius(int ilayer) const{ - double rlay = db()->getDouble(m_SctBrlLayer,"RADIUS",ilayer) * CLHEP::mm; + double rlay = db()->getDouble(m_SctBrlLayer,"RADIUS",ilayer) * GeoModelKernelUnits::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 radius layer RLAY("<<ilayer<<") = "<<rlay<<endmsg; return rlay; } double SCT_BarrelParameters::cylLength(int ilayer) const{ - return db()->getDouble(m_SctBrlLayer,"CYLLENGTH",ilayer) * CLHEP::mm; + return db()->getDouble(m_SctBrlLayer,"CYLLENGTH",ilayer) * GeoModelKernelUnits::mm; } double SCT_BarrelParameters::cylInnerZMin(int ilayer) const{ - return db()->getDouble(m_SctBrlLayer,"CYLINNERZMIN",ilayer) * CLHEP::mm; + return db()->getDouble(m_SctBrlLayer,"CYLINNERZMIN",ilayer) * GeoModelKernelUnits::mm; } bool SCT_BarrelParameters::doubleSided(int ilayer) const{ @@ -257,7 +257,7 @@ SCT_BarrelParameters::staveLayout(int ilayer) const { double SCT_BarrelParameters::stereoOuter(int ilayer) const { if (m_SctBrlLayer) { - return db()->getDouble(m_SctBrlLayer,"STEREOOUTER",ilayer) * CLHEP::mrad; + return db()->getDouble(m_SctBrlLayer,"STEREOOUTER",ilayer) * GeoModelKernelUnits::mrad; } else { return 0; } @@ -266,7 +266,7 @@ SCT_BarrelParameters::stereoOuter(int ilayer) const { double SCT_BarrelParameters::stereoInner(int ilayer) const{ if (m_SctBrlLayer) { - return db()->getDouble(m_SctBrlLayer,"STEREOINNER",ilayer) * CLHEP::mrad; + return db()->getDouble(m_SctBrlLayer,"STEREOINNER",ilayer) * GeoModelKernelUnits::mrad; } else { return 0; } @@ -277,7 +277,7 @@ SCT_BarrelParameters::staveSupportWidth(int ilayer) const{ if (m_SctBrlLayer) { int ladType = ladderType(ilayer); if (db()->testField(m_SctBrlLadder,"SUPPORTWIDTH",ladType)) { - return db()->getDouble(m_SctBrlLadder,"SUPPORTWIDTH",ladType) * CLHEP::mm; + return db()->getDouble(m_SctBrlLadder,"SUPPORTWIDTH",ladType) * GeoModelKernelUnits::mm; } } return 0; @@ -289,7 +289,7 @@ SCT_BarrelParameters::staveSupportThickness(int ilayer) const{ if (m_SctBrlLayer) { int ladType = ladderType(ilayer); if (db()->testField(m_SctBrlLadder,"SUPPORTTHICK",ladType)) { - return db()->getDouble(m_SctBrlLadder,"SUPPORTTHICK",ladType) * CLHEP::mm; + return db()->getDouble(m_SctBrlLadder,"SUPPORTTHICK",ladType) * GeoModelKernelUnits::mm; } } return 0; @@ -308,14 +308,14 @@ SCT_BarrelParameters::staveSupportMaterial(int ilayer) const{ double SCT_BarrelParameters::supportCylInnerRadius(int ilayer) const{ - double risup = db()->getDouble(m_SctBrlServPerLayer,"SUPPORTCYLINNERRAD",ilayer) * CLHEP::mm; + double risup = db()->getDouble(m_SctBrlServPerLayer,"SUPPORTCYLINNERRAD",ilayer) * GeoModelKernelUnits::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 supportCylInnerRadius RISUP("<<ilayer<<") = "<< risup <<endmsg; return risup; } double SCT_BarrelParameters::supportCylOuterRadius(int ilayer) const{ - double rosup = db()->getDouble(m_SctBrlServPerLayer,"SUPPORTCYLOUTERRAD",ilayer) * CLHEP::mm; + double rosup = db()->getDouble(m_SctBrlServPerLayer,"SUPPORTCYLOUTERRAD",ilayer) * GeoModelKernelUnits::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 supportCylOuterRadius ROSUP("<<ilayer<<") = "<<rosup<<endmsg; return rosup; } @@ -337,35 +337,35 @@ SCT_BarrelParameters::numLayers() const{ double SCT_BarrelParameters::barrelInnerRadius() const{ - double rmin = db()->getDouble(m_SctBrlGeneral,"INNERRADIUS") * CLHEP::mm; + double rmin = db()->getDouble(m_SctBrlGeneral,"INNERRADIUS") * GeoModelKernelUnits::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 barrelInnerRadius RMIN = "<<rmin<<endmsg; return rmin; } double SCT_BarrelParameters::barrelIntermediateRadius() const{ - double rinter = db()->getDouble(m_SctBrlGeneral,"RINTERMEDIATE") * CLHEP::mm; + double rinter = db()->getDouble(m_SctBrlGeneral,"RINTERMEDIATE") * GeoModelKernelUnits::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 barrelIntermediateRadius RINTERMEDIATE = "<<rinter<<endmsg; return rinter; } double SCT_BarrelParameters::barrelOuterRadius() const{ - double rmax = db()->getDouble(m_SctBrlGeneral,"OUTERRADIUS") * CLHEP::mm; + double rmax = db()->getDouble(m_SctBrlGeneral,"OUTERRADIUS") * GeoModelKernelUnits::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 barrelOuterRadius RMAX = "<<rmax<<endmsg; return rmax; } double SCT_BarrelParameters::barrelLength() const{ - double length = db()->getDouble(m_SctBrlGeneral,"LENGTH") * CLHEP::mm; + double length = db()->getDouble(m_SctBrlGeneral,"LENGTH") * GeoModelKernelUnits::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 barrelLength B_LEN = "<<length<<endmsg; return length; } double SCT_BarrelParameters::barrelIntermediateLength() const{ - double interlen = db()->getDouble(m_SctBrlGeneral,"INTERMEDIATELEN") * CLHEP::mm; + double interlen = db()->getDouble(m_SctBrlGeneral,"INTERMEDIATELEN") * GeoModelKernelUnits::mm; if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG)<<"---------2 barrelIntermediateLength B_IntermediateLEN = " <<interlen<<endmsg; return interlen; @@ -373,7 +373,7 @@ SCT_BarrelParameters::barrelIntermediateLength() const{ double SCT_BarrelParameters::barrelServicesMaterialCylinderLength() const { - return db()->getDouble(m_SctBrlGeneral,"BRLSERVMATTHICK") * CLHEP::mm; + return db()->getDouble(m_SctBrlGeneral,"BRLSERVMATTHICK") * GeoModelKernelUnits::mm; } double diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelParametersOld.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelParametersOld.cxx index d4d52462db6064d27ba368db62462e03e97a42a5..d45829122a278293434afb3d042a5be0323420c1 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelParametersOld.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BarrelParametersOld.cxx @@ -5,7 +5,7 @@ #include "SCT_SLHC_GeoModel/SCT_BarrelParametersOld.h" #include "SCT_SLHC_GeoModel/SCT_GeometryManager.h" #include "RDBAccessSvc/IRDBRecord.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <iostream> #include <cmath> #include <stdio.h> @@ -219,10 +219,10 @@ SCT_BarrelParametersOld::skiFirstStagger() const{ double SCT_BarrelParametersOld::skiRadialSep(int ilayer) const{ - // return 2.8*CLHEP::mm;//mm + // return 2.8*GeoModelKernelUnits::mm;//mm char paraName[50]; sprintf(paraName, "L%d_MODULESRADIALSEPARATION", ilayer); - return (m_SCT_Parameters->find(paraName))->second * CLHEP::mm; + return (m_SCT_Parameters->find(paraName))->second * GeoModelKernelUnits::mm; } int @@ -256,22 +256,22 @@ double SCT_BarrelParametersOld::tilt(int ilayer) const{ char paraName[50]; sprintf(paraName, "L%d_TILT", ilayer); - std::cout<<"---------2 tilt layer TILT("<<ilayer<<") = "<<(m_SCT_Parameters->find(paraName))->second*CLHEP::degree<<std::endl; - return (m_SCT_Parameters->find(paraName))->second * CLHEP::degree; + std::cout<<"---------2 tilt layer TILT("<<ilayer<<") = "<<(m_SCT_Parameters->find(paraName))->second*GeoModelKernelUnits::degree<<std::endl; + return (m_SCT_Parameters->find(paraName))->second * GeoModelKernelUnits::degree; } double SCT_BarrelParametersOld::radius(int ilayer) const{ char paraName[50]; sprintf(paraName, "L%d_RLAY", ilayer); - std::cout<<"---------2 radius layer RLAY("<<ilayer<<") = "<<(m_SCT_Parameters->find(paraName))->second*CLHEP::cm<<std::endl; - return (m_SCT_Parameters->find(paraName))->second * CLHEP::cm; + std::cout<<"---------2 radius layer RLAY("<<ilayer<<") = "<<(m_SCT_Parameters->find(paraName))->second*GeoModelKernelUnits::cm<<std::endl; + return (m_SCT_Parameters->find(paraName))->second * GeoModelKernelUnits::cm; } double SCT_BarrelParametersOld::cylLength(int ilayer) const{ char paraName[50]; sprintf(paraName, "L%d_CYLLENTGH", ilayer); - return (m_SCT_Parameters->find(paraName))->second * CLHEP::cm; + return (m_SCT_Parameters->find(paraName))->second * GeoModelKernelUnits::cm; } bool SCT_BarrelParametersOld::doubleSided(int ilayer) const{ @@ -302,16 +302,16 @@ double SCT_BarrelParametersOld::supportCylInnerRadius(int ilayer) const{ char paraName[50]; sprintf(paraName, "L%d_RISUP", ilayer); - std::cout<<"---------2 supportCylInnerRadius RISUP("<<ilayer<<") = "<<(m_SCT_Parameters->find(paraName))->second*CLHEP::cm<<std::endl; - return (m_SCT_Parameters->find(paraName))->second * CLHEP::cm; + std::cout<<"---------2 supportCylInnerRadius RISUP("<<ilayer<<") = "<<(m_SCT_Parameters->find(paraName))->second*GeoModelKernelUnits::cm<<std::endl; + return (m_SCT_Parameters->find(paraName))->second * GeoModelKernelUnits::cm; } double SCT_BarrelParametersOld::supportCylOuterRadius(int ilayer) const{ char paraName[50]; sprintf(paraName, "L%d_ROSUP", ilayer); - std::cout<<"---------2 supportCylOuterRadius ROSUP("<<ilayer<<") = "<<(m_SCT_Parameters->find(paraName))->second*CLHEP::cm<<std::endl; - return (m_SCT_Parameters->find(paraName))->second * CLHEP::cm; + std::cout<<"---------2 supportCylOuterRadius ROSUP("<<ilayer<<") = "<<(m_SCT_Parameters->find(paraName))->second*GeoModelKernelUnits::cm<<std::endl; + return (m_SCT_Parameters->find(paraName))->second * GeoModelKernelUnits::cm; } std::string SCT_BarrelParametersOld::supportCylMaterial(int ilayer) const{ @@ -331,45 +331,45 @@ SCT_BarrelParametersOld::numLayers() const{ double SCT_BarrelParametersOld::barrelInnerRadius() const{ - std::cout<<"---------2 barrelInnerRadius RMIN = "<<(m_SCT_Parameters->find("B_RMIN"))->second * CLHEP::cm<<std::endl; + std::cout<<"---------2 barrelInnerRadius RMIN = "<<(m_SCT_Parameters->find("B_RMIN"))->second * GeoModelKernelUnits::cm<<std::endl; - return (m_SCT_Parameters->find("B_RMIN"))->second * CLHEP::cm; + return (m_SCT_Parameters->find("B_RMIN"))->second * GeoModelKernelUnits::cm; } double SCT_BarrelParametersOld::barrelIntermediateRadius() const{ - std::cout<<"---------2 barrelIntermediateRadius RINTERMEDIATE = "<<(m_SCT_Parameters->find("B_RINTERMEDIATE"))->second * CLHEP::cm<<std::endl; + std::cout<<"---------2 barrelIntermediateRadius RINTERMEDIATE = "<<(m_SCT_Parameters->find("B_RINTERMEDIATE"))->second * GeoModelKernelUnits::cm<<std::endl; - return (m_SCT_Parameters->find("B_RINTERMEDIATE"))->second * CLHEP::cm; + return (m_SCT_Parameters->find("B_RINTERMEDIATE"))->second * GeoModelKernelUnits::cm; } double SCT_BarrelParametersOld::barrelOuterRadius() const{ - std::cout<<"---------2 barrelOuterRadius RMAX = "<<(m_SCT_Parameters->find("B_RMAX"))->second * CLHEP::cm<<std::endl; + std::cout<<"---------2 barrelOuterRadius RMAX = "<<(m_SCT_Parameters->find("B_RMAX"))->second * GeoModelKernelUnits::cm<<std::endl; - return (m_SCT_Parameters->find("B_RMAX"))->second * CLHEP::cm; + return (m_SCT_Parameters->find("B_RMAX"))->second * GeoModelKernelUnits::cm; } double SCT_BarrelParametersOld::barrelLength() const{ std::cout<<"---------2 barrelLength B_LEN = " - <<(m_SCT_Parameters->find("B_LEN"))->second * CLHEP::cm<<std::endl; + <<(m_SCT_Parameters->find("B_LEN"))->second * GeoModelKernelUnits::cm<<std::endl; - return (m_SCT_Parameters->find("B_LEN"))->second * CLHEP::cm; + return (m_SCT_Parameters->find("B_LEN"))->second * GeoModelKernelUnits::cm; } double SCT_BarrelParametersOld::barrelIntermediateLength() const{ std::cout<<"---------2 barrelIntermediateLength B_IntermediateLEN = " - <<(m_SCT_Parameters->find("B_INTERMEDIATELEN"))->second * CLHEP::cm<<std::endl; + <<(m_SCT_Parameters->find("B_INTERMEDIATELEN"))->second * GeoModelKernelUnits::cm<<std::endl; - return (m_SCT_Parameters->find("B_INTERMEDIATELEN"))->second * CLHEP::cm; + return (m_SCT_Parameters->find("B_INTERMEDIATELEN"))->second * GeoModelKernelUnits::cm; } double SCT_BarrelParametersOld::barrelServicesMaterialCylinderLength() const { char paraName[50]; sprintf(paraName, "BARRELSERVICESMATERIALCYLINDERLENGTH"); - return (double)(m_SCT_Parameters->find(paraName))->second * CLHEP::cm; + return (double)(m_SCT_Parameters->find(paraName))->second * GeoModelKernelUnits::cm; } double SCT_BarrelParametersOld::barrelServicesMaterialIncreaseFactor() const { diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BaseBoard.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BaseBoard.cxx index cf45d9b64dab1ffd3e42c9e336dd88e8d42cee06..b160d3404ecbc2a74b715f627e7119a67f0fff21 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BaseBoard.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_BaseBoard.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" namespace InDetDDSLHC { diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ComponentFactory.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ComponentFactory.cxx index 015cc69105ed803bc32e7d93d77325c26b70a302..7b22c81779b154dc456279b4946099cacfe005bb 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ComponentFactory.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ComponentFactory.cxx @@ -3,7 +3,7 @@ */ #include "SCT_SLHC_GeoModel/SCT_ComponentFactory.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <sstream> #include <string> @@ -15,7 +15,7 @@ namespace InDetDDSLHC { SCT_DetectorManager * SCT_ComponentFactory::s_detectorManager = 0; const SCT_GeometryManager * SCT_ComponentFactory::s_geometryManager = 0; -double SCT_ComponentFactory::s_epsilon = 1.0e-6 * CLHEP::mm; +double SCT_ComponentFactory::s_epsilon = 1.0e-6 * GeoModelKernelUnits::mm; SCT_ComponentFactory::SCT_ComponentFactory(const std::string & name) : m_name(name) diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_DetectorFactory.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_DetectorFactory.cxx index 553563c259e32f7bc577e82edc4c73a936129a6f..3010efc905c8ab30e2d3ee1eed8055a87fdd17d0 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_DetectorFactory.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_DetectorFactory.cxx @@ -44,9 +44,9 @@ #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBRecord.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/Rotation.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/GeoDefinitions.h" + +#include "GeoModelKernel/Units.h" #include <iostream> #include <iomanip> @@ -156,8 +156,8 @@ void SCT_DetectorFactory::create(GeoPhysVol *world){ new GeoTube(sctForward.innerRadius(), sctForward.outerRadius(), 0.5*sctForward.length()); //make a single envelope (enveloping the barrel and endcaps) const GeoShape & sctEnvelopeTmp = (*sctBarrelEnvelop). - add(*sctForwardEnvelop << HepGeom::TranslateZ3D(sctForward.zCenter())). - add(*sctForwardEnvelop << HepGeom::TranslateZ3D(-sctForward.zCenter())); + add(*sctForwardEnvelop << GeoTrf::TranslateZ3D(sctForward.zCenter())). + add(*sctForwardEnvelop << GeoTrf::TranslateZ3D(-sctForward.zCenter())); sctEnvelope = &sctEnvelopeTmp; } else if (generalParameters->simpleEnvelope()) { @@ -169,7 +169,7 @@ void SCT_DetectorFactory::create(GeoPhysVol *world){ sctEnvelope = sctEnvelopeTmp; } else { // Build as PCon - GeoPcon* sctEnvelopeTmp = new GeoPcon(0.,2*CLHEP::pi); + GeoPcon* sctEnvelopeTmp = new GeoPcon(0.,2*GeoModelKernelUnits::pi); // table contains +ve z values only and envelope is assumed to be symmetric around z. int numPlanes = generalParameters->envelopeNumPlanes(); for (int i = 0; i < numPlanes * 2; i++) { @@ -203,7 +203,7 @@ void SCT_DetectorFactory::create(GeoPhysVol *world){ id.setBarrelEC(0); ///*--- GeoVPhysVol* barrel = sctBarrel.build(id); - GeoAlignableTransform* barrelTransform = new GeoAlignableTransform(HepGeom::Transform3D()); + GeoAlignableTransform* barrelTransform = new GeoAlignableTransform(GeoTrf::Transform3D()); sct->add(new GeoNameTag("Barrel")); sct->add(barrelTransform); sct->add(barrel); @@ -224,7 +224,7 @@ void SCT_DetectorFactory::create(GeoPhysVol *world){ SCT_Identifier idFwdPlus; idFwdPlus.setBarrelEC(2); GeoVPhysVol* forwardPlus = sctForward.build(idFwdPlus); - HepGeom::Transform3D fwdTransformPlus(HepGeom::TranslateZ3D(sctForward.zCenter())); + GeoTrf::Transform3D fwdTransformPlus(GeoTrf::TranslateZ3D(sctForward.zCenter())); GeoAlignableTransform* fwdGeoTransformPlus = new GeoAlignableTransform(fwdTransformPlus); sct->add(new GeoNameTag("ForwardPlus")); sct->add(fwdGeoTransformPlus); @@ -237,16 +237,16 @@ void SCT_DetectorFactory::create(GeoPhysVol *world){ SCT_Identifier idFwdMinus; idFwdMinus.setBarrelEC(-2); GeoVPhysVol* forwardMinus = sctForward.build(idFwdMinus); - HepGeom::Transform3D rot; - rot = HepGeom::RotateY3D(180*CLHEP::degree); - HepGeom::Transform3D fwdTransformMinus = rot*fwdTransformPlus; + GeoTrf::Transform3D rot; + rot = GeoTrf::RotateY3D(180*GeoModelKernelUnits::degree); + GeoTrf::Transform3D fwdTransformMinus = rot*fwdTransformPlus; GeoAlignableTransform* fwdGeoTransformMinus = new GeoAlignableTransform(fwdTransformMinus); sct->add(new GeoNameTag("ForwardMinus")); sct->add(fwdGeoTransformMinus); sct->add(forwardMinus); //services material between barrel and endcap - double safety = 1*CLHEP::mm;//1mm, just to avoid any clash + double safety = 1*GeoModelKernelUnits::mm;//1mm, just to avoid any clash double length = sctForward.zCenter()-0.5*sctForward.length()-0.5*sctBarrel.length()-safety;// double barrelServicesCylinderLength = barrelParameters->barrelServicesMaterialCylinderLength(); //use user lenght paramters only if small than the gap @@ -264,23 +264,23 @@ void SCT_DetectorFactory::create(GeoPhysVol *world){ double materialIncreaseFactor = barrelParameters->barrelServicesMaterialIncreaseFactor(); if (barrelServicesCylinderLength > 0 && materialIncreaseFactor > 0 && !barrelParameters->barrelServicesMaterial().empty()) { - //double cf_density = 0.189*materialIncreaseFactor*CLHEP::g/CLHEP::cm3; - //msg(MSG::INFO) <<"----length "<<barrelServicesCylinderLength<<" material "<<barrelParameters->barrelServicesMaterial()<<" IncreaseFactor "<<materialIncreaseFactor<<" cf_density (CLHEP::g/CLHEP::cm3) "<<cf_density/(CLHEP::g/CLHEP::cm3) << endmsg; + //double cf_density = 0.189*materialIncreaseFactor*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3; + //msg(MSG::INFO) <<"----length "<<barrelServicesCylinderLength<<" material "<<barrelParameters->barrelServicesMaterial()<<" IncreaseFactor "<<materialIncreaseFactor<<" cf_density (GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) "<<cf_density/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; //const GeoMaterial* barrel_serivesMaterial = materials->getMaterial(barrelParameters->barrelServicesMaterial(), cf_density, "UpgradeSCTBarrel_ServicesMaterial"); const GeoMaterial* barrel_serivesMaterial = materials->getMaterialScaled(barrelParameters->barrelServicesMaterial(), materialIncreaseFactor, "UpgradeSCTBarrel_ServicesMaterial"); - msg(MSG::INFO) <<"----length "<<barrelServicesCylinderLength<<" material "<<barrelParameters->barrelServicesMaterial()<<" IncreaseFactor "<<materialIncreaseFactor<<" density (CLHEP::g/CLHEP::cm3) "<< barrel_serivesMaterial->getDensity()/(CLHEP::g/CLHEP::cm3) << endmsg; + msg(MSG::INFO) <<"----length "<<barrelServicesCylinderLength<<" material "<<barrelParameters->barrelServicesMaterial()<<" IncreaseFactor "<<materialIncreaseFactor<<" density (GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) "<< barrel_serivesMaterial->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; const GeoTube* barrelPos_servicesMaterialShape = new GeoTube(inner_radius, outer_radius, 0.5*barrelServicesCylinderLength); const GeoLogVol* barrelPos_servicesMaterialtLog = new GeoLogVol("BarrelPos_ServicesMaterial", barrelPos_servicesMaterialShape, barrel_serivesMaterial); GeoPhysVol* barrelPos_servicesMaterial = new GeoPhysVol(barrelPos_servicesMaterialtLog); - sct->add(new GeoTransform(HepGeom::TranslateZ3D(material_position))); + sct->add(new GeoTransform(GeoTrf::TranslateZ3D(material_position))); sct->add(barrelPos_servicesMaterial); const GeoTube* barrelNeg_servicesMaterialShape = new GeoTube(inner_radius, outer_radius, 0.5*barrelServicesCylinderLength); const GeoLogVol* barrelNeg_servicesMaterialtLog = new GeoLogVol("BarrelNeg_ServicesMaterial", barrelNeg_servicesMaterialShape, barrel_serivesMaterial); GeoPhysVol* barrelNeg_servicesMaterial = new GeoPhysVol(barrelNeg_servicesMaterialtLog); - sct->add(new GeoTransform(HepGeom::TranslateZ3D(-material_position))); + sct->add(new GeoTransform(GeoTrf::TranslateZ3D(-material_position))); sct->add(barrelNeg_servicesMaterial); } //Store alignable transform diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Forward.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Forward.cxx index 8e0975b773b6821fcd4c0cd680d1bd12d1a1d09b..dd2b8484b02204738182bb35d5ddd6dac5aa675a 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Forward.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Forward.cxx @@ -23,7 +23,7 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <sstream> #include <cmath> @@ -74,8 +74,8 @@ const GeoLogVol* SCT_Forward::preBuild(){ double len_2 = m_zMax-m_zIntermediate; const GeoTube* sct_fwd_2 = new GeoTube(m_innerRadius, m_outerRadius, 0.5*len_2); //make a single envelope for sct fwd: shift the two parts so that the midle stays at Z=0 - const GeoShape & forwardEnvelopeShape = (*sct_fwd_1 << HepGeom::TranslateZ3D(-0.5*len_2)). - add(*sct_fwd_2 << HepGeom::TranslateZ3D(0.5*len_1)); + const GeoShape & forwardEnvelopeShape = (*sct_fwd_1 << GeoTrf::TranslateZ3D(-0.5*len_2)). + add(*sct_fwd_2 << GeoTrf::TranslateZ3D(0.5*len_1)); forwardLog = new GeoLogVol(getName(), &forwardEnvelopeShape, materials->gasMaterial()); }else if(layoutType == 2){//same length barrels const GeoTube* forwardEnvelopeShape = new GeoTube(m_innerRadius, m_outerRadius, 0.5*m_length); @@ -97,7 +97,7 @@ GeoVPhysVol* SCT_Forward::build(SCT_Identifier id) const{ //std::cerr<<"endcap "<<id.getBarrelEC()<<", wheel "<<iWheel; id.setLayerDisk(iWheel); double zpos = wheel.zPosition() - zCenter(); - GeoAlignableTransform* transform = new GeoAlignableTransform(HepGeom::TranslateZ3D(zpos)); + GeoAlignableTransform* transform = new GeoAlignableTransform(GeoTrf::TranslateZ3D(zpos)); forward->add(transform); GeoVPhysVol* wheelPV = wheel.build(id); forward->add(wheelPV); diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardModuleParameters.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardModuleParameters.cxx index 4a0f704475b0be90891b595c2c320f8377e9a874..fde5723f681371d9eb720cd24414cba6692e21ec 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardModuleParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardModuleParameters.cxx @@ -7,7 +7,7 @@ #include "RDBAccessSvc/IRDBRecordset.h" #include "GeometryDBSvc/IGeometryDBSvc.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <cmath> #include <iostream> @@ -42,55 +42,55 @@ SCT_ForwardModuleParameters::fwdSensorNumWafers(int iModuleType) const double SCT_ForwardModuleParameters::moduleInterSidesGap(int iModuleType) const { - return db()->getDouble(m_SctFwdModule,"INTERSIDESGAP",iModuleType) * CLHEP::mm; + return db()->getDouble(m_SctFwdModule,"INTERSIDESGAP",iModuleType) * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorThickness(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"THICKNESS",iModuleType) * CLHEP::mm; + return db()->getDouble(m_SctFwdSensor,"THICKNESS",iModuleType) * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorLength(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"LENGTH",iModuleType) * CLHEP::mm; + return db()->getDouble(m_SctFwdSensor,"LENGTH",iModuleType) * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorInnerWidth(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"INNERWIDTH",iModuleType) * CLHEP::mm; + return db()->getDouble(m_SctFwdSensor,"INNERWIDTH",iModuleType) * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorOuterWidth(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"OUTERWIDTH",iModuleType) * CLHEP::mm; + return db()->getDouble(m_SctFwdSensor,"OUTERWIDTH",iModuleType) * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorInnerRadius(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"INNERRADIUS",iModuleType) * CLHEP::mm; + return db()->getDouble(m_SctFwdSensor,"INNERRADIUS",iModuleType) * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorOuterRadius(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"OUTERRADIUS",iModuleType) * CLHEP::mm; + return db()->getDouble(m_SctFwdSensor,"OUTERRADIUS",iModuleType) * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorMiddleRadius(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"MIDDLERADIUS",iModuleType) * CLHEP::mm; + return db()->getDouble(m_SctFwdSensor,"MIDDLERADIUS",iModuleType) * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorDeltaPhi(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"DELTAPHI",iModuleType) * CLHEP::mm; + return db()->getDouble(m_SctFwdSensor,"DELTAPHI",iModuleType) * GeoModelKernelUnits::mm; } std::string @@ -102,13 +102,13 @@ SCT_ForwardModuleParameters::fwdSensorMaterial(int iModuleType) const double SCT_ForwardModuleParameters::fwdSensorActiveHalfLength(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"ACTIVEHALFLENGTH",iModuleType) * CLHEP::mm; + return db()->getDouble(m_SctFwdSensor,"ACTIVEHALFLENGTH",iModuleType) * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSensorAngularPitch(int iModuleType) const { - return db()->getDouble(m_SctFwdSensor,"ANGULARPITCH",iModuleType) * CLHEP::radian; + return db()->getDouble(m_SctFwdSensor,"ANGULARPITCH",iModuleType) * GeoModelKernelUnits::radian; } int @@ -120,7 +120,7 @@ SCT_ForwardModuleParameters::fwdSensorNumReadoutStrips(int iModuleType) const double SCT_ForwardModuleParameters::fwdModuleStereoAngle(int iModuleType) const { - return db()->getDouble(m_SctFwdModule,"STEREOANGLE",iModuleType) * CLHEP::milliradian; + return db()->getDouble(m_SctFwdModule,"STEREOANGLE",iModuleType) * GeoModelKernelUnits::milliradian; } int @@ -138,24 +138,24 @@ SCT_ForwardModuleParameters::fwdSensorChargeCarrier(int iModuleType) const double SCT_ForwardModuleParameters::fwdSpineThickness(int iModuleType) const { - return db()->getDouble(m_SctFwdSpine,"THICKNESS",iModuleType) * CLHEP::mm; + return db()->getDouble(m_SctFwdSpine,"THICKNESS",iModuleType) * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSpineLength(int iModuleType) const { - return db()->getDouble(m_SctFwdSpine,"LENGTH",iModuleType) * CLHEP::mm; + return db()->getDouble(m_SctFwdSpine,"LENGTH",iModuleType) * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSpineMiddleRadius(int iModuleType) const { - return db()->getDouble(m_SctFwdSpine,"MIDDLERADIUS",iModuleType) * CLHEP::mm; + return db()->getDouble(m_SctFwdSpine,"MIDDLERADIUS",iModuleType) * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParameters::fwdSpineDeltaPhi(int iModuleType) const{ - return db()->getDouble(m_SctFwdSpine,"DELTAPHI",iModuleType) * CLHEP::radian; + return db()->getDouble(m_SctFwdSpine,"DELTAPHI",iModuleType) * GeoModelKernelUnits::radian; } std::string diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardModuleParametersOld.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardModuleParametersOld.cxx index 0767086c1d29feab6ba03d686722297e52e50504..07e4cc36fd25602efc74523001e01f60f1c595f1 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardModuleParametersOld.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardModuleParametersOld.cxx @@ -7,7 +7,7 @@ #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBRecord.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <cmath> #include <iostream> @@ -116,7 +116,7 @@ SCT_ForwardModuleParametersOld::moduleInterSidesGap(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_INTERSIDESGAP", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*CLHEP::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; } double @@ -124,9 +124,9 @@ SCT_ForwardModuleParametersOld::fwdSensorThickness(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SENSORTHICKNESS", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*CLHEP::mm; - //---return 2.0 * m_rdb->zsmo()->getDouble("DZSC") * CLHEP::cm; - //---return m_rdb->fwdSensor(iModuleType)->getDouble("THICKNESS") * CLHEP::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; + //---return 2.0 * m_rdb->zsmo()->getDouble("DZSC") * GeoModelKernelUnits::cm; + //---return m_rdb->fwdSensor(iModuleType)->getDouble("THICKNESS") * GeoModelKernelUnits::mm; } double @@ -134,23 +134,23 @@ SCT_ForwardModuleParametersOld::fwdSensorLength(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SENSORLENGTH", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*CLHEP::mm; - //---return m_rdb->zsmi(iModuleType)->getDouble("RLF") * CLHEP::cm; -//---return m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHFAR") * CLHEP::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; + //---return m_rdb->zsmi(iModuleType)->getDouble("RLF") * GeoModelKernelUnits::cm; +//---return m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHFAR") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParametersOld::fwdSensorInnerWidth(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SENSORINNERWIDTH", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*CLHEP::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; } double SCT_ForwardModuleParametersOld::fwdSensorOuterWidth(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SENSOROUTERWIDTH", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*CLHEP::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; } double @@ -158,9 +158,9 @@ SCT_ForwardModuleParametersOld::fwdSensorInnerRadius(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SENSORINNERRADIUS", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*CLHEP::mm; - //---return m_rdb->zsmi(iModuleType)->getDouble("RINNERF") * CLHEP::cm; - //---return m_rdb->fwdSensor(iModuleType)->getDouble("INNERWIDTHFAR") * CLHEP::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; + //---return m_rdb->zsmi(iModuleType)->getDouble("RINNERF") * GeoModelKernelUnits::cm; + //---return m_rdb->fwdSensor(iModuleType)->getDouble("INNERWIDTHFAR") * GeoModelKernelUnits::mm; } double @@ -168,9 +168,9 @@ SCT_ForwardModuleParametersOld::fwdSensorOuterRadius(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SENSOROUTERRADIUS", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*CLHEP::mm; - //---return m_rdb->zsmi(iModuleType)->getDouble("ROUTERF") * CLHEP::cm; - //---return m_rdb->fwdSensor(iModuleType)->getDouble("OUTERWIDTHFAR") * CLHEP::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; + //---return m_rdb->zsmi(iModuleType)->getDouble("ROUTERF") * GeoModelKernelUnits::cm; + //---return m_rdb->fwdSensor(iModuleType)->getDouble("OUTERWIDTHFAR") * GeoModelKernelUnits::mm; } double @@ -178,15 +178,15 @@ SCT_ForwardModuleParametersOld::fwdSensorMiddleRadius(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SENSORMIDDLERADIUS", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*CLHEP::mm; - //---return m_rdb->zsmi(iModuleType)->getDouble("ROUTERF") * CLHEP::cm; -//---return m_rdb->fwdSensor(iModuleType)->getDouble("OUTERWIDTHFAR") * CLHEP::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; + //---return m_rdb->zsmi(iModuleType)->getDouble("ROUTERF") * GeoModelKernelUnits::cm; +//---return m_rdb->fwdSensor(iModuleType)->getDouble("OUTERWIDTHFAR") * GeoModelKernelUnits::mm; } double SCT_ForwardModuleParametersOld::fwdSensorDeltaPhi(int iModuleType) const{ char paraName[50]; sprintf(paraName, "FWD_M%d_SENSORDELTAPHI", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*CLHEP::radian; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::radian; } std::string @@ -203,9 +203,9 @@ SCT_ForwardModuleParametersOld::fwdSensorActiveHalfLength(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_ACTIVEHALFLENGTH", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*CLHEP::mm; - //---return m_rdb->zsmi(iModuleType)->getDouble("RSEF") * CLHEP::cm; - //---return m_rdb->fwdSensor(iModuleType)->getDouble("ACTIVEHALFLENGTHFAR") * CLHEP::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; + //---return m_rdb->zsmi(iModuleType)->getDouble("RSEF") * GeoModelKernelUnits::cm; + //---return m_rdb->fwdSensor(iModuleType)->getDouble("ACTIVEHALFLENGTHFAR") * GeoModelKernelUnits::mm; } double @@ -213,9 +213,9 @@ SCT_ForwardModuleParametersOld::fwdSensorAngularPitch(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_ANGULARPITCH", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*CLHEP::radian; - //---return m_rdb->zsmi(iModuleType)->getDouble("PHISTR") * CLHEP::radian; - //---return m_rdb->fwdSensor(iModuleType)->getDouble("ANGULARPITCH") * CLHEP::radian; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::radian; + //---return m_rdb->zsmi(iModuleType)->getDouble("PHISTR") * GeoModelKernelUnits::radian; + //---return m_rdb->fwdSensor(iModuleType)->getDouble("ANGULARPITCH") * GeoModelKernelUnits::radian; } int @@ -233,9 +233,9 @@ SCT_ForwardModuleParametersOld::fwdModuleStereoAngle(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_STEREOANGLE", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*CLHEP::milliradian; - //---return 40 * CLHEP::milliradian; - //---return m_rdb->fwdModule(iModuleType)->getDouble("STEREOANGLE") * CLHEP::milliradian; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::milliradian; + //---return 40 * GeoModelKernelUnits::milliradian; + //---return m_rdb->fwdModule(iModuleType)->getDouble("STEREOANGLE") * GeoModelKernelUnits::milliradian; } // @@ -246,9 +246,9 @@ SCT_ForwardModuleParametersOld::fwdSpineThickness(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SPINETHICKNESS", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*CLHEP::mm; - //---return 1*CLHEP::mm; - //---return m_rdb->fwdSpine(iModuleType)->getDouble("THICKNESS") * CLHEP::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; + //---return 1*GeoModelKernelUnits::mm; + //---return m_rdb->fwdSpine(iModuleType)->getDouble("THICKNESS") * GeoModelKernelUnits::mm; } double @@ -256,11 +256,11 @@ SCT_ForwardModuleParametersOld::fwdSpineLength(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SPINELENGTH", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*CLHEP::mm; - //return 8*CLHEP::cm; - //--- return (m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHNEAR") * CLHEP::mm - //--- + m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHFAR") * CLHEP::mm + 2*CLHEP::cm); -//return m_rdb->fwdSpine(iModuleType)->getDouble("WIDTH") * CLHEP::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; + //return 8*GeoModelKernelUnits::cm; + //--- return (m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHNEAR") * GeoModelKernelUnits::mm + //--- + m_rdb->fwdSensor(iModuleType)->getDouble("LENGTHFAR") * GeoModelKernelUnits::mm + 2*GeoModelKernelUnits::cm); +//return m_rdb->fwdSpine(iModuleType)->getDouble("WIDTH") * GeoModelKernelUnits::mm; } double @@ -268,13 +268,13 @@ SCT_ForwardModuleParametersOld::fwdSpineMiddleRadius(int iModuleType) const { char paraName[50]; sprintf(paraName, "FWD_M%d_SPINEMIDDLERADIUS", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*CLHEP::mm; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::mm; } double SCT_ForwardModuleParametersOld::fwdSpineDeltaPhi(int iModuleType) const{ char paraName[50]; sprintf(paraName, "FWD_M%d_SPINEDELTAPHI", iModuleType); - return (double)(m_SCT_Fwd_Modules->find(paraName))->second*CLHEP::radian; + return (double)(m_SCT_Fwd_Modules->find(paraName))->second*GeoModelKernelUnits::radian; } std::string diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardParameters.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardParameters.cxx index 9c3a2bf2f165372981d3a1e0e97c71c114d810d3..7b9d76a7f0bd4def13a4789513cf5d2512dc6ba6 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardParameters.cxx @@ -9,7 +9,7 @@ #include "GeometryDBSvc/IGeometryDBSvc.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <iostream> #include <cmath> @@ -72,7 +72,7 @@ SCT_ForwardParameters::fwdNumWheels() const double SCT_ForwardParameters::fwdWheelZPosition(int iWheel) const { - return db()->getDouble(m_SctFwdWheel,"ZPOSITION",iWheel) * CLHEP::mm; + return db()->getDouble(m_SctFwdWheel,"ZPOSITION",iWheel) * GeoModelKernelUnits::mm; } int @@ -107,19 +107,19 @@ SCT_ForwardParameters::getRingMapIndex(int iWheel, int iRingIndex) const double SCT_ForwardParameters::fwdDiscSupportInnerRadius(int iWheel) const { - return db()->getDouble(m_SctFwdDiscSupport,"INNERRADIUS",iWheel) * CLHEP::mm; + return db()->getDouble(m_SctFwdDiscSupport,"INNERRADIUS",iWheel) * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdDiscSupportOuterRadius(int iWheel) const { - return db()->getDouble(m_SctFwdDiscSupport,"OUTERRADIUS",iWheel) * CLHEP::mm; + return db()->getDouble(m_SctFwdDiscSupport,"OUTERRADIUS",iWheel) * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdDiscSupportThickness(int iWheel) const { - return db()->getDouble(m_SctFwdDiscSupport,"THICKNESS",iWheel) * CLHEP::mm; + return db()->getDouble(m_SctFwdDiscSupport,"THICKNESS",iWheel) * GeoModelKernelUnits::mm; } std::string @@ -142,37 +142,37 @@ SCT_ForwardParameters::fwdRingNumModules(int iRingType) const double SCT_ForwardParameters::fwdRingInnerRadius(int iRingType) const { - return db()->getDouble(m_SctFwdRing,"INNERRADIUS",iRingType) * CLHEP::mm; + return db()->getDouble(m_SctFwdRing,"INNERRADIUS",iRingType) * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdRingMiddleRadius(int iRingType) const { - return db()->getDouble(m_SctFwdRing,"MIDDLERADIUS",iRingType) * CLHEP::mm; + return db()->getDouble(m_SctFwdRing,"MIDDLERADIUS",iRingType) * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdRingOuterRadius(int iRingType) const { - return db()->getDouble(m_SctFwdRing,"OUTERRADIUS",iRingType) * CLHEP::mm; + return db()->getDouble(m_SctFwdRing,"OUTERRADIUS",iRingType) * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdRingOffset(int iRingType) const { - return db()->getDouble(m_SctFwdRing,"OFFSET",iRingType) * CLHEP::mm; + return db()->getDouble(m_SctFwdRing,"OFFSET",iRingType) * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdRingModuleStagger(int iRingType) const { - return db()->getDouble(m_SctFwdRing,"MODULESTAGGER",iRingType) * CLHEP::mm; + return db()->getDouble(m_SctFwdRing,"MODULESTAGGER",iRingType) * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdRingPhiOfRefModule(int iRingType) const { - return db()->getDouble(m_SctFwdRing,"PHIOFREFMODULE",iRingType) * CLHEP::radian; + return db()->getDouble(m_SctFwdRing,"PHIOFREFMODULE",iRingType) * GeoModelKernelUnits::radian; } int @@ -205,37 +205,37 @@ SCT_ForwardParameters::fwdWheelStereoType(m_iWheel, int iRing) const double SCT_ForwardParameters::fwdInnerRadius() const { - return db()->getDouble(m_SctFwdGeneral,"INNERRADIUS") * CLHEP::mm; + return db()->getDouble(m_SctFwdGeneral,"INNERRADIUS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdIntermediateRadius() const { - return db()->getDouble(m_SctFwdGeneral,"RINTERMEDIATE") * CLHEP::mm; + return db()->getDouble(m_SctFwdGeneral,"RINTERMEDIATE") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdOuterRadius() const { - return db()->getDouble(m_SctFwdGeneral,"OUTERRADIUS") * CLHEP::mm; + return db()->getDouble(m_SctFwdGeneral,"OUTERRADIUS") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdZMin() const { - return db()->getDouble(m_SctFwdGeneral,"ZMIN") * CLHEP::mm; + return db()->getDouble(m_SctFwdGeneral,"ZMIN") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdZIntermediate() const { - return db()->getDouble(m_SctFwdGeneral,"ZINTERMEDIATE") * CLHEP::mm; + return db()->getDouble(m_SctFwdGeneral,"ZINTERMEDIATE") * GeoModelKernelUnits::mm; } double SCT_ForwardParameters::fwdZMax() const { - return db()->getDouble(m_SctFwdGeneral,"ZMAX") * CLHEP::mm; + return db()->getDouble(m_SctFwdGeneral,"ZMAX") * GeoModelKernelUnits::mm; } } diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardParametersOld.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardParametersOld.cxx index 7aa10b20def0d4a2d686f8d79360a43a4215a140..71ee405b5f419395574d2d4eafe726f5beb7ee8d 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardParametersOld.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_ForwardParametersOld.cxx @@ -10,7 +10,7 @@ #include "RDBAccessSvc/IRDBRecord.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <iostream> #include <cmath> @@ -190,8 +190,8 @@ SCT_ForwardParametersOld::fwdWheelZPosition(int iWheel) const { char paraName[50]; sprintf(paraName, "W%d_DISKZPOSITION", iWheel); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*CLHEP::mm; - //return m_rdb->fwdWheel(iWheel)->getDouble("ZPOSITION") * CLHEP::mm; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::mm; + //return m_rdb->fwdWheel(iWheel)->getDouble("ZPOSITION") * GeoModelKernelUnits::mm; } int @@ -217,8 +217,8 @@ SCT_ForwardParametersOld::fwdDiscSupportInnerRadius(int iWheel) const { char paraName[50]; sprintf(paraName, "W%d_DISKINNERRADIUS", iWheel); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*CLHEP::mm; - //---return m_rdb->fwdDiscSupport()->getDouble("INNERRADIUS") * CLHEP::mm; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::mm; + //---return m_rdb->fwdDiscSupport()->getDouble("INNERRADIUS") * GeoModelKernelUnits::mm; } double @@ -226,8 +226,8 @@ SCT_ForwardParametersOld::fwdDiscSupportOuterRadius(int iWheel) const { char paraName[50]; sprintf(paraName, "W%d_DISKOUTERRADIUS", iWheel); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*CLHEP::mm; - //---return m_rdb->fwdDiscSupport()->getDouble("OUTERRADIUS") * CLHEP::mm; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::mm; + //---return m_rdb->fwdDiscSupport()->getDouble("OUTERRADIUS") * GeoModelKernelUnits::mm; } double @@ -235,8 +235,8 @@ SCT_ForwardParametersOld::fwdDiscSupportThickness(int iWheel) const { char paraName[50]; sprintf(paraName, "W%d_DISKTHICKNESS", iWheel); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*CLHEP::mm; - //---return m_rdb->fwdDiscSupport()->getDouble("THICKNESS") * CLHEP::mm; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::mm; + //---return m_rdb->fwdDiscSupport()->getDouble("THICKNESS") * GeoModelKernelUnits::mm; } std::string @@ -267,7 +267,7 @@ SCT_ForwardParametersOld::fwdRingInnerRadius(int iRing) const { char paraName[50]; sprintf(paraName, "Ring_%d_INNERRADIUS", iRing); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*CLHEP::mm; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::mm; } double @@ -275,14 +275,14 @@ SCT_ForwardParametersOld::fwdRingMiddleRadius(int iRing) const { char paraName[50]; sprintf(paraName, "Ring_%d_MIDDLERADIUS", iRing); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*CLHEP::mm; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::mm; } double SCT_ForwardParametersOld::fwdRingOuterRadius(int iRing) const { char paraName[50]; sprintf(paraName, "Ring_%d_OUTERRADIUS", iRing); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*CLHEP::mm; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::mm; } double @@ -290,7 +290,7 @@ SCT_ForwardParametersOld::fwdRingOffset(int iRing) const { char paraName[50]; sprintf(paraName, "Ring_%d_OFFSET", iRing); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*CLHEP::mm; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::mm; } double @@ -298,8 +298,8 @@ SCT_ForwardParametersOld::fwdRingModuleStagger(int iRing) const { char paraName[50]; sprintf(paraName, "Ring_%d_MODULESTAGGER", iRing); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*CLHEP::mm; - //---return m_rdb->fwdRing(iRing)->getDouble("MODULESTAGGER") * CLHEP::mm; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::mm; + //---return m_rdb->fwdRing(iRing)->getDouble("MODULESTAGGER") * GeoModelKernelUnits::mm; } double @@ -307,8 +307,8 @@ SCT_ForwardParametersOld::fwdRingPhiOfRefModule(int iRing) const { char paraName[50]; sprintf(paraName, "Ring_%d_PHIOFREFMODULE", iRing); - return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*CLHEP::radian; - //---return m_rdb->fwdRing(iRing)->getDouble("PHIOFREFMODULE") * CLHEP::deg; + return (double)(m_SCT_Fwd_Parameters->find(paraName))->second*GeoModelKernelUnits::radian; + //---return m_rdb->fwdRing(iRing)->getDouble("PHIOFREFMODULE") * GeoModelKernelUnits::deg; } int @@ -348,22 +348,22 @@ SCT_ForwardParametersOld::fwdWheelStereoType(m_iWheel, int iRing) const double SCT_ForwardParametersOld::fwdInnerRadius() const { - return (double)(m_SCT_Fwd_Parameters->find("FWD_INNERRADIUS"))->second*CLHEP::mm; - // return m_rdb->fwdGeneral()->getDouble("INNERRADIUS") * CLHEP::mm; + return (double)(m_SCT_Fwd_Parameters->find("FWD_INNERRADIUS"))->second*GeoModelKernelUnits::mm; + // return m_rdb->fwdGeneral()->getDouble("INNERRADIUS") * GeoModelKernelUnits::mm; } double SCT_ForwardParametersOld::fwdIntermediateRadius() const { - return (double)(m_SCT_Fwd_Parameters->find("FWD_INTERMEDIATERADIUS"))->second*CLHEP::mm; - // return m_rdb->fwdGeneral()->getDouble("INNERRADIUS") * CLHEP::mm; + return (double)(m_SCT_Fwd_Parameters->find("FWD_INTERMEDIATERADIUS"))->second*GeoModelKernelUnits::mm; + // return m_rdb->fwdGeneral()->getDouble("INNERRADIUS") * GeoModelKernelUnits::mm; } double SCT_ForwardParametersOld::fwdOuterRadius() const { - return (double)(m_SCT_Fwd_Parameters->find("FWD_OUTERRADIUS"))->second*CLHEP::mm; - // return m_rdb->fwdGeneral()->getDouble("OUTERRADIUS") * CLHEP::mm; + return (double)(m_SCT_Fwd_Parameters->find("FWD_OUTERRADIUS"))->second*GeoModelKernelUnits::mm; + // return m_rdb->fwdGeneral()->getDouble("OUTERRADIUS") * GeoModelKernelUnits::mm; } @@ -372,22 +372,22 @@ SCT_ForwardParametersOld::fwdOuterRadius() const double SCT_ForwardParametersOld::fwdZMin() const { - return (double)(m_SCT_Fwd_Parameters->find("FWD_ZMIN"))->second*CLHEP::mm; - //return m_rdb->fwdGeneral()->getDouble("ZMIN") * CLHEP::mm; + return (double)(m_SCT_Fwd_Parameters->find("FWD_ZMIN"))->second*GeoModelKernelUnits::mm; + //return m_rdb->fwdGeneral()->getDouble("ZMIN") * GeoModelKernelUnits::mm; } double SCT_ForwardParametersOld::fwdZIntermediate() const { - return (double)(m_SCT_Fwd_Parameters->find("FWD_ZINTERMEDIATE"))->second*CLHEP::mm; - //return m_rdb->fwdGeneral()->getDouble("ZMIN") * CLHEP::mm; + return (double)(m_SCT_Fwd_Parameters->find("FWD_ZINTERMEDIATE"))->second*GeoModelKernelUnits::mm; + //return m_rdb->fwdGeneral()->getDouble("ZMIN") * GeoModelKernelUnits::mm; } double SCT_ForwardParametersOld::fwdZMax() const { - return (double)(m_SCT_Fwd_Parameters->find("FWD_ZMAX"))->second*CLHEP::mm; - //return m_rdb->fwdGeneral()->getDouble("ZMAX") * CLHEP::mm; + return (double)(m_SCT_Fwd_Parameters->find("FWD_ZMAX"))->second*GeoModelKernelUnits::mm; + //return m_rdb->fwdGeneral()->getDouble("ZMAX") * GeoModelKernelUnits::mm; } } diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdDiscSupport.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdDiscSupport.cxx index 14e838bfa42a3c424789c7b01f5312b0c291a138..7a409fbfa5b0abf1452313d76fe89d5696119030 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdDiscSupport.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdDiscSupport.cxx @@ -10,7 +10,7 @@ #include "GeoModelKernel/GeoTube.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" namespace InDetDDSLHC { @@ -31,7 +31,7 @@ void SCT_FwdDiscSupport::getParameters(){ //m_material = materials.getMaterial(parameters->fwdDiscSupportMaterial(m_iWheel)); //0.1265 is taken from oracle database (DiskSupport) double materialIncreaseFactor = parameters->materialIncreaseFactor(m_iWheel); - //double cf_density = 0.1265*materialIncreaseFactor*CLHEP::g/CLHEP::cm3; + //double cf_density = 0.1265*materialIncreaseFactor*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3; //m_material = materials->getMaterial(parameters->fwdDiscSupportMaterial(m_iWheel), cf_density); m_material = materials->getMaterialScaled(parameters->fwdDiscSupportMaterial(m_iWheel), materialIncreaseFactor); } diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdModule.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdModule.cxx index 02996975524dcf09902f35565740cddbdcbacd6a..a6f5a6354ff77a866024a3a71c64e3da7cc0e69a 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdModule.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdModule.cxx @@ -24,10 +24,10 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" +#include "GeoModelKernel/Units.h" +#include "GeoModelKernel/GeoDefinitions.h" + + #include <cmath> #include <sstream> @@ -71,23 +71,23 @@ const GeoLogVol * SCT_FwdModule::preBuild(){ m_sensor = new SCT_FwdSensor("ECSensor0", m_ring); //prepare the module envelope volume - m_length = std::max(m_sensor->length(), m_spine->length()) + 0.50*CLHEP::cm;//0.01mm safety necessary (for stereo angle) + m_length = std::max(m_sensor->length(), m_spine->length()) + 0.50*GeoModelKernelUnits::cm;//0.01mm safety necessary (for stereo angle) m_middleRadius = m_sensor->middleRadius(); m_innerRadius = m_middleRadius - 0.5*m_length; m_outerRadius = m_middleRadius + 0.5*m_length; m_deltaPhi = std::max(m_sensor->deltaPhi(), m_spine->deltaPhi()); if(m_doubleSided){ double interSidesGap = std::max(m_spine->thickness(), m_interSidesGap); - m_thickness = 2*m_sensor->thickness() + interSidesGap + 0.01*CLHEP::mm;//0.01mm safety necessary - //the term 10*CLHEP::degree*3.14/180, is to accommodate the stereo rotation - m_deltaPhi = m_deltaPhi + 10*CLHEP::degree*3.14/180.; + m_thickness = 2*m_sensor->thickness() + interSidesGap + 0.01*GeoModelKernelUnits::mm;//0.01mm safety necessary + //the term 10*GeoModelKernelUnits::degree*3.14/180, is to accommodate the stereo rotation + m_deltaPhi = m_deltaPhi + 10*GeoModelKernelUnits::degree*3.14/180.; //add 1cm, to accomodate for stereo rotation (to be dealt correctly with later) - //m_innerRadius = m_innerRadius - 0.5*CLHEP::cm; - //m_outerRadius = m_outerRadius + 0.5*CLHEP::cm; - m_innerWidth = std::max(m_sensor->innerWidth(), m_spine->innerWidth()) + 2*CLHEP::cm; - m_outerWidth = std::max(m_sensor->outerWidth(), m_spine->outerWidth()) + 2*CLHEP::cm; + //m_innerRadius = m_innerRadius - 0.5*GeoModelKernelUnits::cm; + //m_outerRadius = m_outerRadius + 0.5*GeoModelKernelUnits::cm; + m_innerWidth = std::max(m_sensor->innerWidth(), m_spine->innerWidth()) + 2*GeoModelKernelUnits::cm; + m_outerWidth = std::max(m_sensor->outerWidth(), m_spine->outerWidth()) + 2*GeoModelKernelUnits::cm; }else{ - m_thickness = m_sensor->thickness() + m_spine->thickness() + 0.01*CLHEP::mm;//0.01mm safety necessary + m_thickness = m_sensor->thickness() + m_spine->thickness() + 0.01*GeoModelKernelUnits::mm;//0.01mm safety necessary m_innerWidth = std::max(m_sensor->innerWidth(), m_spine->innerWidth()); m_outerWidth = std::max(m_sensor->outerWidth(), m_spine->outerWidth()); } @@ -105,13 +105,13 @@ GeoVPhysVol* SCT_FwdModule::build(SCT_Identifier id) const{ GeoFullPhysVol* module = new GeoFullPhysVol(m_logVolume); //first, calculate the module components positions - HepGeom::Transform3D innerSidePos, spinePos, outerSidePos; + GeoTrf::Transform3D innerSidePos(GeoTrf::Transform3D::Identity()); + GeoTrf::Transform3D spinePos(GeoTrf::Transform3D::Identity()); + GeoTrf::Transform3D outerSidePos(GeoTrf::Transform3D::Identity()); if(m_doubleSided){ //inner side position (shift this side towards the intreaction point, ie Z negative) //this is the thickness direction - CLHEP::HepRotation inner_Rot; - //inner_Rot.rotateZ(180*CLHEP::deg); - inner_Rot.rotateX(0.5*m_stereoAngle); + GeoTrf::RotateX3D inner_Rot(0.5*m_stereoAngle); double interSidesGap = std::max(m_spine->thickness(), m_interSidesGap); double Xpos = 0.5*( interSidesGap + m_sensor->thickness()); //protection @@ -122,14 +122,10 @@ GeoVPhysVol* SCT_FwdModule::build(SCT_Identifier id) const{ <<". exit athena!"<<std::endl; exit(1); } - CLHEP::Hep3Vector inner_Xpos = CLHEP::Hep3Vector(Xpos, 0.0, 0.0); - innerSidePos = HepGeom::Transform3D(inner_Rot, inner_Xpos); - //spine position (no shift) - spinePos = HepGeom::Translate3D(CLHEP::Hep3Vector( 0.0, 0.0, 0.0)); + GeoTrf::Translation3D inner_Xpos(Xpos, 0.0, 0.0); + innerSidePos = GeoTrf::Transform3D(inner_Xpos*inner_Rot); //outer side (shift towards X positive) - CLHEP::HepRotation outer_Rot; - outer_Rot.rotateZ(180*CLHEP::deg); - outer_Rot.rotateX(-0.5*m_stereoAngle); + GeoTrf::Transform3D outer_Rot = GeoTrf::RotateX3D(-0.5*m_stereoAngle)*GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg); Xpos = -0.5*(interSidesGap + m_sensor->thickness()); //protection if(fabs(Xpos)+0.5*m_sensor->thickness() > 0.5*m_thickness){ @@ -139,12 +135,10 @@ GeoVPhysVol* SCT_FwdModule::build(SCT_Identifier id) const{ <<". exit athena!"<<std::endl; exit(1); } - CLHEP::Hep3Vector outer_Xpos = CLHEP::Hep3Vector(Xpos, 0.0, 0.0); - outerSidePos = HepGeom::Transform3D(outer_Rot, outer_Xpos); + GeoTrf::Translation3D outer_Xpos(Xpos, 0.0, 0.0); + outerSidePos = GeoTrf::Transform3D(outer_Xpos*outer_Rot); }else{ //inner side position (shift this side towards the intreaction point, ie X negative) - CLHEP::HepRotation inner_Rot; - inner_Rot.rotateX(0);//don't rotate (only one side) double Xpos = 0.5*m_spine->thickness(); //protection if(fabs(Xpos)+0.5*m_sensor->thickness() > 0.5*m_thickness){ @@ -154,8 +148,7 @@ GeoVPhysVol* SCT_FwdModule::build(SCT_Identifier id) const{ <<". exit athena!"<<std::endl; exit(1); } - CLHEP::Hep3Vector inner_Xpos = CLHEP::Hep3Vector(Xpos, 0.0, 0.0); - innerSidePos = HepGeom::Transform3D(inner_Rot, inner_Xpos); + innerSidePos = GeoTrf::Translate3D(Xpos, 0.0, 0.0); //spine position (shift towards Z positive) Xpos = -0.5*m_sensor->thickness(); //protection! @@ -166,7 +159,7 @@ GeoVPhysVol* SCT_FwdModule::build(SCT_Identifier id) const{ <<". exit athena!"<<std::endl; exit(1); } - spinePos = HepGeom::Translate3D(CLHEP::Hep3Vector( Xpos, 0.0, 0.0)); + spinePos = GeoTrf::Translate3D(Xpos, 0.0, 0.0); } //add the physical inner side to the mdoule diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdRing.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdRing.cxx index a8721bc5584ac0f6560f8022f1abdea3f471684f..e1f6a79ada438ef050c2a33be078bffdda490572 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdRing.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdRing.cxx @@ -20,10 +20,10 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" +#include "GeoModelKernel/Units.h" +#include "GeoModelKernel/GeoDefinitions.h" + + #include <sstream> #include <cmath> @@ -68,11 +68,11 @@ const GeoLogVol* SCT_FwdRing::preBuild(){ m_module = new SCT_FwdModule("FwdModule"+intToString(m_iRing), m_iRing, m_doubleSided); - //m_innerRadius = m_innerRadius - 0.51*CLHEP::cm;//0.01mm safety necessary - //m_outerRadius = m_outerRadius + 0.51*CLHEP::cm;//0.01mm safety necessary - m_innerRadius = m_innerRadius - 5*CLHEP::mm;//0.01mm safety necessary - m_outerRadius = m_outerRadius + 7*CLHEP::mm;//0.01mm safety necessary - m_thickness = m_module->thickness() + m_moduleStagger + 0.01*CLHEP::mm;//safety necessary + //m_innerRadius = m_innerRadius - 0.51*GeoModelKernelUnits::cm;//0.01mm safety necessary + //m_outerRadius = m_outerRadius + 0.51*GeoModelKernelUnits::cm;//0.01mm safety necessary + m_innerRadius = m_innerRadius - 5*GeoModelKernelUnits::mm;//0.01mm safety necessary + m_outerRadius = m_outerRadius + 7*GeoModelKernelUnits::mm;//0.01mm safety necessary + m_thickness = m_module->thickness() + m_moduleStagger + 0.01*GeoModelKernelUnits::mm;//safety necessary m_length = m_outerRadius - m_innerRadius; //protection along R! if(m_length<m_module->length()){ @@ -101,7 +101,7 @@ GeoVPhysVol* SCT_FwdRing::build(SCT_Identifier id) const{ // Physical volume for the half ring GeoPhysVol* ring = new GeoPhysVol(m_logVolume); - double divisionAngle = 360*CLHEP::degree/m_numModules; + double divisionAngle = 360*GeoModelKernelUnits::degree/m_numModules; bool negativeEndCap = (id.getBarrelEC() < 0); int staggerUpperLower = m_firstStagger; for(int imod=0; imod<m_numModules; imod++){ @@ -120,25 +120,18 @@ GeoVPhysVol* SCT_FwdRing::build(SCT_Identifier id) const{ double phi = m_refStartAngle + imod*divisionAngle; //std::cerr<<"endcap "<<id.getBarrelEC()<<", ring "<<m_iRing<<", startAngle"<<m_refStartAngle<<", phi "<<phi<<std::endl; - CLHEP::HepRotation rot; //put the module along the radius of the ring, along X for example (remeber, it is along Z) - rot.rotateY(90*CLHEP::degree); + GeoTrf::Transform3D rot = GeoTrf::RotateY3D(90*GeoModelKernelUnits::degree); if (negativeEndCap) { //rotate the module so that to keep the local frame orientation as in the positive end - //rot.rotateZ(180*CLHEP::degree); + //rot.rotateZ(180*GeoModelKernelUnits::degree); //start in the oppsite phi and turn in the oppsite direction - if(phi < CLHEP::pi) - phi = CLHEP::pi - phi; + if(phi < GeoModelKernelUnits::pi) + phi = GeoModelKernelUnits::pi - phi; else - phi = 3*CLHEP::pi - phi; - } - if(m_doubleSided){ - //rot.rotateZ(phi + 0.5*m_stereoSign*m_module->stereoAngle()); - // do not stereo angle since the wheel type is not given, may be need to change later(today: 05/09/08) - rot.rotateZ(phi); - }else{ - rot.rotateZ(phi); + phi = 3*GeoModelKernelUnits::pi - phi; } + rot = GeoTrf::RotateZ3D(phi) * rot; //std::cerr<<"endcap "<<id.getBarrelEC()<<", wheel "<<m_iWheel<<", ring "<<m_iRing<<", mod "<<imod<<", phi "<<phi<<", startAng "<<m_refStartAngle<<std::endl; //the module stagger is opposite for oposite rings?! double Zpos = staggerUpperLower*m_ringSide*0.5*m_moduleStagger; @@ -150,11 +143,11 @@ GeoVPhysVol* SCT_FwdRing::build(SCT_Identifier id) const{ <<". exit athena!"<<std::endl; exit(1); } - CLHEP::Hep3Vector xyz(m_middleRadius, 0, Zpos); - xyz.rotateZ(phi); - HepGeom::Transform3D modulePos(rot,xyz); + GeoTrf::Vector3D xyz(m_middleRadius, 0, Zpos); + xyz = GeoTrf::RotateZ3D(phi)*xyz; + GeoTrf::Transform3D modulePos = GeoTrf::Translate3D(xyz.x(),xyz.y(),xyz.z())*rot; //protection along R! - const double epsilon = 0.0001*CLHEP::mm; //beyound meansurment precision?! + const double epsilon = 0.0001*GeoModelKernelUnits::mm; //beyound meansurment precision?! if(m_innerRadius-epsilon>m_module->innerRadius() || m_outerRadius+epsilon<m_module->outerRadius()){ std::cout<<"SCT_FwdRing.cxx: problem with module position along R: " diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdSensor.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdSensor.cxx index fd3a852a5f0c69474fcd5deff5bd16658dbb6d77..4adf6c3db309be8c3a95896b3cd33027ccaf1d22 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdSensor.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdSensor.cxx @@ -19,11 +19,11 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" + +#include "GeoModelKernel/GeoDefinitions.h" + -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" #include "InDetReadoutGeometry/SCT_DetectorManager.h" #include "InDetReadoutGeometry/SCT_ForwardModuleSideDesign.h" diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdSpine.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdSpine.cxx index a454ba956c5adf723055c521468d8139402b8a4f..99953035a2a4c7f4bb70269d350c78dfa54bca64 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdSpine.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdSpine.cxx @@ -14,11 +14,11 @@ #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoShapeUnion.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" + +#include "GeoModelKernel/GeoDefinitions.h" + -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" #include <cmath> diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdWheel.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdWheel.cxx index d41a38310568dad59333b750976394c163d3a324..6ce2e2b667784c33fd1f88ce8fc42851a91ba390 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdWheel.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_FwdWheel.cxx @@ -22,10 +22,10 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" +#include "GeoModelKernel/Units.h" +#include "GeoModelKernel/GeoDefinitions.h" + + #include <sstream> @@ -65,7 +65,7 @@ void SCT_FwdWheel::getParameters(){ m_ringOffset.push_back(parameters->fwdRingOffset(ringType)); m_ringTypes.push_back(ringType); } - m_staggerGap = 0.001* CLHEP::mm; + m_staggerGap = 0.001* GeoModelKernelUnits::mm; // Set numerology detectorManager()->numerology().setNumRingsForDisk(m_iWheel,m_numRings); @@ -85,10 +85,10 @@ const GeoLogVol* SCT_FwdWheel::preBuild(){ } //Calculate the extent of the envelope //start the support disc - //m_outerRadius = m_discSupport->outerRadius() + 0.52*CLHEP::cm;//0.01mm safety necessary - //m_innerRadius = m_discSupport->innerRadius() - 0.52*CLHEP::cm;//0.01mm safety necessary - m_outerRadius = m_discSupport->outerRadius() + 9*CLHEP::mm;//0.01mm safety necessary - m_innerRadius = m_discSupport->innerRadius() - 9*CLHEP::mm;//0.01mm safety necessary + //m_outerRadius = m_discSupport->outerRadius() + 0.52*GeoModelKernelUnits::cm;//0.01mm safety necessary + //m_innerRadius = m_discSupport->innerRadius() - 0.52*GeoModelKernelUnits::cm;//0.01mm safety necessary + m_outerRadius = m_discSupport->outerRadius() + 9*GeoModelKernelUnits::mm;//0.01mm safety necessary + m_innerRadius = m_discSupport->innerRadius() - 9*GeoModelKernelUnits::mm;//0.01mm safety necessary //then comsider rings double wheelThickness_neg = -1.0;//negative value! see code below double wheelThickness_pos = -1.0; @@ -165,8 +165,7 @@ GeoVPhysVol* SCT_FwdWheel::build(SCT_Identifier id) const{ GeoFullPhysVol* wheel = new GeoFullPhysVol(m_logVolume); //support disc - CLHEP::Hep3Vector disc_pos(0, 0, m_discSupportZpos); - wheel->add(new GeoTransform(HepGeom::Translate3D(disc_pos))); + wheel->add(new GeoTransform(GeoTrf::Translate3D(0, 0, m_discSupportZpos))); wheel->add(m_discSupport->getVolume()); //rings @@ -226,7 +225,6 @@ GeoVPhysVol* SCT_FwdWheel::build(SCT_Identifier id) const{ <<std::endl; exit(1); } - CLHEP::Hep3Vector ring_pos(0, 0, ring_z_pos); //each wheel drops a ring, that's why ring_id (ie eta) is calculated in the following way //(ie the second ring from a wheel and the first ring from a following wheel in a region //(SS or LS) have the same eta. @@ -234,7 +232,7 @@ GeoVPhysVol* SCT_FwdWheel::build(SCT_Identifier id) const{ int ring_id = iRing; wheel->add(new GeoNameTag("Ring#" + intToString(ring_id))); wheel->add(new GeoIdentifierTag(ring_id)); - wheel->add(new GeoTransform(HepGeom::Translate3D(ring_pos))); + wheel->add(new GeoTransform(GeoTrf::Translate3D(0, 0, ring_z_pos))); //std::cerr<<", ring "<<ring_id; id.setEtaModule(ring_id); //--id.setEtaModule(iRing); diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_GeneralParameters.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_GeneralParameters.cxx index 4233afc1f7a7bd0e3eb044e6094242dfb5efddd9..3a3a28a4f8e3d48f1378329e634e90ba39d3c663 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_GeneralParameters.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_GeneralParameters.cxx @@ -7,15 +7,15 @@ #include "SCT_SLHC_GeoModel/SCT_DataBase.h" #include "RDBAccessSvc/IRDBRecordset.h" #include "GeometryDBSvc/IGeometryDBSvc.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoModelKernel/Units.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "InDetGeoModelUtils/TopLevelPlacements.h" #include <iostream> namespace InDetDDSLHC { -const double SCT_SAFETY = 0.01 * CLHEP::mm; // Used in some places to make envelopes slightly larger to ensure +const double SCT_SAFETY = 0.01 * GeoModelKernelUnits::mm; // Used in some places to make envelopes slightly larger to ensure // no overlaps due to rounding errors. SCT_GeneralParameters::SCT_GeneralParameters(const SCT_DataBase * sctdb, const SCT_GeoModelAthenaComps * athenaComps) @@ -32,7 +32,7 @@ SCT_GeneralParameters::~SCT_GeneralParameters() } -const HepGeom::Transform3D & +const GeoTrf::Transform3D & SCT_GeneralParameters::partTransform(const std::string & partName) const { return m_placements->transform(partName); @@ -124,19 +124,19 @@ unsigned int SCT_GeneralParameters::envelopeNumPlanes() const double SCT_GeneralParameters::envelopeZ(int i) const { - double zmin = db()->getDouble(m_SctEnvelope,"Z",i) * CLHEP::mm; + double zmin = db()->getDouble(m_SctEnvelope,"Z",i) * GeoModelKernelUnits::mm; if (zmin < 0) msg(MSG::ERROR) << "SctEnvelope table should only contain +ve z values" << endmsg; return std::abs(zmin); } double SCT_GeneralParameters::envelopeRMin(int i) const { - return db()->getDouble(m_SctEnvelope,"RMIN",i) * CLHEP::mm; + return db()->getDouble(m_SctEnvelope,"RMIN",i) * GeoModelKernelUnits::mm; } double SCT_GeneralParameters::envelopeRMax(int i) const { - return db()->getDouble(m_SctEnvelope,"RMAX",i) * CLHEP::mm; + return db()->getDouble(m_SctEnvelope,"RMAX",i) * GeoModelKernelUnits::mm; } diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_InnerSide.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_InnerSide.cxx index 6e55cab68b45d9b0d81bd392f09b2151095d43ff..567f7cc9ff0d2a579ca9677280c50b7a4d08731f 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_InnerSide.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_InnerSide.cxx @@ -22,9 +22,9 @@ #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" +#include "GeoModelKernel/Units.h" +#include "GeoModelKernel/GeoDefinitions.h" + #include <cmath> @@ -82,7 +82,7 @@ const GeoLogVol* SCT_InnerSide::preBuild(){ //positions with respect to the center of the inner side box double innerSensorXPos = 0; //Position sensor - m_sensorPos = new GeoTransform(HepGeom::TranslateX3D(innerSensorXPos)); + m_sensorPos = new GeoTransform(GeoTrf::TranslateX3D(innerSensorXPos)); m_sensorPos->ref(); return InnerSideLogV; } diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Layer.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Layer.cxx index 5c6fbe5bf031a6204eb472e16f7c421c1783c16c..83c6076022c600d80139ed453d0dbf3d2e1a3fc4 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Layer.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Layer.cxx @@ -23,10 +23,10 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoShapeSubtraction.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" +#include "GeoModelKernel/Units.h" +#include "GeoModelKernel/GeoDefinitions.h" + + #include <sstream> #include <cmath> @@ -72,7 +72,7 @@ void SCT_Layer::getParameters(){ //---m_supportMaterial = materials->getMaterial(parameters->supportCylMaterial(m_iLayer)); //0.189 is taken from oracle database (CFiberSupport) double materialIncreaseFactor = parameters->materialIncreaseFactor(m_iLayer); - //double cf_density = 0.189*materialIncreaseFactor*CLHEP::g/CLHEP::cm3; + //double cf_density = 0.189*materialIncreaseFactor*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3; //m_supportMaterial = materials->getMaterial(parameters->supportCylMaterial(m_iLayer), cf_density); m_supportMaterial = materials->getMaterialScaled(parameters->supportCylMaterial(m_iLayer), materialIncreaseFactor); @@ -93,7 +93,7 @@ const GeoLogVol* SCT_Layer::preBuild(){ //Create the logical volume: a sphape + material std::string layerNumStr = intToString(m_iLayer); //Calculations to make the ski(s) - double divisionAngle = 360*CLHEP::degree/m_skisPerLayer; + double divisionAngle = 360*GeoModelKernelUnits::degree/m_skisPerLayer; m_skiPhiStart = 0.5*divisionAngle; //Make the ski: this is made from modules m_ski = new SCT_Ski("Ski"+layerNumStr, m_modulesPerSki, m_iLayer, @@ -134,7 +134,7 @@ GeoVPhysVol* SCT_Layer::build(SCT_Identifier id) const{ SCT_MaterialManager * materials = geometryManager()->materialManager(); //We make this a fullPhysVol for alignment code. GeoFullPhysVol* layer = new GeoFullPhysVol(m_logVolume); - double divisionAngle = 360*CLHEP::degree/m_skisPerLayer; + double divisionAngle = 360*GeoModelKernelUnits::degree/m_skisPerLayer; //Make envelope for active layer const GeoTube* activeLayerEnvelope = new GeoTube(m_activeInnerRadius, m_activeOuterRadius, 0.5*m_cylLength); @@ -148,17 +148,15 @@ GeoVPhysVol* SCT_Layer::build(SCT_Identifier id) const{ //first, rotate the ski to have the right orientation (by default the ski is put in //the center of the layer cylinder with thickness along X, width along Y and length //along Z. the rotation is done along the cylinder Z axis. - CLHEP::HepRotation rot; - rot.rotateZ(phi); - rot.rotateZ(m_tilt); + GeoTrf::Transform3D rot = GeoTrf::RotateZ3D(m_tilt)*GeoTrf::RotateZ3D(phi); //then translate the ski to (R, Phi) position - CLHEP::Hep3Vector pos(m_radius, 0, 0); - pos.rotateZ(phi); + GeoTrf::Vector3D pos(m_radius, 0, 0); + pos = GeoTrf::RotateZ3D(phi)*pos; //Because the ski envelope center is not positioned at the rotation axis for the ski //we must first apply the inverse of refPointTransform() of the ski. - //---HepGeom::Transform3D trans(HepGeom::Transform3D(rot,pos)*m_ski->getRefPointTransform() + //---GeoTrf::Transform3D trans(GeoTrf::Transform3D(rot,pos)*m_ski->getRefPointTransform() //--- ->getTransform().inverse()); - HepGeom::Transform3D trans(HepGeom::Transform3D(rot,pos)); + GeoTrf::Transform3D trans = GeoTrf::Translate3D(pos.x(),pos.y(),pos.z())*rot; activeLayer->add(new GeoAlignableTransform(trans)); activeLayer->add(new GeoNameTag(name.str())); activeLayer->add(new GeoIdentifierTag(iSki)); @@ -198,9 +196,9 @@ void SCT_Layer::activeEnvelopeExtent(double & rmin, double & rmax){ double thickness = 0.5*m_ski->thickness(); double width = 0.5*m_ski->width(); double tilt = std::abs(m_tilt); - double width_rot = width * cos(tilt/CLHEP::radian) - thickness * sin(tilt/CLHEP::radian); + double width_rot = width * cos(tilt/GeoModelKernelUnits::radian) - thickness * sin(tilt/GeoModelKernelUnits::radian); - double thickness_rot = width * sin(tilt/CLHEP::radian) + thickness * cos(tilt/CLHEP::radian); + double thickness_rot = width * sin(tilt/GeoModelKernelUnits::radian) + thickness * cos(tilt/GeoModelKernelUnits::radian); rmax = sqrt(sqr(m_radius + thickness_rot) + sqr(width_rot)); rmin = sqrt(sqr(m_radius - thickness_rot) + sqr(width_rot)); diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_MaterialManager.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_MaterialManager.cxx index a0329a676201e8c45a2fded5a210a105c8430d1d..ded6eb732035bf5662d89f2ab273a4bbf8c92221 100755 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_MaterialManager.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_MaterialManager.cxx @@ -35,7 +35,7 @@ SCT_MaterialManager::loadMaterials() //const GeoMaterial *kapton = getMaterial("std::Kapton"); // 30th Aug 2005 D.Naito added. // CuKapton for Low Mass Tapes - //GeoMaterial * matCuKapton = new GeoMaterial("sct::CuKapton",2.94*CLHEP::gram/CLHEP::cm3); + //GeoMaterial * matCuKapton = new GeoMaterial("sct::CuKapton",2.94*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); //matCuKapton->add(const_cast<GeoElement*>(copper), 0.6142); //matCuKapton->add(const_cast<GeoMaterial*>(kapton), 0.3858); //addMaterial(matCuKapton); diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Module.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Module.cxx index 73d5b0d93591acead687ab75cd7a38d529f8cda0..e08c43799a20287c925bb88b241d2751befd6a36 100755 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Module.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Module.cxx @@ -25,10 +25,10 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoShapeSubtraction.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" +#include "GeoModelKernel/Units.h" +#include "GeoModelKernel/GeoDefinitions.h" + + #include <cmath> @@ -83,13 +83,13 @@ const GeoLogVol* SCT_Module::preBuild(){ // Sensor only if placing sensors directly on stave m_width = m_innerSide->width(); m_length = m_innerSide->length(); - m_thickness = m_innerSide->thickness() + 0.01*CLHEP::mm;// Not really necessary but doesn't hurt + m_thickness = m_innerSide->thickness() + 0.01*GeoModelKernelUnits::mm;// Not really necessary but doesn't hurt } else if(m_doubleSided){ sideWidth = std::max(m_innerSide->width(), m_outerSide->width()); sideLength = std::max(m_innerSide->length(), m_outerSide->length()); - m_width = std::max(sideWidth*cos(half_stereo/CLHEP::radian) + sideLength*sin(half_stereo/CLHEP::radian), + m_width = std::max(sideWidth*cos(half_stereo/GeoModelKernelUnits::radian) + sideLength*sin(half_stereo/GeoModelKernelUnits::radian), m_baseBoard->width()); - m_length = std::max(sideWidth*sin(half_stereo/CLHEP::radian) + sideLength*cos(half_stereo/CLHEP::radian), + m_length = std::max(sideWidth*sin(half_stereo/GeoModelKernelUnits::radian) + sideLength*cos(half_stereo/GeoModelKernelUnits::radian), m_baseBoard->length()); double interSidesGap = std::max(m_baseBoard->thickness(), m_interSidesGap); m_thickness = m_innerSide->thickness() + m_outerSide->thickness() + interSidesGap + 0.01;//0.01mm safety necessary @@ -122,12 +122,12 @@ GeoVPhysVol* SCT_Module::build(SCT_Identifier id) const{ } GeoFullPhysVol* module = new GeoFullPhysVol(m_logVolume); //first, calculate the module components position - HepGeom::Transform3D innerSidePos, baseBoardPos, outerSidePos; + GeoTrf::Transform3D innerSidePos(GeoTrf::Transform3D::Identity()); + GeoTrf::Transform3D baseBoardPos(GeoTrf::Transform3D::Identity()); + GeoTrf::Transform3D outerSidePos(GeoTrf::Transform3D::Identity()); if (m_doubleSided){ //inner side position (shift this side towards the intreaction point, ie X negative) - CLHEP::HepRotation inner_Rot; - inner_Rot.rotateZ(180*CLHEP::deg); - inner_Rot.rotateX(-0.5*m_stereoAngle); + GeoTrf::Transform3D inner_Rot = GeoTrf::RotateX3D(-0.5*m_stereoAngle)*GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg); double interSidesGap = std::max(m_baseBoard->thickness(), m_interSidesGap); double Xpos = -0.5*(interSidesGap + m_innerSide->thickness()); //std::cerr<<"inner Xpos "<<Xpos<<" thickness "<<m_innerSide->thickness()<<std::endl; @@ -139,13 +139,11 @@ GeoVPhysVol* SCT_Module::build(SCT_Identifier id) const{ <<". exit athena!"<<std::endl; exit(1); } - CLHEP::Hep3Vector inner_Xpos = CLHEP::Hep3Vector(Xpos, 0., 0.); - innerSidePos = HepGeom::Transform3D(inner_Rot, inner_Xpos); + GeoTrf::Translation3D inner_Xpos(Xpos, 0., 0.); + innerSidePos = GeoTrf::Transform3D(inner_Xpos*inner_Rot); //basebord position (no shift) - baseBoardPos = HepGeom::Translate3D(CLHEP::Hep3Vector( 0.0, 0.0, 0.0)); //outer side (shift towards X positive) - CLHEP::HepRotation outer_Rot; - outer_Rot.rotateX(+0.5*m_stereoAngle); + GeoTrf::RotateX3D outer_Rot(+0.5*m_stereoAngle); Xpos = 0.5*(interSidesGap + m_outerSide->thickness()); //std::cerr<<"inner Xpos "<<Xpos<<" thickness "<<m_outerSide->thickness()<<std::endl; //protection @@ -156,13 +154,11 @@ GeoVPhysVol* SCT_Module::build(SCT_Identifier id) const{ <<". exit athena!"<<std::endl; exit(1); } - CLHEP::Hep3Vector outer_Xpos = CLHEP::Hep3Vector(Xpos, 0., 0.); - outerSidePos = HepGeom::Transform3D(outer_Rot, outer_Xpos); + GeoTrf::Translation3D outer_Xpos(Xpos, 0., 0.); + outerSidePos = GeoTrf::Transform3D(outer_Xpos*outer_Rot); } else { //inner side position (shift this side towards the intreaction point, ie X negative) - CLHEP::HepRotation inner_Rot; - inner_Rot.rotateZ(180*CLHEP::deg); - inner_Rot.rotateX(0);//don't rotate (only one side) + GeoTrf::RotateZ3D inner_Rot(180*GeoModelKernelUnits::deg); double Xpos = -0.5*m_baseBoard->thickness(); //protection if(fabs(Xpos)+0.5*m_innerSide->thickness() > 0.5*m_thickness){ @@ -172,8 +168,8 @@ GeoVPhysVol* SCT_Module::build(SCT_Identifier id) const{ <<". exit athena!"<<std::endl; exit(1); } - CLHEP::Hep3Vector inner_Xpos = CLHEP::Hep3Vector(Xpos, 0., 0.); - innerSidePos = HepGeom::Transform3D(inner_Rot, inner_Xpos); + GeoTrf::Translation3D inner_Xpos(Xpos, 0., 0.); + innerSidePos = GeoTrf::Transform3D(inner_Xpos*inner_Rot); //basebord position (shift towards X positive) Xpos = 0.5*m_innerSide->thickness(); //protection! @@ -184,7 +180,7 @@ GeoVPhysVol* SCT_Module::build(SCT_Identifier id) const{ <<". exit athena!"<<std::endl; exit(1); } - baseBoardPos = HepGeom::Translate3D(CLHEP::Hep3Vector(Xpos, 0.0, 0.0)); + baseBoardPos = GeoTrf::Translate3D(Xpos, 0.0, 0.0); } //Add physical innerside to the module diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_OuterSide.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_OuterSide.cxx index d103326b333d4c8828e44e61fce9718e3c63d257..bf6c162a238bb4d27b4bb71a94ad1b0fad717f87 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_OuterSide.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_OuterSide.cxx @@ -22,9 +22,9 @@ #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" +#include "GeoModelKernel/Units.h" +#include "GeoModelKernel/GeoDefinitions.h" + #include <cmath> @@ -78,7 +78,7 @@ const GeoLogVol* SCT_OuterSide::preBuild(){ //positions with respect to the center of the outer side box double outerSensorXPos = 0; //Position sensor - m_sensorPos = new GeoTransform(HepGeom::TranslateX3D(outerSensorXPos)); + m_sensorPos = new GeoTransform(GeoTrf::TranslateX3D(outerSensorXPos)); m_sensorPos->ref(); return OuterSideLogV; diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Sensor.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Sensor.cxx index 49b6f575779eb1014f16d53f46e2498f1a57fa5b..eeeec98686f7792a56644136a360dc14176fed4c 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Sensor.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Sensor.cxx @@ -23,7 +23,7 @@ #include "InDetReadoutGeometry/SiCommonItems.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" using namespace InDetDD; @@ -78,7 +78,7 @@ SCT_Sensor::preBuild() // Build the subsensor logical volume (same for all segments). // We reduce the size by a small amount to avoid touching volumes. - double epsilon = 1e-7*CLHEP::mm; + double epsilon = 1e-7*GeoModelKernelUnits::mm; const GeoBox * subSensorShape = new GeoBox(0.5*m_thickness-epsilon, 0.5*m_width-epsilon, 0.5*m_subSensorLength-epsilon); m_subSensorLog = new GeoLogVol(getName(), subSensorShape, m_material); m_subSensorLog->ref(); @@ -153,7 +153,7 @@ GeoVPhysVol* SCT_Sensor::build(SCT_Identifier id) const{ if (m_numSegments > 1) { double zpos = (iSegment - 0.5*(m_numSegments-1)) * m_subSensorLength; subSensor = new GeoFullPhysVol(m_subSensorLog); - GeoTransform * trans = new GeoTransform(HepGeom::TranslateZ3D(zpos)); + GeoTransform * trans = new GeoTransform(GeoTrf::TranslateZ3D(zpos)); GeoIdentifierTag * idTag = new GeoIdentifierTag(1200+iSegment); GeoNameTag * nameTag = new GeoNameTag("SubSensor#"+intToString(iSegment)); sensor->add(trans); diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Ski.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Ski.cxx index 5b4cb330ebfee24da3d8d204e7725ce2eb9915fc..d814453a02f24202d5999dde1d6400c6a5229a65 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Ski.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_Ski.cxx @@ -24,10 +24,10 @@ #include "GeoModelKernel/GeoShape.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "CLHEP/Units/SystemOfUnits.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Vector/Rotation.h" +#include "GeoModelKernel/Units.h" +#include "GeoModelKernel/GeoDefinitions.h" + + #include <sstream> #include <cmath> @@ -172,9 +172,7 @@ GeoVPhysVol* SCT_Ski::build(SCT_Identifier id) const{ if ((m_staveLayout==2) && m_staveSupport_pos && m_staveSupport_pos->getVolume()) { // centered. - CLHEP::Hep3Vector pos_pos(0.0, 0.0, (m_length*0.5 - m_cylInnerZMin - m_safety)*0.5 + m_cylInnerZMin); - CLHEP::HepRotation pos_rot; - HepGeom::Transform3D modulePos_pos = HepGeom::Transform3D(pos_rot, pos_pos); + GeoTrf::Translate3D modulePos_pos(0.0, 0.0, (m_length*0.5 - m_cylInnerZMin - m_safety)*0.5 + m_cylInnerZMin); GeoTransform* supportTransform_pos = new GeoTransform(modulePos_pos); ski->add(supportTransform_pos); ski->add(m_staveSupport_pos->getVolume()); @@ -182,9 +180,7 @@ GeoVPhysVol* SCT_Ski::build(SCT_Identifier id) const{ if ((m_staveLayout==2) && m_staveSupport_neg && m_staveSupport_neg->getVolume()) { // centered. - CLHEP::Hep3Vector neg_pos(0.0, 0.0,-(m_length*0.5 - m_cylInnerZMin - m_safety)*0.5 - m_cylInnerZMin); - CLHEP::HepRotation neg_rot; - HepGeom::Transform3D modulePos_neg = HepGeom::Transform3D(neg_rot, neg_pos); + GeoTrf::Translate3D modulePos_neg(0.0, 0.0,-(m_length*0.5 - m_cylInnerZMin - m_safety)*0.5 - m_cylInnerZMin); GeoTransform* supportTransform_neg = new GeoTransform(modulePos_neg); ski->add(supportTransform_neg); ski->add(m_staveSupport_neg->getVolume()); @@ -221,12 +217,11 @@ SCT_Ski::placeModule(GeoPhysVol * ski, SCT_Identifier id, int iModule, int side, //Don't exit as this breaks some existing geometries. //exit(1); } - CLHEP::HepRotation rot; + GeoTrf::Transform3D rot = GeoTrf::RotateX3D(stereoAngle); //the module is rotated, around X axis, one way or the other (u or v) - if (flip) rot.rotateZ(180*CLHEP::deg); - rot.rotateX(stereoAngle); - CLHEP::Hep3Vector pos(xModulePos, 0.0, zModulePos); - HepGeom::Transform3D modulePos = HepGeom::Transform3D(rot, pos); + if (flip) rot = rot * GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg); + GeoTrf::Translation3D pos(xModulePos, 0.0, zModulePos); + GeoTrf::Transform3D modulePos = GeoTrf::Transform3D(pos*rot); //Add modules. GeoAlignableTransform* moduleTransform = new GeoAlignableTransform(modulePos); diff --git a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_StaveSupport.cxx b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_StaveSupport.cxx index 94968f717b163f0ea3c6254cfe32292956ac6789..52b9475c4e56f6cb1de238754bade81a06214edb 100644 --- a/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_StaveSupport.cxx +++ b/InnerDetector/InDetDetDescr/SCT_SLHC_GeoModel/src/SCT_StaveSupport.cxx @@ -12,7 +12,7 @@ #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoMaterial.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" namespace InDetDDSLHC { diff --git a/InnerDetector/InDetDetDescr/TRT_GeoModel/CMakeLists.txt b/InnerDetector/InDetDetDescr/TRT_GeoModel/CMakeLists.txt index 89c041c9aacbf554ed3335ce2120f5ff793e7b62..bb2815df1d421d5bdb167682ee4986afaaae4763 100644 --- a/InnerDetector/InDetDetDescr/TRT_GeoModel/CMakeLists.txt +++ b/InnerDetector/InDetDetDescr/TRT_GeoModel/CMakeLists.txt @@ -20,7 +20,7 @@ atlas_depends_on_subdirs( PUBLIC Database/AthenaPOOL/AthenaPoolUtilities DetectorDescription/DetDescrCond/DetDescrConditions DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel + DetectorDescription/GeoPrimitives DetectorDescription/GeometryDBSvc DetectorDescription/IdDictDetDescr InnerDetector/InDetConditions/TRT_ConditionsData @@ -28,13 +28,14 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( TRT_GeoModel src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} AthenaKernel GeoModelUtilities GaudiKernel TRT_ConditionsServicesLib InDetGeoModelUtils InDetReadoutGeometry SGTools StoreGateLib SGtests AthenaPoolUtilities DetDescrConditions GeoModelKernel IdDictDetDescr TRT_ConditionsData InDetIdentifier ) + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaKernel GeoModelUtilities GaudiKernel TRT_ConditionsServicesLib InDetGeoModelUtils InDetReadoutGeometry SGTools StoreGateLib SGtests AthenaPoolUtilities DetDescrConditions IdDictDetDescr TRT_ConditionsData InDetIdentifier ) diff --git a/InnerDetector/InDetDetDescr/TRT_GeoModel/src/ArrayFunction.cxx b/InnerDetector/InDetDetDescr/TRT_GeoModel/src/ArrayFunction.cxx index fd18bacfeca231fe612d23eae8260500a7012d30..40e90d059c8af5acf6b1ae52b8577ab565ef4aef 100755 --- a/InnerDetector/InDetDetDescr/TRT_GeoModel/src/ArrayFunction.cxx +++ b/InnerDetector/InDetDetDescr/TRT_GeoModel/src/ArrayFunction.cxx @@ -4,7 +4,7 @@ #include "ArrayFunction.h" -namespace Genfun { +namespace GeoGenfun { FUNCTION_OBJECT_IMP(ArrayFunction) @@ -17,7 +17,7 @@ ArrayFunction::~ArrayFunction(){} // Copy constructor ArrayFunction::ArrayFunction(const ArrayFunction &right): - Genfun::AbsFunction(), m_values(right.m_values) {} + GeoGenfun::AbsFunction(), m_values(right.m_values) {} // Retrieve function value double ArrayFunction::operator ()(double argument) const { diff --git a/InnerDetector/InDetDetDescr/TRT_GeoModel/src/ArrayFunction.h b/InnerDetector/InDetDetDescr/TRT_GeoModel/src/ArrayFunction.h index a0f6f8cbd1b4910cafdc8c1533ca165bad131c45..3d556b84d572712bf569360a37d36dd0c49fa8ca 100755 --- a/InnerDetector/InDetDetDescr/TRT_GeoModel/src/ArrayFunction.h +++ b/InnerDetector/InDetDetDescr/TRT_GeoModel/src/ArrayFunction.h @@ -10,9 +10,9 @@ //-------------------------------------------------------// -#include "CLHEP/GenericFunctions/AbsFunction.hh" +#include "GeoGenericFunctions/AbsFunction.h" #include <vector> -namespace Genfun { +namespace GeoGenfun { class ArrayFunction : public AbsFunction { FUNCTION_OBJECT_DEF(ArrayFunction) diff --git a/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRTDetectorFactory_Full.cxx b/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRTDetectorFactory_Full.cxx index 06181d15fe1e6490c45521ec3e5b5d119b3d56d3..7cb171c6813eccba3df79ff3eb1f452922a05503 100755 --- a/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRTDetectorFactory_Full.cxx +++ b/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRTDetectorFactory_Full.cxx @@ -2,6 +2,7 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ +#include "GeoPrimitives/GeoPrimitives.h" #include "TRTDetectorFactory_Full.h" #include "TRT_DetDescrDB_ParameterInterface.h" @@ -39,13 +40,13 @@ #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoElement.h" #include "GeoModelKernel/GeoMaterial.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" -#include "CLHEP/GenericFunctions/AbsFunction.hh" -#include "CLHEP/GenericFunctions/Variable.hh" -#include "CLHEP/GenericFunctions/Sin.hh" -#include "CLHEP/GenericFunctions/Cos.hh" -#include "CLHEP/Vector/TwoVector.h" -#include "CLHEP/Vector/ThreeVector.h" +#include "GeoGenericFunctions/AbsFunction.h" +#include "GeoGenericFunctions/Variable.h" +#include "GeoGenericFunctions/Sin.h" +#include "GeoGenericFunctions/Cos.h" #include "AthenaPoolUtilities/CondAttrListCollection.h" #include "DetDescrConditions/AlignableTransformContainer.h" @@ -53,13 +54,33 @@ #include <vector> #include <sstream> +#include <cmath> -//TK: get rid of these and use Genfun:: and GeoXF:: instead -using namespace Genfun; +//TK: get rid of these and use GeoGenfun:: and GeoXF:: instead +using namespace GeoGenfun; using namespace GeoXF; +// Helper functions. Temporarily here (hopefully) +void rotate(double angler, GeoTrf::Vector2D& vector) +{ + double s1 = std::sin(angler); + double c = std::cos(angler); + double xx = vector.x(); + double yy = vector.y(); + vector.x() = c*xx - s1*yy; + vector.y() = s1*xx + c*yy; +} +double angle(const GeoTrf::Vector2D& a, const GeoTrf::Vector2D& b) +{ + double ptot2 = a.mag2()*b.mag2(); + return ptot2 <= 0.0 ? 0.0 : std::acos(a.dot(b)/std::sqrt(ptot2)); +} +double magn(GeoTrf::Vector2D& vector) +{ + return std::sqrt(vector.x()*vector.x() + vector.y()*vector.y()); +} /////////////////////////////////// Constructor ////////////////////////////////// // TRTDetectorFactory_Full::TRTDetectorFactory_Full(const InDetDD::AthenaComps * athenaComps, @@ -252,7 +273,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) bool endcapCPlusPresent = m_data->partPresent(endcapA_WheelC_Label); bool endcapCMinusPresent = m_data->partPresent(endcapC_WheelC_Label); // Overall transform (probably will always be identifty - but just in case) - HepGeom::Transform3D trtTransform = m_data->partTransform("TRT"); + GeoTrf::Transform3D trtTransform = m_data->partTransform("TRT"); // For old configurations we need to set which parts are present. // @@ -379,7 +400,6 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) //---------------------- Top level volumes ------------------------// - // This is used by HepVis. GeoNameTag * topLevelNameTag = new GeoNameTag("TRT"); topLevelNameTag->ref(); //(sar) Set this up for deletion if it never gets added // The top level volumes @@ -432,7 +452,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) m_data->outerRadiusOfEndCapVolumeAB, m_data->lengthOfEndCapVolumeAB/2.); const GeoShape & sEndCapVolumeAB - = ( *sEndCapVolumeAB_unshifted << HepGeom::TranslateZ3D(m_data->positionOfEndCapVolumeAB)); + = ( *sEndCapVolumeAB_unshifted << GeoTrf::TranslateZ3D(m_data->positionOfEndCapVolumeAB)); lEndCapVolumeAB = new GeoLogVol("TRTEndcapWheelAB", &sEndCapVolumeAB, m_materialManager->getMaterial("trt::CO2")); } @@ -456,7 +476,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) pEndCapABMinus = new GeoFullPhysVol(lEndCapVolumeAB); GeoAlignableTransform * transform = - new GeoAlignableTransform(trtTransform * m_data->partTransform(endcapC_WheelAB_Label) * HepGeom::RotateY3D(180*CLHEP::deg)); + new GeoAlignableTransform(trtTransform * m_data->partTransform(endcapC_WheelAB_Label) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg)); world->add(topLevelNameTag); world->add(transform); @@ -476,7 +496,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) m_data->outerRadiusOfEndCapVolumeC, m_data->lengthOfEndCapVolumeC/2.); const GeoShape & sEndCapVolumeC - = ( *sEndCapVolumeC_unshifted << HepGeom::TranslateZ3D(m_data->positionOfEndCapVolumeC)); + = ( *sEndCapVolumeC_unshifted << GeoTrf::TranslateZ3D(m_data->positionOfEndCapVolumeC)); lEndCapVolumeC = new GeoLogVol("TRTEndcapWheelC", &sEndCapVolumeC, m_materialManager->getMaterial("trt::CO2")); } @@ -498,7 +518,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) pEndCapCMinus = new GeoFullPhysVol(lEndCapVolumeC); GeoAlignableTransform * transform = - new GeoAlignableTransform(trtTransform * m_data->partTransform(endcapC_WheelC_Label) * HepGeom::RotateY3D(180*CLHEP::deg)); + new GeoAlignableTransform(trtTransform * m_data->partTransform(endcapC_WheelC_Label) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg)); world->add(topLevelNameTag); world->add(transform); @@ -611,8 +631,8 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) GeoPhysVol *pEndFlangeRegion = new GeoPhysVol(lEndFlangeRegion); double zPosEndFlange = (m_data->barFlangeZMin+m_data->barFlangeZMax)/2; - GeoTransform *xfEndFlangeRegionPlus = new GeoTransform(HepGeom::TranslateZ3D(zPosEndFlange)); - GeoTransform *xfEndFlangeRegionMinus = new GeoTransform(HepGeom::TranslateZ3D(-zPosEndFlange)); + GeoTransform *xfEndFlangeRegionPlus = new GeoTransform(GeoTrf::TranslateZ3D(zPosEndFlange)); + GeoTransform *xfEndFlangeRegionMinus = new GeoTransform(GeoTrf::TranslateZ3D(-zPosEndFlange)); pBarrelVol->add(xfEndFlangeRegionPlus); pBarrelVol->add(pEndFlangeRegion); @@ -634,8 +654,8 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) GeoPhysVol *pServices = new GeoPhysVol(lServices); double zPosServices = (m_data->barServicesZMin+m_data->barServicesZMax)/2; - GeoTransform *xfServicesPlus = new GeoTransform(HepGeom::TranslateZ3D(zPosServices)); - GeoTransform *xfServicesMinus = new GeoTransform(HepGeom::TranslateZ3D(-zPosServices)); + GeoTransform *xfServicesPlus = new GeoTransform(GeoTrf::TranslateZ3D(zPosServices)); + GeoTransform *xfServicesMinus = new GeoTransform(GeoTrf::TranslateZ3D(-zPosServices)); pBarrelVol->add(xfServicesPlus); pBarrelVol->add(pServices); @@ -701,15 +721,15 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) // The shell volume: std::ostringstream shellstream; shellstream << "Shell" << iABC; - CLHEP::Hep2Vector shellCorner1(m_data->shellCornerXPosition[iABC][0],m_data->shellCornerYPosition[iABC][0]); - CLHEP::Hep2Vector shellCorner2(m_data->shellCornerXPosition[iABC][1],m_data->shellCornerYPosition[iABC][1]); - CLHEP::Hep2Vector shellCorner3(m_data->shellCornerXPosition[iABC][2],m_data->shellCornerYPosition[iABC][2]); - CLHEP::Hep2Vector shellCorner4(m_data->shellCornerXPosition[iABC][3],m_data->shellCornerYPosition[iABC][3]); - HepGeom::Transform3D shellPosition; - if ( shellCorner1 <= 0 ) { msg(MSG::DEBUG) << "shellCorner1 is <= 0 (" << shellCorner1 << ")" << endmsg; } - if ( shellCorner2 <= 0 ) { msg(MSG::DEBUG) << "shellCorner2 is <= 0 (" << shellCorner2 << ")" << endmsg; } - if ( shellCorner3 <= 0 ) { msg(MSG::DEBUG) << "shellCorner3 is <= 0 (" << shellCorner3 << ")" << endmsg; } - if ( shellCorner4 <= 0 ) { msg(MSG::DEBUG) << "shellCorner4 is <= 0 (" << shellCorner4 << ")" << endmsg; } + GeoTrf::Vector2D shellCorner1(m_data->shellCornerXPosition[iABC][0],m_data->shellCornerYPosition[iABC][0]); + GeoTrf::Vector2D shellCorner2(m_data->shellCornerXPosition[iABC][1],m_data->shellCornerYPosition[iABC][1]); + GeoTrf::Vector2D shellCorner3(m_data->shellCornerXPosition[iABC][2],m_data->shellCornerYPosition[iABC][2]); + GeoTrf::Vector2D shellCorner4(m_data->shellCornerXPosition[iABC][3],m_data->shellCornerYPosition[iABC][3]); + GeoTrf::Transform3D shellPosition(GeoTrf::Transform3D::Identity()); + if ( shellCorner1.y() <= 0 ) { msg(MSG::DEBUG) << "shellCorner1 is <= 0 (" << shellCorner1 << ")" << endmsg; } + if ( shellCorner2.y() <= 0 ) { msg(MSG::DEBUG) << "shellCorner2 is <= 0 (" << shellCorner2 << ")" << endmsg; } + if ( shellCorner3.y() <= 0 ) { msg(MSG::DEBUG) << "shellCorner3 is <= 0 (" << shellCorner3 << ")" << endmsg; } + if ( shellCorner4.y() <= 0 ) { msg(MSG::DEBUG) << "shellCorner4 is <= 0 (" << shellCorner4 << ")" << endmsg; } const GeoShape * sShell = makeModule(m_data->lengthOfBarrelVolume, shellCorner1,shellCorner2,shellCorner3,shellCorner4,shellPosition); @@ -728,7 +748,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) // Some shared stuff for all of the modules within a layer: // Make a Radiator - HepGeom::Transform3D radAbsolutePosition; + GeoTrf::Transform3D radAbsolutePosition(GeoTrf::Transform3D::Identity()); const GeoShape * sRad = makeModule(m_data->lengthOfBarrelVolume, shellCorner1,shellCorner2,shellCorner3,shellCorner4, radAbsolutePosition,m_data->barrelThicknessOfModuleWalls); @@ -752,9 +772,9 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) // Place the cooling tubes in the Radiator GeoTransform *xCool1 = new GeoTransform(shellPosition.inverse() - *HepGeom::Translate3D(m_data->barrelXOfCoolingTube[iABC][0],m_data->barrelYOfCoolingTube[iABC][0],0)); + *GeoTrf::Translate3D(m_data->barrelXOfCoolingTube[iABC][0],m_data->barrelYOfCoolingTube[iABC][0],0)); GeoTransform *xCool2 = new GeoTransform(shellPosition.inverse() - *HepGeom::Translate3D(m_data->barrelXOfCoolingTube[iABC][1],m_data->barrelYOfCoolingTube[iABC][1],0)); + *GeoTrf::Translate3D(m_data->barrelXOfCoolingTube[iABC][1],m_data->barrelYOfCoolingTube[iABC][1],0)); pRad->add(xCool1); pRad->add(pCoolingTube); @@ -787,8 +807,8 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) } // Generators: - HepGeom::TranslateX3D Xx(1.0); - HepGeom::TranslateY3D Xy(1.0); + GeoTrf::TranslateX3D Xx(1.0); + GeoTrf::TranslateY3D Xy(1.0); GENFUNCTION fx = ArrayFunction(&m_data->strawXPosition[iABC][0+nStrawsWithLargeDeadRegion], &m_data->strawXPosition[iABC][0]+m_data->barrelNumberOfStrawsInModule[iABC]); @@ -814,24 +834,26 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) //First get the global and local positions of the two alignment straws: //USE HEP2VECTORS!!! - CLHEP::Hep3Vector Align1Global(m_data->barrelXOfFirstGlobalAlignmentStraw[iABC], m_data->barrelYOfFirstGlobalAlignmentStraw[iABC], 0); - CLHEP::Hep3Vector Align2Global(m_data->barrelXOfSecondGlobalAlignmentStraw[iABC], m_data->barrelYOfSecondGlobalAlignmentStraw[iABC],0); - CLHEP::Hep3Vector Align1Local(m_data->strawXPosition[iABC][0],m_data->strawYPosition[iABC][0],0); - CLHEP::Hep3Vector Align2Local(m_data->strawXPosition[iABC][m_data->barrelIndexOfSecondGlobalAlignmentStraw[iABC]], - m_data->strawYPosition[iABC][m_data->barrelIndexOfSecondGlobalAlignmentStraw[iABC]],0); + GeoTrf::Vector3D Align1Global(m_data->barrelXOfFirstGlobalAlignmentStraw[iABC], m_data->barrelYOfFirstGlobalAlignmentStraw[iABC], 0); + GeoTrf::Vector3D Align2Global(m_data->barrelXOfSecondGlobalAlignmentStraw[iABC], m_data->barrelYOfSecondGlobalAlignmentStraw[iABC],0); + GeoTrf::Vector3D Align1Local(m_data->strawXPosition[iABC][0],m_data->strawYPosition[iABC][0],0); + GeoTrf::Vector3D Align2Local(m_data->strawXPosition[iABC][m_data->barrelIndexOfSecondGlobalAlignmentStraw[iABC]], + m_data->strawYPosition[iABC][m_data->barrelIndexOfSecondGlobalAlignmentStraw[iABC]],0); //We need to make first a translation which puts the first alignment straw into place: //And we need to make a rotation which puts the second one on its position: - CLHEP::Hep2Vector local12 = CLHEP::Hep2Vector( Align2Local - Align1Local ); - CLHEP::Hep2Vector global12 = CLHEP::Hep2Vector( Align2Global - Align1Global ); + GeoTrf::Vector2D local12((Align2Local - Align1Local).x(),(Align2Local - Align1Local).y()); + GeoTrf::Vector2D global12((Align2Global - Align1Global).x(),(Align2Global - Align1Global).y()); double zrotang = global12.phi()-local12.phi(); - //Here we combine these two into a HepGeom::Transform3D: + //Here we combine these two into a GeoTrf::Transform3D: + + GeoTrf::Transform3D absStrawXForm = GeoTrf::Translate3D(Align1Global.x(),Align1Global.y(),Align1Global.z()) + *GeoTrf::RotateZ3D( zrotang ) + *GeoTrf::Translate3D(-Align1Local.x(),-Align1Local.y(),-Align1Local.z()); - HepGeom::Transform3D absStrawXForm = HepGeom::Translate3D(Align1Global)*HepGeom::RotateZ3D( zrotang )*HepGeom::Translate3D((-Align1Local)); - // ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -884,22 +906,22 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) if (m_doKrypton) pRadKR->add(serialTransformerKR); // Adds one straw from each layer (reformulate..) (should be done via m_data from database) - double oldx=-999*CLHEP::cm, oldz=-999*CLHEP::cm; + double oldx=-999*GeoModelKernelUnits::cm, oldz=-999*GeoModelKernelUnits::cm; unsigned int c=0; size_t iLayer=0; while (c< m_data->barrelNumberOfStrawsInModule[iABC] ) { - HepGeom::Point3D<double> p; + GeoTrf::Vector3D p(0,0,0); if (iABC==0) - p = tx2All(c)*HepGeom::Point3D<double>(0,0,0); + p = tx2All(c)*p; else - p = tx2(c)*HepGeom::Point3D<double>(0,0,0); + p = tx2(c)*p; double x = p.x(); double z = p.z(); //TK: use arrays!! update this... - if (sqrt((x-oldx)*(x-oldx)+ (z-oldz)*(z-oldz))> 5*CLHEP::cm) { + if (sqrt((x-oldx)*(x-oldx)+ (z-oldz)*(z-oldz))> 5*GeoModelKernelUnits::cm) { iLayer++; bDescriptor.push_back(new InDetDD::TRT_BarrelDescriptor()); bDescriptor.back()->setStrawTransformField(m_detectorManager->barrelTransformField(iABC),c); @@ -937,7 +959,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) // Now create m_data->nBarrelModulesUsed unique modules within each layer. pBarrelVol->add(new GeoSerialIdentifier(0)); for (size_t iMod = 0; iMod<m_data->nBarrelModulesUsed;iMod++) { - double delta = iMod*360*CLHEP::deg/m_data->nBarrelModules; + double delta = iMod*360*GeoModelKernelUnits::deg/m_data->nBarrelModules; @@ -945,8 +967,8 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) GeoFullPhysVol * pShell = new GeoFullPhysVol(lShell); // This is where the shell is pushed out to its place - //GeoTransform * xfx1 = new GeoTransform(HepGeom::RotateZ3D(delta)*shellPosition); - GeoAlignableTransform * xfx1 = new GeoAlignableTransform(HepGeom::RotateZ3D(delta)*shellPosition); + //GeoTransform * xfx1 = new GeoTransform(GeoTrf::RotateZ3D(delta)*shellPosition); + GeoAlignableTransform * xfx1 = new GeoAlignableTransform(GeoTrf::RotateZ3D(delta)*shellPosition); pBarrelVol->add(xfx1); pBarrelVol->add(pShell); @@ -1194,7 +1216,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) GeoLogVol* lWheelA = new GeoLogVol("WheelA", sWheelA, m_materialManager->getMaterial("trt::CO2")); // This is the straw pitch. - double deltaPhiForStrawsA = 360.*CLHEP::deg/m_data->endcapNumberOfStrawsInStrawLayer_AWheels; + double deltaPhiForStrawsA = 360.*GeoModelKernelUnits::deg/m_data->endcapNumberOfStrawsInStrawLayer_AWheels; // In reality the positive and negative endcaps are built identical, both in @@ -1257,7 +1279,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) if (iiPlane % 4 == 0) { // Register alignable node int barrel_ec = (iiSide) ? -2 : +2; - xfAlignableModule = new GeoAlignableTransform(HepGeom::Transform3D()); + xfAlignableModule = new GeoAlignableTransform(GeoTrf::Transform3D::Identity()); Identifier idSubModule = idHelper->layer_id(barrel_ec, 0, iiWheel, iiPlane); // We pass the parent volume as the local delta for this correction is the same as a local delta // on the transformation of the wheel. @@ -1305,7 +1327,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) } - xfPlane = new GeoTransform(HepGeom::TranslateZ3D(m_data->endCapLayerZPositionA[iiPlane] - m_data->endCapLengthOfWheelsA/2)*HepGeom::RotateZ3D(phiPlane)); + xfPlane = new GeoTransform(GeoTrf::TranslateZ3D(m_data->endCapLayerZPositionA[iiPlane] - m_data->endCapLengthOfWheelsA/2)*GeoTrf::RotateZ3D(phiPlane)); if (xfAlignableModule) pWheelA->add(xfAlignableModule); pWheelA->add(xfPlane); @@ -1330,12 +1352,12 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) // it then gets rotated 180 around y axis // phi -> pi - phi if (iiSide) { - startPhi = CLHEP::pi - (startPhi + pDescriptor->strawPitch() * (pDescriptor->nStraws() - 1)); + startPhi = GeoModelKernelUnits::pi - (startPhi + pDescriptor->strawPitch() * (pDescriptor->nStraws() - 1)); } // Make sure its between -pi and pi. - if (startPhi <= -CLHEP::pi) startPhi += 2*CLHEP::pi; - if (startPhi > CLHEP::pi) startPhi -= 2*CLHEP::pi; + if (startPhi <= -GeoModelKernelUnits::pi) startPhi += 2*GeoModelKernelUnits::pi; + if (startPhi > GeoModelKernelUnits::pi) startPhi -= 2*GeoModelKernelUnits::pi; pDescriptor->startPhi() = startPhi; @@ -1371,7 +1393,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) { if (counter % 4 == 1) { - xfRadiator = new GeoTransform(HepGeom::TranslateZ3D(m_data->endCapLayerZPositionA[counter-1] - m_data->endCapLengthOfWheelsA/2 + xfRadiator = new GeoTransform(GeoTrf::TranslateZ3D(m_data->endCapLayerZPositionA[counter-1] - m_data->endCapLengthOfWheelsA/2 - m_data->outerRadiusOfStraw - m_data->endCapThinRadiatorThicknessA/2)); pWheelA->add(xfRadiator); pWheelA->add(pThinRadiatorA); @@ -1379,14 +1401,14 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) if (counter % 4 == 0) { - xfRadiator = new GeoTransform(HepGeom::TranslateZ3D(m_data->endCapLayerZPositionA[counter-1] - m_data->endCapLengthOfWheelsA/2 + xfRadiator = new GeoTransform(GeoTrf::TranslateZ3D(m_data->endCapLayerZPositionA[counter-1] - m_data->endCapLengthOfWheelsA/2 + m_data->outerRadiusOfStraw + m_data->endCapThinRadiatorThicknessA/2)); pWheelA->add(xfRadiator); pWheelA->add(pThinRadiatorA); continue; } - xfRadiator = new GeoTransform(HepGeom::TranslateZ3D(m_data->endCapLayerZPositionA[counter-1] - m_data->endCapLengthOfWheelsA/2 + xfRadiator = new GeoTransform(GeoTrf::TranslateZ3D(m_data->endCapLayerZPositionA[counter-1] - m_data->endCapLengthOfWheelsA/2 + m_data->outerRadiusOfStraw + m_data->endCapMainRadiatorThicknessA/2)); pWheelA->add(xfRadiator); pWheelA->add(pMainRadiatorA); @@ -1396,7 +1418,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) pWheelA->add(pOuterSupportA); // Place wheel in the Endcap Volume - GeoAlignableTransform * xfWheel = new GeoAlignableTransform( HepGeom::TranslateZ3D(WheelPlacerA) ); + GeoAlignableTransform * xfWheel = new GeoAlignableTransform( GeoTrf::TranslateZ3D(WheelPlacerA) ); pCommonEndcapAB[iiSide]->add(xfWheel); pCommonEndcapAB[iiSide]->add(new GeoIdentifierTag(iiWheel)); @@ -1441,10 +1463,10 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) if(iiWheel<=firstIndexOfB-1) { - xfFaradayFoilFront = new GeoTransform(HepGeom::TranslateZ3D(WheelPlacerA + xfFaradayFoilFront = new GeoTransform(GeoTrf::TranslateZ3D(WheelPlacerA - m_data->endCapLengthOfWheelsA/2 - m_data->endCapFaradayFoilThickness/2.0)); - xfFaradayFoilBack = new GeoTransform(HepGeom::TranslateZ3D(WheelPlacerA + xfFaradayFoilBack = new GeoTransform(GeoTrf::TranslateZ3D(WheelPlacerA + m_data->endCapLengthOfWheelsA/2 + m_data->endCapFaradayFoilThickness/2.0)); pCommonEndcapAB[iiSide]->add(xfFaradayFoilFront); @@ -1457,18 +1479,18 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) // Ditto for Inner/OuterSupportGapper if(iiWheel<firstIndexOfB-1) { - xfHeatExchanger = new GeoTransform(HepGeom::TranslateZ3D( WheelPlacerA + xfHeatExchanger = new GeoTransform(GeoTrf::TranslateZ3D( WheelPlacerA + m_data->endCapLengthOfWheelsA/2 + m_data->endCapFaradayFoilThickness + m_data->endCapHeatExchangerThicknessA/2)); pCommonEndcapAB[iiSide]->add(xfHeatExchanger); pCommonEndcapAB[iiSide]->add(pHeatExchangerA); - xfInnerSupportGapperA = new GeoTransform(HepGeom::TranslateZ3D( WheelPlacerA + xfInnerSupportGapperA = new GeoTransform(GeoTrf::TranslateZ3D( WheelPlacerA + m_data->endCapLengthOfWheelsA/2 + m_data->endCapFaradayFoilThickness + m_data->endCapHeatExchangerThicknessA/2)); - xfOuterSupportGapperA = new GeoTransform(HepGeom::TranslateZ3D( WheelPlacerA + xfOuterSupportGapperA = new GeoTransform(GeoTrf::TranslateZ3D( WheelPlacerA + m_data->endCapLengthOfWheelsA/2 + m_data->endCapFaradayFoilThickness + m_data->endCapHeatExchangerThicknessA/2)); @@ -1545,7 +1567,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) GeoLogVol* lWheelB = new GeoLogVol("WheelB", sWheelB, m_materialManager->getMaterial("trt::CO2")); // This is the straw pitch. - double deltaPhiForStrawsB = 360.*CLHEP::deg/m_data->endcapNumberOfStrawsInStrawLayer_BWheels; + double deltaPhiForStrawsB = 360.*GeoModelKernelUnits::deg/m_data->endcapNumberOfStrawsInStrawLayer_BWheels; for(iiSide=0; iiSide<nSides; iiSide++) { @@ -1573,7 +1595,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) if (iiPlane % 4 == 0) { // Register alignable node int barrel_ec = (iiSide) ? -2 : +2; - xfAlignableModule = new GeoAlignableTransform(HepGeom::Transform3D()); + xfAlignableModule = new GeoAlignableTransform(GeoTrf::Transform3D::Identity()); Identifier idSubModule = idHelper->layer_id(barrel_ec, 0, iiWheel, iiPlane); // We pass the parent volume as the local delta for this correction is the same as a local delta // on the transformation of the wheel. @@ -1622,8 +1644,8 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) phiPlane += deltaPhiForStrawsB; } - xfPlane = new GeoTransform(HepGeom::TranslateZ3D(m_data->endCapLayerZPositionB[iiPlane] - - m_data->endCapLengthOfWheelsB/2)*HepGeom::RotateZ3D(phiPlane)); + xfPlane = new GeoTransform(GeoTrf::TranslateZ3D(m_data->endCapLayerZPositionB[iiPlane] + - m_data->endCapLengthOfWheelsB/2)*GeoTrf::RotateZ3D(phiPlane)); if (xfAlignableModule) pWheelB->add(xfAlignableModule); pWheelB->add(xfPlane); @@ -1656,7 +1678,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) // Main radiators if (counter % 4 != 0) { - xfRadiator = new GeoTransform(HepGeom::TranslateZ3D(m_data->endCapLayerZPositionB[counter-1] - m_data->endCapLengthOfWheelsB/2 + xfRadiator = new GeoTransform(GeoTrf::TranslateZ3D(m_data->endCapLayerZPositionB[counter-1] - m_data->endCapLengthOfWheelsB/2 + m_data->outerRadiusOfStraw + m_data->endCapMainRadiatorThicknessB/2)); pWheelB->add(xfRadiator); pWheelB->add(pMainRadiatorB); @@ -1666,7 +1688,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) if (counter == 1 || counter == 8) { sign = counter == 1? -1 : 1; - xfRadiator = new GeoTransform(HepGeom::TranslateZ3D(m_data->endCapLayerZPositionB[counter-1] - m_data->endCapLengthOfWheelsB/2 + sign*(m_data->outerRadiusOfStraw + m_data->endCapThinRadiatorThicknessB/2))); + xfRadiator = new GeoTransform(GeoTrf::TranslateZ3D(m_data->endCapLayerZPositionB[counter-1] - m_data->endCapLengthOfWheelsB/2 + sign*(m_data->outerRadiusOfStraw + m_data->endCapThinRadiatorThicknessB/2))); pWheelB->add(xfRadiator); pWheelB->add(pThinRadiatorB); } @@ -1675,7 +1697,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) if (counter == 4 || counter == 5) { sign = counter == 4 ? 1 : -1; - xfRadiator = new GeoTransform(HepGeom::TranslateZ3D(m_data->endCapLayerZPositionB[counter-1] - m_data->endCapLengthOfWheelsB/2 + sign*(m_data->outerRadiusOfStraw + m_data->endCapMiddleRadiatorThicknessB/2))); + xfRadiator = new GeoTransform(GeoTrf::TranslateZ3D(m_data->endCapLayerZPositionB[counter-1] - m_data->endCapLengthOfWheelsB/2 + sign*(m_data->outerRadiusOfStraw + m_data->endCapMiddleRadiatorThicknessB/2))); pWheelB->add(xfRadiator); pWheelB->add(pMiddleRadiatorB); } @@ -1686,7 +1708,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) pWheelB->add(pOuterSupportB); // Place wheel in the Endcap Volume - GeoAlignableTransform * xfWheel = new GeoAlignableTransform(HepGeom::TranslateZ3D( WheelPlacerB )); + GeoAlignableTransform * xfWheel = new GeoAlignableTransform(GeoTrf::TranslateZ3D( WheelPlacerB )); pCommonEndcapAB[iiSide]->add(xfWheel); @@ -1736,10 +1758,10 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) // Place kapton foils on a wheel just like a sandwitch if(iiWheel-firstIndexOfB<firstIndexOfC-firstIndexOfB) { - xfFaradayFoilFront = new GeoTransform(HepGeom::TranslateZ3D(WheelPlacerB + xfFaradayFoilFront = new GeoTransform(GeoTrf::TranslateZ3D(WheelPlacerB - m_data->endCapLengthOfWheelsB/2 - m_data->endCapFaradayFoilThickness/2.0)); - xfFaradayFoilBack = new GeoTransform(HepGeom::TranslateZ3D(WheelPlacerB + xfFaradayFoilBack = new GeoTransform(GeoTrf::TranslateZ3D(WheelPlacerB + m_data->endCapLengthOfWheelsB/2 + m_data->endCapFaradayFoilThickness/2.0)); @@ -1753,19 +1775,19 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) // Ditto for Inner/OuterSupportGapper if(iiWheel-firstIndexOfB<firstIndexOfC-firstIndexOfB-1) { - xfHeatExchanger = new GeoTransform(HepGeom::TranslateZ3D( WheelPlacerB + xfHeatExchanger = new GeoTransform(GeoTrf::TranslateZ3D( WheelPlacerB + m_data->endCapLengthOfWheelsB/2 + m_data->endCapFaradayFoilThickness + m_data->endCapHeatExchangerThicknessB/2)); pCommonEndcapAB[iiSide]->add(xfHeatExchanger); pCommonEndcapAB[iiSide]->add(pHeatExchangerB); - xfInnerSupportGapperB = new GeoTransform(HepGeom::TranslateZ3D(WheelPlacerB + xfInnerSupportGapperB = new GeoTransform(GeoTrf::TranslateZ3D(WheelPlacerB + m_data->endCapLengthOfWheelsB/2 + m_data->endCapFaradayFoilThickness + m_data->endCapHeatExchangerThicknessB/2)); - xfOuterSupportGapperB = new GeoTransform(HepGeom::TranslateZ3D(WheelPlacerB + xfOuterSupportGapperB = new GeoTransform(GeoTrf::TranslateZ3D(WheelPlacerB + m_data->endCapLengthOfWheelsB/2 + m_data->endCapFaradayFoilThickness + m_data->endCapHeatExchangerThicknessB/2)); @@ -1801,10 +1823,10 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) GeoLogVol* lMbrane = new GeoLogVol("Membrane", sMbrane, m_materialManager->getMaterial("trt::EndCapMbrane")); GeoPhysVol* pMbrane = new GeoPhysVol(lMbrane); - GeoTransform *xfMbraneWheelA1 = new GeoTransform(HepGeom::TranslateZ3D(m_data->endCapZMinOfMbraneWheelA1 + m_data->endCapThicknessOfMbrane/2.0)); - GeoTransform *xfMbraneWheelA2 = new GeoTransform(HepGeom::TranslateZ3D(m_data->endCapZMinOfMbraneWheelA2 + m_data->endCapThicknessOfMbrane/2.0)); - GeoTransform *xfMbraneWheelB1 = new GeoTransform(HepGeom::TranslateZ3D(m_data->endCapZMinOfMbraneWheelB1 + m_data->endCapThicknessOfMbrane/2.0)); - GeoTransform *xfMbraneWheelB2 = new GeoTransform(HepGeom::TranslateZ3D(m_data->endCapZMinOfMbraneWheelB2 + m_data->endCapThicknessOfMbrane/2.0)); + GeoTransform *xfMbraneWheelA1 = new GeoTransform(GeoTrf::TranslateZ3D(m_data->endCapZMinOfMbraneWheelA1 + m_data->endCapThicknessOfMbrane/2.0)); + GeoTransform *xfMbraneWheelA2 = new GeoTransform(GeoTrf::TranslateZ3D(m_data->endCapZMinOfMbraneWheelA2 + m_data->endCapThicknessOfMbrane/2.0)); + GeoTransform *xfMbraneWheelB1 = new GeoTransform(GeoTrf::TranslateZ3D(m_data->endCapZMinOfMbraneWheelB1 + m_data->endCapThicknessOfMbrane/2.0)); + GeoTransform *xfMbraneWheelB2 = new GeoTransform(GeoTrf::TranslateZ3D(m_data->endCapZMinOfMbraneWheelB2 + m_data->endCapThicknessOfMbrane/2.0)); for(iiSide=0; iiSide<nSides; iiSide++) { pCommonEndcapAB[iiSide]->add(xfMbraneWheelA1); @@ -1856,7 +1878,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) GeoLogVol* lWheelC = new GeoLogVol("WheelC", sWheelC, m_materialManager->getMaterial("trt::CO2")); // This is the straw pitch. - double deltaPhiForStrawsC = 360.*CLHEP::deg/m_data->endcapNumberOfStrawsInStrawLayer_CWheels; + double deltaPhiForStrawsC = 360.*GeoModelKernelUnits::deg/m_data->endcapNumberOfStrawsInStrawLayer_CWheels; for(iiSide=0; iiSide<nSides; iiSide++) { // Wheel C @@ -1879,8 +1901,8 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) childPlane = pStrawPlaneC->clone(); - xfPlane = new GeoTransform(HepGeom::TranslateZ3D(m_data->endCapLayerZPositionC[iiPlane] - - m_data->endCapLengthOfWheelsC/2)*HepGeom::RotateZ3D(phiPlane)); + xfPlane = new GeoTransform(GeoTrf::TranslateZ3D(m_data->endCapLayerZPositionC[iiPlane] + - m_data->endCapLengthOfWheelsC/2)*GeoTrf::RotateZ3D(phiPlane)); pWheelC->add(xfPlane); pWheelC->add(new GeoIdentifierTag(iiPlane)); pWheelC->add(childPlane); @@ -1901,12 +1923,12 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) // For negative endcap the startPhi is the last straw in the physical sector, it then gets // rotated 180 around y axis (phi -> pi - phi) if (iiSide) { - startPhi = CLHEP::pi - (startPhi + pDescriptor->strawPitch() * (pDescriptor->nStraws() - 1)); + startPhi = GeoModelKernelUnits::pi - (startPhi + pDescriptor->strawPitch() * (pDescriptor->nStraws() - 1)); } // Make sure its between -pi and pi. - if (startPhi <= -CLHEP::pi) startPhi += 2*CLHEP::pi; - if (startPhi > CLHEP::pi) startPhi -= 2*CLHEP::pi; + if (startPhi <= -GeoModelKernelUnits::pi) startPhi += 2*GeoModelKernelUnits::pi; + if (startPhi > GeoModelKernelUnits::pi) startPhi -= 2*GeoModelKernelUnits::pi; pDescriptor->startPhi() = startPhi; @@ -1945,7 +1967,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) { if (counter % 4 == 1) { - xfRadiator = new GeoTransform(HepGeom::TranslateZ3D(m_data->endCapLayerZPositionC[counter-1] - m_data->endCapLengthOfWheelsC/2 + xfRadiator = new GeoTransform(GeoTrf::TranslateZ3D(m_data->endCapLayerZPositionC[counter-1] - m_data->endCapLengthOfWheelsC/2 - m_data->lengthOfDeadRegion - m_data->endCapThinRadiatorThicknessC/2)); pWheelC->add(xfRadiator); pWheelC->add(pThinRadiatorC); @@ -1953,14 +1975,14 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) if (counter % 4 == 0) { - xfRadiator = new GeoTransform(HepGeom::TranslateZ3D(m_data->endCapLayerZPositionC[counter-1] - m_data->endCapLengthOfWheelsC/2 + xfRadiator = new GeoTransform(GeoTrf::TranslateZ3D(m_data->endCapLayerZPositionC[counter-1] - m_data->endCapLengthOfWheelsC/2 + m_data->outerRadiusOfStraw + m_data->endCapThinRadiatorThicknessC/2)); pWheelC->add(xfRadiator); pWheelC->add(pThinRadiatorC); continue; } - xfRadiator = new GeoTransform(HepGeom::TranslateZ3D(m_data->endCapLayerZPositionC[counter-1] - m_data->endCapLengthOfWheelsC/2 + xfRadiator = new GeoTransform(GeoTrf::TranslateZ3D(m_data->endCapLayerZPositionC[counter-1] - m_data->endCapLengthOfWheelsC/2 + m_data->outerRadiusOfStraw + m_data->endCapMainRadiatorThicknessC/2)); pWheelC->add(xfRadiator); pWheelC->add(pMainRadiatorC); @@ -1972,7 +1994,7 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) // Place wheel in the Endcap Volume GeoAlignableTransform * xfWheel - = new GeoAlignableTransform(HepGeom::TranslateZ3D(m_data->endCapPositionOfFirstWheelC + = new GeoAlignableTransform(GeoTrf::TranslateZ3D(m_data->endCapPositionOfFirstWheelC + (iiWheel - firstIndexOfC)*m_data->endCapDistanceBetweenWheelCentersC)); pCommonEndcapC[iiSide]->add(xfWheel); @@ -2028,8 +2050,8 @@ void TRTDetectorFactory_Full::create(GeoPhysVol *world) /////////////////////////////////// makeModule /////////////////////////////////// // -const GeoShape * TRTDetectorFactory_Full::makeModule ( double length, CLHEP::Hep2Vector corner1, CLHEP::Hep2Vector corner2, - CLHEP::Hep2Vector corner3, CLHEP::Hep2Vector corner4, HepGeom::Transform3D & modulePosition, double shrinkDist/*=0*/) const { +const GeoShape * TRTDetectorFactory_Full::makeModule ( double length, GeoTrf::Vector2D corner1, GeoTrf::Vector2D corner2, + GeoTrf::Vector2D corner3, GeoTrf::Vector2D corner4, GeoTrf::Transform3D & modulePosition, double shrinkDist/*=0*/) const { // This method takes the absolute coordinates of the four corners, @@ -2046,25 +2068,25 @@ const GeoShape * TRTDetectorFactory_Full::makeModule ( double length, CLHEP::Hep // First we calculate the relative vectors of the edges: - CLHEP::Hep2Vector delta12 = corner1 - corner2; CLHEP::Hep2Vector delta23 = corner2 - corner3; - CLHEP::Hep2Vector delta34 = corner3 - corner4; CLHEP::Hep2Vector delta14 = corner1 - corner4; + GeoTrf::Vector2D delta12 = corner1 - corner2; GeoTrf::Vector2D delta23 = corner2 - corner3; + GeoTrf::Vector2D delta34 = corner3 - corner4; GeoTrf::Vector2D delta14 = corner1 - corner4; // We also need the diagonals. - CLHEP::Hep2Vector delta24 = corner2 - corner4; - CLHEP::Hep2Vector delta13 = corner1 - corner3; + GeoTrf::Vector2D delta24 = corner2 - corner4; + GeoTrf::Vector2D delta13 = corner1 - corner3; // Then we find out which way the module bends (NB: .angle returns the UNSIGNED angle!). - double openingAngleOfFirstCorner= delta12.angle(delta14); - int sign = ( openingAngleOfFirstCorner < 90*CLHEP::deg ? 1 : -1); + double openingAngleOfFirstCorner= angle(delta12,delta14); + int sign = ( openingAngleOfFirstCorner < 90*GeoModelKernelUnits::deg ? 1 : -1); // If our approximation with triangles were correct, three of the // lengths (of edges and diagonals) would be equal. We force this // instead. // // (Whether the involved diagonal is 2-4 or 1-3 depends on the sign). - double commonSide = (delta14.mag() + delta23.mag() + (sign==1?delta24.mag():delta13.mag()) ) / 3.; - double base1 = delta12.mag(); // Inner base - double base2 = delta34.mag(); // Outer base + double commonSide = (magn(delta14) + magn(delta23) + (sign==1?magn(delta24):magn(delta13)) ) / 3.; + double base1 = magn(delta12); // Inner base + double base2 = magn(delta34); // Outer base if (shrinkDist!=0) { // Since the moving corners bit above doesnt work, we do this instead: @@ -2077,13 +2099,13 @@ const GeoShape * TRTDetectorFactory_Full::makeModule ( double length, CLHEP::Hep double height1 = sqrt (commonSide*commonSide-0.25*base1*base1); double height2 = sqrt (commonSide*commonSide-0.25*base2*base2); double rot = atan(base2/height2/2)-atan(base1/height1/2); - double epsilon = 1*CLHEP::micrometer; // needed to ensure perfect overlaps. + double epsilon = 1*GeoModelKernelUnits::micrometer; // needed to ensure perfect overlaps. GeoTrd *trd1 = new GeoTrd(base1/2+epsilon, epsilon, length/2, length/2, height1/2); GeoTrd *trd2 = new GeoTrd(epsilon, base2/2+epsilon, length/2, length/2, height2/2); double gamma = atan((base2/2+epsilon)*2/height2); double r = sqrt((base2/2+epsilon)*(base2/2+epsilon) + height2*height2/4); - HepGeom::Transform3D xForm=HepGeom::Translate3D(r*sin(sign*(gamma-rot)),0,height1/2-r*cos(gamma-rot))*HepGeom::RotateY3D(sign*rot); + GeoTrf::Transform3D xForm=GeoTrf::Translate3D(r*sin(sign*(gamma-rot)),0,height1/2-r*cos(gamma-rot))*GeoTrf::RotateY3D(sign*rot); const GeoShape & sShell = (*trd1).add((*trd2)<<xForm); // We now have the shape we want. We only have left to transform @@ -2091,52 +2113,52 @@ const GeoShape * TRTDetectorFactory_Full::makeModule ( double length, CLHEP::Hep // // First, the actual positions of the four corners of // the constructed shape. - CLHEP::Hep2Vector actualCorner1, actualCorner2, actualCorner3, actualCorner4; + GeoTrf::Vector2D actualCorner1, actualCorner2, actualCorner3, actualCorner4; actualCorner1 = corner1; - actualCorner2 = corner1 + CLHEP::Hep2Vector(0,base1); + actualCorner2 = corner1 + GeoTrf::Vector2D(0,base1); if (sign==1) { - actualCorner4 = corner1 + CLHEP::Hep2Vector(height1,base1/2); - actualCorner3 = actualCorner4 + CLHEP::Hep2Vector(-base2*sin(rot),base2*cos(rot)); + actualCorner4 = corner1 + GeoTrf::Vector2D(height1,base1/2); + actualCorner3 = actualCorner4 + GeoTrf::Vector2D(-base2*sin(rot),base2*cos(rot)); } else { - actualCorner3 = corner1 + CLHEP::Hep2Vector(height1,base1/2); - actualCorner4 = actualCorner3 + CLHEP::Hep2Vector(-base2*sin(rot),-base2*cos(rot)); + actualCorner3 = corner1 + GeoTrf::Vector2D(height1,base1/2); + actualCorner4 = actualCorner3 + GeoTrf::Vector2D(-base2*sin(rot),-base2*cos(rot)); } // The center of our shape is at - CLHEP::Hep2Vector center= corner1 + CLHEP::Hep2Vector(height1/2,base1/2); + GeoTrf::Vector2D center= corner1 + GeoTrf::Vector2D(height1/2,base1/2); // Let us turn the whole module - double modRot = (-delta12).phi()-CLHEP::Hep2Vector(0,1).phi(); + double modRot = (-delta12).phi()-GeoTrf::Vector2D(0,1).phi(); - // std::cout << "TK: modRot : "<< modRot/CLHEP::degree<<" degrees"<<std::endl; - actualCorner1.rotate(modRot); - actualCorner2.rotate(modRot); - actualCorner3.rotate(modRot); - actualCorner4.rotate(modRot); - center.rotate(modRot); + // std::cout << "TK: modRot : "<< modRot/GeoModelKernelUnits::degree<<" degrees"<<std::endl; + rotate(modRot,actualCorner1); + rotate(modRot,actualCorner2); + rotate(modRot,actualCorner3); + rotate(modRot,actualCorner4); + rotate(modRot,center); // Finally, the shape is moved where it fits best with the original corner coordinates. - CLHEP::Hep2Vector displacement = 0.25*( (corner1+corner2+corner3+corner4) - (actualCorner1+actualCorner2+actualCorner3+actualCorner4) ); - // .. << ::DEBUG << std::cout << "TK: makeModule : moving a total of (micrometer) " << displacement.mag()/CLHEP::micrometer<< std::endl; - // std::cout << "TK: makeModule : moving due to 1 (micrometer) " << 0.25*(corner1-actualCorner1).mag()/CLHEP::micrometer<< std::endl; - // std::cout << "TK: makeModule : moving due to 2 (micrometer) " << 0.25*(corner2-actualCorner2).mag()/CLHEP::micrometer<< std::endl; - // std::cout << "TK: makeModule : moving due to 3 (micrometer) " << 0.25*(corner3-actualCorner3).mag()/CLHEP::micrometer<< std::endl; - // std::cout << "TK: makeModule : moving due to 4 (micrometer) " << 0.25*(corner4-actualCorner4).mag()/CLHEP::micrometer<< std::endl; + GeoTrf::Vector2D displacement = 0.25*( (corner1+corner2+corner3+corner4) - (actualCorner1+actualCorner2+actualCorner3+actualCorner4) ); + // .. << ::DEBUG << std::cout << "TK: makeModule : moving a total of (micrometer) " << displacement.mag()/GeoModelKernelUnits::micrometer<< std::endl; + // std::cout << "TK: makeModule : moving due to 1 (micrometer) " << 0.25*(corner1-actualCorner1).mag()/GeoModelKernelUnits::micrometer<< std::endl; + // std::cout << "TK: makeModule : moving due to 2 (micrometer) " << 0.25*(corner2-actualCorner2).mag()/GeoModelKernelUnits::micrometer<< std::endl; + // std::cout << "TK: makeModule : moving due to 3 (micrometer) " << 0.25*(corner3-actualCorner3).mag()/GeoModelKernelUnits::micrometer<< std::endl; + // std::cout << "TK: makeModule : moving due to 4 (micrometer) " << 0.25*(corner4-actualCorner4).mag()/GeoModelKernelUnits::micrometer<< std::endl; center += displacement; actualCorner1 += displacement; actualCorner2 += displacement; actualCorner3 += displacement; actualCorner4 += displacement; - CLHEP::Hep2Vector remainingOffset = -0.25*( (corner1+corner2+corner3+corner4) - (actualCorner1+actualCorner2+actualCorner3+actualCorner4) ); - // std::cout << "TK: makeModule : remaining total offset (should be zero) (micrometer) " << remainingOffset.mag()/CLHEP::micrometer<< std::endl; - // std::cout << "TK: makeModule : 1 remaining offset (micrometer) " << (corner1-actualCorner1).mag()/CLHEP::micrometer<< std::endl; - // std::cout << "TK: makeModule : 2 remaining offset (micrometer) " << (corner2-actualCorner2).mag()/CLHEP::micrometer<< std::endl; - // std::cout << "TK: makeModule : 3 remaining offset (micrometer) " << (corner3-actualCorner3).mag()/CLHEP::micrometer<< std::endl; - // std::cout << "TK: makeModule : 4 remaining offset (micrometer) " << (corner4-actualCorner4).mag()/CLHEP::micrometer<< std::endl; + // GeoTrf::Vector2D remainingOffset = -0.25*( (corner1+corner2+corner3+corner4) - (actualCorner1+actualCorner2+actualCorner3+actualCorner4) ); + // std::cout << "TK: makeModule : remaining total offset (should be zero) (micrometer) " << remainingOffset.mag()/GeoModelKernelUnits::micrometer<< std::endl; + // std::cout << "TK: makeModule : 1 remaining offset (micrometer) " << (corner1-actualCorner1).mag()/GeoModelKernelUnits::micrometer<< std::endl; + // std::cout << "TK: makeModule : 2 remaining offset (micrometer) " << (corner2-actualCorner2).mag()/GeoModelKernelUnits::micrometer<< std::endl; + // std::cout << "TK: makeModule : 3 remaining offset (micrometer) " << (corner3-actualCorner3).mag()/GeoModelKernelUnits::micrometer<< std::endl; + // std::cout << "TK: makeModule : 4 remaining offset (micrometer) " << (corner4-actualCorner4).mag()/GeoModelKernelUnits::micrometer<< std::endl; // The final positioning includes a few 90deg rotations because the axis's in the GeoTrd's are different from the actual axis's. - modulePosition = HepGeom::TranslateY3D(center.y())*HepGeom::TranslateX3D(center.x())*HepGeom::RotateZ3D(90.0*CLHEP::deg)*HepGeom::RotateX3D(90.0*CLHEP::deg)*HepGeom::RotateY3D(modRot); + modulePosition = GeoTrf::TranslateY3D(center.y())*GeoTrf::TranslateX3D(center.x())*GeoTrf::RotateZ3D(90.0*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(90.0*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(modRot); return &sShell; } @@ -2212,9 +2234,9 @@ GeoPhysVol * TRTDetectorFactory_Full::makeStraw( double& activeGasZPosition, boo else lGasMA = new GeoLogVol("GasMA", sGasMA, m_materialManager->getMaterial((m_useOldActiveGasMixture ? "trt:XeCO2CF4" : "trt::XeCO2O2"))); GeoNameTag *nGasMAPos = new GeoNameTag("GasMAPos"); - GeoTransform *xGasMAPos = new GeoTransform(HepGeom::RotateY3D(M_PI)*HepGeom::TranslateZ3D(-posA));//the rotation of pi is to... digitization (TK) + GeoTransform *xGasMAPos = new GeoTransform(GeoTrf::RotateY3D(M_PI)*GeoTrf::TranslateZ3D(-posA));//the rotation of pi is to... digitization (TK) GeoNameTag *nGasMANeg = new GeoNameTag("GasMANeg"); - GeoTransform *xGasMANeg = new GeoTransform(HepGeom::TranslateZ3D(-posA)); + GeoTransform *xGasMANeg = new GeoTransform(GeoTrf::TranslateZ3D(-posA)); GeoPhysVol *pGasMA = new GeoPhysVol(lGasMA); // Assemble gas within straws @@ -2229,8 +2251,8 @@ GeoPhysVol * TRTDetectorFactory_Full::makeStraw( double& activeGasZPosition, boo // Outer Dead region for mixed straws, part II: GeoSerialDenominator *nDeadMA = new GeoSerialDenominator("DeadRegionL"); - GeoTransform *xDeadPosMA = new GeoTransform(HepGeom::TranslateZ3D(+(m_data->barrelLengthOfStraw-m_data->lengthOfDeadRegion)/2.0)); - GeoTransform *xDeadNegMA = new GeoTransform(HepGeom::TranslateZ3D(-(m_data->barrelLengthOfStraw-m_data->lengthOfDeadRegion)/2.0)); + GeoTransform *xDeadPosMA = new GeoTransform(GeoTrf::TranslateZ3D(+(m_data->barrelLengthOfStraw-m_data->lengthOfDeadRegion)/2.0)); + GeoTransform *xDeadNegMA = new GeoTransform(GeoTrf::TranslateZ3D(-(m_data->barrelLengthOfStraw-m_data->lengthOfDeadRegion)/2.0)); // Assemble dead regions within straws: pStrawMixed->add(nDeadMA); @@ -2241,8 +2263,8 @@ GeoPhysVol * TRTDetectorFactory_Full::makeStraw( double& activeGasZPosition, boo // InnerDeadRegions, part III: GeoSerialDenominator *nInnerDeadMA = new GeoSerialDenominator("InnerDeadRegionL"); - GeoTransform *xInnerDeadPosMA = new GeoTransform(HepGeom::TranslateZ3D(+posInnerDeadRegion)); - GeoTransform *xInnerDeadNegMA = new GeoTransform(HepGeom::TranslateZ3D(-posInnerDeadRegion)); + GeoTransform *xInnerDeadPosMA = new GeoTransform(GeoTrf::TranslateZ3D(+posInnerDeadRegion)); + GeoTransform *xInnerDeadNegMA = new GeoTransform(GeoTrf::TranslateZ3D(-posInnerDeadRegion)); // add to mixedStraw: pStrawMixed->add(nInnerDeadMA); pStrawMixed->add(xInnerDeadPosMA); @@ -2341,13 +2363,13 @@ GeoFullPhysVol * TRTDetectorFactory_Full::makeStrawPlane(size_t w, ActiveGasMixt // Positioning of straws : double dphi = 2*M_PI/ nstraws; - HepGeom::RotateZ3D Rz(1.0);// Radians! - HepGeom::TranslateX3D Tx(1.0);// MM! TK: actually this doesnt need to be interpreted as mm? Just as a dimensionless 1. (i guess) - HepGeom::TranslateY3D Ty(1.0);// MM! + GeoTrf::RotateZ3D Rz(1.0);// Radians! + GeoTrf::TranslateX3D Tx(1.0);// MM! TK: actually this doesnt need to be interpreted as mm? Just as a dimensionless 1. (i guess) + GeoTrf::TranslateY3D Ty(1.0);// MM! Variable i; Sin sin; Cos cos; - TRANSFUNCTION tx = Pow(Tx,pos*cos(dphi*i))*Pow(Ty,pos*sin(dphi*i))*Pow(Rz,dphi*i)*HepGeom::RotateY3D(-90*CLHEP::deg); + TRANSFUNCTION tx = Pow(Tx,pos*cos(dphi*i))*Pow(Ty,pos*sin(dphi*i))*Pow(Rz,dphi*i)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); GeoSerialTransformer *serialTransformer=new GeoSerialTransformer(pStraw, &tx, nstraws); pStrawPlane->add(new GeoSerialIdentifier(0)); pStrawPlane->add(serialTransformer); @@ -2385,8 +2407,8 @@ GeoFullPhysVol * TRTDetectorFactory_Full::makeStrawPlane(size_t w, ActiveGasMixt lDeadRegion = new GeoLogVol("DeadRegion",sDeadRegion,m_materialManager->getMaterial((m_useOldActiveGasMixture ? "trt::XeCO2CF4" : "trt::XeCO2O2"))); GeoPhysVol *pDeadRegion = new GeoPhysVol(lDeadRegion); - GeoTransform *xDeadPos = new GeoTransform(HepGeom::TranslateZ3D(+(Length/2-ldead/2))); - GeoTransform *xDeadNeg = new GeoTransform(HepGeom::TranslateZ3D(-(Length/2-ldead/2))); + GeoTransform *xDeadPos = new GeoTransform(GeoTrf::TranslateZ3D(+(Length/2-ldead/2))); + GeoTransform *xDeadNeg = new GeoTransform(GeoTrf::TranslateZ3D(-(Length/2-ldead/2))); pStraw->add(xDeadPos); pStraw->add(pDeadRegion); pStraw->add(xDeadNeg); diff --git a/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRTDetectorFactory_Full.h b/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRTDetectorFactory_Full.h index dfc5d5326a405c72c01565e92ff689364fcadb8c..3eca85be3c03256b002af6c4ee077232ad920d2d 100755 --- a/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRTDetectorFactory_Full.h +++ b/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRTDetectorFactory_Full.h @@ -19,14 +19,13 @@ #include "TRT_ConditionsServices/ITRT_StrawStatusSummarySvc.h" //for Argon #include "GaudiKernel/ServiceHandle.h" - -#include "CLHEP/Vector/TwoVector.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include <string> class GeoPhysVol; class GeoFullPhysVol; -//class CLHEP::Hep2Vector; class TRTParameterInterface; class InDetMaterialManager; @@ -84,8 +83,8 @@ class TRTDetectorFactory_Full : public InDetDD::DetectorFactoryBase { ActiveGasMixture DecideGasMixture(int strawStatusHT); // private helper methods: - const GeoShape * makeModule ( double length, CLHEP::Hep2Vector corner1 , CLHEP::Hep2Vector corner2, CLHEP::Hep2Vector corner3, - CLHEP::Hep2Vector corner4, HepGeom::Transform3D & absolutePosition, double shrinkDist=0 ) const; + const GeoShape * makeModule ( double length, GeoTrf::Vector2D corner1 , GeoTrf::Vector2D corner2, GeoTrf::Vector2D corner3, + GeoTrf::Vector2D corner4, GeoTrf::Transform3D & absolutePosition, double shrinkDist=0 ) const; //GeoPhysVol * makeStraw( double& activeGasZPosition, bool hasLargeDeadRegion=false ) const; GeoPhysVol * makeStraw( double& activeGasZPosition, bool hasLargeDeadRegion=false, ActiveGasMixture gasMixture = GM_XENON) const; //GeoFullPhysVol *makeStrawPlane( size_t w ) const; diff --git a/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRTParameterInterface.h b/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRTParameterInterface.h index 1f7d20eb3cb505d51c6a3bcd7ac80d6f9903e327..b5e2e20eea3f73b291df0f546cf3beb3eb2b925d 100755 --- a/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRTParameterInterface.h +++ b/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRTParameterInterface.h @@ -5,7 +5,8 @@ #ifndef TRT_GEOMODEL_TRTPARAMETERINTERFACE_H #define TRT_GEOMODEL_TRTPARAMETERINTERFACE_H -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" #include <string> namespace InDetDD { @@ -30,7 +31,7 @@ public: /////////////////////////////////////////////////////////// // Top Level Placements // /////////////////////////////////////////////////////////// - virtual const HepGeom::Transform3D & partTransform(const std::string & partName) const = 0; + virtual const GeoTrf::Transform3D & partTransform(const std::string & partName) const = 0; virtual bool partPresent(const std::string & partName) const = 0; /////////////////////////////////////////////////////////// diff --git a/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRT_DetDescrDB_ParameterInterface.cxx b/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRT_DetDescrDB_ParameterInterface.cxx index e45c8552f5a7ebc012be0d04f50af2923f69d1ee..1111e90d1eccd97bd41c8f8eff6f8387eeb2e9f2 100755 --- a/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRT_DetDescrDB_ParameterInterface.cxx +++ b/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRT_DetDescrDB_ParameterInterface.cxx @@ -3,7 +3,7 @@ */ #include "TRT_DetDescrDB_ParameterInterface.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include "GeoModelInterfaces/IGeoDbTagSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" #include "RDBAccessSvc/IRDBAccessSvc.h" @@ -140,10 +140,10 @@ void TRT_DetDescrDB_ParameterInterface::SetValues() { IRDBRecordset_ptr RDB_CommonPars = iAccessSvc->getRecordsetPtr("TRTCommonPars",detectorKey,detectorNode); const IRDBRecord* RDBVars_CommonPars = (*RDB_CommonPars)[0]; - lengthOfDeadRegion = RDBVars_CommonPars->getFloat("LENGTHOFDEADREGION")*CLHEP::mm; - outerRadiusOfWire = RDBVars_CommonPars->getFloat("OUTERRADIUSOFWIRE")*CLHEP::mm; - innerRadiusOfStraw = RDBVars_CommonPars->getFloat("INNERRADIUSOFSTRAW")*CLHEP::mm; - outerRadiusOfStraw = RDBVars_CommonPars->getFloat("OUTERRADIUSOFSTRAW")*CLHEP::mm; + lengthOfDeadRegion = RDBVars_CommonPars->getFloat("LENGTHOFDEADREGION")*GeoModelKernelUnits::mm; + outerRadiusOfWire = RDBVars_CommonPars->getFloat("OUTERRADIUSOFWIRE")*GeoModelKernelUnits::mm; + innerRadiusOfStraw = RDBVars_CommonPars->getFloat("INNERRADIUSOFSTRAW")*GeoModelKernelUnits::mm; + outerRadiusOfStraw = RDBVars_CommonPars->getFloat("OUTERRADIUSOFSTRAW")*GeoModelKernelUnits::mm; ///////////////////////////////////////////////////////////////////////////////////////// // Variables related to the Barrel part // @@ -161,15 +161,15 @@ void TRT_DetDescrDB_ParameterInterface::SetValues() { if (includeBarServiceAndFlange) { const IRDBRecord* RDBVars_BarrelServices = (*RDB_BarrelServices)[0]; - barFlangeZMin = RDBVars_BarrelServices->getDouble("BARFLANGEZMIN")*CLHEP::mm; - barFlangeZMax = RDBVars_BarrelServices->getDouble("BARFLANGEZMAX")*CLHEP::mm; - barFlangeRMin = RDBVars_BarrelServices->getDouble("BARFLANGERMIN")*CLHEP::mm; - barFlangeRMax = RDBVars_BarrelServices->getDouble("BARFLANGERMAX")*CLHEP::mm; + barFlangeZMin = RDBVars_BarrelServices->getDouble("BARFLANGEZMIN")*GeoModelKernelUnits::mm; + barFlangeZMax = RDBVars_BarrelServices->getDouble("BARFLANGEZMAX")*GeoModelKernelUnits::mm; + barFlangeRMin = RDBVars_BarrelServices->getDouble("BARFLANGERMIN")*GeoModelKernelUnits::mm; + barFlangeRMax = RDBVars_BarrelServices->getDouble("BARFLANGERMAX")*GeoModelKernelUnits::mm; - barServicesZMin = RDBVars_BarrelServices->getDouble("BARSERVICESZMIN")*CLHEP::mm; - barServicesZMax = RDBVars_BarrelServices->getDouble("BARSERVICESZMAX")*CLHEP::mm; - barServicesRMin = RDBVars_BarrelServices->getDouble("BARSERVICESRMIN")*CLHEP::mm; - barServicesRMax = RDBVars_BarrelServices->getDouble("BARSERVICESRMAX")*CLHEP::mm; + barServicesZMin = RDBVars_BarrelServices->getDouble("BARSERVICESZMIN")*GeoModelKernelUnits::mm; + barServicesZMax = RDBVars_BarrelServices->getDouble("BARSERVICESZMAX")*GeoModelKernelUnits::mm; + barServicesRMin = RDBVars_BarrelServices->getDouble("BARSERVICESRMIN")*GeoModelKernelUnits::mm; + barServicesRMax = RDBVars_BarrelServices->getDouble("BARSERVICESRMAX")*GeoModelKernelUnits::mm; } else if (!includeBarServiceAndFlange) { @@ -185,25 +185,25 @@ void TRT_DetDescrDB_ParameterInterface::SetValues() { } if (!RDBVars_BarrelOverallPars->isFieldNull("BRLVIRTVOLZCLEARANCE")) { - barrelVirtualVolumeZClearance = RDBVars_BarrelOverallPars->getFloat("BRLVIRTVOLZCLEARANCE")*CLHEP::mm; - barrelVirtualVolumeRMinClearance = RDBVars_BarrelOverallPars->getFloat("BRLVIRTVOLRMINCLEAR")*CLHEP::mm; - barrelVirtualVolumeRMaxClearance = RDBVars_BarrelOverallPars->getFloat("BRLVIRTVOLRMAXCLEAR")*CLHEP::mm; + barrelVirtualVolumeZClearance = RDBVars_BarrelOverallPars->getFloat("BRLVIRTVOLZCLEARANCE")*GeoModelKernelUnits::mm; + barrelVirtualVolumeRMinClearance = RDBVars_BarrelOverallPars->getFloat("BRLVIRTVOLRMINCLEAR")*GeoModelKernelUnits::mm; + barrelVirtualVolumeRMaxClearance = RDBVars_BarrelOverallPars->getFloat("BRLVIRTVOLRMAXCLEAR")*GeoModelKernelUnits::mm; } else { - barrelVirtualVolumeZClearance = 0.001*CLHEP::micrometer;//fixme: use epsilon(?). - barrelVirtualVolumeRMinClearance = 0.001*CLHEP::micrometer; - barrelVirtualVolumeRMaxClearance = 0.001*CLHEP::micrometer; + barrelVirtualVolumeZClearance = 0.001*GeoModelKernelUnits::micrometer;//fixme: use epsilon(?). + barrelVirtualVolumeRMinClearance = 0.001*GeoModelKernelUnits::micrometer; + barrelVirtualVolumeRMaxClearance = 0.001*GeoModelKernelUnits::micrometer; } - innerRadiusOfBarrelVolume = RDBVars_BarrelOverallPars->getFloat("INNRADIUSOFBARRELVOL")*CLHEP::mm; - outerRadiusOfBarrelVolume = RDBVars_BarrelOverallPars->getFloat("OUTRADIUSOFBARRELVOL")*CLHEP::mm; - lengthOfBarrelVolume = RDBVars_BarrelOverallPars->getFloat("LENGTHOFBARRELVOLUME")*CLHEP::mm; - barrelOuterRadiusOfCoolingTube = RDBVars_BarrelOverallPars->getFloat("OUTRADIUSOFCOOLTUBE")*CLHEP::mm; - barrelInnerRadiusOfCoolingTube = RDBVars_BarrelOverallPars->getFloat("INNRADIUSOFCOOLTUBE")*CLHEP::mm; - barrelThicknessOfModuleWalls = RDBVars_BarrelOverallPars->getFloat("THICKOFMODULEWALLS")*CLHEP::mm; + innerRadiusOfBarrelVolume = RDBVars_BarrelOverallPars->getFloat("INNRADIUSOFBARRELVOL")*GeoModelKernelUnits::mm; + outerRadiusOfBarrelVolume = RDBVars_BarrelOverallPars->getFloat("OUTRADIUSOFBARRELVOL")*GeoModelKernelUnits::mm; + lengthOfBarrelVolume = RDBVars_BarrelOverallPars->getFloat("LENGTHOFBARRELVOLUME")*GeoModelKernelUnits::mm; + barrelOuterRadiusOfCoolingTube = RDBVars_BarrelOverallPars->getFloat("OUTRADIUSOFCOOLTUBE")*GeoModelKernelUnits::mm; + barrelInnerRadiusOfCoolingTube = RDBVars_BarrelOverallPars->getFloat("INNRADIUSOFCOOLTUBE")*GeoModelKernelUnits::mm; + barrelThicknessOfModuleWalls = RDBVars_BarrelOverallPars->getFloat("THICKOFMODULEWALLS")*GeoModelKernelUnits::mm; barrelNumberOfLayersWithLargeDeadRegion = RDBVars_BarrelOverallPars->getInt("NLAYWTHLRGDEADREGION"); - thicknessOfBarrelInnerSupport = RDBVars_BarrelOverallPars->getFloat("THICKOFBRLINNSUPPORT")*CLHEP::mm; - thicknessOfBarrelOuterSupport = RDBVars_BarrelOverallPars->getFloat("THICKOFBRLOUTSUPPORT")*CLHEP::mm; - barrelOuterRadiusOfStrawHole = RDBVars_BarrelOverallPars->getFloat("OUTRADIUSOFSTRAWHOLE")*CLHEP::mm; + thicknessOfBarrelInnerSupport = RDBVars_BarrelOverallPars->getFloat("THICKOFBRLINNSUPPORT")*GeoModelKernelUnits::mm; + thicknessOfBarrelOuterSupport = RDBVars_BarrelOverallPars->getFloat("THICKOFBRLOUTSUPPORT")*GeoModelKernelUnits::mm; + barrelOuterRadiusOfStrawHole = RDBVars_BarrelOverallPars->getFloat("OUTRADIUSOFSTRAWHOLE")*GeoModelKernelUnits::mm; virtualBarrelVolumeLength = std::max(std::max(barFlangeZMax,barServicesZMax),lengthOfBarrelVolume/2) + barrelVirtualVolumeZClearance; @@ -219,9 +219,9 @@ void TRT_DetDescrDB_ParameterInterface::SetValues() { nBarrelModulesUsed = nBarrelModules; //Hardwired to be all modules. Silly variable anyway. nBarrelPhi = RDBVars_BarrelOverallPars->getInt("NBARRELPHI"); - barrelLengthOfStraw = RDBVars_BarrelOverallPars->getFloat("LENGTHOFSTRAW")*CLHEP::mm; - barrelLengthOfTwister = RDBVars_BarrelOverallPars->getFloat("LENGTHOFTWISTER")*CLHEP::mm; - barrelLengthOfLargeDeadRegion = RDBVars_BarrelOverallPars->getFloat("LENLARGEDEADREGION")*CLHEP::mm; + barrelLengthOfStraw = RDBVars_BarrelOverallPars->getFloat("LENGTHOFSTRAW")*GeoModelKernelUnits::mm; + barrelLengthOfTwister = RDBVars_BarrelOverallPars->getFloat("LENGTHOFTWISTER")*GeoModelKernelUnits::mm; + barrelLengthOfLargeDeadRegion = RDBVars_BarrelOverallPars->getFloat("LENLARGEDEADREGION")*GeoModelKernelUnits::mm; barrelNumberOfStrawLayersInModule = new unsigned int[nBarrelRings]; for (unsigned int i=0; i<nBarrelRings; i++) { @@ -261,32 +261,32 @@ void TRT_DetDescrDB_ParameterInterface::SetValues() { for (unsigned int iRing = 0; iRing < nBarrelRings; iRing++) { const IRDBRecord* row = (*RDB_BarrelRingDepPars)[iRing]; - barrelXOfFirstGlobalAlignmentStraw[iRing] = row->getFloat("XOFGLOBALALIGNSTRW1")*CLHEP::mm; - barrelYOfFirstGlobalAlignmentStraw[iRing] = row->getFloat("YOFGLOBALALIGNSTRW1")*CLHEP::mm; - barrelXOfSecondGlobalAlignmentStraw[iRing] = row->getFloat("XOFGLOBALALIGNSTRW2")*CLHEP::mm; - barrelYOfSecondGlobalAlignmentStraw[iRing] = row->getFloat("YOFGLOBALALIGNSTRW2")*CLHEP::mm; + barrelXOfFirstGlobalAlignmentStraw[iRing] = row->getFloat("XOFGLOBALALIGNSTRW1")*GeoModelKernelUnits::mm; + barrelYOfFirstGlobalAlignmentStraw[iRing] = row->getFloat("YOFGLOBALALIGNSTRW1")*GeoModelKernelUnits::mm; + barrelXOfSecondGlobalAlignmentStraw[iRing] = row->getFloat("XOFGLOBALALIGNSTRW2")*GeoModelKernelUnits::mm; + barrelYOfSecondGlobalAlignmentStraw[iRing] = row->getFloat("YOFGLOBALALIGNSTRW2")*GeoModelKernelUnits::mm; barrelIndexOfSecondGlobalAlignmentStraw[iRing] = row->getInt("INDEX2NDGLBALGNSTRW"); barrelNumberOfStrawsInModule[iRing] = row->getInt("NSTRAWSINMODULE"); barrelXOfCoolingTube[iRing] = new double[nCoolingTubes]; - barrelXOfCoolingTube[iRing][0] = row->getFloat("XOFCOOLINGTUBE1")*CLHEP::mm; - barrelXOfCoolingTube[iRing][1] = row->getFloat("XOFCOOLINGTUBE2")*CLHEP::mm; + barrelXOfCoolingTube[iRing][0] = row->getFloat("XOFCOOLINGTUBE1")*GeoModelKernelUnits::mm; + barrelXOfCoolingTube[iRing][1] = row->getFloat("XOFCOOLINGTUBE2")*GeoModelKernelUnits::mm; barrelYOfCoolingTube[iRing] = new double[nCoolingTubes]; - barrelYOfCoolingTube[iRing][0] = row->getFloat("YOFCOOLINGTUBE1")*CLHEP::mm; - barrelYOfCoolingTube[iRing][1] = row->getFloat("YOFCOOLINGTUBE2")*CLHEP::mm; + barrelYOfCoolingTube[iRing][0] = row->getFloat("YOFCOOLINGTUBE1")*GeoModelKernelUnits::mm; + barrelYOfCoolingTube[iRing][1] = row->getFloat("YOFCOOLINGTUBE2")*GeoModelKernelUnits::mm; shellCornerXPosition[iRing] = new double[nShellCorners]; - shellCornerXPosition[iRing][0] = row->getFloat("SHELLCORNERXPOS1")*CLHEP::mm; - shellCornerXPosition[iRing][1] = row->getFloat("SHELLCORNERXPOS2")*CLHEP::mm; - shellCornerXPosition[iRing][2] = row->getFloat("SHELLCORNERXPOS3")*CLHEP::mm; - shellCornerXPosition[iRing][3] = row->getFloat("SHELLCORNERXPOS4")*CLHEP::mm; + shellCornerXPosition[iRing][0] = row->getFloat("SHELLCORNERXPOS1")*GeoModelKernelUnits::mm; + shellCornerXPosition[iRing][1] = row->getFloat("SHELLCORNERXPOS2")*GeoModelKernelUnits::mm; + shellCornerXPosition[iRing][2] = row->getFloat("SHELLCORNERXPOS3")*GeoModelKernelUnits::mm; + shellCornerXPosition[iRing][3] = row->getFloat("SHELLCORNERXPOS4")*GeoModelKernelUnits::mm; shellCornerYPosition[iRing] = new double[nShellCorners]; - shellCornerYPosition[iRing][0] = row->getFloat("SHELLCORNERYPOS1")*CLHEP::mm; - shellCornerYPosition[iRing][1] = row->getFloat("SHELLCORNERYPOS2")*CLHEP::mm; - shellCornerYPosition[iRing][2] = row->getFloat("SHELLCORNERYPOS3")*CLHEP::mm; - shellCornerYPosition[iRing][3] = row->getFloat("SHELLCORNERYPOS4")*CLHEP::mm; + shellCornerYPosition[iRing][0] = row->getFloat("SHELLCORNERYPOS1")*GeoModelKernelUnits::mm; + shellCornerYPosition[iRing][1] = row->getFloat("SHELLCORNERYPOS2")*GeoModelKernelUnits::mm; + shellCornerYPosition[iRing][2] = row->getFloat("SHELLCORNERYPOS3")*GeoModelKernelUnits::mm; + shellCornerYPosition[iRing][3] = row->getFloat("SHELLCORNERYPOS4")*GeoModelKernelUnits::mm; }; @@ -296,8 +296,8 @@ void TRT_DetDescrDB_ParameterInterface::SetValues() { strawYPosition[i] = new double[ barrelNumberOfStrawsInModule[i] ]; for (unsigned int j = 0; j < barrelNumberOfStrawsInModule[i]; j++) { const IRDBRecord* row = (*RDB_BarrelStrawCoord)[cumulativeStrawNumber++]; - strawXPosition[i][j]=row->getFloat("STRAWXPOSITION")*CLHEP::mm; - strawYPosition[i][j]=row->getFloat("STRAWYPOSITION")*CLHEP::mm; + strawXPosition[i][j]=row->getFloat("STRAWXPOSITION")*GeoModelKernelUnits::mm; + strawYPosition[i][j]=row->getFloat("STRAWYPOSITION")*GeoModelKernelUnits::mm; }; }; @@ -318,67 +318,67 @@ void TRT_DetDescrDB_ParameterInterface::SetValues() { IRDBRecordset_ptr RDB_ECWheelDepPars = iAccessSvc->getRecordsetPtr("TRTECWheelDepPars",detectorKey,detectorNode); IRDBRecordset_ptr RDB_ECEndCapDepPars = iAccessSvc->getRecordsetPtr("TRTECEndCapDepPars",detectorKey,detectorNode); - innerRadiusOfEndCapVolumeAB = RDBVars_EndCapOverallPars->getFloat("INNERRADIUSOFECVOLAB")*CLHEP::mm; - outerRadiusOfEndCapVolumeAB = RDBVars_EndCapOverallPars->getFloat("OUTERRADIUSOFECVOLAB")*CLHEP::mm; - innerRadiusOfEndCapVolumeC = RDBVars_EndCapOverallPars->getFloat("INNERRADIUSOFECVOLC")*CLHEP::mm; - outerRadiusOfEndCapVolumeC = RDBVars_EndCapOverallPars->getFloat("OUTERRADIUSOFECVOLC")*CLHEP::mm; - lengthOfEndCapVolumeAB = RDBVars_EndCapOverallPars->getFloat("LENGTHOFENDCAPVOLAB")*CLHEP::mm; - positionOfEndCapVolumeAB = RDBVars_EndCapOverallPars->getFloat("POSFORENDCAPVOLAB")*CLHEP::mm; - lengthOfEndCapVolumeC = RDBVars_EndCapOverallPars->getFloat("LENGTHOFENDCAPVOLC")*CLHEP::mm; - positionOfEndCapVolumeC = RDBVars_EndCapOverallPars->getFloat("POSITIONOFENDCAPVOLC")*CLHEP::mm;//rename!!! + innerRadiusOfEndCapVolumeAB = RDBVars_EndCapOverallPars->getFloat("INNERRADIUSOFECVOLAB")*GeoModelKernelUnits::mm; + outerRadiusOfEndCapVolumeAB = RDBVars_EndCapOverallPars->getFloat("OUTERRADIUSOFECVOLAB")*GeoModelKernelUnits::mm; + innerRadiusOfEndCapVolumeC = RDBVars_EndCapOverallPars->getFloat("INNERRADIUSOFECVOLC")*GeoModelKernelUnits::mm; + outerRadiusOfEndCapVolumeC = RDBVars_EndCapOverallPars->getFloat("OUTERRADIUSOFECVOLC")*GeoModelKernelUnits::mm; + lengthOfEndCapVolumeAB = RDBVars_EndCapOverallPars->getFloat("LENGTHOFENDCAPVOLAB")*GeoModelKernelUnits::mm; + positionOfEndCapVolumeAB = RDBVars_EndCapOverallPars->getFloat("POSFORENDCAPVOLAB")*GeoModelKernelUnits::mm; + lengthOfEndCapVolumeC = RDBVars_EndCapOverallPars->getFloat("LENGTHOFENDCAPVOLC")*GeoModelKernelUnits::mm; + positionOfEndCapVolumeC = RDBVars_EndCapOverallPars->getFloat("POSITIONOFENDCAPVOLC")*GeoModelKernelUnits::mm;//rename!!! if ( RDBVars_A_Wheel->getFloat("OUTERRADIUSOFINNERSUP") != RDBVars_B_Wheel->getFloat("OUTERRADIUSOFINNERSUP") ) msg(MSG::WARNING) << "DD Database indicates different outer radii of inner support for A and B wheels." << " The code assumes otherwise. Using value of A wheel for both!" << endmsg; if ( RDBVars_A_Wheel->getFloat("INNERRADIUSOFOUTERSUP") != RDBVars_B_Wheel->getFloat("INNERRADIUSOFOUTERSUP") ) msg(MSG::WARNING) << "DD Database indicates different inner radii of outer support for A and B wheels." << " The code assumes otherwise. Using value of A wheel for both!" << endmsg; - endcapOuterRadiusOfInnerSupport_wheelAB = RDBVars_A_Wheel->getFloat("OUTERRADIUSOFINNERSUP")*CLHEP::mm; - endcapInnerRadiusOfOuterSupport_wheelAB = RDBVars_A_Wheel->getFloat("INNERRADIUSOFOUTERSUP")*CLHEP::mm; - endcapOuterRadiusOfInnerSupport_wheelC = RDBVars_C_Wheel->getFloat("OUTERRADIUSOFINNERSUP")*CLHEP::mm; - endcapInnerRadiusOfOuterSupport_wheelC = RDBVars_C_Wheel->getFloat("INNERRADIUSOFOUTERSUP")*CLHEP::mm; + endcapOuterRadiusOfInnerSupport_wheelAB = RDBVars_A_Wheel->getFloat("OUTERRADIUSOFINNERSUP")*GeoModelKernelUnits::mm; + endcapInnerRadiusOfOuterSupport_wheelAB = RDBVars_A_Wheel->getFloat("INNERRADIUSOFOUTERSUP")*GeoModelKernelUnits::mm; + endcapOuterRadiusOfInnerSupport_wheelC = RDBVars_C_Wheel->getFloat("OUTERRADIUSOFINNERSUP")*GeoModelKernelUnits::mm; + endcapInnerRadiusOfOuterSupport_wheelC = RDBVars_C_Wheel->getFloat("INNERRADIUSOFOUTERSUP")*GeoModelKernelUnits::mm; - endCapShiftForEachRotation = RDBVars_EndCapOverallPars->getFloat("SHIFTFOREACHROTATION")*CLHEP::radian; + endCapShiftForEachRotation = RDBVars_EndCapOverallPars->getFloat("SHIFTFOREACHROTATION")*GeoModelKernelUnits::radian; endCapPhiOfFirstStraw = 0; // Temporary - endCapInnerRadiusOfSupportA = RDBVars_A_Wheel->getFloat("INNERRADIUSOFSUPPORT")*CLHEP::mm; - endCapInnerRadiusOfSupportB = RDBVars_B_Wheel->getFloat("INNERRADIUSOFSUPPORT")*CLHEP::mm; - endCapInnerRadiusOfSupportC = RDBVars_C_Wheel->getFloat("INNERRADIUSOFSUPPORT")*CLHEP::mm; + endCapInnerRadiusOfSupportA = RDBVars_A_Wheel->getFloat("INNERRADIUSOFSUPPORT")*GeoModelKernelUnits::mm; + endCapInnerRadiusOfSupportB = RDBVars_B_Wheel->getFloat("INNERRADIUSOFSUPPORT")*GeoModelKernelUnits::mm; + endCapInnerRadiusOfSupportC = RDBVars_C_Wheel->getFloat("INNERRADIUSOFSUPPORT")*GeoModelKernelUnits::mm; - endCapOuterRadiusOfSupportA = RDBVars_A_Wheel->getFloat("OUTERRADIUSOFSUPPORT")*CLHEP::mm; - endCapOuterRadiusOfSupportB = RDBVars_B_Wheel->getFloat("OUTERRADIUSOFSUPPORT")*CLHEP::mm; - endCapOuterRadiusOfSupportC = RDBVars_C_Wheel->getFloat("OUTERRADIUSOFSUPPORT")*CLHEP::mm; + endCapOuterRadiusOfSupportA = RDBVars_A_Wheel->getFloat("OUTERRADIUSOFSUPPORT")*GeoModelKernelUnits::mm; + endCapOuterRadiusOfSupportB = RDBVars_B_Wheel->getFloat("OUTERRADIUSOFSUPPORT")*GeoModelKernelUnits::mm; + endCapOuterRadiusOfSupportC = RDBVars_C_Wheel->getFloat("OUTERRADIUSOFSUPPORT")*GeoModelKernelUnits::mm; - endCapRadialThicknessOfInnerSupportA = RDBVars_A_Wheel->getFloat("RADIALTHICKOFINNERSUP")*CLHEP::mm; - endCapRadialThicknessOfInnerSupportB = RDBVars_B_Wheel->getFloat("RADIALTHICKOFINNERSUP")*CLHEP::mm; - endCapRadialThicknessOfInnerSupportC = RDBVars_C_Wheel->getFloat("RADIALTHICKOFINNERSUP")*CLHEP::mm; + endCapRadialThicknessOfInnerSupportA = RDBVars_A_Wheel->getFloat("RADIALTHICKOFINNERSUP")*GeoModelKernelUnits::mm; + endCapRadialThicknessOfInnerSupportB = RDBVars_B_Wheel->getFloat("RADIALTHICKOFINNERSUP")*GeoModelKernelUnits::mm; + endCapRadialThicknessOfInnerSupportC = RDBVars_C_Wheel->getFloat("RADIALTHICKOFINNERSUP")*GeoModelKernelUnits::mm; - endCapRadialThicknessOfOuterSupportA = RDBVars_A_Wheel->getFloat("RADIALTHICKOFOUTERSUP")*CLHEP::mm; - endCapRadialThicknessOfOuterSupportB = RDBVars_B_Wheel->getFloat("RADIALTHICKOFOUTERSUP")*CLHEP::mm; - endCapRadialThicknessOfOuterSupportC = RDBVars_C_Wheel->getFloat("RADIALTHICKOFOUTERSUP")*CLHEP::mm; + endCapRadialThicknessOfOuterSupportA = RDBVars_A_Wheel->getFloat("RADIALTHICKOFOUTERSUP")*GeoModelKernelUnits::mm; + endCapRadialThicknessOfOuterSupportB = RDBVars_B_Wheel->getFloat("RADIALTHICKOFOUTERSUP")*GeoModelKernelUnits::mm; + endCapRadialThicknessOfOuterSupportC = RDBVars_C_Wheel->getFloat("RADIALTHICKOFOUTERSUP")*GeoModelKernelUnits::mm; - endCapRadialDistFromRadToOuterSupportA = RDBVars_A_Wheel->getFloat("RADIALDISTRADTOOUTERSUP")*CLHEP::mm; - endCapRadialDistFromRadToOuterSupportB = RDBVars_B_Wheel->getFloat("RADIALDISTRADTOOUTERSUP")*CLHEP::mm; - endCapRadialDistFromRadToOuterSupportC = RDBVars_C_Wheel->getFloat("RADIALDISTRADTOOUTERSUP")*CLHEP::mm; + endCapRadialDistFromRadToOuterSupportA = RDBVars_A_Wheel->getFloat("RADIALDISTRADTOOUTERSUP")*GeoModelKernelUnits::mm; + endCapRadialDistFromRadToOuterSupportB = RDBVars_B_Wheel->getFloat("RADIALDISTRADTOOUTERSUP")*GeoModelKernelUnits::mm; + endCapRadialDistFromRadToOuterSupportC = RDBVars_C_Wheel->getFloat("RADIALDISTRADTOOUTERSUP")*GeoModelKernelUnits::mm; - endCapMainRadiatorThicknessA = RDBVars_A_Wheel->getFloat("MAINRADIATORTHICK")*CLHEP::mm; - endCapMainRadiatorThicknessB = RDBVars_B_Wheel->getFloat("MAINRADIATORTHICK")*CLHEP::mm; - endCapMainRadiatorThicknessC = RDBVars_C_Wheel->getFloat("MAINRADIATORTHICK")*CLHEP::mm; + endCapMainRadiatorThicknessA = RDBVars_A_Wheel->getFloat("MAINRADIATORTHICK")*GeoModelKernelUnits::mm; + endCapMainRadiatorThicknessB = RDBVars_B_Wheel->getFloat("MAINRADIATORTHICK")*GeoModelKernelUnits::mm; + endCapMainRadiatorThicknessC = RDBVars_C_Wheel->getFloat("MAINRADIATORTHICK")*GeoModelKernelUnits::mm; - endCapThinRadiatorThicknessA = RDBVars_A_Wheel->getFloat("THINRADIATORTHICK")*CLHEP::mm; - endCapThinRadiatorThicknessB = RDBVars_B_Wheel->getFloat("THINRADIATORTHICK")*CLHEP::mm; - endCapThinRadiatorThicknessC = RDBVars_C_Wheel->getFloat("THINRADIATORTHICK")*CLHEP::mm; + endCapThinRadiatorThicknessA = RDBVars_A_Wheel->getFloat("THINRADIATORTHICK")*GeoModelKernelUnits::mm; + endCapThinRadiatorThicknessB = RDBVars_B_Wheel->getFloat("THINRADIATORTHICK")*GeoModelKernelUnits::mm; + endCapThinRadiatorThicknessC = RDBVars_C_Wheel->getFloat("THINRADIATORTHICK")*GeoModelKernelUnits::mm; - endCapMiddleRadiatorThicknessB = RDBVars_B_Wheel->getFloat("MIDDLERADIATORTHICK")*CLHEP::mm; - if ( RDBVars_A_Wheel->getFloat("MIDDLERADIATORTHICK")*CLHEP::mm != 0 ) + endCapMiddleRadiatorThicknessB = RDBVars_B_Wheel->getFloat("MIDDLERADIATORTHICK")*GeoModelKernelUnits::mm; + if ( RDBVars_A_Wheel->getFloat("MIDDLERADIATORTHICK")*GeoModelKernelUnits::mm != 0 ) msg(MSG::WARNING) << "DD Database indicates a nonzero middle radiator thickness in the A wheel" << " where middle radiators doesn't exist. Ignoring parameter." << endmsg; - if ( RDBVars_C_Wheel->getFloat("MIDDLERADIATORTHICK")*CLHEP::mm != 0 ) + if ( RDBVars_C_Wheel->getFloat("MIDDLERADIATORTHICK")*GeoModelKernelUnits::mm != 0 ) msg(MSG::WARNING) << "DD Database indicates a nonzero middle radiator thickness in the C wheel" << " where middle radiators doesn't exist. Ignoring parameter." << endmsg; - endCapLengthOfWheelsA = RDBVars_A_Wheel->getFloat("LENGTHOFWHEELS")*CLHEP::mm; - endCapLengthOfWheelsB = RDBVars_B_Wheel->getFloat("LENGTHOFWHEELS")*CLHEP::mm; + endCapLengthOfWheelsA = RDBVars_A_Wheel->getFloat("LENGTHOFWHEELS")*GeoModelKernelUnits::mm; + endCapLengthOfWheelsB = RDBVars_B_Wheel->getFloat("LENGTHOFWHEELS")*GeoModelKernelUnits::mm; - endCapLengthOfWheelsC = RDBVars_C_Wheel->getFloat("LENGTHOFWHEELS")*CLHEP::mm; + endCapLengthOfWheelsC = RDBVars_C_Wheel->getFloat("LENGTHOFWHEELS")*GeoModelKernelUnits::mm; endCapNumberOfStrawLayersPerWheelA = RDBVars_A_Wheel->getInt("NSTRAWLAYERSPERWHEEL"); endCapNumberOfStrawLayersPerWheelB = RDBVars_B_Wheel->getInt("NSTRAWLAYERSPERWHEEL"); @@ -404,43 +404,43 @@ void TRT_DetDescrDB_ParameterInterface::SetValues() { - endCapPositionOfFirstWheelA[0] = RDBECEndCapDepPars_EndCap_A->getDouble("ZPOSOFFIRSTAWHEEL")*CLHEP::mm; - endCapPositionOfFirstWheelA[1] = RDBECEndCapDepPars_EndCap_C->getDouble("ZPOSOFFIRSTAWHEEL")*CLHEP::mm; - endCapPositionOfFirstWheelB[0] = RDBECEndCapDepPars_EndCap_A->getDouble("ZPOSOFFIRSTBWHEEL")*CLHEP::mm; - endCapPositionOfFirstWheelB[1] = RDBECEndCapDepPars_EndCap_C->getDouble("ZPOSOFFIRSTBWHEEL")*CLHEP::mm; + endCapPositionOfFirstWheelA[0] = RDBECEndCapDepPars_EndCap_A->getDouble("ZPOSOFFIRSTAWHEEL")*GeoModelKernelUnits::mm; + endCapPositionOfFirstWheelA[1] = RDBECEndCapDepPars_EndCap_C->getDouble("ZPOSOFFIRSTAWHEEL")*GeoModelKernelUnits::mm; + endCapPositionOfFirstWheelB[0] = RDBECEndCapDepPars_EndCap_A->getDouble("ZPOSOFFIRSTBWHEEL")*GeoModelKernelUnits::mm; + endCapPositionOfFirstWheelB[1] = RDBECEndCapDepPars_EndCap_C->getDouble("ZPOSOFFIRSTBWHEEL")*GeoModelKernelUnits::mm; for (unsigned int iiWheel = 0; iiWheel < endcapNumberOfAWheels; iiWheel++) { const IRDBRecord* row = (*RDB_ECWheelDepPars)[iiWheel]; - endCapDistanceBetweenWheelCentersA[0][iiWheel]=row->getDouble("DISTBETWWHEELCENTECC")*CLHEP::mm; - endCapDistanceBetweenWheelCentersA[1][iiWheel]=row->getDouble("DISTBETWWHEELCENTECA")*CLHEP::mm; + endCapDistanceBetweenWheelCentersA[0][iiWheel]=row->getDouble("DISTBETWWHEELCENTECC")*GeoModelKernelUnits::mm; + endCapDistanceBetweenWheelCentersA[1][iiWheel]=row->getDouble("DISTBETWWHEELCENTECA")*GeoModelKernelUnits::mm; }; for (unsigned int iiWheel = endcapNumberOfAWheels; iiWheel < (endcapNumberOfAWheels+endcapNumberOfBWheels); iiWheel++) { const IRDBRecord* row = (*RDB_ECWheelDepPars)[iiWheel]; - endCapDistanceBetweenWheelCentersB[0][iiWheel]=row->getDouble("DISTBETWWHEELCENTECC")*CLHEP::mm; - endCapDistanceBetweenWheelCentersB[1][iiWheel]=row->getDouble("DISTBETWWHEELCENTECA")*CLHEP::mm; + endCapDistanceBetweenWheelCentersB[0][iiWheel]=row->getDouble("DISTBETWWHEELCENTECC")*GeoModelKernelUnits::mm; + endCapDistanceBetweenWheelCentersB[1][iiWheel]=row->getDouble("DISTBETWWHEELCENTECA")*GeoModelKernelUnits::mm; }; } else { - endCapPositionOfFirstWheelA[0] = RDBVars_A_Wheel->getFloat("POSITIONOFFIRSTWHEEL")*CLHEP::mm; - endCapPositionOfFirstWheelA[1] = RDBVars_A_Wheel->getFloat("POSITIONOFFIRSTWHEEL")*CLHEP::mm; - endCapPositionOfFirstWheelB[0] = RDBVars_B_Wheel->getFloat("POSITIONOFFIRSTWHEEL")*CLHEP::mm; - endCapPositionOfFirstWheelB[1] = RDBVars_B_Wheel->getFloat("POSITIONOFFIRSTWHEEL")*CLHEP::mm; + endCapPositionOfFirstWheelA[0] = RDBVars_A_Wheel->getFloat("POSITIONOFFIRSTWHEEL")*GeoModelKernelUnits::mm; + endCapPositionOfFirstWheelA[1] = RDBVars_A_Wheel->getFloat("POSITIONOFFIRSTWHEEL")*GeoModelKernelUnits::mm; + endCapPositionOfFirstWheelB[0] = RDBVars_B_Wheel->getFloat("POSITIONOFFIRSTWHEEL")*GeoModelKernelUnits::mm; + endCapPositionOfFirstWheelB[1] = RDBVars_B_Wheel->getFloat("POSITIONOFFIRSTWHEEL")*GeoModelKernelUnits::mm; endCapDistanceBetweenWheelCentersA[0][0]=0.; endCapDistanceBetweenWheelCentersA[1][0]=0.; endCapDistanceBetweenWheelCentersB[0][endcapNumberOfAWheels]=0.; endCapDistanceBetweenWheelCentersB[1][endcapNumberOfAWheels]=0.; for (unsigned int iiWheel = 1; iiWheel < endcapNumberOfAWheels; iiWheel++) { - endCapDistanceBetweenWheelCentersA[0][iiWheel]=RDBVars_A_Wheel->getFloat("DISTBETWWHEELCENTERS")*CLHEP::mm; - endCapDistanceBetweenWheelCentersA[1][iiWheel]=RDBVars_A_Wheel->getFloat("DISTBETWWHEELCENTERS")*CLHEP::mm; + endCapDistanceBetweenWheelCentersA[0][iiWheel]=RDBVars_A_Wheel->getFloat("DISTBETWWHEELCENTERS")*GeoModelKernelUnits::mm; + endCapDistanceBetweenWheelCentersA[1][iiWheel]=RDBVars_A_Wheel->getFloat("DISTBETWWHEELCENTERS")*GeoModelKernelUnits::mm; }; for (unsigned int iiWheel = (endcapNumberOfAWheels+1); iiWheel < (endcapNumberOfAWheels+endcapNumberOfBWheels); iiWheel++) { - endCapDistanceBetweenWheelCentersB[0][iiWheel]=RDBVars_B_Wheel->getFloat("DISTBETWWHEELCENTERS")*CLHEP::mm; - endCapDistanceBetweenWheelCentersB[1][iiWheel]=RDBVars_B_Wheel->getFloat("DISTBETWWHEELCENTERS")*CLHEP::mm; + endCapDistanceBetweenWheelCentersB[0][iiWheel]=RDBVars_B_Wheel->getFloat("DISTBETWWHEELCENTERS")*GeoModelKernelUnits::mm; + endCapDistanceBetweenWheelCentersB[1][iiWheel]=RDBVars_B_Wheel->getFloat("DISTBETWWHEELCENTERS")*GeoModelKernelUnits::mm; }; }; - endCapDistanceBetweenWheelCentersC = RDBVars_C_Wheel->getFloat("DISTBETWWHEELCENTERS")*CLHEP::mm; - endCapPositionOfFirstWheelC = RDBVars_C_Wheel->getFloat("POSITIONOFFIRSTWHEEL")*CLHEP::mm; + endCapDistanceBetweenWheelCentersC = RDBVars_C_Wheel->getFloat("DISTBETWWHEELCENTERS")*GeoModelKernelUnits::mm; + endCapPositionOfFirstWheelC = RDBVars_C_Wheel->getFloat("POSITIONOFFIRSTWHEEL")*GeoModelKernelUnits::mm; endCapLayerZPositionA = new double[endCapNumberOfStrawLayersPerWheelA]; @@ -449,15 +449,15 @@ void TRT_DetDescrDB_ParameterInterface::SetValues() { for (unsigned int iiPlane = 0; iiPlane < endCapNumberOfStrawLayersPerWheelA; iiPlane++) { const IRDBRecord* row = (*RDB_EndCapStrwLayZPos)[iiPlane]; - endCapLayerZPositionA[iiPlane] = row->getFloat("LAYERZPOSAWHEELS")*CLHEP::mm; + endCapLayerZPositionA[iiPlane] = row->getFloat("LAYERZPOSAWHEELS")*GeoModelKernelUnits::mm; }; for (unsigned int iiPlane = 0; iiPlane < endCapNumberOfStrawLayersPerWheelB; iiPlane++) { const IRDBRecord* row = (*RDB_EndCapStrwLayZPos)[iiPlane]; - endCapLayerZPositionB[iiPlane] = row->getFloat("LAYERZPOSBWHEELS")*CLHEP::mm; + endCapLayerZPositionB[iiPlane] = row->getFloat("LAYERZPOSBWHEELS")*GeoModelKernelUnits::mm; }; for (unsigned int iiPlane = 0; iiPlane < endCapNumberOfStrawLayersPerWheelC; iiPlane++) { const IRDBRecord* row = (*RDB_EndCapStrwLayZPos)[iiPlane]; - endCapLayerZPositionC[iiPlane] = row->getFloat("LAYERZPOSCWHEELS")*CLHEP::mm; + endCapLayerZPositionC[iiPlane] = row->getFloat("LAYERZPOSCWHEELS")*GeoModelKernelUnits::mm; }; @@ -467,27 +467,27 @@ void TRT_DetDescrDB_ParameterInterface::SetValues() { const IRDBRecord* RDBVars_ECHeatExchAndFoil = (*RDB_ECHeatExchAndFoil)[0]; // Faraday foils kapton - endCapFaradayFoilThickness = RDBVars_ECHeatExchAndFoil->getDouble("ECFARADAYFOILTHICK")*CLHEP::mm; + endCapFaradayFoilThickness = RDBVars_ECHeatExchAndFoil->getDouble("ECFARADAYFOILTHICK")*GeoModelKernelUnits::mm; // Heat Exchanger - endCapRMinOfHeatExchanger = RDBVars_ECHeatExchAndFoil->getDouble("ECHEATEXCHANGERRMIN")*CLHEP::mm; - endCapRMaxOfHeatExchanger = RDBVars_ECHeatExchAndFoil->getDouble("ECHEATEXCHANGERRMAX")*CLHEP::mm; - endCapHeatExchangerThicknessA = RDBVars_ECHeatExchAndFoil->getDouble("ECHEATEXCHTHICKNESSA")*CLHEP::mm; - endCapHeatExchangerThicknessB = RDBVars_ECHeatExchAndFoil->getDouble("ECHEATEXCHTHICKNESSB")*CLHEP::mm; + endCapRMinOfHeatExchanger = RDBVars_ECHeatExchAndFoil->getDouble("ECHEATEXCHANGERRMIN")*GeoModelKernelUnits::mm; + endCapRMaxOfHeatExchanger = RDBVars_ECHeatExchAndFoil->getDouble("ECHEATEXCHANGERRMAX")*GeoModelKernelUnits::mm; + endCapHeatExchangerThicknessA = RDBVars_ECHeatExchAndFoil->getDouble("ECHEATEXCHTHICKNESSA")*GeoModelKernelUnits::mm; + endCapHeatExchangerThicknessB = RDBVars_ECHeatExchAndFoil->getDouble("ECHEATEXCHTHICKNESSB")*GeoModelKernelUnits::mm; // Membranes const IRDBRecord* RDBVars_ECMembranePars = (*RDB_ECMembranePars)[0]; - endCapRMinOfMbrane = RDBVars_ECMembranePars->getDouble("RMINOFENDCAPMBRANE")*CLHEP::mm; - endCapRMaxOfMbrane = RDBVars_ECMembranePars->getDouble("RMAXOFENDCAPMBRANE")*CLHEP::mm; - endCapZMinOfMbraneWheelA1 = RDBVars_ECMembranePars->getDouble("ZMINPOSMBRANEWHEELA1")*CLHEP::mm; - endCapZMaxOfMbraneWheelA1 = RDBVars_ECMembranePars->getDouble("ZMAXPOSMBRANEWHEELA1")*CLHEP::mm; - endCapZMinOfMbraneWheelA2 = RDBVars_ECMembranePars->getDouble("ZMINPOSMBRANEWHEELA2")*CLHEP::mm; - endCapZMaxOfMbraneWheelA2 = RDBVars_ECMembranePars->getDouble("ZMAXPOSMBRANEWHEELA2")*CLHEP::mm; - endCapZMinOfMbraneWheelB1 = RDBVars_ECMembranePars->getDouble("ZMINPOSMBRANEWHEELB1")*CLHEP::mm; - endCapZMaxOfMbraneWheelB1 = RDBVars_ECMembranePars->getDouble("ZMAXPOSMBRANEWHEELB1")*CLHEP::mm; - endCapZMinOfMbraneWheelB2 = RDBVars_ECMembranePars->getDouble("ZMINPOSMBRANEWHEELB2")*CLHEP::mm; - endCapZMaxOfMbraneWheelB2 = RDBVars_ECMembranePars->getDouble("ZMAXPOSMBRANEWHEELB2")*CLHEP::mm; + endCapRMinOfMbrane = RDBVars_ECMembranePars->getDouble("RMINOFENDCAPMBRANE")*GeoModelKernelUnits::mm; + endCapRMaxOfMbrane = RDBVars_ECMembranePars->getDouble("RMAXOFENDCAPMBRANE")*GeoModelKernelUnits::mm; + endCapZMinOfMbraneWheelA1 = RDBVars_ECMembranePars->getDouble("ZMINPOSMBRANEWHEELA1")*GeoModelKernelUnits::mm; + endCapZMaxOfMbraneWheelA1 = RDBVars_ECMembranePars->getDouble("ZMAXPOSMBRANEWHEELA1")*GeoModelKernelUnits::mm; + endCapZMinOfMbraneWheelA2 = RDBVars_ECMembranePars->getDouble("ZMINPOSMBRANEWHEELA2")*GeoModelKernelUnits::mm; + endCapZMaxOfMbraneWheelA2 = RDBVars_ECMembranePars->getDouble("ZMAXPOSMBRANEWHEELA2")*GeoModelKernelUnits::mm; + endCapZMinOfMbraneWheelB1 = RDBVars_ECMembranePars->getDouble("ZMINPOSMBRANEWHEELB1")*GeoModelKernelUnits::mm; + endCapZMaxOfMbraneWheelB1 = RDBVars_ECMembranePars->getDouble("ZMAXPOSMBRANEWHEELB1")*GeoModelKernelUnits::mm; + endCapZMinOfMbraneWheelB2 = RDBVars_ECMembranePars->getDouble("ZMINPOSMBRANEWHEELB2")*GeoModelKernelUnits::mm; + endCapZMaxOfMbraneWheelB2 = RDBVars_ECMembranePars->getDouble("ZMAXPOSMBRANEWHEELB2")*GeoModelKernelUnits::mm; endCapThicknessOfMbrane = endCapZMaxOfMbraneWheelA1 - endCapZMinOfMbraneWheelA1; @@ -499,11 +499,11 @@ TRT_DetDescrDB_ParameterInterface::distortedMatManager() const return m_distortedMatManager; } -const HepGeom::Transform3D & +const GeoTrf::Transform3D & TRT_DetDescrDB_ParameterInterface::partTransform(const std::string & partName) const { if (m_placements) return m_placements->transform(partName); - static HepGeom::Transform3D unitTransform = HepGeom::Transform3D(); + static GeoTrf::Transform3D unitTransform = GeoTrf::Transform3D::Identity(); return unitTransform; } diff --git a/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRT_DetDescrDB_ParameterInterface.h b/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRT_DetDescrDB_ParameterInterface.h index fa76e2f5ada61b3fd2dbb605306b11b32689cd4a..bf9e5a4aec3409318e2d5f073f889f72ab9d98c6 100755 --- a/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRT_DetDescrDB_ParameterInterface.h +++ b/InnerDetector/InDetDetDescr/TRT_GeoModel/src/TRT_DetDescrDB_ParameterInterface.h @@ -30,7 +30,7 @@ public: // delete assignment TRT_DetDescrDB_ParameterInterface & operator=(const TRT_DetDescrDB_ParameterInterface &) = delete; // - virtual const HepGeom::Transform3D & partTransform(const std::string & partName) const; + virtual const GeoTrf::Transform3D & partTransform(const std::string & partName) const; virtual bool partPresent(const std::string & partName) const; virtual const InDetDD::DistortedMaterialManager * distortedMatManager() const; diff --git a/InnerDetector/InDetDigitization/FastSiDigitization/src/SiSmearedDigitizationTool.cxx b/InnerDetector/InDetDigitization/FastSiDigitization/src/SiSmearedDigitizationTool.cxx index 4afd4454b305ce409508878427f1fac8b91516e3..2d6e5d0a7be7779f7022a8480ab5ba69ac00d666 100644 --- a/InnerDetector/InDetDigitization/FastSiDigitization/src/SiSmearedDigitizationTool.cxx +++ b/InnerDetector/InDetDigitization/FastSiDigitization/src/SiSmearedDigitizationTool.cxx @@ -1090,7 +1090,7 @@ StatusCode SiSmearedDigitizationTool::digitize() } else { const Trk::Surface* hitSurface = &hitPlanarDetElement->surface(); const Amg::Transform3D& sTransform = hitSurface->transform().inverse(); - const Amg::Transform3D& hitTransform = Amg::CLHEPTransformToEigen(hitPlanarDetElement->transformHit()); + const Amg::Transform3D& hitTransform = hitPlanarDetElement->transformHit(); Amg::Vector3D localStartPosition(pix_localStartPosition.x(), pix_localStartPosition.y(), pix_localStartPosition.z()); Amg::Vector3D localEndPosition(pix_localEndPosition.x(), pix_localEndPosition.y(), pix_localEndPosition.z()); Amg::Vector3D localEntry(sTransform*(hitTransform*localStartPosition)); @@ -1124,7 +1124,7 @@ StatusCode SiSmearedDigitizationTool::digitize() } else { const Trk::Surface* hitSurface = &hitPlanarDetElement->surface(); const Amg::Transform3D& sTransform = hitSurface->transform().inverse(); - const Amg::Transform3D& hitTransform = Amg::CLHEPTransformToEigen( hitPlanarDetElement->transformHit()); + const Amg::Transform3D& hitTransform = hitPlanarDetElement->transformHit(); Amg::Vector3D localStartPosition(sct_localStartPosition.x(), sct_localStartPosition.y(), sct_localStartPosition.z()); ATH_MSG_DEBUG( "--- SiSmearedDigitizationTool: SCT local start position --- " << localStartPosition.x() << ", " << localStartPosition.y() << ", " << localStartPosition.z()); Amg::Vector3D localEndPosition(sct_localEndPosition.x(), sct_localEndPosition.y(), sct_localEndPosition.z()); diff --git a/InnerDetector/InDetMonitoring/InDetDiMuonMonitoring/CMakeLists.txt b/InnerDetector/InDetMonitoring/InDetDiMuonMonitoring/CMakeLists.txt index c9dc1faa8e82a4ce94a098b269a67c5b85a92316..25d25e764a97c304322aaf7489501b29e76bcb44 100644 --- a/InnerDetector/InDetMonitoring/InDetDiMuonMonitoring/CMakeLists.txt +++ b/InnerDetector/InDetMonitoring/InDetDiMuonMonitoring/CMakeLists.txt @@ -17,13 +17,14 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread MathMore Minuit Minuit2 Matrix Physics HistPainter Rint RooFitCore RooFit Graf Graf3d Gpad Html Postscript Gui GX11TTF GX11 ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( InDetDiMuonMonitoring src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} AthenaMonitoringLib xAODMuon xAODTracking GaudiKernel StoreGateLib SGtests EventInfo ) + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaMonitoringLib xAODMuon xAODTracking GaudiKernel StoreGateLib SGtests EventInfo ) # Install files from the package: atlas_install_headers( InDetDiMuonMonitoring ) diff --git a/InnerDetector/InDetMonitoring/InDetDiMuonMonitoring/src/DiMuMon.cxx b/InnerDetector/InDetMonitoring/InDetDiMuonMonitoring/src/DiMuMon.cxx index 1b7d402ae8ffebf1dc6117004a2cd43325a8e03c..56e829944baa733865b184a5fdf99b8feedc5180 100644 --- a/InnerDetector/InDetMonitoring/InDetDiMuonMonitoring/src/DiMuMon.cxx +++ b/InnerDetector/InDetMonitoring/InDetDiMuonMonitoring/src/DiMuMon.cxx @@ -6,6 +6,7 @@ #include "GaudiKernel/IJobOptionsSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/StatusCode.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "InDetDiMuonMonitoring/DiMuMon.h" @@ -102,10 +103,10 @@ StatusCode DiMuMon::initialize(){ //resonance independent // for eta these are filled as the histograms are declared due to the dependence between region and eta - m_varRanges["phi"] = std::make_pair(-CLHEP::pi,CLHEP::pi); - m_varRanges["phiAll"] = std::make_pair(-CLHEP::pi,CLHEP::pi); - m_varRanges["phiPos"] = std::make_pair(-CLHEP::pi,CLHEP::pi); - m_varRanges["phiNeg"] = std::make_pair(-CLHEP::pi,CLHEP::pi); + m_varRanges["phi"] = std::make_pair(-GeoModelKernelUnits::pi,GeoModelKernelUnits::pi); + m_varRanges["phiAll"] = std::make_pair(-GeoModelKernelUnits::pi,GeoModelKernelUnits::pi); + m_varRanges["phiPos"] = std::make_pair(-GeoModelKernelUnits::pi,GeoModelKernelUnits::pi); + m_varRanges["phiNeg"] = std::make_pair(-GeoModelKernelUnits::pi,GeoModelKernelUnits::pi); m_varRanges["etaSumm"] = std::make_pair(-5.,5.); //resonance dependent @@ -120,7 +121,7 @@ StatusCode DiMuMon::initialize(){ ptMax = 18.; } else if (m_resonName=="Zmumu") { m_varRanges["eta"] = std::make_pair(-5.,5.); - m_varRanges["phiDiff"] = std::make_pair(0.,CLHEP::pi); + m_varRanges["phiDiff"] = std::make_pair(0.,GeoModelKernelUnits::pi); m_varRanges["etaDiff"] = std::make_pair(-3.,3.); m_varRanges["crtDiff"] = std::make_pair(-0.03,0.03); m_varRanges["phiSumm"] = std::make_pair(-3.5,3.5); @@ -261,7 +262,7 @@ StatusCode DiMuMon::fillHistograms() // if (m_lumiBlockNum<402 || m_lumiBlockNum>1330) return StatusCode::SUCCESS; - double muonMass = 105.66*CLHEP::MeV; + double muonMass = 105.66*GeoModelKernelUnits::MeV; //retrieve all muons const xAOD::MuonContainer* muons(0); StatusCode sc = evtStore()->retrieve(muons, m_muonCollection); @@ -356,15 +357,15 @@ StatusCode DiMuMon::fillHistograms() double phiNeg = idNeg->phi(); m_varValues["phiNeg"] = phiNeg; m_varValues["pt"] = getPt(idPos,idNeg); - double ptPos = idPos->pt()/CLHEP::GeV; + double ptPos = idPos->pt()/GeoModelKernelUnits::GeV; m_varValues["ptPos"] = ptPos; - double ptNeg = idNeg->pt()/CLHEP::GeV; + double ptNeg = idNeg->pt()/GeoModelKernelUnits::GeV; m_varValues["ptNeg"] = ptNeg; m_varValues["crtDiff"] = getCrtDiff(idPos,idNeg); m_varValues["etaDiff"] = etaPos - etaNeg; double phiDiff = fabs(phiPos - phiNeg); - if (phiDiff>CLHEP::pi) phiDiff = 2*(CLHEP::pi) - phiDiff; + if (phiDiff>GeoModelKernelUnits::pi) phiDiff = 2*(GeoModelKernelUnits::pi) - phiDiff; m_varValues["phiDiff"] = phiDiff; m_varValues["etaSumm"] = etaPos + etaNeg; m_varValues["phiSumm"] = phiPos + phiNeg; @@ -661,7 +662,7 @@ double DiMuMon::getInvmass(const xAOD::TrackParticle* id1, const xAOD::TrackPart particle1.SetPtEtaPhiE(id1->pt(),id1->eta(),id1->phi(),sqrt(pow(Mass,2)+pow(id1->p4().Px(),2)+pow(id1->p4().Py(),2)+pow(id1->p4().Pz(),2))); particle2.SetPtEtaPhiE(id2->pt(),id2->eta(),id2->phi(),sqrt(pow(Mass,2)+pow(id2->p4().Px(),2)+pow(id2->p4().Py(),2)+pow(id2->p4().Pz(),2))); v=particle1+particle2; - double invmass = v.Mag()/CLHEP::GeV; + double invmass = v.Mag()/GeoModelKernelUnits::GeV; return invmass; } @@ -670,7 +671,7 @@ double DiMuMon::getPt(const xAOD::TrackParticle* id1, const xAOD::TrackParticle* double px = id1->p4().Px()+id2->p4().Px(); double py = id1->p4().Py()+id2->p4().Py(); transmom=sqrt(px*px+py*py); - return transmom/CLHEP::GeV; //Gev + return transmom/GeoModelKernelUnits::GeV; //Gev } double DiMuMon::getEta(const xAOD::TrackParticle* id1, const xAOD::TrackParticle* id2 ) const { diff --git a/InnerDetector/InDetMonitoring/InDetPerformanceMonitoring/src/MuonSelector.cxx b/InnerDetector/InDetMonitoring/InDetPerformanceMonitoring/src/MuonSelector.cxx index 3284a786125daa7c67a7c8828127af8c941ebb34..17f6c041a0d7cd10c285b1527690259b2d81df51 100644 --- a/InnerDetector/InDetMonitoring/InDetPerformanceMonitoring/src/MuonSelector.cxx +++ b/InnerDetector/InDetMonitoring/InDetPerformanceMonitoring/src/MuonSelector.cxx @@ -22,6 +22,7 @@ // ATLAS headers #include "StoreGate/StoreGateSvc.h" #include "CLHEP/Random/RandFlat.h" +#include "CLHEP/Units/SystemOfUnits.h" #include "GaudiKernel/IToolSvc.h" diff --git a/InnerDetector/InDetMonitoring/InDetPerformanceMonitoring/src/ZmumuEvent.cxx b/InnerDetector/InDetMonitoring/InDetPerformanceMonitoring/src/ZmumuEvent.cxx index b6c48e41003288bbe890cf1a958939072a1f3c6a..6718df59a6b3e5643e249d27a96955c6e64ea02b 100644 --- a/InnerDetector/InDetMonitoring/InDetPerformanceMonitoring/src/ZmumuEvent.cxx +++ b/InnerDetector/InDetMonitoring/InDetPerformanceMonitoring/src/ZmumuEvent.cxx @@ -17,6 +17,7 @@ // ATLAS headers #include "StoreGate/StoreGateSvc.h" #include "CLHEP/Random/RandFlat.h" +#include "CLHEP/Units/SystemOfUnits.h" #include "xAODMuon/Muon.h" #include "xAODMuon/MuonContainer.h" diff --git a/InnerDetector/InDetRecAlgs/TRT_StandaloneTrackFinder/src/TRT_StandaloneTrackFinder.cxx b/InnerDetector/InDetRecAlgs/TRT_StandaloneTrackFinder/src/TRT_StandaloneTrackFinder.cxx index 531993710f08e2ab3fa014265f56dfee5cba4465..73694907705ba20c75c1f83df8439b4812384e85 100644 --- a/InnerDetector/InDetRecAlgs/TRT_StandaloneTrackFinder/src/TRT_StandaloneTrackFinder.cxx +++ b/InnerDetector/InDetRecAlgs/TRT_StandaloneTrackFinder/src/TRT_StandaloneTrackFinder.cxx @@ -22,7 +22,8 @@ #include "InDetRecToolInterfaces/ITRT_SegmentToTrackTool.h" #include "CxxUtils/make_unique.h" -using CLHEP::GeV; +#include "GaudiKernel/SystemOfUnits.h" +using Gaudi::Units::GeV; /////////////////////////////////////////////////////////////////// // Constructor diff --git a/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/SingleTrackConversionTool.cxx b/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/SingleTrackConversionTool.cxx index b2d7e42aa12f4e7652b1ea57c7ae136fa4447454..7fad19481998c628c155363d185035c0c2cdfef0 100644 --- a/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/SingleTrackConversionTool.cxx +++ b/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/SingleTrackConversionTool.cxx @@ -31,6 +31,7 @@ #include "xAODTracking/TrackParticle.h" #include "xAODTracking/VertexContainer.h" +#include "CLHEP/Geometry/Transform3D.h" using HepGeom::Transform3D; namespace InDet { diff --git a/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/VertexPointEstimator.cxx b/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/VertexPointEstimator.cxx index 473aaf47f6f442b9e8fc62a6c2f454e2d4da1248..4f637ca66ec0943e616ff9f070d5f55840ef74a5 100644 --- a/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/VertexPointEstimator.cxx +++ b/InnerDetector/InDetRecTools/InDetConversionFinderTools/src/VertexPointEstimator.cxx @@ -11,6 +11,7 @@ changes : M.ELSING ***************************************************************************/ #include "InDetConversionFinderTools/VertexPointEstimator.h" +#include "CLHEP/Units/SystemOfUnits.h" #include "TMath.h" //Do we need to replace this? diff --git a/InnerDetector/InDetRecTools/InDetDNASeparator/src/InDetDNASeparator.cxx b/InnerDetector/InDetRecTools/InDetDNASeparator/src/InDetDNASeparator.cxx index 2c5ca2a7a87db861f74c64611a5041ba58e48c6f..02693ea89f4593d4b5be8381ed641bda1c20abe3 100644 --- a/InnerDetector/InDetRecTools/InDetDNASeparator/src/InDetDNASeparator.cxx +++ b/InnerDetector/InDetRecTools/InDetDNASeparator/src/InDetDNASeparator.cxx @@ -15,6 +15,7 @@ #include "TrkMeasurementBase/MeasurementBase.h" #include "TrkSurfaces/Surface.h" #include "TrkFitterUtils/DNA_MaterialEffects.h" +#include "GaudiKernel/SystemOfUnits.h"" //#include "TrkParameters/MeasuredTrackParameters.h" // #include "TrkFitterUtils/ProtoTrajectoryUtility.h" @@ -28,7 +29,7 @@ InDet::InDetDNASeparator::InDetDNASeparator(const std::string& t, : AthAlgTool(t,n,p), m_kutoff(4.50), - m_floorseparation_drr(4.00*CLHEP::mm), + m_floorseparation_drr(4.00*Gaudi::Units::mm), // Initialization of ID SCT helper m_SCT_Tool(nullptr), // Initialization of ID Pixel helper diff --git a/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetDetailedTrackSelectorTool.cxx b/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetDetailedTrackSelectorTool.cxx index cfa203f2f25240af0ff617d2efdc21ded4813d17..c19de8a07677a8233619bdefae4105d70733a257 100644 --- a/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetDetailedTrackSelectorTool.cxx +++ b/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetDetailedTrackSelectorTool.cxx @@ -23,6 +23,7 @@ // normal includes #include "CLHEP/GenericFunctions/CumulativeChiSquare.hh" +#include "CLHEP/Units/SystemOfUnits.h" #include "TrkSurfaces/PerigeeSurface.h" #include "GeoPrimitives/GeoPrimitives.h" #include "EventPrimitives/EventPrimitives.h" diff --git a/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetIsoTrackSelectorTool.cxx b/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetIsoTrackSelectorTool.cxx index 006dbe6a78da397f7a67fffcd5fa618f9511158c..41ca00683acdc83d87ceccfa97b3a4ea3082eab0 100644 --- a/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetIsoTrackSelectorTool.cxx +++ b/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetIsoTrackSelectorTool.cxx @@ -9,6 +9,7 @@ #include "TrkTrack/Track.h" #include "TrkParticleBase/TrackParticleBase.h" #include "TrkSurfaces/StraightLineSurface.h" +#include "CLHEP/Units/SystemOfUnits.h" using CLHEP::mm; diff --git a/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetTrackSelectorTool.cxx b/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetTrackSelectorTool.cxx index 763e4e9a0900721c8ccc11dc495d28a550666b8b..163628087547ac41995a61b5024320893afbc011 100644 --- a/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetTrackSelectorTool.cxx +++ b/InnerDetector/InDetRecTools/InDetTrackSelectorTool/src/InDetTrackSelectorTool.cxx @@ -12,6 +12,7 @@ // normal includes #include "TrkTrackSummary/TrackSummary.h" #include "CLHEP/Matrix/Vector.h" +#include "CLHEP/Units/SystemOfUnits.h" using CLHEP::mm; diff --git a/InnerDetector/InDetRecTools/TRT_SeededSpacePointFinderTool/src/SimpleTRT_SeededSpacePointFinder_ATL.cxx b/InnerDetector/InDetRecTools/TRT_SeededSpacePointFinderTool/src/SimpleTRT_SeededSpacePointFinder_ATL.cxx index a47d7fa5d4b033191fc780e63a5f6318e1b5953f..40b34315b7335167268b254ece4f6a5a9d1dac89 100755 --- a/InnerDetector/InDetRecTools/TRT_SeededSpacePointFinderTool/src/SimpleTRT_SeededSpacePointFinder_ATL.cxx +++ b/InnerDetector/InDetRecTools/TRT_SeededSpacePointFinderTool/src/SimpleTRT_SeededSpacePointFinder_ATL.cxx @@ -17,6 +17,7 @@ #include "GaudiKernel/MsgStream.h" //#include "StoreGate/StoreGateSvc.h" #include "CLHEP/Vector/ThreeVector.h" +#include "CLHEP/Units/SystemOfUnits.h" #include "TrkSpacePoint/SpacePointCLASS_DEF.h" #include "TRT_SeededSpacePointFinderTool/SimpleTRT_SeededSpacePointFinder_ATL.h" #include "InDetIdentifier/SCT_ID.h" diff --git a/InnerDetector/InDetValidation/InDetRecStatistics/src/TrackStatHelper.cxx b/InnerDetector/InDetValidation/InDetRecStatistics/src/TrackStatHelper.cxx index 7de23e1600d431f92ea84f5930ff1a01c9c88f1f..64cbe9f0ff7988fbf60d71d7f48ea93e0328e1d5 100755 --- a/InnerDetector/InDetValidation/InDetRecStatistics/src/TrackStatHelper.cxx +++ b/InnerDetector/InDetValidation/InDetRecStatistics/src/TrackStatHelper.cxx @@ -33,6 +33,7 @@ #include <map> #include "AtlasDetDescr/AtlasDetectorID.h" #include "TrkToolInterfaces/ITrackSummaryTool.h" +#include "CLHEP/Geometry/Point3D.h" namespace Trk { diff --git a/InnerDetector/InDetValidation/InDetTrackValidation/CMakeLists.txt b/InnerDetector/InDetValidation/InDetTrackValidation/CMakeLists.txt index 47f633e2902a5ccf8a8d7209005f698b2ea1d1f7..f8a6ffa440113540020cc0722a4a201e7274c37d 100644 --- a/InnerDetector/InDetValidation/InDetTrackValidation/CMakeLists.txt +++ b/InnerDetector/InDetValidation/InDetTrackValidation/CMakeLists.txt @@ -34,7 +34,6 @@ atlas_depends_on_subdirs( InnerDetector/InDetConditions/TRT_ConditionsServices InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry - InnerDetector/InDetDetDescr/PixelGeoModel InnerDetector/InDetDetDescr/SCT_Cabling InnerDetector/InDetRecEvent/InDetRIO_OnTrack InnerDetector/InDetValidation/InDetTrackSplitterTool @@ -60,5 +59,4 @@ atlas_add_component( InDetTrackValidation EventPrimitives GeneratorObjects TRT_ConditionsData TRT_ConditionsServicesLib InDetIdentifier InDetReadoutGeometry SCT_CablingLib InDetRIO_OnTrack TrkSurfaces TrkEventPrimitives TrkMeasurementBase - TrkPrepRawData TrkRIO_OnTrack TrkToolInterfaces - PixelGeoModelLib ) + TrkPrepRawData TrkRIO_OnTrack TrkToolInterfaces ) diff --git a/LArCalorimeter/LArDetDescr/CMakeLists.txt b/LArCalorimeter/LArDetDescr/CMakeLists.txt index 173c20bf3e9ff8ff391775ed9513e838a1f8242b..f08de4493a0393fa1be04a98137b5c27214a1bcf 100644 --- a/LArCalorimeter/LArDetDescr/CMakeLists.txt +++ b/LArCalorimeter/LArDetDescr/CMakeLists.txt @@ -11,7 +11,6 @@ atlas_depends_on_subdirs( PUBLIC Calorimeter/CaloGeoHelpers Control/AthenaBaseComps Control/AthenaKernel - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/Identifier GaudiKernel LArCalorimeter/LArGeoModel/LArReadoutGeometry @@ -28,13 +27,14 @@ find_package( Boost COMPONENTS filesystem thread system ) find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( LArDetDescr src/*.cxx src/components/*.cxx INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} AthenaKernel CaloDetDescrLib CaloGeoHelpers AthenaBaseComps GeoModelKernel Identifier GaudiKernel LArReadoutGeometry CaloIdentifier StoreGateLib SGtests GeoModelUtilities GeoPrimitives ) + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaKernel CaloDetDescrLib CaloGeoHelpers AthenaBaseComps Identifier GaudiKernel LArReadoutGeometry CaloIdentifier StoreGateLib SGtests GeoModelUtilities GeoPrimitives ) # Install files from the package: atlas_install_headers( LArDetDescr ) diff --git a/LArCalorimeter/LArDetDescr/LArDetDescr/FindVolAction.h b/LArCalorimeter/LArDetDescr/LArDetDescr/FindVolAction.h deleted file mode 100755 index 8736bfe7ccdeec7f0b96107b6a7dc0c2069c11b5..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArDetDescr/LArDetDescr/FindVolAction.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#ifndef FINDVOLACTION_H -#define FINDVOLACTION_H - -#include "GeoModelKernel/GeoVolumeAction.h" - -class FindVolAction :public GeoVolumeAction -{ - public: - //constructor - FindVolAction (PVConstLink startPV, - std::string volumeName, - int identifier); - - //desctructor - ~FindVolAction (); - - // volume with this name exists - bool volumeExists() const; - - // Returns the selected physical volume or NULL if not found - PVConstLink getVolume () const; - - // Returns the global transformation to the volume - HepGeom::Transform3D getGlobalTransform () const; - private: - - bool m_volumeExists; - std::string m_volumeName; - int m_identifier; - HepGeom::Transform3D m_globalTransform; - PVConstLink m_volume; - - void handleVPhysVol (const GeoVPhysVol *); - -}; - - -#endif diff --git a/LArCalorimeter/LArDetDescr/src/FindVolAction.cxx b/LArCalorimeter/LArDetDescr/src/FindVolAction.cxx deleted file mode 100755 index 9d7b54448791bd41d49747eb0cf2aa368b9062f5..0000000000000000000000000000000000000000 --- a/LArCalorimeter/LArDetDescr/src/FindVolAction.cxx +++ /dev/null @@ -1,83 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include "LArDetDescr/FindVolAction.h" - -FindVolAction::FindVolAction (PVConstLink startPV, - std::string volumeName, - int identifier) - :GeoVolumeAction (GeoVolumeAction::TOP_DOWN), - m_volumeExists(false), - m_volumeName(volumeName), - m_identifier(identifier), - m_volume(0) -{ - //std::cout << " ---> FindVolAction constructed\n"; - startPV->apply(this); -} - -FindVolAction::~FindVolAction () -{ -} - -PVConstLink FindVolAction::getVolume () const -{ - return m_volume; -} - -HepGeom::Transform3D FindVolAction::getGlobalTransform () const -{ - return m_globalTransform; -} - -bool FindVolAction::volumeExists() const -{ - return m_volumeExists; -} - -void FindVolAction::handleVPhysVol (const GeoVPhysVol *pv) -{ - GeoTraversalState* state = getState(); - Query<int> Qint = state->getId(); - std::string pvName = state->getName(); - std::string lvName = pv->getLogVol()->getName(); - - // Print out : - /* - std::cout << " VOL ACTION. Visiting = " << pvName - << " " << lvName << " "; - if(Qint.isValid()) - std::cout << Qint; - else - std::cout << "xxx"; - std::cout << "\n"; - */ - - // If there is a copy number use it : - if ( m_identifier >= 0 ) { - - if((pvName==m_volumeName || lvName==m_volumeName) && - Qint.isValid() && Qint == m_identifier) - { - //std::cout << " *** FOUND! " << "\n"; - m_volumeExists = true; - m_globalTransform = state->getAbsoluteTransform(); - m_volume = pv; - terminate(); - } - } - // If not : - else { - - if((pvName==m_volumeName || lvName==m_volumeName) ) { - //std::cout << " *** FOUND! " << "\n"; - m_volumeExists = true; - m_globalTransform = state->getAbsoluteTransform(); - m_volume = pv; - terminate(); - } - } -} - - diff --git a/LArCalorimeter/LArDetDescr/src/LArNumberHelper.cxx b/LArCalorimeter/LArDetDescr/src/LArNumberHelper.cxx index 62aea79b58c851c2eb1aa60d87f453368a35ef7e..b2df85629c45e7e3d76d345566cc564ada65ec7b 100755 --- a/LArCalorimeter/LArDetDescr/src/LArNumberHelper.cxx +++ b/LArCalorimeter/LArDetDescr/src/LArNumberHelper.cxx @@ -16,7 +16,6 @@ #include "RDBAccessSvc/IRDBRecord.h" #include "CLHEP/Geometry/Point3D.h" -#include "CLHEP/Units/SystemOfUnits.h" #include "CaloIdentifier/CaloID.h" #include "CaloIdentifier/CaloIdManager.h" @@ -24,7 +23,7 @@ #include "LArDetDescr/LArCellVolumes.h" #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" - +#include "GeoModelKernel/Units.h" LArNumberHelper::LArNumberHelper(const std::string geometry) : m_geometry(geometry), @@ -496,49 +495,49 @@ LArNumberHelper::db_nb_em() //std::cout << " ----- in db_nb_em tags are : " << m_tag << " " << m_node << std::endl; // PS - // m_emb_psin = 141.23*CLHEP::cm; // this is the TDR number 1385 mm + 27.3 mm + // m_emb_psin = 141.23*GeoModelKernelUnits::cm; // this is the TDR number 1385 mm + 27.3 mm // ----> overwritten m_lar = m_iAccessSvc->getRecordsetPtr("PresamplerGeometry","ATLAS-00","ATLAS"); if (m_lar->size()) { m_rec = (*m_lar)[0]; - m_emb_psin = m_rec->getDouble("RACTIVE")*CLHEP::cm; + m_emb_psin = m_rec->getDouble("RACTIVE")*GeoModelKernelUnits::cm; } // ACCG : - // m_accg_rin_ac = 144.73*CLHEP::cm; // 1385mm + 27.3mm + 35mm - // m_accg_rout_ac = 200.35*CLHEP::cm; // end of active material + // m_accg_rin_ac = 144.73*GeoModelKernelUnits::cm; // 1385mm + 27.3mm + 35mm + // m_accg_rout_ac = 200.35*GeoModelKernelUnits::cm; // end of active material // ----> overwritten m_lar = m_iAccessSvc->getRecordsetPtr("BarrelGeometry",m_tag,m_node); if (m_lar->size()) { m_rec = (*m_lar)[0]; - m_accg_rin_ac = m_rec->getDouble("RMIN") *CLHEP::cm; - m_accg_rout_ac = m_rec->getDouble("RMAX") *CLHEP::cm; + m_accg_rin_ac = m_rec->getDouble("RMIN") *GeoModelKernelUnits::cm; + m_accg_rout_ac = m_rec->getDouble("RMAX") *GeoModelKernelUnits::cm; } // ACCO : m_acco_rmx12.resize (8,(double) 0.); - // m_acco_rmx12[0] = 158.6*CLHEP::cm; - // m_acco_rmx12[1] = 158.6*CLHEP::cm; - // m_acco_rmx12[2] = 157.07*CLHEP::cm; - // m_acco_rmx12[3] = 157.07*CLHEP::cm; - // m_acco_rmx12[4] = 154.83*CLHEP::cm; - // m_acco_rmx12[5] = 154.83*CLHEP::cm; - // m_acco_rmx12[6] = 153.23*CLHEP::cm; - // m_acco_rmx12[7] = 153.23*CLHEP::cm; + // m_acco_rmx12[0] = 158.6*GeoModelKernelUnits::cm; + // m_acco_rmx12[1] = 158.6*GeoModelKernelUnits::cm; + // m_acco_rmx12[2] = 157.07*GeoModelKernelUnits::cm; + // m_acco_rmx12[3] = 157.07*GeoModelKernelUnits::cm; + // m_acco_rmx12[4] = 154.83*GeoModelKernelUnits::cm; + // m_acco_rmx12[5] = 154.83*GeoModelKernelUnits::cm; + // m_acco_rmx12[6] = 153.23*GeoModelKernelUnits::cm; + // m_acco_rmx12[7] = 153.23*GeoModelKernelUnits::cm; // ----> overwritten m_lar = m_iAccessSvc->getRecordsetPtr("BarrelLongDiv",m_tag,m_node); if (m_lar->size()) { m_rec = (*m_lar)[0]; - m_acco_rmx12[0] = m_rec->getDouble("RMX12_0")*CLHEP::cm; - m_acco_rmx12[1] = m_rec->getDouble("RMX12_1")*CLHEP::cm; - m_acco_rmx12[2] = m_rec->getDouble("RMX12_2")*CLHEP::cm; - m_acco_rmx12[3] = m_rec->getDouble("RMX12_3")*CLHEP::cm; - m_acco_rmx12[4] = m_rec->getDouble("RMX12_4")*CLHEP::cm; - m_acco_rmx12[5] = m_rec->getDouble("RMX12_5")*CLHEP::cm; - m_acco_rmx12[6] = m_rec->getDouble("RMX12_6")*CLHEP::cm; - m_acco_rmx12[7] = m_rec->getDouble("RMX12_7")*CLHEP::cm; + m_acco_rmx12[0] = m_rec->getDouble("RMX12_0")*GeoModelKernelUnits::cm; + m_acco_rmx12[1] = m_rec->getDouble("RMX12_1")*GeoModelKernelUnits::cm; + m_acco_rmx12[2] = m_rec->getDouble("RMX12_2")*GeoModelKernelUnits::cm; + m_acco_rmx12[3] = m_rec->getDouble("RMX12_3")*GeoModelKernelUnits::cm; + m_acco_rmx12[4] = m_rec->getDouble("RMX12_4")*GeoModelKernelUnits::cm; + m_acco_rmx12[5] = m_rec->getDouble("RMX12_5")*GeoModelKernelUnits::cm; + m_acco_rmx12[6] = m_rec->getDouble("RMX12_6")*GeoModelKernelUnits::cm; + m_acco_rmx12[7] = m_rec->getDouble("RMX12_7")*GeoModelKernelUnits::cm; } m_acco_ee12.resize (8,(double) 0.); @@ -566,84 +565,84 @@ LArNumberHelper::db_nb_em() m_acco_rmx23.resize (53,(double) 0.); /* - m_acco_rmx23[0] = 192.83*CLHEP::cm; ... up to : - m_acco_rmx23[52] = 178.89*CLHEP::cm; + m_acco_rmx23[0] = 192.83*GeoModelKernelUnits::cm; ... up to : + m_acco_rmx23[52] = 178.89*GeoModelKernelUnits::cm; */ // ----> overwritten m_lar = m_iAccessSvc->getRecordsetPtr("BarrelLongDiv",m_tag,m_node); if (m_lar->size()) { m_rec = (*m_lar)[0]; - m_acco_rmx23[0] = m_rec->getDouble("RMX23_0")*CLHEP::cm; - m_acco_rmx23[1] = m_rec->getDouble("RMX23_1")*CLHEP::cm; - m_acco_rmx23[2] = m_rec->getDouble("RMX23_2")*CLHEP::cm; - m_acco_rmx23[3] = m_rec->getDouble("RMX23_3")*CLHEP::cm; - m_acco_rmx23[4] = m_rec->getDouble("RMX23_4")*CLHEP::cm; - m_acco_rmx23[5] = m_rec->getDouble("RMX23_5")*CLHEP::cm; - m_acco_rmx23[6] = m_rec->getDouble("RMX23_6")*CLHEP::cm; - m_acco_rmx23[7] = m_rec->getDouble("RMX23_7")*CLHEP::cm; - m_acco_rmx23[8] = m_rec->getDouble("RMX23_8")*CLHEP::cm; - m_acco_rmx23[9] = m_rec->getDouble("RMX23_9")*CLHEP::cm; - m_acco_rmx23[10] = m_rec->getDouble("RMX23_10")*CLHEP::cm; - m_acco_rmx23[11] = m_rec->getDouble("RMX23_11")*CLHEP::cm; - m_acco_rmx23[12] = m_rec->getDouble("RMX23_12")*CLHEP::cm; - m_acco_rmx23[13] = m_rec->getDouble("RMX23_13")*CLHEP::cm; - m_acco_rmx23[14] = m_rec->getDouble("RMX23_14")*CLHEP::cm; - m_acco_rmx23[15] = m_rec->getDouble("RMX23_15")*CLHEP::cm; - m_acco_rmx23[16] = m_rec->getDouble("RMX23_16")*CLHEP::cm; - m_acco_rmx23[17] = m_rec->getDouble("RMX23_17")*CLHEP::cm; - m_acco_rmx23[18] = m_rec->getDouble("RMX23_18")*CLHEP::cm; - m_acco_rmx23[19] = m_rec->getDouble("RMX23_19")*CLHEP::cm; - m_acco_rmx23[20] = m_rec->getDouble("RMX23_20")*CLHEP::cm; - m_acco_rmx23[21] = m_rec->getDouble("RMX23_21")*CLHEP::cm; - m_acco_rmx23[22] = m_rec->getDouble("RMX23_22")*CLHEP::cm; - m_acco_rmx23[23] = m_rec->getDouble("RMX23_23")*CLHEP::cm; - m_acco_rmx23[24] = m_rec->getDouble("RMX23_24")*CLHEP::cm; - m_acco_rmx23[25] = m_rec->getDouble("RMX23_25")*CLHEP::cm; - m_acco_rmx23[26] = m_rec->getDouble("RMX23_26")*CLHEP::cm; - m_acco_rmx23[27] = m_rec->getDouble("RMX23_27")*CLHEP::cm; - m_acco_rmx23[28] = m_rec->getDouble("RMX23_28")*CLHEP::cm; - m_acco_rmx23[29] = m_rec->getDouble("RMX23_29")*CLHEP::cm; - m_acco_rmx23[30] = m_rec->getDouble("RMX23_30")*CLHEP::cm; - m_acco_rmx23[31] = m_rec->getDouble("RMX23_31")*CLHEP::cm; - m_acco_rmx23[32] = m_rec->getDouble("RMX23_32")*CLHEP::cm; - m_acco_rmx23[33] = m_rec->getDouble("RMX23_33")*CLHEP::cm; - m_acco_rmx23[34] = m_rec->getDouble("RMX23_34")*CLHEP::cm; - m_acco_rmx23[35] = m_rec->getDouble("RMX23_35")*CLHEP::cm; - m_acco_rmx23[36] = m_rec->getDouble("RMX23_36")*CLHEP::cm; - m_acco_rmx23[37] = m_rec->getDouble("RMX23_37")*CLHEP::cm; - m_acco_rmx23[38] = m_rec->getDouble("RMX23_38")*CLHEP::cm; - m_acco_rmx23[39] = m_rec->getDouble("RMX23_39")*CLHEP::cm; - m_acco_rmx23[40] = m_rec->getDouble("RMX23_40")*CLHEP::cm; - m_acco_rmx23[41] = m_rec->getDouble("RMX23_41")*CLHEP::cm; - m_acco_rmx23[42] = m_rec->getDouble("RMX23_42")*CLHEP::cm; - m_acco_rmx23[43] = m_rec->getDouble("RMX23_43")*CLHEP::cm; - m_acco_rmx23[44] = m_rec->getDouble("RMX23_44")*CLHEP::cm; - m_acco_rmx23[45] = m_rec->getDouble("RMX23_45")*CLHEP::cm; - m_acco_rmx23[46] = m_rec->getDouble("RMX23_46")*CLHEP::cm; - m_acco_rmx23[47] = m_rec->getDouble("RMX23_47")*CLHEP::cm; - m_acco_rmx23[48] = m_rec->getDouble("RMX23_48")*CLHEP::cm; - m_acco_rmx23[49] = m_rec->getDouble("RMX23_49")*CLHEP::cm; - m_acco_rmx23[50] = m_rec->getDouble("RMX23_50")*CLHEP::cm; - m_acco_rmx23[51] = m_rec->getDouble("RMX23_51")*CLHEP::cm; - m_acco_rmx23[52] = m_rec->getDouble("RMX23_52")*CLHEP::cm; + m_acco_rmx23[0] = m_rec->getDouble("RMX23_0")*GeoModelKernelUnits::cm; + m_acco_rmx23[1] = m_rec->getDouble("RMX23_1")*GeoModelKernelUnits::cm; + m_acco_rmx23[2] = m_rec->getDouble("RMX23_2")*GeoModelKernelUnits::cm; + m_acco_rmx23[3] = m_rec->getDouble("RMX23_3")*GeoModelKernelUnits::cm; + m_acco_rmx23[4] = m_rec->getDouble("RMX23_4")*GeoModelKernelUnits::cm; + m_acco_rmx23[5] = m_rec->getDouble("RMX23_5")*GeoModelKernelUnits::cm; + m_acco_rmx23[6] = m_rec->getDouble("RMX23_6")*GeoModelKernelUnits::cm; + m_acco_rmx23[7] = m_rec->getDouble("RMX23_7")*GeoModelKernelUnits::cm; + m_acco_rmx23[8] = m_rec->getDouble("RMX23_8")*GeoModelKernelUnits::cm; + m_acco_rmx23[9] = m_rec->getDouble("RMX23_9")*GeoModelKernelUnits::cm; + m_acco_rmx23[10] = m_rec->getDouble("RMX23_10")*GeoModelKernelUnits::cm; + m_acco_rmx23[11] = m_rec->getDouble("RMX23_11")*GeoModelKernelUnits::cm; + m_acco_rmx23[12] = m_rec->getDouble("RMX23_12")*GeoModelKernelUnits::cm; + m_acco_rmx23[13] = m_rec->getDouble("RMX23_13")*GeoModelKernelUnits::cm; + m_acco_rmx23[14] = m_rec->getDouble("RMX23_14")*GeoModelKernelUnits::cm; + m_acco_rmx23[15] = m_rec->getDouble("RMX23_15")*GeoModelKernelUnits::cm; + m_acco_rmx23[16] = m_rec->getDouble("RMX23_16")*GeoModelKernelUnits::cm; + m_acco_rmx23[17] = m_rec->getDouble("RMX23_17")*GeoModelKernelUnits::cm; + m_acco_rmx23[18] = m_rec->getDouble("RMX23_18")*GeoModelKernelUnits::cm; + m_acco_rmx23[19] = m_rec->getDouble("RMX23_19")*GeoModelKernelUnits::cm; + m_acco_rmx23[20] = m_rec->getDouble("RMX23_20")*GeoModelKernelUnits::cm; + m_acco_rmx23[21] = m_rec->getDouble("RMX23_21")*GeoModelKernelUnits::cm; + m_acco_rmx23[22] = m_rec->getDouble("RMX23_22")*GeoModelKernelUnits::cm; + m_acco_rmx23[23] = m_rec->getDouble("RMX23_23")*GeoModelKernelUnits::cm; + m_acco_rmx23[24] = m_rec->getDouble("RMX23_24")*GeoModelKernelUnits::cm; + m_acco_rmx23[25] = m_rec->getDouble("RMX23_25")*GeoModelKernelUnits::cm; + m_acco_rmx23[26] = m_rec->getDouble("RMX23_26")*GeoModelKernelUnits::cm; + m_acco_rmx23[27] = m_rec->getDouble("RMX23_27")*GeoModelKernelUnits::cm; + m_acco_rmx23[28] = m_rec->getDouble("RMX23_28")*GeoModelKernelUnits::cm; + m_acco_rmx23[29] = m_rec->getDouble("RMX23_29")*GeoModelKernelUnits::cm; + m_acco_rmx23[30] = m_rec->getDouble("RMX23_30")*GeoModelKernelUnits::cm; + m_acco_rmx23[31] = m_rec->getDouble("RMX23_31")*GeoModelKernelUnits::cm; + m_acco_rmx23[32] = m_rec->getDouble("RMX23_32")*GeoModelKernelUnits::cm; + m_acco_rmx23[33] = m_rec->getDouble("RMX23_33")*GeoModelKernelUnits::cm; + m_acco_rmx23[34] = m_rec->getDouble("RMX23_34")*GeoModelKernelUnits::cm; + m_acco_rmx23[35] = m_rec->getDouble("RMX23_35")*GeoModelKernelUnits::cm; + m_acco_rmx23[36] = m_rec->getDouble("RMX23_36")*GeoModelKernelUnits::cm; + m_acco_rmx23[37] = m_rec->getDouble("RMX23_37")*GeoModelKernelUnits::cm; + m_acco_rmx23[38] = m_rec->getDouble("RMX23_38")*GeoModelKernelUnits::cm; + m_acco_rmx23[39] = m_rec->getDouble("RMX23_39")*GeoModelKernelUnits::cm; + m_acco_rmx23[40] = m_rec->getDouble("RMX23_40")*GeoModelKernelUnits::cm; + m_acco_rmx23[41] = m_rec->getDouble("RMX23_41")*GeoModelKernelUnits::cm; + m_acco_rmx23[42] = m_rec->getDouble("RMX23_42")*GeoModelKernelUnits::cm; + m_acco_rmx23[43] = m_rec->getDouble("RMX23_43")*GeoModelKernelUnits::cm; + m_acco_rmx23[44] = m_rec->getDouble("RMX23_44")*GeoModelKernelUnits::cm; + m_acco_rmx23[45] = m_rec->getDouble("RMX23_45")*GeoModelKernelUnits::cm; + m_acco_rmx23[46] = m_rec->getDouble("RMX23_46")*GeoModelKernelUnits::cm; + m_acco_rmx23[47] = m_rec->getDouble("RMX23_47")*GeoModelKernelUnits::cm; + m_acco_rmx23[48] = m_rec->getDouble("RMX23_48")*GeoModelKernelUnits::cm; + m_acco_rmx23[49] = m_rec->getDouble("RMX23_49")*GeoModelKernelUnits::cm; + m_acco_rmx23[50] = m_rec->getDouble("RMX23_50")*GeoModelKernelUnits::cm; + m_acco_rmx23[51] = m_rec->getDouble("RMX23_51")*GeoModelKernelUnits::cm; + m_acco_rmx23[52] = m_rec->getDouble("RMX23_52")*GeoModelKernelUnits::cm; } // ENDG - // m_endg_zorig = 369.1*CLHEP::cm; // this is the NOVA/Oracle number - // m_emb_iwout = 422.7*CLHEP::cm; // 369.1*CLHEP::cm + 53.6*CLHEP::cm is the end of the active part - // m_emec_out = 422.7*CLHEP::cm; // 369.1*CLHEP::cm + 53.6*CLHEP::cm is the end of the active part + // m_endg_zorig = 369.1*GeoModelKernelUnits::cm; // this is the NOVA/Oracle number + // m_emb_iwout = 422.7*GeoModelKernelUnits::cm; // 369.1*GeoModelKernelUnits::cm + 53.6*GeoModelKernelUnits::cm is the end of the active part + // m_emec_out = 422.7*GeoModelKernelUnits::cm; // 369.1*GeoModelKernelUnits::cm + 53.6*GeoModelKernelUnits::cm is the end of the active part m_lar = m_iAccessSvc->getRecordsetPtr("EmecGeometry",m_tag,m_node); if (m_lar->size()) { m_rec = (*m_lar)[0]; - m_endg_zorig = m_rec->getDouble("Z1")*CLHEP::cm; - double epaisseurTotale = m_rec->getDouble("ETOT")*CLHEP::cm; + m_endg_zorig = m_rec->getDouble("Z1")*GeoModelKernelUnits::cm; + double epaisseurTotale = m_rec->getDouble("ETOT")*GeoModelKernelUnits::cm; m_emb_iwout = m_endg_zorig + epaisseurTotale; m_emec_out = m_endg_zorig + epaisseurTotale; } // Cryostat - // m_emec_psin = 362.5*CLHEP::cm; // notch in cold wall of cryostat + // m_emec_psin = 362.5*GeoModelKernelUnits::cm; // notch in cold wall of cryostat if ( m_geometry == "Atlas" ) { DecodeVersionKey detectorKeyAtl = DecodeVersionKey(m_geoModelSvc, "ATLAS"); m_lar = m_iAccessSvc->getRecordsetPtr("PresamplerPosition",detectorKeyAtl.tag(),detectorKeyAtl.node()); @@ -653,74 +652,74 @@ LArNumberHelper::db_nb_em() } if (m_lar->size()) { m_rec = (*m_lar)[0]; - m_emec_psin = m_rec->getDouble("ZPOS")*CLHEP::cm; + m_emec_psin = m_rec->getDouble("ZPOS")*GeoModelKernelUnits::cm; } // ESEP m_esep_iw23.resize(7, (double) 0.); - // m_esep_iw23[0] = 413.934*CLHEP::cm; - // m_esep_iw23[1] = 412.518*CLHEP::cm; - // m_esep_iw23[2] = 411.792*CLHEP::cm; - // m_esep_iw23[3] = 409.545*CLHEP::cm; - // m_esep_iw23[4] = 407.987*CLHEP::cm; - // m_esep_iw23[5] = 407.510*CLHEP::cm; - // m_esep_iw23[6] = 404.730*CLHEP::cm; + // m_esep_iw23[0] = 413.934*GeoModelKernelUnits::cm; + // m_esep_iw23[1] = 412.518*GeoModelKernelUnits::cm; + // m_esep_iw23[2] = 411.792*GeoModelKernelUnits::cm; + // m_esep_iw23[3] = 409.545*GeoModelKernelUnits::cm; + // m_esep_iw23[4] = 407.987*GeoModelKernelUnits::cm; + // m_esep_iw23[5] = 407.510*GeoModelKernelUnits::cm; + // m_esep_iw23[6] = 404.730*GeoModelKernelUnits::cm; // ----> overwritten m_lar = m_iAccessSvc->getRecordsetPtr("EmecSamplingSep",m_tag,m_node); if (m_lar->size()) { m_rec = (*m_lar)[0]; - m_esep_iw23[0] = m_rec->getDouble("ZIW_0")*CLHEP::cm; - m_esep_iw23[1] = m_rec->getDouble("ZIW_1")*CLHEP::cm; - m_esep_iw23[2] = m_rec->getDouble("ZIW_2")*CLHEP::cm; - m_esep_iw23[3] = m_rec->getDouble("ZIW_3")*CLHEP::cm; - m_esep_iw23[4] = m_rec->getDouble("ZIW_4")*CLHEP::cm; - m_esep_iw23[5] = m_rec->getDouble("ZIW_5")*CLHEP::cm; - m_esep_iw23[6] = m_rec->getDouble("ZIW_6")*CLHEP::cm; + m_esep_iw23[0] = m_rec->getDouble("ZIW_0")*GeoModelKernelUnits::cm; + m_esep_iw23[1] = m_rec->getDouble("ZIW_1")*GeoModelKernelUnits::cm; + m_esep_iw23[2] = m_rec->getDouble("ZIW_2")*GeoModelKernelUnits::cm; + m_esep_iw23[3] = m_rec->getDouble("ZIW_3")*GeoModelKernelUnits::cm; + m_esep_iw23[4] = m_rec->getDouble("ZIW_4")*GeoModelKernelUnits::cm; + m_esep_iw23[5] = m_rec->getDouble("ZIW_5")*GeoModelKernelUnits::cm; + m_esep_iw23[6] = m_rec->getDouble("ZIW_6")*GeoModelKernelUnits::cm; } - // m_esep_zsep12 = 378.398*CLHEP::cm; + // m_esep_zsep12 = 378.398*GeoModelKernelUnits::cm; // Note that in the gometryDB this is an array, but // of very similar numbers -> Zebra was using 1rst value only // ----> overwritten m_lar = m_iAccessSvc->getRecordsetPtr("EmecSamplingSep",m_tag,m_node); if (m_lar->size()) { m_rec = (*m_lar)[0]; - m_esep_zsep12 = m_rec->getDouble("ZSEP12_0")*CLHEP::cm; + m_esep_zsep12 = m_rec->getDouble("ZSEP12_0")*GeoModelKernelUnits::cm; } m_esep_zsep23.resize(22, (double) 0.); /* - m_esep_zsep23 [0] = 999.999*CLHEP::cm; // inheritance from Zebra. - m_esep_zsep23 [1] = 999.999*CLHEP::cm; // will be skipped in hard_em - m_esep_zsep23 [2] = 413.205*CLHEP::cm; ... up to : - m_esep_zsep23 [21] = 401.153*CLHEP::cm; + m_esep_zsep23 [0] = 999.999*GeoModelKernelUnits::cm; // inheritance from Zebra. + m_esep_zsep23 [1] = 999.999*GeoModelKernelUnits::cm; // will be skipped in hard_em + m_esep_zsep23 [2] = 413.205*GeoModelKernelUnits::cm; ... up to : + m_esep_zsep23 [21] = 401.153*GeoModelKernelUnits::cm; */ // ----> overwritten m_lar = m_iAccessSvc->getRecordsetPtr("EmecSamplingSep",m_tag,m_node); if (m_lar->size()) { m_rec = (*m_lar)[0]; - m_esep_zsep23 [0] = m_rec->getDouble("ZSEP23_0")*CLHEP::cm; - m_esep_zsep23 [1] = m_rec->getDouble("ZSEP23_1")*CLHEP::cm; - m_esep_zsep23 [2] = m_rec->getDouble("ZSEP23_2")*CLHEP::cm; - m_esep_zsep23 [3] = m_rec->getDouble("ZSEP23_3")*CLHEP::cm; - m_esep_zsep23 [4] = m_rec->getDouble("ZSEP23_4")*CLHEP::cm; - m_esep_zsep23 [5] = m_rec->getDouble("ZSEP23_5")*CLHEP::cm; - m_esep_zsep23 [6] = m_rec->getDouble("ZSEP23_6")*CLHEP::cm; - m_esep_zsep23 [7] = m_rec->getDouble("ZSEP23_7")*CLHEP::cm; - m_esep_zsep23 [8] = m_rec->getDouble("ZSEP23_8")*CLHEP::cm; - m_esep_zsep23 [9] = m_rec->getDouble("ZSEP23_9")*CLHEP::cm; - m_esep_zsep23 [10] = m_rec->getDouble("ZSEP23_10")*CLHEP::cm; - m_esep_zsep23 [11] = m_rec->getDouble("ZSEP23_11")*CLHEP::cm; - m_esep_zsep23 [12] = m_rec->getDouble("ZSEP23_12")*CLHEP::cm; - m_esep_zsep23 [13] = m_rec->getDouble("ZSEP23_13")*CLHEP::cm; - m_esep_zsep23 [14] = m_rec->getDouble("ZSEP23_14")*CLHEP::cm; - m_esep_zsep23 [15] = m_rec->getDouble("ZSEP23_15")*CLHEP::cm; - m_esep_zsep23 [16] = m_rec->getDouble("ZSEP23_16")*CLHEP::cm; - m_esep_zsep23 [17] = m_rec->getDouble("ZSEP23_17")*CLHEP::cm; - m_esep_zsep23 [18] = m_rec->getDouble("ZSEP23_18")*CLHEP::cm; - m_esep_zsep23 [19] = m_rec->getDouble("ZSEP23_19")*CLHEP::cm; - m_esep_zsep23 [20] = m_rec->getDouble("ZSEP23_20")*CLHEP::cm; - m_esep_zsep23 [21] = m_rec->getDouble("ZSEP23_21")*CLHEP::cm; + m_esep_zsep23 [0] = m_rec->getDouble("ZSEP23_0")*GeoModelKernelUnits::cm; + m_esep_zsep23 [1] = m_rec->getDouble("ZSEP23_1")*GeoModelKernelUnits::cm; + m_esep_zsep23 [2] = m_rec->getDouble("ZSEP23_2")*GeoModelKernelUnits::cm; + m_esep_zsep23 [3] = m_rec->getDouble("ZSEP23_3")*GeoModelKernelUnits::cm; + m_esep_zsep23 [4] = m_rec->getDouble("ZSEP23_4")*GeoModelKernelUnits::cm; + m_esep_zsep23 [5] = m_rec->getDouble("ZSEP23_5")*GeoModelKernelUnits::cm; + m_esep_zsep23 [6] = m_rec->getDouble("ZSEP23_6")*GeoModelKernelUnits::cm; + m_esep_zsep23 [7] = m_rec->getDouble("ZSEP23_7")*GeoModelKernelUnits::cm; + m_esep_zsep23 [8] = m_rec->getDouble("ZSEP23_8")*GeoModelKernelUnits::cm; + m_esep_zsep23 [9] = m_rec->getDouble("ZSEP23_9")*GeoModelKernelUnits::cm; + m_esep_zsep23 [10] = m_rec->getDouble("ZSEP23_10")*GeoModelKernelUnits::cm; + m_esep_zsep23 [11] = m_rec->getDouble("ZSEP23_11")*GeoModelKernelUnits::cm; + m_esep_zsep23 [12] = m_rec->getDouble("ZSEP23_12")*GeoModelKernelUnits::cm; + m_esep_zsep23 [13] = m_rec->getDouble("ZSEP23_13")*GeoModelKernelUnits::cm; + m_esep_zsep23 [14] = m_rec->getDouble("ZSEP23_14")*GeoModelKernelUnits::cm; + m_esep_zsep23 [15] = m_rec->getDouble("ZSEP23_15")*GeoModelKernelUnits::cm; + m_esep_zsep23 [16] = m_rec->getDouble("ZSEP23_16")*GeoModelKernelUnits::cm; + m_esep_zsep23 [17] = m_rec->getDouble("ZSEP23_17")*GeoModelKernelUnits::cm; + m_esep_zsep23 [18] = m_rec->getDouble("ZSEP23_18")*GeoModelKernelUnits::cm; + m_esep_zsep23 [19] = m_rec->getDouble("ZSEP23_19")*GeoModelKernelUnits::cm; + m_esep_zsep23 [20] = m_rec->getDouble("ZSEP23_20")*GeoModelKernelUnits::cm; + m_esep_zsep23 [21] = m_rec->getDouble("ZSEP23_21")*GeoModelKernelUnits::cm; } } @@ -731,17 +730,17 @@ LArNumberHelper::db_nb_hec() // ---- Set default : /* - m_hec_in0 = 427.70*CLHEP::cm; // z_start - m_hec_in1 = 455.75*CLHEP::cm; // z_start+ 28.05*CLHEP::cm - m_hec_in2 = 513.40*CLHEP::cm; // z_start + 28.05*CLHEP::cm + 26.8*CLHEP::cm + 26.8*CLHEP::cm + 4.05*CLHEP::cm - m_hec_in3 = 562.70*CLHEP::cm; // z_start + 28.05*CLHEP::cm + 26.8*CLHEP::cm + 26.8*CLHEP::cm + 4.05*CLHEP::cm - // + 25.9*CLHEP::cm + 23.4*CLHEP::cm - m_hec_gap = 4.05*CLHEP::cm; // gap between the two HEC wheels + m_hec_in0 = 427.70*GeoModelKernelUnits::cm; // z_start + m_hec_in1 = 455.75*GeoModelKernelUnits::cm; // z_start+ 28.05*GeoModelKernelUnits::cm + m_hec_in2 = 513.40*GeoModelKernelUnits::cm; // z_start + 28.05*GeoModelKernelUnits::cm + 26.8*GeoModelKernelUnits::cm + 26.8*GeoModelKernelUnits::cm + 4.05*GeoModelKernelUnits::cm + m_hec_in3 = 562.70*GeoModelKernelUnits::cm; // z_start + 28.05*GeoModelKernelUnits::cm + 26.8*GeoModelKernelUnits::cm + 26.8*GeoModelKernelUnits::cm + 4.05*GeoModelKernelUnits::cm + // + 25.9*GeoModelKernelUnits::cm + 23.4*GeoModelKernelUnits::cm + m_hec_gap = 4.05*GeoModelKernelUnits::cm; // gap between the two HEC wheels // Comment from Sven Menke : // I don't know why the the Nova Z_end is 2.5cm more, but the active // volume must be the sum of all blocks plus the gap - thus it's 609.5*cm - m_hec_out = 609.5*CLHEP::cm; // z_end - 2.5*CLHEP::cm (or z_orig + all blocks) + m_hec_out = 609.5*GeoModelKernelUnits::cm; // z_end - 2.5*GeoModelKernelUnits::cm (or z_orig + all blocks) */ //std::cout << " ----- in db_nb_hec tags are : " << m_tag << " " << m_node << std::endl; @@ -758,31 +757,31 @@ LArNumberHelper::db_nb_hec() // Block0 = 1.25 cm Front Plate + // 8 times (0.85 cm LAr gap + 2.50 cm Plate) = 28.05 cm double Block0 = ( m_rec->getDouble("PLATE_0")/2. - + 8*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_0")))*CLHEP::cm; + + 8*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_0")))*GeoModelKernelUnits::cm; // HEC1 is Block1 + Block2 // Block1 = 8 times (0.85 cm LAr gap + 2.50 cm Plate) // = 26.80 cm - double Block1 = 8*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_0"))*CLHEP::cm; + double Block1 = 8*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_0"))*GeoModelKernelUnits::cm; double Block2 = Block1 ; // Gap = 4.05 cm - m_hec_gap = m_rec->getDouble("GAPWHL") *CLHEP::cm; + m_hec_gap = m_rec->getDouble("GAPWHL") *GeoModelKernelUnits::cm; // HEC2 is Block 3 + Block 4 // Block3 = 2.5 cm Front Plate + // 4 times (0.85 cm LAr gap + 5.00 cm Plate) = 25.90 cm double Block3 = ( m_rec->getDouble("PLATE_1")/2. - + 4*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_1")))*CLHEP::cm; + + 4*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_1")))*GeoModelKernelUnits::cm; // Block4 = 4 times (0.85 cm LAr gap + 5.00 cm Plate) = 23.40 cm - double Block4 = 4*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_1"))*CLHEP::cm; + double Block4 = 4*(m_rec->getDouble("LARG") + m_rec->getDouble("PLATE_1"))*GeoModelKernelUnits::cm; // HEC3 is Block 5 + Block 6 double Block5 = Block4 ; double Block6 = Block4; - double zstart = m_rec->getDouble("ZSTART") *CLHEP::cm; + double zstart = m_rec->getDouble("ZSTART") *GeoModelKernelUnits::cm; m_hec_in0 = zstart; m_hec_in1 = m_hec_in0 + Block0 ; @@ -1057,10 +1056,10 @@ LArNumberHelper::hard_fcal() // x and y are taken from drawings in the TDR for ( unsigned int i=0; i < m_fcal_id->module_hash_max(); i++ ) { - m_x_min_fcal [i] = 8.6*CLHEP::cm; - m_x_max_fcal [i] = 47.5*CLHEP::cm; + m_x_min_fcal [i] = 8.6*GeoModelKernelUnits::cm; + m_x_max_fcal [i] = 47.5*GeoModelKernelUnits::cm; m_y_min_fcal [i] = 8.6; - m_y_max_fcal [i] = 47.5*CLHEP::cm; + m_y_max_fcal [i] = 47.5*GeoModelKernelUnits::cm; m_phi_min_fcal[i] = 0.; m_phi_max_fcal[i] = 6.28; // when too close to 2pi pb @@ -1070,35 +1069,35 @@ LArNumberHelper::hard_fcal() //int pos_neg = m_fcal_id->pos_neg (m_region_id_fcal[i]); if ( mod == 1 ) { - m_dx_fcal [i] = 3.*CLHEP::cm; - m_dy_fcal [i] = 2.598*CLHEP::cm; - z_loc_in [0] = 466.85*CLHEP::cm; - z_loc_out [0] = z_loc_in [0]+45.*CLHEP::cm; + m_dx_fcal [i] = 3.*GeoModelKernelUnits::cm; + m_dy_fcal [i] = 2.598*GeoModelKernelUnits::cm; + z_loc_in [0] = 466.85*GeoModelKernelUnits::cm; + z_loc_out [0] = z_loc_in [0]+45.*GeoModelKernelUnits::cm; } else if ( mod == 2 ) { - m_dx_fcal [i] = 3.272*CLHEP::cm; - m_dy_fcal [i] = 4.25*CLHEP::cm; - z_loc_in [0] = 512.3*CLHEP::cm; - z_loc_out [0] = z_loc_in [0]+45.*CLHEP::cm; + m_dx_fcal [i] = 3.272*GeoModelKernelUnits::cm; + m_dy_fcal [i] = 4.25*GeoModelKernelUnits::cm; + z_loc_in [0] = 512.3*GeoModelKernelUnits::cm; + z_loc_out [0] = z_loc_in [0]+45.*GeoModelKernelUnits::cm; } else if ( mod == 3 ) { - m_dx_fcal [i] = 5.4*CLHEP::cm; - m_dy_fcal [i] = 4.677*CLHEP::cm; - z_loc_in [0] = 559.75*CLHEP::cm; - z_loc_out [0] = z_loc_in [0]+45.*CLHEP::cm; + m_dx_fcal [i] = 5.4*GeoModelKernelUnits::cm; + m_dy_fcal [i] = 4.677*GeoModelKernelUnits::cm; + z_loc_in [0] = 559.75*GeoModelKernelUnits::cm; + z_loc_out [0] = z_loc_in [0]+45.*GeoModelKernelUnits::cm; } else { m_dx_fcal [i] = 0.; m_dy_fcal [i] = 0.; z_loc_in [0] = 0.; - z_loc_out [0] = z_loc_in [0]+45.*CLHEP::cm; + z_loc_out [0] = z_loc_in [0]+45.*GeoModelKernelUnits::cm; } m_z_min_fcal [i] = z_loc_in [0]; - m_z_max_fcal [i] = m_z_min_fcal [i] + 45.*CLHEP::cm ; + m_z_max_fcal [i] = m_z_min_fcal [i] + 45.*GeoModelKernelUnits::cm ; double z = m_z_min_fcal [i]; double r = m_x_max_fcal [i]; @@ -1125,21 +1124,21 @@ LArNumberHelper::sagging_param( std::vector<double>& Rhocen, std::vector<double> if (m_lar->size()) { m_rec = (*m_lar)[0]; - Rhocen.push_back(m_rec->getDouble("RHOCEN_0")*CLHEP::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_1")*CLHEP::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_2")*CLHEP::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_3")*CLHEP::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_4")*CLHEP::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_5")*CLHEP::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_6")*CLHEP::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_7")*CLHEP::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_8")*CLHEP::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_9")*CLHEP::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_10")*CLHEP::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_11")*CLHEP::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_12")*CLHEP::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_13")*CLHEP::cm); - Rhocen.push_back(m_rec->getDouble("RHOCEN_14")*CLHEP::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_0")*GeoModelKernelUnits::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_1")*GeoModelKernelUnits::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_2")*GeoModelKernelUnits::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_3")*GeoModelKernelUnits::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_4")*GeoModelKernelUnits::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_5")*GeoModelKernelUnits::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_6")*GeoModelKernelUnits::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_7")*GeoModelKernelUnits::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_8")*GeoModelKernelUnits::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_9")*GeoModelKernelUnits::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_10")*GeoModelKernelUnits::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_11")*GeoModelKernelUnits::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_12")*GeoModelKernelUnits::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_13")*GeoModelKernelUnits::cm); + Rhocen.push_back(m_rec->getDouble("RHOCEN_14")*GeoModelKernelUnits::cm); } m_lar = m_iAccessSvc->getRecordsetPtr("BarrelSagging",m_tag,m_node); @@ -1147,21 +1146,21 @@ LArNumberHelper::sagging_param( std::vector<double>& Rhocen, std::vector<double> if (m_lar->size()) { m_rec = (*m_lar)[0]; - Sag.push_back(m_rec->getDouble("SAG_0")*CLHEP::cm); - Sag.push_back(m_rec->getDouble("SAG_1")*CLHEP::cm); - Sag.push_back(m_rec->getDouble("SAG_2")*CLHEP::cm); - Sag.push_back(m_rec->getDouble("SAG_3")*CLHEP::cm); - Sag.push_back(m_rec->getDouble("SAG_4")*CLHEP::cm); - Sag.push_back(m_rec->getDouble("SAG_5")*CLHEP::cm); - Sag.push_back(m_rec->getDouble("SAG_6")*CLHEP::cm); - Sag.push_back(m_rec->getDouble("SAG_7")*CLHEP::cm); - Sag.push_back(m_rec->getDouble("SAG_8")*CLHEP::cm); - Sag.push_back(m_rec->getDouble("SAG_9")*CLHEP::cm); - Sag.push_back(m_rec->getDouble("SAG_10")*CLHEP::cm); - Sag.push_back(m_rec->getDouble("SAG_11")*CLHEP::cm); - Sag.push_back(m_rec->getDouble("SAG_12")*CLHEP::cm); - Sag.push_back(m_rec->getDouble("SAG_13")*CLHEP::cm); - Sag.push_back(m_rec->getDouble("SAG_14")*CLHEP::cm); + Sag.push_back(m_rec->getDouble("SAG_0")*GeoModelKernelUnits::cm); + Sag.push_back(m_rec->getDouble("SAG_1")*GeoModelKernelUnits::cm); + Sag.push_back(m_rec->getDouble("SAG_2")*GeoModelKernelUnits::cm); + Sag.push_back(m_rec->getDouble("SAG_3")*GeoModelKernelUnits::cm); + Sag.push_back(m_rec->getDouble("SAG_4")*GeoModelKernelUnits::cm); + Sag.push_back(m_rec->getDouble("SAG_5")*GeoModelKernelUnits::cm); + Sag.push_back(m_rec->getDouble("SAG_6")*GeoModelKernelUnits::cm); + Sag.push_back(m_rec->getDouble("SAG_7")*GeoModelKernelUnits::cm); + Sag.push_back(m_rec->getDouble("SAG_8")*GeoModelKernelUnits::cm); + Sag.push_back(m_rec->getDouble("SAG_9")*GeoModelKernelUnits::cm); + Sag.push_back(m_rec->getDouble("SAG_10")*GeoModelKernelUnits::cm); + Sag.push_back(m_rec->getDouble("SAG_11")*GeoModelKernelUnits::cm); + Sag.push_back(m_rec->getDouble("SAG_12")*GeoModelKernelUnits::cm); + Sag.push_back(m_rec->getDouble("SAG_13")*GeoModelKernelUnits::cm); + Sag.push_back(m_rec->getDouble("SAG_14")*GeoModelKernelUnits::cm); } diff --git a/LArCalorimeter/LArDetDescr/src/LArRecoMaterialTool.cxx b/LArCalorimeter/LArDetDescr/src/LArRecoMaterialTool.cxx index 4e6a5b1b37bbd21905218decd3e2d1aed5a45f10..c2ce91bbfa0186359e50e138e096c90d80d2e852 100755 --- a/LArCalorimeter/LArDetDescr/src/LArRecoMaterialTool.cxx +++ b/LArCalorimeter/LArDetDescr/src/LArRecoMaterialTool.cxx @@ -19,6 +19,7 @@ #include "GeoModelUtilities/StoredPhysVol.h" #include "GeoModelKernel/GeoFullPhysVol.h" +#include "GeoModelKernel/Units.h" #include "CaloIdentifier/CaloIdManager.h" #include "CaloIdentifier/CaloCell_ID.h" @@ -342,7 +343,7 @@ LArRecoMaterialTool::ScanCRYO(CaloSubdetNames::ALIGNVOL alvol, childX0, childDeDx, childAverageA, childAverageZ, childRho ); - mass = childMass/CLHEP::gram; + mass = childMass/GeoModelKernelUnits::gram; x0 = childX0; dEdx = childDeDx; aveA = childAverageA; @@ -501,7 +502,7 @@ LArRecoMaterialTool::ScanPS(CaloSubdetNames::ALIGNVOL alvol, childX0, childDeDx, childAverageA, childAverageZ, childRho ); - mass = childMass*(1./CLHEP::gram); + mass = childMass*(1./GeoModelKernelUnits::gram); x0 = childX0; dEdx = childDeDx; aveA = childAverageA; @@ -656,7 +657,7 @@ LArRecoMaterialTool::ScanEMB(CaloSubdetNames::ALIGNVOL alvol, childX0, childDeDx, childAverageA, childAverageZ, childRho ); - mass = childMass*(1./CLHEP::gram); + mass = childMass*(1./GeoModelKernelUnits::gram); x0 = childX0; dEdx = childDeDx; aveA = childAverageA; @@ -852,7 +853,7 @@ LArRecoMaterialTool::ScanHEC(CaloSubdetNames::ALIGNVOL alvol, childX0, childDeDx, childAverageA, childAverageZ, childRho ); - mass = childMass*(1./CLHEP::gram); + mass = childMass*(1./GeoModelKernelUnits::gram); x0 = childX0; dEdx = childDeDx; aveA = childAverageA; @@ -1030,7 +1031,7 @@ LArRecoMaterialTool::ScanFCAL(CaloSubdetNames::ALIGNVOL alvol, childX0, childDeDx, childAverageA, childAverageZ, childRho ); - mass = childMass*(1./CLHEP::gram); + mass = childMass*(1./GeoModelKernelUnits::gram); x0 = childX0; dEdx = childDeDx; aveA = childAverageA; @@ -1096,13 +1097,13 @@ LArRecoMaterialTool::addMaterialFraction(const GeoLogVol& geoVol, double fraction = childMaterial->getFraction(iEl); ATH_MSG_DEBUG (" direct child : " << geoEl->getName() << " fraction = " << fraction - << " A= " << geoEl->getA()*(1./CLHEP::gram) << " Z= " << geoEl->getZ()); + << " A= " << geoEl->getA()*(1./GeoModelKernelUnits::gram) << " Z= " << geoEl->getZ()); volume.push_back(fraction*childVolume); mass.push_back(fraction*childVolume*childRho); x0.push_back(fraction*childX0); dEdX.push_back(fraction*childDeDx); - aveA.push_back(fraction*(geoEl->getA()*(1./CLHEP::gram))); + aveA.push_back(fraction*(geoEl->getA()*(1./GeoModelKernelUnits::gram))); aveZ.push_back(fraction*(geoEl->getZ())); } @@ -1145,12 +1146,12 @@ LArRecoMaterialTool::averageFraction (std::vector<double>& volumeFractions, childAverageZ += massfrac * averageZFractions[ivolfrac]; } - childRho = childMass/(CLHEP::gram*childVolume); + childRho = childMass/(GeoModelKernelUnits::gram*childVolume); ATH_MSG_DEBUG (""); ATH_MSG_DEBUG (" + averaged over " << parsedVolumes << " volumes "); ATH_MSG_DEBUG (" - volume [mm^3] : " << childVolume); - ATH_MSG_DEBUG (" - mass [gram] : " << childMass*(1./CLHEP::gram)); + ATH_MSG_DEBUG (" - mass [gram] : " << childMass*(1./GeoModelKernelUnits::gram)); ATH_MSG_DEBUG (" - rho [gram/mm^3] : " << childRho); ATH_MSG_DEBUG (" - X0 : " << childX0); ATH_MSG_DEBUG (" - DeDx : " << childDeDx); diff --git a/LArCalorimeter/LArDetDescr/src/LArRecoSimpleGeomTool.cxx b/LArCalorimeter/LArDetDescr/src/LArRecoSimpleGeomTool.cxx index 3ecf687c3a291d55455b4c0ae2a3a44cfeed25fb..7019b56fcf54085ca14c9febdc5e2fa79fe2c89a 100755 --- a/LArCalorimeter/LArDetDescr/src/LArRecoSimpleGeomTool.cxx +++ b/LArCalorimeter/LArDetDescr/src/LArRecoSimpleGeomTool.cxx @@ -20,8 +20,6 @@ #include "CaloDetDescr/CaloDetDescriptor.h" #include "CaloGeoHelpers/CaloPhiRange.h" -#include "CLHEP/Units/SystemOfUnits.h" - #include "RDBAccessSvc/IRDBAccessSvc.h" #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBRecord.h" @@ -29,6 +27,8 @@ #include "GeoModelUtilities/DecodeVersionKey.h" #include "GeoModelUtilities/StoredPhysVol.h" #include "GeoModelKernel/GeoFullPhysVol.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "GeoPrimitives/CLHEPtoEigenConverter.h" @@ -155,9 +155,7 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol, } GeoFullPhysVol* fullPV = storedPV->getPhysVol(); - //const AMG::Transform3D trf_eigen=fullPV->get - htrans = Amg::CLHEPTransformToEigen(fullPV->getAbsoluteTransform())* - Amg::CLHEPTransformToEigen(fullPV->getDefAbsoluteTransform()).inverse(); + htrans = fullPV->getAbsoluteTransform()*fullPV->getDefAbsoluteTransform().inverse(); hphi = m_phi_range.twopi(); @@ -172,17 +170,17 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol, if (lar->size()<14) return false; const IRDBRecord* rec = (*lar)[11]; - rad = rec->getDouble("RMIN")*CLHEP::cm; - len = rec->getDouble("DZ")*CLHEP::cm /2.; - dep = rec->getDouble("DR")*CLHEP::cm; + rad = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; + len = rec->getDouble("DZ")*GeoModelKernelUnits::cm /2.; + dep = rec->getDouble("DR")*GeoModelKernelUnits::cm; rec = (*lar)[12]; - dep = dep +rec->getDouble("DR")*CLHEP::cm; + dep = dep +rec->getDouble("DR")*GeoModelKernelUnits::cm; rec = (*lar)[13]; - dep = dep +rec->getDouble("DR")*CLHEP::cm; + dep = dep +rec->getDouble("DR")*GeoModelKernelUnits::cm; - //rad = 124.18*CLHEP::cm; - //dep = (.305 + 1.38 + .47 )*CLHEP::cm; - //len = 270.*CLHEP::cm; + //rad = 124.18*GeoModelKernelUnits::cm; + //dep = (.305 + 1.38 + .47 )*GeoModelKernelUnits::cm; + //len = 270.*GeoModelKernelUnits::cm; radius.push_back( rad + dep/2.); depth.push_back( dep/2. ); @@ -199,13 +197,13 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol, // CryoMother nb 10 const IRDBRecord* rec = (*lar)[10]; - rad = rec->getDouble("RMIN")*CLHEP::cm; - len = rec->getDouble("DZ")*CLHEP::cm /2.; - dep = rec->getDouble("DR")*CLHEP::cm; + rad = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; + len = rec->getDouble("DZ")*GeoModelKernelUnits::cm /2.; + dep = rec->getDouble("DR")*GeoModelKernelUnits::cm; - //rad = 122.9*CLHEP::cm; - //dep = 1.28*CLHEP::cm; - //len = 270.*CLHEP::cm; + //rad = 122.9*GeoModelKernelUnits::cm; + //dep = 1.28*GeoModelKernelUnits::cm; + //len = 270.*GeoModelKernelUnits::cm; radius.push_back( rad + dep/2. ); depth.push_back( dep /2.); @@ -213,13 +211,13 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol, // CryoMother nb 14 rec = (*lar)[14]; - rad = rec->getDouble("RMIN")*CLHEP::cm; - len = rec->getDouble("DZ")*CLHEP::cm /2.; - dep = rec->getDouble("DR")*CLHEP::cm; + rad = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; + len = rec->getDouble("DZ")*GeoModelKernelUnits::cm /2.; + dep = rec->getDouble("DR")*GeoModelKernelUnits::cm; - //rad = 126.335*CLHEP::cm; - //dep = 1.2*CLHEP::cm; - //len = 284.*CLHEP::cm; + //rad = 126.335*GeoModelKernelUnits::cm; + //dep = 1.2*GeoModelKernelUnits::cm; + //len = 284.*GeoModelKernelUnits::cm; radius.push_back( rad + dep/2.); depth.push_back( dep /2.); @@ -227,13 +225,13 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol, // CryoMother nb 0 rec = (*lar)[0]; - rad = rec->getDouble("RMIN")*CLHEP::cm; - len = rec->getDouble("DZ")*CLHEP::cm /2.; - dep = rec->getDouble("DR")*CLHEP::cm; + rad = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; + len = rec->getDouble("DZ")*GeoModelKernelUnits::cm /2.; + dep = rec->getDouble("DR")*GeoModelKernelUnits::cm; //rad = 2140*mm; //dep = 30*mm; - //len = 299.6*CLHEP::cm; + //len = 299.6*GeoModelKernelUnits::cm; radius.push_back( rad + dep/2. ); depth.push_back( dep /2.); @@ -241,13 +239,13 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol, // CryoMother nb 5 rec = (*lar)[5]; - rad = rec->getDouble("RMIN")*CLHEP::cm; - len = rec->getDouble("DZ")*CLHEP::cm /2.; - dep = rec->getDouble("DR")*CLHEP::cm; + rad = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; + len = rec->getDouble("DZ")*GeoModelKernelUnits::cm /2.; + dep = rec->getDouble("DR")*GeoModelKernelUnits::cm; //rad = 2220*mm; //dep = 30*mm; - //len = 285*CLHEP::cm; + //len = 285*GeoModelKernelUnits::cm; radius.push_back( rad + dep/2. ); depth.push_back( dep /2.); @@ -264,18 +262,18 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol, if (lar->size()==0) return false; const IRDBRecord* rec = (*lar)[0]; - rad = rec->getDouble("RMIN")*CLHEP::cm; - dep = rec->getDouble("RMAX")*CLHEP::cm - rad; + rad = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; + dep = rec->getDouble("RMAX")*GeoModelKernelUnits::cm - rad; lar = m_recBarrGeo; if ( !lar || lar->size()==0) return false; rec = (*lar)[0]; - len = rec->getDouble("ZMAX")*CLHEP::cm; + len = rec->getDouble("ZMAX")*GeoModelKernelUnits::cm; - //rad = 138.5*CLHEP::cm; - //dep = (144.7 - 138.5)*CLHEP::cm; - //len = 316.5*CLHEP::cm; + //rad = 138.5*GeoModelKernelUnits::cm; + //dep = (144.7 - 138.5)*GeoModelKernelUnits::cm; + //len = 316.5*GeoModelKernelUnits::cm; radius.push_back( rad + dep/2.); depth.push_back( dep /2.); @@ -292,13 +290,13 @@ LArRecoSimpleGeomTool::get_cylinder_surface (CaloSubdetNames::ALIGNVOL alvol, if (lar->size()==0) return false; const IRDBRecord* rec = (*lar)[0]; - rad = rec->getDouble("RMIN")*CLHEP::cm; - dep = rec->getDouble("RMAX")*CLHEP::cm - rad; - len = rec->getDouble("ZMAX")*CLHEP::cm; + rad = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; + dep = rec->getDouble("RMAX")*GeoModelKernelUnits::cm - rad; + len = rec->getDouble("ZMAX")*GeoModelKernelUnits::cm; - //rad = 1447.3*CLHEP::cm; - //dep = (2003.35 - 1447.3)*CLHEP::cm; - //len = 316.5*CLHEP::cm; + //rad = 1447.3*GeoModelKernelUnits::cm; + //dep = (2003.35 - 1447.3)*GeoModelKernelUnits::cm; + //len = 316.5*GeoModelKernelUnits::cm; radius.push_back( rad + dep/2.); depth.push_back( dep /2.); @@ -335,10 +333,7 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, } GeoFullPhysVol* fullPV = storedPV->getPhysVol(); - //htrans = fullPV->getAbsoluteTransform()*fullPV->getDefAbsoluteTransform().inverse(); - htrans = Amg::CLHEPTransformToEigen(fullPV->getAbsoluteTransform())* - Amg::CLHEPTransformToEigen(fullPV->getDefAbsoluteTransform()).inverse(); - + htrans = fullPV->getAbsoluteTransform()*fullPV->getDefAbsoluteTransform().inverse(); hphi = m_phi_range.twopi(); z.clear(); @@ -358,16 +353,16 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, const IRDBRecord* rec = (*lar)[49]; - ri = rec->getDouble("RMIN")*CLHEP::cm; - ra = ri + rec->getDouble("DR")*CLHEP::cm; - dep = rec->getDouble("DZ")*CLHEP::cm; - zcent = rec->getDouble("ZMIN")*CLHEP::cm + dep/2.; + ri = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; + ra = ri + rec->getDouble("DR")*GeoModelKernelUnits::cm; + dep = rec->getDouble("DZ")*GeoModelKernelUnits::cm; + zcent = rec->getDouble("ZMIN")*GeoModelKernelUnits::cm + dep/2.; if (alvol == CaloSubdetNames::LARCRYO_EC_NEG) zcent = -1. * zcent; - //ri = 22.1*CLHEP::cm; - //ra = (22.1 + 194.4)*CLHEP::cm; - //dep = 6.5*CLHEP::cm; - //zcent = (356.1 + dep/2.)*CLHEP::cm; + //ri = 22.1*GeoModelKernelUnits::cm; + //ra = (22.1 + 194.4)*GeoModelKernelUnits::cm; + //dep = 6.5*GeoModelKernelUnits::cm; + //zcent = (356.1 + dep/2.)*GeoModelKernelUnits::cm; rmin.push_back( ri ); rmax.push_back( ra ); @@ -377,16 +372,16 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, // DDDb : LAr / CryoCylinders / Endcap nb 6 rec = (*lar)[44]; - ri = rec->getDouble("RMIN")*CLHEP::cm; - ra = ri + rec->getDouble("DR")*CLHEP::cm; - dep = rec->getDouble("DZ")*CLHEP::cm; - zcent = rec->getDouble("ZMIN")*CLHEP::cm + dep/2.; + ri = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; + ra = ri + rec->getDouble("DR")*GeoModelKernelUnits::cm; + dep = rec->getDouble("DZ")*GeoModelKernelUnits::cm; + zcent = rec->getDouble("ZMIN")*GeoModelKernelUnits::cm + dep/2.; if (alvol == CaloSubdetNames::LARCRYO_EC_NEG) zcent = -1. * zcent; - //ri = 79.*CLHEP::cm; - //ra = (ri + 173.)*CLHEP::cm; - //dep = 6.*CLHEP::cm; - //zcent = (660.5 + dep/2.)*CLHEP::cm; + //ri = 79.*GeoModelKernelUnits::cm; + //ra = (ri + 173.)*GeoModelKernelUnits::cm; + //dep = 6.*GeoModelKernelUnits::cm; + //zcent = (660.5 + dep/2.)*GeoModelKernelUnits::cm; rmin.push_back( ri ); rmax.push_back( ra ); @@ -404,16 +399,16 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, const IRDBRecord* rec = (*lar)[0]; - ri = rec->getDouble("RMIN")*CLHEP::cm; - ra = rec->getDouble("RMAX")*CLHEP::cm; - dep = rec->getDouble("TCK")*CLHEP::cm; - zcent = rec->getDouble("ZPOS")*CLHEP::cm + dep/2.; + ri = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; + ra = rec->getDouble("RMAX")*GeoModelKernelUnits::cm; + dep = rec->getDouble("TCK")*GeoModelKernelUnits::cm; + zcent = rec->getDouble("ZPOS")*GeoModelKernelUnits::cm + dep/2.; if (alvol == CaloSubdetNames::PRESAMPLER_EC_NEG) zcent = -1. * zcent; - //ri = 123.174*CLHEP::cm; - //ra = 170.2*CLHEP::cm; - //dep = 0.4*CLHEP::cm; - //zcent = (362.4 + dep/2.)*CLHEP::cm; + //ri = 123.174*GeoModelKernelUnits::cm; + //ra = 170.2*GeoModelKernelUnits::cm; + //dep = 0.4*GeoModelKernelUnits::cm; + //zcent = (362.4 + dep/2.)*GeoModelKernelUnits::cm; rmin.push_back( ri ); rmax.push_back( ra ); @@ -431,16 +426,16 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, const IRDBRecord* rec = (*lar)[0]; - ri = rec->getDouble("RMIN")*CLHEP::cm; - ra = rec->getDouble("RMAX")*CLHEP::cm; - dep = rec->getDouble("ETOT")*CLHEP::cm; - zcent = rec->getDouble("Z1")*CLHEP::cm + dep/2.; + ri = rec->getDouble("RMIN")*GeoModelKernelUnits::cm; + ra = rec->getDouble("RMAX")*GeoModelKernelUnits::cm; + dep = rec->getDouble("ETOT")*GeoModelKernelUnits::cm; + zcent = rec->getDouble("Z1")*GeoModelKernelUnits::cm + dep/2.; if (alvol == CaloSubdetNames::EMEC_NEG) zcent = -1. * zcent; - //ri = 29.*CLHEP::cm; - //ra = 210.*CLHEP::cm; - //dep = 53.6*CLHEP::cm; - //zcent = (369.1 + dep/2.)*CLHEP::cm; + //ri = 29.*GeoModelKernelUnits::cm; + //ra = 210.*GeoModelKernelUnits::cm; + //dep = 53.6*GeoModelKernelUnits::cm; + //zcent = (369.1 + dep/2.)*GeoModelKernelUnits::cm; rmin.push_back( ri ); rmax.push_back( ra ); @@ -459,19 +454,19 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, const IRDBRecord* rec = (*lar)[0]; - ri = rec->getDouble("ROORIG")*CLHEP::cm; - ra = rec->getDouble("REND")*CLHEP::cm; + ri = rec->getDouble("ROORIG")*GeoModelKernelUnits::cm; + ra = rec->getDouble("REND")*GeoModelKernelUnits::cm; // Block0+Block1+Block2 dep = rec->getDouble("PLATE_0")/2. + 3*8*(rec->getDouble("LARG") + rec->getDouble("PLATE_0")); - dep = dep*CLHEP::cm; - zcent = rec->getDouble("ZSTART")*CLHEP::cm + dep/2.; + dep = dep*GeoModelKernelUnits::cm; + zcent = rec->getDouble("ZSTART")*GeoModelKernelUnits::cm + dep/2.; if (alvol == CaloSubdetNames::HEC1_NEG) zcent = -1. * zcent; - //ri = 37.2*CLHEP::cm; - //ra = 213.0*CLHEP::cm; - //dep = (513.4 - 4.05 - 427.7)*CLHEP::cm; - //zcent = 427.7*CLHEP::cm; + //ri = 37.2*GeoModelKernelUnits::cm; + //ra = 213.0*GeoModelKernelUnits::cm; + //dep = (513.4 - 4.05 - 427.7)*GeoModelKernelUnits::cm; + //zcent = 427.7*GeoModelKernelUnits::cm; rmin.push_back( ri ); rmax.push_back( ra ); @@ -491,24 +486,24 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, const IRDBRecord* rec = (*lar)[0]; - ri = rec->getDouble("ROORIG")*CLHEP::cm; - ra = rec->getDouble("REND")*CLHEP::cm; + ri = rec->getDouble("ROORIG")*GeoModelKernelUnits::cm; + ra = rec->getDouble("REND")*GeoModelKernelUnits::cm; // Block 3 + Block 4 + Block 5 + Block 6 dep = rec->getDouble("PLATE_1")/2. + 4*4*(rec->getDouble("LARG") + rec->getDouble("PLATE_1")); - dep = dep*CLHEP::cm; + dep = dep*GeoModelKernelUnits::cm; // start+depth of HEC1 + gap zcent = rec->getDouble("ZSTART") + rec->getDouble("PLATE_0")/2. + 3*8*(rec->getDouble("LARG") + rec->getDouble("PLATE_0")) + rec->getDouble("GAPWHL") ; - zcent = zcent*CLHEP::cm + dep/2.; + zcent = zcent*GeoModelKernelUnits::cm + dep/2.; if (alvol == CaloSubdetNames::HEC2_NEG) zcent = -1. * zcent; - //ri = 37.2*CLHEP::cm; - //ra = 213.0*CLHEP::cm; - //dep = (609.5 - 513.4)*CLHEP::cm; - //zcent = (513.4 + dep/2.)*CLHEP::cm; + //ri = 37.2*GeoModelKernelUnits::cm; + //ra = 213.0*GeoModelKernelUnits::cm; + //dep = (609.5 - 513.4)*GeoModelKernelUnits::cm; + //zcent = (513.4 + dep/2.)*GeoModelKernelUnits::cm; rmin.push_back( ri ); rmax.push_back( ra ); @@ -522,15 +517,15 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, // see LArNumberHelper - nb = 8.6*CLHEP::cm; + nb = 8.6*GeoModelKernelUnits::cm; rmin.push_back( nb ); - nb = 47.5*CLHEP::cm; + nb = 47.5*GeoModelKernelUnits::cm; rmax.push_back( nb ); - nb = 45.*CLHEP::cm; + nb = 45.*GeoModelKernelUnits::cm; depth.push_back( nb/2. ); - nb = (466.85 + nb/2. )*CLHEP::cm; + nb = (466.85 + nb/2. )*GeoModelKernelUnits::cm; if (alvol == CaloSubdetNames::FCAL1_NEG) nb = -1. * nb; z.push_back( nb ); @@ -541,15 +536,15 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, // see LArNumberHelper - nb = 8.6*CLHEP::cm; + nb = 8.6*GeoModelKernelUnits::cm; rmin.push_back( nb ); - nb = 47.5*CLHEP::cm; + nb = 47.5*GeoModelKernelUnits::cm; rmax.push_back( nb ); - nb = 45.*CLHEP::cm; + nb = 45.*GeoModelKernelUnits::cm; depth.push_back( nb/2. ); - nb = (512.3 + nb/2. )*CLHEP::cm; + nb = (512.3 + nb/2. )*GeoModelKernelUnits::cm; if (alvol == CaloSubdetNames::FCAL2_NEG) nb = -1. * nb; z.push_back( nb ); @@ -560,15 +555,15 @@ LArRecoSimpleGeomTool::get_disk_surface (CaloSubdetNames::ALIGNVOL alvol, // see LArNumberHelper - nb = 8.6*CLHEP::cm; + nb = 8.6*GeoModelKernelUnits::cm; rmin.push_back( nb ); - nb = 47.5*CLHEP::cm; + nb = 47.5*GeoModelKernelUnits::cm; rmax.push_back( nb ); - nb = 45.*CLHEP::cm; + nb = 45.*GeoModelKernelUnits::cm; depth.push_back( nb/2. ); - nb = (559.75 + nb/2. )*CLHEP::cm; + nb = (559.75 + nb/2. )*GeoModelKernelUnits::cm; if (alvol == CaloSubdetNames::FCAL3_NEG) nb = -1. * nb; z.push_back( nb ); @@ -605,10 +600,7 @@ LArRecoSimpleGeomTool::ScanBarrelCryo(CaloSubdetNames::ALIGNVOL alvol, } GeoFullPhysVol* fullPV = storedPV->getPhysVol(); - htrans = Amg::CLHEPTransformToEigen(fullPV->getAbsoluteTransform())* - Amg::CLHEPTransformToEigen(fullPV->getDefAbsoluteTransform()).inverse(); - - //htrans = fullPV->getAbsoluteTransform()*fullPV->getDefAbsoluteTransform().inverse(); + htrans = fullPV->getAbsoluteTransform()*fullPV->getDefAbsoluteTransform().inverse(); hphi = m_phi_range.twopi(); radius.clear(); @@ -640,9 +632,7 @@ LArRecoSimpleGeomTool::ScanEMB(CaloSubdetNames::ALIGNVOL alvol, } GeoFullPhysVol* fullPV = storedPV->getPhysVol(); - //htrans = fullPV->getAbsoluteTransform()*fullPV->getDefAbsoluteTransform().inverse(); - htrans = Amg::CLHEPTransformToEigen(fullPV->getAbsoluteTransform())* - Amg::CLHEPTransformToEigen(fullPV->getDefAbsoluteTransform()).inverse(); + htrans = fullPV->getAbsoluteTransform()*fullPV->getDefAbsoluteTransform().inverse(); hphi = m_phi_range.twopi(); radius.clear(); diff --git a/LArCalorimeter/LArG4/LArG4FastSimulation/CMakeLists.txt b/LArCalorimeter/LArG4/LArG4FastSimulation/CMakeLists.txt index ad1415072a1d24d44a173e1ea12ce86e22876f8c..64fea221b12b38adfca61dbd1268bb1b57a6ee33 100644 --- a/LArCalorimeter/LArG4/LArG4FastSimulation/CMakeLists.txt +++ b/LArCalorimeter/LArG4/LArG4FastSimulation/CMakeLists.txt @@ -10,8 +10,8 @@ atlas_depends_on_subdirs( PUBLIC GaudiKernel PRIVATE Control/StoreGate - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoSpecialShapes + DetectorDescription/GeoPrimitives LArCalorimeter/LArG4/LArG4Code LArCalorimeter/LArG4/LArG4ShowerLibSvc LArCalorimeter/LArGeoModel/LArReadoutGeometry @@ -24,6 +24,7 @@ find_package( Geant4 ) find_package( HepMC ) find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread Table MathMore Minuit Minuit2 Matrix Physics HistPainter Rint Graf Graf3d Gpad Html Postscript Gui GX11TTF GX11 ) find_package( XercesC ) +find_package( GeoModel ) # tag ROOTBasicLibs was not recognized in automatic conversion in cmt2cmake @@ -33,8 +34,8 @@ find_package( XercesC ) atlas_add_component( LArG4FastSimulation src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${XERCESC_LIBRARIES} ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} GaudiKernel StoreGateLib SGtests GeoModelKernel GeoSpecialShapes LArG4Code LArReadoutGeometry LArSimEvent G4AtlasToolsLib ) + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} ${XERCESC_LIBRARIES} ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} ${GEOMODEL_LIBRARIES} GaudiKernel StoreGateLib SGtests GeoSpecialShapes LArG4Code LArReadoutGeometry LArSimEvent G4AtlasToolsLib GeoPrimitives ) # Install files from the package: atlas_install_python_modules( python/*.py ) diff --git a/LArCalorimeter/LArG4/LArG4FastSimulation/src/BarrelFastSimDedicatedSD.cxx b/LArCalorimeter/LArG4/LArG4FastSimulation/src/BarrelFastSimDedicatedSD.cxx index 8e424d99fc4a95dbc5189915e663d7a12ffa6b97..14e2c54e6c35ba9900ba941067c08c191ed1b422 100644 --- a/LArCalorimeter/LArG4/LArG4FastSimulation/src/BarrelFastSimDedicatedSD.cxx +++ b/LArCalorimeter/LArG4/LArG4FastSimulation/src/BarrelFastSimDedicatedSD.cxx @@ -11,6 +11,9 @@ #include "LArReadoutGeometry/GeoStraightAccSection.h" #include "LArG4Code/EnergySpot.h" #include "StoreGate/StoreGateSvc.h" +#include "CLHEP/Geometry/Point3D.h" +#include "CLHEP/Geometry/Transform3D.h" +#include "GeoPrimitives/CLHEPtoEigenConverter.h" using HepGeom::Point3D; using HepGeom::Transform3D; @@ -37,8 +40,8 @@ void BarrelFastSimDedicatedSD::ProcessSpot(const EnergySpot & spot){ // Fill the identifier. Point3D<double> globalPosition=spot.GetPosition(); - static Transform3D xfNeg = m_embManager->getDetectorRegion(0,0,0)->getAbsoluteTransform().inverse(); - static Transform3D xfPos = m_embManager->getDetectorRegion(1,0,0)->getAbsoluteTransform().inverse(); + static Transform3D xfNeg = Amg::EigenTransformToCLHEP(m_embManager->getDetectorRegion(0,0,0)->getAbsoluteTransform().inverse()); + static Transform3D xfPos = Amg::EigenTransformToCLHEP(m_embManager->getDetectorRegion(1,0,0)->getAbsoluteTransform().inverse()); Point3D<double> localPosition = globalPosition.z()<0 ? xfNeg*globalPosition : xfPos*globalPosition; int zIndex = globalPosition.z() <0 ? 0:1; diff --git a/LArCalorimeter/LArG4/LArG4FastSimulation/src/EndcapFastSimDedicatedSD.cxx b/LArCalorimeter/LArG4/LArG4FastSimulation/src/EndcapFastSimDedicatedSD.cxx index 4b8f0082eb02638ff1765755c58d3a26360f57f7..f8d45b3582280a68bebcd8127cabdb94d2a581d3 100644 --- a/LArCalorimeter/LArG4/LArG4FastSimulation/src/EndcapFastSimDedicatedSD.cxx +++ b/LArCalorimeter/LArG4/LArG4FastSimulation/src/EndcapFastSimDedicatedSD.cxx @@ -11,6 +11,9 @@ #include "LArSimEvent/LArHitContainer.h" #include "GeoSpecialShapes/LArWheelCalculator.h" #include "StoreGate/StoreGateSvc.h" +#include "CLHEP/Geometry/Point3D.h" +#include "CLHEP/Geometry/Transform3D.h" +#include "GeoPrimitives/CLHEPtoEigenConverter.h" using HepGeom::Point3D; using HepGeom::Transform3D; @@ -40,8 +43,8 @@ void EndcapFastSimDedicatedSD::ProcessSpot(const EnergySpot & spot){ // Fill the identifier. Point3D<double> globalPosition=spot.GetPosition(); - static Transform3D xfPos = m_emecManager->getDetectorRegion(1,1,0,0)->getAbsoluteTransform().inverse(); - static Transform3D xfNeg = m_emecManager->getDetectorRegion(0,1,0,0)->getAbsoluteTransform().inverse(); + static Transform3D xfPos = Amg::EigenTransformToCLHEP(m_emecManager->getDetectorRegion(1,1,0,0)->getAbsoluteTransform().inverse()); + static Transform3D xfNeg = Amg::EigenTransformToCLHEP(m_emecManager->getDetectorRegion(0,1,0,0)->getAbsoluteTransform().inverse()); Point3D<double> localPosition = globalPosition.z()<0 ? xfNeg*globalPosition : xfPos*globalPosition; diff --git a/LArCalorimeter/LArG4/LArG4FastSimulation/src/FCALFastSimDedicatedSD.cxx b/LArCalorimeter/LArG4/LArG4FastSimulation/src/FCALFastSimDedicatedSD.cxx index 9b3847a23f4c7e8dda5f8fbbf44fdd838f60f750..8bf38caf18f002fbb7dca94b497d0a1b4cc0e374 100644 --- a/LArCalorimeter/LArG4/LArG4FastSimulation/src/FCALFastSimDedicatedSD.cxx +++ b/LArCalorimeter/LArG4/LArG4FastSimulation/src/FCALFastSimDedicatedSD.cxx @@ -11,6 +11,9 @@ #include "LArSimEvent/LArHitContainer.h" #include "GeoModelKernel/GeoTubs.h" #include "StoreGate/StoreGateSvc.h" +#include "CLHEP/Geometry/Transform3D.h" +#include "CLHEP/Geometry/Point3D.h" +#include "GeoPrimitives/CLHEPtoEigenConverter.h" using HepGeom::Transform3D; using HepGeom::Point3D; @@ -31,14 +34,14 @@ void FCALFastSimDedicatedSD::ProcessSpot(const EnergySpot & spot){ // Fill the identifier. static Transform3D xfNeg[3] = { - m_fcalManager->getFCAL(FCALModule::Module(1),FCALModule::Endcap(0))->getAbsoluteTransform().inverse(), - m_fcalManager->getFCAL(FCALModule::Module(2),FCALModule::Endcap(0))->getAbsoluteTransform().inverse(), - m_fcalManager->getFCAL(FCALModule::Module(3),FCALModule::Endcap(0))->getAbsoluteTransform().inverse()}; + Amg::EigenTransformToCLHEP(m_fcalManager->getFCAL(FCALModule::Module(1),FCALModule::Endcap(0))->getAbsoluteTransform().inverse()), + Amg::EigenTransformToCLHEP(m_fcalManager->getFCAL(FCALModule::Module(2),FCALModule::Endcap(0))->getAbsoluteTransform().inverse()), + Amg::EigenTransformToCLHEP(m_fcalManager->getFCAL(FCALModule::Module(3),FCALModule::Endcap(0))->getAbsoluteTransform().inverse())}; static Transform3D xfPos[3] = { - m_fcalManager->getFCAL(FCALModule::Module(1),FCALModule::Endcap(1))->getAbsoluteTransform().inverse(), - m_fcalManager->getFCAL(FCALModule::Module(2),FCALModule::Endcap(1))->getAbsoluteTransform().inverse(), - m_fcalManager->getFCAL(FCALModule::Module(3),FCALModule::Endcap(1))->getAbsoluteTransform().inverse()}; + Amg::EigenTransformToCLHEP(m_fcalManager->getFCAL(FCALModule::Module(1),FCALModule::Endcap(1))->getAbsoluteTransform().inverse()), + Amg::EigenTransformToCLHEP(m_fcalManager->getFCAL(FCALModule::Module(2),FCALModule::Endcap(1))->getAbsoluteTransform().inverse()), + Amg::EigenTransformToCLHEP(m_fcalManager->getFCAL(FCALModule::Module(3),FCALModule::Endcap(1))->getAbsoluteTransform().inverse())}; static const GeoTubs * fcalTubs[3] = { (const GeoTubs *) m_fcalManager->getFCAL(FCALModule::Module(1),FCALModule::Endcap(0))->getMaterialGeom()->getLogVol()->getShape(), diff --git a/LArCalorimeter/LArG4/LArG4Validation/CMakeLists.txt b/LArCalorimeter/LArG4/LArG4Validation/CMakeLists.txt index 9bc68503a7b3666ccd2e47e762c0ef50a3963301..7195106ef9093e2a43584c1a5465bb7dad3b7bd3 100644 --- a/LArCalorimeter/LArG4/LArG4Validation/CMakeLists.txt +++ b/LArCalorimeter/LArG4/LArG4Validation/CMakeLists.txt @@ -15,7 +15,6 @@ atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel Control/StoreGate DetectorDescription/GeoModel/GeoAdaptors - DetectorDescription/GeoModel/GeoModelKernel Event/EventInfo Generators/GeneratorObjects LArCalorimeter/LArSimEvent @@ -32,8 +31,8 @@ find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) atlas_add_component( LArG4Validation src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${HEPPDT_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${HEPPDT_LIBRARIES} ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} GaudiKernel CaloDetDescrLib CaloIdentifier AthenaBaseComps StoreGateLib SGtests GeoAdaptors GeoModelKernel EventInfo GeneratorObjects LArSimEvent MagFieldInterfaces egammaEvent ) + INCLUDE_DIRS ${HEPPDT_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} + LINK_LIBRARIES ${HEPPDT_LIBRARIES} ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} GaudiKernel CaloDetDescrLib CaloIdentifier AthenaBaseComps StoreGateLib SGtests GeoAdaptors EventInfo GeneratorObjects LArSimEvent MagFieldInterfaces egammaEvent ) # Install files from the package: atlas_install_headers( LArG4Validation ) diff --git a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoXPEngine.cxx b/LArCalorimeter/LArG4/LArG4Validation/src/GeoXPEngine.cxx similarity index 98% rename from DetectorDescription/GeoModel/GeoModelKernel/src/GeoXPEngine.cxx rename to LArCalorimeter/LArG4/LArG4Validation/src/GeoXPEngine.cxx index ad32b1ecea5675ece680b4a2d4cb4819c73995b4..7b4080386e94876bb30c97a6a28ebbce574881b3 100755 --- a/DetectorDescription/GeoModel/GeoModelKernel/src/GeoXPEngine.cxx +++ b/LArCalorimeter/LArG4/LArG4Validation/src/GeoXPEngine.cxx @@ -2,7 +2,7 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#include "GeoModelKernel/GeoXPEngine.h" +#include "GeoXPEngine.h" #include "CLHEP/GenericFunctions/Variable.hh" #include "CLHEP/GenericFunctions/FixedConstant.hh" #include "CLHEP/GenericFunctions/RKIntegrator.hh" diff --git a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoXPEngine.h b/LArCalorimeter/LArG4/LArG4Validation/src/GeoXPEngine.h similarity index 93% rename from DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoXPEngine.h rename to LArCalorimeter/LArG4/LArG4Validation/src/GeoXPEngine.h index 0056fb5ea4f18a6e5731adf70ffb3d2577506ddb..37b0468d4d31ca068ca1e6adc641297adcc414f9 100755 --- a/DetectorDescription/GeoModel/GeoModelKernel/GeoModelKernel/GeoXPEngine.h +++ b/LArCalorimeter/LArG4/LArG4Validation/src/GeoXPEngine.h @@ -9,17 +9,16 @@ // This class does a Runge-Kutta integration of a particle in a magnetic // // field, without any slowing due to interactions with matter. // // --------------------------------------------------------------------------// -#ifndef GEOMODELKERNEL_GEOXPENGINE_H -#define GEOMODELKERNEL_GEOXPENGINE_H + +#ifndef LARG4VALIDATION_GEOXPENGINE_H +#define LARG4VALIDATION_GEOXPENGINE_H #include <CLHEP/Geometry/Point3D.h> #include <CLHEP/Vector/LorentzVector.h> -////class HepGeom::Point3D<double>; -////class CLHEP::HepLorentzVector; + namespace Genfun { class AbsFunction; } - class GeoXPEngine { public: @@ -60,8 +59,6 @@ class GeoXPEngine { const Genfun::AbsFunction *m_py; const Genfun::AbsFunction *m_pz; - - }; #endif diff --git a/LArCalorimeter/LArG4/LArG4Validation/src/SingleTrackValidation.cxx b/LArCalorimeter/LArG4/LArG4Validation/src/SingleTrackValidation.cxx index f54fd7c96713bc71cda0338bd0ea7830a860147f..ca57b57ffb124bc3c06cf5ad8a8b18e574d14454 100755 --- a/LArCalorimeter/LArG4/LArG4Validation/src/SingleTrackValidation.cxx +++ b/LArCalorimeter/LArG4/LArG4Validation/src/SingleTrackValidation.cxx @@ -23,7 +23,7 @@ // To extrapolate: #include "AtlasBComponent.h" -#include "GeoModelKernel/GeoXPEngine.h" +#include "GeoXPEngine.h" // To interpret LAr Geometry information: #include "CaloDetDescr/CaloDetDescrManager.h" diff --git a/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/CMakeLists.txt index 581fc4239833e9b63ee69f18f4d3d81ac969de01..70a9c43cde37c79c248b6ea828e79dd017c085af 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/CMakeLists.txt @@ -8,7 +8,6 @@ atlas_subdir( LArGeoAlgsNV ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC Control/IOVSvc - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities LArCalorimeter/LArGeoModel/LArReadoutGeometry PRIVATE @@ -18,6 +17,7 @@ atlas_depends_on_subdirs( PUBLIC Database/RDBAccessSvc DetectorDescription/DetDescrCond/DetDescrConditions DetectorDescription/GeoModel/GeoModelInterfaces + DetectorDescription/GeoPrimitives GaudiKernel LArCalorimeter/LArGeoModel/LArGeoBarrel LArCalorimeter/LArGeoModel/LArGeoCode @@ -30,13 +30,15 @@ atlas_depends_on_subdirs( PUBLIC find_package( Boost COMPONENTS filesystem thread system ) find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( LArGeoAlgsNV src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} IOVSvcLib GeoModelKernel GeoModelUtilities LArReadoutGeometry SGTools StoreGateLib SGtests DetDescrConditions GaudiKernel LArGeoBarrel LArGeoCode LArGeoEndcap LArGeoRAL LArGeoTBBarrel LArHV ) + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} ${EIGEN_LIBRARIES} IOVSvcLib GeoModelUtilities LArReadoutGeometry SGTools StoreGateLib SGtests DetDescrConditions GaudiKernel LArGeoBarrel LArGeoCode LArGeoEndcap LArGeoRAL LArGeoTBBarrel LArHV ) # Install files from the package: atlas_install_headers( LArGeoAlgsNV ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorFactory.cxx b/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorFactory.cxx index a7084dbe85275e9b2cdffef6b0ec4d4997820bdd..3ff752ce74b884a6e5be9e2a56bae3a07a4c9e9a 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorFactory.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorFactory.cxx @@ -16,6 +16,8 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoShapeUnion.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "CLHEP/Geometry/Transform3D.h" @@ -181,7 +183,7 @@ void LArGeo::LArDetectorFactory::create( GeoPhysVol* a_container ) // --- Barrel const IRDBRecord *barrelRec = GeoDBUtils::getTransformRecord(larPosition,"LARCRYO_B"); if(!barrelRec) throw std::runtime_error("Error, no lar position record in the database"); - HepGeom::Transform3D xfBarrel = GeoDBUtils::getTransform(barrelRec); + GeoTrf::Transform3D xfBarrel = GeoDBUtils::getTransform(barrelRec); GeoAlignableTransform* barrelAlXf = new GeoAlignableTransform(xfBarrel); { @@ -201,7 +203,7 @@ void LArGeo::LArDetectorFactory::create( GeoPhysVol* a_container ) // --- Endcap Pos const IRDBRecord *posRec = GeoDBUtils::getTransformRecord(larPosition, "LARCRYO_EC_POS"); if (!posRec) throw std::runtime_error("Error, no lar position record in the database") ; - HepGeom::Transform3D xfPos = GeoDBUtils::getTransform(posRec); + GeoTrf::Transform3D xfPos = GeoDBUtils::getTransform(posRec); GeoAlignableTransform *xfEndcapPos = new GeoAlignableTransform(xfPos); { @@ -217,7 +219,7 @@ void LArGeo::LArDetectorFactory::create( GeoPhysVol* a_container ) // --- Endcap Neg const IRDBRecord *negRec = GeoDBUtils::getTransformRecord(larPosition, "LARCRYO_EC_NEG"); if (!negRec) throw std::runtime_error("Error, no lar position record in the database") ; - HepGeom::Transform3D xfNeg = GeoDBUtils::getTransform(negRec); + GeoTrf::Transform3D xfNeg = GeoDBUtils::getTransform(negRec); GeoAlignableTransform *xfEndcapNeg = new GeoAlignableTransform(xfNeg); { @@ -235,7 +237,7 @@ void LArGeo::LArDetectorFactory::create( GeoPhysVol* a_container ) a_container->add(endcapEnvelopePos); a_container->add( new GeoNameTag("LArEndcapNeg")); a_container->add(xfEndcapNeg); - a_container->add( new GeoTransform(HepGeom::RotateY3D(180.0*CLHEP::deg))); + a_container->add( new GeoTransform(GeoTrf::RotateY3D(180.0*GeoModelKernelUnits::deg))); a_container->add(endcapEnvelopeNeg); } else if(!m_buildEndcap) @@ -243,7 +245,7 @@ void LArGeo::LArDetectorFactory::create( GeoPhysVol* a_container ) // -- Build the Barrel only const IRDBRecord *barrelRec = GeoDBUtils::getTransformRecord(larPosition,"LARCRYO_B"); if(!barrelRec) throw std::runtime_error("Error, no lar position record in the database"); - HepGeom::Transform3D xfBarrel = GeoDBUtils::getTransform(barrelRec); + GeoTrf::Transform3D xfBarrel = GeoDBUtils::getTransform(barrelRec); GeoAlignableTransform* barrelAlXf = new GeoAlignableTransform(xfBarrel); { @@ -266,7 +268,7 @@ void LArGeo::LArDetectorFactory::create( GeoPhysVol* a_container ) // --- Endcap Pos const IRDBRecord *posRec = GeoDBUtils::getTransformRecord(larPosition, "LARCRYO_EC_POS"); if (!posRec) throw std::runtime_error("Error, no lar position record in the database") ; - HepGeom::Transform3D xfPos = GeoDBUtils::getTransform(posRec); + GeoTrf::Transform3D xfPos = GeoDBUtils::getTransform(posRec); GeoAlignableTransform *xfEndcapPos = new GeoAlignableTransform(xfPos); { @@ -282,7 +284,7 @@ void LArGeo::LArDetectorFactory::create( GeoPhysVol* a_container ) // --- Endcap Neg const IRDBRecord *negRec = GeoDBUtils::getTransformRecord(larPosition, "LARCRYO_EC_NEG"); if (!negRec) throw std::runtime_error("Error, no lar position record in the database") ; - HepGeom::Transform3D xfNeg = GeoDBUtils::getTransform(negRec); + GeoTrf::Transform3D xfNeg = GeoDBUtils::getTransform(negRec); GeoAlignableTransform *xfEndcapNeg = new GeoAlignableTransform(xfNeg); { @@ -300,7 +302,7 @@ void LArGeo::LArDetectorFactory::create( GeoPhysVol* a_container ) a_container->add(endcapEnvelopePos); a_container->add( new GeoNameTag("LArEndcapNeg")); a_container->add(xfEndcapNeg); - a_container->add( new GeoTransform(HepGeom::RotateY3D(180.0*CLHEP::deg))); + a_container->add( new GeoTransform(GeoTrf::RotateY3D(180.0*GeoModelKernelUnits::deg))); a_container->add(endcapEnvelopeNeg); } diff --git a/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorFactory.h b/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorFactory.h index 497b3e31760e5b1384eea6fb430ba747dec2be63..78f814b3bc419bbafb8337d5d58f63eb40e80a32 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorFactory.h +++ b/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorFactory.h @@ -10,8 +10,8 @@ * $Id: LArDetectorFactory.h,v 1.4 2009-02-10 16:43:17 tsulaia Exp $ */ -#ifndef LArGeo_LArDetectorFactory_h -#define LArGeo_LArDetectorFactory_h +#ifndef LARGEOALGSNV_LARDETECTORFACTORY_H +#define LARGEOALGSNV_LARDETECTORFACTORY_H #include "LArReadoutGeometry/LArDetectorManager.h" #include "GeoModelKernel/GeoVDetectorFactory.h" diff --git a/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorTool.cxx b/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorTool.cxx index 3649ee7794598a9d77d0ec5f1ec7eff205b4e558..0d85ea1426c731f322d99fb0c98282c825e4863b 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorTool.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorTool.cxx @@ -21,6 +21,7 @@ #include "RDBAccessSvc/IRDBRecordset.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoGraphNode.h" +#include "GeoPrimitives/CLHEPtoEigenConverter.h" #include "DetDescrConditions/DetCondKeyTrans.h" @@ -41,17 +42,18 @@ #define LAR_ALIGN "/LAR/Align" -LArDetectorToolNV::LArDetectorToolNV(const std::string& type, - const std::string& name, - const IInterface* parent) - : GeoModelTool(type,name,parent), - m_barrelSaggingOn(false), - m_barrelVisLimit(-1), - m_fcalVisLimit(-1), - m_buildBarrel(true), - m_buildEndcap(true), - m_applyAlignments(false), - m_geometryConfig("FULL") +LArDetectorToolNV::LArDetectorToolNV(const std::string& type + , const std::string& name + , const IInterface* parent) + : GeoModelTool(type,name,parent) + , m_barrelSaggingOn(false) + , m_barrelVisLimit(-1) + , m_fcalVisLimit(-1) + , m_buildBarrel(true) + , m_buildEndcap(true) + , m_applyAlignments(false) + , m_manager{nullptr} + , m_geometryConfig("FULL") { declareProperty("SaggingBarrelAccordeon",m_barrelSaggingOn); declareProperty("BarrelCellVisLimit", m_barrelVisLimit); @@ -61,8 +63,6 @@ LArDetectorToolNV::LArDetectorToolNV(const std::string& type, declareProperty("BuildEndcap", m_buildEndcap); declareProperty("ApplyAlignments", m_applyAlignments); declareProperty("GeometryConfig", m_geometryConfig); - m_manager = 0; - } LArDetectorToolNV::~LArDetectorToolNV() @@ -73,13 +73,6 @@ LArDetectorToolNV::~LArDetectorToolNV() StatusCode LArDetectorToolNV::create() { - IMessageSvc* msgSvc; - if(StatusCode::FAILURE==service ("MessageSvc",msgSvc)) - { - std::cerr << "LArDetectorToolNV::create ERROR unable to get message service!\n"; - return StatusCode::FAILURE; - } - // Initialize the HV System: const EMBHVManager *embHV=new EMBHVManager(); const EMECHVManager *emecHVI= new EMECHVManager(EMECHVModule::INNER); @@ -89,80 +82,60 @@ StatusCode LArDetectorToolNV::create() const EMBPresamplerHVManager *embPSHV = new EMBPresamplerHVManager(); const EMECPresamplerHVManager *emecPSHV = new EMECPresamplerHVManager(); - LArHVManager *hvManager= new LArHVManager(embHV,emecHVI, emecHVO, hecHV, fcalHV,embPSHV, emecPSHV); - - MsgStream log(msgSvc, name()); - if (StatusCode::SUCCESS != detStore()->record(hvManager,"LArHVManager")) { - log << MSG::ERROR << "Unable to record LArHVManager in detector store " << endmsg; - return StatusCode::FAILURE; - } - + ATH_CHECK(detStore()->record(hvManager,"LArHVManager")); // Get the detector configuration. - IGeoDbTagSvc *geoDbTag; - if(StatusCode::FAILURE==service ("GeoDbTagSvc",geoDbTag)) - { - log << MSG::ERROR << "Unable to get GeoDbTag service" << endmsg; - return StatusCode::FAILURE; - } + ServiceHandle<IGeoDbTagSvc> geoDbTag("GeoDbTagSvc",name()); + ATH_CHECK(geoDbTag.retrieve()); std::string AtlasVersion = geoDbTag->atlasVersion(); std::string LArVersion = geoDbTag->LAr_VersionOverride(); - IRDBAccessSvc *accessSvc; - if(StatusCode::FAILURE==service("RDBAccessSvc",accessSvc)) - { - log << MSG::ERROR << "Unable to get RDBAccess service" << endmsg; - return StatusCode::FAILURE; - } + ServiceHandle<IRDBAccessSvc> accessSvc("RDBAccessSvc",name()); + ATH_CHECK(accessSvc.retrieve()); std::string detectorKey = LArVersion.empty() ? AtlasVersion : LArVersion; std::string detectorNode = LArVersion.empty() ? "ATLAS" : "LAr"; - log << MSG::INFO << "Keys for LAr are " << detectorKey << " " << detectorNode << endmsg; - log << MSG::INFO << "Building LAr version " << geoDbTag->LAr_Version() - << " while ATLAS version is " << AtlasVersion << endmsg; - - if(LArVersion=="CUSTOM") - { - log << MSG::WARNING << "LArDetectorToolNV: Detector Information coming from a custom configuration!!" - << endmsg; + ATH_MSG_INFO("Keys for LAr are " << detectorKey << " " << detectorNode); + ATH_MSG_INFO("Building LAr version " << geoDbTag->LAr_Version() + << " while ATLAS version is " << AtlasVersion); + + if(LArVersion=="CUSTOM") { + ATH_MSG_WARNING("LArDetectorToolNV: Detector Information coming from a custom configuration!!"); } - else - { + else { IRDBRecordset_ptr switchSet = accessSvc->getRecordsetPtr("LArSwitches", detectorKey, detectorNode); - if ((*switchSet).size()==0) return StatusCode::FAILURE; + if ((*switchSet).size()==0) { + ATH_MSG_ERROR("Unable to retrieve LArSwitches from Geometry DB"); + return StatusCode::FAILURE; + } const IRDBRecord *switches = (*switchSet)[0]; - m_barrelSaggingOn = switches->getInt("SAGGING"); - try - { - if (!switches->isFieldNull("BARREL_ON")) + try { + if (!switches->isFieldNull("BARREL_ON")) { m_buildBarrel = switches->getInt("BARREL_ON"); + } - if (!switches->isFieldNull("ENDCAP_ON")) + if (!switches->isFieldNull("ENDCAP_ON")) { m_buildEndcap = switches->getInt("ENDCAP_ON"); + } } - catch(std::exception& e) - { - log << MSG::DEBUG << e.what() << endmsg; + catch(const std::exception& e) { + ATH_MSG_DEBUG(e.what()); } } - log << MSG::INFO << "LAr Geometry Options:" << endmsg; - log << MSG::INFO << " Sagging = " << (m_barrelSaggingOn ? "true" : "false") << endmsg; - log << MSG::INFO << " Barrel = " << (m_buildBarrel ? "ON" : "OFF") << endmsg; - log << MSG::INFO << " Endcap = " << (m_buildEndcap ? "ON" : "OFF") << endmsg; + ATH_MSG_INFO("LAr Geometry Options:" ); + ATH_MSG_INFO(" Sagging = " << (m_barrelSaggingOn ? "true" : "false")); + ATH_MSG_INFO(" Barrel = " << (m_buildBarrel ? "ON" : "OFF")); + ATH_MSG_INFO(" Endcap = " << (m_buildEndcap ? "ON" : "OFF")); // Locate the top level experiment node - GeoModelExperiment* theExpt = nullptr; - if (StatusCode::SUCCESS != detStore()->retrieve( theExpt, "ATLAS" )) - { - log << MSG::ERROR << "Could not find GeoModelExperiment ATLAS" << endmsg; - return (StatusCode::FAILURE); - } + DataHandle<GeoModelExperiment> theExpt; + ATH_CHECK(detStore()->retrieve(theExpt,"ATLAS")); // determine the geometry layout - Atlas/Testbeam std::string geometryLayout = "Atlas"; @@ -171,7 +144,6 @@ StatusCode LArDetectorToolNV::create() // testbeam=1 H8 test beam => build GeoModel in LArDetectorFactory // testbeam=2 H6 test beam => don't build GeoModel in LArDetectorFactory - std::string LArTag = accessSvc->getChildTag("LAr",detectorKey,detectorNode); if(LArTag.find("H8")!=std::string::npos) { @@ -182,8 +154,9 @@ StatusCode LArDetectorToolNV::create() geometryLayout = "H6"; testbeam = 2 ; } - else if(LArTag.find("G3")!=std::string::npos) + else if(LArTag.find("G3")!=std::string::npos) { geometryLayout = "G3"; + } LArGeo::LArDetectorFactory theLArFactory(testbeam,m_geometryConfig=="FULL"); @@ -193,30 +166,17 @@ StatusCode LArDetectorToolNV::create() theLArFactory.setBuildBarrel(m_buildBarrel); theLArFactory.setBuildEndcap(m_buildEndcap); - - - if (0 == m_detector) - { + if(m_detector==nullptr) { GeoPhysVol *world=&*theExpt->getPhysVol(); theLArFactory.create(world); m_manager = theLArFactory.getDetectorManager(); - if (StatusCode::SUCCESS != detStore()->record(theLArFactory.getDetectorManager(), - theLArFactory.getDetectorManager()->getName())) - { - log << MSG::ERROR << "Could not record" << endmsg; - return (StatusCode::FAILURE); - } - + ATH_CHECK(detStore()->record(theLArFactory.getDetectorManager(),theLArFactory.getDetectorManager()->getName())); theExpt->addManager(theLArFactory.getDetectorManager()); // Release RDB Recordsets if we are inside reco job - if(m_geometryConfig=="RECO") - LArGeo::VDetectorParameters::SetInstance(0); - + if(m_geometryConfig=="RECO") LArGeo::VDetectorParameters::SetInstance(0); return StatusCode::SUCCESS; } - - return StatusCode::FAILURE; } @@ -224,14 +184,14 @@ StatusCode LArDetectorToolNV::clear() { std::vector<std::string>::const_iterator itStored; - StoredPhysVol* storedPV(0); + StoredPhysVol* storedPV{nullptr}; StatusCode status(StatusCode::SUCCESS); std::vector<std::string> sgkeysFPV = detStore()->keys<StoredPhysVol>(); // First loop over all Full Physical volumes and initialize their global position informations for(itStored=sgkeysFPV.begin();itStored!=sgkeysFPV.end();itStored++) { status = detStore()->retrieve(storedPV,*itStored); if(status.isFailure()) { - storedPV = 0; + storedPV = nullptr; continue; } @@ -244,7 +204,7 @@ StatusCode LArDetectorToolNV::clear() for(itStored=sgkeysFPV.begin();itStored!=sgkeysFPV.end();itStored++) { status = detStore()->retrieve(storedPV,*itStored); if(status.isFailure()) { - storedPV = 0; + storedPV = nullptr; continue; } @@ -257,15 +217,14 @@ StatusCode LArDetectorToolNV::clear() std::vector<std::string> sgkeysAXF = detStore()->keys<StoredAlignX>(); for(itStored=sgkeysAXF.begin();itStored!=sgkeysAXF.end();itStored++) { SG::DataProxy* proxy = detStore()->proxy(ClassID_traits<StoredAlignX>::ID(),*itStored); - if(proxy) - proxy->reset(); + if(proxy) proxy->reset(); } // Release manager from the detector store SG::DataProxy* proxy = detStore()->proxy(ClassID_traits<LArDetectorManager>::ID(),m_manager->getName()); if(proxy) { proxy->reset(); - m_manager = 0; + m_manager = nullptr; } return StatusCode::SUCCESS; @@ -274,224 +233,212 @@ StatusCode LArDetectorToolNV::clear() StatusCode LArDetectorToolNV::registerCallback() { // Return FAILURE if no callbacks have been registered - MsgStream log(msgSvc(), name()); - - if(!m_applyAlignments) - { - log << MSG::DEBUG << "LAr alignments switched OFF" << endmsg; + if(!m_applyAlignments) { + ATH_MSG_DEBUG("LAr alignments switched OFF"); return StatusCode::FAILURE; } std::string folderName = "/LAR/Align"; const DataHandle<DetCondKeyTrans> dckt; - log << MSG::DEBUG << "Registering callback on DetCondKeyTrans with folder " << folderName << endmsg; + ATH_MSG_DEBUG("Registering callback on DetCondKeyTrans with folder " << folderName); StatusCode sc = detStore()->regFcn(&IGeoModelTool::align, dynamic_cast<IGeoModelTool *>(this), dckt, folderName); - if(sc.isSuccess()) - log << MSG::DEBUG << " Successfully registered " << endmsg; - else - log << MSG::DEBUG << " Registration failed " << endmsg; + if(sc.isSuccess()) { + ATH_MSG_DEBUG(" Successfully registered "); + } + else { + ATH_MSG_DEBUG(" Registration failed "); + } return sc; } StatusCode LArDetectorToolNV::align(IOVSVC_CALLBACK_ARGS) { - MsgStream log(msgSvc(), name()); - - if(!m_applyAlignments) - { - log << MSG::DEBUG << "LAr alignments switched OFF" << endmsg; + if(!m_applyAlignments) { + ATH_MSG_DEBUG("LAr alignments switched OFF"); return StatusCode::SUCCESS; } - // !!! To Do ---> - // Find a better solution for this - - std::vector< std::string > alignNames; - alignNames.push_back("LARCRYO_B"); - alignNames.push_back("LARCRYO_EC_POS"); - alignNames.push_back("LARCRYO_EC_NEG"); - alignNames.push_back("PRESAMPLER_B_POS"); - alignNames.push_back("PRESAMPLER_B_NEG"); - alignNames.push_back("EMB_POS"); - alignNames.push_back("EMB_NEG"); - alignNames.push_back("PRESAMPLER_EC_POS"); - alignNames.push_back("PRESAMPLER_EC_NEG"); - alignNames.push_back("EMEC_POS"); - alignNames.push_back("EMEC_NEG"); - alignNames.push_back("HEC_POS"); // Policy: either HEC_POS is present or HEC1_POS and HEC2_POS - alignNames.push_back("HEC_NEG"); // Same with HEC_NEG. Now in recent releases if HEC_POS is found - alignNames.push_back("HEC1_POS"); // it will be applied to both HEC1 and HEC2... - alignNames.push_back("HEC1_NEG"); - alignNames.push_back("HEC2_POS"); - alignNames.push_back("HEC2_NEG"); - alignNames.push_back("FCAL1_POS"); - alignNames.push_back("FCAL1_NEG"); - alignNames.push_back("FCAL2_POS"); - alignNames.push_back("FCAL2_NEG"); - alignNames.push_back("FCAL3_POS"); - alignNames.push_back("FCAL3_NEG"); - alignNames.push_back("SOLENOID"); - - // <--- !!! To Do - - if(0 == m_manager) - { - log << MSG::WARNING << " LArDetDescrManager not created yet, cannot align !" << endmsg; + std::vector<std::string> alignNames { + "LARCRYO_B" + ,"LARCRYO_EC_POS" + ,"LARCRYO_EC_NEG" + ,"PRESAMPLER_B_POS" + ,"PRESAMPLER_B_NEG" + ,"EMB_POS" + ,"EMB_NEG" + ,"PRESAMPLER_EC_POS" + ,"PRESAMPLER_EC_NEG" + ,"EMEC_POS" + ,"EMEC_NEG" + ,"HEC_POS" // Policy: either HEC_POS is present or HEC1_POS and HEC2_POS + ,"HEC_NEG" // Same with HEC_NEG. Now in recent releases if HEC_POS is found + ,"HEC1_POS" // it will be applied to both HEC1 and HEC2... + ,"HEC1_NEG" + ,"HEC2_POS" + ,"HEC2_NEG" + ,"FCAL1_POS" + ,"FCAL1_NEG" + ,"FCAL2_POS" + ,"FCAL2_NEG" + ,"FCAL3_POS" + ,"FCAL3_NEG" + ,"SOLENOID" + }; + + if(m_manager==nullptr) { + ATH_MSG_ERROR(" LArDetDescrManager not created yet, cannot align !"); return StatusCode::FAILURE; } const DetCondKeyTrans* align=0; - if(detStore()->contains<DetCondKeyTrans>(LAR_ALIGN)) - { + if(detStore()->contains<DetCondKeyTrans>(LAR_ALIGN)) { StatusCode sc = detStore()->retrieve(align, LAR_ALIGN); - if(sc.isFailure()) - { - log << MSG::WARNING << " Could not retrieve LAr DetCondKeyTrans " << endmsg; + if(sc.isFailure()) { + ATH_MSG_ERROR(" Could not retrieve LAr DetCondKeyTrans "); return sc; } - if(0 == align) - { - log << MSG::WARNING <<" LAr DetCondKeyTrans ptr is 0" << endmsg; + if(0 == align) { + ATH_MSG_ERROR(" LAr DetCondKeyTrans ptr is 0"); return StatusCode::FAILURE; } - log << MSG::DEBUG << " LAr DetCondKeyTrans retrieved " << endmsg; + ATH_MSG_DEBUG(" LAr DetCondKeyTrans retrieved "); // Special treatment for the HEC: - StoredAlignX *hec1AlxPos=0; - StoredAlignX *hec2AlxPos=0; - StoredAlignX *hec1AlxNeg=0; - StoredAlignX *hec2AlxNeg=0; + StoredAlignX *hec1AlxPos{nullptr}; + StoredAlignX *hec2AlxPos{nullptr}; + StoredAlignX *hec1AlxNeg{nullptr}; + StoredAlignX *hec2AlxNeg{nullptr}; if (detStore()->contains<StoredAlignX> ("HEC1_POS")) { if (detStore()->retrieve(hec1AlxPos,"HEC1_POS")!=StatusCode::SUCCESS) { - log << MSG::WARNING << " Unable to retrieve StoredAlignX for the key HEC1_POS" << endmsg; + ATH_MSG_WARNING(" Unable to retrieve StoredAlignX for the key HEC1_POS"); } } if (detStore()->contains<StoredAlignX> ("HEC1_NEG")) { if (detStore()->retrieve(hec1AlxNeg,"HEC1_NEG")!=StatusCode::SUCCESS) { - log << MSG::WARNING << " Unable to retrieve StoredAlignX for the key HEC1_NEG" << endmsg; + ATH_MSG_WARNING(" Unable to retrieve StoredAlignX for the key HEC1_NEG"); } } if (detStore()->contains<StoredAlignX> ("HEC2_POS")) { if (detStore()->retrieve(hec2AlxPos,"HEC2_POS")!=StatusCode::SUCCESS) { - log << MSG::WARNING << " Unable to retrieve StoredAlignX for the key HEC2_POS" << endmsg; + ATH_MSG_WARNING(" Unable to retrieve StoredAlignX for the key HEC2_POS"); } } if (detStore()->contains<StoredAlignX> ("HEC2_NEG")) { if (detStore()->retrieve(hec2AlxNeg,"HEC2_NEG")!=StatusCode::SUCCESS) { - log << MSG::WARNING << " Unable to retrieve StoredAlignX for the key HEC2_NEG" << endmsg; + ATH_MSG_WARNING(" Unable to retrieve StoredAlignX for the key HEC2_NEG"); } } - GeoAlignableTransform *hec1GatPos = hec1AlxPos ? hec1AlxPos->getAlignX(): NULL; - GeoAlignableTransform *hec1GatNeg = hec1AlxPos ? hec1AlxNeg->getAlignX(): NULL; - GeoAlignableTransform *hec2GatPos = hec2AlxPos ? hec2AlxPos->getAlignX(): NULL; - GeoAlignableTransform *hec2GatNeg = hec2AlxPos ? hec2AlxNeg->getAlignX(): NULL; + GeoAlignableTransform *hec1GatPos = hec1AlxPos ? hec1AlxPos->getAlignX(): nullptr; + GeoAlignableTransform *hec1GatNeg = hec1AlxPos ? hec1AlxNeg->getAlignX(): nullptr; + GeoAlignableTransform *hec2GatPos = hec2AlxPos ? hec2AlxPos->getAlignX(): nullptr; + GeoAlignableTransform *hec2GatNeg = hec2AlxPos ? hec2AlxNeg->getAlignX(): nullptr; // loop over align names // if the transform presented alter its delta // if the transform is not presented clear its delta - for(unsigned int i=0; i<alignNames.size(); i++) - { + for(unsigned int i=0; i<alignNames.size(); i++) { std::string alignName = alignNames[i]; + HepGeom::Transform3D newDelta; // First try to retrieve StoredAlignX - if(detStore()->contains<StoredAlignX>(alignName)) - { - StoredAlignX* alignX = 0; + if(detStore()->contains<StoredAlignX>(alignName)) { + StoredAlignX* alignX{nullptr}; sc = detStore()->retrieve(alignX,alignName); - if(sc.isFailure()) - { - log << MSG::WARNING << " Unable to retrieve StoredAlignX for the key " << alignName << endmsg; + if(sc.isFailure()) { + ATH_MSG_ERROR(" Unable to retrieve StoredAlignX for the key " << alignName); return sc; } - if(!alignX) - { - log << MSG::WARNING << " 0 pointer to StoredAlignX for the key " << alignName << endmsg; + if(!alignX) { + ATH_MSG_ERROR(" 0 pointer to StoredAlignX for the key " << alignName); return StatusCode::FAILURE; } GeoAlignableTransform* gat = alignX->getAlignX(); - if(!gat) - { - log << MSG::WARNING << " 0 pointer to GeoAlignableTransform for the key " << alignName << endmsg; + if(!gat) { + ATH_MSG_ERROR(" 0 pointer to GeoAlignableTransform for the key " << alignName); return StatusCode::FAILURE; } // check existence of new delta in DetCondKeyTrans - HepGeom::Transform3D newDelta; - if(align->getTransform(alignName,newDelta)) - gat->setDelta(newDelta); - else + if(align->getTransform(alignName,newDelta)) { + gat->setDelta(Amg::CLHEPTransformToEigen(newDelta)); + } + else { gat->clearDelta(); + } } else if (alignName=="HEC_POS") { if (hec1GatPos) { - HepGeom::Transform3D newDelta; - if(align->getTransform(alignName,newDelta)) - hec1GatPos->setDelta(newDelta); - else + if(align->getTransform(alignName,newDelta)) { + hec1GatPos->setDelta(Amg::CLHEPTransformToEigen(newDelta)); + } + else { hec1GatPos->clearDelta(); + } } if (hec2GatPos) { - HepGeom::Transform3D newDelta; - if(align->getTransform(alignName,newDelta)) - hec2GatPos->setDelta(newDelta); - else + if(align->getTransform(alignName,newDelta)) { + hec2GatPos->setDelta(Amg::CLHEPTransformToEigen(newDelta)); + } + else { hec2GatPos->clearDelta(); + } } } else if (alignName=="HEC_NEG") { if (hec1GatNeg) { - HepGeom::Transform3D newDelta; - if(align->getTransform(alignName,newDelta)) - hec1GatNeg->setDelta(newDelta); - else + if(align->getTransform(alignName,newDelta)) { + hec1GatNeg->setDelta(Amg::CLHEPTransformToEigen(newDelta)); + } + else { hec1GatNeg->clearDelta(); + } } if (hec2GatNeg) { - HepGeom::Transform3D newDelta; - if(align->getTransform(alignName,newDelta)) - hec2GatNeg->setDelta(newDelta); - else + if(align->getTransform(alignName,newDelta)) { + hec2GatNeg->setDelta(Amg::CLHEPTransformToEigen(newDelta)); + } + else { hec2GatNeg->clearDelta(); + } } } - else - log << MSG::DEBUG << " No StoredAlignX for the key " << alignName << endmsg; + else { + ATH_MSG_DEBUG(" No StoredAlignX for the key " << alignName); + } } // for } - else - log << MSG::DEBUG << " No LAr DetCondKeyTrans in SG, skipping align() " << endmsg; - + else { + ATH_MSG_DEBUG(" No LAr DetCondKeyTrans in SG, skipping align() "); + } // debug printout of global positions: - for(unsigned int i=0; i<alignNames.size(); i++) - { - std::string alignName = alignNames[i]; - if(detStore()->contains<StoredPhysVol>(alignName)) - { - StoredPhysVol* storedPV = 0; - StatusCode sc = detStore()->retrieve(storedPV,alignName); - if(sc.isSuccess()) - { - const GeoFullPhysVol* fullPV = storedPV->getPhysVol(); - const HepGeom::Transform3D& xf = fullPV->getAbsoluteTransform(); - CLHEP::Hep3Vector trans=xf.getTranslation(); - CLHEP::HepRotation rot=xf.getRotation(); - log << MSG::DEBUG << "Dump Absolute Transform:" << endmsg; - log << MSG::DEBUG << "Key " << alignName << " transl [" << trans.x() - << "," << trans.y() << "," << trans.z() << "] rotation (" - << rot.phi() << "," << rot.theta() << "," << rot.psi() << ")" - << endmsg; - } +// for(unsigned int i=0; i<alignNames.size(); i++) + for(const std::string& alignName : alignNames) { + if(detStore()->contains<StoredPhysVol>(alignName)) { + StoredPhysVol* storedPV{nullptr}; + StatusCode sc = detStore()->retrieve(storedPV,alignName); + if(sc.isSuccess()) { + const GeoFullPhysVol* fullPV = storedPV->getPhysVol(); + const GeoTrf::Transform3D& xf = fullPV->getAbsoluteTransform(); + GeoTrf::Vector3D trans=xf.translation(); + GeoTrf::RotationMatrix3D rot=xf.rotation(); + ATH_MSG_DEBUG("Dump Absolute Transform:"); + ATH_MSG_DEBUG("Key " << alignName << " transl [" << trans.x() + << "," << trans.y() << "," << trans.z() << "] rotation \n(" + << rot(0,0) << "," << rot(0,1) << "," << rot(0,2) << "\n" + << rot(1,0) << "," << rot(1,1) << "," << rot(1,2) << "\n" + << rot(2,0) << "," << rot(2,1) << "," << rot(2,2) << ")"); + } } } - + return StatusCode::SUCCESS; } diff --git a/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorToolNV.h b/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorToolNV.h index 84ac7c84cd823a8863be8a31b8d55cdd48a144e9..23cc4298ad1dd6e5e1f292cc8f5443259cc82c72 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorToolNV.h +++ b/LArCalorimeter/LArGeoModel/LArGeoAlgsNV/src/LArDetectorToolNV.h @@ -10,11 +10,12 @@ * $Id: LArDetectorToolNV.h,v 1.8 2009-05-13 15:47:48 tsulaia Exp $ */ -#ifndef LARGEOMODEL_LARDETECTORTOOL_H -#define LARGEOMODEL_LARDETECTORTOOL_H +#ifndef LARGEOALGSNV_LARDETECTORTOOLNV_H +#define LARGEOALGSNV_LARDETECTORTOOLNV_H #include "GeoModelUtilities/GeoModelTool.h" #include "IOVSvc/IOVSvc.h" + class LArDetectorManager; class StoreGateSvc; @@ -23,10 +24,9 @@ class StoreGateSvc; stores LArDetectorManager to the Detector Store and also registers a callback function align() which applies misalignments on top of the 'regular' geometry. */ -class LArDetectorToolNV : public GeoModelTool { - -public: +class LArDetectorToolNV : public GeoModelTool { + public: // Standard Constructor LArDetectorToolNV( const std::string& type, const std::string& name, const IInterface* parent ); @@ -46,7 +46,6 @@ public: virtual StatusCode align(IOVSVC_CALLBACK_ARGS) override final; private: - bool m_barrelSaggingOn; int m_barrelVisLimit; int m_fcalVisLimit; diff --git a/LArCalorimeter/LArGeoModel/LArGeoBarrel/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoBarrel/CMakeLists.txt index c3661e59011558b308d92b7db4ab2a5bdf911fed..1fc3b3e246cb48823ad3331cccf0b5d959f3a4f5 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoBarrel/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoBarrel/CMakeLists.txt @@ -7,7 +7,6 @@ atlas_subdir( LArGeoBarrel ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC - DetectorDescription/GeoModel/GeoModelKernel LArCalorimeter/LArGeoModel/LArGeoCode PRIVATE Control/StoreGate @@ -19,16 +18,16 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( LArGeoBarrel src/*.cxx PUBLIC_HEADERS LArGeoBarrel - INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} + INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} GeoModelKernel LArGeoCode StoreGateLib SGtests + LINK_LIBRARIES ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} LArGeoCode StoreGateLib SGtests PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} GeoModelUtilities GaudiKernel LArReadoutGeometry ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoBarrel/LArGeoBarrel/BarrelConstruction.h b/LArCalorimeter/LArGeoModel/LArGeoBarrel/LArGeoBarrel/BarrelConstruction.h index cc6f43bca74dec585582f9ade680851d2eea8dd7..6a4445778b1ea323ca0e0d11170a164eec250d32 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoBarrel/LArGeoBarrel/BarrelConstruction.h +++ b/LArCalorimeter/LArGeoModel/LArGeoBarrel/LArGeoBarrel/BarrelConstruction.h @@ -11,7 +11,7 @@ #include "LArGeoCode/VDetectorParameters.h" #include "GeoModelKernel/GeoFullPhysVol.h" -#include "CLHEP/GenericFunctions/FunctionNoop.hh" +#include "GeoGenericFunctions/FunctionNoop.h" namespace LArGeo { @@ -48,25 +48,25 @@ namespace LArGeo { // Three auxiliary functions:------------------------------------// // // - Genfun::FunctionNoop Fx( double r, // - Genfun::GENFUNCTION G, // + GeoGenfun::FunctionNoop Fx( double r, // + GeoGenfun::GENFUNCTION G, // const double Cenx[], // const double Ceny[] ) const; // // // - Genfun::FunctionNoop Fy( double r, // - Genfun::GENFUNCTION G, // + GeoGenfun::FunctionNoop Fy( double r, // + GeoGenfun::GENFUNCTION G, // const double Cenx[], // const double Ceny[] ) const; // // // - Genfun::FunctionNoop Dely(Genfun::GENFUNCTION G ) const; // - Genfun::FunctionNoop Del1(Genfun::GENFUNCTION G ) const; // - Genfun::FunctionNoop Del2(Genfun::GENFUNCTION G ) const; // + GeoGenfun::FunctionNoop Dely(GeoGenfun::GENFUNCTION G ) const; // + GeoGenfun::FunctionNoop Del1(GeoGenfun::GENFUNCTION G ) const; // + GeoGenfun::FunctionNoop Del2(GeoGenfun::GENFUNCTION G ) const; // //-------------------------------------------------------------// // Atan2 for Generic Functions..:------------------------------// - Genfun::FunctionNoop ATan2(Genfun::GENFUNCTION y, // - Genfun::GENFUNCTION x) const; // + GeoGenfun::FunctionNoop ATan2(GeoGenfun::GENFUNCTION y, // + GeoGenfun::GENFUNCTION x) const; // //-------------------------------------------------------------// // Detector parameters ACCG, ACCA, ACMB, ACCO diff --git a/LArCalorimeter/LArGeoModel/LArGeoBarrel/LArGeoBarrel/BarrelPresamplerConstruction.h b/LArCalorimeter/LArGeoModel/LArGeoBarrel/LArGeoBarrel/BarrelPresamplerConstruction.h index 2e60c5fdce3ec13404a85b9518838336a473f9a9..0e65a99eee97194d63a76177905ab148dcb257c3 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoBarrel/LArGeoBarrel/BarrelPresamplerConstruction.h +++ b/LArCalorimeter/LArGeoModel/LArGeoBarrel/LArGeoBarrel/BarrelPresamplerConstruction.h @@ -15,7 +15,7 @@ #include "LArGeoCode/VDetectorParameters.h" #include "GeoModelKernel/GeoFullPhysVol.h" -#include "CLHEP/GenericFunctions/FunctionNoop.hh" +#include "GeoGenericFunctions/FunctionNoop.h" // Forward declarations diff --git a/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelConstruction.cxx index e44bc1b243026fb45a4398341a5dafa28721c815..25ca516e9cda1bf94cda8cf3c9ec136f8ad31ea7 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelConstruction.cxx @@ -45,15 +45,15 @@ #include "CLHEP/Geometry/Transform3D.h" #include "CLHEP/Vector/Rotation.h" // For functions: -#include "CLHEP/GenericFunctions/Abs.hh" -#include "CLHEP/GenericFunctions/Sin.hh" -#include "CLHEP/GenericFunctions/Cos.hh" -#include "CLHEP/GenericFunctions/Sqrt.hh" -#include "CLHEP/GenericFunctions/ATan.hh" -#include "CLHEP/GenericFunctions/Rectangular.hh" -#include "CLHEP/GenericFunctions/Mod.hh" -#include "CLHEP/GenericFunctions/Variable.hh" -#include "CLHEP/GenericFunctions/FixedConstant.hh" +#include "GeoGenericFunctions/Abs.h" +#include "GeoGenericFunctions/Sin.h" +#include "GeoGenericFunctions/Cos.h" +#include "GeoGenericFunctions/Sqrt.h" +#include "GeoGenericFunctions/ATan.h" +#include "GeoGenericFunctions/Rectangular.h" +#include "GeoGenericFunctions/Mod.h" +#include "GeoGenericFunctions/Variable.h" +#include "GeoGenericFunctions/FixedConstant.h" // For units: #include "CLHEP/Units/PhysicalConstants.h" #include "GaudiKernel/MsgStream.h" @@ -196,12 +196,12 @@ void LArGeo::BarrelConstruction::MakeEnvelope() log << MSG::INFO << " Use sagging in geometry ? " << m_A_SAGGING << endmsg; - Genfun::Cos Cos; - Genfun::Sin Sin; - Genfun::Sqrt Sqrt; - Genfun::ATan ATan; + GeoGenfun::Cos Cos; + GeoGenfun::Sin Sin; + GeoGenfun::Sqrt Sqrt; + GeoGenfun::ATan ATan; - double twopi64 = CLHEP::pi/32.; + double twopi64 = GeoModelKernelUnits::pi/32.; double twopi32 = 2.*twopi64; @@ -316,13 +316,13 @@ void LArGeo::BarrelConstruction::MakeEnvelope() double Moth_outer_radius = m_parameters->GetValue("LArEMBMotherRmax"); double Moth_Phi_Min = 0.; - double Moth_Phi_Max = m_parameters->GetValue("LArEMBphiMaxBarrel")*CLHEP::deg; + double Moth_Phi_Max = m_parameters->GetValue("LArEMBphiMaxBarrel")*GeoModelKernelUnits::deg; #ifdef DEBUGGEO std::cout << " *** Mother volume (Ecam) parameters " << std::endl; std::cout << " Rmin/Rmax " << Moth_inner_radius << " " << Moth_outer_radius << std::endl; std::cout << " Zmin/Zmax " << Moth_Z_min << " " << Moth_Z_max << std::endl; - std::cout << " phi1,Dphi (CLHEP::deg)" << Moth_Phi_Min/CLHEP::deg << " " << Moth_Phi_Max/CLHEP::deg << std::endl; + std::cout << " phi1,Dphi (GeoModelKernelUnits::deg)" << Moth_Phi_Min/GeoModelKernelUnits::deg << " " << Moth_Phi_Max/GeoModelKernelUnits::deg << std::endl; #endif // number of zigs for accordion @@ -371,9 +371,9 @@ void LArGeo::BarrelConstruction::MakeEnvelope() (double) (m_parameters->GetValue("LArEMBPhiAtCurvature",idat)); Delta[idat] = (double) (m_parameters->GetValue("LArEMBDeltaZigAngle",idat)); - if(idat == 14) Delta[idat] = (90.0) * CLHEP::deg; + if(idat == 14) Delta[idat] = (90.0) * GeoModelKernelUnits::deg; - // Maximum SAGGING displacement for each of the fifteen folds in CLHEP::mm + // Maximum SAGGING displacement for each of the fifteen folds in GeoModelKernelUnits::mm // (should be 0.0, 0.17, 0.30, 0.63, 0.78, 1.06, 1.09, 1.21, 1.07, 1.03, 0.74, 0.61, 0.27, 0.20, 0.0) //GUtmp sagging amplied by 10 if (m_A_SAGGING) { @@ -393,8 +393,8 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // #ifdef DEBUGGEO log << MSG::DEBUG << "idat " << idat << " Rhocen/Phice/Delta/deltay/deltax/etatrans " - << Rhocen[idat] << " " << Phicen[idat]*(1./CLHEP::deg) << " " - << Delta[idat]*(1./CLHEP::deg) << " " << deltay[idat] << " " << deltax[idat] + << Rhocen[idat] << " " << Phicen[idat]*(1./GeoModelKernelUnits::deg) << " " + << Delta[idat]*(1./GeoModelKernelUnits::deg) << " " << deltay[idat] << " " << deltax[idat] << " " << etaTrans << endmsg; // #endif @@ -452,10 +452,10 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // very confused at the common surface between ECAM and STAC) //-----------------ECAM---------------------------------------------------------// { // - double Moth_Phi_Min2 = (Ncell == 64) ? -1.555*CLHEP::deg : 0.; // - double Moth_Phi_Max2 = (Ncell == 64) ? 25.61*CLHEP::deg : 2*M_PI; // + double Moth_Phi_Min2 = (Ncell == 64) ? -1.555*GeoModelKernelUnits::deg : 0.; // + double Moth_Phi_Max2 = (Ncell == 64) ? 25.61*GeoModelKernelUnits::deg : 2*M_PI; // // - double safety_rhocen1 = 0.040*CLHEP::mm; // + double safety_rhocen1 = 0.040*GeoModelKernelUnits::mm; // double Zplan[] = {Bar_Z_min-Zp0,Bar_Z_cut-Zp0,Bar_Z_max-Zp0}; // double Riacc[] = {Moth_inner_radius,Moth_inner_radius, Rhocen1-safety_rhocen1}; // double Roacc[] = {Moth_outer_radius,Moth_outer_radius,Moth_outer_radius}; // @@ -465,7 +465,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() std::cout << " Zplan " << Zplan[0] << " " << Zplan[1] << " " << Zplan[2] << std::endl; std::cout << " Rin " << Riacc[0] << " " << Riacc[1] << " " << Riacc[2] << std::endl; std::cout << " Rout " << Roacc[0] << " " << Roacc[1] << " " << Roacc[2] << std::endl; - std::cout << " PhiMin,Dphi " << Moth_Phi_Min2/CLHEP::deg << " " << Moth_Phi_Max2/CLHEP::deg << std::endl; + std::cout << " PhiMin,Dphi " << Moth_Phi_Min2/GeoModelKernelUnits::deg << " " << Moth_Phi_Max2/GeoModelKernelUnits::deg << std::endl; #endif int ecamArraySize = sizeof(Zplan) / sizeof(double); // std::string name = baseName + "ECAM"; // @@ -510,19 +510,19 @@ void LArGeo::BarrelConstruction::MakeEnvelope() GeoPhysVol *Elnicsf_phys=NULL; double Xel1f; { - // WARNING : this "hard_coded" 0.010*CLHEP::mm is a "security" to avoid + // WARNING : this "hard_coded" 0.010*GeoModelKernelUnits::mm is a "security" to avoid // fake "overlapping" diagnostics with "DAVID" - Xel1f = m_parameters->GetValue("LArEMBInnerElectronics"); // 23.*CLHEP::mm + Xel1f = m_parameters->GetValue("LArEMBInnerElectronics"); // 23.*GeoModelKernelUnits::mm double DeltaZ = Zhalfc; double Zpos = Zhalfc+Bar_Z_min; - double Rmini = Moth_inner_radius + 0.010*CLHEP::mm; - double Rmaxi = Rmini+Xel1f - 0.010*CLHEP::mm; + double Rmini = Moth_inner_radius + 0.010*GeoModelKernelUnits::mm; + double Rmaxi = Rmini+Xel1f - 0.010*GeoModelKernelUnits::mm; std::string name = baseName + "TELF"; #ifdef DEBUGGEO std::cout << " *** parameters for TELF tubs " << std::endl; std::cout << " DeltaZ " << DeltaZ << std::endl; std::cout << " Rmin/Rmax " << Rmini << " " << Rmaxi << std::endl, - std::cout << " PhiMin,Dphi " << Moth_Phi_Min/CLHEP::deg << " " << Moth_Phi_Max/CLHEP::deg << std::endl; + std::cout << " PhiMin,Dphi " << Moth_Phi_Min/GeoModelKernelUnits::deg << " " << Moth_Phi_Max/GeoModelKernelUnits::deg << std::endl; std::cout << " Zpos in ECAM " << Zpos << std::endl; #endif GeoTubs* tubs = new GeoTubs(Rmini, // rmin @@ -532,9 +532,9 @@ void LArGeo::BarrelConstruction::MakeEnvelope() Moth_Phi_Max); // deltaphi const GeoLogVol* logVol = new GeoLogVol(name,tubs,LAr); Elnicsf_phys = new GeoPhysVol(logVol); - m_ecamPhysicalPos->add(new GeoTransform(HepGeom::TranslateZ3D(Zpos))); + m_ecamPhysicalPos->add(new GeoTransform(GeoTrf::TranslateZ3D(Zpos))); m_ecamPhysicalPos->add(Elnicsf_phys); - m_ecamPhysicalNeg->add(new GeoTransform(HepGeom::TranslateZ3D(Zpos))); + m_ecamPhysicalNeg->add(new GeoTransform(GeoTrf::TranslateZ3D(Zpos))); m_ecamPhysicalNeg->add(Elnicsf_phys); } //------------------------------------------------------------------------------// @@ -545,9 +545,9 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // (follow mixture described in Pascal Perrodo note GeoPhysVol *Sumb_phys=NULL; { - double ThickSum = 10.*CLHEP::mm; // FIXME should be in geometry database + double ThickSum = 10.*GeoModelKernelUnits::mm; // FIXME should be in geometry database double Rmini = Moth_inner_radius+Xel1f-ThickSum; - double Rmaxi = Moth_inner_radius+Xel1f -0.020*CLHEP::mm; // safety margin + double Rmaxi = Moth_inner_radius+Xel1f -0.020*GeoModelKernelUnits::mm; // safety margin double DeltaZ = Zhalfc; double Zpos=0.; std::string name = baseName + "SUMB"; @@ -555,14 +555,14 @@ void LArGeo::BarrelConstruction::MakeEnvelope() std::cout << " *** parameters for SUMB tubs " << std::endl; std::cout << " DeltaZ " << DeltaZ << std::endl; std::cout << " Rmin/Rmax " << Rmini << " " << Rmaxi << std::endl, - std::cout << " PhiMin,Dphi " << Moth_Phi_Min/CLHEP::deg << " " << Moth_Phi_Max/CLHEP::deg << std::endl; + std::cout << " PhiMin,Dphi " << Moth_Phi_Min/GeoModelKernelUnits::deg << " " << Moth_Phi_Max/GeoModelKernelUnits::deg << std::endl; std::cout << " Zpos in TELF " << Zpos << std::endl; #endif GeoTubs * tubs = new GeoTubs(Rmini,Rmaxi,DeltaZ,Moth_Phi_Min,Moth_Phi_Max); const GeoLogVol* logVol = new GeoLogVol(name,tubs,Sumb); Sumb_phys = new GeoPhysVol(logVol); - Elnicsf_phys->add(new GeoTransform(HepGeom::TranslateZ3D(Zpos))); + Elnicsf_phys->add(new GeoTransform(GeoTrf::TranslateZ3D(Zpos))); Elnicsf_phys->add(Sumb_phys); } @@ -571,9 +571,9 @@ void LArGeo::BarrelConstruction::MakeEnvelope() { double ClearancePS = m_parameters->GetValue("LArEMBMoBoclearfrPS"); double RhoPosB = Moth_inner_radius + ClearancePS; - double bdx = .5*(m_parameters->GetValue("LArEMBMoBoTchickness")); // 4.3/2.*CLHEP::mm - double bdy = .5*(m_parameters->GetValue("LArEMBMoBoHeight")); // 72.3/2.*CLHEP::mm; - double bdz = Zhalfc - 0.007*CLHEP::mm; + double bdx = .5*(m_parameters->GetValue("LArEMBMoBoTchickness")); // 4.3/2.*GeoModelKernelUnits::mm + double bdy = .5*(m_parameters->GetValue("LArEMBMoBoHeight")); // 72.3/2.*GeoModelKernelUnits::mm; + double bdz = Zhalfc - 0.007*GeoModelKernelUnits::mm; //------------------------MOTHERBOARDS--------------------------------------------// // JFB Make & Place the motherboards inside overall tube // @@ -587,18 +587,18 @@ void LArGeo::BarrelConstruction::MakeEnvelope() std::cout << " *** parameters for MotherBoard (box)" << std::endl; std::cout << " dx,dy,dz " << bdx << " " << bdy << " " << bdz << std::endl; std::cout << " Radius pos " << RhoPosB << std::endl; - std::cout << " Phi0,Dphi " << PhiPos0/CLHEP::deg << " " << twopi32/CLHEP::deg << std::endl; + std::cout << " Phi0,Dphi " << PhiPos0/GeoModelKernelUnits::deg << " " << twopi32/GeoModelKernelUnits::deg << std::endl; #endif GeoBox * box = new GeoBox(bdx,bdy,bdz); // const GeoLogVol * logVol = new GeoLogVol(name,box,Moth_elect); // GeoPhysVol * pV = new GeoPhysVol(logVol); // GeoSerialIdentifier * iD = new GeoSerialIdentifier(0); // - Genfun::Variable c; // - Genfun::GENFUNCTION PhiPos = PhiPos0 + twopi32*c; // + GeoGenfun::Variable c; // + GeoGenfun::GENFUNCTION PhiPos = PhiPos0 + twopi32*c; // GeoXF::TRANSFUNCTION TX = // - GeoXF::Pow(HepGeom::TranslateX3D(1.0),RhoPosB*Cos(PhiPos))* // - GeoXF::Pow(HepGeom::TranslateY3D(1.0),RhoPosB*Sin(PhiPos))* // - GeoXF::Pow(HepGeom::RotateZ3D(1.0),PhiPos); // + GeoXF::Pow(GeoTrf::TranslateX3D(1.0),RhoPosB*Cos(PhiPos))* // + GeoXF::Pow(GeoTrf::TranslateY3D(1.0),RhoPosB*Sin(PhiPos))* // + GeoXF::Pow(GeoTrf::RotateZ3D(1.0),PhiPos); // GeoSerialTransformer *st = new GeoSerialTransformer(pV, &TX, NoOFboard); // Elnicsf_phys->add(iD); // Elnicsf_phys->add(st); // @@ -616,11 +616,11 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // JFB Place the cables // { // // // - double Dzc = Zhalfc - 0.007*CLHEP::mm; // - double Dx1 = .5*(m_parameters->GetValue("LArEMBCablethickat0")); // 1./2.*CLHEP::mm + double Dzc = Zhalfc - 0.007*GeoModelKernelUnits::mm; // + double Dx1 = .5*(m_parameters->GetValue("LArEMBCablethickat0")); // 1./2.*GeoModelKernelUnits::mm double Dx2 = .5*Bar_Eta_cut*(m_parameters->GetValue("LArEMBthickincrfac")); // - // Dx2 should be 5.17/2.*Bar_Eta_cut*CLHEP::mm Trapezoid's side linear with Eta // - double Dy1 = .5*(m_parameters->GetValue("LArEMBCableEtaheight")); // 70./2.*CLHEP::mm + // Dx2 should be 5.17/2.*Bar_Eta_cut*GeoModelKernelUnits::mm Trapezoid's side linear with Eta // + double Dy1 = .5*(m_parameters->GetValue("LArEMBCableEtaheight")); // 70./2.*GeoModelKernelUnits::mm double Dy2 = Dy1; // // // int NoOFcable = (int) m_parameters->GetValue("LArEMBnoOFcableBundle"); // 64 @@ -645,34 +645,34 @@ void LArGeo::BarrelConstruction::MakeEnvelope() #ifdef DEBUGGEO std::cout << " PhiPos0 " << PhiPos0 << std::endl; #endif - Genfun::Variable I; // + GeoGenfun::Variable I; // // // // -------------Make a Kronecker Delta Here--------// // - Genfun::Rectangular KDelta; // // + GeoGenfun::Rectangular KDelta; // // KDelta.baseline().setValue(0.0); // // KDelta.height().setValue(1.0); // // KDelta.x0().setValue(-0.5); // // KDelta.x1().setValue(0.5); // // //-------------------------------------------------// // // // - Genfun::Mod Mod1(1.0),Mod2(2.0),Mod4(4.0); // - Genfun::GENFUNCTION Int = I - Mod1; // - Genfun::GENFUNCTION Ccopy = Int(I + 0.5); // - Genfun::GENFUNCTION PhiOrig = 22.5*CLHEP::deg*Int(Ccopy/4); // - Genfun::GENFUNCTION PhiPos1 = PhiPos0 + PhiOrig; // - Genfun::GENFUNCTION PhiPos2 = twopi32 - PhiPos0 + PhiOrig; // - Genfun::GENFUNCTION PhiPos00 = // + GeoGenfun::Mod Mod1(1.0),Mod2(2.0),Mod4(4.0); // + GeoGenfun::GENFUNCTION Int = I - Mod1; // + GeoGenfun::GENFUNCTION Ccopy = Int(I + 0.5); // + GeoGenfun::GENFUNCTION PhiOrig = 22.5*GeoModelKernelUnits::deg*Int(Ccopy/4); // + GeoGenfun::GENFUNCTION PhiPos1 = PhiPos0 + PhiOrig; // + GeoGenfun::GENFUNCTION PhiPos2 = twopi32 - PhiPos0 + PhiOrig; // + GeoGenfun::GENFUNCTION PhiPos00 = // (KDelta(Mod4(Ccopy)-2) + KDelta(Mod4(Ccopy)-3))*PhiPos2 + // (1.0-KDelta(Mod4(Ccopy)-2)-KDelta(Mod4(Ccopy)-3))*PhiPos1; // - Genfun::GENFUNCTION PhiPos = PhiPos00 + Mod2(Ccopy)*twopi32; // + GeoGenfun::GENFUNCTION PhiPos = PhiPos00 + Mod2(Ccopy)*twopi32; // GeoXF::TRANSFUNCTION TX = // - GeoXF::Pow(HepGeom::TranslateX3D(1.0),RhoPosC*Cos(PhiPos))* // - GeoXF::Pow(HepGeom::TranslateY3D(1.0),RhoPosC*Sin(PhiPos))* // - GeoXF::Pow(HepGeom::RotateZ3D(1.0),PhiPos); // + GeoXF::Pow(GeoTrf::TranslateX3D(1.0),RhoPosC*Cos(PhiPos))* // + GeoXF::Pow(GeoTrf::TranslateY3D(1.0),RhoPosC*Sin(PhiPos))* // + GeoXF::Pow(GeoTrf::RotateZ3D(1.0),PhiPos); // GeoSerialTransformer *st = new GeoSerialTransformer(pV, &TX, NoOFcable); // #ifdef DEBUGGEO for (int ii=0;ii<NoOFcable;ii++) { - std::cout << "copy, phi " << ii << " " << PhiPos(ii)/CLHEP::deg << std::endl; + std::cout << "copy, phi " << ii << " " << PhiPos(ii)/GeoModelKernelUnits::deg << std::endl; } #endif Elnicsf_phys->add(iD); // @@ -683,10 +683,10 @@ void LArGeo::BarrelConstruction::MakeEnvelope() } #endif // BUILD_FRONT_ELECTRONICS - // add 1.3 CLHEP::mm in z to allow cleareance for absorber with non // + // add 1.3 GeoModelKernelUnits::mm in z to allow cleareance for absorber with non // // 0 thickness, at eta=1.475, low r part of the barrel // // this affects STAC and TELB volumes // - double clearance = 1.3*CLHEP::mm; + double clearance = 1.3*GeoModelKernelUnits::mm; #ifdef BUILD_HIGHETA_ELECTRONICS @@ -702,29 +702,29 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // GU fix of TELB // double ze1= zmax1_Stac+clearance; // double ze2 = Bar_Z_max; // - double safety = 0.05*CLHEP::mm; + double safety = 0.05*GeoModelKernelUnits::mm; double DeltaZ = 0.5*(ze2-ze1)-safety; // 50 micron for safety. double Zpos = ze1+DeltaZ+0.5*safety; // - double Rmini1 = Rhocen[0] - .030*CLHEP::mm; // - double Rmaxi1 = Rhocen[0] - .020*CLHEP::mm; // - double Rmini2 = Rhocen[0] - .030*CLHEP::mm; // - double Rmaxi2 = Bar_Rcmx - clearance - .070*CLHEP::mm; // + double Rmini1 = Rhocen[0] - .030*GeoModelKernelUnits::mm; // + double Rmaxi1 = Rhocen[0] - .020*GeoModelKernelUnits::mm; // + double Rmini2 = Rhocen[0] - .030*GeoModelKernelUnits::mm; // + double Rmaxi2 = Bar_Rcmx - clearance - .070*GeoModelKernelUnits::mm; // std::string name = baseName + "TELB"; // #ifdef DEBUGGEO std::cout << " *** Parameters for high eta electronics (Cons) " <<std::endl; std::cout << " Rmini1,Rmini2,Rmaxi1,Rmaxi2 " << Rmini1 << " " << Rmini2 << " " << Rmaxi1 << " " << Rmaxi2 << std::endl, std::cout << " DeltaZ " << DeltaZ << std::endl; - std::cout << " Phi_Min,Dphi " << Moth_Phi_Min/CLHEP::deg << " " << Moth_Phi_Max/CLHEP::deg << std::endl; + std::cout << " Phi_Min,Dphi " << Moth_Phi_Min/GeoModelKernelUnits::deg << " " << Moth_Phi_Max/GeoModelKernelUnits::deg << std::endl; std::cout << " Zpos " << Zpos << std::endl; #endif GeoCons* cons = new GeoCons(Rmini1,Rmini2,Rmaxi1,Rmaxi2, // DeltaZ,Moth_Phi_Min,Moth_Phi_Max); // const GeoLogVol* logVol = new GeoLogVol(name,cons,Cable_elect); // GeoPhysVol* physVol = new GeoPhysVol(logVol); // - m_ecamPhysicalPos->add(new GeoTransform(HepGeom::TranslateZ3D(Zpos))); // + m_ecamPhysicalPos->add(new GeoTransform(GeoTrf::TranslateZ3D(Zpos))); // m_ecamPhysicalPos->add(physVol); // - m_ecamPhysicalNeg->add(new GeoTransform(HepGeom::TranslateZ3D(Zpos))); // + m_ecamPhysicalNeg->add(new GeoTransform(GeoTrf::TranslateZ3D(Zpos))); // m_ecamPhysicalNeg->add(physVol); // // // } // @@ -742,8 +742,8 @@ void LArGeo::BarrelConstruction::MakeEnvelope() //---------------------------------FRONT G10-------------------------------------// { // - double Xel1f = m_parameters->GetValue("LArEMBInnerElectronics"); // 23.*CLHEP::mm - double Xg10f = m_parameters->GetValue("LArEMBG10SupportBarsIn"); // 20.*CLHEP::mm + double Xel1f = m_parameters->GetValue("LArEMBInnerElectronics"); // 23.*GeoModelKernelUnits::mm + double Xg10f = m_parameters->GetValue("LArEMBG10SupportBarsIn"); // 20.*GeoModelKernelUnits::mm double DeltaZ = 0.5* m_parameters->GetValue("LArEMBG10FrontDeltaZ"); // double Zpos = DeltaZ+Bar_Z_min; // double Rmini = Moth_inner_radius + Xel1f; // @@ -753,15 +753,15 @@ void LArGeo::BarrelConstruction::MakeEnvelope() std::cout << " *** parameters for front G10 ring (tubs) " << std::endl; std::cout << " Rmini,Rmaxi " << Rmini << " " << Rmaxi << std::endl; std::cout << " DeltaZ " << DeltaZ << std::endl; - std::cout << " phimin,dphi " << Moth_Phi_Min/CLHEP::deg << " " << Moth_Phi_Max/CLHEP::deg << std::endl; + std::cout << " phimin,dphi " << Moth_Phi_Min/GeoModelKernelUnits::deg << " " << Moth_Phi_Max/GeoModelKernelUnits::deg << std::endl; std::cout << " Zpos " << Zpos << std::endl; #endif GeoTubs* tubs = new GeoTubs(Rmini,Rmaxi,DeltaZ,Moth_Phi_Min,Moth_Phi_Max); // const GeoLogVol* logVol = new GeoLogVol(name,tubs,G10_bar); // GeoPhysVol* physVol = new GeoPhysVol(logVol); // - m_ecamPhysicalPos->add(new GeoTransform(HepGeom::TranslateZ3D(Zpos))); // + m_ecamPhysicalPos->add(new GeoTransform(GeoTrf::TranslateZ3D(Zpos))); // m_ecamPhysicalPos->add(physVol); // - m_ecamPhysicalNeg->add(new GeoTransform(HepGeom::TranslateZ3D(Zpos))); // + m_ecamPhysicalNeg->add(new GeoTransform(GeoTrf::TranslateZ3D(Zpos))); // m_ecamPhysicalNeg->add(physVol); // IRDBRecordset_ptr extraCones = rdbAccess->getRecordsetPtr("LArCones", @@ -789,7 +789,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() extra_dz,extra_phi0,extra_dphi); const GeoLogVol* logVol = new GeoLogVol(name,cons,Lead); GeoPhysVol* physVol2 = new GeoPhysVol(logVol); - physVol->add(new GeoTransform(HepGeom::TranslateZ3D(extra_zpos))); + physVol->add(new GeoTransform(GeoTrf::TranslateZ3D(extra_zpos))); physVol->add(physVol2); } @@ -806,27 +806,27 @@ void LArGeo::BarrelConstruction::MakeEnvelope() { // double DeltaZ = Zhalf; // double Zpos = Zhalf+Bar_Z_min; // - double Xtal = m_parameters->GetValue("LArEMBLArGapTail")+ 0.1*CLHEP::mm; // 13.*CLHEP::mm + double Xtal = m_parameters->GetValue("LArEMBLArGapTail")+ 0.1*GeoModelKernelUnits::mm; // 13.*GeoModelKernelUnits::mm double Rmini = Rhocen[Nbrt]+Xtal; // // // GU to be sure that GTENB does not go outside mother ECAM volume // // Rmaxi = Rmini+Xg10b; // - double Rmaxi = Moth_outer_radius-0.01*CLHEP::mm; // 10 microns for more safety.. // + double Rmaxi = Moth_outer_radius-0.01*GeoModelKernelUnits::mm; // 10 microns for more safety.. // // // std::string name = baseName +"GTENB"; // #ifdef DEBUGGEO std::cout << " *** parameters for back G10 ring (tubs) " << std::endl; std::cout << " Rmini,Rmaxi " << Rmini << " " << Rmaxi << std::endl; std::cout << " DeltaZ " << DeltaZ << std::endl; - std::cout << " phimin,dphi " << Moth_Phi_Min/CLHEP::deg << " " << Moth_Phi_Max/CLHEP::deg << std::endl; + std::cout << " phimin,dphi " << Moth_Phi_Min/GeoModelKernelUnits::deg << " " << Moth_Phi_Max/GeoModelKernelUnits::deg << std::endl; std::cout << " Zpos " << Zpos << std::endl; #endif GeoTubs* tubs = new GeoTubs(Rmini,Rmaxi,DeltaZ,Moth_Phi_Min,Moth_Phi_Max); // const GeoLogVol* logVol = new GeoLogVol(name,tubs,G10_bar); // GeoPhysVol* physVol = new GeoPhysVol(logVol); // - m_ecamPhysicalPos->add(new GeoTransform(HepGeom::TranslateZ3D(Zpos))); // + m_ecamPhysicalPos->add(new GeoTransform(GeoTrf::TranslateZ3D(Zpos))); // m_ecamPhysicalPos->add(physVol); // - m_ecamPhysicalNeg->add(new GeoTransform(HepGeom::TranslateZ3D(Zpos))); // + m_ecamPhysicalNeg->add(new GeoTransform(GeoTrf::TranslateZ3D(Zpos))); // m_ecamPhysicalNeg->add(physVol); // } // //------------------------------------------------------------------------------// @@ -841,8 +841,8 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // (i.e. a little bit wider than one calorimeter module) { // - double Moth_Phi_Min2 = (Ncell == 64) ? -1.055*CLHEP::deg : 0.; // - double Moth_Phi_Max2 = (Ncell == 64) ? 24.61*CLHEP::deg : 2*M_PI; // + double Moth_Phi_Min2 = (Ncell == 64) ? -1.055*GeoModelKernelUnits::deg : 0.; // + double Moth_Phi_Max2 = (Ncell == 64) ? 24.61*GeoModelKernelUnits::deg : 2*M_PI; // double Zplan1[] = {Bar_Z_min,zmax1_Stac+clearance,Bar_Z_max}; // double Riacc1[] = {Rhocen[0],Rhocen[0], Bar_Rcmx-clearance}; // @@ -854,16 +854,16 @@ void LArGeo::BarrelConstruction::MakeEnvelope() std::cout << " Zplan " << Zplan1[0] << " " << Zplan1[1] << " " << Zplan1[2] << std::endl; std::cout << " Rin " << Riacc1[0] << " " << Riacc1[1] << " " << Riacc1[2] << std::endl; std::cout << " Rout " << Roacc1[0] << " " << Roacc1[1] << " " << Roacc1[2] << std::endl; - std::cout << " PhiMin,Dphi " << Moth_Phi_Min2/CLHEP::deg << " " << Moth_Phi_Max2/CLHEP::deg << std::endl; + std::cout << " PhiMin,Dphi " << Moth_Phi_Min2/GeoModelKernelUnits::deg << " " << Moth_Phi_Max2/GeoModelKernelUnits::deg << std::endl; std::cout << " Zpos " << -Zp0 << std::endl; #endif GeoPcon* pCone = new GeoPcon(Moth_Phi_Min2,Moth_Phi_Max2); // for (int i=0; i<3; i++) pCone->addPlane(Zplan1[i],Riacc1[i],Roacc1[i]); // const GeoLogVol* logVol = new GeoLogVol(name,pCone,LAr); // stacPhysical = new GeoPhysVol(logVol); // - m_ecamPhysicalPos->add(new GeoTransform(HepGeom::TranslateZ3D(-Zp0))); // + m_ecamPhysicalPos->add(new GeoTransform(GeoTrf::TranslateZ3D(-Zp0))); // m_ecamPhysicalPos->add(stacPhysical); // - m_ecamPhysicalNeg->add(new GeoTransform(HepGeom::TranslateZ3D(-Zp0))); // + m_ecamPhysicalNeg->add(new GeoTransform(GeoTrf::TranslateZ3D(-Zp0))); // m_ecamPhysicalNeg->add(stacPhysical); // } // //----------------------------------------------------------------------------// @@ -882,7 +882,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() double Thpb_thin = m_parameters->GetValue("LArEMBThinAbsLead"); double Thcu = m_parameters->GetValue("LArEMBThickElecCopper"); double Thfg = m_parameters->GetValue("LArEMBThickElecKapton"); - double Psi = m_parameters->GetValue("LArEMBPhiGapAperture"); // 360.*CLHEP::deg/1024 + double Psi = m_parameters->GetValue("LArEMBPhiGapAperture"); // 360.*GeoModelKernelUnits::deg/1024 double Contract = m_parameters->GetValue("LArEMBAbsorberContraction"); double Thce = (Thpb+Thgl+Thfe)*Contract; @@ -906,7 +906,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() double Zcp1l[14],Zcp1h[14],Zcp2l[14],Zcp2h[14]; double Rhol[14],Rhoh[14]; - double safety_along = 0.007*CLHEP::mm; + double safety_along = 0.007*GeoModelKernelUnits::mm; // Compute centers of curvature coordinates in a local frame. @@ -979,9 +979,9 @@ void LArGeo::BarrelConstruction::MakeEnvelope() double Gama0 = m_parameters->GetValue("LArEMBAbsPhiFirst"); - Genfun::Variable icopy; - Genfun::GENFUNCTION Game = Gama0 + Psi/2 + Alfa*icopy; - Genfun::GENFUNCTION Gama = Gama0 + Alfa*icopy; + GeoGenfun::Variable icopy; + GeoGenfun::GENFUNCTION Game = Gama0 + Psi/2 + Alfa*icopy; + GeoGenfun::GENFUNCTION Gama = Gama0 + Alfa*icopy; // Creation of the straight absorber parts. Front (TIPB) & Back (TIPC) // Creation of the straight electrode parts. Front (TIPK) & Back (TIPL) @@ -999,7 +999,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // Absorber (thick, thin) { double radius = fb==FRONT ? Cenx[0] - Xtip_pb/2 : Cenx[Nbrt] + Xtipt/2; - double Xhalfb = fb==FRONT ? Xtip_pb/2 -0.002*CLHEP::mm : Xtipt/2 - .004*CLHEP::mm; + double Xhalfb = fb==FRONT ? Xtip_pb/2 -0.002*GeoModelKernelUnits::mm : Xtipt/2 - .004*GeoModelKernelUnits::mm; double Zhalfb = fb==FRONT ? (Bar_Z_cut-Zmin)/2. : (Zmax-Zmin)/2.; double dz01 = (std::min(Zcp1[irl],Zmax)-Zmin)/2.; // half lenght for thick lead @@ -1010,18 +1010,18 @@ void LArGeo::BarrelConstruction::MakeEnvelope() const GeoLogVol *logVol2 = new GeoLogVol(name,box2,Thick_abs); GeoPhysVol* physVol = new GeoPhysVol(logVol); GeoPhysVol* physVol2 = new GeoPhysVol(logVol2); - physVol->add(new GeoTransform(HepGeom::Translate3D(0.,0.,dz01-Zhalfb))); + physVol->add(new GeoTransform(GeoTrf::Translate3D(0.,0.,dz01-Zhalfb))); physVol->add(physVol2); - Genfun::GENFUNCTION Xcd = radius*Cos(Gama); - Genfun::GENFUNCTION Ycd = radius*Sin(Gama); - Genfun::GENFUNCTION Zcd = Genfun::FixedConstant(Zmin+Zhalfb); + GeoGenfun::GENFUNCTION Xcd = radius*Cos(Gama); + GeoGenfun::GENFUNCTION Ycd = radius*Sin(Gama); + GeoGenfun::GENFUNCTION Zcd = GeoGenfun::FixedConstant(Zmin+Zhalfb); GeoXF::TRANSFUNCTION TX = - GeoXF::Pow(HepGeom::TranslateX3D(1.0),Xcd) * - GeoXF::Pow(HepGeom::TranslateY3D(1.0),Ycd) * - GeoXF::Pow(HepGeom::TranslateZ3D(1.0),Zcd) * - GeoXF::Pow(HepGeom::RotateZ3D(1.0),Gama); + GeoXF::Pow(GeoTrf::TranslateX3D(1.0),Xcd) * + GeoXF::Pow(GeoTrf::TranslateY3D(1.0),Ycd) * + GeoXF::Pow(GeoTrf::TranslateZ3D(1.0),Zcd) * + GeoXF::Pow(GeoTrf::RotateZ3D(1.0),Gama); GeoSerialTransformer *st = new GeoSerialTransformer(physVol, &TX, Nabsorber); m_ecamPhysicalPos->add(st); m_ecamPhysicalNeg->add(st); @@ -1032,14 +1032,14 @@ void LArGeo::BarrelConstruction::MakeEnvelope() std::cout << " Thick Abs Box " << Xhalfb << " " << Thce/2. << " " << dz01 << std::endl; std::cout << " Z position thick in thin " << dz01-Zhalfb << std::endl; std::cout << " Radial position " << radius << std::endl; - std::cout << " Phi0 (CLHEP::deg) " << Gama(0)/CLHEP::deg << std::endl; + std::cout << " Phi0 (GeoModelKernelUnits::deg) " << Gama(0)/GeoModelKernelUnits::deg << std::endl; std::cout << " Z position in ECAM " << Zmin+Zhalfb << std::endl; #endif } // G10 (only for front part) if (fb==FRONT) { - double Xhalfbg = Xtip_gt/2-0.002*CLHEP::mm; + double Xhalfbg = Xtip_gt/2-0.002*GeoModelKernelUnits::mm; double radiusg = Cenx[0]-Xtip_pb/2. - Xtips/2 ; double Zhalfbg = (Bar_Z_cut-Zmin)/2. ; std::string name = baseName + "FrontBack::G10"; @@ -1066,49 +1066,49 @@ void LArGeo::BarrelConstruction::MakeEnvelope() #ifdef DEBUGGEO std::cout << " Position Iron in G10 at y = +- " << 0.5*(+Thce-Tgfe/2.) << std::endl; #endif - physVol->add(new GeoTransform(HepGeom::Translate3D(0.,0.5*(-Thce+Tgfe/2.),0.))); + physVol->add(new GeoTransform(GeoTrf::Translate3D(0.,0.5*(-Thce+Tgfe/2.),0.))); physVol->add(physVol2); - physVol->add(new GeoTransform(HepGeom::Translate3D(0.,0.5*(+Thce-Tgfe/2.),0.))); + physVol->add(new GeoTransform(GeoTrf::Translate3D(0.,0.5*(+Thce-Tgfe/2.),0.))); physVol->add(physVol2); #endif // build_front_steel // position of G10+Steel inside LAr bath - Genfun::GENFUNCTION Xcd = radiusg*Cos(Gama); - Genfun::GENFUNCTION Ycd = radiusg*Sin(Gama); - Genfun::GENFUNCTION Zcd = Genfun::FixedConstant(Zhalfbg+Zmin); + GeoGenfun::GENFUNCTION Xcd = radiusg*Cos(Gama); + GeoGenfun::GENFUNCTION Ycd = radiusg*Sin(Gama); + GeoGenfun::GENFUNCTION Zcd = GeoGenfun::FixedConstant(Zhalfbg+Zmin); GeoXF::TRANSFUNCTION TX = - GeoXF::Pow(HepGeom::TranslateX3D(1.0),Xcd) * - GeoXF::Pow(HepGeom::TranslateY3D(1.0),Ycd) * - GeoXF::Pow(HepGeom::TranslateZ3D(1.0),Zcd) * - GeoXF::Pow(HepGeom::RotateZ3D(1.0),Gama); + GeoXF::Pow(GeoTrf::TranslateX3D(1.0),Xcd) * + GeoXF::Pow(GeoTrf::TranslateY3D(1.0),Ycd) * + GeoXF::Pow(GeoTrf::TranslateZ3D(1.0),Zcd) * + GeoXF::Pow(GeoTrf::RotateZ3D(1.0),Gama); GeoSerialTransformer *st = new GeoSerialTransformer(physVol, &TX, Nabsorber); m_ecamPhysicalPos->add(st); m_ecamPhysicalNeg->add(st); #ifdef DEBUGGEO std::cout << " Radial position G10 tip " << radiusg << std::endl; - std::cout << " Phi0 (CLHEP::deg)" << Gama(0)/CLHEP::deg << std::endl; + std::cout << " Phi0 (GeoModelKernelUnits::deg)" << Gama(0)/GeoModelKernelUnits::deg << std::endl; std::cout << " Zposition in ECAM " << Zmin+Zhalfbg << std::endl; #endif } // Electrode { - double Xhalfbe = fb==FRONT ? Xtips/2 -0.002*CLHEP::mm : Xtipt/2 - .004*CLHEP::mm; + double Xhalfbe = fb==FRONT ? Xtips/2 -0.002*GeoModelKernelUnits::mm : Xtipt/2 - .004*GeoModelKernelUnits::mm; double Zhalfbe = fb==FRONT ? (Bar_Z_cut-Zmin)/2. : (Zmax - Zmin)/2; double radiuse = fb==FRONT ? Cenx[0] - Xtips/2 : Cenx[Nbrt] + Xtipt/2; std::string name = baseName + "FrontBack::Electrode"; GeoBox *box = new GeoBox(Xhalfbe,Thel/2,Zhalfbe); const GeoLogVol *logVol = new GeoLogVol(name,box,Kapton_Cu); GeoPhysVol* physVol = new GeoPhysVol(logVol); - Genfun::GENFUNCTION Xcd = radiuse*Cos(Game); - Genfun::GENFUNCTION Ycd = radiuse*Sin(Game); - Genfun::GENFUNCTION Zcd = Genfun::FixedConstant(Zmin+Zhalfbe); + GeoGenfun::GENFUNCTION Xcd = radiuse*Cos(Game); + GeoGenfun::GENFUNCTION Ycd = radiuse*Sin(Game); + GeoGenfun::GENFUNCTION Zcd = GeoGenfun::FixedConstant(Zmin+Zhalfbe); GeoXF::TRANSFUNCTION TX = - GeoXF::Pow(HepGeom::TranslateX3D(1.0),Xcd) * - GeoXF::Pow(HepGeom::TranslateY3D(1.0),Ycd) * - GeoXF::Pow(HepGeom::TranslateZ3D(1.0),Zcd) * - GeoXF::Pow(HepGeom::RotateZ3D(1.0),Game); + GeoXF::Pow(GeoTrf::TranslateX3D(1.0),Xcd) * + GeoXF::Pow(GeoTrf::TranslateY3D(1.0),Ycd) * + GeoXF::Pow(GeoTrf::TranslateZ3D(1.0),Zcd) * + GeoXF::Pow(GeoTrf::RotateZ3D(1.0),Game); GeoSerialTransformer *st = new GeoSerialTransformer(physVol, &TX, Nelectrode); m_ecamPhysicalPos->add(st); @@ -1119,7 +1119,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() else std::cout << " *** Back tip electrode " << std::endl; std::cout << " Box " << Xhalfbe << " " << Thel/2. << " " << Zhalfbe << std::endl; std::cout << " Radial position " << radiuse << std::endl; - std::cout << " Phi0 (CLHEP::deg)" << Game(0)/CLHEP::deg << std::endl; + std::cout << " Phi0 (GeoModelKernelUnits::deg)" << Game(0)/GeoModelKernelUnits::deg << std::endl; std::cout << " Z position in ECAM " << Zmin+Zhalfbe << std::endl; #endif @@ -1136,7 +1136,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // // GU 09/06/2004 add some safety in z size - double safety_zlen=0.050*CLHEP::mm; + double safety_zlen=0.050*GeoModelKernelUnits::mm; for(int irl=0; irl<Nbrt; irl++) // loop over zig-zag in radius { @@ -1212,32 +1212,32 @@ void LArGeo::BarrelConstruction::MakeEnvelope() double Dz = Thce/2.; // For absorbers - Genfun::GENFUNCTION x1a = Fx(irl+0., Gama, Cenx, Ceny) + GeoGenfun::GENFUNCTION x1a = Fx(irl+0., Gama, Cenx, Ceny) +deltay[irl]*Del1(Gama) +deltax[irl]*Del2(Gama); - Genfun::GENFUNCTION x2a = Fx(irl+1., Gama, Cenx, Ceny) + GeoGenfun::GENFUNCTION x2a = Fx(irl+1., Gama, Cenx, Ceny) +deltay[irl+1]*Del1(Gama) +deltax[irl+1]*Del2(Gama); - Genfun::GENFUNCTION y1a = Fy(irl+0., Gama, Cenx, Ceny) + GeoGenfun::GENFUNCTION y1a = Fy(irl+0., Gama, Cenx, Ceny) -deltay[irl]*Del2(Gama) +deltax[irl]*Del1(Gama); - Genfun::GENFUNCTION y2a = Fy(irl+1., Gama, Cenx, Ceny) + GeoGenfun::GENFUNCTION y2a = Fy(irl+1., Gama, Cenx, Ceny) -deltay[irl+1]*Del2(Gama) +deltax[irl+1]*Del1(Gama); - Genfun::GENFUNCTION dx = x2a - x1a; - Genfun::GENFUNCTION dy = y2a - y1a; + GeoGenfun::GENFUNCTION dx = x2a - x1a; + GeoGenfun::GENFUNCTION dy = y2a - y1a; // Da the two fold centers distance, da straight part length - Genfun::GENFUNCTION Da = Sqrt ( dx*dx + dy*dy ); - Genfun::GENFUNCTION da = Sqrt ( (Da - 2.*Rint)*(Da + 2.*Rint) ); + GeoGenfun::GENFUNCTION Da = Sqrt ( dx*dx + dy*dy ); + GeoGenfun::GENFUNCTION da = Sqrt ( (Da - 2.*Rint)*(Da + 2.*Rint) ); // newalpha (slant angle) value of the rotation angle around Z_axis - Genfun::GENFUNCTION cosalfa = (da*dx -iparit*2.*Rint*dy)/Da/Da; - Genfun::GENFUNCTION sinalfa = (da*dy +iparit*2.*Rint*dx)/Da/Da; - Genfun::GENFUNCTION newalpha = ATan2(sinalfa,cosalfa); + GeoGenfun::GENFUNCTION cosalfa = (da*dx -iparit*2.*Rint*dy)/Da/Da; + GeoGenfun::GENFUNCTION sinalfa = (da*dy +iparit*2.*Rint*dx)/Da/Da; + GeoGenfun::GENFUNCTION newalpha = ATan2(sinalfa,cosalfa); - Genfun::GENFUNCTION h1 = da/2. * frac - .007*CLHEP::mm; + GeoGenfun::GENFUNCTION h1 = da/2. * frac - .007*GeoModelKernelUnits::mm; double Zx0 = (tl1+bl1)/2.; // thick absorber pieces @@ -1259,7 +1259,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() } } // translation in x to include thick absorber into thin absorber - double Xtrans = (Xb1+Xt1)/2.-Zx0 + .007*CLHEP::mm; + double Xtrans = (Xb1+Xt1)/2.-Zx0 + .007*GeoModelKernelUnits::mm; // lengths that remain to be covered with the thin absorber double Xt2 = tl1-Xt1; @@ -1267,12 +1267,12 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // trabslation that would be needed to include think absorber only into overall thin+thick volume double Xtrans2 = Zx0 - (Xb2+Xt2)/2.; - Xt2 = Xt2 -0.007*CLHEP::mm; - Xb2 = Xb2 -0.007*CLHEP::mm; + Xt2 = Xt2 -0.007*GeoModelKernelUnits::mm; + Xb2 = Xb2 -0.007*GeoModelKernelUnits::mm; - Genfun::GENFUNCTION alpha = ATan(0.5*(bl1-tl1)/h1); - Genfun::GENFUNCTION alpha_t = ATan(0.5*(Xb1-Xt1)/h1); + GeoGenfun::GENFUNCTION alpha = ATan(0.5*(bl1-tl1)/h1); + GeoGenfun::GENFUNCTION alpha_t = ATan(0.5*(Xb1-Xt1)/h1); // angle that would be needed for trap do describe only thin absorber // ------------------|---------X---------| @@ -1284,24 +1284,24 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // ---------------|--------X---------| // alpha = (-) angle between X's // tan(alpha) = delta X size / width, deltaX size = 2*tl1-Xt2-(2*bl1-Xb2), width = 2.*h1 - Genfun::GENFUNCTION alpha_2 = ATan((2.*bl1-Xb2-(2.*tl1-Xt2))/(2.*h1)); + GeoGenfun::GENFUNCTION alpha_2 = ATan((2.*bl1-Xb2-(2.*tl1-Xt2))/(2.*h1)); // .newalpha is already computed angle wrt z axis // P/2 rotation is to get absorber aligned along local x axis // instead of y, then rotate with angle newalpha - Genfun::GENFUNCTION alfrot = -M_PI/2. - newalpha; + GeoGenfun::GENFUNCTION alfrot = -M_PI/2. - newalpha; - Genfun::GENFUNCTION Xcd = (x1a + x2a)/2. + (2.*idivi-1.)*(1.-frac)*da/2.*cosalfa; - Genfun::GENFUNCTION Ycd = (y1a + y2a)/2. + (2.*idivi-1.)*(1.-frac)*da/2.*sinalfa; - Genfun::GENFUNCTION Zcd = Genfun::FixedConstant(Zmin+(tl1+bl1)/2.+safety_zlen); + GeoGenfun::GENFUNCTION Xcd = (x1a + x2a)/2. + (2.*idivi-1.)*(1.-frac)*da/2.*cosalfa; + GeoGenfun::GENFUNCTION Ycd = (y1a + y2a)/2. + (2.*idivi-1.)*(1.-frac)*da/2.*sinalfa; + GeoGenfun::GENFUNCTION Zcd = GeoGenfun::FixedConstant(Zmin+(tl1+bl1)/2.+safety_zlen); GeoXF::TRANSFUNCTION TX = - GeoXF::Pow(HepGeom::TranslateX3D(1.0),Xcd) * - GeoXF::Pow(HepGeom::TranslateY3D(1.0),Ycd) * - GeoXF::Pow(HepGeom::TranslateZ3D(1.0),Zcd) * - GeoXF::Pow(HepGeom::RotateZ3D(1.0),-alfrot)* - HepGeom::RotateY3D(-90*CLHEP::deg); + GeoXF::Pow(GeoTrf::TranslateX3D(1.0),Xcd) * + GeoXF::Pow(GeoTrf::TranslateY3D(1.0),Ycd) * + GeoXF::Pow(GeoTrf::TranslateZ3D(1.0),Zcd) * + GeoXF::Pow(GeoTrf::RotateZ3D(1.0),-alfrot)* + GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); // @@ -1345,7 +1345,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() const GeoLogVol* thickLog = new GeoLogVol(thickName,thickTrap,Thick_abs); GeoPhysVol* thickPhys = new GeoPhysVol(thickLog); // put thick absorber in straight_phys - thinPhys->add(new GeoTransform(HepGeom::TranslateX3D(Xtrans))); + thinPhys->add(new GeoTransform(GeoTrf::TranslateX3D(Xtrans))); thinPhys->add(thickPhys); #ifdef DEBUGGEO @@ -1374,7 +1374,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() std::string thickGlueName = baseName + "ThickAbsGlue::Straight"; const GeoLogVol* thickTrapGlueLog = new GeoLogVol(thickGlueName,thickTrapGlue, Glue); GeoPhysVol * thickTrapGluePhys = new GeoPhysVol(thickTrapGlueLog); - thinPhys->add(new GeoTransform(HepGeom::Translate3D(0.,0.,0.))); + thinPhys->add(new GeoTransform(GeoTrf::Translate3D(0.,0.,0.))); thinPhys->add(thickTrapGluePhys); // inside glue put lead, Dz size = 0.5*Thpb*Contract, 2 separate volumes for eta<0.8 and eta>0.8 @@ -1388,7 +1388,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() std::string thickLeadName= baseName+"ThickAbsLead::Straight"; const GeoLogVol* thickTrapLeadLog = new GeoLogVol(thickLeadName,thickTrapLead, myLead); GeoPhysVol * thickTrapLeadPhys = new GeoPhysVol(thickTrapLeadLog); - thickTrapGluePhys->add(new GeoTransform(HepGeom::TranslateX3D(Xtrans))); + thickTrapGluePhys->add(new GeoTransform(GeoTrf::TranslateX3D(Xtrans))); thickTrapGluePhys->add(thickTrapLeadPhys); double dz_lead_thin = 0.5*Thpb_thin*Contract; @@ -1401,7 +1401,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() std::string thinLeadName = baseName+"ThinAbsLead::Straight"; const GeoLogVol* thinTrapLeadLog = new GeoLogVol(thinLeadName,thinTrapLead, myLead); GeoPhysVol * thinTrapLeadPhys = new GeoPhysVol(thinTrapLeadLog); - thickTrapGluePhys->add(new GeoTransform(HepGeom::TranslateX3D(Xtrans2))); + thickTrapGluePhys->add(new GeoTransform(GeoTrf::TranslateX3D(Xtrans2))); thickTrapGluePhys->add(thinTrapLeadPhys); @@ -1414,10 +1414,10 @@ void LArGeo::BarrelConstruction::MakeEnvelope() //------------------------------------------------------------------------ if (m_A_SAGGING) { if (!gStraightAbsorbers) gStraightAbsorbers = new GeoStraightAccSection(); - gStraightAbsorbers->XCent(instance,irl)=TX(instance).dx(); - gStraightAbsorbers->YCent(instance,irl)=TX(instance).dy(); - gStraightAbsorbers->Cosu(instance,irl) =-(TX(instance).xy()); - gStraightAbsorbers->Sinu(instance,irl) = (TX(instance).xz()); + gStraightAbsorbers->XCent(instance,irl)=TX(instance)(0,3); //dx + gStraightAbsorbers->YCent(instance,irl)=TX(instance)(1,3); //dy + gStraightAbsorbers->Cosu(instance,irl) =-(TX(instance)(0,1)); //xy + gStraightAbsorbers->Sinu(instance,irl) = (TX(instance)(0,2)); //xz gStraightAbsorbers->HalfLength(instance,irl) = thinTrap->getDydzn(); stacPhysical->add(new GeoTransform(TX(instance))); @@ -1453,21 +1453,21 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // get slant angle for the previous zig-zag int iirl=jrl-1; if (iirl<0) iirl=1; - Genfun::GENFUNCTION x0a = Fx(iirl, Gama, Cenx, Ceny) + GeoGenfun::GENFUNCTION x0a = Fx(iirl, Gama, Cenx, Ceny) +deltay[iirl]*Del1(Gama) +deltax[iirl]*Del2(Gama); - Genfun::GENFUNCTION y0a = Fy(iirl, Gama, Cenx, Ceny) + GeoGenfun::GENFUNCTION y0a = Fy(iirl, Gama, Cenx, Ceny) -deltay[iirl]*Del2(Gama) +deltax[iirl]*Del1(Gama); - Genfun::GENFUNCTION dx0 = x1a - x0a; - Genfun::GENFUNCTION dy0 = y1a - y0a; + GeoGenfun::GENFUNCTION dx0 = x1a - x0a; + GeoGenfun::GENFUNCTION dy0 = y1a - y0a; // Da the two fold centers distance, da straight part length - Genfun::GENFUNCTION Da0 = Sqrt ( dx0*dx0 + dy0*dy0 ); - Genfun::GENFUNCTION da0 = Sqrt ( (Da0 - 2.*Rint)*(Da0 + 2.*Rint) ); + GeoGenfun::GENFUNCTION Da0 = Sqrt ( dx0*dx0 + dy0*dy0 ); + GeoGenfun::GENFUNCTION da0 = Sqrt ( (Da0 - 2.*Rint)*(Da0 + 2.*Rint) ); // newalpha (slant angle) value of the rotation angle around Z_axis - Genfun::GENFUNCTION cosalfa0 = (da0*dx0 +iparit*2.*Rint*dy0)/Da0/Da0; - Genfun::GENFUNCTION sinalfa0 = (da0*dy0 -iparit*2.*Rint*dx0)/Da0/Da0; - Genfun::GENFUNCTION alpha_prev = ATan2(sinalfa0,cosalfa0); + GeoGenfun::GENFUNCTION cosalfa0 = (da0*dx0 +iparit*2.*Rint*dy0)/Da0/Da0; + GeoGenfun::GENFUNCTION sinalfa0 = (da0*dy0 -iparit*2.*Rint*dx0)/Da0/Da0; + GeoGenfun::GENFUNCTION alpha_prev = ATan2(sinalfa0,cosalfa0); #ifdef DEBUGGEO if (jrl>0 && jrl<Nbrt) { @@ -1477,26 +1477,26 @@ void LArGeo::BarrelConstruction::MakeEnvelope() << alpha_prev(0) << std::endl; } #endif - Genfun::Mod Mod2Pi(2*M_PI); + GeoGenfun::Mod Mod2Pi(2*M_PI); // down folds (add +M_PI and then rotate by -M_PI to follow same logic as old code) - Genfun::GENFUNCTION phi0_dfold_0 = - Genfun::FixedConstant(M_PI/2.+phi0_safety); - Genfun::GENFUNCTION dphi_dfold_0 = Mod2Pi(newalpha-phi0_safety - Gama); - Genfun::GENFUNCTION phi0_dfold_1 = Mod2Pi(M_PI/2.+ alpha_prev - Gama); - Genfun::GENFUNCTION dphi_dfold_1 = Mod2Pi(newalpha-alpha_prev); - Genfun::GENFUNCTION phi0_dfold_2 = Mod2Pi(M_PI/2.+ newalpha - Gama); - Genfun::GENFUNCTION dphi_dfold_2 = Mod2Pi(- newalpha + Gama); + GeoGenfun::GENFUNCTION phi0_dfold_0 = + GeoGenfun::FixedConstant(M_PI/2.+phi0_safety); + GeoGenfun::GENFUNCTION dphi_dfold_0 = Mod2Pi(newalpha-phi0_safety - Gama); + GeoGenfun::GENFUNCTION phi0_dfold_1 = Mod2Pi(M_PI/2.+ alpha_prev - Gama); + GeoGenfun::GENFUNCTION dphi_dfold_1 = Mod2Pi(newalpha-alpha_prev); + GeoGenfun::GENFUNCTION phi0_dfold_2 = Mod2Pi(M_PI/2.+ newalpha - Gama); + GeoGenfun::GENFUNCTION dphi_dfold_2 = Mod2Pi(- newalpha + Gama); // up folds - Genfun::GENFUNCTION phi0_ufold_0 = + GeoGenfun::GENFUNCTION phi0_ufold_0 = Mod2Pi(M_PI/2.+newalpha-Gama); - Genfun::GENFUNCTION dphi_ufold_0 = Mod2Pi(-newalpha+Gama-phi0_safety); - Genfun::GENFUNCTION phi0_ufold_1 = Mod2Pi(M_PI/2. + newalpha - Gama); - Genfun::GENFUNCTION dphi_ufold_1 = Mod2Pi(alpha_prev - newalpha); - Genfun::GENFUNCTION phi0_ufold_2 = Genfun::FixedConstant(M_PI/2.); - Genfun::GENFUNCTION dphi_ufold_2 = Mod2Pi(newalpha-Gama); - - const Genfun::AbsFunction* phi0_fold=0; - const Genfun::AbsFunction* dphi_fold=0; + GeoGenfun::GENFUNCTION dphi_ufold_0 = Mod2Pi(-newalpha+Gama-phi0_safety); + GeoGenfun::GENFUNCTION phi0_ufold_1 = Mod2Pi(M_PI/2. + newalpha - Gama); + GeoGenfun::GENFUNCTION dphi_ufold_1 = Mod2Pi(alpha_prev - newalpha); + GeoGenfun::GENFUNCTION phi0_ufold_2 = GeoGenfun::FixedConstant(M_PI/2.); + GeoGenfun::GENFUNCTION dphi_ufold_2 = Mod2Pi(newalpha-Gama); + + const GeoGenfun::AbsFunction* phi0_fold=0; + const GeoGenfun::AbsFunction* dphi_fold=0; const GeoXF::Function* TXfold=0; std::string thinName; @@ -1522,19 +1522,19 @@ void LArGeo::BarrelConstruction::MakeEnvelope() } - Genfun::GENFUNCTION zpos = Genfun::FixedConstant(Zmin+dz0); + GeoGenfun::GENFUNCTION zpos = GeoGenfun::FixedConstant(Zmin+dz0); double phirot=0; if (jrl%2==checkParity) phirot = -M_PI; GeoXF::TRANSFUNCTION TXfold1= - GeoXF::Pow(HepGeom::TranslateX3D(1.0),x1a) * - GeoXF::Pow(HepGeom::TranslateY3D(1.0),y1a) * - GeoXF::Pow(HepGeom::TranslateZ3D(1.0),zpos) * - GeoXF::Pow(HepGeom::RotateZ3D(1.0),Gama+phirot); + GeoXF::Pow(GeoTrf::TranslateX3D(1.0),x1a) * + GeoXF::Pow(GeoTrf::TranslateY3D(1.0),y1a) * + GeoXF::Pow(GeoTrf::TranslateZ3D(1.0),zpos) * + GeoXF::Pow(GeoTrf::RotateZ3D(1.0),Gama+phirot); GeoXF::TRANSFUNCTION TXfold2 = - GeoXF::Pow(HepGeom::TranslateX3D(1.0),x2a) * - GeoXF::Pow(HepGeom::TranslateY3D(1.0),y2a) * - GeoXF::Pow(HepGeom::TranslateZ3D(1.0),zpos) * - GeoXF::Pow(HepGeom::RotateZ3D(1.0),Gama+phirot); + GeoXF::Pow(GeoTrf::TranslateX3D(1.0),x2a) * + GeoXF::Pow(GeoTrf::TranslateY3D(1.0),y2a) * + GeoXF::Pow(GeoTrf::TranslateZ3D(1.0),zpos) * + GeoXF::Pow(GeoTrf::RotateZ3D(1.0),Gama+phirot); // first fown fold if (jrl==0 && checkParity==0) { @@ -1603,7 +1603,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() thinPhys = new GeoPhysVol(thinLog); GeoPhysVol* thickPhys = new GeoPhysVol(thickLog); - thinPhys->add(new GeoTransform(HepGeom::TranslateZ3D(ddz01-ddz0))); + thinPhys->add(new GeoTransform(GeoTrf::TranslateZ3D(ddz01-ddz0))); thinPhys->add(thickPhys); #ifdef DEBUGGEO std::cout << " Position Thick fold in Thin Z = " << ddz01-ddz0 << std::endl; @@ -1629,7 +1629,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() std::string foldGlueName = baseName+"Glue::Fold"; const GeoLogVol* glueTubsLog = new GeoLogVol(foldGlueName,glueTubs,Glue); GeoPhysVol* glueTubsPhys = new GeoPhysVol(glueTubsLog); - thinPhys->add(new GeoTransform(HepGeom::TranslateZ3D(0.))); + thinPhys->add(new GeoTransform(GeoTrf::TranslateZ3D(0.))); thinPhys->add(glueTubsPhys); #ifdef DEBUGGEO std::cout << " glue fold volume " << Rcmin+0.5*Thfe*Contract << " " << Rcmax-0.5*Thfe*Contract << " " << ddz0 << std::endl; @@ -1643,7 +1643,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() std::string foldThickLeadName = baseName+"ThickLead::Fold"; const GeoLogVol* thickLeadLog = new GeoLogVol(foldThickLeadName,thickLeadTubs,myLead); GeoPhysVol* thickLeadPhys = new GeoPhysVol(thickLeadLog); - glueTubsPhys->add(new GeoTransform(HepGeom::TranslateZ3D(ddz01-ddz0))); + glueTubsPhys->add(new GeoTransform(GeoTrf::TranslateZ3D(ddz01-ddz0))); glueTubsPhys->add(thickLeadPhys); #ifdef DEBUGGEO std::cout << " thick lead volume " << Rint-Thpb*Contract << " " << Rint+Thpb*Contract << " " << ddz01 << std::endl; @@ -1656,7 +1656,7 @@ void LArGeo::BarrelConstruction::MakeEnvelope() std::string foldThinLeadName = baseName+"ThinLead::Fold"; const GeoLogVol* thinLeadLog = new GeoLogVol(foldThinLeadName,thinLeadTubs,myLead); GeoPhysVol* thinLeadPhys = new GeoPhysVol(thinLeadLog); - glueTubsPhys->add(new GeoTransform(HepGeom::TranslateZ3D(ddz01))); + glueTubsPhys->add(new GeoTransform(GeoTrf::TranslateZ3D(ddz01))); glueTubsPhys->add(thinLeadPhys); #ifdef DEBUGGEO @@ -1705,50 +1705,50 @@ void LArGeo::BarrelConstruction::MakeEnvelope() double Dze = Thel/2.; // For electrodes - Genfun::GENFUNCTION x1e = Fx(irl+0., Game, Cenx, Ceny) + GeoGenfun::GENFUNCTION x1e = Fx(irl+0., Game, Cenx, Ceny) +deltay[irl]*Del1(Game) +deltax[irl]*Del2(Game); - Genfun::GENFUNCTION x2e = Fx(irl+1., Game, Cenx, Ceny) + GeoGenfun::GENFUNCTION x2e = Fx(irl+1., Game, Cenx, Ceny) +deltay[irl+1]*Del1(Game) +deltax[irl+1]*Del2(Game); - Genfun::GENFUNCTION y1e = Fy(irl+0., Game, Cenx, Ceny) + GeoGenfun::GENFUNCTION y1e = Fy(irl+0., Game, Cenx, Ceny) -deltay[irl]*Del2(Game) +deltax[irl]*Del1(Game); - Genfun::GENFUNCTION y2e = Fy(irl+1., Game, Cenx, Ceny) + GeoGenfun::GENFUNCTION y2e = Fy(irl+1., Game, Cenx, Ceny) -deltay[irl+1]*Del2(Game) +deltax[irl+1]*Del1(Game); - Genfun::GENFUNCTION dxe = x2e - x1e; - Genfun::GENFUNCTION dye = y2e - y1e; + GeoGenfun::GENFUNCTION dxe = x2e - x1e; + GeoGenfun::GENFUNCTION dye = y2e - y1e; // De the two fold centers distance, de straight part length - Genfun::GENFUNCTION De = Sqrt ( dxe*dxe + dye*dye ); - Genfun::GENFUNCTION de = Sqrt ( (De - 2.*Rint)*(De + 2.*Rint) ); + GeoGenfun::GENFUNCTION De = Sqrt ( dxe*dxe + dye*dye ); + GeoGenfun::GENFUNCTION de = Sqrt ( (De - 2.*Rint)*(De + 2.*Rint) ); //newalphe (slant angle) value of the rotation angle around Z_axis - Genfun::GENFUNCTION cosalfae = (de*dxe -iparit*2.*Rint*dye)/De/De; - Genfun::GENFUNCTION sinalfae = (de*dye +iparit*2.*Rint*dxe)/De/De; - Genfun::GENFUNCTION newalphe = ATan2(sinalfae,cosalfae); + GeoGenfun::GENFUNCTION cosalfae = (de*dxe -iparit*2.*Rint*dye)/De/De; + GeoGenfun::GENFUNCTION sinalfae = (de*dye +iparit*2.*Rint*dxe)/De/De; + GeoGenfun::GENFUNCTION newalphe = ATan2(sinalfae,cosalfae); // newalphae is already computed angle wrt z axis // P/2 rotation is to get absorber aligned along local x axis // instead of y, then rotate with angle newalpha - Genfun::GENFUNCTION alfrote = -M_PI/2. - newalphe; + GeoGenfun::GENFUNCTION alfrote = -M_PI/2. - newalphe; - Genfun::GENFUNCTION Xcde = (x1e + x2e)/2.+ (2.*idivi-1.)*(1.-frac)*de/2.*cosalfae; - Genfun::GENFUNCTION Ycde = (y1e + y2e)/2.+ (2.*idivi-1.)*(1.-frac)*de/2.*sinalfae; - Genfun::GENFUNCTION Zcde = Genfun::FixedConstant(Zmin+(tl1+bl1)/2.+safety_zlen); + GeoGenfun::GENFUNCTION Xcde = (x1e + x2e)/2.+ (2.*idivi-1.)*(1.-frac)*de/2.*cosalfae; + GeoGenfun::GENFUNCTION Ycde = (y1e + y2e)/2.+ (2.*idivi-1.)*(1.-frac)*de/2.*sinalfae; + GeoGenfun::GENFUNCTION Zcde = GeoGenfun::FixedConstant(Zmin+(tl1+bl1)/2.+safety_zlen); - Genfun::GENFUNCTION h1e = de/2.*frac - .007*CLHEP::mm; - Genfun::GENFUNCTION alpha_e = ATan(0.5*(bl1-tl1)/h1e); + GeoGenfun::GENFUNCTION h1e = de/2.*frac - .007*GeoModelKernelUnits::mm; + GeoGenfun::GENFUNCTION alpha_e = ATan(0.5*(bl1-tl1)/h1e); GeoXF::TRANSFUNCTION TXE = - GeoXF::Pow(HepGeom::TranslateX3D(1.0),Xcde) * - GeoXF::Pow(HepGeom::TranslateY3D(1.0),Ycde) * - GeoXF::Pow(HepGeom::TranslateZ3D(1.0),Zcde) * - GeoXF::Pow(HepGeom::RotateZ3D(1.0),-alfrote)* - HepGeom::RotateY3D(-90*CLHEP::deg); + GeoXF::Pow(GeoTrf::TranslateX3D(1.0),Xcde) * + GeoXF::Pow(GeoTrf::TranslateY3D(1.0),Ycde) * + GeoXF::Pow(GeoTrf::TranslateZ3D(1.0),Zcde) * + GeoXF::Pow(GeoTrf::RotateZ3D(1.0),-alfrote)* + GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); for (int instance = 0; instance < Nelectrode; instance++) @@ -1778,10 +1778,10 @@ void LArGeo::BarrelConstruction::MakeEnvelope() //------------------------------------------------------------------------ if (m_A_SAGGING) { if (!gStraightElectrodes) gStraightElectrodes = new GeoStraightAccSection(); - gStraightElectrodes->XCent(instance,irl)=TXE(instance).dx(); - gStraightElectrodes->YCent(instance,irl)=TXE(instance).dy(); - gStraightElectrodes->Cosu(instance,irl) =-(TXE(instance).xy()); - gStraightElectrodes->Sinu(instance,irl) = (TXE(instance).xz()); + gStraightElectrodes->XCent(instance,irl)=TXE(instance)(0,3); //dx + gStraightElectrodes->YCent(instance,irl)=TXE(instance)(1,3); //dy + gStraightElectrodes->Cosu(instance,irl) =-(TXE(instance)(0,1)); //xy + gStraightElectrodes->Sinu(instance,irl) = (TXE(instance)(0,2)); //xz gStraightElectrodes->HalfLength(instance,irl) = trap->getDydzn(); stacPhysical->add(new GeoTransform(TXE(instance))); @@ -1818,21 +1818,21 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // get slant angle for the previous zig-zag int iirl=jrl-1; if (iirl<0) iirl=1; - Genfun::GENFUNCTION x0e = Fx(iirl, Game, Cenx, Ceny) + GeoGenfun::GENFUNCTION x0e = Fx(iirl, Game, Cenx, Ceny) +deltay[iirl]*Del1(Game) +deltax[iirl]*Del2(Game); - Genfun::GENFUNCTION y0e = Fy(iirl, Game, Cenx, Ceny) + GeoGenfun::GENFUNCTION y0e = Fy(iirl, Game, Cenx, Ceny) -deltay[iirl]*Del2(Game) +deltax[iirl]*Del1(Game); - Genfun::GENFUNCTION dx0 = x1e - x0e; - Genfun::GENFUNCTION dy0 = y1e - y0e; + GeoGenfun::GENFUNCTION dx0 = x1e - x0e; + GeoGenfun::GENFUNCTION dy0 = y1e - y0e; // Da the two fold centers distance, da straight part length - Genfun::GENFUNCTION Da0 = Sqrt ( dx0*dx0 + dy0*dy0 ); - Genfun::GENFUNCTION da0 = Sqrt ( (Da0 - 2.*Rint)*(Da0 + 2.*Rint) ); + GeoGenfun::GENFUNCTION Da0 = Sqrt ( dx0*dx0 + dy0*dy0 ); + GeoGenfun::GENFUNCTION da0 = Sqrt ( (Da0 - 2.*Rint)*(Da0 + 2.*Rint) ); // newalpha (slant angle) value of the rotation angle around Z_axis - Genfun::GENFUNCTION cosalfa0 = (da0*dx0 +iparit*2.*Rint*dy0)/Da0/Da0; - Genfun::GENFUNCTION sinalfa0 = (da0*dy0 -iparit*2.*Rint*dx0)/Da0/Da0; - Genfun::GENFUNCTION alphe_prev = ATan2(sinalfa0,cosalfa0); + GeoGenfun::GENFUNCTION cosalfa0 = (da0*dx0 +iparit*2.*Rint*dy0)/Da0/Da0; + GeoGenfun::GENFUNCTION sinalfa0 = (da0*dy0 -iparit*2.*Rint*dx0)/Da0/Da0; + GeoGenfun::GENFUNCTION alphe_prev = ATan2(sinalfa0,cosalfa0); #ifdef DEBUGGEO if (jrl>0 && jrl<Nbrt) { @@ -1842,25 +1842,25 @@ void LArGeo::BarrelConstruction::MakeEnvelope() #endif // down folds (add +M_PI and then rotate by -M_PI to follow same logic as old code) - Genfun::Mod Mod2Pi(2*M_PI); - Genfun::GENFUNCTION phi0_dfold_0 = - Genfun::FixedConstant(M_PI/2.+phi0_safety); - Genfun::GENFUNCTION dphi_dfold_0 = Mod2Pi(newalphe-phi0_safety-Game); - Genfun::GENFUNCTION phi0_dfold_1 = Mod2Pi(M_PI/2.+ alphe_prev - Game); - Genfun::GENFUNCTION dphi_dfold_1 = Mod2Pi(newalphe-alphe_prev); - Genfun::GENFUNCTION phi0_dfold_2 = Mod2Pi(M_PI/2.+ newalphe - Game); - Genfun::GENFUNCTION dphi_dfold_2 = Mod2Pi(- newalphe + Game); + GeoGenfun::Mod Mod2Pi(2*M_PI); + GeoGenfun::GENFUNCTION phi0_dfold_0 = + GeoGenfun::FixedConstant(M_PI/2.+phi0_safety); + GeoGenfun::GENFUNCTION dphi_dfold_0 = Mod2Pi(newalphe-phi0_safety-Game); + GeoGenfun::GENFUNCTION phi0_dfold_1 = Mod2Pi(M_PI/2.+ alphe_prev - Game); + GeoGenfun::GENFUNCTION dphi_dfold_1 = Mod2Pi(newalphe-alphe_prev); + GeoGenfun::GENFUNCTION phi0_dfold_2 = Mod2Pi(M_PI/2.+ newalphe - Game); + GeoGenfun::GENFUNCTION dphi_dfold_2 = Mod2Pi(- newalphe + Game); // up folds - Genfun::GENFUNCTION phi0_ufold_0 = + GeoGenfun::GENFUNCTION phi0_ufold_0 = Mod2Pi(M_PI/2.+newalphe-Game); - Genfun::GENFUNCTION dphi_ufold_0 = Mod2Pi(-newalphe+Game-phi0_safety); - Genfun::GENFUNCTION phi0_ufold_1 = Mod2Pi(M_PI/2. + newalphe - Game); - Genfun::GENFUNCTION dphi_ufold_1 = Mod2Pi(alphe_prev - newalphe); - Genfun::GENFUNCTION phi0_ufold_2 = Genfun::FixedConstant(M_PI/2.); - Genfun::GENFUNCTION dphi_ufold_2 = Mod2Pi(newalphe - Game); - - const Genfun::AbsFunction* phi0_fold=0; - const Genfun::AbsFunction* dphi_fold=0; + GeoGenfun::GENFUNCTION dphi_ufold_0 = Mod2Pi(-newalphe+Game-phi0_safety); + GeoGenfun::GENFUNCTION phi0_ufold_1 = Mod2Pi(M_PI/2. + newalphe - Game); + GeoGenfun::GENFUNCTION dphi_ufold_1 = Mod2Pi(alphe_prev - newalphe); + GeoGenfun::GENFUNCTION phi0_ufold_2 = GeoGenfun::FixedConstant(M_PI/2.); + GeoGenfun::GENFUNCTION dphi_ufold_2 = Mod2Pi(newalphe - Game); + + const GeoGenfun::AbsFunction* phi0_fold=0; + const GeoGenfun::AbsFunction* dphi_fold=0; const GeoXF::Function* TXfold=0; std::string eName; @@ -1880,19 +1880,19 @@ void LArGeo::BarrelConstruction::MakeEnvelope() ddz0 = dza - safety_zlen; } - Genfun::GENFUNCTION zpos = Genfun::FixedConstant(Zmin+dz0); + GeoGenfun::GENFUNCTION zpos = GeoGenfun::FixedConstant(Zmin+dz0); double phirot = 0; if (jrl%2==checkParity) phirot = -M_PI; GeoXF::TRANSFUNCTION TXfold1= - GeoXF::Pow(HepGeom::TranslateX3D(1.0),x1e) * - GeoXF::Pow(HepGeom::TranslateY3D(1.0),y1e) * - GeoXF::Pow(HepGeom::TranslateZ3D(1.0),zpos) * - GeoXF::Pow(HepGeom::RotateZ3D(1.0),Game+phirot); + GeoXF::Pow(GeoTrf::TranslateX3D(1.0),x1e) * + GeoXF::Pow(GeoTrf::TranslateY3D(1.0),y1e) * + GeoXF::Pow(GeoTrf::TranslateZ3D(1.0),zpos) * + GeoXF::Pow(GeoTrf::RotateZ3D(1.0),Game+phirot); GeoXF::TRANSFUNCTION TXfold2 = - GeoXF::Pow(HepGeom::TranslateX3D(1.0),x2e) * - GeoXF::Pow(HepGeom::TranslateY3D(1.0),y2e) * - GeoXF::Pow(HepGeom::TranslateZ3D(1.0),zpos) * - GeoXF::Pow(HepGeom::RotateZ3D(1.0),Game+phirot); + GeoXF::Pow(GeoTrf::TranslateX3D(1.0),x2e) * + GeoXF::Pow(GeoTrf::TranslateY3D(1.0),y2e) * + GeoXF::Pow(GeoTrf::TranslateZ3D(1.0),zpos) * + GeoXF::Pow(GeoTrf::RotateZ3D(1.0),Game+phirot); // first fown fold if (jrl==0 && checkParity==0) { @@ -2005,60 +2005,60 @@ void LArGeo::BarrelConstruction::MakeEnvelope() // Generic Function Versions -Genfun::FunctionNoop LArGeo::BarrelConstruction::Fx(double r, Genfun::GENFUNCTION G, const double Cenx[], const double Ceny[] ) const +GeoGenfun::FunctionNoop LArGeo::BarrelConstruction::Fx(double r, GeoGenfun::GENFUNCTION G, const double Cenx[], const double Ceny[] ) const { - Genfun::Cos Cos; - Genfun::Sin Sin; + GeoGenfun::Cos Cos; + GeoGenfun::Sin Sin; int i = (int)rint(r-.1), j = (int)rint(r+.1) ; - Genfun::GENFUNCTION result = (Cos(G)*(Cenx[i]+Cenx[j])/2-Sin(G)*(Ceny[i]+Ceny[j])/2) ; - return Genfun::FunctionNoop(&result); + GeoGenfun::GENFUNCTION result = (Cos(G)*(Cenx[i]+Cenx[j])/2-Sin(G)*(Ceny[i]+Ceny[j])/2) ; + return GeoGenfun::FunctionNoop(&result); } -Genfun::FunctionNoop LArGeo::BarrelConstruction::Fy(double r, Genfun::GENFUNCTION G, const double Cenx[], const double Ceny[] ) const +GeoGenfun::FunctionNoop LArGeo::BarrelConstruction::Fy(double r, GeoGenfun::GENFUNCTION G, const double Cenx[], const double Ceny[] ) const { - Genfun::Cos Cos; - Genfun::Sin Sin; + GeoGenfun::Cos Cos; + GeoGenfun::Sin Sin; int i = (int)rint(r-.1), j = (int)rint(r+.1) ; - Genfun::GENFUNCTION result = (Sin(G)*(Cenx[i]+Cenx[j])/2+Cos(G)*(Ceny[i]+Ceny[j])/2) ; - return Genfun::FunctionNoop(&result); + GeoGenfun::GENFUNCTION result = (Sin(G)*(Cenx[i]+Cenx[j])/2+Cos(G)*(Ceny[i]+Ceny[j])/2) ; + return GeoGenfun::FunctionNoop(&result); } -Genfun::FunctionNoop LArGeo::BarrelConstruction::Del1(Genfun::GENFUNCTION G) const +GeoGenfun::FunctionNoop LArGeo::BarrelConstruction::Del1(GeoGenfun::GENFUNCTION G) const { - Genfun::Cos Cos; - Genfun::Sin Sin; - Genfun::GENFUNCTION result = (Cos( G ) * Sin( G ) ); - return Genfun::FunctionNoop(&result); + GeoGenfun::Cos Cos; + GeoGenfun::Sin Sin; + GeoGenfun::GENFUNCTION result = (Cos( G ) * Sin( G ) ); + return GeoGenfun::FunctionNoop(&result); } -Genfun::FunctionNoop LArGeo::BarrelConstruction::Del2(Genfun::GENFUNCTION G) const +GeoGenfun::FunctionNoop LArGeo::BarrelConstruction::Del2(GeoGenfun::GENFUNCTION G) const { - Genfun::Cos Cos; - Genfun::GENFUNCTION result = (Cos( G ) * Cos( G ) ); - return Genfun::FunctionNoop(&result); + GeoGenfun::Cos Cos; + GeoGenfun::GENFUNCTION result = (Cos( G ) * Cos( G ) ); + return GeoGenfun::FunctionNoop(&result); } -Genfun::FunctionNoop LArGeo::BarrelConstruction::ATan2(Genfun::GENFUNCTION y, Genfun::GENFUNCTION x) const { +GeoGenfun::FunctionNoop LArGeo::BarrelConstruction::ATan2(GeoGenfun::GENFUNCTION y, GeoGenfun::GENFUNCTION x) const { // Manufacture a Theta Function: - Genfun::Rectangular Theta; + GeoGenfun::Rectangular Theta; Theta.x0().setValue(0.0); Theta.x1().setValue(DBL_MAX); Theta.baseline().setValue(0.0); Theta.height().setValue(1.0); // Manufacture an ATan function: - Genfun::ATan ATan; + GeoGenfun::ATan ATan; // Manufacture a Mod function, putting this on the range (0-2PI) - Genfun::Mod Mod2Pi(2*M_PI); + GeoGenfun::Mod Mod2Pi(2*M_PI); // Now take ATan if x is positive - Genfun::GENFUNCTION result = Theta(x)*ATan(y/x) + Theta(-x)*(Mod2Pi(ATan(y/x)+M_PI)); - return Genfun::FunctionNoop(&result); + GeoGenfun::GENFUNCTION result = Theta(x)*ATan(y/x) + Theta(-x)*(Mod2Pi(ATan(y/x)+M_PI)); + return GeoGenfun::FunctionNoop(&result); } @@ -2111,7 +2111,7 @@ void LArGeo::BarrelConstruction::printParams() m_parameters->GetValue("LArEMBphiMaxBarrel") << std::endl; std::cout << "Number of zigs " << m_parameters->GetValue("LArEMBnoOFAccZigs") << std::endl; - std::cout << "Fold CLHEP::rad of curvature " << + std::cout << "Fold GeoModelKernelUnits::rad of curvature " << m_parameters->GetValue("LArEMBNeutFiberRadius") << std::endl; for (int i=0;i<15;i++) { std::cout << "Fold " << i << " radius " << diff --git a/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelCryostatConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelCryostatConstruction.cxx index ba3a3b001725b43ea52142c358a3efc16f3f70b5..9aeeec35266d8d4cdbf685e3e7a93286e1042956 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelCryostatConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelCryostatConstruction.cxx @@ -51,13 +51,13 @@ // For units: #include "CLHEP/Units/PhysicalConstants.h" // For Transformation Fields: -#include "CLHEP/GenericFunctions/Abs.hh" -#include "CLHEP/GenericFunctions/Mod.hh" -#include "CLHEP/GenericFunctions/Rectangular.hh" -#include "CLHEP/GenericFunctions/Variable.hh" -#include "CLHEP/GenericFunctions/FixedConstant.hh" -#include "CLHEP/GenericFunctions/Sin.hh" -#include "CLHEP/GenericFunctions/Cos.hh" +#include "GeoGenericFunctions/Abs.h" +#include "GeoGenericFunctions/Mod.h" +#include "GeoGenericFunctions/Rectangular.h" +#include "GeoGenericFunctions/Variable.h" +#include "GeoGenericFunctions/FixedConstant.h" +#include "GeoGenericFunctions/Sin.h" +#include "GeoGenericFunctions/Cos.h" #include <string> #include <cmath> @@ -65,7 +65,7 @@ #include <climits> #include <stdexcept> using namespace GeoXF; -using namespace Genfun; +using namespace GeoGenfun; // The objects for mapping plane indexes in Pcon to the record index // in RDBRecordset @@ -169,7 +169,7 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() const IRDBRecord *posRec = GeoDBUtils::getTransformRecord(larPosition, names[n]); if (!posRec) throw std::runtime_error("Error, no lar position record in the database") ; - HepGeom::Transform3D xfPos = GeoDBUtils::getTransform(posRec); + GeoTrf::Transform3D xfPos = GeoDBUtils::getTransform(posRec); xf[n] = new GeoAlignableTransform(xfPos); StoredAlignX *sAlignX = new StoredAlignX(xf[n]); @@ -243,9 +243,9 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() // (LArVDetectorParameters) and adjust the volume geometry // accordingly. - // double cryoMotherRin[] = {1149.8*CLHEP::mm, 1149.8*CLHEP::mm,1149.8*CLHEP::mm,1149.8*CLHEP::mm,1149.8*CLHEP::mm,1149.8*CLHEP::mm}; - // double cryoMotherRout[] = {2890. *CLHEP::mm, 2890. *CLHEP::mm,2250. *CLHEP::mm,2250. *CLHEP::mm,2890. *CLHEP::mm,2890. *CLHEP::mm}; - // double cryoMotherZplan[] = {-3490.*CLHEP::mm,-2850.*CLHEP::mm,-2849.*CLHEP::mm, 2849.*CLHEP::mm, 2850.*CLHEP::mm, 3490.*CLHEP::mm}; + // double cryoMotherRin[] = {1149.8*GeoModelKernelUnits::mm, 1149.8*GeoModelKernelUnits::mm,1149.8*GeoModelKernelUnits::mm,1149.8*GeoModelKernelUnits::mm,1149.8*GeoModelKernelUnits::mm,1149.8*GeoModelKernelUnits::mm}; + // double cryoMotherRout[] = {2890. *GeoModelKernelUnits::mm, 2890. *GeoModelKernelUnits::mm,2250. *GeoModelKernelUnits::mm,2250. *GeoModelKernelUnits::mm,2890. *GeoModelKernelUnits::mm,2890. *GeoModelKernelUnits::mm}; + // double cryoMotherZplan[] = {-3490.*GeoModelKernelUnits::mm,-2850.*GeoModelKernelUnits::mm,-2849.*GeoModelKernelUnits::mm, 2849.*GeoModelKernelUnits::mm, 2850.*GeoModelKernelUnits::mm, 3490.*GeoModelKernelUnits::mm}; // Access source of detector parameters. // VDetectorParameters* parameters = VDetectorParameters::GetInstance(); @@ -322,8 +322,8 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() std::string cylName= cylStream.str(); int cylNumber = currentRecord->getInt("CYL_NUMBER"); - double zMin = currentRecord->getDouble("ZMIN")*CLHEP::cm; - double dZ = currentRecord->getDouble("DZ")*CLHEP::cm; + double zMin = currentRecord->getDouble("ZMIN")*GeoModelKernelUnits::cm; + double dZ = currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm; double zInCryostat = zMin + dZ / 2.; if(m_fullGeo){ @@ -347,12 +347,12 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() m_cryoMotherPhysical->add(new GeoNameTag(std::string("CryostatEarForward"))); m_cryoMotherPhysical->add(new GeoIdentifierTag(cylNumber)); - m_cryoMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(zInCryostat))); + m_cryoMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(zInCryostat))); m_cryoMotherPhysical->add(earPhysVol); m_cryoMotherPhysical->add(new GeoNameTag(cylName+std::string("CryostatEarBackward"))); m_cryoMotherPhysical->add(new GeoIdentifierTag(cylNumber)); - m_cryoMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(-zInCryostat))); + m_cryoMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(-zInCryostat))); m_cryoMotherPhysical->add(earPhysVol); } @@ -370,7 +370,7 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() -angle*(M_PI/180.0), M_PI + 2*angle*(M_PI/180)); - HepGeom::TranslateY3D offset(rmax-yvert); + GeoTrf::TranslateY3D offset(rmax-yvert); GeoBox * box = new GeoBox(rmax,rmax, rmax); const GeoShape & shape = tubs->subtract((*box)<<offset); @@ -379,12 +379,12 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() m_cryoMotherPhysical->add(new GeoNameTag(std::string("CryostatLegForward"))); m_cryoMotherPhysical->add(new GeoIdentifierTag(cylNumber)); - m_cryoMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(zInCryostat+zthick))); + m_cryoMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(zInCryostat+zthick))); m_cryoMotherPhysical->add(legPhysVol); m_cryoMotherPhysical->add(new GeoNameTag(cylName+std::string("CryostatLegBackward"))); m_cryoMotherPhysical->add(new GeoIdentifierTag(cylNumber)); - m_cryoMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(-zInCryostat-zthick))); + m_cryoMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(-zInCryostat-zthick))); m_cryoMotherPhysical->add(legPhysVol); } } @@ -395,9 +395,9 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() // For Reco Geometry construct only solenoid cylinders if(m_fullGeo || (10<=cylID && cylID<=14)) { solidBarrelCylinder - = new GeoTubs(currentRecord->getDouble("RMIN")*CLHEP::cm, - currentRecord->getDouble("RMIN")*CLHEP::cm + currentRecord->getDouble("DR")*CLHEP::cm, - currentRecord->getDouble("DZ")*CLHEP::cm / 2., + = new GeoTubs(currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm, + currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm + currentRecord->getDouble("DR")*GeoModelKernelUnits::cm, + currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm / 2., (double) 0., dphi_all); @@ -418,7 +418,7 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() if(10<=cylID && cylID<=14) m_cryoMotherPhysical->add(xfSolenoid); - m_cryoMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(zInCryostat))); + m_cryoMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(zInCryostat))); m_cryoMotherPhysical->add(physBarrelCylinder); @@ -436,12 +436,12 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() m_cryoMotherPhysical->add(new GeoNameTag(cylName+std::string("PhysForward"))); m_cryoMotherPhysical->add(new GeoIdentifierTag(cylNumber)); - m_cryoMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(zInCryostat))); + m_cryoMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(zInCryostat))); m_cryoMotherPhysical->add(physBarrelCylinder); m_cryoMotherPhysical->add(new GeoNameTag(cylName+std::string("PhysBackward"))); m_cryoMotherPhysical->add(new GeoIdentifierTag(cylNumber)); - m_cryoMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(-zInCryostat))); + m_cryoMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(-zInCryostat))); m_cryoMotherPhysical->add(physBarrelCylinder); } } @@ -532,17 +532,17 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() double xxVis=((double)(Nvis)); double ZposB=0.5*(z1+z2); double twopi128 = 2.*M_PI/xxVis; - Genfun::Variable i; - Genfun::Mod Mod1(1.0),Mod128(xxVis),Mod2(2.0); - Genfun::GENFUNCTION PhiPos = PhiPos0 + twopi128*Mod128(i); - Genfun::GENFUNCTION Int = i - Mod1; - Genfun::Cos Cos; - Genfun::Sin Sin; + GeoGenfun::Variable i; + GeoGenfun::Mod Mod1(1.0),Mod128(xxVis),Mod2(2.0); + GeoGenfun::GENFUNCTION PhiPos = PhiPos0 + twopi128*Mod128(i); + GeoGenfun::GENFUNCTION Int = i - Mod1; + GeoGenfun::Cos Cos; + GeoGenfun::Sin Sin; GeoXF::TRANSFUNCTION TX = - GeoXF::Pow(HepGeom::TranslateX3D(1.0),RhoPosB*Cos(PhiPos))* - GeoXF::Pow(HepGeom::TranslateY3D(1.0),RhoPosB*Sin(PhiPos))* - GeoXF::Pow(HepGeom::TranslateZ3D(2*ZposB),Int(i/128))* - HepGeom::TranslateZ3D(-ZposB); + GeoXF::Pow(GeoTrf::TranslateX3D(1.0),RhoPosB*Cos(PhiPos))* + GeoXF::Pow(GeoTrf::TranslateY3D(1.0),RhoPosB*Sin(PhiPos))* + GeoXF::Pow(GeoTrf::TranslateZ3D(2*ZposB),Int(i/128))* + GeoTrf::TranslateZ3D(-ZposB); GeoSerialTransformer *st = new GeoSerialTransformer(phys_vis, &TX, 2*Nvis); innerWallPhys->add(st); } @@ -588,7 +588,7 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() GeoLogVol* extraLog = new GeoLogVol(extraName,extraCons,Aluminium); GeoPhysVol* extraPhys = new GeoPhysVol(extraLog); - m_cryoMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(extra_zpos))); + m_cryoMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(extra_zpos))); m_cryoMotherPhysical->add(extraPhys); } } @@ -649,31 +649,31 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() double pos = -z+width/2 + distFromRidge; // position of bumpers in new description if (newBlocks->size() >0) { - Genfun::Variable i; // - Genfun::Mod Mod1(1.0),Mod2(2.0); // - Genfun::GENFUNCTION Truncate = i - Mod1(i); // - Genfun::GENFUNCTION AngleZ = -angle/2.+angle*Truncate(Mod2(i/2))+ 2.*M_PI/(1.0*nPairTot)*Truncate(i/4) + 2*M_PI/(2.*nPairTot); - Genfun::GENFUNCTION TransZ = -pos + 2.*pos*Mod2(i); + GeoGenfun::Variable i; // + GeoGenfun::Mod Mod1(1.0),Mod2(2.0); // + GeoGenfun::GENFUNCTION Truncate = i - Mod1(i); // + GeoGenfun::GENFUNCTION AngleZ = -angle/2.+angle*Truncate(Mod2(i/2))+ 2.*M_PI/(1.0*nPairTot)*Truncate(i/4) + 2*M_PI/(2.*nPairTot); + GeoGenfun::GENFUNCTION TransZ = -pos + 2.*pos*Mod2(i); TRANSFUNCTION tx = - GeoXF::Pow(HepGeom::TranslateZ3D(1.0),TransZ)* - GeoXF::Pow(HepGeom::RotateZ3D(1.0),AngleZ)* - HepGeom::Translate3D(0.,r+height/2,0.); + GeoXF::Pow(GeoTrf::TranslateZ3D(1.0),TransZ)* + GeoXF::Pow(GeoTrf::RotateZ3D(1.0),AngleZ)* + GeoTrf::Translate3D(0.,r+height/2,0.); GeoSerialTransformer *t = new GeoSerialTransformer(physVol, &tx, nPairTot*4); m_cryoMotherPhysical->add(t); } // position of bumper in old description else { - Genfun::Variable i; // - Genfun::Mod Mod1(1.0),Mod2(2.0); // - Genfun::GENFUNCTION Truncate = i - Mod1(i); // + GeoGenfun::Variable i; // + GeoGenfun::Mod Mod1(1.0),Mod2(2.0); // + GeoGenfun::GENFUNCTION Truncate = i - Mod1(i); // TRANSFUNCTION tx = - Pow(HepGeom::RotateZ3D(2*M_PI/nPairTot),Truncate(i/4))* - Pow(HepGeom::RotateZ3D(angle),Mod2(i/2))* - HepGeom::RotateZ3D(-angle/2)* - Pow(HepGeom::TranslateZ3D(2*pos),Mod2(i))* - HepGeom::Translate3D(0,r+height/2, -pos); + Pow(GeoTrf::RotateZ3D(2*M_PI/nPairTot),Truncate(i/4))* + Pow(GeoTrf::RotateZ3D(angle),Mod2(i/2))* + GeoTrf::RotateZ3D(-angle/2)* + Pow(GeoTrf::TranslateZ3D(2*pos),Mod2(i))* + GeoTrf::Translate3D(0,r+height/2, -pos); GeoSerialTransformer *t = new GeoSerialTransformer(physVol, &tx, nPairTot*4); m_cryoMotherPhysical->add(t); } @@ -707,7 +707,7 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() m_cryoMotherPhysical->add(new GeoNameTag(std::string("Barrel Cryo InnerEndWall Phys"))); GeoPhysVol *innerEndWallPhys = new GeoPhysVol(innerEndWallLog); m_cryoMotherPhysical->add(innerEndWallPhys); - m_cryoMotherPhysical->add(new GeoTransform(HepGeom::RotateY3D(M_PI))); + m_cryoMotherPhysical->add(new GeoTransform(GeoTrf::RotateY3D(M_PI))); m_cryoMotherPhysical->add(innerEndWallPhys); } @@ -722,9 +722,9 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() // sub-divided into sensitive-detector regions in the detector // routine. - // double totalLArRin[] = { 1565.5*CLHEP::mm, 1385.*CLHEP::mm, 1385.*CLHEP::mm, 1565.5*CLHEP::mm }; - // double totalLArRout[] = { 2140. *CLHEP::mm, 2140.*CLHEP::mm, 2140.*CLHEP::mm, 2140. *CLHEP::mm }; - // double totalLArZplan[] = {-3267. *CLHEP::mm,-3101.*CLHEP::mm, 3101.*CLHEP::mm, 3267. *CLHEP::mm }; + // double totalLArRin[] = { 1565.5*GeoModelKernelUnits::mm, 1385.*GeoModelKernelUnits::mm, 1385.*GeoModelKernelUnits::mm, 1565.5*GeoModelKernelUnits::mm }; + // double totalLArRout[] = { 2140. *GeoModelKernelUnits::mm, 2140.*GeoModelKernelUnits::mm, 2140.*GeoModelKernelUnits::mm, 2140. *GeoModelKernelUnits::mm }; + // double totalLArZplan[] = {-3267. *GeoModelKernelUnits::mm,-3101.*GeoModelKernelUnits::mm, 3101.*GeoModelKernelUnits::mm, 3267. *GeoModelKernelUnits::mm }; GeoPcon* totalLArShape = new GeoPcon(0., // starting phi @@ -763,11 +763,11 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() // to this shape to allow for mis-alignments in other dimensions.) // increase internal radius to allow misalignments - // ----------------------------------------------- double rInShift = 0.*CLHEP::mm; + // ----------------------------------------------- double rInShift = 0.*GeoModelKernelUnits::mm; - // double halfLArZplan[] = { 3.0 *CLHEP::mm, 3101.*CLHEP::mm, 3267. *CLHEP::mm }; - // double halfLArRin[] = {1385.*CLHEP::mm + rInShift, 1385.*CLHEP::mm + rInShift, 1565.5*CLHEP::mm + rInShift}; - // double halfLArRout[] = {2140.*CLHEP::mm, 2140.*CLHEP::mm, 2140. *CLHEP::mm }; + // double halfLArZplan[] = { 3.0 *GeoModelKernelUnits::mm, 3101.*GeoModelKernelUnits::mm, 3267. *GeoModelKernelUnits::mm }; + // double halfLArRin[] = {1385.*GeoModelKernelUnits::mm + rInShift, 1385.*GeoModelKernelUnits::mm + rInShift, 1565.5*GeoModelKernelUnits::mm + rInShift}; + // double halfLArRout[] = {2140.*GeoModelKernelUnits::mm, 2140.*GeoModelKernelUnits::mm, 2140. *GeoModelKernelUnits::mm }; std::string halfLArName = "LAr::Barrel::Cryostat::HalfLAr"; GeoPcon* halfLArShape = @@ -810,7 +810,7 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() // add alignable transform totalLArPhysical->add(xfHalfLArNeg); - totalLArPhysical->add( new GeoTransform(HepGeom::RotateY3D(180.*CLHEP::deg)) ); + totalLArPhysical->add( new GeoTransform(GeoTrf::RotateY3D(180.*GeoModelKernelUnits::deg)) ); totalLArPhysical->add(halfLArPhysicalNeg); { @@ -865,9 +865,9 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() std::string cylName= cylStream.str(); GeoTubs* solidBarrelCylinder - = new GeoTubs(currentRecord->getDouble("RMIN")*CLHEP::cm, - currentRecord->getDouble("RMIN")*CLHEP::cm + currentRecord->getDouble("DR")*CLHEP::cm, - currentRecord->getDouble("DZ")*CLHEP::cm / 2., + = new GeoTubs(currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm, + currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm + currentRecord->getDouble("DR")*GeoModelKernelUnits::cm, + currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm / 2., (double) 0., dphi_all); @@ -876,7 +876,7 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() GeoPhysVol* physBarrelCylinder = new GeoPhysVol(logicBarrelCylinder); - double zInCryostat = currentRecord->getDouble("ZMIN")*CLHEP::cm + currentRecord->getDouble("DZ")*CLHEP::cm / 2.; + double zInCryostat = currentRecord->getDouble("ZMIN")*GeoModelKernelUnits::cm + currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm / 2.; int cylNumber = currentRecord->getInt("CYL_NUMBER"); @@ -886,23 +886,23 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() halfLArPhysicalPos->add(new GeoNameTag(cylName+std::string("PhysForward"))); halfLArPhysicalPos->add(new GeoIdentifierTag(cylNumber)); // halfLArPhysicalPos->add(xfPos); - halfLArPhysicalPos->add(new GeoTransform(HepGeom::TranslateZ3D(zInCryostat))); + halfLArPhysicalPos->add(new GeoTransform(GeoTrf::TranslateZ3D(zInCryostat))); halfLArPhysicalPos->add(physBarrelCylinder); halfLArPhysicalNeg->add(new GeoNameTag(cylName+std::string("PhysBackward"))); halfLArPhysicalNeg->add(new GeoIdentifierTag(cylNumber)); // halfLArPhysicalNeg->add(xfNeg); - halfLArPhysicalNeg->add(new GeoTransform(HepGeom::TranslateZ3D(zInCryostat))); + halfLArPhysicalNeg->add(new GeoTransform(GeoTrf::TranslateZ3D(zInCryostat))); halfLArPhysicalNeg->add(physBarrelCylinder); } else { totalLArPhysical->add(new GeoNameTag(cylName+std::string("PhysForward"))); totalLArPhysical->add(new GeoIdentifierTag(cylNumber)); - totalLArPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(zInCryostat))); + totalLArPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(zInCryostat))); totalLArPhysical->add(physBarrelCylinder); totalLArPhysical->add(new GeoNameTag(cylName+std::string("PhysBackward"))); totalLArPhysical->add(new GeoIdentifierTag(cylNumber)); - totalLArPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(-zInCryostat))); + totalLArPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(-zInCryostat))); totalLArPhysical->add(physBarrelCylinder); } } @@ -913,13 +913,13 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() } { // ----- Presampler ------ - double PresamplerMother_length = 1549.0*CLHEP::mm; // Copied from PresParameterDef.icc - double presamplerShift = 3.*CLHEP::mm; + double PresamplerMother_length = 1549.0*GeoModelKernelUnits::mm; // Copied from PresParameterDef.icc + double presamplerShift = 3.*GeoModelKernelUnits::mm; BarrelPresamplerConstruction barrelPSConstruction(m_fullGeo); // The "envelope" determined by the EMB should be a GeoFullPhysVol. GeoFullPhysVol* barrelPSPosEnvelope = barrelPSConstruction.GetPositiveEnvelope(); - GeoTransform *xfPos = new GeoTransform(HepGeom::Transform3D(HepGeom::TranslateZ3D(PresamplerMother_length+presamplerShift))); + GeoTransform *xfPos = new GeoTransform(GeoTrf::Transform3D(GeoTrf::TranslateZ3D(PresamplerMother_length+presamplerShift))); { halfLArPhysicalPos->add(xfPos); //halfLArPhysicalPos->add(new GeoNameTag("PositivePSBarrel")); @@ -931,7 +931,7 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() } // The "envelope" determined by the EMB should be a GeoFullPhysVol. GeoFullPhysVol* barrelPSNegEnvelope = barrelPSConstruction.GetNegativeEnvelope(); - GeoTransform *xfNeg = new GeoTransform(HepGeom::Transform3D(HepGeom::TranslateZ3D(PresamplerMother_length+presamplerShift))); + GeoTransform *xfNeg = new GeoTransform(GeoTrf::Transform3D(GeoTrf::TranslateZ3D(PresamplerMother_length+presamplerShift))); { halfLArPhysicalNeg->add(xfNeg); //halfLArPhysicalPos->add(new GeoNameTag("NegativePSBarrel")); @@ -957,7 +957,7 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() throw std::runtime_error(message.c_str()); } - GeoPcon* pcon = new GeoPcon(startPhi*CLHEP::deg,dPhi*CLHEP::deg); + GeoPcon* pcon = new GeoPcon(startPhi*GeoModelKernelUnits::deg,dPhi*GeoModelKernelUnits::deg); for(unsigned int ii=0; ii<sctEcCoolingPlanes.size(); ii++) { iter = sctEcCoolingPlanes.find(ii); @@ -978,10 +978,10 @@ GeoFullPhysVol* LArGeo::BarrelCryostatConstruction::GetEnvelope() const GeoLogVol* sctCiCoolingLog = new GeoLogVol("LAr::Barrel::Cryostat::SctCiCooling",pcon,material); GeoPhysVol* sctCiCoolingPhys = new GeoPhysVol(sctCiCoolingLog); - GeoTransform* xfPos1 = new GeoTransform(HepGeom::Transform3D()); - GeoTransform* xfPos2 = new GeoTransform(HepGeom::RotateZ3D(180*CLHEP::deg)); - GeoTransform* xfNeg1 = new GeoTransform(HepGeom::RotateZ3D((180+2*centerPhi)*CLHEP::deg)*HepGeom::RotateY3D(180*CLHEP::deg)); - GeoTransform* xfNeg2 = new GeoTransform(HepGeom::RotateZ3D(2*centerPhi*CLHEP::deg)*HepGeom::RotateY3D(180*CLHEP::deg)); + GeoTransform* xfPos1 = new GeoTransform(GeoTrf::Transform3D::Identity()); + GeoTransform* xfPos2 = new GeoTransform(GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)); + GeoTransform* xfNeg1 = new GeoTransform(GeoTrf::RotateZ3D((180+2*centerPhi)*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg)); + GeoTransform* xfNeg2 = new GeoTransform(GeoTrf::RotateZ3D(2*centerPhi*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg)); m_cryoMotherPhysical->add(xfPos1); m_cryoMotherPhysical->add(sctCiCoolingPhys); diff --git a/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelDMConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelDMConstruction.cxx index 04fc2df01cd834707f8d44bdfc12a6f93a86edb2..eb57b265ddd48c77297c26686ca6a3601b92985f 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelDMConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelDMConstruction.cxx @@ -51,17 +51,17 @@ // For Functions: // For functions: -#include "CLHEP/GenericFunctions/Abs.hh" -#include "CLHEP/GenericFunctions/Sin.hh" -#include "CLHEP/GenericFunctions/Cos.hh" -#include "CLHEP/GenericFunctions/Sqrt.hh" -#include "CLHEP/GenericFunctions/ATan.hh" -#include "CLHEP/GenericFunctions/Rectangular.hh" -#include "CLHEP/GenericFunctions/Mod.hh" -#include "CLHEP/GenericFunctions/Variable.hh" -#include "CLHEP/GenericFunctions/FixedConstant.hh" - -using namespace Genfun; +#include "GeoGenericFunctions/Abs.h" +#include "GeoGenericFunctions/Sin.h" +#include "GeoGenericFunctions/Cos.h" +#include "GeoGenericFunctions/Sqrt.h" +#include "GeoGenericFunctions/ATan.h" +#include "GeoGenericFunctions/Rectangular.h" +#include "GeoGenericFunctions/Mod.h" +#include "GeoGenericFunctions/Variable.h" +#include "GeoGenericFunctions/FixedConstant.h" + +using namespace GeoGenfun; using namespace GeoXF; @@ -71,7 +71,7 @@ namespace BarrelDM { static const unsigned int NCrates=16; -static const double Alfa=360*CLHEP::deg/NCrates; +static const double Alfa=360*GeoModelKernelUnits::deg/NCrates; static const double Enda=1155; static const double Endb=1695.2; static const double Endc=2771.6; @@ -169,24 +169,24 @@ createSectorEnvelopes2FromDB (GeoFullPhysVol* envelope, double Spb2ytr = BarrelDMTraps[recordIndex]->getDouble("YTR"); double Spb2ztr = BarrelDMTraps[recordIndex]->getDouble("ZTR"); - const GeoMaterial* matLArServices17 = materialManager.getMaterial("LAr::LArServices17");// 0.035*CLHEP::gram/CLHEP::cm3 - const GeoMaterial* matLArServices18 = materialManager.getMaterial("LAr::LArServices18");// 0.240*CLHEP::gram/CLHEP::cm3 - const GeoMaterial* matLArServices19 = materialManager.getMaterial("LAr::LArServices19");// 0.469*CLHEP::gram/CLHEP::cm3 - const GeoMaterial* matLArServices20 = materialManager.getMaterial("LAr::LArServices20");// 0.353*CLHEP::gram/CLHEP::cm3 - const GeoMaterial *alu = materialManager.getMaterial("std::Aluminium"); //2.7 CLHEP::g/CLHEP::cm3 - const GeoMaterial *air = materialManager.getMaterial("std::Air"); //0.001214 CLHEP::g/CLHEP::cm3 + const GeoMaterial* matLArServices17 = materialManager.getMaterial("LAr::LArServices17");// 0.035*gram/cm3 + const GeoMaterial* matLArServices18 = materialManager.getMaterial("LAr::LArServices18");// 0.240*gram/cm3 + const GeoMaterial* matLArServices19 = materialManager.getMaterial("LAr::LArServices19");// 0.469*gram/cm3 + const GeoMaterial* matLArServices20 = materialManager.getMaterial("LAr::LArServices20");// 0.353*gram/cm3 + const GeoMaterial *alu = materialManager.getMaterial("std::Aluminium"); //2.7 g/cm3 + const GeoMaterial *air = materialManager.getMaterial("std::Air"); //0.001214 g/cm3 - HepGeom::Transform3D Cut3Boxe = HepGeom::Translate3D(Boxxtr, Boxytr, Boxztr)*HepGeom::RotateX3D(-20*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); - HepGeom::Transform3D Cut4Boxe = HepGeom::Translate3D(Boxxtr, -Boxytr,Boxztr)*HepGeom::RotateX3D(20*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); + GeoTrf::Transform3D Cut3Boxe = GeoTrf::Translate3D(Boxxtr, Boxytr, Boxztr)*GeoTrf::RotateX3D(-20*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + GeoTrf::Transform3D Cut4Boxe = GeoTrf::Translate3D(Boxxtr, -Boxytr,Boxztr)*GeoTrf::RotateX3D(20*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); // build 5 instances of SectorEnvelopes1 with 3 different materials! GeoTrd *Trdair2 = new GeoTrd(SecE2xhlen1, SecE2xhlen2, DYb, DYc, (Endc-Endb)/2); const GeoShape & SectorEnvelope= ((*Trdair2). - subtract((*Box) <<HepGeom::Transform3D(Cut3Boxe)). - subtract((*Box) <<HepGeom::Transform3D(Cut4Boxe))); + subtract((*Box) <<GeoTrf::Transform3D(Cut3Boxe)). + subtract((*Box) <<GeoTrf::Transform3D(Cut4Boxe))); const GeoShape & SectorEnvelopes= ((SectorEnvelope). - add(SectorEnvelope << HepGeom::TranslateY3D(-(DYb+DYc)*cos(Alfa/2)*cos(Alfa/2))*HepGeom::TranslateZ3D(-(DYb+DYc)*0.5*sin(Alfa))*HepGeom::RotateX3D(Alfa))); + add(SectorEnvelope << GeoTrf::TranslateY3D(-(DYb+DYc)*cos(Alfa/2)*cos(Alfa/2))*GeoTrf::TranslateZ3D(-(DYb+DYc)*0.5*sin(Alfa))*GeoTrf::RotateX3D(Alfa))); GeoLogVol *lvse2r = new GeoLogVol("LAr::DM::SectorEnvelopes2r",&SectorEnvelopes,matLArServices20); GeoPhysVol *sectorenvelopes2r = new GeoPhysVol(lvse2r); // for right-handed splice boxes @@ -195,28 +195,28 @@ createSectorEnvelopes2FromDB (GeoFullPhysVol* envelope, GeoPhysVol *sectorenvelopes2l = new GeoPhysVol(lvse2l); // for left-handed splice boxes GeoLogVol *lvse2h = new GeoLogVol("LAr::DM::SectorEnvelopes2h",&SectorEnvelopes,matLArServices19); - GeoPhysVol *sectorenvelopes2h = new GeoPhysVol(lvse2h); // no splice boxes horizontal at 0 & 180 CLHEP::deg. + GeoPhysVol *sectorenvelopes2h = new GeoPhysVol(lvse2h); // no splice boxes horizontal at 0 & 180 GeoModelKernelUnits::deg. GeoLogVol *lvse2vup = new GeoLogVol("LAr::DM::SectorEnvelopes2vup",&SectorEnvelopes,matLArServices17); - GeoPhysVol *sectorenvelopes2vup = new GeoPhysVol(lvse2vup); // no splice boxes vertical up at 90 CLHEP::deg + GeoPhysVol *sectorenvelopes2vup = new GeoPhysVol(lvse2vup); // no splice boxes vertical up at 90 GeoModelKernelUnits::deg GeoLogVol *lvse2vd = new GeoLogVol("LAr::DM::SectorEnvelopes2Vd",&SectorEnvelopes,matLArServices18); - GeoPhysVol *sectorenvelopes2vd = new GeoPhysVol(lvse2vd); // no splice boxes vertical down at 270 CLHEP::deg + GeoPhysVol *sectorenvelopes2vd = new GeoPhysVol(lvse2vd); // no splice boxes vertical down at 270 GeoModelKernelUnits::deg //---------- Build Splice boxes for InDet optical fibers-------- GeoTrap *GeoTrap1 = new GeoTrap(Spb1zhlen, Spb1theta, Spb1phi, Spb1yzn, Spb1xynzn, Spb1xypzn, Spb1angn, Spb1yzp, Spb1xynzp, Spb1xypzp, Spb1angp); GeoBox *Box1 = new GeoBox(SplBoxhlen, SplBoxhwdt, SplBoxhhgt); const GeoShape & SpliceBox = ((*GeoTrap1). - subtract(*Box1 << HepGeom::TranslateZ3D(SplBoxztr)*HepGeom::TranslateY3D(-SplBoxytr)*HepGeom::RotateX3D(SplBoxxrot*CLHEP::deg))); + subtract(*Box1 << GeoTrf::TranslateZ3D(SplBoxztr)*GeoTrf::TranslateY3D(-SplBoxytr)*GeoTrf::RotateX3D(SplBoxxrot*GeoModelKernelUnits::deg))); - GeoTransform *xtr = new GeoTransform (HepGeom::TranslateZ3D(Spb1ztr)*HepGeom::TranslateY3D(-Spb1ytr)*HepGeom::TranslateX3D(Spb1xtr)*HepGeom::RotateX3D(Spb1xrot*CLHEP::deg)); + GeoTransform *xtr = new GeoTransform (GeoTrf::TranslateZ3D(Spb1ztr)*GeoTrf::TranslateY3D(-Spb1ytr)*GeoTrf::TranslateX3D(Spb1xtr)*GeoTrf::RotateX3D(Spb1xrot*GeoModelKernelUnits::deg)); sectorenvelopes2r->add(xtr); GeoLogVol *lvspbr = new GeoLogVol("LAr::DM::SPliceBoxr",&SpliceBox,alu); GeoPhysVol *spliceboxr = new GeoPhysVol(lvspbr); sectorenvelopes2r->add(spliceboxr); - GeoTransform *xtl = new GeoTransform (HepGeom::TranslateZ3D(Spb1ztr)*HepGeom::TranslateY3D(-Spb1ytr)*HepGeom::TranslateX3D(Spb1xtr)*HepGeom::RotateY3D(-180*CLHEP::deg)*HepGeom::RotateX3D(-(Alfa/2))); + GeoTransform *xtl = new GeoTransform (GeoTrf::TranslateZ3D(Spb1ztr)*GeoTrf::TranslateY3D(-Spb1ytr)*GeoTrf::TranslateX3D(Spb1xtr)*GeoTrf::RotateY3D(-180*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(-(Alfa/2))); sectorenvelopes2l->add(xtl); GeoLogVol *lvspbl = new GeoLogVol("LAr::DM::SpliceBoxl",&SpliceBox,alu); GeoPhysVol *spliceboxl = new GeoPhysVol(lvspbl); @@ -227,7 +227,7 @@ createSectorEnvelopes2FromDB (GeoFullPhysVol* envelope, GeoTrap *GeoTrap2 = new GeoTrap(Spb2zhlen, Spb2theta, Spb2phi, Spb2yzn, Spb2xynzn, Spb2xypzn, Spb2angn, Spb2yzp, Spb2xynzp, Spb2xypzp, Spb2angp); GeoTrap *GeoTrap3 = new GeoTrap(Spb3zhlen, Spb3theta, Spb3phi, Spb3yzn, Spb3xynzn, Spb3xypzn, Spb3angn, Spb3yzp, Spb3xynzp, Spb3xypzp, Spb3angp); - GeoTransform *xt1 = new GeoTransform (HepGeom::TranslateY3D(-Spb0ytr)*HepGeom::RotateX3D(Spb0xrot*CLHEP::deg)); + GeoTransform *xt1 = new GeoTransform (GeoTrf::TranslateY3D(-Spb0ytr)*GeoTrf::RotateX3D(Spb0xrot*GeoModelKernelUnits::deg)); spliceboxr->add(xt1); spliceboxl->add(xt1); GeoLogVol *lt1 = new GeoLogVol("LAr::DM::TBox1",Trd1,air); @@ -235,7 +235,7 @@ createSectorEnvelopes2FromDB (GeoFullPhysVol* envelope, spliceboxr->add(tbox1); spliceboxl->add(tbox1); - GeoTransform *xt2 = new GeoTransform (HepGeom::TranslateZ3D(Spb2ztr)*HepGeom::TranslateY3D(Spb2ytr)); + GeoTransform *xt2 = new GeoTransform (GeoTrf::TranslateZ3D(Spb2ztr)*GeoTrf::TranslateY3D(Spb2ytr)); spliceboxr->add(xt2); spliceboxl->add(xt2); GeoLogVol *lt2 = new GeoLogVol("LAr::DM::TBox2",GeoTrap2,air); @@ -243,7 +243,7 @@ createSectorEnvelopes2FromDB (GeoFullPhysVol* envelope, spliceboxr->add(tbox2); spliceboxl->add(tbox2); - GeoTransform *xt3 = new GeoTransform (HepGeom::TranslateZ3D(-Spb3ztr)); + GeoTransform *xt3 = new GeoTransform (GeoTrf::TranslateZ3D(-Spb3ztr)); spliceboxr->add(xt3); spliceboxl->add(xt3); GeoLogVol *lt3 = new GeoLogVol("LAr::DM::TBox3",GeoTrap3,air); @@ -253,16 +253,16 @@ createSectorEnvelopes2FromDB (GeoFullPhysVol* envelope, //-------------- Place volumes in LAr Envelope ------------------- - TRANSFUNCTION seA2r = Pow(HepGeom::RotateZ3D(1.0),8*f-(3*Alfa/2))*HepGeom::TranslateX3D((Endb+Endc)/2)*HepGeom::TranslateZ3D(SecE2ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA2l = Pow(HepGeom::RotateZ3D(1.0),8*f+(5*Alfa/2))*HepGeom::TranslateX3D((Endb+Endc)/2)*HepGeom::TranslateZ3D(SecE2ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC2r = Pow(HepGeom::RotateZ3D(1.0),8*f-(3*Alfa/2))*HepGeom::TranslateX3D((Endb+Endc)/2)*HepGeom::TranslateZ3D(-SecE2ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC2l = Pow(HepGeom::RotateZ3D(1.0),8*f+(5*Alfa/2))*HepGeom::TranslateX3D((Endb+Endc)/2)*HepGeom::TranslateZ3D(-SecE2ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA2Vup = Pow(HepGeom::RotateZ3D(1.0),f+(9*Alfa/2))*HepGeom::TranslateX3D((Endb+Endc)/2)*HepGeom::TranslateZ3D(SecE2ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA2Vd = Pow(HepGeom::RotateZ3D(1.0),f-(7*Alfa/2))*HepGeom::TranslateX3D((Endb+Endc)/2)*HepGeom::TranslateZ3D(SecE2ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA2H = Pow(HepGeom::RotateZ3D(1.0),8*f+(Alfa/2))*HepGeom::TranslateX3D((Endb+Endc)/2)*HepGeom::TranslateZ3D(SecE2ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC2Vup = Pow(HepGeom::RotateZ3D(1.0),f+(9*Alfa/2))*HepGeom::TranslateX3D((Endb+Endc)/2)*HepGeom::TranslateZ3D(-SecE2ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC2Vd = Pow(HepGeom::RotateZ3D(1.0),f-(7*Alfa/2))*HepGeom::TranslateX3D((Endb+Endc)/2)*HepGeom::TranslateZ3D(-SecE2ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC2H = Pow(HepGeom::RotateZ3D(1.0),8*f+(Alfa/2))*HepGeom::TranslateX3D((Endb+Endc)/2)*HepGeom::TranslateZ3D(-SecE2ztr)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION seA2r = Pow(GeoTrf::RotateZ3D(1.0),8*f-(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA2l = Pow(GeoTrf::RotateZ3D(1.0),8*f+(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC2r = Pow(GeoTrf::RotateZ3D(1.0),8*f-(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC2l = Pow(GeoTrf::RotateZ3D(1.0),8*f+(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA2Vup = Pow(GeoTrf::RotateZ3D(1.0),f+(9*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA2Vd = Pow(GeoTrf::RotateZ3D(1.0),f-(7*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA2H = Pow(GeoTrf::RotateZ3D(1.0),8*f+(Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC2Vup = Pow(GeoTrf::RotateZ3D(1.0),f+(9*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC2Vd = Pow(GeoTrf::RotateZ3D(1.0),f-(7*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC2H = Pow(GeoTrf::RotateZ3D(1.0),8*f+(Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-SecE2ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer *setA2r = new GeoSerialTransformer(sectorenvelopes2r,&seA2r, 2); GeoSerialTransformer *setA2l = new GeoSerialTransformer(sectorenvelopes2l,&seA2l, 2); @@ -311,12 +311,12 @@ createBridgeEnvelopesFromDB (GeoFullPhysVol* envelope, double BridgeExtr = r->getDouble("XTR"); double BridgeEztr = r->getDouble("ZTR"); - GeoTrap *Trapair = new GeoTrap(BridgeEzhlen, BridgeEtheta*CLHEP::deg, BridgeEphi, BridgeEyzn, BridgeExynzn, BridgeExypzn, BridgeEangn, BridgeEyzp, BridgeExynzp, BridgeExypzp, BridgeEangp); + GeoTrap *Trapair = new GeoTrap(BridgeEzhlen, BridgeEtheta*GeoModelKernelUnits::deg, BridgeEphi, BridgeEyzn, BridgeExynzn, BridgeExypzn, BridgeEangn, BridgeEyzp, BridgeExynzp, BridgeExypzp, BridgeEangp); GeoLogVol *lvbre = new GeoLogVol("LAr::DM::BridgeEnvelopes",Trapair,matLArServices8);//In the end Density at least >= than SE1 because of Cryo Pipes GeoPhysVol *bridgeenvelopes = new GeoPhysVol(lvbre); - TRANSFUNCTION breA = Pow(HepGeom::RotateZ3D(1.0),f-(Alfa/2))*HepGeom::TranslateX3D(BridgeExtr)*HepGeom::TranslateZ3D(BridgeEztr)*HepGeom::RotateZ3D(90*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg)*HepGeom::RotateX3D(90*CLHEP::deg); - TRANSFUNCTION breC = Pow(HepGeom::RotateZ3D(1.0),f-(Alfa/2))*HepGeom::TranslateX3D(BridgeExtr)*HepGeom::TranslateZ3D(-BridgeEztr)*HepGeom::RotateZ3D(-90*CLHEP::deg)*HepGeom::RotateY3D(-90*CLHEP::deg)*HepGeom::RotateX3D(-90*CLHEP::deg); + TRANSFUNCTION breA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(BridgeExtr)*GeoTrf::TranslateZ3D(BridgeEztr)*GeoTrf::RotateZ3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION breC = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(BridgeExtr)*GeoTrf::TranslateZ3D(-BridgeEztr)*GeoTrf::RotateZ3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(-90*GeoModelKernelUnits::deg); GeoSerialTransformer *bretA = new GeoSerialTransformer(bridgeenvelopes,&breA, NCrates); GeoSerialTransformer *bretC = new GeoSerialTransformer(bridgeenvelopes,&breC, NCrates); envelope->add(bretA); @@ -345,8 +345,8 @@ createBaseEnvelopesFromDB (GeoFullPhysVol* envelope, GeoLogVol *lvbe = new GeoLogVol("LAr::DM::BaseEnvelopes",Trd1air,matLArServices8); //In the end Density at least >= than SE1 because of Cryo Pipes GeoPhysVol *baseenvelopes = new GeoPhysVol(lvbe); - TRANSFUNCTION beA = Pow(HepGeom::RotateZ3D(1.0),f-(Alfa/2))*HepGeom::TranslateX3D(BaseExtr)*HepGeom::TranslateZ3D(BaseEztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION beC = Pow(HepGeom::RotateZ3D(1.0),f+(Alfa/2))*HepGeom::TranslateX3D(BaseExtr)*HepGeom::TranslateZ3D(-BaseEztr)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION beA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(BaseExtr)*GeoTrf::TranslateZ3D(BaseEztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION beC = Pow(GeoTrf::RotateZ3D(1.0),f+(Alfa/2))*GeoTrf::TranslateX3D(BaseExtr)*GeoTrf::TranslateZ3D(-BaseEztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer *betA = new GeoSerialTransformer(baseenvelopes,&beA, NCrates); GeoSerialTransformer *betC = new GeoSerialTransformer(baseenvelopes,&beC, NCrates); envelope->add(betA); @@ -394,24 +394,24 @@ void createFromDB (GeoFullPhysVol* envelope, unsigned int recordIndex; // Get materials - const GeoMaterial *alu = materialManager.getMaterial("std::Aluminium"); //2.7 CLHEP::g/CLHEP::cm3 - const GeoMaterial* matBoardsEnvelope = materialManager.getMaterial("LAr::BoardsEnvelope");// 0.932*CLHEP::gram/CLHEP::cm3); - const GeoMaterial* matLArServices1 = materialManager.getMaterial("LAr::LArServices1");// 1.020*CLHEP::gram/CLHEP::cm3 - const GeoMaterial* matLArServices2 = materialManager.getMaterial("LAr::LArServices2");// 0.955*CLHEP::gram/CLHEP::cm3 - const GeoMaterial* matLArServices3 = materialManager.getMaterial("LAr::LArServices3");// 1.005*CLHEP::gram/CLHEP::cm3 - const GeoMaterial* matLArServices4 = materialManager.getMaterial("LAr::LArServices4");// 0.460*CLHEP::gram/CLHEP::cm3 - const GeoMaterial* matLArServices5 = materialManager.getMaterial("LAr::LArServices5");// 0.480*CLHEP::gram/CLHEP::cm3 - const GeoMaterial* matLArServices6 = materialManager.getMaterial("LAr::LArServices6");// 1.000*CLHEP::gram/CLHEP::cm3 - const GeoMaterial* matLArServices7 = materialManager.getMaterial("LAr::LArServices7");// 0.935*CLHEP::gram/CLHEP::cm3 - const GeoMaterial* matLArServices8 = materialManager.getMaterial("LAr::LArServices8");// 1.070*CLHEP::gram/CLHEP::cm3 - const GeoMaterial* matLArServices9 = materialManager.getMaterial("LAr::LArServices9");// 1.020*CLHEP::gram/CLHEP::cm3 - const GeoMaterial* matLArServices10 = materialManager.getMaterial("LAr::LArServices10");// 0.995*CLHEP::gram/CLHEP::cm3 - const GeoMaterial* matLArServices11 = materialManager.getMaterial("LAr::LArServices11");// 0.835*CLHEP::gram/CLHEP::cm3 - const GeoMaterial* matLArServices12 = materialManager.getMaterial("LAr::LArServices12");// 0.640*CLHEP::gram/CLHEP::cm3 - const GeoMaterial* matLArServices13 = materialManager.getMaterial("LAr::LArServices13");// 0.690*CLHEP::gram/CLHEP::cm3 - const GeoMaterial* matLArServices14 = materialManager.getMaterial("LAr::LArServices14");// 0.825*CLHEP::gram/CLHEP::cm3 - const GeoMaterial* matLArServices15 = materialManager.getMaterial("LAr::LArServices15");// 0.875*CLHEP::gram/CLHEP::cm3 - const GeoMaterial* matLArServices16 = materialManager.getMaterial("LAr::LArServices16");// 1.035*CLHEP::gram/CLHEP::cm3 + const GeoMaterial *alu = materialManager.getMaterial("std::Aluminium"); //2.7 g/cm3 + const GeoMaterial* matBoardsEnvelope = materialManager.getMaterial("LAr::BoardsEnvelope");// 0.932*gram/cm3); + const GeoMaterial* matLArServices1 = materialManager.getMaterial("LAr::LArServices1");// 1.020*gram/cm3 + const GeoMaterial* matLArServices2 = materialManager.getMaterial("LAr::LArServices2");// 0.955*gram/cm3 + const GeoMaterial* matLArServices3 = materialManager.getMaterial("LAr::LArServices3");// 1.005*gram/cm3 + const GeoMaterial* matLArServices4 = materialManager.getMaterial("LAr::LArServices4");// 0.460*gram/cm3 + const GeoMaterial* matLArServices5 = materialManager.getMaterial("LAr::LArServices5");// 0.480*gram/cm3 + const GeoMaterial* matLArServices6 = materialManager.getMaterial("LAr::LArServices6");// 1.000*gram/cm3 + const GeoMaterial* matLArServices7 = materialManager.getMaterial("LAr::LArServices7");// 0.935*gram/cm3 + const GeoMaterial* matLArServices8 = materialManager.getMaterial("LAr::LArServices8");// 1.070*gram/cm3 + const GeoMaterial* matLArServices9 = materialManager.getMaterial("LAr::LArServices9");// 1.020*gram/cm3 + const GeoMaterial* matLArServices10 = materialManager.getMaterial("LAr::LArServices10");// 0.995*gram/cm3 + const GeoMaterial* matLArServices11 = materialManager.getMaterial("LAr::LArServices11");// 0.835*gram/cm3 + const GeoMaterial* matLArServices12 = materialManager.getMaterial("LAr::LArServices12");// 0.640*gram/cm3 + const GeoMaterial* matLArServices13 = materialManager.getMaterial("LAr::LArServices13");// 0.690*gram/cm3 + const GeoMaterial* matLArServices14 = materialManager.getMaterial("LAr::LArServices14");// 0.825*gram/cm3 + const GeoMaterial* matLArServices15 = materialManager.getMaterial("LAr::LArServices15");// 0.875*gram/cm3 + const GeoMaterial* matLArServices16 = materialManager.getMaterial("LAr::LArServices16");// 1.035*gram/cm3 const double inv_Endab = 1. / (Endb - Enda); Variable i; @@ -476,9 +476,9 @@ void createFromDB (GeoFullPhysVol* envelope, GeoTube *Ped2 = new GeoTube(ped2minr, ped2maxr, ped2zhlen); GeoTube *Ped3 = new GeoTube(ped3minr,ped3maxr , ped3zhlen); const GeoShape & CratePed=((*Pedestal).subtract(*Ped1). - subtract((*Ped2) <<HepGeom::TranslateY3D(-ped2ytr)*HepGeom::RotateY3D(90*CLHEP::deg)). - subtract((*Ped3) <<HepGeom::TranslateX3D(-ped3xtr)). - subtract((*Ped2) <<HepGeom::TranslateY3D(ped2ytr)*HepGeom::RotateY3D(90*CLHEP::deg))); + subtract((*Ped2) <<GeoTrf::TranslateY3D(-ped2ytr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)). + subtract((*Ped3) <<GeoTrf::TranslateX3D(-ped3xtr)). + subtract((*Ped2) <<GeoTrf::TranslateY3D(ped2ytr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg))); GeoLogVol *lvped = new GeoLogVol("LAr::DM::Ped",&CratePed,alu); GeoPhysVol *pedestal = new GeoPhysVol(lvped); @@ -487,7 +487,7 @@ void createFromDB (GeoFullPhysVol* envelope, GeoBox *Crate1 = new GeoBox(crate1hlen, crate1hwdt, crate1hhgt); GeoBox *Crate2 = new GeoBox(crate2hlen, crate2hwdt, crate2hhgt); GeoBox *Crate3 = new GeoBox(crate3hlen, crate3hwdt, crate3hhgt); - const GeoShape & FEBCrate=(*Crate1).subtract(*Crate2).add((*Crate3) <<HepGeom::TranslateX3D(-crate3xtr)); + const GeoShape & FEBCrate=(*Crate1).subtract(*Crate2).add((*Crate3) <<GeoTrf::TranslateX3D(-crate3xtr)); GeoLogVol *lvcrate = new GeoLogVol("LAr::DM::Crate",&FEBCrate,alu); GeoPhysVol *crate = new GeoPhysVol(lvcrate); @@ -500,26 +500,26 @@ void createFromDB (GeoFullPhysVol* envelope, //-------------- Place volumes in envelope ---------------------------- //Crates - TRANSFUNCTION crA = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateX3D(crate1xtr)*HepGeom::TranslateZ3D(crate1ztr); - TRANSFUNCTION crC = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateX3D(crate1xtr)*HepGeom::TranslateZ3D(-crate1ztr); + TRANSFUNCTION crA = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(crate1xtr)*GeoTrf::TranslateZ3D(crate1ztr); + TRANSFUNCTION crC = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(crate1xtr)*GeoTrf::TranslateZ3D(-crate1ztr); GeoSerialTransformer *crtA = new GeoSerialTransformer(crate,&crA, NCrates); GeoSerialTransformer *crtC = new GeoSerialTransformer(crate,&crC, NCrates); envelope->add(crtA); envelope->add(crtC); //Pedestals - TRANSFUNCTION pedA = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateX3D(pedestxtr)*HepGeom::TranslateZ3D(pedestztr); - TRANSFUNCTION pedC = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateX3D(pedestxtr)*HepGeom::TranslateZ3D(-pedestztr); + TRANSFUNCTION pedA = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(pedestxtr)*GeoTrf::TranslateZ3D(pedestztr); + TRANSFUNCTION pedC = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(pedestxtr)*GeoTrf::TranslateZ3D(-pedestztr); GeoSerialTransformer *pedtA = new GeoSerialTransformer(pedestal,&pedA, NCrates); GeoSerialTransformer *pedtC = new GeoSerialTransformer(pedestal,&pedC, NCrates); envelope->add(pedtA); envelope->add(pedtC); //FEBoards - TRANSFUNCTION feb1A = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateY3D(BoardEytr)*HepGeom::TranslateX3D(BoardExtr)*HepGeom::TranslateZ3D(BoardEztr); - TRANSFUNCTION feb2A = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateY3D(-BoardEytr)*HepGeom::TranslateX3D(BoardExtr)*HepGeom::TranslateZ3D(BoardEztr); - TRANSFUNCTION feb1C = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateY3D(BoardEytr)*HepGeom::TranslateX3D(BoardExtr)*HepGeom::TranslateZ3D(-BoardEztr); - TRANSFUNCTION feb2C = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateY3D(-BoardEytr)*HepGeom::TranslateX3D(BoardExtr)*HepGeom::TranslateZ3D(-BoardEztr); + TRANSFUNCTION feb1A = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(BoardEytr)*GeoTrf::TranslateX3D(BoardExtr)*GeoTrf::TranslateZ3D(BoardEztr); + TRANSFUNCTION feb2A = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(-BoardEytr)*GeoTrf::TranslateX3D(BoardExtr)*GeoTrf::TranslateZ3D(BoardEztr); + TRANSFUNCTION feb1C = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(BoardEytr)*GeoTrf::TranslateX3D(BoardExtr)*GeoTrf::TranslateZ3D(-BoardEztr); + TRANSFUNCTION feb2C = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(-BoardEytr)*GeoTrf::TranslateX3D(BoardExtr)*GeoTrf::TranslateZ3D(-BoardEztr); GeoSerialTransformer *febt1A = new GeoSerialTransformer(boardenvelope,&feb1A, NCrates); GeoSerialTransformer *febt1C = new GeoSerialTransformer(boardenvelope,&feb1C, NCrates); GeoSerialTransformer *febt2A = new GeoSerialTransformer(boardenvelope,&feb2A, NCrates); @@ -568,8 +568,8 @@ void createFromDB (GeoFullPhysVol* envelope, // transforms GeoBox *Box = new GeoBox(Boxhlen, Boxhwdt, Boxhhgt); - HepGeom::Transform3D Cut3Boxp = HepGeom::Translate3D(Boxxtr, Boxytr, Boxxrot)*HepGeom::RotateX3D(-20*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); - HepGeom::Transform3D Cut4Boxp = HepGeom::Translate3D(Boxxtr, -Boxytr,Boxxrot)*HepGeom::RotateX3D(20*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); + GeoTrf::Transform3D Cut3Boxp = GeoTrf::Translate3D(Boxxtr, Boxytr, Boxxrot)*GeoTrf::RotateX3D(-20*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + GeoTrf::Transform3D Cut4Boxp = GeoTrf::Translate3D(Boxxtr, -Boxytr,Boxxrot)*GeoTrf::RotateX3D(20*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); // ----- build sector envelopes ----- // build 16 instances of SectorEnvelopes1 each with its own material! @@ -668,7 +668,7 @@ void createFromDB (GeoFullPhysVol* envelope, GeoLogVol *extraMatLog = new GeoLogVol(ringName,extraMatTdr,matExtraTdr); GeoPhysVol *extraMatPhys = new GeoPhysVol(extraMatLog); for (unsigned int isect=0;isect<se1List.size();isect++) { - se1List[isect]->add(new GeoTransform(HepGeom::TranslateZ3D(zpos))); + se1List[isect]->add(new GeoTransform(GeoTrf::TranslateZ3D(zpos))); se1List[isect]->add(extraMatPhys); } } @@ -707,7 +707,7 @@ void createFromDB (GeoFullPhysVol* envelope, for (unsigned int isect=0;isect<se1List.size();isect++) { // no PPF1 box around phi=0 and phi=pi if (noHorizontal>0 && ((isect==7 && iphi==1) || (isect==8 && iphi==0) || (isect==15 && iphi==1) || (isect==0 && iphi==0) ) ) continue; - se1List[isect]->add(new GeoTransform(HepGeom::Translate3D(xpos,ypos,zpos))); + se1List[isect]->add(new GeoTransform(GeoTrf::Translate3D(xpos,ypos,zpos))); se1List[isect]->add(ppf1Phys); } } @@ -723,7 +723,7 @@ void createFromDB (GeoFullPhysVol* envelope, GeoPhysVol *baseplates = new GeoPhysVol(lvbp); // ----- build bridge plates ----- - GeoTrap *Trapalu = new GeoTrap(BridgePzhlen, BridgePtheta*CLHEP::deg, BridgePphi, BridgePyzn, BridgePxynzn, BridgePxypzn, BridgePangn, BridgePyzp, BridgePxynzp, BridgePxypzp, BridgePangp); + GeoTrap *Trapalu = new GeoTrap(BridgePzhlen, BridgePtheta*GeoModelKernelUnits::deg, BridgePphi, BridgePyzn, BridgePxynzn, BridgePxypzn, BridgePangn, BridgePyzp, BridgePxynzp, BridgePxypzp, BridgePangp); GeoLogVol *lvbrp = new GeoLogVol("LAr::DM::BridgePlates",Trapalu,alu); GeoPhysVol *bridgeplates = new GeoPhysVol(lvbrp); @@ -731,8 +731,8 @@ void createFromDB (GeoFullPhysVol* envelope, // ----- build sector plates ----- GeoTrd *Trd2alu = new GeoTrd(SecPxhlen1, SecPxhlen2, SecPyhlen1, SecPyhlen2, SecPzhlen );/// const GeoShape & SectorPlates= ((*Trd2alu). - subtract((*Box) <<HepGeom::Transform3D(Cut3Boxp)). - subtract((*Box) <<HepGeom::Transform3D(Cut4Boxp))); + subtract((*Box) <<GeoTrf::Transform3D(Cut3Boxp)). + subtract((*Box) <<GeoTrf::Transform3D(Cut4Boxp))); GeoLogVol *lvsp = new GeoLogVol("LAr::DM::SectorPlates",&SectorPlates,alu); GeoPhysVol *sectorplates = new GeoPhysVol(lvsp); @@ -740,18 +740,18 @@ void createFromDB (GeoFullPhysVol* envelope, //-------------- Place volumes in LAr Envelope ------------------- //sectorPlates - TRANSFUNCTION spA = Pow(HepGeom::RotateZ3D(1.0),f-(Alfa/2))*HepGeom::TranslateX3D(SecPxtr)*HepGeom::TranslateZ3D(SecPztr)*HepGeom::RotateY3D(90*CLHEP::deg);/// - TRANSFUNCTION spC = Pow(HepGeom::RotateZ3D(1.0),f+(Alfa/2))*HepGeom::TranslateX3D(SecPxtr)*HepGeom::TranslateZ3D(-SecPztr)*HepGeom::RotateY3D(90*CLHEP::deg);/// + TRANSFUNCTION spA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(SecPxtr)*GeoTrf::TranslateZ3D(SecPztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg);/// + TRANSFUNCTION spC = Pow(GeoTrf::RotateZ3D(1.0),f+(Alfa/2))*GeoTrf::TranslateX3D(SecPxtr)*GeoTrf::TranslateZ3D(-SecPztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg);/// GeoSerialTransformer *sptA = new GeoSerialTransformer(sectorplates,&spA, NCrates); GeoSerialTransformer *sptC = new GeoSerialTransformer(sectorplates,&spC, NCrates); envelope->add(sptA); envelope->add(sptC); //bridgePlates - TRANSFUNCTION brpA1 = Pow(HepGeom::RotateZ3D(1.0),f-(5*Alfa/2))*HepGeom::TranslateX3D(BridgePxtr)*HepGeom::TranslateZ3D(BridgePztr)*HepGeom::RotateZ3D(90*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg)*HepGeom::RotateX3D(90*CLHEP::deg); - TRANSFUNCTION brpA2 = Pow(HepGeom::RotateZ3D(1.0),f+(13*Alfa/2))*HepGeom::TranslateX3D(BridgePxtr)*HepGeom::TranslateZ3D(BridgePztr)*HepGeom::RotateZ3D(90*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg)*HepGeom::RotateX3D(90*CLHEP::deg); - TRANSFUNCTION brpC1 = Pow(HepGeom::RotateZ3D(1.0),f-(5*Alfa/2))*HepGeom::TranslateX3D(BridgePxtr)*HepGeom::TranslateZ3D(-BridgePztr)*HepGeom::RotateZ3D(-90*CLHEP::deg)*HepGeom::RotateY3D(-90*CLHEP::deg)*HepGeom::RotateX3D(-90*CLHEP::deg); - TRANSFUNCTION brpC2 = Pow(HepGeom::RotateZ3D(1.0),f+(13*Alfa/2))*HepGeom::TranslateX3D(BridgePxtr)*HepGeom::TranslateZ3D(-BridgePztr)*HepGeom::RotateZ3D(-90*CLHEP::deg)*HepGeom::RotateY3D(-90*CLHEP::deg)*HepGeom::RotateX3D(-90*CLHEP::deg); GeoSerialTransformer *brptA1 = new GeoSerialTransformer(bridgeplates,&brpA1, 5); + TRANSFUNCTION brpA1 = Pow(GeoTrf::RotateZ3D(1.0),f-(5*Alfa/2))*GeoTrf::TranslateX3D(BridgePxtr)*GeoTrf::TranslateZ3D(BridgePztr)*GeoTrf::RotateZ3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION brpA2 = Pow(GeoTrf::RotateZ3D(1.0),f+(13*Alfa/2))*GeoTrf::TranslateX3D(BridgePxtr)*GeoTrf::TranslateZ3D(BridgePztr)*GeoTrf::RotateZ3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION brpC1 = Pow(GeoTrf::RotateZ3D(1.0),f-(5*Alfa/2))*GeoTrf::TranslateX3D(BridgePxtr)*GeoTrf::TranslateZ3D(-BridgePztr)*GeoTrf::RotateZ3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(-90*GeoModelKernelUnits::deg); + TRANSFUNCTION brpC2 = Pow(GeoTrf::RotateZ3D(1.0),f+(13*Alfa/2))*GeoTrf::TranslateX3D(BridgePxtr)*GeoTrf::TranslateZ3D(-BridgePztr)*GeoTrf::RotateZ3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(-90*GeoModelKernelUnits::deg); GeoSerialTransformer *brptA1 = new GeoSerialTransformer(bridgeplates,&brpA1, 5); GeoSerialTransformer *brptA2 = new GeoSerialTransformer(bridgeplates,&brpA2, 5); GeoSerialTransformer *brptC1 = new GeoSerialTransformer(bridgeplates,&brpC1, 5); GeoSerialTransformer *brptC2 = new GeoSerialTransformer(bridgeplates,&brpC2, 5); @@ -761,8 +761,8 @@ void createFromDB (GeoFullPhysVol* envelope, envelope->add(brptC2); //basePlates - TRANSFUNCTION bpA = Pow(HepGeom::RotateZ3D(1.0),f-(Alfa/2))*HepGeom::TranslateX3D(BasePxtr)*HepGeom::TranslateZ3D(BasePztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION bpC = Pow(HepGeom::RotateZ3D(1.0),f+(Alfa/2))*HepGeom::TranslateX3D(BasePxtr)*HepGeom::TranslateZ3D(-BasePztr)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION bpA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(BasePxtr)*GeoTrf::TranslateZ3D(BasePztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION bpC = Pow(GeoTrf::RotateZ3D(1.0),f+(Alfa/2))*GeoTrf::TranslateX3D(BasePxtr)*GeoTrf::TranslateZ3D(-BasePztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer *bptA = new GeoSerialTransformer(baseplates,&bpA, NCrates); GeoSerialTransformer *bptC = new GeoSerialTransformer(baseplates,&bpC, NCrates); envelope->add(bptA); @@ -770,39 +770,39 @@ void createFromDB (GeoFullPhysVol* envelope, //sectorEnvelopes1 //counter-clockwise from top if taking sideA for reference (clockwise for sideC) - TRANSFUNCTION seA1G5 = Pow(HepGeom::RotateZ3D(1.0),f+(9*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC1G5 = Pow(HepGeom::RotateZ3D(1.0),f+(9*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(-SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA1G6 = Pow(HepGeom::RotateZ3D(1.0),f+(11*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC1G6 = Pow(HepGeom::RotateZ3D(1.0),f+(11*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(-SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA1G7 = Pow(HepGeom::RotateZ3D(1.0),f+(13*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC1G7 = Pow(HepGeom::RotateZ3D(1.0),f+(13*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(-SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA1G8 = Pow(HepGeom::RotateZ3D(1.0),f+(15*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC1G8 = Pow(HepGeom::RotateZ3D(1.0),f+(15*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(-SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA1G9 = Pow(HepGeom::RotateZ3D(1.0),f+(17*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC1G9 = Pow(HepGeom::RotateZ3D(1.0),f+(17*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(-SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA1G10 = Pow(HepGeom::RotateZ3D(1.0),f+(19*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC1G10 = Pow(HepGeom::RotateZ3D(1.0),f+(19*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(-SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA1G11 = Pow(HepGeom::RotateZ3D(1.0),f+(21*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC1G11 = Pow(HepGeom::RotateZ3D(1.0),f+(21*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(-SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA1G12 = Pow(HepGeom::RotateZ3D(1.0),f+(23*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC1G12 = Pow(HepGeom::RotateZ3D(1.0),f+(23*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(-SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION seA1G5 = Pow(GeoTrf::RotateZ3D(1.0),f+(9*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC1G5 = Pow(GeoTrf::RotateZ3D(1.0),f+(9*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA1G6 = Pow(GeoTrf::RotateZ3D(1.0),f+(11*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC1G6 = Pow(GeoTrf::RotateZ3D(1.0),f+(11*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA1G7 = Pow(GeoTrf::RotateZ3D(1.0),f+(13*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC1G7 = Pow(GeoTrf::RotateZ3D(1.0),f+(13*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA1G8 = Pow(GeoTrf::RotateZ3D(1.0),f+(15*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC1G8 = Pow(GeoTrf::RotateZ3D(1.0),f+(15*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA1G9 = Pow(GeoTrf::RotateZ3D(1.0),f+(17*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC1G9 = Pow(GeoTrf::RotateZ3D(1.0),f+(17*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA1G10 = Pow(GeoTrf::RotateZ3D(1.0),f+(19*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC1G10 = Pow(GeoTrf::RotateZ3D(1.0),f+(19*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA1G11 = Pow(GeoTrf::RotateZ3D(1.0),f+(21*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC1G11 = Pow(GeoTrf::RotateZ3D(1.0),f+(21*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA1G12 = Pow(GeoTrf::RotateZ3D(1.0),f+(23*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC1G12 = Pow(GeoTrf::RotateZ3D(1.0),f+(23*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); //clockwise from top if taking sideA for reference (counter-clockwise for sideC) - TRANSFUNCTION seA1G4 = Pow(HepGeom::RotateZ3D(1.0),f+(7*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC1G4 = Pow(HepGeom::RotateZ3D(1.0),f+(7*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(-SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA1G3 = Pow(HepGeom::RotateZ3D(1.0),f+(5*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC1G3 = Pow(HepGeom::RotateZ3D(1.0),f+(5*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(-SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA1G2 = Pow(HepGeom::RotateZ3D(1.0),f+(3*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC1G2 = Pow(HepGeom::RotateZ3D(1.0),f+(3*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(-SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA1G1 = Pow(HepGeom::RotateZ3D(1.0),f+(1*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC1G1 = Pow(HepGeom::RotateZ3D(1.0),f+(1*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(-SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA1G16 = Pow(HepGeom::RotateZ3D(1.0),f-(1*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC1G16 = Pow(HepGeom::RotateZ3D(1.0),f-(1*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(-SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA1G15 = Pow(HepGeom::RotateZ3D(1.0),f-(3*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC1G15 = Pow(HepGeom::RotateZ3D(1.0),f-(3*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(-SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA1G14 = Pow(HepGeom::RotateZ3D(1.0),f-(5*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC1G14 = Pow(HepGeom::RotateZ3D(1.0),f-(5*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(-SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA1G13 = Pow(HepGeom::RotateZ3D(1.0),f-(7*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC1G13 = Pow(HepGeom::RotateZ3D(1.0),f-(7*Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(-SecE1ztr)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION seA1G4 = Pow(GeoTrf::RotateZ3D(1.0),f+(7*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC1G4 = Pow(GeoTrf::RotateZ3D(1.0),f+(7*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA1G3 = Pow(GeoTrf::RotateZ3D(1.0),f+(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC1G3 = Pow(GeoTrf::RotateZ3D(1.0),f+(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA1G2 = Pow(GeoTrf::RotateZ3D(1.0),f+(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC1G2 = Pow(GeoTrf::RotateZ3D(1.0),f+(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA1G1 = Pow(GeoTrf::RotateZ3D(1.0),f+(1*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC1G1 = Pow(GeoTrf::RotateZ3D(1.0),f+(1*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA1G16 = Pow(GeoTrf::RotateZ3D(1.0),f-(1*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC1G16 = Pow(GeoTrf::RotateZ3D(1.0),f-(1*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA1G15 = Pow(GeoTrf::RotateZ3D(1.0),f-(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC1G15 = Pow(GeoTrf::RotateZ3D(1.0),f-(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA1G14 = Pow(GeoTrf::RotateZ3D(1.0),f-(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC1G14 = Pow(GeoTrf::RotateZ3D(1.0),f-(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA1G13 = Pow(GeoTrf::RotateZ3D(1.0),f-(7*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC1G13 = Pow(GeoTrf::RotateZ3D(1.0),f-(7*Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-SecE1ztr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer *setA1G5 = new GeoSerialTransformer(sectorenvelopes1g5,&seA1G5, 1); GeoSerialTransformer *setC1G5 = new GeoSerialTransformer(sectorenvelopes1g5,&seC1G5, 1); @@ -976,13 +976,13 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) // Define some custom materials - That will move to the GeomDB //Fiberglass - GeoMaterial *matFiberglass = new GeoMaterial("SiO2",2.20*CLHEP::gram/CLHEP::cm3); + GeoMaterial *matFiberglass = new GeoMaterial("SiO2",2.20*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); matFiberglass->add(silicon,silicon->getA()/(silicon->getA()+2*oxygen->getA())); matFiberglass->add(oxygen,2*oxygen->getA()/(silicon->getA()+2*oxygen->getA())); matFiberglass->lock(); //Epoxy Resin - GeoMaterial *matEpoxyResin = new GeoMaterial("Epoxy", 1.9*CLHEP::gram/CLHEP::cm3); + GeoMaterial *matEpoxyResin = new GeoMaterial("Epoxy", 1.9*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); matEpoxyResin->add(hydrogen, 14*hydrogen->getA() / (14*hydrogen->getA() + 4*oxygen->getA()+ 8*carbon->getA())); matEpoxyResin->add(oxygen, 4*oxygen->getA() / (14*hydrogen->getA() + 4*oxygen->getA()+ 8*carbon->getA())); matEpoxyResin->add(carbon, 8*carbon->getA() / (14*hydrogen->getA() + 4*oxygen->getA()+ 8*carbon->getA())); @@ -990,7 +990,7 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) matEpoxyResin->lock(); //FEBBoards - GeoMaterial *matFEBBoards = new GeoMaterial("FEBBoards", 4.03*CLHEP::gram/CLHEP::cm3); + GeoMaterial *matFEBBoards = new GeoMaterial("FEBBoards", 4.03*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); matFEBBoards->add(matFiberglass, 0.52); matFEBBoards->add(copper, 0.28); matFEBBoards->add(matEpoxyResin, 0.20); @@ -999,13 +999,13 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) //SERVICES:CABLES, TUBES ETC...// //Water - GeoMaterial *matWater = new GeoMaterial("Water", 1*CLHEP::gram/CLHEP::cm3); + GeoMaterial *matWater = new GeoMaterial("Water", 1*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); matWater->add(hydrogen, 2*hydrogen->getA() / (2*hydrogen->getA() + 1*oxygen->getA())); matWater->add(oxygen, 1*oxygen->getA() / (2*hydrogen->getA() + 1*oxygen->getA())); matWater->lock(); //InDetServices - GeoMaterial* matLArServices = new GeoMaterial("LArServices", 4.03*CLHEP::gram/CLHEP::cm3); + GeoMaterial* matLArServices = new GeoMaterial("LArServices", 4.03*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); matLArServices->add(shieldSteel, 0.20); matLArServices->add(copper, 0.60); matLArServices->add(matRubber, 0.10); @@ -1021,16 +1021,16 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) GeoBox *Pedestal = new GeoBox(71, 400.05, 248.65); GeoBox *Ped1 = new GeoBox(67, 397.05, 245.65); GeoTube *Ped2 = new GeoTube(0, 150, 75); - GeoTube *Ped3 = new GeoTube(0, 2775, 300); //, -75*CLHEP::deg, 150*CLHEP::deg); // 0, 2775, 300, -8.2*CLHEP::deg, 16.4*CLHEP::deg) + GeoTube *Ped3 = new GeoTube(0, 2775, 300); //, -75*GeoModelKernelUnits::deg, 150*GeoModelKernelUnits::deg); // 0, 2775, 300, -8.2*GeoModelKernelUnits::deg, 16.4*GeoModelKernelUnits::deg) //GeoLogVol *lvped3 = new GeoLogVol("LAr::DM::PED3",Ped3,air); //GeoPhysVol *ped3 = new GeoPhysVol(lvped3); //envelope->add(ped3); const GeoShape & CratePed=((*Pedestal).subtract(*Ped1). - subtract((*Ped2) <<HepGeom::TranslateY3D(-200.025)*HepGeom::RotateY3D(90*CLHEP::deg)). - subtract((*Ped3) <<HepGeom::TranslateX3D(-2815)). - subtract((*Ped2) <<HepGeom::TranslateY3D(200.025)*HepGeom::RotateY3D(90*CLHEP::deg))); + subtract((*Ped2) <<GeoTrf::TranslateY3D(-200.025)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)). + subtract((*Ped3) <<GeoTrf::TranslateX3D(-2815)). + subtract((*Ped2) <<GeoTrf::TranslateY3D(200.025)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg))); GeoLogVol *lvped = new GeoLogVol("LAr::DM::PED",&CratePed,air); @@ -1040,7 +1040,7 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) GeoBox *Crate1 = new GeoBox(244.5, 400.05, 255.05); GeoBox *Crate2 = new GeoBox(250, 396.87, 245.55); GeoBox *Crate3 = new GeoBox(186.5, 3.175, 245.55); - const GeoShape & FEBCrate=(*Crate1).subtract(*Crate2).add((*Crate3) <<HepGeom::TranslateX3D(-6.7)); + const GeoShape & FEBCrate=(*Crate1).subtract(*Crate2).add((*Crate3) <<GeoTrf::TranslateX3D(-6.7)); GeoLogVol *lvcrate = new GeoLogVol("LAr::DM::CRATE",&FEBCrate,alu); @@ -1072,9 +1072,9 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) const unsigned int NCrates=16; Variable i; - GENFUNCTION f = (360*CLHEP::deg/NCrates)*i; - GENFUNCTION f1 = (360*CLHEP::deg/NCrates)*i+315*CLHEP::deg; - GENFUNCTION f2 = (360*CLHEP::deg/NCrates)*i+157.5*CLHEP::deg; + GENFUNCTION f = (360*GeoModelKernelUnits::deg/NCrates)*i; + GENFUNCTION f1 = (360*GeoModelKernelUnits::deg/NCrates)*i+315*GeoModelKernelUnits::deg; + GENFUNCTION f2 = (360*GeoModelKernelUnits::deg/NCrates)*i+157.5*GeoModelKernelUnits::deg; GENFUNCTION g = i*19.685; //(f=22.5|| f=45|| f=67.5|| f=180|| f=203.5|| f=225|| f=247.5|| f=270|| f=337.5|| f=360) @@ -1082,48 +1082,48 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) //-------------- Place volumes in envelope ---------------------------- //boards - TRANSFUNCTION xfb1 = Pow(HepGeom::TranslateY3D(1.0),g)*HepGeom::TranslateY3D(19.685); - TRANSFUNCTION xfb2 = Pow(HepGeom::TranslateY3D(1.0),-g)*HepGeom::TranslateY3D(-19.685); + TRANSFUNCTION xfb1 = Pow(GeoTrf::TranslateY3D(1.0),g)*GeoTrf::TranslateY3D(19.685); + TRANSFUNCTION xfb2 = Pow(GeoTrf::TranslateY3D(1.0),-g)*GeoTrf::TranslateY3D(-19.685); GeoSerialTransformer *stb1 = new GeoSerialTransformer(board,&xfb1, (NCrates+3)); GeoSerialTransformer *stb2 = new GeoSerialTransformer(board,&xfb2, (NCrates+3)); boardenvelope->add(stb1); boardenvelope->add(stb2); //coolingplates - TRANSFUNCTION xfcp1 = Pow(HepGeom::TranslateY3D(1.0),g)*HepGeom::TranslateY3D(19.685); - TRANSFUNCTION xfcp2 = Pow(HepGeom::TranslateY3D(1.0),-g)*HepGeom::TranslateY3D(-19.685); + TRANSFUNCTION xfcp1 = Pow(GeoTrf::TranslateY3D(1.0),g)*GeoTrf::TranslateY3D(19.685); + TRANSFUNCTION xfcp2 = Pow(GeoTrf::TranslateY3D(1.0),-g)*GeoTrf::TranslateY3D(-19.685); GeoSerialTransformer *stcp1 = new GeoSerialTransformer(plate,&xfcp1, (NCrates+3)); GeoSerialTransformer *stcp2 = new GeoSerialTransformer(plate,&xfcp2, (NCrates+3)); boardenvelope->add(stcp1); boardenvelope->add(stcp2); //boardpannels - TRANSFUNCTION xfp1 = Pow(HepGeom::TranslateY3D(1.0),g)*HepGeom::TranslateY3D(19.685)*HepGeom::TranslateX3D(204.972); - TRANSFUNCTION xfp2 = Pow(HepGeom::TranslateY3D(1.0),-g)*HepGeom::TranslateY3D(-19.685)*HepGeom::TranslateX3D(204.972); + TRANSFUNCTION xfp1 = Pow(GeoTrf::TranslateY3D(1.0),g)*GeoTrf::TranslateY3D(19.685)*GeoTrf::TranslateX3D(204.972); + TRANSFUNCTION xfp2 = Pow(GeoTrf::TranslateY3D(1.0),-g)*GeoTrf::TranslateY3D(-19.685)*GeoTrf::TranslateX3D(204.972); GeoSerialTransformer *stp1 = new GeoSerialTransformer(pannel,&xfp1, (NCrates+3)); GeoSerialTransformer *stp2 = new GeoSerialTransformer(pannel,&xfp2, (NCrates+3)); boardenvelope->add(stp1); boardenvelope->add(stp2); //crates - TRANSFUNCTION xfc1 = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateX3D(3141.25)*HepGeom::TranslateZ3D(3135.05); - TRANSFUNCTION xfc2 = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateX3D(3141.25)*HepGeom::TranslateZ3D(-3135.05); + TRANSFUNCTION xfc1 = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(3141.25)*GeoTrf::TranslateZ3D(3135.05); + TRANSFUNCTION xfc2 = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(3141.25)*GeoTrf::TranslateZ3D(-3135.05); GeoSerialTransformer *stc1 = new GeoSerialTransformer(crate,&xfc1, NCrates); GeoSerialTransformer *stc2 = new GeoSerialTransformer(crate,&xfc2, NCrates); envelope->add(stc1); envelope->add(stc2); //pedestal - TRANSFUNCTION xfped1 = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateX3D(2825.75)*HepGeom::TranslateZ3D(3135.05); - TRANSFUNCTION xfped2 = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateX3D(2825.75)*HepGeom::TranslateZ3D(-3135.05); + TRANSFUNCTION xfped1 = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(2825.75)*GeoTrf::TranslateZ3D(3135.05); + TRANSFUNCTION xfped2 = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(2825.75)*GeoTrf::TranslateZ3D(-3135.05); GeoSerialTransformer *stped1 = new GeoSerialTransformer(pedestal,&xfped1, NCrates); GeoSerialTransformer *stped2 = new GeoSerialTransformer(pedestal,&xfped2, NCrates); envelope->add(stped1); envelope->add(stped2); //boardenvelopes - TRANSFUNCTION xfe1 = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateX3D(3180.278)*HepGeom::TranslateZ3D(3135.05); - TRANSFUNCTION xfe2 = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateX3D(3180.278)*HepGeom::TranslateZ3D(-3135.05); + TRANSFUNCTION xfe1 = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(3180.278)*GeoTrf::TranslateZ3D(3135.05); + TRANSFUNCTION xfe2 = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(3180.278)*GeoTrf::TranslateZ3D(-3135.05); GeoSerialTransformer *ste1 = new GeoSerialTransformer(boardenvelope,&xfe1, NCrates); GeoSerialTransformer *ste2 = new GeoSerialTransformer(boardenvelope,&xfe2, NCrates); envelope->add(ste1); @@ -1133,65 +1133,65 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) //----------- Building envelope for Cables and Tubes -------------- GeoTrd *Trd1air = new GeoTrd(123.5, 123.5, 167, 245.43, 117.65); - GeoTrap *Trapair = new GeoTrap(178.33, 39.596*CLHEP::deg, 0, 167, 53.5, 53.5, 0, 167, 123.5, 123.5, 0); + GeoTrap *Trapair = new GeoTrap(178.33, 39.596*GeoModelKernelUnits::deg, 0, 167, 53.5, 53.5, 0, 167, 123.5, 123.5, 0); GeoTrd *Trd2air = new GeoTrd(53.5, 53.5, 280, 548, 677.5); GeoBox *Box = new GeoBox(280, 280, 100); GeoTrd *Trd1alu = new GeoTrd(5, 5, 167, 245.43, 117.65); - GeoTrap *Trapalu = new GeoTrap(178.33, 45.5*CLHEP::deg, 0, 167, 5, 5, 0, 167, 5, 5, 0); + GeoTrap *Trapalu = new GeoTrap(178.33, 45.5*GeoModelKernelUnits::deg, 0, 167, 5, 5, 0, 167, 5, 5, 0); GeoTrd *Trd2alu = new GeoTrd(5, 5, 280, 548, 677.5); - HepGeom::Transform3D Cut1Box = HepGeom::Translate3D(-295.5, 500, -473.563)*HepGeom::RotateX3D(-20*CLHEP::deg); - HepGeom::Transform3D Cut2Box = HepGeom::Translate3D(-295.5, -500, -473.563)*HepGeom::RotateX3D(20*CLHEP::deg); + GeoTrf::Transform3D Cut1Box = GeoTrf::Translate3D(-295.5, 500, -473.563)*GeoTrf::RotateX3D(-20*GeoModelKernelUnits::deg); + GeoTrf::Transform3D Cut2Box = GeoTrf::Translate3D(-295.5, -500, -473.563)*GeoTrf::RotateX3D(20*GeoModelKernelUnits::deg); const GeoShape & Envelopes= (*Trd1air). - // add((*Trapair) <<HepGeom::Translate3D(-147.5, 0, -295.25)). - add((*Trd2air) <<HepGeom::Translate3D(-295.5, 0, -1151.063)). - subtract((*Box) <<HepGeom::Transform3D(Cut1Box)). - subtract((*Box) <<HepGeom::Transform3D(Cut2Box)). - add((*Trapair) <<HepGeom::Translate3D(-147.5, 0, -295.25)); + // add((*Trapair) <<GeoTrf::Translate3D(-147.5, 0, -295.25)). + add((*Trd2air) <<GeoTrf::Translate3D(-295.5, 0, -1151.063)). + subtract((*Box) <<GeoTrf::Transform3D(Cut1Box)). + subtract((*Box) <<GeoTrf::Transform3D(Cut2Box)). + add((*Trapair) <<GeoTrf::Translate3D(-147.5, 0, -295.25)); GeoLogVol *lv = new GeoLogVol("LAr::DM::Envelopes",&Envelopes,matLArServices); // Services material go here GeoPhysVol *envelopes = new GeoPhysVol(lv); - const GeoShape & Baseplates= (*Trd1alu).add((*Trapalu) <<HepGeom::Translate3D(-180.5, 0, -295.25)); + const GeoShape & Baseplates= (*Trd1alu).add((*Trapalu) <<GeoTrf::Translate3D(-180.5, 0, -295.25)); GeoLogVol *lvbis = new GeoLogVol("LAr::DM::Baseplates",&Baseplates,alu); GeoPhysVol *baseplates = new GeoPhysVol(lvbis); - const GeoShape & SectorPlates= ((*Trd2alu) <<HepGeom::Translate3D(-366, 0, -1151.063)). - subtract((*Box) <<HepGeom::Transform3D(Cut1Box)). - subtract((*Box) <<HepGeom::Transform3D(Cut2Box)); + const GeoShape & SectorPlates= ((*Trd2alu) <<GeoTrf::Translate3D(-366, 0, -1151.063)). + subtract((*Box) <<GeoTrf::Transform3D(Cut1Box)). + subtract((*Box) <<GeoTrf::Transform3D(Cut2Box)); GeoLogVol *lvbiss = new GeoLogVol("LAr::DM::Sectorplates",&SectorPlates,alu); GeoPhysVol *sectorplates = new GeoPhysVol(lvbiss); //envelopes - TRANSFUNCTION xf3a = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateY3D(-631.63)*HepGeom::TranslateX3D(3175.44)*HepGeom::TranslateZ3D(3165.5)*HepGeom::RotateZ3D(-11.25*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION xf4a = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateY3D(631.63)*HepGeom::TranslateX3D(-3175.44)*HepGeom::TranslateZ3D(-3165.5)*HepGeom::RotateZ3D(-11.25*CLHEP::deg)*HepGeom::RotateY3D(-90*CLHEP::deg); + TRANSFUNCTION xf3a = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(-631.63)*GeoTrf::TranslateX3D(3175.44)*GeoTrf::TranslateZ3D(3165.5)*GeoTrf::RotateZ3D(-11.25*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xf4a = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(631.63)*GeoTrf::TranslateX3D(-3175.44)*GeoTrf::TranslateZ3D(-3165.5)*GeoTrf::RotateZ3D(-11.25*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); GeoSerialTransformer *st3 = new GeoSerialTransformer(envelopes,&xf3a, NCrates); GeoSerialTransformer *st4 = new GeoSerialTransformer(envelopes,&xf4a, NCrates); envelope->add(st3); envelope->add(st4); //baseplates - TRANSFUNCTION xf3b = Pow(HepGeom::RotateZ3D(1.0),f1)*HepGeom::TranslateY3D(-631.63)*HepGeom::TranslateX3D(3175.44)*HepGeom::TranslateZ3D(3044.5)*HepGeom::RotateZ3D(-11.25*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION xf4b = Pow(HepGeom::RotateZ3D(1.0),(f1+22.5*CLHEP::deg))*HepGeom::TranslateY3D(631.63)*HepGeom::TranslateX3D(-3175.44)*HepGeom::TranslateZ3D(-3044.5)*HepGeom::RotateZ3D(-11.25*CLHEP::deg)*HepGeom::RotateY3D(-90*CLHEP::deg); + TRANSFUNCTION xf3b = Pow(GeoTrf::RotateZ3D(1.0),f1)*GeoTrf::TranslateY3D(-631.63)*GeoTrf::TranslateX3D(3175.44)*GeoTrf::TranslateZ3D(3044.5)*GeoTrf::RotateZ3D(-11.25*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xf4b = Pow(GeoTrf::RotateZ3D(1.0),(f1+22.5*GeoModelKernelUnits::deg))*GeoTrf::TranslateY3D(631.63)*GeoTrf::TranslateX3D(-3175.44)*GeoTrf::TranslateZ3D(-3044.5)*GeoTrf::RotateZ3D(-11.25*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); GeoSerialTransformer *st3bis = new GeoSerialTransformer(baseplates,&xf3b, (NCrates-11)); GeoSerialTransformer *st4bis = new GeoSerialTransformer(baseplates,&xf4b, (NCrates-11)); envelope->add(st3bis); envelope->add(st4bis); - TRANSFUNCTION xf5b = Pow(HepGeom::RotateZ3D(1.0),f2)*HepGeom::TranslateY3D(-631.63)*HepGeom::TranslateX3D(3175.44)*HepGeom::TranslateZ3D(3044.5)*HepGeom::RotateZ3D(-11.25*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION xf6b = Pow(HepGeom::RotateZ3D(1.0),(f2-22.5*CLHEP::deg))*HepGeom::TranslateY3D(631.63)*HepGeom::TranslateX3D(-3175.44)*HepGeom::TranslateZ3D(-3044.5)*HepGeom::RotateZ3D(-11.25*CLHEP::deg)*HepGeom::RotateY3D(-90*CLHEP::deg); + TRANSFUNCTION xf5b = Pow(GeoTrf::RotateZ3D(1.0),f2)*GeoTrf::TranslateY3D(-631.63)*GeoTrf::TranslateX3D(3175.44)*GeoTrf::TranslateZ3D(3044.5)*GeoTrf::RotateZ3D(-11.25*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xf6b = Pow(GeoTrf::RotateZ3D(1.0),(f2-22.5*GeoModelKernelUnits::deg))*GeoTrf::TranslateY3D(631.63)*GeoTrf::TranslateX3D(-3175.44)*GeoTrf::TranslateZ3D(-3044.5)*GeoTrf::RotateZ3D(-11.25*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); GeoSerialTransformer *st5bis = new GeoSerialTransformer(baseplates,&xf5b, (NCrates-11)); GeoSerialTransformer *st6bis = new GeoSerialTransformer(baseplates,&xf6b, (NCrates-11)); envelope->add(st5bis); envelope->add(st6bis); //sectorplates - TRANSFUNCTION xf3bb = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateY3D(-631.63)*HepGeom::TranslateX3D(3175.44)*HepGeom::TranslateZ3D(3044.5)*HepGeom::RotateZ3D(-11.25*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION xf4bb = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateY3D(631.63)*HepGeom::TranslateX3D(-3175.44)*HepGeom::TranslateZ3D(-3044.5)*HepGeom::RotateZ3D(-11.25*CLHEP::deg)*HepGeom::RotateY3D(-90*CLHEP::deg); + TRANSFUNCTION xf3bb = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(-631.63)*GeoTrf::TranslateX3D(3175.44)*GeoTrf::TranslateZ3D(3044.5)*GeoTrf::RotateZ3D(-11.25*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xf4bb = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(631.63)*GeoTrf::TranslateX3D(-3175.44)*GeoTrf::TranslateZ3D(-3044.5)*GeoTrf::RotateZ3D(-11.25*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); GeoSerialTransformer *st3biss = new GeoSerialTransformer(sectorplates,&xf3bb, NCrates); GeoSerialTransformer *st4biss = new GeoSerialTransformer(sectorplates,&xf4bb, NCrates); envelope->add(st3biss); @@ -1200,12 +1200,12 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) else if(strDMTopTag=="LArBarrelDM-01" || strDMTopTag=="LArBarrelDM-02") { // Get some standard materials - const GeoMaterial *air = materialManager->getMaterial("std::Air"); //0.001214 CLHEP::g/CLHEP::cm3 - const GeoMaterial *alu = materialManager->getMaterial("std::Aluminium"); //2.7 CLHEP::g/CLHEP::cm3 - const GeoMaterial *shieldSteel = materialManager->getMaterial("shield::ShieldSteel"); //8 CLHEP::g/CLHEP::cm3 - const GeoMaterial *matCO2 = materialManager->getMaterial("trt::CO2"); //0.001842 CLHEP::g/CLHEP::cm3 - const GeoMaterial *matKapton = materialManager->getMaterial("std::Kapton"); // 1.42*CLHEP::gram/CLHEP::cm3 - const GeoMaterial *matC3F8 = materialManager->getMaterial("std::C3F8"); //1.032*CLHEP::gram/CLHEP::cm3 + const GeoMaterial *air = materialManager->getMaterial("std::Air"); //0.001214 g/cm3 + const GeoMaterial *alu = materialManager->getMaterial("std::Aluminium"); //2.7 g/cm3 + const GeoMaterial *shieldSteel = materialManager->getMaterial("shield::ShieldSteel"); //8 g/cm3 + const GeoMaterial *matCO2 = materialManager->getMaterial("trt::CO2"); //0.001842 g/cm3 + const GeoMaterial *matKapton = materialManager->getMaterial("std::Kapton"); // 1.42*gram/cm3 + const GeoMaterial *matC3F8 = materialManager->getMaterial("std::C3F8"); //1.032*gram/cm3 // Get required elements const GeoElement* silicon = materialManager->getElement("Silicon"); @@ -1220,30 +1220,30 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) //C6F14 - GeoMaterial *matC6F14 = new GeoMaterial("C6F14",1.68*CLHEP::gram/CLHEP::cm3); + GeoMaterial *matC6F14 = new GeoMaterial("C6F14",1.68*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); matC6F14->add(carbon, 6*carbon->getA() / (6*carbon->getA() + 14*fluorine->getA())); matC6F14->add(fluorine, 14*fluorine->getA() / (6*carbon->getA() + 14*fluorine->getA())); matC6F14->lock(); //Water - GeoMaterial *matWater = new GeoMaterial("Water", 1*CLHEP::gram/CLHEP::cm3); + GeoMaterial *matWater = new GeoMaterial("Water", 1*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); matWater->add(hydrogen, 2*hydrogen->getA() / (2*hydrogen->getA() + 1*oxygen->getA())); matWater->add(oxygen, 1*oxygen->getA() / (2*hydrogen->getA() + 1*oxygen->getA())); matWater->lock(); //Nitrogen - GeoMaterial *matN2 = new GeoMaterial("N2", 0.0012506*CLHEP::gram/CLHEP::cm3); + GeoMaterial *matN2 = new GeoMaterial("N2", 0.0012506*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); matN2->add(nitrogen,1); matN2->lock(); //Fiberglass - GeoMaterial *matFiberglass = new GeoMaterial("SiO2",2.20*CLHEP::gram/CLHEP::cm3); + GeoMaterial *matFiberglass = new GeoMaterial("SiO2",2.20*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); matFiberglass->add(silicon,silicon->getA()/(silicon->getA()+2*oxygen->getA())); matFiberglass->add(oxygen,2*oxygen->getA()/(silicon->getA()+2*oxygen->getA())); matFiberglass->lock(); //Epoxy Resin - GeoMaterial *matEpoxyResin = new GeoMaterial("Epoxy:C8H14O4Si", 1.9*CLHEP::gram/CLHEP::cm3); + GeoMaterial *matEpoxyResin = new GeoMaterial("Epoxy:C8H14O4Si", 1.9*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); matEpoxyResin->add(hydrogen, 14*hydrogen->getA() / (14*hydrogen->getA() + 4*oxygen->getA()+ 8*carbon->getA()+ 1*silicon->getA())); matEpoxyResin->add(oxygen, 4*oxygen->getA() / (14*hydrogen->getA() + 4*oxygen->getA()+ 8*carbon->getA()+ 1*silicon->getA())); matEpoxyResin->add(carbon, 8*carbon->getA() / (14*hydrogen->getA() + 4*oxygen->getA()+ 8*carbon->getA()+ 1*silicon->getA())); @@ -1251,14 +1251,14 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) matEpoxyResin->lock(); //FEBoards - GeoMaterial *matFEBoards = new GeoMaterial("FEBoards", 4.03*CLHEP::gram/CLHEP::cm3); + GeoMaterial *matFEBoards = new GeoMaterial("FEBoards", 4.03*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); matFEBoards->add(matFiberglass, 0.52); matFEBoards->add(copper, 0.28); matFEBoards->add(matEpoxyResin, 0.20); matFEBoards->lock(); //BoardsEnvelope (FEBoards + Cooling Plates + Water + Air) - GeoMaterial* matBoardsEnvelope = new GeoMaterial("BoardsEnvelope", 0.932*CLHEP::gram/CLHEP::cm3); + GeoMaterial* matBoardsEnvelope = new GeoMaterial("BoardsEnvelope", 0.932*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); matBoardsEnvelope->add(matFEBoards, 0.4147); matBoardsEnvelope->add(matWater, 0.0736); matBoardsEnvelope->add(air, 0.0008); @@ -1266,8 +1266,8 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) matBoardsEnvelope->lock(); //InDetServices !!! Provisoire !!! - double density1 = 1.*CLHEP::gram/CLHEP::cm3; - if (strDMTopTag=="LArBarrelDM-02") density1 = 1.7*CLHEP::gram/CLHEP::cm3; + double density1 = 1.*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3; + if (strDMTopTag=="LArBarrelDM-02") density1 = 1.7*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3; GeoMaterial* matLArServices1 = new GeoMaterial("LArServices1", density1); matLArServices1->add(copper, .60); matLArServices1->add(shieldSteel, .05); @@ -1280,8 +1280,8 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) matLArServices1->lock(); //InDetServices !!! Provisoire !!! - double density2 = 2.*CLHEP::gram/CLHEP::cm3; - if (strDMTopTag=="LArBarrelDM-02") density2 = 3.4*CLHEP::gram/CLHEP::cm3; + double density2 = 2.*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3; + if (strDMTopTag=="LArBarrelDM-02") density2 = 3.4*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3; GeoMaterial* matLArServices2 = new GeoMaterial("LArServices2", density2); matLArServices2->add(copper, .60); matLArServices2->add(shieldSteel, .05); @@ -1299,7 +1299,7 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) // << matLArServices2->getRadLength() << " " << matLArServices2->getIntLength() << std::endl; const unsigned int NCrates=16; - const double Alfa=360*CLHEP::deg/NCrates; + const double Alfa=360*GeoModelKernelUnits::deg/NCrates; const double Enda=1155; const double Endb=1695.2; const double Endc=2771.6; @@ -1318,9 +1318,9 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) GeoTube *Ped2 = new GeoTube(0, 150, 75); GeoTube *Ped3 = new GeoTube(0, 2775, 300); const GeoShape & CratePed=((*Pedestal).subtract(*Ped1). - subtract((*Ped2) <<HepGeom::TranslateY3D(-200.025)*HepGeom::RotateY3D(90*CLHEP::deg)). - subtract((*Ped3) <<HepGeom::TranslateX3D(-2800)). - subtract((*Ped2) <<HepGeom::TranslateY3D(200.025)*HepGeom::RotateY3D(90*CLHEP::deg))); + subtract((*Ped2) <<GeoTrf::TranslateY3D(-200.025)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)). + subtract((*Ped3) <<GeoTrf::TranslateX3D(-2800)). + subtract((*Ped2) <<GeoTrf::TranslateY3D(200.025)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg))); GeoLogVol *lvped = new GeoLogVol("LAr::DM::Ped",&CratePed,alu); GeoPhysVol *pedestal = new GeoPhysVol(lvped); @@ -1329,7 +1329,7 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) GeoBox *Crate1 = new GeoBox(244.5, 400.05, 255.05); GeoBox *Crate2 = new GeoBox(250, 396.87, 245.55); GeoBox *Crate3 = new GeoBox(186.5, 3.175, 245.55); - const GeoShape & FEBCrate=(*Crate1).subtract(*Crate2).add((*Crate3) <<HepGeom::TranslateX3D(-6.7)); + const GeoShape & FEBCrate=(*Crate1).subtract(*Crate2).add((*Crate3) <<GeoTrf::TranslateX3D(-6.7)); GeoLogVol *lvcrate = new GeoLogVol("LAr::DM::Crate",&FEBCrate,alu); GeoPhysVol *crate = new GeoPhysVol(lvcrate); @@ -1343,26 +1343,26 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) //-------------- Place volumes in envelope ---------------------------- //Crates - TRANSFUNCTION crA = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateX3D(3141.25)*HepGeom::TranslateZ3D(3135.05); - TRANSFUNCTION crC = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateX3D(3141.25)*HepGeom::TranslateZ3D(-3135.05); + TRANSFUNCTION crA = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(3141.25)*GeoTrf::TranslateZ3D(3135.05); + TRANSFUNCTION crC = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(3141.25)*GeoTrf::TranslateZ3D(-3135.05); GeoSerialTransformer *crtA = new GeoSerialTransformer(crate,&crA, NCrates); GeoSerialTransformer *crtC = new GeoSerialTransformer(crate,&crC, NCrates); envelope->add(crtA); envelope->add(crtC); //Pedestals - TRANSFUNCTION pedA = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateX3D(2825.75)*HepGeom::TranslateZ3D(3135.05); - TRANSFUNCTION pedC = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateX3D(2825.75)*HepGeom::TranslateZ3D(-3135.05); + TRANSFUNCTION pedA = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(2825.75)*GeoTrf::TranslateZ3D(3135.05); + TRANSFUNCTION pedC = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(2825.75)*GeoTrf::TranslateZ3D(-3135.05); GeoSerialTransformer *pedtA = new GeoSerialTransformer(pedestal,&pedA, NCrates); GeoSerialTransformer *pedtC = new GeoSerialTransformer(pedestal,&pedC, NCrates); envelope->add(pedtA); envelope->add(pedtC); //FEBoards - TRANSFUNCTION feb1A = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateY3D(200.25)*HepGeom::TranslateX3D(3181.25)*HepGeom::TranslateZ3D(3135.05); - TRANSFUNCTION feb2A = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateY3D(-200.25)*HepGeom::TranslateX3D(3181.25)*HepGeom::TranslateZ3D(3135.05); - TRANSFUNCTION feb1C = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateY3D(200.25)*HepGeom::TranslateX3D(3181.25)*HepGeom::TranslateZ3D(-3135.05); - TRANSFUNCTION feb2C = Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateY3D(-200.25)*HepGeom::TranslateX3D(3181.25)*HepGeom::TranslateZ3D(-3135.05); + TRANSFUNCTION feb1A = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(200.25)*GeoTrf::TranslateX3D(3181.25)*GeoTrf::TranslateZ3D(3135.05); + TRANSFUNCTION feb2A = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(-200.25)*GeoTrf::TranslateX3D(3181.25)*GeoTrf::TranslateZ3D(3135.05); + TRANSFUNCTION feb1C = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(200.25)*GeoTrf::TranslateX3D(3181.25)*GeoTrf::TranslateZ3D(-3135.05); + TRANSFUNCTION feb2C = Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateY3D(-200.25)*GeoTrf::TranslateX3D(3181.25)*GeoTrf::TranslateZ3D(-3135.05); GeoSerialTransformer *febt1A = new GeoSerialTransformer(boardenvelope,&feb1A, NCrates); GeoSerialTransformer *febt1C = new GeoSerialTransformer(boardenvelope,&feb1C, NCrates); GeoSerialTransformer *febt2A = new GeoSerialTransformer(boardenvelope,&feb2A, NCrates); @@ -1377,10 +1377,10 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) // transforms GeoBox *Box = new GeoBox(280, 280, 100); - HepGeom::Transform3D Cut3Boxe = HepGeom::Translate3D(0, 548, 711)*HepGeom::RotateX3D(-20*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); - HepGeom::Transform3D Cut4Boxe = HepGeom::Translate3D(0, -548,711)*HepGeom::RotateX3D(20*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); - HepGeom::Transform3D Cut3Boxp = HepGeom::Translate3D(0, 548, 850)*HepGeom::RotateX3D(-20*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); - HepGeom::Transform3D Cut4Boxp = HepGeom::Translate3D(0, -548,850)*HepGeom::RotateX3D(20*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); + GeoTrf::Transform3D Cut3Boxe = GeoTrf::Translate3D(0, 548, 711)*GeoTrf::RotateX3D(-20*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + GeoTrf::Transform3D Cut4Boxe = GeoTrf::Translate3D(0, -548,711)*GeoTrf::RotateX3D(20*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + GeoTrf::Transform3D Cut3Boxp = GeoTrf::Translate3D(0, 548, 850)*GeoTrf::RotateX3D(-20*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + GeoTrf::Transform3D Cut4Boxp = GeoTrf::Translate3D(0, -548,850)*GeoTrf::RotateX3D(20*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); // ----- build base envelopes ----- GeoTrd *Trd1air = new GeoTrd(123.5, 123.5, 167, 305, 287.5); @@ -1388,7 +1388,7 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) GeoPhysVol *baseenvelopes = new GeoPhysVol(lvbe); // ----- build bridge envelopes ----- - GeoTrap *Trapair = new GeoTrap(201.70, 45.35*CLHEP::deg, 0, 160, 52.95, 52.95, 0, 160, 123.5, 123.5, 0); + GeoTrap *Trapair = new GeoTrap(201.70, 45.35*GeoModelKernelUnits::deg, 0, 160, 52.95, 52.95, 0, 160, 123.5, 123.5, 0); GeoLogVol *lvbre = new GeoLogVol("LAr::DM::BridgeEnvelopes",Trapair,matLArServices1); GeoPhysVol *bridgeenvelopes = new GeoPhysVol(lvbre); @@ -1400,11 +1400,11 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) GeoTrd *Trdair2 = new GeoTrd(52.95, 52.95, DYb, DYc, (Endc-Endb)/2);//(52.95, 52.95, 335.83, 548.5, 538.2) const GeoShape & SectorEnvelope= ((*Trdair2). - subtract((*Box) <<HepGeom::Transform3D(Cut3Boxe)). - subtract((*Box) <<HepGeom::Transform3D(Cut4Boxe))); + subtract((*Box) <<GeoTrf::Transform3D(Cut3Boxe)). + subtract((*Box) <<GeoTrf::Transform3D(Cut4Boxe))); const GeoShape & SectorEnvelopes= ((SectorEnvelope). - add(SectorEnvelope << HepGeom::TranslateY3D(-(DYb+DYc)*cos(Alfa/2)*cos(Alfa/2))*HepGeom::TranslateZ3D(-(DYb+DYc)*0.5*sin(Alfa))*HepGeom::RotateX3D(Alfa))); + add(SectorEnvelope << GeoTrf::TranslateY3D(-(DYb+DYc)*cos(Alfa/2)*cos(Alfa/2))*GeoTrf::TranslateZ3D(-(DYb+DYc)*0.5*sin(Alfa))*GeoTrf::RotateX3D(Alfa))); GeoLogVol *lvse2r = new GeoLogVol("LAr::DM::SectorEnvelopes2r",&SectorEnvelopes,matLArServices1); GeoPhysVol *sectorenvelopes2r = new GeoPhysVol(lvse2r); // for right-handed splice boxes sideA @@ -1421,7 +1421,7 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) GeoPhysVol *baseplates = new GeoPhysVol(lvbp); // ----- build bridge plates ----- - GeoTrap *Trapalu = new GeoTrap(201.70, 49.92*CLHEP::deg, 0, 160, 5, 5, 0, 160, 5, 5, 0); + GeoTrap *Trapalu = new GeoTrap(201.70, 49.92*GeoModelKernelUnits::deg, 0, 160, 5, 5, 0, 160, 5, 5, 0); GeoLogVol *lvbrp = new GeoLogVol("LAr::DM::BridgePlates",Trapalu,alu); GeoPhysVol *bridgeplates = new GeoPhysVol(lvbrp); @@ -1429,8 +1429,8 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) // ----- build sector plates ----- GeoTrd *Trd2alu = new GeoTrd(5, 5, 280, 548, 677.5); const GeoShape & SectorPlates= ((*Trd2alu). - subtract((*Box) <<HepGeom::Transform3D(Cut3Boxp)). - subtract((*Box) <<HepGeom::Transform3D(Cut4Boxp))); + subtract((*Box) <<GeoTrf::Transform3D(Cut3Boxp)). + subtract((*Box) <<GeoTrf::Transform3D(Cut4Boxp))); GeoLogVol *lvsp = new GeoLogVol("LAr::DM::SectorPlates",&SectorPlates,alu); GeoPhysVol *sectorplates = new GeoPhysVol(lvsp); @@ -1439,15 +1439,15 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) GeoTrap *GeoTrap1 = new GeoTrap(237.5, 0, 0, 307, 47.5, 47.5, 0, 259.17, 47.5, 47.5, 0); GeoBox *Box1 = new GeoBox(50, 244.80, 150); const GeoShape & SpliceBox = ((*GeoTrap1). - subtract(*Box1 << HepGeom::TranslateZ3D(193.88)*HepGeom::TranslateY3D(-223.49)*HepGeom::RotateX3D(41.592*CLHEP::deg))); + subtract(*Box1 << GeoTrf::TranslateZ3D(193.88)*GeoTrf::TranslateY3D(-223.49)*GeoTrf::RotateX3D(41.592*GeoModelKernelUnits::deg))); - GeoTransform *xtr = new GeoTransform (HepGeom::TranslateZ3D(39.57)*HepGeom::TranslateY3D(-452.12)*HepGeom::TranslateX3D(5.40)*HepGeom::RotateX3D(191.25*CLHEP::deg)); + GeoTransform *xtr = new GeoTransform (GeoTrf::TranslateZ3D(39.57)*GeoTrf::TranslateY3D(-452.12)*GeoTrf::TranslateX3D(5.40)*GeoTrf::RotateX3D(191.25*GeoModelKernelUnits::deg)); sectorenvelopes2r->add(xtr); GeoLogVol *lvspbr = new GeoLogVol("LAr::DM::SPliceBoxr",&SpliceBox,alu); GeoPhysVol *spliceboxr = new GeoPhysVol(lvspbr); sectorenvelopes2r->add(spliceboxr); - GeoTransform *xtl = new GeoTransform (HepGeom::TranslateZ3D(39.57)*HepGeom::TranslateY3D(-452.12)*HepGeom::TranslateX3D(5.40)*HepGeom::RotateY3D(-180*CLHEP::deg)*HepGeom::RotateX3D(-(Alfa/2))); + GeoTransform *xtl = new GeoTransform (GeoTrf::TranslateZ3D(39.57)*GeoTrf::TranslateY3D(-452.12)*GeoTrf::TranslateX3D(5.40)*GeoTrf::RotateY3D(-180*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(-(Alfa/2))); sectorenvelopes2l->add(xtl); GeoLogVol *lvspbl = new GeoLogVol("LAr::DM::SpliceBoxl",&SpliceBox,alu); GeoPhysVol *spliceboxl = new GeoPhysVol(lvspbl); @@ -1459,7 +1459,7 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) GeoTrap *GeoTrap2 = new GeoTrap(149, 0, 0, 126.215, 44.5, 44.5, 0, 95, 44.5, 44.5, 0); GeoTrap *GeoTrap3 = new GeoTrap(72, 0, 0, 294.5, 44.5, 44.5, 0, 279.396, 44.5, 44.5, 0); - GeoTransform *xt1 = new GeoTransform (HepGeom::TranslateY3D(-53)*HepGeom::RotateX3D(42.25*CLHEP::deg)); + GeoTransform *xt1 = new GeoTransform (GeoTrf::TranslateY3D(-53)*GeoTrf::RotateX3D(42.25*GeoModelKernelUnits::deg)); spliceboxr->add(xt1); spliceboxl->add(xt1); GeoLogVol *lt1 = new GeoLogVol("LAr::DM::TBox1",Trd1,air); @@ -1467,7 +1467,7 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) spliceboxr->add(tbox1); spliceboxl->add(tbox1); - GeoTransform *xt2 = new GeoTransform (HepGeom::TranslateZ3D(78)*HepGeom::TranslateY3D(154)); + GeoTransform *xt2 = new GeoTransform (GeoTrf::TranslateZ3D(78)*GeoTrf::TranslateY3D(154)); spliceboxr->add(xt2); spliceboxl->add(xt2); GeoLogVol *lt2 = new GeoLogVol("LAr::DM::TBox2",GeoTrap2,air); @@ -1475,7 +1475,7 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) spliceboxr->add(tbox2); spliceboxl->add(tbox2); - GeoTransform *xt3 = new GeoTransform (HepGeom::TranslateZ3D(-155.81)); + GeoTransform *xt3 = new GeoTransform (GeoTrf::TranslateZ3D(-155.81)); spliceboxr->add(xt3); spliceboxl->add(xt3); GeoLogVol *lt3 = new GeoLogVol("LAr::DM::TBox3",GeoTrap3,air); @@ -1487,18 +1487,18 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) //-------------- Place volumes in LAr Envelope ------------------- //sectorPlates - TRANSFUNCTION spA = Pow(HepGeom::RotateZ3D(1.0),f-(Alfa/2))*HepGeom::TranslateX3D(2095)*HepGeom::TranslateZ3D(3410.1)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION spC = Pow(HepGeom::RotateZ3D(1.0),f+(Alfa/2))*HepGeom::TranslateX3D(2095)*HepGeom::TranslateZ3D(-3410.1)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION spA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(2095)*GeoTrf::TranslateZ3D(3410.1)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION spC = Pow(GeoTrf::RotateZ3D(1.0),f+(Alfa/2))*GeoTrf::TranslateX3D(2095)*GeoTrf::TranslateZ3D(-3410.1)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer *sptA = new GeoSerialTransformer(sectorplates,&spA, NCrates); GeoSerialTransformer *sptC = new GeoSerialTransformer(sectorplates,&spC, NCrates); envelope->add(sptA); envelope->add(sptC); //bridgePlates - TRANSFUNCTION brpA1 = Pow(HepGeom::RotateZ3D(1.0),f-(5*Alfa/2))*HepGeom::TranslateX3D(2974.5)*HepGeom::TranslateZ3D(3170.1)*HepGeom::RotateZ3D(90*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg)*HepGeom::RotateX3D(90*CLHEP::deg); - TRANSFUNCTION brpA2 = Pow(HepGeom::RotateZ3D(1.0),f+(13*Alfa/2))*HepGeom::TranslateX3D(2974.5)*HepGeom::TranslateZ3D(3170.1)*HepGeom::RotateZ3D(90*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg)*HepGeom::RotateX3D(90*CLHEP::deg); - TRANSFUNCTION brpC1 = Pow(HepGeom::RotateZ3D(1.0),f-(5*Alfa/2))*HepGeom::TranslateX3D(2974.5)*HepGeom::TranslateZ3D(-3170.1)*HepGeom::RotateZ3D(-90*CLHEP::deg)*HepGeom::RotateY3D(-90*CLHEP::deg)*HepGeom::RotateX3D(-90*CLHEP::deg); - TRANSFUNCTION brpC2 = Pow(HepGeom::RotateZ3D(1.0),f+(13*Alfa/2))*HepGeom::TranslateX3D(2974.5)*HepGeom::TranslateZ3D(-3170.1)*HepGeom::RotateZ3D(-90*CLHEP::deg)*HepGeom::RotateY3D(-90*CLHEP::deg)*HepGeom::RotateX3D(-90*CLHEP::deg); GeoSerialTransformer *brptA1 = new GeoSerialTransformer(bridgeplates,&brpA1, 5); + TRANSFUNCTION brpA1 = Pow(GeoTrf::RotateZ3D(1.0),f-(5*Alfa/2))*GeoTrf::TranslateX3D(2974.5)*GeoTrf::TranslateZ3D(3170.1)*GeoTrf::RotateZ3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION brpA2 = Pow(GeoTrf::RotateZ3D(1.0),f+(13*Alfa/2))*GeoTrf::TranslateX3D(2974.5)*GeoTrf::TranslateZ3D(3170.1)*GeoTrf::RotateZ3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION brpC1 = Pow(GeoTrf::RotateZ3D(1.0),f-(5*Alfa/2))*GeoTrf::TranslateX3D(2974.5)*GeoTrf::TranslateZ3D(-3170.1)*GeoTrf::RotateZ3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(-90*GeoModelKernelUnits::deg); + TRANSFUNCTION brpC2 = Pow(GeoTrf::RotateZ3D(1.0),f+(13*Alfa/2))*GeoTrf::TranslateX3D(2974.5)*GeoTrf::TranslateZ3D(-3170.1)*GeoTrf::RotateZ3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(-90*GeoModelKernelUnits::deg); GeoSerialTransformer *brptA1 = new GeoSerialTransformer(bridgeplates,&brpA1, 5); GeoSerialTransformer *brptA2 = new GeoSerialTransformer(bridgeplates,&brpA2, 5); GeoSerialTransformer *brptC1 = new GeoSerialTransformer(bridgeplates,&brpC1, 5); GeoSerialTransformer *brptC2 = new GeoSerialTransformer(bridgeplates,&brpC2, 5); @@ -1508,27 +1508,27 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) envelope->add(brptC2); //basePlates - TRANSFUNCTION bpA = Pow(HepGeom::RotateZ3D(1.0),f-(Alfa/2))*HepGeom::TranslateX3D(3464)*HepGeom::TranslateZ3D(2930.6)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION bpC = Pow(HepGeom::RotateZ3D(1.0),f+(Alfa/2))*HepGeom::TranslateX3D(3464)*HepGeom::TranslateZ3D(-2930.6)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION bpA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(3464)*GeoTrf::TranslateZ3D(2930.6)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION bpC = Pow(GeoTrf::RotateZ3D(1.0),f+(Alfa/2))*GeoTrf::TranslateX3D(3464)*GeoTrf::TranslateZ3D(-2930.6)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer *bptA = new GeoSerialTransformer(baseplates,&bpA, NCrates); GeoSerialTransformer *bptC = new GeoSerialTransformer(baseplates,&bpC, NCrates); envelope->add(bptA); envelope->add(bptC); //sectorEnvelopes - TRANSFUNCTION seA1 = Pow(HepGeom::RotateZ3D(1.0),f-(Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(3468.05)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC1 = Pow(HepGeom::RotateZ3D(1.0),f-(Alfa/2))*HepGeom::TranslateX3D((Endb+Enda)/2)*HepGeom::TranslateZ3D(-3468.05)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION seA1 = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(3468.05)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC1 = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D((Endb+Enda)/2)*GeoTrf::TranslateZ3D(-3468.05)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer *setA1 = new GeoSerialTransformer(sectorenvelopes1,&seA1, NCrates); GeoSerialTransformer *setC1 = new GeoSerialTransformer(sectorenvelopes1,&seC1, NCrates); envelope->add(setA1); envelope->add(setC1); - TRANSFUNCTION seA2r = Pow(HepGeom::RotateZ3D(1.0),8*f-(3*Alfa/2))*HepGeom::TranslateX3D((Endb+Endc)/2)*HepGeom::TranslateZ3D(3468.05)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA2l = Pow(HepGeom::RotateZ3D(1.0),8*f+(5*Alfa/2))*HepGeom::TranslateX3D((Endb+Endc)/2)*HepGeom::TranslateZ3D(3468.05)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seA2 = Pow(HepGeom::RotateZ3D(1.0),4*f+(Alfa/2))*HepGeom::TranslateX3D((Endb+Endc)/2)*HepGeom::TranslateZ3D(3468.05)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC2 = Pow(HepGeom::RotateZ3D(1.0),4*f+(Alfa/2))*HepGeom::TranslateX3D((Endb+Endc)/2)*HepGeom::TranslateZ3D(-3468.05)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC2r = Pow(HepGeom::RotateZ3D(1.0),8*f-(3*Alfa/2))*HepGeom::TranslateX3D((Endb+Endc)/2)*HepGeom::TranslateZ3D(-3468.05)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION seC2l = Pow(HepGeom::RotateZ3D(1.0),8*f+(5*Alfa/2))*HepGeom::TranslateX3D((Endb+Endc)/2)*HepGeom::TranslateZ3D(-3468.05)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION seA2r = Pow(GeoTrf::RotateZ3D(1.0),8*f-(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(3468.05)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA2l = Pow(GeoTrf::RotateZ3D(1.0),8*f+(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(3468.05)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seA2 = Pow(GeoTrf::RotateZ3D(1.0),4*f+(Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(3468.05)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC2 = Pow(GeoTrf::RotateZ3D(1.0),4*f+(Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-3468.05)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC2r = Pow(GeoTrf::RotateZ3D(1.0),8*f-(3*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-3468.05)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION seC2l = Pow(GeoTrf::RotateZ3D(1.0),8*f+(5*Alfa/2))*GeoTrf::TranslateX3D((Endb+Endc)/2)*GeoTrf::TranslateZ3D(-3468.05)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer *setA2r = new GeoSerialTransformer(sectorenvelopes2r,&seA2r, 2); GeoSerialTransformer *setA2l = new GeoSerialTransformer(sectorenvelopes2l,&seA2l, 2); GeoSerialTransformer *setA2 = new GeoSerialTransformer(sectorenvelopes2,&seA2, 4); @@ -1543,16 +1543,16 @@ void LArGeo::BarrelDMConstruction::create(GeoFullPhysVol* envelope) envelope->add(setC2l); //bridgeEnvelopes - TRANSFUNCTION breA = Pow(HepGeom::RotateZ3D(1.0),f-(Alfa/2))*HepGeom::TranslateX3D(2974.532)*HepGeom::TranslateZ3D(3263.65)*HepGeom::RotateZ3D(90*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg)*HepGeom::RotateX3D(90*CLHEP::deg); - TRANSFUNCTION breC = Pow(HepGeom::RotateZ3D(1.0),f-(Alfa/2))*HepGeom::TranslateX3D(2974.532)*HepGeom::TranslateZ3D(-3263.65)*HepGeom::RotateZ3D(-90*CLHEP::deg)*HepGeom::RotateY3D(-90*CLHEP::deg)*HepGeom::RotateX3D(-90*CLHEP::deg); + TRANSFUNCTION breA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(2974.532)*GeoTrf::TranslateZ3D(3263.65)*GeoTrf::RotateZ3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION breC = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(2974.532)*GeoTrf::TranslateZ3D(-3263.65)*GeoTrf::RotateZ3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(-90*GeoModelKernelUnits::deg); GeoSerialTransformer *bretA = new GeoSerialTransformer(bridgeenvelopes,&breA, NCrates); GeoSerialTransformer *bretC = new GeoSerialTransformer(bridgeenvelopes,&breC, NCrates); envelope->add(bretA); envelope->add(bretC); //baseEnvelopes - TRANSFUNCTION beA = Pow(HepGeom::RotateZ3D(1.0),f-(Alfa/2))*HepGeom::TranslateX3D(3464)*HepGeom::TranslateZ3D(3059.2)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION beC = Pow(HepGeom::RotateZ3D(1.0),f+(Alfa/2))*HepGeom::TranslateX3D(3464)*HepGeom::TranslateZ3D(-3059.2)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION beA = Pow(GeoTrf::RotateZ3D(1.0),f-(Alfa/2))*GeoTrf::TranslateX3D(3464)*GeoTrf::TranslateZ3D(3059.2)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION beC = Pow(GeoTrf::RotateZ3D(1.0),f+(Alfa/2))*GeoTrf::TranslateX3D(3464)*GeoTrf::TranslateZ3D(-3059.2)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer *betA = new GeoSerialTransformer(baseenvelopes,&beA, NCrates); GeoSerialTransformer *betC = new GeoSerialTransformer(baseenvelopes,&beC, NCrates); envelope->add(betA); diff --git a/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelPresamplerConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelPresamplerConstruction.cxx index c35aac31d91176783bb7469e2a11de95814b4b73..8d31d8851e2c164165da862cbe4437edabeb0dfc 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelPresamplerConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoBarrel/src/BarrelPresamplerConstruction.cxx @@ -41,15 +41,15 @@ // For Functions: // For functions: -#include "CLHEP/GenericFunctions/Abs.hh" -#include "CLHEP/GenericFunctions/Sin.hh" -#include "CLHEP/GenericFunctions/Cos.hh" -#include "CLHEP/GenericFunctions/Sqrt.hh" -#include "CLHEP/GenericFunctions/ATan.hh" -#include "CLHEP/GenericFunctions/Rectangular.hh" -#include "CLHEP/GenericFunctions/Mod.hh" -#include "CLHEP/GenericFunctions/Variable.hh" -#include "CLHEP/GenericFunctions/FixedConstant.hh" +#include "GeoGenericFunctions/Abs.h" +#include "GeoGenericFunctions/Sin.h" +#include "GeoGenericFunctions/Cos.h" +#include "GeoGenericFunctions/Sqrt.h" +#include "GeoGenericFunctions/ATan.h" +#include "GeoGenericFunctions/Rectangular.h" +#include "GeoGenericFunctions/Mod.h" +#include "GeoGenericFunctions/Variable.h" +#include "GeoGenericFunctions/FixedConstant.h" // Constructor; LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo, int itb): @@ -123,17 +123,17 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo const GeoMaterial *ConnecMat = materialManager->getMaterial("LAr::ConnecMat"); if (!ConnecMat) throw std::runtime_error("Error in BarrelPresamplerConstruction, LAr::ConnecMat is not found."); - // double rMinPresamplerMother =1385*CLHEP::mm; - double rMinPresamplerMother =1410*CLHEP::mm; - double rMaxPresamplerMother =1447*CLHEP::mm-0.001*CLHEP::mm; - double presamplerMother_length=1549*CLHEP::mm; - double Phi_min=0.*CLHEP::deg; - double Phi_span=360.*CLHEP::deg; + // double rMinPresamplerMother =1385*GeoModelKernelUnits::mm; + double rMinPresamplerMother =1410*GeoModelKernelUnits::mm; + double rMaxPresamplerMother =1447*GeoModelKernelUnits::mm-0.001*GeoModelKernelUnits::mm; + double presamplerMother_length=1549*GeoModelKernelUnits::mm; + double Phi_min=0.*GeoModelKernelUnits::deg; + double Phi_span=360.*GeoModelKernelUnits::deg; int nbsectors=32; if (itb==1) { - Phi_min=-0.5*CLHEP::deg; - Phi_span=23.5*CLHEP::deg; + Phi_min=-0.5*GeoModelKernelUnits::deg; + Phi_span=23.5*GeoModelKernelUnits::deg; nbsectors=2; } @@ -209,42 +209,42 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo // Make a presampler sector: if(m_fullGeo){ // ? - double epsil = 0.007*CLHEP::mm; + double epsil = 0.007*GeoModelKernelUnits::mm; // contraction factor - double cmm = (1-0.0026)*CLHEP::mm; + double cmm = (1-0.0026)*GeoModelKernelUnits::mm; double mod_leng[8]; for(int ii=0; ii<8; ii++ ) mod_leng[ii]=mod[ii][0]*cmm+2*epsil; double mod_heig[8]; - double larheight = 13*CLHEP::mm; + double larheight = 13*GeoModelKernelUnits::mm; - double prep1_th = 1.*CLHEP::mm; // bottom prepreg layer - double prep2_th = 4.5*CLHEP::mm; - double smallLength = 275.6*CLHEP::mm; + double prep1_th = 1.*GeoModelKernelUnits::mm; // bottom prepreg layer + double prep2_th = 4.5*GeoModelKernelUnits::mm; + double smallLength = 275.6*GeoModelKernelUnits::mm; double bigLength = 277.5; double prep1_height = (smallLength/2+1.)*cmm; - double larheight2 = larheight*cos(-mod[1][3]*CLHEP::deg)*CLHEP::mm; + double larheight2 = larheight*cos(-mod[1][3]*GeoModelKernelUnits::deg)*GeoModelKernelUnits::mm; mod_heig[0]= (larheight+prep1_th+prep2_th)*cmm+4*epsil; mod_heig[1]= (larheight2+prep1_th+prep2_th)*cmm+5.*epsil; for(int i=2; i<8; i++ ) mod_heig[i] = mod_heig[0]; - double shell_th = 0.4*CLHEP::mm; - double rail_th = 8.6*CLHEP::mm; - double mech_clear = 0.5*CLHEP::mm; + double shell_th = 0.4*GeoModelKernelUnits::mm; + double rail_th = 8.6*GeoModelKernelUnits::mm; + double mech_clear = 0.5*GeoModelKernelUnits::mm; double mb_length = 3100.3; double sector_length = mb_length*cmm +9.*epsil; - double sector_height = mod_heig[0]+(shell_th+rail_th)*cmm+mech_clear*CLHEP::mm+3*epsil; + double sector_height = mod_heig[0]+(shell_th+rail_th)*cmm+mech_clear*GeoModelKernelUnits::mm+3*epsil; unsigned int nsectors=32; double mod_xm = prep1_height+epsil; - double mod_xp = (bigLength/2+1.+prep2_th*tan((360./(2*nsectors))*CLHEP::deg))*cmm; + double mod_xp = (bigLength/2+1.+prep2_th*tan((360./(2*nsectors))*GeoModelKernelUnits::deg))*cmm; double sect_xm = mod_xm+epsil; - double sect_xp = sect_xm+sector_height*tan((360./(2*nsectors))*CLHEP::deg); - double rpres = 1426.*CLHEP::mm; + double sect_xp = sect_xm+sector_height*tan((360./(2*nsectors))*GeoModelKernelUnits::deg); + double rpres = 1426.*GeoModelKernelUnits::mm; double zpres = -presamplerMother_length+sector_length/2+epsil; @@ -253,10 +253,10 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo GeoLogVol *logVol = new GeoLogVol (basename+"::Sector",trd,LAr); GeoPhysVol *sectorPhysVol = new GeoPhysVol(logVol); - Genfun::Variable I; - double dphiSector = (360.*CLHEP::deg)/nsectors; - Genfun::GENFUNCTION f = dphiSector*I+0.5*dphiSector; - GeoXF::TRANSFUNCTION t = GeoXF::Pow(HepGeom::RotateZ3D(1.0),f)*HepGeom::TranslateX3D(rpres)*HepGeom::TranslateZ3D(zpres)*HepGeom::RotateZ3D(90*CLHEP::deg)*HepGeom::RotateX3D(90*CLHEP::deg); + GeoGenfun::Variable I; + double dphiSector = (360.*GeoModelKernelUnits::deg)/nsectors; + GeoGenfun::GENFUNCTION f = dphiSector*I+0.5*dphiSector; + GeoXF::TRANSFUNCTION t = GeoXF::Pow(GeoTrf::RotateZ3D(1.0),f)*GeoTrf::TranslateX3D(rpres)*GeoTrf::TranslateZ3D(zpres)*GeoTrf::RotateZ3D(90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer *st = new GeoSerialTransformer(sectorPhysVol,&t, nbsectors); m_psPhysicalPos->add(st); @@ -271,7 +271,7 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo // recompute length of module 0 and 1 to have avoid overshoorting of first cathode of module 1 // into module 0 => reduce module 0 length by 0.5*lar_height*tan(tilt angle) // and increase module 1 length by same amount - double delta01 = 0.5*larheight*tan(-mod[1][3]*CLHEP::deg); // delta01 is >0 + double delta01 = 0.5*larheight*tan(-mod[1][3]*GeoModelKernelUnits::deg); // delta01 is >0 mod_leng[0]=mod_leng[0]-delta01; mod_leng[1]=mod_leng[1]+delta01; GeoPhysVol* pvModule[8]; @@ -291,7 +291,7 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo GeoLogVol *logVol = new GeoLogVol(basename+"::Module",trd,LAr); pvModule[m] = new GeoPhysVol(logVol); - GeoTransform *xf = new GeoTransform(HepGeom::Translate3D(0.0, modY, modZ)); + GeoTransform *xf = new GeoTransform(GeoTrf::Translate3D(0.0, modY, modZ)); sectorPhysVol->add(xf); sectorPhysVol->add(pvModule[m]); @@ -303,7 +303,7 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo double shell_leng = mod[0][0]+mod[1][0]+mod[2][0]+mod[3][0]+mod[4][0]+mod[5][0]+mod[6][0]+mod[7][0]; double prot_y = (shell_leng/2)*cmm; - double glX = 0.*CLHEP::mm; + double glX = 0.*GeoModelKernelUnits::mm; double glY = -sector_length/2+prot_y+epsil; //-----------------------------A Protection Shell--------------------------// @@ -314,7 +314,7 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo double glZ = -sector_height/2+(shell_th/2)*cmm+epsil; - GeoTransform *xf = new GeoTransform(HepGeom::Translate3D(glX,glY, glZ)); + GeoTransform *xf = new GeoTransform(GeoTrf::Translate3D(glX,glY, glZ)); sectorPhysVol->add(xf); sectorPhysVol->add(physVol); } @@ -345,7 +345,7 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo GeoLogVol *logVol=new GeoLogVol(basename+"::MotherBoard",MB,MBMat); GeoPhysVol *physVol = new GeoPhysVol(logVol); - GeoTransform* xf = new GeoTransform(HepGeom::TranslateZ3D(mbZ)); + GeoTransform* xf = new GeoTransform(GeoTrf::TranslateZ3D(mbZ)); sectorPhysVol->add(xf); sectorPhysVol->add(physVol); } @@ -360,7 +360,7 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo GeoLogVol *logVol=new GeoLogVol(basename+"::ProtectionPlate",plate,FR4); GeoPhysVol *physVol = new GeoPhysVol(logVol); - GeoTransform* xf = new GeoTransform(HepGeom::Translate3D(glX,glY,mbZ+(mb_th/2+heightOut+prot_th/2)*cmm+2*epsil)); + GeoTransform* xf = new GeoTransform(GeoTrf::Translate3D(glX,glY,mbZ+(mb_th/2+heightOut+prot_th/2)*cmm+2*epsil)); sectorPhysVol->add(xf); sectorPhysVol->add(physVol); } @@ -378,8 +378,8 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo GeoPhysVol *physVol = new GeoPhysVol(logVol); double connZ = mbZ+(mb_th/2+heightOut/2)*cmm+epsil; - GeoTransform* xf1 = new GeoTransform(HepGeom::TranslateZ3D(connZ)); - GeoTransform* xf2 = new GeoTransform(HepGeom::RotateX3D(-90*CLHEP::deg)); + GeoTransform* xf1 = new GeoTransform(GeoTrf::TranslateZ3D(connZ)); + GeoTransform* xf2 = new GeoTransform(GeoTrf::RotateX3D(-90*GeoModelKernelUnits::deg)); sectorPhysVol->add(xf1); sectorPhysVol->add(xf2); @@ -395,8 +395,8 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo double railX = (bigLength/2+1-rail_pos-rail_width/2)*cmm+epsil; double railZ = modz[0]+mod_heig[0]/2+(rail_th/2)*cmm+epsil; - GeoTransform* xf1 = new GeoTransform(HepGeom::Translate3D(railX,glY,railZ)); - GeoTransform* xf2 = new GeoTransform(HepGeom::Translate3D(-railX,glY,railZ)); + GeoTransform* xf1 = new GeoTransform(GeoTrf::Translate3D(railX,glY,railZ)); + GeoTransform* xf2 = new GeoTransform(GeoTrf::Translate3D(-railX,glY,railZ)); sectorPhysVol->add(xf1); sectorPhysVol->add(physVol); @@ -413,8 +413,8 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo double anode_th = 0.330; double cathode_th = 0.270; - double heig_elec1 = (larheight/cos(-mod[0][3]*CLHEP::deg)-0.5*anode_th/cos(mod[0][3]*CLHEP::deg))*cmm; - double heig_elec3 = (larheight-0.5*cathode_th/cos(mod[1][3]*CLHEP::deg))*cmm; + double heig_elec1 = (larheight/cos(-mod[0][3]*GeoModelKernelUnits::deg)-0.5*anode_th/cos(mod[0][3]*GeoModelKernelUnits::deg))*cmm; + double heig_elec3 = (larheight-0.5*cathode_th/cos(mod[1][3]*GeoModelKernelUnits::deg))*cmm; GeoTrd* catho1 = new GeoTrd(smallLength/2*cmm,bigLength/2*cmm,cathode_th/2*cmm,cathode_th/2*cmm,heig_elec1/2*cmm); GeoLogVol* LV_catho1 = new GeoLogVol(basename+"::Cathode1",catho1,CathodeMat); @@ -477,8 +477,8 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo for(int i=0; i<8; i++) { - GeoTransform* xfPrep1 = new GeoTransform(HepGeom::TranslateZ3D(prep1_pos[i])); - GeoTransform* xfPrep2 = new GeoTransform(HepGeom::TranslateZ3D(prep2_pos[i])); + GeoTransform* xfPrep1 = new GeoTransform(GeoTrf::TranslateZ3D(prep1_pos[i])); + GeoTransform* xfPrep2 = new GeoTransform(GeoTrf::TranslateZ3D(prep2_pos[i])); pvModule[i]->add(xfPrep1); pvModule[i]->add(PV_Prep1[i]); @@ -488,12 +488,12 @@ LArGeo::BarrelPresamplerConstruction ::BarrelPresamplerConstruction(bool fullGeo // Parameterizations for electrodes - Genfun::Variable I; - Genfun::GENFUNCTION cathoGF = YStartC[i]+I*mod[i][4]*cmm; - Genfun::GENFUNCTION anoGF = YStartA[i]+I*mod[i][4]*cmm; + GeoGenfun::Variable I; + GeoGenfun::GENFUNCTION cathoGF = YStartC[i]+I*mod[i][4]*cmm; + GeoGenfun::GENFUNCTION anoGF = YStartA[i]+I*mod[i][4]*cmm; - GeoXF::TRANSFUNCTION cathoTF = GeoXF::Pow(HepGeom::TranslateY3D(1.),cathoGF)*HepGeom::TranslateZ3D(elec_trans)*HepGeom::RotateX3D(-mod[i][3]*CLHEP::deg); - GeoXF::TRANSFUNCTION anoTF = GeoXF::Pow(HepGeom::TranslateY3D(1.),anoGF)*HepGeom::TranslateZ3D(elec_trans)*HepGeom::RotateX3D(-mod[i][3]*CLHEP::deg); + GeoXF::TRANSFUNCTION cathoTF = GeoXF::Pow(GeoTrf::TranslateY3D(1.),cathoGF)*GeoTrf::TranslateZ3D(elec_trans)*GeoTrf::RotateX3D(-mod[i][3]*GeoModelKernelUnits::deg); + GeoXF::TRANSFUNCTION anoTF = GeoXF::Pow(GeoTrf::TranslateY3D(1.),anoGF)*GeoTrf::TranslateZ3D(elec_trans)*GeoTrf::RotateX3D(-mod[i][3]*GeoModelKernelUnits::deg); GeoSerialTransformer *cathoST,*anoST; diff --git a/LArCalorimeter/LArGeoModel/LArGeoCode/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoCode/CMakeLists.txt index 92304b5376cc9574b170867f53e9f0e5a7e11a1b..04fc3d7f526412de9944941b2519829ceb26ed71 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoCode/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoCode/CMakeLists.txt @@ -10,20 +10,18 @@ atlas_depends_on_subdirs( PRIVATE Control/StoreGate Database/RDBAccessSvc DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel GaudiKernel ) # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( LArGeoCode src/*.cxx PUBLIC_HEADERS LArGeoCode - PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} + PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} LINK_LIBRARIES StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} GeoModelKernel GaudiKernel ) + PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${GEOMODEL_LIBRARIES} GaudiKernel ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoCode/src/LArMaterialManager.cxx b/LArCalorimeter/LArGeoModel/LArGeoCode/src/LArMaterialManager.cxx index 7dd801739093ae4789f8bac193e5d5f052265a0f..967131032979dab160b98a89da730fff6f1672d1 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoCode/src/LArMaterialManager.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoCode/src/LArMaterialManager.cxx @@ -5,9 +5,9 @@ #include "LArGeoCode/LArMaterialManager.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoElement.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGate.h" #include "StoreGate/StoreGateSvc.h" -#include "CLHEP/Units/PhysicalConstants.h" #include "GaudiKernel/Bootstrap.h" #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -49,7 +49,7 @@ void LArMaterialManager::buildMaterials() if (!Copper) throw std::runtime_error("Error in LArMaterialManager, std::Copper is not found."); #ifdef DEBUGGEO msg << "Copper radiation length " << Copper->getRadLength() << " " - << Copper->getDensity()/(CLHEP::g/CLHEP::cm3) << endmsg; + << Copper->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; #endif @@ -60,7 +60,7 @@ void LArMaterialManager::buildMaterials() if (!Lead) throw std::runtime_error("Error in LArMaterialManager, std::Lead is not found."); #ifdef DEBUGGEO msg << MSG::INFO<< "Lead radiation length " << Lead->getRadLength() << " " - << Lead->getDensity()/(CLHEP::g/CLHEP::cm3) << endmsg; + << Lead->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; #endif @@ -69,7 +69,7 @@ void LArMaterialManager::buildMaterials() #ifdef DEBUGGEO msg << MSG::INFO<< "LAr radiation length " << LAr->getRadLength() << " " - << LAr->getDensity()/(CLHEP::g/CLHEP::cm3) << endmsg; + << LAr->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; #endif const GeoMaterial *Air = m_storedManager->getMaterial("std::Air"); @@ -79,7 +79,7 @@ void LArMaterialManager::buildMaterials() if (!Kapton) throw std::runtime_error("Error in LArMaterialManager, std::Kapton is not found."); #ifdef DEBUGGEO msg << MSG::INFO<< "Kapton radiation length " << Kapton->getRadLength() << " " - << Kapton->getDensity()/(CLHEP::g/CLHEP::cm3) << endmsg; + << Kapton->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; for (size_t i = 0; i< Kapton->getNumElements();i++) { msg << MSG::INFO << int (Kapton->getFraction(i)*100) << "% \t" << Kapton->getElement(i)->getName() << endmsg; } @@ -91,7 +91,7 @@ void LArMaterialManager::buildMaterials() if (!Glue) throw std::runtime_error("Error in LArMaterialManager, LAr::Glue is not found."); #ifdef DEBUGGEO msg << MSG::INFO<< "Glue radiation length " << Glue->getRadLength() << " " - << Glue->getDensity()/(CLHEP::g/CLHEP::cm3) << endmsg; + << Glue->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; for (size_t i = 0; i< Glue->getNumElements();i++) { msg << MSG::INFO << int (Glue->getFraction(i)*100) << "% \t" << Glue->getElement(i)->getName() << endmsg; } @@ -102,7 +102,7 @@ void LArMaterialManager::buildMaterials() if (!G10) throw std::runtime_error("Error in LArMaterialManager, LAr::G10 is not found."); #ifdef DEBUGGEO msg << MSG::INFO<< "G10 radiation length " << G10->getRadLength() << " " - << G10->getDensity()/(CLHEP::g/CLHEP::cm3) << endmsg; + << G10->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; for (size_t i = 0; i< G10->getNumElements();i++) { msg << MSG::INFO << int (G10->getFraction(i)*100) << "% \t" << G10->getElement(i)->getName() << endmsg; } @@ -128,9 +128,9 @@ void LArMaterialManager::buildMaterials() double contract=dB.getDouble("ColdContraction","ColdContraction-00", "ABSORBERCONTRACTION"); // LArEMBAbsorberContraction // first thin absorbers - Tggl=dB.getDouble("BarrelGeometry","BarrelGeometry-00","TGGL")*CLHEP::cm*contract; // LArEMBThinAbsGlue - Tgfe=dB.getDouble("BarrelGeometry","BarrelGeometry-00","TGFE")*CLHEP::cm*contract; // LArEMBThinAbsIron - Tgpb=dB.getDouble("BarrelGeometry","BarrelGeometry-00","TGPB")*CLHEP::cm*contract; // LArEMBThinAbsLead + Tggl=dB.getDouble("BarrelGeometry","BarrelGeometry-00","TGGL")*GeoModelKernelUnits::cm*contract; // LArEMBThinAbsGlue + Tgfe=dB.getDouble("BarrelGeometry","BarrelGeometry-00","TGFE")*GeoModelKernelUnits::cm*contract; // LArEMBThinAbsIron + Tgpb=dB.getDouble("BarrelGeometry","BarrelGeometry-00","TGPB")*GeoModelKernelUnits::cm*contract; // LArEMBThinAbsLead Totalthick = Tggl+Tgfe+Tgpb; Totalmass = (Tgpb*Lead->getDensity()+Tgfe*Iron->getDensity()+Tggl*Glue->getDensity()); //***GU below are the fraction per mass @@ -143,7 +143,7 @@ void LArMaterialManager::buildMaterials() msg << MSG::DEBUG <<" Fraction pb,fe,gl: "<<Fracpb<<","<<Fracfe<<"," <<Fracgl<< endmsg; msg << MSG::DEBUG <<" Total mass, Thickness: "<<Totalmass<<" ," <<Totalthick<< endmsg; msg << MSG::DEBUG<<" Contraction " << contract << endmsg; - msg << MSG::DEBUG <<" Thinabs Density = "<< density*(CLHEP::cm3/CLHEP::g) << endmsg; + msg << MSG::DEBUG <<" Thinabs Density = "<< density*(GeoModelKernelUnits::cm3/GeoModelKernelUnits::g) << endmsg; GeoMaterial* Thin_abs = new GeoMaterial("Thinabs",density); Thin_abs->add(Lead,Fracpb); @@ -156,9 +156,9 @@ void LArMaterialManager::buildMaterials() #endif // then thick absorbers - Thgl=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THGL")*CLHEP::cm*contract; // LArEMBThickAbsGlue - Thfe=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THFE")*CLHEP::cm*contract; // LArEMBThickAbsIron - Thpb=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THPB")*CLHEP::cm*contract; // LArEMBThickAbsLead + Thgl=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THGL")*GeoModelKernelUnits::cm*contract; // LArEMBThickAbsGlue + Thfe=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THFE")*GeoModelKernelUnits::cm*contract; // LArEMBThickAbsIron + Thpb=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THPB")*GeoModelKernelUnits::cm*contract; // LArEMBThickAbsLead Totalthick = Thgl+Thfe+Thpb; Totalmass = (Thpb*Lead->getDensity()+Thfe*Iron->getDensity()+Thgl*Glue->getDensity()); @@ -171,7 +171,7 @@ void LArMaterialManager::buildMaterials() msg << MSG::DEBUG <<"---- THICK absorber characteristics: ----" << endmsg; msg << MSG::DEBUG <<" Fraction pb,fe,gl: "<<Fracpb<<","<<Fracfe<<","<<Fracgl << endmsg; msg << MSG::DEBUG <<" Total mass, Thickness: "<<Totalmass<<" ,"<<Totalthick << endmsg; - msg << MSG::DEBUG <<" Thickabs Density = " << density*(CLHEP::cm3/CLHEP::g) << endmsg; + msg << MSG::DEBUG <<" Thickabs Density = " << density*(GeoModelKernelUnits::cm3/GeoModelKernelUnits::g) << endmsg; GeoMaterial* Thick_abs = new GeoMaterial("Thickabs",density); Thick_abs->add(Lead,Fracpb); @@ -183,8 +183,8 @@ void LArMaterialManager::buildMaterials() #endif // electrode =mixture Kapton+Cu - Thcu=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THCU")*CLHEP::cm; // LArEMBThickElecCopper - Thfg=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THFG")*CLHEP::cm; // LArEMBThickElecKapton + Thcu=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THCU")*GeoModelKernelUnits::cm; // LArEMBThickElecCopper + Thfg=dB.getDouble("BarrelGeometry","BarrelGeometry-00","THFG")*GeoModelKernelUnits::cm; // LArEMBThickElecKapton Totalthicke = Thcu+Thfg; Totalmasse = (Thcu*Copper->getDensity()+Thfg*Kapton->getDensity()); //**GU below are the fractions per mass @@ -198,7 +198,7 @@ void LArMaterialManager::buildMaterials() msg << MSG::DEBUG <<"---- Electrode characteristics: ----" << endmsg; msg << MSG::DEBUG <<" Fraction Cu, Kapton: " << FracCu << ","<< FracKap << endmsg; msg << MSG::DEBUG <<" Total mass, Thickness:"<<Totalmasse<<" ,"<<Totalthicke<< endmsg; - msg << MSG::DEBUG <<" Electrode Density = " << density*(CLHEP::cm3/CLHEP::g) << endmsg; + msg << MSG::DEBUG <<" Electrode Density = " << density*(GeoModelKernelUnits::cm3/GeoModelKernelUnits::g) << endmsg; GeoMaterial* Kapton_Cu = new GeoMaterial("KaptonC",density); Kapton_Cu->add(Copper,FracCu); @@ -209,7 +209,7 @@ void LArMaterialManager::buildMaterials() #endif // material for Cables/electronics (mixture of Kapton and copper) - // density = 2.440*CLHEP::g/CLHEP::cm3; + // density = 2.440*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3; //**GU get fractions per mass double frmassCu = dB.getDouble("BarrelAccordionCables","BarrelAccordionCables-00","PERCU"); // LArEMBmasspercentCu double frmassKap= dB.getDouble("BarrelAccordionCables","BarrelAccordionCables-00","PERKAP"); // LArEMBmasspercentKap @@ -219,8 +219,8 @@ void LArMaterialManager::buildMaterials() /(1.+frmassKapOverCu*Copper->getDensity()/Kapton->getDensity()); GeoMaterial* Cable_elect = new GeoMaterial("Cables",density); double fractionmass; - Cable_elect->add(Copper, fractionmass=frmassCu*CLHEP::perCent); - Cable_elect->add(Kapton, fractionmass=frmassKap*CLHEP::perCent); + Cable_elect->add(Copper, fractionmass=frmassCu*GeoModelKernelUnits::perCent); + Cable_elect->add(Kapton, fractionmass=frmassKap*GeoModelKernelUnits::perCent); m_storedManager->addMaterial("LAr", Cable_elect); #ifdef DEBUGGEO msg << MSG::INFO<< "Cable radiation length " << Cable_elect->getRadLength() << endmsg; @@ -228,8 +228,8 @@ void LArMaterialManager::buildMaterials() // material for motherboard // Mother_board is defined as a mixture of epox_G10 (C8 H14 O4) and Copper - ThMBcu = dB.getDouble("BarrelMotherboards","BarrelMotherboards-00","THICU")*CLHEP::cm; // LArEMBCuThickness - ThMBG10 = dB.getDouble("BarrelMotherboards","BarrelMotherboards-00","THIG10")*CLHEP::cm; // LArEMBG10Thickness + ThMBcu = dB.getDouble("BarrelMotherboards","BarrelMotherboards-00","THICU")*GeoModelKernelUnits::cm; // LArEMBCuThickness + ThMBG10 = dB.getDouble("BarrelMotherboards","BarrelMotherboards-00","THIG10")*GeoModelKernelUnits::cm; // LArEMBG10Thickness double TotalthickMBe = ThMBcu+ThMBG10; double TotalmassMBe = (ThMBcu*Copper->getDensity()+ThMBG10*G10->getDensity()); double FracMBCu = (ThMBcu*Copper->getDensity())/TotalmassMBe; @@ -240,7 +240,7 @@ void LArMaterialManager::buildMaterials() << FracMBG10 << endmsg; msg << MSG::DEBUG <<" Total mass, Thickness:" << TotalmassMBe <<" ," <<TotalthickMBe<< endmsg; - msg << MSG::DEBUG <<" M_board Density = "<<density*(CLHEP::cm3/CLHEP::g) << endmsg; + msg << MSG::DEBUG <<" M_board Density = "<<density*(GeoModelKernelUnits::cm3/GeoModelKernelUnits::g) << endmsg; GeoMaterial* Moth_elect = new GeoMaterial("MBoards",density); // ****GU: use fraction per masses of G10 and Cu Moth_elect->add(G10,FracMBG10); @@ -255,7 +255,7 @@ void LArMaterialManager::buildMaterials() const GeoElement* Si = m_storedManager->getElement("Silicon"); const GeoElement *O = m_storedManager->getElement("Oxygen"); - density = dB.getDouble("BarrelMotherboards", "BarrelMotherboards-00", "DG10")*(CLHEP::g/CLHEP::cm3); //LArEMBEpoxyVolumicMass + density = dB.getDouble("BarrelMotherboards", "BarrelMotherboards-00", "DG10")*(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); //LArEMBEpoxyVolumicMass GeoMaterial* SiO2 = new GeoMaterial("SiO2",density); double fractionSi=28.09/(28.09+2*16.0); SiO2->add(Si,fractionSi); @@ -263,21 +263,21 @@ void LArMaterialManager::buildMaterials() SiO2->add(O,fractionO); SiO2->lock(); // Gten for the bars of the calorimeter= mixture of regular G10 and SiO2 - density=1.72*CLHEP::g/CLHEP::cm3; // should be replaced by number from database + density=1.72*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3; // should be replaced by number from database GeoMaterial* Gten_bar = new GeoMaterial("G10_bar",density); Gten_bar->add(G10,0.38); // should be replaced by number from database Gten_bar->add(SiO2,0.62); // should be replaced by number from database m_storedManager->addMaterial("LAr",Gten_bar); #ifdef DEBUGGEO msg << MSG::INFO<< "fracionSi,fracionO2 " << fractionSi << " " << fractionO << endmsg; - msg << MSG::INFO<< "SiO2 density " << SiO2->getDensity()/(CLHEP::g/CLHEP::cm3) << endmsg; + msg << MSG::INFO<< "SiO2 density " << SiO2->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; msg << MSG::INFO<< "SiO2 radiation length " << SiO2->getRadLength() << endmsg; msg << MSG::INFO<< "G10bar radiation length " << Gten_bar->getRadLength() << endmsg; #endif // material for the effective M_PIn+summing board effect - double ThSBCu = 0.28*CLHEP::mm; // should be replaced by number from database - double ThSBAr = 9.72*CLHEP::mm; // should be replaced by number from database + double ThSBCu = 0.28*GeoModelKernelUnits::mm; // should be replaced by number from database + double ThSBAr = 9.72*GeoModelKernelUnits::mm; // should be replaced by number from database double TotalThickSB = ThSBCu+ThSBAr; double dcu = Copper->getDensity(); double dar = LAr->getDensity(); @@ -312,12 +312,12 @@ void LArMaterialManager::buildMaterials() const GeoElement *H = m_storedManager->getElement( "Hydrogen" ); - GeoMaterial *Vacuum = new GeoMaterial( "Vacuum", CLHEP::universe_mean_density ); + GeoMaterial *Vacuum = new GeoMaterial( "Vacuum", GeoModelKernelUnits::universe_mean_density ); Vacuum->add( H, 1. ); m_storedManager->addMaterial("LAr", Vacuum ); #ifdef DEBUGGEO msg << MSG::INFO<< "Vacuum radiation length " << Vacuum->getRadLength() << " " - << Vacuum->getDensity()/(CLHEP::g/CLHEP::cm3) << endmsg; + << Vacuum->getDensity()/(GeoModelKernelUnits::g/GeoModelKernelUnits::cm3) << endmsg; #endif @@ -335,13 +335,13 @@ void LArMaterialManager::buildMaterials() // EMEC thin absorbers // -/* Tggl = 0.30 * CLHEP::mm; - Tgfe = 0.40 * CLHEP::mm; - Tgpb = 1.70 * CLHEP::mm; */ +/* Tggl = 0.30 * GeoModelKernelUnits::mm; + Tgfe = 0.40 * GeoModelKernelUnits::mm; + Tgpb = 1.70 * GeoModelKernelUnits::mm; */ - Tggl = 0.20 * CLHEP::mm; - Tgfe = 0.40 * CLHEP::mm; - Tgpb = 1.69 * CLHEP::mm; + Tggl = 0.20 * GeoModelKernelUnits::mm; + Tgfe = 0.40 * GeoModelKernelUnits::mm; + Tgpb = 1.69 * GeoModelKernelUnits::mm; Totalthick = Tggl+Tgfe+Tgpb; Totalmass = (Tgpb*Lead->getDensity()+Tgfe*Iron->getDensity()+Tggl*Glue->getDensity()); @@ -354,13 +354,13 @@ void LArMaterialManager::buildMaterials() msg << MSG::DEBUG <<" Thickness pb,fe,gl,[mm]="<<Tgpb<<" "<<Tgfe<<" "<<Tggl << endmsg; msg << MSG::DEBUG <<" Fraction pb,fe,gl ="<<Fracpb<<","<<Fracfe<<"," <<Fracgl << endmsg; msg << MSG::DEBUG <<" Total mass, Thickness ="<<Totalmass<<" ," <<Totalthick << endmsg; - msg << MSG::DEBUG <<" Thinabs Density ="<< density*(CLHEP::cm3/CLHEP::g) << endmsg; + msg << MSG::DEBUG <<" Thinabs Density ="<< density*(GeoModelKernelUnits::cm3/GeoModelKernelUnits::g) << endmsg; msg << MSG::DEBUG << "---- EMEC THIN absorber characteristics: ----" << endmsg; msg << MSG::DEBUG <<" Thickness pb,fe,gl,[mm]="<<Tgpb<<" "<<Tgfe<<" "<<Tggl << endmsg; msg << MSG::DEBUG <<" Fraction pb,fe,gl ="<<Fracpb<<","<<Fracfe<<"," <<Fracgl << endmsg; msg << MSG::DEBUG <<" Total mass, Thickness ="<<Totalmass<<" ," <<Totalthick << endmsg; - msg << MSG::DEBUG <<" Thinabs Density ="<< density*(CLHEP::cm3/CLHEP::g) << endmsg; + msg << MSG::DEBUG <<" Thinabs Density ="<< density*(GeoModelKernelUnits::cm3/GeoModelKernelUnits::g) << endmsg; GeoMaterial* Thin_abs = new GeoMaterial("EMEC_Thinabs",density); @@ -377,13 +377,13 @@ void LArMaterialManager::buildMaterials() // EMEC thick absorbers // -/* Thgl = 0.30 * CLHEP::mm; - Thfe = 0.40 * CLHEP::mm; - Thpb = 2.20 * CLHEP::mm; */ +/* Thgl = 0.30 * GeoModelKernelUnits::mm; + Thfe = 0.40 * GeoModelKernelUnits::mm; + Thpb = 2.20 * GeoModelKernelUnits::mm; */ - Thgl = 0.20 * CLHEP::mm; - Thfe = 0.40 * CLHEP::mm; - Thpb = 2.20 * CLHEP::mm; + Thgl = 0.20 * GeoModelKernelUnits::mm; + Thfe = 0.40 * GeoModelKernelUnits::mm; + Thpb = 2.20 * GeoModelKernelUnits::mm; Totalthick = Thgl+Thfe+Thpb; Totalmass = (Thpb*Lead->getDensity()+Thfe*Iron->getDensity()+Thgl*Glue->getDensity()); @@ -397,7 +397,7 @@ void LArMaterialManager::buildMaterials() msg << MSG::DEBUG <<" Thickness pb,fe,gl[mm]="<<Thpb<<" "<<Thfe<<" "<<Thgl<<endmsg; msg << MSG::DEBUG <<" Fraction pb,fe,gl: "<<Fracpb<<","<<Fracfe<<","<<Fracgl<<endmsg; msg << MSG::DEBUG <<" Total mass, Thickness: "<<Totalmass<<" ,"<<Totalthick<<endmsg; - msg << MSG::DEBUG <<" Thickabs Density = "<<density*(CLHEP::cm3/CLHEP::g) <<endmsg; + msg << MSG::DEBUG <<" Thickabs Density = "<<density*(GeoModelKernelUnits::cm3/GeoModelKernelUnits::g) <<endmsg; GeoMaterial* Thick_abs = new GeoMaterial("EMEC_Thickabs",density); Thick_abs->add(Lead,Fracpb); @@ -411,8 +411,8 @@ void LArMaterialManager::buildMaterials() // // EMEC shell = iron + glue, identical for inner and outer absorbers // - Thgl = 0.20 * CLHEP::mm; - Thfe = 0.40 * CLHEP::mm; + Thgl = 0.20 * GeoModelKernelUnits::mm; + Thfe = 0.40 * GeoModelKernelUnits::mm; Totalthick = Thgl+Thfe; Totalmass = (Thfe*Iron->getDensity()+Thgl*Glue->getDensity()); @@ -425,7 +425,7 @@ void LArMaterialManager::buildMaterials() msg << MSG::DEBUG <<" Thickness fe,gl[mm]="<<Thfe<<" "<<Thgl<<endmsg; msg << MSG::DEBUG <<" Fraction fe,gl: "<<Fracfe<<","<<Fracgl<<endmsg; msg << MSG::DEBUG <<" Total mass, Thickness: "<<Totalmass<<" ,"<<Totalthick<<endmsg; - msg << MSG::DEBUG <<" Thickabs Density = "<<density*(CLHEP::cm3/CLHEP::g) <<endmsg; + msg << MSG::DEBUG <<" Thickabs Density = "<<density*(GeoModelKernelUnits::cm3/GeoModelKernelUnits::g) <<endmsg; GeoMaterial* EMEC_shell = new GeoMaterial("EMEC_shell",density); EMEC_shell->add(Iron,Fracfe); @@ -446,13 +446,13 @@ void LArMaterialManager::buildMaterials() //!! Check whether G10 or G10_bar is to be used!!!! -/* Tggl = 0.30 * CLHEP::mm; - Tgfe = 0.40 * CLHEP::mm; - TgG10 =1.70 * CLHEP::mm;*/ +/* Tggl = 0.30 * GeoModelKernelUnits::mm; + Tgfe = 0.40 * GeoModelKernelUnits::mm; + TgG10 =1.70 * GeoModelKernelUnits::mm;*/ - Tggl = 0.20 * CLHEP::mm; - Tgfe = 0.40 * CLHEP::mm; - TgG10 =1.69 * CLHEP::mm; + Tggl = 0.20 * GeoModelKernelUnits::mm; + Tgfe = 0.40 * GeoModelKernelUnits::mm; + TgG10 =1.69 * GeoModelKernelUnits::mm; Totalthick = Tggl+Tgfe+TgG10; Totalmass = (TgG10*G10->getDensity()+Tgfe*Iron->getDensity()+Tggl*Glue->getDensity()); @@ -477,13 +477,13 @@ void LArMaterialManager::buildMaterials() // EMEC Inner Wheel barrette // -/* Thgl = 0.30 * CLHEP::mm; - Thfe = 0.40 * CLHEP::mm; - ThG10 =2.20 * CLHEP::mm;*/ +/* Thgl = 0.30 * GeoModelKernelUnits::mm; + Thfe = 0.40 * GeoModelKernelUnits::mm; + ThG10 =2.20 * GeoModelKernelUnits::mm;*/ - Thgl = 0.20 * CLHEP::mm; - Thfe = 0.40 * CLHEP::mm; - ThG10 =2.20 * CLHEP::mm; + Thgl = 0.20 * GeoModelKernelUnits::mm; + Thfe = 0.40 * GeoModelKernelUnits::mm; + ThG10 =2.20 * GeoModelKernelUnits::mm; Totalthick = Thgl+Thfe+ThG10; Totalmass = (ThG10*G10->getDensity()+Thfe*Iron->getDensity()+Thgl*Glue->getDensity()); diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoEndcap/CMakeLists.txt index 9821db9d1d78aeac5e515b3642a2cc7d7050d669..c12d3f7581fb9ce7d5d590e0fc2920449eeedee3 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/CMakeLists.txt @@ -9,7 +9,6 @@ atlas_subdir( LArGeoEndcap ) atlas_depends_on_subdirs( PUBLIC Control/StoreGate Database/RDBAccessSvc - DetectorDescription/GeoModel/GeoModelKernel LArCalorimeter/LArGeoModel/LArGeoFcal LArCalorimeter/LArGeoModel/LArGeoHec PRIVATE @@ -24,15 +23,15 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( LArGeoEndcap src/*.cxx PUBLIC_HEADERS LArGeoEndcap - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} GeoModelKernel LArGeoFcal LArGeoHec StoreGateLib SGtests CaloDetDescrLib + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} LArGeoFcal LArGeoHec StoreGateLib SGtests CaloDetDescrLib PRIVATE_LINK_LIBRARIES CaloIdentifier GeoModelUtilities GeoSpecialShapes GaudiKernel LArGeoCode LArGeoMiniFcal ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EMECConstruction.h b/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EMECConstruction.h index 941a7ff1219993b3a578c26bbecd0228deaac7f5..4be8fc0f8a657fb2042635811dcce3e6e0363795 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EMECConstruction.h +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EMECConstruction.h @@ -10,8 +10,8 @@ * $Id: EMECConstruction.h,v 1.9 2009-02-10 16:50:53 tsulaia Exp $ */ -#ifndef __EMECConstruction_H__ -#define __EMECConstruction_H__ +#ifndef LARGEOENDCAP_EMECCONSTRUCTION_H +#define LARGEOENDCAP_EMECCONSTRUCTION_H class GeoFullPhysVol; diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EndcapPresamplerConstruction.h b/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EndcapPresamplerConstruction.h index 4bc37b172960fb201b220da4f5d0ea2856978ffd..f999cff27ccc95e44a426b33d97ccc6138ed73bd 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EndcapPresamplerConstruction.h +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EndcapPresamplerConstruction.h @@ -14,7 +14,7 @@ #define LARGEOENDCAP_ENDCAPPRESAMPLERCONSTRUCTION_H #include "GeoModelKernel/GeoFullPhysVol.h" -#include "CLHEP/GenericFunctions/FunctionNoop.hh" +#include "GeoGenericFunctions/FunctionNoop.h" // Forward declarations diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EndcapPresamplerGeometryHelper.h b/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EndcapPresamplerGeometryHelper.h index 8fec1ae90fb0437003bd286acb5145a9ec9e0841..e7da0ad2f4dafd86ae435d54e7dcc071452cb8b4 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EndcapPresamplerGeometryHelper.h +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/LArGeoEndcap/EndcapPresamplerGeometryHelper.h @@ -9,8 +9,8 @@ // It provides any separate calculations or constants for the endcap // presampler geometry. -#ifndef __EndcapPresamplerGeometryHelper_H__ -#define __EndcapPresamplerGeometryHelper_H__ +#ifndef LARGEOENDCAP_ENDCAPPRESAMPLERGEOMETRYHELPER_H +#define LARGEOENDCAP_ENDCAPPRESAMPLERGEOMETRYHELPER_H namespace LArGeo { @@ -24,7 +24,7 @@ namespace LArGeo { // Accessor for pointer to the singleton. static EndcapPresamplerGeometryHelper* GetInstance(); - // "zShift" is the z-distance (CLHEP::cm) that the EM endcap is shifted + // "zShift" is the z-distance (GeoModelKernelUnits::cm) that the EM endcap is shifted // (due to cabling, etc.) float zShift() const { return m_zShift; } diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECConstruction.cxx index 0c866b27039aea4712ddecebb0c097797943c5c2..3f4ea5cacf40d53131a833284f5ad41712912331 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECConstruction.cxx @@ -60,6 +60,8 @@ #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelUtilities/StoredPhysVol.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -68,7 +70,6 @@ #include "GaudiKernel/IService.h" #include "GaudiKernel/ISvcLocator.h" -#include "CLHEP/Geometry/Transform3D.h" #include "RDBAccessSvc/IRDBAccessSvc.h" #include "RDBAccessSvc/IRDBRecord.h" @@ -218,19 +219,19 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) double phiPosition, phiSize; if(m_isTB) { - phiPosition = CLHEP::halfpi*CLHEP::rad; - phiSize = M_PI*CLHEP::rad / 8. + 0.065*CLHEP::rad; // half-angle of inner part of module + phiPosition = GeoModelKernelUnits::halfpi*GeoModelKernelUnits::rad; + phiSize = M_PI*GeoModelKernelUnits::rad / 8. + 0.065*GeoModelKernelUnits::rad; // half-angle of inner part of module } else { - phiPosition = M_PI*CLHEP::rad; - phiSize = M_PI*CLHEP::rad; // half-angle of a full wheel + phiPosition = M_PI*GeoModelKernelUnits::rad; + phiSize = M_PI*GeoModelKernelUnits::rad; // half-angle of a full wheel } // Define the mother volume for the emec. Everything // else in the emec (wheels,structure, etc.) should be // placed inside here. - //double emecMotherZplan[] = {3641.*CLHEP::mm,4273.*CLHEP::mm}; //warm + //double emecMotherZplan[] = {3641.*GeoModelKernelUnits::mm,4273.*GeoModelKernelUnits::mm}; //warm // 21-Jul-2005, C.S. : above line valid in warm, below is in cold. // The latter one should apply, othervise SupportMotherVolumes cross @@ -245,17 +246,17 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) cryoPcons = pAccessSvc->getRecordsetPtr("CryoPcons", "CryoPcons-EMEC-00"); } - //double emecMotherZplan[] = {3639.5*CLHEP::mm,3639.5*CLHEP::mm+630.*CLHEP::mm}; //cold (J.T) - // // Zplane[0]=endg_z0*CLHEP::cm-50*CLHEP::mm - // // Zplane[1]=Zplane[0]+endg_dzende*CLHEP::cm-2.CLHEP::mm - //double emecMotherRin[] = { 279.*CLHEP::mm, 324*CLHEP::mm}; //{ 302.*CLHEP::mm, 302.*CLHEP::mm }; - //double emecMotherRout[] = {(2077.-7)*CLHEP::mm,(2077.-7)*CLHEP::mm}; // -7 for cold + //double emecMotherZplan[] = {3639.5*GeoModelKernelUnits::mm,3639.5*GeoModelKernelUnits::mm+630.*GeoModelKernelUnits::mm}; //cold (J.T) + // // Zplane[0]=endg_z0*GeoModelKernelUnits::cm-50*GeoModelKernelUnits::mm + // // Zplane[1]=Zplane[0]+endg_dzende*GeoModelKernelUnits::cm-2.GeoModelKernelUnits::mm + //double emecMotherRin[] = { 279.*GeoModelKernelUnits::mm, 324*GeoModelKernelUnits::mm}; //{ 302.*GeoModelKernelUnits::mm, 302.*GeoModelKernelUnits::mm }; + //double emecMotherRout[] = {(2077.-7)*GeoModelKernelUnits::mm,(2077.-7)*GeoModelKernelUnits::mm}; // -7 for cold //int lastPlaneEmec = (sizeof(emecMotherZplan) / sizeof(double)); std::string emecMotherName = baseName + "::Mother"; //+ extension; GeoTransform *refSystemTransform = 0; - double zTrans = 0.*CLHEP::mm, zMSTrans = 0.*CLHEP::mm; + double zTrans = 0.*GeoModelKernelUnits::mm, zMSTrans = 0.*GeoModelKernelUnits::mm; GeoPcon* emecMotherShape = new GeoPcon(phiPosition - phiSize, 2.*phiSize); //start phi,total phi for(unsigned int i = 0; i < cryoPcons->size(); ++ i){ @@ -263,13 +264,13 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) if(currentRecord->getString("PCON") == "EMEC::Mother"){ if(!refSystemTransform){ if(m_isTB){ - zTrans = -3700.5*CLHEP::mm; + zTrans = -3700.5*GeoModelKernelUnits::mm; zMSTrans = zTrans; } else { - zTrans = currentRecord->getDouble("ZPLANE") - 3639.5*CLHEP::mm; - zMSTrans = 0.*CLHEP::mm; + zTrans = currentRecord->getDouble("ZPLANE") - 3639.5*GeoModelKernelUnits::mm; + zMSTrans = 0.*GeoModelKernelUnits::mm; } - refSystemTransform = new GeoTransform(HepGeom::TranslateZ3D(zTrans)); + refSystemTransform = new GeoTransform(GeoTrf::TranslateZ3D(zTrans)); } emecMotherShape->addPlane(currentRecord->getDouble("ZPLANE") + zMSTrans, currentRecord->getDouble("RMIN"), @@ -282,8 +283,8 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) if(DB_EmecGeometry->size() == 0){ DB_EmecGeometry = pAccessSvc->getRecordsetPtr("EmecGeometry", "EmecGeometry-00"); } - double zWheelRefPoint = (*DB_EmecGeometry)[0]->getDouble("Z0")*CLHEP::cm; - double LArTotalThickness = (*DB_EmecGeometry)[0]->getDouble("ETOT") *CLHEP::cm; + double zWheelRefPoint = (*DB_EmecGeometry)[0]->getDouble("Z0")*GeoModelKernelUnits::cm; + double LArTotalThickness = (*DB_EmecGeometry)[0]->getDouble("ETOT") *GeoModelKernelUnits::cm; const GeoLogVol* emecMotherLogical = new GeoLogVol(emecMotherName, emecMotherShape, LAr); @@ -310,7 +311,7 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) double zWheelFrontFace = zWheelRefPoint + lwc->GetdWRPtoFrontFace(); GeoPcon* innerShape= new GeoPcon(phiPosition - phiSize, 2.*phiSize); - innerShape->addPlane( 0.*CLHEP::mm, rMinInner[0], rMaxInner[0]); + innerShape->addPlane( 0.*GeoModelKernelUnits::mm, rMinInner[0], rMaxInner[0]); innerShape->addPlane(zBack , rMinInner[1], rMaxInner[1]); GeoLogVol* innerLogical = new GeoLogVol (innerName,innerShape, LAr); @@ -318,7 +319,7 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) emecMotherPhysical->add(new GeoIdentifierTag(1)); emecMotherPhysical->add(refSystemTransform); - emecMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(zWheelFrontFace))); + emecMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(zWheelFrontFace))); emecMotherPhysical->add(fullPV); StoredPhysVol *sPhysVol = new StoredPhysVol(fullPV); @@ -337,10 +338,10 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) GeoPhysVol* innerAbsorberPhysical = new GeoPhysVol(innerAbsorberLogical); GeoPhysVol* innerElectrodePhysical = new GeoPhysVol(innerElectrodeLogical); fullPV->add(new GeoIdentifierTag(1)); - fullPV->add(new GeoTransform(HepGeom::Transform3D())); + fullPV->add(new GeoTransform(GeoTrf::Transform3D::Identity())); fullPV->add(innerAbsorberPhysical); fullPV->add(new GeoIdentifierTag(1)); - fullPV->add(new GeoTransform(HepGeom::Transform3D())); + fullPV->add(new GeoTransform(GeoTrf::Transform3D::Identity())); fullPV->add(innerElectrodePhysical); if(mlabs > 0){ @@ -352,7 +353,7 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) new GeoLogVol(IGWname, innerGlueShape, Glue); innerGluePhysical = new GeoPhysVol(innerGlueLogical); innerAbsorberPhysical->add(new GeoIdentifierTag(1)); - innerAbsorberPhysical->add(new GeoTransform(HepGeom::Transform3D())); + innerAbsorberPhysical->add(new GeoTransform(GeoTrf::Transform3D::Identity())); innerAbsorberPhysical->add(innerGluePhysical); } @@ -362,7 +363,7 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) new GeoLogVol(ILWname, innerLeadShape, Lead); GeoPhysVol* innerLeadPhysical = new GeoPhysVol(innerLeadLogical); innerGluePhysical->add(new GeoIdentifierTag(1)); - innerGluePhysical->add(new GeoTransform(HepGeom::Transform3D())); + innerGluePhysical->add(new GeoTransform(GeoTrf::Transform3D::Identity())); innerGluePhysical->add(innerLeadPhysical); } @@ -386,7 +387,7 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) double zWheelFrontFace = zWheelRefPoint + lwc->GetdWRPtoFrontFace(); GeoPcon* outerShape= new GeoPcon(phiPosition - phiSize, 2.*phiSize); - outerShape->addPlane( 0.*CLHEP::mm, rMinOuter[0], rMaxOuter[0]); + outerShape->addPlane( 0.*GeoModelKernelUnits::mm, rMinOuter[0], rMaxOuter[0]); outerShape->addPlane( zMid , rMinOuter[1], rMaxOuter[1]); outerShape->addPlane(zBack , rMinOuter[2], rMaxOuter[2]); @@ -395,7 +396,7 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) emecMotherPhysical->add(new GeoIdentifierTag(1)); emecMotherPhysical->add(refSystemTransform); - emecMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(zWheelFrontFace))); + emecMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(zWheelFrontFace))); emecMotherPhysical->add(fullPV); StoredPhysVol *sPhysVol = new StoredPhysVol(fullPV); @@ -412,10 +413,10 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) GeoPhysVol* outerAbsorberPhysical = new GeoPhysVol(outerAbsorberLogical); GeoPhysVol* outerElectrodePhysical = new GeoPhysVol(outerElectrodeLogical); fullPV->add(new GeoIdentifierTag(1)); - fullPV->add(new GeoTransform(HepGeom::Transform3D())); + fullPV->add(new GeoTransform(GeoTrf::Transform3D::Identity())); fullPV->add(outerAbsorberPhysical); fullPV->add(new GeoIdentifierTag(1)); - fullPV->add(new GeoTransform(HepGeom::Transform3D())); + fullPV->add(new GeoTransform(GeoTrf::Transform3D::Identity())); fullPV->add(outerElectrodePhysical); if(mlabs > 0){ @@ -427,7 +428,7 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) new GeoLogVol(OGWname, outerGlueShape, Glue); outerGluePhysical = new GeoPhysVol(outerGlueLogical); outerAbsorberPhysical->add(new GeoIdentifierTag(1)); - outerAbsorberPhysical->add(new GeoTransform(HepGeom::Transform3D())); + outerAbsorberPhysical->add(new GeoTransform(GeoTrf::Transform3D::Identity())); outerAbsorberPhysical->add(outerGluePhysical); } @@ -437,7 +438,7 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) new GeoLogVol(OLWname, outerLeadShape, Lead); GeoPhysVol* outerLeadPhysical = new GeoPhysVol(outerLeadLogical); outerGluePhysical->add(new GeoIdentifierTag(1)); - outerGluePhysical->add(new GeoTransform(HepGeom::Transform3D())); + outerGluePhysical->add(new GeoTransform(GeoTrf::Transform3D::Identity())); outerGluePhysical->add(outerLeadPhysical); } @@ -470,85 +471,84 @@ GeoFullPhysVol* LArGeo::EMECConstruction::GetEnvelope(bool bPos) if(DB_EMECmn->size() == 0) DB_EMECmn = pAccessSvc->getRecordsetPtr("EmecMagicNumbers","EMECMagigNumbers-00"); - double front_shift = 0.*CLHEP::mm, back_shift = 0.*CLHEP::mm; + double front_shift = 0.*GeoModelKernelUnits::mm, back_shift = 0.*GeoModelKernelUnits::mm; try { for(unsigned int i = 0; i < DMpcons->size(); ++ i){ std::string object = (*DMpcons)[i]->getString("PCONNAME"); if(object == "FrontSupportMother"){ int zplane = (*DMpcons)[i]->getInt("NZPLANE"); - if(zplane == 0) front_shift += (*DMpcons)[i]->getDouble("ZPOS")*CLHEP::mm; - else if(zplane == 1) front_shift -= (*DMpcons)[i]->getDouble("ZPOS")*CLHEP::mm; + if(zplane == 0) front_shift += (*DMpcons)[i]->getDouble("ZPOS")*GeoModelKernelUnits::mm; + else if(zplane == 1) front_shift -= (*DMpcons)[i]->getDouble("ZPOS")*GeoModelKernelUnits::mm; else continue; } else if(object == "BackSupportMother"){ int zplane = (*DMpcons)[i]->getInt("NZPLANE"); - if(zplane == 0) back_shift -= 0.;//(*DMpcons)[i]->getDouble("ZPOS")*CLHEP::mm; - else if(zplane == 1) back_shift += (*DMpcons)[i]->getDouble("ZPOS")*CLHEP::mm; + if(zplane == 0) back_shift -= 0.;//(*DMpcons)[i]->getDouble("ZPOS")*GeoModelKernelUnits::mm; + else if(zplane == 1) back_shift += (*DMpcons)[i]->getDouble("ZPOS")*GeoModelKernelUnits::mm; else continue; } } - double reftoactive = (*DB_EMECmn)[0]->getDouble("REFTOACTIVE")*CLHEP::mm; + double reftoactive = (*DB_EMECmn)[0]->getDouble("REFTOACTIVE")*GeoModelKernelUnits::mm; front_shift += reftoactive; back_shift += LArTotalThickness - reftoactive; } catch (...){ - front_shift = -50.*CLHEP::mm; // start of EMEC envelop in the cryo.(length of env=630.) - back_shift = 580.*CLHEP::mm; + front_shift = -50.*GeoModelKernelUnits::mm; // start of EMEC envelop in the cryo.(length of env=630.) + back_shift = 580.*GeoModelKernelUnits::mm; std::cout << "EMECConstruction: WARNING: cannot get front|back_shift from DB" << std::endl; } //std::cout << "EMECConstruction : " << front_shift << " " << back_shift << std::endl; z0 = zWheelRefPoint + front_shift; EMECSupportConstruction *fsc = 0; - if(m_isTB) fsc = new EMECSupportConstruction(FrontIndx, true, "LAr::EMEC::", CLHEP::halfpi*CLHEP::rad); + if(m_isTB) fsc = new EMECSupportConstruction(FrontIndx, true, "LAr::EMEC::", GeoModelKernelUnits::halfpi*GeoModelKernelUnits::rad); else fsc = new EMECSupportConstruction(FrontIndx); GeoPhysVol* physicalFSM = fsc->GetEnvelope(); - emecMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(z0))); + emecMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); emecMotherPhysical->add(refSystemTransform); emecMotherPhysical->add(physicalFSM); delete fsc; z0 = zWheelRefPoint + back_shift; // end of EMEC envelop in the cryo. EMECSupportConstruction *bsc = 0; - if(m_isTB) bsc = new EMECSupportConstruction(BackIndx, true, "LAr::EMEC::", CLHEP::halfpi*CLHEP::rad); + if(m_isTB) bsc = new EMECSupportConstruction(BackIndx, true, "LAr::EMEC::", GeoModelKernelUnits::halfpi*GeoModelKernelUnits::rad); else bsc = new EMECSupportConstruction(BackIndx); GeoPhysVol *physicalBSM = bsc->GetEnvelope(); - CLHEP::HepRotation rotBSM; - rotBSM.rotateX(-M_PI); - if(m_isTB) rotBSM.rotateZ(M_PI); // there is an additional rotation for TB, back support only + GeoTrf::Transform3D rotBSM(GeoTrf::RotateX3D(-M_PI)); + if(m_isTB) rotBSM = GeoTrf::RotateZ3D(M_PI)*rotBSM; emecMotherPhysical->add(refSystemTransform); - emecMotherPhysical->add(new GeoTransform(HepGeom::Transform3D(rotBSM,CLHEP::Hep3Vector(0., 0., z0)))); + emecMotherPhysical->add(new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translate3D(0., 0., z0)*rotBSM))); emecMotherPhysical->add(physicalBSM); delete bsc; z0 = zWheelRefPoint + LArTotalThickness * 0.5; //dist. to middle of sens vol. along z from WRP EMECSupportConstruction *osc = 0; - if(m_isTB) osc = new EMECSupportConstruction(2, true, "LAr::EMEC::", CLHEP::halfpi*CLHEP::rad); + if(m_isTB) osc = new EMECSupportConstruction(2, true, "LAr::EMEC::", GeoModelKernelUnits::halfpi*GeoModelKernelUnits::rad); else osc = new EMECSupportConstruction(2); GeoPhysVol *physicalOSM = osc->GetEnvelope(); emecMotherPhysical->add(refSystemTransform); - emecMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(z0))); + emecMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); emecMotherPhysical->add(physicalOSM); delete osc; z0 = zWheelRefPoint + LArTotalThickness * 0.5; EMECSupportConstruction *isc = 0; - if(m_isTB) isc = new EMECSupportConstruction(3, true, "LAr::EMEC::", CLHEP::halfpi*CLHEP::rad); + if(m_isTB) isc = new EMECSupportConstruction(3, true, "LAr::EMEC::", GeoModelKernelUnits::halfpi*GeoModelKernelUnits::rad); else isc = new EMECSupportConstruction(3); GeoPhysVol *physicalISM = isc->GetEnvelope(); emecMotherPhysical->add(refSystemTransform); - emecMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(z0))); + emecMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); emecMotherPhysical->add(physicalISM); delete isc; z0 = zWheelRefPoint + LArTotalThickness * 0.5; EMECSupportConstruction *msc = 0; - if(m_isTB) msc = new EMECSupportConstruction(4, true, "LAr::EMEC::", CLHEP::halfpi*CLHEP::rad); + if(m_isTB) msc = new EMECSupportConstruction(4, true, "LAr::EMEC::", GeoModelKernelUnits::halfpi*GeoModelKernelUnits::rad); else msc = new EMECSupportConstruction(4); GeoPhysVol *physicalMSM = msc->GetEnvelope(); emecMotherPhysical->add(refSystemTransform); - emecMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(z0))); + emecMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); emecMotherPhysical->add(physicalMSM); delete msc; } diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECSupportConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECSupportConstruction.cxx index 537bf556ce431b3fb9d22b5bac644950046a4cb1..23ebc8306eb04ad66dc6423fd07de70c58a81d00 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECSupportConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EMECSupportConstruction.cxx @@ -71,6 +71,8 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -83,8 +85,6 @@ #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" -#include "CLHEP/Geometry/Transform3D.h" - #include "GeoSpecialShapes/LArWheelCalculator.h" #include "LArGeoEndcap/EMECConstruction.h" @@ -110,11 +110,11 @@ EMECSupportConstruction::EMECSupportConstruction } m_PhiStart = 0.; - m_PhiSize = CLHEP::twopi*CLHEP::rad; + m_PhiSize = GeoModelKernelUnits::twopi*GeoModelKernelUnits::rad; if(m_isModule){ - m_PhiStart = m_Position - M_PI*CLHEP::rad / 8.; - m_PhiSize = M_PI*CLHEP::rad / 4.; + m_PhiStart = m_Position - M_PI*GeoModelKernelUnits::rad / 8.; + m_PhiSize = M_PI*GeoModelKernelUnits::rad / 4.; } // Get the materials from the manager @@ -338,24 +338,24 @@ GeoPcon* EMECSupportConstruction::getPcon(std::string id) const } pcone[key] = i; if(key >= 0) ++ nzplanes; - else R0 = (*m_DB_pcons)[i]->getDouble("RMIN")*CLHEP::mm; + else R0 = (*m_DB_pcons)[i]->getDouble("RMIN")*GeoModelKernelUnits::mm; } } if(nzplanes > 0){ zplane.resize(nzplanes); rmin.resize(nzplanes); rmax.resize(nzplanes); for(int n = 0; n < nzplanes; ++ n){ - zplane[n] = (*m_DB_pcons)[pcone[n]]->getDouble("ZPOS")*CLHEP::mm; - rmin[n] = R0 + (*m_DB_pcons)[pcone[n]]->getDouble("RMIN")*CLHEP::mm; - rmax[n] = R0 + (*m_DB_pcons)[pcone[n]]->getDouble("RMAX")*CLHEP::mm; + zplane[n] = (*m_DB_pcons)[pcone[n]]->getDouble("ZPOS")*GeoModelKernelUnits::mm; + rmin[n] = R0 + (*m_DB_pcons)[pcone[n]]->getDouble("RMIN")*GeoModelKernelUnits::mm; + rmax[n] = R0 + (*m_DB_pcons)[pcone[n]]->getDouble("RMAX")*GeoModelKernelUnits::mm; } if(id1 == "FrontSupportMother"){ if(id.find("Inner") != std::string::npos){ zplane.resize(2); rmin.resize(2); rmax.resize(2); - double rlim = getNumber(m_DB_numbers, id, "Inner", 614.)*CLHEP::mm; + double rlim = getNumber(m_DB_numbers, id, "Inner", 614.)*GeoModelKernelUnits::mm; rmax[0] = rlim; rmax[1] = rlim; } else if(id.find("Outer") != std::string::npos){ - double rlim = getNumber(m_DB_numbers, id, "Outer", 603.-1.)*CLHEP::mm; + double rlim = getNumber(m_DB_numbers, id, "Outer", 603.-1.)*GeoModelKernelUnits::mm; rmin[0] = rlim; rmin[1] = rlim; } @@ -363,24 +363,24 @@ GeoPcon* EMECSupportConstruction::getPcon(std::string id) const if(id1 == "BackSupportMother"){ if(id.find("Inner") != std::string::npos){ zplane.resize(2); rmin.resize(2); rmax.resize(2); - double rlim = getNumber(m_DB_numbers, id, "Inner", 699.)*CLHEP::mm; + double rlim = getNumber(m_DB_numbers, id, "Inner", 699.)*GeoModelKernelUnits::mm; rmax[0] = rlim; rmax[1] = rlim; } else if(id.find("Outer") != std::string::npos){ - double rlim = getNumber(m_DB_numbers, id, "Outer", 687.-1.)*CLHEP::mm; + double rlim = getNumber(m_DB_numbers, id, "Outer", 687.-1.)*GeoModelKernelUnits::mm; rmin[0] = rlim; rmin[1] = rlim; } } if(id1 == "Stretchers"){ if(id == "WideStretchers"){ - double dfiWS = 360./3./256.*24.*CLHEP::deg; //this is the design variable for WS + double dfiWS = 360./3./256.*24.*GeoModelKernelUnits::deg; //this is the design variable for WS phi_start = m_Position - dfiWS*0.5; phi_size = dfiWS; } if(id == "NarrowStretchers"){ - double lengthNS = getNumber(m_DB_numbers, id, "Width", 200.)*CLHEP::mm; // transversal length of NS - double dfiNS = lengthNS / rmax[0] * CLHEP::rad; + double lengthNS = getNumber(m_DB_numbers, id, "Width", 200.)*GeoModelKernelUnits::mm; // transversal length of NS + double dfiNS = lengthNS / rmax[0] * GeoModelKernelUnits::rad; phi_start = m_Position - dfiNS*0.5; phi_size = dfiNS; } @@ -395,42 +395,42 @@ for(int i = 0; i < nzplanes; ++ i){ } else { if(id.find("FrontSupportMother") == 0){ zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 0. *CLHEP::mm; rmin[0] = 292.*CLHEP::mm-1.*CLHEP::mm; rmax[0] = 2077.*CLHEP::mm-7.*CLHEP::mm; - zplane[1] = 61. *CLHEP::mm; rmin[1] = 292.*CLHEP::mm-1.*CLHEP::mm; rmax[1] = 2077.*CLHEP::mm-7.*CLHEP::mm; - zplane[2] = 61. *CLHEP::mm; rmin[2] = 2023.*CLHEP::mm-7.*CLHEP::mm; rmax[2] = 2077.*CLHEP::mm-7.*CLHEP::mm; - zplane[3] = 72.3*CLHEP::mm; rmin[3] = 2023.*CLHEP::mm-7.*CLHEP::mm; rmax[3] = 2077.*CLHEP::mm-7.*CLHEP::mm; - zplane[4] = 124.2*CLHEP::mm; rmin[4] = 2051.*CLHEP::mm-7.*CLHEP::mm; rmax[4] = 2077.*CLHEP::mm-7.*CLHEP::mm; - zplane[5] = 153. *CLHEP::mm; rmin[5] = 2051.*CLHEP::mm-7.*CLHEP::mm; rmax[5] = 2077.*CLHEP::mm-7.*CLHEP::mm; + zplane[0] = 0. *GeoModelKernelUnits::mm; rmin[0] = 292.*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; rmax[0] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; + zplane[1] = 61. *GeoModelKernelUnits::mm; rmin[1] = 292.*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; rmax[1] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; + zplane[2] = 61. *GeoModelKernelUnits::mm; rmin[2] = 2023.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; rmax[2] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; + zplane[3] = 72.3*GeoModelKernelUnits::mm; rmin[3] = 2023.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; rmax[3] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; + zplane[4] = 124.2*GeoModelKernelUnits::mm; rmin[4] = 2051.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; rmax[4] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; + zplane[5] = 153. *GeoModelKernelUnits::mm; rmin[5] = 2051.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; rmax[5] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; if(id == "FrontSupportMother::Outer"){ - rmin[0] = 603.*CLHEP::mm-1.*CLHEP::mm; - rmin[1] = 603.*CLHEP::mm-1.*CLHEP::mm; + rmin[0] = 603.*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; + rmin[1] = 603.*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; } if(id == "FrontSupportMother::Inner"){ zplane.resize(2); rmin.resize(2); rmax.resize(2); - rmax[0] = 614.*CLHEP::mm; - rmax[1] = 614.*CLHEP::mm; + rmax[0] = 614.*GeoModelKernelUnits::mm; + rmax[1] = 614.*GeoModelKernelUnits::mm; } } else if(id.find("BackSupportMother") == 0){ zplane.resize(4); rmin.resize(4); rmax.resize(4); - zplane[0] = 0.001*CLHEP::mm; rmin[0] = 333.*CLHEP::mm-1.*CLHEP::mm; rmax[0] = 2077.*CLHEP::mm-7.*CLHEP::mm; - zplane[1] = 55. *CLHEP::mm; rmin[1] = 333.*CLHEP::mm-1.*CLHEP::mm; rmax[1] = 2077.*CLHEP::mm-7.*CLHEP::mm; - zplane[2] = 55. *CLHEP::mm; rmin[2] = 2051.*CLHEP::mm-7.*CLHEP::mm; rmax[2] = 2077.*CLHEP::mm-7.*CLHEP::mm; - zplane[3] = 147. *CLHEP::mm; rmin[3] = 2051.*CLHEP::mm-7.*CLHEP::mm; rmax[3] = 2077.*CLHEP::mm-7.*CLHEP::mm; + zplane[0] = 0.001*GeoModelKernelUnits::mm; rmin[0] = 333.*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; rmax[0] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; + zplane[1] = 55. *GeoModelKernelUnits::mm; rmin[1] = 333.*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; rmax[1] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; + zplane[2] = 55. *GeoModelKernelUnits::mm; rmin[2] = 2051.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; rmax[2] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; + zplane[3] = 147. *GeoModelKernelUnits::mm; rmin[3] = 2051.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; rmax[3] = 2077.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; if(id == "BackSupportMother::Outer"){ - rmin[0] = 687.*CLHEP::mm-1.*CLHEP::mm; - rmin[1] = 687.*CLHEP::mm-1.*CLHEP::mm; + rmin[0] = 687.*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; + rmin[1] = 687.*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; } if(id == "BackSupportMother::Inner"){ zplane.resize(2); rmin.resize(2); rmax.resize(2); - rmax[0] = 699.*CLHEP::mm; - rmax[1] = 699.*CLHEP::mm; + rmax[0] = 699.*GeoModelKernelUnits::mm; + rmax[1] = 699.*GeoModelKernelUnits::mm; } } else if(id == "WideStretchers" || id == "NarrowStretchers"){ - double dzS = 165.*CLHEP::mm; - double dznotch = 10.*CLHEP::mm; // half z extent of the notch - double drnotch = 6.5*CLHEP::mm; // deepness of the noth in radial direction - double rmaxS = (2077. - 7.)*CLHEP::mm;//ROuter+116. // -7 for cold - double rminS = rmaxS - 26.*CLHEP::mm; + double dzS = 165.*GeoModelKernelUnits::mm; + double dznotch = 10.*GeoModelKernelUnits::mm; // half z extent of the notch + double drnotch = 6.5*GeoModelKernelUnits::mm; // deepness of the noth in radial direction + double rmaxS = (2077. - 7.)*GeoModelKernelUnits::mm;//ROuter+116. // -7 for cold + double rminS = rmaxS - 26.*GeoModelKernelUnits::mm; double rmidS = rminS + drnotch; zplane.resize(6); rmin.resize(6); rmax.resize(6); zplane[0] = -dzS ; rmin[0] = rminS; rmax[0] = rmaxS; @@ -440,22 +440,22 @@ for(int i = 0; i < nzplanes; ++ i){ zplane[4] = dznotch; rmin[4] = rminS; rmax[4] = rmaxS; zplane[5] = dzS ; rmin[5] = rminS; rmax[5] = rmaxS; if(id == "WideStretchers"){ - double dfiWS = 360./3./256.*24.*CLHEP::deg; //this is the design variable for WS + double dfiWS = 360./3./256.*24.*GeoModelKernelUnits::deg; //this is the design variable for WS phi_start = m_Position - dfiWS*0.5; phi_size = dfiWS; } if(id == "NarrowStretchers"){ - double lengthNS = 200.*CLHEP::mm; // transversal length of NS - double dfiNS = lengthNS / rmaxS * CLHEP::rad; + double lengthNS = 200.*GeoModelKernelUnits::mm; // transversal length of NS + double dfiNS = lengthNS / rmaxS * GeoModelKernelUnits::rad; phi_start = m_Position - dfiNS*0.5; phi_size = dfiNS; } } else if(id == "OuterSupportMother"){ - double dzS = 165.*CLHEP::mm; - double rmaxS = (2077. - 7.)*CLHEP::mm;//ROuter+116. // -7 for cold - double rminOTB = (2034. + 2.)*CLHEP::mm; - double rmaxOTB = rminOTB + 3.*CLHEP::mm; - double dzOTB = 201.*CLHEP::mm; + double dzS = 165.*GeoModelKernelUnits::mm; + double rmaxS = (2077. - 7.)*GeoModelKernelUnits::mm;//ROuter+116. // -7 for cold + double rminOTB = (2034. + 2.)*GeoModelKernelUnits::mm; + double rmaxOTB = rminOTB + 3.*GeoModelKernelUnits::mm; + double dzOTB = 201.*GeoModelKernelUnits::mm; zplane.resize(6); rmin.resize(6); rmax.resize(6); zplane[0] = -dzOTB ; rmin[0] = rminOTB; rmax[0] = rmaxOTB; zplane[1] = -dzS; rmin[1] = rminOTB; rmax[1] = rmaxOTB; @@ -464,176 +464,176 @@ for(int i = 0; i < nzplanes; ++ i){ zplane[4] = dzS; rmin[4] = rminOTB; rmax[4] = rmaxOTB; zplane[5] = dzOTB ; rmin[5] = rminOTB; rmax[5] = rmaxOTB; } else if(id == "FrontMiddleRing"){ - double r0 =614.*CLHEP::mm-2.*CLHEP::mm ; // RMiddle=middle radius of the ring + double r0 =614.*GeoModelKernelUnits::mm-2.*GeoModelKernelUnits::mm ; // RMiddle=middle radius of the ring zplane.resize(4); rmin.resize(4); rmax.resize(4); - zplane[0] = 0. *CLHEP::mm; rmin[0] = r0 - 57.*CLHEP::mm; rmax[0] = r0 + 57.*CLHEP::mm; - zplane[1] = 27.5*CLHEP::mm; rmin[1] = r0 - 57.*CLHEP::mm; rmax[1] = r0 + 57.*CLHEP::mm; - zplane[2] = 27.5*CLHEP::mm; rmin[2] = r0 - 40.*CLHEP::mm; rmax[2] = r0 + 40.*CLHEP::mm; - zplane[3] = 59. *CLHEP::mm; rmin[3] = r0 - 40.*CLHEP::mm; rmax[3] = r0 + 40.*CLHEP::mm; + zplane[0] = 0. *GeoModelKernelUnits::mm; rmin[0] = r0 - 57.*GeoModelKernelUnits::mm; rmax[0] = r0 + 57.*GeoModelKernelUnits::mm; + zplane[1] = 27.5*GeoModelKernelUnits::mm; rmin[1] = r0 - 57.*GeoModelKernelUnits::mm; rmax[1] = r0 + 57.*GeoModelKernelUnits::mm; + zplane[2] = 27.5*GeoModelKernelUnits::mm; rmin[2] = r0 - 40.*GeoModelKernelUnits::mm; rmax[2] = r0 + 40.*GeoModelKernelUnits::mm; + zplane[3] = 59. *GeoModelKernelUnits::mm; rmin[3] = r0 - 40.*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.*GeoModelKernelUnits::mm; } else if(id == "FrontMiddleRing::LowerHole"){ - double r0 = 614.*CLHEP::mm-2.*CLHEP::mm; // RMiddle=middle radius of the ring + double r0 = 614.*GeoModelKernelUnits::mm-2.*GeoModelKernelUnits::mm; // RMiddle=middle radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 23. *CLHEP::mm; rmin[0] = r0 - 28.3*CLHEP::mm; rmax[0] = r0 - 8.*CLHEP::mm; - zplane[1] = 27.5*CLHEP::mm; rmin[1] = r0 - 28.3*CLHEP::mm; rmax[1] = r0 - 8.*CLHEP::mm; - zplane[2] = 27.5*CLHEP::mm; rmin[2] = r0 - 40. *CLHEP::mm; rmax[2] = r0 - 8.*CLHEP::mm; - zplane[3] = 48.5*CLHEP::mm; rmin[3] = r0 - 40. *CLHEP::mm; rmax[3] = r0 - 8.*CLHEP::mm; - zplane[4] = 48.5*CLHEP::mm; rmin[4] = r0 - 28.3*CLHEP::mm; rmax[4] = r0 - 8.*CLHEP::mm; - zplane[5] = 53. *CLHEP::mm; rmin[5] = r0 - 28.3*CLHEP::mm; rmax[5] = r0 - 8.*CLHEP::mm; + zplane[0] = 23. *GeoModelKernelUnits::mm; rmin[0] = r0 - 28.3*GeoModelKernelUnits::mm; rmax[0] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[1] = 27.5*GeoModelKernelUnits::mm; rmin[1] = r0 - 28.3*GeoModelKernelUnits::mm; rmax[1] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[2] = 27.5*GeoModelKernelUnits::mm; rmin[2] = r0 - 40. *GeoModelKernelUnits::mm; rmax[2] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[3] = 48.5*GeoModelKernelUnits::mm; rmin[3] = r0 - 40. *GeoModelKernelUnits::mm; rmax[3] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[4] = 48.5*GeoModelKernelUnits::mm; rmin[4] = r0 - 28.3*GeoModelKernelUnits::mm; rmax[4] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[5] = 53. *GeoModelKernelUnits::mm; rmin[5] = r0 - 28.3*GeoModelKernelUnits::mm; rmax[5] = r0 - 8.*GeoModelKernelUnits::mm; } else if(id == "FrontMiddleRing::LowerGTen"){ - double r0 = 614.*CLHEP::mm - 2.*CLHEP::mm; // RMiddle=middle radius of the ring + double r0 = 614.*GeoModelKernelUnits::mm - 2.*GeoModelKernelUnits::mm; // RMiddle=middle radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 23.*CLHEP::mm; rmin[0] = r0 - 28.*CLHEP::mm; rmax[0] = r0 - 8.*CLHEP::mm; - zplane[1] = 28.*CLHEP::mm; rmin[1] = r0 - 28.*CLHEP::mm; rmax[1] = r0 - 8.*CLHEP::mm; - zplane[2] = 28.*CLHEP::mm; rmin[2] = r0 - 40.*CLHEP::mm; rmax[2] = r0 - 8.*CLHEP::mm; - zplane[3] = 48.*CLHEP::mm; rmin[3] = r0 - 40.*CLHEP::mm; rmax[3] = r0 - 8.*CLHEP::mm; - zplane[4] = 48.*CLHEP::mm; rmin[4] = r0 - 28.*CLHEP::mm; rmax[4] = r0 - 8.*CLHEP::mm; - zplane[5] = 53.*CLHEP::mm; rmin[5] = r0 - 28.*CLHEP::mm; rmax[5] = r0 - 8.*CLHEP::mm; + zplane[0] = 23.*GeoModelKernelUnits::mm; rmin[0] = r0 - 28.*GeoModelKernelUnits::mm; rmax[0] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[1] = 28.*GeoModelKernelUnits::mm; rmin[1] = r0 - 28.*GeoModelKernelUnits::mm; rmax[1] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[2] = 28.*GeoModelKernelUnits::mm; rmin[2] = r0 - 40.*GeoModelKernelUnits::mm; rmax[2] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[3] = 48.*GeoModelKernelUnits::mm; rmin[3] = r0 - 40.*GeoModelKernelUnits::mm; rmax[3] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[4] = 48.*GeoModelKernelUnits::mm; rmin[4] = r0 - 28.*GeoModelKernelUnits::mm; rmax[4] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[5] = 53.*GeoModelKernelUnits::mm; rmin[5] = r0 - 28.*GeoModelKernelUnits::mm; rmax[5] = r0 - 8.*GeoModelKernelUnits::mm; } else if(id == "FrontMiddleRing::UpperHole"){ - double r0 =614.*CLHEP::mm-2.*CLHEP::mm ; // RMiddle=middle radius of the ring + double r0 =614.*GeoModelKernelUnits::mm-2.*GeoModelKernelUnits::mm ; // RMiddle=middle radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 23. *CLHEP::mm; rmin[0] = r0 + 8.*CLHEP::mm; rmax[0] = r0 + 28.3*CLHEP::mm; - zplane[1] = 27.5*CLHEP::mm; rmin[1] = r0 + 8.*CLHEP::mm; rmax[1] = r0 + 28.3*CLHEP::mm; - zplane[2] = 27.5*CLHEP::mm; rmin[2] = r0 + 8.*CLHEP::mm; rmax[2] = r0 + 40. *CLHEP::mm; - zplane[3] = 48.5*CLHEP::mm; rmin[3] = r0 + 8.*CLHEP::mm; rmax[3] = r0 + 40. *CLHEP::mm; - zplane[4] = 48.5*CLHEP::mm; rmin[4] = r0 + 8.*CLHEP::mm; rmax[4] = r0 + 28.3*CLHEP::mm; - zplane[5] = 53. *CLHEP::mm; rmin[5] = r0 + 8.*CLHEP::mm; rmax[5] = r0 + 28.3*CLHEP::mm; + zplane[0] = 23. *GeoModelKernelUnits::mm; rmin[0] = r0 + 8.*GeoModelKernelUnits::mm; rmax[0] = r0 + 28.3*GeoModelKernelUnits::mm; + zplane[1] = 27.5*GeoModelKernelUnits::mm; rmin[1] = r0 + 8.*GeoModelKernelUnits::mm; rmax[1] = r0 + 28.3*GeoModelKernelUnits::mm; + zplane[2] = 27.5*GeoModelKernelUnits::mm; rmin[2] = r0 + 8.*GeoModelKernelUnits::mm; rmax[2] = r0 + 40. *GeoModelKernelUnits::mm; + zplane[3] = 48.5*GeoModelKernelUnits::mm; rmin[3] = r0 + 8.*GeoModelKernelUnits::mm; rmax[3] = r0 + 40. *GeoModelKernelUnits::mm; + zplane[4] = 48.5*GeoModelKernelUnits::mm; rmin[4] = r0 + 8.*GeoModelKernelUnits::mm; rmax[4] = r0 + 28.3*GeoModelKernelUnits::mm; + zplane[5] = 53. *GeoModelKernelUnits::mm; rmin[5] = r0 + 8.*GeoModelKernelUnits::mm; rmax[5] = r0 + 28.3*GeoModelKernelUnits::mm; } else if(id == "FrontMiddleRing::UpperGTen"){ - double r0 =614.*CLHEP::mm-2.*CLHEP::mm ; // RMiddle=middle radius of the ring + double r0 =614.*GeoModelKernelUnits::mm-2.*GeoModelKernelUnits::mm ; // RMiddle=middle radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 23.*CLHEP::mm; rmin[0] = r0 + 8.*CLHEP::mm; rmax[0] = r0 + 28.*CLHEP::mm; - zplane[1] = 28.*CLHEP::mm; rmin[1] = r0 + 8.*CLHEP::mm; rmax[1] = r0 + 28.*CLHEP::mm; - zplane[2] = 28.*CLHEP::mm; rmin[2] = r0 + 8.*CLHEP::mm; rmax[2] = r0 + 40.*CLHEP::mm; - zplane[3] = 48.*CLHEP::mm; rmin[3] = r0 + 8.*CLHEP::mm; rmax[3] = r0 + 40.*CLHEP::mm; - zplane[4] = 48.*CLHEP::mm; rmin[4] = r0 + 8.*CLHEP::mm; rmax[4] = r0 + 28.*CLHEP::mm; - zplane[5] = 53.*CLHEP::mm; rmin[5] = r0 + 8.*CLHEP::mm; rmax[5] = r0 + 28.*CLHEP::mm; + zplane[0] = 23.*GeoModelKernelUnits::mm; rmin[0] = r0 + 8.*GeoModelKernelUnits::mm; rmax[0] = r0 + 28.*GeoModelKernelUnits::mm; + zplane[1] = 28.*GeoModelKernelUnits::mm; rmin[1] = r0 + 8.*GeoModelKernelUnits::mm; rmax[1] = r0 + 28.*GeoModelKernelUnits::mm; + zplane[2] = 28.*GeoModelKernelUnits::mm; rmin[2] = r0 + 8.*GeoModelKernelUnits::mm; rmax[2] = r0 + 40.*GeoModelKernelUnits::mm; + zplane[3] = 48.*GeoModelKernelUnits::mm; rmin[3] = r0 + 8.*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.*GeoModelKernelUnits::mm; + zplane[4] = 48.*GeoModelKernelUnits::mm; rmin[4] = r0 + 8.*GeoModelKernelUnits::mm; rmax[4] = r0 + 28.*GeoModelKernelUnits::mm; + zplane[5] = 53.*GeoModelKernelUnits::mm; rmin[5] = r0 + 8.*GeoModelKernelUnits::mm; rmax[5] = r0 + 28.*GeoModelKernelUnits::mm; } else if(id == "FrontInnerRing"){ - double r0 = 335.5*CLHEP::mm-1.*CLHEP::mm; // RInner = reference radius of the inner ring + double r0 = 335.5*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; // RInner = reference radius of the inner ring zplane.resize(5); rmin.resize(5); rmax.resize(5); - zplane[0] = 0. *CLHEP::mm; rmin[0] = r0 - 22.5*CLHEP::mm; rmax[0] = r0 + 51.5*CLHEP::mm; - zplane[1] = 6. *CLHEP::mm; rmin[1] = r0 - 28.5*CLHEP::mm; rmax[1] = r0 + 51.5*CLHEP::mm; - zplane[2] = 27.5*CLHEP::mm; rmin[2] = r0 - 28.5*CLHEP::mm; rmax[2] = r0 + 51.5*CLHEP::mm; - zplane[3] = 27.5*CLHEP::mm; rmin[3] = r0 - 43.5*CLHEP::mm; rmax[3] = r0 + 40.5*CLHEP::mm; - zplane[4] = 59. *CLHEP::mm; rmin[4] = r0 - 43.5*CLHEP::mm; rmax[4] = r0 + 40.5*CLHEP::mm; + zplane[0] = 0. *GeoModelKernelUnits::mm; rmin[0] = r0 - 22.5*GeoModelKernelUnits::mm; rmax[0] = r0 + 51.5*GeoModelKernelUnits::mm; + zplane[1] = 6. *GeoModelKernelUnits::mm; rmin[1] = r0 - 28.5*GeoModelKernelUnits::mm; rmax[1] = r0 + 51.5*GeoModelKernelUnits::mm; + zplane[2] = 27.5*GeoModelKernelUnits::mm; rmin[2] = r0 - 28.5*GeoModelKernelUnits::mm; rmax[2] = r0 + 51.5*GeoModelKernelUnits::mm; + zplane[3] = 27.5*GeoModelKernelUnits::mm; rmin[3] = r0 - 43.5*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.5*GeoModelKernelUnits::mm; + zplane[4] = 59. *GeoModelKernelUnits::mm; rmin[4] = r0 - 43.5*GeoModelKernelUnits::mm; rmax[4] = r0 + 40.5*GeoModelKernelUnits::mm; } else if(id == "FrontInnerRing::Hole"){ - double r0 = 335.5*CLHEP::mm-1.*CLHEP::mm; // RInner = reference radius of the inner ring + double r0 = 335.5*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; // RInner = reference radius of the inner ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 23. *CLHEP::mm; rmin[0] = r0 + 6.5*CLHEP::mm; rmax[0] = r0 + 29.5*CLHEP::mm; - zplane[1] = 27.5*CLHEP::mm; rmin[1] = r0 + 6.5*CLHEP::mm; rmax[1] = r0 + 29.5*CLHEP::mm; - zplane[2] = 27.5*CLHEP::mm; rmin[2] = r0 + 6.5*CLHEP::mm; rmax[2] = r0 + 40.5*CLHEP::mm; - zplane[3] = 48.5*CLHEP::mm; rmin[3] = r0 + 6.5*CLHEP::mm; rmax[3] = r0 + 40.5*CLHEP::mm; - zplane[4] = 48.5*CLHEP::mm; rmin[4] = r0 + 6.5*CLHEP::mm; rmax[4] = r0 + 29.5*CLHEP::mm; - zplane[5] = 53. *CLHEP::mm; rmin[5] = r0 + 6.5*CLHEP::mm; rmax[5] = r0 + 29.5*CLHEP::mm; + zplane[0] = 23. *GeoModelKernelUnits::mm; rmin[0] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[0] = r0 + 29.5*GeoModelKernelUnits::mm; + zplane[1] = 27.5*GeoModelKernelUnits::mm; rmin[1] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[1] = r0 + 29.5*GeoModelKernelUnits::mm; + zplane[2] = 27.5*GeoModelKernelUnits::mm; rmin[2] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[2] = r0 + 40.5*GeoModelKernelUnits::mm; + zplane[3] = 48.5*GeoModelKernelUnits::mm; rmin[3] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.5*GeoModelKernelUnits::mm; + zplane[4] = 48.5*GeoModelKernelUnits::mm; rmin[4] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[4] = r0 + 29.5*GeoModelKernelUnits::mm; + zplane[5] = 53. *GeoModelKernelUnits::mm; rmin[5] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[5] = r0 + 29.5*GeoModelKernelUnits::mm; } else if(id == "FrontInnerRing::GTen"){ - double r0 = 335.5*CLHEP::mm-1.*CLHEP::mm; // RInner = reference radius of the inner ring + double r0 = 335.5*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; // RInner = reference radius of the inner ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 23.*CLHEP::mm; rmin[0] = r0 + 8.5*CLHEP::mm; rmax[0] = r0 + 28.5*CLHEP::mm; - zplane[1] = 28.*CLHEP::mm; rmin[1] = r0 + 8.5*CLHEP::mm; rmax[1] = r0 + 28.5*CLHEP::mm; - zplane[2] = 28.*CLHEP::mm; rmin[2] = r0 + 8.5*CLHEP::mm; rmax[2] = r0 + 40.5*CLHEP::mm; - zplane[3] = 48.*CLHEP::mm; rmin[3] = r0 + 8.5*CLHEP::mm; rmax[3] = r0 + 40.5*CLHEP::mm; - zplane[4] = 48.*CLHEP::mm; rmin[4] = r0 + 8.5*CLHEP::mm; rmax[4] = r0 + 28.5*CLHEP::mm; - zplane[5] = 53.*CLHEP::mm; rmin[5] = r0 + 8.5*CLHEP::mm; rmax[5] = r0 + 28.5*CLHEP::mm; + zplane[0] = 23.*GeoModelKernelUnits::mm; rmin[0] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[0] = r0 + 28.5*GeoModelKernelUnits::mm; + zplane[1] = 28.*GeoModelKernelUnits::mm; rmin[1] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[1] = r0 + 28.5*GeoModelKernelUnits::mm; + zplane[2] = 28.*GeoModelKernelUnits::mm; rmin[2] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[2] = r0 + 40.5*GeoModelKernelUnits::mm; + zplane[3] = 48.*GeoModelKernelUnits::mm; rmin[3] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.5*GeoModelKernelUnits::mm; + zplane[4] = 48.*GeoModelKernelUnits::mm; rmin[4] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[4] = r0 + 28.5*GeoModelKernelUnits::mm; + zplane[5] = 53.*GeoModelKernelUnits::mm; rmin[5] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[5] = r0 + 28.5*GeoModelKernelUnits::mm; } else if(id == "BackMiddleRing"){ - double r0 = 699.*CLHEP::mm-2.5*CLHEP::mm; // RMiddle radius of the ring + double r0 = 699.*GeoModelKernelUnits::mm-2.5*GeoModelKernelUnits::mm; // RMiddle radius of the ring zplane.resize(4); rmin.resize(4); rmax.resize(4); - zplane[0] = 0. *CLHEP::mm; rmin[0] = r0 - 57.*CLHEP::mm; rmax[0] = r0 + 57.*CLHEP::mm; - zplane[1] = 21. *CLHEP::mm; rmin[1] = r0 - 57.*CLHEP::mm; rmax[1] = r0 + 57.*CLHEP::mm; - zplane[2] = 21. *CLHEP::mm; rmin[2] = r0 - 40.*CLHEP::mm; rmax[2] = r0 + 40.*CLHEP::mm; - zplane[3] = 52.5*CLHEP::mm; rmin[3] = r0 - 40.*CLHEP::mm; rmax[3] = r0 + 40.*CLHEP::mm; + zplane[0] = 0. *GeoModelKernelUnits::mm; rmin[0] = r0 - 57.*GeoModelKernelUnits::mm; rmax[0] = r0 + 57.*GeoModelKernelUnits::mm; + zplane[1] = 21. *GeoModelKernelUnits::mm; rmin[1] = r0 - 57.*GeoModelKernelUnits::mm; rmax[1] = r0 + 57.*GeoModelKernelUnits::mm; + zplane[2] = 21. *GeoModelKernelUnits::mm; rmin[2] = r0 - 40.*GeoModelKernelUnits::mm; rmax[2] = r0 + 40.*GeoModelKernelUnits::mm; + zplane[3] = 52.5*GeoModelKernelUnits::mm; rmin[3] = r0 - 40.*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.*GeoModelKernelUnits::mm; } else if(id == "BackMiddleRing::LowerHole"){ - double r0 = 699.*CLHEP::mm-2.5*CLHEP::mm; // RMiddle radius of the ring + double r0 = 699.*GeoModelKernelUnits::mm-2.5*GeoModelKernelUnits::mm; // RMiddle radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 16.5*CLHEP::mm; rmin[0] = r0 - 28.3*CLHEP::mm; rmax[0] = r0 - 8.*CLHEP::mm; - zplane[1] = 21. *CLHEP::mm; rmin[1] = r0 - 28.3*CLHEP::mm; rmax[1] = r0 - 8.*CLHEP::mm; - zplane[2] = 21. *CLHEP::mm; rmin[2] = r0 - 40. *CLHEP::mm; rmax[2] = r0 - 8.*CLHEP::mm; - zplane[3] = 42. *CLHEP::mm; rmin[3] = r0 - 40. *CLHEP::mm; rmax[3] = r0 - 8.*CLHEP::mm; - zplane[4] = 42. *CLHEP::mm; rmin[4] = r0 - 28.3*CLHEP::mm; rmax[4] = r0 - 8.*CLHEP::mm; -// zplane[5] = 56.5*CLHEP::mm; rmin[5] = r0 - 28.3*CLHEP::mm; rmax[5] = r0 - 8.*CLHEP::mm; - zplane[5] = 46.5*CLHEP::mm; rmin[5] = r0 - 28.3*CLHEP::mm; rmax[5] = r0 - 8.*CLHEP::mm; + zplane[0] = 16.5*GeoModelKernelUnits::mm; rmin[0] = r0 - 28.3*GeoModelKernelUnits::mm; rmax[0] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[1] = 21. *GeoModelKernelUnits::mm; rmin[1] = r0 - 28.3*GeoModelKernelUnits::mm; rmax[1] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[2] = 21. *GeoModelKernelUnits::mm; rmin[2] = r0 - 40. *GeoModelKernelUnits::mm; rmax[2] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[3] = 42. *GeoModelKernelUnits::mm; rmin[3] = r0 - 40. *GeoModelKernelUnits::mm; rmax[3] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[4] = 42. *GeoModelKernelUnits::mm; rmin[4] = r0 - 28.3*GeoModelKernelUnits::mm; rmax[4] = r0 - 8.*GeoModelKernelUnits::mm; +// zplane[5] = 56.5*GeoModelKernelUnits::mm; rmin[5] = r0 - 28.3*GeoModelKernelUnits::mm; rmax[5] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[5] = 46.5*GeoModelKernelUnits::mm; rmin[5] = r0 - 28.3*GeoModelKernelUnits::mm; rmax[5] = r0 - 8.*GeoModelKernelUnits::mm; } else if(id == "BackMiddleRing::LowerGTen"){ - double r0 = 699.*CLHEP::mm-2.5*CLHEP::mm; // RMiddle radius of the ring + double r0 = 699.*GeoModelKernelUnits::mm-2.5*GeoModelKernelUnits::mm; // RMiddle radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 16.5*CLHEP::mm; rmin[0] = r0 - 28.*CLHEP::mm; rmax[0] = r0 - 8.*CLHEP::mm; - zplane[1] = 21.5*CLHEP::mm; rmin[1] = r0 - 28.*CLHEP::mm; rmax[1] = r0 - 8.*CLHEP::mm; - zplane[2] = 21.5*CLHEP::mm; rmin[2] = r0 - 40.*CLHEP::mm; rmax[2] = r0 - 8.*CLHEP::mm; - zplane[3] = 41.5*CLHEP::mm; rmin[3] = r0 - 40.*CLHEP::mm; rmax[3] = r0 - 8.*CLHEP::mm; - zplane[4] = 41.5*CLHEP::mm; rmin[4] = r0 - 28.*CLHEP::mm; rmax[4] = r0 - 8.*CLHEP::mm; - zplane[5] = 46.5*CLHEP::mm; rmin[5] = r0 - 28.*CLHEP::mm; rmax[5] = r0 - 8.*CLHEP::mm; + zplane[0] = 16.5*GeoModelKernelUnits::mm; rmin[0] = r0 - 28.*GeoModelKernelUnits::mm; rmax[0] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[1] = 21.5*GeoModelKernelUnits::mm; rmin[1] = r0 - 28.*GeoModelKernelUnits::mm; rmax[1] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[2] = 21.5*GeoModelKernelUnits::mm; rmin[2] = r0 - 40.*GeoModelKernelUnits::mm; rmax[2] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[3] = 41.5*GeoModelKernelUnits::mm; rmin[3] = r0 - 40.*GeoModelKernelUnits::mm; rmax[3] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[4] = 41.5*GeoModelKernelUnits::mm; rmin[4] = r0 - 28.*GeoModelKernelUnits::mm; rmax[4] = r0 - 8.*GeoModelKernelUnits::mm; + zplane[5] = 46.5*GeoModelKernelUnits::mm; rmin[5] = r0 - 28.*GeoModelKernelUnits::mm; rmax[5] = r0 - 8.*GeoModelKernelUnits::mm; } else if(id == "BackMiddleRing::UpperHole"){ - double r0 = 699.*CLHEP::mm-2.5*CLHEP::mm; // RMiddle radius of the ring + double r0 = 699.*GeoModelKernelUnits::mm-2.5*GeoModelKernelUnits::mm; // RMiddle radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 16.5*CLHEP::mm; rmin[0] = r0 + 8.*CLHEP::mm; rmax[0] = r0 + 28.3*CLHEP::mm; - zplane[1] = 21. *CLHEP::mm; rmin[1] = r0 + 8.*CLHEP::mm; rmax[1] = r0 + 28.3*CLHEP::mm; - zplane[2] = 21. *CLHEP::mm; rmin[2] = r0 + 8.*CLHEP::mm; rmax[2] = r0 + 40. *CLHEP::mm; - zplane[3] = 42. *CLHEP::mm; rmin[3] = r0 + 8.*CLHEP::mm; rmax[3] = r0 + 40. *CLHEP::mm; - zplane[4] = 42. *CLHEP::mm; rmin[4] = r0 + 8.*CLHEP::mm; rmax[4] = r0 + 28.3*CLHEP::mm; - zplane[5] = 46.5*CLHEP::mm; rmin[5] = r0 + 8.*CLHEP::mm; rmax[5] = r0 + 28.3*CLHEP::mm; + zplane[0] = 16.5*GeoModelKernelUnits::mm; rmin[0] = r0 + 8.*GeoModelKernelUnits::mm; rmax[0] = r0 + 28.3*GeoModelKernelUnits::mm; + zplane[1] = 21. *GeoModelKernelUnits::mm; rmin[1] = r0 + 8.*GeoModelKernelUnits::mm; rmax[1] = r0 + 28.3*GeoModelKernelUnits::mm; + zplane[2] = 21. *GeoModelKernelUnits::mm; rmin[2] = r0 + 8.*GeoModelKernelUnits::mm; rmax[2] = r0 + 40. *GeoModelKernelUnits::mm; + zplane[3] = 42. *GeoModelKernelUnits::mm; rmin[3] = r0 + 8.*GeoModelKernelUnits::mm; rmax[3] = r0 + 40. *GeoModelKernelUnits::mm; + zplane[4] = 42. *GeoModelKernelUnits::mm; rmin[4] = r0 + 8.*GeoModelKernelUnits::mm; rmax[4] = r0 + 28.3*GeoModelKernelUnits::mm; + zplane[5] = 46.5*GeoModelKernelUnits::mm; rmin[5] = r0 + 8.*GeoModelKernelUnits::mm; rmax[5] = r0 + 28.3*GeoModelKernelUnits::mm; } else if(id == "BackMiddleRing::UpperGTen"){ - double r0 = 699.*CLHEP::mm-2.5*CLHEP::mm; // RMiddle radius of the ring + double r0 = 699.*GeoModelKernelUnits::mm-2.5*GeoModelKernelUnits::mm; // RMiddle radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 16.5*CLHEP::mm; rmin[0] = r0 + 8.*CLHEP::mm; rmax[0] = r0 + 28.*CLHEP::mm; - zplane[1] = 21.5*CLHEP::mm; rmin[1] = r0 + 8.*CLHEP::mm; rmax[1] = r0 + 28.*CLHEP::mm; - zplane[2] = 21.5*CLHEP::mm; rmin[2] = r0 + 8.*CLHEP::mm; rmax[2] = r0 + 40.*CLHEP::mm; - zplane[3] = 41.5*CLHEP::mm; rmin[3] = r0 + 8.*CLHEP::mm; rmax[3] = r0 + 40.*CLHEP::mm; - zplane[4] = 41.5*CLHEP::mm; rmin[4] = r0 + 8.*CLHEP::mm; rmax[4] = r0 + 28.*CLHEP::mm; - zplane[5] = 46.5*CLHEP::mm; rmin[5] = r0 + 8.*CLHEP::mm; rmax[5] = r0 + 28.*CLHEP::mm; + zplane[0] = 16.5*GeoModelKernelUnits::mm; rmin[0] = r0 + 8.*GeoModelKernelUnits::mm; rmax[0] = r0 + 28.*GeoModelKernelUnits::mm; + zplane[1] = 21.5*GeoModelKernelUnits::mm; rmin[1] = r0 + 8.*GeoModelKernelUnits::mm; rmax[1] = r0 + 28.*GeoModelKernelUnits::mm; + zplane[2] = 21.5*GeoModelKernelUnits::mm; rmin[2] = r0 + 8.*GeoModelKernelUnits::mm; rmax[2] = r0 + 40.*GeoModelKernelUnits::mm; + zplane[3] = 41.5*GeoModelKernelUnits::mm; rmin[3] = r0 + 8.*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.*GeoModelKernelUnits::mm; + zplane[4] = 41.5*GeoModelKernelUnits::mm; rmin[4] = r0 + 8.*GeoModelKernelUnits::mm; rmax[4] = r0 + 28.*GeoModelKernelUnits::mm; + zplane[5] = 46.5*GeoModelKernelUnits::mm; rmin[5] = r0 + 8.*GeoModelKernelUnits::mm; rmax[5] = r0 + 28.*GeoModelKernelUnits::mm; } else if(id == "BackInnerRing"){ - double r0 =357.5*CLHEP::mm-1.*CLHEP::mm; // RInner = reference radius of the ring + double r0 =357.5*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; // RInner = reference radius of the ring zplane.resize(4); rmin.resize(4); rmax.resize(4); - zplane[0] = 0. *CLHEP::mm; rmin[0] = r0 - 22.5*CLHEP::mm; rmax[0] = r0 + 53.5*CLHEP::mm; - zplane[1] = 22.5*CLHEP::mm; rmin[1] = r0 - 22.5*CLHEP::mm; rmax[1] = r0 + 53.5*CLHEP::mm; - zplane[2] = 22.5*CLHEP::mm; rmin[2] = r0 - 24.5*CLHEP::mm; rmax[2] = r0 + 40.5*CLHEP::mm; - zplane[3] = 54. *CLHEP::mm; rmin[3] = r0 - 24.5*CLHEP::mm; rmax[3] = r0 + 40.5*CLHEP::mm; + zplane[0] = 0. *GeoModelKernelUnits::mm; rmin[0] = r0 - 22.5*GeoModelKernelUnits::mm; rmax[0] = r0 + 53.5*GeoModelKernelUnits::mm; + zplane[1] = 22.5*GeoModelKernelUnits::mm; rmin[1] = r0 - 22.5*GeoModelKernelUnits::mm; rmax[1] = r0 + 53.5*GeoModelKernelUnits::mm; + zplane[2] = 22.5*GeoModelKernelUnits::mm; rmin[2] = r0 - 24.5*GeoModelKernelUnits::mm; rmax[2] = r0 + 40.5*GeoModelKernelUnits::mm; + zplane[3] = 54. *GeoModelKernelUnits::mm; rmin[3] = r0 - 24.5*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.5*GeoModelKernelUnits::mm; } else if(id == "BackInnerRing::Hole"){ - double r0 =357.5*CLHEP::mm-1.*CLHEP::mm; // RInner = reference radius of the ring + double r0 =357.5*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; // RInner = reference radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 18. *CLHEP::mm; rmin[0] = r0 + 6.5*CLHEP::mm; rmax[0] = r0 + 29.5*CLHEP::mm; - zplane[1] = 22.5*CLHEP::mm; rmin[1] = r0 + 6.5*CLHEP::mm; rmax[1] = r0 + 29.5*CLHEP::mm; - zplane[2] = 22.5*CLHEP::mm; rmin[2] = r0 + 6.5*CLHEP::mm; rmax[2] = r0 + 40.5*CLHEP::mm; - zplane[3] = 43.5*CLHEP::mm; rmin[3] = r0 + 6.5*CLHEP::mm; rmax[3] = r0 + 40.5*CLHEP::mm; - zplane[4] = 43.5*CLHEP::mm; rmin[4] = r0 + 6.5*CLHEP::mm; rmax[4] = r0 + 29.5*CLHEP::mm; - zplane[5] = 48. *CLHEP::mm; rmin[5] = r0 + 6.5*CLHEP::mm; rmax[5] = r0 + 29.5*CLHEP::mm; + zplane[0] = 18. *GeoModelKernelUnits::mm; rmin[0] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[0] = r0 + 29.5*GeoModelKernelUnits::mm; + zplane[1] = 22.5*GeoModelKernelUnits::mm; rmin[1] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[1] = r0 + 29.5*GeoModelKernelUnits::mm; + zplane[2] = 22.5*GeoModelKernelUnits::mm; rmin[2] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[2] = r0 + 40.5*GeoModelKernelUnits::mm; + zplane[3] = 43.5*GeoModelKernelUnits::mm; rmin[3] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.5*GeoModelKernelUnits::mm; + zplane[4] = 43.5*GeoModelKernelUnits::mm; rmin[4] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[4] = r0 + 29.5*GeoModelKernelUnits::mm; + zplane[5] = 48. *GeoModelKernelUnits::mm; rmin[5] = r0 + 6.5*GeoModelKernelUnits::mm; rmax[5] = r0 + 29.5*GeoModelKernelUnits::mm; } else if(id == "BackInnerRing::GTen"){ - double r0 =357.5*CLHEP::mm-1.*CLHEP::mm; // RInner = reference radius of the ring + double r0 =357.5*GeoModelKernelUnits::mm-1.*GeoModelKernelUnits::mm; // RInner = reference radius of the ring zplane.resize(6); rmin.resize(6); rmax.resize(6); - zplane[0] = 18.*CLHEP::mm; rmin[0] = r0 + 8.5*CLHEP::mm; rmax[0] = r0 + 28.5*CLHEP::mm; - zplane[1] = 23.*CLHEP::mm; rmin[1] = r0 + 8.5*CLHEP::mm; rmax[1] = r0 + 28.5*CLHEP::mm; - zplane[2] = 23.*CLHEP::mm; rmin[2] = r0 + 8.5*CLHEP::mm; rmax[2] = r0 + 40.5*CLHEP::mm; - zplane[3] = 43.*CLHEP::mm; rmin[3] = r0 + 8.5*CLHEP::mm; rmax[3] = r0 + 40.5*CLHEP::mm; - zplane[4] = 43.*CLHEP::mm; rmin[4] = r0 + 8.5*CLHEP::mm; rmax[4] = r0 + 28.5*CLHEP::mm; - zplane[5] = 48.*CLHEP::mm; rmin[5] = r0 + 8.5*CLHEP::mm; rmax[5] = r0 + 28.5*CLHEP::mm; + zplane[0] = 18.*GeoModelKernelUnits::mm; rmin[0] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[0] = r0 + 28.5*GeoModelKernelUnits::mm; + zplane[1] = 23.*GeoModelKernelUnits::mm; rmin[1] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[1] = r0 + 28.5*GeoModelKernelUnits::mm; + zplane[2] = 23.*GeoModelKernelUnits::mm; rmin[2] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[2] = r0 + 40.5*GeoModelKernelUnits::mm; + zplane[3] = 43.*GeoModelKernelUnits::mm; rmin[3] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[3] = r0 + 40.5*GeoModelKernelUnits::mm; + zplane[4] = 43.*GeoModelKernelUnits::mm; rmin[4] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[4] = r0 + 28.5*GeoModelKernelUnits::mm; + zplane[5] = 48.*GeoModelKernelUnits::mm; rmin[5] = r0 + 8.5*GeoModelKernelUnits::mm; rmax[5] = r0 + 28.5*GeoModelKernelUnits::mm; } else if(id == "FrontOuterRing"){ - double r0 = 1961.*CLHEP::mm-7.*CLHEP::mm; // ROuter = inner radius of the outer ring + double r0 = 1961.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; // ROuter = inner radius of the outer ring zplane.resize(7); rmin.resize(7); rmax.resize(7); - zplane[0] = 0. *CLHEP::mm; rmin[0] = r0 + 0.*CLHEP::mm; rmax[0] = r0 + 111.*CLHEP::mm; - zplane[1] = 5. *CLHEP::mm; rmin[1] = r0 + 0.*CLHEP::mm; rmax[1] = r0 + 116.*CLHEP::mm; - zplane[2] = 20. *CLHEP::mm; rmin[2] = r0 + 0.*CLHEP::mm; rmax[2] = r0 + 116.*CLHEP::mm; - zplane[3] = 20. *CLHEP::mm; rmin[3] = r0 + 62.*CLHEP::mm; rmax[3] = r0 + 116.*CLHEP::mm; - zplane[4] = 63.3*CLHEP::mm; rmin[4] = r0 + 62.*CLHEP::mm; rmax[4] = r0 + 116.*CLHEP::mm; - zplane[5] = 115.2*CLHEP::mm; rmin[5] = r0 + 90.*CLHEP::mm; rmax[5] = r0 + 116.*CLHEP::mm; - zplane[6] = 144. *CLHEP::mm; rmin[6] = r0 + 90.*CLHEP::mm; rmax[6] = r0 + 116.*CLHEP::mm; + zplane[0] = 0. *GeoModelKernelUnits::mm; rmin[0] = r0 + 0.*GeoModelKernelUnits::mm; rmax[0] = r0 + 111.*GeoModelKernelUnits::mm; + zplane[1] = 5. *GeoModelKernelUnits::mm; rmin[1] = r0 + 0.*GeoModelKernelUnits::mm; rmax[1] = r0 + 116.*GeoModelKernelUnits::mm; + zplane[2] = 20. *GeoModelKernelUnits::mm; rmin[2] = r0 + 0.*GeoModelKernelUnits::mm; rmax[2] = r0 + 116.*GeoModelKernelUnits::mm; + zplane[3] = 20. *GeoModelKernelUnits::mm; rmin[3] = r0 + 62.*GeoModelKernelUnits::mm; rmax[3] = r0 + 116.*GeoModelKernelUnits::mm; + zplane[4] = 63.3*GeoModelKernelUnits::mm; rmin[4] = r0 + 62.*GeoModelKernelUnits::mm; rmax[4] = r0 + 116.*GeoModelKernelUnits::mm; + zplane[5] = 115.2*GeoModelKernelUnits::mm; rmin[5] = r0 + 90.*GeoModelKernelUnits::mm; rmax[5] = r0 + 116.*GeoModelKernelUnits::mm; + zplane[6] = 144. *GeoModelKernelUnits::mm; rmin[6] = r0 + 90.*GeoModelKernelUnits::mm; rmax[6] = r0 + 116.*GeoModelKernelUnits::mm; } else if(id == "FrontOuterLongBar"){ zplane.resize(4); rmin.resize(4); rmax.resize(4); - zplane[0] = 0.*CLHEP::mm; rmin[0] = 1969.7*CLHEP::mm; rmax[0] = 2016.*CLHEP::mm; - zplane[1] = 1.*CLHEP::mm; rmin[1] = 1969.7*CLHEP::mm; rmax[1] = 2016.*CLHEP::mm; - zplane[2] = 1.*CLHEP::mm; rmin[2] = 652. *CLHEP::mm; rmax[2] = 2016.*CLHEP::mm; - zplane[3] = 21.*CLHEP::mm; rmin[3] = 652. *CLHEP::mm; rmax[3] = 2016.*CLHEP::mm; + zplane[0] = 0.*GeoModelKernelUnits::mm; rmin[0] = 1969.7*GeoModelKernelUnits::mm; rmax[0] = 2016.*GeoModelKernelUnits::mm; + zplane[1] = 1.*GeoModelKernelUnits::mm; rmin[1] = 1969.7*GeoModelKernelUnits::mm; rmax[1] = 2016.*GeoModelKernelUnits::mm; + zplane[2] = 1.*GeoModelKernelUnits::mm; rmin[2] = 652. *GeoModelKernelUnits::mm; rmax[2] = 2016.*GeoModelKernelUnits::mm; + zplane[3] = 21.*GeoModelKernelUnits::mm; rmin[3] = 652. *GeoModelKernelUnits::mm; rmax[3] = 2016.*GeoModelKernelUnits::mm; //2020-46.3 ; RMiddle+40.//RMiddle+8+(lengthofbar=1398) } else if(id == "BackOuterRing"){ - double r0 = 1961.*CLHEP::mm-7.*CLHEP::mm; + double r0 = 1961.*GeoModelKernelUnits::mm-7.*GeoModelKernelUnits::mm; zplane.resize(7); rmin.resize(7); rmax.resize(7); - zplane[0] = 0.*CLHEP::mm; rmin[0] = r0 + 0.*CLHEP::mm; rmax[0] = r0 + 111.*CLHEP::mm; - zplane[1] = 5.*CLHEP::mm; rmin[1] = r0 + 0.*CLHEP::mm; rmax[1] = r0 + 116.*CLHEP::mm; - zplane[2] = 15.*CLHEP::mm; rmin[2] = r0 + 0.*CLHEP::mm; rmax[2] = r0 + 116.*CLHEP::mm; - zplane[3] = 15.*CLHEP::mm; rmin[3] = r0 + 62.*CLHEP::mm; rmax[3] = r0 + 116.*CLHEP::mm; - zplane[4] = 41.*CLHEP::mm; rmin[4] = r0 + 62.*CLHEP::mm; rmax[4] = r0 + 116.*CLHEP::mm; - zplane[5] = 41.*CLHEP::mm; rmin[5] = r0 + 90.*CLHEP::mm; rmax[5] = r0 + 116.*CLHEP::mm; - zplane[6] = 139.*CLHEP::mm; rmin[6] = r0 + 90.*CLHEP::mm; rmax[6] = r0 + 116.*CLHEP::mm; + zplane[0] = 0.*GeoModelKernelUnits::mm; rmin[0] = r0 + 0.*GeoModelKernelUnits::mm; rmax[0] = r0 + 111.*GeoModelKernelUnits::mm; + zplane[1] = 5.*GeoModelKernelUnits::mm; rmin[1] = r0 + 0.*GeoModelKernelUnits::mm; rmax[1] = r0 + 116.*GeoModelKernelUnits::mm; + zplane[2] = 15.*GeoModelKernelUnits::mm; rmin[2] = r0 + 0.*GeoModelKernelUnits::mm; rmax[2] = r0 + 116.*GeoModelKernelUnits::mm; + zplane[3] = 15.*GeoModelKernelUnits::mm; rmin[3] = r0 + 62.*GeoModelKernelUnits::mm; rmax[3] = r0 + 116.*GeoModelKernelUnits::mm; + zplane[4] = 41.*GeoModelKernelUnits::mm; rmin[4] = r0 + 62.*GeoModelKernelUnits::mm; rmax[4] = r0 + 116.*GeoModelKernelUnits::mm; + zplane[5] = 41.*GeoModelKernelUnits::mm; rmin[5] = r0 + 90.*GeoModelKernelUnits::mm; rmax[5] = r0 + 116.*GeoModelKernelUnits::mm; + zplane[6] = 139.*GeoModelKernelUnits::mm; rmin[6] = r0 + 90.*GeoModelKernelUnits::mm; rmax[6] = r0 + 116.*GeoModelKernelUnits::mm; } else if(id == "BackOuterLongBar"){ zplane.resize(4); rmin.resize(4); rmax.resize(4); - zplane[0] = 0.*CLHEP::mm; rmin[0] = 1969.7*CLHEP::mm; rmax[0] = 2016.*CLHEP::mm; - zplane[1] = 1.*CLHEP::mm; rmin[1] = 1969.7*CLHEP::mm; rmax[1] = 2016.*CLHEP::mm; - zplane[2] = 1.*CLHEP::mm; rmin[2] = 736.5*CLHEP::mm; rmax[2] = 2016.*CLHEP::mm; - zplane[3] = 21.*CLHEP::mm; rmin[3] = 736.5*CLHEP::mm; rmax[3] = 2016.*CLHEP::mm; + zplane[0] = 0.*GeoModelKernelUnits::mm; rmin[0] = 1969.7*GeoModelKernelUnits::mm; rmax[0] = 2016.*GeoModelKernelUnits::mm; + zplane[1] = 1.*GeoModelKernelUnits::mm; rmin[1] = 1969.7*GeoModelKernelUnits::mm; rmax[1] = 2016.*GeoModelKernelUnits::mm; + zplane[2] = 1.*GeoModelKernelUnits::mm; rmin[2] = 736.5*GeoModelKernelUnits::mm; rmax[2] = 2016.*GeoModelKernelUnits::mm; + zplane[3] = 21.*GeoModelKernelUnits::mm; rmin[3] = 736.5*GeoModelKernelUnits::mm; rmax[3] = 2016.*GeoModelKernelUnits::mm; } else { throw std::runtime_error("EMECSupportConstruction: wrong Pcone id"); } @@ -706,14 +706,14 @@ void EMECSupportConstruction::put_front_outer_barettes(GeoPhysVol *motherPhysica GeoTubs *shapeFOB = new GeoTubs(rminFOB, rmaxFOB, dzFOB, m_PhiStart, m_PhiSize); GeoLogVol *logicalFOB = new GeoLogVol(name, shapeFOB, m_LAr); GeoPhysVol *physFOB = new GeoPhysVol(logicalFOB); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(zposFOB))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(zposFOB))); motherPhysical->add(physFOB); const int number_of_modules = 8; - const double moduldfi = CLHEP::twopi / number_of_modules; + const double moduldfi = GeoModelKernelUnits::twopi / number_of_modules; const int nofabs = (*m_DB_EmecWheelParameters)[1]->getInt("NABS"); const int nofdiv = nofabs / number_of_modules; - const double dfi = CLHEP::twopi / nofabs; + const double dfi = GeoModelKernelUnits::twopi / nofabs; //define a fi section including one absorber and electrode name = m_BaseName + "FrontOuterBarrette::Module::Phidiv"; GeoTubs *shapeFOBMP = new GeoTubs(rminFOB, rmaxFOB, dzFOB, -dfi/4., dfi); @@ -731,7 +731,7 @@ void EMECSupportConstruction::put_front_outer_barettes(GeoPhysVol *motherPhysica GeoBox *shapeFOBA = new GeoBox(dx, dy, dzFOB); GeoLogVol *logicalFOBA = new GeoLogVol(name, shapeFOBA, m_G10FeOuter); GeoPhysVol *physFOBA = new GeoPhysVol(logicalFOBA); - physFOBMP->add(new GeoTransform(HepGeom::TranslateX3D(r0A))); + physFOBMP->add(new GeoTransform(GeoTrf::TranslateX3D(r0A))); physFOBMP->add(physFOBA); name = m_BaseName + "FrontOuterBarrette::Ele"; // piece of electrode @@ -745,7 +745,7 @@ void EMECSupportConstruction::put_front_outer_barettes(GeoPhysVol *motherPhysica GeoBox *shapeFOBE = new GeoBox(dx, dy, dzFOB); GeoLogVol *logicalFOBE = new GeoLogVol(name, shapeFOBE, m_Kapton_Cu); GeoPhysVol *physFOBE = new GeoPhysVol(logicalFOBE); - physFOBMP->add(new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotationZ(dfi/2.), CLHEP::Hep3Vector(x0,y0,0.)))); + physFOBMP->add(new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translate3D(x0,y0,0.)*GeoTrf::RotateZ3D(dfi/2.)))); physFOBMP->add(physFOBE); if(m_isModule){ @@ -753,7 +753,7 @@ void EMECSupportConstruction::put_front_outer_barettes(GeoPhysVol *motherPhysica for(int i = 0; i < nofdiv - 1; ++ i){ double fi = m_PhiStart + dfi/2. + i * dfi; physFOB->add(new GeoIdentifierTag(i)); - physFOB->add(new GeoTransform(HepGeom::RotateZ3D(fi))); + physFOB->add(new GeoTransform(GeoTrf::RotateZ3D(fi))); physFOB->add(physFOBMP); } name = m_BaseName + "FrontOuterBarrette::Abs"; @@ -761,7 +761,7 @@ void EMECSupportConstruction::put_front_outer_barettes(GeoPhysVol *motherPhysica x0 = r0A*cos(fi); y0 = r0A*sin(fi); physFOB->add(new GeoIdentifierTag(nofdiv-1)); - physFOB->add(new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotationZ(fi), CLHEP::Hep3Vector(x0,y0,0.)))); + physFOB->add(new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translate3D(x0,y0,0.)*GeoTrf::RotateZ3D(fi)))); physFOB->add(physFOBA); } else { // in case one wants to build the whole wheel: @@ -775,7 +775,7 @@ void EMECSupportConstruction::put_front_outer_barettes(GeoPhysVol *motherPhysica for(int i = 0; i < nofdiv; ++ i){ double fi = i * dfi; physFOBM->add(new GeoIdentifierTag(i)); - physFOBM->add(new GeoTransform(HepGeom::RotateZ3D(fi))); + physFOBM->add(new GeoTransform(GeoTrf::RotateZ3D(fi))); physFOBM->add(physFOBMP); } //position modules into Barrette mother to create the full wheel @@ -783,7 +783,7 @@ void EMECSupportConstruction::put_front_outer_barettes(GeoPhysVol *motherPhysica for(int i = 0; i < number_of_modules; ++ i){ double fi = dfi/2.+ i * moduldfi; physFOB->add(new GeoIdentifierTag(i)); - physFOB->add(new GeoTransform(HepGeom::RotateZ3D(fi))); + physFOB->add(new GeoTransform(GeoTrf::RotateZ3D(fi))); physFOB->add(physFOBM); } } @@ -804,14 +804,14 @@ void EMECSupportConstruction::put_front_inner_barettes(GeoPhysVol *motherPhysica GeoTubs *shapeFIB = new GeoTubs(rminFIB, rmaxFIB, dzFIB, m_PhiStart, m_PhiSize); GeoLogVol *logicalFIB = new GeoLogVol(name, shapeFIB, m_LAr); GeoPhysVol *physFIB = new GeoPhysVol(logicalFIB); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(zposFIB))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(zposFIB))); motherPhysical->add(physFIB); const int number_of_modules = 8; - const double moduldfi = CLHEP::twopi / number_of_modules; + const double moduldfi = GeoModelKernelUnits::twopi / number_of_modules; const int nofabs = (*m_DB_EmecWheelParameters)[0]->getInt("NABS"); const int nofdiv = nofabs / number_of_modules; - const double dfi = CLHEP::twopi / nofabs; + const double dfi = GeoModelKernelUnits::twopi / nofabs; name = m_BaseName + "FrontInnerBarrette::Module::Phidiv"; GeoTubs *shapeFIBMP = new GeoTubs(rminFIB,rmaxFIB,dzFIB, -dfi/4., dfi); @@ -828,7 +828,7 @@ void EMECSupportConstruction::put_front_inner_barettes(GeoPhysVol *motherPhysica GeoBox *shapeFIBA = new GeoBox(dx, dy, dzFIB); GeoLogVol *logicalFIBA = new GeoLogVol(name, shapeFIBA, m_G10FeInner); GeoPhysVol *physFIBA = new GeoPhysVol(logicalFIBA); - physFIBMP->add(new GeoTransform(HepGeom::TranslateX3D(r0A))); + physFIBMP->add(new GeoTransform(GeoTrf::TranslateX3D(r0A))); physFIBMP->add(physFIBA); name = m_BaseName + "FrontInnerBarrette::Ele"; // piece of electrode @@ -842,7 +842,7 @@ void EMECSupportConstruction::put_front_inner_barettes(GeoPhysVol *motherPhysica GeoBox *shapeFIBE = new GeoBox(dx, dy, dzFIB); GeoLogVol *logicalFIBE = new GeoLogVol(name, shapeFIBE, m_Kapton_Cu); GeoPhysVol *physFIBE = new GeoPhysVol(logicalFIBE); - physFIBMP->add(new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotationZ(dfi/2.), CLHEP::Hep3Vector(x0,y0,0.)))); + physFIBMP->add(new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translate3D(x0,y0,0.)*GeoTrf::RotateZ3D(dfi/2.)))); physFIBMP->add(physFIBE); if(m_isModule){ @@ -850,7 +850,7 @@ void EMECSupportConstruction::put_front_inner_barettes(GeoPhysVol *motherPhysica for(int i = 0; i < nofdiv - 1; ++ i){ double fi = m_PhiStart + dfi/2. + i * dfi; physFIB->add(new GeoIdentifierTag(i)); - physFIB->add(new GeoTransform(HepGeom::RotateZ3D(fi))); + physFIB->add(new GeoTransform(GeoTrf::RotateZ3D(fi))); physFIB->add(physFIBMP); } name = m_BaseName + "FrontInnerBarrette::Abs"; @@ -858,7 +858,7 @@ void EMECSupportConstruction::put_front_inner_barettes(GeoPhysVol *motherPhysica x0 = r0A * cos(fi); y0 = r0A * sin(fi); physFIB->add(new GeoIdentifierTag(nofdiv-1)); - physFIB->add(new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotationZ(fi), CLHEP::Hep3Vector(x0,y0,0.)))); + physFIB->add(new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translate3D(x0,y0,0.)*GeoTrf::RotateZ3D(fi)))); physFIB->add(physFIBA); } else { // in case one wants to build the whole wheel: @@ -871,7 +871,7 @@ void EMECSupportConstruction::put_front_inner_barettes(GeoPhysVol *motherPhysica for(int i = 0; i < nofdiv; ++ i){ double fi = i * dfi; physFIBM->add(new GeoIdentifierTag(i)); - physFIBM->add(new GeoTransform(HepGeom::RotateZ3D(fi))); + physFIBM->add(new GeoTransform(GeoTrf::RotateZ3D(fi))); physFIBM->add(physFIBMP); } //position modules into Barrette mother to create the full wheel @@ -879,7 +879,7 @@ void EMECSupportConstruction::put_front_inner_barettes(GeoPhysVol *motherPhysica for(int i = 0; i < number_of_modules; ++ i){ double fi = dfi/2.+ i * moduldfi; physFIB->add(new GeoIdentifierTag(i)); - physFIB->add(new GeoTransform(HepGeom::RotateZ3D(fi))); + physFIB->add(new GeoTransform(GeoTrf::RotateZ3D(fi))); physFIB->add(physFIBM); } } @@ -901,14 +901,14 @@ void EMECSupportConstruction::put_back_outer_barettes(GeoPhysVol *motherPhysical GeoTubs *shapeBOB = new GeoTubs(rminBOB, rmaxBOB, dzBOB, m_PhiStart, m_PhiSize); GeoLogVol *logicalBOB = new GeoLogVol(name, shapeBOB, m_LAr); GeoPhysVol *physBOB = new GeoPhysVol(logicalBOB); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(zposBOB))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(zposBOB))); motherPhysical->add(physBOB); const int number_of_modules = 8; - const double moduldfi = CLHEP::twopi / number_of_modules; + const double moduldfi = GeoModelKernelUnits::twopi / number_of_modules; int nofabs = (*m_DB_EmecWheelParameters)[1]->getInt("NABS"); int nofdiv = nofabs / number_of_modules; - double dfi = CLHEP::twopi / nofabs; + double dfi = GeoModelKernelUnits::twopi / nofabs; name = m_BaseName + "BackOuterBarrette::Module::Phidiv"; GeoTubs *shapeBOBMP = new GeoTubs(rminBOB, rmaxBOB, dzBOB, -dfi/4., dfi); @@ -925,7 +925,7 @@ void EMECSupportConstruction::put_back_outer_barettes(GeoPhysVol *motherPhysical GeoBox *shapeBOBA = new GeoBox(dx, dy, dzBOB); GeoLogVol *logicalBOBA = new GeoLogVol(name, shapeBOBA, m_G10FeOuter); GeoPhysVol *physBOBA = new GeoPhysVol(logicalBOBA); - physBOBMP->add(new GeoTransform(HepGeom::TranslateX3D(r0A))); + physBOBMP->add(new GeoTransform(GeoTrf::TranslateX3D(r0A))); physBOBMP->add(physBOBA); name = m_BaseName + "BackOuterBarrette::Ele"; // piece of electrode @@ -939,7 +939,7 @@ void EMECSupportConstruction::put_back_outer_barettes(GeoPhysVol *motherPhysical GeoBox *shapeBOBE = new GeoBox(dx, dy, dzBOB); GeoLogVol *logicalBOBE = new GeoLogVol(name, shapeBOBE, m_Kapton_Cu); GeoPhysVol *physBOBE = new GeoPhysVol(logicalBOBE); - physBOBMP->add(new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotationZ(dfi/2.), CLHEP::Hep3Vector(x0,y0,0.)))); + physBOBMP->add(new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translate3D(x0,y0,0.)*GeoTrf::RotateZ3D(dfi/2.)))); physBOBMP->add(physBOBE); if(m_isModule){ @@ -948,7 +948,7 @@ void EMECSupportConstruction::put_back_outer_barettes(GeoPhysVol *motherPhysical for(int i = 0; i < nofdiv - 1; ++ i){ double fi = m_PhiStart + dfi/2. + i * dfi; physBOB->add(new GeoIdentifierTag(i)); - physBOB->add(new GeoTransform(HepGeom::RotateZ3D(fi))); + physBOB->add(new GeoTransform(GeoTrf::RotateZ3D(fi))); physBOB->add(physBOBMP); } name = m_BaseName + "BackOuterBarrette::Abs"; @@ -956,7 +956,7 @@ void EMECSupportConstruction::put_back_outer_barettes(GeoPhysVol *motherPhysical x0 = r0A * cos(fi); y0 = r0A * sin(fi); physBOB->add(new GeoIdentifierTag(nofdiv - 1)); - physBOB->add(new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotationZ(fi), CLHEP::Hep3Vector(x0,y0,0.)))); + physBOB->add(new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translate3D(x0,y0,0.)*GeoTrf::RotateZ3D(fi)))); physBOB->add(physBOBA); } else { // in case one wants to build the whole wheel: @@ -970,7 +970,7 @@ void EMECSupportConstruction::put_back_outer_barettes(GeoPhysVol *motherPhysical for(int i = 0; i < nofdiv; ++ i){ double fi = dfi * i; physBOBM->add(new GeoIdentifierTag(i)); - physBOBM->add(new GeoTransform(HepGeom::RotateZ3D(fi))); + physBOBM->add(new GeoTransform(GeoTrf::RotateZ3D(fi))); physBOBM->add(physBOBMP); } //position modules into Barrette mother to create the full wheel @@ -978,7 +978,7 @@ void EMECSupportConstruction::put_back_outer_barettes(GeoPhysVol *motherPhysical for(int i = 0; i < number_of_modules; ++ i){ double fi = dfi/2.+ i * moduldfi; physBOB->add(new GeoIdentifierTag(i)); - physBOB->add(new GeoTransform(HepGeom::RotateZ3D(fi))); + physBOB->add(new GeoTransform(GeoTrf::RotateZ3D(fi))); physBOB->add(physBOBM); } } @@ -992,21 +992,21 @@ void EMECSupportConstruction::put_back_inner_barettes(GeoPhysVol *motherPhysical map_t numbers = getNumbersMap(m_DB_numbers, id); std::string name = m_BaseName + id; - double rminBIB = getNumber(m_DB_tubes, tubes, id, "RMIN", 357.5-1.+40.5); //RInner +40.5// -1.CLHEP::mm for cold + double rminBIB = getNumber(m_DB_tubes, tubes, id, "RMIN", 357.5-1.+40.5); //RInner +40.5// -1.GeoModelKernelUnits::mm for cold double rmaxBIB = getNumber(m_DB_tubes, tubes, id, "RMAX", 699.-2.5-40.); //RMiddle-40 //-2.5mm for cold double dzBIB = getNumber(m_DB_tubes, tubes, id, "DZ", 11. / 2); double zposBIB = getNumber(m_DB_numbers, numbers, "Z0", "PARVALUE", 44.) + dzBIB; GeoTubs *shapeBIB = new GeoTubs(rminBIB, rmaxBIB, dzBIB, m_PhiStart, m_PhiSize); GeoLogVol *logicalBIB = new GeoLogVol(name, shapeBIB, m_LAr); GeoPhysVol *physBIB = new GeoPhysVol(logicalBIB); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(zposBIB))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(zposBIB))); motherPhysical->add(physBIB); const int number_of_modules = 8; - const double moduldfi = CLHEP::twopi / number_of_modules; + const double moduldfi = GeoModelKernelUnits::twopi / number_of_modules; const int nofabs = (*m_DB_EmecWheelParameters)[0]->getInt("NABS"); const int nofdiv = nofabs / number_of_modules; - const double dfi = CLHEP::twopi / nofabs; + const double dfi = GeoModelKernelUnits::twopi / nofabs; name = m_BaseName + "BackInnerBarrette::Module::Phidiv"; GeoTubs *shapeBIBMP = new GeoTubs(rminBIB, rmaxBIB, dzBIB, -dfi/4., dfi); @@ -1025,7 +1025,7 @@ void EMECSupportConstruction::put_back_inner_barettes(GeoPhysVol *motherPhysical GeoBox *shapeBIBA = new GeoBox(dx, dy, dzBIB); GeoLogVol *logicalBIBA = new GeoLogVol(name, shapeBIBA, m_G10FeInner); GeoPhysVol *physBIBA = new GeoPhysVol(logicalBIBA); - physBIBMP->add(new GeoTransform(HepGeom::TranslateX3D(r0A))); + physBIBMP->add(new GeoTransform(GeoTrf::TranslateX3D(r0A))); physBIBMP->add(physBIBA); id = "BackInnerBarrette::Ele"; // piece of electrode @@ -1040,7 +1040,7 @@ void EMECSupportConstruction::put_back_inner_barettes(GeoPhysVol *motherPhysical GeoBox *shapeBIBE = new GeoBox(dx, dy, dzBIB); GeoLogVol *logicalBIBE = new GeoLogVol(name, shapeBIBE, m_Kapton_Cu); GeoPhysVol *physBIBE = new GeoPhysVol(logicalBIBE); - physBIBMP->add(new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotationZ(dfi*0.5), CLHEP::Hep3Vector(x0, y0, 0.)))); + physBIBMP->add(new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translate3D(x0, y0, 0.)*GeoTrf::RotateZ3D(dfi*0.5)))); physBIBMP->add(physBIBE); if(m_isModule){ @@ -1060,7 +1060,7 @@ void EMECSupportConstruction::put_back_inner_barettes(GeoPhysVol *motherPhysical for(int i = 0; i < nofdiv - 1; ++ i){ double fi = m_PhiStart + dfi/2. + i * dfi; physBIB->add(new GeoIdentifierTag(i)); - physBIB->add(new GeoTransform(HepGeom::RotateZ3D(fi))); + physBIB->add(new GeoTransform(GeoTrf::RotateZ3D(fi))); physBIB->add(physBIBMP); } name = m_BaseName + "BackInnerBarrette::Abs"; @@ -1068,7 +1068,7 @@ void EMECSupportConstruction::put_back_inner_barettes(GeoPhysVol *motherPhysical x0 = r0A*cos(fi); y0 = r0A*sin(fi); physBIB->add(new GeoIdentifierTag(nofdiv - 1)); - physBIB->add(new GeoTransform(HepGeom::Transform3D(CLHEP::HepRotationZ(fi),CLHEP::Hep3Vector(x0, y0, 0.)))); + physBIB->add(new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translate3D(x0, y0, 0.)*GeoTrf::RotateZ3D(fi)))); physBIB->add(physBIBA); } else { // in case one wants to build the whole wheel: @@ -1082,7 +1082,7 @@ void EMECSupportConstruction::put_back_inner_barettes(GeoPhysVol *motherPhysical for(int i = 0; i < nofdiv; ++ i){ double fi = dfi * i; physBIBM->add(new GeoIdentifierTag(i)); - physBIBM->add(new GeoTransform(HepGeom::RotateZ3D(fi))); + physBIBM->add(new GeoTransform(GeoTrf::RotateZ3D(fi))); physBIBM->add(physBIBMP); } //position modules into Barrette mother to create the full wheel @@ -1090,7 +1090,7 @@ void EMECSupportConstruction::put_back_inner_barettes(GeoPhysVol *motherPhysical for(int i = 0; i < number_of_modules; ++ i){ double fi = dfi*0.5 + i * moduldfi; physBIB->add(new GeoIdentifierTag(i)); - physBIB->add(new GeoTransform(HepGeom::RotateZ3D(fi))); + physBIB->add(new GeoTransform(GeoTrf::RotateZ3D(fi))); physBIB->add(physBIBM); } } @@ -1101,9 +1101,9 @@ GeoPhysVol* EMECSupportConstruction::outer_envelope(void) const map_t tubes = getMap(m_DB_tubes, "TUBENAME"); std::string id = "OuterTransversalBars"; std::string name = m_BaseName + id; - double rminOTB = getNumber(m_DB_tubes, tubes, id, "RMIN", (2034. + 2.)*CLHEP::mm); - double rmaxOTB = getNumber(m_DB_tubes, tubes, id, "RMAX", rminOTB + 3.*CLHEP::mm); - double dzOTB = getNumber(m_DB_tubes, tubes, id, "DZ", 201.*CLHEP::mm); + double rminOTB = getNumber(m_DB_tubes, tubes, id, "RMIN", (2034. + 2.)*GeoModelKernelUnits::mm); + double rmaxOTB = getNumber(m_DB_tubes, tubes, id, "RMAX", rminOTB + 3.*GeoModelKernelUnits::mm); + double dzOTB = getNumber(m_DB_tubes, tubes, id, "DZ", 201.*GeoModelKernelUnits::mm); GeoTubs* shapeOTB = new GeoTubs(rminOTB, rmaxOTB, dzOTB, m_PhiStart, m_PhiSize); GeoLogVol* logicalOTB = new GeoLogVol(name, shapeOTB, m_Gten); GeoPhysVol* physOTB = new GeoPhysVol(logicalOTB); @@ -1111,16 +1111,16 @@ GeoPhysVol* EMECSupportConstruction::outer_envelope(void) const id = "TopIndexingRing"; name = m_BaseName + id; double rminTIR = getNumber(m_DB_tubes, tubes, id, "RMIN", rmaxOTB); - double rmaxTIR = getNumber(m_DB_tubes, tubes, id, "RMAX", rminTIR + 9.*CLHEP::mm); - double dzTIR = getNumber(m_DB_tubes, tubes, id, "DZ", 10.*CLHEP::mm); + double rmaxTIR = getNumber(m_DB_tubes, tubes, id, "RMAX", rminTIR + 9.*GeoModelKernelUnits::mm); + double dzTIR = getNumber(m_DB_tubes, tubes, id, "DZ", 10.*GeoModelKernelUnits::mm); GeoTubs* shapeTIR = new GeoTubs(rminTIR, rmaxTIR, dzTIR, m_PhiStart, m_PhiSize); GeoLogVol* logicalTIR = new GeoLogVol(name, shapeTIR, m_Alu); GeoPhysVol* physTIR = new GeoPhysVol(logicalTIR); id += "::Hole"; name = m_BaseName + id; - double dzTIRH = getNumber(m_DB_tubes, tubes, id, "DZ", 4.5*CLHEP::mm); + double dzTIRH = getNumber(m_DB_tubes, tubes, id, "DZ", 4.5*GeoModelKernelUnits::mm); double rmaxTIRH = getNumber(m_DB_tubes, tubes, id, "RMAX", rmaxTIR); - double rminTIRH = getNumber(m_DB_tubes, tubes, id, "RMIN", rmaxTIRH - 2.*CLHEP::mm); + double rminTIRH = getNumber(m_DB_tubes, tubes, id, "RMIN", rmaxTIRH - 2.*GeoModelKernelUnits::mm); GeoTubs* shapeTIRH = new GeoTubs(rminTIRH, rmaxTIRH, dzTIRH, m_PhiStart, m_PhiSize); GeoLogVol* logicalTIRH = new GeoLogVol(name, shapeTIRH, m_LAr); GeoPhysVol* physTIRH = new GeoPhysVol(logicalTIRH); @@ -1155,22 +1155,22 @@ GeoPhysVol* EMECSupportConstruction::outer_envelope(void) const double dfi = M_PI / number_of_stretchers; double dfiNS = shapeNS->getDPhi(); motherPhysical->add(new GeoIdentifierTag(1)); - motherPhysical->add(new GeoTransform(HepGeom::RotateZ3D(dfi - dfiNS*0.5))); + motherPhysical->add(new GeoTransform(GeoTrf::RotateZ3D(dfi - dfiNS*0.5))); motherPhysical->add(physNS); motherPhysical->add(new GeoIdentifierTag(2)); - motherPhysical->add(new GeoTransform(HepGeom::RotateZ3D(-dfi + dfiNS*0.5))); + motherPhysical->add(new GeoTransform(GeoTrf::RotateZ3D(-dfi + dfiNS*0.5))); motherPhysical->add(physNS); } else { - double dfi = CLHEP::twopi / number_of_stretchers; + double dfi = GeoModelKernelUnits::twopi / number_of_stretchers; int copyno = 0; for(int i = 0; i < number_of_stretchers; ++ i, ++ copyno){ double fiW = i * dfi; motherPhysical->add(new GeoIdentifierTag(copyno)); - motherPhysical->add(new GeoTransform(HepGeom::RotateZ3D(fiW))); + motherPhysical->add(new GeoTransform(GeoTrf::RotateZ3D(fiW))); motherPhysical->add(physWS); double fiN = (i + 0.5) * dfi; motherPhysical->add(new GeoIdentifierTag(copyno)); - motherPhysical->add(new GeoTransform(HepGeom::RotateZ3D(fiN))); + motherPhysical->add(new GeoTransform(GeoTrf::RotateZ3D(fiN))); motherPhysical->add(physNS); } } @@ -1184,26 +1184,26 @@ GeoPhysVol* EMECSupportConstruction::inner_envelope(void) const map_t numbers = getNumbersMap(m_DB_numbers, id); std::string name0 = m_BaseName + id; -// double dz = LArWheelCalculator::GetWheelThickness() * 0.5; //257.*CLHEP::mm; //zWheelThickness/2. - double dz = 0.5 * (*m_DB_mn)[0]->getDouble("ACTIVELENGTH")*CLHEP::mm; +// double dz = LArWheelCalculator::GetWheelThickness() * 0.5; //257.*GeoModelKernelUnits::mm; //zWheelThickness/2. + double dz = 0.5 * (*m_DB_mn)[0]->getDouble("ACTIVELENGTH")*GeoModelKernelUnits::mm; try { - dz += (*m_DB_mn)[0]->getDouble("STRAIGHTSTARTSECTION")*CLHEP::mm; + dz += (*m_DB_mn)[0]->getDouble("STRAIGHTSTARTSECTION")*GeoModelKernelUnits::mm; } catch(...){ - dz += 2.*CLHEP::mm; + dz += 2.*GeoModelKernelUnits::mm; std::ostringstream tmp("cannot get STRAIGHTSTARTSECTION from DB"); printWarning(tmp); } - double r1min = getNumber(m_DB_numbers, numbers, "R1MIN", "PARVALUE", (292.-1.)*CLHEP::mm); //lower radius of front inner ring, -1mm for cold - double r2min = getNumber(m_DB_numbers, numbers, "R2MIN", "PARVALUE", (333.-1.)*CLHEP::mm); //lower radius of back inner ring, -1mm for cold + double r1min = getNumber(m_DB_numbers, numbers, "R1MIN", "PARVALUE", (292.-1.)*GeoModelKernelUnits::mm); //lower radius of front inner ring, -1mm for cold + double r2min = getNumber(m_DB_numbers, numbers, "R2MIN", "PARVALUE", (333.-1.)*GeoModelKernelUnits::mm); //lower radius of back inner ring, -1mm for cold //RInnerFront-43.5;RInnerBack-24.5 const double talpha = (r2min - r1min)*0.5/dz; const double calpha = 2.*dz/sqrt(pow(2.*dz,2.)+pow(r2min-r1min,2.)); const double inv_calpha = 1. / calpha; const double alpha = atan(talpha); - double surfthick = getNumber(m_DB_numbers, numbers, "surfthick", "PARVALUE", 1.*CLHEP::mm); // thickness of the cone shell - double barthick = getNumber(m_DB_numbers, numbers, "barthick", "PARVALUE", 5.*CLHEP::mm); // thickness of the Alu bars + double surfthick = getNumber(m_DB_numbers, numbers, "surfthick", "PARVALUE", 1.*GeoModelKernelUnits::mm); // thickness of the cone shell + double barthick = getNumber(m_DB_numbers, numbers, "barthick", "PARVALUE", 5.*GeoModelKernelUnits::mm); // thickness of the Alu bars double r1max = pow(barthick/2.,2.)+ pow(r1min+(surfthick+barthick)*inv_calpha,2.); r1max = sqrt(r1max)+surfthick*inv_calpha; double r2max = r2min+(r1max-r1min); @@ -1243,7 +1243,7 @@ GeoPhysVol* EMECSupportConstruction::inner_envelope(void) const //-------------------------/ const int nofmodul = 8; - const double moduldphi = CLHEP::twopi / nofmodul; + const double moduldphi = GeoModelKernelUnits::twopi / nofmodul; GeoCons* shapeIACP = new GeoCons( r1min+surfthick*inv_calpha,r2min+surfthick*inv_calpha, r1max-surfthick*inv_calpha,r2max-surfthick*inv_calpha, @@ -1260,7 +1260,7 @@ GeoPhysVol* EMECSupportConstruction::inner_envelope(void) const GeoLogVol* logicalIACAB= new GeoLogVol (name,shapeIACAB, m_Alu); GeoPhysVol* physIACAB= new GeoPhysVol(logicalIACAB); - const double dphi = CLHEP::twopi / 256.; + const double dphi = GeoModelKernelUnits::twopi / 256.; const int nbar = 9; const double phi[9]={-15.,-11.,-7.5,-4.,0.,4.,7.5,11.,15.}; // phipos of the bars const double r0=r1min+(surfthick+barthick/2.)*inv_calpha+dz*talpha; @@ -1269,9 +1269,7 @@ GeoPhysVol* EMECSupportConstruction::inner_envelope(void) const double fi=phi[i]*dphi; double cfi=cos(fi); double sfi=sin(fi); - physIACP->add(new GeoTransform(HepGeom::Transform3D( - CLHEP::HepRotationZ(fi), - CLHEP::Hep3Vector(r0*cfi,r0*sfi,0.)))); + physIACP->add(new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translate3D(r0*cfi,r0*sfi,0.)*GeoTrf::RotateZ3D(fi)))); physIACP->add(physIACAB); } @@ -1279,7 +1277,7 @@ GeoPhysVol* EMECSupportConstruction::inner_envelope(void) const for(int i=0;i<nofmodul;i++){ // put modules into wheel double fi=(i+0.5)*moduldphi; physIAC->add( new GeoIdentifierTag(i)); - physIAC->add( new GeoTransform(HepGeom::RotateZ3D(fi))); + physIAC->add( new GeoTransform(GeoTrf::RotateZ3D(fi))); physIAC->add(physIACP); } @@ -1289,9 +1287,9 @@ GeoPhysVol* EMECSupportConstruction::inner_envelope(void) const //!!!! GeoPhysVol* EMECSupportConstruction::middle_envelope(void) const { - double dMechFocaltoWRP = (*m_DB_EmecGeometry)[0]->getDouble("Z1") *CLHEP::cm; - double LArEMECHalfCrack = (*m_DB_EmecGeometry)[0]->getDouble("DCRACK") *CLHEP::cm; - double LArTotalThickness = (*m_DB_EmecGeometry)[0]->getDouble("ETOT") *CLHEP::cm; + double dMechFocaltoWRP = (*m_DB_EmecGeometry)[0]->getDouble("Z1") *GeoModelKernelUnits::cm; + double LArEMECHalfCrack = (*m_DB_EmecGeometry)[0]->getDouble("DCRACK") *GeoModelKernelUnits::cm; + double LArTotalThickness = (*m_DB_EmecGeometry)[0]->getDouble("ETOT") *GeoModelKernelUnits::cm; double eta_mid = (*m_DB_EmecWheelParameters)[0]->getDouble("ETAEXT"); @@ -1300,8 +1298,8 @@ GeoPhysVol* EMECSupportConstruction::middle_envelope(void) const const double inv_cosThetaMid = 1. / cosThetaMid; double z0 = LArTotalThickness * 0.5 + dMechFocaltoWRP; - double length = 462.*CLHEP::mm; - double rthickness = 1.5*CLHEP::mm * inv_cosThetaMid; + double length = 462.*GeoModelKernelUnits::mm; + double rthickness = 1.5*GeoModelKernelUnits::mm * inv_cosThetaMid; std::string name = m_BaseName + "InnerTransversalBars"; double dz = length * cosThetaMid * 0.5; @@ -1327,7 +1325,7 @@ void EMECSupportConstruction::put_front_middle_ring(GeoPhysVol *motherPhysical) GeoPcon *shapeFMR = getPcon(id); GeoLogVol *logicalFMR = new GeoLogVol(name, shapeFMR, m_PermaliE730); GeoPhysVol *physFMR = new GeoPhysVol(logicalFMR); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(z0))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); motherPhysical->add(physFMR); id = "FrontMiddleRing::LowerHole"; @@ -1369,7 +1367,7 @@ void EMECSupportConstruction::put_front_inner_ring(GeoPhysVol *motherPhysical) c GeoPcon *shapeFIR = getPcon(id); GeoLogVol *logicalFIR = new GeoLogVol(name, shapeFIR, m_Alu); GeoPhysVol *physFIR = new GeoPhysVol(logicalFIR); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(z0))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); motherPhysical->add(physFIR); id = "FrontInnerRing::Hole"; @@ -1402,7 +1400,7 @@ void EMECSupportConstruction::put_front_inner_longbar(GeoPhysVol *motherPhysical GeoTubs *shapeFILB = new GeoTubs(rmin, rmax, dz, m_PhiStart, m_PhiSize); GeoLogVol *logicalFILB = new GeoLogVol(name,shapeFILB,m_Gten); GeoPhysVol *physFILB = new GeoPhysVol(logicalFILB); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(z0))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); motherPhysical->add(physFILB); } @@ -1414,7 +1412,7 @@ void EMECSupportConstruction::put_back_middle_ring(GeoPhysVol *motherPhysical) c GeoPcon *shapeBMR = getPcon(id); GeoLogVol *logicalBMR = new GeoLogVol(name, shapeBMR, m_Alu); GeoPhysVol *physBMR = new GeoPhysVol(logicalBMR); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(z0))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); motherPhysical->add(physBMR); id = "BackMiddleRing::LowerHole"; @@ -1456,7 +1454,7 @@ void EMECSupportConstruction::put_back_inner_ring(GeoPhysVol *motherPhysical) co GeoPcon *shapeBIR = getPcon(id); GeoLogVol *logicalBIR = new GeoLogVol(name, shapeBIR, m_Alu); GeoPhysVol *physBIR = new GeoPhysVol(logicalBIR); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(z0))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); motherPhysical->add(physBIR); id = "BackInnerRing::Hole"; @@ -1488,7 +1486,7 @@ void EMECSupportConstruction::put_back_inner_longbar(GeoPhysVol *motherPhysical) GeoTubs *shapeBILB = new GeoTubs(rmin, rmax, dz, m_PhiStart, m_PhiSize); GeoLogVol *logicalBILB = new GeoLogVol(name, shapeBILB, m_Gten); GeoPhysVol *physBILB = new GeoPhysVol(logicalBILB); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(z0))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); motherPhysical->add(physBILB); } @@ -1500,7 +1498,7 @@ void EMECSupportConstruction::put_front_outer_ring(GeoPhysVol *motherPhysical) c GeoPcon *shapeFOR = getPcon(id); GeoLogVol *logicalFOR = new GeoLogVol(name, shapeFOR, m_Alu); GeoPhysVol *physFOR = new GeoPhysVol(logicalFOR); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(z0))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); motherPhysical->add(physFOR); } @@ -1512,7 +1510,7 @@ void EMECSupportConstruction::put_front_outer_longbar(GeoPhysVol *motherPhysical GeoPcon *shapeFOLB = getPcon(id); GeoLogVol *logicalFOLB = new GeoLogVol(name, shapeFOLB, m_Gten); GeoPhysVol *physFOLB = new GeoPhysVol(logicalFOLB); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(z0))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); motherPhysical->add(physFOLB); } @@ -1539,14 +1537,14 @@ void EMECSupportConstruction::put_front_indexing_rings(GeoPhysVol *motherPhysica GeoTubs *shapeFHIR = new GeoTubs(r0 + ring_rmin, r0 + ring_rmax, ring_dz, m_PhiStart, m_PhiSize); GeoLogVol *logicalFHIR = new GeoLogVol(name, shapeFHIR, m_Alu); GeoPhysVol *physFHIR = new GeoPhysVol(logicalFHIR); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(z0))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); motherPhysical->add(physFHIR); name = m_BaseName + "FrontHighRIndexingRing::Hole"; GeoTubs *shapeFHIRH = new GeoTubs(r0 + hole_rmin, r0 + hole_rmax, hole_dz, m_PhiStart, m_PhiSize); GeoLogVol *logicalFHIRH = new GeoLogVol(name, shapeFHIRH, m_LAr); GeoPhysVol *physFHIRH = new GeoPhysVol(logicalFHIRH); - physFHIR->add(new GeoTransform(HepGeom::TranslateZ3D(z_hole + hole_dz))); + physFHIR->add(new GeoTransform(GeoTrf::TranslateZ3D(z_hole + hole_dz))); physFHIR->add(physFHIRH); // the piece of long.bar on which indexing alu ring is sitting @@ -1555,21 +1553,21 @@ void EMECSupportConstruction::put_front_indexing_rings(GeoPhysVol *motherPhysica GeoTubs *shapeFHIRG = new GeoTubs(r0 + ring_rmin, r0 + ring_rmax, gten_dz, m_PhiStart, m_PhiSize); GeoLogVol *logicalFHIRG = new GeoLogVol(name, shapeFHIRG, m_Gten); GeoPhysVol *physFHIRG = new GeoPhysVol(logicalFHIRG); - physFHIR->add(new GeoTransform(HepGeom::TranslateZ3D(ring_dz - gten_dz))); + physFHIR->add(new GeoTransform(GeoTrf::TranslateZ3D(ring_dz - gten_dz))); physFHIR->add(physFHIRG); name = m_BaseName + "FrontLowRIndexingRing"; GeoTubs *shapeFLIR = new GeoTubs(r1 + ring_rmin, r1 + ring_rmax, ring_dz, m_PhiStart, m_PhiSize); GeoLogVol *logicalFLIR = new GeoLogVol(name, shapeFLIR, m_Alu); GeoPhysVol *physFLIR = new GeoPhysVol(logicalFLIR); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(z0))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); motherPhysical->add(physFLIR); name = m_BaseName + "FrontLowRIndexingRing::Hole"; GeoTubs *shapeFLIRH = new GeoTubs(r1 + hole_rmin, r1 + hole_rmax, hole_dz, m_PhiStart, m_PhiSize); GeoLogVol *logicalFLIRH = new GeoLogVol(name, shapeFLIRH, m_LAr); GeoPhysVol *physFLIRH = new GeoPhysVol(logicalFLIRH); - physFLIR->add(new GeoTransform(HepGeom::TranslateZ3D(z_hole + hole_dz))); + physFLIR->add(new GeoTransform(GeoTrf::TranslateZ3D(z_hole + hole_dz))); physFLIR->add(physFLIRH); name = m_BaseName + "FrontLowRIndexingRing::GTen"; //piece of long.bar @@ -1577,7 +1575,7 @@ void EMECSupportConstruction::put_front_indexing_rings(GeoPhysVol *motherPhysica GeoTubs *shapeFLIRG = new GeoTubs(r1 + ring_rmin, r1 + ring_rmax, gten_dz, m_PhiStart, m_PhiSize); GeoLogVol *logicalFLIRG = new GeoLogVol(name, shapeFLIRG, m_Gten); GeoPhysVol *physFLIRG = new GeoPhysVol(logicalFLIRG); - physFLIR->add(new GeoTransform(HepGeom::TranslateZ3D(ring_dz - gten_dz))); + physFLIR->add(new GeoTransform(GeoTrf::TranslateZ3D(ring_dz - gten_dz))); physFLIR->add(physFLIRG); } @@ -1604,7 +1602,7 @@ void EMECSupportConstruction::put_back_indexing_rings(GeoPhysVol *motherPhysical GeoTubs *shapeBHIR = new GeoTubs(r0 + ring_rmin, r0 + ring_rmax, ring_dz, m_PhiStart, m_PhiSize); GeoLogVol *logicalBHIR = new GeoLogVol(name, shapeBHIR, m_Alu); GeoPhysVol *physBHIR = new GeoPhysVol(logicalBHIR); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(z0))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); motherPhysical->add(physBHIR); // the piece of long.bar on which indexing alu ring is sitting @@ -1613,21 +1611,21 @@ void EMECSupportConstruction::put_back_indexing_rings(GeoPhysVol *motherPhysical GeoTubs *shapeBHIRG = new GeoTubs(r0 + ring_rmin, r0 + ring_rmax, gten_dz, m_PhiStart, m_PhiSize); GeoLogVol *logicalBHIRG = new GeoLogVol(name, shapeBHIRG, m_Gten); GeoPhysVol *physBHIRG = new GeoPhysVol(logicalBHIRG); - physBHIR->add(new GeoTransform(HepGeom::TranslateZ3D(ring_dz - gten_dz))); + physBHIR->add(new GeoTransform(GeoTrf::TranslateZ3D(ring_dz - gten_dz))); physBHIR->add(physBHIRG); name = m_BaseName + "BackHighRIndexingRing::Hole"; GeoTubs* shapeBHIRH = new GeoTubs(r0 + hole_rmin, r0 + hole_rmax, hole_dz, m_PhiStart, m_PhiSize); GeoLogVol* logicalBHIRH = new GeoLogVol(name, shapeBHIRH, m_LAr); GeoPhysVol* physBHIRH = new GeoPhysVol(logicalBHIRH); - physBHIR->add(new GeoTransform(HepGeom::TranslateZ3D(z_hole + hole_dz))); + physBHIR->add(new GeoTransform(GeoTrf::TranslateZ3D(z_hole + hole_dz))); physBHIR->add(physBHIRH); name = m_BaseName + "BackLowRIndexingRing"; GeoTubs *shapeBLIR = new GeoTubs(r1 + ring_rmin, r1 + ring_rmax, ring_dz, m_PhiStart, m_PhiSize); GeoLogVol *logicalBLIR = new GeoLogVol(name, shapeBLIR, m_Alu); GeoPhysVol *physBLIR = new GeoPhysVol(logicalBLIR); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(z0))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); motherPhysical->add(physBLIR); name += "::GTen"; @@ -1635,14 +1633,14 @@ void EMECSupportConstruction::put_back_indexing_rings(GeoPhysVol *motherPhysical GeoTubs *shapeBLIRG = new GeoTubs(r1 + ring_rmin, r1 + ring_rmax, gten_dz, m_PhiStart, m_PhiSize); GeoLogVol *logicalBLIRG = new GeoLogVol(name, shapeBLIRG, m_Gten); GeoPhysVol *physBLIRG = new GeoPhysVol(logicalBLIRG); - physBLIR->add(new GeoTransform(HepGeom::TranslateZ3D(ring_dz - gten_dz))); + physBLIR->add(new GeoTransform(GeoTrf::TranslateZ3D(ring_dz - gten_dz))); physBLIR->add(physBLIRG); name = m_BaseName + "BackLowRIndexingRing::Hole"; GeoTubs *shapeBLIRH = new GeoTubs(r1 + hole_rmin, r1 + hole_rmax, hole_dz, m_PhiStart, m_PhiSize); GeoLogVol *logicalBLIRH = new GeoLogVol(name, shapeBLIRH, m_LAr); GeoPhysVol *physBLIRH = new GeoPhysVol(logicalBLIRH); - physBLIR->add(new GeoTransform(HepGeom::TranslateZ3D(z_hole + hole_dz))); + physBLIR->add(new GeoTransform(GeoTrf::TranslateZ3D(z_hole + hole_dz))); physBLIR->add(physBLIRH); } @@ -1654,7 +1652,7 @@ void EMECSupportConstruction::put_back_outer_ring(GeoPhysVol *motherPhysical) co GeoPcon *shapeBOR = getPcon(id); GeoLogVol *logicalBOR = new GeoLogVol(name, shapeBOR, m_Alu); GeoPhysVol *physBOR = new GeoPhysVol(logicalBOR); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(z0))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); motherPhysical->add(physBOR); } @@ -1666,7 +1664,7 @@ void EMECSupportConstruction::put_back_outer_longbar(GeoPhysVol *motherPhysical) GeoPcon *shapeBOLB = getPcon(id); GeoLogVol *logicalBOLB = new GeoLogVol(name, shapeBOLB, m_Gten); GeoPhysVol *physBOLB = new GeoPhysVol(logicalBOLB); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(z0))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(z0))); motherPhysical->add(physBOLB); } @@ -1709,7 +1707,7 @@ void EMECSupportConstruction::put_front_outer_extracyl(GeoPhysVol *motherPhysica GeoLogVol *logicCyl = new GeoLogVol(name, solidCyl, mat); GeoPhysVol *physCyl = new GeoPhysVol(logicCyl); - motherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(dz/2.))); + motherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(dz/2.))); motherPhysical->add(physCyl); std::cout<<"******************************************************"<<std::endl; @@ -1799,7 +1797,7 @@ void EMECSupportConstruction::put_front_outer_electronics(GeoPhysVol *motherPhys GeoBox *cu = new GeoBox(dx, dy, dz1); GeoLogVol *cul = new GeoLogVol(name, cu, m_Copper); GeoPhysVol *cup = new GeoPhysVol(cul); - mb_p[i]->add(new GeoTransform(HepGeom::TranslateZ3D(dz1 - mb_dz[i]))); + mb_p[i]->add(new GeoTransform(GeoTrf::TranslateZ3D(dz1 - mb_dz[i]))); mb_p[i]->add(cup); tmp.str(""); @@ -1837,10 +1835,8 @@ void EMECSupportConstruction::put_front_outer_electronics(GeoPhysVol *motherPhys double phi = m_Position + (i - 2) * phi_size - phi_start; GeoIdentifierTag* iTag = new GeoIdentifierTag(i); - GeoTransform* xf = new GeoTransform( - HepGeom::Transform3D(CLHEP::HepRotationZ(phi),CLHEP::Hep3Vector(0., 0., z_boards))); - GeoTransform* xf1 = new GeoTransform( - HepGeom::Transform3D(CLHEP::HepRotationZ(phi),CLHEP::Hep3Vector(0., 0., z_oc))); + GeoTransform* xf = new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translate3D(0., 0., z_boards)*GeoTrf::Transform3D(GeoTrf::RotateZ3D(phi)))); + GeoTransform* xf1 = new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translate3D(0., 0., z_oc)*GeoTrf::RotateZ3D(phi))); motherPhysical->add(iTag); motherPhysical->add(xf); @@ -1860,19 +1856,15 @@ void EMECSupportConstruction::put_front_outer_electronics(GeoPhysVol *motherPhys for(int j = 0; j < 5; ++ j){ GeoTransform* xf2 = new GeoTransform( - HepGeom::Transform3D(HepGeom::RotateZ3D(phi)*HepGeom::Translate3D(mb_r[j], 0., z_mb - mb_dz[j]))); + GeoTrf::Transform3D(GeoTrf::RotateZ3D(phi)*GeoTrf::Translate3D(mb_r[j], 0., z_mb - mb_dz[j]))); motherPhysical->add(iTag); motherPhysical->add(xf2); motherPhysical->add(mb_p[j]); } - GeoTransform* xf3 = new GeoTransform( - HepGeom::Transform3D(CLHEP::HepRotationZ(m_Position + (i - 2) * phi_size + 0.5 * dphi_sc), - CLHEP::Hep3Vector(0., 0., z_soc))); + GeoTransform* xf3 = new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translate3D(0., 0., z_soc)*GeoTrf::RotateZ3D(m_Position + (i - 2) * phi_size + 0.5 * dphi_sc)));; - GeoTransform* xf4 = new GeoTransform( - HepGeom::Transform3D(CLHEP::HepRotationZ(m_Position + (i - 1) * phi_size - 0.5 * dphi_sc), - CLHEP::Hep3Vector(0., 0., z_soc))); + GeoTransform* xf4 = new GeoTransform(GeoTrf::Transform3D(GeoTrf::Translate3D(0., 0., z_soc)*GeoTrf::RotateZ3D(m_Position + (i - 1) * phi_size - 0.5 * dphi_sc))); motherPhysical->add(new GeoIdentifierTag(i * 2)); motherPhysical->add(xf3); diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapCryostatConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapCryostatConstruction.cxx index 36e803b82e2a346502a123be4350adaca5479eb5..50a89f47d88a1504359fb161f96e336f08cdcae6 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapCryostatConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapCryostatConstruction.cxx @@ -32,6 +32,8 @@ #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoXF.h" #include "GeoModelKernel/GeoSerialTransformer.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -41,17 +43,10 @@ #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "CLHEP/GenericFunctions/AbsFunction.hh" -#include "CLHEP/GenericFunctions/Variable.hh" - -// For transforms: - -#include "CLHEP/Geometry/Transform3D.h" -// For units: -#include "CLHEP/Units/PhysicalConstants.h" +#include "GeoGenericFunctions/AbsFunction.h" +#include "GeoGenericFunctions/Variable.h" // For the database: - #include "RDBAccessSvc/IRDBAccessSvc.h" #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" @@ -75,7 +70,7 @@ #include "LArGeoMiniFcal/MiniFcalConstruction.h" -using namespace Genfun; +using namespace GeoGenfun; using namespace GeoXF; @@ -304,18 +299,18 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) if(currentRecord->getString("CYL_LOCATION")=="Endcap"){ if(cylNumber == 3 ) { - rmin_warm=currentRecord->getDouble("RMIN")*CLHEP::cm; - rmax_warm=currentRecord->getDouble("RMIN")*CLHEP::cm + currentRecord->getDouble("DR")*CLHEP::cm; - dz_warm=currentRecord->getDouble("DZ")*CLHEP::cm / 2.; - zInCryostat_warm = currentRecord->getDouble("ZMIN")*CLHEP::cm + currentRecord->getDouble("DZ")*CLHEP::cm / 2.; + rmin_warm=currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm; + rmax_warm=currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm + currentRecord->getDouble("DR")*GeoModelKernelUnits::cm; + dz_warm=currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm / 2.; + zInCryostat_warm = currentRecord->getDouble("ZMIN")*GeoModelKernelUnits::cm + currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm / 2.; wallfind=wallfind+1; } if(cylNumber == 14 ) { - rmin_cold=currentRecord->getDouble("RMIN")*CLHEP::cm; - rmax_cold=currentRecord->getDouble("RMIN")*CLHEP::cm + currentRecord->getDouble("DR")*CLHEP::cm; - dz_cold=currentRecord->getDouble("DZ")*CLHEP::cm / 2.; - zInCryostat_cold = currentRecord->getDouble("ZMIN")*CLHEP::cm + currentRecord->getDouble("DZ")*CLHEP::cm / 2.; + rmin_cold=currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm; + rmax_cold=currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm + currentRecord->getDouble("DR")*GeoModelKernelUnits::cm; + dz_cold=currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm / 2.; + zInCryostat_cold = currentRecord->getDouble("ZMIN")*GeoModelKernelUnits::cm + currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm / 2.; wallfind=wallfind+1; } } @@ -343,7 +338,7 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) const GeoLogVol *logicCyl = new GeoLogVol(cylName,solidCyl,mat); GeoPhysVol *physCyl = new GeoPhysVol(logicCyl); - cryoMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(zpos))); + cryoMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(zpos))); cryoMotherPhysical->add(physCyl); std::cout<<"**************************************************"<<std::endl; @@ -393,11 +388,11 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) } GeoTubs* solidCyl - = new GeoTubs(currentRecord->getDouble("RMIN")*CLHEP::cm, - currentRecord->getDouble("RMIN")*CLHEP::cm + currentRecord->getDouble("DR")*CLHEP::cm, - currentRecord->getDouble("DZ")*CLHEP::cm / 2., + = new GeoTubs(currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm, + currentRecord->getDouble("RMIN")*GeoModelKernelUnits::cm + currentRecord->getDouble("DR")*GeoModelKernelUnits::cm, + currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm / 2., (double) 0., - (double) 2.*M_PI*CLHEP::rad); + (double) 2.*M_PI*GeoModelKernelUnits::rad); const GeoMaterial *material = materialManager->getMaterial(currentRecord->getString("MATERIAL")); if (!material) { @@ -412,7 +407,7 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) GeoPhysVol* physCyl = new GeoPhysVol(logicCyl); - double zInCryostat = currentRecord->getDouble("ZMIN")*CLHEP::cm + currentRecord->getDouble("DZ")*CLHEP::cm / 2.; + double zInCryostat = currentRecord->getDouble("ZMIN")*GeoModelKernelUnits::cm + currentRecord->getDouble("DZ")*GeoModelKernelUnits::cm / 2.; // Don't move the pump even if the rest of the cryostat moves. //if ( cylNumber == 33 ) zInCryostat -= zEmec; @@ -420,7 +415,7 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) // Place each cylinder. cryoMotherPhysical->add(new GeoIdentifierTag(cylNumber)); - cryoMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(zInCryostat))); + cryoMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(zInCryostat))); // Front cold wall of Cryostat is a mother for Endcap Presampler if ( cylNumber == 14 ) { @@ -432,13 +427,13 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) GeoFullPhysVol* emecPSEnvelope = endcapPresamplerConstruction.Envelope(); if ( emecPSEnvelope != 0 ) { // Get the position of the presampler from the geometry helper. - double Zpos = 30.5*CLHEP::mm; + double Zpos = 30.5*GeoModelKernelUnits::mm; // It is highly debateable whether the endcap presampler is // alignable, but in any case we shall not align it here because // we need to completely redo it, anyway, since it does not // even live "in" this volume, not in real life anyway. - GeoTransform *xfPs = new GeoTransform(HepGeom::TranslateZ3D(Zpos)); + GeoTransform *xfPs = new GeoTransform(GeoTrf::TranslateZ3D(Zpos)); physCyl->add(xfPs); physCyl->add( emecPSEnvelope ); @@ -553,7 +548,7 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) //=> const IRDBRecord *posRec = GeoDBUtils::getTransformRecord(larPosition, bPos ? "EMEC_POS":"EMEC_NEG"); if (!posRec) throw std::runtime_error("Error, no lar position record in the database") ; - HepGeom::Transform3D xfPos = GeoDBUtils::getTransform(posRec); + GeoTrf::Transform3D xfPos = GeoDBUtils::getTransform(posRec); GeoAlignableTransform *xfEmec = new GeoAlignableTransform(xfPos); std::string tag = bPos? std::string("EMEC_POS") : std::string("EMEC_NEG"); @@ -586,7 +581,7 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) //--- Make the Front Wheel alignable: const IRDBRecord *posHec1 = GeoDBUtils::getTransformRecord(larPosition, bPos ? "HEC1_POS":"HEC1_NEG"); - HepGeom::Transform3D xfPosHec1 = posHec1 ? GeoDBUtils::getTransform(posHec1) : HepGeom::Translate3D(0.,0.,-2423.0); + GeoTrf::Transform3D xfPosHec1 = posHec1 ? GeoDBUtils::getTransform(posHec1) : GeoTrf::Translate3D(0.,0.,-2423.0); GeoAlignableTransform *xfHec1 = new GeoAlignableTransform(xfPosHec1); std::string tag1 = bPos? std::string("HEC1_POS") : std::string("HEC1_NEG"); @@ -611,7 +606,7 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) GeoFullPhysVol* EnvelopeR = rearHEC.GetEnvelope(); const IRDBRecord *posHec2 = GeoDBUtils::getTransformRecord(larPosition, bPos ? "HEC2_POS":"HEC2_NEG"); - HepGeom::Transform3D xfPosHec2 = posHec2 ? GeoDBUtils::getTransform(posHec2) : HepGeom::Translate3D(0.,0.,-1566.0); + GeoTrf::Transform3D xfPosHec2 = posHec2 ? GeoDBUtils::getTransform(posHec2) : GeoTrf::Translate3D(0.,0.,-1566.0); GeoAlignableTransform *xfHec2 = new GeoAlignableTransform(xfPosHec2); std::string tag2 = bPos? std::string("HEC2_POS") : std::string("HEC2_NEG"); @@ -655,7 +650,7 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) // Get default values for alignable transform deltas from SubdetPosHelper const IRDBRecord *posRec = GeoDBUtils::getTransformRecord(larPosition, tag); if (!posRec) throw std::runtime_error("Error, no lar position record in the database") ; - HepGeom::Transform3D xfPos = GeoDBUtils::getTransform(posRec); + GeoTrf::Transform3D xfPos = GeoDBUtils::getTransform(posRec); GeoAlignableTransform *fcalXF = new GeoAlignableTransform(xfPos); StatusCode status; @@ -674,7 +669,7 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) // Place the FCAL modules. cryoMotherPhysical->add(fcalXF); - cryoMotherPhysical->add( new GeoTransform( HepGeom::TranslateZ3D(tubs->getZHalfLength()) ) ); + cryoMotherPhysical->add( new GeoTransform( GeoTrf::TranslateZ3D(tubs->getZHalfLength()) ) ); cryoMotherPhysical->add( fcalEnvelope ); @@ -732,10 +727,10 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) } // Build mother volume - double rminMM = (*itMother)->getDouble("RMIN")*CLHEP::mm; - double rmaxMM = (*itMother)->getDouble("RMAX")*CLHEP::mm; - double dzMM = (*itMother)->getDouble("DZ")*CLHEP::mm; - zposMM = (*itMother)->getDouble("ZPOS")*CLHEP::mm; + double rminMM = (*itMother)->getDouble("RMIN")*GeoModelKernelUnits::mm; + double rmaxMM = (*itMother)->getDouble("RMAX")*GeoModelKernelUnits::mm; + double dzMM = (*itMother)->getDouble("DZ")*GeoModelKernelUnits::mm; + zposMM = (*itMother)->getDouble("ZPOS")*GeoModelKernelUnits::mm; const GeoMaterial *matMM = materialManager->getMaterial((*itMother)->getString("MATERIAL")); @@ -744,8 +739,8 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) GeoTube *tubeJM=NULL; const GeoShape *solidMM=NULL; if (itTube!=mbtsTubs->end()) { - double dzMod = (*itTube)->getDouble("DZ")*CLHEP::mm; - double rMaxMod = (*itTube)->getDouble("RMAX")*CLHEP::mm; + double dzMod = (*itTube)->getDouble("DZ")*GeoModelKernelUnits::mm; + double rMaxMod = (*itTube)->getDouble("RMAX")*GeoModelKernelUnits::mm; GeoPcon *pcon = new GeoPcon(0,2*M_PI); pcon->addPlane(-dzMM,rminMM,rmaxMM); @@ -761,14 +756,14 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) GeoLogVol* lvMM = new GeoLogVol("MBTS_mother",solidMM,matMM); pvMM = new GeoPhysVol(lvMM); - cryoMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(zposMM))); + cryoMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(zposMM))); cryoMotherPhysical->add(pvMM); // Moderator cylinder - //double rminMod = (*itModerator)->getDouble("RMIN")*CLHEP::mm; - //double rmaxMod = (*itModerator)->getDouble("RMAX")*CLHEP::mm; - double dzMod = (*itModerator)->getDouble("DZ")*CLHEP::mm; - double zposMod = (*itModerator)->getDouble("ZPOS")*CLHEP::mm; + //double rminMod = (*itModerator)->getDouble("RMIN")*GeoModelKernelUnits::mm; + //double rmaxMod = (*itModerator)->getDouble("RMAX")*GeoModelKernelUnits::mm; + double dzMod = (*itModerator)->getDouble("DZ")*GeoModelKernelUnits::mm; + double zposMod = (*itModerator)->getDouble("ZPOS")*GeoModelKernelUnits::mm; const GeoMaterial *matMod = materialManager->getMaterial((*itModerator)->getString("MATERIAL")); @@ -776,14 +771,14 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) GeoLogVol* lvMod = new GeoLogVol("Moderator",solidMod, matMod); GeoPhysVol* pvMod = new GeoPhysVol(lvMod); - pvMM->add(new GeoTransform(HepGeom::TranslateZ3D(zposMod))); + pvMM->add(new GeoTransform(GeoTrf::TranslateZ3D(zposMod))); pvMM->add(pvMod); if (tubeJM) { GeoLogVol* lvMod = new GeoLogVol("ModeratorTube",tubeJM, matMod); GeoPhysVol* pvMod = new GeoPhysVol(lvMod); - pvMM->add(new GeoTransform(HepGeom::TranslateZ3D(tubeMM->getZHalfLength()+tubeJM->getZHalfLength()))); + pvMM->add(new GeoTransform(GeoTrf::TranslateZ3D(tubeMM->getZHalfLength()+tubeJM->getZHalfLength()))); pvMM->add(pvMod); } tubeMM->ref(); tubeMM->unref(); @@ -845,7 +840,7 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) pvMM = new GeoPhysVol(lvMM); zposMM = zStartCryoMother - zStartMM; - cryoMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(zposMM))); + cryoMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(zposMM))); cryoMotherPhysical->add(pvMM); // Extra tube for the moderator: @@ -858,7 +853,7 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) GeoLogVol* lvJM = new GeoLogVol("ModeratorJMTube",tubeJM, matJM); GeoPhysVol* pvJM = new GeoPhysVol(lvJM); - pvMM->add(new GeoTransform(HepGeom::TranslateZ3D((*mbtsTubs)[0]->getDouble("ZPOS")))); + pvMM->add(new GeoTransform(GeoTrf::TranslateZ3D((*mbtsTubs)[0]->getDouble("ZPOS")))); pvMM->add(pvJM); // Moderator+JM polycone @@ -875,13 +870,13 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) const IRDBRecord* curScin = (*mbtsScin)[scinId]; int nScin = curScin->getInt("SCINNUM"); - double dx1Scin = curScin->getDouble("DX1")*CLHEP::mm; - double dx2Scin = curScin->getDouble("DX2")*CLHEP::mm; - double dy1Scin = curScin->getDouble("DY1")*CLHEP::mm; - double dy2Scin = curScin->getDouble("DY2")*CLHEP::mm; - double dzScin = curScin->getDouble("DZ")*CLHEP::mm; - double zposScin = curScin->getDouble("ZPOS")*CLHEP::mm; - double rposScin = curScin->getDouble("RPOS")*CLHEP::mm; + double dx1Scin = curScin->getDouble("DX1")*GeoModelKernelUnits::mm; + double dx2Scin = curScin->getDouble("DX2")*GeoModelKernelUnits::mm; + double dy1Scin = curScin->getDouble("DY1")*GeoModelKernelUnits::mm; + double dy2Scin = curScin->getDouble("DY2")*GeoModelKernelUnits::mm; + double dzScin = curScin->getDouble("DZ")*GeoModelKernelUnits::mm; + double zposScin = curScin->getDouble("ZPOS")*GeoModelKernelUnits::mm; + double rposScin = curScin->getDouble("RPOS")*GeoModelKernelUnits::mm; double startPhi = 0.; try { @@ -906,12 +901,12 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) GeoSerialTransformer* stScin = 0; if(bPos) { - GENFUNCTION phiInd = deltaPhi*(varInd + startPhi)*CLHEP::deg; - TRANSFUNCTION xfScin = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateZ3D(zposScin)*HepGeom::TranslateX3D(rposScin)*HepGeom::RotateY3D(90*CLHEP::deg); + GENFUNCTION phiInd = deltaPhi*(varInd + startPhi)*GeoModelKernelUnits::deg; + TRANSFUNCTION xfScin = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateZ3D(zposScin)*GeoTrf::TranslateX3D(rposScin)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); stScin = new GeoSerialTransformer(pvScin,&xfScin,nScin); } else { - GENFUNCTION phiInd = (180 - deltaPhi*(varInd + startPhi))*CLHEP::deg; - TRANSFUNCTION xfScin = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateZ3D(zposScin)*HepGeom::TranslateX3D(rposScin)*HepGeom::RotateY3D(90*CLHEP::deg); + GENFUNCTION phiInd = (180 - deltaPhi*(varInd + startPhi))*GeoModelKernelUnits::deg; + TRANSFUNCTION xfScin = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateZ3D(zposScin)*GeoTrf::TranslateX3D(rposScin)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); stScin = new GeoSerialTransformer(pvScin,&xfScin,nScin); } @@ -971,12 +966,12 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) Variable varInd; GeoSerialTransformer* stAirEnv = 0; if(bPos) { - GENFUNCTION phiInd = deltaPhi*(varInd + startPhi)*CLHEP::deg; - TRANSFUNCTION xfAirEnv = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateZ3D(zposAirEnv)*HepGeom::TranslateX3D(rposAirEnv)*HepGeom::RotateY3D(90*CLHEP::deg); + GENFUNCTION phiInd = deltaPhi*(varInd + startPhi)*GeoModelKernelUnits::deg; + TRANSFUNCTION xfAirEnv = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateZ3D(zposAirEnv)*GeoTrf::TranslateX3D(rposAirEnv)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); stAirEnv = new GeoSerialTransformer(pvAirEnv,&xfAirEnv,nAirEnv); } else { - GENFUNCTION phiInd = (180 - deltaPhi*(varInd + startPhi))*CLHEP::deg; - TRANSFUNCTION xfAirEnv = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateZ3D(zposAirEnv)*HepGeom::TranslateX3D(rposAirEnv)*HepGeom::RotateY3D(90*CLHEP::deg); + GENFUNCTION phiInd = (180 - deltaPhi*(varInd + startPhi))*GeoModelKernelUnits::deg; + TRANSFUNCTION xfAirEnv = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateZ3D(zposAirEnv)*GeoTrf::TranslateX3D(rposAirEnv)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); stAirEnv = new GeoSerialTransformer(pvAirEnv,&xfAirEnv,nAirEnv); } @@ -1000,8 +995,8 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) IRDBRecordset_ptr larPosition = m_pAccessSvc->getRecordsetPtr("LArPosition",detectorKey, detectorNode); const IRDBRecord *posRec = GeoDBUtils::getTransformRecord(larPosition, "LARCRYO_EC_POS"); if(!posRec) throw std::runtime_error("Error, no lar position record in the database") ; - HepGeom::Transform3D xfPos = GeoDBUtils::getTransform(posRec); - double globalZMM = xfPos.getTranslation().z() + zposMM; + GeoTrf::Transform3D xfPos = GeoDBUtils::getTransform(posRec); + double globalZMM = xfPos.translation().z() + zposMM; // Create MBTS manager MbtsDetDescrManager* mbtsManager = new MbtsDetDescrManager(); @@ -1020,15 +1015,15 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) nScin = curScin->getInt("SCINNUM"); eta = curScin->getInt("SCIN_ID")-1; - dx1Scin = curScin->getDouble("DX1")*CLHEP::mm; - dzScin = curScin->getDouble("DZ")*CLHEP::mm; - zposScin = curScin->getDouble("ZPOS")*CLHEP::mm; - rposScin = curScin->getDouble("RPOS")*CLHEP::mm; + dx1Scin = curScin->getDouble("DX1")*GeoModelKernelUnits::mm; + dzScin = curScin->getDouble("DZ")*GeoModelKernelUnits::mm; + zposScin = curScin->getDouble("ZPOS")*GeoModelKernelUnits::mm; + rposScin = curScin->getDouble("RPOS")*GeoModelKernelUnits::mm; if(!curScin->isFieldNull("ETA")) scineta = curScin->getDouble("ETA"); if(!curScin->isFieldNull("DETA")) scindeta = curScin->getDouble("DETA"); - deltaPhi = 360.*CLHEP::deg/nScin; + deltaPhi = 360.*GeoModelKernelUnits::deg/nScin; try { if(!curScin->isFieldNull("STARTPHI")) startPhi = curScin->getDouble("STARTPHI"); @@ -1041,14 +1036,14 @@ GeoFullPhysVol* LArGeo::EndcapCryostatConstruction::createEnvelope(bool bPos) const IRDBRecord* curScin = (*mbtsTrds)[trdMap[scinName]]; nScin = (*mbtsGen)[0]->getInt("NSCIN"); eta = curScin->getInt("SCIN_ID")-1; - dx1Scin = curScin->getDouble("DX1")*CLHEP::mm; - dzScin = curScin->getDouble("DZ")*CLHEP::mm; - zposScin = (*mbtsGen)[0]->getDouble("ZPOSENV")*CLHEP::mm; - rposScin = ((*mbtsGen)[0]->getDouble("RPOSENV")+curScin->getDouble("ZPOS"))*CLHEP::mm; + dx1Scin = curScin->getDouble("DX1")*GeoModelKernelUnits::mm; + dzScin = curScin->getDouble("DZ")*GeoModelKernelUnits::mm; + zposScin = (*mbtsGen)[0]->getDouble("ZPOSENV")*GeoModelKernelUnits::mm; + rposScin = ((*mbtsGen)[0]->getDouble("RPOSENV")+curScin->getDouble("ZPOS"))*GeoModelKernelUnits::mm; scineta = curScin->getDouble("ETA"); scindeta = curScin->getDouble("DETA"); startPhi = (*mbtsGen)[0]->getDouble("STARTPHI"); - deltaPhi = 360.*CLHEP::deg/nScin; + deltaPhi = 360.*GeoModelKernelUnits::deg/nScin; } for(int phi=0; phi<nScin; phi++) { @@ -1104,7 +1099,7 @@ GeoPhysVol* LArGeo::EndcapCryostatConstruction::buildMbtsTrd(const IRDBRecord* r double xpos = rec->getDouble("XPOS"); double ypos = rec->getDouble("YPOS"); double zpos = rec->getDouble("ZPOS"); - parent->add(new GeoTransform(HepGeom::TranslateZ3D(zpos)*HepGeom::TranslateY3D(ypos)*HepGeom::TranslateX3D(xpos))); + parent->add(new GeoTransform(GeoTrf::TranslateZ3D(zpos)*GeoTrf::TranslateY3D(ypos)*GeoTrf::TranslateX3D(xpos))); parent->add(pv); } return pv; diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapDMConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapDMConstruction.cxx index 75f1f7af96147f42a581d0a10e7b3d3d0bcffb96..768040c298b7576dfbe511adaf17a36041959e10 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapDMConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapDMConstruction.cxx @@ -22,6 +22,8 @@ #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoShapeSubtraction.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GeoModelUtilities/DecodeVersionKey.h" @@ -30,10 +32,7 @@ #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBRecord.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/Rotation.h" -#include "CLHEP/Units/PhysicalConstants.h" -#include "CLHEP/GenericFunctions/Variable.hh" +#include "GeoGenericFunctions/Variable.h" // *********************************************************************** // @@ -108,8 +107,8 @@ void LArGeo::EndcapDMConstruction::create(GeoFullPhysVol* envelope) unsigned int recordIndex; // Get materials - const GeoMaterial *alu = materialManager->getMaterial("std::Aluminium"); //2.7 CLHEP::g/CLHEP::cm3 - const GeoMaterial* matBoardsEnvelope = materialManager->getMaterial("LAr::BoardsEnvelope");// 0.932*CLHEP::gram/CLHEP::cm3); + const GeoMaterial *alu = materialManager->getMaterial("std::Aluminium"); //2.7 GeoModelKernelUnits::g/GeoModelKernelUnits::cm3 + const GeoMaterial* matBoardsEnvelope = materialManager->getMaterial("LAr::BoardsEnvelope");// 0.932*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); ////----------- Building Front-end crates -------------------- recordIndex = tubeMap["Ped2"]; @@ -186,9 +185,9 @@ void LArGeo::EndcapDMConstruction::create(GeoFullPhysVol* envelope) GeoTube *Ped2 = new GeoTube(ped2minr, ped2maxr, ped2zhlen); GeoTube *Ped3 = new GeoTube(ped3minr,ped3maxr , ped3zhlen); const GeoShape & CratePed=((*Pedestal).subtract(*Ped1). - subtract((*Ped2) <<HepGeom::TranslateY3D(-ped2ytr)*HepGeom::RotateY3D(90*CLHEP::deg)). - subtract((*Ped3) <<HepGeom::TranslateX3D(-ped3xtr)). - subtract((*Ped2) <<HepGeom::TranslateY3D(ped2ytr)*HepGeom::RotateY3D(90*CLHEP::deg))); + subtract((*Ped2) <<GeoTrf::TranslateY3D(-ped2ytr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)). + subtract((*Ped3) <<GeoTrf::TranslateX3D(-ped3xtr)). + subtract((*Ped2) <<GeoTrf::TranslateY3D(ped2ytr)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg))); GeoLogVol *lvped = new GeoLogVol("LAr::DM::Ped",&CratePed,alu); GeoPhysVol *pedestal = new GeoPhysVol(lvped); @@ -197,7 +196,7 @@ void LArGeo::EndcapDMConstruction::create(GeoFullPhysVol* envelope) GeoBox *Crate1 = new GeoBox(crate1hlen, crate1hwdt, crate1hhgt-epsilon); GeoBox *Crate2 = new GeoBox(crate2hlen, crate2hwdt, crate2hhgt-epsilon); GeoBox *Crate3 = new GeoBox(crate3hlen, crate3hwdt, crate3hhgt-epsilon); - const GeoShape & FEBCrate=(*Crate1).subtract(*Crate2).add((*Crate3) <<HepGeom::TranslateX3D(-crate3xtr)); + const GeoShape & FEBCrate=(*Crate1).subtract(*Crate2).add((*Crate3) <<GeoTrf::TranslateX3D(-crate3xtr)); GeoLogVol *lvcrate = new GeoLogVol("LAr::DM::Crate",&FEBCrate,alu); GeoPhysVol *crate = new GeoPhysVol(lvcrate); @@ -208,14 +207,14 @@ void LArGeo::EndcapDMConstruction::create(GeoFullPhysVol* envelope) GeoPhysVol *boardenvelope = new GeoPhysVol(lvbenv); //-------------- Place volumes in envelope ---------------------------- - GeoTransform* xfCrateBase(new GeoTransform(HepGeom::TranslateX3D(crate1xtr)*HepGeom::TranslateZ3D(crate1ztr))); - GeoTransform* xfPedestBase(new GeoTransform(HepGeom::TranslateX3D(pedestxtr)*HepGeom::TranslateZ3D(pedestztr))); - GeoTransform* xfBoardEBase1(new GeoTransform(HepGeom::TranslateY3D(BoardEytr)*HepGeom::TranslateX3D(BoardExtr)*HepGeom::TranslateZ3D(BoardEztr))); - GeoTransform* xfBoardEBase2(new GeoTransform(HepGeom::TranslateY3D(-BoardEytr)*HepGeom::TranslateX3D(BoardExtr)*HepGeom::TranslateZ3D(BoardEztr))); + GeoTransform* xfCrateBase(new GeoTransform(GeoTrf::TranslateX3D(crate1xtr)*GeoTrf::TranslateZ3D(crate1ztr))); + GeoTransform* xfPedestBase(new GeoTransform(GeoTrf::TranslateX3D(pedestxtr)*GeoTrf::TranslateZ3D(pedestztr))); + GeoTransform* xfBoardEBase1(new GeoTransform(GeoTrf::TranslateY3D(BoardEytr)*GeoTrf::TranslateX3D(BoardExtr)*GeoTrf::TranslateZ3D(BoardEztr))); + GeoTransform* xfBoardEBase2(new GeoTransform(GeoTrf::TranslateY3D(-BoardEytr)*GeoTrf::TranslateX3D(BoardExtr)*GeoTrf::TranslateZ3D(BoardEztr))); for(unsigned i(0); i<LArEndcapCratePhiPos->size(); ++i) { - double phiPos = (*LArEndcapCratePhiPos)[i]->getDouble("PHIPOS")*CLHEP::deg; - GeoTransform* xfPhiPos(new GeoTransform(HepGeom::RotateZ3D(phiPos))); + double phiPos = (*LArEndcapCratePhiPos)[i]->getDouble("PHIPOS")*GeoModelKernelUnits::deg; + GeoTransform* xfPhiPos(new GeoTransform(GeoTrf::RotateZ3D(phiPos))); envelope->add(xfPhiPos); envelope->add(xfCrateBase); @@ -242,7 +241,7 @@ void LArGeo::EndcapDMConstruction::create(GeoFullPhysVol* envelope) GeoTube* endcapTube = new GeoTube((*EndcapDMTubes)[i]->getDouble("RMIN"),(*EndcapDMTubes)[i]->getDouble("RMAX"),(*EndcapDMTubes)[i]->getDouble("DZ")); GeoLogVol* endcapTubeLv = new GeoLogVol((*EndcapDMTubes)[i]->getString("TUBENAME"),endcapTube,matECServices); GeoPhysVol* endcapTubePv = new GeoPhysVol(endcapTubeLv); - envelope->add(new GeoTransform(HepGeom::TranslateZ3D((*EndcapDMTubes)[i]->getDouble("ZPOS")))); + envelope->add(new GeoTransform(GeoTrf::TranslateZ3D((*EndcapDMTubes)[i]->getDouble("ZPOS")))); envelope->add(endcapTubePv); } } diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapDMConstruction.h b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapDMConstruction.h index 307de66ecf9ad3d7f6576c772217a3ac1a211249..cb82f1a880127211c4ea22da50b7994704569e90 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapDMConstruction.h +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapDMConstruction.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef __EndcapDMConstruction_H__ -#define __EndcapDMConstruction_H__ +#ifndef LARGEOENDCAP_ENDCAPDMCONSTRUCTION_H +#define LARGEOENDCAP_ENDCAPDMCONSTRUCTION_H class GeoFullPhysVol; diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapPresamplerConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapPresamplerConstruction.cxx index 727960b3b202b07c0e5a823ef27db523e4adb29b..b89f9c4d31cce88c0305f9a2a178e4132591dd78 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapPresamplerConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapPresamplerConstruction.cxx @@ -12,18 +12,14 @@ #include "GeoModelKernel/GeoTubs.h" #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoIdentifierTag.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" -// For transforms: - -#include "CLHEP/Geometry/Transform3D.h" -// For units: -#include "CLHEP/Units/PhysicalConstants.h" - #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" @@ -107,14 +103,14 @@ GeoFullPhysVol* EndcapPresamplerConstruction::Envelope() /////////////////////////////////////////////////////////////////// // LAr Endcap Presampler GEOMETRY /////////////////////////////////////////////////////////////////// - double Rmin = 1231.74*CLHEP::mm; - double Rmax = 1701.98*CLHEP::mm; - double HalfZ = ((*presamplerPosition)[0]->getDouble("TCK")/2.)*CLHEP::cm; + double Rmin = 1231.74*GeoModelKernelUnits::mm; + double Rmax = 1701.98*GeoModelKernelUnits::mm; + double HalfZ = ((*presamplerPosition)[0]->getDouble("TCK")/2.)*GeoModelKernelUnits::cm; std::string name = "LAr::Endcap::Presampler::LiquidArgon"; - double phi_size = 360.*CLHEP::deg; + double phi_size = 360.*GeoModelKernelUnits::deg; double start_phi = 0.; if( m_isModule ){ diff --git a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapPresamplerGeometryHelper.cxx b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapPresamplerGeometryHelper.cxx index 835dbcc6e261495f06e37ace0491b0a450b7a1e5..df188ef362243e6bc1c9c67626915bfd6e020172 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapPresamplerGeometryHelper.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoEndcap/src/EndcapPresamplerGeometryHelper.cxx @@ -11,12 +11,10 @@ // 2-July-2003 Mikhail Leltchouk: local coordinates for determination // of etaBin, phiBin at any Endcap Presamplerposition. +#include "GeoModelKernel/Units.h" #include "LArGeoEndcap/EndcapPresamplerGeometryHelper.h" #include "LArGeoCode/VDetectorParameters.h" -// For units: -#include "CLHEP/Units/PhysicalConstants.h" - #include <cmath> #include <string> #include <iostream> @@ -50,22 +48,22 @@ double LArGeo::EndcapPresamplerGeometryHelper::GetValue(const kValue a_valueType switch (a_valueType) { case rMinEndcapPresampler: - //return 1231.74 * CLHEP::mm; + //return 1231.74 * GeoModelKernelUnits::mm; return m_parameters->GetValue("LArEMECPreMinRadius"); break; case rMaxEndcapPresampler: - //return 1701.98 * CLHEP::mm; + //return 1701.98 * GeoModelKernelUnits::mm; return m_parameters->GetValue("LArEMECPreMaxRadius"); break; // At nominal (zShift=0) endcap position absolute z-coordinates: // of the faces of the EndcapPresampler case zEndcapPresamplerFrontFace: - //return 3622. * CLHEP::mm; + //return 3622. * GeoModelKernelUnits::mm; return (m_parameters->GetValue("LArEMECPreNomPos") - GetValue(EndcapPresamplerHalfThickness)); break; case zEndcapPresamplerBackFace: - //return 3626. * CLHEP::mm; + //return 3626. * GeoModelKernelUnits::mm; return (m_parameters->GetValue("LArEMECPreNomPos") + GetValue(EndcapPresamplerHalfThickness)); break; @@ -75,8 +73,8 @@ double LArGeo::EndcapPresamplerGeometryHelper::GetValue(const kValue a_valueType break; case EndcapPresamplerZpositionInMother: // between cold wall center and presampler center which is at - // 3624 CLHEP::mm nominal (zShift=0) absolute position - return 30.5 * CLHEP::mm; + // 3624 GeoModelKernelUnits::mm nominal (zShift=0) absolute position + return 30.5 * GeoModelKernelUnits::mm; break; default: std::cerr << "EndcapPresamplerGeometryHelper::GetValue -- type '" diff --git a/LArCalorimeter/LArGeoModel/LArGeoFcal/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoFcal/CMakeLists.txt index 0a00338f74cf9e034f9a73771d647b1993bdc55b..f94aca8be35c492ae6926542c3f341f8521bebea 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoFcal/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoFcal/CMakeLists.txt @@ -8,7 +8,6 @@ atlas_subdir( LArGeoFcal ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC Database/RDBAccessSvc - DetectorDescription/GeoModel/GeoModelKernel PRIVATE Control/StoreGate DetectorDescription/GeoModel/GeoModelInterfaces @@ -18,8 +17,9 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # tag NEEDS_CORAL_BASE was not recognized in automatic conversion in cmt2cmake @@ -27,9 +27,8 @@ find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) atlas_add_library( LArGeoFcal src/*.cxx PUBLIC_HEADERS LArGeoFcal - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} GeoModelKernel StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} GeoModelUtilities GaudiKernel LArReadoutGeometry ) + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${GEOMODEL_NCLUDE_DIR} + PRIVATE_INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${GEOMODEL_LIBRARIES} StoreGateLib SGtests + PRIVATE_LINK_LIBRARIES ${EIGEN_LIBRARIES} GeoModelUtilities GaudiKernel LArReadoutGeometry ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoFcal/src/FCALConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoFcal/src/FCALConstruction.cxx index a5cea07bfc31810e6a2c200cd80a716c5660a0e3..90b09c85679eae970aa6421dd86aab84bc277683 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoFcal/src/FCALConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoFcal/src/FCALConstruction.cxx @@ -22,6 +22,8 @@ #include "GeoModelKernel/GeoCons.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoTrap.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -30,20 +32,15 @@ #include "GeoModelUtilities/StoredAlignX.h" #include "GeoModelUtilities/GeoDBUtils.h" -// For transforms: -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/Rotation.h" // For functions: -#include "CLHEP/GenericFunctions/Variable.hh" -#include "CLHEP/GenericFunctions/ArrayFunction.hh" +#include "GeoGenericFunctions/Variable.h" +#include "GeoGenericFunctions/ArrayFunction.h" #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBAccessSvc.h" #include "RDBAccessSvc/IRDBQuery.h" -// For units: -#include "CLHEP/Units/PhysicalConstants.h" #include "GaudiKernel/ISvcLocator.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" @@ -166,9 +163,9 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) std::string baseName = "LAr::FCAL::"; - double startZFCal1 = (*m_fcalMod)[0]->getDouble("STARTPOSITION"); //466.85 * CLHEP::cm; - //double startZFCal2 = (*m_fcalMod)[1]->getDouble("STARTPOSITION"); //512.83 * CLHEP::cm; - double startZFCal3 = (*m_fcalMod)[2]->getDouble("STARTPOSITION"); //560.28 * CLHEP::cm; + double startZFCal1 = (*m_fcalMod)[0]->getDouble("STARTPOSITION"); //466.85 * GeoModelKernelUnits::cm; + //double startZFCal2 = (*m_fcalMod)[1]->getDouble("STARTPOSITION"); //512.83 * GeoModelKernelUnits::cm; + double startZFCal3 = (*m_fcalMod)[2]->getDouble("STARTPOSITION"); //560.28 * GeoModelKernelUnits::cm; double outerModuleRadius1=(*m_fcalMod)[0]->getDouble("OUTERMODULERADIUS"); double outerModuleRadius2=(*m_fcalMod)[1]->getDouble("OUTERMODULERADIUS"); @@ -202,7 +199,7 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) double halfDepth = totalDepth/2.; std::string name = baseName + "LiquidArgonC"; - GeoTubs *tubs = new GeoTubs(innerRadius,outerRadius,halfDepth,0,360*CLHEP::deg); + GeoTubs *tubs = new GeoTubs(innerRadius,outerRadius,halfDepth,0,360*GeoModelKernelUnits::deg); GeoLogVol *logVol= new GeoLogVol(name, tubs, LAr); fcalPhysical = new GeoFullPhysVol(logVol); } @@ -233,11 +230,11 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) const IRDBRecord *posRec = GeoDBUtils::getTransformRecord(m_LArPosition, bPos ? "FCAL1_POS":"FCAL1_NEG"); if (!posRec) throw std::runtime_error("Error, no lar position record in the database") ; - HepGeom::Transform3D xfPos = GeoDBUtils::getTransform(posRec); + GeoTrf::Transform3D xfPos = GeoDBUtils::getTransform(posRec); GeoAlignableTransform *xfAbs1 = new GeoAlignableTransform(xfPos); fcalPhysical->add(xfAbs1); - if (!bPos) fcalPhysical->add(new GeoTransform(HepGeom::RotateY3D(180*CLHEP::deg))); + if (!bPos) fcalPhysical->add(new GeoTransform(GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg))); fcalPhysical->add(physVol); modPhysical = physVol; @@ -256,18 +253,18 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) // 16 Troughs representing Cable Harnesses: if(m_fullGeo) if(m_absPhysical1==0) { - double troughDepth = 1.0 * CLHEP::cm; + double troughDepth = 1.0 * GeoModelKernelUnits::cm; double outerRadius = outerModuleRadius1; double innerRadius = outerRadius - troughDepth; double halfLength = fullModuleDepth1/ 2.0; - double deltaPhi = 5.625 * CLHEP::deg; - double startPhi = 11.25 * CLHEP::deg - deltaPhi/2.0; + double deltaPhi = 5.625 * GeoModelKernelUnits::deg; + double startPhi = 11.25 * GeoModelKernelUnits::deg - deltaPhi/2.0; GeoTubs * tubs = new GeoTubs(innerRadius,outerRadius,halfLength,startPhi,deltaPhi ); GeoLogVol *logVol = new GeoLogVol(baseName+"Module1::CableTrough",tubs,FCalCableHarness); GeoPhysVol *physVol = new GeoPhysVol(logVol); - Genfun::Variable i; - Genfun::GENFUNCTION rotationAngle = 22.5*CLHEP::deg*i; - GeoXF::TRANSFUNCTION xf = GeoXF::Pow(HepGeom::RotateZ3D(1.0),rotationAngle); + GeoGenfun::Variable i; + GeoGenfun::GENFUNCTION rotationAngle = 22.5*GeoModelKernelUnits::deg*i; + GeoXF::TRANSFUNCTION xf = GeoXF::Pow(GeoTrf::RotateZ3D(1.0),rotationAngle); GeoSerialTransformer *st = new GeoSerialTransformer(physVol,&xf,16); modPhysical->add(st); } @@ -332,7 +329,7 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) if (m_VisLimit != -1 && (counter++ > m_VisLimit)) continue; if(m_fullGeo) { - GeoTransform *xf = new GeoTransform(HepGeom::Translate3D(thisTubeX*CLHEP::cm, thisTubeY*CLHEP::cm,0)); + GeoTransform *xf = new GeoTransform(GeoTrf::Translate3D(thisTubeX*GeoModelKernelUnits::cm, thisTubeY*GeoModelKernelUnits::cm,0)); modPhysical->add(xf); modPhysical->add(physVol); } @@ -365,11 +362,11 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) const IRDBRecord *posRec = GeoDBUtils::getTransformRecord(m_LArPosition, bPos ? "FCAL2_POS":"FCAL2_NEG"); if (!posRec) throw std::runtime_error("Error, no lar position record in the database") ; - HepGeom::Transform3D xfPos = GeoDBUtils::getTransform(posRec); + GeoTrf::Transform3D xfPos = GeoDBUtils::getTransform(posRec); GeoAlignableTransform *xfAbs2 = new GeoAlignableTransform(xfPos); fcalPhysical->add(xfAbs2); - if (!bPos) fcalPhysical->add(new GeoTransform(HepGeom::RotateY3D(180*CLHEP::deg))); + if (!bPos) fcalPhysical->add(new GeoTransform(GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg))); fcalPhysical->add(physVol); modPhysical = physVol; @@ -388,18 +385,18 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) // 16 Troughs representing Cable Harnesses: if(m_fullGeo) if(m_absPhysical2==0) { - double troughDepth = 1.0 * CLHEP::cm; + double troughDepth = 1.0 * GeoModelKernelUnits::cm; double outerRadius = outerModuleRadius2; double innerRadius = outerRadius - troughDepth; double halfLength = fullModuleDepth2/ 2.0; - double deltaPhi = 5.625 * CLHEP::deg; - double startPhi = 11.25 * CLHEP::deg - deltaPhi/2.0; + double deltaPhi = 5.625 * GeoModelKernelUnits::deg; + double startPhi = 11.25 * GeoModelKernelUnits::deg - deltaPhi/2.0; GeoTubs * tubs = new GeoTubs(innerRadius,outerRadius,halfLength,startPhi,deltaPhi ); GeoLogVol *logVol = new GeoLogVol(baseName+"Module2::CableTrough",tubs,FCalCableHarness); GeoPhysVol *physVol = new GeoPhysVol(logVol); - Genfun::Variable i; - Genfun::GENFUNCTION rotationAngle = 22.5*CLHEP::deg*i; - GeoXF::TRANSFUNCTION xf = GeoXF::Pow(HepGeom::RotateZ3D(1.0),rotationAngle); + GeoGenfun::Variable i; + GeoGenfun::GENFUNCTION rotationAngle = 22.5*GeoModelKernelUnits::deg*i; + GeoXF::TRANSFUNCTION xf = GeoXF::Pow(GeoTrf::RotateZ3D(1.0),rotationAngle); GeoSerialTransformer *st = new GeoSerialTransformer(physVol,&xf,16); modPhysical->add(st); } @@ -472,7 +469,7 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) if (m_VisLimit != -1 && (counter++ > m_VisLimit)) continue; if(m_fullGeo) { - GeoTransform *xf = new GeoTransform(HepGeom::Translate3D(thisTubeX*CLHEP::cm, thisTubeY*CLHEP::cm,0)); + GeoTransform *xf = new GeoTransform(GeoTrf::Translate3D(thisTubeX*GeoModelKernelUnits::cm, thisTubeY*GeoModelKernelUnits::cm,0)); modPhysical->add(xf); modPhysical->add(gapPhys); } @@ -505,11 +502,11 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) // Alignable transform const IRDBRecord *posRec = GeoDBUtils::getTransformRecord(m_LArPosition, bPos ? "FCAL3_POS":"FCAL3_NEG"); if (!posRec) throw std::runtime_error("Error, no lar position record in the database") ; - HepGeom::Transform3D xfPos = GeoDBUtils::getTransform(posRec); + GeoTrf::Transform3D xfPos = GeoDBUtils::getTransform(posRec); GeoAlignableTransform *xfAbs3 = new GeoAlignableTransform(xfPos); fcalPhysical->add(xfAbs3); - if (!bPos) fcalPhysical->add(new GeoTransform(HepGeom::RotateY3D(180*CLHEP::deg))); + if (!bPos) fcalPhysical->add(new GeoTransform(GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg))); fcalPhysical->add(physVol); modPhysical = physVol; @@ -530,42 +527,42 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) if(m_fullGeo) if(m_absPhysical3==0) { static double rotAngles[] = - { 11.25 * CLHEP::deg, - 22.50 * CLHEP::deg, - 45.00 * CLHEP::deg, - 56.25 * CLHEP::deg, - 67.50 * CLHEP::deg, - 90.00 * CLHEP::deg, // first quarter - 101.25 * CLHEP::deg, - 112.50 * CLHEP::deg, - 135.00 * CLHEP::deg, - 146.25 * CLHEP::deg, - 157.50 * CLHEP::deg, - 180.00 * CLHEP::deg, // second quarter - 191.25 * CLHEP::deg, - 202.50 * CLHEP::deg, - 225.00 * CLHEP::deg, - 236.25 * CLHEP::deg, - 247.50 * CLHEP::deg, - 270.00 * CLHEP::deg, // third quarter - 281.25 * CLHEP::deg, - 292.50 * CLHEP::deg, - 315.00 * CLHEP::deg, - 326.25 * CLHEP::deg, - 337.50 * CLHEP::deg, - 360.00 * CLHEP::deg }; + { 11.25 * GeoModelKernelUnits::deg, + 22.50 * GeoModelKernelUnits::deg, + 45.00 * GeoModelKernelUnits::deg, + 56.25 * GeoModelKernelUnits::deg, + 67.50 * GeoModelKernelUnits::deg, + 90.00 * GeoModelKernelUnits::deg, // first quarter + 101.25 * GeoModelKernelUnits::deg, + 112.50 * GeoModelKernelUnits::deg, + 135.00 * GeoModelKernelUnits::deg, + 146.25 * GeoModelKernelUnits::deg, + 157.50 * GeoModelKernelUnits::deg, + 180.00 * GeoModelKernelUnits::deg, // second quarter + 191.25 * GeoModelKernelUnits::deg, + 202.50 * GeoModelKernelUnits::deg, + 225.00 * GeoModelKernelUnits::deg, + 236.25 * GeoModelKernelUnits::deg, + 247.50 * GeoModelKernelUnits::deg, + 270.00 * GeoModelKernelUnits::deg, // third quarter + 281.25 * GeoModelKernelUnits::deg, + 292.50 * GeoModelKernelUnits::deg, + 315.00 * GeoModelKernelUnits::deg, + 326.25 * GeoModelKernelUnits::deg, + 337.50 * GeoModelKernelUnits::deg, + 360.00 * GeoModelKernelUnits::deg }; - Genfun::ArrayFunction rotationAngle(rotAngles,rotAngles+24); - double troughDepth = 1.0 * CLHEP::cm; + GeoGenfun::ArrayFunction rotationAngle(rotAngles,rotAngles+24); + double troughDepth = 1.0 * GeoModelKernelUnits::cm; double outerRadius = outerModuleRadius3; double innerRadius = outerRadius - troughDepth; double halfLength = fullModuleDepth3/ 2.0; - double deltaPhi = 5.625 * CLHEP::deg; - double startPhi = 11.25 * CLHEP::deg - deltaPhi/2.0; + double deltaPhi = 5.625 * GeoModelKernelUnits::deg; + double startPhi = 11.25 * GeoModelKernelUnits::deg - deltaPhi/2.0; GeoTubs * tubs = new GeoTubs(innerRadius,outerRadius,halfLength,startPhi,deltaPhi ); GeoLogVol *logVol = new GeoLogVol(baseName+"Module3::CableTrough",tubs,FCalCableHarness); GeoPhysVol *physVol = new GeoPhysVol(logVol); - GeoXF::TRANSFUNCTION xf = GeoXF::Pow(HepGeom::RotateZ3D(1.0),rotationAngle); + GeoXF::TRANSFUNCTION xf = GeoXF::Pow(GeoTrf::RotateZ3D(1.0),rotationAngle); GeoSerialTransformer *st = new GeoSerialTransformer(physVol,&xf,24); modPhysical->add(st); } @@ -640,7 +637,7 @@ GeoVFullPhysVol* LArGeo::FCALConstruction::GetEnvelope(bool bPos) if (m_VisLimit != -1 && (counter++ > m_VisLimit)) continue; if(m_fullGeo) { - GeoTransform *xf = new GeoTransform(HepGeom::Translate3D(thisTubeX*CLHEP::cm, thisTubeY*CLHEP::cm,0)); + GeoTransform *xf = new GeoTransform(GeoTrf::Translate3D(thisTubeX*GeoModelKernelUnits::cm, thisTubeY*GeoModelKernelUnits::cm,0)); modPhysical->add(xf); modPhysical->add(gapPhys); } diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/CMakeLists.txt index 47df10bf735dd13b66ed473d860dd3130f646517..2fbaaf6df58ec5d94a134b3181bd1d85abeab9c1 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/CMakeLists.txt @@ -7,7 +7,6 @@ atlas_subdir( LArGeoH62002Algs ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities LArCalorimeter/LArGeoModel/LArReadoutGeometry PRIVATE @@ -22,15 +21,16 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( LArGeoH62002Algs src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} GeoModelKernel GeoModelUtilities LArReadoutGeometry StoreGateLib SGtests GaudiKernel LArG4RunControl LArGeoCode LArGeoEndcap LArGeoH6Cryostats ) + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} GeoModelUtilities LArReadoutGeometry StoreGateLib SGtests GaudiKernel LArG4RunControl LArGeoCode LArGeoEndcap LArGeoH6Cryostats ) # Install files from the package: atlas_install_headers( LArGeoH62002Algs ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/ExcluderConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/ExcluderConstruction.cxx index 03d858974b397f930a5ac2334ea5785fa660babf..6786c4e35f3153f5b3196a006b9d65569e1d6041 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/ExcluderConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/ExcluderConstruction.cxx @@ -23,18 +23,14 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" -// For transforms: - -#include "CLHEP/Geometry/Transform3D.h" -// For units: -#include "CLHEP/Units/PhysicalConstants.h" - // For the database: #include "RDBAccessSvc/IRDBAccessSvc.h" @@ -92,7 +88,7 @@ GeoPhysVol* LArGeo::ExcluderConstruction::GetEnvelope() const GeoElement* H=materialManager->getElement("Hydrogen"); const GeoElement* O=materialManager->getElement("Oxygen"); const GeoElement* N=materialManager->getElement("Nitrogen"); - GeoMaterial* Rohacell = new GeoMaterial(name="Rohacell", density=0.11*CLHEP::g/CLHEP::cm3); + GeoMaterial* Rohacell = new GeoMaterial(name="Rohacell", density=0.11*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); Rohacell->add(C,0.6465); Rohacell->add(H,0.07836); Rohacell->add(O,0.19137); @@ -115,25 +111,25 @@ GeoPhysVol* LArGeo::ExcluderConstruction::GetEnvelope() // It is a Union out of a GeoBox and a GeoTubs. // Box Dimensions: - double xbox = 300.0 *CLHEP::mm; - double ybox = 160.0 *CLHEP::mm; - double zbox = 300.7 *CLHEP::mm; + double xbox = 300.0 *GeoModelKernelUnits::mm; + double ybox = 160.0 *GeoModelKernelUnits::mm; + double zbox = 300.7 *GeoModelKernelUnits::mm; // // Tubs Dimensions: - double ztubs = 300.0 *CLHEP::mm; - double phitubs= 76.2 *CLHEP::deg; - double delphi = 27.6 *CLHEP::deg; - double rcold = 1249.5 *CLHEP::mm; - double rmin = 1220.0 *CLHEP::mm; + double ztubs = 300.0 *GeoModelKernelUnits::mm; + double phitubs= 76.2 *GeoModelKernelUnits::deg; + double delphi = 27.6 *GeoModelKernelUnits::deg; + double rcold = 1249.5 *GeoModelKernelUnits::mm; + double rmin = 1220.0 *GeoModelKernelUnits::mm; - // The radius of the cryostat cold wall is: 1250 CLHEP::mm + // The radius of the cryostat cold wall is: 1250 GeoModelKernelUnits::mm // Before we make the union, we have to shift the box in y (that actually along the beam axis) // and there, positive y goes from the cryostat centre towards the beam window. std::string ExcluderName = "LAr::H6::Cryostat::Excluder"; GeoBox* rohaBox = new GeoBox(xbox, ybox, zbox); // The rectangular part of the excluder - const GeoShapeShift & rohaBoxShift = (*rohaBox << HepGeom::TranslateY3D(1062.85*CLHEP::mm) ); + const GeoShapeShift & rohaBoxShift = (*rohaBox << GeoTrf::TranslateY3D(1062.85*GeoModelKernelUnits::mm) ); GeoTubs* rohaTubs = new GeoTubs(rmin, rcold, ztubs, phitubs, delphi); // The round part of the excluder // Combine the two parts to make one excluder of the correct shape: diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/FrontBeamConstructionH62002.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/FrontBeamConstructionH62002.cxx index e72c0ca78695f7e5ab05c44564247df97129c470..bd3ac799fc918b496c8f69e6516dfd5546542e83 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/FrontBeamConstructionH62002.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/FrontBeamConstructionH62002.cxx @@ -23,17 +23,14 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoSerialDenominator.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GeoModelKernel/GeoShapeUnion.h" -#include "GeoModelKernel/GeoShapeShift.h" - -// For transforms: -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/GenericFunctions/Variable.hh" -// For units: -#include "CLHEP/Units/PhysicalConstants.h" +#include "GeoModelKernel/GeoShapeShift.h" +#include "GeoGenericFunctions/Variable.h" // For the database: #include "RDBAccessSvc/IRDBAccessSvc.h" @@ -143,8 +140,8 @@ GeoVPhysVol* LArGeo::FrontBeamConstructionH62002::GetEnvelope() std::string baseName = "LAr::TBH62002"; std::string H62002FrontBeamName = baseName + "::FrontBeam"; - const double H62002FrontBeamXY = 2000.*CLHEP::mm; - const double H62002FrontBeamZ = 350.*CLHEP::mm; + const double H62002FrontBeamXY = 2000.*GeoModelKernelUnits::mm; + const double H62002FrontBeamZ = 350.*GeoModelKernelUnits::mm; GeoBox* H62002FrontBeamShape = new GeoBox( H62002FrontBeamXY, H62002FrontBeamXY, H62002FrontBeamZ ); @@ -161,27 +158,27 @@ GeoVPhysVol* LArGeo::FrontBeamConstructionH62002::GetEnvelope() // In the old stand-alone code, all three were round with a radius of 5cm // and 7.5mm thickness. // Logbooks in the control-room say that their xyz sizes are: - // B1 : 30 x 30 x 10 CLHEP::mm - // W1,2 : 150 x 150 x 10 CLHEP::mm + // B1 : 30 x 30 x 10 GeoModelKernelUnits::mm + // W1,2 : 150 x 150 x 10 GeoModelKernelUnits::mm // They are certainly not round, so stick with the logbook values // The beam sees the instrumentation in the following order: // W1, W2, B1, MWPC5 log << "Create Front Scintillators ..." << std::endl; - const double Wxy= 75.0*CLHEP::mm; - const double Wz = 5.0*CLHEP::mm; - const double Bxy= 15.0*CLHEP::mm; - const double Bz = 5.0*CLHEP::mm; + const double Wxy= 75.0*GeoModelKernelUnits::mm; + const double Wz = 5.0*GeoModelKernelUnits::mm; + const double Bxy= 15.0*GeoModelKernelUnits::mm; + const double Bz = 5.0*GeoModelKernelUnits::mm; std::vector<double> v_ScintXY; std::vector<double> v_ScintZ; v_ScintXY.push_back(Wxy); v_ScintXY.push_back(Wxy); v_ScintXY.push_back(Bxy); - v_ScintZ.push_back(170.*CLHEP::mm); - v_ScintZ.push_back(200.*CLHEP::mm); - v_ScintZ.push_back(340.*CLHEP::mm); + v_ScintZ.push_back(170.*GeoModelKernelUnits::mm); + v_ScintZ.push_back(200.*GeoModelKernelUnits::mm); + v_ScintZ.push_back(340.*GeoModelKernelUnits::mm); // Create one Scintillator and place it twice along z: @@ -196,7 +193,7 @@ GeoVPhysVol* LArGeo::FrontBeamConstructionH62002::GetEnvelope() //BScintPhysical->add( new GeoNameTag(ScintName) ); for ( unsigned int i = 0; i < v_ScintZ.size(); i++ ) { m_H62002FrontBeamPhysical->add( new GeoIdentifierTag(i) ); - m_H62002FrontBeamPhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, (v_ScintZ[ i ]-H62002FrontBeamZ) ) ) ) ; m_H62002FrontBeamPhysical->add( new GeoNameTag(ScintName) ); + m_H62002FrontBeamPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (v_ScintZ[ i ]-H62002FrontBeamZ) ) ) ) ; m_H62002FrontBeamPhysical->add( new GeoNameTag(ScintName) ); switch(i) { case 0: case 1: { m_H62002FrontBeamPhysical->add( WScintPhysical ); break; } @@ -211,12 +208,12 @@ GeoVPhysVol* LArGeo::FrontBeamConstructionH62002::GetEnvelope() //------ Get MWPC number 5 from LArGeoH6Cryostats - const double MwpcPos = 605.*CLHEP::mm; - double WireStep = 2.*CLHEP::mm; + const double MwpcPos = 605.*GeoModelKernelUnits::mm; + double WireStep = 2.*GeoModelKernelUnits::mm; MWPCConstruction mwpcXConstruction (WireStep); GeoVPhysVol* mwpcEnvelope = mwpcXConstruction.GetEnvelope(); m_H62002FrontBeamPhysical->add(new GeoIdentifierTag(5)); - m_H62002FrontBeamPhysical->add( new GeoTransform(HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, (MwpcPos-H62002FrontBeamZ) ) ) ); + m_H62002FrontBeamPhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (MwpcPos-H62002FrontBeamZ) ) ) ); m_H62002FrontBeamPhysical->add(mwpcEnvelope); //------ Done with creating an MWPC from LArGeoH6Cryostats diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/HECConstructionH62002.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/HECConstructionH62002.cxx index e4a629bcac3dcdd7d043b571af2236038a258f3b..44c6937ad57a9f267f79ee977c0fd148d105acf8 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/HECConstructionH62002.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/HECConstructionH62002.cxx @@ -22,10 +22,12 @@ #include "GeoModelKernel/GeoSerialTransformer.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoShapeUnion.h" -#include "CLHEP/GenericFunctions/AbsFunction.hh" -#include "CLHEP/GenericFunctions/Variable.hh" -#include "CLHEP/GenericFunctions/Sin.hh" -#include "CLHEP/GenericFunctions/Cos.hh" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" +#include "GeoGenericFunctions/AbsFunction.h" +#include "GeoGenericFunctions/Variable.h" +#include "GeoGenericFunctions/Sin.h" +#include "GeoGenericFunctions/Cos.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -44,7 +46,7 @@ -using namespace Genfun; +using namespace GeoGenfun; using namespace GeoXF; @@ -149,7 +151,7 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() int lastPlaneHEC = ( sizeof(HECMotherZplan) / sizeof(double) ); - double moduleDeltaPhi = 2.*M_PI/32. ; // = 11.25*CLHEP::deg; + double moduleDeltaPhi = 2.*M_PI/32. ; // = 11.25*GeoModelKernelUnits::deg; double phiStart [] = {-19. , -18. } ; double hecPhistart[] = { phiStart[0]*M_PI/32 , phiStart[1]*M_PI/32 } ; double modulePhistart[] = { (phiStart[0]+2.)*M_PI/32 , (phiStart[1]+2.)*M_PI/32 } ; @@ -210,9 +212,9 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() double spacerDiameter[2]; double ztie[2]; // This is the +/- z length of the tie rod in the LAr gap - ztie[0]=-0.227825*CLHEP::cm; - ztie[1]= 0.227825*CLHEP::cm; - double rodSize = 0.39435*CLHEP::cm; + ztie[0]=-0.227825*GeoModelKernelUnits::cm; + ztie[1]= 0.227825*GeoModelKernelUnits::cm; + double rodSize = 0.39435*GeoModelKernelUnits::cm; @@ -223,7 +225,7 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() const GeoLogVol* logiSlice[3]; GeoPhysVol* physiSlice[3]; // Absorber - double radialShift = 1.02*CLHEP::cm; // absorbers are adjusted by this amount + double radialShift = 1.02*GeoModelKernelUnits::cm; // absorbers are adjusted by this amount GeoTubs* solidFrontAbsorber[2]; const GeoLogVol* logiFrontAbsorber[2]; GeoPhysVol* physiFrontAbsorber[2]; @@ -270,19 +272,19 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() int moduleNumberFront = 3; int moduleNumberRear = 2; // radial dimensions of the modules: - double moduleRinner1 = (*hecLongitudinalBlock)[0]->getDouble("BLRMN")*CLHEP::cm; - double moduleRinner2 = (*hecLongitudinalBlock)[1]->getDouble("BLRMN")*CLHEP::cm; - double moduleRouter = (*hecLongitudinalBlock)[0]->getDouble("BLRMX")*CLHEP::cm; + double moduleRinner1 = (*hecLongitudinalBlock)[0]->getDouble("BLRMN")*GeoModelKernelUnits::cm; + double moduleRinner2 = (*hecLongitudinalBlock)[1]->getDouble("BLRMN")*GeoModelKernelUnits::cm; + double moduleRouter = (*hecLongitudinalBlock)[0]->getDouble("BLRMX")*GeoModelKernelUnits::cm; // thickness of Cu pads, LAr gaps and inter-wheel gap: - double copperPad = (*hadronicEndcap)[0]->getDouble("COPPER")*CLHEP::cm; - double gapSize = (*hadronicEndcap)[0]->getDouble("LARG")*CLHEP::cm; - double betweenWheel = (*hadronicEndcap)[0]->getDouble("GAPWHL")*CLHEP::cm; + double copperPad = (*hadronicEndcap)[0]->getDouble("COPPER")*GeoModelKernelUnits::cm; + double gapSize = (*hadronicEndcap)[0]->getDouble("LARG")*GeoModelKernelUnits::cm; + double betweenWheel = (*hadronicEndcap)[0]->getDouble("GAPWHL")*GeoModelKernelUnits::cm; for (int idepth=0; idepth < depthNumber; ++idepth) { - depthSize[idepth] = (*hecLongitudinalBlock)[idepth]->getDouble("BLDPTH")*CLHEP::cm; - firstAbsorber[idepth]= (*hecLongitudinalBlock)[idepth]->getDouble("PLATE0")*CLHEP::cm; + depthSize[idepth] = (*hecLongitudinalBlock)[idepth]->getDouble("BLDPTH")*GeoModelKernelUnits::cm; + firstAbsorber[idepth]= (*hecLongitudinalBlock)[idepth]->getDouble("PLATE0")*GeoModelKernelUnits::cm; gapNumber[idepth] = (int) (*hecLongitudinalBlock)[idepth]->getDouble("BLMOD"); } @@ -291,8 +293,8 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() std::ostringstream A0STR; A0STR << "_" << ikapton; const std::string A0 = A0STR.str(); - kaptonPosition[ikapton] = (*hadronicEndcap)[0]->getDouble("KPTPOS"+A0)*CLHEP::cm; - kaptonWidth[ikapton] = (*hadronicEndcap)[0]->getDouble("KPTWID"+A0)*CLHEP::cm; + kaptonPosition[ikapton] = (*hadronicEndcap)[0]->getDouble("KPTPOS"+A0)*GeoModelKernelUnits::cm; + kaptonWidth[ikapton] = (*hadronicEndcap)[0]->getDouble("KPTWID"+A0)*GeoModelKernelUnits::cm; } for (int itie=0; itie < 4; ++itie) @@ -300,8 +302,8 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() std::ostringstream A0STR; A0STR << "_" << itie; const std::string A0 = A0STR.str(); - tieRodPositionX[itie] = (*hadronicEndcap)[0]->getDouble("RODPOSX"+A0)*CLHEP::cm; - tieRodPositionY[itie] = (*hadronicEndcap)[0]->getDouble("RODPOSR"+A0)*CLHEP::cm; + tieRodPositionX[itie] = (*hadronicEndcap)[0]->getDouble("RODPOSX"+A0)*GeoModelKernelUnits::cm; + tieRodPositionY[itie] = (*hadronicEndcap)[0]->getDouble("RODPOSR"+A0)*GeoModelKernelUnits::cm; } for (int i=0; i < 2; ++i) @@ -309,16 +311,16 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() std::ostringstream A0STR; A0STR << "_" << i; const std::string A0 = A0STR.str(); - tieRodDiameter[i] = (*hadronicEndcap)[0]->getDouble("RODDIM"+A0)*CLHEP::cm; - spacerDiameter[i] = (*hadronicEndcap)[0]->getDouble("SPCDIM"+A0)*CLHEP::cm; + tieRodDiameter[i] = (*hadronicEndcap)[0]->getDouble("RODDIM"+A0)*GeoModelKernelUnits::cm; + spacerDiameter[i] = (*hadronicEndcap)[0]->getDouble("SPCDIM"+A0)*GeoModelKernelUnits::cm; } - double frontAbsThickness = (*hadronicEndcap)[0]->getDouble("PLATE_0")*CLHEP::cm; - double rearAbsThickness = (*hadronicEndcap)[0]->getDouble("PLATE_1")*CLHEP::cm; + double frontAbsThickness = (*hadronicEndcap)[0]->getDouble("PLATE_0")*GeoModelKernelUnits::cm; + double rearAbsThickness = (*hadronicEndcap)[0]->getDouble("PLATE_1")*GeoModelKernelUnits::cm; // Radial dimensions and z-plane locations - double zCoordinate[] = {0.0*CLHEP::cm, depthSize[0], depthSize[0], 816.51*CLHEP::mm, 816.51*CLHEP::mm, 1350.*CLHEP::mm }; + double zCoordinate[] = {0.0*GeoModelKernelUnits::cm, depthSize[0], depthSize[0], 816.51*GeoModelKernelUnits::mm, 816.51*GeoModelKernelUnits::mm, 1350.*GeoModelKernelUnits::mm }; double innerRadius[] = {moduleRinner1,moduleRinner1, moduleRinner2,moduleRinner2,moduleRinner2,moduleRinner2,}; @@ -439,9 +441,9 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() //---------------------------------------------------------------- // Place FrontModules into FrontHEC wheel and RearModule into RearHEC wheel //---------------------------------------------------------------- - Genfun::Variable Index; - Genfun::GENFUNCTION ModuleRotationAngle = -moduleDeltaPhi + moduleDeltaPhi*Index; - GeoXF::TRANSFUNCTION tf = GeoXF::Pow(HepGeom::RotateZ3D(1.0),ModuleRotationAngle); + GeoGenfun::Variable Index; + GeoGenfun::GENFUNCTION ModuleRotationAngle = -moduleDeltaPhi + moduleDeltaPhi*Index; + GeoXF::TRANSFUNCTION tf = GeoXF::Pow(GeoTrf::RotateZ3D(1.0),ModuleRotationAngle); GeoSerialIdentifier *sIF = new GeoSerialIdentifier(1); @@ -449,8 +451,8 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() physiFrontHEC->add(sIF); physiFrontHEC->add(sTF); - Genfun::GENFUNCTION ModuleRotationAngleR = -moduleDeltaPhi/2. + moduleDeltaPhi*Index; - GeoXF::TRANSFUNCTION tr = GeoXF::Pow(HepGeom::RotateZ3D(1.0),ModuleRotationAngleR); + GeoGenfun::GENFUNCTION ModuleRotationAngleR = -moduleDeltaPhi/2. + moduleDeltaPhi*Index; + GeoXF::TRANSFUNCTION tr = GeoXF::Pow(GeoTrf::RotateZ3D(1.0),ModuleRotationAngleR); GeoSerialIdentifier *sIR = new GeoSerialIdentifier(2); GeoSerialTransformer *sTR = new GeoSerialTransformer (physiRearModule,&tr, moduleNumberRear); @@ -488,7 +490,7 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() //---------------------------------------------------------------- // Absorbers , the inner and outer Radius are smaller by radialShift // but positionned in the center of depth. this alows - // to have 2 CLHEP::mm gap between the copper plates of neighbor FrontModules + // to have 2 GeoModelKernelUnits::mm gap between the copper plates of neighbor FrontModules //---------------------------------------------------------------- // Two different Absorbers for the front depths: @@ -553,7 +555,7 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() // Placement of the actual depth: depthPositionZ +=depthSize[idepth]/2.; physiFrontModule->add(new GeoIdentifierTag(100+idepth)); - physiFrontModule->add(new GeoTransform(HepGeom::Translate3D(0,0,depthPositionZ))); + physiFrontModule->add(new GeoTransform(GeoTrf::Translate3D(0,0,depthPositionZ))); physiFrontModule->add(physiDepth[idepth]); @@ -572,9 +574,9 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() else { islice=2; frontabsorberNo=1; } double slicePositionZ=firstAbsorber[idepth]+ gapSize/2.0 -depthSize[idepth]/2.0; - Genfun::Variable Index; - GeoXF::TRANSFUNCTION TS = GeoXF::Pow(HepGeom::TranslateZ3D(1.0),slicePositionZ + (frontAbsThickness+gapSize)*Index); - GeoXF::TRANSFUNCTION TA = HepGeom::TranslateY3D(-radialShift)*GeoXF::Pow(HepGeom::TranslateZ3D(1.0), + GeoGenfun::Variable Index; + GeoXF::TRANSFUNCTION TS = GeoXF::Pow(GeoTrf::TranslateZ3D(1.0),slicePositionZ + (frontAbsThickness+gapSize)*Index); + GeoXF::TRANSFUNCTION TA = GeoTrf::TranslateY3D(-radialShift)*GeoXF::Pow(GeoTrf::TranslateZ3D(1.0), absorberPositionZ[idepth] + (frontAbsThickness+gapSize)*Index); GeoSerialIdentifier *sI = new GeoSerialIdentifier(sliceCopyNo[idepth]); GeoSerialTransformer *sTS = new GeoSerialTransformer(physiSlice[islice], &TS, gapNumber[idepth]); @@ -602,7 +604,7 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() physiDepth[idepth] = new GeoPhysVol(logiDepth[idepth]); physiRearModule->add(new GeoIdentifierTag(100+idepth)); - physiRearModule->add(new GeoTransform(HepGeom::Translate3D(0,0,depthPositionZ))); + physiRearModule->add(new GeoTransform(GeoTrf::Translate3D(0,0,depthPositionZ))); physiRearModule->add(physiDepth[idepth]); @@ -612,9 +614,9 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() // Position 4 sensitive gaps and rear absorbers in 2 depths of a Rear Module: int islice=2; double slicePositionZ=firstAbsorber[idepth]+ gapSize/2.0 -depthSize[idepth]/2.0; - Genfun::Variable Index; - GeoXF::TRANSFUNCTION TS = GeoXF::Pow(HepGeom::TranslateZ3D(1.0),slicePositionZ + (rearAbsThickness+gapSize)*Index); - GeoXF::TRANSFUNCTION TA = HepGeom::TranslateY3D(-radialShift)*GeoXF::Pow(HepGeom::TranslateZ3D(1.0), + GeoGenfun::Variable Index; + GeoXF::TRANSFUNCTION TS = GeoXF::Pow(GeoTrf::TranslateZ3D(1.0),slicePositionZ + (rearAbsThickness+gapSize)*Index); + GeoXF::TRANSFUNCTION TA = GeoTrf::TranslateY3D(-radialShift)*GeoXF::Pow(GeoTrf::TranslateZ3D(1.0), absorberPositionZ[idepth] + (rearAbsThickness+gapSize)*Index); GeoSerialIdentifier *sI = new GeoSerialIdentifier(sliceCopyNo[idepth]); GeoSerialTransformer *sTS = new GeoSerialTransformer(physiSlice[islice], &TS, gapNumber[idepth]); @@ -632,13 +634,13 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() double firstAbsorberPositionZ = firstAbsorber[0]/2.- depthSize[0]/2.0; physiDepth[0]->add(new GeoIdentifierTag(50)); - physiDepth[0]->add(new GeoTransform(HepGeom::Translate3D(0,-radialShift,firstAbsorberPositionZ))); + physiDepth[0]->add(new GeoTransform(GeoTrf::Translate3D(0,-radialShift,firstAbsorberPositionZ))); physiDepth[0]->add(physiFirstAbsorber[0]); firstAbsorberPositionZ = firstAbsorber[3]/2.- depthSize[3]/2.0; physiDepth[3]->add(new GeoIdentifierTag(51)); - physiDepth[3]->add(new GeoTransform(HepGeom::Translate3D(0,-radialShift,firstAbsorberPositionZ))); + physiDepth[3]->add(new GeoTransform(GeoTrf::Translate3D(0,-radialShift,firstAbsorberPositionZ))); physiDepth[3]->add(physiFirstAbsorber[1]); @@ -685,13 +687,13 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() physiEstBoard = new GeoPhysVol(logiEstBoard); physiSlice[islice]->add(new GeoIdentifierTag(indexKapton)); - physiSlice[islice]->add(new GeoTransform(HepGeom::Translate3D(0,0,kaptonPositionZ))); + physiSlice[islice]->add(new GeoTransform(GeoTrf::Translate3D(0,0,kaptonPositionZ))); physiSlice[islice]->add(physiEstBoard); physiPadBoard = new GeoPhysVol(logiPadBoard); physiEstBoard->add(new GeoIdentifierTag(indexKapton)); - physiEstBoard->add(new GeoTransform(HepGeom::Translate3D(0,0,0))); + physiEstBoard->add(new GeoTransform(GeoTrf::Translate3D(0,0,0))); physiEstBoard->add(physiPadBoard); }//for islice @@ -701,10 +703,10 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() // Tie rods in Slice //---------------------------------------------------------------- - // double rodSize = 0.85*CLHEP::cm; + // double rodSize = 0.85*GeoModelKernelUnits::cm; for (int iwheel=0; iwheel<2; iwheel++) { - solidTieRod[iwheel] = new GeoTubs(0.*CLHEP::cm,spacerDiameter[iwheel]/2.,rodSize/2., 0.*CLHEP::deg,360.*CLHEP::deg); + solidTieRod[iwheel] = new GeoTubs(0.*GeoModelKernelUnits::cm,spacerDiameter[iwheel]/2.,rodSize/2., 0.*GeoModelKernelUnits::deg,360.*GeoModelKernelUnits::deg); logiTieRod[iwheel] = new GeoLogVol(tieRodName, solidTieRod[iwheel], Iron); } @@ -718,14 +720,14 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() physiTieRod[numberTie] = new GeoPhysVol(logiTieRod[numberTie]); physiSlice[islice]->add(new GeoIdentifierTag(indexRod)); - physiSlice[islice]->add(new GeoTransform(HepGeom::Translate3D(tieRodPositionX[indexRod], + physiSlice[islice]->add(new GeoTransform(GeoTrf::Translate3D(tieRodPositionX[indexRod], -tieRodPositionY[indexRod],ztie[iz]))); physiSlice[islice]->add(physiTieRod[numberTie]); physiTieRod[numberTie] = new GeoPhysVol(logiTieRod[numberTie]); physiSlice[islice]->add(new GeoIdentifierTag(indexRod)); - physiSlice[islice]->add(new GeoTransform(HepGeom::Translate3D(-tieRodPositionX[indexRod], + physiSlice[islice]->add(new GeoTransform(GeoTrf::Translate3D(-tieRodPositionX[indexRod], -tieRodPositionY[indexRod],ztie[iz]))); physiSlice[islice]->add(physiTieRod[numberTie]); @@ -736,7 +738,7 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() physiTieRod[numberTie] = new GeoPhysVol(logiTieRod[numberTie]); physiSlice[islice]->add(new GeoIdentifierTag(indexRod)); - physiSlice[islice]->add(new GeoTransform(HepGeom::Translate3D(tieRodPositionX[0],-tieRodPositionY[0],ztie[iz1]))); + physiSlice[islice]->add(new GeoTransform(GeoTrf::Translate3D(tieRodPositionX[0],-tieRodPositionY[0],ztie[iz1]))); physiSlice[islice]->add(physiTieRod[numberTie]); }//for iz1 (this dealt with the one last un-paired rod at the module's narrow end) @@ -745,12 +747,12 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() //---------------------------------------------------------------- // Tie rods in Absorbers //---------------------------------------------------------------- - solidAbsorberTieRod[0] = new GeoTubs(0.*CLHEP::cm,tieRodDiameter[0]/2.,frontAbsThickness/2.,0.*CLHEP::deg,360.*CLHEP::deg); - solidAbsorberTieRod[1] = new GeoTubs(0.*CLHEP::cm,tieRodDiameter[1]/2.,rearAbsThickness/2.,0.*CLHEP::deg,360.*CLHEP::deg); + solidAbsorberTieRod[0] = new GeoTubs(0.*GeoModelKernelUnits::cm,tieRodDiameter[0]/2.,frontAbsThickness/2.,0.*GeoModelKernelUnits::deg,360.*GeoModelKernelUnits::deg); + solidAbsorberTieRod[1] = new GeoTubs(0.*GeoModelKernelUnits::cm,tieRodDiameter[1]/2.,rearAbsThickness/2.,0.*GeoModelKernelUnits::deg,360.*GeoModelKernelUnits::deg); logiAbsorberTieRod[0] = new GeoLogVol(tieRodName,solidAbsorberTieRod[0],Iron); //,0,0,0); logiAbsorberTieRod[1] = new GeoLogVol(tieRodName,solidAbsorberTieRod[1],Iron); //,0,0,0); - solidAbsorberTieRodRear[0] = new GeoTubs(0.*CLHEP::cm,tieRodDiameter[0]/2.,frontAbsThickness/2.,0.*CLHEP::deg,360.*CLHEP::deg); - solidAbsorberTieRodRear[1] = new GeoTubs(0.*CLHEP::cm,tieRodDiameter[1]/2.,rearAbsThickness/2.,0.*CLHEP::deg,360.*CLHEP::deg); + solidAbsorberTieRodRear[0] = new GeoTubs(0.*GeoModelKernelUnits::cm,tieRodDiameter[0]/2.,frontAbsThickness/2.,0.*GeoModelKernelUnits::deg,360.*GeoModelKernelUnits::deg); + solidAbsorberTieRodRear[1] = new GeoTubs(0.*GeoModelKernelUnits::cm,tieRodDiameter[1]/2.,rearAbsThickness/2.,0.*GeoModelKernelUnits::deg,360.*GeoModelKernelUnits::deg); logiAbsorberTieRodRear[0] = new GeoLogVol(tieRodRearName,solidAbsorberTieRodRear[0],Iron); //,0,0,0); logiAbsorberTieRodRear[1] = new GeoLogVol(tieRodRearName,solidAbsorberTieRodRear[1],Iron); //,0,0,0); @@ -764,18 +766,18 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() { physiAbsorberTieRod[indexR] = new GeoPhysVol(logiAbsorberTieRod[indexR]); physiFrontAbsorber[islice]->add(new GeoIdentifierTag(indexRod)); - physiFrontAbsorber[islice]->add(new GeoTransform(HepGeom::Translate3D(tieRodPositionX[indexRod], + physiFrontAbsorber[islice]->add(new GeoTransform(GeoTrf::Translate3D(tieRodPositionX[indexRod], -(tieRodPositionY[indexRod]-radialShift), 0))); physiFrontAbsorber[islice]->add(physiAbsorberTieRod[indexR]); physiAbsorberTieRod[indexR] = new GeoPhysVol(logiAbsorberTieRod[indexR]); physiFrontAbsorber[islice]->add(new GeoIdentifierTag(indexRod)); - physiFrontAbsorber[islice]->add(new GeoTransform(HepGeom::Translate3D(-tieRodPositionX[indexRod], + physiFrontAbsorber[islice]->add(new GeoTransform(GeoTrf::Translate3D(-tieRodPositionX[indexRod], -(tieRodPositionY[indexRod]-radialShift), 0))); physiFrontAbsorber[islice]->add(physiAbsorberTieRod[indexR]); } physiAbsorberTieRod[indexR] = new GeoPhysVol(logiAbsorberTieRod[indexR]); physiFrontAbsorber[islice]->add(new GeoIdentifierTag(indexRod)); - physiFrontAbsorber[islice]->add(new GeoTransform(HepGeom::Translate3D(tieRodPositionX[0], + physiFrontAbsorber[islice]->add(new GeoTransform(GeoTrf::Translate3D(tieRodPositionX[0], -(tieRodPositionY[0]-radialShift),0))); @@ -789,13 +791,13 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() { physiAbsorberTieRodRear[1] = new GeoPhysVol(logiAbsorberTieRodRear[1]); physiRearAbsorber->add(new GeoIdentifierTag(indexRod)); - physiRearAbsorber->add(new GeoTransform(HepGeom::Translate3D(tieRodPositionX[indexRod], + physiRearAbsorber->add(new GeoTransform(GeoTrf::Translate3D(tieRodPositionX[indexRod], -(tieRodPositionY[indexRod]-radialShift), 0))); physiRearAbsorber->add(physiAbsorberTieRodRear[1]); physiAbsorberTieRodRear[1] = new GeoPhysVol(logiAbsorberTieRodRear[1]); physiRearAbsorber->add(new GeoIdentifierTag(indexRod)); - physiRearAbsorber->add(new GeoTransform(HepGeom::Translate3D(-tieRodPositionX[indexRod], + physiRearAbsorber->add(new GeoTransform(GeoTrf::Translate3D(-tieRodPositionX[indexRod], -(tieRodPositionY[indexRod]-radialShift), 0))); @@ -806,7 +808,7 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62002::GetEnvelope() //now the single tie rod at the narrow end: physiAbsorberTieRodRear[1] = new GeoPhysVol(logiAbsorberTieRodRear[1]); physiRearAbsorber->add(new GeoIdentifierTag(indexRod)); - physiRearAbsorber->add(new GeoTransform(HepGeom::Translate3D(tieRodPositionX[0], + physiRearAbsorber->add(new GeoTransform(GeoTrf::Translate3D(tieRodPositionX[0], -(tieRodPositionY[0]-radialShift),0))); diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/LArDetectorFactoryH62002.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/LArDetectorFactoryH62002.cxx index c6810a9ad3c58cd384bc70683474f609995f140b..64849d9ef750e7c1e4f4739369e253bea3e9e710 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/LArDetectorFactoryH62002.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/LArDetectorFactoryH62002.cxx @@ -26,10 +26,12 @@ #include "GeoModelKernel/GeoSerialDenominator.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoSerialTransformer.h" -#include "CLHEP/GenericFunctions/AbsFunction.hh" -#include "CLHEP/GenericFunctions/Variable.hh" -#include "CLHEP/GenericFunctions/Sin.hh" -#include "CLHEP/GenericFunctions/Cos.hh" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" +#include "GeoGenericFunctions/AbsFunction.h" +#include "GeoGenericFunctions/Variable.h" +#include "GeoGenericFunctions/Sin.h" +#include "GeoGenericFunctions/Cos.h" #include "StoreGate/StoreGateSvc.h" // need if we want to use EMEC from LArGeoEndcap: @@ -60,7 +62,7 @@ #include "LArGeoCode/LArMaterialManager.h" // -using namespace Genfun; +using namespace GeoGenfun; using namespace GeoXF; @@ -126,8 +128,8 @@ void LArGeo::LArDetectorFactoryH62002::getSimulationParameters() } (*log)<< MSG::INFO<< endmsg; - (*log)<< MSG::INFO << " Use cryo X : " << m_cryoXpos << " CLHEP::mm" << endmsg; - (*log)<< MSG::INFO << " Use table Y : " << m_tableYpos << " CLHEP::mm" << endmsg; + (*log)<< MSG::INFO << " Use cryo X : " << m_cryoXpos << " GeoModelKernelUnits::mm" << endmsg; + (*log)<< MSG::INFO << " Use table Y : " << m_tableYpos << " GeoModelKernelUnits::mm" << endmsg; } @@ -160,13 +162,13 @@ void LArGeo::LArDetectorFactoryH62002::create(GeoPhysVol *world) // 4databa : // numbers taken from LArCalorimeter/LArG4TB/LArG4TBExpHall/src/LArG4TBEmecHecDetectorConstruction.cc // (That's a mighty big hall.....) - double expHallX = 14000.*CLHEP::mm; - double expHallY = 14000.*CLHEP::mm; - double expHallZ = 50000.*CLHEP::mm; - //double cryoZpos = 12250.*CLHEP::mm; - //double cryoXrot = -90.*CLHEP::deg; - //double cryoXpos = m_cryoXpos * CLHEP::mm ; - //double cryoXpos = 0.*CLHEP::mm; // <-- Should be made available in RunOptions! (Perhaps default in DB...) + double expHallX = 14000.*GeoModelKernelUnits::mm; + double expHallY = 14000.*GeoModelKernelUnits::mm; + double expHallZ = 50000.*GeoModelKernelUnits::mm; + //double cryoZpos = 12250.*GeoModelKernelUnits::mm; + //double cryoXrot = -90.*GeoModelKernelUnits::deg; + //double cryoXpos = m_cryoXpos * GeoModelKernelUnits::mm ; + //double cryoXpos = 0.*GeoModelKernelUnits::mm; // <-- Should be made available in RunOptions! (Perhaps default in DB...) //-----------------------------------------------------------------------------------// // Next make the box that describes the shape of the expHall volume: // @@ -191,32 +193,30 @@ void LArGeo::LArDetectorFactoryH62002::create(GeoPhysVol *world) // the element we want to position in the following order: - double Theta = -90. * CLHEP::deg; - double Phi = 0. * CLHEP::deg; + double Theta = -90. * GeoModelKernelUnits::deg; + double Phi = 0. * GeoModelKernelUnits::deg; - CLHEP::HepRotation Mrot ; - Mrot.rotateX(Theta); - Mrot.rotateZ(Phi); - CLHEP::Hep3Vector pos3Vector( m_cryoXpos*CLHEP::mm, 0.*CLHEP::mm, 12250.*CLHEP::mm ); + GeoTrf::Transform3D Mrot(GeoTrf::RotateZ3D(Phi)*GeoTrf::RotateX3D(Theta)); + GeoTrf::Translate3D pos3Vector( m_cryoXpos*GeoModelKernelUnits::mm, 0.*GeoModelKernelUnits::mm, 12250.*GeoModelKernelUnits::mm ); H6CryostatConstruction H6CryoCons; GeoVPhysVol* Envelope = 0; Envelope = H6CryoCons.GetEnvelope(); expHallPhys->add(new GeoNameTag("LAr")); - //expHallPhys->add( new GeoTransform( HepGeom::Translate3D(pos3Vector)*HepGeom::RotateX3D(Theta)*HepGeom::RotateZ3D(Phi) )); - expHallPhys->add( new GeoTransform( HepGeom::Transform3D(Mrot, pos3Vector) ) ); + //expHallPhys->add( new GeoTransform( GeoTrf::Translate3D(pos3Vector)*GeoTrf::RotateX3D(Theta)*GeoTrf::RotateZ3D(Phi) )); + expHallPhys->add( new GeoTransform( GeoTrf::Transform3D(pos3Vector*Mrot) ) ); expHallPhys->add(Envelope); //Add the walls in front of the cryostat: { - const double H62002WallsPos = 10182.*CLHEP::mm; // A wild guess at the moment..... + const double H62002WallsPos = 10182.*GeoModelKernelUnits::mm; // A wild guess at the moment..... WallsConstruction WallsConstruction2002; GeoVPhysVol* frontwalls = WallsConstruction2002.GetEnvelope(); if(frontwalls !=0 && expHallPhys !=0){ expHallPhys->add( new GeoNameTag("LAr")); - expHallPhys->add( new GeoTransform( HepGeom::TranslateZ3D(H62002WallsPos) ) ); + expHallPhys->add( new GeoTransform( GeoTrf::TranslateZ3D(H62002WallsPos) ) ); expHallPhys->add(frontwalls); } } @@ -224,12 +224,12 @@ void LArGeo::LArDetectorFactoryH62002::create(GeoPhysVol *world) //Add the table instrumentation: { - const double H62002TablePos = 8320.*CLHEP::mm; + const double H62002TablePos = 8320.*GeoModelKernelUnits::mm; TableConstructionH62002 TableConstruction; GeoVPhysVol* table = TableConstruction.GetEnvelope(); if(table !=0 && expHallPhys !=0){ expHallPhys->add( new GeoNameTag("LAr")); - expHallPhys->add( new GeoTransform( HepGeom::TranslateZ3D(H62002TablePos) ) ); + expHallPhys->add( new GeoTransform( GeoTrf::TranslateZ3D(H62002TablePos) ) ); expHallPhys->add(table); } } @@ -237,14 +237,14 @@ void LArGeo::LArDetectorFactoryH62002::create(GeoPhysVol *world) //Add the front beam instrumentation: { - const double H62002FrontBeamPos = -20215.5*CLHEP::mm; // (Use this to get the Front dets. in Peter Schacht's position) - //const double H62002FrontBeamPos = -20439.*CLHEP::mm; // (according to old code: [-21600+801+350]*CLHEP::mm) + const double H62002FrontBeamPos = -20215.5*GeoModelKernelUnits::mm; // (Use this to get the Front dets. in Peter Schacht's position) + //const double H62002FrontBeamPos = -20439.*GeoModelKernelUnits::mm; // (according to old code: [-21600+801+350]*GeoModelKernelUnits::mm) // (with 350=1/2 length of FrontBeam volume) FrontBeamConstructionH62002 FrontBeamConstruction; GeoVPhysVol* front = FrontBeamConstruction.GetEnvelope(); if(front !=0 && expHallPhys !=0){ expHallPhys->add( new GeoNameTag("LAr")); - expHallPhys->add( new GeoTransform( HepGeom::TranslateZ3D(H62002FrontBeamPos) ) ); + expHallPhys->add( new GeoTransform( GeoTrf::TranslateZ3D(H62002FrontBeamPos) ) ); expHallPhys->add(front); } } @@ -263,12 +263,10 @@ void LArGeo::LArDetectorFactoryH62002::create(GeoPhysVol *world) // For the moment it is still commented out until I have // its true geometry confirmed; But really it is ready to go: // Add Rohacell Excluder - double ThetaRoha = 0. * CLHEP::deg; - double PhiRoha = 0. * CLHEP::deg; - CLHEP::HepRotation MrotRoha ; - MrotRoha.rotateX(ThetaRoha); - MrotRoha.rotateZ(PhiRoha); - CLHEP::Hep3Vector pos3Roha( 0*CLHEP::mm, 0.0*CLHEP::mm , 0.*CLHEP::mm); + // double ThetaRoha = 0. * GeoModelKernelUnits::deg; + // double PhiRoha = 0. * GeoModelKernelUnits::deg; + // GeoTrf::Transform3D MrotRoha(GeoTrf::RotateZ3D(PhiRoha)*GeoTrf::RotateX3D(ThetaRoha)); + // GeoTrf::Translate3D pos3Roha( 0*GeoModelKernelUnits::mm, 0.0*GeoModelKernelUnits::mm , 0.*GeoModelKernelUnits::mm); { ExcluderConstruction excluderConstruction; @@ -288,21 +286,19 @@ void LArGeo::LArDetectorFactoryH62002::create(GeoPhysVol *world) EMECDetectorManager *emecDetectorManager = new EMECDetectorManager(); - double ThetaEmec = -90. * CLHEP::deg; - double PhiEmec = 180. * CLHEP::deg; + double ThetaEmec = -90. * GeoModelKernelUnits::deg; + double PhiEmec = 180. * GeoModelKernelUnits::deg; - CLHEP::HepRotation MrotEmec ; - MrotEmec.rotateX(ThetaEmec); - MrotEmec.rotateZ(PhiEmec); - // CLHEP::Hep3Vector pos3Emec( 0*CLHEP::mm, 869.0*CLHEP::mm , 1720.*CLHEP::mm); - CLHEP::Hep3Vector pos3Emec( 0*CLHEP::mm, 808.0*CLHEP::mm , 1720.*CLHEP::mm); + GeoTrf::Transform3D MrotEmec(GeoTrf::RotateZ3D(PhiEmec)*GeoTrf::RotateX3D(ThetaEmec)); + // GeoTrf::Vector3D pos3Emec( 0*GeoModelKernelUnits::mm, 869.0*GeoModelKernelUnits::mm , 1720.*GeoModelKernelUnits::mm); + GeoTrf::Translate3D pos3Emec( 0*GeoModelKernelUnits::mm, 808.0*GeoModelKernelUnits::mm , 1720.*GeoModelKernelUnits::mm); //use this line for physical construction of the EMEC outer wheel only: EMECConstruction emecConstruction(true, true, true); GeoVFullPhysVol* emecEnvelope = emecConstruction.GetEnvelope(); LArPhysical->add(new GeoNameTag("LAr")); - LArPhysical->add( new GeoTransform( HepGeom::Transform3D(MrotEmec, pos3Emec) ) ); + LArPhysical->add( new GeoTransform( GeoTrf::Transform3D(pos3Emec*MrotEmec) ) ); LArPhysical->add(emecEnvelope); { StoredPhysVol *sEmecOuterWheel; @@ -396,21 +392,19 @@ void LArGeo::LArDetectorFactoryH62002::create(GeoPhysVol *world) } - double ThetaPS = -90. * CLHEP::deg; - double PhiPS = 180. * CLHEP::deg; - CLHEP::HepRotation MrotPS ; - MrotPS.rotateX(ThetaPS); - MrotPS.rotateZ(PhiPS); - //CLHEP::Hep3Vector pos3PS( 0*CLHEP::mm, 945.5*CLHEP::mm , 1720.*CLHEP::mm); - CLHEP::Hep3Vector pos3PS( 0*CLHEP::mm, 888.5*CLHEP::mm , 1720.*CLHEP::mm); + double ThetaPS = -90. * GeoModelKernelUnits::deg; + double PhiPS = 180. * GeoModelKernelUnits::deg; + GeoTrf::Transform3D MrotPS(GeoTrf::RotateZ3D(PhiPS)*GeoTrf::RotateX3D(ThetaPS)); + //GeoTrf::Vector3D pos3PS( 0*GeoModelKernelUnits::mm, 945.5*GeoModelKernelUnits::mm , 1720.*GeoModelKernelUnits::mm); + GeoTrf::Translate3D pos3PS( 0*GeoModelKernelUnits::mm, 888.5*GeoModelKernelUnits::mm , 1720.*GeoModelKernelUnits::mm); //double zPSpos = -869. -(61. +2. +13.5); //std::string PresamplerName = baseName + "::Presampler::"; EndcapPresamplerConstruction PresamplerConstruction(true); GeoFullPhysVol* PresamplerEnvelope = PresamplerConstruction.Envelope(); if ( PresamplerEnvelope != 0 && LArPhysical != 0 ) { - //LArPhysical->add( new GeoTransform( HepGeom::Translate3D(pos3PS)*HepGeom::RotateX3D(ThetaPS)*HepGeom::RotateZ3D(PhiPS) )); - LArPhysical->add( new GeoTransform( HepGeom::Transform3D(MrotPS, pos3PS) ) ); + //LArPhysical->add( new GeoTransform( GeoTrf::Translate3D(pos3PS)*GeoTrf::RotateX3D(ThetaPS)*GeoTrf::RotateZ3D(PhiPS) )); + LArPhysical->add( new GeoTransform( GeoTrf::Transform3D(pos3PS*MrotPS) ) ); LArPhysical->add( PresamplerEnvelope ); } { @@ -426,20 +420,18 @@ void LArGeo::LArDetectorFactoryH62002::create(GeoPhysVol *world) // Add HEC - double ThetaHec = 90. * CLHEP::deg; - double PhiHec = 0. * CLHEP::deg; - CLHEP::HepRotation MrotHec ; - MrotHec.rotateX(ThetaHec); - MrotHec.rotateZ(PhiHec); - CLHEP::Hep3Vector pos3Hec( 0*CLHEP::mm, 233.0*CLHEP::mm , 1720.*CLHEP::mm); + double ThetaHec = 90. * GeoModelKernelUnits::deg; + double PhiHec = 0. * GeoModelKernelUnits::deg; + GeoTrf::Transform3D MrotHec(GeoTrf::RotateZ3D(PhiHec)*GeoTrf::RotateX3D(ThetaHec)); + GeoTrf::Translate3D pos3Hec( 0*GeoModelKernelUnits::mm, 233.0*GeoModelKernelUnits::mm , 1720.*GeoModelKernelUnits::mm); { HECConstructionH62002 hecConstruction; GeoVFullPhysVol* hecEnvelope = hecConstruction.GetEnvelope(); if(hecEnvelope !=0 && LArPhysical !=0){ LArPhysical->add( new GeoNameTag("LAr")); - //LArPhysical->add( new GeoTransform( HepGeom::Translate3D(pos3Hec)*HepGeom::RotateX3D(ThetaHec)*HepGeom::RotateZ3D(PhiHec) )); - LArPhysical->add( new GeoTransform( HepGeom::Transform3D(MrotHec, pos3Hec) ) ); + //LArPhysical->add( new GeoTransform( GeoTrf::Translate3D(pos3Hec)*GeoTrf::RotateX3D(ThetaHec)*GeoTrf::RotateZ3D(PhiHec) )); + LArPhysical->add( new GeoTransform( GeoTrf::Transform3D(pos3Hec*MrotHec) ) ); LArPhysical->add(hecEnvelope); } } diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/TableConstructionH62002.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/TableConstructionH62002.cxx index 1ee8391944d2424eb3fbe3dbef934112d347c973..8b2d56e9cbf4090da79159c36eb34b74ac318980 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/TableConstructionH62002.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62002Algs/src/TableConstructionH62002.cxx @@ -23,17 +23,14 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoSerialDenominator.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" - -// For transforms: -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/GenericFunctions/Variable.hh" -// For units: -#include "CLHEP/Units/PhysicalConstants.h" +#include "GeoGenericFunctions/Variable.h" // For the database: #include "RDBAccessSvc/IRDBAccessSvc.h" @@ -141,8 +138,8 @@ GeoVPhysVol* LArGeo::TableConstructionH62002::GetEnvelope() std::string baseName = "LAr::TBH62002"; std::string H62002TableName = baseName + "::Table"; - const double H62002TableXY = 150.*CLHEP::mm; - const double H62002TableZ = 1200.*CLHEP::mm; + const double H62002TableXY = 150.*GeoModelKernelUnits::mm; + const double H62002TableZ = 1200.*GeoModelKernelUnits::mm; GeoBox* H62002TableShape = new GeoBox( H62002TableXY, H62002TableXY, H62002TableZ ); @@ -159,13 +156,13 @@ GeoVPhysVol* LArGeo::TableConstructionH62002::GetEnvelope() log << "Create F1/F2 Scintillators ..." << std::endl; // Universal size: - const double Fx = 10.0*CLHEP::mm; - const double Fy = 10.0*CLHEP::mm; - const double Fz = 10.0*CLHEP::mm; + const double Fx = 10.0*GeoModelKernelUnits::mm; + const double Fy = 10.0*GeoModelKernelUnits::mm; + const double Fz = 10.0*GeoModelKernelUnits::mm; std::vector<double> v_ScintZ; - v_ScintZ.push_back(2195.*CLHEP::mm); // <-- = btas_pos - v_ScintZ.push_back(2320.*CLHEP::mm); + v_ScintZ.push_back(2195.*GeoModelKernelUnits::mm); // <-- = btas_pos + v_ScintZ.push_back(2320.*GeoModelKernelUnits::mm); const double ScintDx = Fx; const double ScintDy = Fy; const double ScintDz = Fz; @@ -178,7 +175,7 @@ GeoVPhysVol* LArGeo::TableConstructionH62002::GetEnvelope() GeoPhysVol* ScintPhysical = new GeoPhysVol( ScintLogical ); for ( unsigned int i = 0; i < v_ScintZ.size(); i++ ) { m_H62002TablePhysical->add( new GeoIdentifierTag(i) ); - m_H62002TablePhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, (v_ScintZ[ i ]-H62002TableZ) ) ) ); + m_H62002TablePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (v_ScintZ[ i ]-H62002TableZ) ) ) ); log << MSG::INFO << " Position the F Scintillator at: " << v_ScintZ[ i ] << endmsg ; m_H62002TablePhysical->add( ScintPhysical ); } @@ -193,16 +190,16 @@ GeoVPhysVol* LArGeo::TableConstructionH62002::GetEnvelope() //------ Get the MWPCs from LArGeoH6Cryostats const int MwpcNumber = 3; std::vector<double> v_MwpcPos; - v_MwpcPos.push_back(105.*CLHEP::mm); - v_MwpcPos.push_back(825.*CLHEP::mm); - v_MwpcPos.push_back(1815.*CLHEP::mm); - double WireStep = 1.*CLHEP::mm; + v_MwpcPos.push_back(105.*GeoModelKernelUnits::mm); + v_MwpcPos.push_back(825.*GeoModelKernelUnits::mm); + v_MwpcPos.push_back(1815.*GeoModelKernelUnits::mm); + double WireStep = 1.*GeoModelKernelUnits::mm; MWPCConstruction mwpcXConstruction (WireStep); GeoVPhysVol* mwpcEnvelope = mwpcXConstruction.GetEnvelope(); for ( int imwpc = 0; imwpc<MwpcNumber ; imwpc++) { m_H62002TablePhysical->add(new GeoIdentifierTag(imwpc+2)); - m_H62002TablePhysical->add( new GeoTransform(HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, (v_MwpcPos[imwpc]-H62002TableZ) ) ) ); + m_H62002TablePhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (v_MwpcPos[imwpc]-H62002TableZ) ) ) ); m_H62002TablePhysical->add(mwpcEnvelope); } //------ Done with creating an MWPC from LArGeoH6Cryostats diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62003Algs/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoH62003Algs/CMakeLists.txt index e038e2c30053069b0544b5b4ee23e0beb5e3441b..a94c6ab0203a32923ced4ed7df239757ed485027 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoH62003Algs/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoH62003Algs/CMakeLists.txt @@ -7,7 +7,6 @@ atlas_subdir( LArGeoH62003Algs ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities LArCalorimeter/LArGeoModel/LArReadoutGeometry PRIVATE @@ -21,15 +20,16 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( LArGeoH62003Algs src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} GeoModelKernel GeoModelUtilities LArReadoutGeometry StoreGateLib SGtests GaudiKernel LArG4RunControl LArGeoFcal LArGeoH6Cryostats ) + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} GeoModelUtilities LArReadoutGeometry StoreGateLib SGtests GaudiKernel LArG4RunControl LArGeoFcal LArGeoH6Cryostats ) # Install files from the package: atlas_install_headers( LArGeoH62003Algs ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62003Algs/src/LArDetectorConstructionH62003.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62003Algs/src/LArDetectorConstructionH62003.cxx index d5f875ce08924cfd4cfdd9cab6b58d2130c4f046..e613b8c86a7ff588f46474b905402a45b8c941d6 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62003Algs/src/LArDetectorConstructionH62003.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62003Algs/src/LArDetectorConstructionH62003.cxx @@ -25,6 +25,8 @@ #include "GeoModelKernel/GeoSerialDenominator.h" #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoSerialTransformer.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "GeoModelKernel/GeoXF.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" @@ -35,13 +37,7 @@ #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" #include "LArG4RunControl/LArG4TBPosOptions.h" - -// For transforms: -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/GenericFunctions/Variable.hh" - -// For units: -#include "CLHEP/Units/PhysicalConstants.h" +#include "GeoGenericFunctions/Variable.h" // For the database: #include "RDBAccessSvc/IRDBAccessSvc.h" @@ -58,30 +54,32 @@ #include <cmath> #include <iostream> -using CLHEP::g; -using CLHEP::cm3; -using CLHEP::mm; -using CLHEP::cm; -using CLHEP::m; -using CLHEP::deg; -using CLHEP::Hep3Vector; -using CLHEP::HepRotationX; -using CLHEP::HepRotationY; -using HepGeom::Transform3D; -using HepGeom::Translate3D; -using HepGeom::TranslateZ3D; -using HepGeom::RotateX3D; -using HepGeom::RotateY3D; -using HepGeom::RotateZ3D; - - -LArGeo::LArDetectorConstructionH62003::LArDetectorConstructionH62003(): -m_H62003EnvelopePhysical(NULL), -m_fcalVisLimit(-1), -m_axisVisState(false), -m_pAccessSvc(NULL){} - -LArGeo::LArDetectorConstructionH62003::~LArDetectorConstructionH62003() {} +using GeoModelKernelUnits::g; +using GeoModelKernelUnits::cm3; +using GeoModelKernelUnits::mm; +using GeoModelKernelUnits::cm; +using GeoModelKernelUnits::m; +using GeoModelKernelUnits::deg; +using GeoTrf::Vector3D; +using GeoTrf::Transform3D; +using GeoTrf::Translate3D; +using GeoTrf::TranslateZ3D; +using GeoTrf::RotateX3D; +using GeoTrf::RotateY3D; +using GeoTrf::RotateZ3D; + + +LArGeo::LArDetectorConstructionH62003::LArDetectorConstructionH62003() + : m_H62003EnvelopePhysical(NULL) + , m_fcalVisLimit(-1) + , m_axisVisState(false) + , m_pAccessSvc(nullptr) +{ +} + +LArGeo::LArDetectorConstructionH62003::~LArDetectorConstructionH62003() +{ +} GeoVPhysVol* LArGeo::LArDetectorConstructionH62003::GetEnvelope() { @@ -862,13 +860,13 @@ GeoVPhysVol* LArGeo::LArDetectorConstructionH62003::GetEnvelope() << " is located at: " << "\n" << "x = " - << m_H62003EnvelopePhysical->getXToChildVol(i).getTranslation().x() + << m_H62003EnvelopePhysical->getXToChildVol(i).translation().x() << "\n" << "y = " - << m_H62003EnvelopePhysical->getXToChildVol(i).getTranslation().y() + << m_H62003EnvelopePhysical->getXToChildVol(i).translation().y() << "\n" << "z = " - << m_H62003EnvelopePhysical->getXToChildVol(i).getTranslation().z() + << m_H62003EnvelopePhysical->getXToChildVol(i).translation().z() << "\n" << endmsg; } @@ -894,11 +892,7 @@ void LArGeo::LArDetectorConstructionH62003::createAxis(GeoFullPhysVol* H62003Env const GeoLogVol* XAxisLogical = new GeoLogVol(XAxisName,XYaxisShape,mat); GeoPhysVol* XAxisPhysVol = new GeoPhysVol(XAxisLogical); - H62003EnvelopePhysical-> - add(new GeoTransform(Transform3D(HepRotationY( 90.*deg ), - Hep3Vector(axisXYHalfLength, - 0.*m, - 0.*m)))); + H62003EnvelopePhysical->add(new GeoTransform(Transform3D(GeoTrf::Translate3D(axisXYHalfLength,0.*m,0.*m)*GeoTrf::RotateY3D(90.*deg)))); H62003EnvelopePhysical->add(XAxisPhysVol); // y-axis @@ -906,12 +900,7 @@ void LArGeo::LArDetectorConstructionH62003::createAxis(GeoFullPhysVol* H62003Env const GeoLogVol* YAxisLogical = new GeoLogVol(YAxisName,XYaxisShape,mat); GeoPhysVol* YAxisPhysVol = new GeoPhysVol( YAxisLogical ); - H62003EnvelopePhysical-> - add(new GeoTransform(Transform3D(HepRotationX( -90.*deg ), - Hep3Vector( - 0.*m, - axisXYHalfLength, - 0.*m)))); + H62003EnvelopePhysical->add(new GeoTransform(Transform3D(GeoTrf::Translate3D(0.*m,axisXYHalfLength,0.*m)*GeoTrf::RotateX3D(-90.*deg)))); H62003EnvelopePhysical->add(YAxisPhysVol); //z-axis diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/CMakeLists.txt index 785d0034c2b78ce6bb61ce49f19e8bc00d949b7e..2ddf8989d3b0f120a689ff19a4348145a443aea2 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/CMakeLists.txt @@ -9,7 +9,6 @@ atlas_subdir( LArGeoH62004Algs ) atlas_depends_on_subdirs( PUBLIC Control/StoreGate DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities LArCalorimeter/LArGeoModel/LArReadoutGeometry PRIVATE @@ -25,15 +24,16 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( LArGeoH62004Algs src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} StoreGateLib SGtests GeoModelKernel GeoModelUtilities LArReadoutGeometry CaloDetDescrLib AthContainers GaudiKernel LArG4RunControl LArGeoCode LArGeoEndcap LArGeoH6Cryostats LArGeoTBECLib ) + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} StoreGateLib SGtests GeoModelUtilities LArReadoutGeometry CaloDetDescrLib AthContainers GaudiKernel LArG4RunControl LArGeoCode LArGeoEndcap LArGeoH6Cryostats LArGeoTBECLib ) # Install files from the package: atlas_install_headers( LArGeoH62004Algs ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ExcluderConstructionH62004.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ExcluderConstructionH62004.cxx index a35a7aec222b75f67af482f91e0ae5fdca2ae93a..5320788f5ff33c0e9f684a4b686392a49dc511a2 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ExcluderConstructionH62004.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ExcluderConstructionH62004.cxx @@ -27,6 +27,8 @@ #include "GeoModelKernel/GeoSerialTransformer.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoShapeUnion.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -97,7 +99,7 @@ GeoVFullPhysVol* LArGeo::ExcluderConstructionH62004::GetEnvelope() { const GeoElement* H=materialManager->getElement("Hydrogen"); const GeoElement* O=materialManager->getElement("Oxygen"); const GeoElement* N=materialManager->getElement("Nitrogen"); - GeoMaterial* Rohacell = new GeoMaterial(name="Rohacell", density=0.112*CLHEP::g/CLHEP::cm3); + GeoMaterial* Rohacell = new GeoMaterial(name="Rohacell", density=0.112*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); Rohacell->add(C,0.6465); Rohacell->add(H,0.07836); Rohacell->add(O,0.19137); @@ -105,7 +107,7 @@ GeoVFullPhysVol* LArGeo::ExcluderConstructionH62004::GetEnvelope() { Rohacell->lock(); /* - a = 12.957*CLHEP::g/CLHEP::mole; + a = 12.957*GeoModelKernelUnits::g/GeoModelKernelUnits::mole; density = 0.112*g/cm3; z = 6.18; G4Material* Rohacell = new G4Material(name="Rohacell",z, a, density); @@ -136,20 +138,20 @@ GeoVFullPhysVol* LArGeo::ExcluderConstructionH62004::GetEnvelope() { switch(m_which) { case 0: { // EMEC excluder // DB values - double Rmin = 725.*CLHEP::mm; - double Rmin_2 = 780.*CLHEP::mm; - double Rmax = 980.*CLHEP::mm; + double Rmin = 725.*GeoModelKernelUnits::mm; + double Rmin_2 = 780.*GeoModelKernelUnits::mm; + double Rmax = 980.*GeoModelKernelUnits::mm; - double Zall = 626*CLHEP::mm; - double Zback = 91*CLHEP::mm; - double Zfront = 60*CLHEP::mm; + double Zall = 626*GeoModelKernelUnits::mm; + double Zback = 91*GeoModelKernelUnits::mm; + double Zfront = 60*GeoModelKernelUnits::mm; - double alpha = 22.5*CLHEP::degree; - double beta = 6.375*CLHEP::degree; + double alpha = 22.5*GeoModelKernelUnits::degree; + double beta = 6.375*GeoModelKernelUnits::degree; // double gamma = 8.589*degree; - double delta = 2.720*CLHEP::degree; + double delta = 2.720*GeoModelKernelUnits::degree; // solidEx = new GeoTubs("MotherEx",Rmin,Rmax,Zall/2.,-(alpha+gamma), 2*(alpha+gamma)); // GeoTubs* solidEx = new GeoTubs(Rmin,Rmax,Zall/2.,-(alpha+beta), 2*(alpha+beta)); @@ -163,7 +165,7 @@ GeoVFullPhysVol* LArGeo::ExcluderConstructionH62004::GetEnvelope() { const double rmax[zplanes] = {Rmax,Rmax}; const double zcoord[2*zplanes] = {-Zall/2., -Zall/2.+Zfront, Zall/2.-Zback, Zall/2.}; - HepGeom::Transform3D rot; + GeoTrf::Transform3D rot(GeoTrf::Transform3D::Identity()); fEx = new GeoPcon(-(alpha-delta),2*(alpha-delta)); for(int i=0; i<zplanes; ++i) { @@ -207,35 +209,31 @@ GeoVFullPhysVol* LArGeo::ExcluderConstructionH62004::GetEnvelope() { } case 1 : { // FCAL excluder - double Rmax = 335.*CLHEP::mm; -// double Rmax_1 = 253.*CLHEP::mm; - double bepo_Beta = 4.668*CLHEP::degree; // DB !!! - double bepo_ty = 90.0*CLHEP::degree; // DB !! - -// double Zall = (1021.4/2.)*CLHEP::mm; - double Zall = (912./2.)*CLHEP::mm; -// double Zpara = (168.47/2.)*CLHEP::mm; -// double Zpara = (247.87/2.)*CLHEP::mm; - double Xall = (171./2.)*CLHEP::mm; - double Yall = (300./2.)*CLHEP::mm; + double Rmax = 335.*GeoModelKernelUnits::mm; +// double Rmax_1 = 253.*GeoModelKernelUnits::mm; + double bepo_Beta = 4.668*GeoModelKernelUnits::degree; // DB !!! + double bepo_ty = 90.0*GeoModelKernelUnits::degree; // DB !! + +// double Zall = (1021.4/2.)*GeoModelKernelUnits::mm; + double Zall = (912./2.)*GeoModelKernelUnits::mm; +// double Zpara = (168.47/2.)*GeoModelKernelUnits::mm; +// double Zpara = (247.87/2.)*GeoModelKernelUnits::mm; + double Xall = (171./2.)*GeoModelKernelUnits::mm; + double Yall = (300./2.)*GeoModelKernelUnits::mm; double Rmax_1 = Rmax - 2.*Zall*tan(bepo_Beta); - GeoPara *pEx = new GeoPara(Zall,Yall,Xall,0*CLHEP::degree,bepo_Beta,0.*CLHEP::degree); + GeoPara *pEx = new GeoPara(Zall,Yall,Xall,0*GeoModelKernelUnits::degree,bepo_Beta,0.*GeoModelKernelUnits::degree); GeoCons *tEx = new GeoCons(0.,0.,Rmax,Rmax_1,Zall,0.,M_PI); GeoBox *box = new GeoBox(Yall,Xall,Zall); - CLHEP::HepRotation Rot; - Rot.rotateX(bepo_Beta); - CLHEP::Hep3Vector trans1(0., sqrt(Rmax_1*Rmax_1 - Yall*Yall) + Xall + Zall*tan(bepo_Beta), 0*CLHEP::mm); - HepGeom::Transform3D offset(Rot, trans1); + GeoTrf::RotateX3D Rot(bepo_Beta); + GeoTrf::Translation3D trans1(0., sqrt(Rmax_1*Rmax_1 - Yall*Yall) + Xall + Zall*tan(bepo_Beta), 0*GeoModelKernelUnits::mm); + GeoTrf::Transform3D offset = trans1 * Rot; const GeoShapeIntersection &is = (*tEx).intersect(*box<<offset); - CLHEP::HepRotation Rot1; - Rot1.rotateY(bepo_ty); - Rot1.rotateZ(bepo_ty); - Rot1.rotateX(bepo_Beta); -// G4ThreeVector translation(0., (203.74-168.47/2.)*CLHEP::mm, 0.*CLHEP::mm); - CLHEP::Hep3Vector translation(0., sqrt(Rmax_1*Rmax_1 - Yall*Yall)-Xall+Zall*tan(bepo_Beta),0.*CLHEP::mm); - HepGeom::Transform3D offset1(Rot1, translation); + GeoTrf::Transform3D Rot1 = GeoTrf::RotateX3D(bepo_Beta) * GeoTrf::RotateZ3D(bepo_ty) * GeoTrf::RotateY3D(bepo_ty); +// G4ThreeVector translation(0., (203.74-168.47/2.)*GeoModelKernelUnits::mm, 0.*GeoModelKernelUnits::mm); + GeoTrf::Translation3D translation(0., sqrt(Rmax_1*Rmax_1 - Yall*Yall)-Xall+Zall*tan(bepo_Beta),0.*GeoModelKernelUnits::mm); + GeoTrf::Transform3D offset1 = translation * Rot1; const GeoShapeUnion &us = is.add(*pEx<<offset1); std::string bExName = "LArGeoTB::FCAL::Excluder"; logicEx = new GeoLogVol(bExName, &us,Rohacell); @@ -247,21 +245,19 @@ GeoVFullPhysVol* LArGeo::ExcluderConstructionH62004::GetEnvelope() { // double Rmax = bcry_rlar; - double Rmax = 125.5*CLHEP::cm; // DB !!! - double bepo_Beta = 4.668*CLHEP::degree; // DB !!! + double Rmax = 125.5*GeoModelKernelUnits::cm; // DB !!! + double bepo_Beta = 4.668*GeoModelKernelUnits::degree; // DB !!! - double Zall = (1200./2.)*CLHEP::mm; - double angle = 32.*CLHEP::degree; -// double Xall = 119.35*CLHEP::cm; + double Zall = (1200./2.)*GeoModelKernelUnits::mm; + double angle = 32.*GeoModelKernelUnits::degree; +// double Xall = 119.35*GeoModelKernelUnits::cm; double Xall = Rmax*cos(angle/2); double Yall = Rmax*sin(angle/2); GeoTubs *tEx = new GeoTubs(0.,Rmax,Zall,-angle/2.,angle); GeoPara *box = new GeoPara(Xall,Yall,1.1*Zall,0.,-bepo_Beta,0.); - CLHEP::HepRotation Rot; -// Rot->rotateZ(-angle/2.); - CLHEP::Hep3Vector trans1(0., 0.*CLHEP::mm, 0*CLHEP::mm); - HepGeom::Transform3D offset(Rot, trans1); + + GeoTrf::Translate3D offset(0., 0.*GeoModelKernelUnits::mm, 0*GeoModelKernelUnits::mm); const GeoShapeSubtraction &is = (*tEx).subtract((*box)<<(offset)); // G4UnionSolid *is = new G4UnionSolid("isEx",tEx,box,Rot,trans1); std::string FrontExName = "LArGeoTB::Front::Excluder"; @@ -272,20 +268,19 @@ GeoVFullPhysVol* LArGeo::ExcluderConstructionH62004::GetEnvelope() { case 3 : { // Back excluder // double Rmax = bcry_rlar; - double Rmax = 125.5*CLHEP::cm; // DB !!! + double Rmax = 125.5*GeoModelKernelUnits::cm; // DB !!! - double Zall = (1600./2.)*CLHEP::mm; - double angle = 58.*CLHEP::degree; + double Zall = (1600./2.)*GeoModelKernelUnits::mm; + double angle = 58.*GeoModelKernelUnits::degree; double Xall = Rmax*cos(angle/2.); double Yall = Rmax*sin(angle/2.); GeoTubs *tEx = new GeoTubs(0.,Rmax,Zall,0.,angle); GeoBox *box = new GeoBox(Xall,Yall,1.1*Zall); - CLHEP::HepRotation Rot; - Rot.rotateZ(angle/2.); - CLHEP::Hep3Vector trans1(0., 0.*CLHEP::mm, 0*CLHEP::mm); - HepGeom::Transform3D offset(Rot, trans1); + GeoTrf::RotateZ3D Rot(angle/2.); + GeoTrf::Translation3D trans1(0., 0.*GeoModelKernelUnits::mm, 0*GeoModelKernelUnits::mm); + GeoTrf::Transform3D offset = trans1 * Rot; const GeoShapeSubtraction &is = (*tEx).subtract((*box)<<(offset)); std::string BackExName = "LArGeoTB::Back::Excluder"; logicEx = new GeoLogVol(BackExName,&is,Rohacell); diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/FCALConstructionH62004.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/FCALConstructionH62004.cxx index e879edac6afc5cf3f5eefdccc407a11676f2621d..3413f1c2bab43dd879dac6153bd1154e59c17736 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/FCALConstructionH62004.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/FCALConstructionH62004.cxx @@ -19,6 +19,8 @@ #include "GeoModelKernel/GeoSerialTransformer.h" #include "GeoModelKernel/GeoXF.h" #include "GeoModelKernel/GeoPerfUtils.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" // volumes used: Pcon, Tubs, Cons, Box, Trap #include "GeoModelKernel/GeoPcon.h" @@ -34,27 +36,23 @@ #include "GeoModelUtilities/StoredAlignX.h" #include "GeoModelUtilities/GeoDBUtils.h" -// For transforms: -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/Rotation.h" // For functions: -#include "CLHEP/GenericFunctions/Abs.hh" -#include "CLHEP/GenericFunctions/Sin.hh" -#include "CLHEP/GenericFunctions/Cos.hh" -#include "CLHEP/GenericFunctions/Sqrt.hh" -#include "CLHEP/GenericFunctions/ATan.hh" -#include "CLHEP/GenericFunctions/Rectangular.hh" -#include "CLHEP/GenericFunctions/Mod.hh" -#include "CLHEP/GenericFunctions/Variable.hh" -#include "CLHEP/GenericFunctions/FixedConstant.hh" -#include "CLHEP/GenericFunctions/ArrayFunction.hh" +#include "GeoGenericFunctions/Abs.h" +#include "GeoGenericFunctions/Sin.h" +#include "GeoGenericFunctions/Cos.h" +#include "GeoGenericFunctions/Sqrt.h" +#include "GeoGenericFunctions/ATan.h" +#include "GeoGenericFunctions/Rectangular.h" +#include "GeoGenericFunctions/Mod.h" +#include "GeoGenericFunctions/Variable.h" +#include "GeoGenericFunctions/FixedConstant.h" +#include "GeoGenericFunctions/ArrayFunction.h" #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBAccessSvc.h" // For units: -#include "CLHEP/Units/PhysicalConstants.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" #include <string> @@ -216,13 +214,13 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() std::string baseName = "LAr::FCAL::"; double fcalHalfDepth=0; - double startZFCal1 = (*m_fcalMod)[0]->getDouble("STARTPOSITION"); //466.85 * CLHEP::cm; - double startZFCal2 = (*m_fcalMod)[1]->getDouble("STARTPOSITION"); //512.83 * CLHEP::cm; - double startZFCal3 = (*m_fcalMod)[2]->getDouble("STARTPOSITION"); //560.28 * CLHEP::cm; + double startZFCal1 = (*m_fcalMod)[0]->getDouble("STARTPOSITION"); //466.85 * GeoModelKernelUnits::cm; + double startZFCal2 = (*m_fcalMod)[1]->getDouble("STARTPOSITION"); //512.83 * GeoModelKernelUnits::cm; + double startZFCal3 = (*m_fcalMod)[2]->getDouble("STARTPOSITION"); //560.28 * GeoModelKernelUnits::cm; // Should go to Db (change FCalNominals ????) - double fcalstartPhi = 90.*CLHEP::deg; - double fcaldeltaPhi = 90.*CLHEP::deg; + double fcalstartPhi = 90.*GeoModelKernelUnits::deg; + double fcaldeltaPhi = 90.*GeoModelKernelUnits::deg; // FCAL VOLUME. IT DOES NOT INCLUDE THE COPPER PLUG, ONLY THE LAR AND MODS 1-3 { @@ -243,8 +241,6 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() } - CLHEP::HepRotation NoRot; - if (F1) { // Module 1 @@ -264,7 +260,7 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() physVol = new GeoFullPhysVol(logVol); } - fcalPhysical->add(new GeoTransform(HepGeom::Transform3D(NoRot,CLHEP::Hep3Vector(0.,0.,-(fcalHalfDepth-halfDepth))))); + fcalPhysical->add(new GeoTransform(GeoTrf::Translate3D(0.,0.,-(fcalHalfDepth-halfDepth)))); fcalPhysical->add(physVol); modPhysical = physVol; @@ -279,18 +275,18 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() // 16 Troughs representing Cable Harnesses: if(m_absPhysical1==0) { - double troughDepth = 0.9999 * CLHEP::cm; + double troughDepth = 0.9999 * GeoModelKernelUnits::cm; double outerRadius = fcalData[0].outerModuleRadius; double innerRadius = outerRadius - troughDepth; double halfLength = fcalData[0].fullModuleDepth/ 2.0; - double deltaPhi = 5.625 * CLHEP::deg; - double startPhi = 11.25 * CLHEP::deg - deltaPhi/2.0; + double deltaPhi = 5.625 * GeoModelKernelUnits::deg; + double startPhi = 11.25 * GeoModelKernelUnits::deg - deltaPhi/2.0; GeoTubs * tubs = new GeoTubs(innerRadius,outerRadius,halfLength,startPhi,deltaPhi ); GeoLogVol *logVol = new GeoLogVol(baseName+"Module1::CableTrough",tubs,FCalCableHarness); GeoPhysVol *physVol = new GeoPhysVol(logVol); - Genfun::Variable i; - Genfun::GENFUNCTION rotationAngle = fcalstartPhi + 22.5*CLHEP::deg*i; - GeoXF::TRANSFUNCTION xf = GeoXF::Pow(HepGeom::RotateZ3D(1.0),rotationAngle); + GeoGenfun::Variable i; + GeoGenfun::GENFUNCTION rotationAngle = fcalstartPhi + 22.5*GeoModelKernelUnits::deg*i; + GeoXF::TRANSFUNCTION xf = GeoXF::Pow(GeoTrf::RotateZ3D(1.0),rotationAngle); GeoSerialTransformer *st = new GeoSerialTransformer(physVol,&xf,4); modPhysical->add(st); } @@ -300,7 +296,7 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() double halfDepth = fcalData[0].fullGapDepth/2.0; double innerRadius = fcalData[0].innerGapRadius; double outerRadius = fcalData[0].outerGapRadius; - GeoTubs *tubs = new GeoTubs(innerRadius,outerRadius,halfDepth, 0.*CLHEP::deg, 360.*CLHEP::deg); + GeoTubs *tubs = new GeoTubs(innerRadius,outerRadius,halfDepth, 0.*GeoModelKernelUnits::deg, 360.*GeoModelKernelUnits::deg); GeoLogVol *logVol = new GeoLogVol(baseName + "Module1::Gap",tubs, LAr); GeoPhysVol *physVol = new GeoPhysVol(logVol); @@ -331,7 +327,7 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() if (m_VisLimit != -1 && (counter++ > m_VisLimit)) continue; //std::cout<<thisTileStr<<" "<<thisTubeX<<" "<<thisTubeY<<std::endl; - GeoTransform *xf = new GeoTransform(HepGeom::Translate3D(thisTubeX*CLHEP::cm, thisTubeY*CLHEP::cm,0)); + GeoTransform *xf = new GeoTransform(GeoTrf::Translate3D(thisTubeX*GeoModelKernelUnits::cm, thisTubeY*GeoModelKernelUnits::cm,0)); modPhysical->add(xf); modPhysical->add(physVol); } @@ -360,7 +356,7 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() physVol = new GeoFullPhysVol(logVol); } - fcalPhysical->add(new GeoTransform(HepGeom::Transform3D(NoRot,CLHEP::Hep3Vector(0.,0.,-(fcalHalfDepth-(startZFCal2-startZFCal1)-halfDepth))))); + fcalPhysical->add(new GeoTransform(GeoTrf::Translate3D(0.,0.,-(fcalHalfDepth-(startZFCal2-startZFCal1)-halfDepth)))); fcalPhysical->add(physVol); modPhysical = physVol; @@ -375,18 +371,18 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() // 16 Troughs representing Cable Harnesses: if(m_absPhysical2==0) { - double troughDepth = 1.0 * CLHEP::cm; + double troughDepth = 1.0 * GeoModelKernelUnits::cm; double outerRadius = fcalData[1].outerModuleRadius; double innerRadius = outerRadius - troughDepth; double halfLength = fcalData[1].fullModuleDepth/ 2.0; - double deltaPhi = 5.625 * CLHEP::deg; - double startPhi = 11.25 * CLHEP::deg - deltaPhi/2.0; + double deltaPhi = 5.625 * GeoModelKernelUnits::deg; + double startPhi = 11.25 * GeoModelKernelUnits::deg - deltaPhi/2.0; GeoTubs * tubs = new GeoTubs(innerRadius,outerRadius,halfLength,startPhi,deltaPhi ); GeoLogVol *logVol = new GeoLogVol(baseName+"Module2::CableTrough",tubs,FCalCableHarness); GeoPhysVol *physVol = new GeoPhysVol(logVol); - Genfun::Variable i; - Genfun::GENFUNCTION rotationAngle = fcalstartPhi + 22.5*CLHEP::deg*i; - GeoXF::TRANSFUNCTION xf = GeoXF::Pow(HepGeom::RotateZ3D(1.0),rotationAngle); + GeoGenfun::Variable i; + GeoGenfun::GENFUNCTION rotationAngle = fcalstartPhi + 22.5*GeoModelKernelUnits::deg*i; + GeoXF::TRANSFUNCTION xf = GeoXF::Pow(GeoTrf::RotateZ3D(1.0),rotationAngle); GeoSerialTransformer *st = new GeoSerialTransformer(physVol,&xf,4); modPhysical->add(st); } @@ -435,7 +431,7 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() if (m_VisLimit!=-1 && (counter++ > m_VisLimit)) continue; - GeoTransform *xf = new GeoTransform(HepGeom::Translate3D(thisTubeX*CLHEP::cm, thisTubeY*CLHEP::cm,0)); + GeoTransform *xf = new GeoTransform(GeoTrf::Translate3D(thisTubeX*GeoModelKernelUnits::cm, thisTubeY*GeoModelKernelUnits::cm,0)); modPhysical->add(xf); modPhysical->add(gapPhys); } @@ -456,7 +452,7 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() // We need few more materials // ColdTC effective absorber: Cu with a little bit of inactive argon - GeoMaterial *thisAbsorber = new GeoMaterial("ColdTCAbsorber",8.701*CLHEP::g/CLHEP::cm3); + GeoMaterial *thisAbsorber = new GeoMaterial("ColdTCAbsorber",8.701*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); thisAbsorber->add(Copper,0.994); thisAbsorber->add(LAr,0.006); thisAbsorber->lock(); @@ -472,7 +468,7 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() } - fcalPhysical->add(new GeoTransform(HepGeom::Transform3D(NoRot,CLHEP::Hep3Vector(0.,0.,fcalHalfDepth-halfDepth)))); + fcalPhysical->add(new GeoTransform(GeoTrf::Translate3D(0.,0.,fcalHalfDepth-halfDepth))); fcalPhysical->add(physVol); modPhysical = physVol; @@ -491,8 +487,8 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() double outerRadius = fcalData[2].outerGapRadius; // Where in DB should go this ? - double ElectrodeDepth = 0.85*CLHEP::cm; - double ActiveDepth = 0.2*CLHEP::cm; + double ElectrodeDepth = 0.85*GeoModelKernelUnits::cm; + double ActiveDepth = 0.2*GeoModelKernelUnits::cm; // big argon gap solid GeoTubs *gapSolid = new GeoTubs(innerRadius,outerRadius,halfDepth, fcalstartPhi, fcaldeltaPhi); @@ -510,29 +506,29 @@ GeoVFullPhysVol* LArGeo::FCALConstructionH62004::GetEnvelope() // active gaps in electrode int iCopy = 1; - double zPos = -ElectrodeDepth/2. + 1.5 * CLHEP::mm + ActiveDepth/2.; - GeoTransform *t1 = new GeoTransform(HepGeom::Translate3D(0.,0.,zPos)); + double zPos = -ElectrodeDepth/2. + 1.5 * GeoModelKernelUnits::mm + ActiveDepth/2.; + GeoTransform *t1 = new GeoTransform(GeoTrf::Translate3D(0.,0.,zPos)); electrodePhys->add(new GeoSerialIdentifier(iCopy)); electrodePhys->add(t1); electrodePhys->add(activePhys); ++iCopy; - zPos += 3.5 * CLHEP::mm; + zPos += 3.5 * GeoModelKernelUnits::mm; electrodePhys->add(new GeoSerialIdentifier(iCopy)); electrodePhys->add(t1); electrodePhys->add(activePhys); // electrode in inactive argon zPos = -halfDepth + ElectrodeDepth/2.; - GeoTransform *t2 = new GeoTransform(HepGeom::Translate3D(0.,0.,zPos)); + GeoTransform *t2 = new GeoTransform(GeoTrf::Translate3D(0.,0.,zPos)); gapPhys->add(new GeoSerialIdentifier(1)); gapPhys->add(t2); gapPhys->add(electrodePhys); // big gaps in copper block - zPos = -fcalData[2].fullModuleDepth/2. + 2.2 * CLHEP::cm + halfDepth; + zPos = -fcalData[2].fullModuleDepth/2. + 2.2 * GeoModelKernelUnits::cm + halfDepth; for ( iCopy = 1; iCopy < 9; ++iCopy ){ modPhysical->add(new GeoSerialIdentifier(iCopy)); - modPhysical->add(new GeoTransform(HepGeom::Translate3D(0.,0.,zPos))); + modPhysical->add(new GeoTransform(GeoTrf::Translate3D(0.,0.,zPos))); modPhysical->add(gapPhys); - zPos += 3.5*CLHEP::cm; + zPos += 3.5*GeoModelKernelUnits::cm; } m_absPhysical3 = modPhysical; } diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/FrontBeamConstructionH62004.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/FrontBeamConstructionH62004.cxx index bcc648917569e34f8ab1976b7d030b47143d3a96..fa4dba728df4fde477ac82380e3d1d48da1665b2 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/FrontBeamConstructionH62004.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/FrontBeamConstructionH62004.cxx @@ -23,18 +23,15 @@ #include "GeoModelKernel/GeoSerialTransformer.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" -#include "GeoModelKernel/GeoSerialDenominator.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" -// For transforms: -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/GenericFunctions/Variable.hh" -// For units: -#include "CLHEP/Units/PhysicalConstants.h" +#include "GeoGenericFunctions/Variable.h" // For the database: #include "RDBAccessSvc/IRDBAccessSvc.h" @@ -126,14 +123,14 @@ GeoVPhysVol* LArGeo::FrontBeamConstructionH62004::GetEnvelope() // Define dimension of Front part & position of Front part // // DB ? - const double bard_x = 20.0*CLHEP::cm; - const double bard_y = 20.0*CLHEP::cm; - //const double bard_z = 35.0*CLHEP::cm; - const double bard_z = 100.0*CLHEP::cm; - const double fbpc_z[2] = {60.4*CLHEP::cm,112.7*CLHEP::cm}; + const double bard_x = 20.0*GeoModelKernelUnits::cm; + const double bard_y = 20.0*GeoModelKernelUnits::cm; + //const double bard_z = 35.0*GeoModelKernelUnits::cm; + const double bard_z = 100.0*GeoModelKernelUnits::cm; + const double fbpc_z[2] = {60.4*GeoModelKernelUnits::cm,112.7*GeoModelKernelUnits::cm}; // Position in exp_hall - //const double z_bard=-2160.0*CLHEP::cm+80.1*CLHEP::cm+16.*CLHEP::cm+bard_z; - //const double z_bardm=-2160.0*CLHEP::cm+1362.3*CLHEP::cm; + //const double z_bard=-2160.0*GeoModelKernelUnits::cm+80.1*GeoModelKernelUnits::cm+16.*GeoModelKernelUnits::cm+bard_z; + //const double z_bardm=-2160.0*GeoModelKernelUnits::cm+1362.3*GeoModelKernelUnits::cm; @@ -147,27 +144,27 @@ GeoVPhysVol* LArGeo::FrontBeamConstructionH62004::GetEnvelope() // In the old stand-alone code, all three were round with a radius of 5cm // and 7.5mm thickness. // Logbooks in the control-room say that their xyz sizes are: - // B1 : 30 x 30 x 10 CLHEP::mm - // W1,2 : 150 x 150 x 10 CLHEP::mm + // B1 : 30 x 30 x 10 GeoModelKernelUnits::mm + // W1,2 : 150 x 150 x 10 GeoModelKernelUnits::mm // They are certainly not round, so stick with the logbook values // The beam sees the instrumentation in the following order: // W1, W2, B1, MWPC5 log << MSG::INFO << "Create Front Scintillators ..." << endmsg; - const double Wxy= 75.0*CLHEP::mm; - const double Wz = 5.0*CLHEP::mm; - const double Bxy= 15.0*CLHEP::mm; - const double Bz = 5.0*CLHEP::mm; + const double Wxy= 75.0*GeoModelKernelUnits::mm; + const double Wz = 5.0*GeoModelKernelUnits::mm; + const double Bxy= 15.0*GeoModelKernelUnits::mm; + const double Bz = 5.0*GeoModelKernelUnits::mm; std::vector<double> v_ScintXY; std::vector<double> v_ScintZ; v_ScintXY.push_back(Wxy); v_ScintXY.push_back(Wxy); v_ScintXY.push_back(Bxy); - v_ScintZ.push_back(10.*CLHEP::mm); - v_ScintZ.push_back(40.*CLHEP::mm); - v_ScintZ.push_back(180.*CLHEP::mm); + v_ScintZ.push_back(10.*GeoModelKernelUnits::mm); + v_ScintZ.push_back(40.*GeoModelKernelUnits::mm); + v_ScintZ.push_back(180.*GeoModelKernelUnits::mm); // Create one Scintillator and place it twice along z: @@ -182,7 +179,7 @@ GeoVPhysVol* LArGeo::FrontBeamConstructionH62004::GetEnvelope() //BScintPhysical->add( new GeoNameTag(ScintName) ); for ( unsigned int i = 0; i < v_ScintZ.size(); i++ ) { m_H62004FrontBeamPhysical->add( new GeoIdentifierTag(i+1) ); - m_H62004FrontBeamPhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, (v_ScintZ[ i ]-bard_z) ) ) ) ; m_H62004FrontBeamPhysical->add( new GeoNameTag(ScintName) ); + m_H62004FrontBeamPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (v_ScintZ[ i ]-bard_z) ) ) ) ; m_H62004FrontBeamPhysical->add( new GeoNameTag(ScintName) ); switch(i) { case 0: case 1: { m_H62004FrontBeamPhysical->add( WScintPhysical ); break; } @@ -198,13 +195,13 @@ GeoVPhysVol* LArGeo::FrontBeamConstructionH62004::GetEnvelope() //------ Now create MWPC5 log << MSG::INFO << " Create MWPC5 " << endmsg; - MWPCConstruction MWPC5 (2.*CLHEP::mm); + MWPCConstruction MWPC5 (2.*GeoModelKernelUnits::mm); GeoVPhysVol* MwpcPhysical = MWPC5.GetEnvelope(); - const double MwpcPos = 445.*CLHEP::mm; + const double MwpcPos = 445.*GeoModelKernelUnits::mm; m_H62004FrontBeamPhysical->add( new GeoIdentifierTag(5) ); - m_H62004FrontBeamPhysical->add( new GeoTransform(HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, (MwpcPos-bard_z) ) ) ); + m_H62004FrontBeamPhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (MwpcPos-bard_z) ) ) ); m_H62004FrontBeamPhysical->add( MwpcPhysical ); //----- Done with the MWPC @@ -216,7 +213,7 @@ GeoVPhysVol* LArGeo::FrontBeamConstructionH62004::GetEnvelope() GeoVPhysVol* BPCPhysical = BPC.GetEnvelope(); for(int i=1; i<3; ++i) { m_H62004FrontBeamPhysical->add( new GeoIdentifierTag(i) ); - m_H62004FrontBeamPhysical->add( new GeoTransform(HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, (MwpcPos-bard_z) + fbpc_z[i-1]) ) ); + m_H62004FrontBeamPhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (MwpcPos-bard_z) + fbpc_z[i-1]) ) ); m_H62004FrontBeamPhysical->add(BPCPhysical); } diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/HECConstructionH62004.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/HECConstructionH62004.cxx index 198105e38e17a2cbab9df67cbbd2be22507902ab..d1c4ba5bb72c6e02ec9197999be33191e584c0ea 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/HECConstructionH62004.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/HECConstructionH62004.cxx @@ -22,10 +22,12 @@ #include "GeoModelKernel/GeoSerialTransformer.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoShapeUnion.h" -#include "CLHEP/GenericFunctions/AbsFunction.hh" -#include "CLHEP/GenericFunctions/Variable.hh" -#include "CLHEP/GenericFunctions/Sin.hh" -#include "CLHEP/GenericFunctions/Cos.hh" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" +#include "GeoGenericFunctions/AbsFunction.h" +#include "GeoGenericFunctions/Variable.h" +#include "GeoGenericFunctions/Sin.h" +#include "GeoGenericFunctions/Cos.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -43,7 +45,7 @@ -using namespace Genfun; +using namespace GeoGenfun; using namespace GeoXF; @@ -144,57 +146,57 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62004::GetEnvelope() double zCoordinate[6],innerRadius[6],outerRadius[6]; - double absorberPosY = 1.02*CLHEP::cm; - double PosYcorr = 0.005*CLHEP::cm; + double absorberPosY = 1.02*GeoModelKernelUnits::cm; + double PosYcorr = 0.005*GeoModelKernelUnits::cm; const double moduleNumber = (*hadronicEndcap)[0]->getInt("NSCT"); // 32 Modules unsigned int TBmoduleNumber = 8; - double moduleRinner1 = (*hecLongitudinalBlock)[0]->getDouble("BLRMN")*CLHEP::cm; // 37.2*CLHEP::cm Inner Radius - double moduleRinner2 = (*hecLongitudinalBlock)[1]->getDouble("BLRMN")*CLHEP::cm; // 47.5*CLHEP::cm - //double moduleRouter = (*hecLongitudinalBlock)[0]->getDouble("BLRMX")*CLHEP::cm; //203.*CLHEP::cm Outer Radius - double copperPad = (*hadronicEndcap)[0]->getDouble("COPPER")*CLHEP::cm; // 0.003.*CLHEP::cm - double gapSize = (*hadronicEndcap)[0]->getDouble("LARG")*CLHEP::cm; // 8.5*CLHEP::mm - double betweenWheel = (*hadronicEndcap)[0]->getDouble("GAPWHL")*CLHEP::cm-0.001*CLHEP::cm; //40.5*CLHEP::mm + double moduleRinner1 = (*hecLongitudinalBlock)[0]->getDouble("BLRMN")*GeoModelKernelUnits::cm; // 37.2*GeoModelKernelUnits::cm Inner Radius + double moduleRinner2 = (*hecLongitudinalBlock)[1]->getDouble("BLRMN")*GeoModelKernelUnits::cm; // 47.5*GeoModelKernelUnits::cm + //double moduleRouter = (*hecLongitudinalBlock)[0]->getDouble("BLRMX")*GeoModelKernelUnits::cm; //203.*GeoModelKernelUnits::cm Outer Radius + double copperPad = (*hadronicEndcap)[0]->getDouble("COPPER")*GeoModelKernelUnits::cm; // 0.003.*GeoModelKernelUnits::cm + double gapSize = (*hadronicEndcap)[0]->getDouble("LARG")*GeoModelKernelUnits::cm; // 8.5*GeoModelKernelUnits::mm + double betweenWheel = (*hadronicEndcap)[0]->getDouble("GAPWHL")*GeoModelKernelUnits::cm-0.001*GeoModelKernelUnits::cm; //40.5*GeoModelKernelUnits::mm int indexloop,index; for (indexloop=0; indexloop < depthNumber; ++indexloop){ - depthSize[indexloop] = (*hecLongitudinalBlock)[indexloop]->getDouble("BLDPTH")*CLHEP::cm; - firstAbsorber[indexloop]= (*hecLongitudinalBlock)[indexloop]->getDouble("PLATE0")*CLHEP::cm; + depthSize[indexloop] = (*hecLongitudinalBlock)[indexloop]->getDouble("BLDPTH")*GeoModelKernelUnits::cm; + firstAbsorber[indexloop]= (*hecLongitudinalBlock)[indexloop]->getDouble("PLATE0")*GeoModelKernelUnits::cm; gapNumber[indexloop] = (int) (*hecLongitudinalBlock)[indexloop]->getDouble("BLMOD"); // 4 or 8 } std::string sidx[4]={"_0","_1","_2","_3"}; for (indexloop=0; indexloop < 3; ++indexloop){ - kaptonPosition[indexloop] = (*hadronicEndcap)[0]->getDouble("KPTPOS" + sidx[indexloop])*CLHEP::cm; - kaptonWidth[indexloop] = (*hadronicEndcap)[0]->getDouble("KPTWID" + sidx[indexloop])*CLHEP::cm; + kaptonPosition[indexloop] = (*hadronicEndcap)[0]->getDouble("KPTPOS" + sidx[indexloop])*GeoModelKernelUnits::cm; + kaptonWidth[indexloop] = (*hadronicEndcap)[0]->getDouble("KPTWID" + sidx[indexloop])*GeoModelKernelUnits::cm; } for (indexloop=0; indexloop < 4; ++indexloop){ - tieRodPositionX[indexloop] = (*hadronicEndcap)[0]->getDouble("RODPOSX" + sidx[indexloop])*CLHEP::cm; - tieRodPositionY[indexloop] = (*hadronicEndcap)[0]->getDouble("RODPOSR" + sidx[indexloop])*CLHEP::cm; + tieRodPositionX[indexloop] = (*hadronicEndcap)[0]->getDouble("RODPOSX" + sidx[indexloop])*GeoModelKernelUnits::cm; + tieRodPositionY[indexloop] = (*hadronicEndcap)[0]->getDouble("RODPOSR" + sidx[indexloop])*GeoModelKernelUnits::cm; } for (indexloop=0; indexloop < 2; ++indexloop){ - tieRodDiameter[indexloop] = (*hadronicEndcap)[0]->getDouble("RODDIM" + sidx[indexloop])*CLHEP::cm; - spacerDiameter[indexloop] = (*hadronicEndcap)[0]->getDouble("SPCDIM" + sidx[indexloop])*CLHEP::cm; + tieRodDiameter[indexloop] = (*hadronicEndcap)[0]->getDouble("RODDIM" + sidx[indexloop])*GeoModelKernelUnits::cm; + spacerDiameter[indexloop] = (*hadronicEndcap)[0]->getDouble("SPCDIM" + sidx[indexloop])*GeoModelKernelUnits::cm; } - double absorberZ1 = (*hadronicEndcap)[0]->getDouble("PLATE_0")*CLHEP::cm; // 2.5*CLHEP::cm; - double absorberZ2 = (*hadronicEndcap)[0]->getDouble("PLATE_1")*CLHEP::cm; //5.0*CLHEP::cm; + double absorberZ1 = (*hadronicEndcap)[0]->getDouble("PLATE_0")*GeoModelKernelUnits::cm; // 2.5*GeoModelKernelUnits::cm; + double absorberZ2 = (*hadronicEndcap)[0]->getDouble("PLATE_1")*GeoModelKernelUnits::cm; //5.0*GeoModelKernelUnits::cm; - const double moduleDeltaPhi = 2*M_PI/moduleNumber; //11.25*CLHEP::deg; + const double moduleDeltaPhi = 2*M_PI/moduleNumber; //11.25*GeoModelKernelUnits::deg; double modulePhistart = -moduleDeltaPhi/2.; - //double modulePhistart = 0.0*CLHEP::deg; - zCoordinate[0]=0.0*CLHEP::cm; - zCoordinate[1]=depthSize[0]; //28.05*CLHEP::cm; - zCoordinate[2]=depthSize[0]+0.001*CLHEP::cm; //28.051*CLHEP::cm; + //double modulePhistart = 0.0*GeoModelKernelUnits::deg; + zCoordinate[0]=0.0*GeoModelKernelUnits::cm; + zCoordinate[1]=depthSize[0]; //28.05*GeoModelKernelUnits::cm; + zCoordinate[2]=depthSize[0]+0.001*GeoModelKernelUnits::cm; //28.051*GeoModelKernelUnits::cm; zCoordinate[3]=zCoordinate[2]+depthSize[1]+depthSize[2]+betweenWheel/2; zCoordinate[4]=zCoordinate[3]+depthSize[3]+depthSize[4]+betweenWheel/2; - zCoordinate[5]=181.8*CLHEP::cm; + zCoordinate[5]=181.8*GeoModelKernelUnits::cm; innerRadius[0]=moduleRinner1; innerRadius[1]=moduleRinner1; for (index=2; index<numberZplane;++index) {innerRadius[index]=moduleRinner2;} - for (index=0; index<numberZplane;++index) {outerRadius[index]=innerRadius[0] + 78.7*CLHEP::cm; } + for (index=0; index<numberZplane;++index) {outerRadius[index]=innerRadius[0] + 78.7*GeoModelKernelUnits::cm; } //---------------------------------------------------------------- @@ -273,9 +275,9 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62004::GetEnvelope() // Place Module in HEC mother //---------------------------------------------------------------- GeoSerialIdentifier *sI = new GeoSerialIdentifier(9); - Genfun::Variable Index; - Genfun::GENFUNCTION ModuleRotationAngle = M_PI/2. + moduleDeltaPhi/2. + moduleDeltaPhi*Index; - GeoXF::TRANSFUNCTION t = GeoXF::Pow(HepGeom::RotateZ3D(1.0),ModuleRotationAngle); + GeoGenfun::Variable Index; + GeoGenfun::GENFUNCTION ModuleRotationAngle = M_PI/2. + moduleDeltaPhi/2. + moduleDeltaPhi*Index; + GeoXF::TRANSFUNCTION t = GeoXF::Pow(GeoTrf::RotateZ3D(1.0),ModuleRotationAngle); GeoSerialTransformer *sT = new GeoSerialTransformer (physiModule,&t,TBmoduleNumber); m_h6Phys->add(sI); m_h6Phys->add(sT); @@ -297,9 +299,9 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62004::GetEnvelope() } //---------------------------------------------------------------- -// Absorbers , the inner and outer Radius are smaller on 1.02*CLHEP::cm +// Absorbers , the inner and outer Radius are smaller on 1.02*GeoModelKernelUnits::cm // but positionned in the center of depth. this alows -// to have 2 CLHEP::mm gap between the copper plates of neighbor Modules +// to have 2 GeoModelKernelUnits::mm gap between the copper plates of neighbor Modules //---------------------------------------------------------------- std::string absorberName = depthName + "::Absorber"; double absorberRinner1 = moduleRinner1-absorberPosY; @@ -332,7 +334,7 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62004::GetEnvelope() double depthPositionZ = 0.; for(int indexDepth=0; indexDepth<5; indexDepth++){ depthPositionZ +=depthSize[indexDepth]/2.; - if (indexDepth==1) depthPositionZ +=0.001*CLHEP::cm; + if (indexDepth==1) depthPositionZ +=0.001*GeoModelKernelUnits::cm; moduleRinner = moduleRinner2; if (indexDepth==0) moduleRinner = moduleRinner1; //for first depth //Absorber size and position @@ -349,7 +351,7 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62004::GetEnvelope() physiDepth[indexDepth] = new GeoPhysVol(logiDepth[indexDepth]); physiModule->add(new GeoIdentifierTag(100+indexDepth)); - physiModule->add(new GeoTransform(HepGeom::Translate3D(0,0,depthPositionZ))); + physiModule->add(new GeoTransform(GeoTrf::Translate3D(0,0,depthPositionZ))); physiModule->add(physiDepth[indexDepth]); depthPositionZ +=depthSize[indexDepth]/2.; if (indexDepth==2) depthPositionZ +=betweenWheel; @@ -368,9 +370,9 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62004::GetEnvelope() absorberNo=2; } - Genfun::Variable Index; - GeoXF::TRANSFUNCTION TS = GeoXF::Pow(HepGeom::TranslateZ3D(1.0),slicePositionZ + (absorberSize+gapSize)*Index); - GeoXF::TRANSFUNCTION TA = HepGeom::TranslateX3D(absorberPosY) * GeoXF::Pow(HepGeom::TranslateZ3D(1.0),absorberPositionZ + (absorberSize+gapSize)*Index); + GeoGenfun::Variable Index; + GeoXF::TRANSFUNCTION TS = GeoXF::Pow(GeoTrf::TranslateZ3D(1.0),slicePositionZ + (absorberSize+gapSize)*Index); + GeoXF::TRANSFUNCTION TA = GeoTrf::TranslateX3D(absorberPosY) * GeoXF::Pow(GeoTrf::TranslateZ3D(1.0),absorberPositionZ + (absorberSize+gapSize)*Index); GeoSerialIdentifier *sI = new GeoSerialIdentifier(sliceCopyNo); GeoSerialTransformer *sTS = new GeoSerialTransformer(physiSlice[sliceNo], &TS, gapNumber[indexDepth]); @@ -383,14 +385,14 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62004::GetEnvelope() double firstAbsorberPositionZ = firstAbsorber[0]/2.- depthSize[0]/2.0; physiDepth[0]->add(new GeoIdentifierTag(50)); - physiDepth[0]->add(new GeoTransform(HepGeom::Translate3D(absorberPosY,0,firstAbsorberPositionZ))); + physiDepth[0]->add(new GeoTransform(GeoTrf::Translate3D(absorberPosY,0,firstAbsorberPositionZ))); physiDepth[0]->add(physiFirstAbsorber); firstAbsorberPositionZ = firstAbsorber[3]/2.- depthSize[3]/2.0; physiAbsorber[1] = new GeoPhysVol(logiAbsorber[1]); physiDepth[3]->add(new GeoIdentifierTag(51)); - physiDepth[3]->add(new GeoTransform(HepGeom::Translate3D(absorberPosY,0,firstAbsorberPositionZ))); + physiDepth[3]->add(new GeoTransform(GeoTrf::Translate3D(absorberPosY,0,firstAbsorberPositionZ))); physiDepth[3]->add(physiAbsorber[1]); @@ -414,13 +416,13 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62004::GetEnvelope() physiEstBoard = new GeoPhysVol(logiEstBoard); physiSlice[indexBoard]->add(new GeoIdentifierTag(indexKapton)); - physiSlice[indexBoard]->add(new GeoTransform(HepGeom::Translate3D(0,0,kaptonPositionZ))); + physiSlice[indexBoard]->add(new GeoTransform(GeoTrf::Translate3D(0,0,kaptonPositionZ))); physiSlice[indexBoard]->add(physiEstBoard); if(indexKapton==1) { physiPadBoard = new GeoPhysVol(logiPadBoard); physiEstBoard->add(new GeoIdentifierTag(indexKapton)); - physiEstBoard->add(new GeoTransform(HepGeom::Translate3D(0,0,0))); + physiEstBoard->add(new GeoTransform(GeoTrf::Translate3D(0,0,0))); physiEstBoard->add(physiPadBoard); } }//for indexBoard @@ -430,12 +432,12 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62004::GetEnvelope() std::string tieRodName = sliceName + "::TieRod"; double ztie[2]; - ztie[0]=-0.227825*CLHEP::cm; - ztie[1]= 0.227825*CLHEP::cm; - double rodSize = 0.39435*CLHEP::cm; + ztie[0]=-0.227825*GeoModelKernelUnits::cm; + ztie[1]= 0.227825*GeoModelKernelUnits::cm; + double rodSize = 0.39435*GeoModelKernelUnits::cm; for (int indexWheel=0; indexWheel<2; indexWheel++) { - solidTieRod[indexWheel] = new GeoTubs(0.*CLHEP::cm,spacerDiameter[indexWheel]/2.,rodSize/2., - 0.*CLHEP::deg,360.*CLHEP::deg); //size + solidTieRod[indexWheel] = new GeoTubs(0.*GeoModelKernelUnits::cm,spacerDiameter[indexWheel]/2.,rodSize/2., + 0.*GeoModelKernelUnits::deg,360.*GeoModelKernelUnits::deg); //size logiTieRod[indexWheel] = new GeoLogVol(tieRodName,solidTieRod[indexWheel], Iron); } for(int numberSlice=0; numberSlice<3; numberSlice++){ @@ -446,13 +448,13 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62004::GetEnvelope() for(int iz=0;iz<2;iz++){ physiTieRod[numberTie] = new GeoPhysVol(logiTieRod[numberTie]); physiSlice[numberSlice]->add(new GeoIdentifierTag(indexRod)); - physiSlice[numberSlice]->add(new GeoTransform(HepGeom::Translate3D(tieRodPositionY[indexRod], + physiSlice[numberSlice]->add(new GeoTransform(GeoTrf::Translate3D(tieRodPositionY[indexRod], tieRodPositionX[indexRod],ztie[iz]))); physiSlice[numberSlice]->add(physiTieRod[numberTie]); physiTieRod[numberTie] = new GeoPhysVol(logiTieRod[numberTie]); physiSlice[numberSlice]->add(new GeoIdentifierTag(indexRod)); - physiSlice[numberSlice]->add(new GeoTransform(HepGeom::Translate3D(tieRodPositionY[indexRod], + physiSlice[numberSlice]->add(new GeoTransform(GeoTrf::Translate3D(tieRodPositionY[indexRod], -tieRodPositionX[indexRod],ztie[iz]))); physiSlice[numberSlice]->add(physiTieRod[numberTie]); }//for iz @@ -460,7 +462,7 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62004::GetEnvelope() for( int iz1=0;iz1<2;iz1++){ physiTieRod[numberTie] = new GeoPhysVol(logiTieRod[numberTie]); physiSlice[numberSlice]->add(new GeoIdentifierTag(indexRod)); - physiSlice[numberSlice]->add(new GeoTransform(HepGeom::Translate3D(tieRodPositionY[0],tieRodPositionX[0],ztie[iz1]))); + physiSlice[numberSlice]->add(new GeoTransform(GeoTrf::Translate3D(tieRodPositionY[0],tieRodPositionX[0],ztie[iz1]))); physiSlice[numberSlice]->add(physiTieRod[numberTie]); }//for iz1 } @@ -469,8 +471,8 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62004::GetEnvelope() // Tie rods in Absorbers //---------------------------------------------------------------- - solidAbsorberTieRod[0] = new GeoTubs(0.*CLHEP::cm,tieRodDiameter[0]/2.,absorberZ1/2.,0.*CLHEP::deg,360.*CLHEP::deg); - solidAbsorberTieRod[1] = new GeoTubs(0.*CLHEP::cm,tieRodDiameter[1]/2.,absorberZ2/2.,0.*CLHEP::deg,360.*CLHEP::deg); + solidAbsorberTieRod[0] = new GeoTubs(0.*GeoModelKernelUnits::cm,tieRodDiameter[0]/2.,absorberZ1/2.,0.*GeoModelKernelUnits::deg,360.*GeoModelKernelUnits::deg); + solidAbsorberTieRod[1] = new GeoTubs(0.*GeoModelKernelUnits::cm,tieRodDiameter[1]/2.,absorberZ2/2.,0.*GeoModelKernelUnits::deg,360.*GeoModelKernelUnits::deg); logiAbsorberTieRod[0] = new GeoLogVol(tieRodName, solidAbsorberTieRod[0], Iron); logiAbsorberTieRod[1] = new GeoLogVol(tieRodName, solidAbsorberTieRod[1], Iron); for(int indexA=0; indexA<3; indexA++){ @@ -480,19 +482,19 @@ GeoVFullPhysVol* LArGeo::HECConstructionH62004::GetEnvelope() for(indexRod=1; indexRod<2; indexRod++){ physiAbsorberTieRod[indexR] = new GeoPhysVol(logiAbsorberTieRod[indexR]); physiAbsorber[indexA]->add(new GeoIdentifierTag(indexRod)); - physiAbsorber[indexA]->add(new GeoTransform(HepGeom::Translate3D(tieRodPositionY[indexRod]+absorberPosY, + physiAbsorber[indexA]->add(new GeoTransform(GeoTrf::Translate3D(tieRodPositionY[indexRod]+absorberPosY, tieRodPositionX[indexRod], 0))); physiAbsorber[indexA]->add(physiAbsorberTieRod[indexR]); physiAbsorberTieRod[indexR] = new GeoPhysVol(logiAbsorberTieRod[indexR]); physiAbsorber[indexA]->add(new GeoIdentifierTag(indexRod)); - physiAbsorber[indexA]->add(new GeoTransform(HepGeom::Translate3D(tieRodPositionY[indexRod]+absorberPosY, + physiAbsorber[indexA]->add(new GeoTransform(GeoTrf::Translate3D(tieRodPositionY[indexRod]+absorberPosY, -tieRodPositionX[indexRod], 0))); physiAbsorber[indexA]->add(physiAbsorberTieRod[indexR]); } physiAbsorberTieRod[indexR] = new GeoPhysVol(logiAbsorberTieRod[indexR]); physiAbsorber[indexA]->add(new GeoIdentifierTag(indexRod)); - physiAbsorber[indexA]->add(new GeoTransform(HepGeom::Translate3D(tieRodPositionY[0]+absorberPosY, + physiAbsorber[indexA]->add(new GeoTransform(GeoTrf::Translate3D(tieRodPositionY[0]+absorberPosY, tieRodPositionX[0],0))); physiAbsorber[indexA]->add(physiAbsorberTieRod[indexR]); } diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/LArDetectorFactoryH62004.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/LArDetectorFactoryH62004.cxx index 89945c3451bc2e40aac3788e418f189e54a2831a..0fafefd9cfd043492be6c866db9a040f46bd474a 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/LArDetectorFactoryH62004.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/LArDetectorFactoryH62004.cxx @@ -25,10 +25,12 @@ #include "GeoModelKernel/GeoSerialDenominator.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoSerialTransformer.h" -#include "CLHEP/GenericFunctions/AbsFunction.hh" -#include "CLHEP/GenericFunctions/Variable.hh" -#include "CLHEP/GenericFunctions/Sin.hh" -#include "CLHEP/GenericFunctions/Cos.hh" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" +#include "GeoGenericFunctions/AbsFunction.h" +#include "GeoGenericFunctions/Variable.h" +#include "GeoGenericFunctions/Sin.h" +#include "GeoGenericFunctions/Cos.h" #include "StoreGate/StoreGateSvc.h" #include "AthContainers/DataVector.h" @@ -67,7 +69,7 @@ //#include "LArGeoRAL/RAL.h" //#include "LArGeoCode/VDetectorParameters.h" -using namespace Genfun; +using namespace GeoGenfun; using namespace GeoXF; @@ -115,8 +117,8 @@ void LArGeo::LArDetectorFactoryH62004::getSimulationParameters() m_tableYpos = 70.; } - std::cout << " Use cryo X : " << m_cryoXpos << " CLHEP::mm" << std::endl; - std::cout << " Use table Y : " << m_tableYpos << " CLHEP::mm" << std::endl; + std::cout << " Use cryo X : " << m_cryoXpos << " GeoModelKernelUnits::mm" << std::endl; + std::cout << " Use table Y : " << m_tableYpos << " GeoModelKernelUnits::mm" << std::endl; const_cast<LArGeoTB2004Options*>(largeoTB2004Options)->printMe(); @@ -154,9 +156,9 @@ void LArGeo::LArDetectorFactoryH62004::create(GeoPhysVol *world) const GeoMaterial *air = materialManager->getMaterial("std::Air"); - double expHallX = 14000.*CLHEP::mm; - double expHallY = 14000.*CLHEP::mm; - double expHallZ = 50000.*CLHEP::mm; + double expHallX = 14000.*GeoModelKernelUnits::mm; + double expHallY = 14000.*GeoModelKernelUnits::mm; + double expHallZ = 50000.*GeoModelKernelUnits::mm; //-----------------------------------------------------------------------------------// // Next make the box that describes the shape of the expHall volume: // @@ -181,20 +183,20 @@ void LArGeo::LArDetectorFactoryH62004::create(GeoPhysVol *world) // the element we want to position in the following order: - double Theta = -90. * CLHEP::deg; - double Phi = 0. * CLHEP::deg; + double Theta = -90. * GeoModelKernelUnits::deg; + double Phi = 0. * GeoModelKernelUnits::deg; - CLHEP::HepRotation Mrot ; - Mrot.rotateX(Theta); - Mrot.rotateZ(Phi); - CLHEP::Hep3Vector pos3Vector( - m_cryoXpos*CLHEP::mm, 0.*CLHEP::mm, 12250.*CLHEP::mm ); + GeoTrf::Transform3D Mrot = GeoTrf::RotateZ3D(Phi) * GeoTrf::RotateX3D(Theta); + GeoTrf::Translation3D pos3Vector(- m_cryoXpos*GeoModelKernelUnits::mm + , 0.*GeoModelKernelUnits::mm + , 12250.*GeoModelKernelUnits::mm ); H6CryostatConstruction H6CryoCons; GeoVPhysVol* CryoEnvelope = 0; CryoEnvelope = H6CryoCons.GetEnvelope(); expHallPhys->add(new GeoNameTag("LAr")); - //expHallPhys->add( new GeoTransform( HepGeom::Translate3D(pos3Vector)*HepGeom::RotateX3D(Theta)*HepGeom::RotateZ3D(Phi) )); - expHallPhys->add( new GeoTransform( HepGeom::Transform3D(Mrot, pos3Vector) ) ); + //expHallPhys->add( new GeoTransform( GeoTrf::Translate3D(pos3Vector)*GeoTrf::RotateX3D(Theta)*GeoTrf::RotateZ3D(Phi) )); + expHallPhys->add(new GeoTransform(pos3Vector*Mrot));// GeoTrf::Transform3D(Mrot, pos3Vector) ) ); expHallPhys->add(CryoEnvelope); @@ -205,28 +207,28 @@ void LArGeo::LArDetectorFactoryH62004::create(GeoPhysVol *world) // Add the front beam instrumentation: FrontBeamConstructionH62004 FrontBeamConstruction; // DB ? - const double bard_z = 100.0*CLHEP::cm; - const double z_bard=-2160.0*CLHEP::cm+80.1*CLHEP::cm+16.*CLHEP::cm+bard_z; + const double bard_z = 100.0*GeoModelKernelUnits::cm; + const double z_bard=-2160.0*GeoModelKernelUnits::cm+80.1*GeoModelKernelUnits::cm+16.*GeoModelKernelUnits::cm+bard_z; { // (with 350=1/2 length of FrontBeam volume) GeoVPhysVol* front = 0; front = FrontBeamConstruction.GetEnvelope(); if(front !=0 && expHallPhys !=0){ expHallPhys->add( new GeoNameTag("H62004::Front")); - expHallPhys->add( new GeoTransform( HepGeom::TranslateZ3D(z_bard) ) ); + expHallPhys->add( new GeoTransform( GeoTrf::TranslateZ3D(z_bard) ) ); expHallPhys->add(front); } } // Add middle chambers MiddleBeamConstructionH62004 MiddleBeamConstruction; - const double z_bardm=-2160.0*CLHEP::cm+1362.3*CLHEP::cm; - const double bttb_pos = 833.5*CLHEP::cm; + const double z_bardm=-2160.0*GeoModelKernelUnits::cm+1362.3*GeoModelKernelUnits::cm; + const double bttb_pos = 833.5*GeoModelKernelUnits::cm; { GeoVPhysVol* middle = 0; middle = MiddleBeamConstruction.GetEnvelope(); if(middle != 0 && expHallPhys !=0){ - double ym_pos = m_tableYpos * (z_bardm + 2160*CLHEP::cm) * (1./(bttb_pos + 2160*CLHEP::cm)); + double ym_pos = m_tableYpos * (z_bardm + 2160*GeoModelKernelUnits::cm) * (1./(bttb_pos + 2160*GeoModelKernelUnits::cm)); expHallPhys->add( new GeoNameTag("H62004::Middle")); - expHallPhys->add( new GeoTransform( HepGeom::TranslateY3D(ym_pos) * HepGeom::TranslateZ3D(z_bardm) ) ); + expHallPhys->add( new GeoTransform( GeoTrf::TranslateY3D(ym_pos) * GeoTrf::TranslateZ3D(z_bardm) ) ); expHallPhys->add(middle); } } @@ -237,24 +239,24 @@ void LArGeo::LArDetectorFactoryH62004::create(GeoPhysVol *world) mov = MovableTable.GetEnvelope(); if(mov != 0 && expHallPhys !=0){ expHallPhys->add( new GeoNameTag("H62004::Movable")); - expHallPhys->add( new GeoTransform( HepGeom::TranslateY3D(m_tableYpos) * HepGeom::TranslateZ3D(bttb_pos) ) ); + expHallPhys->add( new GeoTransform( GeoTrf::TranslateY3D(m_tableYpos) * GeoTrf::TranslateZ3D(bttb_pos) ) ); expHallPhys->add(mov); } } // WarmTC after the cryostat - double WTC_tild = -1.1*CLHEP::deg; // 24 CLHEP::mm tild on 1250 CLHEP::mm length !! should go to DB ? - double WTC_len = 591.5*CLHEP::mm; - double WTC_sci_z = 12.7*CLHEP::mm; - double Muon_dist = 120.0*CLHEP::mm; - double Muon_z = 1.0*CLHEP::cm; - double bcry_zpos = 1225.0*CLHEP::cm; - double bcry_rwarm = 129.55*CLHEP::cm; - double WTC_x = 0.0*CLHEP::mm; - double WTC_y = 0.0*CLHEP::mm; - double WTC_z = 460.0*CLHEP::mm - 120.*CLHEP::mm - 10.*CLHEP::mm; - double z_m = (86.0*CLHEP::mm + WTC_len + WTC_sci_z + Muon_dist + Muon_z) / 2; + double WTC_tild = -1.1*GeoModelKernelUnits::deg; // 24 GeoModelKernelUnits::mm tild on 1250 GeoModelKernelUnits::mm length !! should go to DB ? + double WTC_len = 591.5*GeoModelKernelUnits::mm; + double WTC_sci_z = 12.7*GeoModelKernelUnits::mm; + double Muon_dist = 120.0*GeoModelKernelUnits::mm; + double Muon_z = 1.0*GeoModelKernelUnits::cm; + double bcry_zpos = 1225.0*GeoModelKernelUnits::cm; + double bcry_rwarm = 129.55*GeoModelKernelUnits::cm; + double WTC_x = 0.0*GeoModelKernelUnits::mm; + double WTC_y = 0.0*GeoModelKernelUnits::mm; + double WTC_z = 460.0*GeoModelKernelUnits::mm - 120.*GeoModelKernelUnits::mm - 10.*GeoModelKernelUnits::mm; + double z_m = (86.0*GeoModelKernelUnits::mm + WTC_len + WTC_sci_z + Muon_dist + Muon_z) / 2; WarmTCConstructionH62004 wtcConstruction; { @@ -264,10 +266,8 @@ void LArGeo::LArDetectorFactoryH62004::create(GeoPhysVol *world) std::cout<<"WTC envelope: "<<wtc<<"/"<<expHallPhys<<std::endl; if(wtc !=0 && expHallPhys !=0){ expHallPhys->add( new GeoNameTag("LAr")); - CLHEP::HepRotation rotTC; - rotTC.rotateX(WTC_tild); - expHallPhys->add( new GeoTransform( HepGeom::Transform3D( rotTC, - CLHEP::Hep3Vector(WTC_x, WTC_y, bcry_zpos + bcry_rwarm + WTC_z + z_m)))); + GeoTrf::RotateX3D rotTC(WTC_tild); + expHallPhys->add( new GeoTransform( GeoTrf::Translation3D(WTC_x, WTC_y, bcry_zpos + bcry_rwarm + WTC_z + z_m) * rotTC)); expHallPhys->add(wtc); } } diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/MiddleBeamConstructionH62004.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/MiddleBeamConstructionH62004.cxx index 24653ca45cd07b46d76c66ad09dd7f5d41d75fcc..8101631899ddc80ce73402ae4ec9a353eab60309 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/MiddleBeamConstructionH62004.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/MiddleBeamConstructionH62004.cxx @@ -23,6 +23,8 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoSerialDenominator.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -30,11 +32,7 @@ #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelUtilities/DecodeVersionKey.h" -// For transforms: -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/GenericFunctions/Variable.hh" -// For units: -#include "CLHEP/Units/PhysicalConstants.h" +#include "GeoGenericFunctions/Variable.h" // For the database: #include "RDBAccessSvc/IRDBAccessSvc.h" @@ -116,13 +114,13 @@ GeoVPhysVol* LArGeo::MiddleBeamConstructionH62004::GetEnvelope() // // Define dimension of Middle part & position of Front part // - double bmtb_x = 12.0*CLHEP::cm; - double bmtb_y = 12.0*CLHEP::cm; - double bmtb_z = 25.0*CLHEP::cm; - //double bmtb_pos = 10.0*CLHEP::cm; - double bpco_pos[4] = {1.*CLHEP::cm, 1.*CLHEP::cm, 15.3*CLHEP::cm, 15.3*CLHEP::cm}; - double bpco_shift[4] = {0.*CLHEP::cm, 7.8*CLHEP::cm, 0.*CLHEP::cm, 7.5*CLHEP::cm}; - double bpc_old_z = (5.100/2)*CLHEP::cm; + double bmtb_x = 12.0*GeoModelKernelUnits::cm; + double bmtb_y = 12.0*GeoModelKernelUnits::cm; + double bmtb_z = 25.0*GeoModelKernelUnits::cm; + //double bmtb_pos = 10.0*GeoModelKernelUnits::cm; + double bpco_pos[4] = {1.*GeoModelKernelUnits::cm, 1.*GeoModelKernelUnits::cm, 15.3*GeoModelKernelUnits::cm, 15.3*GeoModelKernelUnits::cm}; + double bpco_shift[4] = {0.*GeoModelKernelUnits::cm, 7.8*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 7.5*GeoModelKernelUnits::cm}; + double bpc_old_z = (5.100/2)*GeoModelKernelUnits::cm; GeoBox* H62004MiddleBeamShape = new GeoBox( bmtb_x, bmtb_y, bmtb_z ); const GeoLogVol* H62004MiddleBeamLogical = new GeoLogVol( H62004MiddleBeamName, H62004MiddleBeamShape, Air ); @@ -139,11 +137,11 @@ GeoVPhysVol* LArGeo::MiddleBeamConstructionH62004::GetEnvelope() m_H62004MiddleBeamPhysical->add( new GeoIdentifierTag((3+i/2)*10+i) ); switch(i) { case 0: case 2: { - m_H62004MiddleBeamPhysical->add( new GeoTransform(HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, bpco_pos[i]+bpco_shift[i]+bpc_old_z-bmtb_z) ) ); + m_H62004MiddleBeamPhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, bpco_pos[i]+bpco_shift[i]+bpc_old_z-bmtb_z) ) ); m_H62004MiddleBeamPhysical->add(BPCPhysical); break;} case 1: case 3: { - m_H62004MiddleBeamPhysical->add( new GeoTransform(HepGeom::RotateZ3D(90.*CLHEP::deg) * HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, bpco_pos[i]+bpco_shift[i]+bpc_old_z-bmtb_z) ) ); + m_H62004MiddleBeamPhysical->add( new GeoTransform(GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg) * GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, bpco_pos[i]+bpco_shift[i]+bpc_old_z-bmtb_z) ) ); m_H62004MiddleBeamPhysical->add(BPCPhysical); break;} } diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ModulesConstructionH62004.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ModulesConstructionH62004.cxx index 41620b77871327935c942f99213bc8fb6887cd33..f2ffab36b2b3536c5ddc336df45ef9d532e19469 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ModulesConstructionH62004.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ModulesConstructionH62004.cxx @@ -36,10 +36,12 @@ #include "GeoModelKernel/GeoSerialTransformer.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoShapeUnion.h" -#include "CLHEP/GenericFunctions/AbsFunction.hh" -#include "CLHEP/GenericFunctions/Variable.hh" -#include "CLHEP/GenericFunctions/Sin.hh" -#include "CLHEP/GenericFunctions/Cos.hh" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" +#include "GeoGenericFunctions/AbsFunction.h" +#include "GeoGenericFunctions/Variable.h" +#include "GeoGenericFunctions/Sin.h" +#include "GeoGenericFunctions/Cos.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -70,7 +72,7 @@ LArGeo::ModulesConstructionH62004::ModulesConstructionH62004():m_ModulesPhys(0), { // fill the static arrays, if called first time // - //const double thick = 1.*CLHEP::cm; + //const double thick = 1.*GeoModelKernelUnits::cm; static bool first = true; if(first){ first = false; @@ -80,65 +82,65 @@ LArGeo::ModulesConstructionH62004::ModulesConstructionH62004():m_ModulesPhys(0), s_angleX[i] = s_angleY[i] = s_angleZ[i] = 0.; } - s_dX[0] = s_dX[1] = 1.*CLHEP::cm; s_dY[0]= s_dY[1] = 31.6*CLHEP::cm; s_dZ[0] = s_dZ[1] = 50.*CLHEP::cm; - s_shiftX[0] = -26.*CLHEP::cm; s_shiftX[1] = -s_shiftX[0]; - s_shiftY[0] = s_shiftY[1] = 85.1*CLHEP::cm; s_shiftZ[0] = s_shiftZ[1] = -3.*CLHEP::cm; - s_angleX[0] = s_angleX[1] = 4.668*CLHEP::deg; s_angleZ[0] = s_angleZ[1] = 0.*CLHEP::deg; - s_angleY[0] = -30.*CLHEP::deg; s_angleY[1] = -s_angleY[0]; - s_dX[2] = 98.1*CLHEP::cm; s_dY[2] = 98.2*CLHEP::cm; s_dZ[2] = 30.6*CLHEP::cm; - s_shiftX[2] = 0.*CLHEP::cm; s_shiftY[2] = 89.7*CLHEP::cm; s_shiftZ[2] = -42.*CLHEP::cm; - s_angleX[2] = 94.668*CLHEP::deg; s_angleY[2] = 0.; s_angleZ[2] = 90.*CLHEP::degree; + s_dX[0] = s_dX[1] = 1.*GeoModelKernelUnits::cm; s_dY[0]= s_dY[1] = 31.6*GeoModelKernelUnits::cm; s_dZ[0] = s_dZ[1] = 50.*GeoModelKernelUnits::cm; + s_shiftX[0] = -26.*GeoModelKernelUnits::cm; s_shiftX[1] = -s_shiftX[0]; + s_shiftY[0] = s_shiftY[1] = 85.1*GeoModelKernelUnits::cm; s_shiftZ[0] = s_shiftZ[1] = -3.*GeoModelKernelUnits::cm; + s_angleX[0] = s_angleX[1] = 4.668*GeoModelKernelUnits::deg; s_angleZ[0] = s_angleZ[1] = 0.*GeoModelKernelUnits::deg; + s_angleY[0] = -30.*GeoModelKernelUnits::deg; s_angleY[1] = -s_angleY[0]; + s_dX[2] = 98.1*GeoModelKernelUnits::cm; s_dY[2] = 98.2*GeoModelKernelUnits::cm; s_dZ[2] = 30.6*GeoModelKernelUnits::cm; + s_shiftX[2] = 0.*GeoModelKernelUnits::cm; s_shiftY[2] = 89.7*GeoModelKernelUnits::cm; s_shiftZ[2] = -42.*GeoModelKernelUnits::cm; + s_angleX[2] = 94.668*GeoModelKernelUnits::deg; s_angleY[2] = 0.; s_angleZ[2] = 90.*GeoModelKernelUnits::degree; - s_dX[3] = 1.*CLHEP::cm; s_dY[3] = 43.*CLHEP::cm; s_dZ[3] = 40.*CLHEP::cm; + s_dX[3] = 1.*GeoModelKernelUnits::cm; s_dY[3] = 43.*GeoModelKernelUnits::cm; s_dZ[3] = 40.*GeoModelKernelUnits::cm; s_dX[4] = s_dX[3]; s_dY[4] = s_dY[3]; s_dZ[4] = s_dZ[3]; - s_shiftX[3] = -58.5*CLHEP::cm; s_shiftY[3] = 12.2*CLHEP::cm; s_shiftZ[3] = 5.*CLHEP::cm; + s_shiftX[3] = -58.5*GeoModelKernelUnits::cm; s_shiftY[3] = 12.2*GeoModelKernelUnits::cm; s_shiftZ[3] = 5.*GeoModelKernelUnits::cm; s_shiftX[4] = -s_shiftX[3]; s_shiftY[4] = s_shiftY[3]; s_shiftZ[4] = s_shiftZ[3]; - s_angleX[3] = s_angleX[4] = 4.668*CLHEP::deg; s_angleY[3] = -45.*CLHEP::deg; + s_angleX[3] = s_angleX[4] = 4.668*GeoModelKernelUnits::deg; s_angleY[3] = -45.*GeoModelKernelUnits::deg; s_angleY[4] = -s_angleY[3]; - s_angleZ[3] = 0.*CLHEP::deg; + s_angleZ[3] = 0.*GeoModelKernelUnits::deg; s_angleZ[4] = -s_angleZ[3]; - s_dX[5] = 130.*CLHEP::cm; s_dY[5] = 131.*CLHEP::cm; s_dZ[5] = 43.*CLHEP::cm; - s_shiftX[5] = 0.*CLHEP::cm; s_shiftY[5] = 18.1*CLHEP::cm; s_shiftZ[5] = -62.*CLHEP::cm; - s_angleX[5] = 94.668*CLHEP::deg; s_angleY[5] = 0.*CLHEP::deg; - s_angleZ[5] = 90.*CLHEP::deg; + s_dX[5] = 130.*GeoModelKernelUnits::cm; s_dY[5] = 131.*GeoModelKernelUnits::cm; s_dZ[5] = 43.*GeoModelKernelUnits::cm; + s_shiftX[5] = 0.*GeoModelKernelUnits::cm; s_shiftY[5] = 18.1*GeoModelKernelUnits::cm; s_shiftZ[5] = -62.*GeoModelKernelUnits::cm; + s_angleX[5] = 94.668*GeoModelKernelUnits::deg; s_angleY[5] = 0.*GeoModelKernelUnits::deg; + s_angleZ[5] = 90.*GeoModelKernelUnits::deg; - s_dX[6] = s_dX[7] = 1.*CLHEP::cm; s_dY[6] = s_dY[7] = 27.*CLHEP::cm; s_dZ[6] = s_dZ[7] = 40.*CLHEP::cm; - s_shiftX[6] = -58.*CLHEP::cm; s_shiftY[6] = s_shiftY[7] = -57.85*CLHEP::cm; s_shiftZ[6] = s_shiftZ[7] = -1.*CLHEP::cm; + s_dX[6] = s_dX[7] = 1.*GeoModelKernelUnits::cm; s_dY[6] = s_dY[7] = 27.*GeoModelKernelUnits::cm; s_dZ[6] = s_dZ[7] = 40.*GeoModelKernelUnits::cm; + s_shiftX[6] = -58.*GeoModelKernelUnits::cm; s_shiftY[6] = s_shiftY[7] = -57.85*GeoModelKernelUnits::cm; s_shiftZ[6] = s_shiftZ[7] = -1.*GeoModelKernelUnits::cm; s_shiftX[7] = - s_shiftX[6]; - s_angleX[6] = s_angleX[7] = 4.668*CLHEP::deg; s_angleY[6] = -45.*CLHEP::deg; s_angleZ[6] = s_angleZ[7] = 0.*CLHEP::deg; + s_angleX[6] = s_angleX[7] = 4.668*GeoModelKernelUnits::deg; s_angleY[6] = -45.*GeoModelKernelUnits::deg; s_angleZ[6] = s_angleZ[7] = 0.*GeoModelKernelUnits::deg; s_angleY[7] = -s_angleY[6]; - s_dX[8] = 130.*CLHEP::cm; s_dY[8] = 131.*CLHEP::cm; s_dZ[8] = 27.*CLHEP::cm; - s_shiftX[8] = 0.*CLHEP::cm; s_shiftY[8] = -51.9*CLHEP::cm; s_shiftZ[8] = -67.*CLHEP::cm; - s_angleX[8] = 94.668*CLHEP::degree; s_angleY[8] = 0.*CLHEP::degree; s_angleZ[8] = 90.*CLHEP::degree; - s_dX[9] = 1.*CLHEP::cm; s_dY[9] = 82.*CLHEP::cm; s_dZ[9] = 44.5*CLHEP::cm; - s_shiftX[9] = 0.*CLHEP::cm; s_shiftY[9] = -89.0*CLHEP::cm; s_shiftZ[9] = 32.5*CLHEP::cm; - s_angleX[9] = 4.668*CLHEP::degree; s_angleY[9] = 0.*CLHEP::degree; s_angleZ[9] = 90.*CLHEP::degree; + s_dX[8] = 130.*GeoModelKernelUnits::cm; s_dY[8] = 131.*GeoModelKernelUnits::cm; s_dZ[8] = 27.*GeoModelKernelUnits::cm; + s_shiftX[8] = 0.*GeoModelKernelUnits::cm; s_shiftY[8] = -51.9*GeoModelKernelUnits::cm; s_shiftZ[8] = -67.*GeoModelKernelUnits::cm; + s_angleX[8] = 94.668*GeoModelKernelUnits::degree; s_angleY[8] = 0.*GeoModelKernelUnits::degree; s_angleZ[8] = 90.*GeoModelKernelUnits::degree; + s_dX[9] = 1.*GeoModelKernelUnits::cm; s_dY[9] = 82.*GeoModelKernelUnits::cm; s_dZ[9] = 44.5*GeoModelKernelUnits::cm; + s_shiftX[9] = 0.*GeoModelKernelUnits::cm; s_shiftY[9] = -89.0*GeoModelKernelUnits::cm; s_shiftZ[9] = 32.5*GeoModelKernelUnits::cm; + s_angleX[9] = 4.668*GeoModelKernelUnits::degree; s_angleY[9] = 0.*GeoModelKernelUnits::degree; s_angleZ[9] = 90.*GeoModelKernelUnits::degree; - s_dX[10] = s_dX[11] = 1.*CLHEP::cm; s_dY[10] = s_dY[11] = 41.5*CLHEP::cm; s_dZ[10] = s_dZ[11] = 20.3*CLHEP::cm; - s_shiftX[10] = -15.4*CLHEP::cm; s_shiftY[10] = s_shiftY[11] = 14.50*CLHEP::cm; s_shiftZ[10] = s_shiftZ[11] = -39.*CLHEP::cm; + s_dX[10] = s_dX[11] = 1.*GeoModelKernelUnits::cm; s_dY[10] = s_dY[11] = 41.5*GeoModelKernelUnits::cm; s_dZ[10] = s_dZ[11] = 20.3*GeoModelKernelUnits::cm; + s_shiftX[10] = -15.4*GeoModelKernelUnits::cm; s_shiftY[10] = s_shiftY[11] = 14.50*GeoModelKernelUnits::cm; s_shiftZ[10] = s_shiftZ[11] = -39.*GeoModelKernelUnits::cm; s_shiftX[11] = - s_shiftX[10]; - s_angleX[10] = s_angleX[11] = 4.668*CLHEP::degree; s_angleY[10] = -45.*CLHEP::degree; s_angleZ[10] = 0.*CLHEP::degree; + s_angleX[10] = s_angleX[11] = 4.668*GeoModelKernelUnits::degree; s_angleY[10] = -45.*GeoModelKernelUnits::degree; s_angleZ[10] = 0.*GeoModelKernelUnits::degree; s_angleY[11] = -s_angleY[10]; s_angleZ[11] = -s_angleZ[10]; - s_dX[12] = s_dX[13] = 1.*CLHEP::cm; s_dY[12] = s_dY[13] = 27.*CLHEP::cm; s_dZ[12] = s_dZ[13] = 20.3*CLHEP::cm; - s_shiftX[12] = -15.4*CLHEP::cm; s_shiftY[12] = s_shiftY[13] = -54.4*CLHEP::cm; s_shiftZ[12] = s_shiftZ[13] = -43.8*CLHEP::cm; + s_dX[12] = s_dX[13] = 1.*GeoModelKernelUnits::cm; s_dY[12] = s_dY[13] = 27.*GeoModelKernelUnits::cm; s_dZ[12] = s_dZ[13] = 20.3*GeoModelKernelUnits::cm; + s_shiftX[12] = -15.4*GeoModelKernelUnits::cm; s_shiftY[12] = s_shiftY[13] = -54.4*GeoModelKernelUnits::cm; s_shiftZ[12] = s_shiftZ[13] = -43.8*GeoModelKernelUnits::cm; s_shiftX[13] = -s_shiftX[12]; - s_angleX[12] = s_angleX[13] = 4.668*CLHEP::degree; s_angleY[12] = -45.*CLHEP::degree; s_angleZ[12] = 0.*CLHEP::degree; + s_angleX[12] = s_angleX[13] = 4.668*GeoModelKernelUnits::degree; s_angleY[12] = -45.*GeoModelKernelUnits::degree; s_angleZ[12] = 0.*GeoModelKernelUnits::degree; s_angleY[13] = -s_angleY[12]; s_angleZ[13] = -s_angleZ[12]; - s_dX[14] = s_dX[15] = 1.*CLHEP::cm; s_dY[14] = s_dY[15] = 12.*CLHEP::cm; s_dZ[14] = s_dZ[15] = 25.3*CLHEP::cm; - s_shiftX[14] = -19.5*CLHEP::cm; s_shiftY[14] = s_shiftY[15] = -93.5*CLHEP::cm; s_shiftZ[14] = s_shiftZ[15] = -46.5*CLHEP::cm; + s_dX[14] = s_dX[15] = 1.*GeoModelKernelUnits::cm; s_dY[14] = s_dY[15] = 12.*GeoModelKernelUnits::cm; s_dZ[14] = s_dZ[15] = 25.3*GeoModelKernelUnits::cm; + s_shiftX[14] = -19.5*GeoModelKernelUnits::cm; s_shiftY[14] = s_shiftY[15] = -93.5*GeoModelKernelUnits::cm; s_shiftZ[14] = s_shiftZ[15] = -46.5*GeoModelKernelUnits::cm; s_shiftX[15] = -s_shiftX[14]; - s_angleX[14] = s_angleX[15] = 4.668*CLHEP::degree; s_angleY[14] = -45.*CLHEP::degree; s_angleZ[14] = s_angleZ[15] = 0.*CLHEP::degree; + s_angleX[14] = s_angleX[15] = 4.668*GeoModelKernelUnits::degree; s_angleY[14] = -45.*GeoModelKernelUnits::degree; s_angleZ[14] = s_angleZ[15] = 0.*GeoModelKernelUnits::degree; s_angleY[15] = -s_angleY[14]; - s_dX[16] = 59.5*CLHEP::cm; s_dY[16] = 60.0*CLHEP::cm; s_dZ[16] = 12.0*CLHEP::cm; - s_shiftX[16] = 0.*CLHEP::cm; s_shiftY[16] = -91.5*CLHEP::cm; s_shiftZ[16] = -73.5*CLHEP::cm; - s_angleX[16] = 94.668*CLHEP::degree; s_angleY[16] = 0.*CLHEP::degree; s_angleZ[16] = 90.*CLHEP::degree; - s_dX[17] = 0.3*CLHEP::cm; s_dY[17] = 35.*CLHEP::cm; s_dZ[17] = 25.*CLHEP::cm; - s_shiftX[17] = 0.*CLHEP::cm; s_shiftY[17] = -107.0*CLHEP::cm; s_shiftZ[17] = -40.*CLHEP::cm; - s_angleX[17] = 4.668*CLHEP::degree; s_angleY[17] = 0.*CLHEP::degree; s_angleZ[17] = 90.*CLHEP::degree; + s_dX[16] = 59.5*GeoModelKernelUnits::cm; s_dY[16] = 60.0*GeoModelKernelUnits::cm; s_dZ[16] = 12.0*GeoModelKernelUnits::cm; + s_shiftX[16] = 0.*GeoModelKernelUnits::cm; s_shiftY[16] = -91.5*GeoModelKernelUnits::cm; s_shiftZ[16] = -73.5*GeoModelKernelUnits::cm; + s_angleX[16] = 94.668*GeoModelKernelUnits::degree; s_angleY[16] = 0.*GeoModelKernelUnits::degree; s_angleZ[16] = 90.*GeoModelKernelUnits::degree; + s_dX[17] = 0.3*GeoModelKernelUnits::cm; s_dY[17] = 35.*GeoModelKernelUnits::cm; s_dZ[17] = 25.*GeoModelKernelUnits::cm; + s_shiftX[17] = 0.*GeoModelKernelUnits::cm; s_shiftY[17] = -107.0*GeoModelKernelUnits::cm; s_shiftZ[17] = -40.*GeoModelKernelUnits::cm; + s_angleX[17] = 4.668*GeoModelKernelUnits::degree; s_angleY[17] = 0.*GeoModelKernelUnits::degree; s_angleZ[17] = 90.*GeoModelKernelUnits::degree; } //StoreGateSvc* detStore; @@ -188,11 +190,12 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() // Rohacell foam has density: 0.11g/cm3 std::string name; double density; + const GeoElement* C=materialManager->getElement("Carbon"); const GeoElement* H=materialManager->getElement("Hydrogen"); const GeoElement* O=materialManager->getElement("Oxygen"); const GeoElement* N=materialManager->getElement("Nitrogen"); - GeoMaterial* Rohacell = new GeoMaterial(name="Rohacell", density=0.112*CLHEP::g/CLHEP::cm3); + GeoMaterial* Rohacell = new GeoMaterial(name="Rohacell", density=0.112*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); Rohacell->add(C,0.6465); Rohacell->add(H,0.07836); Rohacell->add(O,0.19137); @@ -200,7 +203,7 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() Rohacell->lock(); /* - a = 12.957*CLHEP::g/CLHEP::mole; + a = 12.957*GeoModelKernelUnits::g/GeoModelKernelUnits::mole; density = 0.112*g/cm3; z = 6.18; G4Material* Rohacell = new G4Material(name="Rohacell",z, a, density); @@ -210,35 +213,35 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() if (!Alu) throw std::runtime_error("Error in ModulesConstruction, std::Aluminium is not found."); // DB numbers: - double bryr_y = 200.0*CLHEP::cm; - double bcry_rlar = 125.5*CLHEP::cm; - double bcry_phistart = 0.*CLHEP::degree; - double bcry_phiend = 360.*CLHEP::degree; - //double EMECdzende = 63.2*CLHEP::cm; // Can not get from parameters + double bryr_y = 200.0*GeoModelKernelUnits::cm; + double bcry_rlar = 125.5*GeoModelKernelUnits::cm; + double bcry_phistart = 0.*GeoModelKernelUnits::degree; + double bcry_phiend = 360.*GeoModelKernelUnits::degree; + //double EMECdzende = 63.2*GeoModelKernelUnits::cm; // Can not get from parameters //double Zall = 62.6*cm; // Excluder dimension - double bepo_tx = 180.0*CLHEP::degree; - double bepo_tz = 90.0*CLHEP::degree; - double bepo_tz_e = ( M_PI / 4 )*CLHEP::rad; - double bepo_ty = 90.0*CLHEP::degree; - double bepo_Beta = 4.668*CLHEP::degree; - double bepo_z_e = -42.86*CLHEP::cm; // 43 CLHEP::cm * cos(4.668) - double bepo_emec_shift = 2.5*CLHEP::cm; - double bepo_excluder_shift = 34.4*CLHEP::cm; - //double bepo_hec_shift = 63.6*CLHEP::cm; // relative position of HEC versus EMEC + double bepo_tx = 180.0*GeoModelKernelUnits::degree; + double bepo_tz = 90.0*GeoModelKernelUnits::degree; + double bepo_tz_e = ( M_PI / 4 )*GeoModelKernelUnits::rad; + double bepo_ty = 90.0*GeoModelKernelUnits::degree; + double bepo_Beta = 4.668*GeoModelKernelUnits::degree; + double bepo_z_e = -42.86*GeoModelKernelUnits::cm; // 43 GeoModelKernelUnits::cm * cos(4.668) + double bepo_emec_shift = 2.5*GeoModelKernelUnits::cm; + double bepo_excluder_shift = 34.4*GeoModelKernelUnits::cm; + //double bepo_hec_shift = 63.6*GeoModelKernelUnits::cm; // relative position of HEC versus EMEC //double bepo_y_a = bcry_rlar-bepo_emec_shift-bepo_hec_shift; double bepo_y_ex = bcry_rlar-bepo_excluder_shift; - double bepo_y_hecshift = 6.*CLHEP::mm; - double bepo_y_emecshift = 11.*CLHEP::mm; - double bepo_x = -2.75*CLHEP::mm; - double bepo_x_e = -17.*CLHEP::mm; -// double bepo_x = 13.25*CLHEP::mm; -// double bepo_x_e = -3.*CLHEP::mm; -// double bepo_x = 17.25*CLHEP::mm; -// double bepo_x_e = -3.*CLHEP::mm; - //double bepo_z = -48.24*CLHEP::cm; // 48.4 CLHEP::cm * cos(4.668) + double bepo_y_hecshift = 6.*GeoModelKernelUnits::mm; + double bepo_y_emecshift = 11.*GeoModelKernelUnits::mm; + double bepo_x = -2.75*GeoModelKernelUnits::mm; + double bepo_x_e = -17.*GeoModelKernelUnits::mm; +// double bepo_x = 13.25*GeoModelKernelUnits::mm; +// double bepo_x_e = -3.*GeoModelKernelUnits::mm; +// double bepo_x = 17.25*GeoModelKernelUnits::mm; +// double bepo_x_e = -3.*GeoModelKernelUnits::mm; + //double bepo_z = -48.24*GeoModelKernelUnits::cm; // 48.4 GeoModelKernelUnits::cm * cos(4.668) double bepo_y_e = bcry_rlar-bepo_emec_shift; - double bepo_pz = 45.0*CLHEP::degree; + double bepo_pz = 45.0*GeoModelKernelUnits::degree; std::string baseName = "LArGeoTB::LeakageDet::"; @@ -246,9 +249,9 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() if(m_Options && m_Options->isRun1()) { ylen = bryr_y; } else { - ylen = bryr_y - 200.*CLHEP::mm; + ylen = bryr_y - 200.*GeoModelKernelUnits::mm; } - GeoTubs *shapeMother = new GeoTubs( 0.0*CLHEP::cm, bcry_rlar, ylen, bcry_phistart,bcry_phiend); + GeoTubs *shapeMother = new GeoTubs( 0.0*GeoModelKernelUnits::cm, bcry_rlar, ylen, bcry_phistart,bcry_phiend); GeoLogVol *logMother = new GeoLogVol(baseName + "LAr", shapeMother, LAr); m_ModulesPhys = new GeoFullPhysVol(logMother); @@ -269,7 +272,7 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() leak_log->SetSensitiveDetector(LeakSDdetector); leak_log->SetVisAttributes(G4VisAttributes::Invisible); // leak_log->SetVisAttributes(new G4VisAttributes(G4Color(0.7,0.1,0.7))); - HepGeom::Transform3D leak_pos = position(sid, dir, cal); + GeoTrf::Transform3D leak_pos = position(sid, dir, cal); G4VPhysicalVolume *leak_phys = new G4PVPlacement(leak_pos, leak_log, @@ -289,13 +292,9 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() // std::cout<<"ModulesConstructionH62004::GetEnvelope positioning Excluder"<<std::endl; GeoVFullPhysVol* excluderEnvelope = excluder.GetEnvelope(); /*if(excluderEnvelope != 0)*/{ - CLHEP::HepRotation rot2; -// rot2.rotateZ(bepo_tz+bepo_tz_e); - rot2.rotateZ(bepo_tz); - rot2.rotateX(bepo_ty); - rot2.rotateX(bepo_Beta); + GeoTrf::Transform3D rot2 = GeoTrf::RotateX3D(bepo_Beta) * GeoTrf::RotateX3D(bepo_ty) * GeoTrf::RotateZ3D(bepo_tz); m_ModulesPhys->add(new GeoSerialIdentifier(0)); - m_ModulesPhys->add(new GeoTransform(HepGeom::Transform3D(rot2,CLHEP::Hep3Vector(0.,bepo_y_ex,bepo_z_e+42.*CLHEP::mm)))); + m_ModulesPhys->add(new GeoTransform(GeoTrf::Translation3D(0.,bepo_y_ex,bepo_z_e+42.*GeoModelKernelUnits::mm) * rot2)); m_ModulesPhys->add(excluderEnvelope); } } @@ -309,13 +308,10 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() // std::cout<<"ModulesConstructionH62004::GetEnvelope positioning Excluder"<<std::endl; GeoVFullPhysVol* fcexcluderEnvelope = fcexcluder.GetEnvelope(); if(fcexcluderEnvelope != 0){ - CLHEP::HepRotation rot2; - rot2.rotateZ(bepo_tx); - rot2.rotateX(-bepo_ty); - rot2.rotateX(0.8*bepo_Beta); + GeoTrf::Transform3D rot2 = GeoTrf::RotateX3D(0.8*bepo_Beta) * GeoTrf::RotateX3D(-bepo_ty) * GeoTrf::RotateZ3D(bepo_tx); m_ModulesPhys->add(new GeoSerialIdentifier(0)); -// m_ModulesPhys->add(new GeoTransform(HepGeom::Transform3D(rot2,CLHEP::Hep3Vector(0.,bepo_y_ex-138.*CLHEP::mm,-477.3*CLHEP::mm)))); - m_ModulesPhys->add(new GeoTransform(HepGeom::Transform3D(rot2,CLHEP::Hep3Vector(0.,bepo_y_ex-146.*CLHEP::mm,-412.0*CLHEP::mm)))); +// m_ModulesPhys->add(new GeoTransform(GeoTrf::Transform3D(rot2,GeoTrf::Vector3D(0.,bepo_y_ex-138.*GeoModelKernelUnits::mm,-477.3*GeoModelKernelUnits::mm)))); + m_ModulesPhys->add(new GeoTransform(GeoTrf::Translation3D(0.,bepo_y_ex-146.*GeoModelKernelUnits::mm,-412.0*GeoModelKernelUnits::mm) * rot2)); m_ModulesPhys->add(fcexcluderEnvelope); } } @@ -328,16 +324,14 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() /*if(frontexcluder != 0)*/{ GeoVFullPhysVol* frontexcluderEnvelope = frontexcluder.GetEnvelope(); if(frontexcluderEnvelope != 0){ - CLHEP::HepRotation rot2; -// rot2.rotateZ((90.-18.)*CLHEP::degree); - rot2.rotateZ((90.)*CLHEP::degree); + GeoTrf::RotateZ3D rot2((90.)*GeoModelKernelUnits::degree); m_ModulesPhys->add(new GeoSerialIdentifier(0)); - m_ModulesPhys->add(new GeoTransform(HepGeom::Transform3D(rot2,CLHEP::Hep3Vector(0.,0.,20.*CLHEP::mm)))); + m_ModulesPhys->add(new GeoTransform(GeoTrf::Translation3D(0.,0.,20.*GeoModelKernelUnits::mm) * rot2)); m_ModulesPhys->add(frontexcluderEnvelope); /* G4VPhysicalVolume* frontexcluderPhysical = -// new G4PVPlacement(HepGeom::Transform3D(rot2,CLHEP::Hep3Vector(0.,0.,220.*CLHEP::mm)), // Translation - new G4PVPlacement(HepGeom::Transform3D(rot2,CLHEP::Hep3Vector(0.,0.,20.*CLHEP::mm)), // Translation +// new G4PVPlacement(GeoTrf::Transform3D(rot2,GeoTrf::Vector3D(0.,0.,220.*GeoModelKernelUnits::mm)), // Translation + new G4PVPlacement(GeoTrf::Transform3D(rot2,GeoTrf::Vector3D(0.,0.,20.*GeoModelKernelUnits::mm)), // Translation frontexcluderEnvelope, // Logical volume frontexcluderEnvelope->GetName(), // Name logMother, // Mother volume @@ -355,14 +349,13 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() /*if(backexcluder != 0)*/{ GeoVFullPhysVol* backexcluderEnvelope = backexcluder.GetEnvelope(); if(backexcluderEnvelope != 0){ - CLHEP::HepRotation rot2; - rot2.rotateZ((-90.-29.)*CLHEP::degree); + GeoTrf::RotateZ3D rot2((-90.-29.)*GeoModelKernelUnits::degree); m_ModulesPhys->add(new GeoSerialIdentifier(0)); - m_ModulesPhys->add(new GeoTransform(HepGeom::Transform3D(rot2,CLHEP::Hep3Vector(0.,0.,0.*CLHEP::mm)))); + m_ModulesPhys->add(new GeoTransform(GeoTrf::Translation3D(0.,0.,0.*GeoModelKernelUnits::mm) * rot2)); m_ModulesPhys->add(backexcluderEnvelope); /* G4VPhysicalVolume* backexcluderPhysical = - new G4PVPlacement(HepGeom::Transform3D(rot2,CLHEP::Hep3Vector(0.,0.,0.*CLHEP::mm)), // Translation + new G4PVPlacement(GeoTrf::Transform3D(rot2,GeoTrf::Vector3D(0.,0.,0.*GeoModelKernelUnits::mm)), // Translation backexcluderEnvelope, // Logical volume backexcluderEnvelope->GetName(), // Name logMother, // Mother volume @@ -379,32 +372,28 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() // G4AssemblyVolume* assemblyMother = new G4AssemblyVolume(); // Transformation for assembly - should be putted to each piece now. - CLHEP::HepRotation rota; - rota.rotateZ(-bepo_pz); - rota.rotateX(bepo_ty); - rota.rotateX(bepo_Beta); - -// HepGeom::Transform3D trans(rota, CLHEP::Hep3Vector(0.,bepo_y_e,bepo_z_e)); - HepGeom::Transform3D trans(rota, CLHEP::Hep3Vector(0.,bepo_y_e,bepo_z_e+65.*CLHEP::mm)); + GeoTrf::Transform3D rota = GeoTrf::RotateX3D(bepo_Beta) * GeoTrf::RotateX3D(bepo_ty) * GeoTrf::RotateZ3D(-bepo_pz); + GeoTrf::Transform3D trans = GeoTrf::Translation3D(0.,bepo_y_e,bepo_z_e+65.*GeoModelKernelUnits::mm) * rota; //positions emec // Z-positions DB values !!!! - double HECzStart = 427.7*CLHEP::cm; - double EMECzStart = 364.1*CLHEP::cm; - double FCALzStart = 466.85*CLHEP::cm; - double FCALzEnd = 588.28*CLHEP::cm; + double HECzStart = 427.7*GeoModelKernelUnits::cm; + double EMECzStart = 364.1*GeoModelKernelUnits::cm; + double FCALzStart = 466.85*GeoModelKernelUnits::cm; + double FCALzEnd = 588.28*GeoModelKernelUnits::cm; if((!m_Options) || m_Options->isEmec()){ - CLHEP::HepRotation MrotEmec ; - MrotEmec.rotateZ(bepo_tz_e); + GeoTrf::RotateZ3D MrotEmec(bepo_tz_e); // original value: -// CLHEP::Hep3Vector pos3Emec( 0*CLHEP::mm, 9.0*CLHEP::mm , 55.9*CLHEP::mm); -// CLHEP::Hep3Vector pos3Emec( 3.636*CLHEP::mm, 9.0*CLHEP::mm , 55.9*CLHEP::mm); -// CLHEP::Hep3Vector pos3Emec( bepo_x_e, 9.*CLHEP::mm , 61.*CLHEP::mm); - CLHEP::Hep3Vector pos3Emec( (bepo_x_e - bepo_y_emecshift )/2./sin(bepo_tz_e), (bepo_x_e + bepo_y_emecshift )/2./sin(bepo_tz_e), 61.*CLHEP::mm); -// CLHEP::Hep3Vector pos3Emec( 0.*CLHEP::mm, bepo_x_e, 61.*CLHEP::mm); +// GeoTrf::Vector3D pos3Emec( 0*GeoModelKernelUnits::mm, 9.0*GeoModelKernelUnits::mm , 55.9*GeoModelKernelUnits::mm); +// GeoTrf::Vector3D pos3Emec( 3.636*GeoModelKernelUnits::mm, 9.0*GeoModelKernelUnits::mm , 55.9*GeoModelKernelUnits::mm); +// GeoTrf::Vector3D pos3Emec( bepo_x_e, 9.*GeoModelKernelUnits::mm , 61.*GeoModelKernelUnits::mm); + GeoTrf::Translation3D pos3Emec((bepo_x_e - bepo_y_emecshift )/2./sin(bepo_tz_e) + , (bepo_x_e + bepo_y_emecshift )/2./sin(bepo_tz_e) + , 61.*GeoModelKernelUnits::mm); +// GeoTrf::Vector3D pos3Emec( 0.*GeoModelKernelUnits::mm, bepo_x_e, 61.*GeoModelKernelUnits::mm); // std::cout<<"ModulesConstructionH62004 calling EMECModuleConstruction....."<<std::endl; //use this line for physical construction of the EMEC inner wheel only: @@ -414,7 +403,7 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() GeoVFullPhysVol* emecEnvelope = emecConstruction.GetEnvelope(); m_ModulesPhys->add(new GeoNameTag("LAr")); m_ModulesPhys->add( new GeoTransform(trans) ); - m_ModulesPhys->add( new GeoTransform( HepGeom::Transform3D(MrotEmec, pos3Emec) ) ); + m_ModulesPhys->add( new GeoTransform( pos3Emec * MrotEmec )); m_ModulesPhys->add(emecEnvelope); // std::cout<<"ModulesConstructionH62004 EMECModuleConstruction done...."<<std::endl; } @@ -427,21 +416,21 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() /*if(hec != 0)*/{ GeoVPhysVol* hecEnvelope = hec.GetEnvelope(); if(hecEnvelope != 0){ - CLHEP::HepRotation rot; // rot.rotateZ(-bepo_pz); // rot.rotateX(bepo_ty); // rot.rotateX(bepo_Beta); -// HepGeom::Transform3D hpos = HepGeom::Transform3D(rot,CLHEP::Hep3Vector(bepo_x,bepo_y_a,bepo_z)); -// CLHEP::Hep3Vector hecshift(0.,6.*CLHEP::mm,HECzStart-EMECzStart); - CLHEP::Hep3Vector hecshift((bepo_x - bepo_y_hecshift)/2./sin(bepo_tz_e), (bepo_x + bepo_y_hecshift)/2./sin(bepo_tz_e), HECzStart-EMECzStart); -// CLHEP::Hep3Vector hecshift(-21.*CLHEP::mm, bepo_x, HECzStart-EMECzStart); -// CLHEP::Hep3Vector hecshift(-5.*CLHEP::mm, bepo_x, HECzStart-EMECzStart); -// CLHEP::Hep3Vector hecshift(0.*CLHEP::mm, bepo_x, HECzStart-EMECzStart); -// CLHEP::HepRotation norot; - HepGeom::Transform3D hectrans(rot,hecshift); - m_ModulesPhys->add( new GeoTransform(trans) ); - m_ModulesPhys->add(new GeoTransform(hectrans)); +// GeoTrf::Transform3D hpos = GeoTrf::Transform3D(rot,GeoTrf::Vector3D(bepo_x,bepo_y_a,bepo_z)); +// GeoTrf::Vector3D hecshift(0.,6.*GeoModelKernelUnits::mm,HECzStart-EMECzStart); +// GeoTrf::Vector3D hecshift((bepo_x - bepo_y_hecshift)/2./sin(bepo_tz_e), (bepo_x + bepo_y_hecshift)/2./sin(bepo_tz_e), HECzStart-EMECzStart); +// GeoTrf::Vector3D hecshift(-21.*GeoModelKernelUnits::mm, bepo_x, HECzStart-EMECzStart); +// GeoTrf::Vector3D hecshift(-5.*GeoModelKernelUnits::mm, bepo_x, HECzStart-EMECzStart); +// GeoTrf::Vector3D hecshift(0.*GeoModelKernelUnits::mm, bepo_x, HECzStart-EMECzStart); +// GeoModelKernelUnits::HepRotation norot; + m_ModulesPhys->add(new GeoTransform(trans)); + m_ModulesPhys->add( new GeoTransform(GeoTrf::Translate3D((bepo_x - bepo_y_hecshift)/2./sin(bepo_tz_e) + , (bepo_x + bepo_y_hecshift)/2./sin(bepo_tz_e) + , HECzStart-EMECzStart)) ); m_ModulesPhys->add(hecEnvelope); // assemblyMother->AddPlacedVolume( hecEnvelope, hectrans ); @@ -455,16 +444,16 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() fcal.setFCALVisLimit(m_fcalVisLimit); GeoVPhysVol* fcalEnvelope = fcal.GetEnvelope(); if(fcalEnvelope != 0){ - CLHEP::HepRotation rotFCal; - // rotFCal.rotateY(0.*CLHEP::deg); +// GeoModelKernelUnits::HepRotation rotFCal; + // rotFCal.rotateY(0.*GeoModelKernelUnits::deg); // rotFCal.rotateZ(-bepo_pz); // rotFCal.rotateX(bepo_ty); // rotFCal.rotateX(bepo_Beta); -// CLHEP::Hep3Vector fcalshift(0.,-7.*CLHEP::mm,FCALzStart-EMECzStart+(FCALzEnd-FCALzStart)/2.); - CLHEP::Hep3Vector fcalshift(9.*CLHEP::mm,0.*CLHEP::mm,FCALzStart-EMECzStart+(FCALzEnd-FCALzStart)/2.); - HepGeom::Transform3D fcaltrans(rotFCal,fcalshift); - m_ModulesPhys->add( new GeoTransform(trans) ); - m_ModulesPhys->add(new GeoTransform(fcaltrans)); +// GeoTrf::Vector3D fcalshift(0.,-7.*GeoModelKernelUnits::mm,FCALzStart-EMECzStart+(FCALzEnd-FCALzStart)/2.); + m_ModulesPhys->add(new GeoTransform(trans)); + m_ModulesPhys->add( new GeoTransform(GeoTrf::Translate3D(9.*GeoModelKernelUnits::mm + ,0.*GeoModelKernelUnits::mm + ,FCALzStart-EMECzStart+(FCALzEnd-FCALzStart)/2.)) ); m_ModulesPhys->add(fcalEnvelope); } } @@ -474,89 +463,78 @@ GeoVFullPhysVol* LArGeo::ModulesConstructionH62004::GetEnvelope() // Position a cold nose // - double box_x = (650./2.)*CLHEP::mm; - double box_y = (356./2.)*CLHEP::mm; - double box_z = (50.8/2.)*CLHEP::mm; - double btot = 494.*CLHEP::mm; - double tub_r = 452.*CLHEP::mm; - double tub1_dr = 8.*CLHEP::mm; - double tub1_z = (1320./2.)*CLHEP::mm; - double cyl_dr = 10.*CLHEP::mm; - double cyl_r1 = 262.*CLHEP::mm; - double cyl_r2 = 336.5*CLHEP::mm; - double cyl_z = (912./2.)*CLHEP::mm; - double cyl_shift = (10. + 25.)*CLHEP::mm; -// double NoseZshift = -360.*CLHEP::mm; - double NoseZshift = -63.1*CLHEP::mm; -// double NoseYshift = 94.4*CLHEP::mm; -// double NoseYshift = 96.4*CLHEP::mm; - double NoseYshift = 98.4*CLHEP::mm; -// double NoseXshift = -195.*CLHEP::mm; - double NoseXshift = -94.4*CLHEP::mm; + double box_x = (650./2.)*GeoModelKernelUnits::mm; + double box_y = (356./2.)*GeoModelKernelUnits::mm; + double box_z = (50.8/2.)*GeoModelKernelUnits::mm; + double btot = 494.*GeoModelKernelUnits::mm; + double tub_r = 452.*GeoModelKernelUnits::mm; + double tub1_dr = 8.*GeoModelKernelUnits::mm; + double tub1_z = (1320./2.)*GeoModelKernelUnits::mm; + double cyl_dr = 10.*GeoModelKernelUnits::mm; + double cyl_r1 = 262.*GeoModelKernelUnits::mm; + double cyl_r2 = 336.5*GeoModelKernelUnits::mm; + double cyl_z = (912./2.)*GeoModelKernelUnits::mm; + double cyl_shift = (10. + 25.)*GeoModelKernelUnits::mm; +// double NoseZshift = -360.*GeoModelKernelUnits::mm; + double NoseZshift = -63.1*GeoModelKernelUnits::mm; +// double NoseYshift = 94.4*GeoModelKernelUnits::mm; +// double NoseYshift = 96.4*GeoModelKernelUnits::mm; + double NoseYshift = 98.4*GeoModelKernelUnits::mm; +// double NoseXshift = -195.*GeoModelKernelUnits::mm; + double NoseXshift = -94.4*GeoModelKernelUnits::mm; GeoBox* Box1 = new GeoBox(box_x, box_y, box_z); double alpha = acos(box_x/tub_r); double ax = M_PI - 2*alpha; GeoTubs* Tub= new GeoTubs(0., tub_r, box_z, alpha, ax); - CLHEP::HepRotation tRot; -// tRot.rotateX(90*CLHEP::degree); - CLHEP::Hep3Vector TubShift(0.,btot-box_y-tub_r,0.); - HepGeom::Transform3D TubTrans(tRot,TubShift); +// tRot.rotateX(90*GeoModelKernelUnits::degree); + GeoTrf::Translate3D TubTrans(0.,btot-box_y-tub_r,0.); const GeoShapeUnion &uSolid = (*Box1).add((*Tub)<<TubTrans); GeoTubs* Tub1 = new GeoTubs(tub_r, tub_r+tub1_dr, tub1_z, alpha, ax); -// CLHEP::Hep3Vector TubShift2(0.,btot-box_y-tub_r,-tub1_z+box_z); - CLHEP::Hep3Vector TubShift2(0.,-135.5*CLHEP::mm,-tub1_z+box_z); -// CLHEP::Hep3Vector TubShift2(0.,0.,0.); -// tRot.rotateX(90*CLHEP::degree); - HepGeom::Transform3D UnTrans(tRot,TubShift2); +// GeoTrf::Vector3D TubShift2(0.,btot-box_y-tub_r,-tub1_z+box_z); +// GeoTrf::Vector3D TubShift2(0.,0.,0.); +// tRot.rotateX(90*GeoModelKernelUnits::degree); + GeoTrf::Translate3D UnTrans(0.,-135.5*GeoModelKernelUnits::mm,-tub1_z+box_z); const GeoShapeUnion &uSolid2 = uSolid.add((*Tub1)<<UnTrans); GeoCons* Cone = new GeoCons(cyl_r2, cyl_r1, cyl_r2+cyl_dr, cyl_r1+cyl_dr, cyl_z, M_PI/4.,M_PI/2.); -// CLHEP::Hep3Vector CylShift(0.,-box_y+cyl_shift,cyl_z+box_z-3.*CLHEP::mm); - CLHEP::Hep3Vector CylShift(0.,-box_y+cyl_shift,cyl_z+box_z-5.*CLHEP::mm); -// CLHEP::Hep3Vector CylShift(0.,0.,cyl_z+box_z); - tRot.rotateX(1.*CLHEP::degree); -// tRot.rotateZ(-90*CLHEP::degree); - HepGeom::Transform3D CylTrans(tRot,CylShift); +// GeoTrf::Vector3D CylShift(0.,-box_y+cyl_shift,cyl_z+box_z-3.*GeoModelKernelUnits::mm); + GeoTrf::Translation3D CylShift(0.,-box_y+cyl_shift,cyl_z+box_z-5.*GeoModelKernelUnits::mm); +// GeoTrf::Vector3D CylShift(0.,0.,cyl_z+box_z); + GeoTrf::RotateX3D tRot(1.*GeoModelKernelUnits::degree); +// tRot.rotateZ(-90*GeoModelKernelUnits::degree); + GeoTrf::Transform3D CylTrans = CylShift * tRot; const GeoShapeUnion &uSolid3 = uSolid2.add((*Cone)<<CylTrans); GeoLogVol* Cnose = new GeoLogVol("LArGeoTB::LeakageDet::ColdNose", &uSolid3 , Alu); GeoPhysVol *PhysCnose = new GeoPhysVol(Cnose); // cnose->SetVisAttributes(G4VisAttributes::Invisible); - CLHEP::HepRotation CRotation; -// CRotation.rotateZ(-bepo_pz); - /* - CRotation.rotateX(bepo_ty); - CRotation.rotateZ(bepo_tx); - CRotation.rotateX(bepo_Beta); - */ - CRotation.rotateX(M_PI); - CRotation.rotateZ(-3*M_PI/4.); -// CLHEP::Hep3Vector tShift(NoseXshift,0.,FCALzStart-EMECzStart+NoseZshift); - CLHEP::Hep3Vector tShift(NoseXshift,NoseYshift,FCALzStart-EMECzStart+NoseZshift); -// CLHEP::Hep3Vector tShift(0.,NoseYshift,NoseZshift); - HepGeom::Transform3D CTrans(CRotation,tShift); + GeoTrf::Transform3D CRotation = GeoTrf::RotateZ3D(-3*M_PI/4.) * GeoTrf::RotateX3D(M_PI); +// GeoTrf::Vector3D tShift(NoseXshift,0.,FCALzStart-EMECzStart+NoseZshift); + GeoTrf::Translation3D tShift(NoseXshift,NoseYshift,FCALzStart-EMECzStart+NoseZshift); +// GeoTrf::Vector3D tShift(0.,NoseYshift,NoseZshift); + GeoTrf::Transform3D CTrans = tShift * CRotation; m_ModulesPhys->add( new GeoTransform(trans) ) ; m_ModulesPhys->add(new GeoTransform(CTrans)); m_ModulesPhys->add(PhysCnose); // assemblyMother->AddPlacedVolume( cnose, CTrans ); /* G4VPhysicalVolume* nosePhysical = new - G4PVPlacement(HepGeom::Transform3D(CRotation,tShift), + G4PVPlacement(GeoTrf::Transform3D(CRotation,tShift), cnose, cnose->GetName(),logMother, false, 0); */ // Do an imprint of assembly: /* - CLHEP::HepRotation rota; + GeoModelKernelUnits::HepRotation rota; rota.rotateZ(-bepo_pz); rota.rotateX(bepo_ty); rota.rotateX(bepo_Beta); - HepGeom::Transform3D trans(rota, CLHEP::Hep3Vector(0.,bepo_y_e,bepo_z_e)); + GeoTrf::Transform3D trans(rota, GeoTrf::Vector3D(0.,bepo_y_e,bepo_z_e)); assemblyMother->MakeImprint( logMother, trans ); */ @@ -604,7 +582,7 @@ LArGeo::ModulesConstructionH62004::construct(const StoredMaterialManager* materi //density = universe_mean_density; //from PhysicalConstants.h //pressure = 3.e-18*pascal; - //temperature = 2.73*CLHEP::kelvin; + //temperature = 2.73*kelvin; const GeoMaterial* Vacuum = materialManager->getMaterial("std::Vacuum"); if (!Vacuum) throw std::runtime_error("Error in ModulesConstruction, std::Vacuum is not found."); @@ -669,14 +647,14 @@ LArGeo::ModulesConstructionH62004::construct(const StoredMaterialManager* materi //------------------ now construct shape and logical volume --------------- GeoLogVol *volume_log; if(myID == 6 || myID == 9 || myID == 17) { - GeoTubs *tub = new GeoTubs(s_dX[myID-1],s_dY[myID-1],s_dZ[myID-1],-43.*CLHEP::degree,86.*CLHEP::degree); + GeoTubs *tub = new GeoTubs(s_dX[myID-1],s_dY[myID-1],s_dZ[myID-1],-43.*GeoModelKernelUnits::degree,86.*GeoModelKernelUnits::degree); volume_log = new GeoLogVol(name,tub,Vacuum); } else if(myID == 3) { - GeoTubs *tub = new GeoTubs(s_dX[myID-1],s_dY[myID-1],s_dZ[myID-1],-32.*CLHEP::degree,64.*CLHEP::degree); + GeoTubs *tub = new GeoTubs(s_dX[myID-1],s_dY[myID-1],s_dZ[myID-1],-32.*GeoModelKernelUnits::degree,64.*GeoModelKernelUnits::degree); volume_log = new GeoLogVol(name,tub,Vacuum); #if 0 // impossible case... } else if(myID == 19) { - GeoTrd *trd = new GeoTrd(s_dX[myID-1]-16.*CLHEP::cm,s_dX[myID-1],s_dY[myID-1],s_dY[myID-1],s_dZ[myID-1]); + GeoTrd *trd = new GeoTrd(s_dX[myID-1]-16.*GeoModelKernelUnits::cm,s_dX[myID-1],s_dY[myID-1],s_dY[myID-1],s_dZ[myID-1]); volume_log = new GeoLogVol(name,trd,Vacuum); #endif } else { @@ -686,9 +664,9 @@ LArGeo::ModulesConstructionH62004::construct(const StoredMaterialManager* materi return volume_log; } -HepGeom::Transform3D LArGeo::ModulesConstructionH62004::position(int side, int dir, int calo) +GeoTrf::Transform3D LArGeo::ModulesConstructionH62004::position(int side, int dir, int calo) { - HepGeom::Transform3D leak_position; + GeoTrf::Transform3D leak_position(GeoTrf::Transform3D::Identity()); int myID = GetID(side,dir,calo); if(myID == 0) { @@ -697,12 +675,9 @@ HepGeom::Transform3D LArGeo::ModulesConstructionH62004::position(int side, int d assert(myID>0 && myID <= NUM_LEAK); if(myID > NUM_LEAK) return leak_position; - CLHEP::HepRotation rotM; - rotM.rotateZ(s_angleZ[myID-1]); - rotM.rotateY(s_angleY[myID-1]); - rotM.rotateX(s_angleX[myID-1]); + GeoTrf::Transform3D rotM = GeoTrf::RotateX3D(s_angleX[myID-1]) * GeoTrf::RotateY3D(s_angleY[myID-1]) * GeoTrf::RotateZ3D(s_angleZ[myID-1]); - leak_position = HepGeom::Transform3D(rotM,CLHEP::Hep3Vector(s_shiftX[myID-1],s_shiftY[myID-1],s_shiftZ[myID-1])); + leak_position = GeoTrf::Transform3D(GeoTrf::Translation3D(s_shiftX[myID-1],s_shiftY[myID-1],s_shiftZ[myID-1]) * rotM); return leak_position; } diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ModulesConstructionH62004.h b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ModulesConstructionH62004.h index 3ad9a74d9d96137dfc3d628205a59b0ead63a4ef..f03c007e68b0a9827c7683318ee5111b91e9e6a6 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ModulesConstructionH62004.h +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/ModulesConstructionH62004.h @@ -30,7 +30,7 @@ namespace LArGeo { int GetID(int side, int dir, int calo); GeoLogVol* construct(const StoredMaterialManager* materialManager, int side, int dir, int calo); - HepGeom::Transform3D position(int side, int dir, int calo); + GeoTrf::Transform3D position(int side, int dir, int calo); // side = 0 - left, 1 - right // dir = 0 - side, 1 - up, 2 - back // calo = 0 - EMEC, 1 - HEC1, 2 - HEC2, 3 - FCAL1 diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/MovableTableConstructionH62004.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/MovableTableConstructionH62004.cxx index a2b11328faf095956aef8aace7d8e0be24e059fc..814b178f239e633b33a1d8815a04c7a81c1c0e3f 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/MovableTableConstructionH62004.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/MovableTableConstructionH62004.cxx @@ -24,17 +24,15 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoSerialDenominator.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GeoModelKernel/GeoShapeSubtraction.h" #include "GeoModelKernel/GeoShapeShift.h" -// For transforms: -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/GenericFunctions/Variable.hh" -// For units: -#include "CLHEP/Units/PhysicalConstants.h" +#include "GeoGenericFunctions/Variable.h" // For the database: #include "RDBAccessSvc/IRDBAccessSvc.h" @@ -124,25 +122,25 @@ GeoVPhysVol* LArGeo::MovableTableConstructionH62004::GetEnvelope() // // Define dimension of Movable part & position of Front part // - double bttb_x = 15.0*CLHEP::cm; - double bttb_y = 15.0*CLHEP::cm; - double bttb_z = 120.0*CLHEP::cm; - //double bttb_pos = 833.5*CLHEP::cm; + double bttb_x = 15.0*GeoModelKernelUnits::cm; + double bttb_y = 15.0*GeoModelKernelUnits::cm; + double bttb_z = 120.0*GeoModelKernelUnits::cm; + //double bttb_pos = 833.5*GeoModelKernelUnits::cm; // // Define S scintilator dimension and positions // - double btas_x = 7.5*CLHEP::cm; - double btas_y = 7.5*CLHEP::cm; - double btas_z = 1.0*CLHEP::cm; - double bb2_x = 3.0*CLHEP::cm; - double btas_pos[3] = {100.*CLHEP::cm, 219.5*CLHEP::cm, 232.0*CLHEP::cm}; - double bh_x = 30.0*CLHEP::cm; - double bh_d = 6.0*CLHEP::cm; - double bh_shift = 12.0*CLHEP::cm; - double bb_shift = 2.5*CLHEP::cm; - - double mwpc_pos[4] = {44.5*CLHEP::cm, 12.5*CLHEP::cm, 87.0*CLHEP::cm, 185.3*CLHEP::cm}; - double bpc_pos[2] = {140.5*CLHEP::cm, 130.5*CLHEP::cm}; + double btas_x = 7.5*GeoModelKernelUnits::cm; + double btas_y = 7.5*GeoModelKernelUnits::cm; + double btas_z = 1.0*GeoModelKernelUnits::cm; + double bb2_x = 3.0*GeoModelKernelUnits::cm; + double btas_pos[3] = {100.*GeoModelKernelUnits::cm, 219.5*GeoModelKernelUnits::cm, 232.0*GeoModelKernelUnits::cm}; + double bh_x = 30.0*GeoModelKernelUnits::cm; + double bh_d = 6.0*GeoModelKernelUnits::cm; + double bh_shift = 12.0*GeoModelKernelUnits::cm; + double bb_shift = 2.5*GeoModelKernelUnits::cm; + + double mwpc_pos[4] = {44.5*GeoModelKernelUnits::cm, 12.5*GeoModelKernelUnits::cm, 87.0*GeoModelKernelUnits::cm, 185.3*GeoModelKernelUnits::cm}; + double bpc_pos[2] = {140.5*GeoModelKernelUnits::cm, 130.5*GeoModelKernelUnits::cm}; GeoBox* H62004MovableShape = new GeoBox( bttb_x, bttb_y, bttb_z ); const GeoLogVol* H62004FrontBeamLogical = new GeoLogVol( H62004MovableName, H62004MovableShape, Air ); @@ -154,8 +152,8 @@ GeoVPhysVol* LArGeo::MovableTableConstructionH62004::GetEnvelope() // In the old stand-alone code, all three were round with a radius of 5cm // and 7.5mm thickness. // Logbooks in the control-room say that their xyz sizes are: - // B1 : 30 x 30 x 10 CLHEP::mm - // W1,2 : 150 x 150 x 10 CLHEP::mm + // B1 : 30 x 30 x 10 GeoModelKernelUnits::mm + // W1,2 : 150 x 150 x 10 GeoModelKernelUnits::mm // They are certainly not round, so stick with the logbook values // The beam sees the instrumentation in the following order: // W1, W2, B1, MWPC5 @@ -164,7 +162,7 @@ GeoVPhysVol* LArGeo::MovableTableConstructionH62004::GetEnvelope() // Create scintillator S1(num=4),S2,S3(num= 6,7) - GeoBox* ScintShapeS1 = new GeoBox((btas_x-1.*CLHEP::cm)/2., (btas_y-1.*CLHEP::cm)/2., btas_z/2.); + GeoBox* ScintShapeS1 = new GeoBox((btas_x-1.*GeoModelKernelUnits::cm)/2., (btas_y-1.*GeoModelKernelUnits::cm)/2., btas_z/2.); GeoBox* ScintShapeS23 = new GeoBox(btas_x/2., btas_y/2., btas_z/2.); std::string ScintName = H62004MovableName + "::Scintillator"; GeoLogVol* S1ScintLogical = new GeoLogVol( ScintName, ScintShapeS1, Scint ); @@ -173,11 +171,11 @@ GeoVPhysVol* LArGeo::MovableTableConstructionH62004::GetEnvelope() GeoPhysVol* S2ScintPhysical = new GeoPhysVol( S23ScintLogical ); m_H62004MovableTablePhysical->add( new GeoIdentifierTag(4) ); - m_H62004MovableTablePhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, btas_pos[0]-bttb_z ) ) ) ; + m_H62004MovableTablePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, btas_pos[0]-bttb_z ) ) ) ; m_H62004MovableTablePhysical->add(S1ScintPhysical); for ( unsigned int i = 1; i <3; ++i ) { m_H62004MovableTablePhysical->add( new GeoIdentifierTag(i+5) ); - m_H62004MovableTablePhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, btas_pos[i]-bttb_z ) ) ) ; + m_H62004MovableTablePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, btas_pos[i]-bttb_z ) ) ) ; m_H62004MovableTablePhysical->add( S2ScintPhysical ); } // Create scintilators H (copy num 5) and B2 (copy num 8) @@ -187,14 +185,14 @@ GeoVPhysVol* LArGeo::MovableTableConstructionH62004::GetEnvelope() GeoLogVol* logHSc = new GeoLogVol( ScintName, &shapeHSc, Scint); GeoPhysVol* physHSc = new GeoPhysVol(logHSc); m_H62004MovableTablePhysical->add( new GeoIdentifierTag(5) ); - m_H62004MovableTablePhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, (btas_pos[0]-bttb_z) + bh_shift) ) ) ; + m_H62004MovableTablePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (btas_pos[0]-bttb_z) + bh_shift) ) ) ; m_H62004MovableTablePhysical->add(physHSc); - GeoBox* boxB = new GeoBox(bb2_x/2., bb2_x/2., (btas_z+2.5*CLHEP::cm)/2.); + GeoBox* boxB = new GeoBox(bb2_x/2., bb2_x/2., (btas_z+2.5*GeoModelKernelUnits::cm)/2.); GeoLogVol* logBSc = new GeoLogVol( ScintName, boxB, Scint); GeoPhysVol* physBSc = new GeoPhysVol(logBSc); m_H62004MovableTablePhysical->add( new GeoIdentifierTag(8) ); - m_H62004MovableTablePhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, (btas_pos[2]-bttb_z) + bb_shift ) ) ) ; + m_H62004MovableTablePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (btas_pos[2]-bttb_z) + bb_shift ) ) ) ; m_H62004MovableTablePhysical->add(physBSc); //----- Done with Scintillators @@ -202,12 +200,12 @@ GeoVPhysVol* LArGeo::MovableTableConstructionH62004::GetEnvelope() //------ Now create MWPC N2 & N3 & N4 log << MSG::INFO << " Create MWPC's " << endmsg; - MWPCConstruction MWPC(1.*CLHEP::mm); + MWPCConstruction MWPC(1.*GeoModelKernelUnits::mm); GeoVPhysVol* MwpcPhysical = MWPC.GetEnvelope(); for(int i = 1; i < 4; ++i){ m_H62004MovableTablePhysical->add( new GeoIdentifierTag(i+1) ); - m_H62004MovableTablePhysical->add( new GeoTransform(HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, mwpc_pos[i]-bttb_z ) ) ); + m_H62004MovableTablePhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, mwpc_pos[i]-bttb_z ) ) ); m_H62004MovableTablePhysical->add( MwpcPhysical ); } //----- Done with the MWPC @@ -219,7 +217,7 @@ GeoVPhysVol* LArGeo::MovableTableConstructionH62004::GetEnvelope() GeoVPhysVol* BPCPhysical = BPC.GetEnvelope(); for(int i=1; i<3; ++i) { m_H62004MovableTablePhysical->add( new GeoIdentifierTag(7-i) ); - m_H62004MovableTablePhysical->add( new GeoTransform(HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, bpc_pos[i-1]-bttb_z) ) ); + m_H62004MovableTablePhysical->add( new GeoTransform(GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, bpc_pos[i-1]-bttb_z) ) ); m_H62004MovableTablePhysical->add(BPCPhysical); } diff --git a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/WarmTCConstructionH62004.cxx b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/WarmTCConstructionH62004.cxx index d3f0dd4f2b4d38468dadb820cb6b5e79fb67c2d1..272988e0d7ae52dea0e08a6130d062639e0dfabb 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/WarmTCConstructionH62004.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH62004Algs/src/WarmTCConstructionH62004.cxx @@ -28,10 +28,12 @@ #include "GeoModelKernel/GeoSerialTransformer.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoShapeUnion.h" -#include "CLHEP/GenericFunctions/AbsFunction.hh" -#include "CLHEP/GenericFunctions/Variable.hh" -#include "CLHEP/GenericFunctions/Sin.hh" -#include "CLHEP/GenericFunctions/Cos.hh" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" +#include "GeoGenericFunctions/AbsFunction.h" +#include "GeoGenericFunctions/Variable.h" +#include "GeoGenericFunctions/Sin.h" +#include "GeoGenericFunctions/Cos.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -78,30 +80,30 @@ GeoVFullPhysVol* LArGeo::WarmTCConstructionH62004::GetEnvelope() // SHOULD GO INTO DB !!!! // Muon scintilators are the first one: -double Muon_x = 20.0*CLHEP::cm; -double Muon_y = 120.0*CLHEP::cm; -double Muon_z = 1.0*CLHEP::cm; +double Muon_x = 20.0*GeoModelKernelUnits::cm; +double Muon_y = 120.0*GeoModelKernelUnits::cm; +double Muon_z = 1.0*GeoModelKernelUnits::cm; // The extra space to accumulate muon sci. into mother: -double Muon_dist = 120.0*CLHEP::mm; +double Muon_dist = 120.0*GeoModelKernelUnits::mm; // // WTC dimensions -double WTC_len = 591.5*CLHEP::mm; -double WTC_high = 1250.0*CLHEP::mm; -double WTC_sci_z = 12.7*CLHEP::mm; -double WTC_sci_x = 190.0*CLHEP::mm; -double WTC_sci_y = 1160.0*CLHEP::mm; +double WTC_len = 591.5*GeoModelKernelUnits::mm; +double WTC_high = 1250.0*GeoModelKernelUnits::mm; +double WTC_sci_z = 12.7*GeoModelKernelUnits::mm; +double WTC_sci_x = 190.0*GeoModelKernelUnits::mm; +double WTC_sci_y = 1160.0*GeoModelKernelUnits::mm; // Define dimension WTC mother // double x_m = WTC_high / 2; double y_m = WTC_high / 2; -double z_m = (86.0*CLHEP::mm + WTC_len + WTC_sci_z + Muon_dist + Muon_z) / 2; +double z_m = (86.0*GeoModelKernelUnits::mm + WTC_len + WTC_sci_z + Muon_dist + Muon_z) / 2; // // Define dimension of Fe absorber // double Fe_x = WTC_high / 2; double Fe_y = WTC_high / 2; -double Fe_z = (99.0 / 2)*CLHEP::mm; +double Fe_z = (99.0 / 2)*GeoModelKernelUnits::mm; // // Define dimension of X scintilator // @@ -122,24 +124,24 @@ double z_s = WTC_sci_z / 2; // double z_x[3], z_y[3], z_Fe[4]; z_x[0] = -z_m + Muon_dist + Muon_z + z_s; // X scin. Layer 1 - z_y[0] = z_x[0] + 54*CLHEP::mm; // Y scin. Layer 2 - z_Fe[0] = z_x[0] + 86.0*CLHEP::mm + Fe_z; // 1st Fe abs. - z_y[1] = z_Fe[0] + 125.5*CLHEP::mm - Fe_z; // Y scin. Layer 3 - z_Fe[1] = z_Fe[0] + 2 * Fe_z + 53.0*CLHEP::mm; // 2nd Fe abs. - z_x[1] = z_Fe[0] - Fe_z + 278.5*CLHEP::mm; // X scin. Layer 4 - z_Fe[2] = z_Fe[1] + 2 *Fe_z + 52.5*CLHEP::mm; // 3rd Fe abs. - z_y[2] = z_Fe[0] - Fe_z + 433.0*CLHEP::mm; // Y scin. Layer 5 - z_Fe[3] = z_Fe[2] + 2 *Fe_z + 61.5*CLHEP::mm; // 4rd Fe abs. + z_y[0] = z_x[0] + 54*GeoModelKernelUnits::mm; // Y scin. Layer 2 + z_Fe[0] = z_x[0] + 86.0*GeoModelKernelUnits::mm + Fe_z; // 1st Fe abs. + z_y[1] = z_Fe[0] + 125.5*GeoModelKernelUnits::mm - Fe_z; // Y scin. Layer 3 + z_Fe[1] = z_Fe[0] + 2 * Fe_z + 53.0*GeoModelKernelUnits::mm; // 2nd Fe abs. + z_x[1] = z_Fe[0] - Fe_z + 278.5*GeoModelKernelUnits::mm; // X scin. Layer 4 + z_Fe[2] = z_Fe[1] + 2 *Fe_z + 52.5*GeoModelKernelUnits::mm; // 3rd Fe abs. + z_y[2] = z_Fe[0] - Fe_z + 433.0*GeoModelKernelUnits::mm; // Y scin. Layer 5 + z_Fe[3] = z_Fe[2] + 2 *Fe_z + 61.5*GeoModelKernelUnits::mm; // 4rd Fe abs. z_x[2] = z_Fe[0] - Fe_z + WTC_len; // X scin. Layer 6 // // Tilding of the TC -//double WTC_tild = -1.1*CLHEP::deg; // 24 CLHEP::mm tild on 1250 CLHEP::mm length -//double WTC_tild = 0.*CLHEP::deg; // 24 CLHEP::mm tild on 1250 CLHEP::mm length +//double WTC_tild = -1.1*GeoModelKernelUnits::deg; // 24 GeoModelKernelUnits::mm tild on 1250 GeoModelKernelUnits::mm length +//double WTC_tild = 0.*GeoModelKernelUnits::deg; // 24 GeoModelKernelUnits::mm tild on 1250 GeoModelKernelUnits::mm length // Define position in test beam line.... // -//double WTC_x = 0.0*CLHEP::mm; -//double WTC_y = 0.0*CLHEP::mm; -//double WTC_z = 460.0*CLHEP::mm - 120.*CLHEP::mm - 10.*CLHEP::mm; +//double WTC_x = 0.0*GeoModelKernelUnits::mm; +//double WTC_y = 0.0*GeoModelKernelUnits::mm; +//double WTC_z = 460.0*GeoModelKernelUnits::mm - 120.*GeoModelKernelUnits::mm - 10.*GeoModelKernelUnits::mm; // Some elements @@ -150,7 +152,7 @@ double z_x[3], z_y[3], z_Fe[4]; const GeoMaterial* Iron = materialManager->getMaterial("std::Iron"); const GeoMaterial *Air = materialManager->getMaterial("std::Air"); // Scintillator - double density = 1.032*CLHEP::g/CLHEP::cm3; + double density = 1.032*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3; GeoMaterial* Scintillator=new GeoMaterial("Scintillator",density); Scintillator->add(elC,0.9147); Scintillator->add(elH,0.0853); @@ -171,8 +173,6 @@ double z_x[3], z_y[3], z_Fe[4]; status=m_detectorStore->record(sPhysVol,tag); if(!status.isSuccess()) throw std::runtime_error ((std::string("Cannot store ")+tag).c_str()); - CLHEP::HepRotation NoRot; - // // Create the muon scintilator and position double a,n; @@ -181,16 +181,16 @@ double z_x[3], z_y[3], z_Fe[4]; GeoLogVol *mu_log = new GeoLogVol(muname, mu_box, Scintillator); GeoPhysVol *mu_phys = new GeoPhysVol(mu_log); for(int i=1; i<=3; ++i) { - a = -5.*i*CLHEP::mm + (2*i-1)*Muon_x/2; + a = -5.*i*GeoModelKernelUnits::mm + (2*i-1)*Muon_x/2; n = pow(-1,i) * Muon_z/2 - z_m + Muon_z; - CLHEP::Hep3Vector posShift(a,0.0*CLHEP::mm,n); + GeoTrf::Vector3D posShift(a,0.0*GeoModelKernelUnits::mm,n); m_WarmTCPhys->add(new GeoSerialIdentifier(6-i)); - m_WarmTCPhys->add(new GeoTransform(HepGeom::Transform3D(NoRot,CLHEP::Hep3Vector(a,0.0*CLHEP::mm,n)))); + m_WarmTCPhys->add(new GeoTransform(GeoTrf::Translate3D(a,0.0*GeoModelKernelUnits::mm,n))); m_WarmTCPhys->add(mu_phys); n = pow(-1,i+1) * Muon_z/2 - z_m + Muon_z; m_WarmTCPhys->add(new GeoSerialIdentifier(5+i)); - m_WarmTCPhys->add(new GeoTransform(HepGeom::Transform3D(NoRot,CLHEP::Hep3Vector(-a,0.0*CLHEP::mm,n)))); + m_WarmTCPhys->add(new GeoTransform(GeoTrf::Translate3D(-a,0.0*GeoModelKernelUnits::mm,n))); m_WarmTCPhys->add(mu_phys); } @@ -205,7 +205,7 @@ double z_x[3], z_y[3], z_Fe[4]; for(int i=0; i<4; i++) { m_WarmTCPhys->add(new GeoSerialIdentifier(i+1)); - m_WarmTCPhys->add(new GeoTransform(HepGeom::Transform3D(NoRot,CLHEP::Hep3Vector(0.0*CLHEP::mm,0.0*CLHEP::mm,z_Fe[i])))); + m_WarmTCPhys->add(new GeoTransform(GeoTrf::Translate3D(0.0*GeoModelKernelUnits::mm,0.0*GeoModelKernelUnits::mm,z_Fe[i]))); m_WarmTCPhys->add(Fe_phys); } @@ -219,7 +219,7 @@ double z_x[3], z_y[3], z_Fe[4]; for(int i=0; i<3; i++) { m_WarmTCPhys->add(new GeoSerialIdentifier(i+1)); - m_WarmTCPhys->add(new GeoTransform(HepGeom::Transform3D(NoRot,CLHEP::Hep3Vector(0.0*CLHEP::mm,0.0*CLHEP::mm,z_x[i])))); + m_WarmTCPhys->add(new GeoTransform(GeoTrf::Translate3D(0.0*GeoModelKernelUnits::mm,0.0*GeoModelKernelUnits::mm,z_x[i]))); m_WarmTCPhys->add(X_phys); } @@ -233,7 +233,7 @@ double z_x[3], z_y[3], z_Fe[4]; for(int i=0; i<3; i++) { m_WarmTCPhys->add(new GeoSerialIdentifier(i+1)); - m_WarmTCPhys->add(new GeoTransform(HepGeom::Transform3D(NoRot,CLHEP::Hep3Vector(0.0*CLHEP::mm,0.0*CLHEP::mm,z_y[i])))); + m_WarmTCPhys->add(new GeoTransform(GeoTrf::Translate3D(0.0*GeoModelKernelUnits::mm,0.0*GeoModelKernelUnits::mm,z_y[i]))); m_WarmTCPhys->add(Y_phys); } diff --git a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/CMakeLists.txt index f2148b5f9b75db6b62ac7e2c828fbd0180af0a8d..c6e66c68ce0f892d7270d154c5a1d895195fe654 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/CMakeLists.txt @@ -6,9 +6,7 @@ atlas_subdir( LArGeoH6Cryostats ) # Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - DetectorDescription/GeoModel/GeoModelKernel - PRIVATE +atlas_depends_on_subdirs( PRIVATE Control/CxxUtils Control/StoreGate Database/RDBAccessSvc @@ -17,15 +15,15 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( LArGeoH6Cryostats src/*.cxx PUBLIC_HEADERS LArGeoH6Cryostats - PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES GeoModelKernel StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} CxxUtils GaudiKernel ) + PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${GEOMODEL_LIBRARIES} StoreGateLib SGtests + PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${EIGEN_LIBRARIES} CxxUtils GaudiKernel ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/LArGeoH6Cryostats/MWPCConstruction.h b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/LArGeoH6Cryostats/MWPCConstruction.h index 291ce05334ec53ec816901787cc41a7cb1a4d172..14f6658bd474a6ef03fe321c266b3702e984994e 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/LArGeoH6Cryostats/MWPCConstruction.h +++ b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/LArGeoH6Cryostats/MWPCConstruction.h @@ -11,6 +11,7 @@ #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoFullPhysVol.h" +#include "GeoModelKernel/Units.h" #include <memory> class IRDBAccessSvc; @@ -23,7 +24,7 @@ namespace LArGeo { { public: - MWPCConstruction(double Step = 1.*CLHEP::mm); + MWPCConstruction(double Step = 1.*GeoModelKernelUnits::mm); virtual ~MWPCConstruction(); diff --git a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/BPCConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/BPCConstruction.cxx index c9a794ea4a186eb6feb535bcccf6864878a02e51..043e1e5d2248c1912bb8a0a646e84738d10d8bb4 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/BPCConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/BPCConstruction.cxx @@ -24,17 +24,14 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoSerialDenominator.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" - -// For transforms: -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/GenericFunctions/Variable.hh" -// For units: -#include "CLHEP/Units/PhysicalConstants.h" +#include "GeoGenericFunctions/Variable.h" // For the database: #include "RDBAccessSvc/IRDBAccessSvc.h" @@ -107,7 +104,7 @@ GeoVPhysVol* LArGeo::BPCConstruction::GetEnvelope() std::string name; double density; const GeoElement* W=materialManager->getElement("Wolfram"); - GeoMaterial* Tungsten = new GeoMaterial(name="Tungsten", density=19.3*CLHEP::g/CLHEP::cm3); + GeoMaterial* Tungsten = new GeoMaterial(name="Tungsten", density=19.3*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); Tungsten->add(W,1.); Tungsten->lock(); @@ -117,21 +114,21 @@ GeoVPhysVol* LArGeo::BPCConstruction::GetEnvelope() const GeoElement* O=materialManager->getElement("Oxygen"); const GeoElement* H=materialManager->getElement("Hydrogen"); const GeoElement* Al=materialManager->getElement("Aluminium"); - GeoMaterial* CO2 = new GeoMaterial(name="CO2", density=1.84E-03*CLHEP::g/CLHEP::cm3); + GeoMaterial* CO2 = new GeoMaterial(name="CO2", density=1.84E-03*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); CO2->add(C,0.273); CO2->add(O,0.727); CO2->lock(); - GeoMaterial* ArCO2_1 = new GeoMaterial(name="ArCO2_1", density=(0.8*1.782e-03 + 0.2*1.84E-03)*CLHEP::g/CLHEP::cm3); + GeoMaterial* ArCO2_1 = new GeoMaterial(name="ArCO2_1", density=(0.8*1.782e-03 + 0.2*1.84E-03)*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); ArCO2_1->add(Ar,0.8); ArCO2_1->add(CO2,0.2); ArCO2_1->lock(); - GeoMaterial* ArCO2_2 = new GeoMaterial(name="ArCO2_2", density=(0.9*1.782e-03 + 0.1*1.84E-03)*CLHEP::g/CLHEP::cm3); + GeoMaterial* ArCO2_2 = new GeoMaterial(name="ArCO2_2", density=(0.9*1.782e-03 + 0.1*1.84E-03)*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); ArCO2_2->add(Ar,0.9); ArCO2_2->add(CO2,0.1); ArCO2_2->lock(); // AlMylar AlC5H4O2 ?????? - density = 1.39*CLHEP::g/CLHEP::cm3; - GeoMaterial* AlMylar=new GeoMaterial(name="AlMylar",density=1.39*CLHEP::g/CLHEP::cm3); + density = 1.39*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3; + GeoMaterial* AlMylar=new GeoMaterial(name="AlMylar",density=1.39*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); AlMylar->add(C,0.487980); AlMylar->add(O,0.260014); AlMylar->add(H,0.032761); @@ -162,36 +159,36 @@ GeoVPhysVol* LArGeo::BPCConstruction::GetEnvelope() ////////////////////////////////////////////////////////////////// // Define geometry ////////////////////////////////////////////////////////////////// - double bpc_x = 15.0*CLHEP::cm; - double bpc_y = 15.0*CLHEP::cm; - double bpc_z = (8.684/2)*CLHEP::cm; - double bpc_send = (1.14/2)*CLHEP::cm; - double bpc_sen = (1.06)*CLHEP::cm; - double bpc_div = 5.06*CLHEP::mm; - //double bpc_space = 2.6*CLHEP::mm; - double bpc_ml = 0.0010*CLHEP::cm; - double bpc_alml = 0.0012*CLHEP::cm; - double bpc_frame = 12.1*CLHEP::mm; - double bpc_alframe = 8.*CLHEP::mm; - double bpc_step = 0.6*CLHEP::cm; - double bpc_cstep = 0.3*CLHEP::cm; - double bpc_wd = 0.0020*CLHEP::cm; - double bpc_cwd = 0.0100*CLHEP::cm; + double bpc_x = 15.0*GeoModelKernelUnits::cm; + double bpc_y = 15.0*GeoModelKernelUnits::cm; + double bpc_z = (8.684/2)*GeoModelKernelUnits::cm; + double bpc_send = (1.14/2)*GeoModelKernelUnits::cm; + double bpc_sen = (1.06)*GeoModelKernelUnits::cm; + double bpc_div = 5.06*GeoModelKernelUnits::mm; + //double bpc_space = 2.6*GeoModelKernelUnits::mm; + double bpc_ml = 0.0010*GeoModelKernelUnits::cm; + double bpc_alml = 0.0012*GeoModelKernelUnits::cm; + double bpc_frame = 12.1*GeoModelKernelUnits::mm; + double bpc_alframe = 8.*GeoModelKernelUnits::mm; + double bpc_step = 0.6*GeoModelKernelUnits::cm; + double bpc_cstep = 0.3*GeoModelKernelUnits::cm; + double bpc_wd = 0.0020*GeoModelKernelUnits::cm; + double bpc_cwd = 0.0100*GeoModelKernelUnits::cm; - double bpc_old_x = 12.0*CLHEP::cm; - double bpc_old_y = 12.0*CLHEP::cm; - double bpc_old_z = (5.100/2)*CLHEP::cm; - double bpc_old_div = 7.6*CLHEP::mm; - double bpc_old_alml = 0.0020*CLHEP::cm; - double bpc_old_ml = 0.0050*CLHEP::cm; - double bpc_old_frame = 10.*CLHEP::mm; - double bpc_old_alframe = 2.*CLHEP::mm; - double bpc_old_alframe1 = 12.*CLHEP::mm; - double bpc_old_send = (1.7/2)*CLHEP::cm; - double bpc_old_sen = 0.5*CLHEP::cm; - double bpc_old_space = 1.*CLHEP::mm; - double bpc_old_step = 0.6*CLHEP::cm; - double bpc_old_cstep = 0.3*CLHEP::cm; + double bpc_old_x = 12.0*GeoModelKernelUnits::cm; + double bpc_old_y = 12.0*GeoModelKernelUnits::cm; + double bpc_old_z = (5.100/2)*GeoModelKernelUnits::cm; + double bpc_old_div = 7.6*GeoModelKernelUnits::mm; + double bpc_old_alml = 0.0020*GeoModelKernelUnits::cm; + double bpc_old_ml = 0.0050*GeoModelKernelUnits::cm; + double bpc_old_frame = 10.*GeoModelKernelUnits::mm; + double bpc_old_alframe = 2.*GeoModelKernelUnits::mm; + double bpc_old_alframe1 = 12.*GeoModelKernelUnits::mm; + double bpc_old_send = (1.7/2)*GeoModelKernelUnits::cm; + double bpc_old_sen = 0.5*GeoModelKernelUnits::cm; + double bpc_old_space = 1.*GeoModelKernelUnits::mm; + double bpc_old_step = 0.6*GeoModelKernelUnits::cm; + double bpc_old_cstep = 0.3*GeoModelKernelUnits::cm; // Here we creat the envelope for the Moveable FrontBeam Instrumentation. This code is repeated @@ -230,7 +227,7 @@ GeoVPhysVol* LArGeo::BPCConstruction::GetEnvelope() if(i == 1) mylar_pos = bpc_alml - bpc_z; } m_BPCPhysical->add( new GeoIdentifierTag( i ) ); - m_BPCPhysical->add( new GeoTransform( HepGeom::Translate3D(0., 0., mylar_pos) ) ); + m_BPCPhysical->add( new GeoTransform( GeoTrf::Translate3D(0., 0., mylar_pos) ) ); m_BPCPhysical->add( phys_bpc_almylar ); } @@ -252,7 +249,7 @@ GeoVPhysVol* LArGeo::BPCConstruction::GetEnvelope() if(i == 1) mylar_pos = bpc_alml - bpc_z + bpc_frame + bpc_alframe; } m_BPCPhysical->add( new GeoIdentifierTag( i ) ); - m_BPCPhysical->add( new GeoTransform( HepGeom::Translate3D(0., 0., mylar_pos) ) ); + m_BPCPhysical->add( new GeoTransform( GeoTrf::Translate3D(0., 0., mylar_pos) ) ); m_BPCPhysical->add( phys_bpc_mylar ); } @@ -266,8 +263,8 @@ GeoVPhysVol* LArGeo::BPCConstruction::GetEnvelope() else log_bpc_xplane = new GeoLogVol(BPCName + "::bpc_xplane", shape_bpc_xplane, ArCO2_1); GeoPhysVol* phys_bpc_xplane = new GeoPhysVol(log_bpc_xplane); m_BPCPhysical->add( new GeoIdentifierTag( 0 ) ); - if(m_oldType) m_BPCPhysical->add( new GeoTransform( HepGeom::Translate3D(0., 0., bpc_old_sen) ) ); - else m_BPCPhysical->add( new GeoTransform( HepGeom::Translate3D(0., 0., -bpc_sen-bpc_send) ) ); + if(m_oldType) m_BPCPhysical->add( new GeoTransform( GeoTrf::Translate3D(0., 0., bpc_old_sen) ) ); + else m_BPCPhysical->add( new GeoTransform( GeoTrf::Translate3D(0., 0., -bpc_sen-bpc_send) ) ); m_BPCPhysical->add(phys_bpc_xplane); // division of X plane @@ -281,9 +278,9 @@ GeoVPhysVol* LArGeo::BPCConstruction::GetEnvelope() if(m_oldType) log_bpc_xdiv = new GeoLogVol(BPCName + "::bpco_div", shape_bpc_xdiv, ArCO2_2); else log_bpc_xdiv = new GeoLogVol(BPCName + "::bpc_xdiv", shape_bpc_xdiv, ArCO2_1); GeoPhysVol* phys_bpc_xdiv = new GeoPhysVol(log_bpc_xdiv); - Genfun::Variable Index; - GeoXF::TRANSFUNCTION TXO = GeoXF::Pow(HepGeom::TranslateX3D(1.0), -bpc_old_x+(2*Index+1)*bpc_old_step/2.); - GeoXF::TRANSFUNCTION TX = GeoXF::Pow(HepGeom::TranslateX3D(1.0), -bpc_x+(2*Index+1)*bpc_step/2.); + GeoGenfun::Variable Index; + GeoXF::TRANSFUNCTION TXO = GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_old_x+(2*Index+1)*bpc_old_step/2.); + GeoXF::TRANSFUNCTION TX = GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_x+(2*Index+1)*bpc_step/2.); phys_bpc_xplane->add( new GeoSerialIdentifier(0) ); if(m_oldType) phys_bpc_xplane->add( new GeoSerialTransformer(phys_bpc_xdiv, &TXO, Ndiv ) ); else phys_bpc_xplane->add( new GeoSerialTransformer(phys_bpc_xdiv, &TX, Ndiv ) ); @@ -296,32 +293,32 @@ GeoVPhysVol* LArGeo::BPCConstruction::GetEnvelope() GeoLogVol* log_bpc_yplane = new GeoLogVol(BPCName + "::bpc_yplane",shape_bpc_yplane, ArCO2_1); phys_bpc_yplane = new GeoPhysVol(log_bpc_yplane); m_BPCPhysical->add( new GeoIdentifierTag( 0 ) ); - m_BPCPhysical->add( new GeoTransform( HepGeom::Translate3D(0., 0., bpc_sen+bpc_send) ) ); + m_BPCPhysical->add( new GeoTransform( GeoTrf::Translate3D(0., 0., bpc_sen+bpc_send) ) ); m_BPCPhysical->add( phys_bpc_yplane ); // division of Y plane GeoBox* shape_bpc_ydiv = new GeoBox(bpc_x, bpc_step/2.,bpc_div); GeoLogVol* log_bpc_ydiv = new GeoLogVol(BPCName + "::bpc_ydiv", shape_bpc_ydiv, ArCO2_1); phys_bpc_ydiv = new GeoPhysVol(log_bpc_ydiv); - GeoXF::TRANSFUNCTION TY = GeoXF::Pow(HepGeom::TranslateY3D(1.0), -bpc_y+(2*Index+1)*bpc_step/2); + GeoXF::TRANSFUNCTION TY = GeoXF::Pow(GeoTrf::TranslateY3D(1.0), -bpc_y+(2*Index+1)*bpc_step/2); phys_bpc_yplane->add( new GeoSerialIdentifier(0) ); phys_bpc_yplane->add( new GeoSerialTransformer(phys_bpc_ydiv, &TY, Ndiv ) ); } // wires in each division GeoTubs* shape_bpc_wire; - if(m_oldType) shape_bpc_wire = new GeoTubs(0., bpc_wd, bpc_old_x, 0.*CLHEP::deg, 360.*CLHEP::deg); - else shape_bpc_wire = new GeoTubs(0., bpc_wd, bpc_x, 0.*CLHEP::deg, 360.*CLHEP::deg); + if(m_oldType) shape_bpc_wire = new GeoTubs(0., bpc_wd, bpc_old_x, 0.*GeoModelKernelUnits::deg, 360.*GeoModelKernelUnits::deg); + else shape_bpc_wire = new GeoTubs(0., bpc_wd, bpc_x, 0.*GeoModelKernelUnits::deg, 360.*GeoModelKernelUnits::deg); GeoLogVol* log_bpc_wire; if(m_oldType) log_bpc_wire = new GeoLogVol(BPCName + "::bpco_wire", shape_bpc_wire, Tungsten); else log_bpc_wire = new GeoLogVol(BPCName + "::bpc_wire", shape_bpc_wire, Tungsten); GeoPhysVol* phys_bpc_wire = new GeoPhysVol(log_bpc_wire); phys_bpc_xdiv->add( new GeoIdentifierTag( 1 ) ); - phys_bpc_xdiv->add( new GeoTransform( HepGeom::RotateX3D( 90.*CLHEP::deg ) ) ); + phys_bpc_xdiv->add( new GeoTransform( GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ) ) ); phys_bpc_xdiv->add(phys_bpc_wire); if(!m_oldType) { phys_bpc_ydiv->add( new GeoIdentifierTag( 1 ) ); - phys_bpc_ydiv->add( new GeoTransform( HepGeom::RotateY3D( 90.*CLHEP::deg ) ) ); + phys_bpc_ydiv->add( new GeoTransform( GeoTrf::RotateY3D( 90.*GeoModelKernelUnits::deg ) ) ); phys_bpc_ydiv->add(phys_bpc_wire); } @@ -329,20 +326,20 @@ GeoVPhysVol* LArGeo::BPCConstruction::GetEnvelope() if(m_oldType) Ndiv = int(2.0*bpc_old_x/bpc_cstep); else Ndiv = int(2.0*bpc_x/bpc_cstep); GeoTubs* shape_bpc_cwire; - if(m_oldType) shape_bpc_cwire = new GeoTubs(0., bpc_cwd, bpc_old_x, 0.*CLHEP::deg, 360.*CLHEP::deg); - else shape_bpc_cwire = new GeoTubs( 0., bpc_cwd, bpc_x, 0.*CLHEP::deg, 360.*CLHEP::deg); + if(m_oldType) shape_bpc_cwire = new GeoTubs(0., bpc_cwd, bpc_old_x, 0.*GeoModelKernelUnits::deg, 360.*GeoModelKernelUnits::deg); + else shape_bpc_cwire = new GeoTubs( 0., bpc_cwd, bpc_x, 0.*GeoModelKernelUnits::deg, 360.*GeoModelKernelUnits::deg); GeoLogVol* log_bpc_cwire; if(m_oldType) log_bpc_cwire = new GeoLogVol(BPCName + "::bpco_cwire",shape_bpc_cwire, Tungsten); else log_bpc_cwire = new GeoLogVol(BPCName + "::bpc_cwire",shape_bpc_cwire, Tungsten); GeoPhysVol* phys_bpc_cwire = new GeoPhysVol(log_bpc_cwire); -// GeoXF::TRANSFUNCTION TXXMO = HepGeom::RotateX3D( 90.*CLHEP::deg ) * GeoXF::Pow(HepGeom::TranslateX3D(1.0), -bpc_old_x+(2*Index+1)*bpc_old_cstep/2.) * HepGeom::TranslateZ3D(-bpc_old_send-bpc_cwd+bpc_old_space); -// GeoXF::TRANSFUNCTION TXXPO = HepGeom::RotateX3D( 90.*CLHEP::deg ) * GeoXF::Pow(HepGeom::TranslateX3D(1.0), -bpc_old_x+(2*Index+1)*bpc_old_cstep/2.) * HepGeom::TranslateZ3D(bpc_old_send-bpc_old_space+bpc_cwd); - GeoXF::TRANSFUNCTION TXXMO = GeoXF::Pow(HepGeom::TranslateX3D(1.0), -bpc_old_x+(2*Index+1)*bpc_old_cstep/2.) * HepGeom::TranslateZ3D(-bpc_old_send-2.*bpc_cwd+bpc_old_space) * HepGeom::RotateX3D( 90.*CLHEP::deg ); - GeoXF::TRANSFUNCTION TXXPO = GeoXF::Pow(HepGeom::TranslateX3D(1.0), -bpc_old_x+(2*Index+1)*bpc_old_cstep/2.) * HepGeom::TranslateZ3D(bpc_old_send-bpc_old_space+2.*bpc_cwd) * HepGeom::RotateX3D( 90.*CLHEP::deg ); -// GeoXF::TRANSFUNCTION TXXM = HepGeom::RotateX3D( 90.*CLHEP::deg ) * GeoXF::Pow(HepGeom::TranslateX3D(1.0), -bpc_x+(2*Index+1)*bpc_cstep/2.) * HepGeom::TranslateZ3D(-bpc_div-bpc_cwd); -// GeoXF::TRANSFUNCTION TXXP = HepGeom::RotateX3D( 90.*CLHEP::deg ) * GeoXF::Pow(HepGeom::TranslateX3D(1.0), -bpc_x+(2*Index+1)*bpc_cstep/2.) * HepGeom::TranslateZ3D(bpc_div+bpc_cwd); - GeoXF::TRANSFUNCTION TXXM = GeoXF::Pow(HepGeom::TranslateX3D(1.0), -bpc_x+(2*Index+1)*bpc_cstep/2.) * HepGeom::TranslateZ3D(-bpc_div-bpc_cwd) * HepGeom::RotateX3D( 90.*CLHEP::deg ); - GeoXF::TRANSFUNCTION TXXP = GeoXF::Pow(HepGeom::TranslateX3D(1.0), -bpc_x+(2*Index+1)*bpc_cstep/2.) * HepGeom::TranslateZ3D(bpc_div+bpc_cwd) * HepGeom::RotateX3D( 90.*CLHEP::deg ); +// GeoXF::TRANSFUNCTION TXXMO = GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ) * GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_old_x+(2*Index+1)*bpc_old_cstep/2.) * GeoTrf::TranslateZ3D(-bpc_old_send-bpc_cwd+bpc_old_space); +// GeoXF::TRANSFUNCTION TXXPO = GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ) * GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_old_x+(2*Index+1)*bpc_old_cstep/2.) * GeoTrf::TranslateZ3D(bpc_old_send-bpc_old_space+bpc_cwd); + GeoXF::TRANSFUNCTION TXXMO = GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_old_x+(2*Index+1)*bpc_old_cstep/2.) * GeoTrf::TranslateZ3D(-bpc_old_send-2.*bpc_cwd+bpc_old_space) * GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ); + GeoXF::TRANSFUNCTION TXXPO = GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_old_x+(2*Index+1)*bpc_old_cstep/2.) * GeoTrf::TranslateZ3D(bpc_old_send-bpc_old_space+2.*bpc_cwd) * GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ); +// GeoXF::TRANSFUNCTION TXXM = GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ) * GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_x+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(-bpc_div-bpc_cwd); +// GeoXF::TRANSFUNCTION TXXP = GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ) * GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_x+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(bpc_div+bpc_cwd); + GeoXF::TRANSFUNCTION TXXM = GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_x+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(-bpc_div-bpc_cwd) * GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ); + GeoXF::TRANSFUNCTION TXXP = GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -bpc_x+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(bpc_div+bpc_cwd) * GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ); phys_bpc_xplane->add( new GeoSerialIdentifier(0) ); if(m_oldType) phys_bpc_xplane->add( new GeoSerialTransformer(phys_bpc_cwire, &TXXMO, Ndiv) ); else phys_bpc_xplane->add( new GeoSerialTransformer(phys_bpc_cwire, &TXXM, Ndiv) ); @@ -350,10 +347,10 @@ GeoVPhysVol* LArGeo::BPCConstruction::GetEnvelope() if(m_oldType) phys_bpc_xplane->add( new GeoSerialTransformer(phys_bpc_cwire, &TXXPO, Ndiv) ); else phys_bpc_xplane->add( new GeoSerialTransformer(phys_bpc_cwire, &TXXP, Ndiv) ); if(!m_oldType) { -// GeoXF::TRANSFUNCTION TYYM = HepGeom::RotateY3D( 90.*CLHEP::deg ) * GeoXF::Pow(HepGeom::TranslateY3D(1.0), -bpc_y+(2*Index+1)*bpc_cstep/2.) * HepGeom::TranslateZ3D(-bpc_div-bpc_cwd); -// GeoXF::TRANSFUNCTION TYYP = HepGeom::RotateY3D( 90.*CLHEP::deg ) * GeoXF::Pow(HepGeom::TranslateY3D(1.0), -bpc_y+(2*Index+1)*bpc_cstep/2.) * HepGeom::TranslateZ3D(bpc_div+bpc_cwd); - GeoXF::TRANSFUNCTION TYYM = GeoXF::Pow(HepGeom::TranslateY3D(1.0), -bpc_y+(2*Index+1)*bpc_cstep/2.) * HepGeom::TranslateZ3D(-bpc_div-bpc_cwd) * HepGeom::RotateY3D( 90.*CLHEP::deg ); - GeoXF::TRANSFUNCTION TYYP = GeoXF::Pow(HepGeom::TranslateY3D(1.0), -bpc_y+(2*Index+1)*bpc_cstep/2.) * HepGeom::TranslateZ3D(bpc_div+bpc_cwd) * HepGeom::RotateY3D( 90.*CLHEP::deg ); +// GeoXF::TRANSFUNCTION TYYM = GeoTrf::RotateY3D( 90.*GeoModelKernelUnits::deg ) * GeoXF::Pow(GeoTrf::TranslateY3D(1.0), -bpc_y+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(-bpc_div-bpc_cwd); +// GeoXF::TRANSFUNCTION TYYP = GeoTrf::RotateY3D( 90.*GeoModelKernelUnits::deg ) * GeoXF::Pow(GeoTrf::TranslateY3D(1.0), -bpc_y+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(bpc_div+bpc_cwd); + GeoXF::TRANSFUNCTION TYYM = GeoXF::Pow(GeoTrf::TranslateY3D(1.0), -bpc_y+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(-bpc_div-bpc_cwd) * GeoTrf::RotateY3D( 90.*GeoModelKernelUnits::deg ); + GeoXF::TRANSFUNCTION TYYP = GeoXF::Pow(GeoTrf::TranslateY3D(1.0), -bpc_y+(2*Index+1)*bpc_cstep/2.) * GeoTrf::TranslateZ3D(bpc_div+bpc_cwd) * GeoTrf::RotateY3D( 90.*GeoModelKernelUnits::deg ); phys_bpc_yplane->add( new GeoSerialIdentifier(0) ); phys_bpc_yplane->add( new GeoSerialTransformer(phys_bpc_cwire, &TYYM, Ndiv) ); phys_bpc_yplane->add( new GeoSerialIdentifier(Ndiv) ); diff --git a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/H6CryostatConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/H6CryostatConstruction.cxx index 6ea8ebae3090e182c88b0ea0ff76f5830bfb283f..a43ee7e780c310de00e1f81595babe8ceccf6285 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/H6CryostatConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/H6CryostatConstruction.cxx @@ -22,18 +22,14 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" -// For transforms: - -#include "CLHEP/Geometry/Transform3D.h" -// For units: -#include "CLHEP/Units/PhysicalConstants.h" - // For the database: #include "RDBAccessSvc/IRDBAccessSvc.h" @@ -104,23 +100,23 @@ GeoVFullPhysVol* LArGeo::H6CryostatConstruction::GetEnvelope() // First attempt at creating the H6 cryostat: // (values taken from HECCommonDetectorParamDef) // - // A cylinder of half-height: zcryo = 2000.0 *CLHEP::mm - // outer radius of warm-wall: rwarm = 1295.5 *CLHEP::mm - // outer radius of vacuum: rvac = 1293.0 *CLHEP::mm - // outer radius of cold wall: rcold = 1258.0 *CLHEP::mm - // outer radius of LAr: rlar = 1255.0 *CLHEP::mm + // A cylinder of half-height: zcryo = 2000.0 *GeoModelKernelUnits::mm + // outer radius of warm-wall: rwarm = 1295.5 *GeoModelKernelUnits::mm + // outer radius of vacuum: rvac = 1293.0 *GeoModelKernelUnits::mm + // outer radius of cold wall: rcold = 1258.0 *GeoModelKernelUnits::mm + // outer radius of LAr: rlar = 1255.0 *GeoModelKernelUnits::mm // needs to go into database: --- 4databa - double zcryo = 2000.0 *CLHEP::mm; - double rwarm = 1295.5 *CLHEP::mm; - double rvac = 1293.0 *CLHEP::mm; - double rcold = 1258.0 *CLHEP::mm; - double rlar = 1255.0 *CLHEP::mm; + double zcryo = 2000.0 *GeoModelKernelUnits::mm; + double rwarm = 1295.5 *GeoModelKernelUnits::mm; + double rvac = 1293.0 *GeoModelKernelUnits::mm; + double rcold = 1258.0 *GeoModelKernelUnits::mm; + double rlar = 1255.0 *GeoModelKernelUnits::mm; std::string cryoMotherName = "LAr::H6::Cryostat::MotherVolume"; // mother volume; cylinder of radius rwarm = outside of the cryostat warm wall - GeoTube* cryoMotherShape = new GeoTube(0.0 , rwarm+10.0, zcryo+10.0*CLHEP::mm); // mother is a little bigger than warm wall + GeoTube* cryoMotherShape = new GeoTube(0.0 , rwarm+10.0, zcryo+10.0*GeoModelKernelUnits::mm); // mother is a little bigger than warm wall const GeoLogVol* cryoMotherLogical = new GeoLogVol(cryoMotherName, cryoMotherShape, Air); m_cryoMotherPhysical = new GeoFullPhysVol(cryoMotherLogical); @@ -146,13 +142,13 @@ GeoVFullPhysVol* LArGeo::H6CryostatConstruction::GetEnvelope() m_cryoMotherPhysical->add(cryoWarmWallPhys); // "Vacuum" gap (filled with air...) - GeoTube* cryoVacuumGapShape = new GeoTube(0. , rvac, zcryo-2.0*CLHEP::mm); // an arbitrary 2mm shorter to avoid confilct + GeoTube* cryoVacuumGapShape = new GeoTube(0. , rvac, zcryo-2.0*GeoModelKernelUnits::mm); // an arbitrary 2mm shorter to avoid confilct const GeoLogVol* cryoVacuumGapLog = new GeoLogVol(cryoVacuumGapName, cryoVacuumGapShape, Air); GeoPhysVol* cryoVacuumGapPhys = new GeoPhysVol(cryoVacuumGapLog); cryoWarmWallPhys->add(cryoVacuumGapPhys); // Cold Wall - GeoTube* cryoColdWallShape = new GeoTube(0. , rcold, zcryo-4.0*CLHEP::mm); // an arbitrary 4mm shorter to avoid confilct + GeoTube* cryoColdWallShape = new GeoTube(0. , rcold, zcryo-4.0*GeoModelKernelUnits::mm); // an arbitrary 4mm shorter to avoid confilct const GeoLogVol* cryoColdWallLog = new GeoLogVol(cryoColdWallName, cryoColdWallShape, Iron); GeoPhysVol* cryoColdWallPhys = new GeoPhysVol(cryoColdWallLog); cryoVacuumGapPhys->add(cryoColdWallPhys); @@ -164,7 +160,7 @@ GeoVFullPhysVol* LArGeo::H6CryostatConstruction::GetEnvelope() // And the FCal the embedded in the LAr instead of the cryoMother! // Liquid Argon - GeoTube* cryoLArShape = new GeoTube(0. , rlar, zcryo-6.0*CLHEP::mm); // an arbitrary 2mm shorter to avoid confilct + GeoTube* cryoLArShape = new GeoTube(0. , rlar, zcryo-6.0*GeoModelKernelUnits::mm); // an arbitrary 2mm shorter to avoid confilct const GeoLogVol* cryoLArLog = new GeoLogVol(cryoLArName, cryoLArShape, LAr); m_cryoMotherPhysical->add(new GeoNameTag(std::string("Cryostat LAr Physical"))); // m_cryoLArPhys is a class member so that we can place Detectors inside. diff --git a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/MWPCConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/MWPCConstruction.cxx index a47752d86c05b1d4e362bd5abd9ba5a699812215..2506edd5257888fb23dd27ff40e7609d5b3a8a39 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/MWPCConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/MWPCConstruction.cxx @@ -27,17 +27,13 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoSerialDenominator.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" - -// For transforms: -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/GenericFunctions/Variable.hh" -// For units: -#include "CLHEP/Units/PhysicalConstants.h" +#include "GeoGenericFunctions/Variable.h" // For the database: #include "RDBAccessSvc/IRDBAccessSvc.h" @@ -110,7 +106,7 @@ GeoVPhysVol* LArGeo::MWPCConstruction::GetEnvelope() std::string name; double density; const GeoElement* W=materialManager->getElement("Wolfram"); - GeoMaterial* Tungsten = new GeoMaterial(name="Tungsten", density=19.3*CLHEP::g/CLHEP::cm3); + GeoMaterial* Tungsten = new GeoMaterial(name="Tungsten", density=19.3*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); Tungsten->add(W,1.); Tungsten->lock(); @@ -118,11 +114,11 @@ GeoVPhysVol* LArGeo::MWPCConstruction::GetEnvelope() const GeoElement* Ar=materialManager->getElement("Argon"); const GeoElement* C=materialManager->getElement("Carbon"); const GeoElement* H=materialManager->getElement("Hydrogen"); - GeoMaterial* Isobutane = new GeoMaterial(name="Isobutane", density=2.67*CLHEP::g/CLHEP::cm3); + GeoMaterial* Isobutane = new GeoMaterial(name="Isobutane", density=2.67*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); Isobutane->add(C,0.8266); Isobutane->add(H,0.1734); Isobutane->lock(); - GeoMaterial* ArIso = new GeoMaterial(name="ArIso", density=0.0025*CLHEP::g/CLHEP::cm3); + GeoMaterial* ArIso = new GeoMaterial(name="ArIso", density=0.0025*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); ArIso->add(Ar,0.61); ArIso->add(Isobutane,0.39); ArIso->lock(); @@ -173,8 +169,8 @@ GeoVPhysVol* LArGeo::MWPCConstruction::GetEnvelope() std::string MWPCName = baseName + "::MWPC"; // This creates a square wire-chamber: - const double MWPCDxy = 64.0*CLHEP::mm; - const double MWPCDz = 16.586*CLHEP::mm; + const double MWPCDxy = 64.0*GeoModelKernelUnits::mm; + const double MWPCDz = 16.586*GeoModelKernelUnits::mm; GeoBox* MWPCShape = new GeoBox(MWPCDxy, MWPCDxy, MWPCDz); // A generic WWPC @@ -184,7 +180,7 @@ GeoVPhysVol* LArGeo::MWPCConstruction::GetEnvelope() //..... Add Mylar to MWPC: - const double MylarDz = 0.015*CLHEP::mm; + const double MylarDz = 0.015*GeoModelKernelUnits::mm; GeoBox* MylarShape = new GeoBox(MWPCDxy, MWPCDxy, MylarDz); // Mylar fits across the MWPC in x,y @@ -197,7 +193,7 @@ GeoVPhysVol* LArGeo::MWPCConstruction::GetEnvelope() GeoLogVol* MylarLogical = new GeoLogVol( MylarName, MylarShape, Mylar ); GeoPhysVol* MylarPhysical = new GeoPhysVol( MylarLogical ); m_MWPCPhysical->add( new GeoIdentifierTag( side ) ); - m_MWPCPhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, (MylarPos) ) ) ); + m_MWPCPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (MylarPos) ) ) ); m_MWPCPhysical->add( MylarPhysical ); } // Done with the Mylar Foils @@ -205,10 +201,10 @@ GeoVPhysVol* LArGeo::MWPCConstruction::GetEnvelope() //..... Add Al walls to MWPC5: - const double Aluz = 0.014*CLHEP::mm; + const double Aluz = 0.014*GeoModelKernelUnits::mm; const double AluDz = Aluz; - const double Alu_f = 7.*CLHEP::mm; - const double Alu_s = 15.*CLHEP::mm; + const double Alu_f = 7.*GeoModelKernelUnits::mm; + const double Alu_s = 15.*GeoModelKernelUnits::mm; GeoBox* AluShape = new GeoBox(MWPCDxy, MWPCDxy, AluDz); // Al foil fits across the MWPC in x,y for ( int pos = 0; pos<4 ; pos++) @@ -226,17 +222,17 @@ GeoVPhysVol* LArGeo::MWPCConstruction::GetEnvelope() GeoLogVol* AluLogical = new GeoLogVol( AluName, AluShape, Aluminium ); GeoPhysVol* AluPhysical = new GeoPhysVol( AluLogical ); m_MWPCPhysical->add( new GeoIdentifierTag( pos ) ); - m_MWPCPhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, (AluPos) ) ) ); + m_MWPCPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (AluPos) ) ) ); m_MWPCPhysical->add( AluPhysical ); } //..... Add a sensitive X and Y plane to MWPC5: - const double Senz = 4.0*CLHEP::mm; + const double Senz = 4.0*GeoModelKernelUnits::mm; const double SenDz = Senz; // z-Thickness of sensitive volume - const double SenPos = 11.*CLHEP::mm; // z-Position of sensitive volume - //const double Step = 2.*CLHEP::mm; // wire-step size for MWPC5 + const double SenPos = 11.*GeoModelKernelUnits::mm; // z-Position of sensitive volume + //const double Step = 2.*GeoModelKernelUnits::mm; // wire-step size for MWPC5 GeoBox* SenPlaneShape = new GeoBox(MWPCDxy, MWPCDxy, SenDz); // Sensitive Volume fits across the MWPC in x,y @@ -247,20 +243,20 @@ GeoVPhysVol* LArGeo::MWPCConstruction::GetEnvelope() GeoPhysVol* XPlanePhysical = new GeoPhysVol( XPlaneLogical ); GeoPhysVol* YPlanePhysical = new GeoPhysVol( YPlaneLogical ); m_MWPCPhysical->add( new GeoIdentifierTag( 0 ) ); - m_MWPCPhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, (-SenPos) ) ) ); + m_MWPCPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (-SenPos) ) ) ); m_MWPCPhysical->add( XPlanePhysical ); m_MWPCPhysical->add( new GeoIdentifierTag( 0 ) ); - m_MWPCPhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, (SenPos) ) ) ); + m_MWPCPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, (SenPos) ) ) ); m_MWPCPhysical->add( YPlanePhysical ); //.... The X and Y planes have "divisions" // These divisions will eventually be the sensitive volumes - Genfun::Variable Index; + GeoGenfun::Variable Index; int NDiv= int ( 2*MWPCDxy / m_wireStep ) ; - GeoXF::TRANSFUNCTION TX = GeoXF::Pow(HepGeom::TranslateX3D(1.0), -MWPCDxy + m_wireStep/2. + m_wireStep*Index); - GeoXF::TRANSFUNCTION TY = GeoXF::Pow(HepGeom::TranslateY3D(1.0), -MWPCDxy + m_wireStep/2. + m_wireStep*Index); + GeoXF::TRANSFUNCTION TX = GeoXF::Pow(GeoTrf::TranslateX3D(1.0), -MWPCDxy + m_wireStep/2. + m_wireStep*Index); + GeoXF::TRANSFUNCTION TY = GeoXF::Pow(GeoTrf::TranslateY3D(1.0), -MWPCDxy + m_wireStep/2. + m_wireStep*Index); GeoBox* XPlaneDiv = new GeoBox(m_wireStep/2., MWPCDxy , SenDz); GeoBox* YPlaneDiv = new GeoBox(MWPCDxy , m_wireStep/2., SenDz); std::string XDivName = MWPCName + "::XDiv"; @@ -280,15 +276,15 @@ GeoVPhysVol* LArGeo::MWPCConstruction::GetEnvelope() YPlanePhysical->add(sTSY); //.... Put wires into the X/Y "divisions" - const double WireDiam = 0.006*CLHEP::mm; + const double WireDiam = 0.006*GeoModelKernelUnits::mm; const double WireLen = MWPCDxy; - GeoTubs* WireShape = new GeoTubs(0.*CLHEP::cm, WireDiam/2., WireLen , 0.*CLHEP::deg,360.*CLHEP::deg); + GeoTubs* WireShape = new GeoTubs(0.*GeoModelKernelUnits::cm, WireDiam/2., WireLen , 0.*GeoModelKernelUnits::deg,360.*GeoModelKernelUnits::deg); std::string WireName = MWPCName + "::Wire"; GeoLogVol* WireLogical = new GeoLogVol(WireName, WireShape, Tungsten); GeoPhysVol* WirePhysical = new GeoPhysVol( WireLogical ); - XDivPhysical->add(new GeoTransform(HepGeom::RotateX3D( 90.*CLHEP::deg ))); + XDivPhysical->add(new GeoTransform(GeoTrf::RotateX3D( 90.*GeoModelKernelUnits::deg ))); XDivPhysical->add(WirePhysical); - YDivPhysical->add(new GeoTransform(HepGeom::RotateY3D( 90.*CLHEP::deg ))); + YDivPhysical->add(new GeoTransform(GeoTrf::RotateY3D( 90.*GeoModelKernelUnits::deg ))); YDivPhysical->add(WirePhysical); diff --git a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/WallsConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/WallsConstruction.cxx index 196408deb70b547e8ccc32ed97f229ab781a5eb4..a8f7cb567bef4eece8e7fb8d4c7d05994f1656cf 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/WallsConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoH6Cryostats/src/WallsConstruction.cxx @@ -22,18 +22,15 @@ #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoSerialDenominator.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "CxxUtils/make_unique.h" - -// For transforms: -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/GenericFunctions/Variable.hh" -// For units: -#include "CLHEP/Units/PhysicalConstants.h" +#include "CxxUtils/make_unique.h" +#include "GeoGenericFunctions/Variable.h" // For the database: #include "RDBAccessSvc/IRDBAccessSvc.h" @@ -120,7 +117,7 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() // Is this ok for the Scintillator? // I don't really know for sure what kind of a scintillator we have. - // Lots of Scintillators are PMMA (Plexiglas), which has a composition of C5 H8 O2 and density 1.18 CLHEP::g/CLHEP::cm3 + // Lots of Scintillators are PMMA (Plexiglas), which has a composition of C5 H8 O2 and density 1.18 GeoModelKernelUnits::g/GeoModelKernelUnits::cm3 // The Tile uses a composition of C H (density 1.032) // The old Walls testbeam code uses a composition of C9 H10 (density 1.032) // ... because it's easiest at the moment and not all that different from the fractional @@ -160,9 +157,9 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() std::string baseName = "LAr::TBH6"; std::string WallsName = baseName + "::Walls"; - const double WallsX = 1500.*CLHEP::mm; - const double WallsY = 2000.*CLHEP::mm; - const double WallsZ = 560.5*CLHEP::mm; + const double WallsX = 1500.*GeoModelKernelUnits::mm; + const double WallsY = 2000.*GeoModelKernelUnits::mm; + const double WallsZ = 560.5*GeoModelKernelUnits::mm; GeoBox* WallsShape = new GeoBox( WallsX, WallsY, WallsZ ); @@ -179,13 +176,13 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() (*m_msg) << "Create Iron Wall " << endmsg; - const double IronX = 1499.*CLHEP::mm; - const double IronY = 1999.*CLHEP::mm; - const double IronZ = 200.0*CLHEP::mm; - const double IronHoleX = 51.5*CLHEP::mm; - const double IronHoleY = 1999.*CLHEP::mm; - const double IronHoleZ = 200.*CLHEP::mm; - const double IronPosZ = 270.*CLHEP::mm; + const double IronX = 1499.*GeoModelKernelUnits::mm; + const double IronY = 1999.*GeoModelKernelUnits::mm; + const double IronZ = 200.0*GeoModelKernelUnits::mm; + const double IronHoleX = 51.5*GeoModelKernelUnits::mm; + const double IronHoleY = 1999.*GeoModelKernelUnits::mm; + const double IronHoleZ = 200.*GeoModelKernelUnits::mm; + const double IronPosZ = 270.*GeoModelKernelUnits::mm; // The wall itself: GeoBox* IronWallShape = new GeoBox(IronX, IronY, IronZ); @@ -201,7 +198,7 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() IronWallPhysical->add(IronHolePhysical); // Add the iron wall to the Wall mother: - m_WallsPhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::mm, 0.*CLHEP::mm, (WallsZ-IronPosZ) ) ) ) ; + m_WallsPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::mm, 0.*GeoModelKernelUnits::mm, (WallsZ-IronPosZ) ) ) ) ; m_WallsPhysical->add( new GeoNameTag(IronWallName) ); m_WallsPhysical->add( IronWallPhysical ); @@ -213,13 +210,13 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() (*m_msg) << "Create Lead Wall " << endmsg; - const double LeadX = 1499.*CLHEP::mm; - const double LeadY = 1999.*CLHEP::mm; - const double LeadZ = 6.*CLHEP::mm; - const double LeadHoleX = 23.5*CLHEP::mm; - const double LeadHoleY = 1999.*CLHEP::mm; - const double LeadHoleZ = 6.*CLHEP::mm; - const double LeadPosZ = 1045.*CLHEP::mm; + const double LeadX = 1499.*GeoModelKernelUnits::mm; + const double LeadY = 1999.*GeoModelKernelUnits::mm; + const double LeadZ = 6.*GeoModelKernelUnits::mm; + const double LeadHoleX = 23.5*GeoModelKernelUnits::mm; + const double LeadHoleY = 1999.*GeoModelKernelUnits::mm; + const double LeadHoleZ = 6.*GeoModelKernelUnits::mm; + const double LeadPosZ = 1045.*GeoModelKernelUnits::mm; // The wall itself: GeoBox* LeadWallShape = new GeoBox(LeadX, LeadY, LeadZ); @@ -235,7 +232,7 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() LeadWallPhysical->add(LeadHolePhysical); // Add the lead wall to the Wall mother: - m_WallsPhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::mm, 0.*CLHEP::mm, (WallsZ-LeadPosZ) ) ) ) ; + m_WallsPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::mm, 0.*GeoModelKernelUnits::mm, (WallsZ-LeadPosZ) ) ) ) ; m_WallsPhysical->add( new GeoNameTag(LeadWallName) ); m_WallsPhysical->add( LeadWallPhysical ); @@ -246,13 +243,13 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() (*m_msg) << "Create Scint Wall " << endmsg; - const double ScintX = 1499.*CLHEP::mm; - const double ScintY = 1999.*CLHEP::mm; - const double ScintZ = 6.5*CLHEP::mm; - const double ScintHoleX = 92.5*CLHEP::mm; - const double ScintHoleY = 1999.*CLHEP::mm; - const double ScintHoleZ = 6.5*CLHEP::mm; - const double ScintPosZ = 625.*CLHEP::mm; + const double ScintX = 1499.*GeoModelKernelUnits::mm; + const double ScintY = 1999.*GeoModelKernelUnits::mm; + const double ScintZ = 6.5*GeoModelKernelUnits::mm; + const double ScintHoleX = 92.5*GeoModelKernelUnits::mm; + const double ScintHoleY = 1999.*GeoModelKernelUnits::mm; + const double ScintHoleZ = 6.5*GeoModelKernelUnits::mm; + const double ScintPosZ = 625.*GeoModelKernelUnits::mm; // The wall itself: GeoBox* ScintWallShape = new GeoBox(ScintX, ScintY, ScintZ); @@ -268,7 +265,7 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() ScintWallPhysical->add(ScintHolePhysical); // Add the scintillator wall to the Wall mother: - m_WallsPhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::mm, 0.*CLHEP::mm, (WallsZ-ScintPosZ) ) ) ) ; + m_WallsPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::mm, 0.*GeoModelKernelUnits::mm, (WallsZ-ScintPosZ) ) ) ) ; m_WallsPhysical->add( new GeoNameTag(ScintWallName) ); m_WallsPhysical->add( ScintWallPhysical ); @@ -280,10 +277,10 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() //(*m_msg) << "Create Iron Plate " << endmsg; - const double IronPlateX = 50.*CLHEP::mm; - const double IronPlateY = 150.*CLHEP::mm; - const double IronPlateZ = 4.*CLHEP::mm; - const double IronPlatePosZ = 493.*CLHEP::mm; + const double IronPlateX = 50.*GeoModelKernelUnits::mm; + const double IronPlateY = 150.*GeoModelKernelUnits::mm; + const double IronPlateZ = 4.*GeoModelKernelUnits::mm; + const double IronPlatePosZ = 493.*GeoModelKernelUnits::mm; const int nPlate = 0 ; const int PlatePlace = 1 ; // There were two locations used for these plates - unclear which one when and exactly // where they were....! For the moment, sort of copy the standalone code @@ -312,7 +309,7 @@ GeoVPhysVol* LArGeo::WallsConstruction::GetEnvelope() // Add the iron plate to the Plate mother: for (int iz=0; iz<(nPlate); iz++) { m_WallsPhysical->add( new GeoIdentifierTag(iz) ); - m_WallsPhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::mm, 0.*CLHEP::mm, double(PlatePlace)*(v_PlateZ[iz]) ) ) ) ; + m_WallsPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::mm, 0.*GeoModelKernelUnits::mm, double(PlatePlace)*(v_PlateZ[iz]) ) ) ) ; m_WallsPhysical->add( new GeoNameTag(IronPlateName) ); m_WallsPhysical->add( IronPlatePhysical ); } diff --git a/LArCalorimeter/LArGeoModel/LArGeoHec/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoHec/CMakeLists.txt index 4579a38e6111f7291311cdbc93a4906e781f1632..a718835838a38ce4bf21637cc8ce3fd846dcfe85 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoHec/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoHec/CMakeLists.txt @@ -11,21 +11,20 @@ atlas_depends_on_subdirs( PRIVATE Control/StoreGate Database/RDBAccessSvc DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities GaudiKernel ) # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( LArGeoHec src/*.cxx PUBLIC_HEADERS LArGeoHec - PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} + PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} LINK_LIBRARIES StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} AthenaKernel GeoModelKernel GeoModelUtilities GaudiKernel ) + PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaKernel GeoModelUtilities GaudiKernel ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoHec/src/HEC2WheelConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoHec/src/HEC2WheelConstruction.cxx index aa539968940d9a1ca2295243934637b1a2a6f925..1f205323582be5bf2c1f8bfa4dc864aebaf3c72d 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoHec/src/HEC2WheelConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoHec/src/HEC2WheelConstruction.cxx @@ -43,10 +43,9 @@ #include "GeoModelKernel/GeoSerialTransformer.h" #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoXF.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/Rotation.h" -#include "CLHEP/Units/PhysicalConstants.h" -#include "CLHEP/GenericFunctions/Variable.hh" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" +#include "GeoGenericFunctions/Variable.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -67,11 +66,11 @@ #include <iostream> -using CLHEP::cm; -using CLHEP::mm; -using CLHEP::deg; -using HepGeom::Transform3D; -using HepGeom::Translate3D; +using GeoModelKernelUnits::cm; +using GeoModelKernelUnits::mm; +using GeoModelKernelUnits::deg; +using GeoTrf::Transform3D; +using GeoTrf::Translate3D; //Constructor diff --git a/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECClampConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECClampConstruction.cxx index cb45fec5977a8be153e2efc37b50f418f0738fcd..200c46eb62db9b2c7d58e229bfb6ca624ac58b55 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECClampConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECClampConstruction.cxx @@ -31,10 +31,9 @@ #include "GeoModelKernel/GeoSerialTransformer.h" #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoXF.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/Rotation.h" -#include "CLHEP/Units/PhysicalConstants.h" -#include "CLHEP/GenericFunctions/Variable.hh" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" +#include "GeoGenericFunctions/Variable.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -52,12 +51,12 @@ #include <cmath> #include <iostream> -using CLHEP::cm; -using CLHEP::mm; -using CLHEP::deg; -using HepGeom::RotateZ3D; -using HepGeom::Translate3D; -using HepGeom::TranslateZ3D; +using GeoModelKernelUnits::cm; +using GeoModelKernelUnits::mm; +using GeoModelKernelUnits::deg; +using GeoTrf::RotateZ3D; +using GeoTrf::Translate3D; +using GeoTrf::TranslateZ3D; //Constructor @@ -383,11 +382,11 @@ void LArGeo::HECClampConstruction::AddClamps(GeoFullPhysVol* physiHECWheel) physiHECWheel->add(xt); GeoSerialIdentifier *sIC = new GeoSerialIdentifier(0); - Genfun::Variable IndexC; + GeoGenfun::Variable IndexC; if (m_posZSide) { - Genfun::GENFUNCTION ModuleRotationAngleC = -m_modulePhistart+m_moduleDeltaPhi + m_moduleDeltaPhi*IndexC; + GeoGenfun::GENFUNCTION ModuleRotationAngleC = -m_modulePhistart+m_moduleDeltaPhi + m_moduleDeltaPhi*IndexC; GeoXF::TRANSFUNCTION tC = GeoXF::Pow(RotateZ3D(1.0),ModuleRotationAngleC); GeoSerialTransformer *sTC = new GeoSerialTransformer (clampingBar,&tC,((m_moduleNumber/2)-1)); physiHECWheel->add(sIC); @@ -396,7 +395,7 @@ void LArGeo::HECClampConstruction::AddClamps(GeoFullPhysVol* physiHECWheel) } else { - Genfun::GENFUNCTION ModuleRotationAngleC = -m_modulePhistart-m_moduleDeltaPhi+180*deg - m_moduleDeltaPhi*IndexC; + GeoGenfun::GENFUNCTION ModuleRotationAngleC = -m_modulePhistart-m_moduleDeltaPhi+180*deg - m_moduleDeltaPhi*IndexC; GeoXF::TRANSFUNCTION tC = GeoXF::Pow(RotateZ3D(1.0),ModuleRotationAngleC); GeoSerialTransformer *sTC = new GeoSerialTransformer (clampingBar,&tC,((m_moduleNumber/2)-1)); physiHECWheel->add(sIC); @@ -418,11 +417,11 @@ void LArGeo::HECClampConstruction::AddClamps(GeoFullPhysVol* physiHECWheel) physiHECWheel->add(xt); - Genfun::Variable IndexC2; + GeoGenfun::Variable IndexC2; if (m_posZSide) { - Genfun::GENFUNCTION ModuleRotationAngleC2 = -m_modulePhistart+m_moduleDeltaPhi-(180.*deg) + m_moduleDeltaPhi*IndexC2; + GeoGenfun::GENFUNCTION ModuleRotationAngleC2 = -m_modulePhistart+m_moduleDeltaPhi-(180.*deg) + m_moduleDeltaPhi*IndexC2; GeoXF::TRANSFUNCTION tC2 = GeoXF::Pow(RotateZ3D(1.0),ModuleRotationAngleC2); GeoSerialTransformer *sTC2 = new GeoSerialTransformer (clampingBar,&tC2,((m_moduleNumber/2)-1)); physiHECWheel->add(sTC2); @@ -430,7 +429,7 @@ void LArGeo::HECClampConstruction::AddClamps(GeoFullPhysVol* physiHECWheel) } else { - Genfun::GENFUNCTION ModuleRotationAngleC2 = -m_modulePhistart-m_moduleDeltaPhi - m_moduleDeltaPhi*IndexC2; + GeoGenfun::GENFUNCTION ModuleRotationAngleC2 = -m_modulePhistart-m_moduleDeltaPhi - m_moduleDeltaPhi*IndexC2; GeoXF::TRANSFUNCTION tC2 = GeoXF::Pow(RotateZ3D(1.0),ModuleRotationAngleC2); GeoSerialTransformer *sTC2 = new GeoSerialTransformer (clampingBar,&tC2,((m_moduleNumber/2)-1)); physiHECWheel->add(sTC2); diff --git a/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECModuleConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECModuleConstruction.cxx index d7164e3d4d09d0a4dcdfbee291d89217d7ce1ff9..00319637749ccb245baf6bb68d70fc9d50c1661f 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECModuleConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECModuleConstruction.cxx @@ -22,10 +22,9 @@ #include "GeoModelKernel/GeoSerialTransformer.h" #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoXF.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/Rotation.h" -#include "CLHEP/Units/PhysicalConstants.h" -#include "CLHEP/GenericFunctions/Variable.hh" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" +#include "GeoGenericFunctions/Variable.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -42,12 +41,12 @@ #include <iostream> -using CLHEP::cm; -using CLHEP::mm; -using CLHEP::deg; -using HepGeom::Translate3D; -using HepGeom::TranslateY3D; -using HepGeom::TranslateZ3D; +using GeoModelKernelUnits::cm; +using GeoModelKernelUnits::mm; +using GeoModelKernelUnits::deg; +using GeoTrf::Translate3D; +using GeoTrf::TranslateY3D; +using GeoTrf::TranslateZ3D; //Constructor @@ -599,7 +598,7 @@ GeoFullPhysVol* LArGeo::HECModuleConstruction::GetEnvelope() } // Serially install all slices and _regular_ absorbers into the depths - Genfun::Variable Index; + GeoGenfun::Variable Index; GeoXF::TRANSFUNCTION TS = TranslateY3D(-larShift)*GeoXF::Pow(TranslateZ3D(1.0),slicePositionZ + (absThickness+gapSize)*Index); GeoXF::TRANSFUNCTION TA = diff --git a/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECWheelConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECWheelConstruction.cxx index 5f961a8126cacd57ef2fd36411b3a33bc78ef755..ee64b7541b09f78d37fff68e3193709abe5c8159 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECWheelConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoHec/src/HECWheelConstruction.cxx @@ -32,10 +32,9 @@ #include "GeoModelKernel/GeoSerialTransformer.h" #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoXF.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Vector/Rotation.h" -#include "CLHEP/Units/PhysicalConstants.h" -#include "CLHEP/GenericFunctions/Variable.hh" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" +#include "GeoGenericFunctions/Variable.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -54,10 +53,10 @@ #include <iostream> -using CLHEP::cm; -using CLHEP::mm; -using CLHEP::deg; -using HepGeom::RotateZ3D; +using GeoModelKernelUnits::cm; +using GeoModelKernelUnits::mm; +using GeoModelKernelUnits::deg; +using GeoTrf::RotateZ3D; //Constructor @@ -251,17 +250,17 @@ GeoFullPhysVol* LArGeo::HECWheelConstruction::GetEnvelope() // Modules are numbered mirror-symmetric in pos/neg z-side! GeoSerialIdentifier *sIF = new GeoSerialIdentifier(0); - Genfun::Variable Index; + GeoGenfun::Variable Index; if (m_posZSide) { - Genfun::GENFUNCTION ModuleRotationAngle = -modulePhistart + moduleDeltaPhi*Index; + GeoGenfun::GENFUNCTION ModuleRotationAngle = -modulePhistart + moduleDeltaPhi*Index; GeoXF::TRANSFUNCTION t = GeoXF::Pow(RotateZ3D(1.0),ModuleRotationAngle); GeoSerialTransformer *sTF = new GeoSerialTransformer (moduleEnvelope,&t,moduleNumber); physiHECWheel->add(sIF); physiHECWheel->add(sTF); } else { //For the neg z-side have to build everything in the opposite sense from pos-z wheel. - Genfun::GENFUNCTION ModuleRotationAngle1 = -modulePhistart+180*deg-moduleDeltaPhi - moduleDeltaPhi*Index; + GeoGenfun::GENFUNCTION ModuleRotationAngle1 = -modulePhistart+180*deg-moduleDeltaPhi - moduleDeltaPhi*Index; GeoXF::TRANSFUNCTION t1 = GeoXF::Pow(RotateZ3D(1.0),ModuleRotationAngle1); GeoSerialTransformer *sTF1 = new GeoSerialTransformer (moduleEnvelope,&t1,moduleNumber); physiHECWheel->add(sIF); diff --git a/LArCalorimeter/LArGeoModel/LArGeoMiniFcal/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoMiniFcal/CMakeLists.txt index 13ef3387f2a6041734f1d26dee6d39b1d3f9154e..81a472885ca616e4db084826545d745e8c520c21 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoMiniFcal/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoMiniFcal/CMakeLists.txt @@ -10,21 +10,20 @@ atlas_depends_on_subdirs( PRIVATE Control/StoreGate Database/RDBAccessSvc DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel GaudiKernel ) # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( LArGeoMiniFcal src/*.cxx PUBLIC_HEADERS LArGeoMiniFcal - INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} + INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - DEFINITIONS ${CLHEP_DEFINITIONS} LINK_LIBRARIES ${CLHEP_LIBRARIES} StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} GeoModelKernel GaudiKernel ) + PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${GEOMODEL_LIBRARIES} GaudiKernel ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoMiniFcal/LArGeoMiniFcal/MiniFcalConstruction.h b/LArCalorimeter/LArGeoModel/LArGeoMiniFcal/LArGeoMiniFcal/MiniFcalConstruction.h index dededec39f83fe83f9ad0c96c71b4638a6272efc..4e9fcbaa9b0e972492536b80e36f567bdbd5d065 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoMiniFcal/LArGeoMiniFcal/MiniFcalConstruction.h +++ b/LArCalorimeter/LArGeoModel/LArGeoMiniFcal/LArGeoMiniFcal/MiniFcalConstruction.h @@ -2,10 +2,10 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef __MiniFcalConstruction_H__ -#define __MiniFcalConstruction_H__ +#ifndef LARGEOMINIFCAL_MINIFCALCONSTRUCTION_H +#define LARGEOMINIFCAL_MINIFCALCONSTRUCTION_H -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoModelKernel/GeoDefinitions.h" class GeoFullPhysVol; namespace LArGeo { @@ -18,16 +18,16 @@ namespace LArGeo { ~MiniFcalConstruction(); GeoFullPhysVol* GetEnvelope(); - const HepGeom::Transform3D& GetTopTransform(); + const GeoTrf::Transform3D& GetTopTransform(); private: - GeoFullPhysVol* m_physiMiniFcal; - HepGeom::Transform3D m_transform; - bool m_posZSide; + GeoFullPhysVol* m_physiMiniFcal; + GeoTrf::Transform3D m_transform; + bool m_posZSide; }; } // namespace LArGeo -#endif // __MiniFcalConstruction_H__ +#endif diff --git a/LArCalorimeter/LArGeoModel/LArGeoMiniFcal/src/MiniFcalConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoMiniFcal/src/MiniFcalConstruction.cxx index 8b346065986e2162bfbc7445dfcf3851fdd78e2e..ce0332a805de7e7b62697d707e967f671c562605 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoMiniFcal/src/MiniFcalConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoMiniFcal/src/MiniFcalConstruction.cxx @@ -19,7 +19,8 @@ #include "GeoModelKernel/GeoSerialTransformer.h" #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoIdentifierTag.h" -#include "CLHEP/GenericFunctions/Variable.hh" +#include "GeoModelKernel/Units.h" +#include "GeoGenericFunctions/Variable.h" #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -39,8 +40,8 @@ typedef std::map<int,int> MapNumToIndex; LArGeo::MiniFcalConstruction::MiniFcalConstruction(bool posZSide) - : m_physiMiniFcal(0) - , m_transform() + : m_physiMiniFcal(nullptr) + , m_transform(GeoTrf::Transform3D::Identity()) , m_posZSide(posZSide) { } @@ -53,7 +54,7 @@ GeoFullPhysVol* LArGeo::MiniFcalConstruction::GetEnvelope() { // Get message service, GeoModelSvc and RDBAccessSvc ISvcLocator* svcLocator = Gaudi::svcLocator(); - IMessageSvc* msgSvc(0); + IMessageSvc* msgSvc{nullptr}; StatusCode sc = svcLocator->service("MessageSvc", msgSvc, true); if(sc!=StatusCode::SUCCESS) @@ -62,21 +63,21 @@ GeoFullPhysVol* LArGeo::MiniFcalConstruction::GetEnvelope() MsgStream log(msgSvc, "LArGeo::MiniFcalConstruction"); log << MSG::DEBUG << "In MiniFcalConstruction GetEnvelope" << endmsg; - IRDBAccessSvc* pAccessSvc(0); + IRDBAccessSvc* pAccessSvc{nullptr}; sc=svcLocator->service("RDBAccessSvc",pAccessSvc); if(sc != StatusCode::SUCCESS) { log << MSG::ERROR <<"Cannot locate RDBAccessSvc!!" << endmsg; return 0; } - IGeoModelSvc* geoModelSvc(0); + IGeoModelSvc* geoModelSvc{nullptr}; sc = svcLocator->service ("GeoModelSvc",geoModelSvc); if (sc != StatusCode::SUCCESS) { log << MSG::ERROR <<"Cannot locate GeoModelSvc!!" << endmsg; return 0; } - StoreGateSvc* detStore(0); + StoreGateSvc* detStore{nullptr}; sc = svcLocator->service("DetectorStore", detStore, false); if(sc!=StatusCode::SUCCESS) { log << MSG::ERROR <<"Error in MiniFcalConstruction, cannot access DetectorStore" << endmsg; @@ -126,9 +127,9 @@ GeoFullPhysVol* LArGeo::MiniFcalConstruction::GetEnvelope() //_________ Define geometry __________________________ //__Copper envelope - double halfLength = envParameters->getDouble("DZ")*CLHEP::mm; - double Router = envParameters->getDouble("RMAX")*CLHEP::mm; - double Rinner = envParameters->getDouble("RMIN")*CLHEP::mm; + double halfLength = envParameters->getDouble("DZ")*GeoModelKernelUnits::mm; + double Router = envParameters->getDouble("RMAX")*GeoModelKernelUnits::mm; + double Rinner = envParameters->getDouble("RMIN")*GeoModelKernelUnits::mm; // Buld a Cu block and place layers into that... GeoTubs *solidMiniFcal = new GeoTubs(Rinner, Router, halfLength, 0., 2.*M_PI); // Big outer radius @@ -164,15 +165,15 @@ GeoFullPhysVol* LArGeo::MiniFcalConstruction::GetEnvelope() for(unsigned i=0; i<recRings->size(); ++i) ringIndexes[(*recRings)[i]->getInt("RINGNUM")] = i; - double L1 = (*recCommon)[0]->getDouble("ABSORBERTHICKNESS")*CLHEP::mm; // Cu plates of fixed thickness - double LayerThick = (*recCommon)[0]->getDouble("LAYERTHICKNESS")*CLHEP::mm; // Layers between the Cu plates - double WaferThick = (*recCommon)[0]->getDouble("WAFERTHICKNESS")*CLHEP::mm; // Diamond wafers - thickness - double WaferSize = (*recCommon)[0]->getDouble("WAFERSIZEX")*CLHEP::mm; // Square Daimond wafers + double L1 = (*recCommon)[0]->getDouble("ABSORBERTHICKNESS")*GeoModelKernelUnits::mm; // Cu plates of fixed thickness + double LayerThick = (*recCommon)[0]->getDouble("LAYERTHICKNESS")*GeoModelKernelUnits::mm; // Layers between the Cu plates + double WaferThick = (*recCommon)[0]->getDouble("WAFERTHICKNESS")*GeoModelKernelUnits::mm; // Diamond wafers - thickness + double WaferSize = (*recCommon)[0]->getDouble("WAFERSIZEX")*GeoModelKernelUnits::mm; // Square Daimond wafers int NLayers = (*recCommon)[0]->getInt("NLAYERS"); // Have 11 gaps and 12 Cu plates - log << MSG::DEBUG << "=====> Build a Mini FCal of length " << 2.*halfLength << " CLHEP::mm and " - << NLayers << " layers of " << LayerThick << " CLHEP::mm thickness each; place them every " - << L1 << " CLHEP::mm " << endmsg; + log << MSG::DEBUG << "=====> Build a Mini FCal of length " << 2.*halfLength << " GeoModelKernelUnits::mm and " + << NLayers << " layers of " << LayerThick << " GeoModelKernelUnits::mm thickness each; place them every " + << L1 << " GeoModelKernelUnits::mm " << endmsg; // Make the Layers (all the same) - out of Feldspar (perhaps close to ceramics) std::string layerName = moduleName + "::Layer" ; @@ -181,7 +182,7 @@ GeoFullPhysVol* LArGeo::MiniFcalConstruction::GetEnvelope() //-- Construct wafers and arrange them in rings inside the ceramic layers. std::string waferName = moduleName + "::Wafer" ; - GeoBox* solidWafer = new GeoBox( (WaferSize/2.)*CLHEP::mm, (WaferSize/2.)*CLHEP::mm, (WaferThick/2.)*CLHEP::mm); + GeoBox* solidWafer = new GeoBox( (WaferSize/2.)*GeoModelKernelUnits::mm, (WaferSize/2.)*GeoModelKernelUnits::mm, (WaferThick/2.)*GeoModelKernelUnits::mm); GeoLogVol* logiWafer = new GeoLogVol(waferName,solidWafer,Diamond); GeoPhysVol* physiWafer = new GeoPhysVol(logiWafer); @@ -204,12 +205,12 @@ GeoFullPhysVol* LArGeo::MiniFcalConstruction::GetEnvelope() GeoPhysVol* physiLayer = new GeoPhysVol(logiLayer); // Construct layer contents - Genfun::Variable Index; + GeoGenfun::Variable Index; double rwafer(0.); int nwafers(0); double phishift = (*recLayers)[layerIndexes[j]]->getDouble("PHISHIFT"); - double rshift = (*recLayers)[layerIndexes[j]]->getDouble("RSHIFT")*CLHEP::mm; + double rshift = (*recLayers)[layerIndexes[j]]->getDouble("RSHIFT")*GeoModelKernelUnits::mm; for (unsigned int i=0; i<recRings->size(); i++){ // loop over the number of wafer rings if(ringIndexes.find(i)==ringIndexes.end()) { @@ -228,18 +229,18 @@ GeoFullPhysVol* LArGeo::MiniFcalConstruction::GetEnvelope() double wAngle = 2.*M_PI/nwafers; // for the negative z-side have to add pi to get things right: - Genfun::GENFUNCTION RotationAngle = activate*(M_PI) + phisense * (phishift + wAngle/2. + wAngle*Index) ; + GeoGenfun::GENFUNCTION RotationAngle = activate*(M_PI) + phisense * (phishift + wAngle/2. + wAngle*Index) ; GeoXF::TRANSFUNCTION t = - GeoXF::Pow(HepGeom::RotateZ3D(1.0),RotationAngle) * HepGeom::TranslateX3D(rshift+rwafer+5.*CLHEP::mm) * HepGeom::TranslateZ3D(-LayerThick/2.+ WaferThick/2.) ; + GeoXF::Pow(GeoTrf::RotateZ3D(1.0),RotationAngle) * GeoTrf::TranslateX3D(rshift+rwafer+5.*GeoModelKernelUnits::mm) * GeoTrf::TranslateZ3D(-LayerThick/2.+ WaferThick/2.) ; GeoSerialTransformer *sTF = new GeoSerialTransformer (physiWafer,&t,nwafers); physiLayer->add(sIF); physiLayer->add(sTF); } log << MSG::DEBUG << "- Working on layer " << j << " now. Place it at " - << ( -halfLength + L1 + double(j)*( L1 + LayerThick) + LayerThick/2. ) << " CLHEP::mm " << endmsg; + << ( -halfLength + L1 + double(j)*( L1 + LayerThick) + LayerThick/2. ) << " GeoModelKernelUnits::mm " << endmsg; m_physiMiniFcal->add(new GeoIdentifierTag(j)); - GeoTransform *xf = new GeoTransform(HepGeom::TranslateZ3D( -halfLength + L1 + double(j)*( L1 + LayerThick) + LayerThick/2. )); + GeoTransform *xf = new GeoTransform(GeoTrf::TranslateZ3D( -halfLength + L1 + double(j)*( L1 + LayerThick) + LayerThick/2. )); m_physiMiniFcal->add(xf); m_physiMiniFcal->add(physiLayer); } @@ -247,14 +248,14 @@ GeoFullPhysVol* LArGeo::MiniFcalConstruction::GetEnvelope() //________ Construct top transform object _____________ - m_transform = HepGeom::TranslateZ3D(envParameters->getDouble("ZPOS")*CLHEP::mm); + m_transform = GeoTrf::TranslateZ3D(envParameters->getDouble("ZPOS")*GeoModelKernelUnits::mm); // Layers should be fully equipeed now. Put them into MiniFcal return m_physiMiniFcal; } -const HepGeom::Transform3D& LArGeo::MiniFcalConstruction::GetTopTransform() +const GeoTrf::Transform3D& LArGeo::MiniFcalConstruction::GetTopTransform() { return m_transform; } diff --git a/LArCalorimeter/LArGeoModel/LArGeoTBBarrel/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoTBBarrel/CMakeLists.txt index 5e5578b02c6f7d024aae129a7b118595cb7e488f..14045bc7846896ee8e0adabe005188b273dd2ab7 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoTBBarrel/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoTBBarrel/CMakeLists.txt @@ -6,9 +6,7 @@ atlas_subdir( LArGeoTBBarrel ) # Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - DetectorDescription/GeoModel/GeoModelKernel - PRIVATE +atlas_depends_on_subdirs( PRIVATE Control/StoreGate DetectorDescription/GeoModel/GeoModelInterfaces DetectorDescription/GeoModel/GeoModelUtilities @@ -16,14 +14,14 @@ atlas_depends_on_subdirs( PUBLIC LArCalorimeter/LArGeoModel/LArGeoBarrel ) # External dependencies: -find_package( CLHEP ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( LArGeoTBBarrel src/*.cxx PUBLIC_HEADERS LArGeoTBBarrel - PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES GeoModelKernel StoreGateLib SGtests - PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} GeoModelUtilities GaudiKernel LArGeoBarrel ) + PRIVATE_INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${GEOMODEL_LIBRARIES} StoreGateLib SGtests + PRIVATE_LINK_LIBRARIES ${EIGEN_LIBRARIES} GeoModelUtilities GaudiKernel LArGeoBarrel ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoTBBarrel/src/TBBarrelCryostatConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoTBBarrel/src/TBBarrelCryostatConstruction.cxx index 5a169e4ee3256fd54378920f2693cc1e0e712d6e..38752f5b5b5cd7948a0869736bdd8c7ee92f4365 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoTBBarrel/src/TBBarrelCryostatConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoTBBarrel/src/TBBarrelCryostatConstruction.cxx @@ -20,6 +20,8 @@ #include "GeoModelKernel/GeoPcon.h" #include "GeoModelKernel/GeoTubs.h" #include "GeoModelKernel/GeoTransform.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "StoreGate/StoreGateSvc.h" @@ -28,10 +30,6 @@ #include "GeoModelUtilities/StoredPhysVol.h" #include "GeoModelUtilities/StoredAlignX.h" -// For transforms: -#include "CLHEP/Geometry/Transform3D.h" -// For units: -#include "CLHEP/Units/PhysicalConstants.h" #include <string> #include <cmath> @@ -126,14 +124,14 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() throw std::runtime_error("Error in TBBarrelCryostatConstruction, oxygen not found."); } - GeoMaterial *Vacuum = new GeoMaterial("Vacuum",CLHEP::universe_mean_density ); + GeoMaterial *Vacuum = new GeoMaterial("Vacuum",GeoModelKernelUnits::universe_mean_density ); Vacuum->add(Hydrogen,1.); Vacuum->lock(); // define material for FOAM (C5H8O2) // latest density value from P.Puzo (october 2003) // - double density = 0.058*CLHEP::g/CLHEP::cm3; + double density = 0.058*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3; GeoMaterial* Foam = new GeoMaterial("Foam", density); double fraction=8*1.01/(5*12.01+8*1.01+2.*16.0); Foam->add(Hydrogen,fraction); @@ -166,7 +164,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() std::cout << " Plane zp/ri/ro " << zp[i] << " " << ri[i] << " " << ro[i] << std::endl; } #endif - GeoPcon* Em_pcone = new GeoPcon(-25.*CLHEP::deg,50.*CLHEP::deg); + GeoPcon* Em_pcone = new GeoPcon(-25.*GeoModelKernelUnits::deg,50.*GeoModelKernelUnits::deg); for (int i=0; i < 3; i++) Em_pcone->addPlane(zp[i],ri[i],ro[i]); const GeoLogVol* cryoMotherLogical = @@ -177,20 +175,20 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() // Cryostat geometry - double Cryo_Distz = 483.5*CLHEP::cm; // total size in z - double Cryo_z0 = 103.0*CLHEP::cm; // eta=0 position wrt cryosta edge at z<0 + double Cryo_Distz = 483.5*GeoModelKernelUnits::cm; // total size in z + double Cryo_z0 = 103.0*GeoModelKernelUnits::cm; // eta=0 position wrt cryosta edge at z<0 - double DeltaR_cold = 4.1*CLHEP::cm; // thickness cold vessel before calo - double DeltaRout_cold = 5.0*CLHEP::cm; // thickness cold vessel after calo + double DeltaR_cold = 4.1*GeoModelKernelUnits::cm; // thickness cold vessel before calo + double DeltaRout_cold = 5.0*GeoModelKernelUnits::cm; // thickness cold vessel after calo - double DeltaR_warm= 3.86*CLHEP::cm; // thickness warm vessel before calo - double DeltaRout_warm = 4.0*CLHEP::cm; // thickness warm vessel after calo + double DeltaR_warm= 3.86*GeoModelKernelUnits::cm; // thickness warm vessel before calo + double DeltaRout_warm = 4.0*GeoModelKernelUnits::cm; // thickness warm vessel after calo - double DeltaRout_vac = 3.0*CLHEP::cm; // vacuum space cryo after calo + double DeltaRout_vac = 3.0*GeoModelKernelUnits::cm; // vacuum space cryo after calo - double Dz_end_warm = 7.0*CLHEP::cm; // thickness of end plate at high z - double Dz_end_vac = 8.0*CLHEP::cm; - double Dz_end_cold = 7.0*CLHEP::cm; + double Dz_end_warm = 7.0*GeoModelKernelUnits::cm; // thickness of end plate at high z + double Dz_end_vac = 8.0*GeoModelKernelUnits::cm; + double Dz_end_cold = 7.0*GeoModelKernelUnits::cm; double Dz_end_tot = Dz_end_warm + Dz_end_vac + Dz_end_cold; @@ -209,13 +207,13 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() double Rmin_mother = Cryo_Xcent-Cryo_Rmax_W; double Rmax_mother = 2270.; - double Phi_Min = -5.0 * CLHEP::deg; - double Phi_Span = 32.5 * CLHEP::deg; + double Phi_Min = -5.0 * GeoModelKernelUnits::deg; + double Phi_Span = 32.5 * GeoModelKernelUnits::deg; // GU 10/09/2004 // For cryostat mother volume, sligthly larger phi range // to avoid clash with front cryostat - double Phi_Min_Moth=-9.0*CLHEP::deg; - double Phi_Span_Moth=38.5*CLHEP::deg; + double Phi_Min_Moth=-9.0*GeoModelKernelUnits::deg; + double Phi_Span_Moth=38.5*GeoModelKernelUnits::deg; // ----------------------------------------------------------------- // Mother volume for Cryostat, filled with foam @@ -227,8 +225,8 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() std::cout << " (matter = foam) " << std::endl; std::cout << " Rmin/Rmax " << Rmin_mother << " " << Rmax_mother << std::endl; std::cout << " Dz/2 " << Cryo_Distz/2. << std::endl; - std::cout << " PhiMin, Span " << Phi_Min_Moth*(1./CLHEP::deg) << " " - << Phi_Span_Moth*(1./CLHEP::deg) << std::endl; + std::cout << " PhiMin, Span " << Phi_Min_Moth*(1./GeoModelKernelUnits::deg) << " " + << Phi_Span_Moth*(1./GeoModelKernelUnits::deg) << std::endl; #endif GeoTubs* Cent_tube = new GeoTubs(Rmin_mother, @@ -239,11 +237,11 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() GeoLogVol* Cent_log = new GeoLogVol(baseName+"Mother",Cent_tube,Foam); // position in Pcon mother envelope (which has Atlas reference frame) double zpos = Cryo_Distz/2.-Cryo_z0; - double phi = -1.*360.*CLHEP::deg/16/2.; // to have x axis in middle of volume + double phi = -1.*360.*GeoModelKernelUnits::deg/16/2.; // to have x axis in middle of volume GeoPhysVol* Cent_phys = new GeoPhysVol(Cent_log); - cryoMotherPhysical->add(new GeoTransform(HepGeom::RotateZ3D(phi))); - cryoMotherPhysical->add(new GeoTransform(HepGeom::TranslateZ3D(zpos))); + cryoMotherPhysical->add(new GeoTransform(GeoTrf::RotateZ3D(phi))); + cryoMotherPhysical->add(new GeoTransform(GeoTrf::TranslateZ3D(zpos))); cryoMotherPhysical->add(Cent_phys); // ---------------------------------------------------------------------- @@ -257,7 +255,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() std::cout << " " << std::endl; std::cout << " ** Cryostat before LAr (shape=Tubs)" << std::endl; std::cout << " center in x = " << Cryo_Xcent << std::endl; - std::cout << " angle 180-11 CLHEP::deg, span = 14 CLHEP::deg" << std::endl; + std::cout << " angle 180-11 GeoModelKernelUnits::deg, span = 14 GeoModelKernelUnits::deg" << std::endl; std::cout << " R warm vessel " << Cryo_Rmin_W << " " << Cryo_Rmax_W << std::endl; std::cout << " R vacuum " << Cryo_Rmax_C << " " @@ -272,15 +270,15 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() Cryo_Rmin_W, Cryo_Rmax_W, (Cryo_Distz-Dz_end_tot)/2., - (180.-11.)*CLHEP::deg, - 14.*CLHEP::deg); + (180.-11.)*GeoModelKernelUnits::deg, + 14.*GeoModelKernelUnits::deg); GeoLogVol* CryoW_log = new GeoLogVol(baseName+"WarmTube", CryoW_tube, Aluminium); GeoPhysVol* CryoW_phys = new GeoPhysVol(CryoW_log); - Cent_phys->add(new GeoTransform(HepGeom::Translate3D(Cryo_Xcent, 0., -Dz_end_tot/2.))); + Cent_phys->add(new GeoTransform(GeoTrf::Translate3D(Cryo_Xcent, 0., -Dz_end_tot/2.))); Cent_phys->add(CryoW_phys); // Waccum between warm and cold vessels @@ -289,15 +287,15 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() Cryo_Rmax_C, Cryo_Rmin_W, (Cryo_Distz-Dz_end_tot)/2., - (180.-11.)*CLHEP::deg, - 14.*CLHEP::deg); + (180.-11.)*GeoModelKernelUnits::deg, + 14.*GeoModelKernelUnits::deg); GeoLogVol *CryoV_log = new GeoLogVol(baseName+"VacTube", CryoV_tube, Vacuum); GeoPhysVol* CryoV_phys = new GeoPhysVol(CryoV_log); - Cent_phys->add(new GeoTransform(HepGeom::Translate3D(Cryo_Xcent, 0., -Dz_end_tot/2.))); + Cent_phys->add(new GeoTransform(GeoTrf::Translate3D(Cryo_Xcent, 0., -Dz_end_tot/2.))); Cent_phys->add(CryoV_phys); // Cold vessel @@ -306,15 +304,15 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() Cryo_Rmin_C, Cryo_Rmax_C, (Cryo_Distz-Dz_end_tot)/2., - (180.-11.)*CLHEP::deg, - 14.*CLHEP::deg); + (180.-11.)*GeoModelKernelUnits::deg, + 14.*GeoModelKernelUnits::deg); GeoLogVol *CryoC_log = new GeoLogVol(baseName+"ColdTube", CryoC_tube, Aluminium); GeoPhysVol* CryoC_phys = new GeoPhysVol(CryoC_log); - Cent_phys->add(new GeoTransform(HepGeom::Translate3D(Cryo_Xcent, 0., -Dz_end_tot/2.))); + Cent_phys->add(new GeoTransform(GeoTrf::Translate3D(Cryo_Xcent, 0., -Dz_end_tot/2.))); Cent_phys->add(CryoC_phys); #endif @@ -326,7 +324,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() // cold vessel of the cryostat after calo //----------------------------------------------------------------------- - double LAr_inner_radius=141.00*CLHEP::cm; // min radius of PS + double LAr_inner_radius=141.00*GeoModelKernelUnits::cm; // min radius of PS double LAr_outer_radius=Rmax_mother-DeltaRout_warm-DeltaRout_cold -DeltaRout_vac; @@ -337,8 +335,8 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() std::cout << " *** LAr volume (tubs put in foam)" << std::endl; std::cout << "Rmin/Rmax " << LAr_inner_radius << " " << LAr_outer_radius << std::endl; - std::cout << "PhiMin,Span " << Phi_Min*(1./CLHEP::deg) << " " - << Phi_Span*(1./CLHEP::deg) << std::endl; + std::cout << "PhiMin,Span " << Phi_Min*(1./GeoModelKernelUnits::deg) << " " + << Phi_Span*(1./GeoModelKernelUnits::deg) << std::endl; std::cout << "DeltaZ/2 " << LAr_z_max/2. << std::endl; std::cout << "Position in z in mother " << (LAr_z_max-Cryo_Distz)/2. << std::endl; #endif @@ -355,7 +353,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() GeoPhysVol* moth_phys = new GeoPhysVol(moth_log); - Cent_phys->add(new GeoTransform(HepGeom::TranslateZ3D((LAr_z_max-Cryo_Distz)/2.))); + Cent_phys->add(new GeoTransform(GeoTrf::TranslateZ3D((LAr_z_max-Cryo_Distz)/2.))); Cent_phys->add(moth_phys); // Adjust LAR volumes at the end of foam, such as to have @@ -371,27 +369,27 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() // 5.5mm at mid bottom and 0.5 mm at bottom // modified 17-Aug-05 -// the measured thickness are at 0, 22.5/4, 22.5/2, 3*22.5/4 and 22.5 CLHEP::deg +// the measured thickness are at 0, 22.5/4, 22.5/2, 3*22.5/4 and 22.5 GeoModelKernelUnits::deg // so define the regions in phi to be better centered on the measurements // and to cover: // - 0 to 22.5/8 deg = bottom thickness => need 9.5 - 9mm = 0.5mm Ar // - 22.5/8 to 3*22.5/8 deg = mid bottom => need 7.5-2mm = 5.5mm Ar -// - 3*22.5/8 to 5*22.5/8 CLHEP::deg = mid => need 14.5-9 = 5.5 CLHEP::mm Ar +// - 3*22.5/8 to 5*22.5/8 GeoModelKernelUnits::deg = mid => need 14.5-9 = 5.5 GeoModelKernelUnits::mm Ar // - 5*22.5/8 to 7*22.5/8 deg = mid top => need 12.5-2mm = 10.5mm Ar -// - 7*22.5/8 to 22.5/8 CLHEP::deg = top => need 18.5-9 = 9.5 CLHEP::mm Ar +// - 7*22.5/8 to 22.5/8 GeoModelKernelUnits::deg = top => need 18.5-9 = 9.5 GeoModelKernelUnits::mm Ar #ifdef BUILD_LARFOAM - double delta_LAr[5]={0.5*CLHEP::mm,5.5*CLHEP::mm,5.5*CLHEP::mm,10.5*CLHEP::mm,9.5*CLHEP::mm}; - double Phi1[5]={0.*CLHEP::deg,22.5/8.*CLHEP::deg,3.*22.5/8*CLHEP::deg,5.*22.5/8*CLHEP::deg,7.*22.5/8*CLHEP::deg}; - double Delta_phi[5]={22.5/8*CLHEP::deg, 2.*22.5/8.*CLHEP::deg,2.*22.5/8.*CLHEP::deg,2.*22.5/8.*CLHEP::deg,22.5/8.*CLHEP::deg}; + double delta_LAr[5]={0.5*GeoModelKernelUnits::mm,5.5*GeoModelKernelUnits::mm,5.5*GeoModelKernelUnits::mm,10.5*GeoModelKernelUnits::mm,9.5*GeoModelKernelUnits::mm}; + double Phi1[5]={0.*GeoModelKernelUnits::deg,22.5/8.*GeoModelKernelUnits::deg,3.*22.5/8*GeoModelKernelUnits::deg,5.*22.5/8*GeoModelKernelUnits::deg,7.*22.5/8*GeoModelKernelUnits::deg}; + double Delta_phi[5]={22.5/8*GeoModelKernelUnits::deg, 2.*22.5/8.*GeoModelKernelUnits::deg,2.*22.5/8.*GeoModelKernelUnits::deg,2.*22.5/8.*GeoModelKernelUnits::deg,22.5/8.*GeoModelKernelUnits::deg}; // GU 08-dec-2005 // additionnal LAr fudged before presampler to get better agreement // waiting for Rhoacell measurement to know if this is reasonnable or not // this should be now considered as a systematics // 25mm LAr ~ 0.18 X0 -// double fudge_lar_gap = 25.*CLHEP::mm; +// double fudge_lar_gap = 25.*GeoModelKernelUnits::mm; // GU 28--feb-2006 removed this fudge 25mm, not supported by measurements of Rohacell for (int ilar=0;ilar<5;ilar++) { @@ -400,7 +398,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() #ifdef DEBUG_GEO std::cout << " Ar additionnal volume before PS " << r1 << " " - << r2 << " " << Phi1[ilar]*(1./CLHEP::deg) << " " << Delta_phi[ilar]*(1./CLHEP::deg) << std::endl; + << r2 << " " << Phi1[ilar]*(1./GeoModelKernelUnits::deg) << " " << Delta_phi[ilar]*(1./GeoModelKernelUnits::deg) << std::endl; #endif GeoTubs* lar_tube = new GeoTubs(r1, @@ -412,7 +410,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() GeoLogVol* lar_log = new GeoLogVol(baseName+"LAr2",lar_tube,LAr); GeoPhysVol* lar_phys = new GeoPhysVol(lar_log); - Cent_phys->add(new GeoTransform(HepGeom::TranslateZ3D((LAr_z_max-Cryo_Distz)/2.))); + Cent_phys->add(new GeoTransform(GeoTrf::TranslateZ3D((LAr_z_max-Cryo_Distz)/2.))); Cent_phys->add(lar_phys); } @@ -421,7 +419,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() // Outer support rings: 6 steel rings, starting just // after Barrel volume (G10 bars) (r=2003.6) // DZ=80mm for DR=12mm, then DZ=10mm for DR=757mm then DZ=80mm for DR=12mm -// at locations z=397,805,1255,1750,2316,2868 CLHEP::mm +// at locations z=397,805,1255,1750,2316,2868 GeoModelKernelUnits::mm #ifdef BUILD_SUPPORTRING double R_ring = 2003.6; @@ -478,11 +476,11 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() std::cout << " Position ring in LAr mother volume at z = " << Zcd << " (z atlas= " << zring[iring] << std::endl; #endif - moth_phys->add(new GeoTransform(HepGeom::TranslateZ3D(Zcd))); + moth_phys->add(new GeoTransform(GeoTrf::TranslateZ3D(Zcd))); moth_phys->add(ring1_phys); - moth_phys->add(new GeoTransform(HepGeom::TranslateZ3D(Zcd))); + moth_phys->add(new GeoTransform(GeoTrf::TranslateZ3D(Zcd))); moth_phys->add(ring2_phys); - moth_phys->add(new GeoTransform(HepGeom::TranslateZ3D(Zcd))); + moth_phys->add(new GeoTransform(GeoTrf::TranslateZ3D(Zcd))); moth_phys->add(ring3_phys); } #endif @@ -510,7 +508,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() Phi_Span); GeoLogVol* CryoC2_log = new GeoLogVol(baseName+"ColdTube2",CryoC2_tube,Aluminium); GeoPhysVol* CryoC2_phys = new GeoPhysVol(CryoC2_log); - Cent_phys->add(new GeoTransform(HepGeom::TranslateZ3D(-Dz_end_tot/2.))); + Cent_phys->add(new GeoTransform(GeoTrf::TranslateZ3D(-Dz_end_tot/2.))); Cent_phys->add(CryoC2_phys); // vacuum between warn and cold vessel @@ -527,7 +525,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() Phi_Span); GeoLogVol* CryoV2_log = new GeoLogVol(baseName+"VacTube2",CryoV2_tube,Vacuum); GeoPhysVol* CryoV2_phys = new GeoPhysVol(CryoV2_log); - Cent_phys->add(new GeoTransform(HepGeom::TranslateZ3D(-Dz_end_tot/2.))); + Cent_phys->add(new GeoTransform(GeoTrf::TranslateZ3D(-Dz_end_tot/2.))); Cent_phys->add(CryoV2_phys); // warm vessel @@ -544,7 +542,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() Phi_Span); GeoLogVol* CryoW2_log = new GeoLogVol(baseName+"WarmTube2",CryoW2_tube,Aluminium); GeoPhysVol* CryoW2_phys = new GeoPhysVol(CryoW2_log); - Cent_phys->add(new GeoTransform(HepGeom::TranslateZ3D(-Dz_end_tot/2.))); + Cent_phys->add(new GeoTransform(GeoTrf::TranslateZ3D(-Dz_end_tot/2.))); Cent_phys->add(CryoW2_phys); #endif @@ -570,7 +568,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() #ifdef DEBUG_GEO std::cout << " position in mother at z " << zwarm << std::endl; #endif - Cent_phys->add(new GeoTransform(HepGeom::TranslateZ3D(zwarm))); + Cent_phys->add(new GeoTransform(GeoTrf::TranslateZ3D(zwarm))); Cent_phys->add(CryoEndW_phys); // vaccum part @@ -591,7 +589,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() #ifdef DEBUG_GEO std::cout << " position in mother at z " << zvac << std::endl; #endif - Cent_phys->add(new GeoTransform(HepGeom::TranslateZ3D(zvac))); + Cent_phys->add(new GeoTransform(GeoTrf::TranslateZ3D(zvac))); Cent_phys->add(CryoEndV_phys); // cold vessel @@ -612,7 +610,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() #ifdef DEBUG_GEO std::cout << " position in mother at z " << zcold << std::endl; #endif - Cent_phys->add(new GeoTransform(HepGeom::TranslateZ3D(zcold))); + Cent_phys->add(new GeoTransform(GeoTrf::TranslateZ3D(zcold))); Cent_phys->add(CryoEndC_phys); #endif @@ -638,7 +636,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() #endif if (barrelEnvelope !=0) { - moth_phys->add(new GeoTransform(HepGeom::TranslateZ3D(Zcd))); + moth_phys->add(new GeoTransform(GeoTrf::TranslateZ3D(Zcd))); moth_phys->add(barrelEnvelope); } #endif @@ -655,10 +653,10 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() // Zcd = 1582.5-LAr_z_max/2.+Cryo_z0; // new value of PS mother lenght -// Zcd = 1550.0*CLHEP::mm-LAr_z_max/2.+Cryo_z0; +// Zcd = 1550.0*GeoModelKernelUnits::mm-LAr_z_max/2.+Cryo_z0; // also the PS is shifted by 3mm to start at z=3mm in Atlas equivalent frame - double PresamplerMother_length=1549.*CLHEP::mm; - double presamplerShift = 3.*CLHEP::mm; + double PresamplerMother_length=1549.*GeoModelKernelUnits::mm; + double presamplerShift = 3.*GeoModelKernelUnits::mm; Zcd = presamplerShift+PresamplerMother_length-LAr_z_max/2.+Cryo_z0; #ifdef DEBUG_GEO @@ -667,7 +665,7 @@ GeoFullPhysVol* LArGeo::TBBarrelCryostatConstruction::GetEnvelope() #endif if (barrelPSEnvelope !=0) { - moth_phys->add(new GeoTransform(HepGeom::TranslateZ3D(Zcd))); + moth_phys->add(new GeoTransform(GeoTrf::TranslateZ3D(Zcd))); moth_phys->add(barrelPSEnvelope); StoredPhysVol *sPhysVol = new StoredPhysVol(barrelPSEnvelope); StatusCode status=detStore->record(sPhysVol,"PRESAMPLER_B_POS"); diff --git a/LArCalorimeter/LArGeoModel/LArGeoTBEC/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArGeoTBEC/CMakeLists.txt index 67d9e242c93af854964481bf179966b75933c065..4be01f44827e4e7025ba112ebd0e354fb2a1be4e 100644 --- a/LArCalorimeter/LArGeoModel/LArGeoTBEC/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArGeoTBEC/CMakeLists.txt @@ -7,7 +7,6 @@ atlas_subdir( LArGeoTBEC ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities LArCalorimeter/LArGeoModel/LArReadoutGeometry PRIVATE @@ -23,20 +22,20 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( LArGeoTBECLib src/*.cxx PUBLIC_HEADERS LArGeoTBEC - PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES GeoModelKernel GeoModelUtilities LArReadoutGeometry StoreGateLib SGtests + PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${GEOMODEL_LIBRARIES} GeoModelUtilities LArReadoutGeometry StoreGateLib SGtests PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} GeoSpecialShapes GaudiKernel LArG4RunControl LArGeoCode LArGeoEndcap LArGeoRAL ) atlas_add_component( LArGeoTBEC src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} LINK_LIBRARIES LArGeoTBECLib ) diff --git a/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/CryostatConstructionTBEC.cxx b/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/CryostatConstructionTBEC.cxx index c916c395c39102731ca7fb7b6e0e1364ad5d08d3..693d4358da90ae2d941a5ab72299fdb79f83e057 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/CryostatConstructionTBEC.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/CryostatConstructionTBEC.cxx @@ -22,17 +22,14 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" -// For transforms: -#include "CLHEP/Geometry/Transform3D.h" -// For units: -#include "CLHEP/Units/PhysicalConstants.h" - #include "StoreGate/StoreGateSvc.h" #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" @@ -118,7 +115,7 @@ GeoVFullPhysVol* LArGeo::CryostatConstructionTBEC::GetEnvelope() // accordingly. std::string cryoMotherName = baseName + "::MotherVolume"; - GeoBox* cryoMotherShape = new GeoBox( 152.*CLHEP::cm, 195.*CLHEP::cm, 60.09*CLHEP::cm ); + GeoBox* cryoMotherShape = new GeoBox( 152.*GeoModelKernelUnits::cm, 195.*GeoModelKernelUnits::cm, 60.09*GeoModelKernelUnits::cm ); const GeoLogVol* cryoMotherLogical = new GeoLogVol( cryoMotherName, cryoMotherShape, Air ); //GeoFullPhysVol* m_cryoEnvelopePhysical = new GeoFullPhysVol( cryoMotherLogical ); m_cryoEnvelopePhysical = new GeoFullPhysVol( cryoMotherLogical ); @@ -126,126 +123,126 @@ GeoVFullPhysVol* LArGeo::CryostatConstructionTBEC::GetEnvelope() // Cryostat walls std::string ExtWallName = baseName + "::ExternalWarmWall"; - GeoBox* ExtWallShape = new GeoBox( 152.*CLHEP::cm, 195.*CLHEP::cm, 60.09*CLHEP::cm ); + GeoBox* ExtWallShape = new GeoBox( 152.*GeoModelKernelUnits::cm, 195.*GeoModelKernelUnits::cm, 60.09*GeoModelKernelUnits::cm ); const GeoLogVol* ExtWallLogical = new GeoLogVol( ExtWallName, ExtWallShape, Al ); GeoPhysVol* ExtWallPhysical = new GeoPhysVol( ExtWallLogical ); std::string WallName = baseName + "::WarmWallInterval"; - GeoBox* WallShape = new GeoBox( ( 152. - 0.8 )*CLHEP::cm, ( 195. - 0.8 )*CLHEP::cm, ( 60.09 - 0.8 )*CLHEP::cm ); + GeoBox* WallShape = new GeoBox( ( 152. - 0.8 )*GeoModelKernelUnits::cm, ( 195. - 0.8 )*GeoModelKernelUnits::cm, ( 60.09 - 0.8 )*GeoModelKernelUnits::cm ); const GeoLogVol* WallLogical = new GeoLogVol( WallName, WallShape, Vacuum ); GeoPhysVol* WallPhysical = new GeoPhysVol( WallLogical ); std::string IntWallName = baseName + "::InternalWarmWall"; - GeoBox* IntWallShape = new GeoBox( 148.4*CLHEP::cm, 191.6*CLHEP::cm, 46.8*CLHEP::cm ); + GeoBox* IntWallShape = new GeoBox( 148.4*GeoModelKernelUnits::cm, 191.6*GeoModelKernelUnits::cm, 46.8*GeoModelKernelUnits::cm ); const GeoLogVol* IntWallLogical = new GeoLogVol( IntWallName, IntWallShape, Al ); GeoPhysVol* IntWallPhysical = new GeoPhysVol( IntWallLogical ); std::string VacuumName = baseName + "::Vacuum"; - GeoBox* VacuumShape = new GeoBox( ( 148.4 - 0.8 )*CLHEP::cm, ( 191.6 - 0.8 )*CLHEP::cm, ( 46.8 - 0.8 )*CLHEP::cm ); + GeoBox* VacuumShape = new GeoBox( ( 148.4 - 0.8 )*GeoModelKernelUnits::cm, ( 191.6 - 0.8 )*GeoModelKernelUnits::cm, ( 46.8 - 0.8 )*GeoModelKernelUnits::cm ); const GeoLogVol* VacuumLogical = new GeoLogVol( VacuumName, VacuumShape, Vacuum ); GeoPhysVol* VacuumPhysical = new GeoPhysVol( VacuumLogical ); std::string ColdWallName = baseName + "::ColdWall"; - GeoBox* ColdWallShape = new GeoBox( 142.5*CLHEP::cm, 184.85*CLHEP::cm, 38.*CLHEP::cm ); + GeoBox* ColdWallShape = new GeoBox( 142.5*GeoModelKernelUnits::cm, 184.85*GeoModelKernelUnits::cm, 38.*GeoModelKernelUnits::cm ); const GeoLogVol* ColdWallLogical = new GeoLogVol( ColdWallName, ColdWallShape, Iron ); GeoPhysVol* ColdWallPhysical = new GeoPhysVol( ColdWallLogical ); std::string LArName = baseName + "::LiquidArgon"; - GeoBox* LArShape = new GeoBox( ( 142.5 - .5 )*CLHEP::cm, ( 184.85 - .5 )*CLHEP::cm, ( 38. - .5 )*CLHEP::cm ); + GeoBox* LArShape = new GeoBox( ( 142.5 - .5 )*GeoModelKernelUnits::cm, ( 184.85 - .5 )*GeoModelKernelUnits::cm, ( 38. - .5 )*GeoModelKernelUnits::cm ); const GeoLogVol* LArLogical = new GeoLogVol( LArName, LArShape, LAr ); // GeoPhysVol* m_LArPhysical = new GeoPhysVol( LArLogical ); m_LArPhysical = new GeoPhysVol( LArLogical ); ColdWallPhysical->add( new GeoIdentifierTag( 1 ) ); - ColdWallPhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, 0.*CLHEP::cm ) ) ); + ColdWallPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm ) ) ); ColdWallPhysical->add( m_LArPhysical ); VacuumPhysical->add( new GeoIdentifierTag( 1 ) ); - VacuumPhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, 0.*CLHEP::cm ) ) ); + VacuumPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm ) ) ); VacuumPhysical->add( ColdWallPhysical ); IntWallPhysical->add( new GeoIdentifierTag( 1 ) ); - IntWallPhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, 0.*CLHEP::cm ) ) ); + IntWallPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm ) ) ); IntWallPhysical->add( VacuumPhysical ); WallPhysical->add( new GeoIdentifierTag( 1 ) ); - WallPhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, 0.*CLHEP::cm ) ) ); + WallPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm ) ) ); WallPhysical->add( IntWallPhysical ); ExtWallPhysical->add( new GeoIdentifierTag( 1 ) ); - ExtWallPhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, 0.*CLHEP::cm ) ) ); + ExtWallPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm ) ) ); ExtWallPhysical->add( WallPhysical ); m_cryoEnvelopePhysical->add( new GeoIdentifierTag( 1 ) ); - m_cryoEnvelopePhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, 0.*CLHEP::cm ) ) ); + m_cryoEnvelopePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm ) ) ); m_cryoEnvelopePhysical->add( ExtWallPhysical ); // Pressure cone std::string PConeName = baseName + "::PressureCone::Mother"; - GeoTubs* PConeShape = new GeoTubs( 0.*CLHEP::cm, 6.5*CLHEP::cm, 4.*CLHEP::cm, 0.*CLHEP::deg, 360.*CLHEP::deg ); + GeoTubs* PConeShape = new GeoTubs( 0.*GeoModelKernelUnits::cm, 6.5*GeoModelKernelUnits::cm, 4.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::deg, 360.*GeoModelKernelUnits::deg ); const GeoLogVol* PConeLogical = new GeoLogVol( PConeName, PConeShape, Vacuum ); GeoPhysVol* PConePhysical = new GeoPhysVol( PConeLogical ); std::string IntFlangeName = baseName + "::PressureCone::InternalFlange"; - GeoTubs* IntFlangeShape = new GeoTubs( 0.*CLHEP::cm, 4.9*CLHEP::cm, 0.4*CLHEP::cm, 0.*CLHEP::deg, 360.*CLHEP::deg ); + GeoTubs* IntFlangeShape = new GeoTubs( 0.*GeoModelKernelUnits::cm, 4.9*GeoModelKernelUnits::cm, 0.4*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::deg, 360.*GeoModelKernelUnits::deg ); const GeoLogVol* IntFlangeLogical = new GeoLogVol( IntFlangeName, IntFlangeShape, Gten ); GeoPhysVol* IntFlangePhysical = new GeoPhysVol( IntFlangeLogical ); std::string ExtFlangeName = baseName + "::PressureCone::ExternalFlange"; - GeoTubs* ExtFlangeShape = new GeoTubs( 5.*CLHEP::cm, 6.5*CLHEP::cm, 0.4*CLHEP::cm, 0.*CLHEP::deg, 360.*CLHEP::deg ); + GeoTubs* ExtFlangeShape = new GeoTubs( 5.*GeoModelKernelUnits::cm, 6.5*GeoModelKernelUnits::cm, 0.4*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::deg, 360.*GeoModelKernelUnits::deg ); const GeoLogVol* ExtFlangeLogical = new GeoLogVol( ExtFlangeName, ExtFlangeShape, Gten ); GeoPhysVol* ExtFlangePhysical = new GeoPhysVol( ExtFlangeLogical ); std::string ConeName = baseName + "::PressureCone::Cone"; - GeoCons* ConeShape = new GeoCons( 5.4*CLHEP::cm, 4.5*CLHEP::cm, 5.5*CLHEP::cm, 4.6*CLHEP::cm, 3.2*CLHEP::cm, 0.*CLHEP::deg, 360.*CLHEP::deg ); + GeoCons* ConeShape = new GeoCons( 5.4*GeoModelKernelUnits::cm, 4.5*GeoModelKernelUnits::cm, 5.5*GeoModelKernelUnits::cm, 4.6*GeoModelKernelUnits::cm, 3.2*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::deg, 360.*GeoModelKernelUnits::deg ); const GeoLogVol* ConeLogical = new GeoLogVol( ConeName, ConeShape, Gten ); GeoPhysVol* ConePhysical = new GeoPhysVol( ConeLogical ); PConePhysical->add( new GeoIdentifierTag( 1 ) ); - PConePhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, 3.6*CLHEP::cm ) ) ); + PConePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 3.6*GeoModelKernelUnits::cm ) ) ); PConePhysical->add( IntFlangePhysical ); PConePhysical->add( new GeoIdentifierTag( 1 ) ); - PConePhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, -3.6*CLHEP::cm ) ) ); + PConePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, -3.6*GeoModelKernelUnits::cm ) ) ); PConePhysical->add( ExtFlangePhysical ); PConePhysical->add( new GeoIdentifierTag( 1 ) ); - PConePhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, 0.*CLHEP::cm ) ) ); + PConePhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm ) ) ); PConePhysical->add( ConePhysical ); for ( int i = 0; i < 3; i++ ) for ( int j = 0; j < 13; j++ ) { - double x = 135.1*CLHEP::cm - 19.3*( j + 1 )*CLHEP::cm; - double y = 19.3*( i - 1 )*CLHEP::cm; + double x = 135.1*GeoModelKernelUnits::cm - 19.3*( j + 1 )*GeoModelKernelUnits::cm; + double y = 19.3*( i - 1 )*GeoModelKernelUnits::cm; VacuumPhysical->add( new GeoIdentifierTag( 1 + i*13 + j ) ); - VacuumPhysical->add( new GeoTransform( HepGeom::Translate3D( x, y, -42.*CLHEP::cm ) ) ); + VacuumPhysical->add( new GeoTransform( GeoTrf::Translate3D( x, y, -42.*GeoModelKernelUnits::cm ) ) ); VacuumPhysical->add( PConePhysical ); } // Zig-zag structure std::string ZigZagMotherName = baseName + "::ZigZag::Mother"; - GeoBox* ZigZagMotherShape = new GeoBox( 130.*CLHEP::cm, 15.*CLHEP::cm, 6.45*CLHEP::cm ); + GeoBox* ZigZagMotherShape = new GeoBox( 130.*GeoModelKernelUnits::cm, 15.*GeoModelKernelUnits::cm, 6.45*GeoModelKernelUnits::cm ); const GeoLogVol* ZigZagMotherLogical = new GeoLogVol( ZigZagMotherName, ZigZagMotherShape, Vacuum ); GeoPhysVol* ZigZagMotherPhysical = new GeoPhysVol( ZigZagMotherLogical ); std::string ZigZagStrAName = baseName + "::ZigZag::StrA"; - GeoBox* ZigZagStrAShape = new GeoBox( 2.45*CLHEP::cm, 5.*CLHEP::cm, .4*CLHEP::cm ); + GeoBox* ZigZagStrAShape = new GeoBox( 2.45*GeoModelKernelUnits::cm, 5.*GeoModelKernelUnits::cm, .4*GeoModelKernelUnits::cm ); const GeoLogVol* ZigZagStrALogical = new GeoLogVol( ZigZagStrAName, ZigZagStrAShape, Al ); GeoPhysVol* ZigZagStrAPhysical = new GeoPhysVol( ZigZagStrALogical ); std::string ZigZagStrBName = baseName + "::ZigZag::StrB"; - GeoBox* ZigZagStrBShape = new GeoBox( 8.53*CLHEP::cm, 5.*CLHEP::cm, .4*CLHEP::cm ); + GeoBox* ZigZagStrBShape = new GeoBox( 8.53*GeoModelKernelUnits::cm, 5.*GeoModelKernelUnits::cm, .4*GeoModelKernelUnits::cm ); const GeoLogVol* ZigZagStrBLogical = new GeoLogVol( ZigZagStrBName, ZigZagStrBShape, Al ); GeoPhysVol* ZigZagStrBPhysical = new GeoPhysVol( ZigZagStrBLogical ); std::string ZigZagStrCName = baseName + "::ZigZag::StrC"; - GeoTrd* ZigZagStrCShape = new GeoTrd( 1.03*CLHEP::cm, .453*CLHEP::cm, 5.*CLHEP::cm, 5.*CLHEP::cm, .283*CLHEP::cm ); + GeoTrd* ZigZagStrCShape = new GeoTrd( 1.03*GeoModelKernelUnits::cm, .453*GeoModelKernelUnits::cm, 5.*GeoModelKernelUnits::cm, 5.*GeoModelKernelUnits::cm, .283*GeoModelKernelUnits::cm ); const GeoLogVol* ZigZagStrCLogical = new GeoLogVol( ZigZagStrCName, ZigZagStrCShape, Al ); GeoPhysVol* ZigZagStrCPhysical = new GeoPhysVol( ZigZagStrCLogical ); std::string ZigZagStrDName = baseName + "::ZigZag::StrD"; - GeoTrd* ZigZagStrDShape = new GeoTrd( .005*CLHEP::cm, .31*CLHEP::cm, 5.*CLHEP::cm, 5.*CLHEP::cm, .365*CLHEP::cm ); + GeoTrd* ZigZagStrDShape = new GeoTrd( .005*GeoModelKernelUnits::cm, .31*GeoModelKernelUnits::cm, 5.*GeoModelKernelUnits::cm, 5.*GeoModelKernelUnits::cm, .365*GeoModelKernelUnits::cm ); const GeoLogVol* ZigZagStrDLogical = new GeoLogVol( ZigZagStrDName, ZigZagStrDShape, Al ); GeoPhysVol* ZigZagStrDPhysical = new GeoPhysVol( ZigZagStrDLogical ); @@ -253,33 +250,31 @@ GeoVFullPhysVol* LArGeo::CryostatConstructionTBEC::GetEnvelope() for ( int i = 0; i < 9; i++ ) { ZigZagMotherPhysical->add( new GeoIdentifierTag( StrAIdTag ) ); - ZigZagMotherPhysical->add( new GeoTransform( HepGeom::Translate3D( ( 124.4 - 31.1*i )*CLHEP::cm, 0.*CLHEP::cm, 6.05*CLHEP::cm ) ) ); + ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Translate3D( ( 124.4 - 31.1*i )*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 6.05*GeoModelKernelUnits::cm ) ) ); ZigZagMotherPhysical->add( ZigZagStrAPhysical ); StrAIdTag++; } for ( int j = 0; j < 2; j++ ) for ( int i = 0; i < 8; i++ ) { ZigZagMotherPhysical->add( new GeoIdentifierTag( StrAIdTag ) ); - ZigZagMotherPhysical->add( new GeoTransform( HepGeom::Translate3D( ( 108.85 - 31.1*i )*CLHEP::cm, ( 2*j - 1 )*10.*CLHEP::cm, 6.05*CLHEP::cm ) ) ); + ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Translate3D( ( 108.85 - 31.1*i )*GeoModelKernelUnits::cm, ( 2*j - 1 )*10.*GeoModelKernelUnits::cm, 6.05*GeoModelKernelUnits::cm ) ) ); ZigZagMotherPhysical->add( ZigZagStrAPhysical ); StrAIdTag++; } int StrBIdTag = 1; - const double xB1[ 2 ] = { ( -6.77 + 108.85 )*CLHEP::cm, ( 6.77 + 108.85 )*CLHEP::cm }; - const double xB2[ 2 ] = { ( -6.77 + 124.4 )*CLHEP::cm, ( 6.77 + 93.3 )*CLHEP::cm }; - const double alpha[ 2 ] = { 45.*CLHEP::deg, -45.*CLHEP::deg }; + const double xB1[ 2 ] = { ( -6.77 + 108.85 )*GeoModelKernelUnits::cm, ( 6.77 + 108.85 )*GeoModelKernelUnits::cm }; + const double xB2[ 2 ] = { ( -6.77 + 124.4 )*GeoModelKernelUnits::cm, ( 6.77 + 93.3 )*GeoModelKernelUnits::cm }; + const double alpha[ 2 ] = { 45.*GeoModelKernelUnits::deg, -45.*GeoModelKernelUnits::deg }; for ( int k = 0; k < 2; k++ ) for ( int i = 0; i < 8; i++ ) { ZigZagMotherPhysical->add( new GeoIdentifierTag( StrBIdTag ) ); - ZigZagMotherPhysical->add( new GeoTransform( HepGeom::Transform3D( CLHEP::HepRotationY( alpha[ k ] ), - CLHEP::Hep3Vector( xB1[ k ] - 31.1*i*CLHEP::cm, 0.*CLHEP::cm, -.1*CLHEP::cm ) ) ) ); + ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D(GeoTrf::Translate3D( xB1[ k ] - 31.1*i*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, -.1*GeoModelKernelUnits::cm )*GeoTrf::RotateY3D( alpha[ k ] ) ) ) ); ZigZagMotherPhysical->add( ZigZagStrBPhysical ); StrBIdTag++; for ( int j = 0; j < 2; j++ ) { ZigZagMotherPhysical->add( new GeoIdentifierTag( StrBIdTag ) ); - ZigZagMotherPhysical->add( new GeoTransform( HepGeom::Transform3D( CLHEP::HepRotationY( alpha[ k ] ), - CLHEP::Hep3Vector( xB2[ k ] - 31.1*i*CLHEP::cm, ( -10. + 20.*j )*CLHEP::cm, -.1*CLHEP::cm ) ) ) ); + ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D( GeoTrf::Translate3D( xB2[ k ] - 31.1*i*GeoModelKernelUnits::cm, ( -10. + 20.*j )*GeoModelKernelUnits::cm, -.1*GeoModelKernelUnits::cm ) *GeoTrf::RotateY3D( alpha[ k ] )) ) ); ZigZagMotherPhysical->add( ZigZagStrBPhysical ); StrBIdTag++; } @@ -290,41 +285,39 @@ GeoVFullPhysVol* LArGeo::CryostatConstructionTBEC::GetEnvelope() for ( int i = 0; i < 9; i++ ) { if ( i < 8 ) { ZigZagMotherPhysical->add( new GeoIdentifierTag( StrCIdTag ) ); - ZigZagMotherPhysical->add( new GeoTransform( HepGeom::Translate3D( ( 108.85 - 31.1*i )*CLHEP::cm, 0.*CLHEP::cm, -6.15*CLHEP::cm ) ) ); + ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Translate3D( ( 108.85 - 31.1*i )*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, -6.15*GeoModelKernelUnits::cm ) ) ); ZigZagMotherPhysical->add( ZigZagStrCPhysical ); StrCIdTag++; } for ( int j = 0; j < 2; j++ ) { ZigZagMotherPhysical->add( new GeoIdentifierTag( StrCIdTag ) ); - ZigZagMotherPhysical->add( new GeoTransform( HepGeom::Translate3D( ( 124.4 - 31.1*i )*CLHEP::cm, ( -10. + 20.*j )*CLHEP::cm, -6.15*CLHEP::cm ) ) ); + ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Translate3D( ( 124.4 - 31.1*i )*GeoModelKernelUnits::cm, ( -10. + 20.*j )*GeoModelKernelUnits::cm, -6.15*GeoModelKernelUnits::cm ) ) ); ZigZagMotherPhysical->add( ZigZagStrCPhysical ); StrCIdTag++; } } int StrDIdTag = 1; - const double xD1[ 2 ] = { ( -2.598 + 124.4 )*CLHEP::cm, ( 2.598 + 124.4 )*CLHEP::cm }; - const double xD2[ 2 ] = { ( -2.598 + 108.85 )*CLHEP::cm, ( 2.598 + 108.85 )*CLHEP::cm }; - const double beta[ 2 ] = { -22.5*CLHEP::deg, 22.5*CLHEP::deg }; + const double xD1[ 2 ] = { ( -2.598 + 124.4 )*GeoModelKernelUnits::cm, ( 2.598 + 124.4 )*GeoModelKernelUnits::cm }; + const double xD2[ 2 ] = { ( -2.598 + 108.85 )*GeoModelKernelUnits::cm, ( 2.598 + 108.85 )*GeoModelKernelUnits::cm }; + const double beta[ 2 ] = { -22.5*GeoModelKernelUnits::deg, 22.5*GeoModelKernelUnits::deg }; for ( int k = 0; k < 2; k++ ) for ( int i = 0; i < 9; i++ ) { ZigZagMotherPhysical->add( new GeoIdentifierTag( StrDIdTag ) ); - ZigZagMotherPhysical->add( new GeoTransform( HepGeom::Transform3D( CLHEP::HepRotationY( beta[ k ] ), - CLHEP::Hep3Vector( xD1[ k ] - 31.1*i*CLHEP::cm, 0.*CLHEP::cm, 5.995*CLHEP::cm ) ) ) ); + ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D( GeoTrf::Translate3D( xD1[ k ] - 31.1*i*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, 5.995*GeoModelKernelUnits::cm ) *GeoTrf::RotateY3D( beta[ k ] )) ) ); ZigZagMotherPhysical->add( ZigZagStrDPhysical ); StrDIdTag++; if ( i < 8 ) for ( int j = 0; j < 2; j++ ) { ZigZagMotherPhysical->add( new GeoIdentifierTag( StrDIdTag ) ); - ZigZagMotherPhysical->add( new GeoTransform( HepGeom::Transform3D( CLHEP::HepRotationY( beta[ k ] ), - CLHEP::Hep3Vector( xD2[ k ] - 31.1*i*CLHEP::cm, ( -10. +20.*j )*CLHEP::cm, 5.995*CLHEP::cm ) ) ) ); + ZigZagMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D( GeoTrf::Translate3D( xD2[ k ] - 31.1*i*GeoModelKernelUnits::cm, ( -10. +20.*j )*GeoModelKernelUnits::cm, 5.995*GeoModelKernelUnits::cm ) *GeoTrf::RotateY3D( beta[ k ] )) ) ); ZigZagMotherPhysical->add( ZigZagStrDPhysical ); StrDIdTag++; } } WallPhysical->add( new GeoIdentifierTag( 1 ) ); - WallPhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, -53.2*CLHEP::cm ) ) ); + WallPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, -53.2*GeoModelKernelUnits::cm ) ) ); WallPhysical->add( ZigZagMotherPhysical ); return m_cryoEnvelopePhysical; diff --git a/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/EMECModuleConstruction.cxx b/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/EMECModuleConstruction.cxx index 80c3992eb2ad9584d9a6b5de6c0b2dc4bb021c82..8027190c6edfd65d6a84ebf72345c8b73b42bfe5 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/EMECModuleConstruction.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/EMECModuleConstruction.cxx @@ -39,6 +39,8 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "GeoModelUtilities/StoredPhysVol.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -48,11 +50,6 @@ #include "GaudiKernel/IService.h" #include "GaudiKernel/ISvcLocator.h" -// For transforms: -#include "CLHEP/Geometry/Transform3D.h" -// For units: -#include "CLHEP/Units/PhysicalConstants.h" - #include <string> #include <cmath> #include <iostream> @@ -115,37 +112,37 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() //LAr - GeoMaterial* LAr = new GeoMaterial(name="LiquidArgon", density=1.396*CLHEP::g/CLHEP::cm3); + GeoMaterial* LAr = new GeoMaterial(name="LiquidArgon", density=1.396*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); LAr->add(Ar,1.); LAr->lock(); //Alu - GeoMaterial* Alu = new GeoMaterial(name="Alu", density=2.7*CLHEP::g/CLHEP::cm3); + GeoMaterial* Alu = new GeoMaterial(name="Alu", density=2.7*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); Alu->add(Al,1.); Alu->lock(); //Iron - GeoMaterial* Iron = new GeoMaterial(name="Iron", density=7.87*CLHEP::g/CLHEP::cm3); + GeoMaterial* Iron = new GeoMaterial(name="Iron", density=7.87*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); Iron->add(Fe,1.); Iron->lock(); //Copper - GeoMaterial* Copper = new GeoMaterial(name="Copper", density=8.96*CLHEP::g/CLHEP::cm3); + GeoMaterial* Copper = new GeoMaterial(name="Copper", density=8.96*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); Copper->add(Cu,1.); Copper->lock(); //Lead - GeoMaterial* Lead = new GeoMaterial(name="Lead", density=11.35*CLHEP::g/CLHEP::cm3); + GeoMaterial* Lead = new GeoMaterial(name="Lead", density=11.35*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); Lead->add(Pb,1.); Lead->lock(); // Air , at 20 deg C, 1 atm density=1.2931*mg/cm3 - GeoMaterial* Air=new GeoMaterial(name="Air", density=1.290*CLHEP::mg/CLHEP::cm3); + GeoMaterial* Air=new GeoMaterial(name="Air", density=1.290*GeoModelKernelUnits::mg/GeoModelKernelUnits::cm3); Air->add(N, .8); Air->add(O, .2); Air->lock(); @@ -153,7 +150,7 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() //Prepreg glue for absorbers, composition to be checked! //ref:STR.CAL.01.CRB.6,(23-Jan-2003,J.T.) - GeoMaterial* Glue=new GeoMaterial(name="Glue", density=1.8*CLHEP::g/CLHEP::cm3); + GeoMaterial* Glue=new GeoMaterial(name="Glue", density=1.8*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); aH=8.*H->getA(); aO=2.*O->getA(); aC=5.*C->getA(); @@ -172,7 +169,7 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() //PermaliE730 for Front middle ring, composition to be checked! // ref.: STR.CAL.01.CRB.6,(23-Jan-2003,J.T.) - GeoMaterial* PermaliE730=new GeoMaterial(name="PermaliE730",density=1.83*CLHEP::g/CLHEP::cm3); + GeoMaterial* PermaliE730=new GeoMaterial(name="PermaliE730",density=1.83*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); aH=8.*H->getA(); aO=2.*O->getA(); aC=5.*C->getA(); @@ -190,7 +187,7 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() // Gten ( C8 H14 O4 ), alias glass epoxy for long.&transv.bars - GeoMaterial* Gten = new GeoMaterial(name="Gten", density=1.8*CLHEP::g/CLHEP::cm3); + GeoMaterial* Gten = new GeoMaterial(name="Gten", density=1.8*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); aH=14.*H->getA(); aO= 4.*O->getA(); aC= 8.*C->getA(); @@ -209,7 +206,7 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() // Kapton 11-Jan-2002 ML from accbgeo.age: the Kapton_E density is 1.46g/cm3 // one assumes it is the same as for the Kapton_H -> C22 H10 O5 N2 - GeoMaterial* Kapton= new GeoMaterial(name="Kapton",density=1.46*CLHEP::g/CLHEP::cm3); + GeoMaterial* Kapton= new GeoMaterial(name="Kapton",density=1.46*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); aH=10.*H->getA(); aO= 5.*O->getA(); aC=22.*C->getA(); @@ -230,9 +227,9 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() // THIN absorber: outer wheel // 11-Jan-2002 ML source: endegeo.age and Fig.7-3 of TDR - Tggl = 0.3*CLHEP::mm; - Tgfe = 0.4*CLHEP::mm; - Tgpb = 1.7*CLHEP::mm; + Tggl = 0.3*GeoModelKernelUnits::mm; + Tgfe = 0.4*GeoModelKernelUnits::mm; + Tgpb = 1.7*GeoModelKernelUnits::mm; Totalthick=Tggl+Tgfe+Tgpb; m1=Tggl*Glue->getDensity(); m2=Tgfe*Iron->getDensity(); @@ -253,9 +250,9 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() // THICK absorber: inner wheel // 11-Jan-2002 ML source: endegeo.age and Fig.7-3 of TDR - Thgl = 0.3*CLHEP::mm; - Thfe = 0.4*CLHEP::mm; - Thpb = 2.2*CLHEP::mm; + Thgl = 0.3*GeoModelKernelUnits::mm; + Thfe = 0.4*GeoModelKernelUnits::mm; + Thpb = 2.2*GeoModelKernelUnits::mm; Totalthick=Thgl+Thfe+Thpb; m1=Thgl*Glue->getDensity(); m2=Thfe*Iron->getDensity(); @@ -276,8 +273,8 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() // Electrode, as a mixture Kapton+Cu, 11-Jan-2002 ML - Thcu = 0.105*CLHEP::mm; - Thka = 0.170*CLHEP::mm; //together with glue J.T. + Thcu = 0.105*GeoModelKernelUnits::mm; + Thka = 0.170*GeoModelKernelUnits::mm; //together with glue J.T. Totalthicke = Thcu+Thka; m1=Thcu*Copper->getDensity(); m2=Thka*Kapton->getDensity(); @@ -306,7 +303,7 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() FracC =aC*inv_Atot; FracAr=aAr*inv_Atot; } - GeoMaterial* Elect_LAr= new GeoMaterial(name="Elnics",density=1.28*CLHEP::g/CLHEP::cm3); + GeoMaterial* Elect_LAr= new GeoMaterial(name="Elnics",density=1.28*GeoModelKernelUnits::g/GeoModelKernelUnits::cm3); Elect_LAr->add(H ,FracH); Elect_LAr->add(C ,FracC); Elect_LAr->add(Ar,FracAr); @@ -319,9 +316,9 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() // G10FeInner for barrette in the inner wheel(J.T.08.01.2003) - Thfe =0.4*CLHEP::mm; - Thgl =0.3*CLHEP::mm; - Thpb =2.2*CLHEP::mm; + Thfe =0.4*GeoModelKernelUnits::mm; + Thgl =0.3*GeoModelKernelUnits::mm; + Thpb =2.2*GeoModelKernelUnits::mm; ThGten=Thpb; Totalthick =Thfe+Thgl+ThGten; //Totalthicki=Totalthick; @@ -346,9 +343,9 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() // G10FeOuter for barrette in the outer wheel(J.T.08.01.2003) - Thfe =0.4*CLHEP::mm; - Thgl =0.3*CLHEP::mm; - Thpb =1.7*CLHEP::mm; + Thfe =0.4*GeoModelKernelUnits::mm; + Thgl =0.3*GeoModelKernelUnits::mm; + Thpb =1.7*GeoModelKernelUnits::mm; ThGten=Thpb; Totalthick =Thfe+Thgl+ThGten; //Totalthicko=Totalthick; @@ -384,13 +381,13 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() // V.N: From LarWheelSolid, to get bounding polycone. Previoulsy G4 routine. No GeoModel equivalent so far ... // - double zWheelFrontFace = 3689.5*CLHEP::mm; + double zWheelFrontFace = 3689.5*GeoModelKernelUnits::mm; - double dWRPtoFrontFace = 11.*CLHEP::mm; + double dWRPtoFrontFace = 11.*GeoModelKernelUnits::mm; - double dMechFocaltoWRP = 3691. *CLHEP::mm; //=endg_z1*CLHEP::cm + double dMechFocaltoWRP = 3691. *GeoModelKernelUnits::mm; //=endg_z1*GeoModelKernelUnits::cm //"LArEMECNomLarOrig" - double rOuterCutoff = 2034. *CLHEP::mm; //=endg_rlimit*CLHEP::cm + double rOuterCutoff = 2034. *GeoModelKernelUnits::mm; //=endg_rlimit*GeoModelKernelUnits::cm //"LArEMECMaxRadiusActivePart //***************** @@ -402,32 +399,32 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() double Rin1, Rin2, Rout1, Rout2; if ( m_isInnerWheel ) { - Rin1 = 279.*CLHEP::mm; - Rin2 = 324.*CLHEP::mm; + Rin1 = 279.*GeoModelKernelUnits::mm; + Rin2 = 324.*GeoModelKernelUnits::mm; } else { - Rin1 = 590.*CLHEP::mm; - Rin2 = 678.*CLHEP::mm; + Rin1 = 590.*GeoModelKernelUnits::mm; + Rin2 = 678.*GeoModelKernelUnits::mm; } if ( m_isOuterWheel ) { - Rout1 = 2070.*CLHEP::mm; - Rout2 = 2070.*CLHEP::mm; + Rout1 = 2070.*GeoModelKernelUnits::mm; + Rout2 = 2070.*GeoModelKernelUnits::mm; } else { - Rout1 = 647.*CLHEP::mm; - Rout2 = 732.*CLHEP::mm; + Rout1 = 647.*GeoModelKernelUnits::mm; + Rout2 = 732.*GeoModelKernelUnits::mm; } // --> EndOfRadiiSelection <-- - double emecMotherZplan[] = { 3639.5*CLHEP::mm, 3639.5*CLHEP::mm + 630.*CLHEP::mm }; //cold (J.T) + double emecMotherZplan[] = { 3639.5*GeoModelKernelUnits::mm, 3639.5*GeoModelKernelUnits::mm + 630.*GeoModelKernelUnits::mm }; //cold (J.T) double emecMotherRin[] = { Rin1, Rin2 }; double emecMotherRout[] = { Rout1, Rout2 }; int lastPlaneEmec = ( sizeof( emecMotherZplan )/sizeof( double ) ); if ( m_isTB ) { for ( int i = 0; i < lastPlaneEmec; i++ ) emecMotherZplan[ i ] -= zWheelFrontFace; - zWheelFrontFace = 0.*CLHEP::mm; + zWheelFrontFace = 0.*GeoModelKernelUnits::mm; } double phiPosition = M_PI/2; @@ -452,8 +449,8 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() double tanThetaMid = 2. * exp(-eta_mid) / (1. - exp(2.*-eta_mid)); double tanThetaOuter = 2. * exp(-eta_low) / (1. - exp(2.*-eta_low)); - double zWheelThickness = 514.*CLHEP::mm; // endg_etot-2.*(endg_sabl*CLHEP::cm-2.*CLHEP::mm) - double gapBetweenWheels= 1.5*CLHEP::mm*2.; // "LArEMECHalfCrack"*2. + double zWheelThickness = 514.*GeoModelKernelUnits::mm; // endg_etot-2.*(endg_sabl*GeoModelKernelUnits::cm-2.*GeoModelKernelUnits::mm) + double gapBetweenWheels= 1.5*GeoModelKernelUnits::mm*2.; // "LArEMECHalfCrack"*2. //J.T************ // zWheelFrontFace for mechanical design @@ -559,7 +556,7 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() GeoLogVol* innerLogical = new GeoLogVol ( innerName, innerShape, LAr ); GeoFullPhysVol* innerPhysical = new GeoFullPhysVol( innerLogical ); emecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); - emecMotherPhysical->add( new GeoTransform( HepGeom::TranslateZ3D( zWheelFrontFace ) ) ); + emecMotherPhysical->add( new GeoTransform( GeoTrf::TranslateZ3D( zWheelFrontFace ) ) ); emecMotherPhysical->add( innerPhysical ); // Place the custom accordion volumes in the liquid argon. @@ -578,10 +575,8 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() GeoFullPhysVol* innerAbsorberPhysical = new GeoFullPhysVol( innerAbsorberLogical ); GeoPhysVol* innerElectrodePhysical = new GeoPhysVol( innerElectrodeLogical ); innerPhysical->add( new GeoIdentifierTag( 1 ) ); - innerPhysical->add( new GeoTransform( HepGeom::Transform3D() ) ); innerPhysical->add( innerAbsorberPhysical ); innerPhysical->add( new GeoIdentifierTag( 1 ) ); - innerPhysical->add( new GeoTransform( HepGeom::Transform3D() ) ); innerPhysical->add( innerElectrodePhysical ); { StoredPhysVol *sPhysVol = new StoredPhysVol(innerPhysical); @@ -599,7 +594,7 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() GeoLogVol* outerLogical = new GeoLogVol ( outerName, outerShape, LAr ); GeoFullPhysVol* outerPhysical = new GeoFullPhysVol(outerLogical); emecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); - emecMotherPhysical->add( new GeoTransform( HepGeom::TranslateZ3D( zWheelFrontFace ) ) ); + emecMotherPhysical->add( new GeoTransform( GeoTrf::TranslateZ3D( zWheelFrontFace ) ) ); emecMotherPhysical->add( outerPhysical ); // Place the custom accordion volumes in the liquid argon. @@ -618,10 +613,8 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() GeoPhysVol* outerAbsorberPhysical = new GeoPhysVol( outerAbsorberLogical ); GeoPhysVol* outerElectrodePhysical = new GeoPhysVol( outerElectrodeLogical ); outerPhysical->add( new GeoIdentifierTag( 1 ) ); - outerPhysical->add( new GeoTransform( HepGeom::Transform3D() ) ); outerPhysical->add( outerAbsorberPhysical); outerPhysical->add( new GeoIdentifierTag( 1 ) ); - outerPhysical->add( new GeoTransform( HepGeom::Transform3D() ) ); outerPhysical->add( outerElectrodePhysical ); { StoredPhysVol *sPhysVol = new StoredPhysVol(outerPhysical); @@ -661,47 +654,44 @@ GeoVFullPhysVol* LArGeo::EMECModuleConstruction::GetEnvelope() // V.N. --> Support selected - z0 = zWheelFrontFace - 61.*CLHEP::mm; + z0 = zWheelFrontFace - 61.*GeoModelKernelUnits::mm; EMECSupportConstruction *fsc = new EMECSupportConstruction( FrontIndx, true, "LAr::EMEC::", M_PI/2 ); GeoPhysVol* physicalFSM = fsc->GetEnvelope(); emecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); - emecMotherPhysical->add( new GeoTransform( HepGeom::TranslateZ3D( z0 ) ) ); + emecMotherPhysical->add( new GeoTransform( GeoTrf::TranslateZ3D( z0 ) ) ); emecMotherPhysical->add( physicalFSM ); - z0 = zWheelFrontFace + 514.*CLHEP::mm + 55.*CLHEP::mm; + z0 = zWheelFrontFace + 514.*GeoModelKernelUnits::mm + 55.*GeoModelKernelUnits::mm; EMECSupportConstruction *bsc = new EMECSupportConstruction( BackIndx, true, "LAr::EMEC::", M_PI/2 ); GeoPhysVol *physicalBSM = bsc->GetEnvelope(); emecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); - CLHEP::HepRotation rotBSM; - rotBSM.rotateX( -M_PI ); - rotBSM.rotateZ( 2*M_PI/2 ); // != EMECConstruction ??? - emecMotherPhysical->add( new GeoTransform( HepGeom::Transform3D( rotBSM, - CLHEP::Hep3Vector( 0., 0., z0 ) ) ) ); + GeoTrf::Transform3D rotBSM(GeoTrf::RotateZ3D(2*M_PI/2)*GeoTrf::RotateX3D(-M_PI)); + emecMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D(GeoTrf::Translate3D( 0., 0., z0 )*rotBSM ) ) ); emecMotherPhysical->add( physicalBSM ); if ( m_isOuterWheel ) { - z0 = zWheelFrontFace + 514.*CLHEP::mm/2; + z0 = zWheelFrontFace + 514.*GeoModelKernelUnits::mm/2; EMECSupportConstruction *osc = new EMECSupportConstruction( 2, true, "LAr::EMEC::", M_PI/2 ); GeoPhysVol *physicalOSM = osc->GetEnvelope(); emecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); - emecMotherPhysical->add( new GeoTransform( HepGeom::TranslateZ3D( z0 ) ) ); + emecMotherPhysical->add( new GeoTransform( GeoTrf::TranslateZ3D( z0 ) ) ); emecMotherPhysical->add( physicalOSM ); } if ( m_isInnerWheel ) { - z0 = zWheelFrontFace + 514.*CLHEP::mm/2; + z0 = zWheelFrontFace + 514.*GeoModelKernelUnits::mm/2; EMECSupportConstruction *isc = new EMECSupportConstruction( 3, true, "LAr::EMEC::", M_PI/2 ); GeoPhysVol *physicalISM = isc->GetEnvelope(); emecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); - emecMotherPhysical->add(new GeoTransform( HepGeom::TranslateZ3D( z0 ) ) ) ; + emecMotherPhysical->add(new GeoTransform( GeoTrf::TranslateZ3D( z0 ) ) ) ; emecMotherPhysical->add( physicalISM ); } - z0 = zWheelFrontFace + 514.*CLHEP::mm/2; + z0 = zWheelFrontFace + 514.*GeoModelKernelUnits::mm/2; EMECSupportConstruction *msc = new EMECSupportConstruction( 4, true, "LAr::EMEC::", M_PI/2 ); GeoPhysVol *physicalMSM = msc->GetEnvelope(); emecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); - emecMotherPhysical->add(new GeoTransform( HepGeom::TranslateZ3D( z0 ) ) ) ; + emecMotherPhysical->add(new GeoTransform( GeoTrf::TranslateZ3D( z0 ) ) ) ; emecMotherPhysical->add( physicalMSM ); return emecMotherPhysical; diff --git a/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/LArDetectorConstructionTBEC.cxx b/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/LArDetectorConstructionTBEC.cxx index f455798a7800a6c5943a8ce0d604fbde77cd7790..f0b5264d749c38f26d96c7068ab90cb681de2629 100755 --- a/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/LArDetectorConstructionTBEC.cxx +++ b/LArCalorimeter/LArGeoModel/LArGeoTBEC/src/LArDetectorConstructionTBEC.cxx @@ -21,6 +21,8 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "StoreGate/StoreGateSvc.h" #include "GeoModelInterfaces/AbsMaterialManager.h" #include "GeoModelInterfaces/StoredMaterialManager.h" @@ -29,11 +31,6 @@ #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" -// For transforms: -#include "CLHEP/Geometry/Transform3D.h" -// For units: -#include "CLHEP/Units/PhysicalConstants.h" - // For the database: #include "RDBAccessSvc/IRDBAccessSvc.h" #include "RDBAccessSvc/IRDBRecord.h" @@ -113,20 +110,20 @@ StoreGate interface"); else if ( m_eta_cell > 43.5 ) m_eta_pos = 0.1*( m_eta_cell - 43.5 ) + 2.5; // Inner Wheel else m_eta_pos = 0.025*( m_eta_cell - 0.5 ) + 1.425; // Outer Wheel - if ( m_eta_cell <= 43.5 ) m_phi_pos = -( ( m_phi_cell - 16. )*1.40625 + 0.46875 )*CLHEP::deg; // Outer Wheel - else m_phi_pos = -( 4*( m_phi_cell - 4. )*1.40625 + 0.46875 )*CLHEP::deg; // Inner Wheel + if ( m_eta_cell <= 43.5 ) m_phi_pos = -( ( m_phi_cell - 16. )*1.40625 + 0.46875 )*GeoModelKernelUnits::deg; // Outer Wheel + else m_phi_pos = -( 4*( m_phi_cell - 4. )*1.40625 + 0.46875 )*GeoModelKernelUnits::deg; // Inner Wheel /* printf( "LArDetectorConstructionTBEC\teta_cell = %6.2lf ( eta = %6.2lf )\n", m_eta_cell, m_eta_pos ); - printf( "LArDetectorConstructionTBEC\tphi_cell = %6.2lf ( phi = %6.2lf CLHEP::deg )\n", m_phi_cell, -m_phi_pos/CLHEP::deg ); + printf( "LArDetectorConstructionTBEC\tphi_cell = %6.2lf ( phi = %6.2lf GeoModelKernelUnits::deg )\n", m_phi_cell, +m_phi_pos/GeoModelKernelUnits::deg ); */ /* - printf( "LArDetectorConstructionTBEC\tModuleRotation = %6.2lf CLHEP::deg\n", m_ModuleRotation/CLHEP::deg ); - printf( "LArDetectorConstructionTBEC\tYShift = %6.1lf CLHEP::mm\n", m_YShift/CLHEP::mm ); + printf( "LArDetectorConstructionTBEC\tModuleRotation = %6.2lf GeoModelKernelUnits::deg\n", m_ModuleRotation/GeoModelKernelUnits::deg ); + printf( "LArDetectorConstructionTBEC\tYShift = %6.1lf GeoModelKernelUnits::mm\n", m_YShift/GeoModelKernelUnits::mm ); */ } @@ -169,8 +166,8 @@ GeoVPhysVol* LArGeo::LArDetectorConstructionTBEC::GetEnvelope() // Default values.... m_hasLeadCompensator = false; m_hasPresampler = false; - m_ModuleRotation = 0.*CLHEP::deg; - m_YShift = 0.*CLHEP::mm; + m_ModuleRotation = 0.*GeoModelKernelUnits::deg; + m_YShift = 0.*GeoModelKernelUnits::mm; IRDBRecordset_ptr tbecGeometry = m_pAccessSvc->getRecordsetPtr("TBECGeometry",detectorKey, detectorNode); if ((*tbecGeometry).size()!=0) { @@ -195,7 +192,7 @@ GeoVPhysVol* LArGeo::LArDetectorConstructionTBEC::GetEnvelope() std::string baseName = "LAr::TBEC::MotherVolume"; - GeoBox* tbecMotherShape = new GeoBox( 5.*CLHEP::m, 5.*CLHEP::m, 15.*CLHEP::m ); + GeoBox* tbecMotherShape = new GeoBox( 5.*GeoModelKernelUnits::m, 5.*GeoModelKernelUnits::m, 15.*GeoModelKernelUnits::m ); const GeoLogVol* tbecMotherLogical = new GeoLogVol(baseName, tbecMotherShape, Air); @@ -262,25 +259,25 @@ GeoFullPhysVol* LArGeo::LArDetectorConstructionTBEC::createEnvelope() // accordingly. std::string tbecMotherName = baseName + "::MotherVolume"; - GeoBox* tbecMotherShape = new GeoBox( 5.*CLHEP::m, 5.*CLHEP::m, 15.*CLHEP::m ); + GeoBox* tbecMotherShape = new GeoBox( 5.*GeoModelKernelUnits::m, 5.*GeoModelKernelUnits::m, 15.*GeoModelKernelUnits::m ); const GeoLogVol* tbecMotherLogical = new GeoLogVol( tbecMotherName, tbecMotherShape, Air ); GeoFullPhysVol* tbecMotherPhysical = new GeoFullPhysVol( tbecMotherLogical ); - double xcent = -120.*CLHEP::cm, zcent = 395.7*CLHEP::cm; - double zfface = zcent - 60.09*CLHEP::cm; + double xcent = -120.*GeoModelKernelUnits::cm, zcent = 395.7*GeoModelKernelUnits::cm; + double zfface = zcent - 60.09*GeoModelKernelUnits::cm; log << MSG::DEBUG << "eta = " << m_eta_pos; if ( m_eta_pos > 5. ) m_eta_pos = 0.; else m_eta_pos = 2*atan( exp( -m_eta_pos ) ); - log << ", positioning cryostat with angle " << m_eta_pos*(1./CLHEP::deg) << " CLHEP::deg"; + log << ", positioning cryostat with angle " << m_eta_pos*(1./GeoModelKernelUnits::deg) << " GeoModelKernelUnits::deg"; log << endmsg; // Tubular axis, dummy if ( AXIS_ON ) { - double axisZHalfLength = 5*CLHEP::m; + double axisZHalfLength = 5*GeoModelKernelUnits::m; - GeoTube* axisShape = new GeoTube( 0.*CLHEP::cm, 1.*CLHEP::cm, axisZHalfLength ); + GeoTube* axisShape = new GeoTube( 0.*GeoModelKernelUnits::cm, 1.*GeoModelKernelUnits::cm, axisZHalfLength ); // x-axis std::string XAxisName = baseName + "::XAxis"; @@ -288,8 +285,7 @@ GeoFullPhysVol* LArGeo::LArDetectorConstructionTBEC::createEnvelope() GeoPhysVol* XAxisPhysVol = new GeoPhysVol( XAxisLogical ); tbecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); - tbecMotherPhysical->add( new GeoTransform( HepGeom::Transform3D( CLHEP::HepRotationY( 90.*CLHEP::deg ), - CLHEP::Hep3Vector( axisZHalfLength, 0.*CLHEP::m, 0.*CLHEP::m ) ) ) ); + tbecMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D( GeoTrf::Translation3D( axisZHalfLength, 0.*GeoModelKernelUnits::m, 0.*GeoModelKernelUnits::m ) *GeoTrf::RotateY3D( 90.*GeoModelKernelUnits::deg )) ) ); tbecMotherPhysical->add( XAxisPhysVol ); // y-axis @@ -298,8 +294,7 @@ GeoFullPhysVol* LArGeo::LArDetectorConstructionTBEC::createEnvelope() GeoPhysVol* YAxisPhysVol = new GeoPhysVol( YAxisLogical ); tbecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); - tbecMotherPhysical->add( new GeoTransform( HepGeom::Transform3D( CLHEP::HepRotationX( -90.*CLHEP::deg ), - CLHEP::Hep3Vector( 0.*CLHEP::m, axisZHalfLength, 0.*CLHEP::m ) ) ) ); + tbecMotherPhysical->add( new GeoTransform( GeoTrf::Transform3D( GeoTrf::Translation3D( 0.*GeoModelKernelUnits::m, axisZHalfLength, 0.*GeoModelKernelUnits::m )*GeoTrf::RotateX3D( -90.*GeoModelKernelUnits::deg ) ) ) ); tbecMotherPhysical->add( YAxisPhysVol ); //z-axis @@ -308,7 +303,7 @@ GeoFullPhysVol* LArGeo::LArDetectorConstructionTBEC::createEnvelope() GeoPhysVol* ZAxisPhysVol = new GeoPhysVol( ZAxisLogical ); tbecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); - tbecMotherPhysical->add( new GeoTransform( HepGeom::TranslateZ3D( axisZHalfLength ) ) ); + tbecMotherPhysical->add( new GeoTransform( GeoTrf::TranslateZ3D( axisZHalfLength ) ) ); tbecMotherPhysical->add( ZAxisPhysVol ); } @@ -316,13 +311,16 @@ GeoFullPhysVol* LArGeo::LArDetectorConstructionTBEC::createEnvelope() if ( m_hasLeadCompensator ) { std::string CompensatorName = baseName + "::LeadCompensator"; - GeoBox* CompensatorShape = new GeoBox( 152.*CLHEP::cm, 195.*CLHEP::cm, 0.56*CLHEP::cm ); + GeoBox* CompensatorShape = new GeoBox( 152.*GeoModelKernelUnits::cm, 195.*GeoModelKernelUnits::cm, 0.56*GeoModelKernelUnits::cm ); const GeoLogVol* CompensatorLogical = new GeoLogVol( CompensatorName, CompensatorShape, Lead ); GeoPhysVol* CompensatorPhysical = new GeoPhysVol( CompensatorLogical ); tbecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); - tbecMotherPhysical->add( new GeoTransform( HepGeom::Transform3D( CLHEP::HepRotationY( m_eta_pos ), - CLHEP::Hep3Vector( xcent, 0.*CLHEP::cm, 300.*CLHEP::cm ).rotateY( m_eta_pos ) ) ) ); + + GeoTrf::Vector3D tmpvec1(xcent, 0., 300.*GeoModelKernelUnits::cm); + GeoTrf::Vector3D tmpvec1Rotated = GeoTrf::RotateY3D(m_eta_pos)*tmpvec1; + GeoTrf::Translate3D tmpxf1(tmpvec1Rotated.x(),tmpvec1Rotated.y(),tmpvec1Rotated.z()); + tbecMotherPhysical->add(new GeoTransform( tmpxf1 * GeoTrf::RotateY3D(m_eta_pos))); tbecMotherPhysical->add( CompensatorPhysical ); } @@ -333,16 +331,18 @@ GeoFullPhysVol* LArGeo::LArDetectorConstructionTBEC::createEnvelope() GeoPhysVol* LArPhysical = cryoConstruction.GetLArPhysical(); tbecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); - tbecMotherPhysical->add( new GeoTransform( HepGeom::Transform3D( CLHEP::HepRotationY( m_eta_pos ), - CLHEP::Hep3Vector( xcent, 0.*CLHEP::cm, zcent ).rotateY( m_eta_pos ) ) ) ); + GeoTrf::Vector3D tmpvec2(xcent, 0., zcent); + GeoTrf::Vector3D tmpvec2Rotated = GeoTrf::RotateY3D(m_eta_pos)*tmpvec2; + GeoTrf::Translate3D tmpxf2(tmpvec2Rotated.x(),tmpvec2Rotated.y(),tmpvec2Rotated.z()); + tbecMotherPhysical->add(new GeoTransform( tmpxf2 * GeoTrf::RotateY3D(m_eta_pos))); tbecMotherPhysical->add( cryoPhys ); // Beam chambers log << MSG::VERBOSE << "Creating beam chambers ..." << std::endl; - const double beamCZ[ 4 ] = { 17.9*CLHEP::m, 7.673*CLHEP::m, 1.352*CLHEP::m, .256*CLHEP::m }; - const double beamCSize = 11.*CLHEP::cm, beamCTh = 28*CLHEP::mm; // divided by 2, for half-length + const double beamCZ[ 4 ] = { 17.9*GeoModelKernelUnits::m, 7.673*GeoModelKernelUnits::m, 1.352*GeoModelKernelUnits::m, .256*GeoModelKernelUnits::m }; + const double beamCSize = 11.*GeoModelKernelUnits::cm, beamCTh = 28*GeoModelKernelUnits::mm; // divided by 2, for half-length GeoBox* BeamCShape = new GeoBox( beamCSize, beamCSize, beamCTh ); for ( int i = 0; i < 4; i++ ) { @@ -352,15 +352,15 @@ GeoFullPhysVol* LArGeo::LArDetectorConstructionTBEC::createEnvelope() GeoPhysVol* BeamCPhysical = new GeoPhysVol( BeamCLogical ); tbecMotherPhysical->add( new GeoIdentifierTag( 1 ) ); - tbecMotherPhysical->add( new GeoTransform( HepGeom::Translate3D( 0.*CLHEP::cm, 0.*CLHEP::cm, zfface - beamCZ[ i ] ) ) ); + tbecMotherPhysical->add( new GeoTransform( GeoTrf::Translate3D( 0.*GeoModelKernelUnits::cm, 0.*GeoModelKernelUnits::cm, zfface - beamCZ[ i ] ) ) ); tbecMotherPhysical->add( BeamCPhysical ); } // End cap module log << MSG::DEBUG << std::endl - << "Module deviation: " << m_ModuleRotation * (1./CLHEP::deg) << " CLHEP::deg" << std::endl - << "Phi position: " << m_phi_pos * (1./CLHEP::deg) << " CLHEP::deg" << std::endl - << "Y shift: " << m_YShift * (1./CLHEP::mm) << " CLHEP::mm" + << "Module deviation: " << m_ModuleRotation * (1./GeoModelKernelUnits::deg) << " GeoModelKernelUnits::deg" << std::endl + << "Phi position: " << m_phi_pos * (1./GeoModelKernelUnits::deg) << " GeoModelKernelUnits::deg" << std::endl + << "Y shift: " << m_YShift * (1./GeoModelKernelUnits::mm) << " GeoModelKernelUnits::mm" << endmsg; // z = 0 in emecMother is at active region's front face @@ -371,20 +371,17 @@ GeoFullPhysVol* LArGeo::LArDetectorConstructionTBEC::createEnvelope() StatusCode status=detStore->record(sPhysVol,"EMEC_POS"); if(!status.isSuccess()) throw std::runtime_error ("Cannot store EMEC_POS"); - - CLHEP::HepRotation Mrot; - Mrot.rotateY( m_ModuleRotation ); - Mrot.rotateZ( m_phi_pos + 90*CLHEP::deg ); - CLHEP::Hep3Vector pos( -xcent, m_YShift, -51.4/2*CLHEP::cm ); + GeoTrf::Transform3D Mrot(GeoTrf::RotateZ3D( m_phi_pos + 90*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(m_ModuleRotation)); + GeoTrf::Vector3D pos( -xcent, m_YShift, -51.4/2*GeoModelKernelUnits::cm ); if ( LArPhysical != 0 ) { LArPhysical->add( new GeoIdentifierTag( 1 ) ); - LArPhysical->add( new GeoTransform( HepGeom::Transform3D( Mrot, pos ) ) ); + LArPhysical->add( new GeoTransform( GeoTrf::Transform3D( GeoTrf::Translation3D(pos(0),pos(1),pos(2)))*Mrot ) ); LArPhysical->add( emecEnvelope ); } - pos-= CLHEP::Hep3Vector( 0.*CLHEP::mm, 0.*CLHEP::mm, 61.*CLHEP::mm +2.*CLHEP::mm +13.5*CLHEP::mm ); + pos-= GeoTrf::Vector3D( 0.*GeoModelKernelUnits::mm, 0.*GeoModelKernelUnits::mm, 61.*GeoModelKernelUnits::mm +2.*GeoModelKernelUnits::mm +13.5*GeoModelKernelUnits::mm ); if ( m_hasPresampler ) { @@ -398,7 +395,7 @@ GeoFullPhysVol* LArGeo::LArDetectorConstructionTBEC::createEnvelope() if ( LArPhysical != 0 ) { LArPhysical->add( new GeoIdentifierTag( 1 ) ); - LArPhysical->add( new GeoTransform( HepGeom::Transform3D( Mrot, pos ) ) ); + LArPhysical->add( new GeoTransform( GeoTrf::Transform3D( GeoTrf::Translation3D(pos(0),pos(1),pos(2)))*Mrot ) ); LArPhysical->add( PresamplerEnvelope ); } } diff --git a/LArCalorimeter/LArGeoModel/LArHV/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArHV/CMakeLists.txt index edbe76fe6d7232b2e5ce359c947711d75dded1e7..9253cd50ceee92258519445d8cf4b60495e19f61 100644 --- a/LArCalorimeter/LArGeoModel/LArHV/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArHV/CMakeLists.txt @@ -10,7 +10,6 @@ atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel Control/IOVSvc Control/StoreGate - DetectorDescription/GeoModel/GeoModelKernel PRIVATE Database/AthenaPOOL/AthenaPoolUtilities DetectorDescription/Identifier @@ -18,10 +17,14 @@ atlas_depends_on_subdirs( PUBLIC LArCalorimeter/LArCabling LArCalorimeter/LArIdentifier ) +# External dependencies: +find_package( GeoModel ) + # Component(s) in the package: atlas_add_library( LArHV src/*.cpp PUBLIC_HEADERS LArHV - LINK_LIBRARIES AthenaKernel GeoModelKernel IOVSvcLib StoreGateLib SGtests LArCablingLib + INCLUDE_DIRS ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${GEOMODEL_LIBRARIES} AthenaKernel IOVSvcLib StoreGateLib SGtests LArCablingLib PRIVATE_LINK_LIBRARIES AthenaPoolUtilities Identifier GaudiKernel LArIdentifier ) diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/CMakeLists.txt b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/CMakeLists.txt index c8973510949dd2781d8c37477d3ab2b0e110155e..e1965408a201f43964e81f95b0741d9abd052fea 100644 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/CMakeLists.txt +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/CMakeLists.txt @@ -8,7 +8,6 @@ atlas_subdir( LArReadoutGeometry ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoPrimitives DetectorDescription/Identifier LArCalorimeter/LArGeoModel/LArHV @@ -24,6 +23,7 @@ find_package( Boost COMPONENTS filesystem thread system ) find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( LArReadoutGeometry @@ -32,6 +32,6 @@ atlas_add_library( LArReadoutGeometry INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${EIGEN_LIBRARIES} AthenaKernel GeoModelKernel GeoPrimitives Identifier LArHV StoreGateLib SGtests + LINK_LIBRARIES ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaKernel GeoPrimitives Identifier LArHV StoreGateLib SGtests PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} GeoModelUtilities GaudiKernel ) diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBAccordionDetails.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBAccordionDetails.h index 2d22c71dec5780592a14ff5aa9b76420f23fea38..dbf38f1934efcd158f15cca48a7a3a7be1fb9963 100644 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBAccordionDetails.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBAccordionDetails.h @@ -2,8 +2,9 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef EMBAccordionDetails_h -#define EMBAccordionDetails_h +#ifndef LARREADOUTGEOMETRY_EMBACCORDIONDETAILS_H +#define LARREADOUTGEOMETRY_EMBACCORDIONDETAILS_H + class GeoStraightAccSection; class EMBAccordionDetails { diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBBasicReadoutNumbers.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBBasicReadoutNumbers.h index fa0ea1e790795dd797e4a9c0b79ed4142d881815..c99dc41102737d8d6274e6272feba665bd2a929c 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBBasicReadoutNumbers.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBBasicReadoutNumbers.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef EMBBasicReadoutNumbers_h -#define EMBBasicReadoutNumbers_h 1 +#ifndef LARREADOUTGEOMETRY_EMBBASICREADOUTNUMBERS_H +#define LARREADOUTGEOMETRY_EMBBASICREADOUTNUMBERS_H #include <vector> /** * @brief This is a collection of numbers used to create the cell diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBCell.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBCell.h index bffb44e0c515dfcc4c18260eca4df01e1d4fd84c..d0c206b15a5a96f39b7decdb45e0b04b7ea42f0d 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBCell.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBCell.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef EMBCell_h -#define EMBCell_h 1 +#ifndef LARREADOUTGEOMETRY_EMBCELL_H +#define LARREADOUTGEOMETRY_EMBCELL_H #include "LArReadoutGeometry/EMBDetDescr.h" #include "LArReadoutGeometry/EMBHVPathologies.h" diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBCellConstLink.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBCellConstLink.h index 30cc8560f96a51d931e1685802d1d3c7e1d457be..3945cd2167b36f9aa8298fca232a3d99b468c056 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBCellConstLink.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBCellConstLink.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef EMBCellConstLink_h -#define EMBCellConstLink_h 1 +#ifndef LARREADOUTGEOMETRY_EMBCELLCONSTLINK_H +#define LARREADOUTGEOMETRY_EMBCELLCONSTLINK_H #include "GeoModelKernel/ConstLink.h" #include "LArReadoutGeometry/EMBCell.h" diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBDetDescr.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBDetDescr.h index 3ab4e848410e3a8b2e8f3e03d146110e8fe9695c..24af8e170e6ab348dfee2816a7632781bce347aa 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBDetDescr.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBDetDescr.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef EMBDetDescr_h -#define EMBDetDescr_h 1 +#ifndef LARREADOUTGEOMETRY_EMBDETDESCR_H +#define LARREADOUTGEOMETRY_EMBDETDESCR_H #include <vector> #include "GeoModelKernel/CellBinning.h" #include "GeoModelKernel/RCBase.h" diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBDetectorManager.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBDetectorManager.h index 24a63de1ff77022c8267eaeb5c7666fce0a01245..36d6281efbeb197de40dd76a65bda5a0c6295b9d 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBDetectorManager.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBDetectorManager.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#ifndef EMBDetectorManager_h -#define EMBDetectorManager_h 1 +#ifndef LARREADOUTGEOMETRY_EMBDETECTORMANAGER_H +#define LARREADOUTGEOMETRY_EMBDETECTORMANAGER_H #include "AthenaKernel/CLASS_DEF.h" #include <vector> #include "GeoModelKernel/GeoVDetectorManager.h" diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBDetectorRegion.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBDetectorRegion.h index b937471a15389b4e82fe71efb7985d0af0adf21e..b21080241a3abda57591750168dfaf6beb58eb98 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBDetectorRegion.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBDetectorRegion.h @@ -2,20 +2,20 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef EMBDetectorRegion_h -#define EMBDetectorRegion_h 1 +#ifndef LARREADOUTGEOMETRY_EMBDETECTORREGION_H +#define LARREADOUTGEOMETRY_EMBDETECTORREGION_H #include "LArReadoutGeometry/EMBCellConstLink.h" #include "LArReadoutGeometry/EMBDetDescr.h" #include "GeoModelKernel/GeoVDetectorElement.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoPrimitives/GeoPrimitives.h" -#include "GeoPrimitives/CLHEPtoEigenConverter.h" -/** +/** + * @class EMBDetectorRegion + * * @brief Description of a region of homogenous granularity in the * electromagnetic barrel calorimeter - */ - -/** + * * This class combines a description of the cell * granularity with a physical volume to create a * description of an EMB region positioned within ATLAS. @@ -92,12 +92,12 @@ class EMBDetectorRegion : public GeoVDetectorElement /** * @brief Returns the absolute transform of this element. */ - const HepGeom::Transform3D & getAbsoluteTransform () const; + const GeoTrf::Transform3D & getAbsoluteTransform () const; /** * @brief Returns the absolute transform of this element. */ - const HepGeom::Transform3D & getDefAbsoluteTransform () const; + const GeoTrf::Transform3D & getDefAbsoluteTransform () const; /** * @brief The endcap index. 0=negative, 1=positive. diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBHVPathologies.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBHVPathologies.h index a81deb08a18b233a15523060faf0fe86180a3b32..bda7875fba2202788d19c5e7c93831dd72a29a4f 100644 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBHVPathologies.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMBHVPathologies.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef _EMBHVPathologies_h_ -#define _EMBHVPathologies_h_ +#ifndef LARREADOUTGEOMETRY_EMBHVPATHOLOGIES_H +#define LARREADOUTGEOMETRY_EMBHVPATHOLOGIES_H #include "GeoModelKernel/RCBase.h" #include "GeoModelKernel/ConstLink.h" // -------------------------------------------------------- diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECCell.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECCell.h index d3a37620ee8a050a1c11f1343918a3354faab910..b6ff15020e84b91c89e9531c793ad77a0af4542c 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECCell.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECCell.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef EMECCell_h -#define EMECCell_h 1 +#ifndef LARREADOUTGEOMETRY_EMECCELL_H +#define LARREADOUTGEOMETRY_EMECCELL_H #include <iostream> #include "LArReadoutGeometry/EMECDetDescr.h" #include "LArReadoutGeometry/EMECDetectorManager.h" diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECCellConstLink.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECCellConstLink.h index b9ea953e2ccf86f348f85355863a4269d44577d5..3b8865fc7c600dbb987d3c5860556a18237ccd5d 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECCellConstLink.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECCellConstLink.h @@ -2,57 +2,20 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -//## begin module%1.7%.codegen_version preserve=yes -// Read the documentation to learn more about C++ code generator -// versioning. -//## end module%1.7%.codegen_version +#ifndef LARREADOUTGEOMETRY_EMECCELLCONSTLINK_H +#define LARREADOUTGEOMETRY_EMECCELLCONSTLINK_H -//## begin module%44662CA903B1.CLHEP::cm preserve=no -// %X% %Q% %Z% %W% -//## end module%44662CA903B1.CLHEP::cm - -//## begin module%44662CA903B1.cp preserve=no -//## end module%44662CA903B1.cp - -//## Module: EMECCellConstLink%44662CA903B1; Pseudo Package specification -//## Source file: /home/atlas/TEST-12.0.2-00/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECCellConstLink.h - -#ifndef EMECCellConstLink_h -#define EMECCellConstLink_h 1 - -//## begin module%44662CA903B1.additionalIncludes preserve=no -//## end module%44662CA903B1.additionalIncludes - -//## begin module%44662CA903B1.includes preserve=yes #include "LArReadoutGeometry/EMECCell.h" -//## end module%44662CA903B1.includes - -// ConstLink #include "GeoModelKernel/ConstLink.h" -//## begin module%44662CA903B1.additionalDeclarations preserve=yes -//## end module%44662CA903B1.additionalDeclarations - - -//## begin EMECCellConstLink%44662CA903B1.preface preserve=yes -//## end EMECCellConstLink%44662CA903B1.preface - -//## Class: EMECCellConstLink%44662CA903B1; Instantiated Class -// Smart Pointer to EMEC Cells. This reference counted -// link allocates on demand. It audits the total pointer -// count and collects the garbage when nobody's looking. -//## Category: LArReadoutGeometry%445002CB020C -//## Persistence: Transient -//## Cardinality/Multiplicity: n - - - -typedef ConstLink< EMECCell > EMECCellConstLink; - -//## begin EMECCellConstLink%44662CA903B1.postscript preserve=yes -//## end EMECCellConstLink%44662CA903B1.postscript -//## begin module%44662CA903B1.epilog preserve=yes -//## end module%44662CA903B1.epilog +/** + * @class EMECCellConstLink + * + * @brief Smart Pointer to EMEC Cells. This reference counted + * link allocates on demand. It audits the total pointer + * count and collects the garbage when nobody's looking. + */ +typedef ConstLink<EMECCell> EMECCellConstLink; #endif diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetDescr.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetDescr.h index e8eeb8ed29c2f0a54b6ec129a2977b0df4174fde..79b215df8f8f665667c17617f3a11d16e849e05f 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetDescr.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetDescr.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef EMECDetDescr_h -#define EMECDetDescr_h 1 +#ifndef LARREADOUTGEOMETRY_EMECDETDESCR_H +#define LARREADOUTGEOMETRY_EMECDETDESCR_H #include "GeoModelKernel/CellBinning.h" #include <vector> #include "GeoModelKernel/RCBase.h" diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetectorManager.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetectorManager.h index b69b7c1645960cb1247a82672d07b2597f2a7fb5..1b3a1118a557c6e256613439d696ead8112fb755 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetectorManager.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetectorManager.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#ifndef EMECDetectorManager_h -#define EMECDetectorManager_h 1 +#ifndef LARREADOUTGEOMETRY_EMECDETECTORMANAGER_H +#define LARREADOUTGEOMETRY_EMECDETECTORMANAGER_H #include "AthenaKernel/CLASS_DEF.h" #include "GeoModelKernel/GeoVDetectorManager.h" #include "LArHV/EMECHVManager.h" diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetectorRegion.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetectorRegion.h index eedcfc70f59921311b2be95021ece2b0ba9c0371..36764678130615e583a77aada6631e3e55783245 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetectorRegion.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/EMECDetectorRegion.h @@ -2,20 +2,22 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef EMECDetectorRegion_h -#define EMECDetectorRegion_h 1 +#ifndef LARREADOUTGEOMETRY_EMECDETECTORREGION_H +#define LARREADOUTGEOMETRY_EMECDETECTORREGION_H #include "LArReadoutGeometry/EMECCellConstLink.h" #include "LArReadoutGeometry/EMECDetDescr.h" #include "GeoModelKernel/GeoVDetectorElement.h" - +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "GeoPrimitives/GeoPrimitives.h" -#include "GeoPrimitives/CLHEPtoEigenConverter.h" -/** - * @brief Description of a region of homogenous granularity in the - * electromagnetic endcap calorimeter - */ +#include "CLHEP/Geometry/Point3D.h" /** + * @class EMECDetectorRegion + * + * @brief Description of a region of homogenous granularity in the + * electromagnetic endcap calorimeter + * * This class combines a description of the cell * granularity with a physical volume to create a * description of an EMEC region positioned within ATLAS. @@ -23,7 +25,6 @@ */ - class EMECDetectorRegion : public GeoVDetectorElement { @@ -35,7 +36,10 @@ class EMECDetectorRegion : public GeoVDetectorElement /** * @brief Constructor. */ - EMECDetectorRegion (const GeoVFullPhysVol *physVol, const EMECDetDescr *emecDescriptor, DetectorSide endcap, double projectivityDisplacement = 4*CLHEP::cm); + EMECDetectorRegion(const GeoVFullPhysVol *physVol + , const EMECDetDescr *emecDescriptor + , DetectorSide endcap + , double projectivityDisplacement = 4*GeoModelKernelUnits::cm); /** * @brief Destructor @@ -90,12 +94,12 @@ class EMECDetectorRegion : public GeoVDetectorElement /** * @brief Returns the absolute transform of this element. */ - const HepGeom::Transform3D & getAbsoluteTransform () const; + const GeoTrf::Transform3D & getAbsoluteTransform () const; /** * @brief Returns the absolute transform of this element. */ - const HepGeom::Transform3D & getDefAbsoluteTransform () const; + const GeoTrf::Transform3D & getDefAbsoluteTransform () const; /** * @brief Returns the position of the center of the reference diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALDetectorManager.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALDetectorManager.h index 70901e31b5fe820ed54f0783653a86eb35b80ad7..e8002d41a3f9ddf2eeeee73c2963f9205918d4de 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALDetectorManager.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALDetectorManager.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#ifndef FCALDetectorManager_h -#define FCALDetectorManager_h 1 +#ifndef LARREADOUTGEOMETRY_FCALDETECTORMANAGER_H +#define LARREADOUTGEOMETRY_FCALDETECTORMANAGER_H #include "LArReadoutGeometry/FCAL_ChannelMap.h" #include "LArReadoutGeometry/FCALModule.h" #include "AthenaKernel/CLASS_DEF.h" diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALModule.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALModule.h index 57c2be06ea0c54d431afb35d993c95dc42f26621..b86a754eadb337ab792e9e0c4dddd1325bc10de0 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALModule.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALModule.h @@ -2,20 +2,24 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef FCALModule_h -#define FCALModule_h 1 +#ifndef LARREADOUTGEOMETRY_FCALMODULE_H +#define LARREADOUTGEOMETRY_FCALMODULE_H #include <vector> #include "Identifier/Identifier.h" #include "LArReadoutGeometry/FCALTile.h" #include "GeoModelKernel/GeoVDetectorElement.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "GeoPrimitives/GeoPrimitives.h" + class FCALDetectorManager; /** + * @class FCALModule + * * @brief Description of an FCAL Module - */ - -/** This class combines a description of the cell + * + * This class combines a description of the cell * granularity with a physical volume to create a * description of an FCAL module positioned within ATLAS. * It provides access to the FCAL Tiles. @@ -38,7 +42,10 @@ class FCALModule : public GeoVDetectorElement /** * @brief Constructor */ - FCALModule (const GeoVFullPhysVol *physVol, Module module, Endcap endcap, double projectivityDisplacement = 4*CLHEP::cm); + FCALModule (const GeoVFullPhysVol *physVol + , Module module + , Endcap endcap + , double projectivityDisplacement = 4*GeoModelKernelUnits::cm); /** * @brief Desctructor @@ -93,12 +100,12 @@ class FCALModule : public GeoVDetectorElement /** * @brief Returns the absolute transform of this element. */ - const HepGeom::Transform3D & getAbsoluteTransform () const; + const GeoTrf::Transform3D & getAbsoluteTransform () const; /** * @brief Returns the absolute transform of this element. */ - const HepGeom::Transform3D & getDefAbsoluteTransform () const; + const GeoTrf::Transform3D & getDefAbsoluteTransform () const; /** * @brief Returns the absolute transform of this element. diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALTile.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALTile.h index eb9fb30a26cebabfb5bfc2893e7d16b82a0261a9..23a227be49c185360fe177b6814e670f4121ad13 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALTile.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALTile.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef FCALTile_h -#define FCALTile_h 1 +#ifndef LARREADOUTGEOMETRY_FCALTILE_H +#define LARREADOUTGEOMETRY_FCALTILE_H #include "LArReadoutGeometry/FCAL_ChannelMap.h" #include "LArHV/FCALHVModule.h" #include "LArReadoutGeometry/FCALTubeConstLink.h" diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALTube.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALTube.h index 40032f7600c9fb9ff58731d57237574dce9f7a6c..719f0cbdc3b2dae690196216a5fac7765f5ab800 100644 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALTube.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALTube.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef _FCALTube_h_ -#define _FCALTube_h_ +#ifndef LARREADOUTGEOMETRY_FCALTUBE_H +#define LARREADOUTGEOMETRY_FCALTUBE_H #include "GeoModelKernel/RCBase.h" // diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALTubeConstLink.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALTubeConstLink.h index bfdb90423304eaf4d627330d3b01ad8ee088351e..d5f74eb68a9c10529dccbe740e506b4b66935697 100644 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALTubeConstLink.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCALTubeConstLink.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef _FCALTubeConstLink_h_ -#define _FCALTubeConstLink_h_ +#ifndef LARREADOUTGEOMETRY_FCALTUBECONSTLINK_H +#define LARREADOUTGEOMETRY_FCALTUBECONSTLINK_H #include "LArReadoutGeometry/FCALTube.h" #include "GeoModelKernel/ConstLink.h" typedef ConstLink<FCALTube> FCALTubeConstLink; diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCAL_ChannelMap.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCAL_ChannelMap.h index 93b5a5654310b0a25c3498102f30b709ec7c219f..5193bc525e46edb0d968c9e8d7ba53f2de92595b 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCAL_ChannelMap.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/FCAL_ChannelMap.h @@ -12,8 +12,8 @@ // Feb-2002 R.Sobie Use same FCAL geometry files as simulation // *************************************************************************** -#ifndef LARDETDESCR_FCAL_CHANNELMAP_H -#define LARDETDESCR_FCAL_CHANNELMAP_H +#ifndef LARREADOUTGEOMETRY_FCAL_CHANNELMAP_H +#define LARREADOUTGEOMETRY_FCAL_CHANNELMAP_H //<<<<<< INCLUDES >>>>>> diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECCell.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECCell.h index 2c84b67fcee7a521a72d10a27b721db49b35ec3f..f5a02ad5e82700d6c5563a2f9e28a916b9638cce 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECCell.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECCell.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef HECCell_h -#define HECCell_h 1 +#ifndef LARREADOUTGEOMETRY_HECCELL_H +#define LARREADOUTGEOMETRY_HECCELL_H #include "LArReadoutGeometry/HECDetDescr.h" #include "GeoModelKernel/CellBinning.h" #include "GeoModelKernel/RCBase.h" diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECCellConstLink.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECCellConstLink.h index 251a60a1f370b511e7673457159ae2d2e08a7e3c..ead96ae5a6f260804564d0c86dd4a2ec21e220b9 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECCellConstLink.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECCellConstLink.h @@ -2,57 +2,20 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -//## begin module%1.7%.codegen_version preserve=yes -// Read the documentation to learn more about C++ code generator -// versioning. -//## end module%1.7%.codegen_version +#ifndef LARREADOUTGEOMETRY_HECCELLCONSTLINK_H +#define LARREADOUTGEOMETRY_HECCELLCONSTLINK_H -//## begin module%445D13DC008E.CLHEP::cm preserve=no -// %X% %Q% %Z% %W% -//## end module%445D13DC008E.CLHEP::cm - -//## begin module%445D13DC008E.cp preserve=no -//## end module%445D13DC008E.cp - -//## Module: HECCellConstLink%445D13DC008E; Pseudo Package specification -//## Source file: /home/atlas/TEST-12.0.2-00/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECCellConstLink.h - -#ifndef HECCellConstLink_h -#define HECCellConstLink_h 1 - -//## begin module%445D13DC008E.additionalIncludes preserve=no -//## end module%445D13DC008E.additionalIncludes - -//## begin module%445D13DC008E.includes preserve=yes #include "LArReadoutGeometry/HECCell.h" -//## end module%445D13DC008E.includes - -// ConstLink #include "GeoModelKernel/ConstLink.h" -//## begin module%445D13DC008E.additionalDeclarations preserve=yes -//## end module%445D13DC008E.additionalDeclarations - - -//## begin HECCellConstLink%445D13DC008E.preface preserve=yes -//## end HECCellConstLink%445D13DC008E.preface - -//## Class: HECCellConstLink%445D13DC008E; Instantiated Class -// Smart Pointer to HEC Cells. This reference counted link -// allocates on demand. It audits the total pointer count -// and collects the garbage when nobody's looking. -//## Category: LArReadoutGeometry%445002CB020C -//## Persistence: Transient -//## Cardinality/Multiplicity: n - - - -typedef ConstLink< HECCell > HECCellConstLink; - -//## begin HECCellConstLink%445D13DC008E.postscript preserve=yes -//## end HECCellConstLink%445D13DC008E.postscript -//## begin module%445D13DC008E.epilog preserve=yes -//## end module%445D13DC008E.epilog +/** + * @Class: HECCellConstLink + * + * Smart Pointer to HEC Cells. This reference counted link + * allocates on demand. It audits the total pointer count + * and collects the garbage when nobody's looking. + */ +typedef ConstLink<HECCell> HECCellConstLink; #endif diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECDetDescr.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECDetDescr.h index 13f38ffae5af2ef44d66513687de0be65789d6e2..2955c2fdc70618a756e062e34019734ea748dbff 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECDetDescr.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECDetDescr.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef HECDetDescr_h -#define HECDetDescr_h 1 +#ifndef LARREADOUTGEOMETRY_HECDETDESCR_H +#define LARREADOUTGEOMETRY_HECDETDESCR_H #include "LArReadoutGeometry/HECDetectorManager.h" #include "GeoModelKernel/CellBinning.h" #include "GeoModelKernel/RCBase.h" diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECDetectorManager.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECDetectorManager.h index 364fc91e78bb6e265402034643010b74337e30ee..62d552a2d42f39d2006981710b417a3ace89adbf 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECDetectorManager.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECDetectorManager.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#ifndef HECDetectorManager_h -#define HECDetectorManager_h 1 +#ifndef LARREADOUTGEOMETRY_HECDETECTORMANAGER_H +#define LARREADOUTGEOMETRY_HECDETECTORMANAGER_H #include "AthenaKernel/CLASS_DEF.h" #include "LArReadoutGeometry/HECLongBlock.h" #include "GeoModelKernel/GeoVDetectorManager.h" diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECDetectorRegion.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECDetectorRegion.h index c50e9d3010209fecb4b49c605dc0711aaf1b7b14..8be83da82bdb142ebf958e9ffab2a2e2d18ae1af 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECDetectorRegion.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECDetectorRegion.h @@ -2,20 +2,22 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef HECDetectorRegion_h -#define HECDetectorRegion_h 1 +#ifndef LARREADOUTGEOMETRY_HECDETECTORREGION_H +#define LARREADOUTGEOMETRY_HECDETECTORREGION_H #include "LArReadoutGeometry/HECDetDescr.h" #include "LArReadoutGeometry/HECCellConstLink.h" #include "GeoModelKernel/GeoVDetectorElement.h" - +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "GeoPrimitives/GeoPrimitives.h" -#include "GeoPrimitives/CLHEPtoEigenConverter.h" -/** - * @brief Description of a region of homogenous granularity in the - * hadronic endcap calorimeter - */ +#include "CLHEP/Geometry/Point3D.h" /** + * @class HECDetectorRegion + * + * @brief Description of a region of homogenous granularity in the + * hadronic endcap calorimeter + * * This class combines a description of the cell * granularity with a physical volume to create a * description of a HEC region positioned within ATLAS. It @@ -37,7 +39,10 @@ class HECDetectorRegion : public GeoVDetectorElement /** * @brief Constructor. */ - HECDetectorRegion (const GeoVFullPhysVol *physVol, const HECDetDescr *hecDescriptor, DetectorSide endcap, double projectivityDisplacement = 4*CLHEP::cm); + HECDetectorRegion (const GeoVFullPhysVol *physVol + , const HECDetDescr *hecDescriptor + , DetectorSide endcap + , double projectivityDisplacement = 4*GeoModelKernelUnits::cm); /** * @brief Destructor @@ -87,12 +92,12 @@ class HECDetectorRegion : public GeoVDetectorElement /** * @brief Returns the absolute transform of this element. */ - const HepGeom::Transform3D & getAbsoluteTransform () const; + const GeoTrf::Transform3D & getAbsoluteTransform () const; /** * @brief Returns the absolute transform of this element. */ - const HepGeom::Transform3D & getDefAbsoluteTransform () const; + const GeoTrf::Transform3D & getDefAbsoluteTransform () const; /** * @brief Returns the absolute transform of this element. diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECLongBlock.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECLongBlock.h index 4d8a304463f2a35264f9321e3f0362a2eef0c236..281f8cd0a4d68530d11b0ca6ca5a68848af49503 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECLongBlock.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECLongBlock.h @@ -2,16 +2,16 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef HECLongBlock_h -#define HECLongBlock_h 1 +#ifndef LARREADOUTGEOMETRY_HECLONGBLOCK_H +#define LARREADOUTGEOMETRY_HECLONGBLOCK_H #include <vector> #include "LArReadoutGeometry/HECRadialSegment.h" /** + * @class HECLongBlock + * * @brief Description of HEC Longitudinal Block. - */ - -/** + * * The HEC has longitudinal segments known as blocks. Each * block is sliced radially. For a good picture of this, * go here: @@ -43,7 +43,14 @@ class HECLongBlock /** * @brief Constructor. */ - HECLongBlock (unsigned int blockNum, double innerRad, double outerRad, double totalDepth, unsigned int nLarGaps, double frontPlateThick, double backPlateThick, const double etaRange[15]); + HECLongBlock (unsigned int blockNum + , double innerRad + , double outerRad + , double totalDepth + , unsigned int nLarGaps + , double frontPlateThick + , double backPlateThick + , const double etaRange[15]); /** * @brief Destructor diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECRadialSegment.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECRadialSegment.h index bc358b4bf33e457bb4a9ad014ea85a3c5fc600bf..2afb32d67cf408758cf67d1170eddb3b21680895 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECRadialSegment.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/HECRadialSegment.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -#ifndef HECRadialSegment_h -#define HECRadialSegment_h 1 +#ifndef LARREADOUTGEOMETRY_HECRADIALSEGMENT_H +#define LARREADOUTGEOMETRY_HECRADIALSEGMENT_H /** * @brief Description of a radial segment of a HEC module. diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/LArDetectorManager.h b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/LArDetectorManager.h index 49bf4d5411eb631d769ba261215c8755dd7bc370..afb574c8f47fc0479bc7f54f55b2a0cac475bf11 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/LArDetectorManager.h +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/LArReadoutGeometry/LArDetectorManager.h @@ -2,8 +2,8 @@ Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration */ -#ifndef LArDetectorManager_h -#define LArDetectorManager_h 1 +#ifndef LARREADOUTGEOMETRY_LARDETECTORMANAGER_H +#define LARREADOUTGEOMETRY_LARDETECTORMANAGER_H #include "AthenaKernel/CLASS_DEF.h" #include "GeoModelKernel/GeoVDetectorManager.h" class EMBDetectorManager; diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBAccordionDetails.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBAccordionDetails.cxx index 85098c19b38760d703cdf9b23fc0f162bbfde8ae..fe74f2b8f292ae72b4c13ae74c52aa05eac6c9af 100644 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBAccordionDetails.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBAccordionDetails.cxx @@ -11,7 +11,7 @@ #include "GaudiKernel/ISvcLocator.h" #include "GaudiKernel/Bootstrap.h" #include "StoreGate/StoreGateSvc.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include <cmath> class EMBAccordionDetails::Clockwork { @@ -187,7 +187,7 @@ void EMBAccordionDetails::Clockwork::getRPhi() // accordion geometry int EMBAccordionDetails::Clockwork::phiGap(double radius, double xhit, const double yhit) { - const double m2pi = 2.0*CLHEP::pi; + const double m2pi = 2.0*GeoModelKernelUnits::pi; double phi_0=phi0(radius)+gam0; // from -M_PI to M_PI double phi_hit=atan2(yhit,xhit); // from -M_PI to M_PI double dphi=phi_hit-phi_0; @@ -244,23 +244,23 @@ EMBAccordionDetails::EMBAccordionDetails():m_c(new Clockwork()) { // phi of first absorber m_c->gam0 = (*barrelGeometry)[0]->getDouble("PHIFIRST"); // radius of curvature of neutral fiber in the folds - m_c->rint_eleFib = (*barrelGeometry)[0]->getDouble("RINT")*CLHEP::cm; + m_c->rint_eleFib = (*barrelGeometry)[0]->getDouble("RINT")*GeoModelKernelUnits::cm; // r,phi positions of the centre of the folds (nominal geometry) for (int idat = 0; idat < m_c->Nbrt1 ; idat++) { - m_c->rc[idat] = (*barrelGeometry)[0]->getDouble("RHOCEN",idat)*CLHEP::cm; - m_c->phic[idat] = (*barrelGeometry)[0]->getDouble("PHICEN",idat)*CLHEP::deg; - m_c->delta[idat] = (*barrelGeometry)[0]->getDouble("DELTA",idat)*CLHEP::deg; + m_c->rc[idat] = (*barrelGeometry)[0]->getDouble("RHOCEN",idat)*GeoModelKernelUnits::cm; + m_c->phic[idat] = (*barrelGeometry)[0]->getDouble("PHICEN",idat)*GeoModelKernelUnits::deg; + m_c->delta[idat] = (*barrelGeometry)[0]->getDouble("DELTA",idat)*GeoModelKernelUnits::deg; m_c->xc[idat] = m_c->rc[idat]*cos(m_c->phic[idat]); m_c->yc[idat] = m_c->rc[idat]*sin(m_c->phic[idat]); } // - m_c->rMinAccordion = (*barrelGeometry)[0]->getDouble("RIN_AC")*CLHEP::cm; - m_c->rMaxAccordion = (*barrelGeometry)[0]->getDouble("ROUT_AC")*CLHEP::cm; + m_c->rMinAccordion = (*barrelGeometry)[0]->getDouble("RIN_AC")*GeoModelKernelUnits::cm; + m_c->rMaxAccordion = (*barrelGeometry)[0]->getDouble("ROUT_AC")*GeoModelKernelUnits::cm; m_c->etaMaxBarrel = (*barrelGeometry)[0]->getDouble("ETACUT"); - m_c->zMinBarrel = (*barrelLongDiv)[0]->getDouble("ZMAXACT")*CLHEP::cm; - m_c->zMaxBarrel = (*barrelLongDiv)[0]->getDouble("ZMINACT")*CLHEP::cm; + m_c->zMinBarrel = (*barrelLongDiv)[0]->getDouble("ZMAXACT")*GeoModelKernelUnits::cm; + m_c->zMaxBarrel = (*barrelLongDiv)[0]->getDouble("ZMINACT")*GeoModelKernelUnits::cm; // === GU 11/06/2003 total number of cells in phi // to distinguish 1 module (testbeam case) from full Atlas m_c->NCellTot = (*barrelGeometry)[0]->getInt("NCELMX"); diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBBasicReadoutNumbers.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBBasicReadoutNumbers.cxx index e9e195ba9db7b0bfda43ae52e9f7bc7833b2fc33..74c7e745950fecbbad121ae003ffc54cfeb20133 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBBasicReadoutNumbers.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBBasicReadoutNumbers.cxx @@ -13,7 +13,7 @@ #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include "LArReadoutGeometry/EMBBasicReadoutNumbers.h" EMBBasicReadoutNumbers::EMBBasicReadoutNumbers() @@ -56,12 +56,12 @@ EMBBasicReadoutNumbers::EMBBasicReadoutNumbers() - m_presamplerRadius = (*presamplerGeometry)[0]->getDouble("RACTIVE")*CLHEP::cm; - m_rInAc = (*barrelGeometry)[0]->getDouble("RIN_AC")*CLHEP::cm; - m_rOutAc = (*barrelGeometry)[0]->getDouble("ROUT_AC")*CLHEP::cm; + m_presamplerRadius = (*presamplerGeometry)[0]->getDouble("RACTIVE")*GeoModelKernelUnits::cm; + m_rInAc = (*barrelGeometry)[0]->getDouble("RIN_AC")*GeoModelKernelUnits::cm; + m_rOutAc = (*barrelGeometry)[0]->getDouble("ROUT_AC")*GeoModelKernelUnits::cm; for (int i=0;i<8;i++) m_EE.push_back((*barrelLongDiv)[0]->getDouble("EE",i)); - for (int i=0;i<8;i++) m_RMX12.push_back((*barrelLongDiv)[0]->getDouble("RMX12",i)*CLHEP::cm); - for (int i=0;i<53;i++) m_RMX23.push_back((*barrelLongDiv)[0]->getDouble("RMX23",i)*CLHEP::cm); + for (int i=0;i<8;i++) m_RMX12.push_back((*barrelLongDiv)[0]->getDouble("RMX12",i)*GeoModelKernelUnits::cm); + for (int i=0;i<53;i++) m_RMX23.push_back((*barrelLongDiv)[0]->getDouble("RMX23",i)*GeoModelKernelUnits::cm); for (int i=0;i<448;i++) m_EMBSamplingSepInnerRMax.push_back((*embSamplingSepInner)[0]->getDouble("RMAX",i)); // } diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBCellConstLink.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBCellConstLink.cxx index b3e0277b071dfe91cc11549b84de0312582d0a7b..5c3703b20bbde20daa80d1e519fed9253f5a68c4 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBCellConstLink.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBCellConstLink.cxx @@ -2,32 +2,4 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -//## begin module%1.7%.codegen_version preserve=yes -// Read the documentation to learn more about C++ code generator -// versioning. -//## end module%1.7%.codegen_version - -//## begin module%4495834701D3.CLHEP::cm preserve=no -// %X% %Q% %Z% %W% -//## end module%4495834701D3.CLHEP::cm - -//## begin module%4495834701D3.cp preserve=no -//## end module%4495834701D3.cp - -//## Module: EMBCellConstLink%4495834701D3; Pseudo Package body -//## Source file: /home/atlas/TEST-12.0.2-00/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBCellConstLink.cxx - -//## begin module%4495834701D3.additionalIncludes preserve=no -//## end module%4495834701D3.additionalIncludes - -//## begin module%4495834701D3.includes preserve=yes -//## end module%4495834701D3.includes - -// EMBCellConstLink #include "LArReadoutGeometry/EMBCellConstLink.h" -//## begin module%4495834701D3.additionalDeclarations preserve=yes -//## end module%4495834701D3.additionalDeclarations - - -//## begin module%4495834701D3.epilog preserve=yes -//## end module%4495834701D3.epilog diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBDetectorRegion.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBDetectorRegion.cxx index 461879f423b4368660cc3b14cb046f8046cc9756..1fd7744415bc490c07de617e378f06b67e9b9dec 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBDetectorRegion.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBDetectorRegion.cxx @@ -2,102 +2,51 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -//## begin module%1.7%.codegen_version preserve=yes -// Read the documentation to learn more about C++ code generator -// versioning. -//## end module%1.7%.codegen_version - -//## begin module%44957D640109.CLHEP::cm preserve=no -// %X% %Q% %Z% %W% -//## end module%44957D640109.CLHEP::cm - -//## begin module%44957D640109.cp preserve=no -//## end module%44957D640109.cp - -//## Module: EMBDetectorRegion%44957D640109; Pseudo Package body -//## Source file: /home/atlas/TEST-12.0.2-00/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMBDetectorRegion.cxx - -//## begin module%44957D640109.additionalIncludes preserve=no -//## end module%44957D640109.additionalIncludes - -//## begin module%44957D640109.includes preserve=yes #include "GeoModelKernel/GeoVFullPhysVol.h" -//## end module%44957D640109.includes -// EMBDetectorRegion #include "LArReadoutGeometry/EMBDetectorRegion.h" -//## begin module%44957D640109.additionalDeclarations preserve=yes -//## end module%44957D640109.additionalDeclarations - #include "GeoPrimitives/GeoPrimitives.h" -// Class EMBDetectorRegion - -EMBDetectorRegion::EMBDetectorRegion (const GeoVFullPhysVol *physVol, const EMBDetDescr *embDescriptor, DetectorSide endcap) - //## begin EMBDetectorRegion::EMBDetectorRegion%4495802702A2.hasinit preserve=no - //## end EMBDetectorRegion::EMBDetectorRegion%4495802702A2.hasinit - //## begin EMBDetectorRegion::EMBDetectorRegion%4495802702A2.initialization preserve=yes - :GeoVDetectorElement(physVol),m_descriptor(embDescriptor),m_endcapIndex(endcap) - //## end EMBDetectorRegion::EMBDetectorRegion%4495802702A2.initialization +EMBDetectorRegion::EMBDetectorRegion (const GeoVFullPhysVol *physVol + , const EMBDetDescr *embDescriptor + , DetectorSide endcap) + : GeoVDetectorElement(physVol) + , m_descriptor(embDescriptor) + , m_endcapIndex(endcap) { - //## begin EMBDetectorRegion::EMBDetectorRegion%4495802702A2.body preserve=yes m_descriptor->ref(); - //## end EMBDetectorRegion::EMBDetectorRegion%4495802702A2.body } EMBDetectorRegion::~EMBDetectorRegion() { - //## begin EMBDetectorRegion::~EMBDetectorRegion%44957D640109_dest.body preserve=yes m_descriptor->unref(); - //## end EMBDetectorRegion::~EMBDetectorRegion%44957D640109_dest.body } - - -//## Other Operations (implementation) EMBCellConstLink EMBDetectorRegion::getEMBCell (unsigned int ieta, unsigned int iphi) const { - //## begin EMBDetectorRegion::getEMBCell%449580270257.body preserve=yes - return EMBCellConstLink(new EMBCell(m_endcapIndex,m_descriptor,ieta,iphi)); - //## end EMBDetectorRegion::getEMBCell%449580270257.body + return EMBCellConstLink(new EMBCell(m_endcapIndex,m_descriptor,ieta,iphi)); } const Amg::Transform3D EMBDetectorRegion::getAbsoluteTransformAmg () const { - //## begin EMBDetectorRegion::getAbsoluteTransform%449580270293.body preserve=yes const GeoVFullPhysVol *fullPhysVol = getMaterialGeom(); - return Amg::CLHEPTransformToEigen(fullPhysVol->getAbsoluteTransform()); - //## end EMBDetectorRegion::getAbsoluteTransform%449580270293.body + return fullPhysVol->getAbsoluteTransform(); } const Amg::Transform3D EMBDetectorRegion::getDefAbsoluteTransformAmg () const { - //## begin EMBDetectorRegion::getDefAbsoluteTransform%44958027029A.body preserve=yes const GeoVFullPhysVol *fullPhysVol = getMaterialGeom(); - return Amg::CLHEPTransformToEigen(fullPhysVol->getDefAbsoluteTransform()); - //## end EMBDetectorRegion::getDefAbsoluteTransform%44958027029A.body + return fullPhysVol->getDefAbsoluteTransform(); } -const HepGeom::Transform3D & EMBDetectorRegion::getAbsoluteTransform () const +const GeoTrf::Transform3D & EMBDetectorRegion::getAbsoluteTransform () const { - //## begin EMBDetectorRegion::getAbsoluteTransform%449580270293.body preserve=yes const GeoVFullPhysVol *fullPhysVol = getMaterialGeom(); return fullPhysVol->getAbsoluteTransform(); - //## end EMBDetectorRegion::getAbsoluteTransform%449580270293.body } -const HepGeom::Transform3D & EMBDetectorRegion::getDefAbsoluteTransform () const +const GeoTrf::Transform3D & EMBDetectorRegion::getDefAbsoluteTransform () const { - //## begin EMBDetectorRegion::getDefAbsoluteTransform%44958027029A.body preserve=yes const GeoVFullPhysVol *fullPhysVol = getMaterialGeom(); return fullPhysVol->getDefAbsoluteTransform(); - //## end EMBDetectorRegion::getDefAbsoluteTransform%44958027029A.body } - - -// Additional Declarations - //## begin EMBDetectorRegion%44957D640109.declarations preserve=yes - //## end EMBDetectorRegion%44957D640109.declarations - -//## begin module%44957D640109.epilog preserve=yes -//## end module%44957D640109.epilog diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetDescr.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetDescr.cxx index 2b7055ceaed581bd569b6f4bc75377b59f0efd3b..8ed210b57c1075f3f51d57d548a8459875ee5a57 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetDescr.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetDescr.cxx @@ -2,31 +2,9 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -//## begin module%1.7%.codegen_version preserve=yes -// Read the documentation to learn more about C++ code generator -// versioning. -//## end module%1.7%.codegen_version - -//## begin module%446626F5033F.CLHEP::cm preserve=no -// %X% %Q% %Z% %W% -//## end module%446626F5033F.CLHEP::cm - -//## begin module%446626F5033F.cp preserve=no -//## end module%446626F5033F.cp - -//## Module: EMECDetDescr%446626F5033F; Pseudo Package body -//## Source file: /home/atlas/TEST-12.0.2-00/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetDescr.cxx - -//## begin module%446626F5033F.additionalIncludes preserve=no -//## end module%446626F5033F.additionalIncludes - -//## begin module%446626F5033F.includes preserve=yes #include "LArReadoutGeometry/EMECDetectorManager.h" -//## end module%446626F5033F.includes - -// EMECDetDescr #include "LArReadoutGeometry/EMECDetDescr.h" -//## begin module%446626F5033F.additionalDeclarations preserve=yes + /** * @brief An internal class which is none of your business **/ @@ -44,24 +22,20 @@ struct Boundary { {{{1.500, 2.500, 20},{0.000, 0.000, 0},{0.000, 0.000, 0},{0.000, 0.000, 0},{0.000, 0.000, 0},{0.000, 0.000, 0}}, // sample 3 outer {{0.000, 0.000, 0},{0.000, 0.000, 0},{0.000, 0.000, 0},{0.000, 0.000, 0},{0.000, 0.000, 0},{0.000, 0.000, 0}}}}; // sample 3 inner -//## end module%446626F5033F.additionalDeclarations - - -// Class EMECDetDescr - -EMECDetDescr::EMECDetDescr (const EMECDetectorManager *detManager, unsigned int sampling, unsigned int region, unsigned int radialPart, const CellBinning &phiBinning) - //## begin EMECDetDescr::EMECDetDescr%446A2DDF00D2.hasinit preserve=no - //## end EMECDetDescr::EMECDetDescr%446A2DDF00D2.hasinit - //## begin EMECDetDescr::EMECDetDescr%446A2DDF00D2.initialization preserve=yes - :m_manager(detManager),m_samplingIndex(sampling),m_regionIndex(region),m_radialIndex(radialPart),m_phiBinning(phiBinning),m_etaBinning(etaBoundariesEndcap[sampling][radialPart][region].min, - etaBoundariesEndcap[sampling][radialPart][region].max, - etaBoundariesEndcap[sampling][radialPart][region].nDiv) - //## end EMECDetDescr::EMECDetDescr%446A2DDF00D2.initialization +EMECDetDescr::EMECDetDescr (const EMECDetectorManager *detManager + , unsigned int sampling + , unsigned int region + , unsigned int radialPart + , const CellBinning &phiBinning) + : m_manager(detManager) + , m_samplingIndex(sampling) + , m_regionIndex(region) + , m_radialIndex(radialPart) + , m_phiBinning(phiBinning) + , m_etaBinning(etaBoundariesEndcap[sampling][radialPart][region].min + ,etaBoundariesEndcap[sampling][radialPart][region].max + ,etaBoundariesEndcap[sampling][radialPart][region].nDiv) { - //## begin EMECDetDescr::EMECDetDescr%446A2DDF00D2.body preserve=yes - - - // This contains some logic for decoding the sampling separation arrays: if (sampling==0) { m_halfLength.push_back(m_manager->getPresamplerFullLength()/2.0); @@ -129,20 +103,9 @@ EMECDetDescr::EMECDetDescr (const EMECDetectorManager *detManager, unsigned int m_offset.push_back((front+back)/2.); m_halfLength.push_back((back-front)/2.); } - //## end EMECDetDescr::EMECDetDescr%446A2DDF00D2.body } EMECDetDescr::~EMECDetDescr() { - //## begin EMECDetDescr::~EMECDetDescr%446626F5033F_dest.body preserve=yes - //## end EMECDetDescr::~EMECDetDescr%446626F5033F_dest.body } - - -// Additional Declarations - //## begin EMECDetDescr%446626F5033F.declarations preserve=yes - //## end EMECDetDescr%446626F5033F.declarations - -//## begin module%446626F5033F.epilog preserve=yes -//## end module%446626F5033F.epilog diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetectorManager.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetectorManager.cxx index eb4f5668fecab8729cfc749bffda58281f983d0d..a1e3a425bbf4e5ef0afc2d22bc55bc0123e49ec5 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetectorManager.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetectorManager.cxx @@ -12,6 +12,7 @@ #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" +#include "GeoModelKernel/Units.h" #include "LArReadoutGeometry/EMECDetectorManager.h" #include "LArReadoutGeometry/EMECDetectorRegion.h" @@ -55,20 +56,20 @@ EMECDetectorManager::EMECDetectorManager() if (emecSamplingSep->size()==0) throw std::runtime_error("Error getting EmecSamplingSep table"); const IRDBRecord *ess = (*emecSamplingSep)[0]; - for (int j=0;j<7;j++) m_ziw.push_back(ess->getDouble("ZIW",j)*CLHEP::cm); - for (int j=0;j<44;j++) m_zsep12.push_back(ess->getDouble("ZSEP12",j)*CLHEP::cm); - for (int j=0;j<22;j++) m_zsep23.push_back(ess->getDouble("ZSEP23",j)*CLHEP::cm); + for (int j=0;j<7;j++) m_ziw.push_back(ess->getDouble("ZIW",j)*GeoModelKernelUnits::cm); + for (int j=0;j<44;j++) m_zsep12.push_back(ess->getDouble("ZSEP12",j)*GeoModelKernelUnits::cm); + for (int j=0;j<22;j++) m_zsep23.push_back(ess->getDouble("ZSEP23",j)*GeoModelKernelUnits::cm); IRDBRecordset_ptr emecMagicNumbers = rdbAccess->getRecordsetPtr("EmecMagicNumbers", larVersionKey.tag(),larVersionKey.node()); if (emecMagicNumbers->size()==0) { emecMagicNumbers = rdbAccess->getRecordsetPtr("EmecMagicNumbers", "EmecMagicNumbers-00"); if (emecMagicNumbers->size()==0) throw std::runtime_error("Error getting EmecMagicNumbers table"); } - m_MagicNumbers->focalToRef =(*emecMagicNumbers)[0]->getDouble("FOCALTOREF")*CLHEP::mm; - m_MagicNumbers->refToActive =(*emecMagicNumbers)[0]->getDouble("REFTOACTIVE")*CLHEP::mm; - m_MagicNumbers->activeLength =(*emecMagicNumbers)[0]->getDouble("ACTIVELENGTH")*CLHEP::mm; - m_MagicNumbers->refToPresampler =(*emecMagicNumbers)[0]->getDouble("REFTOPRESAMPLER")*CLHEP::mm; - m_MagicNumbers->presamplerLength =(*emecMagicNumbers)[0]->getDouble("PRESAMPLERLENGTH")*CLHEP::mm; + m_MagicNumbers->focalToRef =(*emecMagicNumbers)[0]->getDouble("FOCALTOREF")*GeoModelKernelUnits::mm; + m_MagicNumbers->refToActive =(*emecMagicNumbers)[0]->getDouble("REFTOACTIVE")*GeoModelKernelUnits::mm; + m_MagicNumbers->activeLength =(*emecMagicNumbers)[0]->getDouble("ACTIVELENGTH")*GeoModelKernelUnits::mm; + m_MagicNumbers->refToPresampler =(*emecMagicNumbers)[0]->getDouble("REFTOPRESAMPLER")*GeoModelKernelUnits::mm; + m_MagicNumbers->presamplerLength =(*emecMagicNumbers)[0]->getDouble("PRESAMPLERLENGTH")*GeoModelKernelUnits::mm; } diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetectorRegion.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetectorRegion.cxx index 18e11c2c63efc541c61cdf60786a26d0a67a972a..b2587ffbec7bb3f9a49b66227250b798c04d86e3 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetectorRegion.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetectorRegion.cxx @@ -2,87 +2,49 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -//## begin module%1.7%.codegen_version preserve=yes -// Read the documentation to learn more about C++ code generator -// versioning. -//## end module%1.7%.codegen_version - -//## begin module%446626240261.CLHEP::cm preserve=no -// %X% %Q% %Z% %W% -//## end module%446626240261.CLHEP::cm - -//## begin module%446626240261.cp preserve=no -//## end module%446626240261.cp - -//## Module: EMECDetectorRegion%446626240261; Pseudo Package body -//## Source file: /home/atlas/TEST-12.0.2-00/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/EMECDetectorRegion.cxx - -//## begin module%446626240261.additionalIncludes preserve=no -//## end module%446626240261.additionalIncludes - -//## begin module%446626240261.includes preserve=yes #include "GeoModelKernel/GeoVFullPhysVol.h" -//## end module%446626240261.includes -// EMECDetectorRegion #include "LArReadoutGeometry/EMECDetectorRegion.h" -//## begin module%446626240261.additionalDeclarations preserve=yes #include "GeoModelKernel/GeoVFullPhysVol.h" #include "GeoModelKernel/GeoPcon.h" -//## end module%446626240261.additionalDeclarations - - -// Class EMECDetectorRegion - -EMECDetectorRegion::EMECDetectorRegion (const GeoVFullPhysVol *physVol, const EMECDetDescr *emecDescriptor, DetectorSide endcap, double projectivityDisplacement) - //## begin EMECDetectorRegion::EMECDetectorRegion%4466280603B3.hasinit preserve=no - //## end EMECDetectorRegion::EMECDetectorRegion%4466280603B3.hasinit - //## begin EMECDetectorRegion::EMECDetectorRegion%4466280603B3.initialization preserve=yes - :GeoVDetectorElement(physVol),m_descriptor(emecDescriptor),m_endcapIndex(endcap),m_projectivityDisplacement(projectivityDisplacement) - //## end EMECDetectorRegion::EMECDetectorRegion%4466280603B3.initialization +#include "GeoPrimitives/CLHEPtoEigenConverter.h" + +EMECDetectorRegion::EMECDetectorRegion (const GeoVFullPhysVol *physVol + , const EMECDetDescr *emecDescriptor + , DetectorSide endcap + , double projectivityDisplacement) + : GeoVDetectorElement(physVol) + , m_descriptor(emecDescriptor) + , m_endcapIndex(endcap) + , m_projectivityDisplacement(projectivityDisplacement) { - //## begin EMECDetectorRegion::EMECDetectorRegion%4466280603B3.body preserve=yes emecDescriptor->ref(); - //## end EMECDetectorRegion::EMECDetectorRegion%4466280603B3.body } - EMECDetectorRegion::~EMECDetectorRegion() { - //## begin EMECDetectorRegion::~EMECDetectorRegion%446626240261_dest.body preserve=yes m_descriptor->unref(); - //## end EMECDetectorRegion::~EMECDetectorRegion%446626240261_dest.body } - - -//## Other Operations (implementation) EMECCellConstLink EMECDetectorRegion::getEMECCell (unsigned int ieta, unsigned int iphi) const { - //## begin EMECDetectorRegion::getEMECCell%446629070190.body preserve=yes return EMECCellConstLink(new EMECCell(m_endcapIndex,m_descriptor,ieta,iphi)); - //## end EMECDetectorRegion::getEMECCell%446629070190.body } -const HepGeom::Transform3D & EMECDetectorRegion::getAbsoluteTransform () const +const GeoTrf::Transform3D & EMECDetectorRegion::getAbsoluteTransform () const { - //## begin EMECDetectorRegion::getAbsoluteTransform%446E079E0373.body preserve=yes const GeoVFullPhysVol *fullPhysVol = getMaterialGeom(); return fullPhysVol->getAbsoluteTransform(); - //## end EMECDetectorRegion::getAbsoluteTransform%446E079E0373.body } -const HepGeom::Transform3D & EMECDetectorRegion::getDefAbsoluteTransform () const +const GeoTrf::Transform3D & EMECDetectorRegion::getDefAbsoluteTransform () const { - //## begin EMECDetectorRegion::getDefAbsoluteTransform%446E079E037D.body preserve=yes const GeoVFullPhysVol *fullPhysVol = getMaterialGeom(); return fullPhysVol->getDefAbsoluteTransform(); - //## end EMECDetectorRegion::getDefAbsoluteTransform%446E079E037D.body } HepGeom::Point3D<double> EMECDetectorRegion::getRefPlanePos () const { - //## begin EMECDetectorRegion::getRefPlanePos%45432A27024F.body preserve=yes const GeoVFullPhysVol *physVol = getMaterialGeom(); const GeoLogVol *logVol = physVol->getLogVol(); const GeoShape *shape = logVol->getShape(); @@ -91,28 +53,25 @@ HepGeom::Point3D<double> EMECDetectorRegion::getRefPlanePos () const } GeoPcon *pcon = (GeoPcon *) shape; HepGeom::Point3D<double> center(0,0,pcon->getZPlane(0)-m_descriptor->getManager()->getRefToActive()); - return (physVol->getAbsoluteTransform()*center); - //## end EMECDetectorRegion::getRefPlanePos%45432A27024F.body + return (Amg::EigenTransformToCLHEP(physVol->getAbsoluteTransform())*center); } HepGeom::Point3D<double> EMECDetectorRegion::getFocalPointPos () const { - //## begin EMECDetectorRegion::getFocalPointPos%45432A270254.body preserve=yes HepGeom::Point3D<double> zRef = getRefPlanePos(); int sgn = m_endcapIndex==0 ? -1 : +1; HepGeom::Point3D<double> focalPos = HepGeom::Point3D<double>(0,0,sgn*m_descriptor->getManager()->getFocalToRef()); return zRef - focalPos; - //## end EMECDetectorRegion::getFocalPointPos%45432A270254.body } const Amg::Transform3D EMECDetectorRegion::getAbsoluteTransformAmg () const { - return Amg::CLHEPTransformToEigen(getAbsoluteTransform()); + return getAbsoluteTransform(); } const Amg::Transform3D EMECDetectorRegion::getDefAbsoluteTransformAmg () const { - return Amg::CLHEPTransformToEigen(getDefAbsoluteTransform()); + return getDefAbsoluteTransform(); } Amg::Vector3D EMECDetectorRegion::getRefPlanePosAmg () const diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/FCALModule.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/FCALModule.cxx index 9203e27804f0391f8e3753ad0cfdf5f01daa4c4b..ab5f93bdbb3fae5cb9c4cd4d40ce0573e8276f76 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/FCALModule.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/FCALModule.cxx @@ -9,8 +9,6 @@ #include "GeoModelKernel/GeoShape.h" #include "GeoModelKernel/GeoTubs.h" -#include "GeoPrimitives/CLHEPtoEigenConverter.h" - // FCALModule #include "LArReadoutGeometry/FCALModule.h" @@ -121,13 +119,13 @@ double FCALModule::getFullDepthZ (const FCALTile& ) const return m_dz; } -const HepGeom::Transform3D & FCALModule::getAbsoluteTransform () const +const GeoTrf::Transform3D & FCALModule::getAbsoluteTransform () const { const GeoVFullPhysVol *fullPhysVol = getMaterialGeom(); return fullPhysVol->getAbsoluteTransform(); } -const HepGeom::Transform3D & FCALModule::getDefAbsoluteTransform () const +const GeoTrf::Transform3D & FCALModule::getDefAbsoluteTransform () const { const GeoVFullPhysVol *fullPhysVol = getMaterialGeom(); return fullPhysVol->getDefAbsoluteTransform(); @@ -135,12 +133,12 @@ const HepGeom::Transform3D & FCALModule::getDefAbsoluteTransform () const const Amg::Transform3D FCALModule::getAbsoluteTransformAmg () const { - return Amg::CLHEPTransformToEigen(getAbsoluteTransform()); + return getAbsoluteTransform(); } const Amg::Transform3D FCALModule::getDefAbsoluteTransformAmg () const { - return Amg::CLHEPTransformToEigen(getDefAbsoluteTransform()); + return getDefAbsoluteTransform(); } void FCALModule::setManager (FCALDetectorManager* fcalManager) diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/FCAL_ChannelMap.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/FCAL_ChannelMap.cxx index 109d17096df32b1984acf927c2a27b6fb4595828..5cb3662d79dd502fedb2856954f6d3bb3cbfb4f6 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/FCAL_ChannelMap.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/FCAL_ChannelMap.cxx @@ -13,7 +13,7 @@ //**************************************************************************** #include "LArReadoutGeometry/FCAL_ChannelMap.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include "boost/io/ios_state.hpp" #include <sstream> #include <iostream> @@ -21,7 +21,7 @@ #include <stdio.h> /* === Geometrical parameters === */ -const double FCAL_ChannelMap::m_tubeSpacing[] = {0.75*CLHEP::cm, 0.8179*CLHEP::cm, 0.90*CLHEP::cm}; +const double FCAL_ChannelMap::m_tubeSpacing[] = {0.75*GeoModelKernelUnits::cm, 0.8179*GeoModelKernelUnits::cm, 0.90*GeoModelKernelUnits::cm}; FCAL_ChannelMap::FCAL_ChannelMap( int flag) { @@ -78,7 +78,7 @@ void FCAL_ChannelMap::add_tube(const std::string & tileName, int mod, int /*id*/ tileName_t tilename = (a3 << 16) + a2; - TubePosition tb(tilename, x*CLHEP::cm, y*CLHEP::cm,""); + TubePosition tb(tilename, x*GeoModelKernelUnits::cm, y*GeoModelKernelUnits::cm,""); // Add offsets, becaues iy and ix can be negative HMA i = i+200; @@ -104,7 +104,7 @@ void FCAL_ChannelMap::add_tube(const std::string & tileName, int mod, int /*id*/ tileName_t tilename = (a3 << 16) + a2; - TubePosition tb(tilename, x*CLHEP::cm, y*CLHEP::cm, hvFT); + TubePosition tb(tilename, x*GeoModelKernelUnits::cm, y*GeoModelKernelUnits::cm, hvFT); // Add offsets, becaues iy and ix can be negative HMA i = i+200; diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/GeoStraightAccSection.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/GeoStraightAccSection.cxx index ef21f9c64ba80bd8edac5d5c3b8a59f70baf6acb..2ba99e25d806d6d132469158c97a1aa64c58d5c4 100644 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/GeoStraightAccSection.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/GeoStraightAccSection.cxx @@ -19,11 +19,11 @@ void GeoStraightAccSection::Clockwork::fillFastCache() { if (!r1) buildFastCache(); for (int i=0;i<1024;i++) { for (int j=0;j<14; j++) { - HepGeom::Transform3D XF = (*r2->transfunction[j])(i); - r1->xcent[i][j] = XF.dx(); - r1->ycent[i][j] = XF.dy(); - r1->cosu [i][j] = -XF.xy(); - r1->sinu [i][j] = XF.xz(); + GeoTrf::Transform3D XF = (*r2->transfunction[j])(i); + r1->xcent[i][j] = XF(0,3); //dx + r1->ycent[i][j] = XF(1,3); //dy + r1->cosu [i][j] = -XF(0,1);//xy + r1->sinu [i][j] = XF(0,2);//xz r1->halfLength[i][j]= r2->halfLength[j]; } } diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECCellConstLink.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECCellConstLink.cxx index 46055d56776a02abf8b592ef4912042fcbf2078f..470eeef52a10e9050d0fbbaca7c810ee2f3d5c66 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECCellConstLink.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECCellConstLink.cxx @@ -2,32 +2,4 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -//## begin module%1.7%.codegen_version preserve=yes -// Read the documentation to learn more about C++ code generator -// versioning. -//## end module%1.7%.codegen_version - -//## begin module%445D13DC008E.CLHEP::cm preserve=no -// %X% %Q% %Z% %W% -//## end module%445D13DC008E.CLHEP::cm - -//## begin module%445D13DC008E.cp preserve=no -//## end module%445D13DC008E.cp - -//## Module: HECCellConstLink%445D13DC008E; Pseudo Package body -//## Source file: /home/atlas/TEST-12.0.2-00/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECCellConstLink.cxx - -//## begin module%445D13DC008E.additionalIncludes preserve=no -//## end module%445D13DC008E.additionalIncludes - -//## begin module%445D13DC008E.includes preserve=yes -//## end module%445D13DC008E.includes - -// HECCellConstLink #include "LArReadoutGeometry/HECCellConstLink.h" -//## begin module%445D13DC008E.additionalDeclarations preserve=yes -//## end module%445D13DC008E.additionalDeclarations - - -//## begin module%445D13DC008E.epilog preserve=yes -//## end module%445D13DC008E.epilog diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetDescr.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetDescr.cxx index 0daac9b171190547354b8a5397973d0ecda5a967..e44269da848d34410c3f0cc7f131f49a12f10d83 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetDescr.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetDescr.cxx @@ -2,30 +2,7 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -//## begin module%1.7%.codegen_version preserve=yes -// Read the documentation to learn more about C++ code generator -// versioning. -//## end module%1.7%.codegen_version - -//## begin module%4457CB630376.CLHEP::cm preserve=no -// %X% %Q% %Z% %W% -//## end module%4457CB630376.CLHEP::cm - -//## begin module%4457CB630376.cp preserve=no -//## end module%4457CB630376.cp - -//## Module: HECDetDescr%4457CB630376; Pseudo Package body -//## Source file: /home/atlas/TEST-12.0.2-00/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetDescr.cxx - -//## begin module%4457CB630376.additionalIncludes preserve=no -//## end module%4457CB630376.additionalIncludes - -//## begin module%4457CB630376.includes preserve=yes -//## end module%4457CB630376.includes - -// HECDetDescr #include "LArReadoutGeometry/HECDetDescr.h" -//## begin module%4457CB630376.additionalDeclarations preserve=yes #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Bootstrap.h" #include "StoreGate/StoreGateSvc.h" @@ -34,30 +11,21 @@ #include "RDBAccessSvc/IRDBAccessSvc.h" #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" -//## end module%4457CB630376.additionalDeclarations - -// Class HECDetDescr - -HECDetDescr::HECDetDescr (const HECDetectorManager *detManager, unsigned int sampling, unsigned int region, const CellBinning &phiBinning, bool isTestBeam) - //## begin HECDetDescr::HECDetDescr%445A11A300C0.hasinit preserve=no - //## end HECDetDescr::HECDetDescr%445A11A300C0.hasinit - //## begin HECDetDescr::HECDetDescr%445A11A300C0.initialization preserve=yes - // We use here cell width to disambiguate inner HEC and Outer HEC. Inner HEC has wider cells (0.2) than Outer hec (0.1) - : - m_manager(detManager), - m_samplingIndex(sampling), - m_regionIndex(region), - m_phiBinning(phiBinning), - m_outerRadSegNumber(region==0 ? 9: 3), - m_etaBinning(0,0,1,0), - m_numBlocks(sampling==0 ? 1:2), - m_firstBlock(sampling==0 ? 0 : 2*sampling-1) - - //## end HECDetDescr::HECDetDescr%445A11A300C0.initialization +HECDetDescr::HECDetDescr (const HECDetectorManager *detManager + , unsigned int sampling + , unsigned int region + , const CellBinning &phiBinning + , bool isTestBeam) + : m_manager(detManager) + , m_samplingIndex(sampling) + , m_regionIndex(region) + , m_phiBinning(phiBinning) + , m_outerRadSegNumber(region==0 ? 9: 3) + , m_etaBinning(0,0,1,0) + , m_numBlocks(sampling==0 ? 1:2) + , m_firstBlock(sampling==0 ? 0 : 2*sampling-1) { - //## begin HECDetDescr::HECDetDescr%445A11A300C0.body preserve=yes - // This will soon be unnecessary (when the wheels are divided! ISvcLocator *svcLocator = Gaudi::svcLocator(); IRDBAccessSvc* rdbAccess; @@ -100,23 +68,13 @@ HECDetDescr::HECDetDescr (const HECDetectorManager *detManager, unsigned int sam m_zMax.push_back(back); } pos += m_manager->getBlock(b)->getDepth(); - if(isTestBeam && b==2) pos += (*hadronicEndcap)[0]->getDouble("GAPWHL")*CLHEP::cm; + if(isTestBeam && b==2) pos += (*hadronicEndcap)[0]->getDouble("GAPWHL")*GeoModelKernelUnits::cm; } } - //## end HECDetDescr::HECDetDescr%445A11A300C0.body } HECDetDescr::~HECDetDescr() { - //## begin HECDetDescr::~HECDetDescr%4457CB630376_dest.body preserve=yes - //## end HECDetDescr::~HECDetDescr%4457CB630376_dest.body } - -// Additional Declarations - //## begin HECDetDescr%4457CB630376.declarations preserve=yes - //## end HECDetDescr%4457CB630376.declarations - -//## begin module%4457CB630376.epilog preserve=yes -//## end module%4457CB630376.epilog diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetectorManager.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetectorManager.cxx index ea7d7346027b7f863a683d83eadb9773b46051eb..d270dcd4fd3ae88c6bd0444a4fee6442ab124e7d 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetectorManager.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetectorManager.cxx @@ -12,6 +12,7 @@ #include "RDBAccessSvc/IRDBAccessSvc.h" #include "GeoModelInterfaces/IGeoModelSvc.h" #include "GeoModelUtilities/DecodeVersionKey.h" +#include "GeoModelKernel/Units.h" #include "LArReadoutGeometry/HECDetectorManager.h" #include "LArHV/LArHVManager.h" #include "StoreGate/StoreGate.h" @@ -59,21 +60,21 @@ HECDetectorManager::HECDetectorManager(bool isTestBeam) if (hecPad->size()!=hecLongBlock->size()) throw std::runtime_error("Error. Hec[LongitudinalBlock,Pad] size discrepancy"); // Get the focal length: - m_focalToRef1 = (*hadronicEndcap)[0]->getDouble("ZORIG")*CLHEP::cm; + m_focalToRef1 = (*hadronicEndcap)[0]->getDouble("ZORIG")*GeoModelKernelUnits::cm; m_focalToRef2 = m_focalToRef1; - double betweenWheel=(*hadronicEndcap)[0]->getDouble("GAPWHL")*CLHEP::cm; + double betweenWheel=(*hadronicEndcap)[0]->getDouble("GAPWHL")*GeoModelKernelUnits::cm; if(!m_isTestBeam) m_focalToRef2 += betweenWheel; for (unsigned int b=0;b<hecLongBlock->size();b++) { double etaBoundary[15]; const IRDBRecord *block = (*hecLongBlock)[b]; unsigned int blockNumber= (unsigned int) (block->getDouble("IBLC")+0.01); // will truncate down. - double innerRadius= block->getDouble("BLRMN")*CLHEP::cm; - double outerRadius= block->getDouble("BLRMX")*CLHEP::cm; - double depth= block->getDouble("BLDPTH")*CLHEP::cm; + double innerRadius= block->getDouble("BLRMN")*GeoModelKernelUnits::cm; + double outerRadius= block->getDouble("BLRMX")*GeoModelKernelUnits::cm; + double depth= block->getDouble("BLDPTH")*GeoModelKernelUnits::cm; unsigned int numLArGaps= (unsigned int) (block->getDouble("BLMOD") + 0.01); // will truncate down. - double frontPlateThickness= block->getDouble("PLATE0")*CLHEP::cm; - double backPlateThickness= block->getDouble("PLATEE")*CLHEP::cm; + double frontPlateThickness= block->getDouble("PLATE0")*GeoModelKernelUnits::cm; + double backPlateThickness= block->getDouble("PLATEE")*GeoModelKernelUnits::cm; const IRDBRecord *pad = (*hecPad)[b]; for (int j=0;j<15;j++) etaBoundary[j]=pad->getDouble("ETA",j); diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetectorRegion.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetectorRegion.cxx index 5d84c1e1c502e530a2def0a84ff9d9adc68276c1..e1d196f4820ef23fb8630ac991b326891d8d8f87 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetectorRegion.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECDetectorRegion.cxx @@ -5,8 +5,16 @@ #include "LArReadoutGeometry/HECDetectorRegion.h" #include "GeoModelKernel/GeoVFullPhysVol.h" #include "GeoModelKernel/GeoPcon.h" -HECDetectorRegion::HECDetectorRegion (const GeoVFullPhysVol *physVol, const HECDetDescr *hecDescriptor, DetectorSide endcap, double projectivityDisplacement) - :GeoVDetectorElement(physVol),m_descriptor(hecDescriptor),m_endcapIndex(endcap),m_projectivityDisplacement(projectivityDisplacement) +#include "GeoPrimitives/CLHEPtoEigenConverter.h" + +HECDetectorRegion::HECDetectorRegion (const GeoVFullPhysVol *physVol + , const HECDetDescr *hecDescriptor + , DetectorSide endcap + , double projectivityDisplacement) + : GeoVDetectorElement(physVol) + , m_descriptor(hecDescriptor) + , m_endcapIndex(endcap) + , m_projectivityDisplacement(projectivityDisplacement) { hecDescriptor->ref(); } @@ -17,21 +25,19 @@ HECDetectorRegion::~HECDetectorRegion() m_descriptor->unref(); } - - HECCellConstLink HECDetectorRegion::getHECCell (unsigned int ieta, unsigned int iphi) const { HECCell *cell = new HECCell(m_endcapIndex,m_descriptor,ieta,iphi); return HECCellConstLink(cell); } -const HepGeom::Transform3D & HECDetectorRegion::getAbsoluteTransform () const +const GeoTrf::Transform3D & HECDetectorRegion::getAbsoluteTransform () const { const GeoVFullPhysVol *fullPhysVol = getMaterialGeom(); return fullPhysVol->getAbsoluteTransform(); } -const HepGeom::Transform3D & HECDetectorRegion::getDefAbsoluteTransform () const +const GeoTrf::Transform3D & HECDetectorRegion::getDefAbsoluteTransform () const { const GeoVFullPhysVol *fullPhysVol = getMaterialGeom(); return fullPhysVol->getDefAbsoluteTransform(); @@ -44,12 +50,12 @@ Amg::Vector3D HECDetectorRegion::getRefPlanePosAmg () const } const Amg::Transform3D HECDetectorRegion::getAbsoluteTransformAmg () const { - return Amg::CLHEPTransformToEigen(getAbsoluteTransform()); + return getAbsoluteTransform(); } const Amg::Transform3D HECDetectorRegion::getDefAbsoluteTransformAmg () const { - return Amg::CLHEPTransformToEigen(getDefAbsoluteTransform()); + return getDefAbsoluteTransform(); } Amg::Vector3D HECDetectorRegion::getFocalPointPosAmg () const @@ -72,7 +78,7 @@ HepGeom::Point3D<double> HECDetectorRegion::getRefPlanePos () const } GeoPcon *pcon = (GeoPcon *) shape; HepGeom::Point3D<double> center(0,0,pcon->getZPlane(0)); - return (physVol->getAbsoluteTransform()*center); + return (Amg::EigenTransformToCLHEP(physVol->getAbsoluteTransform())*center); } HepGeom::Point3D<double> HECDetectorRegion::getFocalPointPos () const diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECLongBlock.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECLongBlock.cxx index 426bdec982af64eb2da7050dad3b69167ea90bdf..d6b6e4c14e29300e3d5a654ba4ccfab25db96df7 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECLongBlock.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECLongBlock.cxx @@ -2,41 +2,9 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -//## begin module%1.7%.codegen_version preserve=yes -// Read the documentation to learn more about C++ code generator -// versioning. -//## end module%1.7%.codegen_version - -//## begin module%4457C98D0025.CLHEP::cm preserve=no -// %X% %Q% %Z% %W% -//## end module%4457C98D0025.CLHEP::cm - -//## begin module%4457C98D0025.cp preserve=no -//## end module%4457C98D0025.cp - -//## Module: HECLongBlock%4457C98D0025; Pseudo Package body -//## Source file: /home/atlas/TEST-12.0.2-00/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECLongBlock.cxx - -//## begin module%4457C98D0025.additionalIncludes preserve=no -//## end module%4457C98D0025.additionalIncludes - -//## begin module%4457C98D0025.includes preserve=yes -//## end module%4457C98D0025.includes - -// HECLongBlock #include "LArReadoutGeometry/HECLongBlock.h" -//## begin module%4457C98D0025.additionalDeclarations preserve=yes -//## end module%4457C98D0025.additionalDeclarations - -#include <cstdlib> // For NULL - - -// Class HECLongBlock HECLongBlock::HECLongBlock(const HECLongBlock &right) - //## begin HECLongBlock::HECLongBlock%4457C98D0025_copy.hasinit preserve=no - //## end HECLongBlock::HECLongBlock%4457C98D0025_copy.hasinit - //## begin HECLongBlock::HECLongBlock%4457C98D0025_copy.initialization preserve=yes : m_blockNumber(right.m_blockNumber), m_innerRadius(right.m_innerRadius), m_outerRadius(right.m_outerRadius), @@ -44,17 +12,18 @@ HECLongBlock::HECLongBlock(const HECLongBlock &right) m_numLArGaps(right.m_numLArGaps), m_frontPlateThickness(right.m_frontPlateThickness), m_backPlateThickness(right.m_backPlateThickness) - //## end HECLongBlock::HECLongBlock%4457C98D0025_copy.initialization { - //## begin HECLongBlock::HECLongBlock%4457C98D0025_copy.body preserve=yes for (int i=0;i<14;i++) m_RadialSeg.push_back( right.m_RadialSeg[i] ? (HECRadialSegment *) 0 : new HECRadialSegment(*right.m_RadialSeg[i])); - //## end HECLongBlock::HECLongBlock%4457C98D0025_copy.body } -HECLongBlock::HECLongBlock (unsigned int blockNum, double innerRad, double outerRad, double totalDepth, unsigned int nLarGaps, double frontPlateThick, double backPlateThick, const double etaRange[15]) - //## begin HECLongBlock::HECLongBlock%4457DF0A0112.hasinit preserve=no - //## end HECLongBlock::HECLongBlock%4457DF0A0112.hasinit - //## begin HECLongBlock::HECLongBlock%4457DF0A0112.initialization preserve=yes +HECLongBlock::HECLongBlock (unsigned int blockNum + , double innerRad + , double outerRad + , double totalDepth + , unsigned int nLarGaps + , double frontPlateThick + , double backPlateThick + , const double etaRange[15]) : m_blockNumber(blockNum), m_innerRadius(innerRad), m_outerRadius(outerRad), @@ -62,11 +31,8 @@ HECLongBlock::HECLongBlock (unsigned int blockNum, double innerRad, double outer m_numLArGaps(nLarGaps), m_frontPlateThickness(frontPlateThick), m_backPlateThickness(backPlateThick) - - //## end HECLongBlock::HECLongBlock%4457DF0A0112.initialization { - //## begin HECLongBlock::HECLongBlock%4457DF0A0112.body preserve=yes - for (int i=0;i<14;i++) m_RadialSeg.push_back(NULL); + for (int i=0;i<14;i++) m_RadialSeg.push_back(nullptr); bool started=false; for (int i=0;i<14;i++) { if (etaRange[i]!=etaRange[i+1]) { @@ -77,21 +43,16 @@ HECLongBlock::HECLongBlock (unsigned int blockNum, double innerRad, double outer if (started) break; } } - //## end HECLongBlock::HECLongBlock%4457DF0A0112.body } HECLongBlock::~HECLongBlock() { - //## begin HECLongBlock::~HECLongBlock%4457C98D0025_dest.body preserve=yes for (int i=0;i<14;i++) delete m_RadialSeg[i]; - //## end HECLongBlock::~HECLongBlock%4457C98D0025_dest.body } - HECLongBlock & HECLongBlock::operator=(const HECLongBlock &right) { - //## begin HECLongBlock::operator=%4457C98D0025_assign.body preserve=yes if (this != & right) { m_blockNumber=right.m_blockNumber; m_innerRadius=right.m_innerRadius; @@ -105,13 +66,4 @@ HECLongBlock & HECLongBlock::operator=(const HECLongBlock &right) } return *this; - //## end HECLongBlock::operator=%4457C98D0025_assign.body } - - -// Additional Declarations - //## begin HECLongBlock%4457C98D0025.declarations preserve=yes - //## end HECLongBlock%4457C98D0025.declarations - -//## begin module%4457C98D0025.epilog preserve=yes -//## end module%4457C98D0025.epilog diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECRadialSegment.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECRadialSegment.cxx index d6e53cacbaaefcbea39363313cf56c7aaf7cb75a..7d42f68578a538f6bcc61262e8d131d712f1af5a 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECRadialSegment.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECRadialSegment.cxx @@ -2,38 +2,4 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -//## begin module%1.7%.codegen_version preserve=yes -// Read the documentation to learn more about C++ code generator -// versioning. -//## end module%1.7%.codegen_version - -//## begin module%4457F4A6038D.CLHEP::cm preserve=no -// %X% %Q% %Z% %W% -//## end module%4457F4A6038D.CLHEP::cm - -//## begin module%4457F4A6038D.cp preserve=no -//## end module%4457F4A6038D.cp - -//## Module: HECRadialSegment%4457F4A6038D; Pseudo Package body -//## Source file: /home/atlas/TEST-12.0.2-00/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/HECRadialSegment.cxx - -//## begin module%4457F4A6038D.additionalIncludes preserve=no -//## end module%4457F4A6038D.additionalIncludes - -//## begin module%4457F4A6038D.includes preserve=yes -//## end module%4457F4A6038D.includes - -// HECRadialSegment #include "LArReadoutGeometry/HECRadialSegment.h" -//## begin module%4457F4A6038D.additionalDeclarations preserve=yes -//## end module%4457F4A6038D.additionalDeclarations - - -// Class HECRadialSegment - -// Additional Declarations - //## begin HECRadialSegment%4457F4A6038D.declarations preserve=yes - //## end HECRadialSegment%4457F4A6038D.declarations - -//## begin module%4457F4A6038D.epilog preserve=yes -//## end module%4457F4A6038D.epilog diff --git a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/LArDetectorManager.cxx b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/LArDetectorManager.cxx index 677441118a879b69abbf35ea5c0025fff26e92fb..547b7aa8d2e4d9cf68a3a977d53a8c8f2475e113 100755 --- a/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/LArDetectorManager.cxx +++ b/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/LArDetectorManager.cxx @@ -2,101 +2,50 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ -//## begin module%1.7%.codegen_version preserve=yes -// Read the documentation to learn more about C++ code generator -// versioning. -//## end module%1.7%.codegen_version - -//## begin module%4466058E0231.CLHEP::cm preserve=no -// %X% %Q% %Z% %W% -//## end module%4466058E0231.CLHEP::cm - -//## begin module%4466058E0231.cp preserve=no -//## end module%4466058E0231.cp - -//## Module: LArDetectorManager%4466058E0231; Pseudo Package body -//## Source file: /home/atlas/TEST-12.0.2-00/LArCalorimeter/LArGeoModel/LArReadoutGeometry/src/LArDetectorManager.cxx - -//## begin module%4466058E0231.additionalIncludes preserve=no -//## end module%4466058E0231.additionalIncludes - -//## begin module%4466058E0231.includes preserve=yes -//## end module%4466058E0231.includes - -// LArDetectorManager #include "LArReadoutGeometry/LArDetectorManager.h" -//## begin module%4466058E0231.additionalDeclarations preserve=yes -//## end module%4466058E0231.additionalDeclarations - #include <algorithm> - -// Class LArDetectorManager - LArDetectorManager::LArDetectorManager() : m_embManager (0), m_emecManager (0), m_hecManager (0), m_fcalManager (0), m_isTestBeam(false) - //## begin LArDetectorManager::LArDetectorManager%4466058E0231_const.hasinit preserve=no - //## end LArDetectorManager::LArDetectorManager%4466058E0231_const.hasinit - //## begin LArDetectorManager::LArDetectorManager%4466058E0231_const.initialization preserve=yes - //## end LArDetectorManager::LArDetectorManager%4466058E0231_const.initialization { - //## begin LArDetectorManager::LArDetectorManager%4466058E0231_const.body preserve=yes - //## end LArDetectorManager::LArDetectorManager%4466058E0231_const.body } -LArDetectorManager::LArDetectorManager (const EMBDetectorManager* emb, const EMECDetectorManager* emec, const HECDetectorManager* hec, const FCALDetectorManager* fcal) - //## begin LArDetectorManager::LArDetectorManager%446607D90148.hasinit preserve=no - //## end LArDetectorManager::LArDetectorManager%446607D90148.hasinit - //## begin LArDetectorManager::LArDetectorManager%446607D90148.initialization preserve=yes - :m_embManager(emb),m_emecManager(emec),m_hecManager(hec),m_fcalManager(fcal),m_isTestBeam(true) - //## end LArDetectorManager::LArDetectorManager%446607D90148.initialization +LArDetectorManager::LArDetectorManager (const EMBDetectorManager* emb + , const EMECDetectorManager* emec + , const HECDetectorManager* hec + , const FCALDetectorManager* fcal) + : m_embManager(emb) + , m_emecManager(emec) + , m_hecManager(hec) + , m_fcalManager(fcal) + , m_isTestBeam(true) { - //## begin LArDetectorManager::LArDetectorManager%446607D90148.body preserve=yes setName("LArMgr"); - //## end LArDetectorManager::LArDetectorManager%446607D90148.body } - LArDetectorManager::~LArDetectorManager() { - //## begin LArDetectorManager::~LArDetectorManager%4466058E0231_dest.body preserve=yes for (unsigned int i=0;i<getNumTreeTops();i++) getTreeTop(i)->unref(); - //## end LArDetectorManager::~LArDetectorManager%4466058E0231_dest.body } - - -//## Other Operations (implementation) PVConstLink LArDetectorManager::getTreeTop (unsigned int i) const { - //## begin LArDetectorManager::getTreeTop%446607D300E0.body preserve=yes return m_treeTop[i]; - //## end LArDetectorManager::getTreeTop%446607D300E0.body } unsigned int LArDetectorManager::getNumTreeTops () const { - //## begin LArDetectorManager::getNumTreeTops%446607D300E7.body preserve=yes return m_treeTop.size(); - //## end LArDetectorManager::getNumTreeTops%446607D300E7.body } void LArDetectorManager::addTreeTop (PVLink treeTop) { - //## begin LArDetectorManager::addTreeTop%446608BE02DD.body preserve=yes if (std::find(m_treeTop.begin(),m_treeTop.end(),treeTop)!=m_treeTop.end()) return; m_treeTop.push_back(treeTop); treeTop->ref(); - //## end LArDetectorManager::addTreeTop%446608BE02DD.body } -// Additional Declarations - //## begin LArDetectorManager%4466058E0231.declarations preserve=yes - //## end LArDetectorManager%4466058E0231.declarations - -//## begin module%4466058E0231.epilog preserve=yes -//## end module%4466058E0231.epilog diff --git a/LArCalorimeter/LArTrackingGeometry/CMakeLists.txt b/LArCalorimeter/LArTrackingGeometry/CMakeLists.txt index 42e780db286aac3d1eb4fb207909d81d9dc9b0bc..55befff29371019609bda2a31dadbe83ec1315bb 100644 --- a/LArCalorimeter/LArTrackingGeometry/CMakeLists.txt +++ b/LArCalorimeter/LArTrackingGeometry/CMakeLists.txt @@ -14,9 +14,7 @@ atlas_depends_on_subdirs( PUBLIC PRIVATE Calorimeter/CaloDetDescr Control/StoreGate - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities - DetectorDescription/GeoPrimitives LArCalorimeter/LArGeoModel/LArReadoutGeometry Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv Tracking/TrkDetDescr/TrkDetDescrUtils @@ -27,13 +25,14 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( LArTrackingGeometry src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${EIGEN_LIBRARIES} AthenaBaseComps GaudiKernel TrkDetDescrInterfaces CaloDetDescrLib StoreGateLib SGtests GeoModelKernel GeoModelUtilities GeoPrimitives LArReadoutGeometry TrkDetDescrGeoModelCnv TrkDetDescrUtils TrkGeometry TrkGeometrySurfaces TrkSurfaces TrkVolumes ) + INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaBaseComps GaudiKernel TrkDetDescrInterfaces CaloDetDescrLib StoreGateLib SGtests GeoModelUtilities LArReadoutGeometry TrkDetDescrGeoModelCnv TrkDetDescrUtils TrkGeometry TrkGeometrySurfaces TrkSurfaces TrkVolumes ) # Install files from the package: atlas_install_headers( LArTrackingGeometry ) diff --git a/LArCalorimeter/LArTrackingGeometry/src/LArVolumeBuilder.cxx b/LArCalorimeter/LArTrackingGeometry/src/LArVolumeBuilder.cxx index 9bbb751949e8754817ace7c3fdaa09f6d2c3c745..89cb49713f733b69cc48d84ad112224a896b98f4 100755 --- a/LArCalorimeter/LArTrackingGeometry/src/LArVolumeBuilder.cxx +++ b/LArCalorimeter/LArTrackingGeometry/src/LArVolumeBuilder.cxx @@ -22,6 +22,7 @@ #include "GeoModelKernel/GeoTrd.h" #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoPVConstLink.h" +#include "GeoModelKernel/Units.h" #include "GeoModelUtilities/StoredPhysVol.h" // Trk #include "TrkDetDescrInterfaces/ITrackingVolumeHelper.h" @@ -46,12 +47,10 @@ #include "TrkSurfaces/DiscBounds.h" #include "TrkGeometrySurfaces/SlidingCylinderSurface.h" #include "TrkGeometrySurfaces/SlidingDiscSurface.h" -// Amg -#include "GeoPrimitives/CLHEPtoEigenConverter.h" // StoreGate #include "StoreGate/StoreGateSvc.h" -using CLHEP::mm; +using GeoModelKernelUnits::mm; // constructor LAr::LArVolumeBuilder::LArVolumeBuilder(const std::string& t, const std::string& n, const IInterface* p) : @@ -170,7 +169,7 @@ const std::vector<const Trk::TrackingVolume*>* LAr::LArVolumeBuilder::trackingVo unsigned int currentChilds = currentVPhysVolLink->getNChildVols(); ATH_MSG_DEBUG( "Processing " << currentLogVol->getName() << "... has " - << currentChilds << " childs, position " << currentVPhysVolLink->getX().getTranslation()); + << currentChilds << " childs, position " << currentVPhysVolLink->getX().translation()); //printInfo( currentVPhysVolLink,2); } @@ -677,7 +676,7 @@ const std::vector<const Trk::TrackingVolume*>* LAr::LArVolumeBuilder::trackingVo const GeoShape* lArNegativeEndcapShape = lArNegativeEndcapLogVol->getShape(); // get the transforms - const Amg::Transform3D& lArPositiveEndcapTransform = Amg::CLHEPTransformToEigen(lArPositiveEndcapPhysVol->getAbsoluteTransform()); + const Amg::Transform3D& lArPositiveEndcapTransform = lArPositiveEndcapPhysVol->getAbsoluteTransform(); //const Amg::Transform3D& lArNegativeEndcapTransform = Amg::CLHEPTransformToEigen(lArNegativeEndcapPhysVol->getAbsoluteTransform()); Amg::Vector3D lArPositiveEndcapNomPosition = lArPositiveEndcapTransform.translation(); //Amg::Vector3D lArNegativeEndcapNomPosition = lArNegativeEndcapTransform.translation(); @@ -980,7 +979,7 @@ const std::vector<const Trk::TrackingVolume*>* LAr::LArVolumeBuilder::trackingVo if ( lArECPresamplerLogVol ) { const GeoShape* lArECPresamplerShape = lArECPresamplerLogVol->getShape(); - const Amg::Transform3D& lArECPresamplerTransform = Amg::CLHEPTransformToEigen(lArECPresamplerPhysVol->getAbsoluteTransform()); + const Amg::Transform3D& lArECPresamplerTransform = lArECPresamplerPhysVol->getAbsoluteTransform(); // dynamic cast to 'Tubs' shape const GeoTubs* psTubs = dynamic_cast<const GeoTubs*>(lArECPresamplerShape); @@ -1130,10 +1129,10 @@ const std::vector<const Trk::TrackingVolume*>* LAr::LArVolumeBuilder::trackingVo const GeoShape* lArNegativeHec2Shape = lArNegativeHec2LogVol->getShape(); // get the transforms - const Amg::Transform3D& lArPositiveHec1Transform = Amg::CLHEPTransformToEigen(lArPositiveHec1PhysVol->getAbsoluteTransform()); - const Amg::Transform3D& lArPositiveHec2Transform = Amg::CLHEPTransformToEigen(lArPositiveHec2PhysVol->getAbsoluteTransform()); - const Amg::Transform3D& lArNegativeHec1Transform = Amg::CLHEPTransformToEigen(lArNegativeHec1PhysVol->getAbsoluteTransform()); - const Amg::Transform3D& lArNegativeHec2Transform = Amg::CLHEPTransformToEigen(lArNegativeHec2PhysVol->getAbsoluteTransform()); + const Amg::Transform3D& lArPositiveHec1Transform = lArPositiveHec1PhysVol->getAbsoluteTransform(); + const Amg::Transform3D& lArPositiveHec2Transform = lArPositiveHec2PhysVol->getAbsoluteTransform(); + const Amg::Transform3D& lArNegativeHec1Transform = lArNegativeHec1PhysVol->getAbsoluteTransform(); + const Amg::Transform3D& lArNegativeHec2Transform = lArNegativeHec2PhysVol->getAbsoluteTransform(); Amg::Vector3D lArPositiveHec1NomPosition = lArPositiveHec1Transform.translation(); Amg::Vector3D lArPositiveHec2NomPosition = lArPositiveHec2Transform.translation(); @@ -1327,13 +1326,13 @@ const std::vector<const Trk::TrackingVolume*>* LAr::LArVolumeBuilder::trackingVo // get the transforms - const Amg::Transform3D& lArPositiveFcal1Transform = Amg::CLHEPTransformToEigen(lArPositiveFcal1PhysVol->getAbsoluteTransform()); - const Amg::Transform3D& lArPositiveFcal2Transform = Amg::CLHEPTransformToEigen(lArPositiveFcal2PhysVol->getAbsoluteTransform()); - const Amg::Transform3D& lArPositiveFcal3Transform = Amg::CLHEPTransformToEigen(lArPositiveFcal3PhysVol->getAbsoluteTransform()); + const Amg::Transform3D& lArPositiveFcal1Transform = lArPositiveFcal1PhysVol->getAbsoluteTransform(); + const Amg::Transform3D& lArPositiveFcal2Transform = lArPositiveFcal2PhysVol->getAbsoluteTransform(); + const Amg::Transform3D& lArPositiveFcal3Transform = lArPositiveFcal3PhysVol->getAbsoluteTransform(); - const Amg::Transform3D& lArNegativeFcal1Transform = Amg::CLHEPTransformToEigen(lArNegativeFcal1PhysVol->getAbsoluteTransform()); - const Amg::Transform3D& lArNegativeFcal2Transform = Amg::CLHEPTransformToEigen(lArNegativeFcal2PhysVol->getAbsoluteTransform()); - const Amg::Transform3D& lArNegativeFcal3Transform = Amg::CLHEPTransformToEigen(lArNegativeFcal3PhysVol->getAbsoluteTransform()); + const Amg::Transform3D& lArNegativeFcal1Transform = lArNegativeFcal1PhysVol->getAbsoluteTransform(); + const Amg::Transform3D& lArNegativeFcal2Transform = lArNegativeFcal2PhysVol->getAbsoluteTransform(); + const Amg::Transform3D& lArNegativeFcal3Transform = lArNegativeFcal3PhysVol->getAbsoluteTransform(); Amg::Vector3D lArPositiveFcal1NomPosition = lArPositiveFcal1Transform.translation(); Amg::Vector3D lArPositiveFcal2NomPosition = lArPositiveFcal2Transform.translation(); @@ -1707,7 +1706,7 @@ const std::vector<const Trk::TrackingVolume*>* LAr::LArVolumeBuilder::trackingVo // pass MBTS info to CaloTG // MBTS const PVConstLink topEC = m_lArMgr->getTreeTop(1U); - Amg::Transform3D trIn= Amg::CLHEPTransformToEigen(topEC->getX()); + Amg::Transform3D trIn= topEC->getX(); Amg::Transform3D tr2(trIn); const PVConstLink mbts= getChild(topEC,"MBTS_mother",trIn); if (mbts) { @@ -2001,7 +2000,7 @@ void LAr::LArVolumeBuilder::printInfo(const PVConstLink pv, int gen) const std::cout<<"polycone:"<<i<<":"<< con->getRMinPlane(i)<<","<<con->getRMaxPlane(i)<<","<<con->getZPlane(i)<< std::endl; } } - Amg::Transform3D transf = Amg::CLHEPTransformToEigen(pv->getX()); + Amg::Transform3D transf = pv->getX(); std::cout << "position:"<< "R:"<<transf.translation().perp()<<",phi:"<< transf.translation().phi()<<",x:"<<transf.translation().x()<<",y:"<<transf.translation().y()<<",z:"<<transf.translation().z()<<std::endl; int igen = 0; @@ -2016,7 +2015,7 @@ void LAr::LArVolumeBuilder::printChildren(const PVConstLink pv,int gen, int igen if (gen>-1 && igen>gen) return; std::string cname; for (unsigned int ic=0; ic<nc; ic++) { - Amg::Transform3D transf = trIn*Amg::CLHEPTransformToEigen(pv->getXToChildVol(ic)); + Amg::Transform3D transf = trIn*pv->getXToChildVol(ic); // //std::cout << " dumping transform to subcomponent" << std::endl; @@ -2059,7 +2058,7 @@ GeoPVConstLink LAr::LArVolumeBuilder::getChild(GeoPVConstLink mother, std::strin // subcomponents unsigned int nc = mother->getNChildVols(); for (unsigned int ic=0; ic<nc; ic++) { - Amg::Transform3D transf = trIn*Amg::CLHEPTransformToEigen(mother->getXToChildVol(ic)); + Amg::Transform3D transf = trIn*mother->getXToChildVol(ic); GeoPVConstLink cv = mother->getChildVol(ic); const GeoLogVol* clv = cv->getLogVol(); if (clv->getName().substr(0,name.size())==name) { trIn = transf; return cv; } diff --git a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/CMakeLists.txt b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/CMakeLists.txt index 6c888a1fb43735419391c68c39aad022867c5dfe..0366a8b6bda59b4824c3f7c2915779feec6bec39 100644 --- a/MuonSpectrometer/MuonCnv/MuonEventTPCnv/CMakeLists.txt +++ b/MuonSpectrometer/MuonCnv/MuonEventTPCnv/CMakeLists.txt @@ -38,7 +38,6 @@ atlas_depends_on_subdirs( Database/TPTools DetectorDescription/AGDD/AGDDKernel DetectorDescription/AtlasDetDescr - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoPrimitives DetectorDescription/IdDict DetectorDescription/IdDictDetDescr @@ -53,6 +52,8 @@ atlas_depends_on_subdirs( Tracking/TrkEvent/TrkMeasurementBase Tracking/TrkEvent/TrkPseudoMeasurementOnTrack ) +find_package( GeoModel ) + # Component(s) in the package: atlas_add_tpcnv_library( MuonEventTPCnv MuonEventTPCnv/*.h src/*.cxx @@ -122,8 +123,8 @@ foreach( name CscMcDataCnv_p1_test CscSimDataCnv_p1_test atlas_add_test( ${name} SOURCES test/${name}.cxx - LINK_LIBRARIES GaudiKernel TrkSurfaces TrkEventTPCnv TestTools - CxxUtils StoreGateLib TPTools AGDDKernel AtlasDetDescr GeoModelKernel + LINK_LIBRARIES ${GEOMODEL_LIBRARIES} GaudiKernel TrkSurfaces TrkEventTPCnv TestTools + CxxUtils StoreGateLib TPTools AGDDKernel AtlasDetDescr IdDict IdDictDetDescr IdDictParser InDetIdentifier InDetReadoutGeometry MuonAGDDDescription MuonReadoutGeometry MuonIdHelpersLib TrkEventPrimitives TrkPseudoMeasurementOnTrack MuonEventTPCnv diff --git a/MuonSpectrometer/MuonDetDescr/MuonAGDD/src/MuonAGDDToolHelper.cxx b/MuonSpectrometer/MuonDetDescr/MuonAGDD/src/MuonAGDDToolHelper.cxx index 5f521c42b94bb660f6ba64bbacc3a154430de935..df0bc158a34a825ca7f6b3be5cd4af493b59a7aa 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonAGDD/src/MuonAGDDToolHelper.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonAGDD/src/MuonAGDDToolHelper.cxx @@ -4,6 +4,11 @@ #include "MuonAGDD/MuonAGDDToolHelper.h" +#include "MuonReadoutGeometry/MuonDetectorManager.h" +#include "MuonReadoutGeometry/MuonReadoutElement.h" +#include "MuonReadoutGeometry/MMReadoutElement.h" +#include "MuonReadoutGeometry/sTgcReadoutElement.h" + #include "GaudiKernel/ISvcLocator.h" #include "GaudiKernel/IToolSvc.h" #include "GaudiKernel/IConversionSvc.h" @@ -24,10 +29,6 @@ #include "RDBAccessSvc/IRDBRecord.h" #include "RDBAccessSvc/IRDBRecordset.h" #include "GeoModelInterfaces/IGeoModelSvc.h" -#include "MuonReadoutGeometry/MuonDetectorManager.h" -#include "MuonReadoutGeometry/MuonReadoutElement.h" -#include "MuonReadoutGeometry/MMReadoutElement.h" -#include "MuonReadoutGeometry/sTgcReadoutElement.h" #include "StoreGate/DataHandle.h" #include "StoreGate/StoreGateSvc.h" diff --git a/MuonSpectrometer/MuonDetDescr/MuonAGDDBase/CMakeLists.txt b/MuonSpectrometer/MuonDetDescr/MuonAGDDBase/CMakeLists.txt index b1bfb46c97458201c76c258ee071f8c14486dab4..de6de38d7809c6fbbfab980bd2bc061a6d8ceb7a 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonAGDDBase/CMakeLists.txt +++ b/MuonSpectrometer/MuonDetDescr/MuonAGDDBase/CMakeLists.txt @@ -15,13 +15,14 @@ atlas_depends_on_subdirs( PUBLIC Control/StoreGate DetectorDescription/AGDD/AGDDModel DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel MuonSpectrometer/MuonGeoModel ) +find_package( GeoModel ) + # Component(s) in the package: atlas_add_library( MuonAGDDBase src/*.cxx PUBLIC_HEADERS MuonAGDDBase LINK_LIBRARIES AGDDControl AGDDKernel GaudiKernel MuonAGDDDescription StoreGateLib SGtests MuonGeoModelLib - PRIVATE_LINK_LIBRARIES AGDDModel GeoModelKernel ) + PRIVATE_LINK_LIBRARIES ${GEOMODEL_LIBRARIES} AGDDModel ) diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/CMakeLists.txt b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/CMakeLists.txt index 86f379f0de4edcea7439fca5e094ddcbcea40e97..f650896851b269bdb46824a39c452a491d5b7a6b 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/CMakeLists.txt +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/CMakeLists.txt @@ -9,7 +9,6 @@ atlas_subdir( MuonReadoutGeometry ) atlas_depends_on_subdirs( PUBLIC Control/AthenaBaseComps Control/AthenaKernel - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoPrimitives DetectorDescription/Identifier GaudiKernel @@ -25,12 +24,13 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( MuonReadoutGeometry src/*.c* PUBLIC_HEADERS MuonReadoutGeometry - INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${EIGEN_LIBRARIES} AthenaBaseComps AthenaKernel GeoModelKernel GeoPrimitives Identifier GaudiKernel MuonAlignmentData TrkDetElementBase TrkDistortedSurfaces TrkSurfaces MuonIdHelpersLib StoreGateLib SGtests + INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaBaseComps AthenaKernel GeoPrimitives Identifier GaudiKernel MuonAlignmentData TrkDetElementBase TrkDistortedSurfaces TrkSurfaces MuonIdHelpersLib StoreGateLib SGtests PRIVATE_LINK_LIBRARIES AGDDModel MuonAGDDDescription ) diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h index b170efc64c2910cc8bf9342d36c83f752697d8e7..3aaa542867912fceacf73eb9650447afc88f335c 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h @@ -8,8 +8,8 @@ #include "GaudiKernel/StatusCode.h" #include "GaudiKernel/MsgStream.h" +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/GeoVDetectorManager.h" -#include "GeoModelKernel/GeoAlignableTransform.h" #include "MuonIdHelpers/CscIdHelper.h" #include "MuonIdHelpers/RpcIdHelper.h" #include "MuonIdHelpers/TgcIdHelper.h" diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h index 5881534508ad4516cece6259d7a4378dcb9edfb6..0053447576ae9d937244c1ddda06668cd6ecb79b 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h @@ -210,8 +210,8 @@ private: const MuonStation* m_parentMuonStation; MuonDetectorManager* m_muon_mgr; - mutable const Amg::Transform3D* m_absTransform; - mutable const Amg::Transform3D* m_defTransform; + mutable const HepGeom::Transform3D* m_absTransform; + mutable const HepGeom::Transform3D* m_defTransform; }; MsgStream& MuonReadoutElement::reLog() const {return *m_MsgStream;} @@ -279,23 +279,23 @@ void MuonReadoutElement::setCachingFlag(int value) inline const Amg::Transform3D & MuonReadoutElement::absTransform() const { - if( !m_absTransform ) m_absTransform = new Amg::Transform3D(Amg::CLHEPTransformToEigen(absTransformCLHEP())); - return *m_absTransform; + return getMaterialGeom()->getAbsoluteTransform(); } inline const Amg::Transform3D & MuonReadoutElement::defTransform() const { - if( !m_defTransform ) m_defTransform = new Amg::Transform3D(Amg::CLHEPTransformToEigen(defTransformCLHEP())); - return *m_defTransform; + return getMaterialGeom()->getDefAbsoluteTransform(); } inline const HepGeom::Transform3D & MuonReadoutElement::absTransformCLHEP() const { - return getMaterialGeom()->getAbsoluteTransform(); + if( !m_absTransform ) m_absTransform = new HepGeom::Transform3D(Amg::EigenTransformToCLHEP(getMaterialGeom()->getAbsoluteTransform())); + return *m_absTransform; } inline const HepGeom::Transform3D & MuonReadoutElement::defTransformCLHEP() const { - return getMaterialGeom()->getDefAbsoluteTransform(); + if( !m_defTransform ) m_defTransform = new HepGeom::Transform3D(Amg::EigenTransformToCLHEP(getMaterialGeom()->getDefAbsoluteTransform())); + return *m_defTransform; } } // namespace MuonGM diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonStation.h b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonStation.h index a9ae3a9a65d7a6ec41f9839667619c1e280fdc24..1de091d048b631c2d46795e098de6a0f70c8581e 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonStation.h +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonStation.h @@ -6,6 +6,7 @@ #define MuonStation_H #include "MuonReadoutGeometry/GlobalUtilities.h" +#include "GeoPrimitives/CLHEPtoEigenConverter.h" #include "GeoModelKernel/GeoAlignableTransform.h" #include <map> @@ -188,7 +189,7 @@ MuonStation::getGeoTransform() const HepGeom::Transform3D MuonStation::getTransform() const - {return m_transform->getTransform();} + {return Amg::EigenTransformToCLHEP(m_transform->getTransform());} std::string MuonStation::getKey() { diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/CscReadoutElement.cxx b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/CscReadoutElement.cxx index e0a53c8b7998870b988a51dce9b9fccde0f11354..dd33094a70d253fd5d55d7f4366dd0268700c835 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/CscReadoutElement.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/CscReadoutElement.cxx @@ -80,8 +80,8 @@ CscReadoutElement::CscReadoutElement(GeoVFullPhysVol* pv, std::string stName, // <<tname<<" child " // <<ngv<<" is a gas volume with tag " // <<lgg<<std::endl; - const CLHEP::Hep3Vector trans = - (pvc->getXToChildVol(ich)*pc->getXToChildVol(ngv)).getTranslation(); + const GeoTrf::Vector3D trans = + (pvc->getXToChildVol(ich)*pc->getXToChildVol(ngv)).translation(); m_wireplanez[lgg] = trans.x(); //std::cerr<<lgg<<" gg - depth is at "<< m_wireplanez[lgg]<<std::endl; lgg --; diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MMReadoutElement.cxx b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MMReadoutElement.cxx index cc34eaebf8f2d529989ef5a23107afe9f344889b..bc0a595f5800c1a6a22c1b09ba5b6f32fcc4288e 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MMReadoutElement.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MMReadoutElement.cxx @@ -80,7 +80,7 @@ namespace MuonGM { //std::cerr<<" navigating MM named " // <<childname<<" child " // <<ich<<" is a layer with tag "<<llay<<std::endl; - m_Xlg[llay-1] = Amg::CLHEPTransformToEigen(pvc->getXToChildVol(ich)); + m_Xlg[llay-1] = pvc->getXToChildVol(ich); // save layer dimensions if (llay==1) { if (pc->getLogVol()->getShape()->type()=="Trd") { diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx index 7ea7670ae5a8b5f71e4b4c468485589741f3cedc..fddb2b1769135e1ffd635044a6602dbe4de75d4a 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MdtReadoutElement.cxx @@ -21,9 +21,9 @@ #include "TrkSurfaces/TrapezoidBounds.h" #include "TrkSurfaces/PlaneSurface.h" #include "GeoModelKernel/GeoTube.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoPrimitives/CLHEPtoEigenConverter.h" - #include "MuonAlignmentData/BLinePar.h" #include "GaudiKernel/MsgStream.h" @@ -585,18 +585,18 @@ MdtReadoutElement::nodeform_localTubePos(int multilayer, int tubelayer, int tube } } } - HepGeom::Transform3D tubeTrans = cv->getXToChildVol(ii); + GeoTrf::Transform3D tubeTrans = cv->getXToChildVol(ii); PVConstLink tv = cv->getChildVol(ii); double maxtol = 0.0000001; - if (std::abs(xtube - tubeTrans[0][3]) > maxtol || + if (std::abs(xtube - tubeTrans(0,3)) > maxtol || //std::abs(ytube - tubeTrans[1][3]) > maxtol && std::abs(tubeTrans[1][3]) > maxtol || - std::abs(ztube - tubeTrans[2][3]) > maxtol) { + std::abs(ztube - tubeTrans(2,3)) > maxtol) { reLog()<<MSG::ERROR << "taking localTubepos from RAW geoModel!!! MISMATCH IN local Y-Z (amdb) for a MDT with cutouts " << endmsg << ": from tube-id and pitch, tube pos = " << xtube << ", " << ytube << ", " << ztube - << " but geoModel gives " << tubeTrans[0][3] - << ", " << tubeTrans[1][3] << ", " << tubeTrans[2][3] + << " but geoModel gives " << tubeTrans(0,3) + << ", " << tubeTrans(1,3) << ", " << tubeTrans(2,3) << endmsg << " for tube " << tube << " tube layer " << tubelayer << " multilayer " << multilayer << endmsg @@ -606,18 +606,18 @@ MdtReadoutElement::nodeform_localTubePos(int multilayer, int tubelayer, int tube << m_ntubesperlayer << " tubes per layer." <<endmsg; } - if (tubeTrans[1][3]> maxtol) + if (tubeTrans(1,3)> maxtol) { if ( reLog().level() <= MSG::DEBUG ) reLog()<<MSG::DEBUG << "This a tube with cutout stName/Eta/Phi/ml/tl/t = "<<getStationName()<<"/"<<getStationEta()<<"/"<<getStationPhi()<<"/" <<getMultilayer()<<"/"<<tubelayer<<"/"<<tube<<endmsg; - if (std::abs(m_cutoutShift - tubeTrans[1][3]) > maxtol) // check only for tubes actually shifted + if (std::abs(m_cutoutShift - tubeTrans(1,3)) > maxtol) // check only for tubes actually shifted { reLog()<<MSG::ERROR << "taking localTubepos from RAW geoModel!!! MISMATCH IN local X (amdb) for a MDT with cutouts " << endmsg << ": from tube-id/pitch/cutout tube pos = " << xtube << ", " << m_cutoutShift << ", " << ztube - << " but geoModel gives " << tubeTrans[0][3] - << ", " << tubeTrans[1][3] << ", " << tubeTrans[2][3] + << " but geoModel gives " << tubeTrans(0,3) + << ", " << tubeTrans(1,3) << ", " << tubeTrans(2,3) << endmsg << " for tube " << tube << " tube layer " << tubelayer << " multilayer " << multilayer << endmsg @@ -629,7 +629,7 @@ MdtReadoutElement::nodeform_localTubePos(int multilayer, int tubelayer, int tube } } - Amg::Vector3D x(tubeTrans[0][3],tubeTrans[1][3],tubeTrans[2][3]); + Amg::Vector3D x=tubeTrans.translation(); if (tube > m_ntubesperlayer || tubelayer > m_nlayers) { x = Amg::Vector3D(xtube,ytube,ztube); } diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorElement.cxx b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorElement.cxx index 8e65f8847d4a1ec3fec937f328aca35598c87f9f..2295f253d90edac40c119db6605d9e510d72309c 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorElement.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorElement.cxx @@ -8,9 +8,6 @@ #include "MuonReadoutGeometry/MuonDetectorElement.h" #include "MuonReadoutGeometry/MuonDetectorManager.h" -#include "GeoModelKernel/GeoPhysVol.h" - -#include "GaudiKernel/MsgStream.h" namespace MuonGM { diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx index 17beb47cc1aeb50abfc0b9350014e495a325e19f..20c2154685f5d5df92dba8c2d81db96ad87f26f5 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx @@ -13,13 +13,17 @@ #include "MuonReadoutGeometry/MuonReadoutElement.h" #include "MuonReadoutGeometry/MuonDetectorManager.h" #include "MuonReadoutGeometry/MuonStation.h" +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoPhysVol.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "AthenaKernel/getMessageSvc.h" #include "TrkSurfaces/CylinderBounds.h" #include "TrkSurfaces/StraightLineSurface.h" +// Test + namespace MuonGM { MuonReadoutElement::MuonReadoutElement(GeoVFullPhysVol* pv, @@ -28,7 +32,7 @@ namespace MuonGM { : TrkDetElementBase(pv), m_Ssize(-9999.), m_Rsize(-9999.), m_Zsize(-9999.), m_LongSsize(-9999.), m_LongRsize(-9999.), m_LongZsize(-9999.), m_caching(-1), m_MsgStream(NULL), - m_eta(-1), m_phi(-1), m_id_max_init_field(-1), m_absTransform(NULL),m_defTransform(NULL) + m_eta(-1), m_phi(-1), m_id_max_init_field(-1), m_absTransform(nullptr),m_defTransform(nullptr) { //m_msgSvc = Athena::getMessageSvc(); m_stationS = 0.; @@ -57,8 +61,8 @@ namespace MuonGM { } void MuonReadoutElement::clear() const { - delete m_absTransform; m_absTransform = 0; - delete m_defTransform; m_defTransform = 0; + delete m_absTransform; m_absTransform = nullptr; + delete m_defTransform; m_defTransform = nullptr; } const Amg::Vector3D MuonReadoutElement::globalPosition() const @@ -189,15 +193,13 @@ namespace MuonGM { Amg::Transform3D MuonReadoutElement::toParentStation() const { - HepGeom::Transform3D xf = HepGeom::Transform3D::Identity; - PVConstLink par = parentStationPV(); if (par == PVConstLink(0)) { std::cerr<<"MuonReadoutElement::parentStationPos() *** parent not found"<<std::endl; throw; } - HepGeom::Transform3D par_to_child = HepGeom::Transform3D::Identity; + GeoTrf::Transform3D par_to_child = GeoTrf::Transform3D::Identity(); if ( m_indexOfREinMuonStation >=0 ) par_to_child = par->getXToChildVol( (unsigned int)m_indexOfREinMuonStation ); #ifndef NDEBUG @@ -206,7 +208,7 @@ namespace MuonGM { reLog()<<MSG::ERROR<<"No index to REinMuonStation computed/found until now"<<endmsg; } #endif - return Amg::CLHEPTransformToEigen(par_to_child); + return par_to_child; } void diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonStation.cxx b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonStation.cxx index a418eb2439d74e5c299d458168df85d15e720807..4af8364de6bcefde6f00cb1e8c86c68eb7666b26 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonStation.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/MuonStation.cxx @@ -215,7 +215,7 @@ void MuonStation::setDeltaAmdbLRS(HepGeom::Transform3D xf) } - m_transform->setDelta( m_native_to_amdbl->inverse() * (*m_delta_amdb_frame) * (*m_native_to_amdbl) ); + m_transform->setDelta(Amg::CLHEPTransformToEigen( m_native_to_amdbl->inverse() * (*m_delta_amdb_frame) * (*m_native_to_amdbl) )); } void @@ -319,7 +319,7 @@ MuonStation::setDelta_fromAline_forComp(int jobindex, //////////////////// this is what happens for a full station : m_transform->setDelta( m_native_to_amdbl->inverse() * (*m_delta_amdb_frame) * (*m_native_to_amdbl) ); - HepGeom::Transform3D parentToChildT = parentToChild->getTransform(); + HepGeom::Transform3D parentToChildT = Amg::EigenTransformToCLHEP(parentToChild->getTransform()); HepGeom::Transform3D delta_amdb = HepGeom::TranslateX3D(tras)*HepGeom::TranslateY3D(traz)*HepGeom::TranslateZ3D(trat)* HepGeom::RotateX3D(rots)*HepGeom::RotateY3D(rotz)*HepGeom::RotateZ3D(rott); //The station to component transform is static and must be computed in terms of "nominal geometry parameters"; fixing here bug 87693 - SS 9/11/2011 @@ -331,7 +331,7 @@ MuonStation::setDelta_fromAline_forComp(int jobindex, double DZcomp = fabs(thisREnominalCenter.z())-fabs(((*m_amdbl_to_global)*HepGeom::Point3D<double>(0.,0.,0)).z())-fabs((getMuonReadoutElement(jobindex)->getZsize())/2.); HepGeom::Transform3D childToLocAmdbComponent; - HepGeom::Transform3D childToLocAmdbStation = HepGeom::Transform3D(*m_native_to_amdbl)*HepGeom::Transform3D(parentToChildT); + HepGeom::Transform3D childToLocAmdbStation = HepGeom::Transform3D(*m_native_to_amdbl)*parentToChildT; HepGeom::Transform3D locAmdbStatToLocAmdbComp = HepGeom::Transform3D::Identity; // the following line is needed to go for scenario B in last slide of http://www.fisica.unisalento.it/~spagnolo/allow_listing/TGC_Alines/TGC-ALines_2011_03_01.pdf // COMMENT next line to go for scenario A in last slide of http://www.fisica.unisalento.it/~spagnolo/allow_listing/TGC_Alines/TGC-ALines_2011_03_01.pdf @@ -342,7 +342,7 @@ MuonStation::setDelta_fromAline_forComp(int jobindex, <<"setDelta_fromAline_forComp: stationName/Jff/Jzz "<<getStationType()<<" "<<getPhiIndex()<<" "<<getEtaIndex()<<" Job "<<jobindex <<" Origin of component/station AmdbLocalFrame= "<<(*m_amdbl_to_global)*locAmdbStatToLocAmdbComp.inverse()*HepGeom::Point3D<double>(0.,0.,0.) <<" / "<<(*m_amdbl_to_global)*HepGeom::Point3D<double>(0.,0.,0.)<<endmsg; - parentToChild->setDelta(childToLocAmdbComponent.inverse() * delta_amdb * childToLocAmdbComponent); + parentToChild->setDelta(Amg::CLHEPTransformToEigen(childToLocAmdbComponent.inverse() * delta_amdb * childToLocAmdbComponent)); if ( reLog().level() <= MSG::DEBUG ) reLog()<<MSG::DEBUG <<"setDelta_fromAline_forComp2:stationName/Jff/Jzz "<<getStationType()<<" "<<getPhiIndex()<<" "<<getEtaIndex()<<" Job "<<jobindex <<" Origin of component/station AmdbLocalFrame= "<<(*m_amdbl_to_global)*locAmdbStatToLocAmdbComp.inverse()*HepGeom::Point3D<double>(0.,0.,0.) diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/RpcReadoutElement.cxx b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/RpcReadoutElement.cxx index 3a693b2cf06189d0b7b9ef75849148a0b91cc393..d7c74e4fcfff986f7427055b2633152f8cc5c0d2 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/RpcReadoutElement.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/RpcReadoutElement.cxx @@ -75,8 +75,8 @@ namespace MuonGM { // <<tname<<" child " // <<ngv<<" is a gas volume with tag "<<lgg<<std::endl; PVConstLink pcgg = pcgv->getChildVol(0); - HepGeom::Transform3D trans = pvc->getXToChildVol(ich)*pc->getXToChildVol(ngv)*pcgv->getXToChildVol(0); - m_Xlg[llay-1][lgg-1] = Amg::CLHEPTransformToEigen(trans); + GeoTrf::Transform3D trans = pvc->getXToChildVol(ich)*pc->getXToChildVol(ngv)*pcgv->getXToChildVol(0); + m_Xlg[llay-1][lgg-1] = trans; } } } diff --git a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/sTgcReadoutElement.cxx b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/sTgcReadoutElement.cxx index fcd5a390833634eb4292c476acefcce794f9dda5..d6303e24d601487249e47aeefa3eb10692895272 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/sTgcReadoutElement.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry/src/sTgcReadoutElement.cxx @@ -99,7 +99,7 @@ namespace MuonGM { reLog() << MSG::WARNING << "number of sTGC layers > 4: increase transform array size"<< endmsg; continue; } - m_Xlg[llay-1] = Amg::CLHEPTransformToEigen(pvc->getXToChildVol(ich)); + m_Xlg[llay-1] = pvc->getXToChildVol(ich); /*if (llay==1 || abs(zi)<3 ) { if (pc->getLogVol()->getShape()->type()=="Shift") { const GeoShapeShift* myshift = dynamic_cast<const GeoShapeShift*> (pc->getLogVol()->getShape()); diff --git a/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/CMakeLists.txt b/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/CMakeLists.txt index 0b37649e6671b0767a53479cbc08963698cd2634..59224e27c33c36e67504ad5873825f7e13e5edb4 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/CMakeLists.txt +++ b/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/CMakeLists.txt @@ -9,7 +9,6 @@ atlas_subdir( MuonTrackingGeometry ) atlas_depends_on_subdirs( PUBLIC AtlasGeometryCommon/SubDetectorEnvelopes Control/AthenaBaseComps - DetectorDescription/GeoModel/GeoModelKernel GaudiKernel Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv Tracking/TrkDetDescr/TrkDetDescrInterfaces @@ -26,13 +25,14 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( MuonTrackingGeometry src/*.cxx src/components/*.cxx INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${EIGEN_LIBRARIES} AthenaBaseComps GeoModelKernel GaudiKernel TrkDetDescrGeoModelCnv TrkDetDescrInterfaces TrkDetDescrUtils TrkGeometry TrkVolumes StoreGateLib SGtests GeoPrimitives MuonReadoutGeometry MuonIdHelpersLib TrkGeometrySurfaces TrkSurfaces ) + LINK_LIBRARIES ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaBaseComps GaudiKernel TrkDetDescrGeoModelCnv TrkDetDescrInterfaces TrkDetDescrUtils TrkGeometry TrkVolumes StoreGateLib SGtests GeoPrimitives MuonReadoutGeometry MuonIdHelpersLib TrkGeometrySurfaces TrkSurfaces ) # Install files from the package: atlas_install_headers( MuonTrackingGeometry ) diff --git a/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonInertMaterialBuilder.cxx b/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonInertMaterialBuilder.cxx index 18e24450ecff652e306f792917a1a0ffd84dacbb..9c25415cf5f2556e6a42b52f83ca83f60b47a49a 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonInertMaterialBuilder.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonInertMaterialBuilder.cxx @@ -277,7 +277,7 @@ const std::vector<std::pair<const Trk::DetachedTrackingVolume*,std::vector<Amg:: bool simpleTree = false; if ( !cv->getNChildVols() ) { std::vector<Amg::Transform3D > volTr; - volTr.push_back(Amg::CLHEPTransformToEigen(vol.getTransform())); + volTr.push_back(vol.getTransform()); vols.push_back(std::pair<const GeoLogVol*,std::vector<Amg::Transform3D> > (clv,volTr) ); simpleTree = true; } else { @@ -299,7 +299,7 @@ const std::vector<std::pair<const Trk::DetachedTrackingVolume*,std::vector<Amg:: for (unsigned int ip=0; ip<objs.size();ip++) { if (protoName==objs[ip].first->name()) { found = true; - if (simpleTree) objs[ip].second.push_back(Amg::CLHEPTransformToEigen(vol.getTransform())); + if (simpleTree) objs[ip].second.push_back(vol.getTransform()); //else objs[ip].second.insert(objs[ip].second.end(),vols[ish].second.begin(),vols[ish].second.end()); } } @@ -402,7 +402,7 @@ void Muon::MuonInertMaterialBuilder::printChildren(const GeoVPhysVol* pv) const // subcomponents unsigned int nc = pv->getNChildVols(); for (unsigned int ic=0; ic<nc; ic++) { - Amg::Transform3D transf = Amg::CLHEPTransformToEigen(pv->getXToChildVol(ic)); + Amg::Transform3D transf = pv->getXToChildVol(ic); // //std::cout << " dumping transform to subcomponent" << std::endl; @@ -580,7 +580,7 @@ void Muon::MuonInertMaterialBuilder::getObjsForTranslation(const GeoVPhysVol* pv unsigned int nc = pv->getNChildVols(); ATH_MSG_VERBOSE( " INERT getObjsForTranslation from:"<< pv->getLogVol()->getName()<<","<<pv->getLogVol()->getMaterial()->getName()<<", looping over "<< nc << " children" ); for (unsigned int ic=0; ic<nc; ic++) { - Amg::Transform3D transf = Amg::CLHEPTransformToEigen(pv->getXToChildVol(ic)); + Amg::Transform3D transf = pv->getXToChildVol(ic); const GeoVPhysVol* cv = &(*(pv->getChildVol(ic))); const GeoLogVol* clv = cv->getLogVol(); if (!cv->getNChildVols()) { diff --git a/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonStationBuilder.cxx b/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonStationBuilder.cxx index 85ed4948eb56ffbc9e219d01fd903a2d6a0fa72c..2349553f740945dc42aa4fd0531f4ba90a109f7e 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonStationBuilder.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonStationBuilder.cxx @@ -186,7 +186,7 @@ const std::vector<const Trk::DetachedTrackingVolume*>* Muon::MuonStationBuilder: bool simpleTree = false; if ( !cv->getNChildVols() ) { std::vector<Amg::Transform3D > volTr; - volTr.push_back(Amg::CLHEPTransformToEigen(vol.getTransform())); + volTr.push_back(vol.getTransform()); std::pair<const GeoLogVol*,Trk::MaterialProperties*> cpair(clv,0); vols.push_back(std::pair<std::pair<const GeoLogVol*,Trk::MaterialProperties*>,std::vector<Amg::Transform3D> > (cpair,volTr) ); volNames.push_back(vname); @@ -1422,7 +1422,7 @@ void Muon::MuonStationBuilder::getNSWStationsForTranslation(const GeoVPhysVol* p ATH_MSG_DEBUG("getNSWStationsForTranslation from:"<< pv->getLogVol()->getName()<<","<<pv->getLogVol()->getMaterial()->getName()<<", looping over "<< nc << " children"); for (unsigned int ic=0; ic<nc; ic++) { - Amg::Transform3D transf = Amg::CLHEPTransformToEigen( pv->getXToChildVol(ic)); + Amg::Transform3D transf = pv->getXToChildVol(ic); const GeoVPhysVol* cv = &(*(pv->getChildVol(ic))); const GeoLogVol* clv = cv->getLogVol(); std::string childName = clv->getName(); diff --git a/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonStationTypeBuilder.cxx b/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonStationTypeBuilder.cxx index de1b40e0abd812db26ecdc86de6b6cf221b4debc..108acd94ba3844a33c9d529449524824ea4a056a 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonStationTypeBuilder.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonStationTypeBuilder.cxx @@ -152,7 +152,7 @@ const Trk::TrackingVolumeArray* Muon::MuonStationTypeBuilder::processBoxStationC { const GeoVPhysVol* cv = &(*(mv->getChildVol(ich))); const GeoLogVol* clv = cv->getLogVol(); - Amg::Transform3D transf = Amg::CLHEPTransformToEigen(mv->getXToChildVol(ich)); + Amg::Transform3D transf = mv->getXToChildVol(ich); // TEMPORARY CORRECTION //if ( (mv->getLogVol()->getName()).substr(0,3)=="BMF" && (clv->getName()).substr(0,2)=="LB" ) { // ATH_MSG_DEBUG( "TEMPORARY MANUAL CORRECTION OF BMF SPACER LONG BEAM POSITION"); @@ -448,7 +448,7 @@ const Trk::TrackingVolumeArray* Muon::MuonStationTypeBuilder::processTrdStationC //std::cout << "next component:"<< ich << std::endl; const GeoVPhysVol* cv = &(*(mv->getChildVol(ich))); const GeoLogVol* clv = cv->getLogVol(); - Amg::Transform3D transf = Amg::CLHEPTransformToEigen(mv->getXToChildVol(ich)); + Amg::Transform3D transf = mv->getXToChildVol(ich); //std::cout << "component:"<<ich<<":" << clv->getName() <<", made of "<<clv->getMaterial()->getName()<<","<<clv->getShape()->type()<<"," <<transf.getTranslation()<<std::endl; // retrieve volumes for components Trk::VolumeBounds* volBounds=0; @@ -721,7 +721,7 @@ const Trk::TrackingVolume* Muon::MuonStationTypeBuilder::processMdtBox(Trk::Volu for (unsigned int ich =0; ich< gv->getNChildVols(); ++ich) { const GeoVPhysVol* cv = &(*(gv->getChildVol(ich))); const GeoLogVol* clv = cv->getLogVol(); - Amg::Transform3D transfc = Amg::CLHEPTransformToEigen(gv->getXToChildVol(ich)); + Amg::Transform3D transfc = gv->getXToChildVol(ich); //std::cout << "MDT component:"<<ich<<":" << clv->getName() <<", made of "<<clv->getMaterial()->getName()<<","<<clv->getShape()->type()<<","<<transfc.getTranslation()<<std::endl; // printChildren(cv); Trk::MaterialProperties* mdtMat=0; @@ -887,7 +887,7 @@ const Trk::TrackingVolume* Muon::MuonStationTypeBuilder::processMdtTrd(Trk::Volu for (unsigned int ich =0; ich< gv->getNChildVols(); ++ich) { const GeoVPhysVol* cv = &(*(gv->getChildVol(ich))); const GeoLogVol* clv = cv->getLogVol(); - Amg::Transform3D transfc = Amg::CLHEPTransformToEigen(gv->getXToChildVol(ich)); + Amg::Transform3D transfc = gv->getXToChildVol(ich); //std::cout << "MDT component:"<<ich<<":" << clv->getName() <<", made of "<<clv->getMaterial()->getName()<<","<<clv->getShape()->type()<<","<<transfc.translation()<<std::endl; double xv = 0.; int active = 0; @@ -1152,8 +1152,8 @@ const Trk::TrackingVolume* Muon::MuonStationTypeBuilder::processRpc(Trk::Volume* unsigned int ngc = gv[ic]->getNChildVols(); for (unsigned int igc=0; igc<ngc; igc++) { Amg::Transform3D trgc(Trk::s_idTransform); - if (transfc[ic].rotation().isIdentity()) trgc = Amg::CLHEPTransformToEigen(gv[ic]->getXToChildVol(igc)); - else trgc = Amg::AngleAxis3D(M_PI,Amg::Vector3D(0.,0.,1.))*Amg::CLHEPTransformToEigen(gv[ic]->getXToChildVol(igc)); + if (transfc[ic].rotation().isIdentity()) trgc = gv[ic]->getXToChildVol(igc); + else trgc = Amg::AngleAxis3D(M_PI,Amg::Vector3D(0.,0.,1.))*gv[ic]->getXToChildVol(igc); const GeoVPhysVol* gcv = &(*(gv[ic]->getChildVol(igc))); const GeoLogVol* gclv = gcv->getLogVol(); @@ -1241,7 +1241,7 @@ const Trk::TrackingVolume* Muon::MuonStationTypeBuilder::processSpacer(Trk::Volu if ((*vIter)->getNChildVols()) { for (unsigned int ich=0; ich<(*vIter)->getNChildVols();++ich) { gv.push_back(&(*((*vIter)->getChildVol(ich)))); - transf.push_back(Amg::Transform3D( (*tIter)*Amg::CLHEPTransformToEigen((*vIter)->getXToChildVol(ich)))); + transf.push_back(Amg::Transform3D( (*tIter)*(*vIter)->getXToChildVol(ich))); } vIter=gv.erase(vIter); tIter=transf.erase(tIter); } else { vIter++; tIter++; } @@ -1358,12 +1358,12 @@ const Trk::TrackingVolume* Muon::MuonStationTypeBuilder::processSpacer(Trk::Volu } else if (sub) { std::vector<std::pair<const GeoShape*,Amg::Transform3D> > subVs; const GeoShapeShift* shift = dynamic_cast<const GeoShapeShift*> (sub->getOpB()); - if (shift) subVs.push_back(std::pair<const GeoShape*,Amg::Transform3D>(shift->getOp(),Amg::CLHEPTransformToEigen(shift->getX()))); + if (shift) subVs.push_back(std::pair<const GeoShape*,Amg::Transform3D>(shift->getOp(),shift->getX())); const GeoShape* shape = sub->getOpA(); while (shape->type()=="Subtraction") { const GeoShapeSubtraction* subtr = dynamic_cast<const GeoShapeSubtraction*> (shape); const GeoShapeShift* shift = dynamic_cast<const GeoShapeShift*> (subtr->getOpB()); - if (shift) subVs.push_back(std::pair<const GeoShape*,Amg::Transform3D>(shift->getOp(),Amg::CLHEPTransformToEigen(shift->getX()))); + if (shift) subVs.push_back(std::pair<const GeoShape*,Amg::Transform3D>(shift->getOp(),shift->getX())); shape = subtr->getOpA(); } const GeoBox* box = dynamic_cast<const GeoBox*> (shape); @@ -1621,7 +1621,7 @@ const Trk::TrackingVolume* Muon::MuonStationTypeBuilder::processCscStation(const for (unsigned int ich =0; ich< mv->getNChildVols(); ++ich) { const GeoVPhysVol* cv = &(*(mv->getChildVol(ich))); const GeoLogVol* clv = cv->getLogVol(); - Amg::Transform3D transform = Amg::CLHEPTransformToEigen(mv->getXToChildVol(ich)); + Amg::Transform3D transform = mv->getXToChildVol(ich); compTransf.push_back(transform); compName.push_back(clv->getName()); compGeoVol.push_back(cv); @@ -1637,7 +1637,7 @@ const Trk::TrackingVolume* Muon::MuonStationTypeBuilder::processCscStation(const if (xSizes.size()>0) xSizes.push_back((fabs(transform.translation()[0]-compTransf[ich-1].translation()[0]) -xSizes.back())); else xSizes.push_back(xSize); - double xpos = (transform*Amg::CLHEPTransformToEigen(shift->getX())).translation()[0]; + double xpos = (transform*shift->getX()).translation()[0]; if ( xpos-xSize < xmn ) xmn = xpos-xSizes.back(); if ( xpos+xSize > xmx ) xmx = xpos+xSizes.back(); } @@ -1781,7 +1781,7 @@ std::vector<const Trk::TrackingVolume*> Muon::MuonStationTypeBuilder::processTgc const GeoLogVol* clv = cv->getLogVol(); std::string tgc_name = clv->getName(); //std::cout << "tgc name:" << tgc_name << std::endl; - Amg::Transform3D transform = Amg::CLHEPTransformToEigen(mv->getXToChildVol(ich)); + Amg::Transform3D transform = mv->getXToChildVol(ich); //std::cout << "TGC component:"<<ich<<":" << clv->getName() <<", made of "<<clv->getMaterial()->getName()<<","<<clv->getShape()->type()<<","<<transform.translation()<<std::endl; const GeoShape* baseShape = clv->getShape(); if (baseShape->type()=="Subtraction") { @@ -1825,7 +1825,7 @@ void Muon::MuonStationTypeBuilder::printChildren(const GeoVPhysVol* pv) const // subcomponents unsigned int nc = pv->getNChildVols(); for (unsigned int ic=0; ic<nc; ic++) { - Amg::Transform3D transf = Amg::CLHEPTransformToEigen(pv->getXToChildVol(ic)); + Amg::Transform3D transf = pv->getXToChildVol(ic); // /* @@ -1896,7 +1896,7 @@ double Muon::MuonStationTypeBuilder::get_x_size(const GeoVPhysVol* pv) const } for (unsigned int ic=0; ic<nc; ic++) { - Amg::Transform3D transf = Amg::CLHEPTransformToEigen(pv->getXToChildVol(ic)); + Amg::Transform3D transf = pv->getXToChildVol(ic); const GeoVPhysVol* cv = &(*(pv->getChildVol(ic))); const GeoLogVol* clv = cv->getLogVol(); double xh=0; @@ -2056,7 +2056,7 @@ const Trk::LayerArray* Muon::MuonStationTypeBuilder::processCSCTrdComponent(cons // step 1 level below const GeoVPhysVol* cv1 = &(*(pv->getChildVol(0))); for (unsigned int ic=0; ic < cv1->getNChildVols(); ic++) { - Amg::Transform3D transfc = Amg::CLHEPTransformToEigen(cv1->getXToChildVol(ic)); + Amg::Transform3D transfc = cv1->getXToChildVol(ic); const GeoVPhysVol* cv = &(*(cv1->getChildVol(ic))); const GeoLogVol* clv = cv->getLogVol(); if ( clv->getName() == "CscArCO2" ) { @@ -2188,7 +2188,7 @@ const Trk::LayerArray* Muon::MuonStationTypeBuilder::processCSCDiamondComponent( // step 1 level below const GeoVPhysVol* cv1 = &(*(pv->getChildVol(0))); for (unsigned int ic=0; ic < cv1->getNChildVols(); ic++) { - Amg::Transform3D transfc = Amg::CLHEPTransformToEigen(cv1->getXToChildVol(ic)); + Amg::Transform3D transfc = cv1->getXToChildVol(ic); const GeoVPhysVol* cv = &(*(cv1->getChildVol(ic))); const GeoLogVol* clv = cv->getLogVol(); if ( clv->getName() == "CscArCO2" ) { @@ -2322,7 +2322,7 @@ const Trk::LayerArray* Muon::MuonStationTypeBuilder::processTGCComponent(const G } for (unsigned int ic=0; ic < pv->getNChildVols(); ic++) { - Amg::Transform3D transfc = Amg::CLHEPTransformToEigen(pv->getXToChildVol(ic)); + Amg::Transform3D transfc = pv->getXToChildVol(ic); const GeoVPhysVol* cv = &(*(pv->getChildVol(ic))); const GeoLogVol* clv = cv->getLogVol(); if ( clv->getName() == "muo::TGCGas" ) { @@ -2459,7 +2459,7 @@ double Muon::MuonStationTypeBuilder::decodeX(const GeoShape* sh) const if (shift) { // std::cout << " decoding shift:" << shift->getOp()->type() <<"," << shift->getX().translation() << std::endl; double xA = decodeX( shift->getOp() ); - double xB = shift->getX().getTranslation()[0]; + double xB = shift->getX().translation()[0]; xHalf = xA + fabs(xB); } diff --git a/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonTrackingGeometryBuilder.cxx b/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonTrackingGeometryBuilder.cxx index c5464dae6da4257926dc68904ddef1ce94575213..3ca351d08f0b26dd77f5234bdb4d2030878b7b70 100644 --- a/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonTrackingGeometryBuilder.cxx +++ b/MuonSpectrometer/MuonDetDescr/MuonTrackingGeometry/src/MuonTrackingGeometryBuilder.cxx @@ -13,6 +13,8 @@ #include "SubDetectorEnvelopes/IEnvelopeDefSvc.h" // Amg #include "GeoPrimitives/GeoPrimitives.h" +// Units +#include "GeoModelKernel/Units.h" // Trk #include "TrkDetDescrInterfaces/ITrackingVolumeArrayCreator.h" #include "TrkDetDescrInterfaces/ITrackingVolumeHelper.h" @@ -220,7 +222,7 @@ const Trk::TrackingGeometry* Muon::MuonTrackingGeometryBuilder::trackingGeometry } // find object's span with tolerance for the alignment - if (!m_stationSpan) m_stationSpan = findVolumesSpan(m_stations, 100.*m_alignTolerance, m_alignTolerance*CLHEP::deg); + if (!m_stationSpan) m_stationSpan = findVolumesSpan(m_stations, 100.*m_alignTolerance, m_alignTolerance*GeoModelKernelUnits::deg); if (!m_inertSpan) m_inertSpan = findVolumesSpan(m_inertObjs,0.,0.); // 0) Preparation ////////////////////////////////////////////////////////////////////////////////////// diff --git a/MuonSpectrometer/MuonGeoModel/CMakeLists.txt b/MuonSpectrometer/MuonGeoModel/CMakeLists.txt index 9ded36db091cd38e085f079865d640a2bd29a1b9..f3110b921c829cbad12cbd2daa427368b22b2514 100644 --- a/MuonSpectrometer/MuonGeoModel/CMakeLists.txt +++ b/MuonSpectrometer/MuonGeoModel/CMakeLists.txt @@ -10,8 +10,8 @@ atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel Control/StoreGate DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities + DetectorDescription/GeoPrimitives GaudiKernel MuonSpectrometer/MuonConditions/MuonCondGeneral/MuonCondInterface MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry @@ -27,23 +27,22 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( MuonGeoModelLib src/*.cxx PUBLIC_HEADERS MuonGeoModel - INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaKernel GeoModelKernel GeoModelUtilities GaudiKernel MuonCondInterface MuonReadoutGeometry MuonGMdbObjects StoreGateLib SGtests MuonIdHelpersLib + LINK_LIBRARIES ${GEOMODEL_LIBRARIES} AthenaKernel GeoModelUtilities GaudiKernel MuonCondInterface MuonReadoutGeometry MuonGMdbObjects StoreGateLib SGtests MuonIdHelpersLib PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} AthenaPoolUtilities AGDDKernel IdDictDetDescr MuonAGDDDescription MuonDetDescrUtils ) atlas_add_component( MuonGeoModel src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} AthenaKernel StoreGateLib SGtests GeoModelKernel GeoModelUtilities GaudiKernel MuonCondInterface MuonReadoutGeometry MuonGMdbObjects AthenaPoolUtilities AGDDKernel IdDictDetDescr MuonAGDDDescription MuonDetDescrUtils MuonIdHelpersLib MuonGeoModelLib ) + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaKernel StoreGateLib SGtests GeoModelUtilities GaudiKernel MuonCondInterface MuonReadoutGeometry MuonGMdbObjects AthenaPoolUtilities AGDDKernel IdDictDetDescr MuonAGDDDescription MuonDetDescrUtils MuonIdHelpersLib MuonGeoModelLib ) # Install files from the package: atlas_install_joboptions( share/*.py ) diff --git a/MuonSpectrometer/MuonGeoModel/MuonGeoModel/DBReader.h b/MuonSpectrometer/MuonGeoModel/MuonGeoModel/DBReader.h index 67d960ac1f4f4ad67983b823b8ca72bf3e644ad1..fa27ec620feb32f4898351840768366701e0b8b9 100755 --- a/MuonSpectrometer/MuonGeoModel/MuonGeoModel/DBReader.h +++ b/MuonSpectrometer/MuonGeoModel/MuonGeoModel/DBReader.h @@ -15,7 +15,7 @@ //<<<<<< INCLUDES >>>>>> #include "StoreGate/StoreGateSvc.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include "AthenaKernel/getMessageSvc.h" #include <string> #include <iostream> @@ -176,19 +176,19 @@ namespace MuonGM { //std::cout<<" ProcessMDT "<<s<<" index "<<i<<" jsta ="<<wmdt[i].iw<<std::endl; mdt->numOfLayers=wmdt[i].laymdt; - mdt->innerRadius=wmdt[i].tubrad*CLHEP::cm; - mdt->totalThickness=wmdt[i].tubsta*CLHEP::cm; - mdt->pitch=wmdt[i].tubpit*CLHEP::cm; + mdt->innerRadius=wmdt[i].tubrad*GeoModelKernelUnits::cm; + mdt->totalThickness=wmdt[i].tubsta*GeoModelKernelUnits::cm; + mdt->pitch=wmdt[i].tubpit*GeoModelKernelUnits::cm; mdt->thickness=mdt->totalThickness; mdt->tubeDeadLength = 0; // cannot be defined here (it depends on chamber size) //mdt->endPlugLength is not OK in p03 - //mdt->endPlugLength = wmdt[i].tubdea*CLHEP::cm; - mdt->tubeEndPlugLength = wmdt[i].tubdea*CLHEP::cm; + //mdt->endPlugLength = wmdt[i].tubdea*GeoModelKernelUnits::cm; + mdt->tubeEndPlugLength = wmdt[i].tubdea*GeoModelKernelUnits::cm; - mdt->tubeWallThickness = wmdt[i].tubwal*CLHEP::cm; + mdt->tubeWallThickness = wmdt[i].tubwal*GeoModelKernelUnits::cm; - for(unsigned int k=0; k<4;k++) mdt->y[k]=wmdt[i].tubyco[k]*CLHEP::cm; - for(unsigned int j=0; j<4;j++) mdt->x[j]=wmdt[i].tubxco[j]*CLHEP::cm; + for(unsigned int k=0; k<4;k++) mdt->y[k]=wmdt[i].tubyco[k]*GeoModelKernelUnits::cm; + for(unsigned int j=0; j<4;j++) mdt->x[j]=wmdt[i].tubxco[j]*GeoModelKernelUnits::cm; //std::cout << mdt->numOfLayers << std::endl; } //std::cout<<" nstruct in processMDT "<< nStruct<<" at iter "<<i<<std::endl; @@ -214,17 +214,17 @@ namespace MuonGM { //std::cout << " TECH. A new RPC named " <<s<<" nrpc = "<<nrpc<<std::endl; //std::cout<<" Creating a RPC at "<<rpc<<" named "<<s<<std::endl; - rpc->centralSupPanelThickness = (wrpcall->tckfsp)*CLHEP::cm; - rpc->centralAlSupPanelThickness = (wrpcall->ackfsp)*CLHEP::cm; + rpc->centralSupPanelThickness = (wrpcall->tckfsp)*GeoModelKernelUnits::cm; + rpc->centralAlSupPanelThickness = (wrpcall->ackfsp)*GeoModelKernelUnits::cm; if (RPCprint) std::cout<<"ProcessRPC:: RPC central sup panel: tot & Al "<<rpc->centralSupPanelThickness<<" " <<rpc->centralAlSupPanelThickness<<std::endl; - rpc->bakeliteThickness =(wrpcall->tckbak)*CLHEP::cm; - rpc->bakeliteframesize =0.5*(wrpcall->sdedmi)*CLHEP::cm; - rpc->gasThickness =(wrpcall->tckgas)*CLHEP::cm; - rpc->bakelitePetThickness =0.190*CLHEP::mm; // TBM same as Amdb, why hardwired? Not in DblQ00Wrpc! - rpc->totalAirThickness = 0.52*CLHEP::mm; // TBM added + rpc->bakeliteThickness =(wrpcall->tckbak)*GeoModelKernelUnits::cm; + rpc->bakeliteframesize =0.5*(wrpcall->sdedmi)*GeoModelKernelUnits::cm; + rpc->gasThickness =(wrpcall->tckgas)*GeoModelKernelUnits::cm; + rpc->bakelitePetThickness =0.190*GeoModelKernelUnits::mm; // TBM same as Amdb, why hardwired? Not in DblQ00Wrpc! + rpc->totalAirThickness = 0.52*GeoModelKernelUnits::mm; // TBM added rpc->GasGapThickness=2.*rpc->bakeliteThickness+ rpc->gasThickness + 2.*rpc->bakelitePetThickness + @@ -242,26 +242,26 @@ namespace MuonGM { if (RPCprint) std::cout<<"ProcessRPC::WARNING redefining RPC::bakeliteThickness to include pet " <<rpc->bakeliteThickness<<std::endl; - rpc->spacerDiameter =(wrpcall->spdiam)*CLHEP::cm; - rpc->spacerPitch =(wrpcall->sppitc)*CLHEP::cm; + rpc->spacerDiameter =(wrpcall->spdiam)*GeoModelKernelUnits::cm; + rpc->spacerPitch =(wrpcall->sppitc)*GeoModelKernelUnits::cm; rpc->MidChamberDeadRegion_in_s =2.*rpc->bakeliteframesize; - rpc->MidChamberDeadRegion_in_z =(wrpcall->zdedmi)*CLHEP::cm; + rpc->MidChamberDeadRegion_in_z =(wrpcall->zdedmi)*GeoModelKernelUnits::cm; if (RPCprint) std::cout<<" ProcessRPC:: spacerDiam, pitch, MidChamberDeadRegion_in_s, MidChamberDeadRegion_in_z " <<rpc->spacerDiameter<<" "<<rpc->spacerPitch<<" " <<rpc->MidChamberDeadRegion_in_s<<" "<<rpc->MidChamberDeadRegion_in_z<<std::endl; - rpc->petFoilThickness =0.190*CLHEP::mm; //TBM this is the same as bakelite PET thickness? + rpc->petFoilThickness =0.190*GeoModelKernelUnits::mm; //TBM this is the same as bakelite PET thickness? if (RPCprint) std::cout <<"ProcessRPC:: defining RPC::petfoilThickness = "<<rpc->petFoilThickness <<std::endl; - rpc->stripPanelFoamThickness =(wrpcall->tckssu)*CLHEP::cm; - rpc->stripPanelCopperSkinThickness =(wrpcall->tckstr)*CLHEP::cm; - rpc->stripPanelStripSidePetThickness =0.25*CLHEP::mm; //missing in AmdbNova - rpc->stripPanelGroundSidePetThickness =0.07*CLHEP::mm; //missing in AmdbNova - rpc->frontendBoardWidth = 36.*CLHEP::mm; - rpc->backendBoardWidth = 21.*CLHEP::mm; + rpc->stripPanelFoamThickness =(wrpcall->tckssu)*GeoModelKernelUnits::cm; + rpc->stripPanelCopperSkinThickness =(wrpcall->tckstr)*GeoModelKernelUnits::cm; + rpc->stripPanelStripSidePetThickness =0.25*GeoModelKernelUnits::mm; //missing in AmdbNova + rpc->stripPanelGroundSidePetThickness =0.07*GeoModelKernelUnits::mm; //missing in AmdbNova + rpc->frontendBoardWidth = 36.*GeoModelKernelUnits::mm; + rpc->backendBoardWidth = 21.*GeoModelKernelUnits::mm; if (RPCprint) std::cout <<"ProcessRPC:: stp panel: foam, 2*copper, petg, pets, fe, be " <<rpc->stripPanelFoamThickness<<" " @@ -283,7 +283,7 @@ namespace MuonGM { <<"ProcessRPC::WARNING redefining RPC::stripPanelFoamThickness to include pet on both sides " <<rpc->stripPanelFoamThickness <<std::endl; - rpc->rpcLayerThickness =(wrpcall->tckrla)*CLHEP::cm; + rpc->rpcLayerThickness =(wrpcall->tckrla)*GeoModelKernelUnits::cm; double rpcLayerComputedTck = rpc->GasGapThickness + 2*rpc->stripPanelThickness + rpc->petFoilThickness; if (RPCprint) std::cout<<"ProcessRPC:: rpcLayerComputedTck = "<<rpcLayerComputedTck @@ -308,8 +308,8 @@ namespace MuonGM { done = true; //std::cout<<" done for jtech, wrpc[i].jsta = "<<jtech<<" "<<wrpc[i].jsta<<std::endl; - rpc->externalSupPanelThickness =(wrpcall->tlohcb)*CLHEP::cm; //TBM - rpc->externalAlSupPanelThickness =(wrpcall->alohcb)*CLHEP::cm; //TBM + rpc->externalSupPanelThickness =(wrpcall->tlohcb)*GeoModelKernelUnits::cm; //TBM + rpc->externalAlSupPanelThickness =(wrpcall->alohcb)*GeoModelKernelUnits::cm; //TBM if (RPCprint) std::cout<<"ProcessRPC:: RPC external sup panel: tot & Al " <<rpc->centralSupPanelThickness<<" " <<rpc->centralAlSupPanelThickness<<std::endl; @@ -323,13 +323,13 @@ namespace MuonGM { rpc->externalSupPanelThickness; if (RPCprint) std::cout<<"ProcessRPC:: (computed) Total RPC thickness = " <<rpc->TotalThickness<<std::endl; - rpc->maxThickness = 46.*CLHEP::mm; // TBM same as (wrpcall->tottck)*CLHEP::cm; + rpc->maxThickness = 46.*GeoModelKernelUnits::mm; // TBM same as (wrpcall->tottck)*GeoModelKernelUnits::cm; rpc->thickness = rpc->maxThickness; if (RPCprint) std::cout<<"ProcessRPC:: RPC max thickness "<<rpc->maxThickness <<std::endl; - rpc->stripPitchS =(wrpc[i].spitch)*CLHEP::cm; - rpc->stripPitchZ =(wrpc[i].zpitch)*CLHEP::cm; - rpc->stripSeparation =(wrpc[i].dedstr)*CLHEP::cm; + rpc->stripPitchS =(wrpc[i].spitch)*GeoModelKernelUnits::cm; + rpc->stripPitchZ =(wrpc[i].zpitch)*GeoModelKernelUnits::cm; + rpc->stripSeparation =(wrpc[i].dedstr)*GeoModelKernelUnits::cm; if (RPCprint) std::cout<<"ProcessRPC:: s_pitch, z_pitch " <<rpc->stripPitchS <<" "<<rpc->stripPitchZ<<std::endl; @@ -375,11 +375,11 @@ namespace MuonGM { if( s.substr(3,s.size()-3) == MuonGM::buildString(wtgcall[i].jsta,2) ) { tgc->nlayers =wtgcall[i].nbevol; - tgc->thickness=wtgcall[i].widchb*CLHEP::cm; + tgc->thickness=wtgcall[i].widchb*GeoModelKernelUnits::cm; //std::cout<<" ProcessTGC accepted "<<s<<" index "<<i<<" jsta ="<<wtgcall[i].jsta // <<" internal struct has "<<tgc->nlayers<<" layers; thickness is "<<tgc->thickness<<std::endl; - tgc->frame_h =wtgcall[i].fwirch*CLHEP::cm; - tgc->frame_ab =wtgcall[i].fwixch*CLHEP::cm; + tgc->frame_h =wtgcall[i].fwirch*GeoModelKernelUnits::cm; + tgc->frame_ab =wtgcall[i].fwixch*GeoModelKernelUnits::cm; //int subtype = wtgcall[i].jsta; // std::cout<<" thick, frame_h, frame_ab "<< tgc->thickness // <<" "<<tgc->frame_h<<" "<<tgc->frame_ab<<std::endl; @@ -394,8 +394,8 @@ namespace MuonGM { n++; //std::cout<<" select this by jsta = "<<wtgc[j].jsta<<" until now "<<n<<" selected"<<std::endl; mat=(int)wtgc[j].icovol; - p=wtgc[j].zpovol*CLHEP::cm; - t=wtgc[j].widvol*CLHEP::cm; + p=wtgc[j].zpovol*GeoModelKernelUnits::cm; + t=wtgc[j].widvol*GeoModelKernelUnits::cm; tgc->materials.push_back(v[mat-1]); //std::cerr<<" Processing TGC iw = "<<s<<" mat = "<<mat<<" v[mat-1] "<<v[mat-1]<<std::endl; tgc->positions.push_back(p); @@ -454,25 +454,25 @@ namespace MuonGM { // std::cout<<" ProcessCSC "<<s<<" index "<<i<<" jsta ="<<wcsc[i].jsta<<std::endl; csc->numOfLayers=wcsc[i].laycsc; - csc->totalThickness=wcsc[i].ttotal*CLHEP::cm; + csc->totalThickness=wcsc[i].ttotal*GeoModelKernelUnits::cm; csc->thickness=csc->totalThickness; - csc->honeycombthick=wcsc[i].tnomex*CLHEP::cm; + csc->honeycombthick=wcsc[i].tnomex*GeoModelKernelUnits::cm; - csc->g10thick=wcsc[i].tlag10*CLHEP::cm; //csc->g10thick=0.0820*CLHEP::cm; + csc->g10thick=wcsc[i].tlag10*GeoModelKernelUnits::cm; //csc->g10thick=0.0820*GeoModelKernelUnits::cm; // wire spacing - csc->wirespacing =wcsc[i].wispa*CLHEP::cm; + csc->wirespacing =wcsc[i].wispa*GeoModelKernelUnits::cm; // anode-cathode distance - csc->anocathodist=wcsc[i].dancat*CLHEP::cm; + csc->anocathodist=wcsc[i].dancat*GeoModelKernelUnits::cm; // gapbetwcathstrips - csc->gapbetwcathstrips=wcsc[i].gstrip*CLHEP::cm; + csc->gapbetwcathstrips=wcsc[i].gstrip*GeoModelKernelUnits::cm; // precision (Radial) strip pitch - csc->cathreadoutpitch=wcsc[i].pcatre*CLHEP::cm; // it was not used before but set by hand in CscReadoutEl. + csc->cathreadoutpitch=wcsc[i].pcatre*GeoModelKernelUnits::cm; // it was not used before but set by hand in CscReadoutEl. // Azimuthal strip pitch - //csc->phireadoutpitch = wcsc[i].psndco*CLHEP::cm; - csc->phireadoutpitch = wcsc[i].azcat*CLHEP::cm; + //csc->phireadoutpitch = wcsc[i].psndco*GeoModelKernelUnits::cm; + csc->phireadoutpitch = wcsc[i].azcat*GeoModelKernelUnits::cm; //std::cerr<<" do we come here ??? csc->phireadoutpitch = "<<csc->phireadoutpitch<<std::endl; //std::cerr<<" csc->phireadoutpitch = "<<csc->phireadoutpitch<<" csc->cathreadoutpitch "<< csc->cathreadoutpitch<<std::endl; @@ -485,20 +485,20 @@ namespace MuonGM { csc->nPhistrips = 48; // precision (Radial) strip width - csc->readoutstripswidth=wcsc[i].wrestr*CLHEP::cm; + csc->readoutstripswidth=wcsc[i].wrestr*GeoModelKernelUnits::cm; // Azimuthal strip width csc->floatingstripswidth =0.; - csc->phistripwidth = wcsc[i].wflstr*CLHEP::cm; // CTB and layout Q interpretation + csc->phistripwidth = wcsc[i].wflstr*GeoModelKernelUnits::cm; // CTB and layout Q interpretation // dead materials - csc->rectwasherthick=wcsc[i].trrwas*CLHEP::cm; - csc->roxacellwith = 54.96*CLHEP::mm; // CTB, layout Q, R, etc: must be computed - csc->roxwirebargap=wcsc[i].groxwi*CLHEP::cm; - csc->fullgasgapwirewidth=wcsc[i].wgasba*CLHEP::cm; - csc->fullwirefixbarwidth=wcsc[i].wfixwi*CLHEP::cm; - csc->wirebarposx=wcsc[i].pba1wi*CLHEP::cm; - csc->wirebarposy=wcsc[i].pba2wi*CLHEP::cm; - csc->wirebarposz=wcsc[i].pba3wi*CLHEP::cm; + csc->rectwasherthick=wcsc[i].trrwas*GeoModelKernelUnits::cm; + csc->roxacellwith = 54.96*GeoModelKernelUnits::mm; // CTB, layout Q, R, etc: must be computed + csc->roxwirebargap=wcsc[i].groxwi*GeoModelKernelUnits::cm; + csc->fullgasgapwirewidth=wcsc[i].wgasba*GeoModelKernelUnits::cm; + csc->fullwirefixbarwidth=wcsc[i].wfixwi*GeoModelKernelUnits::cm; + csc->wirebarposx=wcsc[i].pba1wi*GeoModelKernelUnits::cm; + csc->wirebarposy=wcsc[i].pba2wi*GeoModelKernelUnits::cm; + csc->wirebarposz=wcsc[i].pba3wi*GeoModelKernelUnits::cm; // std::cerr<<"A) tname, s, csc->numOfLayers "<<tname<<" "<<s<<" "<<csc->numOfLayers<<std::endl; if (tname == s) return; @@ -524,14 +524,14 @@ namespace MuonGM { log<<MSG::WARNING<<" update by hand a few numbers for the current technology sub-type "<<s <<" // Layout = "<<mysql->getGeometryVersion()<<" OK if layout is Q02, Q02_initial"<<endmsg; // precision (Radial) strip pitch - csc->cathreadoutpitch =5.31*CLHEP::mm; + csc->cathreadoutpitch =5.31*GeoModelKernelUnits::mm; // Azimuthal strip pitch - csc->phireadoutpitch =21.0*CLHEP::mm; + csc->phireadoutpitch =21.0*GeoModelKernelUnits::mm; // precision (Radial) strip width - csc->readoutstripswidth=1.52*CLHEP::mm; + csc->readoutstripswidth=1.52*GeoModelKernelUnits::mm; // Azimuthal strip width csc->floatingstripswidth = 0; // layout P interpretation - csc->phistripwidth =20.60*CLHEP::mm; + csc->phistripwidth =20.60*GeoModelKernelUnits::mm; return; } } @@ -552,9 +552,9 @@ namespace MuonGM { //std::cerr << " TECH. A new SPA named " <<s<<" nspa = "<<nspa<<std::endl; for (unsigned int i=0; i<dhwspa->size(); i++) { // sprintf(ind,"%i",wspa[i].type); - //if(s[3]==ind[0]) spa->thickness=wspa[i].tckspa*CLHEP::cm; + //if(s[3]==ind[0]) spa->thickness=wspa[i].tckspa*GeoModelKernelUnits::cm; if( s.substr(3,s.size()-3) == MuonGM::buildString(wspa[i].jsta,2) ) - spa->thickness=wspa[i].tckspa*CLHEP::cm; + spa->thickness=wspa[i].tckspa*GeoModelKernelUnits::cm; } } // end of ProcessSPA @@ -576,17 +576,17 @@ namespace MuonGM { // sprintf(ind,"%i",wsup[i].type); if( s.substr(3,s.size()-3) == MuonGM::buildString(wsup[i].jsta,2) ) { - sup->alFlangeThickness=wsup[i].xxsup[0]*CLHEP::cm; + sup->alFlangeThickness=wsup[i].xxsup[0]*GeoModelKernelUnits::cm; //if (s[3]=='3') //SUP3 if( s.substr(3,s.size()-3) == "03" ) { - sup->alHorFlangeLength=(fabs)(wsup[i].zzsup[1])*CLHEP::cm; - sup->alVerFlangeLength=wsup[i].xxsup[1]*CLHEP::cm - wsup[i].xxsup[0]*CLHEP::cm; - sup->alVerProfileThickness=wsup[i].zzsup[3]*CLHEP::cm; - sup->alHorProfileThickness=wsup[i].xxsup[3]*CLHEP::cm - wsup[i].xxsup[2]*CLHEP::cm; - sup->largeVerClearance=wsup[i].xxsup[3]*CLHEP::cm; - sup->smallVerClearance=wsup[i].xxsup[2]*CLHEP::cm; - sup->HorClearance=wsup[i].zzsup[2]*CLHEP::cm; + sup->alHorFlangeLength=(fabs)(wsup[i].zzsup[1])*GeoModelKernelUnits::cm; + sup->alVerFlangeLength=wsup[i].xxsup[1]*GeoModelKernelUnits::cm - wsup[i].xxsup[0]*GeoModelKernelUnits::cm; + sup->alVerProfileThickness=wsup[i].zzsup[3]*GeoModelKernelUnits::cm; + sup->alHorProfileThickness=wsup[i].xxsup[3]*GeoModelKernelUnits::cm - wsup[i].xxsup[2]*GeoModelKernelUnits::cm; + sup->largeVerClearance=wsup[i].xxsup[3]*GeoModelKernelUnits::cm; + sup->smallVerClearance=wsup[i].xxsup[2]*GeoModelKernelUnits::cm; + sup->HorClearance=wsup[i].zzsup[2]*GeoModelKernelUnits::cm; sup->xAMDB0 = -sup->largeVerClearance -sup->alHorProfileThickness/2.; sup->yAMDB0 = 0.; sup->zAMDB0 = - sup->alVerProfileThickness @@ -596,11 +596,11 @@ namespace MuonGM { } else //SUP1 and SUP2 { - sup->alHorFlangeLength=wsup[i].zzsup[0]*CLHEP::cm; + sup->alHorFlangeLength=wsup[i].zzsup[0]*GeoModelKernelUnits::cm; sup->alVerFlangeLength=0.; - sup->alVerProfileThickness=wsup[i].xxsup[0]*CLHEP::cm; + sup->alVerProfileThickness=wsup[i].xxsup[0]*GeoModelKernelUnits::cm; sup->alHorProfileThickness=0.; - sup->largeVerClearance=wsup[i].xxsup[1]*CLHEP::cm; + sup->largeVerClearance=wsup[i].xxsup[1]*GeoModelKernelUnits::cm; sup->smallVerClearance=0.; sup->HorClearance=0.; double totzgm = 2.*sup->alHorFlangeLength+sup->alVerProfileThickness+sup->HorClearance; @@ -643,11 +643,11 @@ namespace MuonGM { for (unsigned int i=0; i<dhwded->size(); i++) { if( s.substr(3,s.size()-3) == MuonGM::buildString(wded[i].jsta,2) ) { -// ded->AlThickness=(wded[i].tckded)*CLHEP::cm; -// ded->AlThickness = ded->AlThickness * CLHEP::cm; +// ded->AlThickness=(wded[i].tckded)*GeoModelKernelUnits::cm; +// ded->AlThickness = ded->AlThickness * GeoModelKernelUnits::cm; // a lot of confusion in the various versions of the geometry in nova - ded->AlThickness=0.3*CLHEP::mm; - ded->thickness=(wded[i].auphcb)*CLHEP::cm; + ded->AlThickness=0.3*GeoModelKernelUnits::mm; + ded->thickness=(wded[i].auphcb)*GeoModelKernelUnits::cm; ded->HoneyCombThickness=ded->thickness-2.*ded->AlThickness; break; } @@ -670,9 +670,9 @@ namespace MuonGM { for (int i=0; i<nStruct; i++) { if( s.substr(3,s.size()-3) == MuonGM::buildString(wchv[i].jsta,2) ) { - chv->thickness=wchv[i].thickness*CLHEP::cm; - chv->largeness=wchv[i].largeness*CLHEP::cm; - chv->height=wchv[i].heightness*CLHEP::cm; + chv->thickness=wchv[i].thickness*GeoModelKernelUnits::cm; + chv->largeness=wchv[i].largeness*GeoModelKernelUnits::cm; + chv->height=wchv[i].heightness*GeoModelKernelUnits::cm; } } }// end of ProcessCHV @@ -694,9 +694,9 @@ namespace MuonGM { for (int i=0; i<nStruct; i++) { if( s.substr(3,s.size()-3) == MuonGM::buildString(wcro[i].jsta,2) ) { - cro->thickness=wcro[i].thickness*CLHEP::cm; - cro->largeness=wcro[i].largeness*CLHEP::cm; - cro->height=wcro[i].heightness*CLHEP::cm; + cro->thickness=wcro[i].thickness*GeoModelKernelUnits::cm; + cro->largeness=wcro[i].largeness*GeoModelKernelUnits::cm; + cro->height=wcro[i].heightness*GeoModelKernelUnits::cm; //std::cerr<<" thick, width, height "<<cro->thickness<<" "<<cro->largeness<<" "<<cro->height<<std::endl; } } @@ -719,9 +719,9 @@ namespace MuonGM { for (int i=0; i<nStruct; i++) { if( s.substr(3,s.size()-3) == MuonGM::buildString(wcmi[i].jsta,2) ) { - cmi->thickness=wcmi[i].thickness*CLHEP::cm; - cmi->largeness=wcmi[i].largeness*CLHEP::cm; - cmi->height=wcmi[i].heightness*CLHEP::cm; + cmi->thickness=wcmi[i].thickness*GeoModelKernelUnits::cm; + cmi->largeness=wcmi[i].largeness*GeoModelKernelUnits::cm; + cmi->height=wcmi[i].heightness*GeoModelKernelUnits::cm; } } }// end of ProcessCMI @@ -743,10 +743,10 @@ namespace MuonGM { for (int i=0; i<nStruct; i++) { if( s.substr(2,s.size()-2) == MuonGM::buildString(wlbi[i].jsta,2) ) { - lbi->thickness=wlbi[i].thickness*CLHEP::cm; - lbi->height=wlbi[i].height*CLHEP::cm; - lbi->lowerThickness=wlbi[i].lowerThickness*CLHEP::cm; - lbi->yShift=wlbi[i].yShift*CLHEP::cm; + lbi->thickness=wlbi[i].thickness*GeoModelKernelUnits::cm; + lbi->height=wlbi[i].height*GeoModelKernelUnits::cm; + lbi->lowerThickness=wlbi[i].lowerThickness*GeoModelKernelUnits::cm; + lbi->yShift=wlbi[i].yShift*GeoModelKernelUnits::cm; } } } // end of ProcessLBI @@ -860,13 +860,13 @@ namespace MuonGM { //std::cout<<" ---- iz,fi "<<p.zindex<<", "<<p.phiindex; p.phi = aptp[ipos].dphi+double(phiindex)*45.; //std::cout<<" phi is "<<p.phi; - p.radius = aptp[ipos].r*CLHEP::cm; + p.radius = aptp[ipos].r*GeoModelKernelUnits::cm; //std::cout<<" r is "<<p.radius<<std::endl; - p.z = aptp[ipos].z*CLHEP::cm; + p.z = aptp[ipos].z*GeoModelKernelUnits::cm; if (p.zindex<0 && name.substr(0,1) == "B" && hasMdts) p.z = p.z-halfpitch; //std::cout<<" z is "<<p.z<<std::endl; - p.shift = aptp[ipos].s*CLHEP::cm; + p.shift = aptp[ipos].s*GeoModelKernelUnits::cm; if (verbose_posmap) std::cout<<"p.zindex,p.phi "<<p.zindex<<" "<<p.phiindex<<" shift is "<<p.shift<<std::endl; // amdb seems to follow the opposite convention about the sign // of rotation around the azimuthal axis (foro them it is a rotation @@ -1045,9 +1045,9 @@ namespace MuonGM { // std::cout << "FindPosition found the match for " << stname // << std::endl; AlignPos ap; - ap.tras=0.*CLHEP::cm; // in cm from NOVA... - ap.traz=0.*CLHEP::cm; // in cm - ap.trat=0.*CLHEP::cm; // in cm + ap.tras=0.*GeoModelKernelUnits::cm; // in cm from NOVA... + ap.traz=0.*GeoModelKernelUnits::cm; // in cm + ap.trat=0.*GeoModelKernelUnits::cm; // in cm ap.rots=0.; // in radians ap.rotz=0.; // in radians ap.rott=0.; // in radians @@ -1055,9 +1055,9 @@ namespace MuonGM { if (controlAlines >= 111111) { - ap.tras=aszt[ipos].tras*CLHEP::cm; // in cm from NOVA... - ap.traz=aszt[ipos].traz*CLHEP::cm; // in cm - ap.trat=aszt[ipos].trat*CLHEP::cm; // in cm + ap.tras=aszt[ipos].tras*GeoModelKernelUnits::cm; // in cm from NOVA... + ap.traz=aszt[ipos].traz*GeoModelKernelUnits::cm; // in cm + ap.trat=aszt[ipos].trat*GeoModelKernelUnits::cm; // in cm ap.rots=aszt[ipos].rots; // in radians ap.rotz=aszt[ipos].rotz; // in radians ap.rott=aszt[ipos].rott; // in radians @@ -1083,17 +1083,17 @@ namespace MuonGM { } if (int(controlAlines/1000)%10 != 0) { - ap.trat=aszt[ipos].trat*CLHEP::cm; + ap.trat=aszt[ipos].trat*GeoModelKernelUnits::cm; //std::cout<<" setting up t-translation "<<ap.trat<<endl; } if (int(controlAlines/10000)%10 != 0) { - ap.traz=aszt[ipos].traz*CLHEP::cm; + ap.traz=aszt[ipos].traz*GeoModelKernelUnits::cm; //std::cout<<" setting up z-translation "<<ap.traz<<endl; } if (int(controlAlines/100000)%10 != 0) { - ap.tras=aszt[ipos].tras*CLHEP::cm; + ap.tras=aszt[ipos].tras*GeoModelKernelUnits::cm; //std::cout<<" setting up s-translation "<<ap.tras<<endl; } } @@ -1153,7 +1153,7 @@ namespace MuonGM { // that doesn't seem right for BME/BMG chambers - no idea if has an impact at the end // in any case it was wrong since every and would have been wrong also in previous code - double default_halfpitch = 15.0175*CLHEP::mm; + double default_halfpitch = 15.0175*GeoModelKernelUnits::mm; double halfpitch = default_halfpitch; // loop over the banks of station components: ALMN @@ -1220,7 +1220,7 @@ namespace MuonGM { << " for " << name << std::endl; continue; } - halfpitch = 0.5*wmdt[jtech-1].tubpit*CLHEP::cm; + halfpitch = 0.5*wmdt[jtech-1].tubpit*GeoModelKernelUnits::cm; log << MSG::DEBUG << "Found new halfpitch: " << halfpitch << " for " << name << std::endl; @@ -1268,19 +1268,19 @@ namespace MuonGM { } // define here common properties - c->posx=almn[icomp].dx*CLHEP::cm; - c->posy=almn[icomp].dy*CLHEP::cm; - c->posz=almn[icomp].dz*CLHEP::cm; + c->posx=almn[icomp].dx*GeoModelKernelUnits::cm; + c->posy=almn[icomp].dy*GeoModelKernelUnits::cm; + c->posz=almn[icomp].dz*GeoModelKernelUnits::cm; c->index=almn[icomp].job; c->name=cartec+MuonGM::buildString(almn[icomp].iw, 2); c->iswap=almn[icomp].ishape; - c->dx1=almn[icomp].width_xs*CLHEP::cm; - c->dx2=almn[icomp].width_xl*CLHEP::cm; - c->dy=almn[icomp].length_y*CLHEP::cm; - c->excent=almn[icomp].excent*CLHEP::cm; - c->deadx=almn[icomp].dead1*CLHEP::cm; - c->deady=almn[icomp].dead2*CLHEP::cm; - c->dead3=almn[icomp].dead3*CLHEP::cm; + c->dx1=almn[icomp].width_xs*GeoModelKernelUnits::cm; + c->dx2=almn[icomp].width_xl*GeoModelKernelUnits::cm; + c->dy=almn[icomp].length_y*GeoModelKernelUnits::cm; + c->excent=almn[icomp].excent*GeoModelKernelUnits::cm; + c->deadx=almn[icomp].dead1*GeoModelKernelUnits::cm; + c->deady=almn[icomp].dead2*GeoModelKernelUnits::cm; + c->dead3=almn[icomp].dead3*GeoModelKernelUnits::cm; //std::cout<<" This component of station "<<name<<" is a "<<c->name<<std::endl; if (cartec == "CSC") @@ -1289,10 +1289,10 @@ namespace MuonGM { if (derc == NULL) std::cout<<" There is a problem"<<std::endl; if (name[2] == 'L'){ //std::cout<<" here is a CSL ..."<<std::endl; - derc->dy = 1129.20*CLHEP::mm; // AMDB-Q and CTB + derc->dy = 1129.20*GeoModelKernelUnits::mm; // AMDB-Q and CTB // DHW: fix values from AMDB - //else derc->dy = 1111.5*CLHEP::mm; - derc->maxwdy = almn[icomp].length_y*CLHEP::cm; + //else derc->dy = 1111.5*GeoModelKernelUnits::mm; + derc->maxwdy = almn[icomp].length_y*GeoModelKernelUnits::cm; } else derc->maxwdy = c->dy; //ProcessCSC(derc->name); @@ -1302,7 +1302,7 @@ namespace MuonGM { derc->maxwdy = derc->dy; if (jtech == 6 && name.substr(0,3) == "CSL") { - derc->dy = 1129.20*CLHEP::mm; // AMDB-Q and CTB + derc->dy = 1129.20*GeoModelKernelUnits::mm; // AMDB-Q and CTB } //ProcessSPA(derc->name); } @@ -1409,10 +1409,10 @@ template <class TYPEdnacut, class TYPEacut, class TYPEdnalin, class TYPEalin, << " component with subcut i="<<alin[ialin].i << endmsg; Cutout *c = new Cutout(); - c->dx = alin[ialin].dx*CLHEP::cm; - c->dy = alin[ialin].dy*CLHEP::cm; - c->widthXs = alin[ialin].width_xs*CLHEP::cm; - c->widthXl = alin[ialin].width_xl*CLHEP::cm; + c->dx = alin[ialin].dx*GeoModelKernelUnits::cm; + c->dy = alin[ialin].dy*GeoModelKernelUnits::cm; + c->widthXs = alin[ialin].width_xs*GeoModelKernelUnits::cm; + c->widthXl = alin[ialin].width_xl*GeoModelKernelUnits::cm; //std::string::size_type locmystr = mysql->get_DBMuonVersion().find("Egg"); //if ( locmystr != std::string::npos ) //{ @@ -1425,19 +1425,19 @@ template <class TYPEdnacut, class TYPEacut, class TYPEdnalin, class TYPEalin, // if (alin[ialin].jtyp == 11 && c->dy>0.1) // { // std::cout<<"DBREADER redefining dy of the cutout from "<<c->dy; - // c->dy = 1021.2000*CLHEP::mm; + // c->dy = 1021.2000*GeoModelKernelUnits::mm; // std::cout<<" to "<<c->dy<<std::endl; // } // else if (alin[ialin].jtyp == 11 && c->dy>0.0001) if (alin[ialin].jtyp == 11 && (c->dy>0.0001 && c->dy<1.)) { std::cout<<"DBREADER redefining dy of the cutout from "<<c->dy; - c->dy = 0.000*CLHEP::mm; + c->dy = 0.000*GeoModelKernelUnits::mm; std::cout<<" to "<<c->dy<<std::endl; } //} - c->lengthY = alin[ialin].length_y*CLHEP::cm; - c->excent = alin[ialin].excent*CLHEP::cm; + c->lengthY = alin[ialin].length_y*GeoModelKernelUnits::cm; + c->excent = alin[ialin].excent*GeoModelKernelUnits::cm; c->dead1 = alin[ialin].dead1; // temporary fix for bug in Nova/Oracle: 18/05/2006 I don't think this is needed anymore // c->dead1 = 10.*alin[ialin].dead1; diff --git a/MuonSpectrometer/MuonGeoModel/MuonGeoModel/Station.h b/MuonSpectrometer/MuonGeoModel/MuonGeoModel/Station.h index 1154694845d658a49089be8d48a934e2bd7bf135..a2034bb6a1ffa5f6a0db5e73e11b74a882454082 100755 --- a/MuonSpectrometer/MuonGeoModel/MuonGeoModel/Station.h +++ b/MuonSpectrometer/MuonGeoModel/MuonGeoModel/Station.h @@ -12,7 +12,8 @@ #include "MuonGeoModel/Cutout.h" #include "MuonGeoModel/Position.h" #include "MuonGeoModel/AlignPos.h" -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" /* This class holds an std::map of Position, AlignPos and an std::vector of @@ -67,14 +68,14 @@ public: // apit = station->FindAlignPos(zi,fi); // Delta = station->getDeltaTransform( ap, (*pit).second ); // xf->setDelta( Delta ); - HepGeom::Transform3D native_to_tsz_frame( const Position & p ) const; - HepGeom::Transform3D tsz_to_native_frame( const Position & p ) const; - HepGeom::Transform3D tsz_to_global_frame( const Position & p ) const; - HepGeom::Transform3D global_to_tsz_frame( const Position & p ) const; - HepGeom::Transform3D getNominalTransform( const Position & p ) const; - HepGeom::Transform3D getDeltaTransform_tszFrame( const AlignPos & ap ) const; - HepGeom::Transform3D getDeltaTransform( const AlignPos & ap, const Position & p ) const; - HepGeom::Transform3D getAlignedTransform( const AlignPos & ap, const Position & p ) const; + GeoTrf::Transform3D native_to_tsz_frame( const Position & p ) const; + GeoTrf::Transform3D tsz_to_native_frame( const Position & p ) const; + GeoTrf::Transform3D tsz_to_global_frame( const Position & p ) const; + GeoTrf::Transform3D global_to_tsz_frame( const Position & p ) const; + GeoTrf::Transform3D getNominalTransform( const Position & p ) const; + GeoTrf::Transform3D getDeltaTransform_tszFrame( const AlignPos & ap ) const; + GeoTrf::Transform3D getDeltaTransform( const AlignPos & ap, const Position & p ) const; + GeoTrf::Transform3D getAlignedTransform( const AlignPos & ap, const Position & p ) const; //HepGeom::Transform3D getAmdbOrgTrans(const Position & p) const; //} diff --git a/MuonSpectrometer/MuonGeoModel/src/Csc.cxx b/MuonSpectrometer/MuonGeoModel/src/Csc.cxx index 67ba7bec96c2cfe75492b333b7dac5e916a5b80d..930de752ce4f863003e41f588f8689e5186c07fe 100755 --- a/MuonSpectrometer/MuonGeoModel/src/Csc.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/Csc.cxx @@ -93,8 +93,8 @@ Csc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef) GeoTrd* upTrd = new GeoTrd(thickness/2., thickness/2., longWidth/2., upWidth/2., (physicalLength-maxwLength)/2.); const GeoShape* sCSL = - & ( (downTrd->add( (*upTrd) << HepGeom::TranslateZ3D(physicalLength/2.) ) ) - << HepGeom::TranslateZ3D((maxwLength - physicalLength)/2.) ); + & ( (downTrd->add( (*upTrd) << GeoTrf::TranslateZ3D(physicalLength/2.) ) ) + << GeoTrf::TranslateZ3D((maxwLength - physicalLength)/2.) ); lcsc = new GeoLogVol(logVolName, sCSL, mcsc); } diff --git a/MuonSpectrometer/MuonGeoModel/src/CscMultilayer.cxx b/MuonSpectrometer/MuonGeoModel/src/CscMultilayer.cxx index eeba6d8e279a1f0404aa86c501ad5351aae522a0..25c98f7d809c2a05f4f10e254932325f0e65c5cd 100755 --- a/MuonSpectrometer/MuonGeoModel/src/CscMultilayer.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/CscMultilayer.cxx @@ -11,6 +11,7 @@ #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "MuonGeoModel/MYSQL.h" #include "MuonGeoModel/Csc.h" #include "MuonGeoModel/CSC_Technology.h" @@ -79,8 +80,8 @@ CscMultiLayer::build(int /*cutoutson*/, std::vector<Cutout*> /*vcutdef*/) if (excent != length) { const GeoShape* smlt = new GeoTrd(thickness/2., thickness/2., longWidth/2., upWidth/2., (physicalLength-maxwLength)/2.); - sml = & ( (sml->add( (*smlt) << HepGeom::TranslateZ3D(physicalLength/2.) ) ) - << HepGeom::TranslateZ3D((maxwLength - physicalLength)/2.) ); + sml = & ( (sml->add( (*smlt) << GeoTrf::TranslateZ3D(physicalLength/2.) ) ) + << GeoTrf::TranslateZ3D((maxwLength - physicalLength)/2.) ); } // const GeoMaterial* mair = matManager->getMaterial("std::Air"); const GeoMaterial* mhon = matManager->getMaterial("muo::Honeycomb"); @@ -95,12 +96,12 @@ CscMultiLayer::build(int /*cutoutson*/, std::vector<Cutout*> /*vcutdef*/) if (excent != length) { const GeoShape* shont = new GeoTrd(hon_thick/2., hon_thick/2., longWidth/2., upWidth/2., (physicalLength-maxwLength)/2.); - shon = &( (shon->add( (*shont) << HepGeom::TranslateZ3D(physicalLength/2.) ) ) - << HepGeom::TranslateZ3D((maxwLength - physicalLength)/2.) ); + shon = &( (shon->add( (*shont) << GeoTrf::TranslateZ3D(physicalLength/2.) ) ) + << GeoTrf::TranslateZ3D((maxwLength - physicalLength)/2.) ); const GeoShape* sg10hont = new GeoTrd(g10thi/2., g10thi/2., longWidth/2., upWidth/2., (physicalLength-maxwLength)/2.); - sg10hon = &( (sg10hon->add( (*sg10hont) << HepGeom::TranslateZ3D(physicalLength/2.) ) ) - << HepGeom::TranslateZ3D((maxwLength - physicalLength)/2.) ); + sg10hon = &( (sg10hon->add( (*sg10hont) << GeoTrf::TranslateZ3D(physicalLength/2.) ) ) + << GeoTrf::TranslateZ3D((maxwLength - physicalLength)/2.) ); } // const GeoMaterial* mhon = matManager->getMaterial("muo::Honeycomb"); const GeoLogVol* lhon = new GeoLogVol("Honeycomb",shon,mhon); @@ -134,8 +135,8 @@ CscMultiLayer::build(int /*cutoutson*/, std::vector<Cutout*> /*vcutdef*/) gShortWidth/2., gLongWidth/2., gmaxwLength/2.); const GeoShape* sgast = new GeoTrd(gasThickness/2.,gasThickness/2., gLongWidth/2., gupWidth/2., (gLength-gmaxwLength)/2.); - sgas = &( (sgas->add( (*sgast) << HepGeom::TranslateZ3D(gLength/2.) ) ) - << HepGeom::TranslateZ3D((gmaxwLength - gLength)/2.) ); + sgas = &( (sgas->add( (*sgast) << GeoTrf::TranslateZ3D(gLength/2.) ) ) + << GeoTrf::TranslateZ3D((gmaxwLength - gLength)/2.) ); } const GeoMaterial* mgas = matManager->getMaterial("muo::CscArCO2"); const GeoLogVol* lgas = NULL; @@ -145,7 +146,7 @@ CscMultiLayer::build(int /*cutoutson*/, std::vector<Cutout*> /*vcutdef*/) for (int i = 0; i < nrOfLayers+1; i++) { GeoNameTag* np = new GeoNameTag("panel"); - GeoTransform* xp = new GeoTransform(HepGeom::TranslateX3D(newpos-g10thi/2.)); + GeoTransform* xp = new GeoTransform(GeoTrf::TranslateX3D(newpos-g10thi/2.)); pml->add(new GeoIdentifierTag(i)); pml->add(np); pml->add(xp); @@ -158,7 +159,7 @@ CscMultiLayer::build(int /*cutoutson*/, std::vector<Cutout*> /*vcutdef*/) // the gas Gap // correct the position within the chamber GeoNameTag* ng = new GeoNameTag("CscArCO2"); - GeoTransform* xg = new GeoTransform(HepGeom::TranslateX3D(newpos-gasThickness/2.)); + GeoTransform* xg = new GeoTransform(GeoTrf::TranslateX3D(newpos-gasThickness/2.)); pml->add(new GeoIdentifierTag(i)); pml->add(ng); pml->add(xg); diff --git a/MuonSpectrometer/MuonGeoModel/src/Cutout.cxx b/MuonSpectrometer/MuonGeoModel/src/Cutout.cxx index e69b18e071453b9c099cb8758df8f7c81e9908f8..cc232c57233652e79481a4ada9befaabff349162 100755 --- a/MuonSpectrometer/MuonGeoModel/src/Cutout.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/Cutout.cxx @@ -9,8 +9,8 @@ #include "GeoModelKernel/GeoTrap.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoShapeShift.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" namespace MuonGM { @@ -51,7 +51,7 @@ const GeoShape* Cutout::build() // std::cout << "translate 0, "<<dx<<", "<<zpos<<std::endl; // std::cout << "widthXl="<<widthXl<<" widthXs="<<widthXs<<" lengthY=" // <<lengthY<<" excent="<<excent<<" dead1="<<dead1<<std::endl; - HepGeom::Transform3D xfTemp = HepGeom::Translate3D(0.,dx,zpos); + GeoTrf::Transform3D xfTemp = GeoTrf::Translate3D(0.,dx,zpos); const GeoShape *sCutout; /* // This is just to make sure we are putting stuff in the right place: @@ -79,15 +79,15 @@ const GeoShape* Cutout::build() double alpha = atan(2.*excent/lengthY); // polar and azimuthal angles of vector describing offset of // cutout planes: - double theta = -dead1*CLHEP::degree; - double phi = -90.*CLHEP::degree; + double theta = -dead1*GeoModelKernelUnits::degree; + double phi = -90.*GeoModelKernelUnits::degree; // GeoPara requires the +/- z faces be parallel to the x-y plane, // so choose x = width, y=length, z=thickness: GeoPara *cutoutpara = new GeoPara(widthXs/2.,lengthY/2.,thickness/2., alpha,theta,phi); // now rotate it so thickness is x-axis, width is y-axis, length z-axis: - HepGeom::Transform3D xRot = HepGeom::RotateX3D(-90.*CLHEP::degree)* - HepGeom::RotateY3D(-90.*CLHEP::degree); + GeoTrf::Transform3D xRot = GeoTrf::RotateX3D(-90.*GeoModelKernelUnits::degree)* + GeoTrf::RotateY3D(-90.*GeoModelKernelUnits::degree); xfTemp = xfTemp * xRot; sCutout = & ( (*cutoutpara) <<xfTemp); cutoutpara->ref(); @@ -95,7 +95,7 @@ const GeoShape* Cutout::build() } else { - GeoTrap *cutouttrap = new GeoTrap(thickness/2.,dead1*CLHEP::degree,90.*CLHEP::degree, + GeoTrap *cutouttrap = new GeoTrap(thickness/2.,dead1*GeoModelKernelUnits::degree,90.*GeoModelKernelUnits::degree, excent,widthXs/2.,widthXl/2., atan((2.*excent+(widthXl-widthXs)/2.)/ lengthY), @@ -104,8 +104,8 @@ const GeoShape* Cutout::build() lengthY) ); // now rotate it so thickness is x-axis, width is y-axis, length z-axis: - HepGeom::Transform3D xRot = HepGeom::RotateX3D(-90.*CLHEP::degree)* - HepGeom::RotateY3D(-90.*CLHEP::degree); + GeoTrf::Transform3D xRot = GeoTrf::RotateX3D(-90.*GeoModelKernelUnits::degree)* + GeoTrf::RotateY3D(-90.*GeoModelKernelUnits::degree); xfTemp = xfTemp * xRot; sCutout = & ( (*cutouttrap) <<xfTemp); cutouttrap->ref(); diff --git a/MuonSpectrometer/MuonGeoModel/src/DBReader.cxx b/MuonSpectrometer/MuonGeoModel/src/DBReader.cxx index 4e845660f79c2aa5bd8a2bcb6d9c505eac678604..b8d4ca5d41086a6b8fa70ac5ba99616a89e07136 100755 --- a/MuonSpectrometer/MuonGeoModel/src/DBReader.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/DBReader.cxx @@ -4,7 +4,6 @@ #include "MuonGeoModel/DBReader.h" #include "StoreGate/StoreGateSvc.h" -#include "CLHEP/Units/SystemOfUnits.h" // #include "MuonGeoModel/TgcReadoutParams.h" diff --git a/MuonSpectrometer/MuonGeoModel/src/Ded.cxx b/MuonSpectrometer/MuonGeoModel/src/Ded.cxx index 09134318072c39522cef315270034a367cf41ffb..51821178ca2e8bbcf3cfa98e1a2fe0022a42cec3 100755 --- a/MuonSpectrometer/MuonGeoModel/src/Ded.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/Ded.cxx @@ -15,6 +15,7 @@ #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoShapeSubtraction.h" #include "GeoModelKernel/GeoShapeIntersection.h" +#include "GeoModelKernel/GeoDefinitions.h" #define skip_ded false @@ -77,12 +78,12 @@ GeoVPhysVol* Ded::build(int cutoutson, GeoPhysVol* tempPhys = 0; Cutout* cut = 0; GeoShape* cutoutShape = 0; - HepGeom::Transform3D cutTrans; + GeoTrf::Transform3D cutTrans{GeoTrf::Transform3D::Identity()}; for (unsigned i = 0; i < vcutdef.size(); i++) { cut = vcutdef[i]; cutoutShape = new GeoTrd(thickness/2.+1., thickness/2.+1., cut->widthXs/2., cut->widthXl/2., cut->lengthY/2.); - cutTrans = HepGeom::Translate3D(0.0, cut->dx, -length/2 + cut->dy + cut->lengthY/2.); + cutTrans = GeoTrf::Translate3D(0.0, cut->dx, -length/2 + cut->dy + cut->lengthY/2.); GeoCutVolAction cutAction(*cutoutShape, cutTrans); pded->apply(&cutAction); diff --git a/MuonSpectrometer/MuonGeoModel/src/DriftTube.cxx b/MuonSpectrometer/MuonGeoModel/src/DriftTube.cxx index faf46ffe51f2afc452f1e94a8e025685fb2ae9f8..f891c49739454e3b7f6e45c4b1033062d798734e 100755 --- a/MuonSpectrometer/MuonGeoModel/src/DriftTube.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/DriftTube.cxx @@ -10,6 +10,7 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoSerialDenominator.h" #include "GeoModelKernel/GeoNameTag.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "MuonGeoModel/MYSQL.h" #include "MuonGeoModel/MDT_Technology.h" #include <iostream> @@ -32,9 +33,9 @@ DriftTube::DriftTube(std::string n): DetectorElement(n), plugLength = md->tubeEndPlugLength; // std::cout<<" drift tube gasR, outerR, plugL "<<gasRadius<<" "<<outerRadius<<" "<<plugLength<<std::endl; -// outerRadius=1.5*CLHEP::cm; -// gasRadius=1.46*CLHEP::cm; -// plugLength=7*CLHEP::cm; +// outerRadius=1.5*GeoModelKernelUnits::cm; +// gasRadius=1.46*GeoModelKernelUnits::cm; +// plugLength=7*GeoModelKernelUnits::cm; } GeoVPhysVol *DriftTube::build() @@ -55,8 +56,8 @@ GeoVPhysVol *DriftTube::build() GeoPhysVol *pgas = new GeoPhysVol(lgas); GeoSerialDenominator *plugDenominator= new GeoSerialDenominator("Tube Endplug"); - GeoTransform *ec0X = new GeoTransform(HepGeom::TranslateZ3D(+(length-plugLength)/2)); - GeoTransform *ec1X = new GeoTransform(HepGeom::TranslateZ3D(-(length-plugLength)/2)); + GeoTransform *ec0X = new GeoTransform(GeoTrf::TranslateZ3D(+(length-plugLength)/2)); + GeoTransform *ec1X = new GeoTransform(GeoTrf::TranslateZ3D(-(length-plugLength)/2)); std::string sGasName = "SensitiveGas"; GeoNameTag *gasDenominator = new GeoNameTag(sGasName); @@ -79,7 +80,7 @@ void DriftTube::print() std::cout << " Tube material : " << tubeMaterial.c_str() << std::endl; std::cout << " Radius : " << outerRadius << std::endl; std::cout << " Length : " << length; - std::cout << " Thickness : " << outerRadius-gasRadius << " CLHEP::mm" << std::endl; + std::cout << " Thickness : " << outerRadius-gasRadius << " mm" << std::endl; std::cout << " Gas material : " << gasMaterial.c_str() << std::endl; std::cout << " EP length : " << plugLength << std::endl; } diff --git a/MuonSpectrometer/MuonGeoModel/src/MMSpacer.cxx b/MuonSpectrometer/MuonGeoModel/src/MMSpacer.cxx index d6f767dba9604a36670c7c2de849c6509b7d7629..8c863fbc34a15929ede1694204b97b7089576b7d 100755 --- a/MuonSpectrometer/MuonGeoModel/src/MMSpacer.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/MMSpacer.cxx @@ -20,6 +20,7 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoIdentifierTag.h" +#include "GeoModelKernel/GeoDefinitions.h" // for cutouts: #include "GeoModelKernel/GeoShapeSubtraction.h" #include "GeoModelKernel/GeoShapeIntersection.h" @@ -68,9 +69,8 @@ MMSpacer::build(int minimalgeo, int , std::vector<Cutout*> ) double dy=t->lowZCutOutWidth; double dz=t->lowZCutOutDZ; const GeoShape* sbox = new GeoTrd(thickness,thickness,dy,dy,dz); - HepGeom::Transform3D cut1,cut2; - cut1=HepGeom::Translate3D(0.0, -width/2., -length/2.); - cut2=HepGeom::Translate3D(0.0, width/2., -length/2.); + GeoTrf::Translate3D cut1(0.0, -width/2., -length/2.); + GeoTrf::Translate3D cut2(0.0, width/2., -length/2.); strd= &(strd->subtract( (*sbox) << cut1 )); strd= &(strd->subtract( (*sbox) << cut2 )); } @@ -79,9 +79,8 @@ MMSpacer::build(int minimalgeo, int , std::vector<Cutout*> ) double dy=t->highZCutOutWidth; double dz=t->highZCutOutDZ; const GeoShape* sbox = new GeoTrd(thickness,thickness,dy,dy,dz); - HepGeom::Transform3D cut1,cut2; - cut1=HepGeom::Translate3D(0.0, -longWidth/2., length/2.); - cut2=HepGeom::Translate3D(0.0, longWidth/2., length/2.); + GeoTrf::Translate3D cut1(0.0, -longWidth/2., length/2.); + GeoTrf::Translate3D cut2(0.0, longWidth/2., length/2.); strd= &(strd->subtract( (*sbox) << cut1 )); strd= &(strd->subtract( (*sbox) << cut2 )); } diff --git a/MuonSpectrometer/MuonGeoModel/src/Micromegas.cxx b/MuonSpectrometer/MuonGeoModel/src/Micromegas.cxx index ee45d1536be00a8b14ee0bdcd39f138821e7cf4a..e87668f7c335dc1e44de6dcdd504d79a5d654695 100755 --- a/MuonSpectrometer/MuonGeoModel/src/Micromegas.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/Micromegas.cxx @@ -21,6 +21,7 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoIdentifierTag.h" +#include "GeoModelKernel/GeoDefinitions.h" // for cutouts: #include "GeoModelKernel/GeoShapeSubtraction.h" #include "GeoModelKernel/GeoShapeIntersection.h" @@ -78,9 +79,6 @@ Micromegas::build(int minimalgeo, int , std::vector<Cutout*> ) longWidth/2, length/2); - HepGeom::Transform3D cut1,cut2,cut3,cut4; - - logVolName=name; if (!(m_component->subType).empty()) logVolName+=("-"+m_component->subType); const GeoMaterial* mtrd = matManager->getMaterial("sct::PCB"); @@ -118,7 +116,7 @@ Micromegas::build(int minimalgeo, int , std::vector<Cutout*> ) double newXPos=newpos; const GeoShape* sGasVolume = new GeoTrd(gasTck/2, gasTck/2, widthActive/2, - longWidthActive/2, lengthActive/2); + longWidthActive/2, lengthActive/2); @@ -126,36 +124,35 @@ Micromegas::build(int minimalgeo, int , std::vector<Cutout*> ) matManager->getMaterial("muo::ArCO2")); GeoPhysVol* ptrdtmp = new GeoPhysVol(ltrdtmp); GeoNameTag* ntrdtmp = new GeoNameTag(name+"muo::ArCO2"); - GeoTransform* ttrdtmp = new GeoTransform(HepGeom::TranslateX3D(newXPos)); + GeoTransform* ttrdtmp = new GeoTransform(GeoTrf::TranslateX3D(newXPos)); // Place gas volume inside G10 mother volume so that // subtractions from gas volume now become G10 - + ptrd->add(ntrdtmp); ptrd->add(ttrdtmp); ptrd->add(ptrdtmp); - - double lW=longWidth/2.-((longWidth-width)/2.)*f1/length; - double W=width/2.+((longWidth-width)/2.)*f2/length; - const GeoShape* trd1 = new GeoTrd(gasTck/2,gasTck/2, width/2, - longWidth/2, length/2); - const GeoShape* trd2 = new GeoTrd(gasTck,gasTck, W-f3, - lW-f3, length/2-(f1+f2)/2.); - HepGeom::Transform3D c; - c=HepGeom::Translate3D(0,0,(f2-f1)/2.); - trd1= &(trd1->subtract( (*trd2) << c )); - GeoLogVol* ltrdframe = new GeoLogVol("MM_Frame", trd1, - matManager->getMaterial("std::Aluminium")); - GeoPhysVol* ptrdframe = new GeoPhysVol(ltrdframe); - - ptrdtmp->add(ptrdframe); - - + + double lW=longWidth/2.-((longWidth-width)/2.)*f1/length; + double W=width/2.+((longWidth-width)/2.)*f2/length; + const GeoShape* trd1 = new GeoTrd(gasTck/2,gasTck/2, width/2, + longWidth/2, length/2); + const GeoShape* trd2 = new GeoTrd(gasTck,gasTck, W-f3, + lW-f3, length/2-(f1+f2)/2.); + GeoTrf::Translate3D c(0,0,(f2-f1)/2.); + trd1= &(trd1->subtract( (*trd2) << c )); + GeoLogVol* ltrdframe = new GeoLogVol("MM_Frame", trd1, + matManager->getMaterial("std::Aluminium")); + GeoPhysVol* ptrdframe = new GeoPhysVol(ltrdframe); + + ptrdtmp->add(ptrdframe); + + iSenLyr++; - + } // Loop over tgc layers - + return ptrd; } diff --git a/MuonSpectrometer/MuonGeoModel/src/MultiLayer.cxx b/MuonSpectrometer/MuonGeoModel/src/MultiLayer.cxx index faa950aa33b8a827fb4ffed506c670f33641c9ea..d928e6b937babb54671a015c44b9dde4e65ff904 100755 --- a/MuonSpectrometer/MuonGeoModel/src/MultiLayer.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/MultiLayer.cxx @@ -19,8 +19,9 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoSerialIdentifier.h" -#include "CLHEP/Geometry/Transform3D.h" -#include "CLHEP/GenericFunctions/Variable.hh" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" +#include "GeoGenericFunctions/Variable.h" // for cutouts #include "GeoModelKernel/GeoShape.h" #include "GeoModelKernel/GeoShapeShift.h" @@ -87,11 +88,11 @@ GeoFullPhysVol* MultiLayer::build() if (foamthicknessup > foamthicknesslow) { foamthicknesslow = 0.; - if (fabs(foamthicknessup - 15*CLHEP::mm) < 0.1) foamthicknessup = 15*CLHEP::mm; - else if (fabs(foamthicknessup - 30.75*CLHEP::mm) < 0.1) foamthicknessup = 30.75*CLHEP::mm; - else if (fabs(foamthicknessup - 30.00*CLHEP::mm) < 0.1) foamthicknessup = 30.00*CLHEP::mm; - else if (fabs(foamthicknessup - 10.00*CLHEP::mm) < 0.1 - && logVolName.find("BMG") != std::string::npos ) foamthicknessup = 10.00*CLHEP::mm; + if (fabs(foamthicknessup - 15*GeoModelKernelUnits::mm) < 0.1) foamthicknessup = 15*GeoModelKernelUnits::mm; + else if (fabs(foamthicknessup - 30.75*GeoModelKernelUnits::mm) < 0.1) foamthicknessup = 30.75*GeoModelKernelUnits::mm; + else if (fabs(foamthicknessup - 30.00*GeoModelKernelUnits::mm) < 0.1) foamthicknessup = 30.00*GeoModelKernelUnits::mm; + else if (fabs(foamthicknessup - 10.00*GeoModelKernelUnits::mm) < 0.1 + && logVolName.find("BMG") != std::string::npos ) foamthicknessup = 10.00*GeoModelKernelUnits::mm; else if ( logVolName == "BME1MDT09" || logVolName == "BME2MDT09" ) { //@@ foamthicknesslow = 0.; foamthicknessup = 0.; @@ -102,11 +103,11 @@ GeoFullPhysVol* MultiLayer::build() } else { foamthicknessup = 0.; - if (fabs(foamthicknesslow - 15*CLHEP::mm) < 0.1) foamthicknesslow = 15*CLHEP::mm; - else if (fabs(foamthicknesslow - 30.75*CLHEP::mm) < 0.1) foamthicknesslow = 30.75*CLHEP::mm; - else if (fabs(foamthicknesslow - 30.00*CLHEP::mm) < 0.1) foamthicknesslow = 30.00*CLHEP::mm; - else if (fabs(foamthicknesslow - 10.00*CLHEP::mm) < 0.1 - && logVolName.find("BMG") != std::string::npos ) foamthicknesslow = 10.00*CLHEP::mm; + if (fabs(foamthicknesslow - 15*GeoModelKernelUnits::mm) < 0.1) foamthicknesslow = 15*GeoModelKernelUnits::mm; + else if (fabs(foamthicknesslow - 30.75*GeoModelKernelUnits::mm) < 0.1) foamthicknesslow = 30.75*GeoModelKernelUnits::mm; + else if (fabs(foamthicknesslow - 30.00*GeoModelKernelUnits::mm) < 0.1) foamthicknesslow = 30.00*GeoModelKernelUnits::mm; + else if (fabs(foamthicknesslow - 10.00*GeoModelKernelUnits::mm) < 0.1 + && logVolName.find("BMG") != std::string::npos ) foamthicknesslow = 10.00*GeoModelKernelUnits::mm; else if ( logVolName == "BME1MDT09" || logVolName == "BME2MDT09" ) { //@@ foamthicknesslow = 0.; foamthicknessup = 0.; @@ -147,7 +148,7 @@ GeoFullPhysVol* MultiLayer::build() lengthPos = -length/2. + sum_len + submllength; sum_len += 2.*submllength; double widthPos = cutoutXtubes[isub]; - HepGeom::Transform3D submlpos = HepGeom::Translate3D(0.,widthPos,lengthPos); + GeoTrf::Transform3D submlpos = GeoTrf::Translate3D(0.,widthPos,lengthPos); const GeoTrd* tempSLay = NULL; const GeoShape* tempSLay1 = NULL; @@ -238,41 +239,41 @@ GeoFullPhysVol* MultiLayer::build() const GeoShape* stube = NULL; double tL = longWidth/2.0 - (tubePitch/2.)*TrdDwoverL; stube = new GeoTube(0.0, tubePitch/2., tL); - stube = & ( (*stube) << HepGeom::RotateX3D(90.*CLHEP::deg) ); + stube = & ( (*stube) << GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) ); const GeoShape* stubewithcut = NULL; if (cutoutNsteps > 1) { double toptubelength = cutoutTubeLength[cutoutNsteps-1]; if (cutoutFullLength[cutoutNsteps-1]) toptubelength = longWidth; stubewithcut = new GeoTube(0.0, tubePitch/2., toptubelength/2.0); - stubewithcut = & ( (*stubewithcut) << HepGeom::RotateX3D(90.*CLHEP::deg) ); + stubewithcut = & ( (*stubewithcut) << GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) ); } GeoShape* sbox = new GeoTrd(mdtthickness, mdtthickness, longWidth, longWidth, tubePitch/2.); GeoShape* sboxf = new GeoTrd(mdtthickness, mdtthickness, longWidth, - longWidth, tubePitch/4.+1*CLHEP::mm); - slay = &(slay->subtract( (*sbox)<<HepGeom::Translate3D(0.,0.,length/2.))); + longWidth, tubePitch/4.+1*GeoModelKernelUnits::mm); + slay = &(slay->subtract( (*sbox)<<GeoTrf::Translate3D(0.,0.,length/2.))); for (int i = 0; i < nrOfLayers; i++) { - if (xx[i] > tubePitch/2. + 10.*CLHEP::mm) { + if (xx[i] > tubePitch/2. + 10.*GeoModelKernelUnits::mm) { // subtract tube at the start if (verbose_multilayer) std::cout << " Cutting tube at xx = " << yy[i] << " z = " << -length/2. << std::endl; - slay = &(slay->subtract( (*stube)<<HepGeom::Translate3D(-mdtthickness/2.+yy[i],0.,-length/2.) )); + slay = &(slay->subtract( (*stube)<<GeoTrf::Translate3D(-mdtthickness/2.+yy[i],0.,-length/2.) )); // add tube at the end // distinguish stations with/without cutouts if (cutoutNsteps == 1) { // no cutouts if (verbose_multilayer) std::cout << " Adding tube at xx = " << yy[i] << " z = " << length/2. << std::endl; - slay = &(slay->add( (*stube)<<HepGeom::Translate3D(-mdtthickness/2.+yy[i],0.,length/2.-tubePitch/2.) )); + slay = &(slay->add( (*stube)<<GeoTrf::Translate3D(-mdtthickness/2.+yy[i],0.,length/2.-tubePitch/2.) )); } else { // there are cutouts if (verbose_multilayer) std::cout << " Adding tube at xx = " << yy[i] << " y(cutout!) = " << cutoutXtubes[cutoutNsteps-1] << " z = " << length/2. << std::endl; slay = &(slay->add( (*stubewithcut) - <<HepGeom::Translate3D(-mdtthickness/2.+yy[i], + <<GeoTrf::Translate3D(-mdtthickness/2.+yy[i], cutoutXtubes[cutoutNsteps-1], length/2.-tubePitch/2.) )); } @@ -297,7 +298,7 @@ GeoFullPhysVol* MultiLayer::build() sfoam = new GeoTrd(foamthicknesslow/2.-eps, foamthicknesslow/2.-eps, width/2.-eps, longWidth/2.-eps, length/2.); } - sfoam = &(sfoam->subtract( (*sboxf)<<HepGeom::Translate3D(0.,0.,length/2.-tubePitch/4.))); + sfoam = &(sfoam->subtract( (*sboxf)<<GeoTrf::Translate3D(0.,0.,length/2.-tubePitch/4.))); mfoam = matManager->getMaterial("muo::Foam"); lfoam = new GeoLogVol("MultiLayerFoam", sfoam, mfoam); @@ -309,7 +310,7 @@ GeoFullPhysVol* MultiLayer::build() sfoam = new GeoTrd(foamthicknessup/2.-eps, foamthicknessup/2.-eps, width/2.-eps, longWidth/2.-eps, length/2.); } - sfoam = &(sfoam->subtract( (*sboxf)<<HepGeom::Translate3D(0.,0.,length/2.-tubePitch/4.))); + sfoam = &(sfoam->subtract( (*sboxf)<<GeoTrf::Translate3D(0.,0.,length/2.-tubePitch/4.))); mfoam = matManager->getMaterial("muo::Foam"); lfoam = new GeoLogVol("MultiLayerFoam", sfoam, mfoam); @@ -322,7 +323,7 @@ GeoFullPhysVol* MultiLayer::build() if ( logVolName != "BME1MDT09" && logVolName != "BME2MDT09" ) { //@@ pfoam = new GeoPhysVol(lfoam); - GeoTransform* xf = new GeoTransform (HepGeom::TranslateX3D(foamposition)); + GeoTransform* xf = new GeoTransform (GeoTrf::TranslateX3D(foamposition)); GeoNameTag* nt = new GeoNameTag(name+" MultiLayerFoam"); play->add(new GeoIdentifierTag(0)); play->add(nt); @@ -530,10 +531,10 @@ GeoFullPhysVol* MultiLayer::build() if (nt > 0 && !internalCutoutBMG[j]) { loffset = nttot*tubePitch; lstart = loffset - length/2. + xx[i]; - Genfun::Variable K; - Genfun::GENFUNCTION f = tubePitch*K + lstart; - TRANSFUNCTION t = HepGeom::TranslateY3D(0.)*HepGeom::RotateX3D(90*CLHEP::deg)* - HepGeom::TranslateX3D(tstart)*Pow(HepGeom::TranslateY3D(1.0),f); + GeoGenfun::Variable K; + GeoGenfun::GENFUNCTION f = tubePitch*K + lstart; + TRANSFUNCTION t = GeoTrf::TranslateY3D(0.)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg)* + GeoTrf::TranslateX3D(tstart)*Pow(GeoTrf::TranslateY3D(1.0),f); GeoSerialTransformer* s = new GeoSerialTransformer(tV,&t,nt); play->add(new GeoSerialIdentifier(100*(i+1)+nttot + 1)); play->add(s); @@ -592,10 +593,10 @@ GeoFullPhysVol* MultiLayer::build() if (nt > 0) { loffset = nttot*tubePitch; lstart = loffset - length/2. + xx[i]; - Genfun::Variable K; - Genfun::GENFUNCTION f = tubePitch*K + lstart; - TRANSFUNCTION t = HepGeom::TranslateY3D(dy)*HepGeom::RotateX3D(90*CLHEP::deg)* - HepGeom::TranslateX3D(tstart)*Pow(HepGeom::TranslateY3D(1.0),f); + GeoGenfun::Variable K; + GeoGenfun::GENFUNCTION f = tubePitch*K + lstart; + TRANSFUNCTION t = GeoTrf::TranslateY3D(dy)*GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg)* + GeoTrf::TranslateX3D(tstart)*Pow(GeoTrf::TranslateY3D(1.0),f); GeoSerialTransformer* s = new GeoSerialTransformer(tV,&t,nt); play->add(new GeoSerialIdentifier(100*(i+1)+nttot + 1)); play->add(s); @@ -617,10 +618,10 @@ GeoFullPhysVol* MultiLayer::build() lstart = -length/2. + xx[i]; // std::cout << " Tubes starting at t = " << tstart << " , y = " << lstart // << std::endl; - Genfun::Variable K; - Genfun::GENFUNCTION f = tubePitch*K + lstart; - TRANSFUNCTION t = HepGeom::RotateX3D(90*CLHEP::deg)*HepGeom::TranslateX3D(tstart)* - Pow(HepGeom::TranslateY3D(1.0),f); + GeoGenfun::Variable K; + GeoGenfun::GENFUNCTION f = tubePitch*K + lstart; + TRANSFUNCTION t = GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg)*GeoTrf::TranslateX3D(tstart)* + Pow(GeoTrf::TranslateY3D(1.0),f); GeoVPhysVol* tV = tubeVector[0]; GeoSerialTransformer* s = new GeoSerialTransformer(tV,&t,nrOfTubes); play->add(new GeoSerialIdentifier(100*(i+1)+1)); @@ -636,10 +637,10 @@ GeoFullPhysVol* MultiLayer::build() GeoVPhysVol* tV = tubeVector[j]; loffset = j*nrTubesPerStep*tubePitch; lstart = loffset - length/2. + xx[i]; - Genfun::Variable K; - Genfun::GENFUNCTION f = tubePitch*K + lstart; - TRANSFUNCTION t = HepGeom::RotateX3D(90*CLHEP::deg)*HepGeom::TranslateX3D(tstart)* - Pow(HepGeom::TranslateY3D(1.0),f); + GeoGenfun::Variable K; + GeoGenfun::GENFUNCTION f = tubePitch*K + lstart; + TRANSFUNCTION t = GeoTrf::RotateX3D(90*GeoModelKernelUnits::deg)*GeoTrf::TranslateX3D(tstart)* + Pow(GeoTrf::TranslateY3D(1.0),f); GeoSerialTransformer* s = new GeoSerialTransformer(tV,&t,nrTubesPerStep); play->add(new GeoSerialIdentifier(100*(i+1)+j*nrTubesPerStep + 1)); play->add(s); diff --git a/MuonSpectrometer/MuonGeoModel/src/MuonChamber.cxx b/MuonSpectrometer/MuonGeoModel/src/MuonChamber.cxx index 653b06bdddc5dfb7bced206eb5a7b594c760c190..9b7ed80bb2653846b597370e4879f3cff92efa32 100755 --- a/MuonSpectrometer/MuonGeoModel/src/MuonChamber.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/MuonChamber.cxx @@ -5,6 +5,7 @@ #include "GaudiKernel/MsgStream.h" #include "AthenaKernel/getMessageSvc.h" // +#include "GeoPrimitives/GeoPrimitives.h" #include "MuonGeoModel/MuonChamber.h" #include "MuonGeoModel/Position.h" #include "MuonReadoutGeometry/MuonStation.h" @@ -62,7 +63,8 @@ #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeIntersection.h" #include "GeoModelKernel/GeoIdentifierTag.h" -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include <vector> #include <fstream> #include <iomanip> @@ -136,7 +138,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, dx = extratop/2. - extrabottom/2.; if (verbose) log<<MSG::VERBOSE<<" m_station name "<<m_station->GetName()<<" extra top, bottom, dx = " <<extratop<<" "<<extrabottom<<endmsg; - strd = & ( (*maintrd) << HepGeom::Translate3D(dx, 0., 0.) ); + strd = & ( (*maintrd) << GeoTrf::Translate3D(dx, 0., 0.) ); } else { strd = maintrd; } @@ -163,7 +165,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, } GeoShape* box = new GeoBox(cthick/2., longWidth/2., (length-clen)/2.); box->ref(); - strd = &(strd->subtract( (*box) << HepGeom::Translate3D(cxpos, 0., cypos) ) ); + strd = &(strd->subtract( (*box) << GeoTrf::Translate3D(cxpos, 0., cypos) ) ); box->unref(); } @@ -188,7 +190,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, } GeoShape* box1 = new GeoBox(cutthick/2., (longWidth+2.)/2., cutlen); box1->ref(); - strd = &(strd->subtract( (*box1) << HepGeom::Translate3D( (totthick-cutthick)/2., 0., length/2.) ) ); + strd = &(strd->subtract( (*box1) << GeoTrf::Translate3D( (totthick-cutthick)/2., 0., length/2.) ) ); box1->unref(); } } @@ -225,15 +227,15 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, GeoShape* box = new GeoBox((totthick+2.)/2., (longWidth+2.)/2., halfpitch); box->ref(); const GeoShape* frontcyl = new GeoTube(0.0, halfpitch+0.001, longWidth/2.); - frontcyl = &( (*frontcyl) << HepGeom::RotateX3D(90.*CLHEP::deg) ); + frontcyl = &( (*frontcyl) << GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) ); frontcyl->ref(); const GeoShape* backcyl = new GeoTube(0.0, halfpitch-0.001, (longWidth+2.)/2.); - backcyl = &( (*backcyl) << HepGeom::RotateX3D(90.*CLHEP::deg) ); + backcyl = &( (*backcyl) << GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) ); backcyl->ref(); if (index > 0) { // If chamber has MDTs, shorten length by halfpitch (remove what was added in DBReader.h) - strd = &(strd->subtract( (*box) << HepGeom::Translate3D(0., 0., length/2.) ) ); + strd = &(strd->subtract( (*box) << GeoTrf::Translate3D(0., 0., length/2.) ) ); double sign = 1.; for (int i = 0; i < index; i++) { comp = (StandardComponent*)m_station->GetComponent(mdt_index[i]); @@ -242,19 +244,19 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, mdt_pos += amdbOrigine_along_thickness; xtube1 = sign*(mdt_half_thick - (root3 + 1.)*halfpitch); xtube2 = sign*(mdt_half_thick - (3*root3 + 1.)*halfpitch); - strd = &(strd->add( (*frontcyl) << HepGeom::Translate3D(mdt_pos+xtube1, 0., length/2.-halfpitch) ) ); - strd = &(strd->subtract( (*backcyl) << HepGeom::Translate3D(mdt_pos+xtube1, 0., -length/2.) ) ); + strd = &(strd->add( (*frontcyl) << GeoTrf::Translate3D(mdt_pos+xtube1, 0., length/2.-halfpitch) ) ); + strd = &(strd->subtract( (*backcyl) << GeoTrf::Translate3D(mdt_pos+xtube1, 0., -length/2.) ) ); if (stname == "BIL" || (stname == "BIS" && std::abs(zi) != 8) || testEIL) { - strd = &(strd->add( (*frontcyl) << HepGeom::Translate3D(mdt_pos+xtube2, 0., length/2.-halfpitch) ) ); - strd = &(strd->subtract( (*backcyl) << HepGeom::Translate3D(mdt_pos+xtube2, 0., -length/2.) ) ); + strd = &(strd->add( (*frontcyl) << GeoTrf::Translate3D(mdt_pos+xtube2, 0., length/2.-halfpitch) ) ); + strd = &(strd->subtract( (*backcyl) << GeoTrf::Translate3D(mdt_pos+xtube2, 0., -length/2.) ) ); } sign *= -1.; } } if (stname != "EIL") { - if (zi < 0 && !is_mirrored) strd = &( (*strd) << HepGeom::RotateX3D(180.*CLHEP::deg) ); + if (zi < 0 && !is_mirrored) strd = &( (*strd) << GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg) ); } box->unref(); @@ -317,21 +319,21 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, // of the cutouts wrt mother volume: if ( fabs(cut->dx-600.7)<0.1 ) { - cut->dx = cut->dx + 10.*CLHEP::mm; - cut->widthXs = cut->widthXs + 20.*CLHEP::mm; - cut->widthXl = cut->widthXl + 20.*CLHEP::mm; + cut->dx = cut->dx + 10.*GeoModelKernelUnits::mm; + cut->widthXs = cut->widthXs + 20.*GeoModelKernelUnits::mm; + cut->widthXl = cut->widthXl + 20.*GeoModelKernelUnits::mm; //std::cout<<" redefining par.s for BOG1 cutouts " //<<std::endl; } if ( fabs(cut->dx+600.7)<0.1 ) { - cut->dx = cut->dx - 10.*CLHEP::mm; - cut->widthXs = cut->widthXs + 20.*CLHEP::mm; - cut->widthXl = cut->widthXl + 20.*CLHEP::mm; + cut->dx = cut->dx - 10.*GeoModelKernelUnits::mm; + cut->widthXs = cut->widthXs + 20.*GeoModelKernelUnits::mm; + cut->widthXl = cut->widthXl + 20.*GeoModelKernelUnits::mm; } if (fabs(cut->lengthY-180.2)<0.001) { - cut->lengthY = cut->lengthY+(0.010)*CLHEP::mm; + cut->lengthY = cut->lengthY+(0.010)*GeoModelKernelUnits::mm; //imt std::cout<<"Redefining "<<stName<<" cut lengthY to " //imt <<cut->lengthY //imt <<std::endl; @@ -362,7 +364,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, if (stName.substr(0,1) == "T" && stName.substr(2,1) == "E" && stName.substr(1,1) != "4") { GeoTrd* strdoverlap = new GeoTrd(totthick/4, totthick/4, width/2, longWidth/2, 400./2); - strd = &(strd->subtract((*strdoverlap) << HepGeom::Translate3D(-totthick/4., 0., -length/2+400./2.) )); + strd = &(strd->subtract((*strdoverlap) << GeoTrf::Translate3D(-totthick/4., 0., -length/2+400./2.) )); } const GeoMaterial* mtrd = 0; @@ -557,7 +559,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, cut->dx = tempdx; cut->dy = tempdy; - if (fabs(cut->dead1) > 1. && techname=="MDT03") cut->dy = cut->dy+15.0*cos(cut->dead1*CLHEP::deg); + if (fabs(cut->dead1) > 1. && techname=="MDT03") cut->dy = cut->dy+15.0*cos(cut->dead1*GeoModelKernelUnits::deg); // should compensate for the dy position defined in amdb at the bottom of the foam in ML 1 of EMS1,3 and BOS 6 // can be applied only for layout >=r.04.04 in rel 15.6.X.Y due to the frozen Tier0 policy @@ -607,7 +609,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, if (stName.substr(0,3) == "BOS" && zi == -6 && type == "MDT") { cut->dy = c->dy - cut->dy - cut->lengthY - halfpitch; cut->dead1 = 30.; // why this is not 30. or -30. already ????? - if (techname=="MDT03") cut->dy = cut->dy + 30.0; // *cos(cut->dead1*CLHEP::deg); + if (techname=="MDT03") cut->dy = cut->dy + 30.0; // *cos(cut->dead1*GeoModelKernelUnits::deg); if (verbose) log <<MSG::VERBOSE <<"Cut dead1 for BOS 6 on C side is "<< cut->dead1<<endmsg; } @@ -621,7 +623,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, // reverse the position (x amdb) of the cutout if the m_station is mirrored Cutout* cutmirr = new Cutout(*cut); cutmirr->dx = - cutmirr->dx; - // this way, after the rotation by 180 CLHEP::deg, the cut will be at the same global phi + // this way, after the rotation by 180 GeoModelKernelUnits::deg, the cut will be at the same global phi // it has for the m_station at z>0 vcutdef.push_back(cutmirr); vcutdef_todel.push_back(cutmirr); @@ -672,9 +674,9 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, << endmsg; // define here the total transform that will be applied to component: - HepGeom::Transform3D htcomponent; - GeoTransform* xfcomponent = NULL; - GeoAlignableTransform * xfaligncomponent = NULL; + GeoTrf::Transform3D htcomponent(GeoTrf::Transform3D::Identity()); + GeoTransform* xfcomponent{nullptr}; + GeoAlignableTransform * xfaligncomponent{nullptr}; // // for RPCs we need a vector of transforms for M28 geometry... // std::vector<GeoTransform*> xfrpccomponent; @@ -684,22 +686,22 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, } if (type == "MDT") { - htcomponent = HepGeom::TranslateX3D(ypos)*HepGeom::TranslateZ3D(zpos)*HepGeom::TranslateY3D(xpos); + htcomponent = GeoTrf::TranslateX3D(ypos)*GeoTrf::TranslateZ3D(zpos)*GeoTrf::TranslateY3D(xpos); if (zi < 0 && !is_mirrored && stName[0] == 'B') { // this (rotation + shift of halfpitch) will mirror the tube structure w.r.t. the chamber at z>0 - htcomponent = htcomponent*HepGeom::RotateX3D(180.*CLHEP::deg); - htcomponent = htcomponent*HepGeom::TranslateZ3D(halfpitch); + htcomponent = htcomponent*GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg); + htcomponent = htcomponent*GeoTrf::TranslateZ3D(halfpitch); } // ss - 24-05-2006 I don't really understand if this is needed at all // it was introduced by Isabel T. if (zi < 0 && stName.substr(0,3) == "BOG" && is_mirrored) { - // htcomponent = htcomponent*HepGeom::RotateX3D(180.*CLHEP::deg); + // htcomponent = htcomponent*GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg); // tubes OK but chambers wrong - // htcomponent = HepGeom::RotateX3D(180.*CLHEP::deg)*htcomponent; + // htcomponent = GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg)*htcomponent; // chambers OK but tubes wrong - htcomponent = HepGeom::RotateX3D(180.*CLHEP::deg)*htcomponent* - HepGeom::RotateX3D(180.*CLHEP::deg); // turn chambers but go back for tubes + htcomponent = GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg)*htcomponent* + GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg); // turn chambers but go back for tubes } // ss - 24-05-2006 I don't really understand if this is needed at all xfaligncomponent = new GeoAlignableTransform(htcomponent); @@ -763,7 +765,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, continue; } - htcomponent = HepGeom::TranslateX3D(ypos)*HepGeom::TranslateZ3D(zpos); + htcomponent = GeoTrf::TranslateX3D(ypos)*GeoTrf::TranslateZ3D(zpos); xfcomponent = new GeoTransform(htcomponent); std::string key = stName+techname; if ((manager->IncludeCutoutsFlag()|| @@ -830,9 +832,9 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, } // if (!is_mirrored) { - htcomponent = HepGeom::Translate3D(xpos,ypos,zpos)*HepGeom::RotateX3D(angle); + htcomponent = GeoTrf::Translate3D(xpos,ypos,zpos)*GeoTrf::RotateX3D(angle); } else { - htcomponent = HepGeom::Translate3D(xpos,-ypos,zpos)*HepGeom::RotateX3D(-angle); + htcomponent = GeoTrf::Translate3D(xpos,-ypos,zpos)*GeoTrf::RotateX3D(-angle); } xfcomponent = new GeoTransform(htcomponent); std::string key = stName+techname; @@ -897,8 +899,8 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, // for (int j = 0; j < ndivz; j++) { // double yposi = (ndivy-1)*rwidth/2.; // for (int i = 0; i < ndivy; i++) { -// htcomponent = HepGeom::TranslateX3D(ypos )*HepGeom::TranslateY3D(yposi)* -// HepGeom::TranslateZ3D(zposi); +// htcomponent = GeoTrf::TranslateX3D(ypos )*GeoTrf::TranslateY3D(yposi)* +// GeoTrf::TranslateZ3D(zposi); // xfcomponent = new GeoTransform(htcomponent); // //xfrpccomponent.push_back(xfcomponent); // yposi -= rwidth; @@ -920,11 +922,11 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, << " ypos, zpos " << ypos << " " << zpos << " " << endmsg; - htcomponent = HepGeom::TranslateX3D(ypos)* - HepGeom::TranslateY3D(xpos)*HepGeom::TranslateZ3D(zpos); + htcomponent = GeoTrf::TranslateX3D(ypos)* + GeoTrf::TranslateY3D(xpos)*GeoTrf::TranslateZ3D(zpos); if (rp->iswap == -1) // this is like amdb iswap { - htcomponent = htcomponent*HepGeom::RotateY3D(180*CLHEP::deg); + htcomponent = htcomponent*GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg); } xfaligncomponent = new GeoAlignableTransform(htcomponent); //xfrpccomponent.push_back(xfcomponent); @@ -982,9 +984,9 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, } else if (type=="DED" && manager->MinimalGeoFlag() == 0) { double xpos = c->posx; if (is_mirrored) xpos = -xpos; - htcomponent = HepGeom::TranslateX3D(ypos)*HepGeom::TranslateY3D(xpos)*HepGeom::TranslateZ3D(zpos); + htcomponent = GeoTrf::TranslateX3D(ypos)*GeoTrf::TranslateY3D(xpos)*GeoTrf::TranslateZ3D(zpos); //if (stname == "BMS" && (zi == -2 || zi == -4) && c->name == "DED03") - // htcomponent = htcomponent*HepGeom::RotateY3D(180*CLHEP::deg); + // htcomponent = htcomponent*GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg); xfcomponent = new GeoTransform(htcomponent); bool dedCutoutFlag = (stname == "BOS" && std::abs(zi) == 6) || @@ -1045,8 +1047,8 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, // log<<MSG::DEBUG<<" its centre x-translated by "<<ypos; // log<<" y-translated by "<<xpos; // log<<" z-translated by "<<zpos<<endmsg; - htcomponent = HepGeom::TranslateX3D(ypos)*HepGeom::TranslateY3D(xpos)* - HepGeom::TranslateZ3D(zpos); + htcomponent = GeoTrf::TranslateX3D(ypos)*GeoTrf::TranslateY3D(xpos)* + GeoTrf::TranslateZ3D(zpos); std::string key = stName+techname; if ((manager->IncludeCutoutsFlag() || (manager->IncludeCutoutsBogFlag() && stName.substr(0,3)=="BOG")) @@ -1082,7 +1084,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, double orad = tgOuter->posy + tgOuter->dy; double start = -(orad-irad)/2. + (tg->posy-irad) + tg->dy/2; double xstart = -thickness/2. + tg->GetThickness()/2.; - htcomponent = HepGeom::TranslateX3D(xstart + tg->posz)*HepGeom::TranslateZ3D(start); + htcomponent = GeoTrf::TranslateX3D(xstart + tg->posz)*GeoTrf::TranslateZ3D(start); xfaligncomponent = new GeoAlignableTransform(htcomponent); // Define key for this TGC component @@ -1121,7 +1123,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, } } else if (type=="CSC") { - htcomponent = HepGeom::TranslateX3D(ypos)*HepGeom::TranslateZ3D(zpos); + htcomponent = GeoTrf::TranslateX3D(ypos)*GeoTrf::TranslateZ3D(zpos); xfaligncomponent = new GeoAlignableTransform(htcomponent); // Here define the key for this CSC component std::string key = stName+techname; @@ -1195,7 +1197,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, (xfcomponent->getTransform())[2][2] << " " << (xfcomponent->getTransform())[2][3] << " " << std::endl; */ - xfaligncomponent->setDelta(HepGeom::Transform3D::Identity); + xfaligncomponent->setDelta(GeoTrf::Transform3D::Identity()); //delete xfcomponent; ptrd->add(xfaligncomponent); ptrd->add(lvm); @@ -1243,7 +1245,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, // std::cout << "(" << dumv.x() << ", " << dumv.y() << ", " << dumv.z() // << ")" << std::endl; // std::cout << " Mdtreadoutelement transform = " << std::endl; - // HepGeom::Transform3D dummy=det->transform(id); + // GeoTrf::Transform3D dummy=det->transform(id); // std::cout << dummy[0][0] << " " << dummy[0][1] << " " // << dummy[0][2] << " " << dummy[0][3] << std::endl // << dummy[1][0] << " " << dummy[1][1] << " " @@ -1287,7 +1289,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, (xfcomponent->getTransform())[2][2] << " " << (xfcomponent->getTransform())[2][3] << " " << std::endl; */ - xfaligncomponent->setDelta(HepGeom::Transform3D::Identity); + xfaligncomponent->setDelta(GeoTrf::Transform3D::Identity()); //delete xfcomponent; ptrd->add(xfaligncomponent); ptrd->add(lvc); @@ -1357,7 +1359,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, } ptrd->add(new GeoIdentifierTag(geoid)); ptrd->add(nm); - xfaligncomponent->setDelta(HepGeom::Transform3D::Identity); + xfaligncomponent->setDelta(GeoTrf::Transform3D::Identity()); //delete xfcomponent; ptrd->add(xfaligncomponent); ptrd->add(lvt); @@ -1427,8 +1429,8 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, // <<"ypos, zpos, ndivz, ndivy " // <<ypos<<" "<<zpos<<" " // <<ndivz << " " << ndivy <<endmsg; - //htcomponent = HepGeom::TranslateX3D(ypos)*HepGeom::TranslateY3D(xpos) - // *HepGeom::TranslateZ3D(zpos); + //htcomponent = GeoTrf::TranslateX3D(ypos)*GeoTrf::TranslateY3D(xpos) + // *GeoTrf::TranslateZ3D(zpos); // xfcomponent = new GeoTransform(htcomponent); const RpcIdHelper* rpc_id = manager->rpcIdHelper(); @@ -1448,25 +1450,25 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, if (zi <= 0 && !is_mirrored) { // the special cases doubletZ = 1; - if (zpos<-zdivision*CLHEP::mm) doubletZ=2; - if (fabs(xpos) > 100.*CLHEP::mm && ndbz[doubletR-1] > 2) { + if (zpos<-zdivision*GeoModelKernelUnits::mm) doubletZ=2; + if (fabs(xpos) > 100.*GeoModelKernelUnits::mm && ndbz[doubletR-1] > 2) { doubletZ = 3; nfields++; } - if (fabs(xpos) > 100.*CLHEP::mm ) ndbz[doubletR-1]--; + if (fabs(xpos) > 100.*GeoModelKernelUnits::mm ) ndbz[doubletR-1]--; } else { doubletZ = 1; - if (zpos > zdivision*CLHEP::mm) doubletZ=2; - if (fabs(xpos) > 100.*CLHEP::mm && ndbz[doubletR-1] > 2) { + if (zpos > zdivision*GeoModelKernelUnits::mm) doubletZ=2; + if (fabs(xpos) > 100.*GeoModelKernelUnits::mm && ndbz[doubletR-1] > 2) { doubletZ = 3; nfields++; } - if (fabs(xpos) > 100.*CLHEP::mm ) ndbz[doubletR-1]--; + if (fabs(xpos) > 100.*GeoModelKernelUnits::mm ) ndbz[doubletR-1]--; } int dbphi = 1; //std::cout<<stName<<" ----------------------------------- dbphi = "<<dbphi<<std::endl; - if (xpos > 400.*CLHEP::mm) dbphi = 2; // this special patch is needed for BMS in the ribs where xpos is ~950mm; the theshold to 100mm (too low) caused a bug + if (xpos > 400.*GeoModelKernelUnits::mm) dbphi = 2; // this special patch is needed for BMS in the ribs where xpos is ~950mm; the theshold to 100mm (too low) caused a bug // in BOG at eta +/-4 and stationEta 7 (not 6) ==>> 28 Jan 2016 raising the threshold to 400.mm // doublet phi not aware of pos. in space !!! //std::cout<<" dbphi reset to "<<dbphi<<" due to xpos "<< xpos <<" >10cm "<<std::endl; @@ -1521,7 +1523,7 @@ MuonChamber::build(MuonDetectorManager* manager, int zi, (xfcomponent->getTransform())[2][2] << " " << (xfcomponent->getTransform())[2][3] << " " << std::endl; */ - xfaligncomponent->setDelta(HepGeom::Transform3D::Identity); + xfaligncomponent->setDelta(GeoTrf::Transform3D::Identity()); //delete xfcomponent; ptrd->add(xfaligncomponent); ptrd->add(lvr); diff --git a/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx b/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx index eef65f7fbcbf784fb89f2f2ef5bcab8f4613beaf..5748ed1644d96640f6d5e82a90ea0e33b60697c0 100755 --- a/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/MuonDetectorFactory001.cxx @@ -51,11 +51,14 @@ #include "GeoModelKernel/GeoSerialTransformer.h" #include "GeoModelKernel/GeoIdentifierTag.h" #include "GeoModelKernel/GeoPerfUtils.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" +#include "GeoPrimitives/CLHEPtoEigenConverter.h" #include "GeoModelInterfaces/StoredMaterialManager.h" #include "StoreGate/StoreGateSvc.h" -#include "CLHEP/GenericFunctions/Variable.hh" +#include "GeoGenericFunctions/Variable.h" #include "MuonGeoModel/DBReader.h" #include "MuonGeoModel/RDBReaderAtlas.h" @@ -71,7 +74,7 @@ typedef std::ostringstream my_osstream; // The objects for mapping plane indexes in MuonSystem to the record index in RDBRecordset typedef std::map<int, unsigned int, std::less<int> > muonsysIndMap; -using namespace Genfun; +using namespace GeoGenfun; using namespace GeoXF; #define skip_chambers false @@ -92,15 +95,15 @@ namespace MuonGM { { MsgStream log(Athena::getMessageSvc(), "MuonGeoModel"); m_muon = new MuonSystemDescription( "MuonSystem" ); - m_muon->barrelInnerRadius = 4.30*CLHEP::m; - m_muon->innerRadius = 0.07*CLHEP::m; - m_muon->outerRadius = 13.00*CLHEP::m; - m_muon->endcapFrontFace = 6.74*CLHEP::m; - m_muon->length = 22.03*CLHEP::m; - m_muon->barreLength = 6.53*CLHEP::m; - m_muon->barrelInterRadius = 3.83*CLHEP::m; - m_muon->extraZ = 12.9*CLHEP::m; - m_muon->extraR = 12.5*CLHEP::m; + m_muon->barrelInnerRadius = 4.30*GeoModelKernelUnits::m; + m_muon->innerRadius = 0.07*GeoModelKernelUnits::m; + m_muon->outerRadius = 13.00*GeoModelKernelUnits::m; + m_muon->endcapFrontFace = 6.74*GeoModelKernelUnits::m; + m_muon->length = 22.03*GeoModelKernelUnits::m; + m_muon->barreLength = 6.53*GeoModelKernelUnits::m; + m_muon->barrelInterRadius = 3.83*GeoModelKernelUnits::m; + m_muon->extraZ = 12.9*GeoModelKernelUnits::m; + m_muon->extraR = 12.5*GeoModelKernelUnits::m; m_selectedStations = std::vector<std::string>(0); m_selectedStEta = std::vector<int>(0); @@ -467,7 +470,7 @@ namespace MuonGM { const GeoMaterial* m4 = theMaterialManager->getMaterial( "std::Air" ); GeoLogVol* l4; - GeoPcon* c4 = new GeoPcon( 0, 360*CLHEP::deg ); + GeoPcon* c4 = new GeoPcon( 0, 360*GeoModelKernelUnits::deg ); //--- --- --- CREATE ENVELOPE --- --- --- // First try to get data from the GeomDB IRDBRecordset_ptr muonSysRec = m_pRDBAccess->getRecordsetPtr("MuonSystem",OracleTag,OracleNode); @@ -549,7 +552,7 @@ namespace MuonGM { // Cannot (yet) cope with this: // G4UserLimits *ul=new G4UserLimits; - // ul->SetMaxAllowedStep(5*CLHEP::cm); + // ul->SetMaxAllowedStep(5*GeoModelKernelUnits::cm); // lv->GetLogicalVolume()->SetUserLimits(ul); m_manager->addTreeTop(p4); // This is the top! @@ -681,7 +684,7 @@ namespace MuonGM { // here define the GeoAlignableTransform associated to the chamber // nominal transform first - GeoAlignableTransform *xf = new GeoAlignableTransform( station->getNominalTransform( (*pit).second) ); + GeoAlignableTransform *xf = new GeoAlignableTransform(station->getNominalTransform( (*pit).second) ); // add tag, transform and physicalvolume associated to the chamber to the mother-volume p4->add(nm); @@ -697,19 +700,15 @@ namespace MuonGM { continue; } mst->setTransform(xf); - HepGeom::Transform3D tsz_to_szt = HepGeom::Transform3D(HepGeom::Point3D<double>(1.,0.,0.),HepGeom::Point3D<double>(0.,1.,0.), - HepGeom::Point3D<double>(0.,0.,1.),HepGeom::Point3D<double>(0.,0.,1.), - HepGeom::Point3D<double>(1.,0.,0.),HepGeom::Point3D<double>(0.,1.,0.)); - mst->setNativeToAmdbLRS( tsz_to_szt * station->native_to_tsz_frame( (*pit).second ) ); - mst->setNominalAmdbLRSToGlobal( station->tsz_to_global_frame( (*pit).second ) * tsz_to_szt.inverse() ); + GeoTrf::Transform3D tsz_to_szt = GeoTrf::RotateZ3D(-90*CLHEP::deg)*GeoTrf::RotateY3D(-90*CLHEP::deg); + mst->setNativeToAmdbLRS( Amg::EigenTransformToCLHEP(tsz_to_szt * station->native_to_tsz_frame( (*pit).second )) ); + mst->setNominalAmdbLRSToGlobal( Amg::EigenTransformToCLHEP(station->tsz_to_global_frame( (*pit).second ) * tsz_to_szt.inverse()) ); - HepGeom::Transform3D DummyAline = HepGeom::Transform3D::Identity; // find correct alignment information for this position // xf->setDelta(DummyAline); // just in case we don't find one // apit = station->FindAlignPos(zi,fi); // number of A-lines for this station - HepGeom::Transform3D Delta = HepGeom::Transform3D::Identity; int nAlines = station->CountAlignPos(zi,fi); //nAlines=-1; if (nAlines==0) @@ -782,7 +781,7 @@ namespace MuonGM { // MuonStation* mst = m_manager->getMuonStation (station->GetName(), zi, fi+1); // if (mst != NULL) { // mst->setTransform(xf); - // HepGeom::Transform3D tsz_to_szt = HepGeom::Transform3D(HepGeom::Point3D<double>(1.,0.,0.),HepGeom::Point3D<double>(0.,1.,0.), + // GeoTrf::Transform3D tsz_to_szt = GeoTrf::Transform3D(HepGeom::Point3D<double>(1.,0.,0.),HepGeom::Point3D<double>(0.,1.,0.), // HepGeom::Point3D<double>(0.,0.,1.),HepGeom::Point3D<double>(0.,0.,1.), // HepGeom::Point3D<double>(1.,0.,0.),HepGeom::Point3D<double>(0.,1.,0.)); // mst->setNativeToAmdbLRS( tsz_to_szt * station->native_to_tsz_frame( (*pit).second ) ); @@ -801,7 +800,7 @@ namespace MuonGM { // (xf->getTransform())[2][1] << " " << // (xf->getTransform())[2][2] << " " << // (xf->getTransform())[2][3] << " " << endmsg; - // HepGeom::Transform3D Delta_amdb_frame = tsz_to_szt*station->getDeltaTransform_tszFrame(ap)*tsz_to_szt.inverse(); + // GeoTrf::Transform3D Delta_amdb_frame = tsz_to_szt*station->getDeltaTransform_tszFrame(ap)*tsz_to_szt.inverse(); // mst->setDeltaAmdbLRS( Delta_amdb_frame ); // if (log.level()<=MSG::VERBOSE) log<<MSG::VERBOSE << "From the Factory:: Delta(amdb) transformation for " << stname << ":" // << endmsg << diff --git a/MuonSpectrometer/MuonGeoModel/src/RDBReaderAtlas.cxx b/MuonSpectrometer/MuonGeoModel/src/RDBReaderAtlas.cxx index 489839b94cf4560beb645f818a4d223dd3c30f19..4597fc40b033ac35db5485e8337f1eb7dfd80560 100755 --- a/MuonSpectrometer/MuonGeoModel/src/RDBReaderAtlas.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/RDBReaderAtlas.cxx @@ -13,7 +13,7 @@ #include "RDBAccessSvc/IRDBRecordset.h" #include "RDBAccessSvc/IRDBQuery.h" #include "MuonReadoutGeometry/TgcReadoutParams.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include "MuonGeoModel/TGC_Technology.h" @@ -421,7 +421,7 @@ void RDBReaderAtlas::ProcessTGCreadout () { int version = (int) (*ggsd)[0]->getDouble("VERS"); - float wirespacing = (*ggsd)[0]->getDouble("WIRESP")*CLHEP::cm; + float wirespacing = (*ggsd)[0]->getDouble("WIRESP")*GeoModelKernelUnits::cm; log<<MSG::INFO <<" ProcessTGCreadout - version "<<version<<" wirespacing "<<wirespacing<<endmsg; @@ -519,7 +519,7 @@ void RDBReaderAtlas::ProcessTGCreadout () { IRDBRecordset_ptr ggln = m_pRDBAccess->getRecordsetPtr("GGLN",m_geoTag,m_geoNode); int version = (int) (*ggln)[0]->getInt("VERS"); - float wirespacing = (*ggln)[0]->getFloat("WIRESP")*CLHEP::mm; + float wirespacing = (*ggln)[0]->getFloat("WIRESP")*GeoModelKernelUnits::mm; log<<MSG::INFO <<" ProcessTGCreadout - version "<<version<<" wirespacing "<<wirespacing<<endmsg; @@ -618,11 +618,11 @@ void RDBReaderAtlas::ProcessTGCreadout () { tgc->offsetWireSupport[0] = (*ggln)[ich]->getFloat("SP1WI"); tgc->offsetWireSupport[1] = (*ggln)[ich]->getFloat("SP2WI"); tgc->offsetWireSupport[2] = (*ggln)[ich]->getFloat("SP3WI"); - tgc->angleTilt = (*ggln)[ich]->getFloat("TILT")*CLHEP::deg; + tgc->angleTilt = (*ggln)[ich]->getFloat("TILT")*GeoModelKernelUnits::deg; tgc->radiusButton = (*ggln)[ich]->getFloat("SP1BU"); tgc->pitchButton[0] = (*ggln)[ich]->getFloat("SP2BU"); tgc->pitchButton[1] = (*ggln)[ich]->getFloat("SP3BU"); - tgc->angleButton = (*ggln)[ich]->getFloat("SP4BU")*CLHEP::deg; + tgc->angleButton = (*ggln)[ich]->getFloat("SP4BU")*GeoModelKernelUnits::deg; } } diff --git a/MuonSpectrometer/MuonGeoModel/src/Rpc.cxx b/MuonSpectrometer/MuonGeoModel/src/Rpc.cxx index 3350f04925f5d91640219cfbc6d8ea3f60e5fd71..d447b0c9037697ebabaa095760eba02aa8bcf71b 100755 --- a/MuonSpectrometer/MuonGeoModel/src/Rpc.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/Rpc.cxx @@ -17,10 +17,13 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoIdentifierTag.h" -#include <iomanip> -#include <cassert> #include "GeoModelKernel/GeoShapeSubtraction.h" #include "GeoModelKernel/GeoShapeIntersection.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" + +#include <iomanip> +#include <cassert> #define skip_rpc false @@ -75,12 +78,12 @@ GeoFullPhysVol* Rpc::build(int minimalgeo, int cutoutson, if (cutoutson && vcutdef.size() > 0) { Cutout* cut = 0; GeoShape* cutoutShape = 0; - HepGeom::Transform3D cutTrans; + GeoTrf::Transform3D cutTrans{GeoTrf::Transform3D::Identity()}; for (unsigned i = 0; i < vcutdef.size(); i++) { cut = vcutdef[i]; cutoutShape = new GeoTrd(thickness/2.+1., thickness/2.+1., cut->widthXs/2., cut->widthXl/2., cut->lengthY/2.); - cutTrans = HepGeom::Translate3D(0.0, cut->dx, -length/2 + cut->dy + cut->lengthY/2.); + cutTrans = GeoTrf::Translate3D(0.0, cut->dx, -length/2 + cut->dy + cut->lengthY/2.); srpc = &(srpc->subtract( (*cutoutShape) << cutTrans) ); } // std::cout << " Cutouts for Rpc " << std::endl; @@ -132,12 +135,12 @@ GeoFullPhysVol* Rpc::build(int minimalgeo, int cutoutson, GeoPhysVol* tempPhys = 0; Cutout* cut = 0; GeoShape* cutoutShape = 0; - HepGeom::Transform3D cutTrans; + GeoTrf::Transform3D cutTrans{GeoTrf::Transform3D::Identity()}; for (unsigned i = 0; i < vcutdef.size(); i++) { cut = vcutdef[i]; cutoutShape = new GeoTrd(thickness/2.+1., thickness/2.+1., cut->widthXs/2., cut->widthXl/2., cut->lengthY/2.); - cutTrans = HepGeom::Translate3D(0.0, cut->dx, -length/2 + cut->dy + cut->lengthY/2.); + cutTrans = GeoTrf::Translate3D(0.0, cut->dx, -length/2 + cut->dy + cut->lengthY/2.); GeoCutVolAction cutAction(*cutoutShape, cutTrans); pallpan->apply(&cutAction); @@ -148,7 +151,7 @@ GeoFullPhysVol* Rpc::build(int minimalgeo, int cutoutson, } newpos += r->externalSupPanelThickness/2.; - GeoTransform* tlpan = new GeoTransform(HepGeom::TranslateX3D( newpos )); + GeoTransform* tlpan = new GeoTransform(GeoTrf::TranslateX3D( newpos )); if (RPCprint) std::cout << " Rpc:: put ext.sup panel at " << newpos << " from centre" << std::endl; if (!skip_rpc) { @@ -167,7 +170,7 @@ GeoFullPhysVol* Rpc::build(int minimalgeo, int cutoutson, } newpos += r->rpcLayerThickness/2.; - GeoTransform* tlgg = new GeoTransform(HepGeom::TranslateX3D( newpos )); + GeoTransform* tlgg = new GeoTransform(GeoTrf::TranslateX3D( newpos )); if (RPCprint) std::cout << " Rpc:: put lower RPC layer at " << newpos << " from centre " << std::endl; if (!skip_rpc) { @@ -202,12 +205,12 @@ GeoFullPhysVol* Rpc::build(int minimalgeo, int cutoutson, GeoPhysVol* tempPhys = 0; Cutout* cut = 0; GeoShape* cutoutShape = 0; - HepGeom::Transform3D cutTrans; + GeoTrf::Transform3D cutTrans{GeoTrf::Transform3D::Identity()}; for (unsigned i = 0; i < vcutdef.size(); i++) { cut = vcutdef[i]; cutoutShape = new GeoTrd(thickness/2.+1., thickness/2.+1., cut->widthXs/2., cut->widthXl/2., cut->lengthY/2.); - cutTrans = HepGeom::Translate3D(0.0, cut->dx, -length/2 + cut->dy + cut->lengthY/2.); + cutTrans = GeoTrf::Translate3D(0.0, cut->dx, -length/2 + cut->dy + cut->lengthY/2.); GeoCutVolAction cutAction(*cutoutShape, cutTrans); palcpan->apply(&cutAction); @@ -218,7 +221,7 @@ GeoFullPhysVol* Rpc::build(int minimalgeo, int cutoutson, } newpos += r->centralSupPanelThickness/2.; - GeoTransform* tcpan = new GeoTransform(HepGeom::TranslateX3D( newpos )); + GeoTransform* tcpan = new GeoTransform(GeoTrf::TranslateX3D( newpos )); if (RPCprint) std::cout << " Rpc:: put central sup panel at " << newpos << " from centre" << std::endl; if (!skip_rpc) { @@ -275,10 +278,10 @@ GeoFullPhysVol* Rpc::build(int minimalgeo, int cutoutson, } newpos += r->rpcLayerThickness/2.; - GeoTransform* tugg = new GeoTransform(HepGeom::TranslateX3D(newpos) ); + GeoTransform* tugg = new GeoTransform(GeoTrf::TranslateX3D(newpos) ); if (RPCprint) std::cout<< " Rpc:: put upper RPC layer at " << newpos << " from centre " << std::endl; - GeoTransform* rugg = new GeoTransform(HepGeom::RotateY3D(180*CLHEP::deg) ); + GeoTransform* rugg = new GeoTransform(GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) ); if (!skip_rpc) { prpc->add(new GeoIdentifierTag(2)); prpc->add(tugg); diff --git a/MuonSpectrometer/MuonGeoModel/src/RpcLayer.cxx b/MuonSpectrometer/MuonGeoModel/src/RpcLayer.cxx index d345301947896b7138db88859c5540ad080504b8..572957a751fbeb4096f2b9e34fa7bcfb7ee562bd 100755 --- a/MuonSpectrometer/MuonGeoModel/src/RpcLayer.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/RpcLayer.cxx @@ -16,6 +16,7 @@ #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoIdentifierTag.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "MuonReadoutGeometry/GlobalUtilities.h" #include <iomanip> // for cutouts: @@ -94,7 +95,7 @@ RpcLayer::build(int cutoutson, std::vector<Cutout*> vcutdef) newpos += strpanThickness/2. + tol/2.; GeoPhysVol* pcustrpan11 = new GeoPhysVol(lcustrpan); GeoPhysVol* pfoamstrpan11 = new GeoPhysVol(lfoamstrpan); - GeoTransform* tx = new GeoTransform(HepGeom::TranslateX3D(newpos) ); + GeoTransform* tx = new GeoTransform(GeoTrf::TranslateX3D(newpos) ); GeoTransform* ty1; GeoTransform* ty2; @@ -102,8 +103,8 @@ RpcLayer::build(int cutoutson, std::vector<Cutout*> vcutdef) if (RPCprint) std::cout << " RpcLayer::NstripPanels_in_s == 2 " << std::endl; GeoPhysVol* pcustrpan12 = new GeoPhysVol(lcustrpan); GeoPhysVol* pfoamstrpan12 = new GeoPhysVol(lfoamstrpan); - ty1 = new GeoTransform(HepGeom::TranslateY3D(-width/4.)); - ty2 = new GeoTransform(HepGeom::TranslateY3D( width/4.)); + ty1 = new GeoTransform(GeoTrf::TranslateY3D(-width/4.)); + ty2 = new GeoTransform(GeoTrf::TranslateY3D( width/4.)); prpcl->add(tx); prpcl->add(ty1); if (RPCprint) std::cout<<"RpcLayer:: Locating the 1st phi strip panel at x, y " @@ -161,13 +162,13 @@ RpcLayer::build(int cutoutson, std::vector<Cutout*> vcutdef) matManager->getMaterial("muo::RPCgas")); GeoPhysVol *pbak1 = new GeoPhysVol (lbak); GeoPhysVol *pgas1 = new GeoPhysVol (lgas); - tx = new GeoTransform(HepGeom::TranslateX3D(newpos)); + tx = new GeoTransform(GeoTrf::TranslateX3D(newpos)); if (r->NGasGaps_in_s == 2) { GeoPhysVol *pbak2 = new GeoPhysVol (lbak); GeoPhysVol *pgas2 = new GeoPhysVol (lgas); - ty1 = new GeoTransform(HepGeom::TranslateY3D(-width/4.)); - ty2 = new GeoTransform(HepGeom::TranslateY3D(width/4.)); + ty1 = new GeoTransform(GeoTrf::TranslateY3D(-width/4.)); + ty2 = new GeoTransform(GeoTrf::TranslateY3D(width/4.)); prpcl->add(tx); prpcl->add(ty1); if (RPCprint) std::cout<<"RpcLayer:: put 1st gas gap centre at depth, s "<<newpos<<" "<<-width/4.<<std::endl; @@ -200,13 +201,13 @@ RpcLayer::build(int cutoutson, std::vector<Cutout*> vcutdef) GeoPhysVol *pcustrpan21 = new GeoPhysVol(lcustrpan); GeoPhysVol *pfoamstrpan21 = new GeoPhysVol(lfoamstrpan); - tx = new GeoTransform(HepGeom::TranslateX3D(newpos)); + tx = new GeoTransform(GeoTrf::TranslateX3D(newpos)); if (r->NstripPanels_in_s == 2) { GeoPhysVol *pcustrpan22 = new GeoPhysVol(lcustrpan); GeoPhysVol *pfoamstrpan22 = new GeoPhysVol(lfoamstrpan); - ty1 = new GeoTransform(HepGeom::TranslateY3D(-width/4.)); - ty2 = new GeoTransform(HepGeom::TranslateY3D( width/4.)); + ty1 = new GeoTransform(GeoTrf::TranslateY3D(-width/4.)); + ty2 = new GeoTransform(GeoTrf::TranslateY3D( width/4.)); prpcl->add(tx); prpcl->add(ty1); if (RPCprint) std::cout<<"RpcLayer:: Locating the 1st eta panel at x, y " @@ -239,12 +240,12 @@ RpcLayer::build(int cutoutson, std::vector<Cutout*> vcutdef) GeoPhysVol* tempPhys = 0; Cutout* cut = 0; GeoShape* cutoutShape = 0; - HepGeom::Transform3D cutTrans; + GeoTrf::Transform3D cutTrans{GeoTrf::Transform3D::Identity()}; for (unsigned i = 0; i < vcutdef.size(); i++) { cut = vcutdef[i]; cutoutShape = new GeoTrd(thickness/2.+1., thickness/2.+1., cut->widthXs/2.+0.5, cut->widthXl/2.+0.5, cut->lengthY/2.+tol); - cutTrans = HepGeom::Translate3D(0.0, cut->dx, -length/2 + cut->dy + cut->lengthY/2.); + cutTrans = GeoTrf::Translate3D(0.0, cut->dx, -length/2 + cut->dy + cut->lengthY/2.); GeoCutVolAction cutAction(*cutoutShape, cutTrans); prpcl->apply(&cutAction); diff --git a/MuonSpectrometer/MuonGeoModel/src/SimpleVolAction.cxx b/MuonSpectrometer/MuonGeoModel/src/SimpleVolAction.cxx index a46f1fd0e29e5b4d003c642bfa225e1be6cb396c..e53a148be7c770b07b79eacbf156dc67a8ea87b2 100755 --- a/MuonSpectrometer/MuonGeoModel/src/SimpleVolAction.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/SimpleVolAction.cxx @@ -11,6 +11,7 @@ //<version> $Name: not supported by cvs2svn $ #include "MuonGeoModel/SimpleVolAction.h" +#include <iostream> namespace MuonGM { diff --git a/MuonSpectrometer/MuonGeoModel/src/Spacer.cxx b/MuonSpectrometer/MuonGeoModel/src/Spacer.cxx index 2bfd146e9a8b0c7901e16e7e96d06e4856b434b1..df585ef779642a22971f88b84a4eafcff547227e 100755 --- a/MuonSpectrometer/MuonGeoModel/src/Spacer.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/Spacer.cxx @@ -19,7 +19,8 @@ #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoSerialIdentifier.h" -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" // for cutouts: #include "GeoModelKernel/GeoShapeSubtraction.h" @@ -65,8 +66,8 @@ GeoVPhysVol * Spacer::build(int /*cutoutson*/) // <<excent<<" length = "<<length<<std::endl; GeoTrd* upTrd = new GeoTrd(thickness/2.,thickness/2., longWidth/2., upWidth/2., (length-maxwLength)/2.); - strd = & ( (strd->add( (*upTrd) << HepGeom::TranslateZ3D( length/2. )) ) - << HepGeom::TranslateZ3D( (maxwLength - length)/2.) ); + strd = & ( (strd->add( (*upTrd) << GeoTrf::TranslateZ3D( length/2. )) ) + << GeoTrf::TranslateZ3D( (maxwLength - length)/2.) ); } const GeoMaterial* mtrd = matManager->getMaterial("std::Aluminium"); @@ -112,7 +113,7 @@ GeoVPhysVol * Spacer::build(int /*cutoutson*/) ptrdtemp = ptrd2; tckibeam = dy; } - GeoTransform* xf = new GeoTransform(HepGeom::Translate3D(wherepos + tckibeam/2, wherewidth+dy/2, 0)); + GeoTransform* xf = new GeoTransform(GeoTrf::Translate3D(wherepos + tckibeam/2, wherewidth+dy/2, 0)); if (!skip_spacer) { ptrd->add(xf); ptrd->add(ptrdtemp); @@ -134,7 +135,7 @@ GeoVPhysVol * Spacer::build(int /*cutoutson*/) for (int k1 = 0; k1 < 2; k1++){ for (int k = 0; k < 2; k++){ - GeoTransform* ttube = new GeoTransform(HepGeom::RotateX3D(-90*CLHEP::deg)* HepGeom::Translate3D( + GeoTransform* ttube = new GeoTransform(GeoTrf::RotateX3D(-90*GeoModelKernelUnits::deg)* GeoTrf::Translate3D( 0., -(vtubl+tckibeam)/2.-(k-1)*(vtubl+tckibeam), -length/4.-(k1-1)*length/2)); diff --git a/MuonSpectrometer/MuonGeoModel/src/SpacerBeam.cxx b/MuonSpectrometer/MuonGeoModel/src/SpacerBeam.cxx index 4d77c86df634b7a880b8f9a23ea4eb4bbe098fa4..3c594de7773f0d0cc0f07eacc636e6cbaffbf30e 100755 --- a/MuonSpectrometer/MuonGeoModel/src/SpacerBeam.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/SpacerBeam.cxx @@ -14,10 +14,9 @@ #include "GeoModelKernel/GeoPhysVol.h" #include "GeoModelKernel/GeoLogVol.h" #include "GeoModelKernel/GeoMaterial.h" -#include "GeoModelKernel/GeoTransform.h" -#include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeSubtraction.h" #include "GeoModelKernel/GeoShapeShift.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "MuonGeoModel/CHV_Technology.h" #include "MuonGeoModel/CRO_Technology.h" #include "MuonGeoModel/CMI_Technology.h" @@ -110,15 +109,15 @@ SpacerBeam::build(int /*cutoutson*/, bool is_barrel) const GeoShape* IBeamShape = new GeoBox(height/2, volumelargeness/2, length/2); GeoBox* sideBox = new GeoBox(height/2. - thickness, volumelargeness/4., length/2 + 1.); double yshift = volumelargeness/4. + thickness/2.; - IBeamShape = &(IBeamShape->subtract( (*sideBox) << HepGeom::TranslateY3D(yshift) ) ); - IBeamShape = &(IBeamShape->subtract( (*sideBox) << HepGeom::TranslateY3D(-yshift) ) ); + IBeamShape = &(IBeamShape->subtract( (*sideBox) << GeoTrf::TranslateY3D(yshift) ) ); + IBeamShape = &(IBeamShape->subtract( (*sideBox) << GeoTrf::TranslateY3D(-yshift) ) ); // Cut holes for LB GeoBox* holeBox = new GeoBox(m_lb_height/2.+1., thickness/2.+1., m_lb_width/cosexc/2.+thickness*sinexc/cosexc+6.); - IBeamShape = &(IBeamShape->subtract( (*holeBox) << HepGeom::TranslateZ3D(m_hole_pos1/cosexc) ) ); - IBeamShape = &(IBeamShape->subtract( (*holeBox) << HepGeom::TranslateZ3D(m_hole_pos2/cosexc) ) ); + IBeamShape = &(IBeamShape->subtract( (*holeBox) << GeoTrf::TranslateZ3D(m_hole_pos1/cosexc) ) ); + IBeamShape = &(IBeamShape->subtract( (*holeBox) << GeoTrf::TranslateZ3D(m_hole_pos2/cosexc) ) ); lvol = new GeoLogVol(name, IBeamShape, mat); pvol = new GeoPhysVol(lvol); diff --git a/MuonSpectrometer/MuonGeoModel/src/Station.cxx b/MuonSpectrometer/MuonGeoModel/src/Station.cxx index 9ded49a740c63287e2c0b92b806b480bd222028d..aa0fcdba8110c6df7a79f5e2aff487dc93c1a6a5 100755 --- a/MuonSpectrometer/MuonGeoModel/src/Station.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/Station.cxx @@ -8,8 +8,7 @@ #include "MuonGeoModel/StandardComponent.h" #include "MuonGeoModel/SupComponent.h" #include "MuonGeoModel/TgcComponent.h" -#include "CLHEP/Vector/ThreeVector.h" -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" #include "GaudiKernel/MsgStream.h" #include "AthenaKernel/getMessageSvc.h" #include <iostream> @@ -669,7 +668,7 @@ double Station::mdtHalfPitch() const { //this is really needed -HepGeom::Transform3D Station::native_to_tsz_frame( const Position & p ) const { +GeoTrf::Transform3D Station::native_to_tsz_frame( const Position & p ) const { MsgStream log(m_msgSvc, "MGM-native_to_tsz"); const bool dLvl = log.level()<=MSG::DEBUG; @@ -682,20 +681,20 @@ HepGeom::Transform3D Station::native_to_tsz_frame( const Position & p ) const { << " for endcap side A so be very careful." << endmsg; - HepGeom::Transform3D nominalTransf; + GeoTrf::Transform3D nominalTransf{GeoTrf::Transform3D::Identity()}; // first apply here the mirror symmetry: (we, in fact, apply a rotation) - HepGeom::Transform3D mirrsym=HepGeom::Transform3D::Identity; + GeoTrf::Transform3D mirrsym=GeoTrf::Transform3D::Identity(); if (p.isMirrored) { if (m_name[0]=='B' ) { - mirrsym = HepGeom::RotateX3D(180.*CLHEP::deg); + mirrsym = GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg); } } // define the translation to position the chamber in the tzs frame - HepGeom::Translate3D AMDBorgTranslation; + GeoTrf::Translate3D AMDBorgTranslation(0,0,0); if ( (m_name[0]=='B' || p.isBarrelLike) && p.zindex<0 && (!p.isMirrored) && hasMdts()) { //MYSQL* mysql=MYSQL::GetPointer(); @@ -703,7 +702,7 @@ HepGeom::Transform3D Station::native_to_tsz_frame( const Position & p ) const { //double halfpitch = (mdtobj->pitch)/2.; double halfpitch = mdtHalfPitch(); AMDBorgTranslation = - HepGeom::Translate3D(GetThickness()/2.-getAmdbOrigine_along_thickness(), + GeoTrf::Translate3D(GetThickness()/2.-getAmdbOrigine_along_thickness(), 0., GetLength()/2.-(getAmdbOrigine_along_length()+halfpitch)); //GetLength()/2.-(halfpitch)); @@ -718,12 +717,12 @@ HepGeom::Transform3D Station::native_to_tsz_frame( const Position & p ) const { { if (m_name[0]=='T') AMDBorgTranslation = - HepGeom::Translate3D(GetThickness()/2.-getAmdbOrigine_along_thickness(), + GeoTrf::Translate3D(GetThickness()/2.-getAmdbOrigine_along_thickness(), 0., GetLength()/2.-getAmdbOrigine_along_length()+((TgcComponent *)GetComponent(0))->posy); else AMDBorgTranslation = - HepGeom::Translate3D(GetThickness()/2.-getAmdbOrigine_along_thickness(), + GeoTrf::Translate3D(GetThickness()/2.-getAmdbOrigine_along_thickness(), 0., GetLength()/2.-getAmdbOrigine_along_length()); if (vLvl) @@ -735,34 +734,34 @@ HepGeom::Transform3D Station::native_to_tsz_frame( const Position & p ) const { } // // define the rotations by alpha, beta, gamma - // HepGeom::Rotate3D ralpha = HepGeom::RotateX3D(p.alpha*CLHEP::deg); - // HepGeom::Rotate3D rbeta = HepGeom::RotateZ3D(p.beta*CLHEP::deg); - // HepGeom::Rotate3D rgamma; - // rgamma = HepGeom::RotateY3D(p.gamma*CLHEP::deg); + // GeoTrf::Rotate3D ralpha = GeoTrf::RotateX3D(p.alpha*GeoModelKernelUnits::deg); + // GeoTrf::Rotate3D rbeta = GeoTrf::RotateZ3D(p.beta*GeoModelKernelUnits::deg); + // GeoTrf::Rotate3D rgamma; + // rgamma = GeoTrf::RotateY3D(p.gamma*GeoModelKernelUnits::deg); // log<<MSG::VERBOSE<<" gamma is not changing sign - original "<<p.gamma<<" new one "<<p.gamma<<endmsg; // log<<MSG::VERBOSE<<" alpha / beta "<<p.alpha<<" "<<p.beta<<endmsg; // // apply all transform in sequence - // // HepGeom::Transform3D to_tsz = rgamma*rbeta*ralpha*AMDBorgTranslation*mirrsym; // works for barrel and barrel-like + // // GeoTrf::Transform3D to_tsz = rgamma*rbeta*ralpha*AMDBorgTranslation*mirrsym; // works for barrel and barrel-like // // imt: tested for CTB2004, seems to work for all amdb versions... - // HepGeom::Transform3D to_tsz = rgamma*rbeta*ralpha*AMDBorgTranslation*mirrsym; - HepGeom::Transform3D to_tsz = AMDBorgTranslation*mirrsym; + // GeoTrf::Transform3D to_tsz = rgamma*rbeta*ralpha*AMDBorgTranslation*mirrsym; + GeoTrf::Transform3D to_tsz = AMDBorgTranslation*mirrsym; return to_tsz; } -HepGeom::Transform3D Station::tsz_to_native_frame( const Position & p ) const { +GeoTrf::Transform3D Station::tsz_to_native_frame( const Position & p ) const { return (native_to_tsz_frame( p )).inverse(); } // this is really needed -HepGeom::Transform3D Station::tsz_to_global_frame( const Position & p ) const { +GeoTrf::Transform3D Station::tsz_to_global_frame( const Position & p ) const { - MsgStream log(m_msgSvc, "MGM tsz_to_global_frame"); - const bool pLvl=log.level()<=MSG::VERBOSE; + MsgStream log(m_msgSvc, "MGM tsz_to_global_frame"); + const bool pLvl=log.level()<=MSG::VERBOSE; + + GeoTrf::Transform3D nominalTransf= GeoTrf::Transform3D::Identity(); - HepGeom::Transform3D nominalTransf= HepGeom::Transform3D::Identity; - - CLHEP::Hep3Vector vec; + GeoTrf::Vector3D vec; double RAD; if (m_name[0]=='T') { @@ -771,22 +770,22 @@ HepGeom::Transform3D Station::tsz_to_global_frame( const Position & p ) const { } else RAD=p.radius; - vec.setX(RAD*cos(p.phi*CLHEP::deg)); - vec.setX(vec.x()-p.shift*sin((p.phi)*CLHEP::deg)); - vec.setY(RAD*sin(p.phi*CLHEP::deg)); - vec.setY(vec.y()+p.shift*cos((p.phi)*CLHEP::deg)); + vec.x() = RAD*cos(p.phi*GeoModelKernelUnits::deg); + vec.x() = vec.x()-p.shift*sin((p.phi)*GeoModelKernelUnits::deg); + vec.y() = RAD*sin(p.phi*GeoModelKernelUnits::deg); + vec.y() = vec.y()+p.shift*cos((p.phi)*GeoModelKernelUnits::deg); // if (p.isMirrored) if ( (p.isBarrelLike) || (m_name[0]=='B') ) { // correct the z location (=-p.z-m_length) for possible m_amdbOrigine_along_length - vec.setZ(p.z + getAmdbOrigine_along_length()); + vec.z() = p.z + getAmdbOrigine_along_length(); // std::cout<<" tsz_to_global for station "<<m_name<<" at fi/zi "<<p.phiindex+1<<"/"<<p.zindex<<" isMirr. "<<p.isMirrored // <<" transl. to "<<vec<<" p.z = "<<p.z<<" length "<<GetLength()<<" AmdbOrigine_along_length "<<getAmdbOrigine_along_length()<<std::endl; } else { - vec.setZ(p.z + GetThickness()); // re-establish the amdb z location (with a - sign) + vec.z() = p.z + GetThickness(); // re-establish the amdb z location (with a - sign) } else { @@ -797,10 +796,10 @@ HepGeom::Transform3D Station::tsz_to_global_frame( const Position & p ) const { //double halfpitch = (mdtobj->pitch)/2.; double halfpitch = mdtHalfPitch(); //vec.setZ(p.z + (-getAmdbOrigine_along_length()+halfpitch)); - vec.setZ(p.z + halfpitch); + vec.z() = p.z + halfpitch; } else - vec.setZ(p.z); + vec.z() = p.z; } if (pLvl) @@ -808,19 +807,18 @@ HepGeom::Transform3D Station::tsz_to_global_frame( const Position & p ) const { /////// NEWEWEWWEWEWEWEWEWEWEWEWEW // // define the rotations by alpha, beta, gamma - HepGeom::Rotate3D ralpha = HepGeom::RotateX3D(p.alpha*CLHEP::deg); - HepGeom::Rotate3D rbeta = HepGeom::RotateZ3D(p.beta*CLHEP::deg); - HepGeom::Rotate3D rgamma; - rgamma = HepGeom::RotateY3D(p.gamma*CLHEP::deg); - if (pLvl) + GeoTrf::RotateX3D ralpha(p.alpha*GeoModelKernelUnits::deg); + GeoTrf::RotateZ3D rbeta(p.beta*GeoModelKernelUnits::deg); + GeoTrf::RotateY3D rgamma(p.gamma*GeoModelKernelUnits::deg); + if (pLvl) { log<<MSG::VERBOSE<<" gamma is not changing sign - original "<<p.gamma<<" new one "<<p.gamma<<endmsg; - if (pLvl) - log<<MSG::VERBOSE<<" alpha / beta "<<p.alpha<<" "<<p.beta<<endmsg; + log<<MSG::VERBOSE<<" alpha / beta "<<p.alpha<<" "<<p.beta<<endmsg; + } // // apply all transform in sequence - // // HepGeom::Transform3D to_tsz = rgamma*rbeta*ralpha*AMDBorgTranslation*mirrsym; // works for barrel and barrel-like + // // GeoTrf::Transform3D to_tsz = rgamma*rbeta*ralpha*AMDBorgTranslation*mirrsym; // works for barrel and barrel-like // // imt: tested for CTB2004, seems to work for all amdb versions... - HepGeom::Transform3D abgRot = rgamma*rbeta*ralpha; + GeoTrf::Transform3D abgRot = rgamma*rbeta*ralpha; /////// NEWEWEWWEWEWEWEWEWEWEWEWEW @@ -828,51 +826,51 @@ HepGeom::Transform3D Station::tsz_to_global_frame( const Position & p ) const { if ( m_name[0]=='B' || p.isBarrelLike ) { // here all Barrel chambers - nominalTransf = HepGeom::RotateZ3D(p.phi*CLHEP::deg); + nominalTransf = GeoTrf::RotateZ3D(p.phi*GeoModelKernelUnits::deg); } else { // replace this with the folowing lines 8/06/2006 SS because, EC not mirrored chambers have anyway to be rotated // by 180deg around z to mov ecoherently their local reference frame and the tube-layer numbering // if ( p.z>=0 || ( p.z<0 && !(p.isMirrored) ) ){ -// nominalTransf = HepGeom::Transform3D(HepGeom::RotateY3D(-90*CLHEP::deg)* -// HepGeom::RotateX3D(p.phi*CLHEP::deg-180*CLHEP::deg)); +// nominalTransf = GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)* +// GeoTrf::RotateX3D(p.phi*GeoModelKernelUnits::deg-180*GeoModelKernelUnits::deg)); // } // else if (p.z<0 && p.isMirrored){ -// nominalTransf = HepGeom::Transform3D(HepGeom::RotateY3D(-90*CLHEP::deg)* -// HepGeom::RotateX3D(p.phi*CLHEP::deg-180*CLHEP::deg)* -// HepGeom::RotateZ3D(180*CLHEP::deg)); +// nominalTransf = GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)* +// GeoTrf::RotateX3D(p.phi*GeoModelKernelUnits::deg-180*GeoModelKernelUnits::deg)* +// GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)); // } if ( p.z>=0 ){ - nominalTransf = HepGeom::Transform3D(HepGeom::RotateY3D(-90*CLHEP::deg)* - HepGeom::RotateX3D(p.phi*CLHEP::deg-180*CLHEP::deg)); + nominalTransf = GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)* + GeoTrf::RotateX3D(p.phi*GeoModelKernelUnits::deg-180*GeoModelKernelUnits::deg)); } else if ( p.z<0 ){ - nominalTransf = HepGeom::Transform3D(HepGeom::RotateY3D(-90*CLHEP::deg)* - HepGeom::RotateX3D(p.phi*CLHEP::deg-180*CLHEP::deg)* - HepGeom::RotateZ3D(180*CLHEP::deg)); + nominalTransf = GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)* + GeoTrf::RotateX3D(p.phi*GeoModelKernelUnits::deg-180*GeoModelKernelUnits::deg)* + GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)); } else log << MSG::WARNING<<" AAAAAA problem here p.z, mirrored " <<p.z<<" "<<p.isMirrored<<endmsg; } - return HepGeom::Translate3D(vec)*nominalTransf*abgRot; + return GeoTrf::Translate3D(vec.x(),vec.y(),vec.z())*nominalTransf*abgRot; } -HepGeom::Transform3D Station::global_to_tsz_frame( const Position & p ) const { +GeoTrf::Transform3D Station::global_to_tsz_frame( const Position & p ) const { return (tsz_to_global_frame( p )).inverse(); } -HepGeom::Transform3D Station::getNominalTransform(const Position & p) const +GeoTrf::Transform3D Station::getNominalTransform(const Position & p) const { // std::cout<<"Station::getNominalTransform for Position P defined below *********"<<std::endl; // std::cout<<p<<std::endl; return tsz_to_global_frame( p ) * native_to_tsz_frame( p ); } -HepGeom::Transform3D Station::getAlignedTransform(const AlignPos & ap, const Position & p) const +GeoTrf::Transform3D Station::getAlignedTransform(const AlignPos & ap, const Position & p) const { return tsz_to_global_frame( p ) * getDeltaTransform_tszFrame( ap ) * native_to_tsz_frame( p ); } -HepGeom::Transform3D Station::getDeltaTransform_tszFrame(const AlignPos & ap) const +GeoTrf::Transform3D Station::getDeltaTransform_tszFrame(const AlignPos & ap) const { MsgStream log(m_msgSvc, "MGM getDeltaTransform_tszFrame"); if (ap.tras!=0 ||ap.trat!= 0 ||ap.traz!=0 || @@ -890,37 +888,37 @@ HepGeom::Transform3D Station::getDeltaTransform_tszFrame(const AlignPos & ap) co } } - HepGeom::Rotate3D rott = HepGeom::RotateX3D(ap.rott); - HepGeom::Rotate3D rotz = HepGeom::RotateZ3D(ap.rotz); - HepGeom::Rotate3D rots = HepGeom::RotateY3D(ap.rots); - HepGeom::Transform3D trans = HepGeom::TranslateY3D(ap.tras)* - HepGeom::TranslateZ3D(ap.traz)*HepGeom::TranslateX3D(ap.trat); + GeoTrf::RotateX3D rott(ap.rott); + GeoTrf::RotateZ3D rotz(ap.rotz); + GeoTrf::RotateY3D rots(ap.rots); + GeoTrf::Transform3D trans = GeoTrf::TranslateY3D(ap.tras)* + GeoTrf::TranslateZ3D(ap.traz)*GeoTrf::TranslateX3D(ap.trat); - HepGeom::Transform3D delta = trans*rots*rotz*rott; + GeoTrf::Transform3D delta = trans*rots*rotz*rott; if (log.level()<=MSG::VERBOSE) log << MSG::VERBOSE<<" delta transform in the tsz frame --------------"<<endmsg - << - (delta)[0][0] << " " << - (delta)[0][1] << " " << - (delta)[0][2] << " " << - (delta)[0][3] << " " << endmsg << - (delta)[1][0] << " " << - (delta)[1][1] << " " << - (delta)[1][2] << " " << - (delta)[1][3] << " " << endmsg << - (delta)[2][0] << " " << - (delta)[2][1] << " " << - (delta)[2][2] << " " << - (delta)[2][3] << " " << endmsg; + << + delta(0,0) << " " << + delta(0,1) << " " << + delta(0,2) << " " << + delta(0,3) << " " << endmsg << + delta(1,0) << " " << + delta(1,1) << " " << + delta(1,2) << " " << + delta(1,3) << " " << endmsg << + delta(2,0) << " " << + delta(2,1) << " " << + delta(2,2) << " " << + delta(2,3) << " " << endmsg; // our delta transform must be applied in the tsz frame: return delta; } -HepGeom::Transform3D Station::getDeltaTransform(const AlignPos & ap, const Position & p) const +GeoTrf::Transform3D Station::getDeltaTransform(const AlignPos & ap, const Position & p) const { // GM applies Delta transform like transform*delta - HepGeom::Transform3D deltaGM = tsz_to_native_frame(p) * + GeoTrf::Transform3D deltaGM = tsz_to_native_frame(p) * getDeltaTransform_tszFrame( ap ) * native_to_tsz_frame(p); return deltaGM; } @@ -950,10 +948,10 @@ double Station::getAmdbOrigine_along_thickness() const // /* 17/06/2008 This is not needed anywhere -// HepGeom::Transform3D Station::getTransform( const AlignPos & ap) const { +// GeoTrf::Transform3D Station::getTransform( const AlignPos & ap) const { // MsgStream log(m_msgSvc, "MuonGeoModel"); -// HepGeom::Translate3D theTranslation, AMDBorgTranslation; -// HepGeom::Transform3D theRotation; +// GeoTrf::Translate3D theTranslation, AMDBorgTranslation; +// GeoTrf::Transform3D theRotation; // float tras=0, traz=0, trat=0, rots=0, rotz=0, rott=0; // bool isBarrel = false; // isBarrel = ap.isBarrel; @@ -977,35 +975,35 @@ double Station::getAmdbOrigine_along_thickness() const // if (ap.isBarrel && !(ap.isTrapezoid)) // { // rectangular barrel chambers // // AMDB org is at z=0, t=0 (not z=m_length/2, t=m_thickness/2) -// AMDBorgTranslation = HepGeom::Translate3D(GetThickness()/2.,0.,GetLength()/2.); +// AMDBorgTranslation = GeoTrf::Translate3D(GetThickness()/2.,0.,GetLength()/2.); // // RSZ = tsz -// theTranslation = HepGeom::Translate3D(trat,tras,traz); +// theTranslation = GeoTrf::Translate3D(trat,tras,traz); // // SZR = szt -// theRotation = HepGeom::RotateY3D(rots)*HepGeom::RotateZ3D(rotz)* -// HepGeom::RotateX3D(rott); +// theRotation = GeoTrf::RotateY3D(rots)*GeoTrf::RotateZ3D(rotz)* +// GeoTrf::RotateX3D(rott); // } // else if (ap.isBarrel && ap.isTrapezoid) // { // we can get rid of isTrapezoid after AMDB version 7. -// theTranslation = HepGeom::Translate3D(trat,-tras,traz); -// theRotation = HepGeom::RotateY3D(-rots)*HepGeom::RotateZ3D(rotz)* -// HepGeom::RotateX3D(rott); -// AMDBorgTranslation = HepGeom::Translate3D(GetThickness()/2.,0.,GetLength()/2.); +// theTranslation = GeoTrf::Translate3D(trat,-tras,traz); +// theRotation = GeoTrf::RotateY3D(-rots)*GeoTrf::RotateZ3D(rotz)* +// GeoTrf::RotateX3D(rott); +// AMDBorgTranslation = GeoTrf::Translate3D(GetThickness()/2.,0.,GetLength()/2.); // } // else // { // assumed to be trapezoidal endcap chambers // // // // // RSZ = zst -// // theTranslation = HepGeom::Translate3D(traz,tras,trat); +// // theTranslation = GeoTrf::Translate3D(traz,tras,trat); // // // SZR = stz so you would expect: -// // theRotation = HepGeom::RotateY3D(rots)*HepGeom::RotateZ3D(rott)* -// // HepGeom::RotateX3D(rotz); +// // theRotation = GeoTrf::RotateY3D(rots)*GeoTrf::RotateZ3D(rott)* +// // GeoTrf::RotateX3D(rotz); // // // // but in fact the s-axis is flipped in MuonGM wrt AMDB, // // and the z and t axes are exchanged: -// theTranslation = HepGeom::Translate3D(trat,-tras,traz); -// theRotation = HepGeom::RotateY3D(-rots)*HepGeom::RotateZ3D(rotz)* -// HepGeom::RotateX3D(rott); -// AMDBorgTranslation = HepGeom::Translate3D(GetLength()/2.,0.,GetThickness()/2.); +// theTranslation = GeoTrf::Translate3D(trat,-tras,traz); +// theRotation = GeoTrf::RotateY3D(-rots)*GeoTrf::RotateZ3D(rotz)* +// GeoTrf::RotateX3D(rott); +// AMDBorgTranslation = GeoTrf::Translate3D(GetLength()/2.,0.,GetThickness()/2.); // } // // return theTranslation*theRotation; // // put it in AMDB coordinates for the transformation, then go back to MuonGM @@ -1014,19 +1012,19 @@ double Station::getAmdbOrigine_along_thickness() const // } // */ // not needed 17/06/2008 -// HepGeom::Transform3D Station::getAmdbOrgTrans(const Position & p) const +// GeoTrf::Transform3D Station::getAmdbOrgTrans(const Position & p) const // { // in tsz coordinates: // //MsgStream log(m_msgSvc, "MGM getAmdbOrgTrans"); -// HepGeom::Translate3D AMDBorgTranslation; +// GeoTrf::Translate3D AMDBorgTranslation; // if (m_name[0]=='B' || p.isBarrelLike ) // { // AMDBorgTranslation = -// HepGeom::Translate3D(GetThickness()/2.,0.,GetLength()/2.); +// GeoTrf::Translate3D(GetThickness()/2.,0.,GetLength()/2.); // } // else // { // AMDBorgTranslation = -// HepGeom::Translate3D(GetThickness()/2.,0.,GetLength()/2.); +// GeoTrf::Translate3D(GetThickness()/2.,0.,GetLength()/2.); // } // //log << MSG::VERBOSE<< "length = "<<GetLength()<<" m_thickness="<<GetThickness() // // << endmsg; @@ -1034,21 +1032,21 @@ double Station::getAmdbOrigine_along_thickness() const // } // 17/06/2008 not needed anywhere -// HepGeom::Transform3D Station::getTransform( const Position & p) const { +// GeoTrf::Transform3D Station::getTransform( const Position & p) const { // MsgStream log(m_msgSvc, "MuonGeoModel"); -// HepGeom::Transform3D nominalTransf; -// HepGeom::Transform3D AMDBorgTranslation = HepGeom::Transform3D::Identity; -// static CLHEP::Hep3Vector vec; +// GeoTrf::Transform3D nominalTransf; +// GeoTrf::Transform3D AMDBorgTranslation = GeoTrf::Transform3D::Identity; +// static GeoTrf::Vector3D vec; // if (m_name[0]=='B') { // // defining the position of the centre of any station // // here using the stations in DBSC (described in amdb + the ones at z<0) -// vec.setX((p.radius+GetThickness()/2.)*cos(p.phi*CLHEP::deg)); -// vec.setX(vec.x()-p.shift*sin((p.phi)*CLHEP::deg)); -// vec.setY((p.radius+GetThickness()/2.)*sin(p.phi*CLHEP::deg)); -// vec.setY(vec.y()+p.shift*cos((p.phi)*CLHEP::deg)); +// vec.setX((p.radius+GetThickness()/2.)*cos(p.phi*GeoModelKernelUnits::deg)); +// vec.setX(vec.x()-p.shift*sin((p.phi)*GeoModelKernelUnits::deg)); +// vec.setY((p.radius+GetThickness()/2.)*sin(p.phi*GeoModelKernelUnits::deg)); +// vec.setY(vec.y()+p.shift*cos((p.phi)*GeoModelKernelUnits::deg)); // vec.setZ(p.z+GetLength()/2.); -// AMDBorgTranslation = HepGeom::Translate3D(GetThickness()*cos(p.phi*CLHEP::deg)/2., -// GetThickness()*sin(p.phi*CLHEP::deg)/2., +// AMDBorgTranslation = GeoTrf::Translate3D(GetThickness()*cos(p.phi*GeoModelKernelUnits::deg)/2., +// GetThickness()*sin(p.phi*GeoModelKernelUnits::deg)/2., // GetLength()/2.); // } // else { // if (m_name[0]=='T') @@ -1061,65 +1059,65 @@ double Station::getAmdbOrigine_along_thickness() const // RAD=p.radius; // if (m_name[0]!='C') // { -// vec.setX((RAD+GetLength()/2.)*cos(p.phi*CLHEP::deg)); -// vec.setX(vec.x()-p.shift*sin((p.phi)*CLHEP::deg)); -// vec.setY((RAD+GetLength()/2.)*sin(p.phi*CLHEP::deg)); -// vec.setY(vec.y()+p.shift*cos((p.phi)*CLHEP::deg)); +// vec.setX((RAD+GetLength()/2.)*cos(p.phi*GeoModelKernelUnits::deg)); +// vec.setX(vec.x()-p.shift*sin((p.phi)*GeoModelKernelUnits::deg)); +// vec.setY((RAD+GetLength()/2.)*sin(p.phi*GeoModelKernelUnits::deg)); +// vec.setY(vec.y()+p.shift*cos((p.phi)*GeoModelKernelUnits::deg)); // vec.setZ(p.z+GetThickness()/2.); // } // else // { -// vec.setX(RAD*cos(p.phi*CLHEP::deg)); -// vec.setX(vec.x()-p.shift*sin((p.phi)*CLHEP::deg)); -// vec.setY(RAD*sin(p.phi*CLHEP::deg)); -// vec.setY(vec.y()+p.shift*cos((p.phi)*CLHEP::deg)); +// vec.setX(RAD*cos(p.phi*GeoModelKernelUnits::deg)); +// vec.setX(vec.x()-p.shift*sin((p.phi)*GeoModelKernelUnits::deg)); +// vec.setY(RAD*sin(p.phi*GeoModelKernelUnits::deg)); +// vec.setY(vec.y()+p.shift*cos((p.phi)*GeoModelKernelUnits::deg)); // if (p.z>0) vec.setZ(p.z); // else vec.setZ(p.z+GetThickness()); // } // } -// // HepGeom::Transform3D AMDBorgTranslation = HepGeom::Transform3D::Identity; -// // AMDBorgTranslation = HepGeom::Translate3D(GetThickness()/2., +// // GeoTrf::Transform3D AMDBorgTranslation = GeoTrf::Transform3D::Identity; +// // AMDBorgTranslation = GeoTrf::Translate3D(GetThickness()/2., // // 0., // // GetLength()/2.); // const HepVector3D zaxis = HepVector3D(0.,0.,1.); // const HepVector3D raxis = HepVector3D(vec.x(), vec.y(), 0.); // const HepVector3D phiaxis = HepVector3D(-raxis.y(), raxis.x(), 0.); // phi = z cross r // // order of extra rotations is alpha(r), then beta(z), then gamma(phi) -// HepGeom::Rotate3D ralpha, rbeta, rgamma; -// ralpha = HepGeom::Rotate3D(p.alpha*CLHEP::deg, raxis); -// rbeta = HepGeom::Rotate3D(p.beta*CLHEP::deg, zaxis); +// GeoTrf::Rotate3D ralpha, rbeta, rgamma; +// ralpha = GeoTrf::Rotate3D(p.alpha*GeoModelKernelUnits::deg, raxis); +// rbeta = GeoTrf::Rotate3D(p.beta*GeoModelKernelUnits::deg, zaxis); // if ( p.zindex<0 && !(m_name[0] == 'B') ) { -// rgamma = HepGeom::Rotate3D(p.gamma*CLHEP::deg, phiaxis); +// rgamma = GeoTrf::Rotate3D(p.gamma*GeoModelKernelUnits::deg, phiaxis); // // if (m_name[0]=='C') log << MSG::DEBUG <<"zi,fi gamma applied "<<m_name<<" "<<p.zindex<<" "<<p.phiindex<<" "<<p.gamma<<endmsg; // } // else { -// rgamma = HepGeom::Rotate3D(-p.gamma*CLHEP::deg, phiaxis); +// rgamma = GeoTrf::Rotate3D(-p.gamma*GeoModelKernelUnits::deg, phiaxis); // // if (m_name[0]=='C') log << MSG::DEBUG<<"zi,fi gamma applied "<<m_name<<" "<<p.zindex<<" "<<p.phiindex<<" "<<-p.gamma<<endmsg; // } // if (m_name[0]=='B' || p.isBarrelLike) // { // // here all Barrel chambers -// if (p.isMirrored) nominalTransf = HepGeom::RotateZ3D(p.phi*CLHEP::deg)*HepGeom::RotateX3D(180.*CLHEP::deg); -// else nominalTransf = HepGeom::RotateZ3D(p.phi*CLHEP::deg); +// if (p.isMirrored) nominalTransf = GeoTrf::RotateZ3D(p.phi*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(180.*GeoModelKernelUnits::deg); +// else nominalTransf = GeoTrf::RotateZ3D(p.phi*GeoModelKernelUnits::deg); // } // else // { // if ( p.z>=0 || ( p.z<0 && !(p.isMirrored) ) ){ -// nominalTransf = HepGeom::Transform3D(HepGeom::RotateY3D(-90*CLHEP::deg)*HepGeom::RotateX3D(p.phi*CLHEP::deg-180*CLHEP::deg)); +// nominalTransf = GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)*GeoTrf::RotateX3D(p.phi*GeoModelKernelUnits::deg-180*GeoModelKernelUnits::deg)); // } // else if (p.z<0 && p.isMirrored){ -// nominalTransf = HepGeom::Transform3D(HepGeom::RotateY3D(-90*CLHEP::deg)* -// HepGeom::RotateX3D(p.phi*CLHEP::deg-180*CLHEP::deg)* -// HepGeom::RotateZ3D(180*CLHEP::deg)); +// nominalTransf = GeoTrf::Transform3D(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)* +// GeoTrf::RotateX3D(p.phi*GeoModelKernelUnits::deg-180*GeoModelKernelUnits::deg)* +// GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)); // } // else log << MSG::WARNING<<" AAAAAA problem here p.z, mirrored " // <<p.z<<" "<<p.isMirrored<<endmsg; // } -// HepGeom::Transform3D transf; -// if (m_name[0]!='C') transf = HepGeom::Translate3D(vec)*rgamma*rbeta*ralpha*nominalTransf; -// else transf = HepGeom::Translate3D(vec)*nominalTransf* -// HepGeom::RotateY3D(p.gamma*CLHEP::deg)* -// HepGeom::Translate3D(GetThickness()/2.,0.,GetLength()/2.); +// GeoTrf::Transform3D transf; +// if (m_name[0]!='C') transf = GeoTrf::Translate3D(vec)*rgamma*rbeta*ralpha*nominalTransf; +// else transf = GeoTrf::Translate3D(vec)*nominalTransf* +// GeoTrf::RotateY3D(p.gamma*GeoModelKernelUnits::deg)* +// GeoTrf::Translate3D(GetThickness()/2.,0.,GetLength()/2.); // return transf; // } diff --git a/MuonSpectrometer/MuonGeoModel/src/Tgc.cxx b/MuonSpectrometer/MuonGeoModel/src/Tgc.cxx index 6306aa9313c24a120116226d379a1b50e3a3d62c..3abfde6a635ad8a3a4969d568f6f3db88b0c424d 100755 --- a/MuonSpectrometer/MuonGeoModel/src/Tgc.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/Tgc.cxx @@ -63,12 +63,12 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef) if (cutoutson && vcutdef.size() > 0) { Cutout* cut = 0; GeoShape* cutoutShape = 0; - HepGeom::Transform3D cutTrans; + GeoTrf::Transform3D cutTrans{GeoTrf::Transform3D::Identity()}; for (unsigned i = 0; i < vcutdef.size(); i++) { cut = vcutdef[i]; cutoutShape = new GeoTrd(thickness/2.+1., thickness/2.+1., cut->widthXs/2., cut->widthXl/2., cut->lengthY/2.); - cutTrans = HepGeom::Translate3D(0.0, cut->dx, -length/2 + cut->dy + cut->lengthY/2.); + cutTrans = GeoTrf::Translate3D(0.0, cut->dx, -length/2 + cut->dy + cut->lengthY/2.); strd = &(strd->subtract( (*cutoutShape) << cutTrans) ); } // std::cout << " Tgc cutouts" << std::endl; @@ -119,12 +119,11 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef) // wire supports GeoTrd* strdsup = new GeoTrd(t->tck[i]/2, t->tck[i]/2, t->widthWireSupport/2, - t->widthWireSupport/2, lengthActive/2-0.1*CLHEP::mm); + t->widthWireSupport/2, lengthActive/2-0.1*GeoModelKernelUnits::mm); // button supports GeoTube* stubesup = new GeoTube(0., t->radiusButton, - t->tck[i]/2.+0.005*CLHEP::mm); - CLHEP::HepRotation rotY; - rotY.set(CLHEP::HepRotationY(3.14159264/2.*CLHEP::rad)); + t->tck[i]/2.+0.005*GeoModelKernelUnits::mm); + GeoTrf::RotateY3D rotY(3.14159264/2.*GeoModelKernelUnits::rad); int iymin = int( -(widthActive/2. + lengthActive*tan(t->angleTilt) - t->widthWireSupport/2. + t->offsetWireSupport[iSenLyr])/t->distanceWireSupport ); @@ -139,15 +138,12 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef) } else if (t->offsetWireSupport[iSenLyr]+t->distanceWireSupport*isup == 0.){ sign = 0; } - CLHEP::HepRotation rotX; - rotX.set(CLHEP::HepRotationX(sign*t->angleTilt)); - CLHEP::Hep3Vector vtransWS; - vtransWS.set(0., - t->offsetWireSupport[iSenLyr] + t->distanceWireSupport*isup - + lengthActive/2.*tan(sign*t->angleTilt), - 0.); + GeoTrf::RotateX3D rotX(sign*t->angleTilt); + GeoTrf::Translate3D vtransWS(0., + t->offsetWireSupport[iSenLyr] + t->distanceWireSupport*isup + lengthActive/2.*tan(sign*t->angleTilt), + 0.); - sGasVolume = &(sGasVolume->subtract((*strdsup) << HepGeom::Transform3D(rotX,vtransWS))); + sGasVolume = &(sGasVolume->subtract((*strdsup) << GeoTrf::Transform3D(vtransWS*rotX))); // place button supports int izmin, izmax; @@ -192,14 +188,12 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef) GeoTrd* strdsupex = new GeoTrd(t->tck[i]/2, t->tck[i]/2, t->widthWireSupport/2, t->widthWireSupport/2, - lengthWireSupportEx/2-0.1*CLHEP::mm); - CLHEP::Hep3Vector vtrans; - vtrans.set(0., - t->offsetWireSupport[iSenLyr]+t->distanceWireSupport*isupy - + lengthActive/2.*tan(sign*t->angleTilt), - (lengthActive-lengthWireSupportEx)/2.); - - sGasVolume = &(sGasVolume->subtract((*strdsupex) << HepGeom::Transform3D(rotX,vtrans))); + lengthWireSupportEx/2-0.1*GeoModelKernelUnits::mm); + GeoTrf::Translate3D vtrans(0., + t->offsetWireSupport[iSenLyr]+t->distanceWireSupport*isupy + lengthActive/2.*tan(sign*t->angleTilt), + (lengthActive-lengthWireSupportEx)/2.); + + sGasVolume = &(sGasVolume->subtract((*strdsupex) << GeoTrf::Transform3D(vtrans * rotX))); } } // End special case for TGC01, 06, 12 @@ -208,7 +202,7 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef) + t->offsetWireSupport[iSenLyr] +lengthActive*tan( t->angleTilt)) -(-widthActive/2.); - if (widthLeftTrd > 8.*CLHEP::cm) { + if (widthLeftTrd > 8.*GeoModelKernelUnits::cm) { double yLongBase; if ((name == "TGC01" || name == "TGC06" || name == "TGC12") && t->distanceWireSupport*(iymin-1)+t->offsetWireSupport[iSenLyr] @@ -236,7 +230,7 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef) +t->offsetWireSupport[iSenLyr] +lengthActive*tan(-t->angleTilt)); - if (widthRightTrd > 8.*CLHEP::cm) { + if (widthRightTrd > 8.*GeoModelKernelUnits::cm) { double yLongBase; if ((name == "TGC01" || name == "TGC06" || name == "TGC12") && t->distanceWireSupport*(iymax+1)+t->offsetWireSupport[iSenLyr] @@ -269,10 +263,9 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef) totNBS += nBS; double yposleft = yposCentre[iBS] - t->pitchButton[0]/2. + (lengthActive/2.-t->pitchButton[1]/2.*isupz)*tan(angleTiltButton[iBS]); - CLHEP::Hep3Vector vtransBS; - vtransBS.set(0., yposleft + t->pitchButton[0]*std::abs(isupz%2), - t->pitchButton[1]/2.*isupz); - sGasVolume = &(sGasVolume->subtract( (*stubesup) << HepGeom::Transform3D(rotY,vtransBS))); + GeoTrf::Translate3D vtransBS(0., yposleft + t->pitchButton[0]*std::abs(isupz%2), + t->pitchButton[1]/2.*isupz); + sGasVolume = &(sGasVolume->subtract( (*stubesup) << GeoTrf::Transform3D(vtransBS*rotY))); } } } // loop over wire supports @@ -283,14 +276,14 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef) // makes a gas boundary Cutout* cut = 0; GeoShape* cutoutShape = 0; - HepGeom::Transform3D cutTrans; + GeoTrf::Transform3D cutTrans{GeoTrf::Transform3D::Identity()}; for (unsigned i = 0; i < vcutdef.size(); i++) { cut = vcutdef[i]; cutoutShape = new GeoTrd(thickness/2.+1., thickness/2.+1., cut->widthXs/2. + t->frame_ab/2., cut->widthXl/2. + t->frame_ab/2., cut->lengthY/2. + t->frame_h/2.); - cutTrans = HepGeom::Translate3D(0.0, cut->dx, -length/2 + cut->dy + cut->lengthY/2.); + cutTrans = GeoTrf::Translate3D(0.0, cut->dx, -length/2 + cut->dy + cut->lengthY/2.); sGasVolume = &(sGasVolume->subtract( (*cutoutShape) << cutTrans) ); } } @@ -299,7 +292,7 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef) matManager->getMaterial(t->materials[i])); GeoPhysVol* ptrdtmp = new GeoPhysVol(ltrdtmp); GeoNameTag* ntrdtmp = new GeoNameTag(name+t->materials[i]); - GeoTransform* ttrdtmp = new GeoTransform(HepGeom::TranslateX3D(newpos + (t->tck[i]/2))); + GeoTransform* ttrdtmp = new GeoTransform(GeoTrf::TranslateX3D(newpos + (t->tck[i]/2))); // Place gas volume inside G10 mother volume so that // subtractions from gas volume now become G10 @@ -319,12 +312,12 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef) if (cutoutson && vcutdef.size() > 0) { Cutout* cut = 0; GeoShape* cutoutShape = 0; - HepGeom::Transform3D cutTrans; + GeoTrf::Transform3D cutTrans{GeoTrf::Transform3D::Identity()}; for (unsigned i = 0; i < vcutdef.size(); i++) { cut = vcutdef[i]; cutoutShape = new GeoTrd(thickness/2.+1., thickness/2.+1., cut->widthXs/2., cut->widthXl/2., cut->lengthY/2.); - cutTrans = HepGeom::Translate3D(0.0, cut->dx, -length/2 + cut->dy + cut->lengthY/2.); + cutTrans = GeoTrf::Translate3D(0.0, cut->dx, -length/2 + cut->dy + cut->lengthY/2.); strdtmp = &(strdtmp->subtract( (*cutoutShape) << cutTrans) ); } } @@ -332,7 +325,7 @@ Tgc::build(int minimalgeo, int cutoutson, std::vector<Cutout*> vcutdef) matManager->getMaterial(t->materials[i])); GeoPhysVol* ptrdtmp = new GeoPhysVol(ltrdtmp); GeoNameTag* ntrdtmp = new GeoNameTag(name+t->materials[i]); - GeoTransform* ttrdtmp = new GeoTransform(HepGeom::TranslateX3D(newpos+ (t->tck[i]/2))); + GeoTransform* ttrdtmp = new GeoTransform(GeoTrf::TranslateX3D(newpos+ (t->tck[i]/2))); if (!skip_tgc) { ptrd->add(ntrdtmp); diff --git a/MuonSpectrometer/MuonGeoModel/src/sTGC.cxx b/MuonSpectrometer/MuonGeoModel/src/sTGC.cxx index d105b6c0f0336a047572cff3123c66ff978a5d8a..e9dd01b9b52b3e68bc82d7848a68dbfd133dccdf 100755 --- a/MuonSpectrometer/MuonGeoModel/src/sTGC.cxx +++ b/MuonSpectrometer/MuonGeoModel/src/sTGC.cxx @@ -85,12 +85,8 @@ GeoFullPhysVol* sTGC::build(int minimalgeo, int , std::vector<Cutout*> ) if (yCutout) solid->addVertex(longWidth/2.,length/2.-yCutout); //Transform the mother volume to the correct position - CLHEP::Hep3Vector v(0,0,0); - CLHEP::HepRotation rot; - rot.rotateX(M_PI/2.); - rot.rotateZ(M_PI/2.); - HepGeom::Transform3D transf(rot,v); - const GeoShape *strd=new GeoShapeShift(solid,transf); + GeoTrf::Transform3D rot = GeoTrf::RotateZ3D(M_PI/2.)*GeoTrf::RotateX3D(M_PI/2.); + const GeoShape *strd=new GeoShapeShift(solid,rot); logVolName=name; if (!(m_component->subType).empty()) logVolName+=("-"+m_component->subType); @@ -135,16 +131,12 @@ GeoFullPhysVol* sTGC::build(int minimalgeo, int , std::vector<Cutout*> ) if (yCutout) sGasVolume->addVertex(longWidthActive/2.,lengthActive/2.-yCutout); //Transform gas volume - CLHEP::Hep3Vector v(0,0,0); - CLHEP::HepRotation rot; - rot.rotateX(M_PI/2.); - rot.rotateZ(M_PI/2.); - HepGeom::Transform3D transf(rot,v); - const GeoShape *sGasVolume1=new GeoShapeShift(sGasVolume,transf); + GeoTrf::Transform3D rot = GeoTrf::RotateZ3D(M_PI/2.)*GeoTrf::RotateX3D(M_PI/2.); + const GeoShape *sGasVolume1=new GeoShapeShift(sGasVolume,rot); GeoLogVol* ltrdgas = new GeoLogVol("sTGC_Sensitive", sGasVolume1, matManager->getMaterial("muo::TGCGas")); GeoPhysVol* ptrdgas = new GeoPhysVol(ltrdgas); GeoNameTag* gastag = new GeoNameTag(name+"muo::TGCGas"); - GeoTransform* chamberpos = new GeoTransform(HepGeom::TranslateX3D(newXPos)); + GeoTransform* chamberpos = new GeoTransform(GeoTrf::TranslateX3D(newXPos)); //Build two pcb volumes and add them to the gas at -chamberTck/2 and at +chamberTck/2 for(int i = 0; i < 2; i++){ @@ -161,19 +153,15 @@ GeoFullPhysVol* sTGC::build(int minimalgeo, int , std::vector<Cutout*> ) if (yCutout) sPcbVolume->addVertex(longWidthActive/2.,lengthActive/2.-yCutout); //Transform PCB volume - CLHEP::Hep3Vector vv(0,0,0); - CLHEP::HepRotation rott; - rott.rotateX(M_PI/2.); - rott.rotateZ(M_PI/2.); - HepGeom::Transform3D transff(rott,vv); - const GeoShape *sPcbVolume1=new GeoShapeShift(sPcbVolume,transff); + GeoTrf::Transform3D rott = GeoTrf::RotateZ3D(M_PI/2.)*GeoTrf::RotateX3D(M_PI/2.); + const GeoShape *sPcbVolume1=new GeoShapeShift(sPcbVolume,rott); const GeoMaterial* mtrdC = matManager->getMaterial("std::G10"); GeoLogVol* ltrdC = new GeoLogVol(logVolName, sPcbVolume1, mtrdC); GeoPhysVol* ptrdPcb = new GeoPhysVol(ltrdC); GeoNameTag* ntrdtmpC = new GeoNameTag(name+"std::G10"); - GeoTransform* ttrdtmpC = new GeoTransform(HepGeom::TranslateX3D(pcbpos)); + GeoTransform* ttrdtmpC = new GeoTransform(GeoTrf::TranslateX3D(pcbpos)); // Place pcb volume inside chamber volume @@ -196,8 +184,7 @@ GeoFullPhysVol* sTGC::build(int minimalgeo, int , std::vector<Cutout*> ) longWidth/2, length/2); const GeoShape* trd2 = new GeoTrd(gasTck,gasTck, W-f6, lW-f6, length/2-(f4+f5)/2.); - HepGeom::Transform3D c; - c=HepGeom::Translate3D(0,0,(f5-f4)/2.); + GeoTrf::Translate3D c(0,0,(f5-f4)/2.); trd1= &(trd1->subtract( (*trd2) << c )); GeoLogVol* ltrdframe = new GeoLogVol("sTGC_Frame", trd1, matManager->getMaterial("std::Aluminium")); @@ -217,7 +204,7 @@ GeoFullPhysVol* sTGC::build(int minimalgeo, int , std::vector<Cutout*> ) sGasV->addVertex(W-f6,-lengthActive/2.+f5); sGasV->addVertex(longWidthActive/2.-f6,lengthActive/2.-yCutout); - const GeoShape *sGasV1=new GeoShapeShift(sGasV,transf); + const GeoShape *sGasV1=new GeoShapeShift(sGasV,rot); const GeoShape* sGasV2=&(sGasVolume1->subtract(*sGasV1)); diff --git a/MuonSpectrometer/MuonReconstruction/MuonDataPrep/MuonTGMeasAssocAlg/src/MuonTGMeasAssocAlg.cxx b/MuonSpectrometer/MuonReconstruction/MuonDataPrep/MuonTGMeasAssocAlg/src/MuonTGMeasAssocAlg.cxx index e41d3bd697a9631b95e8f1beb923f6272ebac8c7..03f62cae69fed6476ea0acbcbf0a41e002275a54 100644 --- a/MuonSpectrometer/MuonReconstruction/MuonDataPrep/MuonTGMeasAssocAlg/src/MuonTGMeasAssocAlg.cxx +++ b/MuonSpectrometer/MuonReconstruction/MuonDataPrep/MuonTGMeasAssocAlg/src/MuonTGMeasAssocAlg.cxx @@ -997,7 +997,7 @@ void Muon::MuonTGMeasAssocAlg::reAlignStations() const unsigned int moved = 0; for ( ;iter!=m_stationMap.end();iter++) { - const Amg::Transform3D transfMS = Amg::CLHEPTransformToEigen(iter->second.first->getGeoTransform()->getTransform()); + const Amg::Transform3D transfMS = iter->second.first->getGeoTransform()->getTransform(); const Amg::Transform3D transfTV = iter->second.second->trackingVolume()->transform(); if ( !transfMS.isApprox(transfTV, 1e-3) ) { Amg::Transform3D shift = transfMS*transfTV.inverse(); diff --git a/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/CMakeLists.txt b/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/CMakeLists.txt index 69365ab14c1d85973573ccba4916be170667b5d8..d863e754a5a211b9841044cec8315ad777407b07 100644 --- a/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/CMakeLists.txt +++ b/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/CMakeLists.txt @@ -35,12 +35,13 @@ atlas_depends_on_subdirs( PRIVATE # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) find_package( HepMC ) +find_package( CLHEP ) # Component(s) in the package: atlas_add_component( JetTagD3PDMaker src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS} + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} LINK_LIBRARIES ${Boost_LIBRARIES} ${HEPMC_LIBRARIES} AthenaBaseComps AthenaKernel AthContainers EventKernel EventPrimitives GaudiKernel GeneratorObjects InDetIdentifier InDetReadoutGeometry D3PDMakerUtils JetTagEvent JetTagInfo MuonIDEvent McParticleEvent JetEvent muonEvent Particle egammaEvent TrkParticleBase VxJetVertex VxSecVertex VxVertex TrkVertexFitterInterfaces ) # Install files from the package: diff --git a/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/src/JetTagTwoTrackVertexFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/src/JetTagTwoTrackVertexFillerTool.cxx index ebf4b80afe46774d01548dbc1fe1b9e626b55aeb..661d2942566a2a1c52a88f03c24ab93ac1c156ec 100644 --- a/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/src/JetTagTwoTrackVertexFillerTool.cxx +++ b/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/src/JetTagTwoTrackVertexFillerTool.cxx @@ -12,7 +12,8 @@ #include "EventPrimitives/EventPrimitivesHelpers.h" - +#include "CLHEP/Vector/LorentzVector.h" +#include "CLHEP/Vector/ThreeVector.h" using CLHEP::HepLorentzVector; using CLHEP::Hep3Vector; diff --git a/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/src/JetTagVxOnJetAxisTrackAssociationTool.cxx b/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/src/JetTagVxOnJetAxisTrackAssociationTool.cxx index fc7c29be7d75dd5c67c324515e54b460c11ec186..ef0b2de108dc609fda0c55845196e64f953fd802 100644 --- a/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/src/JetTagVxOnJetAxisTrackAssociationTool.cxx +++ b/PhysicsAnalysis/D3PDMaker/JetTagD3PDMaker/src/JetTagVxOnJetAxisTrackAssociationTool.cxx @@ -11,8 +11,7 @@ #include "Particle/TrackParticle.h" #include "TrkParticleBase/LinkToTrackParticleBase.h" - -using HepGeom::Vector3D; +#include "CLHEP/Vector/ThreeVector.h" using CLHEP::Hep3Vector; diff --git a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/CMakeLists.txt b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/CMakeLists.txt index daf696c5358958aeed120cc58aa54597ef035c7a..a9f5b7960c920be566f7c693e19dc97bcb870aed 100644 --- a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/CMakeLists.txt +++ b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/CMakeLists.txt @@ -18,6 +18,7 @@ atlas_depends_on_subdirs( PRIVATE DetectorDescription/GeoModel/GeoModelInterfaces DetectorDescription/GeoModel/GeoModelUtilities DetectorDescription/Identifier + DetectorDescription/GeoPrimitives Event/EventInfo Event/xAOD/xAODCaloEvent Event/xAOD/xAODEventInfo diff --git a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileCellFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileCellFillerTool.cxx index c0c6a7068fa03a8cae3ea4f12e0d4658d3e717d7..dccaae84fa78a8fdb415a4db073322f9f07baf6e 100644 --- a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileCellFillerTool.cxx +++ b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileCellFillerTool.cxx @@ -11,6 +11,7 @@ */ // INCLUDE HEADER +#include "GeoPrimitives/GeoPrimitives.h" #include "TileCellFillerTool.h" // xAOD tools diff --git a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileCellFillerTool.h b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileCellFillerTool.h index 4617a812f5932082dc6c956baa60854e8170b5b4..3c4e1b865f41d8e6aab9fea774b9f9f3318d870b 100644 --- a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileCellFillerTool.h +++ b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileCellFillerTool.h @@ -20,6 +20,8 @@ #ifndef TILEMUONCALOD3PDMAKER_CELLFILLERTOOL_H #define TILEMUONCALOD3PDMAKER_CELLFILLERTOOL_H +#include "GeoPrimitives/GeoPrimitives.h" + /// D3PD INCLUDES #include "D3PDMakerUtils/BlockFillerTool.h" diff --git a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileClusterFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileClusterFillerTool.cxx index 0211bcf1481e654e65c987ebb70cae61002d3479..09821d43d08ed0e840bed3adb9beb83c0a7df221 100644 --- a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileClusterFillerTool.cxx +++ b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileClusterFillerTool.cxx @@ -10,6 +10,7 @@ */ // INCLUDE HEADER FILE +#include "GeoPrimitives/GeoPrimitives.h" #include "TileClusterFillerTool.h" using namespace D3PD; diff --git a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileClusterFilterAlg.cxx b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileClusterFilterAlg.cxx index 4e2df09da6f2599f328e406c8d27b5d4c400e8fa..7fce1fc645e68fbd50af3b4ef44fed318c124209 100644 --- a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileClusterFilterAlg.cxx +++ b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileClusterFilterAlg.cxx @@ -7,6 +7,7 @@ * Author: Carlos.Solans@cern.ch */ +#include "GeoPrimitives/GeoPrimitives.h" #include "TileClusterFilterAlg.h" TileClusterFilterAlg::TileClusterFilterAlg( const std::string& name, ISvcLocator* pSvcLocator ): diff --git a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileCosmicMuonFilterAlg.cxx b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileCosmicMuonFilterAlg.cxx index 0ae775ed6b176cddaf86c6f746f21958972b6810..36ee9db3e21e1a1387a612dea909800ef4c87eec 100644 --- a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileCosmicMuonFilterAlg.cxx +++ b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileCosmicMuonFilterAlg.cxx @@ -8,6 +8,7 @@ * Author: Archil.Durglishvili@cern.ch */ +#include "GeoPrimitives/GeoPrimitives.h" #include "TileCosmicMuonFilterAlg.h" #include "CaloGeoHelpers/CaloSampling.h" #include "AthContainers/ConstDataVector.h" diff --git a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileEopFilterAlg.cxx b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileEopFilterAlg.cxx index a41a2a0f18fc78c7863e979c7f97aa9833484613..e795cf2676a672a3afdca311f7321b9650a30033 100644 --- a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileEopFilterAlg.cxx +++ b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileEopFilterAlg.cxx @@ -7,6 +7,7 @@ * Author: Carlos.Solans@cern.ch */ +#include "GeoPrimitives/GeoPrimitives.h" #include "TileEopFilterAlg.h" #include "CaloGeoHelpers/CaloSampling.h" #include "AthContainers/ConstDataVector.h" diff --git a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileMuonFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileMuonFillerTool.cxx index d9dde1d7f49edf03050ed88e5a3f2a7c02ae3a74..c4d4952895fd64c55762e50fb2fa9efd054a15b9 100644 --- a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileMuonFillerTool.cxx +++ b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileMuonFillerTool.cxx @@ -12,6 +12,7 @@ */ // INCLUDE HEADER FILE +#include "GeoPrimitives/GeoPrimitives.h" #include "TileMuonFillerTool.h" // CALORIMETER INCLUDES diff --git a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileMuonFilterAlg.cxx b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileMuonFilterAlg.cxx index 8b2011515a2edeaf6b43d78518cd15a8a11cf52e..3c5fcf91e2e49e7af2d17f0b037bffb937ebee57 100644 --- a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileMuonFilterAlg.cxx +++ b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileMuonFilterAlg.cxx @@ -8,6 +8,7 @@ * Author: Archil.Durglishvili@cern.ch */ +#include "GeoPrimitives/GeoPrimitives.h" #include "TileMuonFilterAlg.h" #include "CaloGeoHelpers/CaloSampling.h" #include "AthContainers/ConstDataVector.h" diff --git a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileTrackFillerTool.cxx b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileTrackFillerTool.cxx index 6dd03a08463212514df1501e9c063f2eeeda99b0..64deebb2cb3ee823920ac65d7793b6b49e947b29 100644 --- a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileTrackFillerTool.cxx +++ b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileTrackFillerTool.cxx @@ -10,6 +10,7 @@ */ // INCLUDE HEADER FILE +#include "GeoPrimitives/GeoPrimitives.h" #include "TileTrackFillerTool.h" //xAOD tools diff --git a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileTrackFilterAlg.cxx b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileTrackFilterAlg.cxx index 5cd4424ccbd308a32b7826f71c8885ac1a7c0dae..d0ae019d4370f034258d1107879a8cb7f21fbe88 100644 --- a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileTrackFilterAlg.cxx +++ b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TileTrackFilterAlg.cxx @@ -10,6 +10,7 @@ */ // INCLUDE HEADER +#include "GeoPrimitives/GeoPrimitives.h" #include "TileTrackFilterAlg.h" //=============================================================================================== diff --git a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TrackTools.cxx b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TrackTools.cxx index 1c0591fd1a2aa5da4368d2a63b43a532008accf9..2ea25a322d419f865a4d1e75026a3e2ee8c096bd 100755 --- a/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TrackTools.cxx +++ b/PhysicsAnalysis/D3PDMaker/TileD3PDMaker/src/TrackTools.cxx @@ -10,6 +10,7 @@ * Created in February 2013. * Updated in November 2014 */ +#include "GeoPrimitives/GeoPrimitives.h" #include "TrackTools.h" //============================================= diff --git a/PhysicsAnalysis/D3PDMaker/egammaD3PDAnalysis/src/PhotonTruthTool.cxx b/PhysicsAnalysis/D3PDMaker/egammaD3PDAnalysis/src/PhotonTruthTool.cxx index 7e017c2bc7b2275615f85ec248c760feb586601f..4911f172afa5b38ee58d9577e25b4fdc03036d75 100644 --- a/PhysicsAnalysis/D3PDMaker/egammaD3PDAnalysis/src/PhotonTruthTool.cxx +++ b/PhysicsAnalysis/D3PDMaker/egammaD3PDAnalysis/src/PhotonTruthTool.cxx @@ -17,10 +17,6 @@ #include <vector> #include <cmath> - -using HepGeom::Point3D; - - namespace D3PD { diff --git a/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/src/EgammaTagTool.cxx b/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/src/EgammaTagTool.cxx index 15dc4f127705854d03512d0f6658d8c8871a46a8..a7a6021694672f01e02894b7c7aeaed6b42d94d1 100755 --- a/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/src/EgammaTagTool.cxx +++ b/PhysicsAnalysis/ElectronPhotonID/ElectronPhotonTagTools/src/EgammaTagTool.cxx @@ -13,6 +13,7 @@ Purpose : create a collection of EgammaTag #include "GaudiKernel/MsgStream.h" #include "GaudiKernel/Property.h" +#include "GaudiKernel/SystemOfUnits.h" #include "ElectronPhotonTagTools/EgammaTagTool.h" #include "TagEvent/EgammaAttributeNames.h" #include "xAODEgamma/EgammaContainer.h" @@ -31,15 +32,15 @@ EgammaTagTool::EgammaTagTool (const std::string& type, const std::string& name, declareProperty("ElectronContainer", m_electronContainer = "ElectronCollection"); declareProperty("PhotonContainer", m_photonContainer = "PhotonCollection"); /** selection cut of Pt */ - declareProperty("ElectronPtCut", m_electronPtCut = 20.0*CLHEP::GeV); - declareProperty("PhotonPtCut", m_photonPtCut = 10.0*CLHEP::GeV); + declareProperty("ElectronPtCut", m_electronPtCut = 20.0*Gaudi::Units::GeV); + declareProperty("PhotonPtCut", m_photonPtCut = 10.0*Gaudi::Units::GeV); /** mass cut for Z */ - declareProperty("MassZLow", m_massZLow = 45.*CLHEP::GeV ); - declareProperty("MassZHigh", m_massZHigh = 180.*CLHEP::GeV); + declareProperty("MassZLow", m_massZLow = 45.*Gaudi::Units::GeV ); + declareProperty("MassZHigh", m_massZHigh = 180.*Gaudi::Units::GeV); /** missing Et cut */ declareProperty("MissingEtObject", m_missingEtObject = "MET_RefFinal"); - declareProperty("MissingEtCut", m_missingEtCut = 25.*CLHEP::GeV ); - declareProperty("WElectronPtCut", m_welectronPtCut = 15.*CLHEP::GeV ); + declareProperty("MissingEtCut", m_missingEtCut = 25.*Gaudi::Units::GeV ); + declareProperty("WElectronPtCut", m_welectronPtCut = 15.*Gaudi::Units::GeV ); declareProperty("MissingEtTerm", m_missingEtTerm = "Final"); declareInterface<EgammaTagTool>( this ); diff --git a/PhysicsAnalysis/JetTagging/JetTagMonitoring/src/JetTagMonitoring.cxx b/PhysicsAnalysis/JetTagging/JetTagMonitoring/src/JetTagMonitoring.cxx index 1003047e27defdd1ad520bfb8bf835a9aa0c797b..fb678a5f084369ebaa925dd566f066ce42e1fb79 100755 --- a/PhysicsAnalysis/JetTagging/JetTagMonitoring/src/JetTagMonitoring.cxx +++ b/PhysicsAnalysis/JetTagging/JetTagMonitoring/src/JetTagMonitoring.cxx @@ -30,6 +30,8 @@ #include "LWHists/TH1F_LW.h" #include "LWHists/TH2F_LW.h" +#include "GaudiKernel/SystemOfUnits.h" + #include "TH1F.h" #include "TH2F.h" #include "TMath.h" @@ -781,13 +783,13 @@ bool JetTagMonitoring::passKinematicCuts(const xAOD::Jet *jet) { //* get jet basic kinematics *// m_jet_eta->Fill(jet->eta()); m_jet_phi->Fill(jet->phi()); - m_jet_et->Fill(jet->pt() / CLHEP::GeV); + m_jet_et->Fill(jet->pt() / Gaudi::Units::GeV); - ATH_MSG_DEBUG("Jet kinematics: eta = " << jet->eta() << ", phi= " << jet->phi() << ", pT= " << jet->pt() / CLHEP::GeV); + ATH_MSG_DEBUG("Jet kinematics: eta = " << jet->eta() << ", phi= " << jet->phi() << ", pT= " << jet->pt() / Gaudi::Units::GeV); // kinematic cuts defined as properties - if ( jet->pt() / CLHEP::GeV < m_jet_pt_cut || fabs(jet->eta()) > m_jet_eta_cut ) + if ( jet->pt() / Gaudi::Units::GeV < m_jet_pt_cut || fabs(jet->eta()) > m_jet_eta_cut ) return false; return true; @@ -905,7 +907,7 @@ bool JetTagMonitoring::isTopEvent() { // added by SARA for 2017 data taking for ( ; electronItr != electronEnd; electronItr++) { //select electrons which passed author and pT cut if (!(*electronItr)->author(xAOD::EgammaParameters::AuthorElectron)) continue; - if ((*electronItr) -> pt() / CLHEP::GeV < m_ElectronPtCut) continue; + if ((*electronItr) -> pt() / Gaudi::Units::GeV < m_ElectronPtCut) continue; bool inAcceptance = (TMath::Abs((*electronItr) -> eta()) > m_ElectronEtaCrackHighCut || TMath::Abs((*electronItr) -> eta()) < m_ElectronEtaCrackLowCut) && TMath::Abs((*electronItr) -> eta()) < m_ElectronEtaCut; if (!inAcceptance) continue; @@ -931,7 +933,7 @@ bool JetTagMonitoring::isTopEvent() { // added by SARA for 2017 data taking int n_isoMuons = 0; for ( ; muonItr != muonEnd; muonItr++) { //select muons which passed pT cut - if ((*muonItr) -> pt() / CLHEP::GeV < m_MuonPtCut) continue; + if ((*muonItr) -> pt() / Gaudi::Units::GeV < m_MuonPtCut) continue; bool inAcceptance = TMath::Abs((*muonItr) -> eta()) < m_MuonEtaCut; if (!inAcceptance) continue; // medium muons @@ -1110,10 +1112,10 @@ void JetTagMonitoring::fillJetHistograms() { if (is_top_event && n_jets_kinematic >= 2) { // added by SARA - I have at least 2 kinematic jets, so want to fill top histograms m_jet_top->Fill(0., 1.); // added by SARA - m_jet_pt_top->Fill((*jetItr)->pt() / CLHEP::GeV, 1.); // added by SARA + m_jet_pt_top->Fill((*jetItr)->pt() / Gaudi::Units::GeV, 1.); // added by SARA if (n_jets_kinematic == 2) { // added by SARA - now I know I have (at least) two kinematic jets, so I want to fill also for 1st kinematic jet m_jet_top->Fill(0., 1.); // added by SARA - m_jet_pt_top->Fill((*firstKinematicjetItr)->pt() / CLHEP::GeV, 1.); // added by SARA + m_jet_pt_top->Fill((*firstKinematicjetItr)->pt() / Gaudi::Units::GeV, 1.); // added by SARA } } @@ -1178,7 +1180,7 @@ void JetTagMonitoring::fillTrackInJetHistograms(const xAOD::Jet *jet) { uint8_t nPixHits = 0; uint8_t nSCTHits = 0; - m_jet_tracks_pt->Fill(trackPart->pt() / CLHEP::GeV); + m_jet_tracks_pt->Fill(trackPart->pt() / Gaudi::Units::GeV); m_jet_tracks_eta->Fill(trackPart->eta()); m_jet_tracks_phi->Fill(trackPart->phi()); m_jet_tracks_d0->Fill(trackPart->d0()); @@ -1214,7 +1216,7 @@ void JetTagMonitoring::fillBtagHistograms(const xAOD::Jet *jet, bool fill_top_hi m_jet_mv_w_top->Fill(mv); // added by SARA if (mv > m_mv_70_weight_cut) { m_jet_top_tagged->Fill(0., 1.); // added by SARA - m_jet_pt_top_tagged->Fill(jet->pt() / CLHEP::GeV, 1.); // added by SARA + m_jet_pt_top_tagged->Fill(jet->pt() / Gaudi::Units::GeV, 1.); // added by SARA } } else { // added by SARA - fill non-top histograms @@ -1400,17 +1402,17 @@ void JetTagMonitoring::fillGoodJetHistos(const xAOD::Jet *jet) { m_tag_mv_w->Fill(mv); m_tag_mv_w_LS->Fill(mv); - if ( jet->pt() / CLHEP::GeV > 200. ) m_tag_mv_w_pT200->Fill(mv); - else if ( jet->pt() / CLHEP::GeV > 100. ) m_tag_mv_w_pT100_200->Fill(mv); - else if ( jet->pt() / CLHEP::GeV > 50. ) m_tag_mv_w_pT50_100->Fill(mv); - else if ( jet->pt() / CLHEP::GeV > 20. ) m_tag_mv_w_pT20_50->Fill(mv); - else if ( jet->pt() / CLHEP::GeV > 10. ) m_tag_mv_w_pT10_20->Fill(mv); + if ( jet->pt() / Gaudi::Units::GeV > 200. ) m_tag_mv_w_pT200->Fill(mv); + else if ( jet->pt() / Gaudi::Units::GeV > 100. ) m_tag_mv_w_pT100_200->Fill(mv); + else if ( jet->pt() / Gaudi::Units::GeV > 50. ) m_tag_mv_w_pT50_100->Fill(mv); + else if ( jet->pt() / Gaudi::Units::GeV > 20. ) m_tag_mv_w_pT20_50->Fill(mv); + else if ( jet->pt() / Gaudi::Units::GeV > 10. ) m_tag_mv_w_pT10_20->Fill(mv); - if ( jet->pt() / CLHEP::GeV > 200. ) m_tag_mv_w_pT200_LS->Fill(mv); - else if ( jet->pt() / CLHEP::GeV > 100. ) m_tag_mv_w_pT100_200_LS->Fill(mv); - else if ( jet->pt() / CLHEP::GeV > 50. ) m_tag_mv_w_pT50_100_LS->Fill(mv); - else if ( jet->pt() / CLHEP::GeV > 20. ) m_tag_mv_w_pT20_50_LS->Fill(mv); - else if ( jet->pt() / CLHEP::GeV > 10. ) m_tag_mv_w_pT10_20_LS->Fill(mv); + if ( jet->pt() / Gaudi::Units::GeV > 200. ) m_tag_mv_w_pT200_LS->Fill(mv); + else if ( jet->pt() / Gaudi::Units::GeV > 100. ) m_tag_mv_w_pT100_200_LS->Fill(mv); + else if ( jet->pt() / Gaudi::Units::GeV > 50. ) m_tag_mv_w_pT50_100_LS->Fill(mv); + else if ( jet->pt() / Gaudi::Units::GeV > 20. ) m_tag_mv_w_pT20_50_LS->Fill(mv); + else if ( jet->pt() / Gaudi::Units::GeV > 10. ) m_tag_mv_w_pT10_20_LS->Fill(mv); if ( fabs(jet->eta()) > 2.0 ) m_tag_mv_w_eta20_25->Fill(mv); @@ -1475,7 +1477,7 @@ bool JetTagMonitoring::passJetQualityCuts(const xAOD::Jet *jet){ if ( !( - (hecf>0.5 && fabs(hecq)>0.5) || (fabs(negE) > 60*CLHEP::GeV) || + (hecf>0.5 && fabs(hecq)>0.5) || (fabs(negE) > 60*Gaudi::Units::GeV) || (emf>0.95 && fabs(jetQuality)>0.8 && fabs(jet->eta()) < 2.8) || //(n90<=5 && hecf>0.8) || (hecf>0.5 && fabs(jetQuality)>0.5) || (emf<0.05) || (fabs(jetTime)>25) || @@ -1508,11 +1510,11 @@ void JetTagMonitoring::fillSuspectJetHistos(const xAOD::Jet *jet) { m_tag_sv1ip3d_w_sj->Fill(sv1ip3d); m_tag_mv_w_sj->Fill(mv); - if ( jet->pt() / CLHEP::GeV > 200. ) m_tag_mv_w_sj_pT200->Fill(mv); - else if ( jet->pt() / CLHEP::GeV > 100. ) m_tag_mv_w_sj_pT100_200->Fill(mv); - else if ( jet->pt() / CLHEP::GeV > 50. ) m_tag_mv_w_sj_pT50_100->Fill(mv); - else if ( jet->pt() / CLHEP::GeV > 20. ) m_tag_mv_w_sj_pT20_50->Fill(mv); - else if ( jet->pt() / CLHEP::GeV > 10. ) m_tag_mv_w_sj_pT10_20->Fill(mv); + if ( jet->pt() / Gaudi::Units::GeV > 200. ) m_tag_mv_w_sj_pT200->Fill(mv); + else if ( jet->pt() / Gaudi::Units::GeV > 100. ) m_tag_mv_w_sj_pT100_200->Fill(mv); + else if ( jet->pt() / Gaudi::Units::GeV > 50. ) m_tag_mv_w_sj_pT50_100->Fill(mv); + else if ( jet->pt() / Gaudi::Units::GeV > 20. ) m_tag_mv_w_sj_pT20_50->Fill(mv); + else if ( jet->pt() / Gaudi::Units::GeV > 10. ) m_tag_mv_w_sj_pT10_20->Fill(mv); if ( fabs(jet->eta()) > 2.0 ) m_tag_mv_w_sj_eta20_25->Fill(mv); else if ( fabs(jet->eta()) > 1.5 ) m_tag_mv_w_sj_eta15_20->Fill(mv); diff --git a/Projects/Athena/build_externals.sh b/Projects/Athena/build_externals.sh index 9683078b6b6d6deafdae6c3a0ac5232daaf91358..efbf77369ceef1e011b52bcb8fe9dd8266cd8c85 100755 --- a/Projects/Athena/build_externals.sh +++ b/Projects/Athena/build_externals.sh @@ -139,9 +139,9 @@ fi AthenaExternalsVersion=$(awk '/^AthenaExternalsVersion/{print $3}' ${thisdir}/externals.txt) # Check out AthenaExternals from the right branch/tag: -${scriptsdir}/checkout_atlasexternals.sh \ - -t ${AthenaExternalsVersion} \ - -s ${BUILDDIR}/src/AthenaExternals 2>&1 | tee ${BUILDDIR}/src/checkout.AthenaExternals.log +#${scriptsdir}/checkout_atlasexternals.sh \ +# -t ${AthenaExternalsVersion} \ +# -s ${BUILDDIR}/src/AthenaExternals 2>&1 | tee ${BUILDDIR}/src/checkout.AthenaExternals.log # log analyzer never affects return status in the parent shell: { @@ -162,7 +162,7 @@ ${scriptsdir}/checkout_atlasexternals.sh \ ## Build AthenaExternals: export NICOS_PROJECT_HOME=$(cd ${BUILDDIR}/install;pwd)/AthenaExternals ${scriptsdir}/build_atlasexternals.sh \ - -s ${BUILDDIR}/src/AthenaExternals \ + -s /build1/tsulaia/athena-devel/atlasexternals/src \ -b ${BUILDDIR}/build/AthenaExternals \ -i ${BUILDDIR}/install/AthenaExternals/${NICOS_PROJECT_VERSION} \ -p AthenaExternals ${RPMOPTIONS} -t ${BUILDTYPE} \ diff --git a/Reconstruction/MuonIdentification/CaloTrkMuIdTools/src/TrackDepositInCaloTool.cxx b/Reconstruction/MuonIdentification/CaloTrkMuIdTools/src/TrackDepositInCaloTool.cxx index 66207b4c8315dd5648e3d20a122b7ea035b4d9d3..94f8f33d00cfb7d6b3615ddcfcc8ac34de0949d9 100755 --- a/Reconstruction/MuonIdentification/CaloTrkMuIdTools/src/TrackDepositInCaloTool.cxx +++ b/Reconstruction/MuonIdentification/CaloTrkMuIdTools/src/TrackDepositInCaloTool.cxx @@ -33,6 +33,8 @@ #include "TH1F.h" #include "TH2F.h" +#include "CLHEP/Units/SystemOfUnits.h" + /////////////////////////////////////////////////////////////////////////////// // Constructor /////////////////////////////////////////////////////////////////////////////// diff --git a/Reconstruction/MuonIdentification/MuidCaloEnergyTools/src/MuidCaloEnergyTool.cxx b/Reconstruction/MuonIdentification/MuidCaloEnergyTools/src/MuidCaloEnergyTool.cxx index cc4cedfd1b8d48d7b47fdf9563fa6eb479a82f0d..69ac978678f8bdfa456df0ecb672928a94de7dbf 100755 --- a/Reconstruction/MuonIdentification/MuidCaloEnergyTools/src/MuidCaloEnergyTool.cxx +++ b/Reconstruction/MuonIdentification/MuidCaloEnergyTools/src/MuidCaloEnergyTool.cxx @@ -525,7 +525,7 @@ MuidCaloEnergyTool::measurement(double trackMomentum, const double EmIso = caloMeas->LArEM_Isolation(); const double Theta = 2.*atan(exp(-eta)); - const double pT = trackMomentum*sin(Theta)*CLHEP::MeV; + const double pT = trackMomentum*sin(Theta)*Units::MeV; const double EmCut = m_emMinEnergy + (3.-2.)/(100.-15.)*(pT/Units::GeV-15.)*Units::GeV; const double HECCut = m_hecMinEnergy; const double pTCut = m_minMuonPt; diff --git a/Reconstruction/MuonIdentification/MuonCombinedEvaluationTools/src/MuonMomentumBalanceSignificanceTool.cxx b/Reconstruction/MuonIdentification/MuonCombinedEvaluationTools/src/MuonMomentumBalanceSignificanceTool.cxx index b26498a2cec3cad68de3ca6e909b7ffa875830e3..a955d201f957e2a9f5cb02f56a3f3a95cda41249 100644 --- a/Reconstruction/MuonIdentification/MuonCombinedEvaluationTools/src/MuonMomentumBalanceSignificanceTool.cxx +++ b/Reconstruction/MuonIdentification/MuonCombinedEvaluationTools/src/MuonMomentumBalanceSignificanceTool.cxx @@ -17,10 +17,11 @@ #include "TrkTrack/Track.h" #include "TrkTrack/TrackStateOnSurface.h" #include "TrkMeasurementBase/MeasurementBase.h" +#include "GaudiKernel/SystemOfUnits.h" //#include "TrkGeometry/TrackingVolume.h" //#include "TrkDetDescrInterfaces/ITrackingVolumesSvc.h" -using CLHEP::GeV; +using Gaudi::Units::GeV; namespace Rec { diff --git a/Reconstruction/RecoTools/TrackToCalo/src/MuonCaloEnergyTool.cxx b/Reconstruction/RecoTools/TrackToCalo/src/MuonCaloEnergyTool.cxx index ad930bb86b9e8a1dbe8db020d7ee6297aea2819c..493367ce8c3575b22c1f12e432145c210c63dcaf 100644 --- a/Reconstruction/RecoTools/TrackToCalo/src/MuonCaloEnergyTool.cxx +++ b/Reconstruction/RecoTools/TrackToCalo/src/MuonCaloEnergyTool.cxx @@ -17,6 +17,8 @@ #include "xAODTracking/TrackParticle.h" #include "xAODTracking/TrackingPrimitives.h" +#include "GaudiKernel/SystemOfUnits.h" + #include <math.h> namespace Rec { @@ -28,7 +30,7 @@ namespace Rec { m_particleCreator("Trk::TrackParticleCreatorTool/MuonCaloParticleCreator"), m_caloNoiseTool("CaloNoiseToolDefault"), m_sigmasAboveNoise(4.), - m_emEtCut(2.5*CLHEP::GeV), + m_emEtCut(2.5*Gaudi::Units::GeV), m_emF1Cut(0.15), m_emipEM(0.42), // 0.42 m_emipTile(0.86), // 0.86 diff --git a/Reconstruction/TrackCaloClusterRec/TrackCaloClusterRecValidation/src/CalibrationNtupleMakerTool.cxx b/Reconstruction/TrackCaloClusterRec/TrackCaloClusterRecValidation/src/CalibrationNtupleMakerTool.cxx index 90fa7d47e6fe768f8b9d8983bc18e50aac89ee50..b432633df7da185e711c27d4165f8b91084b1107 100644 --- a/Reconstruction/TrackCaloClusterRec/TrackCaloClusterRecValidation/src/CalibrationNtupleMakerTool.cxx +++ b/Reconstruction/TrackCaloClusterRec/TrackCaloClusterRecValidation/src/CalibrationNtupleMakerTool.cxx @@ -23,6 +23,7 @@ // Gaudi #include "GaudiKernel/ITHistSvc.h" +#include "GaudiKernel/SystemOfUnits.h" // Root #include "TTree.h" @@ -31,7 +32,7 @@ #include <vector> -using CLHEP::GeV; +using Gaudi::Units::GeV; CalibrationNtupleMakerTool::CalibrationNtupleMakerTool(const std::string& name, ISvcLocator* pSvcLocator) : AthAlgorithm(name, pSvcLocator), diff --git a/Reconstruction/egamma/egammaAlgs/src/egammaBuilder.h b/Reconstruction/egamma/egammaAlgs/src/egammaBuilder.h index f9611b9a039b92e8c465eaa32cd94b5cd375048a..9afb5d5a9217802dae50d9cd47b349cb0624a306 100644 --- a/Reconstruction/egamma/egammaAlgs/src/egammaBuilder.h +++ b/Reconstruction/egamma/egammaAlgs/src/egammaBuilder.h @@ -48,6 +48,8 @@ #include "egammaInterfaces/IEMTrackMatchBuilder.h" #include "egammaInterfaces/IEMConversionBuilder.h" +#include "GaudiKernel/SystemOfUnits.h" + class egammaRec; class egammaBuilder : public AthAlgorithm @@ -179,7 +181,7 @@ class egammaBuilder : public AthAlgorithm // /** @brief Discard clusters with energy less than this after corrections. */ Gaudi::Property<float> m_clusterEnergyCut {this, - "clusterEnergyCut", 10 * CLHEP::MeV, + "clusterEnergyCut", 10 * Gaudi::Units::MeV, "Discard clusters with energies below this after corrections"}; // @brief Minimum deltaEta to check if clusters overlap @@ -191,11 +193,11 @@ class egammaBuilder : public AthAlgorithm "Minimum deltaPhi to check if clusters overlap"}; // @brief Minimum transverse energy to accept topo-seeded clusters - Gaudi::Property<float> m_minEtTopo {this, "minEtTopo", 1.5 * CLHEP::GeV, + Gaudi::Property<float> m_minEtTopo {this, "minEtTopo", 1.5 * Gaudi::Units::GeV, "Minimum transverse energy to accept topo-seeded clusters"}; // @brief Maximum transverse energy to accept topo-seeded clusters - Gaudi::Property<float> m_maxEtTopo {this, "maxEtTopo", 8 * CLHEP::GeV, + Gaudi::Property<float> m_maxEtTopo {this, "maxEtTopo", 8 * Gaudi::Units::GeV, "Maximum transverse energy to accept topo-seeded clusters"}; // others: diff --git a/Reconstruction/egamma/egammaAlgs/src/egammaForwardBuilder.h b/Reconstruction/egamma/egammaAlgs/src/egammaForwardBuilder.h index 9af4efff34b8ecca4fca849e374789b11d099dae..80bbccbaf1c5373db9b83c337d61bc8e5186a417 100644 --- a/Reconstruction/egamma/egammaAlgs/src/egammaForwardBuilder.h +++ b/Reconstruction/egamma/egammaAlgs/src/egammaForwardBuilder.h @@ -43,6 +43,8 @@ #include "egammaInterfaces/IEMFourMomBuilder.h" #include "EgammaAnalysisInterfaces/IAsgForwardElectronIsEMSelector.h" +#include "GaudiKernel/SystemOfUnits.h" + #include <string> class egammaForwardBuilder : public AthReentrantAlgorithm @@ -95,7 +97,7 @@ class egammaForwardBuilder : public AthReentrantAlgorithm SG::WriteHandleKey<CaloClusterCellLinkContainer> m_outClusterContainerCellLinkKey; /** @brief ET cut */ - Gaudi::Property<double> m_ETcut {this, "EtCut", 5.*CLHEP::GeV, "ET cut"}; + Gaudi::Property<double> m_ETcut {this, "EtCut", 5.*Gaudi::Units::GeV, "ET cut"}; /** @brief eta cut */ Gaudi::Property<double> m_etacut {this, "EtaCut", 2.5, "eta cut"}; diff --git a/Reconstruction/egamma/egammaAlgs/src/egammaRecBuilder.cxx b/Reconstruction/egamma/egammaAlgs/src/egammaRecBuilder.cxx index 0b86124a21d772c9ba36cc1326a15577b43906a0..fbb5cd22ee606d6e140980d1d17295991823a8b6 100644 --- a/Reconstruction/egamma/egammaAlgs/src/egammaRecBuilder.cxx +++ b/Reconstruction/egamma/egammaAlgs/src/egammaRecBuilder.cxx @@ -25,9 +25,6 @@ #include <algorithm> #include <cmath> -using CLHEP::MeV; -using CLHEP::GeV; - egammaRecBuilder::egammaRecBuilder(const std::string& name, ISvcLocator* pSvcLocator): AthAlgorithm(name, pSvcLocator), diff --git a/Reconstruction/egamma/egammaAlgs/src/egammaSuperClusterBuilder.cxx b/Reconstruction/egamma/egammaAlgs/src/egammaSuperClusterBuilder.cxx index 27583796e4c0a42524097d89adea4fc8e326d6dd..4de501fad70c8458a080c4c4058503aa648acdef 100644 --- a/Reconstruction/egamma/egammaAlgs/src/egammaSuperClusterBuilder.cxx +++ b/Reconstruction/egamma/egammaAlgs/src/egammaSuperClusterBuilder.cxx @@ -23,8 +23,6 @@ #include <vector> -using CLHEP::GeV; - namespace { /** * Duplicate code diff --git a/Reconstruction/egamma/egammaAlgs/src/egammaSuperClusterBuilder.h b/Reconstruction/egamma/egammaAlgs/src/egammaSuperClusterBuilder.h index 4261b3ae00f8578dbe99b36c21d11758182e42d3..2fc404678df32df87fdc6383c55ddc6626960072 100644 --- a/Reconstruction/egamma/egammaAlgs/src/egammaSuperClusterBuilder.h +++ b/Reconstruction/egamma/egammaAlgs/src/egammaSuperClusterBuilder.h @@ -8,6 +8,7 @@ // INCLUDE HEADER FILES: #include "GaudiKernel/ToolHandle.h" +#include "GaudiKernel/SystemOfUnits.h" #include "AthenaBaseComps/AthAlgorithm.h" //Fwd declarations @@ -47,7 +48,7 @@ protected: /** @brief Seed selection requirements */ Gaudi::Property<float> m_EtThresholdCut {this, - "EtThresholdCut", 1.5*CLHEP::GeV, + "EtThresholdCut", 1.5*Gaudi::Units::GeV, "The minimum EM Et required of SEED clusters (not applied to secondaries)"}; // these are calculated search window values diff --git a/Reconstruction/egamma/egammaAlgs/src/electronSuperClusterBuilder.cxx b/Reconstruction/egamma/egammaAlgs/src/electronSuperClusterBuilder.cxx index 390aa1e4f487d4ba86abe303d93d0ab2c878dbc9..0085e48572bc1ac85fb22634a647bc27e43cac43 100644 --- a/Reconstruction/egamma/egammaAlgs/src/electronSuperClusterBuilder.cxx +++ b/Reconstruction/egamma/egammaAlgs/src/electronSuperClusterBuilder.cxx @@ -22,8 +22,6 @@ #include <memory> -using CLHEP::GeV; - ////////////////////////////////////////////////////////////////////////////// //Athena interfaces. ////////////////////////////////////////////////////////////////////////////// diff --git a/Reconstruction/egamma/egammaAlgs/src/photonSuperClusterBuilder.cxx b/Reconstruction/egamma/egammaAlgs/src/photonSuperClusterBuilder.cxx index e2479e8785c1d654843a1926e3fb9f2f93ad0f91..419a6fda55dbb4fd931a457958888e66bed8459f 100644 --- a/Reconstruction/egamma/egammaAlgs/src/photonSuperClusterBuilder.cxx +++ b/Reconstruction/egamma/egammaAlgs/src/photonSuperClusterBuilder.cxx @@ -22,8 +22,6 @@ // #include <vector> -using CLHEP::GeV; - ////////////////////////////////////////////////////////////////////////////// //Athena interfaces. ////////////////////////////////////////////////////////////////////////////// diff --git a/Reconstruction/egamma/egammaEvent/src/EMConvert.cxx b/Reconstruction/egamma/egammaEvent/src/EMConvert.cxx index ca6ecece0b147c28b771aacafe1a8999729ab826..cd282cb1bc9dda6983c10e135f47e59ca6bf5dcd 100755 --- a/Reconstruction/egamma/egammaEvent/src/EMConvert.cxx +++ b/Reconstruction/egamma/egammaEvent/src/EMConvert.cxx @@ -33,7 +33,7 @@ UPDATED: Jul 30, 2010 (JM) Add ambiguity result #include "AthenaKernel/BaseInfo.h" -using CLHEP::Hep3Vector; +//using CLHEP::Hep3Vector; // END OF HEADER FILES INCLUDE diff --git a/Reconstruction/egamma/egammaMVACalib/Root/egammaMVAFunctions.cxx b/Reconstruction/egamma/egammaMVACalib/Root/egammaMVAFunctions.cxx index 238957c92769ac77641f1dd9a7881e86ecca1d48..e0dc5ba248a85cd65985005f03a0b4715f8a7bfe 100644 --- a/Reconstruction/egamma/egammaMVACalib/Root/egammaMVAFunctions.cxx +++ b/Reconstruction/egamma/egammaMVACalib/Root/egammaMVAFunctions.cxx @@ -5,6 +5,13 @@ #include "egammaMVACalib/egammaMVAFunctions.h" +#ifndef XAOD_ANALYSIS +#include "GaudiKernel/SystemOfUnits.h" +using Gaudi::Units::GeV; +#else +#define GeV 1000 +#endif + /** * These functions are for building the maps of functions **/ @@ -73,7 +80,7 @@ namespace egammaMVAFunctions funcLibrary["convR"] = [](const xAOD::Egamma* eg, const xAOD::CaloCluster*)->float { auto ph = static_cast<const xAOD::Photon*>(eg); - if (compute_ptconv(ph) > 3*CLHEP::GeV) { + if (compute_ptconv(ph) > 3*GeV) { return xAOD::EgammaHelpers::conversionRadius(ph); } else { return 799.0; diff --git a/Reconstruction/egamma/egammaMVACalib/src/egammaMVACalibTool.cxx b/Reconstruction/egamma/egammaMVACalib/src/egammaMVACalibTool.cxx index 913e682b639ff5c4f9ba1a0ac02ee5be24c3427d..956ec9ac3adc90bc7e6849712bec56fc7f06aaee 100644 --- a/Reconstruction/egamma/egammaMVACalib/src/egammaMVACalibTool.cxx +++ b/Reconstruction/egamma/egammaMVACalib/src/egammaMVACalibTool.cxx @@ -11,6 +11,12 @@ #include <cmath> +#ifndef XAOD_ANALYSIS +#include "GaudiKernel/SystemOfUnits.h" +using Gaudi::Units::GeV; +#else +#define GeV 1000 +#endif egammaMVACalibTool::egammaMVACalibTool(const std::string& type, const std::string& name, const IInterface* parent) : base_class(type, name, parent) @@ -209,7 +215,7 @@ float egammaMVACalibTool::getEnergy(const xAOD::CaloCluster& clus, egammaMVAFunctions::compute_correctedcl_Eacc(clus) : egammaMVAFunctions::compute_rawcl_Eacc(clus)); - const auto energyVarGeV = (initEnergy / std::cosh(clus.eta())) / CLHEP::GeV; + const auto energyVarGeV = (initEnergy / std::cosh(clus.eta())) / GeV; const auto etaVar = std::abs(clus.eta()); ATH_MSG_DEBUG("Looking at object with initEnergy = " << initEnergy @@ -268,7 +274,7 @@ float egammaMVACalibTool::getEnergy(const xAOD::CaloCluster& clus, } // have to do a shift if here. It's based on the corrected Et in GeV - const auto etGeV = (energy / std::cosh(clus.eta())) / CLHEP::GeV; + const auto etGeV = (energy / std::cosh(clus.eta())) / GeV; // evaluate the TFormula associated with the bin const auto shift = m_shifts[bin].Eval(etGeV); diff --git a/Reconstruction/egamma/egammaPerformance/src/ZeeTaPMonTool.cxx b/Reconstruction/egamma/egammaPerformance/src/ZeeTaPMonTool.cxx index 10f4a5281afa1c1aa50ae14cc8bf4ed2c78be2ff..8f025246dfa321fd879bc29a44730fc6ad8dfdc7 100755 --- a/Reconstruction/egamma/egammaPerformance/src/ZeeTaPMonTool.cxx +++ b/Reconstruction/egamma/egammaPerformance/src/ZeeTaPMonTool.cxx @@ -25,7 +25,8 @@ #include "xAODEgamma/ElectronContainer.h" #include "TH1F.h" -using CLHEP::GeV; +#include "GaudiKernel/SystemOfUnits.h" +using Gaudi::Units::GeV; ZeeTaPMonTool::ZeeTaPMonTool(const std::string & type, const std::string & name, const IInterface* parent) : egammaMonToolBase(type,name,parent), diff --git a/Reconstruction/egamma/egammaTools/src/EMConversionBuilder.h b/Reconstruction/egamma/egammaTools/src/EMConversionBuilder.h index cb93ecac7624eb309fe384c50b41dbf4d3e71893..3f6a5cc5ba454e2f83086bbb97771f75cd0edbae 100644 --- a/Reconstruction/egamma/egammaTools/src/EMConversionBuilder.h +++ b/Reconstruction/egamma/egammaTools/src/EMConversionBuilder.h @@ -28,6 +28,7 @@ // INCLUDE HEADER FILES: #include "GaudiKernel/ToolHandle.h" #include "GaudiKernel/EventContext.h" +#include "GaudiKernel/SystemOfUnits.h" #include "AthenaBaseComps/AthAlgTool.h" #include "egammaInterfaces/IEMConversionBuilder.h" #include "egammaInterfaces/IEMExtrapolationTools.h" @@ -88,27 +89,27 @@ private: /** @brief minimum pT for single-track conversion vertices */ Gaudi::Property<float> m_minPt_singleTrack {this, - "minPt_singleTrack", 0*CLHEP::GeV, + "minPt_singleTrack", 0*Gaudi::Units::GeV, "minimum pT for single-track conversion vertices"}; /** @brief minimum pT for TRT-only single-track conversion vertices */ Gaudi::Property<float> m_minPt_singleTRT {this, - "minPt_singleTRT", 2*CLHEP::GeV, + "minPt_singleTRT", 2*Gaudi::Units::GeV, "minimum pT for TRT-only single-track conversion vertices"}; /** @brief minimum pT for each track in TRT-only double-track conversion vertices */ Gaudi::Property<float> m_minTRTonlyTrackPt {this, - "minTRTonlyTrackPt", 0*CLHEP::GeV, + "minTRTonlyTrackPt", 0*Gaudi::Units::GeV, "minimum pT for each track in TRT-only double-track conversion vertices"}; /** @brief minimum sum pT for double track conversion vertices */ Gaudi::Property<float> m_minSumPt_double {this, - "minSumPt_double", 0*CLHEP::GeV, + "minSumPt_double", 0*Gaudi::Units::GeV, "minimum sum pT for double track conversion vertices"}; /** @brief minimum sum pT for double TRT track conversion vertices */ Gaudi::Property<float> m_minSumPt_doubleTRT {this, - "minSumPt_doubleTRT", 2*CLHEP::GeV, + "minSumPt_doubleTRT", 2*Gaudi::Units::GeV, "minimum sum pT for double TRT track conversion vertices"}; /** @brief maximum E/p for single track conversion vertices (E is not calibrated) */ diff --git a/Reconstruction/iPat/iPatGeometryTools/src/LayerNumberAllocator.cxx b/Reconstruction/iPat/iPatGeometryTools/src/LayerNumberAllocator.cxx index 0d0c880464badec8fac3cd94103449845938a33e..590d8e4cdb56376d10003de0005e5807b3baa21c 100755 --- a/Reconstruction/iPat/iPatGeometryTools/src/LayerNumberAllocator.cxx +++ b/Reconstruction/iPat/iPatGeometryTools/src/LayerNumberAllocator.cxx @@ -29,7 +29,7 @@ LayerNumberAllocator::LayerNumberAllocator (const std::string& type, // pixel layout independent - always start SCT as if 3 preceding layers ! m_pixel_layers (3), m_pixel_sct_boundary (0.), - m_vertex_spread (112.0*CLHEP::mm) // TODO: make configurable + m_vertex_spread (112.0*Gaudi::Units::mm) // TODO: make configurable { declareInterface<ILayerNumberAllocator>(this); declareProperty("LayerAllocator", m_layerAllocator); diff --git a/Reconstruction/tauMonitoring/src/tauMonTool.cxx b/Reconstruction/tauMonitoring/src/tauMonTool.cxx index 89f3eb686ee6a810e1094429034ec5ad499be656..fa1431585dd22a011c1c21a5f740491eb4faa128 100644 --- a/Reconstruction/tauMonitoring/src/tauMonTool.cxx +++ b/Reconstruction/tauMonitoring/src/tauMonTool.cxx @@ -15,9 +15,10 @@ #include "xAODEventInfo/EventInfo.h" #include "xAODTracking/TrackParticle.h" #include "TrigDecisionTool/TrigDecisionTool.h" +#include "GaudiKernel/SystemOfUnits.h" using xAOD::EventInfo; -using CLHEP::GeV; +using Gaudi::Units::GeV; #define CRACK_MIN 1.3 #define CRACK_MAX 1.7 diff --git a/Reconstruction/tauRecTools/Root/TauSubstructureVariables.cxx b/Reconstruction/tauRecTools/Root/TauSubstructureVariables.cxx index cbfce175b1b54578ef9bf537b9b66b3a1af50aae..0d620f4b9433be815b4951edd8e1ae7791fac932 100644 --- a/Reconstruction/tauRecTools/Root/TauSubstructureVariables.cxx +++ b/Reconstruction/tauRecTools/Root/TauSubstructureVariables.cxx @@ -29,7 +29,8 @@ //#include "CaloEvent/CaloVertexedCluster.h" #ifndef XAOD_ANALYSIS -using CLHEP::GeV; +#include "GaudiKernel/SystemOfUnits.h" +using Gaudi::Units::GeV; #else #define GeV 1000 #endif diff --git a/Reconstruction/tauRecTools/src/TauCalibrateEM.cxx b/Reconstruction/tauRecTools/src/TauCalibrateEM.cxx index 34b305bb2373886bfba499d86e7a94c46a63de71..544e438572a2bb3736ff0dd46eb54bff912e7f39 100644 --- a/Reconstruction/tauRecTools/src/TauCalibrateEM.cxx +++ b/Reconstruction/tauRecTools/src/TauCalibrateEM.cxx @@ -15,7 +15,8 @@ #include "tauRecTools/ITauToolBase.h" #include "TauCalibrateEM.h" -using CLHEP::GeV; +#include "GaudiKernel/SystemOfUnits.h" +using Gaudi::Units::GeV; //------------------------------------------------------------------------- // Constructor diff --git a/Reconstruction/tauRecTools/src/TauCellVariables.cxx b/Reconstruction/tauRecTools/src/TauCellVariables.cxx index f6cf367dd5e71f1a0fa5b242d323ad5d24923c1c..7ecf764c2a3143d563b70c95f4adfa40ae6013bb 100644 --- a/Reconstruction/tauRecTools/src/TauCellVariables.cxx +++ b/Reconstruction/tauRecTools/src/TauCellVariables.cxx @@ -62,7 +62,7 @@ Jan 2012 - (FF) add cellEnergyRing variables #include "tauRecTools/KineUtils.h" #include "TauCellVariables.h" -using CLHEP::GeV; +using Gaudi::Units::GeV; TauCellVariables::TauCellVariables(const std::string& name) : TauRecToolBase(name), diff --git a/Reconstruction/tauRecTools/src/TauElectronVetoVariables.cxx b/Reconstruction/tauRecTools/src/TauElectronVetoVariables.cxx index e048895da970276e9136d45ba89205a84b85266c..e51669343a3104a5b1b793c1060b0cf0d783840a 100644 --- a/Reconstruction/tauRecTools/src/TauElectronVetoVariables.cxx +++ b/Reconstruction/tauRecTools/src/TauElectronVetoVariables.cxx @@ -33,7 +33,7 @@ //#include "GaudiKernel/ListItem.h" //#include "GaudiKernel/IToolSvc.h" -//#include "GaudiKernel/Property.h" +#include "GaudiKernel/SystemOfUnits.h" //#include "CaloUtils/CaloCellList.h" //#include "CaloEvent/CaloCluster.h" @@ -52,7 +52,7 @@ #include "RecoToolInterfaces/IParticleCaloExtensionTool.h" #include "TauElectronVetoVariables.h" -using CLHEP::GeV; +using Gaudi::Units::GeV; //------------------------------------------------------------------------- // Constructor diff --git a/Simulation/G4Atlas/G4AtlasTests/src/MDTHitsTestTool.cxx b/Simulation/G4Atlas/G4AtlasTests/src/MDTHitsTestTool.cxx index eadb8758b7247769a1c9ba36476bfe974a446dd3..86f4359a4e084002e696617986f3b71d23defa71 100644 --- a/Simulation/G4Atlas/G4AtlasTests/src/MDTHitsTestTool.cxx +++ b/Simulation/G4Atlas/G4AtlasTests/src/MDTHitsTestTool.cxx @@ -75,7 +75,7 @@ StatusCode MDTHitsTestTool::checkIdentifier(Identifier offid) { // double mdt_tube_perp = mdt_gPos.perp(); // double mdt_tube_z = mdt_gPos.z(); // double mdt_tube_cot = 1./tan(mdt_gPos.theta()); - HepGeom::Transform3D xf = descriptor->getMaterialGeom()->getAbsoluteTransform(); //FIXME in the future?? + //Amg::Transform3D xf = descriptor->getMaterialGeom()->getAbsoluteTransform(); //FIXME in the future?? //*AS* Amg::Vector3D xU = xf*Amg::Vector3D((*i_hit).localPosition().x(),-(*i_hit).localPosition().z(), (*i_hit).localPosition().y()); //*AS*Amg::Vector3D gx = mdt_gPos + xU; diff --git a/Simulation/G4Utilities/Geo2G4/CMakeLists.txt b/Simulation/G4Utilities/Geo2G4/CMakeLists.txt index 111033d9286a6bd3ddfa038979c95ac8589512b4..8d114f69a1565a9bb7b09ea2ee9f7e00ef005595 100644 --- a/Simulation/G4Utilities/Geo2G4/CMakeLists.txt +++ b/Simulation/G4Utilities/Geo2G4/CMakeLists.txt @@ -14,9 +14,9 @@ atlas_depends_on_subdirs( PUBLIC Control/SGTools Control/StoreGate DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoSpecialShapes DetectorDescription/GeoModel/GeoModelUtilities + DetectorDescription/GeoPrimitives Simulation/G4Atlas/G4AtlasInterfaces Simulation/G4Atlas/G4AtlasTools Simulation/G4Sim/SimHelpers @@ -28,25 +28,26 @@ find_package( CLHEP ) find_package( Geant4 ) find_package( ROOT COMPONENTS MathCore RIO Core Tree Hist pthread ) find_package( XercesC ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( Geo2G4Lib src/*.cxx PUBLIC_HEADERS Geo2G4 INCLUDE_DIRS ${XERCESC_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} - PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} + PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} LINK_LIBRARIES ${XERCESC_LIBRARIES} ${GEANT4_LIBRARIES} ${ROOT_LIBRARIES} GaudiKernel - PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CLHEP_LIBRARIES} AthenaBaseComps SGTools GeoSpecialShapes G4AtlasToolsLib SimHelpers GeoMaterial2G4 AthenaKernel GeoModelKernel GeoModelUtilities StoreGateLib SGtests ) + PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaBaseComps SGTools GeoSpecialShapes G4AtlasToolsLib SimHelpers GeoMaterial2G4 AthenaKernel GeoModelUtilities StoreGateLib SGtests ) atlas_add_component( Geo2G4 src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${XERCESC_LIBRARIES} ${GEANT4_LIBRARIES} ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthenaKernel GeoModelKernel GeoModelUtilities GaudiKernel AthenaBaseComps SGTools StoreGateLib SGtests GeoSpecialShapes G4AtlasToolsLib SimHelpers GeoMaterial2G4 Geo2G4Lib ) + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${XERCESC_LIBRARIES} ${GEANT4_LIBRARIES} ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaKernel GeoModelUtilities GaudiKernel AthenaBaseComps SGTools StoreGateLib SGtests GeoSpecialShapes G4AtlasToolsLib SimHelpers GeoMaterial2G4 Geo2G4Lib ) atlas_add_dictionary( LArWheelSolidCheckerDict src/LArWheelSolidDDProxy.h src/lcg_dict/selection.xml - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${XERCESC_LIBRARIES} ${GEANT4_LIBRARIES} ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} AthenaKernel GeoModelKernel GeoModelUtilities GaudiKernel AthenaBaseComps SGTools StoreGateLib SGtests GeoSpecialShapes SimHelpers GeoMaterial2G4 Geo2G4Lib ) + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${GEANT4_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${XERCESC_LIBRARIES} ${GEANT4_LIBRARIES} ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaKernel GeoModelUtilities GaudiKernel AthenaBaseComps SGTools StoreGateLib SGtests GeoSpecialShapes SimHelpers GeoMaterial2G4 Geo2G4Lib ) diff --git a/Simulation/G4Utilities/Geo2G4/src/ExtParameterisedVolumeBuilder.cxx b/Simulation/G4Utilities/Geo2G4/src/ExtParameterisedVolumeBuilder.cxx index a7b781076cd6c90ff10fce65b3301c12d0ae82b8..68be419d764ef4955406d146a8cbf6db7bdf976b 100644 --- a/Simulation/G4Utilities/Geo2G4/src/ExtParameterisedVolumeBuilder.cxx +++ b/Simulation/G4Utilities/Geo2G4/src/ExtParameterisedVolumeBuilder.cxx @@ -28,6 +28,8 @@ #include "StoreGate/StoreGateSvc.h" #include <iostream> +#include "GeoPrimitives/CLHEPtoEigenConverter.h" + ExtParameterisedVolumeBuilder::ExtParameterisedVolumeBuilder(std::string n): VolumeBuilder(n), m_getMatEther(true), @@ -123,7 +125,7 @@ G4LogicalVolume* ExtParameterisedVolumeBuilder::Build(const PVConstLink theGeoPh // Get child phys volume theGeoPhysChild = av.getVolume(); // Get its transform - G4Transform3D theG4Position(av.getTransform()); + G4Transform3D theG4Position(Amg::EigenTransformToCLHEP(av.getTransform())); Query<int> Qint = av.getId(); if(Qint.isValid()) id = Qint; @@ -212,7 +214,7 @@ Geo2G4AssemblyVolume* ExtParameterisedVolumeBuilder::BuildAssembly(PVConstLink p if(!(theG4AssemblyChild = BuildAssembly(theGeoPhysChild))) return 0; // Get its transform - G4Transform3D theG4Position(av.getTransform()); + G4Transform3D theG4Position(Amg::EigenTransformToCLHEP(av.getTransform())); assemblyVolume->AddPlacedAssembly(theG4AssemblyChild,theG4Position); } @@ -224,7 +226,7 @@ Geo2G4AssemblyVolume* ExtParameterisedVolumeBuilder::BuildAssembly(PVConstLink p if(!(theG4LogChild = Build(theGeoPhysChild))) return 0; // Get its transform - G4Transform3D theG4Position(av.getTransform()); + G4Transform3D theG4Position(Amg::EigenTransformToCLHEP(av.getTransform())); int placedID = 0; if(Qint.isValid()) placedID = Qint; diff --git a/Simulation/G4Utilities/Geo2G4/src/Geo2G4Builder.cxx b/Simulation/G4Utilities/Geo2G4/src/Geo2G4Builder.cxx index efac761918d9516073b3ce39e9e5b576dc66e0e4..2dccb755aeb72147058ff6ff49bbbb3a67ab6c61 100644 --- a/Simulation/G4Utilities/Geo2G4/src/Geo2G4Builder.cxx +++ b/Simulation/G4Utilities/Geo2G4/src/Geo2G4Builder.cxx @@ -32,11 +32,12 @@ #include <map> #include <iostream> -Geo2G4Builder::Geo2G4Builder(std::string detectorName): - m_detectorName(detectorName), - m_matAir(0), - m_pDetStore(0), - m_msg("Geo2G4Builder") +Geo2G4Builder::Geo2G4Builder(std::string detectorName) + : m_detectorName(detectorName) + , m_motherTransform(GeoTrf::Transform3D::Identity()) + , m_matAir(nullptr) + , m_pDetStore(nullptr) + , m_msg("Geo2G4Builder") { ISvcLocator* svcLocator = Gaudi::svcLocator(); // from Bootstrap StatusCode sc=svcLocator->service("DetectorStore",m_pDetStore); @@ -126,7 +127,7 @@ G4LogicalVolume* Geo2G4Builder::BuildTree() Query<unsigned int> childIndx = world->indexOf(pv); // Tree Top transformation - G4Transform3D theG4Position(world->getXToChildVol(childIndx)); + G4Transform3D theG4Position(Amg::EigenTransformToCLHEP(world->getXToChildVol(childIndx))); // Copy number int id = 16969; diff --git a/Simulation/G4Utilities/Geo2G4/src/Geo2G4Builder.h b/Simulation/G4Utilities/Geo2G4/src/Geo2G4Builder.h index f1ad88526e19000d2af3ef8d958bb3500b6000e2..3aa785ebb5e17f74879500e08785150f2dc53749 100644 --- a/Simulation/G4Utilities/Geo2G4/src/Geo2G4Builder.h +++ b/Simulation/G4Utilities/Geo2G4/src/Geo2G4Builder.h @@ -10,6 +10,7 @@ // GeoVPhysVol #include "VolumeBuilder.h" #include "GeoModelKernel/GeoVPhysVol.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "G4LogicalVolume.hh" //#include "Geo2G4/GenericVolumeBuilder.h" @@ -18,6 +19,8 @@ #include "AthenaKernel/MsgStreamMember.h" +#include "GeoPrimitives/CLHEPtoEigenConverter.h" + // STL includes #include <string> #include <vector> @@ -43,7 +46,7 @@ public: // Access volume builder: VolumeBuilder* GetVolumeBuilder(std::string); - HepGeom::Transform3D& GetDetectorTransform() {return m_motherTransform;} + HepGeom::Transform3D GetDetectorTransform() {return Amg::EigenTransformToCLHEP(m_motherTransform);} /// Log a message using the Athena controlled logging system MsgStream& msg( MSG::Level lvl ) const { return m_msg << lvl; } /// Check whether the logging system is active at the provided verbosity level @@ -53,7 +56,7 @@ private: // GeoVDetectorManager* theDetectorElement; std::string m_detectorName; - HepGeom::Transform3D m_motherTransform; + GeoTrf::Transform3D m_motherTransform; std::vector<PVConstLink> m_treeTops; VolumeBuilder *m_theBuilder; diff --git a/Simulation/G4Utilities/Geo2G4/src/Geo2G4STParameterisation.cxx b/Simulation/G4Utilities/Geo2G4/src/Geo2G4STParameterisation.cxx index 79cc9fd5310b592c5f5bfafa743bd502cd36d2b1..65ab76da77c6393a73a59ea5d73c121590badd3e 100644 --- a/Simulation/G4Utilities/Geo2G4/src/Geo2G4STParameterisation.cxx +++ b/Simulation/G4Utilities/Geo2G4/src/Geo2G4STParameterisation.cxx @@ -4,7 +4,7 @@ #include "Geo2G4STParameterisation.h" #include "G4VPhysicalVolume.hh" - +#include "GeoPrimitives/CLHEPtoEigenConverter.h" #include "CLHEP/Geometry/Transform3D.h" Geo2G4STParameterisation::Geo2G4STParameterisation(const GeoXF::Function* func, @@ -23,7 +23,7 @@ Geo2G4STParameterisation::~Geo2G4STParameterisation() void Geo2G4STParameterisation::ComputeTransformation(const G4int copyNo, G4VPhysicalVolume* physVol) const { - HepGeom::Transform3D transform = (*m_function)(copyNo); + HepGeom::Transform3D transform = Amg::EigenTransformToCLHEP((*m_function)(copyNo)); G4ThreeVector translation = transform.getTranslation(); *m_rotation = transform.getRotation().inverse(); diff --git a/Simulation/G4Utilities/Geo2G4/src/Geo2G4SolidFactory.cxx b/Simulation/G4Utilities/Geo2G4/src/Geo2G4SolidFactory.cxx index 366f243519398b51a4ffcfffd3de71bdb8e90da1..3e52caad89e3d9710c9c9b9098292b835ec7fd29 100644 --- a/Simulation/G4Utilities/Geo2G4/src/Geo2G4SolidFactory.cxx +++ b/Simulation/G4Utilities/Geo2G4/src/Geo2G4SolidFactory.cxx @@ -54,6 +54,8 @@ #include <map> #include <cmath> +#include "GeoPrimitives/CLHEPtoEigenConverter.h" + typedef std::map<const GeoShape*, G4VSolid*, std::less<const GeoShape*> > shapesMap; typedef std::map<std::string, G4VSolid*,std::less<std::string> > customSolidMap; @@ -375,15 +377,15 @@ G4VSolid *Geo2G4SolidFactory::Build(const GeoShape* geoShape, std::string name) G4FacetVertexType vertexType = (geoFacet->getVertexType()==GeoFacet::ABSOLUTE? ABSOLUTE : RELATIVE); G4VFacet* g4Facet(nullptr); if(geoFacet->getNumberOfVertices()==3) - g4Facet = new G4TriangularFacet(geoFacet->getVertex(0), - geoFacet->getVertex(1), - geoFacet->getVertex(2), + g4Facet = new G4TriangularFacet(Amg::EigenToHep3Vector(geoFacet->getVertex(0)), + Amg::EigenToHep3Vector(geoFacet->getVertex(1)), + Amg::EigenToHep3Vector(geoFacet->getVertex(2)), vertexType); else - g4Facet = new G4QuadrangularFacet(geoFacet->getVertex(0), - geoFacet->getVertex(1), - geoFacet->getVertex(2), - geoFacet->getVertex(3), + g4Facet = new G4QuadrangularFacet(Amg::EigenToHep3Vector(geoFacet->getVertex(0)), + Amg::EigenToHep3Vector(geoFacet->getVertex(1)), + Amg::EigenToHep3Vector(geoFacet->getVertex(2)), + Amg::EigenToHep3Vector(geoFacet->getVertex(3)), vertexType); g4Tessellated->AddFacet(g4Facet); @@ -432,9 +434,17 @@ G4VSolid *Geo2G4SolidFactory::Build(const GeoShape* geoShape, std::string name) if (nullptr==theGenTrap) throw std::runtime_error("TypeID did not match cast for generic trap"); if (n.empty()) n="G4GenericTrap"; if (theGenTrap->getZHalfLength()<=0.){ ATH_MSG_WARNING("GenTrap " << n << " has an z side of " << theGenTrap->getZHalfLength() <<" - using std::abs.");} + + // Translate vector of vertices from Eigen to CLHEP + std::vector<CLHEP::Hep2Vector> clhepVertices; + clhepVertices.reserve(theGenTrap->getVertices().size()); + for(const GeoTrf::Vector2D& geoVertex : theGenTrap->getVertices()) { + clhepVertices.push_back(CLHEP::Hep2Vector(geoVertex.x(),geoVertex.y())); + } + G4GenericTrap* g4GenTrap = new G4GenericTrap(n ,std::abs(theGenTrap->getZHalfLength()) - ,theGenTrap->getVertices()); + ,clhepVertices); theSolid = g4GenTrap; } // @@ -450,7 +460,7 @@ G4VSolid *Geo2G4SolidFactory::Build(const GeoShape* geoShape, std::string name) if (nullptr==theShapeShift) throw std::runtime_error("TypeID did not match cast for shape shift"); if (n.empty()) n="DisplacedSolid"; G4VSolid * undisplacedSolid = Build(theShapeShift->getOp()); - theSolid = new G4DisplacedSolid(n, undisplacedSolid, theShapeShift->getX()); + theSolid = new G4DisplacedSolid(n, undisplacedSolid, Amg::EigenTransformToCLHEP(theShapeShift->getX())); } // // GeoShapeUnion diff --git a/Simulation/G4Utilities/GeoMaterial2G4/CMakeLists.txt b/Simulation/G4Utilities/GeoMaterial2G4/CMakeLists.txt index 50eaded856a470af33bcabcd71c120f058f37b4d..49c77585532991384e9cf5608773e9bee9f78262 100644 --- a/Simulation/G4Utilities/GeoMaterial2G4/CMakeLists.txt +++ b/Simulation/G4Utilities/GeoMaterial2G4/CMakeLists.txt @@ -8,7 +8,6 @@ atlas_subdir( GeoMaterial2G4 ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel - DetectorDescription/GeoModel/GeoModelKernel GaudiKernel PRIVATE Control/AthenaBaseComps @@ -16,11 +15,13 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Geant4 ) +find_package( CLHEP ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( GeoMaterial2G4 src/*.cxx PUBLIC_HEADERS GeoMaterial2G4 - INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} - LINK_LIBRARIES ${GEANT4_LIBRARIES} AthenaKernel GeoModelKernel GaudiKernel + INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${GEANT4_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaKernel GaudiKernel PRIVATE_LINK_LIBRARIES AthenaBaseComps GeoModelUtilities ) diff --git a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/FastCaloSimSvcV2.cxx b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/FastCaloSimSvcV2.cxx index fe5bdab772cfa1aa3806abbcb6ac95133bb80b11..265acf4ca9df2a234d4c172ee2b0d2b98658e7c2 100644 --- a/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/FastCaloSimSvcV2.cxx +++ b/Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimServices/src/FastCaloSimSvcV2.cxx @@ -35,6 +35,8 @@ #include "PathResolver/PathResolver.h" +#include "CLHEP/Units/SystemOfUnits.h" + #include "TFile.h" #include <fstream> diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasDetDescrModel/CMakeLists.txt b/Simulation/ISF/ISF_Fatras/ISF_FatrasDetDescrModel/CMakeLists.txt index 76d5e7e4862c40fb4c7e4be73839ee1ab65f9a36..5dd3d35395b0ed4fd69b4e06c623d849db596c74 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasDetDescrModel/CMakeLists.txt +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasDetDescrModel/CMakeLists.txt @@ -26,13 +26,14 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Eigen ) +find_package( CLHEP ) find_package( ROOT COMPONENTS Core Tree MathCore Hist RIO pthread ) # Component(s) in the package: atlas_add_library( ISF_FatrasDetDescrModel src/*.cxx PUBLIC_HEADERS ISF_FatrasDetDescrModel - INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} AthenaKernel GeoPrimitives Identifier EventPrimitives InDetIdentifier InDetReadoutGeometry ISF_FatrasDetDescrInterfaces TrkDetDescrUtils TrkDetElementBase TrkGeometry TrkSurfaces TrkEventPrimitives TrkParameters StoreGateLib SGtests + INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} + LINK_LIBRARIES ${ROOT_LIBRARIES} ${EIGEN_LIBRARIES} ${CLHEP_LIBRARIES} AthenaKernel GeoPrimitives Identifier EventPrimitives InDetIdentifier InDetReadoutGeometry ISF_FatrasDetDescrInterfaces TrkDetDescrUtils TrkDetElementBase TrkGeometry TrkSurfaces TrkEventPrimitives TrkParameters StoreGateLib SGtests PRIVATE_LINK_LIBRARIES GaudiKernel ) diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasDetDescrModel/ISF_FatrasDetDescrModel/PlanarDetElement.h b/Simulation/ISF/ISF_Fatras/ISF_FatrasDetDescrModel/ISF_FatrasDetDescrModel/PlanarDetElement.h index c2340d8058439d05a6d152daa306f4335d969736..c88e8dbb49816abcc460aa5f634d3d615222bac5 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasDetDescrModel/ISF_FatrasDetDescrModel/PlanarDetElement.h +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasDetDescrModel/ISF_FatrasDetDescrModel/PlanarDetElement.h @@ -28,6 +28,8 @@ #include "ISF_FatrasDetDescrInterfaces/ISegmentation.h" #include "InDetReadoutGeometry/SiDetectorDesign.h" +#include "CLHEP/Geometry/Transform3D.h" + namespace iFatras { /** @@ -107,7 +109,7 @@ namespace iFatras { /// Local (simulation/hit frame) to global transform const Amg::Transform3D & HitTransform() const { return m_hitTransform;}; - const HepGeom::Transform3D & transformHit() const { return m_hitTransformCLHEP;}; + const Amg::Transform3D & transformHit() const { return m_hitTransform;}; /// Center in global coordinates const Amg::Vector3D & center() const {return m_center;}; diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasDetDescrTools/src/PlanarDetLayerBuilder.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasDetDescrTools/src/PlanarDetLayerBuilder.cxx index 90b30c1912bffa954a835e9eac3b69a0c4a72ccc..8c5e52aa2c54dfc7f5e5cc047b7c1a474b83f4f9 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasDetDescrTools/src/PlanarDetLayerBuilder.cxx +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasDetDescrTools/src/PlanarDetLayerBuilder.cxx @@ -910,7 +910,7 @@ const std::vector< const Trk::CylinderLayer* >* iFatras::PlanarDetLayerBuilder:: if(m_pixelCase){ ATH_MSG_VERBOSE("Surface " << (*moduleSurface)); - ATH_MSG_VERBOSE("TransformHit = " << Amg::toString(Amg::CLHEPTransformToEigen((*Elem_Iter)->transformHit()))); + ATH_MSG_VERBOSE("TransformHit = " << Amg::toString((*Elem_Iter)->transformHit())); if (m_checkGeo) { @@ -933,7 +933,7 @@ const std::vector< const Trk::CylinderLayer* >* iFatras::PlanarDetLayerBuilder:: ATH_MSG_VERBOSE("Phi = " << moduleSurface->center().phi() << " Eta = " << moduleSurface->center().eta()); } else { ATH_MSG_VERBOSE("Surface " << (*moduleSurface)); - ATH_MSG_VERBOSE("TransformHit = " << Amg::toString(Amg::CLHEPTransformToEigen((*Elem_Iter)->transformHit()))); + ATH_MSG_VERBOSE("TransformHit = " << Amg::toString((*Elem_Iter)->transformHit())); if (m_checkGeo) { Amg::Vector3D glopos = (*moduleSurface).center(); @@ -1165,7 +1165,7 @@ const std::vector< const Trk::DiscLayer* >* iFatras::PlanarDetLayerBuilder::disc if(m_pixelCase){ ATH_MSG_VERBOSE("Surface " << (*moduleSurface)); - ATH_MSG_VERBOSE("TransformHit = " << Amg::toString(Amg::CLHEPTransformToEigen((*Elem_Iter)->transformHit()))); + ATH_MSG_VERBOSE("TransformHit = " << Amg::toString((*Elem_Iter)->transformHit())); Identifier hitId = moduleSurface->associatedDetectorElementIdentifier(); IdentifierHash hitIdHash = m_pixIdHelper->wafer_hash(hitId); ATH_MSG_VERBOSE("ID " << hitId << ", hash " << hitIdHash ); @@ -1174,7 +1174,7 @@ const std::vector< const Trk::DiscLayer* >* iFatras::PlanarDetLayerBuilder::disc } else { ATH_MSG_VERBOSE("Surface " << (*moduleSurface)); - ATH_MSG_VERBOSE("TransformHit = " << Amg::toString(Amg::CLHEPTransformToEigen((*Elem_Iter)->transformHit()))); + ATH_MSG_VERBOSE("TransformHit = " << Amg::toString((*Elem_Iter)->transformHit())); Identifier hitId = moduleSurface->associatedDetectorElementIdentifier(); IdentifierHash hitIdHash = m_sctIdHelper->wafer_hash(hitId); ATH_MSG_VERBOSE("ID " << hitId << ", hash " << hitIdHash ); diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/HadIntProcessorParametric.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/HadIntProcessorParametric.cxx index 5231ca399fbb62e6d821243fb77e9576f9168d76..6e9490eff3302d93df6ba4f6eb2385767be76c06 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/HadIntProcessorParametric.cxx +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/HadIntProcessorParametric.cxx @@ -26,6 +26,7 @@ #include "CLHEP/Matrix/Vector.h" #include "CLHEP/Random/RandFlat.h" #include "CLHEP/Random/RandGauss.h" +#include "CLHEP/Geometry/Transform3D.h" // Validation mode - TTree includes #include "TTree.h" #include "GaudiKernel/ITHistSvc.h" diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhotonConversionTool.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhotonConversionTool.cxx index 0538b7f0e231b99b3858b5ac0208d228eb7a84f6..42b3e85623d616480593c44488817735ac60c18f 100755 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhotonConversionTool.cxx +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhotonConversionTool.cxx @@ -38,6 +38,7 @@ #include "CLHEP/Units/SystemOfUnits.h" #include "CLHEP/Matrix/Vector.h" #include "CLHEP/Random/RandFlat.h" +#include "CLHEP/Vector/LorentzVector.h" // Validation mode - TTree includes #include "TTree.h" #include "GaudiKernel/ITHistSvc.h" diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhysicsValidationTool.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhysicsValidationTool.cxx index 18ffc3801b18d0497fb26aabfc967a55a7d399a0..29be483a236296c7af9ce4ea7c5f4be7aeae690e 100755 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhysicsValidationTool.cxx +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/PhysicsValidationTool.cxx @@ -16,6 +16,7 @@ #include "ISF_Event/ParticleUserInformation.h" // CLHEP #include "CLHEP/Units/SystemOfUnits.h" +#include "CLHEP/Units/PhysicalConstants.h" // // ROOT includes #include "TTree.h" diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportEngine.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportEngine.cxx index 4cf9e151bff1f8cd2128613e4874744d77ea5988..982c6283e11287b70c46e72cf1e03121c8751333 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportEngine.cxx +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportEngine.cxx @@ -32,6 +32,7 @@ // CLHEP #include "CLHEP/Units/SystemOfUnits.h" +#include "CLHEP/Units/PhysicalConstants.h" #include "CLHEP/Random/RandFlat.h" // AtlasDetDescr diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportTool.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportTool.cxx index fcfdeeaf37af66d75bcedfcac76940ccc71b0368..bfcbdec9400074c1de7ec100f25a5e05c67224dc 100755 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportTool.cxx +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasTools/src/TransportTool.cxx @@ -26,6 +26,7 @@ #include "ISF_Interfaces/IParticleHelper.h" // CLHEP #include "CLHEP/Units/SystemOfUnits.h" +#include "CLHEP/Units/PhysicalConstants.h" #include "CLHEP/Random/RandFlat.h" // // ROOT includes diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/CMakeLists.txt b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/CMakeLists.txt index 8fc1f042a414fd4bdfe548997bbc525c0bd1056a..af2dca5955da3c8e9815064fe888b7d2932c8cb1 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/CMakeLists.txt +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/CMakeLists.txt @@ -16,6 +16,7 @@ atlas_depends_on_subdirs( PUBLIC DetectorDescription/AtlasDetDescr DetectorDescription/IdDictDetDescr DetectorDescription/Identifier + DetectorDescription/GeoPrimitives InnerDetector/InDetConditions/InDetConditionsSummaryService InnerDetector/InDetConditions/TRT_ConditionsServices InnerDetector/InDetDetDescr/InDetIdentifier diff --git a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/HitCreatorSilicon.cxx b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/HitCreatorSilicon.cxx index 60a60761571a4332a982bf8955f4dcffe2953198..e28ab75cb83e784bc5ecb28fe3555742b4c97d58 100644 --- a/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/HitCreatorSilicon.cxx +++ b/Simulation/ISF/ISF_Fatras/ISF_FatrasToolsID/src/HitCreatorSilicon.cxx @@ -38,6 +38,7 @@ #include "InDetConditionsSummaryService/IInDetConditionsTool.h" #include "InDetSimEvent/SiHit.h" // CLHEP +#include "GeoPrimitives/CLHEPtoEigenConverter.h" #include "CLHEP/Units/SystemOfUnits.h" #include "CLHEP/Random/RandFlat.h" #include "CLHEP/Random/RandGauss.h" @@ -447,7 +448,7 @@ void iFatras::HitCreatorSilicon::createSimHit(const ISF::ISFParticle& isp, const double localExitY = interY+0.5*distY; double energyDeposit=0; //!< @todo : fix edge effects - const Amg::Transform3D &hitTransform = Amg::CLHEPTransformToEigen( hitSiDetElement->transformHit().inverse() ); + const Amg::Transform3D &hitTransform = hitSiDetElement->transformHit().inverse(); // transform into the hit frame Amg::Vector3D localEntry(hitTransform*(sTransform*Amg::Vector3D(localEntryX,localEntryY,-0.5*movingDirection*thickness))); Amg::Vector3D localExit(hitTransform*(sTransform*Amg::Vector3D(localExitX,localExitY,0.5*movingDirection*thickness))); diff --git a/TestBeam/TBRec/src/TBTrackToCaloAlg.cxx b/TestBeam/TBRec/src/TBTrackToCaloAlg.cxx index 24600bfffc9922301bf7dec373be02d08beba544..dc98ace338df1d56a07d6128d1a2c7cfb6a04c5f 100644 --- a/TestBeam/TBRec/src/TBTrackToCaloAlg.cxx +++ b/TestBeam/TBRec/src/TBTrackToCaloAlg.cxx @@ -38,9 +38,6 @@ #include "ImpactInCaloCollection.h" #include "AthenaKernel/Units.h" - -using HepGeom::Point3D; -using HepGeom::Vector3D; using Athena::Units::GeV; diff --git a/TileCalorimeter/TileCosmicAlgs/src/TileMuonFitter.cxx b/TileCalorimeter/TileCosmicAlgs/src/TileMuonFitter.cxx index 870d41d3da7871b37d7c42107d525e5c03ef4e67..bcb193fbbb5c89325c56f7e89df632c9540ba008 100755 --- a/TileCalorimeter/TileCosmicAlgs/src/TileMuonFitter.cxx +++ b/TileCalorimeter/TileCosmicAlgs/src/TileMuonFitter.cxx @@ -57,6 +57,8 @@ // ROOT includes #include "CLHEP/Vector/ThreeVector.h" +#include "CLHEP/Units/SystemOfUnits.h" +#include "CLHEP/Units/PhysicalConstants.h" #include <cmath> #ifndef __APPLE__ diff --git a/TileCalorimeter/TileDetDescr/CMakeLists.txt b/TileCalorimeter/TileDetDescr/CMakeLists.txt index 6dd11c28a45a5b3a874a9e0e909c65e04c7a6c17..f642c956a788f2940ada8d55d7a3fbc536faaa92 100644 --- a/TileCalorimeter/TileDetDescr/CMakeLists.txt +++ b/TileCalorimeter/TileDetDescr/CMakeLists.txt @@ -10,7 +10,6 @@ atlas_depends_on_subdirs( PUBLIC Calorimeter/CaloIdentifier Control/AthenaKernel Database/RDBAccessSvc - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/Identifier PRIVATE Calorimeter/CaloDetDescr @@ -21,12 +20,14 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( TileDetDescr src/Tile*.cxx PUBLIC_HEADERS TileDetDescr - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} - LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} CaloIdentifier AthenaKernel GeoModelKernel Identifier CaloDetDescrLib + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${GEOMODEL_LIBRARIES} CaloIdentifier AthenaKernel Identifier CaloDetDescrLib PRIVATE_LINK_LIBRARIES AtlasDetDescr GaudiKernel TileIdentifier ) diff --git a/TileCalorimeter/TileDetDescr/src/CellVolumes.h b/TileCalorimeter/TileDetDescr/src/CellVolumes.h index c1fe739091cdc210bf4a93ca7df73b43839693a3..e8f75d433ef478eaaf667bc760ee511b6baa3f6a 100755 --- a/TileCalorimeter/TileDetDescr/src/CellVolumes.h +++ b/TileCalorimeter/TileDetDescr/src/CellVolumes.h @@ -1,47 +1,48 @@ /* Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ +#include "GeoModelKernel/Units.h" -const double TileDetDescrManager::vBarrelCells[23] = {17799.76*CLHEP::cm3, //A1 - 17799.76*CLHEP::cm3, //A2 - 18459.01*CLHEP::cm3, //A3 - 18459.01*CLHEP::cm3, //A4 - 19777.51*CLHEP::cm3, //A5 - 20436.76*CLHEP::cm3, //A6 - 21096.01*CLHEP::cm3, //A7 - 23073.76*CLHEP::cm3, //A8 - 24392.26*CLHEP::cm3, //A9 - 21096.01*CLHEP::cm3, //A10 - 75726.60*CLHEP::cm3, //BC1 - 77024.24*CLHEP::cm3, //BC2 - 77024.24*CLHEP::cm3, //BC3 - 81574.95*CLHEP::cm3, //BC4 - 81574.95*CLHEP::cm3, //BC5 - 88401.02*CLHEP::cm3, //BC6 - 91974.02*CLHEP::cm3, //BC7 - 91014.21*CLHEP::cm3, //BC8 - 34219.80*CLHEP::cm3, //B9 - 110000.61*CLHEP::cm3, //D0 - 111375.62*CLHEP::cm3, //D1 - 118250.66*CLHEP::cm3, //D2 - 137500.77*CLHEP::cm3}; //D3 +const double TileDetDescrManager::vBarrelCells[23] = {17799.76*GeoModelKernelUnits::cm3, //A1 + 17799.76*GeoModelKernelUnits::cm3, //A2 + 18459.01*GeoModelKernelUnits::cm3, //A3 + 18459.01*GeoModelKernelUnits::cm3, //A4 + 19777.51*GeoModelKernelUnits::cm3, //A5 + 20436.76*GeoModelKernelUnits::cm3, //A6 + 21096.01*GeoModelKernelUnits::cm3, //A7 + 23073.76*GeoModelKernelUnits::cm3, //A8 + 24392.26*GeoModelKernelUnits::cm3, //A9 + 21096.01*GeoModelKernelUnits::cm3, //A10 + 75726.60*GeoModelKernelUnits::cm3, //BC1 + 77024.24*GeoModelKernelUnits::cm3, //BC2 + 77024.24*GeoModelKernelUnits::cm3, //BC3 + 81574.95*GeoModelKernelUnits::cm3, //BC4 + 81574.95*GeoModelKernelUnits::cm3, //BC5 + 88401.02*GeoModelKernelUnits::cm3, //BC6 + 91974.02*GeoModelKernelUnits::cm3, //BC7 + 91014.21*GeoModelKernelUnits::cm3, //BC8 + 34219.80*GeoModelKernelUnits::cm3, //B9 + 110000.61*GeoModelKernelUnits::cm3, //D0 + 111375.62*GeoModelKernelUnits::cm3, //D1 + 118250.66*GeoModelKernelUnits::cm3, //D2 + 137500.77*GeoModelKernelUnits::cm3}; //D3 -const double TileDetDescrManager::vExtendedCells[12] = {11863.88*CLHEP::cm3, //A12 - 32955.21*CLHEP::cm3, //A13 - 36909.84*CLHEP::cm3, //A14 - 39546.25*CLHEP::cm3, //A15 - 63274.01*CLHEP::cm3, //A16 - 44472.59*CLHEP::cm3, //B11 - 75047.49*CLHEP::cm3, //B12 - 83386.10*CLHEP::cm3, //B13 - 88945.18*CLHEP::cm3, //B14 - 97283.79*CLHEP::cm3, //B15 - 293772.18*CLHEP::cm3, //D5 - 338967.89*CLHEP::cm3}; //D6 +const double TileDetDescrManager::vExtendedCells[12] = {11863.88*GeoModelKernelUnits::cm3, //A12 + 32955.21*GeoModelKernelUnits::cm3, //A13 + 36909.84*GeoModelKernelUnits::cm3, //A14 + 39546.25*GeoModelKernelUnits::cm3, //A15 + 63274.01*GeoModelKernelUnits::cm3, //A16 + 44472.59*GeoModelKernelUnits::cm3, //B11 + 75047.49*GeoModelKernelUnits::cm3, //B12 + 83386.10*GeoModelKernelUnits::cm3, //B13 + 88945.18*GeoModelKernelUnits::cm3, //B14 + 97283.79*GeoModelKernelUnits::cm3, //B15 + 293772.18*GeoModelKernelUnits::cm3, //D5 + 338967.89*GeoModelKernelUnits::cm3}; //D6 -const double TileDetDescrManager::vItcGapCells[6] = {13461.47*CLHEP::cm3, //C10 - 46542.48*CLHEP::cm3, //D4 - 1292.80*CLHEP::cm3, //E1 - 1244.11*CLHEP::cm3, //E2 - 776.24*CLHEP::cm3, //E3 - 468.36*CLHEP::cm3}; //E4 +const double TileDetDescrManager::vItcGapCells[6] = {13461.47*GeoModelKernelUnits::cm3, //C10 + 46542.48*GeoModelKernelUnits::cm3, //D4 + 1292.80*GeoModelKernelUnits::cm3, //E1 + 1244.11*GeoModelKernelUnits::cm3, //E2 + 776.24*GeoModelKernelUnits::cm3, //E3 + 468.36*GeoModelKernelUnits::cm3}; //E4 diff --git a/TileCalorimeter/TileDetDescr/src/TileDetDescrManager.cxx b/TileCalorimeter/TileDetDescr/src/TileDetDescrManager.cxx index e5a23993e0bb9e1637563b97dde0e6ef9c8c0667..b16acb26272a3dc8bc162fd66719e2348626db2c 100755 --- a/TileCalorimeter/TileDetDescr/src/TileDetDescrManager.cxx +++ b/TileCalorimeter/TileDetDescr/src/TileDetDescrManager.cxx @@ -5,6 +5,7 @@ #include "TileDetDescr/TileDetDescrManager.h" #include "TileDetDescr/TileDddbManager.h" #include "TileDetDescr/TileCellDim.h" +#include "GeoModelKernel/Units.h" #include "CaloDetDescr/CaloDetDescriptor.h" #include "CaloDetDescr/CaloDetectorElements.h" @@ -488,7 +489,7 @@ void TileDetDescrManager::create_elements() // come out to ~ 1e-14, the exact value varying depending // on platform. For reproducibility, force very small // numbers to 0. - if (std::abs(z) < 1e-8 * CLHEP::mm) z = 0; + if (std::abs(z) < 1e-8 * GeoModelKernelUnits::mm) z = 0; double dz = 0.5 * fabs(cell_dim->getZMax(0) // special -cell_dim->getZMin(0) // calculations @@ -569,7 +570,7 @@ void TileDetDescrManager::create_elements() m_dbManager->SetCurrentSection(TileID::EXTBAR); double epThickness = 0.0; // only used for tower == 15 double epVolume = 0.0; // only used for tower == 15 - if ( tower == 15 ) epThickness = m_dbManager->TILBdzend2() * CLHEP::cm; + if ( tower == 15 ) epThickness = m_dbManager->TILBdzend2() * GeoModelKernelUnits::cm; double volumeInRow[5]; // book large array for (int iRow = 0; iRow < 5; iRow++) volumeInRow[iRow] = 0.; @@ -647,12 +648,12 @@ void TileDetDescrManager::create_elements() { rowVolume = radMax + radMin; rowVolume *= (radMax - radMin); - rowVolume -= 0.5*radMin*(27*CLHEP::mm); + rowVolume -= 0.5*radMin*(27*GeoModelKernelUnits::mm); rowVolume *= Radius2HL * ( deltaZ + epThickness ); // adding volume of cutted endplate } else { - rowVolume = radMax - radMin - 35*CLHEP::mm; + rowVolume = radMax - radMin - 35*GeoModelKernelUnits::mm; rowVolume *= (radMax + radMin); rowVolume *= Radius2HL * deltaZ; } @@ -665,8 +666,8 @@ void TileDetDescrManager::create_elements() if ( (ModuleNcp == 60) || (ModuleNcp == 37) ) { - double deltax = 38.7*std::cos(25.3125*CLHEP::deg); - double pstan = std::tan(25.3125*CLHEP::deg); + double deltax = 38.7*std::cos(25.3125*GeoModelKernelUnits::deg); + double pstan = std::tan(25.3125*GeoModelKernelUnits::deg); double inv_pstan = 1. / pstan; if ( ( 15 == tower ) ) { @@ -733,7 +734,7 @@ void TileDetDescrManager::create_elements() m_dbManager->SetCurrentSection(Id4); double standardD4dz = elt->dz(); - double specialD4dz = m_dbManager->TILBdzmodul()*CLHEP::cm; + double specialD4dz = m_dbManager->TILBdzmodul()*GeoModelKernelUnits::cm; if ( Id4 == 8 ) specialD4dz = 0.; elt->set_dz(specialD4dz); @@ -811,7 +812,7 @@ void TileDetDescrManager::create_elements() if ( Id4 == 8 ) { double standardD5dz = elt->dz(); - double specialD4dz = m_dbManager->TILBdzmodul()*CLHEP::cm; + double specialD4dz = m_dbManager->TILBdzmodul()*GeoModelKernelUnits::cm; elt->set_dz(specialD4dz + standardD5dz); elt->set_volume(elt->volume()* (1. + specialD4dz/standardD5dz)); diff --git a/TileCalorimeter/TileFastCaloSim/src/TileFCSmStepToTileHitVec.cxx b/TileCalorimeter/TileFastCaloSim/src/TileFCSmStepToTileHitVec.cxx index b07f7c1042823c2c916bce84d208038753215835..22e8c09f06f7c341d16185435e08f4b35ad58dae 100644 --- a/TileCalorimeter/TileFastCaloSim/src/TileFCSmStepToTileHitVec.cxx +++ b/TileCalorimeter/TileFastCaloSim/src/TileFCSmStepToTileHitVec.cxx @@ -42,6 +42,7 @@ // ISF_FCS_Parametrization includes #include "ISF_FastCaloSimEvent/FCS_StepInfoCollection.h" +#include "CLHEP/Units/PhysicalConstants.h" //**************************************************************************** //* Constructor diff --git a/TileCalorimeter/TileG4/TileAncillary/CombinedScintillator/CMakeLists.txt b/TileCalorimeter/TileG4/TileAncillary/CombinedScintillator/CMakeLists.txt index fd2184fe8f479f7f2c997f6b0ef42094f056c68f..a0c23421567030f53111d45f985c897d009b1cb7 100644 --- a/TileCalorimeter/TileG4/TileAncillary/CombinedScintillator/CMakeLists.txt +++ b/TileCalorimeter/TileG4/TileAncillary/CombinedScintillator/CMakeLists.txt @@ -6,14 +6,11 @@ atlas_subdir( CombinedScintillator ) # Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - - PRIVATE +atlas_depends_on_subdirs( PRIVATE Calorimeter/CaloIdentifier Control/CxxUtils Control/StoreGate DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel GaudiKernel Simulation/G4Atlas/G4AtlasTools Simulation/G4Utilities/GeoMaterial2G4 @@ -23,13 +20,14 @@ atlas_depends_on_subdirs( PUBLIC find_package( CLHEP ) find_package( Geant4 ) find_package( XercesC ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( CombinedScintillator src/*.cc src/components/*.cxx - INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} CaloIdentifier CxxUtils StoreGateLib SGtests GeoModelKernel GaudiKernel G4AtlasToolsLib GeoMaterial2G4 TileSimEvent ) + INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} CaloIdentifier CxxUtils StoreGateLib SGtests GaudiKernel G4AtlasToolsLib GeoMaterial2G4 TileSimEvent ) # Install files from the package: atlas_install_python_modules( python/*.py ) diff --git a/TileCalorimeter/TileG4/TileAncillary/DeadMaterial/CMakeLists.txt b/TileCalorimeter/TileG4/TileAncillary/DeadMaterial/CMakeLists.txt index c5268484ada7f7b397f7479b6e359931292e6b84..47ecdc25bf54f5d46b04cedf68bfe389001812a2 100644 --- a/TileCalorimeter/TileG4/TileAncillary/DeadMaterial/CMakeLists.txt +++ b/TileCalorimeter/TileG4/TileAncillary/DeadMaterial/CMakeLists.txt @@ -6,12 +6,9 @@ atlas_subdir( DeadMaterial ) # Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - - PRIVATE +atlas_depends_on_subdirs( PRIVATE Control/StoreGate DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel GaudiKernel Simulation/G4Atlas/G4AtlasTools Simulation/G4Utilities/GeoMaterial2G4 ) @@ -20,13 +17,14 @@ atlas_depends_on_subdirs( PUBLIC find_package( CLHEP ) find_package( Geant4 ) find_package( XercesC ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( DeadMaterial src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} StoreGateLib SGtests GeoModelKernel GaudiKernel G4AtlasToolsLib GeoMaterial2G4 ) + INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} StoreGateLib SGtests GaudiKernel G4AtlasToolsLib GeoMaterial2G4 ) # Install files from the package: atlas_install_python_modules( python/*.py ) diff --git a/TileCalorimeter/TileG4/TileAncillary/LarCrate/CMakeLists.txt b/TileCalorimeter/TileG4/TileAncillary/LarCrate/CMakeLists.txt index 12c900232ddf9aecf72d56cef0383aaa9784ac66..766720a412ce007b8c308ef164f9da7632d0785e 100644 --- a/TileCalorimeter/TileG4/TileAncillary/LarCrate/CMakeLists.txt +++ b/TileCalorimeter/TileG4/TileAncillary/LarCrate/CMakeLists.txt @@ -6,12 +6,9 @@ atlas_subdir( LarCrate ) # Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - - PRIVATE +atlas_depends_on_subdirs( PRIVATE Control/StoreGate DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel GaudiKernel Simulation/G4Atlas/G4AtlasTools Simulation/G4Utilities/GeoMaterial2G4 ) @@ -20,13 +17,14 @@ atlas_depends_on_subdirs( PUBLIC find_package( CLHEP ) find_package( Geant4 ) find_package( XercesC ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( LarCrate src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} StoreGateLib SGtests GeoModelKernel GaudiKernel G4AtlasToolsLib GeoMaterial2G4 ) + INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} StoreGateLib SGtests GaudiKernel G4AtlasToolsLib GeoMaterial2G4 ) # Install files from the package: atlas_install_python_modules( python/*.py ) diff --git a/TileCalorimeter/TileG4/TileAncillary/MuonWall/CMakeLists.txt b/TileCalorimeter/TileG4/TileAncillary/MuonWall/CMakeLists.txt index 61baaab34bd42b780c37626fb1f64b63feb779b5..e8ad05c8183edcf514f670f18b18c36721da92e8 100644 --- a/TileCalorimeter/TileG4/TileAncillary/MuonWall/CMakeLists.txt +++ b/TileCalorimeter/TileG4/TileAncillary/MuonWall/CMakeLists.txt @@ -6,14 +6,11 @@ atlas_subdir( MuonWall ) # Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - - PRIVATE +atlas_depends_on_subdirs( PRIVATE Calorimeter/CaloIdentifier Control/CxxUtils Control/StoreGate DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel GaudiKernel Simulation/G4Atlas/G4AtlasTools Simulation/G4Utilities/GeoMaterial2G4 @@ -23,13 +20,14 @@ atlas_depends_on_subdirs( PUBLIC find_package( CLHEP ) find_package( Geant4 ) find_package( XercesC ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( MuonWall src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} CaloIdentifier CxxUtils StoreGateLib SGtests GeoModelKernel GaudiKernel G4AtlasToolsLib GeoMaterial2G4 TileSimEvent ) + INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} CaloIdentifier CxxUtils StoreGateLib SGtests GaudiKernel G4AtlasToolsLib GeoMaterial2G4 TileSimEvent ) # Install files from the package: atlas_install_python_modules( python/*.py ) diff --git a/TileCalorimeter/TileG4/TileAncillary/PhantomCalorimeter/CMakeLists.txt b/TileCalorimeter/TileG4/TileAncillary/PhantomCalorimeter/CMakeLists.txt index 15ae2c982ce9b7ec9005abf9971a86123c8f7b53..e2d25967e8a18b5e42de5688e2ac7d323979af1f 100644 --- a/TileCalorimeter/TileG4/TileAncillary/PhantomCalorimeter/CMakeLists.txt +++ b/TileCalorimeter/TileG4/TileAncillary/PhantomCalorimeter/CMakeLists.txt @@ -6,14 +6,11 @@ atlas_subdir( PhantomCalorimeter ) # Declare the package's dependencies: -atlas_depends_on_subdirs( PUBLIC - - PRIVATE +atlas_depends_on_subdirs( PRIVATE Calorimeter/CaloIdentifier Control/CxxUtils Control/StoreGate DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel GaudiKernel Simulation/G4Atlas/G4AtlasTools Simulation/G4Utilities/GeoMaterial2G4 @@ -23,13 +20,14 @@ atlas_depends_on_subdirs( PUBLIC find_package( CLHEP ) find_package( Geant4 ) find_package( XercesC ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( PhantomCalorimeter src/*.cc src/components/*.cxx - INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} CaloIdentifier CxxUtils StoreGateLib SGtests GeoModelKernel GaudiKernel G4AtlasToolsLib GeoMaterial2G4 TileSimEvent ) + INCLUDE_DIRS ${GEANT4_INCLUDE_DIRS} ${XERCESC_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${GEANT4_LIBRARIES} ${XERCESC_LIBRARIES} ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} CaloIdentifier CxxUtils StoreGateLib SGtests GaudiKernel G4AtlasToolsLib GeoMaterial2G4 TileSimEvent ) # Install files from the package: atlas_install_python_modules( python/*.py ) diff --git a/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4DMLookupBuilder.cc b/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4DMLookupBuilder.cc index 3eed38ebd4cc9c43ba5ae2cc669e84676198c1b0..eceab515f85a159749fe765b0ded6b5f81e99aca 100644 --- a/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4DMLookupBuilder.cc +++ b/TileCalorimeter/TileG4/TileGeoG4Calib/src/TileGeoG4DMLookupBuilder.cc @@ -37,6 +37,7 @@ #include "GeoModelInterfaces/IGeoModelSvc.h" #include "G4ios.hh" +#include "CLHEP/Units/SystemOfUnits.h" /////////// C O N S T R U C T O R diff --git a/TileCalorimeter/TileGeoModel/CMakeLists.txt b/TileCalorimeter/TileGeoModel/CMakeLists.txt index 06634042e0998522689a161968f977986bb04ccc..dc2579f6f3ff5046ed8396ac383bd0f39f36bb8d 100644 --- a/TileCalorimeter/TileGeoModel/CMakeLists.txt +++ b/TileCalorimeter/TileGeoModel/CMakeLists.txt @@ -9,7 +9,6 @@ atlas_subdir( TileGeoModel ) atlas_depends_on_subdirs( PUBLIC Control/StoreGate DetectorDescription/GeoModel/GeoModelInterfaces - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities TileCalorimeter/TileDetDescr PRIVATE @@ -24,21 +23,21 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Boost COMPONENTS filesystem thread system ) -find_package( CLHEP ) find_package( CORAL COMPONENTS CoralBase CoralKernel RelationalAccess ) +find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( TileGeoModelLib src/*.cxx PUBLIC_HEADERS TileGeoModel - PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} - PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES GeoModelKernel GeoModelUtilities TileDetDescr StoreGateLib SGtests CaloDetDescrLib TileConditionsLib - PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${CLHEP_LIBRARIES} CaloIdentifier SGTools GaudiKernel TileIdentifier ) + PRIVATE_INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${GEOMODEL_LIBRARIES} GeoModelUtilities TileDetDescr StoreGateLib SGtests CaloDetDescrLib TileConditionsLib + PRIVATE_LINK_LIBRARIES ${Boost_LIBRARIES} ${CORAL_LIBRARIES} ${EIGEN_LIBRARIES} CaloIdentifier SGTools GaudiKernel TileIdentifier ) atlas_add_component( TileGeoModel src/components/*.cxx - INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} + INCLUDE_DIRS ${Boost_INCLUDE_DIRS} ${CORAL_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} LINK_LIBRARIES TileGeoModelLib ) diff --git a/TileCalorimeter/TileGeoModel/src/TileAtlasFactory.cxx b/TileCalorimeter/TileGeoModel/src/TileAtlasFactory.cxx index 181b7eec90fcdd263038e197d0ee3cffb48b8545..474e46831704b109612d53573e526a7de066f846 100755 --- a/TileCalorimeter/TileGeoModel/src/TileAtlasFactory.cxx +++ b/TileCalorimeter/TileGeoModel/src/TileAtlasFactory.cxx @@ -25,12 +25,14 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoIdentifierTag.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" //#include "GeoModelKernel/GeoCutVolAction.h" //#include "GeoModelKernel/GeoSimplePolygonBrep.h" -#include "CLHEP/GenericFunctions/AbsFunction.hh" -#include "CLHEP/GenericFunctions/Variable.hh" +#include "GeoGenericFunctions/AbsFunction.h" +#include "GeoGenericFunctions/Variable.h" #include "GeoModelKernel/GeoXF.h" #include "GeoModelKernel/GeoSerialTransformer.h" @@ -46,7 +48,7 @@ #include <cmath> #include <string> -using namespace Genfun; +using namespace GeoGenfun; using namespace GeoXF; // Constructor: @@ -85,13 +87,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) //int NcpFrom = 34, NcpPlus = 29; // ext.barrel, special double deltaPhi = 360./64; // we know apriory that 64 modules makes full cylinder - double AnglMin = (NcpFrom-1)*deltaPhi*CLHEP::deg, AnglMax = (NcpPlus+1)*deltaPhi*CLHEP::deg; + double AnglMin = (NcpFrom-1)*deltaPhi*GeoModelKernelUnits::deg, AnglMax = (NcpPlus+1)*deltaPhi*GeoModelKernelUnits::deg; // phi range of modules with special C10 - // double AnglMin1 = 38. * deltaPhi*CLHEP::deg; - // double AnglMax1 = 42. * deltaPhi*CLHEP::deg; - // double AnglMin2 = 54. * deltaPhi*CLHEP::deg; - // double AnglMax2 = 58. * deltaPhi*CLHEP::deg; + // double AnglMin1 = 38. * deltaPhi*GeoModelKernelUnits::deg; + // double AnglMax1 = 42. * deltaPhi*GeoModelKernelUnits::deg; + // double AnglMin2 = 54. * deltaPhi*GeoModelKernelUnits::deg; + // double AnglMax2 = 58. * deltaPhi*GeoModelKernelUnits::deg; (*m_log) << MSG::INFO <<" Entering TileAtlasFactory::create()" << endmsg; @@ -116,8 +118,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSaddle(0); - DzSaddleSupport = dbManager->DzSaddleSupport()*CLHEP::cm; - RadiusSaddle = dbManager->RadiusSaddle()*CLHEP::cm; + DzSaddleSupport = dbManager->DzSaddleSupport()*GeoModelKernelUnits::cm; + RadiusSaddle = dbManager->RadiusSaddle()*GeoModelKernelUnits::cm; if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " DzSaddleSupport()= "<<DzSaddleSupport<<" RadiusSaddle= "<<RadiusSaddle << endmsg; @@ -166,7 +168,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) // Barrel finger dbManager->SetCurrentTifg(1); - BFingerLength = BFingerLengthNeg = BFingerLengthPos = dbManager->TIFGdz()*CLHEP::cm; + BFingerLength = BFingerLengthNeg = BFingerLengthPos = dbManager->TIFGdz()*GeoModelKernelUnits::cm; double EBFingerLength =0; double EBFingerLengthNeg =0; @@ -174,7 +176,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) // EBarrel finger dbManager->SetCurrentTifg(2); - EBFingerLength = EBFingerLengthNeg = EBFingerLengthPos = dbManager->TIFGdz()*CLHEP::cm; + EBFingerLength = EBFingerLengthNeg = EBFingerLengthPos = dbManager->TIFGdz()*GeoModelKernelUnits::cm; int n_env = dbManager->GetNumberOfEnv(); @@ -194,13 +196,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) if (Type == 3) EBA = true; */ - ZLength [Type] = dbManager->GetEnvZLength()*CLHEP::cm; - EnvDZPos [Type] = dbManager->GetEnvDZ()*CLHEP::cm; + ZLength [Type] = dbManager->GetEnvZLength()*GeoModelKernelUnits::cm; + EnvDZPos [Type] = dbManager->GetEnvDZ()*GeoModelKernelUnits::cm; PhiMin [Type] = std::min(PhiMin[Type], dbManager->GetEnvDPhi()); PhiMax [Type] = std::max(PhiMax[Type], dbManager->GetEnvNModules()*deltaPhi + dbManager->GetEnvDPhi()); - RInMin [Type] = std::min(RInMin[Type], dbManager->GetEnvRin()*CLHEP::cm); - ROutMax [Type] = std::max(ROutMax[Type],dbManager->GetEnvRout()*CLHEP::cm); - FingerRmax = std::max(FingerRmax,dbManager->GetEnvRout()*CLHEP::cm); + RInMin [Type] = std::min(RInMin[Type], dbManager->GetEnvRin()*GeoModelKernelUnits::cm); + ROutMax [Type] = std::max(ROutMax[Type],dbManager->GetEnvRout()*GeoModelKernelUnits::cm); + FingerRmax = std::max(FingerRmax,dbManager->GetEnvRout()*GeoModelKernelUnits::cm); //std::cout << "# Type " <<Type<< " ZLength " <<ZLength [Type]<< " EnvDZPos "<<EnvDZPos [Type]<< "\n"; } @@ -271,9 +273,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) /** setfinger length */ double BFingerRmin=0, EFingerRmin=0; dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL); - BFingerRmin = dbManager->TILBrmax()*CLHEP::cm; + BFingerRmin = dbManager->TILBrmax()*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL); - EFingerRmin = dbManager->TILBrmax()*CLHEP::cm; + EFingerRmin = dbManager->TILBrmax()*GeoModelKernelUnits::cm; /** calculation PosEnvThickness enlarge mother volume by extra distance between barrel and positive ext.barrel */ dbManager->SetCurrentEnvByType(3); @@ -299,7 +301,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) // R maximal double rmaxTotal = ROutMax[1]; - GeoPcon* tileEnvPconeBarrel = new GeoPcon(PhiMin[1]*CLHEP::deg, PhiMax[1]*CLHEP::deg); + GeoPcon* tileEnvPconeBarrel = new GeoPcon(PhiMin[1]*GeoModelKernelUnits::deg, PhiMax[1]*GeoModelKernelUnits::deg); tileEnvPconeBarrel->addPlane(-endEnvelopeNeg, BFingerRmin, rmaxTotal); tileEnvPconeBarrel->addPlane(-endCentralBarrel-DzSaddleSupport, BFingerRmin, rmaxTotal); @@ -342,7 +344,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) } dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - double PosEndITC1 = (dbManager->TILBzoffset() + dbManager->TILEzshift() + dbManager->TILBdzmodul()/2)*CLHEP::cm; + double PosEndITC1 = (dbManager->TILBzoffset() + dbManager->TILEzshift() + dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; double corr = PosEndITC - PosEndITC1; if (fabs(corr)>0.01) { (*m_log) << MSG::WARNING @@ -351,19 +353,19 @@ void TileAtlasFactory::create(GeoPhysVol *world) <<endmsg; } - //double beginITC1 = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*CLHEP::cm; + //double beginITC1 = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2); - double PosBeginITC2 = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*CLHEP::cm; + double PosBeginITC2 = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3); - double PosBeginGap = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*CLHEP::cm; - double PosEndGap = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()+dbManager->TILBdzmodul()/2)*CLHEP::cm; + double PosBeginGap = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + double PosEndGap = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()+dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); - double PosBeginCrack = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*CLHEP::cm; - double PosEndCrack = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()+dbManager->TILBdzmodul()/2)*CLHEP::cm; + double PosBeginCrack = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + double PosEndCrack = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()+dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; if (!spC10) { // recovering old (wrong) positioning of gap scintillators double GapWidth = PosEndGap - PosBeginGap; - PosBeginGap = PosBeginCrack + 0.9 * CLHEP::cm; + PosBeginGap = PosBeginCrack + 0.9 * GeoModelKernelUnits::cm; PosEndGap = PosBeginGap + GapWidth; } @@ -377,11 +379,11 @@ void TileAtlasFactory::create(GeoPhysVol *world) // R minimals dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - double PosRminITC1 = dbManager->TILBrminimal()*CLHEP::cm; + double PosRminITC1 = dbManager->TILBrminimal()*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2); - double PosRminITC = rMinC10 /* dbManager->TILBrminimal() */ *CLHEP::cm; + double PosRminITC = rMinC10 /* dbManager->TILBrminimal() */ *GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); - double PosRminCrack = rMinE4pos*CLHEP::cm; + double PosRminCrack = rMinE4pos*GeoModelKernelUnits::cm; double PosRminExt = RInMin[3]; @@ -397,7 +399,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) << " PosRmaxTotal = " << PosRmaxTotal << endmsg; - GeoPcon* tileEnvPconePosEndcap = new GeoPcon(PhiMin[3]*CLHEP::deg, PhiMax[3]*CLHEP::deg); + GeoPcon* tileEnvPconePosEndcap = new GeoPcon(PhiMin[3]*GeoModelKernelUnits::deg, PhiMax[3]*GeoModelKernelUnits::deg); // Positive Endcap tileEnvPconePosEndcap->addPlane(PosEndBarrelFinger, PosRminITC1, PosRmaxTotal); @@ -442,7 +444,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) } dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - double NegEndITC1 = (dbManager->TILBzoffset() + dbManager->TILEzshift() + dbManager->TILBdzmodul()/2)*CLHEP::cm; + double NegEndITC1 = (dbManager->TILBzoffset() + dbManager->TILEzshift() + dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; corr = NegEndITC - NegEndITC1; if (fabs(corr)>0.01) { (*m_log) << MSG::WARNING @@ -450,19 +452,19 @@ void TileAtlasFactory::create(GeoPhysVol *world) << NegEndITC << " != " << NegEndITC1 << "; take this into account" << endmsg; } - //double NegBeginITC1 = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*CLHEP::cm; + //double NegBeginITC1 = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2); - double NegBeginITC2 = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*CLHEP::cm; + double NegBeginITC2 = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3); - double NegBeginGap = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*CLHEP::cm; - double NegEndGap = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()+dbManager->TILBdzmodul()/2)*CLHEP::cm; + double NegBeginGap = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + double NegEndGap = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()+dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); - double NegBeginCrack = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*CLHEP::cm; - double NegEndCrack = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()+dbManager->TILBdzmodul()/2)*CLHEP::cm; + double NegBeginCrack = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()-dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + double NegEndCrack = corr + (dbManager->TILBzoffset() + dbManager->TILEzshift()+dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; if (!spC10) { // recovering old (wrong) positioning of gap scintillators double GapWidth = NegEndGap - NegBeginGap; - NegBeginGap = NegBeginCrack + 0.9 * CLHEP::cm; + NegBeginGap = NegBeginCrack + 0.9 * GeoModelKernelUnits::cm; NegEndGap = NegBeginGap + GapWidth; } @@ -476,11 +478,11 @@ void TileAtlasFactory::create(GeoPhysVol *world) // R minimals dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - double NegRminITC1 = dbManager->TILBrminimal()*CLHEP::cm; + double NegRminITC1 = dbManager->TILBrminimal()*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2); - double NegRminITC = rMinC10 /* dbManager->TILBrminimal() */ *CLHEP::cm; + double NegRminITC = rMinC10 /* dbManager->TILBrminimal() */ *GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); - double NegRminCrack = rMinE4neg*CLHEP::cm; + double NegRminCrack = rMinE4neg*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL); double NegRminExt = RInMin[2]; @@ -497,7 +499,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) << " NegRmaxTotal = " << NegRmaxTotal << endmsg; - GeoPcon* tileEnvPconeNegEndcap = new GeoPcon(PhiMin[2]*CLHEP::deg, PhiMax[2]*CLHEP::deg); + GeoPcon* tileEnvPconeNegEndcap = new GeoPcon(PhiMin[2]*GeoModelKernelUnits::deg, PhiMax[2]*GeoModelKernelUnits::deg); // Negative Endcap tileEnvPconeNegEndcap->addPlane(-NegEndExtBarrelFinger, EFingerRmin, NegRmaxTotal); @@ -527,8 +529,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) - (dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) - dbManager->TILBdzmast()))/(2.*(2.*dbManager->TILBnperiod() - 1)); - sectionBuilder->setBarrelPeriodThickness(2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac() + 2.*dzGlue)*CLHEP::cm); - sectionBuilder->setBarrelGlue(dzGlue*CLHEP::cm); + sectionBuilder->setBarrelPeriodThickness(2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac() + 2.*dzGlue)*GeoModelKernelUnits::cm); + sectionBuilder->setBarrelGlue(dzGlue*GeoModelKernelUnits::cm); // Ext barrel part dbManager->SetCurrentSectionByNumber(2); @@ -536,20 +538,20 @@ void TileAtlasFactory::create(GeoPhysVol *world) dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod()); - sectionBuilder->setExtendedPeriodThickness(2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac() + 2.*dzGlue)*CLHEP::cm); + sectionBuilder->setExtendedPeriodThickness(2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac() + 2.*dzGlue)*GeoModelKernelUnits::cm); } - GeoPhysVol *pvBarrelMother =NULL, *pvFingerMotherNeg =NULL, *pvFingerMotherPos =NULL, - *pvSaddleMotherNeg =NULL, *pvSaddleMotherPos =NULL; - GeoPhysVol *pvEBarrelMotherNeg =NULL, *pvEBarrelMotherPos =NULL; - GeoPhysVol *pvEFingerMotherNeg =NULL, *pvEFingerMotherPos =NULL, - *pvESaddleMotherNeg =NULL, *pvESaddleMotherPos =NULL; - GeoPhysVol *pvITCMotherNeg =NULL, *pvITCMotherPos =NULL; - GeoPhysVol *pvGapMotherNeg =NULL, *pvGapMotherPos =NULL; - GeoPhysVol *pvCrackMotherNeg =NULL, *pvCrackMotherPos =NULL; + GeoPhysVol *pvBarrelMother{nullptr}, *pvFingerMotherNeg{nullptr}, *pvFingerMotherPos{nullptr}, + *pvSaddleMotherNeg{nullptr}, *pvSaddleMotherPos{nullptr}; + GeoPhysVol *pvEBarrelMotherNeg{nullptr}, *pvEBarrelMotherPos{nullptr}; + GeoPhysVol *pvEFingerMotherNeg{nullptr}, *pvEFingerMotherPos{nullptr}, + *pvESaddleMotherNeg{nullptr}, *pvESaddleMotherPos{nullptr}; + GeoPhysVol *pvITCMotherNeg{nullptr}, *pvITCMotherPos{nullptr}; + GeoPhysVol *pvGapMotherNeg{nullptr}, *pvGapMotherPos{nullptr}; + GeoPhysVol *pvCrackMotherNeg{nullptr}, *pvCrackMotherPos{nullptr}; - GeoLogVol *lvEBarrelModuleMotherPos =NULL, *lvEBarrelModuleMotherNeg =NULL; - GeoPhysVol *pvEBarrelModuleMotherPos =NULL, *pvEBarrelModuleMotherNeg =NULL; + GeoLogVol *lvEBarrelModuleMotherPos{nullptr}, *lvEBarrelModuleMotherNeg{nullptr}; + GeoPhysVol *pvEBarrelModuleMotherPos{nullptr}, *pvEBarrelModuleMotherNeg{nullptr}; /* GeoPhysVol *pvTmp_EBarrelModuleMotherPos =0,*pvTmL_EBarrelModuleMotherPos =0,*pvTmR_EBarrelModuleMotherPos =0; @@ -651,7 +653,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) checking("Cut2down", false, 1, dX1,dX2,dY1,dY2,dZ2); GeoTrd* Cut1down = new GeoTrd(dX1,dX2,dY1,dY2,dZ2); - HepGeom::Translate3D yPosA(0.,0.,-dZ1-dZ2); + GeoTrf::Translate3D yPosA(0.,0.,-dZ1-dZ2); const GeoShapeUnion& CutA1 = Cut1up->add(*Cut1down<<yPosA); CutA = &CutA1; @@ -772,8 +774,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) // nominal position of end plate zEndSection = ZLength[1]/2 - BFingerLength; - GeoTubs* GeneralMother = new GeoTubs(dbManager->GetEnvRin()*CLHEP::cm, - dbManager->GetEnvRout()*CLHEP::cm, + GeoTubs* GeneralMother = new GeoTubs(dbManager->GetEnvRin()*GeoModelKernelUnits::cm, + dbManager->GetEnvRout()*GeoModelKernelUnits::cm, zEndSection, AnglMin, AnglMax); @@ -784,13 +786,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << "Barrel envelope parameters: " << " Length=" << zEndSection - << " Rmin=" << dbManager->GetEnvRin()*CLHEP::cm - << " Rmax=" << dbManager->GetEnvRout()*CLHEP::cm + << " Rmin=" << dbManager->GetEnvRin()*GeoModelKernelUnits::cm + << " Rmax=" << dbManager->GetEnvRout()*GeoModelKernelUnits::cm << endmsg; // Envelopes for two barrel fingers, positive finger GeoTubs* fingerMotherPos = new GeoTubs(BFingerRmin, - dbManager->GetEnvRout()*CLHEP::cm, + dbManager->GetEnvRout()*GeoModelKernelUnits::cm, BFingerLengthPos/2, AnglMin, AnglMax); @@ -810,7 +812,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) // Negative finger GeoTubs* fingerMotherNeg = new GeoTubs(BFingerRmin, - dbManager->GetEnvRout()*CLHEP::cm, + dbManager->GetEnvRout()*GeoModelKernelUnits::cm, BFingerLengthNeg/2, AnglMin, AnglMax); @@ -820,7 +822,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << "Barrel finger envelope parameters: " << " length Pos/Neg=" << BFingerLengthPos << "/" << BFingerLengthNeg - << " Rmin=" << BFingerRmin << " Rmax=" << dbManager->GetEnvRout()*CLHEP::cm + << " Rmin=" << BFingerRmin << " Rmax=" << dbManager->GetEnvRout()*GeoModelKernelUnits::cm << endmsg; // Envelopes for two barrel saddle supports, positive @@ -838,15 +840,15 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(EnvType == 3) { if(m_log->level()<=MSG::DEBUG) - (*m_log) << MSG::DEBUG <<" EBarrelPos DZ "<<(dbManager->GetEnvZLength()*CLHEP::cm- EBFingerLengthPos)/2<< endmsg; + (*m_log) << MSG::DEBUG <<" EBarrelPos DZ "<<(dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthPos)/2<< endmsg; checking("EBarrel (+)", false, 0, - dbManager->GetEnvRin()*CLHEP::cm,dbManager->GetEnvRout()*CLHEP::cm, - AnglMin,AnglMax,(dbManager->GetEnvZLength()*CLHEP::cm- EBFingerLengthPos)/2); + dbManager->GetEnvRin()*GeoModelKernelUnits::cm,dbManager->GetEnvRout()*GeoModelKernelUnits::cm, + AnglMin,AnglMax,(dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthPos)/2); - GeoTubs* GeneralMother = new GeoTubs(dbManager->GetEnvRin()*CLHEP::cm, - dbManager->GetEnvRout()*CLHEP::cm, - (dbManager->GetEnvZLength()*CLHEP::cm- EBFingerLengthPos)/2, + GeoTubs* GeneralMother = new GeoTubs(dbManager->GetEnvRin()*GeoModelKernelUnits::cm, + dbManager->GetEnvRout()*GeoModelKernelUnits::cm, + (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthPos)/2, AnglMin, AnglMax); GeoTubs* ebarrelMotherPos = GeneralMother; @@ -855,18 +857,18 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << "Positive ext.barrel envelope parameters: " - << " length=" << (dbManager->GetEnvZLength()*CLHEP::cm- EBFingerLength) - << " Rmin=" << dbManager->GetEnvRin()*CLHEP::cm - << " Rmax=" << dbManager->GetEnvRout()*CLHEP::cm + << " length=" << (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLength) + << " Rmin=" << dbManager->GetEnvRin()*GeoModelKernelUnits::cm + << " Rmax=" << dbManager->GetEnvRout()*GeoModelKernelUnits::cm << endmsg; // Envelope for finger separately checking("EBarrel (+)", false, 0, - EFingerRmin,dbManager->GetEnvRout()*CLHEP::cm, + EFingerRmin,dbManager->GetEnvRout()*GeoModelKernelUnits::cm, AnglMin,AnglMax, EBFingerLength/2); GeoTubs* fingerMother = new GeoTubs(EFingerRmin, - dbManager->GetEnvRout()*CLHEP::cm, + dbManager->GetEnvRout()*GeoModelKernelUnits::cm, EBFingerLength/2, AnglMin, AnglMax); @@ -877,7 +879,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) (*m_log) << MSG::DEBUG << "Positive ext.barrel finger envelope parameters: " << " length=" << EBFingerLength << " Rmin=" << EFingerRmin - << " Rmax=" << (dbManager->GetEnvRout())*CLHEP::cm + << " Rmax=" << (dbManager->GetEnvRout())*GeoModelKernelUnits::cm << endmsg; if (dbManager->BoolSaddle()) @@ -898,11 +900,11 @@ void TileAtlasFactory::create(GeoPhysVol *world) // Negative Ext.Barrel if(EnvType == 2) { if(m_log->level()<=MSG::DEBUG) - (*m_log) << MSG::DEBUG <<" EBarrelNeg DZ "<<(dbManager->GetEnvZLength()*CLHEP::cm- EBFingerLengthNeg)/2<< endmsg; + (*m_log) << MSG::DEBUG <<" EBarrelNeg DZ "<<(dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthNeg)/2<< endmsg; - GeoTubs* GeneralMother = new GeoTubs(dbManager->GetEnvRin()*CLHEP::cm, - dbManager->GetEnvRout()*CLHEP::cm, - (dbManager->GetEnvZLength()*CLHEP::cm- EBFingerLengthNeg)/2, + GeoTubs* GeneralMother = new GeoTubs(dbManager->GetEnvRin()*GeoModelKernelUnits::cm, + dbManager->GetEnvRout()*GeoModelKernelUnits::cm, + (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthNeg)/2, AnglMin, AnglMax); GeoTubs* ebarrelMotherNeg = GeneralMother; @@ -911,14 +913,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << "Nevative ext.barrel envelope parameters: " - << " length=" << (dbManager->GetEnvZLength()*CLHEP::cm- EBFingerLength) - << " Rmin=" << dbManager->GetEnvRin()*CLHEP::cm - << " Rmax=" << dbManager->GetEnvRout()*CLHEP::cm + << " length=" << (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLength) + << " Rmin=" << dbManager->GetEnvRin()*GeoModelKernelUnits::cm + << " Rmax=" << dbManager->GetEnvRout()*GeoModelKernelUnits::cm << endmsg; // Envelope for finger separately GeoTubs* fingerMother = new GeoTubs(EFingerRmin, - dbManager->GetEnvRout()*CLHEP::cm, + dbManager->GetEnvRout()*GeoModelKernelUnits::cm, EBFingerLengthNeg/2, AnglMin, AnglMax); @@ -929,7 +931,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) (*m_log) << MSG::DEBUG <<"Negative ext.barrel finger envelope parameters: " << " length=" << EBFingerLengthNeg << " Rmin=" << EFingerRmin - << " Rmax=" << dbManager->GetEnvRout()*CLHEP::cm + << " Rmax=" << dbManager->GetEnvRout()*GeoModelKernelUnits::cm << endmsg; if (dbManager->BoolSaddle()) @@ -963,28 +965,28 @@ void TileAtlasFactory::create(GeoPhysVol *world) dzITC1 = dbManager->TILBdzmodul(); (*m_log) << MSG::INFO << " Positive ITC envelope parameters: PLUG1 " - <<" Rmin= "<<rMinITC1*CLHEP::cm<<" Rmax= "<<rMaxITC1*CLHEP::cm<<" dzITC1= "<<dzITC1/2*CLHEP::cm<< endmsg; + <<" Rmin= "<<rMinITC1*GeoModelKernelUnits::cm<<" Rmax= "<<rMaxITC1*GeoModelKernelUnits::cm<<" dzITC1= "<<dzITC1/2*GeoModelKernelUnits::cm<< endmsg; (*m_log) << MSG::INFO << " PLUG2 " - <<" Rmin= "<<rMinITC2*CLHEP::cm<<" Rmax= "<<rMaxITC2*CLHEP::cm<<" dzITC2= "<<dzITC2/2*CLHEP::cm<< endmsg; + <<" Rmin= "<<rMinITC2*GeoModelKernelUnits::cm<<" Rmax= "<<rMaxITC2*GeoModelKernelUnits::cm<<" dzITC2= "<<dzITC2/2*GeoModelKernelUnits::cm<< endmsg; checking("ITC itcWheel1 (+)", false, 0, - rMinITC1*CLHEP::cm,rMaxITC1*CLHEP::cm, AnglMin,AnglMax, dzITC1/2*CLHEP::cm); + rMinITC1*GeoModelKernelUnits::cm,rMaxITC1*GeoModelKernelUnits::cm, AnglMin,AnglMax, dzITC1/2*GeoModelKernelUnits::cm); - GeoTubs* itcWheel1 = new GeoTubs(rMinITC1*CLHEP::cm, - rMaxITC1*CLHEP::cm, - dzITC1/2*CLHEP::cm, + GeoTubs* itcWheel1 = new GeoTubs(rMinITC1*GeoModelKernelUnits::cm, + rMaxITC1*GeoModelKernelUnits::cm, + dzITC1/2*GeoModelKernelUnits::cm, AnglMin, AnglMax); checking("ITC itcWheel2 (+)", false, 0, - rMinITC2*CLHEP::cm,rMaxITC2*CLHEP::cm, AnglMin,AnglMax, dzITC2/2*CLHEP::cm); + rMinITC2*GeoModelKernelUnits::cm,rMaxITC2*GeoModelKernelUnits::cm, AnglMin,AnglMax, dzITC2/2*GeoModelKernelUnits::cm); - GeoTubs* itcWheel2 = new GeoTubs(rMinITC2*CLHEP::cm, - rMaxITC2*CLHEP::cm, - dzITC2/2*CLHEP::cm, + GeoTubs* itcWheel2 = new GeoTubs(rMinITC2*GeoModelKernelUnits::cm, + rMaxITC2*GeoModelKernelUnits::cm, + dzITC2/2*GeoModelKernelUnits::cm, AnglMin, AnglMax); - Z = ( dzITC1 - dzITC2)/2*CLHEP::cm; - HepGeom::Translate3D itcWheel2OffsetPos(0.,0., Z); + Z = ( dzITC1 - dzITC2)/2*GeoModelKernelUnits::cm; + GeoTrf::Translate3D itcWheel2OffsetPos(0.,0., Z); zITCStandard = Z; @@ -997,13 +999,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3); checking("Gap (+)", false, 0, - dbManager->TILBrminimal()*CLHEP::cm, - dbManager->TILBrmaximal()*CLHEP::cm/cos(deltaPhi/2*CLHEP::deg), - AnglMin,AnglMax, dbManager->TILBdzmodul()/2*CLHEP::cm); + dbManager->TILBrminimal()*GeoModelKernelUnits::cm, + dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2*GeoModelKernelUnits::deg), + AnglMin,AnglMax, dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm); - GeoTubs* GapMotherPos = new GeoTubs(dbManager->TILBrminimal()*CLHEP::cm, - dbManager->TILBrmaximal()*CLHEP::cm/cos(deltaPhi/2*CLHEP::deg), - dbManager->TILBdzmodul()/2*CLHEP::cm, + GeoTubs* GapMotherPos = new GeoTubs(dbManager->TILBrminimal()*GeoModelKernelUnits::cm, + dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2*GeoModelKernelUnits::deg), + dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm, AnglMin, AnglMax); GeoLogVol* lvGapMotherPos = new GeoLogVol("Gap",GapMotherPos,matAir); @@ -1013,13 +1015,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); checking("Crack (+)", spE4, 0, - rMinE4pos*CLHEP::cm, - dbManager->TILBrmaximal()*CLHEP::cm/cos(deltaPhi/2*CLHEP::deg), - AnglMin,AnglMax, dbManager->TILBdzmodul()/2*CLHEP::cm); + rMinE4pos*GeoModelKernelUnits::cm, + dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2*GeoModelKernelUnits::deg), + AnglMin,AnglMax, dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm); - GeoTubs* crackMotherPos = new GeoTubs(rMinE4pos*CLHEP::cm, - dbManager->TILBrmaximal()*CLHEP::cm/cos(deltaPhi/2*CLHEP::deg), - dbManager->TILBdzmodul()/2*CLHEP::cm, + GeoTubs* crackMotherPos = new GeoTubs(rMinE4pos*GeoModelKernelUnits::cm, + dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2*GeoModelKernelUnits::deg), + dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm, AnglMin, AnglMax); GeoLogVol* lvCrackMotherPos = new GeoLogVol("Crack",crackMotherPos,matAir); @@ -1042,28 +1044,28 @@ void TileAtlasFactory::create(GeoPhysVol *world) dzITC1 = dbManager->TILBdzmodul(); (*m_log) << MSG::INFO << " Negative ITC envelope parameters: PLUG1 " - <<" Rmin= "<<rMinITC1*CLHEP::cm<<" Rmax= "<<rMaxITC1*CLHEP::cm<<" dzITC1= "<<dzITC1/2*CLHEP::cm<<endmsg; + <<" Rmin= "<<rMinITC1*GeoModelKernelUnits::cm<<" Rmax= "<<rMaxITC1*GeoModelKernelUnits::cm<<" dzITC1= "<<dzITC1/2*GeoModelKernelUnits::cm<<endmsg; (*m_log) << MSG::INFO << " PLUG2 " - <<" Rmin= "<<rMinITC2*CLHEP::cm<<" Rmax= "<<rMaxITC2*CLHEP::cm<<" dzITC2= "<<dzITC2/2*CLHEP::cm<<endmsg; + <<" Rmin= "<<rMinITC2*GeoModelKernelUnits::cm<<" Rmax= "<<rMaxITC2*GeoModelKernelUnits::cm<<" dzITC2= "<<dzITC2/2*GeoModelKernelUnits::cm<<endmsg; checking("ITC itcWheel1 (-)", false, 0, - rMinITC1*CLHEP::cm,rMaxITC1*CLHEP::cm, AnglMin,AnglMax, dzITC1/2*CLHEP::cm); + rMinITC1*GeoModelKernelUnits::cm,rMaxITC1*GeoModelKernelUnits::cm, AnglMin,AnglMax, dzITC1/2*GeoModelKernelUnits::cm); - GeoTubs* itcWheel1 = new GeoTubs(rMinITC1*CLHEP::cm, - rMaxITC1*CLHEP::cm, - dzITC1/2*CLHEP::cm, + GeoTubs* itcWheel1 = new GeoTubs(rMinITC1*GeoModelKernelUnits::cm, + rMaxITC1*GeoModelKernelUnits::cm, + dzITC1/2*GeoModelKernelUnits::cm, AnglMin, AnglMax); checking("ITC itcWheel2 (-)", false, 0, - rMinITC2*CLHEP::cm,rMaxITC2*CLHEP::cm, AnglMin,AnglMax, dzITC2/2*CLHEP::cm); + rMinITC2*GeoModelKernelUnits::cm,rMaxITC2*GeoModelKernelUnits::cm, AnglMin,AnglMax, dzITC2/2*GeoModelKernelUnits::cm); - GeoTubs* itcWheel2 = new GeoTubs(rMinITC2*CLHEP::cm, - rMaxITC2*CLHEP::cm, - dzITC2/2*CLHEP::cm, + GeoTubs* itcWheel2 = new GeoTubs(rMinITC2*GeoModelKernelUnits::cm, + rMaxITC2*GeoModelKernelUnits::cm, + dzITC2/2*GeoModelKernelUnits::cm, AnglMin, AnglMax); - Z = (-dzITC1 + dzITC2)/2*CLHEP::cm; - HepGeom::Translate3D itcWheel2OffsetNeg(0.,0., Z); + Z = (-dzITC1 + dzITC2)/2*GeoModelKernelUnits::cm; + GeoTrf::Translate3D itcWheel2OffsetNeg(0.,0., Z); zITCStandard = Z; @@ -1076,13 +1078,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3); checking("Gap (-)", false, 1, - dbManager->TILBrminimal()*CLHEP::cm, - dbManager->TILBrmaximal()*CLHEP::cm/cos(deltaPhi/2*CLHEP::deg), - AnglMin,AnglMax, dbManager->TILBdzmodul()/2*CLHEP::cm); + dbManager->TILBrminimal()*GeoModelKernelUnits::cm, + dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2*GeoModelKernelUnits::deg), + AnglMin,AnglMax, dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm); - GeoTubs* GapMotherNeg = new GeoTubs(dbManager->TILBrminimal()*CLHEP::cm, - dbManager->TILBrmaximal()*CLHEP::cm/cos(deltaPhi/2*CLHEP::deg), - dbManager->TILBdzmodul()/2*CLHEP::cm, + GeoTubs* GapMotherNeg = new GeoTubs(dbManager->TILBrminimal()*GeoModelKernelUnits::cm, + dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2*GeoModelKernelUnits::deg), + dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm, AnglMin, AnglMax); GeoLogVol* lvGapMotherNeg = new GeoLogVol("Gap",GapMotherNeg,matAir); @@ -1092,13 +1094,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); checking("Crack (-)", spE4, 0, - rMinE4neg*CLHEP::cm, - dbManager->TILBrmaximal()*CLHEP::cm/cos(deltaPhi/2*CLHEP::deg), - AnglMin,AnglMax, dbManager->TILBdzmodul()/2*CLHEP::cm); + rMinE4neg*GeoModelKernelUnits::cm, + dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2*GeoModelKernelUnits::deg), + AnglMin,AnglMax, dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm); - GeoTubs* crackMotherNeg = new GeoTubs(rMinE4neg*CLHEP::cm, - dbManager->TILBrmaximal()*CLHEP::cm/cos(deltaPhi/2*CLHEP::deg), - dbManager->TILBdzmodul()/2*CLHEP::cm, + GeoTubs* crackMotherNeg = new GeoTubs(rMinE4neg*GeoModelKernelUnits::cm, + dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2*GeoModelKernelUnits::deg), + dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm, AnglMin, AnglMax); GeoLogVol* lvCrackMotherNeg = new GeoLogVol("Crack",crackMotherNeg,matAir); @@ -1117,9 +1119,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) // the main loop around all phi modules position int ModuleNcp =0; - GeoTransform* yrotMod = new GeoTransform(HepGeom::RotateY3D(90*CLHEP::deg)); + GeoTransform* yrotMod = new GeoTransform(GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)); yrotMod->ref(); - GeoTransform* XYrtMod = new GeoTransform(HepGeom::RotateX3D(180*CLHEP::deg) * HepGeom::RotateY3D(90*CLHEP::deg)); + GeoTransform* XYrtMod = new GeoTransform(GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)); XYrtMod->ref(); for(int ModCounter = 0; ModCounter < NumberOfMod; ModCounter++){ @@ -1130,9 +1132,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) double phi = (double(ModuleNcp-1) + 0.5)*deltaPhi; double ph1 = (double(ModuleNcp-1))*deltaPhi; - GeoTransform* zrotMod = new GeoTransform(HepGeom::RotateZ3D(phi*CLHEP::deg)); + GeoTransform* zrotMod = new GeoTransform(GeoTrf::RotateZ3D(phi*GeoModelKernelUnits::deg)); zrotMod->ref(); - GeoTransform* zrotSaddle = new GeoTransform(HepGeom::RotateZ3D(ph1*CLHEP::deg)); + GeoTransform* zrotSaddle = new GeoTransform(GeoTrf::RotateZ3D(ph1*GeoModelKernelUnits::deg)); zrotSaddle->ref(); dbManager->SetCurrentModuleByIndex(ModuleNcp-1); @@ -1159,10 +1161,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSectionByNumber(ModType); - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - (dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) @@ -1186,8 +1188,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) deltaPhi); } - GeoTransform* xtraMod = new GeoTransform(HepGeom::TranslateX3D( - (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2 * CLHEP::cm)); + GeoTransform* xtraMod = new GeoTransform(GeoTrf::TranslateX3D( + (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2 * GeoModelKernelUnits::cm)); pvBarrelMother->add(zrotMod); pvBarrelMother->add(xtraMod); @@ -1201,9 +1203,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentTifg(1); // Barrel finger zEndSection = dbManager->TILBzoffset() + dbManager->TILBdzmodul()/2; - heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax())*CLHEP::cm; - dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2*CLHEP::deg)*CLHEP::cm; - dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2*CLHEP::deg)*CLHEP::cm; + heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax())*GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2*GeoModelKernelUnits::deg)*GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2*GeoModelKernelUnits::deg)*GeoModelKernelUnits::cm; // Finger Positive, positioning (only Left ModFingpattern == 10) if ( ModFingpattern != 10 ) { @@ -1223,9 +1225,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) deltaPhi, m_testbeamGeometry, ModuleNcp, - BFingerLengthPos*(1./CLHEP::cm)); + BFingerLengthPos*(1./GeoModelKernelUnits::cm)); - GeoTransform* xtraModFingerPos = new GeoTransform(HepGeom::TranslateX3D((dbManager->TILErmax() + dbManager->TILBrmax())/2*CLHEP::cm)); + GeoTransform* xtraModFingerPos = new GeoTransform(GeoTrf::TranslateX3D((dbManager->TILErmax() + dbManager->TILBrmax())/2*GeoModelKernelUnits::cm)); //(*m_log) << MSG::DEBUG << "R Index " << ModuleNcp << " Fingpattern "<< ModFingpattern << endmsg; @@ -1256,9 +1258,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) deltaPhi, m_testbeamGeometry, ModuleNcp*100, - BFingerLengthNeg*(1./CLHEP::cm)); + BFingerLengthNeg*(1./GeoModelKernelUnits::cm)); - GeoTransform* xtraModFingerNeg = new GeoTransform(HepGeom::TranslateX3D((dbManager->TILErmax() + dbManager->TILBrmax())/2*CLHEP::cm)); + GeoTransform* xtraModFingerNeg = new GeoTransform(GeoTrf::TranslateX3D((dbManager->TILErmax() + dbManager->TILBrmax())/2*GeoModelKernelUnits::cm)); // (*m_log) << MSG::DEBUG << "L Index " << ModuleNcp << " Fingpattern "<< ModFingpattern << endmsg; @@ -1277,7 +1279,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) GeoTubs* SaddleModule = new GeoTubs(BFingerRmin-RadiusSaddle, BFingerRmin, DzSaddleSupport/2, - 0.,deltaPhi*CLHEP::deg); + 0.,deltaPhi*GeoModelKernelUnits::deg); GeoLogVol* lvSaddleModule = new GeoLogVol("SaddleModule",SaddleModule,matIron); GeoPhysVol* pvSaddleModule = new GeoPhysVol(lvSaddleModule); @@ -1300,16 +1302,16 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSectionByNumber(ModType); // Mother module - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.* dbManager->TILBnperiod()); - double Radius = (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2 * CLHEP::cm; + double Radius = (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2 * GeoModelKernelUnits::cm; checking("EBarrelModule (+)", false, 1, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -1334,19 +1336,19 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " BoolCuts YES "<< dbManager->BoolCuts() << endmsg; - double PoZ2 =0, PoZ1 =0, thicknessEndPlate =dbManager->TILBdzend1()*CLHEP::cm; + double PoZ2 =0, PoZ1 =0, thicknessEndPlate =dbManager->TILBdzend1()*GeoModelKernelUnits::cm; - PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*CLHEP::cm- EBFingerLengthPos)/2; + PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthPos)/2; PoZ2 = PoZ1 + modl_length/4; if ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) - { HepGeom::Transform3D TransCut2 = HepGeom::TranslateZ3D(-Radius) * HepGeom::RotateX3D((90-phi)*CLHEP::deg) * HepGeom::RotateY3D(180*CLHEP::deg) - * HepGeom::Translate3D(-PoZ2,0.,-PosY); + { GeoTrf::Transform3D TransCut2 = GeoTrf::TranslateZ3D(-Radius) * GeoTrf::RotateX3D((90-phi)*GeoModelKernelUnits::deg) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) + * GeoTrf::Translate3D(-PoZ2,0.,-PosY); if (ModuleNcp>=60 && ModuleNcp<=62) - { HepGeom::Transform3D TransCutL = HepGeom::TranslateZ3D(-Radius) - * HepGeom::RotateY3D(180*CLHEP::deg) * HepGeom::RotateX3D(phi*CLHEP::deg) - * HepGeom::Translate3D(PoZ1,PosYcut,-PosXcut); + { GeoTrf::Transform3D TransCutL = GeoTrf::TranslateZ3D(-Radius) + * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(phi*GeoModelKernelUnits::deg) + * GeoTrf::Translate3D(PoZ1,PosYcut,-PosXcut); // Cuting of module (Left) const GeoShape& TmL_EBarrelModuleMotherPos = ebarrelModuleMotherPos->subtract((*CutA)<<TransCut2). @@ -1355,9 +1357,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) lvEBarrelModuleMotherPos = new GeoLogVol("EBarrelModule",&TmL_EBarrelModuleMotherPos,matAir); } else if (ModuleNcp>=35 && ModuleNcp<=37) - { HepGeom::Transform3D TransCutR = HepGeom::TranslateZ3D(-Radius) - * HepGeom::RotateY3D(180*CLHEP::deg) * HepGeom::RotateX3D(phi*CLHEP::deg) - * HepGeom::Translate3D(PoZ1,PosYcut,PosXcut) * HepGeom::RotateY3D(180*CLHEP::deg); + { GeoTrf::Transform3D TransCutR = GeoTrf::TranslateZ3D(-Radius) + * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(phi*GeoModelKernelUnits::deg) + * GeoTrf::Translate3D(PoZ1,PosYcut,PosXcut) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg); // Cuting of module (Right) const GeoShape& TmR_EBarrelModuleMotherPos = ebarrelModuleMotherPos->subtract((*CutA)<<TransCut2). @@ -1384,7 +1386,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) ModuleNcp); } - GeoTransform* xtraModPos = new GeoTransform(HepGeom::TranslateX3D(Radius)); + GeoTransform* xtraModPos = new GeoTransform(GeoTrf::TranslateX3D(Radius)); pvEBarrelMotherPos->add(zrotMod); pvEBarrelMotherPos->add(xtraModPos); @@ -1403,14 +1405,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) (*m_log) << MSG::DEBUG << " BoolCuts YES "<< dbManager->BoolCuts() << endmsg; double PoZ2 =0, PoZ1 =0; - double thicknessEndPlate = dbManager->TILBdzend1()*CLHEP::cm; + double thicknessEndPlate = dbManager->TILBdzend1()*GeoModelKernelUnits::cm; - PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*CLHEP::cm- EBFingerLengthPos)/2; + PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthPos)/2; PoZ2 = modl_length/4 + PoZ1; if ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) - { HepGeom::Transform3D TransCut2 = HepGeom::TranslateZ3D(-Radius) * HepGeom::RotateX3D((90-phi)*CLHEP::deg) * HepGeom::RotateY3D(180*CLHEP::deg) - * HepGeom::Translate3D(-PoZ2,0.,-PosY); + { GeoTrf::Transform3D TransCut2 = GeoTrf::TranslateZ3D(-Radius) * GeoTrf::RotateX3D((90-phi)*GeoModelKernelUnits::deg) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) + * GeoTrf::Translate3D(-PoZ2,0.,-PosY); // Cuting of pvEBarrelModuleMotherPos (-) GeoCutVolAction action1(*CutA, TransCut2); @@ -1419,9 +1421,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) pvEBarrelModuleMotherPos->unref(); // Cleaning useless volume if (ModuleNcp>=60 && ModuleNcp<=62) - { HepGeom::Transform3D TransCutL = HepGeom::TranslateZ3D(-Radius) - * HepGeom::RotateY3D(180*CLHEP::deg) * HepGeom::RotateX3D(phi*CLHEP::deg) - * HepGeom::Translate3D(PoZ1,PosYcut,-PosXcut); + { GeoTrf::Transform3D TransCutL = GeoTrf::TranslateZ3D(-Radius) + * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(phi*GeoModelKernelUnits::deg) + * GeoTrf::Translate3D(PoZ1,PosYcut,-PosXcut); // Cuting of pvEBarrelModuleMotherPos (Left) GeoCutVolAction action2(*CutB, TransCutL); @@ -1432,9 +1434,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) pvEBarrelMotherPos->add(pvTmL_EBarrelModuleMotherPos); } else if (ModuleNcp>=35 && ModuleNcp<=37) - { HepGeom::Transform3D TransCutR = HepGeom::TranslateZ3D(-Radius) - * HepGeom::RotateY3D(180*CLHEP::deg) * HepGeom::RotateX3D(phi*CLHEP::deg) - * HepGeom::Translate3D(PoZ1,PosYcut,PosXcut) * HepGeom::RotateY3D(180*CLHEP::deg); + { GeoTrf::Transform3D TransCutR = GeoTrf::TranslateZ3D(-Radius) + * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(phi*GeoModelKernelUnits::deg) + * GeoTrf::Translate3D(PoZ1,PosYcut,PosXcut) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg); // Cuting of pvEBarrelModuleMotherPos (Right) GeoCutVolAction action3(*CutB, TransCutR); @@ -1457,10 +1459,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentTifg(2); //barrel efinger (small) // Trd - one finger mother - thicknessWedgeMother = dbManager->TIFGdz() * CLHEP::cm; - heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TIFGdz() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; checking("EFingerModule (+)", false, 1, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -1483,8 +1485,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) m_testbeamGeometry, ModuleNcp); } - GeoTransform* xtraModFingerPos = new GeoTransform(HepGeom::TranslateX3D( - (dbManager->TILErmax() + dbManager->TILBrmax())/2*CLHEP::cm)); + GeoTransform* xtraModFingerPos = new GeoTransform(GeoTrf::TranslateX3D( + (dbManager->TILErmax() + dbManager->TILBrmax())/2*GeoModelKernelUnits::cm)); pvEFingerMotherPos->add(zrotMod); pvEFingerMotherPos->add(xtraModFingerPos); pvEFingerMotherPos->add(XYrtMod); @@ -1499,7 +1501,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) GeoTubs* SaddleModule = new GeoTubs(BFingerRmin-RadiusSaddle, BFingerRmin, DzSaddleSupport/2, - 0.,deltaPhi*CLHEP::deg); + 0.,deltaPhi*GeoModelKernelUnits::deg); GeoLogVol* lvSaddleModule = new GeoLogVol("SaddleModule",SaddleModule,matIron); GeoPhysVol* pvSaddleModule = new GeoPhysVol(lvSaddleModule); @@ -1519,16 +1521,16 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSectionByNumber(ModType); // Mother module - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod()); - double Radius = (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2 * CLHEP::cm; + double Radius = (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2 * GeoModelKernelUnits::cm; checking("EBarrelModule (-)", false, 1, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -1553,20 +1555,20 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " BoolCuts YES "<< dbManager->BoolCuts() << endmsg; - double PoZ2 =0, PoZ1 =0, thicknessEndPlate = dbManager->TILBdzend1()*CLHEP::cm; + double PoZ2 =0, PoZ1 =0, thicknessEndPlate = dbManager->TILBdzend1()*GeoModelKernelUnits::cm; - PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*CLHEP::cm- EBFingerLengthNeg)/2; + PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthNeg)/2; PoZ2 = PoZ1 + modl_length/4; if ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) - { HepGeom::Transform3D TransCut2 = HepGeom::TranslateZ3D(-Radius) - * HepGeom::RotateX3D((phi-90)*CLHEP::deg) * HepGeom::RotateY3D(180*CLHEP::deg) - * HepGeom::Translate3D(-PoZ2,0,-PosY); + { GeoTrf::Transform3D TransCut2 = GeoTrf::TranslateZ3D(-Radius) + * GeoTrf::RotateX3D((phi-90)*GeoModelKernelUnits::deg) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) + * GeoTrf::Translate3D(-PoZ2,0,-PosY); if (ModuleNcp>=60 && ModuleNcp<=62) - { HepGeom::Transform3D TransCutL = HepGeom::TranslateZ3D(-Radius) - * HepGeom::RotateY3D(180*CLHEP::deg) * HepGeom::RotateX3D(-phi*CLHEP::deg) - * HepGeom::Translate3D(PoZ1,-PosYcut,-PosXcut); + { GeoTrf::Transform3D TransCutL = GeoTrf::TranslateZ3D(-Radius) + * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(-phi*GeoModelKernelUnits::deg) + * GeoTrf::Translate3D(PoZ1,-PosYcut,-PosXcut); // Cuting of module (Left) const GeoShape& TmL_EBarrelModuleMotherNeg = ebarrelModuleMotherNeg->subtract((*CutA)<<TransCut2). @@ -1575,9 +1577,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) lvEBarrelModuleMotherNeg = new GeoLogVol("EBarrelModule",&TmL_EBarrelModuleMotherNeg,matAir); } else if (ModuleNcp>=35 && ModuleNcp<=37) - { HepGeom::Transform3D TransCutR = HepGeom::TranslateZ3D(-Radius) - * HepGeom::RotateY3D(180*CLHEP::deg) * HepGeom::RotateX3D(-phi*CLHEP::deg) - * HepGeom::Translate3D(PoZ1,-PosYcut,PosXcut) * HepGeom::RotateY3D(180*CLHEP::deg); + { GeoTrf::Transform3D TransCutR = GeoTrf::TranslateZ3D(-Radius) + * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(-phi*GeoModelKernelUnits::deg) + * GeoTrf::Translate3D(PoZ1,-PosYcut,PosXcut) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg); // Cuting of module (Right) const GeoShape& TmR_EBarrelModuleMotherNeg = ebarrelModuleMotherNeg->subtract((*CutA)<<TransCut2). @@ -1605,7 +1607,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) 0.,true); } - GeoTransform* xtraModNeg = new GeoTransform(HepGeom::TranslateX3D(Radius)); + GeoTransform* xtraModNeg = new GeoTransform(GeoTrf::TranslateX3D(Radius)); pvEBarrelMotherNeg->add(zrotMod); pvEBarrelMotherNeg->add(xtraModNeg); @@ -1623,15 +1625,15 @@ void TileAtlasFactory::create(GeoPhysVol *world) (*m_log) << MSG::DEBUG << " BoolCuts YES "<< dbManager->BoolCuts() << endmsg; double PoZ2 =0, PoZ1 =0; - double thicknessEndPlate = dbManager->TILBdzend1()*CLHEP::cm; + double thicknessEndPlate = dbManager->TILBdzend1()*GeoModelKernelUnits::cm; - PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*CLHEP::cm- EBFingerLengthPos)/2; + PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthPos)/2; PoZ2 = modl_length/4 + PoZ1; if ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) - { HepGeom::Transform3D TransCut2 = HepGeom::TranslateZ3D(-Radius) - * HepGeom::RotateX3D((phi-90)*CLHEP::deg) * HepGeom::RotateY3D(180*CLHEP::deg) - * HepGeom::Translate3D(-PoZ2,0.,-PosY); + { GeoTrf::Transform3D TransCut2 = GeoTrf::TranslateZ3D(-Radius) + * GeoTrf::RotateX3D((phi-90)*GeoModelKernelUnits::deg) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) + * GeoTrf::Translate3D(-PoZ2,0.,-PosY); // Cuting of pvEBarrelModuleMotherNeg (-) GeoCutVolAction action1(*CutA, TransCut2); @@ -1640,9 +1642,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) pvEBarrelModuleMotherNeg->unref(); // Cleaning useless volume if (ModuleNcp>=60 && ModuleNcp<=62) - { HepGeom::Transform3D TransCutL = HepGeom::TranslateZ3D(-Radius) - * HepGeom::RotateY3D(180*CLHEP::deg) * HepGeom::RotateX3D(-phi*CLHEP::deg) - * HepGeom::Translate3D(PoZ1,-PosYcut,-PosXcut); + { GeoTrf::Transform3D TransCutL = GeoTrf::TranslateZ3D(-Radius) + * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(-phi*GeoModelKernelUnits::deg) + * GeoTrf::Translate3D(PoZ1,-PosYcut,-PosXcut); // Cuting of pvEBarrelModuleMotherNeg (Left) GeoCutVolAction action2(*CutB, TransCutL); @@ -1653,9 +1655,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) pvEBarrelMotherNeg->add(pvTmL_EBarrelModuleMotherNeg); } else if (ModuleNcp>=35 && ModuleNcp<=37) - { HepGeom::Transform3D TransCutR = HepGeom::TranslateZ3D(-Radius) - * HepGeom::RotateY3D(180*CLHEP::deg) * HepGeom::RotateX3D(-phi*CLHEP::deg) - * HepGeom::Translate3D(PoZ1,-PosYcut,PosXcut) * HepGeom::RotateY3D(180*CLHEP::deg); + { GeoTrf::Transform3D TransCutR = GeoTrf::TranslateZ3D(-Radius) + * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(-phi*GeoModelKernelUnits::deg) + * GeoTrf::Translate3D(PoZ1,-PosYcut,PosXcut) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg); // Cuting of pvEBarrelModuleMotherNeg (Right) GeoCutVolAction action3(*CutB, TransCutR); @@ -1679,10 +1681,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) //zEndSection = extOffset + dbManager->TILBdzmodul()/2 + dbManager->TILEzshift(); // Trd - one finger mother - thicknessWedgeMother = dbManager->TIFGdz() * CLHEP::cm; - heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TIFGdz() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; checking("EFingerModule (-)", false, 1, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -1705,8 +1707,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) m_testbeamGeometry, ModuleNcp*100); } - GeoTransform* xtraModFingerNeg = new GeoTransform(HepGeom::TranslateX3D( - (dbManager->TILErmax() + dbManager->TILBrmax())/2*CLHEP::cm)); + GeoTransform* xtraModFingerNeg = new GeoTransform(GeoTrf::TranslateX3D( + (dbManager->TILErmax() + dbManager->TILBrmax())/2*GeoModelKernelUnits::cm)); pvEFingerMotherNeg->add(zrotMod); pvEFingerMotherNeg->add(xtraModFingerNeg); pvEFingerMotherNeg->add(yrotMod); @@ -1721,7 +1723,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) GeoTubs* SaddleModule = new GeoTubs(BFingerRmin-RadiusSaddle, BFingerRmin, DzSaddleSupport/2, - 0.,deltaPhi*CLHEP::deg); + 0.,deltaPhi*GeoModelKernelUnits::deg); GeoLogVol* lvSaddleModule = new GeoLogVol("SaddleModule",SaddleModule,matIron); GeoPhysVol* pvSaddleModule = new GeoPhysVol(lvSaddleModule); @@ -1777,7 +1779,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) } } else { (*m_log) << MSG::INFO <<" D4 unavailable "<<endmsg; - dzITC1 = 9.485; //sb [CLHEP::cm] + dzITC1 = 9.485; //sb [GeoModelKernelUnits::cm] } bool specialC10 = (Ifd4 && Ifc10 && rMaxITC2 < rMinITC1); @@ -1792,10 +1794,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) if (Ifd4 || Ifc10) { // The first sub shape - thicknessWedgeMother = dzITC1 * CLHEP::cm; - heightWedgeMother = (rMaxITC1 - rMinITC1) * CLHEP::cm; - dy1WedgeMother = rMinITC1 * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dzITC1 * GeoModelKernelUnits::cm; + heightWedgeMother = (rMaxITC1 - rMinITC1) * GeoModelKernelUnits::cm; + dy1WedgeMother = rMinITC1 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; checking("ITCModule tcModuleSub1Neg (-) ", false, 1, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -1806,10 +1808,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) dy2WedgeMother, heightWedgeMother/2); // The second sub shape - thicknessWedgeMother = dzITC2 * CLHEP::cm; - heightWedgeMother = (rMaxITC2 - rMinITC2) * CLHEP::cm; - dy1WedgeMother = rMinITC2 * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = rMaxITC2 * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dzITC2 * GeoModelKernelUnits::cm; + heightWedgeMother = (rMaxITC2 - rMinITC2) * GeoModelKernelUnits::cm; + dy1WedgeMother = rMinITC2 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = rMaxITC2 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; checking("ITCModule itcModuleSub2Neg (-)", false, 1, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -1820,15 +1822,15 @@ void TileAtlasFactory::create(GeoPhysVol *world) dy2WedgeMother, heightWedgeMother/2 ); - X = (dzITC1 - dzITC2)/2*CLHEP::cm; - Z = ((rMinITC2+rMaxITC2)-(rMaxITC1 + rMinITC1))/2*CLHEP::cm; + X = (dzITC1 - dzITC2)/2*GeoModelKernelUnits::cm; + Z = ((rMinITC2+rMaxITC2)-(rMaxITC1 + rMinITC1))/2*GeoModelKernelUnits::cm; if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG <<" ITCModule Negative, position X= "<<X<<" Z= "<<Z<< endmsg; - HepGeom::Translate3D itcModule_SubShiftNeg(X, 0., Z); + GeoTrf::Translate3D itcModule_SubShiftNeg(X, 0., Z); const GeoShapeUnion& itcModuleMotherNeg = itcModuleSub1Neg->add(*itcModuleSub2Neg<<itcModule_SubShiftNeg); - HepGeom::Translate3D itcModuleSubShiftNeg(X, 0., Z); + GeoTrf::Translate3D itcModuleSubShiftNeg(X, 0., Z); GeoLogVol* lvITCModuleMotherNeg = new GeoLogVol("ITCModule",&itcModuleMotherNeg,matAir); GeoPhysVol* pvITCModuleMotherNeg = new GeoPhysVol(lvITCModuleMotherNeg); @@ -1841,10 +1843,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) // The D4, PLUG1 dbManager->SetCurrentSectionByNumber(Id4); - thicknessWedgeMother = dzITC1 * CLHEP::cm; - heightWedgeMother = (rMaxITC1 - dbManager->TILBrmin()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dzITC1 * GeoModelKernelUnits::cm; + heightWedgeMother = (rMaxITC1 - dbManager->TILBrmin()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; // ps changes dzITC1 -> dzmodul Glue = dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2(); NbPeriod = dbManager->TILBnperiod(); @@ -1881,7 +1883,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) heightWedgeMother/2); //Second submother for frontplate double dzITC2Bis = (specialC10) ? 0.0 : dzITC2; // for special C10 D4 and C10 do not overlap - thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2Bis) * CLHEP::cm; + thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2Bis) * GeoModelKernelUnits::cm; if(m_log->level()<=MSG::DEBUG) if (specialC10) (*m_log) << MSG::DEBUG <<" Separate C10 and D4 in module " << ModuleNcp << endmsg; @@ -1889,9 +1891,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) GeoLogVol *lvPlug1ModuleMotherNeg=0; if (thicknessWedgeMother > rless) { - heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; + heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; checking("Plug1Module plug2SubMotherNeg (-)", false, 2, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -1902,8 +1904,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) dy2WedgeMother, heightWedgeMother/2); - HepGeom::Translate3D plug1SubOffsetNeg(-dzITC2Bis*CLHEP::cm/2, 0., - (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*CLHEP::cm/2); + GeoTrf::Translate3D plug1SubOffsetNeg(-dzITC2Bis*GeoModelKernelUnits::cm/2, 0., + (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*GeoModelKernelUnits::cm/2); const GeoShapeUnion& plug1ModuleMotherNeg = plug1SubMotherNeg->add(*plug2SubMotherNeg<<plug1SubOffsetNeg); @@ -1926,8 +1928,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) dzITC2Bis); } - Z = (dbManager->TILBrmin()-dbManager->TILBrminimal())*CLHEP::cm/2; - GeoTransform* tfPlug1ModuleMotherNeg = new GeoTransform(HepGeom::Translate3D(0.,0.,Z)); + Z = (dbManager->TILBrmin()-dbManager->TILBrminimal())*GeoModelKernelUnits::cm/2; + GeoTransform* tfPlug1ModuleMotherNeg = new GeoTransform(GeoTrf::Translate3D(0.,0.,Z)); pvITCModuleMotherNeg->add(tfPlug1ModuleMotherNeg); pvITCModuleMotherNeg->add(pvPlug1ModuleMotherNeg); @@ -1938,10 +1940,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) // TILE_PLUG2 dbManager->SetCurrentSectionByNumber(Ic10); - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; if (dbManager->TILBnperiod() > 1) { dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() @@ -1984,21 +1986,21 @@ void TileAtlasFactory::create(GeoPhysVol *world) double zShift = 0; NbPeriod = dbManager->TILBnperiod(); - // Z = (dbManager->TILBdzmodul()-dzITC2)/2*CLHEP::cm; + // Z = (dbManager->TILBdzmodul()-dzITC2)/2*GeoModelKernelUnits::cm; // ps Zshift calculated from length of volumes rather than modules (account for special modules) // - Z = (dzITC1 - dzITC2)/2*CLHEP::cm; + Z = (dzITC1 - dzITC2)/2*GeoModelKernelUnits::cm; - if (NbPeriod == 6 && !Ifspecialgirder && fabs(Z) < fabs(zITCStandard)) zShift = zITCStandard*(1./CLHEP::cm); + if (NbPeriod == 6 && !Ifspecialgirder && fabs(Z) < fabs(zITCStandard)) zShift = zITCStandard*(1./GeoModelKernelUnits::cm); if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG <<" ITCModule Negative, position X= "<<X<<" Z= "<<Z <<" zStandard= "<<zITCStandard<< " zShift= " <<zShift <<endmsg; - GeoTransform* xtraITCNeg = new GeoTransform(HepGeom::TranslateX3D( - (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*CLHEP::cm)); - GeoTransform* ztraITCNeg = new GeoTransform(HepGeom::TranslateZ3D(zShift*CLHEP::cm)); + GeoTransform* xtraITCNeg = new GeoTransform(GeoTrf::TranslateX3D( + (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*GeoModelKernelUnits::cm)); + GeoTransform* ztraITCNeg = new GeoTransform(GeoTrf::TranslateZ3D(zShift*GeoModelKernelUnits::cm)); pvITCMotherNeg->add(zrotMod); pvITCMotherNeg->add(xtraITCNeg); @@ -2017,10 +2019,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSectionByNumber(Igap); // Trd - module mother - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = 0.; @@ -2046,8 +2048,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) } // Module position inside mother - GeoTransform* xtraGapNeg = new GeoTransform(HepGeom::TranslateX3D( - (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*CLHEP::cm)); + GeoTransform* xtraGapNeg = new GeoTransform(GeoTrf::TranslateX3D( + (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*GeoModelKernelUnits::cm)); pvGapMotherNeg->add(zrotMod); pvGapMotherNeg->add(xtraGapNeg); pvGapMotherNeg->add(yrotMod); @@ -2063,10 +2065,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSectionByNumber(Icrack); // mother - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = 0.; @@ -2091,8 +2093,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) deltaPhi); } // Module position inside mother - GeoTransform* xtraCrackNeg = new GeoTransform(HepGeom::TranslateX3D( - (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*CLHEP::cm)); + GeoTransform* xtraCrackNeg = new GeoTransform(GeoTrf::TranslateX3D( + (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*GeoModelKernelUnits::cm)); pvCrackMotherNeg->add(zrotMod); pvCrackMotherNeg->add(xtraCrackNeg); pvCrackMotherNeg->add(yrotMod); @@ -2110,10 +2112,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(Ifd4 || Ifc10) { // The first sub shape - thicknessWedgeMother = dzITC1 * CLHEP::cm; - heightWedgeMother = (rMaxITC1 - rMinITC1) * CLHEP::cm; - dy1WedgeMother = rMinITC1 * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dzITC1 * GeoModelKernelUnits::cm; + heightWedgeMother = (rMaxITC1 - rMinITC1) * GeoModelKernelUnits::cm; + dy1WedgeMother = rMinITC1 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; checking("ITCModule itcModuleSub2Pos (+)", false, 1, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -2124,10 +2126,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) dy2WedgeMother , heightWedgeMother/2 ); // The second sub shape - thicknessWedgeMother = dzITC2 * CLHEP::cm; - heightWedgeMother = (rMaxITC2 - rMinITC2) * CLHEP::cm; - dy1WedgeMother = rMinITC2 * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = rMaxITC2 * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dzITC2 * GeoModelKernelUnits::cm; + heightWedgeMother = (rMaxITC2 - rMinITC2) * GeoModelKernelUnits::cm; + dy1WedgeMother = rMinITC2 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = rMaxITC2 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; checking("ITCModule itcModuleSub2Pos (+)", false, 1, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -2138,15 +2140,15 @@ void TileAtlasFactory::create(GeoPhysVol *world) dy2WedgeMother , heightWedgeMother/2 ); - X = (dzITC1 - dzITC2)/2*CLHEP::cm; - Z = ((rMinITC2+rMaxITC2)-(rMaxITC1 + rMinITC1))/2*CLHEP::cm; + X = (dzITC1 - dzITC2)/2*GeoModelKernelUnits::cm; + Z = ((rMinITC2+rMaxITC2)-(rMaxITC1 + rMinITC1))/2*GeoModelKernelUnits::cm; if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG <<" ITCModule Positive, position X= "<<X<<" Z= "<<Z<< endmsg; - HepGeom::Translate3D itcModule_SubShiftPos(X, 0., Z); + GeoTrf::Translate3D itcModule_SubShiftPos(X, 0., Z); const GeoShapeUnion& itcModuleMotherPos = itcModuleSub1Pos->add(*itcModuleSub2Pos<<itcModule_SubShiftPos); - HepGeom::Translate3D itcModuleSubShiftPos(X, 0., Z); + GeoTrf::Translate3D itcModuleSubShiftPos(X, 0., Z); GeoLogVol* lvITCModuleMotherPos = new GeoLogVol("ITCModule",&itcModuleMotherPos,matAir); GeoPhysVol* pvITCModuleMotherPos = new GeoPhysVol(lvITCModuleMotherPos); @@ -2159,10 +2161,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) // The D4, PLUG1 dbManager->SetCurrentSectionByNumber(Id4); - thicknessWedgeMother = dzITC1 * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - heightWedgeMother = (rMaxITC1 - dbManager->TILBrmin()) * CLHEP::cm; + thicknessWedgeMother = dzITC1 * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = rMaxITC1 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + heightWedgeMother = (rMaxITC1 - dbManager->TILBrmin()) * GeoModelKernelUnits::cm; // ps changes dzITC1 -> dzmodul Glue = dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2(); @@ -2202,7 +2204,7 @@ void TileAtlasFactory::create(GeoPhysVol *world) //Second submother C10, PLUG2 double dzITC2Bis = (specialC10) ? 0.0 : dzITC2; // for special C10 D4 and C10 do not overlap - thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2Bis) * CLHEP::cm; + thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2Bis) * GeoModelKernelUnits::cm; if(m_log->level()<=MSG::DEBUG) if (specialC10) (*m_log) << MSG::DEBUG <<" Separate C10 and D4 in module " << ModuleNcp << endmsg; @@ -2210,9 +2212,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) GeoLogVol *lvPlug1ModuleMotherPos=0; if (thicknessWedgeMother > rless) { - heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; + heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; checking("Plug1Module plug2SubMotherPos (+)", false, 2, thicknessWedgeMother/2,thicknessWedgeMother/2,dy1WedgeMother,dy2WedgeMother,heightWedgeMother/2); @@ -2223,8 +2225,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) dy2WedgeMother , heightWedgeMother/2 ); - HepGeom::Translate3D plug1SubOffsetPos(-dzITC2Bis/2*CLHEP::cm, 0., - (dbManager->TILBrminimal()-dbManager->TILBrmaximal())/2*CLHEP::cm); + GeoTrf::Translate3D plug1SubOffsetPos(-dzITC2Bis/2*GeoModelKernelUnits::cm, 0., + (dbManager->TILBrminimal()-dbManager->TILBrmaximal())/2*GeoModelKernelUnits::cm); const GeoShapeUnion& plug1ModuleMotherPos = plug1SubMotherPos->add(*plug2SubMotherPos<<plug1SubOffsetPos); @@ -2246,8 +2248,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) dzITC2Bis); } - Z = (dbManager->TILBrmin()-dbManager->TILBrminimal())*CLHEP::cm/2; - GeoTransform* tfPlug1ModuleMotherPos = new GeoTransform(HepGeom::Translate3D(0.,0.,Z)); + Z = (dbManager->TILBrmin()-dbManager->TILBrminimal())*GeoModelKernelUnits::cm/2; + GeoTransform* tfPlug1ModuleMotherPos = new GeoTransform(GeoTrf::Translate3D(0.,0.,Z)); pvITCModuleMotherPos->add(tfPlug1ModuleMotherPos); pvITCModuleMotherPos->add(pvPlug1ModuleMotherPos); @@ -2258,10 +2260,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) // TILE_PLUG2, C10 dbManager->SetCurrentSectionByNumber(Ic10); - thicknessWedgeMother = dzITC2 * CLHEP::cm; - heightWedgeMother = (rMaxITC2 - rMinITC2) * CLHEP::cm; - dy1WedgeMother = rMinITC2 * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = rMaxITC2 * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dzITC2 * GeoModelKernelUnits::cm; + heightWedgeMother = (rMaxITC2 - rMinITC2) * GeoModelKernelUnits::cm; + dy1WedgeMother = rMinITC2 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = rMaxITC2 * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; if (dbManager->TILBnperiod() > 1) { dzGlue = (dzITC2 - dbManager->TILBdzend1() - dbManager->TILBdzend2() @@ -2304,19 +2306,19 @@ void TileAtlasFactory::create(GeoPhysVol *world) double zShift = 0; NbPeriod = dbManager->TILBnperiod(); - //ps Z = (dbManager->TILBdzmodul()-dzITC2)/2*CLHEP::cm; - Z = (dzITC1 - dzITC2)/2*CLHEP::cm; + //ps Z = (dbManager->TILBdzmodul()-dzITC2)/2*GeoModelKernelUnits::cm; + Z = (dzITC1 - dzITC2)/2*GeoModelKernelUnits::cm; - if (NbPeriod == 6 && !Ifspecialgirder && fabs(Z) < fabs(zITCStandard)) zShift = zITCStandard*(1./CLHEP::cm); + if (NbPeriod == 6 && !Ifspecialgirder && fabs(Z) < fabs(zITCStandard)) zShift = zITCStandard*(1./GeoModelKernelUnits::cm); if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG <<" ITCModule Positive, position X= "<<X<<" Z= "<<Z <<" zStandard= "<<zITCStandard<< " zShift= " <<zShift <<endmsg; - GeoTransform* xtraITCPos = new GeoTransform(HepGeom::TranslateX3D( - (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*CLHEP::cm)); - GeoTransform* ztraITCPos = new GeoTransform(HepGeom::TranslateZ3D(zShift*CLHEP::cm)); + GeoTransform* xtraITCPos = new GeoTransform(GeoTrf::TranslateX3D( + (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*GeoModelKernelUnits::cm)); + GeoTransform* ztraITCPos = new GeoTransform(GeoTrf::TranslateZ3D(zShift*GeoModelKernelUnits::cm)); pvITCMotherPos->add(zrotMod); pvITCMotherPos->add(xtraITCPos); @@ -2336,10 +2338,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSectionByNumber(Igap); // Mother - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = 0; @@ -2365,8 +2367,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) } // Module position inside mother - GeoTransform* xtraGapPos = new GeoTransform(HepGeom::TranslateX3D( - (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*CLHEP::cm)); + GeoTransform* xtraGapPos = new GeoTransform(GeoTrf::TranslateX3D( + (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*GeoModelKernelUnits::cm)); pvGapMotherPos->add(zrotMod); pvGapMotherPos->add(xtraGapPos); pvGapMotherPos->add(XYrtMod); @@ -2382,10 +2384,10 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSectionByNumber(Icrack); // Trd - module mother - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = 0.; @@ -2411,8 +2413,8 @@ void TileAtlasFactory::create(GeoPhysVol *world) } // Module position inside mother - GeoTransform* xtraCrackPos = new GeoTransform(HepGeom::TranslateX3D( - (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*CLHEP::cm)); + GeoTransform* xtraCrackPos = new GeoTransform(GeoTrf::TranslateX3D( + (dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2*GeoModelKernelUnits::cm)); pvCrackMotherPos->add(zrotMod); pvCrackMotherPos->add(xtraCrackPos); pvCrackMotherPos->add(XYrtMod); @@ -2454,9 +2456,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) // consider 3 options - with/without ext.barrels and take into account DZ correction ztrans = 0; - tfBarrelMother = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::RotateZ3D((dbManager->GetEnvDPhi())*CLHEP::deg)); + tfBarrelMother = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*GeoModelKernelUnits::deg)); - (*m_log) << MSG::INFO <<" Positioning barrel with translation "<<ztrans*CLHEP::cm<< endmsg; + (*m_log) << MSG::INFO <<" Positioning barrel with translation "<<ztrans*GeoModelKernelUnits::cm<< endmsg; GeoNameTag* ntBarrelModuleMother = new GeoNameTag("Barrel"); @@ -2466,11 +2468,11 @@ void TileAtlasFactory::create(GeoPhysVol *world) GeoTransform* tfFingerMotherPos; - ztrans = (dbManager->GetEnvZLength()*CLHEP::cm/2 - BFingerLengthPos/2 + PosDelta)*(1./CLHEP::cm); + ztrans = (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm/2 - BFingerLengthPos/2 + PosDelta)*(1./GeoModelKernelUnits::cm); - tfFingerMotherPos = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm)*HepGeom::RotateZ3D((dbManager->GetEnvDPhi())*CLHEP::deg)); + tfFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm)*GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*GeoModelKernelUnits::deg)); - (*m_log) << MSG::INFO <<" Positioning positive barrel finger with translation "<<ztrans*CLHEP::cm<< endmsg; + (*m_log) << MSG::INFO <<" Positioning positive barrel finger with translation "<<ztrans*GeoModelKernelUnits::cm<< endmsg; GeoNameTag* ntFingerMotherPos = new GeoNameTag("TileFingerPos"); @@ -2481,9 +2483,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) if (dbManager->BoolSaddle()) { GeoTransform* tfSaddleMotherPos; - ztrans = (dbManager->GetEnvZLength()*CLHEP::cm/2 - BFingerLengthPos + DzSaddleSupport/2 + PosDelta)*(1./CLHEP::cm); + ztrans = (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm/2 - BFingerLengthPos + DzSaddleSupport/2 + PosDelta)*(1./GeoModelKernelUnits::cm); - tfSaddleMotherPos = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm)*HepGeom::RotateZ3D((dbManager->GetEnvDPhi())*CLHEP::deg)); + tfSaddleMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm)*GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*GeoModelKernelUnits::deg)); GeoNameTag* ntSaddleMotherPos = new GeoNameTag("TileSaddlePos"); @@ -2496,11 +2498,11 @@ void TileAtlasFactory::create(GeoPhysVol *world) GeoTransform* tfFingerMotherNeg; - ztrans = (-dbManager->GetEnvZLength()*CLHEP::cm/2 + BFingerLengthNeg/2 - NegDelta)*(1./CLHEP::cm); + ztrans = (-dbManager->GetEnvZLength()*GeoModelKernelUnits::cm/2 + BFingerLengthNeg/2 - NegDelta)*(1./GeoModelKernelUnits::cm); - tfFingerMotherNeg = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm)*HepGeom::RotateZ3D((dbManager->GetEnvDPhi())*CLHEP::deg)); + tfFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm)*GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*GeoModelKernelUnits::deg)); - (*m_log) << MSG::INFO <<" Positioning negative barrel finger with translation "<<ztrans*CLHEP::cm<< endmsg; + (*m_log) << MSG::INFO <<" Positioning negative barrel finger with translation "<<ztrans*GeoModelKernelUnits::cm<< endmsg; GeoNameTag* ntFingerMotherNeg = new GeoNameTag("TileFingerNeg"); pvTileEnvelopeBarrel->add(tfFingerMotherNeg); @@ -2510,9 +2512,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) if (dbManager->BoolSaddle()) { GeoTransform* tfSaddleMotherNeg; - ztrans = (-dbManager->GetEnvZLength()*CLHEP::cm/2 + BFingerLengthNeg - DzSaddleSupport/2 - NegDelta)*(1./CLHEP::cm); + ztrans = (-dbManager->GetEnvZLength()*GeoModelKernelUnits::cm/2 + BFingerLengthNeg - DzSaddleSupport/2 - NegDelta)*(1./GeoModelKernelUnits::cm); - tfSaddleMotherNeg = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm)*HepGeom::RotateZ3D((dbManager->GetEnvDPhi())*CLHEP::deg)); + tfSaddleMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm)*GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*GeoModelKernelUnits::deg)); GeoNameTag* ntSaddleMotherNeg = new GeoNameTag("TileSaddleNeg"); @@ -2528,9 +2530,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(EnvType == 3) { // positive ext.barrel is always at positive boundary, after finger dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL); - double thicknessEndPlate = dbManager->TILBdzend1()*CLHEP::cm; + double thicknessEndPlate = dbManager->TILBdzend1()*GeoModelKernelUnits::cm; - double PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*CLHEP::cm- EBFingerLengthPos)/2; + double PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthPos)/2; double PoZ2 = modl_length/4 + PoZ1; //-------------------------------------------------------------------------------------------------------------- @@ -2545,14 +2547,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " Iron1: " << dxIron << " " << dyIron << endmsg; - GeoTransform* tfIron1 = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::Translate3D(dxIron,PosY-dyIron,PoZ2) - * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Left + GeoTransform* tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,PoZ2) + * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left pvEBarrelMotherPos->add(tfIron1); pvEBarrelMotherPos->add(new GeoIdentifierTag(1)); pvEBarrelMotherPos->add(pvIron1); - tfIron1 = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::Translate3D(-dxIron,PosY-dyIron,PoZ2) - * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Right + tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(-dxIron,PosY-dyIron,PoZ2) + * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Right pvEBarrelMotherPos->add(tfIron1); pvEBarrelMotherPos->add(pvIron1); @@ -2563,14 +2565,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " Iron2: " << dxIron << " " << dyIron << endmsg; - GeoTransform* tfIron2 = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::Translate3D(dxIron,PosY+dyIron,PoZ2) - * HepGeom::RotateZ3D(-84.*CLHEP::deg) * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Left + GeoTransform* tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,PoZ2) + * GeoTrf::RotateZ3D(-84.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left pvEBarrelMotherPos->add(tfIron2); pvEBarrelMotherPos->add(new GeoIdentifierTag(2)); pvEBarrelMotherPos->add(pvIron2); - tfIron2 = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::Translate3D(-dxIron,PosY+dyIron,PoZ2) - * HepGeom::RotateZ3D(84.*CLHEP::deg) * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Left + tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,PoZ2) + * GeoTrf::RotateZ3D(84.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left pvEBarrelMotherPos->add(tfIron2); pvEBarrelMotherPos->add(pvIron2); @@ -2581,14 +2583,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " Iron3: " << dxIron << " " << dyIron << endmsg; - GeoTransform* tfIron3 = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::Translate3D(dxIron,PosY+dyIron,PoZ2) - * HepGeom::RotateZ3D(90.*CLHEP::deg) * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Left + GeoTransform* tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,PoZ2) + * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left pvEBarrelMotherPos->add(tfIron3); pvEBarrelMotherPos->add(new GeoIdentifierTag(3)); pvEBarrelMotherPos->add(pvIron3); - tfIron3 = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::Translate3D(-dxIron,PosY+dyIron,PoZ2) - * HepGeom::RotateZ3D(90.*CLHEP::deg) * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Right + tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,PoZ2) + * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Right pvEBarrelMotherPos->add(tfIron3); pvEBarrelMotherPos->add(pvIron3); @@ -2597,14 +2599,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) dxIron = dbManager->CutsXpos(); dyIron = dbManager->CutsYpos(); - GeoTransform* tfIrBoxL = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::Translate3D(dxIron,PosY-dyIron,PoZ2) - * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Left + GeoTransform* tfIrBoxL = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,PoZ2) + * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left pvEBarrelMotherPos->add(tfIrBoxL); pvEBarrelMotherPos->add(new GeoIdentifierTag(4)); pvEBarrelMotherPos->add(pvIrBox); - GeoTransform* tfIrBoxR = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::Translate3D(-dxIron,PosY-dyIron,PoZ2) - * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Right + GeoTransform* tfIrBoxR = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(-dxIron,PosY-dyIron,PoZ2) + * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Right pvEBarrelMotherPos->add(tfIrBoxR); pvEBarrelMotherPos->add(pvIrBox); @@ -2615,16 +2617,16 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " IrUp: " <<dxIr<< " " <<dyIr<< endmsg; - GeoTransform* tfIrUp = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) - * HepGeom::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,-PoZ1) - * HepGeom::RotateZ3D(90.*CLHEP::deg) * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Left + GeoTransform* tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) + * GeoTrf::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,-PoZ1) + * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left pvEBarrelMotherPos->add(tfIrUp); pvEBarrelMotherPos->add(new GeoIdentifierTag(5)); pvEBarrelMotherPos->add(pvIrUp); - tfIrUp = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) - * HepGeom::Translate3D(-PosXcut-dxIr,-PosYcut+dyIr,-PoZ1) - * HepGeom::RotateZ3D(90.*CLHEP::deg) * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Right + tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) + * GeoTrf::Translate3D(-PosXcut-dxIr,-PosYcut+dyIr,-PoZ1) + * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Right pvEBarrelMotherPos->add(tfIrUp); pvEBarrelMotherPos->add(pvIrUp); @@ -2635,16 +2637,16 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " IrDw: " <<dxIr<< " " <<dyIr<< endmsg; - GeoTransform* tfIrDw = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) - * HepGeom::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,-PoZ1) - * HepGeom::RotateZ3D(70.*CLHEP::deg) * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Left + GeoTransform* tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) + * GeoTrf::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,-PoZ1) + * GeoTrf::RotateZ3D(70.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left pvEBarrelMotherPos->add(tfIrDw); pvEBarrelMotherPos->add(new GeoIdentifierTag(6)); pvEBarrelMotherPos->add(pvIrDw); - tfIrDw = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) - * HepGeom::Translate3D(-PosXcut+dxIr,-PosYcut+dyIr,-PoZ1) - * HepGeom::RotateZ3D(-70.*CLHEP::deg) * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Left + tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) + * GeoTrf::Translate3D(-PosXcut+dxIr,-PosYcut+dyIr,-PoZ1) + * GeoTrf::RotateZ3D(-70.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left pvEBarrelMotherPos->add(tfIrDw); pvEBarrelMotherPos->add(pvIrDw); @@ -2652,12 +2654,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) } //-------------------------------------------------------------------------------------------------------------- // Ext.Barrel - ztrans = (PosEndCrack + (dbManager->GetEnvZLength()*CLHEP::cm - EBFingerLengthPos)/2 + 19.5)*(1./CLHEP::cm); + ztrans = (PosEndCrack + (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm - EBFingerLengthPos)/2 + 19.5)*(1./GeoModelKernelUnits::cm); - GeoTransform* tfEBarrelMotherPos = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * - HepGeom::RotateZ3D(dbManager->GetEnvDPhi()*CLHEP::deg)); + GeoTransform* tfEBarrelMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*GeoModelKernelUnits::deg)); - (*m_log) << MSG::INFO <<" Positioning positive ext.barrel with translation "<< ztrans*CLHEP::cm << endmsg; + (*m_log) << MSG::INFO <<" Positioning positive ext.barrel with translation "<< ztrans*GeoModelKernelUnits::cm << endmsg; // GeoNameTag* ntEBarrelMotherPos = new GeoNameTag("EBarrelPos"); @@ -2669,12 +2671,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) //-------------------------------------------------------------------------------------------------------------- // Finger - ztrans = (PosEndExBarrel + EBFingerLengthPos/2)*(1./CLHEP::cm); + ztrans = (PosEndExBarrel + EBFingerLengthPos/2)*(1./GeoModelKernelUnits::cm); - GeoTransform* tfEFingerMotherPos = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * - HepGeom::RotateZ3D(dbManager->GetEnvDPhi() * CLHEP::deg)); + GeoTransform* tfEFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); - (*m_log) << MSG::INFO <<" Positioning positive ext.barrel finger with translation ztrans= "<<ztrans*CLHEP::cm<<endmsg; + (*m_log) << MSG::INFO <<" Positioning positive ext.barrel finger with translation ztrans= "<<ztrans*GeoModelKernelUnits::cm<<endmsg; GeoNameTag* ntEFingerMotherPos = new GeoNameTag("TileEFingerPos"); @@ -2685,12 +2687,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) //-------------------------------------------------------------------------------------------------------------- // Ext. Saddle Support if (dbManager->BoolSaddle()) - { ztrans = (PosEndExBarrel + DzSaddleSupport/2)*(1./CLHEP::cm); + { ztrans = (PosEndExBarrel + DzSaddleSupport/2)*(1./GeoModelKernelUnits::cm); - GeoTransform* tfESaddleMotherPos = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * - HepGeom::RotateZ3D(dbManager->GetEnvDPhi() * CLHEP::deg)); + GeoTransform* tfESaddleMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); - (*m_log) << MSG::INFO <<" Positioning positive ext.barrel saddle with translation ztrans= "<<ztrans*CLHEP::cm + (*m_log) << MSG::INFO <<" Positioning positive ext.barrel saddle with translation ztrans= "<<ztrans*GeoModelKernelUnits::cm << endmsg; GeoNameTag* ntESaddleMotherPos = new GeoNameTag("TileESaddlePos"); @@ -2708,9 +2710,9 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(EnvType == 2) { // negative ext.barrel is always at negative boundary, after finger dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL); - double thicknessEndPlate = dbManager->TILBdzend1()*CLHEP::cm; + double thicknessEndPlate = dbManager->TILBdzend1()*GeoModelKernelUnits::cm; - double PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*CLHEP::cm- EBFingerLengthNeg)/2; + double PoZ1 = thicknessEndPlate + modl_length/4 - (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm- EBFingerLengthNeg)/2; double PoZ2 = modl_length/4 + PoZ1; //*>------------------------------------------------------------------------------------------------------ @@ -2722,14 +2724,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) dxIron = dbManager->CutsXpos(); dyIron = dbManager->CutsYpos(); - GeoTransform* tfIron1 = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::Translate3D(dxIron,PosY-dyIron,-PoZ2) - * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Left + GeoTransform* tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,-PoZ2) + * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left pvEBarrelMotherNeg->add(tfIron1); pvEBarrelMotherNeg->add(new GeoIdentifierTag(1)); pvEBarrelMotherNeg->add(pvIron1); - tfIron1 = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::Translate3D(-dxIron,PosY-dyIron,-PoZ2) - * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Right + tfIron1 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(-dxIron,PosY-dyIron,-PoZ2) + * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Right pvEBarrelMotherNeg->add(tfIron1); pvEBarrelMotherNeg->add(new GeoIdentifierTag(2)); pvEBarrelMotherNeg->add(pvIron1); @@ -2739,14 +2741,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) dxIron = dbManager->CutsXpos(); dyIron = dbManager->CutsYpos(); - GeoTransform* tfIron2 = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::Translate3D(dxIron,PosY+dyIron,-PoZ2) - * HepGeom::RotateZ3D(-84.*CLHEP::deg) * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Left + GeoTransform* tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,-PoZ2) + * GeoTrf::RotateZ3D(-84.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left pvEBarrelMotherNeg->add(tfIron2); pvEBarrelMotherNeg->add(new GeoIdentifierTag(2)); pvEBarrelMotherNeg->add(pvIron2); - tfIron2 = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::Translate3D(-dxIron,PosY+dyIron,-PoZ2) - * HepGeom::RotateZ3D(84.*CLHEP::deg) * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Left + tfIron2 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,-PoZ2) + * GeoTrf::RotateZ3D(84.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left pvEBarrelMotherNeg->add(tfIron2); pvEBarrelMotherNeg->add(pvIron2); @@ -2755,14 +2757,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) dxIron = dbManager->CutsXpos(); dyIron = dbManager->CutsYpos(); - GeoTransform* tfIron3 = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::Translate3D(dxIron,PosY+dyIron,-PoZ2) - * HepGeom::RotateZ3D(90.*CLHEP::deg) * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Left + GeoTransform* tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(dxIron,PosY+dyIron,-PoZ2) + * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left pvEBarrelMotherNeg->add(tfIron3); pvEBarrelMotherNeg->add(new GeoIdentifierTag(3)); pvEBarrelMotherNeg->add(pvIron3); - tfIron3 = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::Translate3D(-dxIron,PosY+dyIron,-PoZ2) - * HepGeom::RotateZ3D(90.*CLHEP::deg) * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Right + tfIron3 = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(-dxIron,PosY+dyIron,-PoZ2) + * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Right pvEBarrelMotherNeg->add(tfIron3); pvEBarrelMotherNeg->add(pvIron3); @@ -2770,14 +2772,14 @@ void TileAtlasFactory::create(GeoPhysVol *world) volname = "IrBox"; dbManager->SetCurrentCuts(volname); //>> dxIron = dbManager->CutsXpos(); dyIron = dbManager->CutsYpos(); - GeoTransform* tfIrBoxL = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::Translate3D(dxIron,PosY-dyIron,-PoZ2) - * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Left + GeoTransform* tfIrBoxL = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::Translate3D(dxIron,PosY-dyIron,-PoZ2) + * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left pvEBarrelMotherNeg->add(tfIrBoxL); pvEBarrelMotherNeg->add(new GeoIdentifierTag(4)); pvEBarrelMotherNeg->add(pvIrBox); - GeoTransform* tfIrBoxR = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) *HepGeom::Translate3D(-dxIron,PosY-dyIron,-PoZ2) - * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Right + GeoTransform* tfIrBoxR = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) *GeoTrf::Translate3D(-dxIron,PosY-dyIron,-PoZ2) + * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Right pvEBarrelMotherNeg->add(tfIrBoxR); pvEBarrelMotherNeg->add(pvIrBox); @@ -2786,16 +2788,16 @@ void TileAtlasFactory::create(GeoPhysVol *world) dxIr = dbManager->CutsXpos(); dyIr = dbManager->CutsYpos(); - GeoTransform* tfIrUp = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) - * HepGeom::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,PoZ1) - * HepGeom::RotateZ3D(90.*CLHEP::deg) * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Left + GeoTransform* tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) + * GeoTrf::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,PoZ1) + * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left pvEBarrelMotherNeg->add(tfIrUp); pvEBarrelMotherNeg->add(new GeoIdentifierTag(5)); pvEBarrelMotherNeg->add(pvIrUp); - tfIrUp = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) - * HepGeom::Translate3D(-PosXcut-dxIr,-PosYcut+dyIr,PoZ1) - * HepGeom::RotateZ3D(90.*CLHEP::deg) * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Right + tfIrUp = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) + * GeoTrf::Translate3D(-PosXcut-dxIr,-PosYcut+dyIr,PoZ1) + * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Right pvEBarrelMotherNeg->add(tfIrUp); pvEBarrelMotherNeg->add(pvIrUp); @@ -2804,16 +2806,16 @@ void TileAtlasFactory::create(GeoPhysVol *world) dxIr = dbManager->CutsXpos(); dyIr = dbManager->CutsYpos(); - GeoTransform* tfIrDw = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) - * HepGeom::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,PoZ1) - * HepGeom::RotateZ3D(70.*CLHEP::deg) * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Left + GeoTransform* tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) + * GeoTrf::Translate3D(PosXcut+dxIr,-PosYcut+dyIr,PoZ1) + * GeoTrf::RotateZ3D(70.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left pvEBarrelMotherNeg->add(tfIrDw); pvEBarrelMotherNeg->add(new GeoIdentifierTag(6)); pvEBarrelMotherNeg->add(pvIrDw); - tfIrDw = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) - * HepGeom::Translate3D(-PosXcut+dxIr,-PosYcut+dyIr,PoZ1) - * HepGeom::RotateZ3D(-70.*CLHEP::deg) * HepGeom::RotateX3D(90.*CLHEP::deg) * HepGeom::RotateZ3D(90.*CLHEP::deg)); // Left + tfIrDw = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) + * GeoTrf::Translate3D(-PosXcut+dxIr,-PosYcut+dyIr,PoZ1) + * GeoTrf::RotateZ3D(-70.*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(90.*GeoModelKernelUnits::deg) * GeoTrf::RotateZ3D(90.*GeoModelKernelUnits::deg)); // Left pvEBarrelMotherNeg->add(tfIrDw); pvEBarrelMotherNeg->add(pvIrDw); @@ -2822,12 +2824,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) // //*>------------------------------------------------------------------------------------------------------ // Ext.Barrel - ztrans = (-NegEndCrack - (dbManager->GetEnvZLength()*CLHEP::cm - EBFingerLengthNeg)/2 - 19.5)*(1./CLHEP::cm); + ztrans = (-NegEndCrack - (dbManager->GetEnvZLength()*GeoModelKernelUnits::cm - EBFingerLengthNeg)/2 - 19.5)*(1./GeoModelKernelUnits::cm); - GeoTransform* tfEBarrelMotherNeg = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * - HepGeom::RotateZ3D(dbManager->GetEnvDPhi()*CLHEP::deg)); + GeoTransform* tfEBarrelMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*GeoModelKernelUnits::deg)); - (*m_log) << MSG::INFO <<" Positioning negative ext.barrel with translation ztrans "<<ztrans*CLHEP::cm<<endmsg; + (*m_log) << MSG::INFO <<" Positioning negative ext.barrel with translation ztrans "<<ztrans*GeoModelKernelUnits::cm<<endmsg; GeoNameTag* ntEBarrelMotherNeg = new GeoNameTag("EBarrelNeg"); @@ -2838,12 +2840,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) //*>------------------------------------------------------------------------------------------------------ // Finger - ztrans = (-NegEndExBarrel - EBFingerLengthPos/2)*(1./CLHEP::cm); + ztrans = (-NegEndExBarrel - EBFingerLengthPos/2)*(1./GeoModelKernelUnits::cm); - GeoTransform* tfEFingerMotherNeg = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * - HepGeom::RotateZ3D(dbManager->GetEnvDPhi() * CLHEP::deg)); + GeoTransform* tfEFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); - (*m_log) << MSG::INFO <<" Positioning negative ext.barrel finger with translation ztrans= "<<ztrans*CLHEP::cm<< endmsg; + (*m_log) << MSG::INFO <<" Positioning negative ext.barrel finger with translation ztrans= "<<ztrans*GeoModelKernelUnits::cm<< endmsg; GeoNameTag* ntEFingerMotherNeg = new GeoNameTag("TileEFingerNeg"); @@ -2854,12 +2856,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) //*>------------------------------------------------------------------------------------------------------ // Ext. Saddle Support if (dbManager->BoolSaddle()) - { ztrans = (-NegEndExBarrel - DzSaddleSupport/2)*(1./CLHEP::cm); + { ztrans = (-NegEndExBarrel - DzSaddleSupport/2)*(1./GeoModelKernelUnits::cm); - GeoTransform* tfESaddleMotherNeg = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * - HepGeom::RotateZ3D(dbManager->GetEnvDPhi() * CLHEP::deg)); + GeoTransform* tfESaddleMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); - (*m_log) << MSG::INFO <<" Positioning negative ext.barrel saddle with translation ztrans= "<<ztrans*CLHEP::cm + (*m_log) << MSG::INFO <<" Positioning negative ext.barrel saddle with translation ztrans= "<<ztrans*GeoModelKernelUnits::cm << endmsg; GeoNameTag* ntESaddleMotherNeg = new GeoNameTag("TileESaddleNeg"); @@ -2878,15 +2880,15 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - ztrans = PosEndBarrelFinger*(1./CLHEP::cm) + dbManager->TILBdzmodul()/2; + ztrans = PosEndBarrelFinger*(1./GeoModelKernelUnits::cm) + dbManager->TILBdzmodul()/2; - //std::cout <<" ztrans "<<ztrans<<" PosEndBarrelFinger/CLHEP::cm "<<PosEndBarrelFinger/CLHEP::cm - // <<" dbManager->TILBdzmodul()/2*CLHEP::cm"<<dbManager->TILBdzmodul()/2<<"\n"; + //std::cout <<" ztrans "<<ztrans<<" PosEndBarrelFinger/GeoModelKernelUnits::cm "<<PosEndBarrelFinger/GeoModelKernelUnits::cm + // <<" dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm"<<dbManager->TILBdzmodul()/2<<"\n"; - (*m_log) << MSG::INFO <<" Positioning positive ITC with translation "<<ztrans*CLHEP::cm<< endmsg; + (*m_log) << MSG::INFO <<" Positioning positive ITC with translation "<<ztrans*GeoModelKernelUnits::cm<< endmsg; - GeoTransform* tfITCMotherPos = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * - HepGeom::RotateZ3D(dbManager->GetEnvDPhi() * CLHEP::deg)); + GeoTransform* tfITCMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); GeoNameTag* ntITCMotherPos = new GeoNameTag("ITCPos"); @@ -2895,12 +2897,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) pvTileEnvelopePosEndcap->add(pvITCMotherPos); dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3); - ztrans = PosBeginGap*(1./CLHEP::cm) + dbManager->TILBdzmodul()/2; + ztrans = PosBeginGap*(1./GeoModelKernelUnits::cm) + dbManager->TILBdzmodul()/2; - (*m_log) << MSG::INFO <<" Positioning positive Gap with translation "<<ztrans*CLHEP::cm<<endmsg; + (*m_log) << MSG::INFO <<" Positioning positive Gap with translation "<<ztrans*GeoModelKernelUnits::cm<<endmsg; - GeoTransform* tfGapMotherPos = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm)* - HepGeom::RotateZ3D(dbManager->GetEnvDPhi()*CLHEP::deg)); + GeoTransform* tfGapMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm)* + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*GeoModelKernelUnits::deg)); GeoNameTag* ntGapMotherPos = new GeoNameTag("GapPos"); @@ -2910,12 +2912,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) // Crack dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); - ztrans = PosBeginCrack*(1./CLHEP::cm) + dbManager->TILBdzmodul()/2; + ztrans = PosBeginCrack*(1./GeoModelKernelUnits::cm) + dbManager->TILBdzmodul()/2; - (*m_log) << MSG::INFO <<" Positioning positive Crack with translation "<<ztrans*CLHEP::cm<<endmsg; + (*m_log) << MSG::INFO <<" Positioning positive Crack with translation "<<ztrans*GeoModelKernelUnits::cm<<endmsg; - GeoTransform* tfCrackMotherPos = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm)* - HepGeom::RotateZ3D(dbManager->GetEnvDPhi()*CLHEP::deg)); + GeoTransform* tfCrackMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm)* + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*GeoModelKernelUnits::deg)); GeoNameTag* ntCrackMotherPos = new GeoNameTag("CrackPos"); @@ -2932,12 +2934,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) if(EnvType == 4) { dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - ztrans = -NegEndBarrelFinger*(1./CLHEP::cm) - dbManager->TILBdzmodul()/2; + ztrans = -NegEndBarrelFinger*(1./GeoModelKernelUnits::cm) - dbManager->TILBdzmodul()/2; - (*m_log) << MSG::INFO <<" Positioning negative ITC with translation "<<ztrans*CLHEP::cm<<endmsg; + (*m_log) << MSG::INFO <<" Positioning negative ITC with translation "<<ztrans*GeoModelKernelUnits::cm<<endmsg; - GeoTransform* tfITCMotherNeg = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm)* - HepGeom::RotateZ3D(dbManager->GetEnvDPhi()*CLHEP::deg)); + GeoTransform* tfITCMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm)* + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*GeoModelKernelUnits::deg)); GeoNameTag* ntITCMotherNeg = new GeoNameTag("ITCNeg"); @@ -2946,12 +2948,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) pvTileEnvelopeNegEndcap->add(pvITCMotherNeg); dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3); - ztrans = -NegBeginGap*(1./CLHEP::cm) - dbManager->TILBdzmodul()/2; + ztrans = -NegBeginGap*(1./GeoModelKernelUnits::cm) - dbManager->TILBdzmodul()/2; - (*m_log) << MSG::INFO <<" Positioning negative Gap with translation "<<ztrans*CLHEP::cm<<endmsg; + (*m_log) << MSG::INFO <<" Positioning negative Gap with translation "<<ztrans*GeoModelKernelUnits::cm<<endmsg; - GeoTransform* tfGapMotherNeg = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm)* - HepGeom::RotateZ3D(dbManager->GetEnvDPhi()*CLHEP::deg)); + GeoTransform* tfGapMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm)* + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*GeoModelKernelUnits::deg)); GeoNameTag* ntGapMotherNeg = new GeoNameTag("GapNeg"); @@ -2961,12 +2963,12 @@ void TileAtlasFactory::create(GeoPhysVol *world) // Crack dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); - ztrans = -NegBeginCrack*(1./CLHEP::cm) - dbManager->TILBdzmodul()/2; + ztrans = -NegBeginCrack*(1./GeoModelKernelUnits::cm) - dbManager->TILBdzmodul()/2; - (*m_log) << MSG::INFO <<" Positioning negative Crack with translation "<<ztrans*CLHEP::cm<<endmsg; + (*m_log) << MSG::INFO <<" Positioning negative Crack with translation "<<ztrans*GeoModelKernelUnits::cm<<endmsg; - GeoTransform* tfCrackMotherNeg = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm)* - HepGeom::RotateZ3D(dbManager->GetEnvDPhi()*CLHEP::deg)); + GeoTransform* tfCrackMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm)* + GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()*GeoModelKernelUnits::deg)); GeoNameTag* ntCrackMotherNeg = new GeoNameTag("CrackNeg"); @@ -2992,13 +2994,13 @@ void TileAtlasFactory::create(GeoPhysVol *world) dbManager->SetCurrentEnvByIndex(EnvCounter); int EnvType = dbManager->GetEnvType(); int NumberOfMod = dbManager->GetEnvNModules(); - double Zshift = dbManager->GetEnvZShift()*CLHEP::cm; + double Zshift = dbManager->GetEnvZShift()*GeoModelKernelUnits::cm; if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " EnvCounter is " << EnvCounter << " EnvType is " << EnvType - << " Zshift is " << Zshift*(1./CLHEP::cm) << " cm" + << " Zshift is " << Zshift*(1./GeoModelKernelUnits::cm) << " cm" << endmsg; // Central barrel @@ -3047,16 +3049,16 @@ void TileAtlasFactory::create(GeoPhysVol *world) // Top transform for the Central barrel dbManager->SetCurrentEnvByType(1); - HepGeom::Transform3D mz = HepGeom::RotateZ3D(dbManager->GetEnvDPhi()); - HepGeom::Transform3D my = HepGeom::RotateY3D(dbManager->GetEnvDTheta()); - HepGeom::Transform3D mx = HepGeom::RotateZ3D(dbManager->GetEnvDPsi()); - HepGeom::Transform3D vpos = HepGeom::Translate3D(dbManager->GetEnvDX()*CLHEP::cm,dbManager->GetEnvDY()*CLHEP::cm,dbManager->GetEnvDZ()*CLHEP::cm); - GeoTransform* barrelTT = new GeoTransform(HepGeom::Transform3D(vpos*(mx*(my*(mz))))); + GeoTrf::Transform3D mz = GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()); + GeoTrf::Transform3D my = GeoTrf::RotateY3D(dbManager->GetEnvDTheta()); + GeoTrf::Transform3D mx = GeoTrf::RotateZ3D(dbManager->GetEnvDPsi()); + GeoTrf::Transform3D vpos = GeoTrf::Translate3D(dbManager->GetEnvDX()*GeoModelKernelUnits::cm,dbManager->GetEnvDY()*GeoModelKernelUnits::cm,dbManager->GetEnvDZ()*GeoModelKernelUnits::cm); + GeoTransform* barrelTT = new GeoTransform(GeoTrf::Transform3D(vpos*(mx*(my*(mz))))); (*m_log) << MSG::INFO << " Global positioning of barrel with rotation (" << dbManager->GetEnvDPhi() << "," << dbManager->GetEnvDTheta() << "," << dbManager->GetEnvDPsi() << ")" << ") and translation (" << dbManager->GetEnvDX() << "," << dbManager->GetEnvDY() << "," << dbManager->GetEnvDZ() - << ") CLHEP::cm" << endmsg; + << ") GeoModelKernelUnits::cm" << endmsg; world->add(barrelTT); world->add(pvTileEnvelopeBarrel); @@ -3069,16 +3071,16 @@ void TileAtlasFactory::create(GeoPhysVol *world) // Top transform for the Positive endcap dbManager->SetCurrentEnvByType(3); - HepGeom::Transform3D mz = HepGeom::RotateZ3D(dbManager->GetEnvDPhi()); - HepGeom::Transform3D my = HepGeom::RotateY3D(dbManager->GetEnvDTheta()); - HepGeom::Transform3D mx = HepGeom::RotateZ3D(dbManager->GetEnvDPsi()); - HepGeom::Transform3D vpos = HepGeom::Translate3D(dbManager->GetEnvDX()*CLHEP::cm,dbManager->GetEnvDY()*CLHEP::cm,dbManager->GetEnvDZ()*CLHEP::cm); - GeoTransform* posEcTT = new GeoTransform(HepGeom::Transform3D(vpos*(mx*(my*(mz))))); + GeoTrf::Transform3D mz = GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()); + GeoTrf::Transform3D my = GeoTrf::RotateY3D(dbManager->GetEnvDTheta()); + GeoTrf::Transform3D mx = GeoTrf::RotateZ3D(dbManager->GetEnvDPsi()); + GeoTrf::Transform3D vpos = GeoTrf::Translate3D(dbManager->GetEnvDX()*GeoModelKernelUnits::cm,dbManager->GetEnvDY()*GeoModelKernelUnits::cm,dbManager->GetEnvDZ()*GeoModelKernelUnits::cm); + GeoTransform* posEcTT = new GeoTransform(GeoTrf::Transform3D(vpos*(mx*(my*(mz))))); (*m_log) << MSG::INFO << " Global positioning of positive ext.barrel with rotation (" << dbManager->GetEnvDPhi() << "," << dbManager->GetEnvDTheta() << "," << dbManager->GetEnvDPsi() << ")" << ") and translation (" << dbManager->GetEnvDX() << "," << dbManager->GetEnvDY() << "," << dbManager->GetEnvDZ() - << ") CLHEP::cm" << endmsg; + << ") GeoModelKernelUnits::cm" << endmsg; world->add(posEcTT); world->add(pvTileEnvelopePosEndcap); @@ -3091,16 +3093,16 @@ void TileAtlasFactory::create(GeoPhysVol *world) // Top transform for the Negative endcap dbManager->SetCurrentEnvByType(2); - HepGeom::Transform3D mz = HepGeom::RotateZ3D(dbManager->GetEnvDPhi()); - HepGeom::Transform3D my = HepGeom::RotateY3D(dbManager->GetEnvDTheta()); - HepGeom::Transform3D mx = HepGeom::RotateZ3D(dbManager->GetEnvDPsi()); - HepGeom::Transform3D vpos = HepGeom::Translate3D(dbManager->GetEnvDX()*CLHEP::cm,dbManager->GetEnvDY()*CLHEP::cm,dbManager->GetEnvDZ()*CLHEP::cm); - GeoTransform* negEcTT = new GeoTransform(HepGeom::Transform3D(vpos*(mx*(my*(mz))))); + GeoTrf::Transform3D mz = GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()); + GeoTrf::Transform3D my = GeoTrf::RotateY3D(dbManager->GetEnvDTheta()); + GeoTrf::Transform3D mx = GeoTrf::RotateZ3D(dbManager->GetEnvDPsi()); + GeoTrf::Transform3D vpos = GeoTrf::Translate3D(dbManager->GetEnvDX()*GeoModelKernelUnits::cm,dbManager->GetEnvDY()*GeoModelKernelUnits::cm,dbManager->GetEnvDZ()*GeoModelKernelUnits::cm); + GeoTransform* negEcTT = new GeoTransform(GeoTrf::Transform3D(vpos*(mx*(my*(mz))))); (*m_log) << MSG::INFO << " Global positioning of negative ext.barrel with rotation (" << dbManager->GetEnvDPhi() << "," << dbManager->GetEnvDTheta() << "," << dbManager->GetEnvDPsi() << ")" << ") and translation (" << dbManager->GetEnvDX() << "," << dbManager->GetEnvDY() << "," << dbManager->GetEnvDZ() - << ") CLHEP::cm" << endmsg; + << ") GeoModelKernelUnits::cm" << endmsg; world->add(negEcTT); world->add(pvTileEnvelopeNegEndcap); diff --git a/TileCalorimeter/TileGeoModel/src/TileDetectorFactory.cxx b/TileCalorimeter/TileGeoModel/src/TileDetectorFactory.cxx index ba6ed22153bdcddf8d90fb00e6b70bdc26938997..4764c9b6e2339a87b73cedffaacd888e0beb23fd 100755 --- a/TileCalorimeter/TileGeoModel/src/TileDetectorFactory.cxx +++ b/TileCalorimeter/TileGeoModel/src/TileDetectorFactory.cxx @@ -21,9 +21,11 @@ #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoSerialIdentifier.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" -#include "CLHEP/GenericFunctions/AbsFunction.hh" -#include "CLHEP/GenericFunctions/Variable.hh" +#include "GeoGenericFunctions/AbsFunction.h" +#include "GeoGenericFunctions/Variable.h" #include "GeoModelKernel/GeoXF.h" #include "GeoModelKernel/GeoSerialTransformer.h" @@ -35,7 +37,7 @@ #include <stdexcept> #include <iostream> -using namespace Genfun; +using namespace GeoGenfun; using namespace GeoXF; @@ -105,20 +107,20 @@ void TileDetectorFactory::create(GeoPhysVol *world) { // Z planes dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL); - double endCentralBarrel = dbManager->TILBdzmodul()/2.*CLHEP::cm; + double endCentralBarrel = dbManager->TILBdzmodul()/2.*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - //sb double beginITC1 = (dbManager->TILBzoffset() + dbManager->TILEzshift() - dbManager->TILBdzmodul()/2.)*CLHEP::cm; + //sb double beginITC1 = (dbManager->TILBzoffset() + dbManager->TILEzshift() - dbManager->TILBdzmodul()/2.)*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2); - double beginITC2 = (dbManager->TILBzoffset() + dbManager->TILEzshift() - dbManager->TILBdzmodul()/2.)*CLHEP::cm; + double beginITC2 = (dbManager->TILBzoffset() + dbManager->TILEzshift() - dbManager->TILBdzmodul()/2.)*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); - double beginCrack = (dbManager->TILBzoffset() + dbManager->TILEzshift() - dbManager->TILBdzmodul()/2.)*CLHEP::cm; - double endCrack = (dbManager->TILBzoffset() + dbManager->TILEzshift() + dbManager->TILBdzmodul()/2.)*CLHEP::cm; + double beginCrack = (dbManager->TILBzoffset() + dbManager->TILEzshift() - dbManager->TILBdzmodul()/2.)*GeoModelKernelUnits::cm; + double endCrack = (dbManager->TILBzoffset() + dbManager->TILEzshift() + dbManager->TILBdzmodul()/2.)*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL); - double endExtendedBarrel = (dbManager->TILBzoffset() + dbManager->TILEzshift() + dbManager->TILBdzmodul()/2.)*CLHEP::cm; - double endTile = dbManager->TILEzmam()*CLHEP::cm; + double endExtendedBarrel = (dbManager->TILBzoffset() + dbManager->TILEzshift() + dbManager->TILBdzmodul()/2.)*GeoModelKernelUnits::cm; + double endTile = dbManager->TILEzmam()*GeoModelKernelUnits::cm; dbManager->SetCurrentTifg(1); - double endBarrelFinger = endCentralBarrel + dbManager->TIFGdz()*CLHEP::cm; + double endBarrelFinger = endCentralBarrel + dbManager->TIFGdz()*GeoModelKernelUnits::cm; // Offsets /* sb @@ -130,23 +132,23 @@ void TileDetectorFactory::create(GeoPhysVol *world) // R minimals dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL); - double rminBarrel = dbManager->TILBrminimal()*CLHEP::cm; + double rminBarrel = dbManager->TILBrminimal()*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - double rminITC1 = dbManager->TILBrminimal()*CLHEP::cm; + double rminITC1 = dbManager->TILBrminimal()*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2); - double rminITC = dbManager->TILBrminimal()*CLHEP::cm; + double rminITC = dbManager->TILBrminimal()*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4); - double rminCrack = dbManager->TILBrminimal()*CLHEP::cm; + double rminCrack = dbManager->TILBrminimal()*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL); - double rminExtended = dbManager->TILBrminimal()*CLHEP::cm; - double rminFinger = dbManager->TILBrmax()*CLHEP::cm; + double rminExtended = dbManager->TILBrminimal()*GeoModelKernelUnits::cm; + double rminFinger = dbManager->TILBrmax()*GeoModelKernelUnits::cm; // R maximal - double rmaxTotal = dbManager->TILErmam()*CLHEP::cm; + double rmaxTotal = dbManager->TILErmam()*GeoModelKernelUnits::cm; - GeoPcon* tileEnvPconeBarrel = new GeoPcon(0, 360*CLHEP::deg); - GeoPcon* tileEnvPconePosEndcap = new GeoPcon(0, 360*CLHEP::deg); - GeoPcon* tileEnvPconeNegEndcap = new GeoPcon(0, 360*CLHEP::deg); + GeoPcon* tileEnvPconeBarrel = new GeoPcon(0, 360*GeoModelKernelUnits::deg); + GeoPcon* tileEnvPconePosEndcap = new GeoPcon(0, 360*GeoModelKernelUnits::deg); + GeoPcon* tileEnvPconeNegEndcap = new GeoPcon(0, 360*GeoModelKernelUnits::deg); // Negative Endcap tileEnvPconeNegEndcap->addPlane(-endTile,rminFinger,rmaxTotal); @@ -189,13 +191,13 @@ void TileDetectorFactory::create(GeoPhysVol *world) pvTileEnvelopeNegEndcap = new GeoPhysVol(lvTileEnvelopeNegEndcap); /* - const GeoShape& bbqEnvelope = ((*tileEnvPconeBarrel)<<HepGeom::TranslateX3D(1000.)). - add(((*tileEnvPconePosEndcap)<<HepGeom::TranslateZ3D(0.))). - add(((*tileEnvPconeNegEndcap)<<HepGeom::TranslateZ3D(0.))); + const GeoShape& bbqEnvelope = ((*tileEnvPconeBarrel)<<GeoTrf::TranslateX3D(1000.)). + add(((*tileEnvPconePosEndcap)<<GeoTrf::TranslateZ3D(0.))). + add(((*tileEnvPconeNegEndcap)<<GeoTrf::TranslateZ3D(0.))); lvTileEnvelope = new GeoLogVol("Tile",&bbqEnvelope,matAir); pvTileEnvelope = new GeoPhysVol(lvTileEnvelope); - pvTileEnvelope->add(new GeoTransform(HepGeom::TranslateX3D(1000.))); + pvTileEnvelope->add(new GeoTransform(GeoTrf::TranslateX3D(1000.))); pvTileEnvelope->add(pvTileEnvelopeBarrel); pvTileEnvelope->add(pvTileEnvelopePosEndcap); pvTileEnvelope->add(pvTileEnvelopeNegEndcap); @@ -207,17 +209,17 @@ void TileDetectorFactory::create(GeoPhysVol *world) dbManager->SetCurrentTifg(1); // Z planes - double endCentralBarrel = dbManager->TILBdzmodul()/2.*CLHEP::cm; - double endEnvelope = endCentralBarrel + dbManager->TIFGdz()*CLHEP::cm; + double endCentralBarrel = dbManager->TILBdzmodul()/2.*GeoModelKernelUnits::cm; + double endEnvelope = endCentralBarrel + dbManager->TIFGdz()*GeoModelKernelUnits::cm; // R minimals - double rminBarrel = dbManager->TILBrminimal()*CLHEP::cm; - double rminFinger = dbManager->TILBrmax()*CLHEP::cm; + double rminBarrel = dbManager->TILBrminimal()*GeoModelKernelUnits::cm; + double rminFinger = dbManager->TILBrmax()*GeoModelKernelUnits::cm; // R maximal - double rmaxTotal = dbManager->TILErmam()*CLHEP::cm; + double rmaxTotal = dbManager->TILErmam()*GeoModelKernelUnits::cm; - GeoPcon* tileEnvPconeBarrel = new GeoPcon(0, 360*CLHEP::deg); + GeoPcon* tileEnvPconeBarrel = new GeoPcon(0, 360*GeoModelKernelUnits::deg); tileEnvPconeBarrel->addPlane(-endEnvelope,rminFinger,rmaxTotal); tileEnvPconeBarrel->addPlane(-endCentralBarrel,rminFinger,rmaxTotal); tileEnvPconeBarrel->addPlane(-endCentralBarrel,rminBarrel,rmaxTotal); @@ -235,7 +237,7 @@ void TileDetectorFactory::create(GeoPhysVol *world) double deltaPhi = 360./dbManager->TILEnmodul(); Variable varInd; - GENFUNCTION phiInd = deltaPhi*(varInd+0.5)*CLHEP::deg; + GENFUNCTION phiInd = deltaPhi*(varInd+0.5)*GeoModelKernelUnits::deg; //------------------------------- B A R R E L -------------------------------------- // Tube - barrel mother @@ -243,18 +245,18 @@ void TileDetectorFactory::create(GeoPhysVol *world) if(dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL)) { - GeoTube* barrelMother = new GeoTube(dbManager->TILBrminimal()*CLHEP::cm, - dbManager->TILErmam()*CLHEP::cm, - dbManager->TILBdzmodul()/2.*CLHEP::cm); + GeoTube* barrelMother = new GeoTube(dbManager->TILBrminimal()*GeoModelKernelUnits::cm, + dbManager->TILErmam()*GeoModelKernelUnits::cm, + dbManager->TILBdzmodul()/2.*GeoModelKernelUnits::cm); GeoLogVol* lvBarrelMother = new GeoLogVol("Barrel",barrelMother,matAir); GeoFullPhysVol* pvBarrelMother = new GeoFullPhysVol(lvBarrelMother); // Trd - module mother - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - (dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) - dbManager->TILBdzmast()))/(2.*(2.*dbManager->TILBnperiod() - 1)); @@ -280,9 +282,9 @@ void TileDetectorFactory::create(GeoPhysVol *world) { phi = j*deltaPhi; - GeoTransform* zrotateMod = new GeoTransform(HepGeom::RotateZ3D(phi*CLHEP::deg)); - GeoTransform* xtransMod = new GeoTransform(HepGeom::TranslateX3D((dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2. * cm)); - GeoTransform* yrotateMod = new GeoTransform(HepGeom::RotateY3D(90*CLHEP::deg)); + GeoTransform* zrotateMod = new GeoTransform(GeoTrf::RotateZ3D(phi*GeoModelKernelUnits::deg)); + GeoTransform* xtransMod = new GeoTransform(GeoTrf::TranslateX3D((dbManager->TILBrmaximal() + dbManager->TILBrminimal())/2. * cm)); + GeoTransform* yrotateMod = new GeoTransform(GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)); pvBarrelMother->add(zrotateMod); pvBarrelMother->add(xtransMod); @@ -292,7 +294,7 @@ void TileDetectorFactory::create(GeoPhysVol *world) */ // --- Using the parameterization ----- - TRANSFUNCTION xfBarrelModuleMother = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*CLHEP::cm)*HepGeom::RotateX3D(180*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION xfBarrelModuleMother = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer* stBarrelModuleMother = new GeoSerialTransformer(pvBarrelModuleMother, &xfBarrelModuleMother, dbManager->TILEnmodul()); @@ -312,7 +314,7 @@ void TileDetectorFactory::create(GeoPhysVol *world) { dbManager->SetCurrentEnvByType(1); nModules=dbManager->GetEnvNModules(); - zShift=dbManager->GetEnvZShift()*CLHEP::cm; + zShift=dbManager->GetEnvZShift()*GeoModelKernelUnits::cm; sectionBuilder->computeCellDim(m_detectorManager, TILE_REGION_CENTRAL, @@ -367,19 +369,19 @@ void TileDetectorFactory::create(GeoPhysVol *world) if(dbManager->SetCurrentSection(TileDddbManager::TILE_EBARREL)) { - GeoTube* ebarrelMother = new GeoTube(dbManager->TILBrminimal()*CLHEP::cm, - dbManager->TILErmam()*CLHEP::cm, - dbManager->TILBdzmodul()/2.*CLHEP::cm); + GeoTube* ebarrelMother = new GeoTube(dbManager->TILBrminimal()*GeoModelKernelUnits::cm, + dbManager->TILErmam()*GeoModelKernelUnits::cm, + dbManager->TILBdzmodul()/2.*GeoModelKernelUnits::cm); GeoLogVol* lvEBarrelMother = new GeoLogVol("EBarrel",ebarrelMother,matAir); GeoFullPhysVol* pvEBarrelMotherPos = new GeoFullPhysVol(lvEBarrelMother); GeoFullPhysVol* pvEBarrelMotherNeg = new GeoFullPhysVol(lvEBarrelMother); // Trd - module mother - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod()); @@ -401,8 +403,8 @@ void TileDetectorFactory::create(GeoPhysVol *world) deltaPhi); // --- Position N modules inside mother (positive/negative) ----- - TRANSFUNCTION xfEBarrelModuleMotherPos = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*CLHEP::cm)*HepGeom::RotateX3D(180*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION xfEBarrelModuleMotherNeg = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*CLHEP::cm)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION xfEBarrelModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfEBarrelModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer* stEBarrelModuleMotherPos = new GeoSerialTransformer(pvEBarrelModuleMother, &xfEBarrelModuleMotherPos, @@ -420,14 +422,14 @@ void TileDetectorFactory::create(GeoPhysVol *world) pvEBarrelMotherNeg->add(stEBarrelModuleMotherNeg); - GeoTransform* tfEBarrelMotherPos = new GeoTransform(HepGeom::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*CLHEP::cm)); + GeoTransform* tfEBarrelMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*GeoModelKernelUnits::cm)); GeoNameTag* ntEBarrelMotherPos = new GeoNameTag("TileEBarrelPos"); pvTileEnvelopePosEndcap->add(tfEBarrelMotherPos); pvTileEnvelopePosEndcap->add(ntEBarrelMotherPos); pvTileEnvelopePosEndcap->add(pvEBarrelMotherPos); - GeoTransform* tfEBarrelMotherNeg = new GeoTransform(HepGeom::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*CLHEP::cm)); + GeoTransform* tfEBarrelMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*GeoModelKernelUnits::cm)); GeoNameTag* ntEBarrelMotherNeg = new GeoNameTag("TileEBarrelNeg"); pvTileEnvelopeNegEndcap->add(tfEBarrelMotherNeg); pvTileEnvelopeNegEndcap->add(ntEBarrelMotherNeg); @@ -441,10 +443,10 @@ void TileDetectorFactory::create(GeoPhysVol *world) { dbManager->SetCurrentEnvByType(2); nModulesNeg=dbManager->GetEnvNModules(); - zShiftNeg=dbManager->GetEnvZShift()*CLHEP::cm; + zShiftNeg=dbManager->GetEnvZShift()*GeoModelKernelUnits::cm; dbManager->SetCurrentEnvByType(3); nModulesPos=dbManager->GetEnvNModules(); - zShiftPos=dbManager->GetEnvZShift()*CLHEP::cm; + zShiftPos=dbManager->GetEnvZShift()*GeoModelKernelUnits::cm; sectionBuilder->computeCellDim(m_detectorManager, TILE_REGION_EXTENDED, @@ -454,7 +456,7 @@ void TileDetectorFactory::create(GeoPhysVol *world) } else { nModulesPos=nModulesNeg=dbManager->TILEnmodul(); - zShiftPos=zShiftNeg=dbManager->TILEzshift()*CLHEP::cm; + zShiftPos=zShiftNeg=dbManager->TILEzshift()*GeoModelKernelUnits::cm; // do not compute cell volumes for old setups (before DC3), // because cell-size table might be missing in DB } @@ -505,13 +507,13 @@ void TileDetectorFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - GeoTube* itcWheel1 = new GeoTube(dbManager->TILBrminimal()*CLHEP::cm, - dbManager->TILErmam()*CLHEP::cm, - dbManager->TILBdzmodul()/2.*CLHEP::cm); + GeoTube* itcWheel1 = new GeoTube(dbManager->TILBrminimal()*GeoModelKernelUnits::cm, + dbManager->TILErmam()*GeoModelKernelUnits::cm, + dbManager->TILBdzmodul()/2.*GeoModelKernelUnits::cm); - GeoTube* itcWheel2 = new GeoTube(rMinITC2*CLHEP::cm,rMaxITC2*CLHEP::cm,dzITC2/2.*CLHEP::cm); - HepGeom::Translate3D itcWheel2OffsetPos(0.,0.,(dbManager->TILBdzmodul()-dzITC2)/2*CLHEP::cm); - HepGeom::Translate3D itcWheel2OffsetNeg(0.,0.,(-dbManager->TILBdzmodul()+dzITC2)/2*CLHEP::cm); + GeoTube* itcWheel2 = new GeoTube(rMinITC2*GeoModelKernelUnits::cm,rMaxITC2*GeoModelKernelUnits::cm,dzITC2/2.*GeoModelKernelUnits::cm); + GeoTrf::Translate3D itcWheel2OffsetPos(0.,0.,(dbManager->TILBdzmodul()-dzITC2)/2*GeoModelKernelUnits::cm); + GeoTrf::Translate3D itcWheel2OffsetNeg(0.,0.,(-dbManager->TILBdzmodul()+dzITC2)/2*GeoModelKernelUnits::cm); const GeoShapeUnion& itcMotherPos = itcWheel1->add(*itcWheel2<<itcWheel2OffsetPos); const GeoShapeUnion& itcMotherNeg = itcWheel1->add(*itcWheel2<<itcWheel2OffsetNeg); @@ -525,10 +527,10 @@ void TileDetectorFactory::create(GeoPhysVol *world) // Common mother for ITC1/2 modules // -- first sub shape - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal()* tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal()* tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal()* tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal()* tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; GeoTrd* itcModuleSub1 = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -537,10 +539,10 @@ void TileDetectorFactory::create(GeoPhysVol *world) heightWedgeMother/2.); // -- second sub shape - thicknessWedgeMother = dzITC2 * CLHEP::cm; - heightWedgeMother = (rMaxITC2 - rMinITC2) * CLHEP::cm; - dy1WedgeMother = rMinITC2* tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = rMaxITC2* tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dzITC2 * GeoModelKernelUnits::cm; + heightWedgeMother = (rMaxITC2 - rMinITC2) * GeoModelKernelUnits::cm; + dy1WedgeMother = rMinITC2* tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = rMaxITC2* tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; GeoTrd* itcModuleSub2 = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -548,9 +550,9 @@ void TileDetectorFactory::create(GeoPhysVol *world) dy2WedgeMother, heightWedgeMother/2.); - HepGeom::Translate3D itcModuleSubShift ((dbManager->TILBdzmodul()-dzITC2)/2*CLHEP::cm, + GeoTrf::Translate3D itcModuleSubShift ((dbManager->TILBdzmodul()-dzITC2)/2*GeoModelKernelUnits::cm, 0., - ((rMinITC2+rMaxITC2)-(dbManager->TILBrmaximal()+dbManager->TILBrminimal()))/2.*CLHEP::cm); + ((rMinITC2+rMaxITC2)-(dbManager->TILBrmaximal()+dbManager->TILBrminimal()))/2.*GeoModelKernelUnits::cm); const GeoShapeUnion& itcModuleMother = itcModuleSub1->add(*itcModuleSub2<<itcModuleSubShift); @@ -563,10 +565,10 @@ void TileDetectorFactory::create(GeoPhysVol *world) // 2. Mother for frontplate (since it's short) //First submother - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrmin()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrmin()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod()); @@ -577,10 +579,10 @@ void TileDetectorFactory::create(GeoPhysVol *world) heightWedgeMother/2.); //Second submother - thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2) * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2) * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; GeoTrd* plug2SubMother = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -588,9 +590,9 @@ void TileDetectorFactory::create(GeoPhysVol *world) dy2WedgeMother, heightWedgeMother/2.); - HepGeom::Translate3D plug1SubOffset(-dzITC2*CLHEP::cm/2., + GeoTrf::Translate3D plug1SubOffset(-dzITC2*GeoModelKernelUnits::cm/2., 0., - (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*CLHEP::cm/2.); + (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*GeoModelKernelUnits::cm/2.); const GeoShapeUnion& plug1ModuleMother = plug1SubMother->add(*plug2SubMother<<plug1SubOffset); GeoLogVol* lvPlug1ModuleMother = new GeoLogVol("Plug1Module",&plug1ModuleMother,matAir); @@ -604,9 +606,9 @@ void TileDetectorFactory::create(GeoPhysVol *world) deltaPhi, ModuleNcp, dzITC2); - GeoTransform* tfPlug1ModuleMother = new GeoTransform(HepGeom::Translate3D(0., + GeoTransform* tfPlug1ModuleMother = new GeoTransform(GeoTrf::Translate3D(0., 0., - (dbManager->TILBrmin()-dbManager->TILBrminimal())*CLHEP::cm/2.)); + (dbManager->TILBrmin()-dbManager->TILBrminimal())*GeoModelKernelUnits::cm/2.)); pvITCModuleMother->add(tfPlug1ModuleMother); pvITCModuleMother->add(pvPlug1ModuleMother); @@ -614,10 +616,10 @@ void TileDetectorFactory::create(GeoPhysVol *world) //Mother volume for ITC2 dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2); - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - ((dbManager->TILBnperiod()-1)*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) + dbManager->TILBdzspac()))/(4.*(dbManager->TILBnperiod() - 1)); @@ -646,8 +648,8 @@ void TileDetectorFactory::create(GeoPhysVol *world) pvITCModuleMother->add(pvPlug2ModuleMother); // --- Position N modules inside mother (positive/negative) ----- - TRANSFUNCTION xfITCModuleMotherPos = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*CLHEP::cm)*HepGeom::RotateX3D(180*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION xfITCModuleMotherNeg = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*CLHEP::cm)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION xfITCModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfITCModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer* stITCModuleMotherPos = new GeoSerialTransformer(pvITCModuleMother, &xfITCModuleMotherPos, @@ -662,14 +664,14 @@ void TileDetectorFactory::create(GeoPhysVol *world) pvITCMotherNeg->add(stITCModuleMotherNeg); - GeoTransform* tfITCMotherPos = new GeoTransform(HepGeom::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*CLHEP::cm)); + GeoTransform* tfITCMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*GeoModelKernelUnits::cm)); GeoNameTag* ntITCMotherPos = new GeoNameTag("TileITCPos"); pvTileEnvelopePosEndcap->add(tfITCMotherPos); pvTileEnvelopePosEndcap->add(ntITCMotherPos); pvTileEnvelopePosEndcap->add(pvITCMotherPos); - GeoTransform* tfITCMotherNeg = new GeoTransform(HepGeom::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*CLHEP::cm)); + GeoTransform* tfITCMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*GeoModelKernelUnits::cm)); GeoNameTag* ntITCMotherNeg = new GeoNameTag("TileITCNeg"); pvTileEnvelopeNegEndcap->add(tfITCMotherNeg); pvTileEnvelopeNegEndcap->add(ntITCMotherNeg); @@ -680,19 +682,19 @@ void TileDetectorFactory::create(GeoPhysVol *world) if(dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG3)) { - GeoTube* gapMother = new GeoTube(dbManager->TILBrminimal()*CLHEP::cm, - dbManager->TILBrmaximal()*CLHEP::cm/cos(deltaPhi/2.*CLHEP::deg), - dbManager->TILBdzmodul()/2.*CLHEP::cm); + GeoTube* gapMother = new GeoTube(dbManager->TILBrminimal()*GeoModelKernelUnits::cm, + dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2.*GeoModelKernelUnits::deg), + dbManager->TILBdzmodul()/2.*GeoModelKernelUnits::cm); GeoLogVol* lvGapMother = new GeoLogVol("Gap",gapMother,matAir); GeoFullPhysVol* pvGapMotherPos = new GeoFullPhysVol(lvGapMother); GeoFullPhysVol* pvGapMotherNeg = new GeoFullPhysVol(lvGapMother); // Trd - module mother - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = 0.; @@ -714,8 +716,8 @@ void TileDetectorFactory::create(GeoPhysVol *world) deltaPhi); // --- Position N modules inside mother (positive/negative) ----- - TRANSFUNCTION xfGapModuleMotherPos = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*CLHEP::cm)*HepGeom::RotateX3D(180*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION xfGapModuleMotherNeg = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*CLHEP::cm)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION xfGapModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfGapModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer* stGapModuleMotherPos = new GeoSerialTransformer(pvGapModuleMother, &xfGapModuleMotherPos, @@ -730,14 +732,14 @@ void TileDetectorFactory::create(GeoPhysVol *world) pvGapMotherNeg->add(stGapModuleMotherNeg); - GeoTransform* tfGapMotherPos = new GeoTransform(HepGeom::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*CLHEP::cm)); + GeoTransform* tfGapMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*GeoModelKernelUnits::cm)); GeoNameTag* ntGapMotherPos = new GeoNameTag("TileGapPos"); pvTileEnvelopePosEndcap->add(tfGapMotherPos); pvTileEnvelopePosEndcap->add(ntGapMotherPos); pvTileEnvelopePosEndcap->add(pvGapMotherPos); - GeoTransform* tfGapMotherNeg = new GeoTransform(HepGeom::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*CLHEP::cm)); + GeoTransform* tfGapMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*GeoModelKernelUnits::cm)); GeoNameTag* ntGapMotherNeg = new GeoNameTag("TileGapNeg"); pvTileEnvelopeNegEndcap->add(tfGapMotherNeg); pvTileEnvelopeNegEndcap->add(ntGapMotherNeg); @@ -748,10 +750,10 @@ void TileDetectorFactory::create(GeoPhysVol *world) { dbManager->SetCurrentEnvByType(4); nModulesNeg=dbManager->GetEnvNModules(); - zShiftNeg=dbManager->GetEnvZShift()*CLHEP::cm; + zShiftNeg=dbManager->GetEnvZShift()*GeoModelKernelUnits::cm; dbManager->SetCurrentEnvByType(5); nModulesPos=dbManager->GetEnvNModules(); - zShiftPos=dbManager->GetEnvZShift()*CLHEP::cm; + zShiftPos=dbManager->GetEnvZShift()*GeoModelKernelUnits::cm; sectionBuilder->computeCellDim(m_detectorManager, TILE_REGION_GAP, @@ -761,7 +763,7 @@ void TileDetectorFactory::create(GeoPhysVol *world) } else { nModulesPos=nModulesNeg=dbManager->TILEnmodul(); - zShiftPos=zShiftNeg=dbManager->TILEzshift()*CLHEP::cm; + zShiftPos=zShiftNeg=dbManager->TILEzshift()*GeoModelKernelUnits::cm; // do not compute cell volumes for old setups (before DC3), // because cell-size table might be missing in DB } @@ -805,19 +807,19 @@ void TileDetectorFactory::create(GeoPhysVol *world) if(dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG4)) { - GeoTube* crackMother = new GeoTube(dbManager->TILBrminimal()*CLHEP::cm, - dbManager->TILBrmaximal()*CLHEP::cm/cos(deltaPhi/2.*CLHEP::deg), - dbManager->TILBdzmodul()/2.*CLHEP::cm); + GeoTube* crackMother = new GeoTube(dbManager->TILBrminimal()*GeoModelKernelUnits::cm, + dbManager->TILBrmaximal()*GeoModelKernelUnits::cm/cos(deltaPhi/2.*GeoModelKernelUnits::deg), + dbManager->TILBdzmodul()/2.*GeoModelKernelUnits::cm); GeoLogVol* lvCrackMother = new GeoLogVol("Crack",crackMother,matAir); GeoFullPhysVol* pvCrackMotherPos = new GeoFullPhysVol(lvCrackMother); GeoFullPhysVol* pvCrackMotherNeg = new GeoFullPhysVol(lvCrackMother); // Trd - module mother - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = 0.; @@ -839,8 +841,8 @@ void TileDetectorFactory::create(GeoPhysVol *world) deltaPhi); // --- Position N modules inside mother (positive/negative) ----- - TRANSFUNCTION xfCrackModuleMotherPos = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*CLHEP::cm)*HepGeom::RotateX3D(180*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION xfCrackModuleMotherNeg = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*CLHEP::cm)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION xfCrackModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfCrackModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer* stCrackModuleMotherPos = new GeoSerialTransformer(pvCrackModuleMother, &xfCrackModuleMotherPos, @@ -855,14 +857,14 @@ void TileDetectorFactory::create(GeoPhysVol *world) pvCrackMotherNeg->add(stCrackModuleMotherNeg); - GeoTransform* tfCrackMotherPos = new GeoTransform(HepGeom::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*CLHEP::cm)); + GeoTransform* tfCrackMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((dbManager->TILBzoffset()+dbManager->TILEzshift())*GeoModelKernelUnits::cm)); GeoNameTag* ntCrackMotherPos = new GeoNameTag("TileCrackPos"); pvTileEnvelopePosEndcap->add(tfCrackMotherPos); pvTileEnvelopePosEndcap->add(ntCrackMotherPos); pvTileEnvelopePosEndcap->add(pvCrackMotherPos); - GeoTransform* tfCrackMotherNeg = new GeoTransform(HepGeom::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*CLHEP::cm)); + GeoTransform* tfCrackMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-dbManager->TILBzoffset()-dbManager->TILEzshift())*GeoModelKernelUnits::cm)); GeoNameTag* ntCrackMotherNeg = new GeoNameTag("TileCrackNeg"); pvTileEnvelopeNegEndcap->add(tfCrackMotherNeg); pvTileEnvelopeNegEndcap->add(ntCrackMotherNeg); @@ -880,9 +882,9 @@ void TileDetectorFactory::create(GeoPhysVol *world) zEndSection = dbManager->TILBzoffset() + dbManager->TILBdzmodul()/2.; - GeoTube* fingerMother = new GeoTube(dbManager->TILBrmax()*CLHEP::cm, - dbManager->TILErmam()*CLHEP::cm, - dbManager->TIFGdz()/2.*CLHEP::cm); + GeoTube* fingerMother = new GeoTube(dbManager->TILBrmax()*GeoModelKernelUnits::cm, + dbManager->TILErmam()*GeoModelKernelUnits::cm, + dbManager->TIFGdz()/2.*GeoModelKernelUnits::cm); GeoLogVol* lvFingerMother = new GeoLogVol("Finger",fingerMother,matAir); GeoFullPhysVol* pvFingerMotherPos = new GeoFullPhysVol(lvFingerMother); @@ -890,14 +892,14 @@ void TileDetectorFactory::create(GeoPhysVol *world) // Trd - one finger mother // if(dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1)) - // thicknessWedgeMother = (dbManager->TILBzoffset() - dbManager->TILBdzmodul()/2. + dbManager->TILEzshift() - zEndSection) * CLHEP::cm; + // thicknessWedgeMother = (dbManager->TILBzoffset() - dbManager->TILBdzmodul()/2. + dbManager->TILEzshift() - zEndSection) * GeoModelKernelUnits::cm; // else - thicknessWedgeMother = dbManager->TIFGdz()*CLHEP::cm; + thicknessWedgeMother = dbManager->TIFGdz()*GeoModelKernelUnits::cm; dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL); - heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; GeoTrd* fingerModuleMother = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -915,11 +917,11 @@ void TileDetectorFactory::create(GeoPhysVol *world) deltaPhi, m_testbeamGeometry, ModuleNcp, - thicknessWedgeMother*(1./CLHEP::cm)); + thicknessWedgeMother*(1./GeoModelKernelUnits::cm)); // --- Position N modules inside mother (positive/negative) ----- - TRANSFUNCTION xfFingerModuleMotherPos = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*CLHEP::cm)*HepGeom::RotateX3D(180*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION xfFingerModuleMotherNeg = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*CLHEP::cm)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION xfFingerModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfFingerModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer* stFingerModuleMotherPos = new GeoSerialTransformer(pvFingerModuleMother, &xfFingerModuleMotherPos, @@ -935,14 +937,14 @@ void TileDetectorFactory::create(GeoPhysVol *world) pvFingerMotherNeg->add(stFingerModuleMotherNeg); - GeoTransform* tfFingerMotherPos = new GeoTransform(HepGeom::TranslateZ3D((zEndSection+dbManager->TIFGdz()/2.)*CLHEP::cm)); + GeoTransform* tfFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((zEndSection+dbManager->TIFGdz()/2.)*GeoModelKernelUnits::cm)); GeoNameTag* ntFingerMotherPos = new GeoNameTag("TileFingerPos"); pvTileEnvelopeBarrel->add(tfFingerMotherPos); pvTileEnvelopeBarrel->add(ntFingerMotherPos); pvTileEnvelopeBarrel->add(pvFingerMotherPos); - GeoTransform* tfFingerMotherNeg = new GeoTransform(HepGeom::TranslateZ3D((-zEndSection-dbManager->TIFGdz()/2.)*CLHEP::cm)); + GeoTransform* tfFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-zEndSection-dbManager->TIFGdz()/2.)*GeoModelKernelUnits::cm)); GeoNameTag* ntFingerMotherNeg = new GeoNameTag("TileFingerNeg"); pvTileEnvelopeBarrel->add(tfFingerMotherNeg); pvTileEnvelopeBarrel->add(ntFingerMotherNeg); @@ -958,19 +960,19 @@ void TileDetectorFactory::create(GeoPhysVol *world) zEndSection = dbManager->TILBzoffset() + dbManager->TILBdzmodul()/2. + dbManager->TILEzshift(); - GeoTube* efingerMother = new GeoTube(dbManager->TILBrmax()*CLHEP::cm, - dbManager->TILErmam()*CLHEP::cm, - dbManager->TIFGdz()/2.*CLHEP::cm); + GeoTube* efingerMother = new GeoTube(dbManager->TILBrmax()*GeoModelKernelUnits::cm, + dbManager->TILErmam()*GeoModelKernelUnits::cm, + dbManager->TIFGdz()/2.*GeoModelKernelUnits::cm); GeoLogVol* lvEFingerMother = new GeoLogVol("EFinger",efingerMother,matAir); GeoFullPhysVol* pvEFingerMotherPos = new GeoFullPhysVol(lvEFingerMother); GeoFullPhysVol* pvEFingerMotherNeg = new GeoFullPhysVol(lvEFingerMother); // Trd - one finger mother - thicknessWedgeMother = dbManager->TIFGdz() * CLHEP::cm; - heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TIFGdz() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; GeoTrd* efingerModuleMother = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -990,8 +992,8 @@ void TileDetectorFactory::create(GeoPhysVol *world) m_testbeamGeometry); // --- Position N modules inside mother (positive/negative) ----- - TRANSFUNCTION xfEFingerModuleMotherPos = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*CLHEP::cm)*HepGeom::RotateX3D(180*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); - TRANSFUNCTION xfEFingerModuleMotherNeg = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*CLHEP::cm)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION xfEFingerModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); + TRANSFUNCTION xfEFingerModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer* stEFingerModuleMotherPos = new GeoSerialTransformer(pvEFingerModuleMother, &xfEFingerModuleMotherPos, @@ -1006,14 +1008,14 @@ void TileDetectorFactory::create(GeoPhysVol *world) pvEFingerMotherNeg->add(stEFingerModuleMotherNeg); - GeoTransform* tfEFingerMotherPos = new GeoTransform(HepGeom::TranslateZ3D((zEndSection+dbManager->TIFGdz()/2.)*CLHEP::cm)); + GeoTransform* tfEFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D((zEndSection+dbManager->TIFGdz()/2.)*GeoModelKernelUnits::cm)); GeoNameTag* ntEFingerMotherPos = new GeoNameTag("TileEFingerPos"); pvTileEnvelopePosEndcap->add(tfEFingerMotherPos); pvTileEnvelopePosEndcap->add(ntEFingerMotherPos); pvTileEnvelopePosEndcap->add(pvEFingerMotherPos); - GeoTransform* tfEFingerMotherNeg = new GeoTransform(HepGeom::TranslateZ3D((-zEndSection-dbManager->TIFGdz()/2.)*CLHEP::cm)); + GeoTransform* tfEFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D((-zEndSection-dbManager->TIFGdz()/2.)*GeoModelKernelUnits::cm)); GeoNameTag* ntEFingerMotherNeg = new GeoNameTag("TileEFingerNeg"); pvTileEnvelopeNegEndcap->add(tfEFingerMotherNeg); pvTileEnvelopeNegEndcap->add(ntEFingerMotherNeg); @@ -1031,11 +1033,11 @@ void TileDetectorFactory::create(GeoPhysVol *world) { // Top transform for the central barrel dbManager->SetCurrentEnvByType(1); - HepGeom::Transform3D mz = HepGeom::RotateZ3D(dbManager->GetEnvDPhi()); - HepGeom::Transform3D my = HepGeom::RotateY3D(dbManager->GetEnvDTheta()); - HepGeom::Transform3D mx = HepGeom::RotateZ3D(dbManager->GetEnvDPsi()); - HepGeom::Transform3D vpos = HepGeom::Translate3D(dbManager->GetEnvDX()*CLHEP::cm,dbManager->GetEnvDY()*CLHEP::cm,dbManager->GetEnvDZ()*CLHEP::cm); - GeoTransform* barrelTT = new GeoTransform(HepGeom::Transform3D(vpos*(mx*(my*(mz))))); + GeoTrf::Transform3D mz = GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()); + GeoTrf::Transform3D my = GeoTrf::RotateY3D(dbManager->GetEnvDTheta()); + GeoTrf::Transform3D mx = GeoTrf::RotateZ3D(dbManager->GetEnvDPsi()); + GeoTrf::Transform3D vpos = GeoTrf::Translate3D(dbManager->GetEnvDX()*GeoModelKernelUnits::cm,dbManager->GetEnvDY()*GeoModelKernelUnits::cm,dbManager->GetEnvDZ()*GeoModelKernelUnits::cm); + GeoTransform* barrelTT = new GeoTransform(GeoTrf::Transform3D(vpos*(mx*(my*(mz))))); world->add(barrelTT); } @@ -1051,11 +1053,11 @@ void TileDetectorFactory::create(GeoPhysVol *world) { // Top transform for the positive endcap dbManager->SetCurrentEnvByType(3); - HepGeom::Transform3D mz = HepGeom::RotateZ3D(dbManager->GetEnvDPhi()); - HepGeom::Transform3D my = HepGeom::RotateY3D(dbManager->GetEnvDTheta()); - HepGeom::Transform3D mx = HepGeom::RotateZ3D(dbManager->GetEnvDPsi()); - HepGeom::Transform3D vpos = HepGeom::Translate3D(dbManager->GetEnvDX()*CLHEP::cm,dbManager->GetEnvDY()*CLHEP::cm,dbManager->GetEnvDZ()*CLHEP::cm); - GeoTransform* posEcTT = new GeoTransform(HepGeom::Transform3D(vpos*(mx*(my*(mz))))); + GeoTrf::Transform3D mz = GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()); + GeoTrf::Transform3D my = GeoTrf::RotateY3D(dbManager->GetEnvDTheta()); + GeoTrf::Transform3D mx = GeoTrf::RotateZ3D(dbManager->GetEnvDPsi()); + GeoTrf::Transform3D vpos = GeoTrf::Translate3D(dbManager->GetEnvDX()*GeoModelKernelUnits::cm,dbManager->GetEnvDY()*GeoModelKernelUnits::cm,dbManager->GetEnvDZ()*GeoModelKernelUnits::cm); + GeoTransform* posEcTT = new GeoTransform(GeoTrf::Transform3D(vpos*(mx*(my*(mz))))); world->add(posEcTT); } @@ -1071,11 +1073,11 @@ void TileDetectorFactory::create(GeoPhysVol *world) { // Top transform for the positive endcap dbManager->SetCurrentEnvByType(2); - HepGeom::Transform3D mz = HepGeom::RotateZ3D(dbManager->GetEnvDPhi()); - HepGeom::Transform3D my = HepGeom::RotateY3D(dbManager->GetEnvDTheta()); - HepGeom::Transform3D mx = HepGeom::RotateZ3D(dbManager->GetEnvDPsi()); - HepGeom::Transform3D vpos = HepGeom::Translate3D(dbManager->GetEnvDX()*CLHEP::cm,dbManager->GetEnvDY()*CLHEP::cm,dbManager->GetEnvDZ()*CLHEP::cm); - GeoTransform* negEcTT = new GeoTransform(HepGeom::Transform3D(vpos*(mx*(my*(mz))))); + GeoTrf::Transform3D mz = GeoTrf::RotateZ3D(dbManager->GetEnvDPhi()); + GeoTrf::Transform3D my = GeoTrf::RotateY3D(dbManager->GetEnvDTheta()); + GeoTrf::Transform3D mx = GeoTrf::RotateZ3D(dbManager->GetEnvDPsi()); + GeoTrf::Transform3D vpos = GeoTrf::Translate3D(dbManager->GetEnvDX()*GeoModelKernelUnits::cm,dbManager->GetEnvDY()*GeoModelKernelUnits::cm,dbManager->GetEnvDZ()*GeoModelKernelUnits::cm); + GeoTransform* negEcTT = new GeoTransform(GeoTrf::Transform3D(vpos*(mx*(my*(mz))))); world->add(negEcTT); } diff --git a/TileCalorimeter/TileGeoModel/src/TileGeoCutBuilder.cxx b/TileCalorimeter/TileGeoModel/src/TileGeoCutBuilder.cxx index be22d9e39f49325cd7cb72cec3d7f88e8d7d2396..d7237e3e504b1eab7a5ded0391d7e9c839d8ae81 100755 --- a/TileCalorimeter/TileGeoModel/src/TileGeoCutBuilder.cxx +++ b/TileCalorimeter/TileGeoModel/src/TileGeoCutBuilder.cxx @@ -19,9 +19,11 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoIdentifierTag.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" -#include "CLHEP/GenericFunctions/AbsFunction.hh" -#include "CLHEP/GenericFunctions/Variable.hh" +#include "GeoGenericFunctions/AbsFunction.h" +#include "GeoGenericFunctions/Variable.h" #include "GeoModelKernel/GeoXF.h" #include "GeoModelKernel/GeoSerialTransformer.h" @@ -54,7 +56,7 @@ void TileGeoCutBuilder::MakeCut(GeoPhysVol*& mother, const GeoMaterial* matIron = theMaterialManager->getMaterial("std::Iron"); */ - GeoTransform* tfTmp = new GeoTransform(HepGeom::Translate3D(0.,0.,0.)); + GeoTransform* tfTmp = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.)); mother->add(tfTmp); (*m_log) << MSG::INFO <<" MakeCut : number= "<<number<<endmsg; diff --git a/TileCalorimeter/TileGeoModel/src/TileGeoSectionBuilder.cxx b/TileCalorimeter/TileGeoModel/src/TileGeoSectionBuilder.cxx index 8bfaf0054854442358f72e6568a1357dcddd7f27..d88faeba510ce1a9e43d144ce8578d85d8c969a7 100755 --- a/TileCalorimeter/TileGeoModel/src/TileGeoSectionBuilder.cxx +++ b/TileCalorimeter/TileGeoModel/src/TileGeoSectionBuilder.cxx @@ -21,14 +21,16 @@ #include "GeoModelKernel/GeoTransform.h" #include "GeoModelKernel/GeoSerialIdentifier.h" #include "GeoModelKernel/GeoIdentifierTag.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoShapeSubtraction.h" #include "GeoModelKernel/GeoCutVolAction.h" -#include "CLHEP/GenericFunctions/AbsFunction.hh" -#include "CLHEP/GenericFunctions/Variable.hh" +#include "GeoGenericFunctions/AbsFunction.h" +#include "GeoGenericFunctions/Variable.h" #include "GeoModelKernel/GeoXF.h" #include "GeoModelKernel/GeoSerialTransformer.h" @@ -43,7 +45,7 @@ #include <assert.h> -using namespace Genfun; +using namespace GeoGenfun; using namespace GeoXF; TileGeoSectionBuilder::TileGeoSectionBuilder(const StoredMaterialManager* matManager, @@ -84,7 +86,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, { (*m_log) << MSG::VERBOSE <<" TileGeoSectionBuilder::fillSection ModuleNcp= "<<ModuleNcp<< endmsg; - double tan_delta_phi_2 = tan(delta_phi/2*CLHEP::deg); + double tan_delta_phi_2 = tan(delta_phi/2*GeoModelKernelUnits::deg); // -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- // Obtain required materials - Air and Iron @@ -110,10 +112,12 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, int SideFl = 1; if (ModuleNcp>=35 && ModuleNcp<=37) SideFl = -1; - HepGeom::Transform3D TransCut2, TransCutL, TransCutR; + GeoTrf::Transform3D TransCut2(GeoTrf::Transform3D::Identity()); + GeoTrf::Transform3D TransCutL(GeoTrf::Transform3D::Identity()); + GeoTrf::Transform3D TransCutR(GeoTrf::Transform3D::Identity()); - const GeoShapeUnion *CutA= NULL; - GeoShape *CutB= NULL; + const GeoShapeUnion *CutA{nullptr}; + GeoShape *CutB{nullptr}; // ext. barrel Cuts description if (sec_number==2 && m_dbManager->BoolCuts() && ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62))) @@ -121,7 +125,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, volname = "CutB"; m_dbManager->SetCurrentCuts(volname); PosXcut = m_dbManager->CutsXpos(); PosYcut = m_dbManager->CutsYpos(); - Rmore = 0.8*CLHEP::cm; + Rmore = 0.8*GeoModelKernelUnits::cm; // Inert materials, CutB1 dX1 = m_dbManager->CutsDX1()+Rmore; @@ -158,47 +162,47 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, checking("Cut2down", false, 1, dX1,dX2,dY1,dY2,dZ2); GeoTrd* Cut1down = new GeoTrd(dX1,dX2,dY1,dY2,dZ2); - HepGeom::Translate3D yPosA(0.,0.,-dZ1-dZ2); + GeoTrf::Translate3D yPosA(0.,0.,-dZ1-dZ2); const GeoShapeUnion& CutA1 = Cut1up->add(*Cut1down<<yPosA); CutA = &CutA1; - Radius = (m_dbManager->TILBrmaximal() + m_dbManager->TILBrminimal())/2 * CLHEP::cm; + Radius = (m_dbManager->TILBrmaximal() + m_dbManager->TILBrminimal())/2 * GeoModelKernelUnits::cm; - if (ModuleNcp==35||ModuleNcp==62) { YcorA = 5*CLHEP::cm; YcorB = 5*CLHEP::cm; lenPla =0.8*CLHEP::cm, Blia = 17.4*CLHEP::cm;} - if (ModuleNcp==36||ModuleNcp==61) { YcorA = 6.5*CLHEP::cm; YcorB = 6*CLHEP::cm; lenPla =1.7*CLHEP::cm; Blia = 16.9*CLHEP::cm;} - if (ModuleNcp==37||ModuleNcp==60) { YcorA = 8*CLHEP::cm; YcorB = 9*CLHEP::cm; lenPla =2.8*CLHEP::cm; Blia = 16.4*CLHEP::cm;} + if (ModuleNcp==35||ModuleNcp==62) { YcorA = 5*GeoModelKernelUnits::cm; YcorB = 5*GeoModelKernelUnits::cm; lenPla =0.8*GeoModelKernelUnits::cm, Blia = 17.4*GeoModelKernelUnits::cm;} + if (ModuleNcp==36||ModuleNcp==61) { YcorA = 6.5*GeoModelKernelUnits::cm; YcorB = 6*GeoModelKernelUnits::cm; lenPla =1.7*GeoModelKernelUnits::cm; Blia = 16.9*GeoModelKernelUnits::cm;} + if (ModuleNcp==37||ModuleNcp==60) { YcorA = 8*GeoModelKernelUnits::cm; YcorB = 9*GeoModelKernelUnits::cm; lenPla =2.8*GeoModelKernelUnits::cm; Blia = 16.4*GeoModelKernelUnits::cm;} - TransCut2 = HepGeom::TranslateZ3D(-Radius) - * HepGeom::RotateX3D((90-phi)*CLHEP::deg) * HepGeom::RotateY3D(180*CLHEP::deg) - * HepGeom::Translate3D(0.1*CLHEP::cm,SideFl*17.5*CLHEP::cm,-PosY+YcorA); + TransCut2 = GeoTrf::TranslateZ3D(-Radius) + * GeoTrf::RotateX3D((90-phi)*GeoModelKernelUnits::deg) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) + * GeoTrf::Translate3D(0.1*GeoModelKernelUnits::cm,SideFl*17.5*GeoModelKernelUnits::cm,-PosY+YcorA); // For modules on the side C apply extra transformation // which implements ReflectZ(0) if(neg) { - HepGeom::Point3D<double> ptTmp = TransCut2*HepGeom::Point3D<double>(0.,0.,0.); - TransCut2 = HepGeom::TranslateX3D(2*ptTmp.x())*HepGeom::RotateZ3D(180*CLHEP::deg)*TransCut2; + GeoTrf::Vector3D ptTmp = TransCut2*GeoTrf::Vector3D(0.,0.,0.); + TransCut2 = GeoTrf::TranslateX3D(2*ptTmp.x())*GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)*TransCut2; } if (ModuleNcp>=60 && ModuleNcp<=62) { - TransCutL = HepGeom::TranslateZ3D(-Radius) - * HepGeom::RotateY3D(180*CLHEP::deg) * HepGeom::RotateX3D(phi*CLHEP::deg) - * HepGeom::Translate3D(-1.4*CLHEP::cm,PosYcut+YcorB,-PosXcut-Blia); + TransCutL = GeoTrf::TranslateZ3D(-Radius) + * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(phi*GeoModelKernelUnits::deg) + * GeoTrf::Translate3D(-1.4*GeoModelKernelUnits::cm,PosYcut+YcorB,-PosXcut-Blia); // ReflectZ for C side if(neg) { - HepGeom::Point3D<double> ptTmp = TransCutL*HepGeom::Point3D<double>(0.,0.,0.); - TransCutL = HepGeom::TranslateX3D(2*ptTmp.x())*HepGeom::RotateZ3D(180*CLHEP::deg)*TransCutL; + GeoTrf::Vector3D ptTmp = TransCutL*GeoTrf::Vector3D(0.,0.,0.); + TransCutL = GeoTrf::TranslateX3D(2*ptTmp.x())*GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)*TransCutL; } } else if (ModuleNcp>=35 && ModuleNcp<=37) { - TransCutR = HepGeom::TranslateZ3D(-Radius) - * HepGeom::RotateY3D(180*CLHEP::deg) * HepGeom::RotateX3D(phi*CLHEP::deg) - * HepGeom::Translate3D(-1.4*CLHEP::cm,PosYcut+YcorB,PosXcut+Blia) - * HepGeom::RotateY3D(180*CLHEP::deg); + TransCutR = GeoTrf::TranslateZ3D(-Radius) + * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) * GeoTrf::RotateX3D(phi*GeoModelKernelUnits::deg) + * GeoTrf::Translate3D(-1.4*GeoModelKernelUnits::cm,PosYcut+YcorB,PosXcut+Blia) + * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg); // ReflectZ for C side if(neg) { - HepGeom::Point3D<double> ptTmp = TransCutR*HepGeom::Point3D<double>(0.,0.,0.); - TransCutR = HepGeom::TranslateX3D(2*ptTmp.x())*HepGeom::RotateZ3D(180*CLHEP::deg)*TransCutR; + GeoTrf::Vector3D ptTmp = TransCutR*GeoTrf::Vector3D(0.,0.,0.); + TransCutR = GeoTrf::TranslateX3D(2*ptTmp.x())*GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)*TransCutR; } } @@ -215,21 +219,21 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, if (m_dbManager->TILBngirder() > 0) { // Mother volume for girder - thicknessGirderMother = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend() - m_dbManager->TILBdzend2())*CLHEP::cm; + thicknessGirderMother = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend() - m_dbManager->TILBdzend2())*GeoModelKernelUnits::cm; // special module with special girder if ((Id4 == 7) && (sec_number == 3)) - thicknessGirderMother = (m_dbManager->TILBdzgir() - m_dbManager->TILBdzend() - m_dbManager->TILBdzend2())*CLHEP::cm; + thicknessGirderMother = (m_dbManager->TILBdzgir() - m_dbManager->TILBdzend() - m_dbManager->TILBdzend2())*GeoModelKernelUnits::cm; - double heightGirderMother = (tile_rmax - m_dbManager->TILBrmax())*CLHEP::cm; - double dy1GirderMother = m_dbManager->TILBrmax() * tan_delta_phi_2 * CLHEP::cm; - double dy2GirderMother = tile_rmax * tan_delta_phi_2 * CLHEP::cm; + double heightGirderMother = (tile_rmax - m_dbManager->TILBrmax())*GeoModelKernelUnits::cm; + double dy1GirderMother = m_dbManager->TILBrmax() * tan_delta_phi_2 * GeoModelKernelUnits::cm; + double dy2GirderMother = tile_rmax * tan_delta_phi_2 * GeoModelKernelUnits::cm; // ps test the TILB DZGIR // std::cout <<"\t\t PS Girder Module = "<<ModuleNcp<< std::endl; // std::cout <<"\t\t PS thicknessGirderMother = "<<thicknessGirderMother<< std::endl; //ps account for special ITC modules 14,15,18,19 if ((Id4 == 7) && (sec_number == 3)) { - specialModuleZShift = 0.5*CLHEP::cm*(m_dbManager->TILBdzgir() - m_dbManager->TILBdzmodul()); + specialModuleZShift = 0.5*GeoModelKernelUnits::cm*(m_dbManager->TILBdzgir() - m_dbManager->TILBdzmodul()); } // checking("GirderMother", false, 3, @@ -248,16 +252,16 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, tile_rmax, m_dbManager->TILBrmax(), tan_delta_phi_2, - thicknessGirderMother*(1./CLHEP::cm)); + thicknessGirderMother*(1./GeoModelKernelUnits::cm)); GeoTransform* tfGirderMother = 0; if(sec_number==3) - tfGirderMother = new GeoTransform(HepGeom::Translate3D((m_dbManager->TILBdzend()-m_dbManager->TILBdzend2())*CLHEP::cm/2, 0., - (m_dbManager->TILBrmax()-m_dbManager->TILBrmin())*CLHEP::cm/2)); + tfGirderMother = new GeoTransform(GeoTrf::Translate3D((m_dbManager->TILBdzend()-m_dbManager->TILBdzend2())*GeoModelKernelUnits::cm/2, 0., + (m_dbManager->TILBrmax()-m_dbManager->TILBrmin())*GeoModelKernelUnits::cm/2)); else - tfGirderMother = new GeoTransform(HepGeom::Translate3D((m_dbManager->TILBdzend()-m_dbManager->TILBdzend2())*CLHEP::cm/2, 0., - (m_dbManager->TILBrmax()-rminb)*CLHEP::cm/2)); + tfGirderMother = new GeoTransform(GeoTrf::Translate3D((m_dbManager->TILBdzend()-m_dbManager->TILBdzend2())*GeoModelKernelUnits::cm/2, 0., + (m_dbManager->TILBrmax()-rminb)*GeoModelKernelUnits::cm/2)); mother->add(tfGirderMother); mother->add(pvGirderMother); @@ -277,13 +281,13 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, if(sec_number==3) { //ITC coverplate - thicknessFrontPlate = (m_dbManager->TILBdzmodul() - zlen_itc2)*CLHEP::cm; + thicknessFrontPlate = (m_dbManager->TILBdzmodul() - zlen_itc2)*GeoModelKernelUnits::cm; if (thicknessFrontPlate > rless) { - heightFrontPlate = m_dbManager->TILBdrfront()*CLHEP::cm; - dy1FrontPlate = (rminb*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*CLHEP::cm; - dy2FrontPlate = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*CLHEP::cm; + heightFrontPlate = m_dbManager->TILBdrfront()*GeoModelKernelUnits::cm; + dy1FrontPlate = (rminb*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; + dy2FrontPlate = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG <<" FrontPlateSh dX1,dX2= "<<thicknessFrontPlate/2<<", "<<thicknessFrontPlate/2 @@ -298,9 +302,9 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, GeoLogVol* lvFrontPlateSh = new GeoLogVol("FrontPlateSh",frontPlateSh,matIron); GeoPhysVol* pvFrontPlateSh = new GeoPhysVol(lvFrontPlateSh); - GeoTransform* tfFrontPlateSh = new GeoTransform(HepGeom::Translate3D( - -m_dbManager->TILBdzmodul()/2*CLHEP::cm+thicknessFrontPlate/2, 0., - (rminb - tile_rmax)/2*CLHEP::cm)); + GeoTransform* tfFrontPlateSh = new GeoTransform(GeoTrf::Translate3D( + -m_dbManager->TILBdzmodul()/2*GeoModelKernelUnits::cm+thicknessFrontPlate/2, 0., + (rminb - tile_rmax)/2*GeoModelKernelUnits::cm)); mother->add(tfFrontPlateSh); mother->add(pvFrontPlateSh); @@ -323,10 +327,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, volname = "CutB"; m_dbManager->SetCurrentCuts(volname); dXCutB = m_dbManager->CutsDX1(); - thicknessFrontPlate = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())*CLHEP::cm; - heightFrontPlate = m_dbManager->TILBdrfront()*CLHEP::cm; - dy1FrontPlate = (rminb*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*CLHEP::cm; - dy2FrontPlate = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*CLHEP::cm; + thicknessFrontPlate = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())*GeoModelKernelUnits::cm; + heightFrontPlate = m_dbManager->TILBdrfront()*GeoModelKernelUnits::cm; + dy1FrontPlate = (rminb*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; + dy2FrontPlate = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; GeoTrd* frontPlate = new GeoTrd(thicknessFrontPlate/2 -(dXCutA+dXCutB), thicknessFrontPlate/2 -(dXCutA+dXCutB), @@ -336,8 +340,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, // Cuting of Plate /* - HepGeom::Transform3D TCu2 = HepGeom::RotateX3D((90-phi)*CLHEP::deg) * HepGeom::RotateY3D(180*CLHEP::deg) - * HepGeom::Translate3D(thicknessFrontPlate/2-dXCutA,0,0); + GeoTrf::Transform3D TCu2 = GeoTrf::RotateX3D((90-phi)*GeoModelKernelUnits::deg) * GeoTrf::RotateY3D(180*GeoModelKernelUnits::deg) + * GeoTrf::Translate3D(thicknessFrontPlate/2-dXCutA,0,0); GeoTransform* TCu = new GeoTransform(TCu2); const GeoShape &tmp_frontPlate = frontPlate->subtract((*CutA)<<TCu2); @@ -346,9 +350,9 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, GeoLogVol* lvFrontPlate = new GeoLogVol("FrontPlate",frontPlate,matIron); GeoPhysVol* pvFrontPlate = new GeoPhysVol(lvFrontPlate); - GeoTransform* tfFrontPlate = new GeoTransform(HepGeom::Translate3D( - (m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())/2*CLHEP::cm+ dXCutB, 0., - (m_dbManager->TILBrmin()-m_dbManager->TILBdrfront()/2-(tile_rmax + rminb)/2)*CLHEP::cm)); + GeoTransform* tfFrontPlate = new GeoTransform(GeoTrf::Translate3D( + (m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())/2*GeoModelKernelUnits::cm+ dXCutB, 0., + (m_dbManager->TILBrmin()-m_dbManager->TILBdrfront()/2-(tile_rmax + rminb)/2)*GeoModelKernelUnits::cm)); mother->add(tfFrontPlate); mother->add(pvFrontPlate); @@ -360,10 +364,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, else { //Ordinary frontplate - thicknessFrontPlate = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())*CLHEP::cm; - heightFrontPlate = m_dbManager->TILBdrfront()*CLHEP::cm; - dy1FrontPlate = (rminb*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*CLHEP::cm; - dy2FrontPlate = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*CLHEP::cm; + thicknessFrontPlate = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())*GeoModelKernelUnits::cm; + heightFrontPlate = m_dbManager->TILBdrfront()*GeoModelKernelUnits::cm; + dy1FrontPlate = (rminb*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; + dy2FrontPlate = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; GeoTrd* frontPlate = new GeoTrd(thicknessFrontPlate/2, thicknessFrontPlate/2, @@ -373,9 +377,9 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, GeoLogVol* lvFrontPlate = new GeoLogVol("FrontPlate",frontPlate,matIron); GeoPhysVol* pvFrontPlate = new GeoPhysVol(lvFrontPlate); - GeoTransform* tfFrontPlate = new GeoTransform(HepGeom::Translate3D( - (m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())/2*CLHEP::cm, 0., - (m_dbManager->TILBrmin()-m_dbManager->TILBdrfront()/2-(tile_rmax + rminb)/2)*CLHEP::cm)); + GeoTransform* tfFrontPlate = new GeoTransform(GeoTrf::Translate3D( + (m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())/2*GeoModelKernelUnits::cm, 0., + (m_dbManager->TILBrmin()-m_dbManager->TILBdrfront()/2-(tile_rmax + rminb)/2)*GeoModelKernelUnits::cm)); mother->add(tfFrontPlate); mother->add(pvFrontPlate); @@ -386,13 +390,13 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, double dy1EndPlate, dy2EndPlate, thicknessEndPlate, heightEndPlate; //VARIABLES FOR END PLATE HOLE - double heightEPHole = m_dbManager->TILBflangex()*CLHEP::cm; - double dyEPHole = m_dbManager->TILBflangex()*CLHEP::cm/2; + double heightEPHole = m_dbManager->TILBflangex()*GeoModelKernelUnits::cm; + double dyEPHole = m_dbManager->TILBflangex()*GeoModelKernelUnits::cm/2; // ps . shifts for end plates in cutout regions - HepGeom::Transform3D cutOutTransformation ; + GeoTrf::Transform3D cutOutTransformation(GeoTrf::Transform3D::Identity()); //first endplate - GeoTransform* tfEndPlateSh =NULL; + GeoTransform* tfEndPlateSh{nullptr}; if (m_dbManager->TILBdzend1() > 0) { @@ -400,10 +404,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, { //Short endplate - dy1EndPlate = rminb * tan_delta_phi_2 * CLHEP::cm; - dy2EndPlate = m_dbManager->TILBrmax() * tan_delta_phi_2 * CLHEP::cm; - thicknessEndPlate = m_dbManager->TILBdzend1() * CLHEP::cm; - heightEndPlate = (m_dbManager->TILBrmax() - rminb) * CLHEP::cm; + dy1EndPlate = rminb * tan_delta_phi_2 * GeoModelKernelUnits::cm; + dy2EndPlate = m_dbManager->TILBrmax() * tan_delta_phi_2 * GeoModelKernelUnits::cm; + thicknessEndPlate = m_dbManager->TILBdzend1() * GeoModelKernelUnits::cm; + heightEndPlate = (m_dbManager->TILBrmax() - rminb) * GeoModelKernelUnits::cm; // // creating standart endplate. It is the same for // both standard mosules and modules with cuts @@ -438,40 +442,40 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, if ( ( ModuleNcp == 37 ) || ( ModuleNcp == 60 ) ) { - rotationAngle = (180.0 - 25.3125 )* CLHEP::deg ; // ATLLEMS_0003 0004 - shiftCutPlate = 38.7 * CLHEP::mm; + rotationAngle = (180.0 - 25.3125 )* GeoModelKernelUnits::deg ; // ATLLEMS_0003 0004 + shiftCutPlate = 38.7 * GeoModelKernelUnits::mm; cutOutTransformation = - HepGeom::Translate3D(0,0, -heightEndPlate/2.) * - HepGeom::RotateX3D( 90 * CLHEP::deg ) * - HepGeom::Translate3D(0.,0., -rotationSign * (dy2EndPlate + shiftCutPlate ) ) * - HepGeom::RotateX3D( rotationSign * rotationAngle ) ; + GeoTrf::Translate3D(0,0, -heightEndPlate/2.) * + GeoTrf::RotateX3D( 90 * GeoModelKernelUnits::deg ) * + GeoTrf::Translate3D(0.,0., -rotationSign * (dy2EndPlate + shiftCutPlate ) ) * + GeoTrf::RotateX3D( rotationSign * rotationAngle ) ; const GeoShape & endPlateShCutted3760 = (endPlateSh->subtract( (*endPlateShCut)<< cutOutTransformation ) ) ; lvEndPlateSh = new GeoLogVol("EndPlateSh", &(endPlateShCutted3760) , matIron); } else if ( ( ModuleNcp == 36 ) || ( ModuleNcp == 61 ) ) { - rotationAngle = - ( 116.4832 - 90. )* CLHEP::deg ; // ATLLEMS_0005 0006 - shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*CLHEP::cm - 1448.4 * CLHEP::mm); + rotationAngle = - ( 116.4832 - 90. )* GeoModelKernelUnits::deg ; // ATLLEMS_0005 0006 + shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*GeoModelKernelUnits::cm - 1448.4 * GeoModelKernelUnits::mm); cutOutTransformation = - HepGeom::Translate3D( 0, 0, -heightEndPlate/2. ) * - HepGeom::Translate3D( 0, 0, - (dy2EndPlate - shiftCutPlate + 0.5*dy2EndPlate*(1.- std::cos(rotationAngle*CLHEP::rad))) ) * - HepGeom::RotateX3D( rotationSign * rotationAngle ) ; + GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) * + GeoTrf::Translate3D( 0, 0, - (dy2EndPlate - shiftCutPlate + 0.5*dy2EndPlate*(1.- std::cos(rotationAngle*GeoModelKernelUnits::rad))) ) * + GeoTrf::RotateX3D( rotationSign * rotationAngle ) ; const GeoShape & endPlateShCutted3661 = (endPlateSh->subtract( (*endPlateShCut)<< cutOutTransformation ) ) ; lvEndPlateSh = new GeoLogVol("EndPlateSh", &(endPlateShCutted3661) , matIron); } else if ( ( ModuleNcp == 35 ) || ( ModuleNcp == 62 ) ) { - rotationAngle = - ( 104.0625 - 90.0 )* CLHEP::deg ; // ATLLEMS_0007 0008 - shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*CLHEP::cm - 1534.6 * CLHEP::mm); + rotationAngle = - ( 104.0625 - 90.0 )* GeoModelKernelUnits::deg ; // ATLLEMS_0007 0008 + shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*GeoModelKernelUnits::cm - 1534.6 * GeoModelKernelUnits::mm); cutOutTransformation = - HepGeom::Translate3D( 0, 0, -heightEndPlate/2. ) * - HepGeom::Translate3D( 0, 0, - (dy2EndPlate - shiftCutPlate) ) * - HepGeom::RotateX3D( rotationSign * rotationAngle ) ; + GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) * + GeoTrf::Translate3D( 0, 0, - (dy2EndPlate - shiftCutPlate) ) * + GeoTrf::RotateX3D( rotationSign * rotationAngle ) ; const GeoShape & endPlateShCutted3562 = (endPlateSh->subtract( (*endPlateShCut)<< cutOutTransformation ) ) ; lvEndPlateSh = new GeoLogVol("EndPlateSh", &(endPlateShCutted3562) , matIron); @@ -497,10 +501,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, GeoPhysVol* pvEndPlateSh = new GeoPhysVol(lvEndPlateSh); - tfEndPlateSh = new GeoTransform(HepGeom::Translate3D( + tfEndPlateSh = new GeoTransform(GeoTrf::Translate3D( specialModuleZShift + - (m_dbManager->TILBdzend1() - m_dbManager->TILBdzmodul())*CLHEP::cm/2, 0., - (m_dbManager->TILBrmax() - tile_rmax)*CLHEP::cm/2)); + (m_dbManager->TILBdzend1() - m_dbManager->TILBdzmodul())*GeoModelKernelUnits::cm/2, 0., + (m_dbManager->TILBrmax() - tile_rmax)*GeoModelKernelUnits::cm/2)); tfEndPlateSh->ref(); mother->add(tfEndPlateSh); @@ -513,10 +517,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, else { //Ordinary endplate - dy1EndPlate = rminb * tan_delta_phi_2 * CLHEP::cm; - dy2EndPlate = tile_rmax * tan_delta_phi_2 * CLHEP::cm; - thicknessEndPlate = m_dbManager->TILBdzend1() * CLHEP::cm; - heightEndPlate = (tile_rmax-rminb)*CLHEP::cm; + dy1EndPlate = rminb * tan_delta_phi_2 * GeoModelKernelUnits::cm; + dy2EndPlate = tile_rmax * tan_delta_phi_2 * GeoModelKernelUnits::cm; + thicknessEndPlate = m_dbManager->TILBdzend1() * GeoModelKernelUnits::cm; + heightEndPlate = (tile_rmax-rminb)*GeoModelKernelUnits::cm; GeoTrd* endPlate1 = new GeoTrd(thicknessEndPlate/2, thicknessEndPlate/2, @@ -538,14 +542,14 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, GeoLogVol* lvEPHole1 = new GeoLogVol("EPHole1",epHole1,matAir); GeoPhysVol* pvEPHole1 = new GeoPhysVol(lvEPHole1); - GeoTransform* tfEPHole1 = new GeoTransform(HepGeom::Translate3D(0.,0., - (m_dbManager->TILBflangey()-(tile_rmax + rminb)/2)*CLHEP::cm)); + GeoTransform* tfEPHole1 = new GeoTransform(GeoTrf::Translate3D(0.,0., + (m_dbManager->TILBflangey()-(tile_rmax + rminb)/2)*GeoModelKernelUnits::cm)); pvEndPlate1->add(tfEPHole1); pvEndPlate1->add(pvEPHole1); } - GeoTransform* tfEndPlate1 = new GeoTransform(HepGeom::Translate3D( - (m_dbManager->TILBdzend1() - m_dbManager->TILBdzmodul())*CLHEP::cm/2, 0., 0.)); + GeoTransform* tfEndPlate1 = new GeoTransform(GeoTrf::Translate3D( + (m_dbManager->TILBdzend1() - m_dbManager->TILBdzmodul())*GeoModelKernelUnits::cm/2, 0., 0.)); mother->add(tfEndPlate1); mother->add(pvEndPlate1); @@ -555,7 +559,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, } //second endplate - GeoTransform* tfEndPlate2 =NULL; + GeoTransform* tfEndPlate2{nullptr}; if (m_dbManager->TILBdzend2() > 0) { @@ -563,10 +567,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, double radShift =lenPla; double rminbT=rminb + radShift; - dy1EndPlate = rminb * tan_delta_phi_2 * CLHEP::cm; - dy2EndPlate = tile_rmax * tan_delta_phi_2 * CLHEP::cm; - thicknessEndPlate = m_dbManager->TILBdzend2() * CLHEP::cm; - heightEndPlate = (tile_rmax-rminb) * CLHEP::cm; + dy1EndPlate = rminb * tan_delta_phi_2 * GeoModelKernelUnits::cm; + dy2EndPlate = tile_rmax * tan_delta_phi_2 * GeoModelKernelUnits::cm; + thicknessEndPlate = m_dbManager->TILBdzend2() * GeoModelKernelUnits::cm; + heightEndPlate = (tile_rmax-rminb) * GeoModelKernelUnits::cm; GeoLogVol* lvEndPlate2 = 0; @@ -576,8 +580,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, dy2EndPlate, heightEndPlate/2); - tfEndPlate2 = new GeoTransform(HepGeom::Translate3D( - (-m_dbManager->TILBdzend2() + m_dbManager->TILBdzmodul())*CLHEP::cm/2, 0., 0.)); + tfEndPlate2 = new GeoTransform(GeoTrf::Translate3D( + (-m_dbManager->TILBdzend2() + m_dbManager->TILBdzmodul())*GeoModelKernelUnits::cm/2, 0., 0.)); tfEndPlate2->ref(); if (sec_number==2 && ((ModuleNcp>=35 && ModuleNcp<=37)||(ModuleNcp>=60 && ModuleNcp<=62)) ) @@ -596,51 +600,51 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, if ( ( ModuleNcp == 37 ) || ( ModuleNcp == 60 ) ) { - rotationAngle = - ( 115.3125 - 90.0 )* CLHEP::deg ; // ATLLEMS_0011 0012 - shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*CLHEP::cm - 1364.0 * CLHEP::mm); + rotationAngle = - ( 115.3125 - 90.0 )* GeoModelKernelUnits::deg ; // ATLLEMS_0011 0012 + shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*GeoModelKernelUnits::cm - 1364.0 * GeoModelKernelUnits::mm); cutOutTransformation = - HepGeom::Translate3D( 0, 0, -heightEndPlate/2. ) * - HepGeom::Translate3D( 0, 0, - (dy2EndPlate - shiftCutPlate) ) * - HepGeom::RotateX3D( rotationSign * rotationAngle ) ; + GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) * + GeoTrf::Translate3D( 0, 0, - (dy2EndPlate - shiftCutPlate) ) * + GeoTrf::RotateX3D( rotationSign * rotationAngle ) ; const GeoShape & endPlate2Cutted3760 = (endPlate2->subtract( (*endPlate2Cut)<< cutOutTransformation ) ) ; lvEndPlate2 = new GeoLogVol("EndPlate2", &(endPlate2Cutted3760) , matIron); } else if ( ( ModuleNcp == 36 ) || ( ModuleNcp == 61 ) ) { - rotationAngle = - ( 109.6875 - 90.0 )* CLHEP::deg ; // ATLLEMS_0009 0010 - shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*CLHEP::cm - 1464.0 * CLHEP::mm); + rotationAngle = - ( 109.6875 - 90.0 )* GeoModelKernelUnits::deg ; // ATLLEMS_0009 0010 + shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*GeoModelKernelUnits::cm - 1464.0 * GeoModelKernelUnits::mm); cutOutTransformation = - HepGeom::Translate3D( 0, 0, -heightEndPlate/2. ) * - HepGeom::Translate3D( 0, 0, - (dy2EndPlate - shiftCutPlate) ) * - HepGeom::RotateX3D( rotationSign * rotationAngle ) ; + GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) * + GeoTrf::Translate3D( 0, 0, - (dy2EndPlate - shiftCutPlate) ) * + GeoTrf::RotateX3D( rotationSign * rotationAngle ) ; const GeoShape & endPlate2Cutted3661 = (endPlate2->subtract( (*endPlate2Cut)<< cutOutTransformation ) ) ; lvEndPlate2 = new GeoLogVol("EndPlate2", &(endPlate2Cutted3661) , matIron); } else if ( ( ModuleNcp == 35 ) || ( ModuleNcp == 62 ) ) { - rotationAngle = - ( 104.0625 - 90.0 )* CLHEP::deg ; // ATLLEMS_0009 0010 - shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*CLHEP::cm - ( 1915.0 -385.0 )* CLHEP::mm); // girder is subtracted (no drawing) + rotationAngle = - ( 104.0625 - 90.0 )* GeoModelKernelUnits::deg ; // ATLLEMS_0009 0010 + shiftCutPlate = ( ( m_dbManager->TILBrmax() - rminb )*GeoModelKernelUnits::cm - ( 1915.0 -385.0 )* GeoModelKernelUnits::mm); // girder is subtracted (no drawing) cutOutTransformation = - HepGeom::Translate3D( 0, 0, -heightEndPlate/2. ) * - HepGeom::Translate3D( 0, 0, - (dy2EndPlate - shiftCutPlate) ) * - HepGeom::RotateX3D( rotationSign * rotationAngle ) ; + GeoTrf::Translate3D( 0, 0, -heightEndPlate/2. ) * + GeoTrf::Translate3D( 0, 0, - (dy2EndPlate - shiftCutPlate) ) * + GeoTrf::RotateX3D( rotationSign * rotationAngle ) ; const GeoShape & endPlate2Cutted3562 = (endPlate2->subtract( (*endPlate2Cut)<< cutOutTransformation ) ) ; lvEndPlate2 = new GeoLogVol("EndPlate2", &(endPlate2Cutted3562) , matIron); } - // dy1EndPlate = rminbT * tan_delta_phi_2 * CLHEP::cm; - // dy2EndPlate = tile_rmax * tan_delta_phi_2 * CLHEP::cm; - // thicknessEndPlate = m_dbManager->TILBdzend2() * CLHEP::cm; - // heightEndPlate = (tile_rmax - rminbT) * CLHEP::cm; + // dy1EndPlate = rminbT * tan_delta_phi_2 * GeoModelKernelUnits::cm; + // dy2EndPlate = tile_rmax * tan_delta_phi_2 * GeoModelKernelUnits::cm; + // thicknessEndPlate = m_dbManager->TILBdzend2() * GeoModelKernelUnits::cm; + // heightEndPlate = (tile_rmax - rminbT) * GeoModelKernelUnits::cm; - // tfEndPlate2 = new GeoTransform(HepGeom::Translate3D( - // (-m_dbManager->TILBdzend2() + m_dbManager->TILBdzmodul())*CLHEP::cm/2, 0, radShift/2*CLHEP::cm)); + // tfEndPlate2 = new GeoTransform(GeoTrf::Translate3D( + // (-m_dbManager->TILBdzend2() + m_dbManager->TILBdzmodul())*GeoModelKernelUnits::cm/2, 0, radShift/2*GeoModelKernelUnits::cm)); } else @@ -653,7 +657,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, //Position air hole if (m_dbManager->TILBflangex() > 0) { - dyEPHole = m_dbManager->TILBflangex()*CLHEP::cm/2; + dyEPHole = m_dbManager->TILBflangex()*GeoModelKernelUnits::cm/2; GeoTrd* epHole2 = new GeoTrd (thicknessEndPlate/2, thicknessEndPlate/2, @@ -663,8 +667,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, GeoLogVol* lvEPHole2 = new GeoLogVol("EPHole2",epHole2,matAir); GeoPhysVol* pvEPHole2 = new GeoPhysVol(lvEPHole2); - GeoTransform* tfEPHole2 = new GeoTransform(HepGeom::Translate3D(0.,0., - (m_dbManager->TILBflangey()-(tile_rmax + rminbT)/2)*CLHEP::cm)); + GeoTransform* tfEPHole2 = new GeoTransform(GeoTrf::Translate3D(0.,0., + (m_dbManager->TILBflangey()-(tile_rmax + rminbT)/2)*GeoModelKernelUnits::cm)); pvEndPlate2->add(tfEPHole2); pvEndPlate2->add(pvEPHole2); } @@ -679,10 +683,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, } // End Plates //---------------------------------------------------Absorber-------------------------------------------------------- - double heightAbsorber = (m_dbManager->TILBrmax() - m_dbManager->TILBrmin())*CLHEP::cm; - double thicknessAbsorber = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())*CLHEP::cm; - double dy1Absorber = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*CLHEP::cm; - double dy2Absorber = (m_dbManager->TILBrmax()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*CLHEP::cm; + double heightAbsorber = (m_dbManager->TILBrmax() - m_dbManager->TILBrmin())*GeoModelKernelUnits::cm; + double thicknessAbsorber = (m_dbManager->TILBdzmodul() - m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2())*GeoModelKernelUnits::cm; + double dy1Absorber = (m_dbManager->TILBrmin()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; + double dy2Absorber = (m_dbManager->TILBrmax()*tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; checking("Absorber", true, 3, thicknessAbsorber/2,thicknessAbsorber/2,dy1Absorber,dy2Absorber,heightAbsorber/2); @@ -692,10 +696,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, double PosAbsor1 =0, PosAbsor2 =0, PosAbsor3 =0; int nA1 =32, nA2 = 0, nA3 =16; - GeoTrd *absorber =NULL, *absorber1 =NULL, *absorber3 =NULL; - GeoLogVol *lvAbsorber =NULL, *lvAbsorber1 =NULL, *lvAbsorber3 =NULL; - GeoPhysVol *pvAbsorber =NULL, *pvAbsorber1 =NULL, *pvAbsorber3 =NULL; - GeoPhysVol *pvTmp_Absorber1 =NULL, *pvTmp_Absorber3 =NULL; + GeoTrd *absorber{nullptr}, *absorber1{nullptr}, *absorber3{nullptr}; + GeoLogVol *lvAbsorber{nullptr}, *lvAbsorber1{nullptr}, *lvAbsorber3{nullptr}; + GeoPhysVol *pvAbsorber{nullptr}, *pvAbsorber1{nullptr}, *pvAbsorber3{nullptr}; + GeoPhysVol *pvTmp_Absorber1{nullptr}, *pvTmp_Absorber3{nullptr}; // Perform different actions depending on sections switch (sec_number) @@ -703,7 +707,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, case 2: { //Extended barrel - consists of ordinary periods of type 1 only - thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*CLHEP::cm; + thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*GeoModelKernelUnits::cm; // The period number for middle absorber nA2 = m_dbManager->TILBnperiod() - (nA1+nA3); @@ -803,10 +807,10 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, //nrOfPeriods-1 ordinary period and second with one special period of type 2 //First division - thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*CLHEP::cm; + thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*GeoModelKernelUnits::cm; m_barrelPeriodThickness = thicknessPeriod; - m_barrelGlue = dzglue*CLHEP::cm; + m_barrelGlue = dzglue*GeoModelKernelUnits::cm; checking("Period 0", false, 4, thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2); @@ -821,7 +825,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvPeriod = new GeoPhysVol(lvPeriod); fillPeriod(pvPeriod, - thicknessPeriod*(1./CLHEP::cm), + thicknessPeriod*(1./GeoModelKernelUnits::cm), dzglue, tan_delta_phi_2, 1); // 1-period type @@ -838,7 +842,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, // Place periods into Absorber Child like G4 replica GENFUNCTION periodPos1 = (thicknessPeriod*(2*periodInd+1)-thicknessAbsorberChild)/2; - TRANSFUNCTION xfReplica1 = Pow(HepGeom::TranslateX3D(1.),periodPos1); + TRANSFUNCTION xfReplica1 = Pow(GeoTrf::TranslateX3D(1.),periodPos1); if (m_verbose) checktransfunc(thicknessAbsorberChild,thicknessPeriod,m_dbManager->TILBnperiod()-1, (thicknessAbsorberChild - thicknessAbsorber)/2); @@ -850,12 +854,12 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvAbsorberChild->add(stPeriod); // Place absorber child - tfAbsorberChild = new GeoTransform(HepGeom::Translate3D((thicknessAbsorberChild - thicknessAbsorber)/2,0.,0.)); + tfAbsorberChild = new GeoTransform(GeoTrf::Translate3D((thicknessAbsorberChild - thicknessAbsorber)/2,0.,0.)); pvAbsorber->add(tfAbsorberChild); pvAbsorber->add(pvAbsorberChild); //Second division - thicknessPeriod = (m_dbManager->TILBdzmast() + 2.*m_dbManager->TILBdzspac() + 2.*dzglue)*CLHEP::cm; + thicknessPeriod = (m_dbManager->TILBdzmast() + 2.*m_dbManager->TILBdzspac() + 2.*dzglue)*GeoModelKernelUnits::cm; checking("Period 1", false, 4, thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2); @@ -869,7 +873,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvPeriod = new GeoPhysVol(lvPeriod); fillPeriod(pvPeriod, - thicknessPeriod*(1./CLHEP::cm), + thicknessPeriod*(1./GeoModelKernelUnits::cm), dzglue, tan_delta_phi_2, 2); // 2-period type @@ -888,14 +892,14 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, (-thicknessAbsorberChild + thicknessAbsorber)/2); // Place period in the absorber child - tfPeriod = new GeoTransform(HepGeom::Translate3D(0.,0.,0.)); + tfPeriod = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.)); pvAbsorberChild->add(new GeoIdentifierTag(m_dbManager->TILBnperiod()-1)); pvAbsorberChild->add(tfPeriod); pvAbsorberChild->add(pvPeriod); // Place absorber child - tfAbsorberChild = new GeoTransform(HepGeom::Translate3D((-thicknessAbsorberChild + thicknessAbsorber)/2,0.,0.)); + tfAbsorberChild = new GeoTransform(GeoTrf::Translate3D((-thicknessAbsorberChild + thicknessAbsorber)/2,0.,0.)); pvAbsorber->add(tfAbsorberChild); pvAbsorber->add(pvAbsorberChild); @@ -904,7 +908,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, case 2: { //Extended barrel - consists of ordinary periods of type 1 only - thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*CLHEP::cm; + thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*GeoModelKernelUnits::cm; checking("Period 2", false, 4, thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2); @@ -920,7 +924,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, m_extendedPeriodThickness = thicknessPeriod; fillPeriod(pvPeriod, - thicknessPeriod*(1./CLHEP::cm), + thicknessPeriod*(1./GeoModelKernelUnits::cm), dzglue, tan_delta_phi_2, 1); // 1-period type @@ -929,7 +933,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, // - first partr of absorber // GENFUNCTION periodPos1 = (thicknessPeriod*(2*periodInd+1)-thicknessAbsorber1)/2; - TRANSFUNCTION xfReplica1 = Pow(HepGeom::TranslateX3D(1.),periodPos1); + TRANSFUNCTION xfReplica1 = Pow(GeoTrf::TranslateX3D(1.),periodPos1); if (m_verbose) checktransfunc(thicknessAbsorber1,thicknessPeriod,nA1, (-thicknessAbsorber+thicknessAbsorber1)/2.); @@ -957,7 +961,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, // middle partr of absorber GENFUNCTION periodPos2 = (thicknessPeriod*(2*periodInd+1)-thicknessAbsorber2)/2; - TRANSFUNCTION xfReplica2 = Pow(HepGeom::TranslateX3D(1.),periodPos2); + TRANSFUNCTION xfReplica2 = Pow(GeoTrf::TranslateX3D(1.),periodPos2); if (m_verbose) checktransfunc(thicknessAbsorber2,thicknessPeriod,nA2, (-thicknessAbsorber+thicknessAbsorber2)/2.+thicknessAbsorber1); @@ -972,7 +976,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, // second partr of absorber // GENFUNCTION periodPos3 = (thicknessPeriod*(2*periodInd+1)-thicknessAbsorber3)/2; - TRANSFUNCTION xfReplica3 = Pow(HepGeom::TranslateX3D(1.),periodPos3); + TRANSFUNCTION xfReplica3 = Pow(GeoTrf::TranslateX3D(1.),periodPos3); if (m_verbose) checktransfunc(thicknessAbsorber3,thicknessPeriod,nA3, (-thicknessAbsorber+thicknessAbsorber3)/2.+thicknessAbsorber2+thicknessAbsorber1); @@ -1016,7 +1020,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, //nrOfPeriods-1 ordinary period of type 1 and second with one special period of type 4 //First division - thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*CLHEP::cm; + thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*GeoModelKernelUnits::cm; checking("Period 3 (ITC1 special)", true, 4, thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2); @@ -1030,7 +1034,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvPeriod = new GeoPhysVol(lvPeriod); fillPeriod(pvPeriod, - thicknessPeriod*(1./CLHEP::cm), + thicknessPeriod*(1./GeoModelKernelUnits::cm), dzglue, tan_delta_phi_2, 1); // 1-period type @@ -1047,7 +1051,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, // Place periods into Absorber Child like G4 replica GENFUNCTION periodPosITC1sp = (thicknessPeriod*(2*periodInd+1)-thicknessAbsorberChild)/2; - TRANSFUNCTION xfReplicaITC1sp = Pow(HepGeom::TranslateX3D(1.),periodPosITC1sp); + TRANSFUNCTION xfReplicaITC1sp = Pow(GeoTrf::TranslateX3D(1.),periodPosITC1sp); if (m_verbose) checktransfunc(thicknessAbsorberChild,thicknessPeriod,m_dbManager->TILBnperiod()-1, (thicknessAbsorberChild - thicknessAbsorber)/2); @@ -1059,13 +1063,13 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvAbsorberChild->add(stPeriod); // Place absorber child - tfAbsorberChild = new GeoTransform(HepGeom::Translate3D((thicknessAbsorberChild - thicknessAbsorber)/2,0.,0.)); + tfAbsorberChild = new GeoTransform(GeoTrf::Translate3D((thicknessAbsorberChild - thicknessAbsorber)/2,0.,0.)); pvAbsorber->add(tfAbsorberChild); pvAbsorber->add(pvAbsorberChild); // //Second division // - thicknessPeriod = m_dbManager->TILBdzspac()*CLHEP::cm; + thicknessPeriod = m_dbManager->TILBdzspac()*GeoModelKernelUnits::cm; checking("Period 5 (ITC1 special)", true, 4, thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2); @@ -1079,7 +1083,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvPeriod = new GeoPhysVol(lvPeriod); fillPeriod(pvPeriod, - thicknessPeriod*(1./CLHEP::cm), + thicknessPeriod*(1./GeoModelKernelUnits::cm), dzglue, tan_delta_phi_2, 4); // 4-period type @@ -1097,13 +1101,13 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, (-thicknessAbsorberChild + thicknessAbsorber)/2); // Place period in the absorber child - tfPeriod = new GeoTransform(HepGeom::Translate3D(0.,0.,0.)); + tfPeriod = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.)); pvAbsorberChild->add(new GeoIdentifierTag(m_dbManager->TILBnperiod()-1)); pvAbsorberChild->add(tfPeriod); pvAbsorberChild->add(pvPeriod); // Place absorber child - tfAbsorberChild = new GeoTransform(HepGeom::Translate3D((-thicknessAbsorberChild + thicknessAbsorber)/2,0.,0.)); + tfAbsorberChild = new GeoTransform(GeoTrf::Translate3D((-thicknessAbsorberChild + thicknessAbsorber)/2,0.,0.)); pvAbsorber->add(tfAbsorberChild); pvAbsorber->add(pvAbsorberChild); @@ -1112,7 +1116,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, } else { - thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*CLHEP::cm; + thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*GeoModelKernelUnits::cm; checking("Period 3", true, 4, thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2); @@ -1126,14 +1130,14 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvPeriod = new GeoPhysVol(lvPeriod); fillPeriod(pvPeriod, - thicknessPeriod*(1./CLHEP::cm), + thicknessPeriod*(1./GeoModelKernelUnits::cm), dzglue, tan_delta_phi_2, 3); // 3-period type // Place periods into Absorber like G4 replica GENFUNCTION periodPos3 = (thicknessPeriod*(2*periodInd+1)-thicknessAbsorber)/2; - TRANSFUNCTION xfReplica3 = Pow(HepGeom::TranslateX3D(1.),periodPos3); + TRANSFUNCTION xfReplica3 = Pow(GeoTrf::TranslateX3D(1.),periodPos3); if (m_verbose) checktransfunc(thicknessAbsorber,thicknessPeriod,m_dbManager->TILBnperiod(),0.0); //ps if( (m_dbManager->TILBsection()==7 || m_dbManager->TILBsection()==8) && m_dbManager->SCNTitem()==302) @@ -1162,7 +1166,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, //nrOfPeriods-1 ordinary period of type 1 and second with one special period of type 4 //First division - thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*CLHEP::cm; + thicknessPeriod = 2.*(m_dbManager->TILBdzmast() + m_dbManager->TILBdzspac() + 2.*dzglue)*GeoModelKernelUnits::cm; checking("Period 4", true, 4, thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2); @@ -1176,7 +1180,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvPeriod = new GeoPhysVol(lvPeriod); fillPeriod(pvPeriod, - thicknessPeriod*(1./CLHEP::cm), + thicknessPeriod*(1./GeoModelKernelUnits::cm), dzglue, tan_delta_phi_2, 1); // 1-period type @@ -1193,7 +1197,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, // Place periods into Absorber Child like G4 replica GENFUNCTION periodPos1 = (thicknessPeriod*(2*periodInd+1)-thicknessAbsorberChild)/2; - TRANSFUNCTION xfReplica1 = Pow(HepGeom::TranslateX3D(1.),periodPos1); + TRANSFUNCTION xfReplica1 = Pow(GeoTrf::TranslateX3D(1.),periodPos1); if (m_verbose) checktransfunc(thicknessAbsorberChild,thicknessPeriod,m_dbManager->TILBnperiod()-1, (thicknessAbsorberChild - thicknessAbsorber)/2); @@ -1205,12 +1209,12 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvAbsorberChild->add(stPeriod); // Place absorber child - tfAbsorberChild = new GeoTransform(HepGeom::Translate3D((thicknessAbsorberChild - thicknessAbsorber)/2,0.,0.)); + tfAbsorberChild = new GeoTransform(GeoTrf::Translate3D((thicknessAbsorberChild - thicknessAbsorber)/2,0.,0.)); pvAbsorber->add(tfAbsorberChild); pvAbsorber->add(pvAbsorberChild); //Second division - thicknessPeriod = m_dbManager->TILBdzspac()*CLHEP::cm; + thicknessPeriod = m_dbManager->TILBdzspac()*GeoModelKernelUnits::cm; checking("Period 5", true, 4, thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2); @@ -1224,7 +1228,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvPeriod = new GeoPhysVol(lvPeriod); fillPeriod(pvPeriod, - thicknessPeriod*(1./CLHEP::cm), + thicknessPeriod*(1./GeoModelKernelUnits::cm), dzglue, tan_delta_phi_2, 4); // 4-period type @@ -1242,13 +1246,13 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, (-thicknessAbsorberChild + thicknessAbsorber)/2); // Place period in the absorber child - tfPeriod = new GeoTransform(HepGeom::Translate3D(0.,0.,0.)); + tfPeriod = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.)); pvAbsorberChild->add(new GeoIdentifierTag(m_dbManager->TILBnperiod()-1)); pvAbsorberChild->add(tfPeriod); pvAbsorberChild->add(pvPeriod); // Place absorber child - tfAbsorberChild = new GeoTransform(HepGeom::Translate3D((-thicknessAbsorberChild + thicknessAbsorber)/2,0.,0.)); + tfAbsorberChild = new GeoTransform(GeoTrf::Translate3D((-thicknessAbsorberChild + thicknessAbsorber)/2,0.,0.)); pvAbsorber->add(tfAbsorberChild); pvAbsorber->add(pvAbsorberChild); @@ -1276,8 +1280,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, checking("Period 6", true, 4, thicknessPeriod/2,thicknessPeriod/2,dy1Absorber,dy2Absorber,heightAbsorber/2); - double dy1Period = m_dbManager->TILBflangex()/2.*CLHEP::cm; // correct size from the drawings - double dy2Period = m_dbManager->TILBflangey()/2.*CLHEP::cm; // correct size from the drawings + double dy1Period = m_dbManager->TILBflangex()/2.*GeoModelKernelUnits::cm; // correct size from the drawings + double dy2Period = m_dbManager->TILBflangey()/2.*GeoModelKernelUnits::cm; // correct size from the drawings if (dy1Period <= 0.0 || dy2Period <= 0.0 || dy1Period > dy1Absorber || dy2Period > dy2Absorber || dy1Period >= dy2Period ) { dy1Period = dy1Absorber; dy2Period = dy2Absorber; @@ -1293,7 +1297,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, pvPeriod = new GeoPhysVol(lvPeriod); fillPeriod(pvPeriod, - thicknessPeriod*(1./CLHEP::cm), + thicknessPeriod*(1./GeoModelKernelUnits::cm), dzglue, tan_delta_phi_2, 5, period); @@ -1301,7 +1305,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, if (m_verbose) checktransfunc(thicknessAbsorber,thicknessPeriod,1,0.0); // Place period in the absorber - tfPeriod = new GeoTransform(HepGeom::Translate3D(0.,0.,0.)); + tfPeriod = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.)); pvAbsorber->add(new GeoIdentifierTag(0)); pvAbsorber->add(tfPeriod); pvAbsorber->add(pvPeriod); @@ -1313,7 +1317,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, } // Place absorber in the module mother - GeoTransform *tfAbsorber = NULL, *tfAbsorber1 =NULL, *tfAbsorber3 =NULL; + GeoTransform *tfAbsorber{nullptr}, *tfAbsorber1{nullptr}, *tfAbsorber3{nullptr}; double dXAbsorber = (m_dbManager->TILBdzend1() - m_dbManager->TILBdzend2()); double dZAbsorber = (m_dbManager->TILBrmax() - tile_rmax); @@ -1321,7 +1325,7 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, if (sec_number==3) { // ps specialModuleZShift - tfAbsorber = new GeoTransform(HepGeom::Translate3D( specialModuleZShift + dXAbsorber*CLHEP::cm/2, 0., dZAbsorber*CLHEP::cm/2)); + tfAbsorber = new GeoTransform(GeoTrf::Translate3D( specialModuleZShift + dXAbsorber*GeoModelKernelUnits::cm/2, 0., dZAbsorber*GeoModelKernelUnits::cm/2)); mother->add(tfAbsorber); mother->add(pvAbsorber); } @@ -1330,8 +1334,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " _fillsection Ex.barrel in "<< endmsg; - tfAbsorber1 = new GeoTransform(HepGeom::Translate3D(dXAbsorber*CLHEP::cm/2 - PosAbsor1, 0., - (dZAbsorber + m_dbManager->TILBrmin() - rminb)*CLHEP::cm/2)); + tfAbsorber1 = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*GeoModelKernelUnits::cm/2 - PosAbsor1, 0., + (dZAbsorber + m_dbManager->TILBrmin() - rminb)*GeoModelKernelUnits::cm/2)); mother->add(tfAbsorber1); if (m_dbManager->BoolCuts() && ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) ) { mother->add(pvTmp_Absorber1); @@ -1343,16 +1347,16 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " _fillsection ext.barrel pvAbsorber1 Ok"<< endmsg; - tfAbsorber = new GeoTransform(HepGeom::Translate3D(dXAbsorber*CLHEP::cm/2 - PosAbsor2, 0., - (dZAbsorber + m_dbManager->TILBrmin() - rminb)*CLHEP::cm/2)); + tfAbsorber = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*GeoModelKernelUnits::cm/2 - PosAbsor2, 0., + (dZAbsorber + m_dbManager->TILBrmin() - rminb)*GeoModelKernelUnits::cm/2)); mother->add(tfAbsorber); mother->add(pvAbsorber); if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG << " _fillsection ext.barrel pvAbsorber Ok"<< endmsg; - tfAbsorber3 = new GeoTransform(HepGeom::Translate3D(dXAbsorber*CLHEP::cm/2 - PosAbsor3, 0., - (dZAbsorber + m_dbManager->TILBrmin() - rminb)*CLHEP::cm/2)); + tfAbsorber3 = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*GeoModelKernelUnits::cm/2 - PosAbsor3, 0., + (dZAbsorber + m_dbManager->TILBrmin() - rminb)*GeoModelKernelUnits::cm/2)); mother->add(tfAbsorber3); if (m_dbManager->BoolCuts() && ((ModuleNcp>=35 && ModuleNcp<=37) || (ModuleNcp>=60 && ModuleNcp<=62)) ) { mother->add(pvTmp_Absorber3); @@ -1366,8 +1370,8 @@ void TileGeoSectionBuilder::fillSection(GeoPhysVol*& mother, } else { - tfAbsorber = new GeoTransform(HepGeom::Translate3D(dXAbsorber*CLHEP::cm/2, 0., - (dZAbsorber + m_dbManager->TILBrmin() - rminb)*CLHEP::cm/2)); + tfAbsorber = new GeoTransform(GeoTrf::Translate3D(dXAbsorber*GeoModelKernelUnits::cm/2, 0., + (dZAbsorber + m_dbManager->TILBrmin() - rminb)*GeoModelKernelUnits::cm/2)); mother->add(tfAbsorber); mother->add(pvAbsorber); if(m_log->level()<=MSG::DEBUG) @@ -1433,11 +1437,11 @@ void TileGeoSectionBuilder::fillGirder(GeoPhysVol*& mother, dy2GirderElement = (elementRC + elementSizeInR/2) * tan_delta_phi_2; } - girderElement = new GeoTrd(thickness/2*CLHEP::cm, - thickness/2*CLHEP::cm, - dy1GirderElement*CLHEP::cm, - dy2GirderElement*CLHEP::cm, - elementSizeInR/2*CLHEP::cm); + girderElement = new GeoTrd(thickness/2*GeoModelKernelUnits::cm, + thickness/2*GeoModelKernelUnits::cm, + dy1GirderElement*GeoModelKernelUnits::cm, + dy2GirderElement*GeoModelKernelUnits::cm, + elementSizeInR/2*GeoModelKernelUnits::cm); switch(m_dbManager->TIGRmaterial()) { @@ -1465,9 +1469,9 @@ void TileGeoSectionBuilder::fillGirder(GeoPhysVol*& mother, } pvGirderElement = new GeoPhysVol(lvGirderElement); - tfGirderElement = new GeoTransform(HepGeom::Translate3D(0., - elementOffsetInY*CLHEP::cm, - (elementRC-(tilb_rmax + tile_rmax)/2)*CLHEP::cm)); + tfGirderElement = new GeoTransform(GeoTrf::Translate3D(0., + elementOffsetInY*GeoModelKernelUnits::cm, + (elementRC-(tilb_rmax + tile_rmax)/2)*GeoModelKernelUnits::cm)); mother->add(tfGirderElement); mother->add(pvGirderElement); } @@ -1509,7 +1513,7 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*& mother, // InDetServices if (m_matLArServices == 0) - { m_matLArServices = new GeoMaterial("LArServices", 2.5*CLHEP::gram/CLHEP::cm3); + { m_matLArServices = new GeoMaterial("LArServices", 2.5*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); m_matLArServices->add(shieldSteel, 0.20); m_matLArServices->add(copper, 0.60); m_matLArServices->add(matRubber, 0.10); @@ -1519,7 +1523,7 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*& mother, // m_matIronHalfDens if (m_matIronHalfDens == 0) - { m_matIronHalfDens = new GeoMaterial("LArIronBox", 4.5*CLHEP::gram/CLHEP::cm3); + { m_matIronHalfDens = new GeoMaterial("LArIronBox", 4.5*GeoModelKernelUnits::gram/GeoModelKernelUnits::cm3); m_matIronHalfDens->add(shieldSteel, 0.80); m_matIronHalfDens->add(matRubber, 0.10); m_matIronHalfDens->add(copper, 0.10); @@ -1531,16 +1535,16 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*& mother, GeoTrd* fingerElementTrd = 0; GeoTrap* fingerElementTrap = 0; - GeoBox *fingerCablesL = NULL, *fingerCablesR = NULL; - GeoPhysVol *pvFingerElement = 0, *pvFingerCablesL = NULL, *pvFingerCablesR = NULL; - GeoLogVol *lvFingerElement = 0, *lvFingerCablesL = NULL, *lvFingerCablesR = NULL; - GeoTransform* tfFingerElement = 0, *tfFingerCables = NULL; + GeoBox *fingerCablesL{nullptr}, *fingerCablesR{nullptr}; + GeoPhysVol *pvFingerElement = 0, *pvFingerCablesL{nullptr}, *pvFingerCablesR{nullptr}; + GeoLogVol *lvFingerElement = 0, *lvFingerCablesL{nullptr}, *lvFingerCablesR{nullptr}; + GeoTransform* tfFingerElement = 0, *tfFingerCables{nullptr}; GeoTransform* ZrotateMod = 0; GeoTransform* yrotateMod = 0; GeoTransform* zrotateMod = 0; - const GeoMaterial *currentMaterial = NULL, *leftMaterial = NULL, *rightMaterial = NULL; + const GeoMaterial *currentMaterial{nullptr}, *leftMaterial{nullptr}, *rightMaterial{nullptr}; std::string currentName, leftName, rightName; int CurrentTicg = 100*sec_number + 1; @@ -1570,7 +1574,7 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*& mother, (*m_log) << MSG::DEBUG << "TileFinger: AirVolumeSize ="<< AirVolumeSize << endmsg; } } - if (elementZPozition*2-AirVolumeSize<-0.01) { // compare with zero with 0.1 CLHEP::mm precision + if (elementZPozition*2-AirVolumeSize<-0.01) { // compare with zero with 0.1 GeoModelKernelUnits::mm precision elementZPozition += AirVolumeShift; // shift all volumes keeping size } else { // resize finger cover with shims attached to it if(m_log->level()<=MSG::DEBUG) @@ -1616,26 +1620,26 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*& mother, if(m_dbManager->TICGshape()==1) { - fingerElementTrd = new GeoTrd(elementDz/2*CLHEP::cm, - elementDz/2*CLHEP::cm, - elementDy1/2*CLHEP::cm, - elementDy2/2*CLHEP::cm, - elementHeight/2*CLHEP::cm); + fingerElementTrd = new GeoTrd(elementDz/2*GeoModelKernelUnits::cm, + elementDz/2*GeoModelKernelUnits::cm, + elementDy1/2*GeoModelKernelUnits::cm, + elementDy2/2*GeoModelKernelUnits::cm, + elementHeight/2*GeoModelKernelUnits::cm); lvFingerElement = new GeoLogVol(currentName,fingerElementTrd,currentMaterial); } else if(m_dbManager->TICGshape()==2) { - fingerElementTrap = new GeoTrap(elementDz/2*CLHEP::cm, + fingerElementTrap = new GeoTrap(elementDz/2*GeoModelKernelUnits::cm, 0., 0., - elementHeight/2*CLHEP::cm, - elementDy2/2*CLHEP::cm, - elementDy1/2*CLHEP::cm, + elementHeight/2*GeoModelKernelUnits::cm, + elementDy2/2*GeoModelKernelUnits::cm, + elementDy1/2*GeoModelKernelUnits::cm, atan((elementDy1-elementDy2)/(2.*elementHeight)), - elementHeight/2*CLHEP::cm, - elementDy2/2*CLHEP::cm, - elementDy1/2*CLHEP::cm, + elementHeight/2*GeoModelKernelUnits::cm, + elementDy2/2*GeoModelKernelUnits::cm, + elementDy1/2*GeoModelKernelUnits::cm, atan((elementDy1-elementDy2)/(2.*elementHeight))); lvFingerElement = new GeoLogVol(currentName,fingerElementTrap,currentMaterial); @@ -1649,21 +1653,21 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*& mother, pvFingerElement = new GeoPhysVol(lvFingerElement); - tfFingerElement = new GeoTransform(HepGeom::Translate3D(elementZPozition*CLHEP::cm, - elementOffset*CLHEP::cm, - (elementRC-(tilb_rmax + tile_rmax)/2)*CLHEP::cm)); + tfFingerElement = new GeoTransform(GeoTrf::Translate3D(elementZPozition*GeoModelKernelUnits::cm, + elementOffset*GeoModelKernelUnits::cm, + (elementRC-(tilb_rmax + tile_rmax)/2)*GeoModelKernelUnits::cm)); mother->add(tfFingerElement); if (m_dbManager->TICGshape()==2) { if(elementOffset<0) { - ZrotateMod = new GeoTransform(HepGeom::RotateZ3D(180*CLHEP::deg)); + ZrotateMod = new GeoTransform(GeoTrf::RotateZ3D(180*GeoModelKernelUnits::deg)); mother->add(ZrotateMod); } - zrotateMod = new GeoTransform(HepGeom::RotateZ3D(90*CLHEP::deg)); - yrotateMod = new GeoTransform(HepGeom::RotateY3D(-90*CLHEP::deg)); + zrotateMod = new GeoTransform(GeoTrf::RotateZ3D(90*GeoModelKernelUnits::deg)); + yrotateMod = new GeoTransform(GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg)); mother->add(yrotateMod); mother->add(zrotateMod); } @@ -1733,17 +1737,17 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*& mother, << " LRflag= " << LRflag <<" Neg "<< boolNeg << endmsg; - GeoTransform *rotateY = new GeoTransform(HepGeom::RotateY3D(90*CLHEP::deg)); - GeoTransform *rotateZ = new GeoTransform(HepGeom::RotateZ3D(3*CLHEP::deg)); - GeoTransform *rotateZm = new GeoTransform(HepGeom::RotateZ3D(-3*CLHEP::deg)); + GeoTransform *rotateY = new GeoTransform(GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg)); + GeoTransform *rotateZ = new GeoTransform(GeoTrf::RotateZ3D(3*GeoModelKernelUnits::deg)); + GeoTransform *rotateZm = new GeoTransform(GeoTrf::RotateZ3D(-3*GeoModelKernelUnits::deg)); // Left (+phi) - fingerCablesL = new GeoBox(dXleft/2*CLHEP::cm, dY/2*CLHEP::cm, dZleft/2*CLHEP::cm); + fingerCablesL = new GeoBox(dXleft/2*GeoModelKernelUnits::cm, dY/2*GeoModelKernelUnits::cm, dZleft/2*GeoModelKernelUnits::cm); lvFingerCablesL = new GeoLogVol(leftName,fingerCablesL,leftMaterial); pvFingerCablesL = new GeoPhysVol(lvFingerCablesL); // Right (-phi) - fingerCablesR = new GeoBox(dXright/2*CLHEP::cm, dY/2*CLHEP::cm, dZright/2*CLHEP::cm); + fingerCablesR = new GeoBox(dXright/2*GeoModelKernelUnits::cm, dY/2*GeoModelKernelUnits::cm, dZright/2*GeoModelKernelUnits::cm); lvFingerCablesR = new GeoLogVol(rightName,fingerCablesR,rightMaterial); pvFingerCablesR = new GeoPhysVol(lvFingerCablesR); @@ -1755,9 +1759,9 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*& mother, { YpoFinger = elementOffset-5.4; } - tfFingerCables = new GeoTransform(HepGeom::Translate3D(elementZPozition*CLHEP::cm +0.5*CLHEP::cm -dZsaddleL*CLHEP::cm, - YpoFinger*CLHEP::cm, - (elementRC-(tilb_rmax + tile_rmax)/2)*CLHEP::cm)); + tfFingerCables = new GeoTransform(GeoTrf::Translate3D(elementZPozition*GeoModelKernelUnits::cm +0.5*GeoModelKernelUnits::cm -dZsaddleL*GeoModelKernelUnits::cm, + YpoFinger*GeoModelKernelUnits::cm, + (elementRC-(tilb_rmax + tile_rmax)/2)*GeoModelKernelUnits::cm)); mother->add(tfFingerCables); // inversion for negativ fingers, Left @@ -1778,9 +1782,9 @@ void TileGeoSectionBuilder::fillFinger(GeoPhysVol*& mother, { YpoFinger = -elementOffset+5.4; } - tfFingerCables = new GeoTransform(HepGeom::Translate3D(elementZPozition*CLHEP::cm +0.5*CLHEP::cm -dZsaddleR*CLHEP::cm, - YpoFinger*CLHEP::cm, - (elementRC-(tilb_rmax + tile_rmax)/2)*CLHEP::cm)); + tfFingerCables = new GeoTransform(GeoTrf::Translate3D(elementZPozition*GeoModelKernelUnits::cm +0.5*GeoModelKernelUnits::cm -dZsaddleR*GeoModelKernelUnits::cm, + YpoFinger*GeoModelKernelUnits::cm, + (elementRC-(tilb_rmax + tile_rmax)/2)*GeoModelKernelUnits::cm)); mother->add(tfFingerCables); // inversion for negativ fingers, Right @@ -1873,13 +1877,13 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, const GeoMaterial* matScin = m_theMaterialManager->getMaterial("tile::Scintillator"); //Cs hole parameters - double csHoleR = 0.45 * CLHEP::cm; - double csTubeOuterR = 0.4 * CLHEP::cm; - double csTubeInnerR = 0.3 * CLHEP::cm; - double csTubeOffCorr = 1.35 * CLHEP::cm; + double csHoleR = 0.45 * GeoModelKernelUnits::cm; + double csTubeOuterR = 0.4 * GeoModelKernelUnits::cm; + double csTubeInnerR = 0.3 * GeoModelKernelUnits::cm; + double csTubeOffCorr = 1.35 * GeoModelKernelUnits::cm; - double thicknessMother2 = thickness/2.*CLHEP::cm; - double heightMother2 = (m_dbManager->TILBrmax() - m_dbManager->TILBrmin())*CLHEP::cm/2.; + double thicknessMother2 = thickness/2.*GeoModelKernelUnits::cm; + double heightMother2 = (m_dbManager->TILBrmax() - m_dbManager->TILBrmin())*GeoModelKernelUnits::cm/2.; const bool removeGlue = (m_glue == 0 || m_glue == 2); @@ -1887,18 +1891,18 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, if (dzglue>0.0 && period_type<4 && !removeGlue) { const GeoMaterial* matGlue = m_theMaterialManager->getMaterial("tile::Glue"); - double dzglue2 = dzglue/2*CLHEP::cm; + double dzglue2 = dzglue/2*GeoModelKernelUnits::cm; dzglue2 = floor(dzglue2*1.0e+10)*1.0e-10; if (m_verbose) { - printdouble(" period thickness/2 = ",thickness/2*CLHEP::cm); - printdouble(" glue thickness/2 = ",dzglue/2*CLHEP::cm); + printdouble(" period thickness/2 = ",thickness/2*GeoModelKernelUnits::cm); + printdouble(" glue thickness/2 = ",dzglue/2*GeoModelKernelUnits::cm); printdouble("rounded thickness/2 = ",dzglue2); } - double dy1Glue = (m_dbManager->TILBrmin() * tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*CLHEP::cm; - double dy2Glue = (m_dbManager->TILBrmax() * tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*CLHEP::cm; - double heightGlue2 = (m_dbManager->TILBrmax() - m_dbManager->TILBrmin())*CLHEP::cm/2.; + double dy1Glue = (m_dbManager->TILBrmin() * tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; + double dy2Glue = (m_dbManager->TILBrmax() * tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; + double heightGlue2 = (m_dbManager->TILBrmax() - m_dbManager->TILBrmin())*GeoModelKernelUnits::cm/2.; checking("Glue 0", false, 4, dzglue2,dzglue2,dy1Glue,dy2Glue,heightGlue2); @@ -1912,16 +1916,16 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, idTag = new GeoIdentifierTag(j-CurrentScin); m_dbManager->SetCurrentScin(j); - double off0 = m_dbManager->SCNTrc()*CLHEP::cm - heightMother2; - double off = m_dbManager->SCNTdr()/2.*CLHEP::cm - csTubeOffCorr; + double off0 = m_dbManager->SCNTrc()*GeoModelKernelUnits::cm - heightMother2; + double off = m_dbManager->SCNTdr()/2.*GeoModelKernelUnits::cm - csTubeOffCorr; - HepGeom::Transform3D tfHole1 = HepGeom::Translate3D(0.,0.,(off0-off)) * HepGeom::RotateY3D(-90*CLHEP::deg); - HepGeom::Transform3D tfHole2 = HepGeom::Translate3D(0.,0.,(off0+off)) * HepGeom::RotateY3D(-90*CLHEP::deg); + GeoTrf::Transform3D tfHole1 = GeoTrf::Translate3D(0.,0.,(off0-off)) * GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); + GeoTrf::Transform3D tfHole2 = GeoTrf::Translate3D(0.,0.,(off0+off)) * GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); // air around iron rod, around Cs tube and inside Cs tube - GeoShape *air1 = new GeoTubs(csTubeOuterR, csHoleR, thicknessMother2, 0.,360.0 * CLHEP::deg); - GeoShape *air2 = new GeoTubs(csTubeOuterR, csHoleR, thicknessMother2, 0.,360.0 * CLHEP::deg); - GeoShape *air3 = new GeoTubs(0., csTubeInnerR, thicknessMother2, 0.,360.0 * CLHEP::deg); + GeoShape *air1 = new GeoTubs(csTubeOuterR, csHoleR, thicknessMother2, 0.,360.0 * GeoModelKernelUnits::deg); + GeoShape *air2 = new GeoTubs(csTubeOuterR, csHoleR, thicknessMother2, 0.,360.0 * GeoModelKernelUnits::deg); + GeoShape *air3 = new GeoTubs(0., csTubeInnerR, thicknessMother2, 0.,360.0 * GeoModelKernelUnits::deg); GeoLogVol * lvAir1 = new GeoLogVol("CsTubeAir1",air1,matAir); GeoLogVol * lvAir2 = new GeoLogVol("CsTubeAir2",air2,matAir); @@ -1961,26 +1965,26 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, if (glue) { if (m_verbose) - printdouble(" glue position = ",(-3.*dzglue/2-m_dbManager->TILBdzmast())*CLHEP::cm); - tfGlue = new GeoTransform(HepGeom::Translate3D((-3.*dzglue/2-m_dbManager->TILBdzmast())*CLHEP::cm,0.,0.)); + printdouble(" glue position = ",(-3.*dzglue/2-m_dbManager->TILBdzmast())*GeoModelKernelUnits::cm); + tfGlue = new GeoTransform(GeoTrf::Translate3D((-3.*dzglue/2-m_dbManager->TILBdzmast())*GeoModelKernelUnits::cm,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); if (m_verbose) - printdouble(" glue position = ",-dzglue/2*CLHEP::cm); - tfGlue = new GeoTransform(HepGeom::Translate3D(-dzglue/2*CLHEP::cm,0.,0.)); + printdouble(" glue position = ",-dzglue/2*GeoModelKernelUnits::cm); + tfGlue = new GeoTransform(GeoTrf::Translate3D(-dzglue/2*GeoModelKernelUnits::cm,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); if (m_verbose) - printdouble(" glue position = ",(dzglue/2+m_dbManager->TILBdzspac())*CLHEP::cm); - tfGlue = new GeoTransform(HepGeom::Translate3D((dzglue/2+m_dbManager->TILBdzspac())*CLHEP::cm,0.,0.)); + printdouble(" glue position = ",(dzglue/2+m_dbManager->TILBdzspac())*GeoModelKernelUnits::cm); + tfGlue = new GeoTransform(GeoTrf::Translate3D((dzglue/2+m_dbManager->TILBdzspac())*GeoModelKernelUnits::cm,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); if (m_verbose) - printdouble(" glue position = ",(thickness-dzglue)/2*CLHEP::cm); - tfGlue = new GeoTransform(HepGeom::Translate3D((thickness-dzglue)/2*CLHEP::cm,0.,0.)); + printdouble(" glue position = ",(thickness-dzglue)/2*GeoModelKernelUnits::cm); + tfGlue = new GeoTransform(GeoTrf::Translate3D((thickness-dzglue)/2*GeoModelKernelUnits::cm,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); } @@ -1999,15 +2003,15 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, scintiDeltaInPhi = (m_uShape > 0) ? 0.0 : m_dbManager->SCNTdphi(); thicknessWrapper = (m_dbManager->TILBdzspac() <= (scintiThickness + 2*scintiWrapInZ)) ? - (scintiThickness + 2*scintiWrapInZ)*CLHEP::cm: m_dbManager->TILBdzspac()*CLHEP::cm; + (scintiThickness + 2*scintiWrapInZ)*GeoModelKernelUnits::cm: m_dbManager->TILBdzspac()*GeoModelKernelUnits::cm; if (m_glue == 2) thicknessWrapper = std::max(thicknessWrapper - m_additionalIronLayer, scintiThickness); // create wrapper - heightWrapper = (scintiHeight + 2*scintiWrapInR)*CLHEP::cm; + heightWrapper = (scintiHeight + 2*scintiWrapInR)*GeoModelKernelUnits::cm; dy1Wrapper = ((scintiRC - scintiHeight/2 - scintiWrapInR + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*CLHEP::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; dy2Wrapper = ((scintiRC + scintiHeight/2 + scintiWrapInR + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*CLHEP::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; checking("Wrapper 0", true, 5, thicknessWrapper/2,thicknessWrapper/2,dy1Wrapper,dy2Wrapper,heightWrapper/2); @@ -2019,34 +2023,34 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, heightWrapper/2); if (m_csTube) { - wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*CLHEP::cm - csTubeOffCorr); + wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*GeoModelKernelUnits::cm - csTubeOffCorr); } lvWrapper = new GeoLogVol("Wrapper",wrapper,matAir); pvWrapper = new GeoPhysVol(lvWrapper); // create scintillator dy1Scintillator = ((scintiRC - scintiHeight/2 + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*CLHEP::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*GeoModelKernelUnits::cm; dy2Scintillator = ((scintiRC + scintiHeight/2 + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*CLHEP::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*GeoModelKernelUnits::cm; checking("Scintillator 0", true, 6, - scintiThickness/2*CLHEP::cm,scintiThickness/2*CLHEP::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*CLHEP::cm); + scintiThickness/2*GeoModelKernelUnits::cm,scintiThickness/2*GeoModelKernelUnits::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*GeoModelKernelUnits::cm); - scintillator = new GeoTrd(scintiThickness/2*CLHEP::cm, - scintiThickness/2*CLHEP::cm, + scintillator = new GeoTrd(scintiThickness/2*GeoModelKernelUnits::cm, + scintiThickness/2*GeoModelKernelUnits::cm, dy1Scintillator, dy2Scintillator, - scintiHeight/2*CLHEP::cm); + scintiHeight/2*GeoModelKernelUnits::cm); if (m_csTube) { - scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * CLHEP::cm, scintiHeight/2.*CLHEP::cm - csTubeOffCorr); + scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * GeoModelKernelUnits::cm, scintiHeight/2.*GeoModelKernelUnits::cm - csTubeOffCorr); } lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin); pvScintillator = new GeoPhysVol(lvScintillator); // place scintillator in wrapper - tfScintillator = new GeoTransform(HepGeom::Translate3D(0.,0.,0.)); + tfScintillator = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.)); pvWrapper->add(idTag); pvWrapper->add(tfScintillator); pvWrapper->add(pvScintillator); @@ -2054,13 +2058,13 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, //place wrapper in period if (m_verbose) { (*m_log) << MSG::VERBOSE <<" X scintiZPos= "<<scintiZPos; - printdouble(" ==> ",(scintiZPos*thickness+m_dbManager->TILBdzspac()/2)*CLHEP::cm); + printdouble(" ==> ",(scintiZPos*thickness+m_dbManager->TILBdzspac()/2)*GeoModelKernelUnits::cm); (*m_log) << MSG::VERBOSE <<" Y scintiRC= "<<scintiRC <<endmsg; } - tfWrapper = new GeoTransform(HepGeom::Translate3D((scintiZPos*thickness+m_dbManager->TILBdzspac()/2)*CLHEP::cm, + tfWrapper = new GeoTransform(GeoTrf::Translate3D((scintiZPos*thickness+m_dbManager->TILBdzspac()/2)*GeoModelKernelUnits::cm, 0., - (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*CLHEP::cm)); + (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*GeoModelKernelUnits::cm)); mother->add(idTag); mother->add(tfWrapper); mother->add(pvWrapper); @@ -2075,14 +2079,14 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, if (glue) { if (m_verbose) - printdouble(" glue position = ",(dzglue + m_dbManager->TILBdzmast())*CLHEP::cm/2); - tfGlue = new GeoTransform(HepGeom::Translate3D((dzglue + m_dbManager->TILBdzmast())*CLHEP::cm/2,0.,0.)); + printdouble(" glue position = ",(dzglue + m_dbManager->TILBdzmast())*GeoModelKernelUnits::cm/2); + tfGlue = new GeoTransform(GeoTrf::Translate3D((dzglue + m_dbManager->TILBdzmast())*GeoModelKernelUnits::cm/2,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); if (m_verbose) - printdouble(" glue position = ",-(dzglue + m_dbManager->TILBdzmast())*CLHEP::cm/2); - tfGlue = new GeoTransform(HepGeom::Translate3D(-(dzglue + m_dbManager->TILBdzmast())*CLHEP::cm/2,0.,0.)); + printdouble(" glue position = ",-(dzglue + m_dbManager->TILBdzmast())*GeoModelKernelUnits::cm/2); + tfGlue = new GeoTransform(GeoTrf::Translate3D(-(dzglue + m_dbManager->TILBdzmast())*GeoModelKernelUnits::cm/2,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); } @@ -2101,15 +2105,15 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, scintiDeltaInPhi = (m_uShape > 0) ? 0.0 : m_dbManager->SCNTdphi(); thicknessWrapper = (m_dbManager->TILBdzspac() <= (scintiThickness + 2*scintiWrapInZ)) ? - (scintiThickness + 2*scintiWrapInZ)*CLHEP::cm: m_dbManager->TILBdzspac()*CLHEP::cm; + (scintiThickness + 2*scintiWrapInZ)*GeoModelKernelUnits::cm: m_dbManager->TILBdzspac()*GeoModelKernelUnits::cm; if (m_glue == 2) thicknessWrapper = std::max(thicknessWrapper - m_additionalIronLayer, scintiThickness); // create wrapper - heightWrapper = (scintiHeight + 2*scintiWrapInR)*CLHEP::cm; + heightWrapper = (scintiHeight + 2*scintiWrapInR)*GeoModelKernelUnits::cm; dy1Wrapper = ((scintiRC - scintiHeight/2 - scintiWrapInR + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*CLHEP::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; dy2Wrapper = ((scintiRC + scintiHeight/2 + scintiWrapInR + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*CLHEP::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; checking("Wrapper 1", true, 5, thicknessWrapper/2,thicknessWrapper/2,dy1Wrapper,dy2Wrapper,heightWrapper/2); @@ -2121,34 +2125,34 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, heightWrapper/2); if (m_csTube) { - wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*CLHEP::cm - csTubeOffCorr); + wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*GeoModelKernelUnits::cm - csTubeOffCorr); } lvWrapper = new GeoLogVol("Wrapper",wrapper,matAir); pvWrapper = new GeoPhysVol(lvWrapper); // create scintillator dy1Scintillator = ((scintiRC - scintiHeight/2 + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*CLHEP::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*GeoModelKernelUnits::cm; dy2Scintillator = ((scintiRC + scintiHeight/2 + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*CLHEP::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*GeoModelKernelUnits::cm; checking("Scintillator 1", true, 6, - scintiThickness/2*CLHEP::cm,scintiThickness/2*CLHEP::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*CLHEP::cm); + scintiThickness/2*GeoModelKernelUnits::cm,scintiThickness/2*GeoModelKernelUnits::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*GeoModelKernelUnits::cm); - scintillator = new GeoTrd(scintiThickness/2*CLHEP::cm, - scintiThickness/2*CLHEP::cm, + scintillator = new GeoTrd(scintiThickness/2*GeoModelKernelUnits::cm, + scintiThickness/2*GeoModelKernelUnits::cm, dy1Scintillator, dy2Scintillator, - scintiHeight/2*CLHEP::cm); + scintiHeight/2*GeoModelKernelUnits::cm); if (m_csTube) { - scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * CLHEP::cm, scintiHeight/2.*CLHEP::cm - csTubeOffCorr); + scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * GeoModelKernelUnits::cm, scintiHeight/2.*GeoModelKernelUnits::cm - csTubeOffCorr); } lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin); pvScintillator = new GeoPhysVol(lvScintillator); // place scintillator in wrapper - tfScintillator = new GeoTransform(HepGeom::Translate3D(0.,0.,0.)); + tfScintillator = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.)); pvWrapper->add(idTag); pvWrapper->add(tfScintillator); pvWrapper->add(pvScintillator); @@ -2156,13 +2160,13 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, //place wrapper in period if (m_verbose) { (*m_log) << MSG::VERBOSE <<" X scintiZPos= "<<scintiZPos; - printdouble(" ==> ",(2*scintiZPos+0.5)*(thickness-m_dbManager->TILBdzspac())*CLHEP::cm); + printdouble(" ==> ",(2*scintiZPos+0.5)*(thickness-m_dbManager->TILBdzspac())*GeoModelKernelUnits::cm); (*m_log) << MSG::VERBOSE <<" Y scintiRC= "<<scintiRC <<endmsg; } - tfWrapper = new GeoTransform(HepGeom::Translate3D((2*scintiZPos+0.5)*(thickness-m_dbManager->TILBdzspac())*CLHEP::cm, + tfWrapper = new GeoTransform(GeoTrf::Translate3D((2*scintiZPos+0.5)*(thickness-m_dbManager->TILBdzspac())*GeoModelKernelUnits::cm, 0., - (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*CLHEP::cm)); + (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*GeoModelKernelUnits::cm)); mother->add(idTag); mother->add(tfWrapper); mother->add(pvWrapper); @@ -2177,26 +2181,26 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, if (glue) { if (m_verbose) - printdouble(" glue position = ",(-thickness + dzglue)*CLHEP::cm/2); - tfGlue = new GeoTransform(HepGeom::Translate3D((-thickness + dzglue)*CLHEP::cm/2,0.,0.)); + printdouble(" glue position = ",(-thickness + dzglue)*GeoModelKernelUnits::cm/2); + tfGlue = new GeoTransform(GeoTrf::Translate3D((-thickness + dzglue)*GeoModelKernelUnits::cm/2,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); if (m_verbose) - printdouble(" glue position = ",((-thickness + 3*dzglue)+m_dbManager->TILBdzmast())/2*CLHEP::cm); - tfGlue = new GeoTransform(HepGeom::Translate3D(((-thickness + 3*dzglue)+m_dbManager->TILBdzmast())/2*CLHEP::cm,0.,0.)); + printdouble(" glue position = ",((-thickness + 3*dzglue)+m_dbManager->TILBdzmast())/2*GeoModelKernelUnits::cm); + tfGlue = new GeoTransform(GeoTrf::Translate3D(((-thickness + 3*dzglue)+m_dbManager->TILBdzmast())/2*GeoModelKernelUnits::cm,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); if (m_verbose) - printdouble(" glue position = ",dzglue/2*CLHEP::cm); - tfGlue = new GeoTransform(HepGeom::Translate3D(dzglue/2*CLHEP::cm,0.,0.)); + printdouble(" glue position = ",dzglue/2*GeoModelKernelUnits::cm); + tfGlue = new GeoTransform(GeoTrf::Translate3D(dzglue/2*GeoModelKernelUnits::cm,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); if (m_verbose) - printdouble(" glue position = ",(3.*dzglue/2 + m_dbManager->TILBdzmast())*CLHEP::cm); - tfGlue = new GeoTransform(HepGeom::Translate3D((3.*dzglue/2 + m_dbManager->TILBdzmast())*CLHEP::cm,0.,0.)); + printdouble(" glue position = ",(3.*dzglue/2 + m_dbManager->TILBdzmast())*GeoModelKernelUnits::cm); + tfGlue = new GeoTransform(GeoTrf::Translate3D((3.*dzglue/2 + m_dbManager->TILBdzmast())*GeoModelKernelUnits::cm,0.,0.)); mother->add(tfGlue); mother->add(pvGlue); } @@ -2215,16 +2219,16 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, scintiDeltaInPhi = (m_uShape > 0) ? 0. : m_dbManager->SCNTdphi(); thicknessWrapper = (m_dbManager->TILBdzspac() <= (scintiThickness + 2*scintiWrapInZ)) ? - (scintiThickness + 2*scintiWrapInZ)*CLHEP::cm: m_dbManager->TILBdzspac()*CLHEP::cm; + (scintiThickness + 2*scintiWrapInZ)*GeoModelKernelUnits::cm: m_dbManager->TILBdzspac()*GeoModelKernelUnits::cm; if (m_glue == 2) thicknessWrapper = std::max(thicknessWrapper - m_additionalIronLayer, scintiThickness); // create wrapper - heightWrapper = (scintiHeight + 2*scintiWrapInR)*CLHEP::cm; + heightWrapper = (scintiHeight + 2*scintiWrapInR)*GeoModelKernelUnits::cm; dy1Wrapper = ((scintiRC - scintiHeight/2 - scintiWrapInR + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*CLHEP::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; dy2Wrapper = ((scintiRC + scintiHeight/2 + scintiWrapInR + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*CLHEP::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; checking("Wrapper 2", true, 5, thicknessWrapper/2,thicknessWrapper/2,dy1Wrapper,dy2Wrapper,heightWrapper/2); @@ -2236,34 +2240,34 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, heightWrapper/2); if (m_csTube) { - wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*CLHEP::cm - csTubeOffCorr); + wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*GeoModelKernelUnits::cm - csTubeOffCorr); } lvWrapper = new GeoLogVol("Wrapper",wrapper,matAir); pvWrapper = new GeoPhysVol(lvWrapper); // create scintillator dy1Scintillator = ((scintiRC - scintiHeight/2 + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*CLHEP::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*GeoModelKernelUnits::cm; dy2Scintillator = ((scintiRC + scintiHeight/2 + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*CLHEP::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*GeoModelKernelUnits::cm; checking("Scintillator 2", true, 6, - scintiThickness/2*CLHEP::cm,scintiThickness/2*CLHEP::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*CLHEP::cm); + scintiThickness/2*GeoModelKernelUnits::cm,scintiThickness/2*GeoModelKernelUnits::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*GeoModelKernelUnits::cm); - scintillator = new GeoTrd(scintiThickness/2*CLHEP::cm, - scintiThickness/2*CLHEP::cm, + scintillator = new GeoTrd(scintiThickness/2*GeoModelKernelUnits::cm, + scintiThickness/2*GeoModelKernelUnits::cm, dy1Scintillator, dy2Scintillator, - scintiHeight/2*CLHEP::cm); + scintiHeight/2*GeoModelKernelUnits::cm); if (m_csTube) { - scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * CLHEP::cm, scintiHeight/2.*CLHEP::cm - csTubeOffCorr); + scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * GeoModelKernelUnits::cm, scintiHeight/2.*GeoModelKernelUnits::cm - csTubeOffCorr); } lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin); pvScintillator = new GeoPhysVol(lvScintillator); // place scintillator in wrapper - tfScintillator = new GeoTransform(HepGeom::Translate3D(0.,0.,0.)); + tfScintillator = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.)); pvWrapper->add(idTag); pvWrapper->add(tfScintillator); pvWrapper->add(pvScintillator); @@ -2271,13 +2275,13 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, //place wrapper in period if (m_verbose) { (*m_log) << MSG::VERBOSE <<" X scintiZPos= "<<scintiZPos; - printdouble(" ==> ",(scintiZPos*thickness-m_dbManager->TILBdzspac()/2)*CLHEP::cm); + printdouble(" ==> ",(scintiZPos*thickness-m_dbManager->TILBdzspac()/2)*GeoModelKernelUnits::cm); (*m_log) << MSG::VERBOSE <<" Y scintiRC= "<<scintiRC <<endmsg; } - tfWrapper = new GeoTransform(HepGeom::Translate3D((scintiZPos*thickness-m_dbManager->TILBdzspac()/2)*CLHEP::cm, + tfWrapper = new GeoTransform(GeoTrf::Translate3D((scintiZPos*thickness-m_dbManager->TILBdzspac()/2)*GeoModelKernelUnits::cm, 0., - (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*CLHEP::cm)); + (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*GeoModelKernelUnits::cm)); mother->add(idTag); mother->add(tfWrapper); mother->add(pvWrapper); @@ -2301,18 +2305,18 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, scintiDeltaInPhi = (m_uShape > 0) ? 0.0 : m_dbManager->SCNTdphi(); thicknessWrapper = (m_dbManager->TILBdzspac() <= (scintiThickness + 2*scintiWrapInZ)) ? - (scintiThickness + 2*scintiWrapInZ)*CLHEP::cm: m_dbManager->TILBdzspac()*CLHEP::cm; + (scintiThickness + 2*scintiWrapInZ)*GeoModelKernelUnits::cm: m_dbManager->TILBdzspac()*GeoModelKernelUnits::cm; if (m_glue == 2) thicknessWrapper = std::max(thicknessWrapper - m_additionalIronLayer, scintiThickness); if(scintiZPos<0) { idTag = new GeoIdentifierTag(j-CurrentScin); // create wrapper - heightWrapper = (scintiHeight + 2*scintiWrapInR)*CLHEP::cm; + heightWrapper = (scintiHeight + 2*scintiWrapInR)*GeoModelKernelUnits::cm; dy1Wrapper = ((scintiRC - scintiHeight/2 - scintiWrapInR + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*CLHEP::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; dy2Wrapper = ((scintiRC + scintiHeight/2 + scintiWrapInR + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*CLHEP::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2)*GeoModelKernelUnits::cm; checking("Wrapper 3", true, 5, thicknessWrapper/2,thicknessWrapper/2,dy1Wrapper,dy2Wrapper,heightWrapper/2); @@ -2324,34 +2328,34 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, heightWrapper/2); if (m_csTube) { - wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*CLHEP::cm - csTubeOffCorr); + wrapper = makeHoles(wrapper, csHoleR, thicknessWrapper/2, scintiHeight/2.*GeoModelKernelUnits::cm - csTubeOffCorr); } lvWrapper = new GeoLogVol("Wrapper",wrapper,matAir); pvWrapper = new GeoPhysVol(lvWrapper); // create scintillator dy1Scintillator = ((scintiRC - scintiHeight/2 + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*CLHEP::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*GeoModelKernelUnits::cm; dy2Scintillator = ((scintiRC + scintiHeight/2 + m_dbManager->TILBrmin()) * - tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*CLHEP::cm; + tan_delta_phi_2 - m_dbManager->TILBphigap()/2 - scintiDeltaInPhi)*GeoModelKernelUnits::cm; checking("Scintillator 3", true, 6, - scintiThickness/2*CLHEP::cm,scintiThickness/2*CLHEP::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*CLHEP::cm); + scintiThickness/2*GeoModelKernelUnits::cm,scintiThickness/2*GeoModelKernelUnits::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*GeoModelKernelUnits::cm); - scintillator = new GeoTrd(scintiThickness/2*CLHEP::cm, - scintiThickness/2*CLHEP::cm, + scintillator = new GeoTrd(scintiThickness/2*GeoModelKernelUnits::cm, + scintiThickness/2*GeoModelKernelUnits::cm, dy1Scintillator, dy2Scintillator, - scintiHeight/2*CLHEP::cm); + scintiHeight/2*GeoModelKernelUnits::cm); if (m_csTube) { - scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * CLHEP::cm, scintiHeight/2.*CLHEP::cm - csTubeOffCorr); + scintillator = makeHolesScint(scintillator, csHoleR, scintiThickness/2 * GeoModelKernelUnits::cm, scintiHeight/2.*GeoModelKernelUnits::cm - csTubeOffCorr); } lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin); pvScintillator = new GeoPhysVol(lvScintillator); // place scintillator in wrapper - tfScintillator = new GeoTransform(HepGeom::Translate3D(0.,0.,0.)); + tfScintillator = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.)); pvWrapper->add(idTag); pvWrapper->add(tfScintillator); pvWrapper->add(pvScintillator); @@ -2362,9 +2366,9 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, (*m_log) << MSG::VERBOSE <<" Y scintiRC= "<<scintiRC <<endmsg; } - tfWrapper = new GeoTransform(HepGeom::Translate3D(0., + tfWrapper = new GeoTransform(GeoTrf::Translate3D(0., 0., - (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*CLHEP::cm)); + (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*GeoModelKernelUnits::cm)); mother->add(idTag); mother->add(tfWrapper); mother->add(pvWrapper); @@ -2397,13 +2401,13 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, scintiDeltaInPhi = m_dbManager->SCNTdphi(); // don't need to check m_uShape for single scintillator // create wrapper - heightWrapper = (scintiHeight + 2*scintiWrapInR)*CLHEP::cm; - thicknessWrapper = (scintiThickness + 2*scintiWrapInZ)*CLHEP::cm; + heightWrapper = (scintiHeight + 2*scintiWrapInR)*GeoModelKernelUnits::cm; + thicknessWrapper = (scintiThickness + 2*scintiWrapInZ)*GeoModelKernelUnits::cm; if (m_glue == 2) thicknessWrapper = std::max(thicknessWrapper - m_additionalIronLayer, scintiThickness); - double thicknessEnvelope = (m_dbManager->TILBdzmodul()*CLHEP::cm - thicknessWrapper); // along phi thickness is twice bigger than along Z - dy1Wrapper = dy1Period - thicknessEnvelope + ((scintiRC - scintiHeight/2. - scintiWrapInR)*tanphi)*CLHEP::cm; - dy2Wrapper = dy1Period - thicknessEnvelope + ((scintiRC + scintiHeight/2. + scintiWrapInR)*tanphi)*CLHEP::cm; + double thicknessEnvelope = (m_dbManager->TILBdzmodul()*GeoModelKernelUnits::cm - thicknessWrapper); // along phi thickness is twice bigger than along Z + dy1Wrapper = dy1Period - thicknessEnvelope + ((scintiRC - scintiHeight/2. - scintiWrapInR)*tanphi)*GeoModelKernelUnits::cm; + dy2Wrapper = dy1Period - thicknessEnvelope + ((scintiRC + scintiHeight/2. + scintiWrapInR)*tanphi)*GeoModelKernelUnits::cm; if(m_log->level()<=MSG::DEBUG) (*m_log) << MSG::DEBUG <<"Envelope thickness is " << thicknessEnvelope <<endmsg; @@ -2419,22 +2423,22 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, pvWrapper = new GeoPhysVol(lvWrapper); // create scintillator - dy1Scintillator = dy1Period - thicknessEnvelope + ((scintiRC - scintiHeight/2.)*tanphi - scintiDeltaInPhi)*CLHEP::cm; - dy2Scintillator = dy1Period - thicknessEnvelope + ((scintiRC + scintiHeight/2.)*tanphi - scintiDeltaInPhi)*CLHEP::cm; + dy1Scintillator = dy1Period - thicknessEnvelope + ((scintiRC - scintiHeight/2.)*tanphi - scintiDeltaInPhi)*GeoModelKernelUnits::cm; + dy2Scintillator = dy1Period - thicknessEnvelope + ((scintiRC + scintiHeight/2.)*tanphi - scintiDeltaInPhi)*GeoModelKernelUnits::cm; checking("Scintillator 4", true, 6, - scintiThickness/2*CLHEP::cm,scintiThickness/2*CLHEP::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*CLHEP::cm); + scintiThickness/2*GeoModelKernelUnits::cm,scintiThickness/2*GeoModelKernelUnits::cm,dy1Scintillator,dy2Scintillator,scintiHeight/2*GeoModelKernelUnits::cm); - scintillator = new GeoTrd(scintiThickness/2*CLHEP::cm, - scintiThickness/2*CLHEP::cm, + scintillator = new GeoTrd(scintiThickness/2*GeoModelKernelUnits::cm, + scintiThickness/2*GeoModelKernelUnits::cm, dy1Scintillator, dy2Scintillator, - scintiHeight/2*CLHEP::cm); + scintiHeight/2*GeoModelKernelUnits::cm); lvScintillator = new GeoLogVol("Scintillator",scintillator,matScin); pvScintillator = new GeoPhysVol(lvScintillator); // place scintillator in wrapper - tfScintillator = new GeoTransform(HepGeom::Translate3D(0.,0.,0.)); + tfScintillator = new GeoTransform(GeoTrf::Translate3D(0.,0.,0.)); pvWrapper->add(idTag); pvWrapper->add(tfScintillator); pvWrapper->add(pvScintillator); @@ -2445,9 +2449,9 @@ void TileGeoSectionBuilder::fillPeriod(GeoPhysVol*& mother, (*m_log) << MSG::VERBOSE <<" Y scintiRC= "<<scintiRC <<endmsg; } - tfWrapper = new GeoTransform(HepGeom::Translate3D(0., + tfWrapper = new GeoTransform(GeoTrf::Translate3D(0., 0., - (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*CLHEP::cm)); + (scintiRC-(m_dbManager->TILBrmax()-m_dbManager->TILBrmin())/2)*GeoModelKernelUnits::cm)); mother->add(idTag); mother->add(tfWrapper); mother->add(pvWrapper); @@ -2534,16 +2538,16 @@ void TileGeoSectionBuilder::fillDescriptor(TileDetDescriptor*& descriptor, float drGap[] = {450., 380., 313., 341., 478., 362.}; if (addPlates) { - rBarrel[0] -= 10*CLHEP::mm/2; - rBarrel[2] += 40*CLHEP::mm/2; - drBarrel[0] += 10*CLHEP::mm; - drBarrel[2] += 40*CLHEP::mm; - rExtended[0] -= 10*CLHEP::mm/2; - rExtended[2] += 40*CLHEP::mm/2; - drExtended[0] += 10*CLHEP::mm; - drExtended[2] += 40*CLHEP::mm; - rGap[1] += 40*CLHEP::mm/2; - drGap[1] += 40*CLHEP::mm; + rBarrel[0] -= 10*GeoModelKernelUnits::mm/2; + rBarrel[2] += 40*GeoModelKernelUnits::mm/2; + drBarrel[0] += 10*GeoModelKernelUnits::mm; + drBarrel[2] += 40*GeoModelKernelUnits::mm; + rExtended[0] -= 10*GeoModelKernelUnits::mm/2; + rExtended[2] += 40*GeoModelKernelUnits::mm/2; + drExtended[0] += 10*GeoModelKernelUnits::mm; + drExtended[2] += 40*GeoModelKernelUnits::mm; + rGap[1] += 40*GeoModelKernelUnits::mm/2; + drGap[1] += 40*GeoModelKernelUnits::mm; } int indHardcoded = 0; @@ -2796,10 +2800,10 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, dzPeriod = m_extendedPeriodThickness; } - rMin = m_dbManager->TILBrmin() *CLHEP::cm; - if (addPlates) rMin -= m_dbManager->TILBdrfront() *CLHEP::cm; + rMin = m_dbManager->TILBrmin() *GeoModelKernelUnits::cm; + if (addPlates) rMin -= m_dbManager->TILBdrfront() *GeoModelKernelUnits::cm; CurrentScin = 100*m_dbManager->TILBsection() + 1; - //dzMaster = m_dbManager->TILBdzmast()*CLHEP::cm; + //dzMaster = m_dbManager->TILBdzmast()*GeoModelKernelUnits::cm; /** Initialize rMin, rMax vectors - once per region Initial values for zMin - leftmost edge @@ -2811,13 +2815,13 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, if ( (j == CurrentScin + m_dbManager->TILBnscin() - 1) && addPlates ) { // use end of the master as end of last cell - rMax = m_dbManager->TILBrmax()*CLHEP::cm; + rMax = m_dbManager->TILBrmax()*GeoModelKernelUnits::cm; } else { double tileSize=m_dbManager->SCNTdr(); if (m_dbManager->SCNTdrw() > 0) // round to integer for all tiles except gap scin tileSize=round(tileSize); - rMax = (m_dbManager->TILBrmin() + m_dbManager->SCNTrc() + tileSize/2)*CLHEP::cm; + rMax = (m_dbManager->TILBrmin() + m_dbManager->SCNTrc() + tileSize/2)*GeoModelKernelUnits::cm; } rmins.push_back(rMin); @@ -2825,19 +2829,19 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, rMin = rMax; if(detector == TILE_REGION_CENTRAL) { - zmins.push_back((-m_dbManager->TILBdzmast()/2 - m_barrelGlue*(1./CLHEP::cm) - -(m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend1()))*CLHEP::cm); - zEnd1Lim = (-m_dbManager->TILBdzmodul()/2+m_dbManager->TILBdzend1())*CLHEP::cm; - zEnd2Lim = ( m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend2())*CLHEP::cm; - zEnd1 = (-m_dbManager->TILBdzmodul()/2)*CLHEP::cm; - zEnd2 = ( m_dbManager->TILBdzmodul()/2)*CLHEP::cm; + zmins.push_back((-m_dbManager->TILBdzmast()/2 - m_barrelGlue*(1./GeoModelKernelUnits::cm) + -(m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend1()))*GeoModelKernelUnits::cm); + zEnd1Lim = (-m_dbManager->TILBdzmodul()/2+m_dbManager->TILBdzend1())*GeoModelKernelUnits::cm; + zEnd2Lim = ( m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend2())*GeoModelKernelUnits::cm; + zEnd1 = (-m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + zEnd2 = ( m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; } else { - zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2 + m_dbManager->TILBdzend1())*CLHEP::cm); - zEnd1Lim = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2+m_dbManager->TILBdzend1()+0.001)*CLHEP::cm; - zEnd2Lim = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend2()-0.001)*CLHEP::cm; - zEnd1 = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*CLHEP::cm; - zEnd2 = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*CLHEP::cm; + zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2 + m_dbManager->TILBdzend1())*GeoModelKernelUnits::cm); + zEnd1Lim = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2+m_dbManager->TILBdzend1()+0.001)*GeoModelKernelUnits::cm; + zEnd2Lim = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend2()-0.001)*GeoModelKernelUnits::cm; + zEnd1 = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + zEnd2 = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; } zmaxs.push_back(0.); @@ -3002,7 +3006,7 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, << cellDim->getRMax(jj) << " " << cellDim->getZMin(jj) << " " << cellDim->getZMax(jj) << "\n"; - std::cout << " >> Cell Volume is " << cellDim->getVolume()*(1./CLHEP::cm3) << " cm^3\n"; + std::cout << " >> Cell Volume is " << cellDim->getVolume()*(1./GeoModelKernelUnits::cm3) << " cm^3\n"; if(detector != TILE_REGION_CENTRAL) { @@ -3012,7 +3016,7 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, << cellDimNeg->getRMax(jj) << " " << cellDimNeg->getZMin(jj) << " " << cellDimNeg->getZMax(jj) << "\n"; - std::cout << " >> CellNeg Volume is " << cellDimNeg->getVolume()*(1./CLHEP::cm3) << " cm^3\n"; + std::cout << " >> CellNeg Volume is " << cellDimNeg->getVolume()*(1./GeoModelKernelUnits::cm3) << " cm^3\n"; } } /* ------------------------------------------------------------------------------------------------ */ @@ -3048,8 +3052,8 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, m_dbManager->SetNextTiclInDet(); } - rMin = m_dbManager->TILBrmin()*CLHEP::cm; - if (addPlates) rMin -= m_dbManager->TILBdrfront() *CLHEP::cm; + rMin = m_dbManager->TILBrmin()*GeoModelKernelUnits::cm; + if (addPlates) rMin -= m_dbManager->TILBdrfront() *GeoModelKernelUnits::cm; CurrentScin = 100*m_dbManager->TILBsection() + 1; for (unsigned int j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++) @@ -3058,33 +3062,33 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, if ( (j == CurrentScin + m_dbManager->TILBnscin() - 1) && addPlates ) { /** use end of the master as end of last cell */ - rMax = m_dbManager->TILBrmax()*CLHEP::cm; + rMax = m_dbManager->TILBrmax()*GeoModelKernelUnits::cm; /** subtract from C10 thickness of D4 front plate */ if (addPlates && sec) - rMax -= m_dbManager->TILBdrfront()*CLHEP::cm; + rMax -= m_dbManager->TILBdrfront()*GeoModelKernelUnits::cm; } else { double tileSize=m_dbManager->SCNTdr(); if (m_dbManager->SCNTdrw() > 0) /** round to integer for all tiles except gap scin */ tileSize=round(tileSize); - rMax = (m_dbManager->TILBrmin() + m_dbManager->SCNTrc() + tileSize/2)*CLHEP::cm; + rMax = (m_dbManager->TILBrmin() + m_dbManager->SCNTrc() + tileSize/2)*GeoModelKernelUnits::cm; } rmins.push_back(rMin); rmaxs.push_back(rMax); rMin = rMax; - zEnd1Lim = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2+m_dbManager->TILBdzend1()+0.001)*CLHEP::cm; - zEnd2Lim = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend2()-0.001)*CLHEP::cm; - zEnd1 = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*CLHEP::cm; - zEnd2 = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*CLHEP::cm; + zEnd1Lim = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2+m_dbManager->TILBdzend1()+0.001)*GeoModelKernelUnits::cm; + zEnd2Lim = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2-m_dbManager->TILBdzend2()-0.001)*GeoModelKernelUnits::cm; + zEnd1 = (m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; + zEnd2 = (m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm; if ( addPlates ) { - zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*CLHEP::cm); - zmaxs.push_back((m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*CLHEP::cm); + zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm); + zmaxs.push_back((m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm); } else { - zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2 + m_dbManager->TILBdzend1())*CLHEP::cm); - zmaxs.push_back((m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2 - m_dbManager->TILBdzend2())*CLHEP::cm); + zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2 + m_dbManager->TILBdzend1())*GeoModelKernelUnits::cm); + zmaxs.push_back((m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2 - m_dbManager->TILBdzend2())*GeoModelKernelUnits::cm); } } @@ -3134,7 +3138,7 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, << cellDim->getRMax(jj) << " " << cellDim->getZMin(jj) << " " << cellDim->getZMax(jj) << "\n"; - std::cout<< " >> Cell Volume is " << cellDim->getVolume()*(1./CLHEP::cm3) << " cm^3\n"; + std::cout<< " >> Cell Volume is " << cellDim->getVolume()*(1./GeoModelKernelUnits::cm3) << " cm^3\n"; std::cout << " >> CellDimNeg contains " << cellDimNeg->getNRows() << " rows\n"; for(unsigned int jj=0; jj<cellDimNeg->getNRows(); jj++) @@ -3142,7 +3146,7 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, << cellDimNeg->getRMax(jj) << " " << cellDimNeg->getZMin(jj) << " " << cellDimNeg->getZMax(jj) << "\n"; - std::cout << " >> CellNeg Volume is " << cellDimNeg->getVolume()*(1./CLHEP::cm3) << " cm^3\n"; + std::cout << " >> CellNeg Volume is " << cellDimNeg->getVolume()*(1./GeoModelKernelUnits::cm3) << " cm^3\n"; } /* -------------------------------------------- */ } @@ -3165,20 +3169,20 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, CurrentScin = 100*m_dbManager->TILBsection()+1; } - rMin = m_dbManager->TILBrmin()*CLHEP::cm; + rMin = m_dbManager->TILBrmin()*GeoModelKernelUnits::cm; // Initialize rMin, rMax, zMin, zMax vectors for (unsigned int j = CurrentScin; j < (CurrentScin + m_dbManager->TILBnscin()); j++) { m_dbManager->SetCurrentScin(j); - rMax = rMin + m_dbManager->SCNTdr()*CLHEP::cm; + rMax = rMin + m_dbManager->SCNTdr()*GeoModelKernelUnits::cm; rmins.push_back(rMin); rmaxs.push_back(rMax); rMin = rMax; - zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*CLHEP::cm); - zmaxs.push_back((m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*CLHEP::cm); + zmins.push_back((m_dbManager->TILBzoffset() - m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm); + zmaxs.push_back((m_dbManager->TILBzoffset() + m_dbManager->TILBdzmodul()/2)*GeoModelKernelUnits::cm); } // Iterate through scintillators and create corresponding TileCellDim objects (+/-) @@ -3226,7 +3230,7 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, << cellDim->getRMax(jj) << " " << cellDim->getZMin(jj) << " " << cellDim->getZMax(jj) << "\n"; - std::cout << " >> Cell Volume is " << cellDim->getVolume()*(1./CLHEP::cm3) << " cm^3\n"; + std::cout << " >> Cell Volume is " << cellDim->getVolume()*(1./GeoModelKernelUnits::cm3) << " cm^3\n"; std::cout << " >> CellDimNeg contains " << cellDimNeg->getNRows() << " rows\n"; for(unsigned int jj=0; jj<cellDimNeg->getNRows(); jj++) @@ -3234,7 +3238,7 @@ void TileGeoSectionBuilder::computeCellDim(TileDetDescrManager*& manager, << cellDimNeg->getRMax(jj) << " " << cellDimNeg->getZMin(jj) << " " << cellDimNeg->getZMax(jj) << "\n"; - std::cout << " >> CellNeg Volume is " << cellDimNeg->getVolume()*(1./CLHEP::cm3) << " cm^3\n"; + std::cout << " >> CellNeg Volume is " << cellDimNeg->getVolume()*(1./GeoModelKernelUnits::cm3) << " cm^3\n"; } /* -------------------------------------------- */ } @@ -3276,10 +3280,10 @@ void TileGeoSectionBuilder::calculateZ(int detector, // first - find position in ideal world before Z-shift and misalignment if (detector == TILE_REGION_CENTRAL) { // need to split one cylinder in pos/neg halves - float zmin=m_dbManager->TILBzoffset()/2 * CLHEP::cm ; - float zmax=zmin+m_dbManager->TILBdzmodul()/2 * CLHEP::cm ; + float zmin=m_dbManager->TILBzoffset()/2 * GeoModelKernelUnits::cm ; + float zmax=zmin+m_dbManager->TILBdzmodul()/2 * GeoModelKernelUnits::cm ; if (sample==3) { // fix for D0 cell - float D0size = 560.58/307*40 * CLHEP::cm; // size of D0 along Z in CLHEP::cm + float D0size = 560.58/307*40 * GeoModelKernelUnits::cm; // size of D0 along Z in GeoModelKernelUnits::cm // FIXME:: should be taken from DB if (side>0) // positive zmin = - D0size/2; @@ -3289,13 +3293,13 @@ void TileGeoSectionBuilder::calculateZ(int detector, zcenter = (zmin+zmax)/2; dz = (zmax-zmin); } else if (detector == TILE_REGION_GAP && (sample > 9) ){ - zcenter=m_dbManager->TILBzoffset() * CLHEP::cm ; + zcenter=m_dbManager->TILBzoffset() * GeoModelKernelUnits::cm ; m_dbManager->SetCurrentScin(100*m_dbManager->TILBsection() + 1 ); - dz = m_dbManager->SCNTdt()*CLHEP::cm; + dz = m_dbManager->SCNTdt()*GeoModelKernelUnits::cm; } else { - zcenter=m_dbManager->TILBzoffset() * CLHEP::cm ; - dz=m_dbManager->TILBdzmodul() * CLHEP::cm ; + zcenter=m_dbManager->TILBzoffset() * GeoModelKernelUnits::cm ; + dz=m_dbManager->TILBdzmodul() * GeoModelKernelUnits::cm ; } // apply zshift from ideal pseudo-projective eta (which includes alignment also!) @@ -3421,18 +3425,18 @@ void TileGeoSectionBuilder::printdouble(const char * name, double val) } const GeoShape * TileGeoSectionBuilder::makeHolesScint(const GeoShape * mother, double R, double H2, double off, double off0) { - GeoShape *hole = new GeoTubs(0., R, H2, 0., 360.0 * CLHEP::deg); - const GeoShapeUnion& scintUnion = hole->add( *hole << HepGeom::Translate3D((off0-off*2.0),0.,0.)); - HepGeom::Transform3D tfHole = HepGeom::Translate3D(0.,0.,(off0-off)) * HepGeom::RotateY3D(90*CLHEP::deg); + GeoShape *hole = new GeoTubs(0., R, H2, 0., 360.0 * GeoModelKernelUnits::deg); + const GeoShapeUnion& scintUnion = hole->add( *hole << GeoTrf::Translate3D((off0-off*2.0),0.,0.)); + GeoTrf::Transform3D tfHole = GeoTrf::Translate3D(0.,0.,(off0-off)) * GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); const GeoShape & motherWithHoles = (mother->subtract(scintUnion<<tfHole)); return &motherWithHoles; } const GeoShape * TileGeoSectionBuilder::makeHoles(const GeoShape * mother, double R, double H2, double off, double off0) { - GeoShape *hole1 = new GeoTubs(0., R, H2, 0., 360.0 * CLHEP::deg); - GeoShape *hole2 = new GeoTubs(0., R, H2, 0., 360.0 * CLHEP::deg); - HepGeom::Transform3D tfHole1 = HepGeom::Translate3D(0.,0.,(off0-off)) * HepGeom::RotateY3D(-90*CLHEP::deg); - HepGeom::Transform3D tfHole2 = HepGeom::Translate3D(0.,0.,(off0+off)) * HepGeom::RotateY3D(-90*CLHEP::deg); + GeoShape *hole1 = new GeoTubs(0., R, H2, 0., 360.0 * GeoModelKernelUnits::deg); + GeoShape *hole2 = new GeoTubs(0., R, H2, 0., 360.0 * GeoModelKernelUnits::deg); + GeoTrf::Transform3D tfHole1 = GeoTrf::Translate3D(0.,0.,(off0-off)) * GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); + GeoTrf::Transform3D tfHole2 = GeoTrf::Translate3D(0.,0.,(off0+off)) * GeoTrf::RotateY3D(-90*GeoModelKernelUnits::deg); const GeoShape & motherWithHoles = (mother->subtract((*hole1)<<tfHole1).subtract((*hole2)<<tfHole2)); return &motherWithHoles; } diff --git a/TileCalorimeter/TileGeoModel/src/TileTBFactory.cxx b/TileCalorimeter/TileGeoModel/src/TileTBFactory.cxx index bf473a1e05391caeff21505beeb0dedd244b8078..8a25b3f8affb8cbd23d091f5e00fa37bb55114fa 100755 --- a/TileCalorimeter/TileGeoModel/src/TileTBFactory.cxx +++ b/TileCalorimeter/TileGeoModel/src/TileTBFactory.cxx @@ -19,9 +19,11 @@ #include "GeoModelKernel/GeoNameTag.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoShapeShift.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" -#include "CLHEP/GenericFunctions/AbsFunction.hh" -#include "CLHEP/GenericFunctions/Variable.hh" +#include "GeoGenericFunctions/AbsFunction.h" +#include "GeoGenericFunctions/Variable.h" #include "GeoModelKernel/GeoXF.h" #include "GeoModelKernel/GeoSerialTransformer.h" #include "GeoModelKernel/GeoSerialIdentifier.h" @@ -36,7 +38,7 @@ #include <iostream> #include <algorithm> -using namespace Genfun; +using namespace GeoGenfun; using namespace GeoXF; @@ -179,11 +181,11 @@ void TileTBFactory::create(GeoPhysVol *world) //int EnvNumLayer = 64; //dbManager->SetCurrentSection(TileDddbManager::TILE_BARREL); //double deltaPhi = 360./dbManager->TILEnmodul(); - GeoTubs* tileTBEnv = new GeoTubs(RInMin * CLHEP::cm, - ROutMax * CLHEP::cm, - tileTBEnvThickness/2.0 * CLHEP::cm, - PhiMin*CLHEP::deg, - (PhiMax - PhiMin)*CLHEP::deg); + GeoTubs* tileTBEnv = new GeoTubs(RInMin * GeoModelKernelUnits::cm, + ROutMax * GeoModelKernelUnits::cm, + tileTBEnvThickness/2.0 * GeoModelKernelUnits::cm, + PhiMin*GeoModelKernelUnits::deg, + (PhiMax - PhiMin)*GeoModelKernelUnits::deg); (*m_log) << MSG::DEBUG << "TileTB envelope parameters: " << " length=" << tileTBEnvThickness << " cm" @@ -211,19 +213,19 @@ void TileTBFactory::create(GeoPhysVol *world) //----------------------- BUILDING ENVELOPES------------------------ // It may be usful on the way of universalization - // GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * CLHEP::cm, - // (dbManager->GetEnvRout()) * CLHEP::cm, - // (dbManager->GetEnvZLength())/2.0 * CLHEP::cm, - // 0.0 * deltaPhi * CLHEP::deg, - // (NumberOfMod)*deltaPhi*CLHEP::deg); + // GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * GeoModelKernelUnits::cm, + // (dbManager->GetEnvRout()) * GeoModelKernelUnits::cm, + // (dbManager->GetEnvZLength())/2.0 * GeoModelKernelUnits::cm, + // 0.0 * deltaPhi * GeoModelKernelUnits::deg, + // (NumberOfMod)*deltaPhi*GeoModelKernelUnits::deg); if(EnvType == 1) { - GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * CLHEP::cm, - (dbManager->GetEnvRout()) * CLHEP::cm, - (dbManager->GetEnvZLength() - 2 * BFingerLength)/2.0 * CLHEP::cm, - 0.0 * CLHEP::deg, - NumberOfMod*deltaPhi*CLHEP::deg); + GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * GeoModelKernelUnits::cm, + (dbManager->GetEnvRout()) * GeoModelKernelUnits::cm, + (dbManager->GetEnvZLength() - 2 * BFingerLength)/2.0 * GeoModelKernelUnits::cm, + 0.0 * GeoModelKernelUnits::deg, + NumberOfMod*deltaPhi*GeoModelKernelUnits::deg); GeoTubs* barrelMother = GeneralMother; GeoLogVol* lvBarrelMother = new GeoLogVol("Barrel",barrelMother,matAir); @@ -239,11 +241,11 @@ void TileTBFactory::create(GeoPhysVol *world) //Envelopes for two barrel fingers dbManager->SetCurrentTifg(2); //use small size for barrel finger ! - GeoTubs* fingerMother = new GeoTubs(FingerRmin*CLHEP::cm, - dbManager->GetEnvRout()*CLHEP::cm, - BFingerLength/2.*CLHEP::cm, - 0.0 * CLHEP::deg, - NumberOfMod*deltaPhi*CLHEP::deg); + GeoTubs* fingerMother = new GeoTubs(FingerRmin*GeoModelKernelUnits::cm, + dbManager->GetEnvRout()*GeoModelKernelUnits::cm, + BFingerLength/2.*GeoModelKernelUnits::cm, + 0.0 * GeoModelKernelUnits::deg, + NumberOfMod*deltaPhi*GeoModelKernelUnits::deg); GeoLogVol* lvFingerMother = new GeoLogVol("Finger",fingerMother,matAir); pvFingerMotherPos = new GeoFullPhysVol(lvFingerMother); @@ -258,11 +260,11 @@ void TileTBFactory::create(GeoPhysVol *world) } if(EnvType == 3) { - GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * CLHEP::cm, - (dbManager->GetEnvRout()) * CLHEP::cm, - (dbManager->GetEnvZLength() - EBFingerLength)/2.0 * CLHEP::cm, - 0.0 * CLHEP::deg, - NumberOfMod*deltaPhi*CLHEP::deg); + GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * GeoModelKernelUnits::cm, + (dbManager->GetEnvRout()) * GeoModelKernelUnits::cm, + (dbManager->GetEnvZLength() - EBFingerLength)/2.0 * GeoModelKernelUnits::cm, + 0.0 * GeoModelKernelUnits::deg, + NumberOfMod*deltaPhi*GeoModelKernelUnits::deg); GeoTubs* ebarrelMotherPos = GeneralMother; GeoLogVol* lvEBarrelMotherPos = new GeoLogVol("EBarrel",ebarrelMotherPos,matAir); @@ -276,11 +278,11 @@ void TileTBFactory::create(GeoPhysVol *world) << endmsg; //Envelope for finger separately - GeoTubs* fingerMother = new GeoTubs(FingerRmin*CLHEP::cm, - dbManager->GetEnvRout()*CLHEP::cm, - EBFingerLength/2.*CLHEP::cm, - 0.0 * CLHEP::deg, - NumberOfMod*deltaPhi*CLHEP::deg); + GeoTubs* fingerMother = new GeoTubs(FingerRmin*GeoModelKernelUnits::cm, + dbManager->GetEnvRout()*GeoModelKernelUnits::cm, + EBFingerLength/2.*GeoModelKernelUnits::cm, + 0.0 * GeoModelKernelUnits::deg, + NumberOfMod*deltaPhi*GeoModelKernelUnits::deg); GeoLogVol* lvEFingerMother = new GeoLogVol("EFinger",fingerMother,matAir); pvEFingerMotherPos = new GeoFullPhysVol(lvEFingerMother); @@ -294,11 +296,11 @@ void TileTBFactory::create(GeoPhysVol *world) } if(EnvType == 2) { - GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * CLHEP::cm, - (dbManager->GetEnvRout()) * CLHEP::cm, - (dbManager->GetEnvZLength() - EBFingerLength)/2.0 * CLHEP::cm, - 0.0 * CLHEP::deg, - NumberOfMod*deltaPhi*CLHEP::deg); + GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * GeoModelKernelUnits::cm, + (dbManager->GetEnvRout()) * GeoModelKernelUnits::cm, + (dbManager->GetEnvZLength() - EBFingerLength)/2.0 * GeoModelKernelUnits::cm, + 0.0 * GeoModelKernelUnits::deg, + NumberOfMod*deltaPhi*GeoModelKernelUnits::deg); GeoTubs* ebarrelMotherNeg = GeneralMother; GeoLogVol* lvEBarrelMotherNeg = new GeoLogVol("EBarrel",ebarrelMotherNeg,matAir); pvEBarrelMotherNeg = new GeoFullPhysVol(lvEBarrelMotherNeg); @@ -311,11 +313,11 @@ void TileTBFactory::create(GeoPhysVol *world) << endmsg; //Envelope for finger separately - GeoTubs* fingerMother = new GeoTubs(FingerRmin*CLHEP::cm, - dbManager->GetEnvRout()*CLHEP::cm, - EBFingerLength/2.*CLHEP::cm, - 0.0 * CLHEP::deg, - NumberOfMod*deltaPhi*CLHEP::deg); + GeoTubs* fingerMother = new GeoTubs(FingerRmin*GeoModelKernelUnits::cm, + dbManager->GetEnvRout()*GeoModelKernelUnits::cm, + EBFingerLength/2.*GeoModelKernelUnits::cm, + 0.0 * GeoModelKernelUnits::deg, + NumberOfMod*deltaPhi*GeoModelKernelUnits::deg); GeoLogVol* lvEFingerMother = new GeoLogVol("EFinger",fingerMother,matAir); pvEFingerMotherNeg = new GeoFullPhysVol(lvEFingerMother); @@ -329,11 +331,11 @@ void TileTBFactory::create(GeoPhysVol *world) } if(EnvType == 5) { - GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * CLHEP::cm, - (dbManager->GetEnvRout()) * CLHEP::cm, - (dbManager->GetEnvZLength())/2.0 * CLHEP::cm, - 0.0 * CLHEP::deg, - NumberOfMod*deltaPhi*CLHEP::deg); + GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * GeoModelKernelUnits::cm, + (dbManager->GetEnvRout()) * GeoModelKernelUnits::cm, + (dbManager->GetEnvZLength())/2.0 * GeoModelKernelUnits::cm, + 0.0 * GeoModelKernelUnits::deg, + NumberOfMod*deltaPhi*GeoModelKernelUnits::deg); GeoTubs* itcMother = GeneralMother; GeoLogVol* lvITCMother = new GeoLogVol("ITC",itcMother,matAir); @@ -348,11 +350,11 @@ void TileTBFactory::create(GeoPhysVol *world) } if(EnvType == 4) { - GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * CLHEP::cm, - (dbManager->GetEnvRout()) * CLHEP::cm, - (dbManager->GetEnvZLength())/2.0 * CLHEP::cm, - 0.0 * CLHEP::deg, - NumberOfMod*deltaPhi*CLHEP::deg); + GeoTubs* GeneralMother = new GeoTubs((dbManager->GetEnvRin()) * GeoModelKernelUnits::cm, + (dbManager->GetEnvRout()) * GeoModelKernelUnits::cm, + (dbManager->GetEnvZLength())/2.0 * GeoModelKernelUnits::cm, + 0.0 * GeoModelKernelUnits::deg, + NumberOfMod*deltaPhi*GeoModelKernelUnits::deg); GeoTubs* itcMotherNeg = GeneralMother; GeoLogVol* lvITCMotherNeg = new GeoLogVol("ITC",itcMotherNeg,matAir); @@ -384,17 +386,17 @@ void TileTBFactory::create(GeoPhysVol *world) << endmsg; Variable varInd; - GENFUNCTION phiInd = deltaPhi*(varInd + ModCounter + 0.5) * CLHEP::deg; + GENFUNCTION phiInd = deltaPhi*(varInd + ModCounter + 0.5) * GeoModelKernelUnits::deg; //------------------- BARREL BLOCKS ------------------------------------- if( EnvType == 1 || EnvType == 0 ) { // normal barrel module or module zero dbManager->SetCurrentSectionByNumber(ModType); - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - (dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) - dbManager->TILBdzmast()))/(2.*(2.*dbManager->TILBnperiod() - 1)); @@ -415,7 +417,7 @@ void TileTBFactory::create(GeoPhysVol *world) dzGlue, deltaPhi); - TRANSFUNCTION xfBarrelModuleMother = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*CLHEP::cm)*HepGeom::RotateX3D(180*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION xfBarrelModuleMother = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer* stBarrelModuleMother = new GeoSerialTransformer(pvBarrelModuleMother, &xfBarrelModuleMother, @@ -431,10 +433,10 @@ void TileTBFactory::create(GeoPhysVol *world) // Trd - one finger mother - thicknessWedgeMother = dbManager->TIFGdz() * CLHEP::cm; - heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TIFGdz() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; GeoTrd* fingerModuleMother = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -452,10 +454,10 @@ void TileTBFactory::create(GeoPhysVol *world) deltaPhi, m_testbeamGeometry, ModuleNcp, - thicknessWedgeMother*(1./CLHEP::cm)); + thicknessWedgeMother*(1./GeoModelKernelUnits::cm)); // --- Position N modules inside mother (positive/negative) ----- - TRANSFUNCTION xfFingerModuleMotherPos = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*CLHEP::cm)*HepGeom::RotateX3D(180*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION xfFingerModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer* stFingerModuleMotherPos = new GeoSerialTransformer(pvFingerModuleMother, &xfFingerModuleMotherPos, @@ -463,7 +465,7 @@ void TileTBFactory::create(GeoPhysVol *world) pvFingerMotherPos->add(new GeoSerialIdentifier(ModPositionNumber)); pvFingerMotherPos->add(stFingerModuleMotherPos); - TRANSFUNCTION xfFingerModuleMotherNeg = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*CLHEP::cm)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION xfFingerModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer* stFingerModuleMotherNeg = new GeoSerialTransformer(pvFingerModuleMother, &xfFingerModuleMotherNeg, @@ -478,10 +480,10 @@ void TileTBFactory::create(GeoPhysVol *world) if((ModType == 2)&&(EnvType == 3)){ dbManager->SetCurrentSectionByNumber(ModType); // Trd - module mother - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod()); @@ -502,7 +504,7 @@ void TileTBFactory::create(GeoPhysVol *world) dzGlue, deltaPhi); - TRANSFUNCTION xfEBarrelModuleMotherPos = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*CLHEP::cm)*HepGeom::RotateX3D(180*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION xfEBarrelModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer* stEBarrelModuleMotherPos = new GeoSerialTransformer(pvEBarrelModuleMotherPos, &xfEBarrelModuleMotherPos, @@ -516,10 +518,10 @@ void TileTBFactory::create(GeoPhysVol *world) dbManager->SetCurrentTifg(2); //barrel efinger (small) // Trd - one finger mother - thicknessWedgeMother = dbManager->TIFGdz() * CLHEP::cm; - heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TIFGdz() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; GeoTrd* efingerModuleMother = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -540,7 +542,7 @@ void TileTBFactory::create(GeoPhysVol *world) // --- Position N modules inside mother (positive/negative) ----- - TRANSFUNCTION xfEFingerModuleMotherPos = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*CLHEP::cm)*HepGeom::RotateX3D(180*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION xfEFingerModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer* stEFingerModuleMotherPos = new GeoSerialTransformer(pvEFingerModuleMother, &xfEFingerModuleMotherPos, @@ -555,10 +557,10 @@ void TileTBFactory::create(GeoPhysVol *world) if((ModType == 2)&&(EnvType == 2)){ dbManager->SetCurrentSectionByNumber(ModType); // Trd - module mother - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod()); @@ -579,7 +581,7 @@ void TileTBFactory::create(GeoPhysVol *world) dzGlue, deltaPhi); - TRANSFUNCTION xfEBarrelModuleMotherNeg = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*CLHEP::cm)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION xfEBarrelModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+dbManager->TILBrminimal())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer* stEBarrelModuleMotherNeg = new GeoSerialTransformer(pvEBarrelModuleMotherNeg, &xfEBarrelModuleMotherNeg, @@ -594,10 +596,10 @@ void TileTBFactory::create(GeoPhysVol *world) //zEndSection = extOffset + dbManager->TILBdzmodul()/2. + dbManager->TILEzshift(); // Trd - one finger mother - thicknessWedgeMother = dbManager->TIFGdz() * CLHEP::cm; - heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TIFGdz() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILErmax() - dbManager->TILBrmax()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILErmax() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; GeoTrd* efingerModuleMother = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -616,7 +618,7 @@ void TileTBFactory::create(GeoPhysVol *world) deltaPhi, m_testbeamGeometry); - TRANSFUNCTION xfEFingerModuleMotherNeg = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*CLHEP::cm)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION xfEFingerModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILErmax()+dbManager->TILBrmax())/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer* stEFingerModuleMotherNeg = new GeoSerialTransformer(pvEFingerModuleMother, &xfEFingerModuleMotherNeg, @@ -636,10 +638,10 @@ void TileTBFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); // Common mother for ITC1/2 modules - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - rMinITC) * CLHEP::cm; - dy1WedgeMother = rMinITC * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - rMinITC) * GeoModelKernelUnits::cm; + dy1WedgeMother = rMinITC * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; GeoTrd* itcModuleMotherPos = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -656,10 +658,10 @@ void TileTBFactory::create(GeoPhysVol *world) // 2. Mother for frontplate (since it's short) //First submother - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrmin()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrmin()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod()); @@ -670,19 +672,19 @@ void TileTBFactory::create(GeoPhysVol *world) heightWedgeMother/2.); //Second submother - thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2) * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2) * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; GeoTrd* plug2SubMother = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., dy1WedgeMother, dy2WedgeMother, heightWedgeMother/2.); - HepGeom::Translate3D plug1SubOffset(-dzITC2*CLHEP::cm/2., + GeoTrf::Translate3D plug1SubOffset(-dzITC2*GeoModelKernelUnits::cm/2., 0., - (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*CLHEP::cm/2.); + (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*GeoModelKernelUnits::cm/2.); const GeoShapeUnion& plug1ModuleMother = plug1SubMother->add(*plug2SubMother<<plug1SubOffset); GeoLogVol* lvPlug1ModuleMother = new GeoLogVol("Plug1Module",&plug1ModuleMother,matAir); @@ -697,9 +699,9 @@ void TileTBFactory::create(GeoPhysVol *world) ModuleNcp, dzITC2); - GeoTransform* tfPlug1ModuleMother = new GeoTransform(HepGeom::Translate3D(0., + GeoTransform* tfPlug1ModuleMother = new GeoTransform(GeoTrf::Translate3D(0., 0., - (dbManager->TILBrmin()-rMinITC)*CLHEP::cm/2.)); + (dbManager->TILBrmin()-rMinITC)*GeoModelKernelUnits::cm/2.)); pvITCModuleMotherPos->add(tfPlug1ModuleMother); @@ -707,10 +709,10 @@ void TileTBFactory::create(GeoPhysVol *world) //Mother volume for ITC2 dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2); - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - ((dbManager->TILBnperiod()-1)*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) + dbManager->TILBdzspac()))/(4.*(dbManager->TILBnperiod() - 1)); GeoTrd* plug2ModuleMother = new GeoTrd(thicknessWedgeMother/2., @@ -732,13 +734,13 @@ void TileTBFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - GeoTransform* tfPlug2ModuleMother = new GeoTransform(HepGeom::Translate3D((dbManager->TILBdzmodul() - dzITC2)*CLHEP::cm/2., + GeoTransform* tfPlug2ModuleMother = new GeoTransform(GeoTrf::Translate3D((dbManager->TILBdzmodul() - dzITC2)*GeoModelKernelUnits::cm/2., 0., - (dbManager->TILBrmin() - dbManager->TILBrmaximal())*CLHEP::cm/2.)); + (dbManager->TILBrmin() - dbManager->TILBrmaximal())*GeoModelKernelUnits::cm/2.)); pvITCModuleMotherPos->add(tfPlug2ModuleMother); pvITCModuleMotherPos->add(pvPlug2ModuleMother); - TRANSFUNCTION xfITCModuleMotherPos = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILBrmaximal()+rMinITC)/2.*CLHEP::cm)*HepGeom::RotateX3D(180*CLHEP::deg)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION xfITCModuleMotherPos = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+rMinITC)/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateX3D(180*GeoModelKernelUnits::deg)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer* stITCModuleMotherPos = new GeoSerialTransformer(pvITCModuleMotherPos, &xfITCModuleMotherPos, @@ -758,10 +760,10 @@ void TileTBFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); // Common mother for ITC1/2 modules - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - rMinITC) * CLHEP::cm; - dy1WedgeMother = rMinITC * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - rMinITC) * GeoModelKernelUnits::cm; + dy1WedgeMother = rMinITC * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; GeoTrd* itcModuleMotherNeg = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., @@ -778,10 +780,10 @@ void TileTBFactory::create(GeoPhysVol *world) // 2. Mother for frontplate (since it's short) //First submother - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrmin()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrmin()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - dbManager->TILBnperiod()*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()))/(4.*dbManager->TILBnperiod()); @@ -792,19 +794,19 @@ void TileTBFactory::create(GeoPhysVol *world) heightWedgeMother/2.); //Second submother - thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2) * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = (dbManager->TILBdzmodul() - dzITC2) * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmin() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmin() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; GeoTrd* plug2SubMother = new GeoTrd(thicknessWedgeMother/2., thicknessWedgeMother/2., dy1WedgeMother, dy2WedgeMother, heightWedgeMother/2.); - HepGeom::Translate3D plug1SubOffset(-dzITC2*CLHEP::cm/2., + GeoTrf::Translate3D plug1SubOffset(-dzITC2*GeoModelKernelUnits::cm/2., 0., - (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*CLHEP::cm/2.); + (dbManager->TILBrminimal()-dbManager->TILBrmaximal())*GeoModelKernelUnits::cm/2.); const GeoShapeUnion& plug1ModuleMother = plug1SubMother->add(*plug2SubMother<<plug1SubOffset); GeoLogVol* lvPlug1ModuleMother = new GeoLogVol("Plug1Module",&plug1ModuleMother,matAir); @@ -820,9 +822,9 @@ void TileTBFactory::create(GeoPhysVol *world) ModuleNcp, dzITC2); - GeoTransform* tfPlug1ModuleMother = new GeoTransform(HepGeom::Translate3D(0., + GeoTransform* tfPlug1ModuleMother = new GeoTransform(GeoTrf::Translate3D(0., 0., - (dbManager->TILBrmin()-rMinITC)*CLHEP::cm/2.)); + (dbManager->TILBrmin()-rMinITC)*GeoModelKernelUnits::cm/2.)); pvITCModuleMotherNeg->add(tfPlug1ModuleMother); @@ -830,10 +832,10 @@ void TileTBFactory::create(GeoPhysVol *world) //Mother volume for ITC2 dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG2); - thicknessWedgeMother = dbManager->TILBdzmodul() * CLHEP::cm; - heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * CLHEP::cm; - dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; - dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*CLHEP::deg) * CLHEP::cm; + thicknessWedgeMother = dbManager->TILBdzmodul() * GeoModelKernelUnits::cm; + heightWedgeMother = (dbManager->TILBrmaximal() - dbManager->TILBrminimal()) * GeoModelKernelUnits::cm; + dy1WedgeMother = dbManager->TILBrminimal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; + dy2WedgeMother = dbManager->TILBrmaximal() * tan(deltaPhi/2.*GeoModelKernelUnits::deg) * GeoModelKernelUnits::cm; dzGlue = (dbManager->TILBdzmodul() - dbManager->TILBdzend1() - dbManager->TILBdzend2() - ((dbManager->TILBnperiod()-1)*2.*(dbManager->TILBdzmast() + dbManager->TILBdzspac()) + dbManager->TILBdzspac()))/(4.*(dbManager->TILBnperiod() - 1)); GeoTrd* plug2ModuleMother = new GeoTrd(thicknessWedgeMother/2., @@ -855,13 +857,13 @@ void TileTBFactory::create(GeoPhysVol *world) dbManager->SetCurrentSection(TileDddbManager::TILE_PLUG1); - GeoTransform* tfPlug2ModuleMother = new GeoTransform(HepGeom::Translate3D((dbManager->TILBdzmodul() - dzITC2)*CLHEP::cm/2., + GeoTransform* tfPlug2ModuleMother = new GeoTransform(GeoTrf::Translate3D((dbManager->TILBdzmodul() - dzITC2)*GeoModelKernelUnits::cm/2., 0., - (dbManager->TILBrmin() - dbManager->TILBrmaximal())*CLHEP::cm/2.)); + (dbManager->TILBrmin() - dbManager->TILBrmaximal())*GeoModelKernelUnits::cm/2.)); pvITCModuleMotherNeg->add(tfPlug2ModuleMother); pvITCModuleMotherNeg->add(pvPlug2ModuleMother); - TRANSFUNCTION xfITCModuleMotherNeg = Pow(HepGeom::RotateZ3D(1.0),phiInd)*HepGeom::TranslateX3D((dbManager->TILBrmaximal()+rMinITC)/2.*CLHEP::cm)*HepGeom::RotateY3D(90*CLHEP::deg); + TRANSFUNCTION xfITCModuleMotherNeg = Pow(GeoTrf::RotateZ3D(1.0),phiInd)*GeoTrf::TranslateX3D((dbManager->TILBrmaximal()+rMinITC)/2.*GeoModelKernelUnits::cm)*GeoTrf::RotateY3D(90*GeoModelKernelUnits::deg); GeoSerialTransformer* stITCModuleMotherNeg = new GeoSerialTransformer(pvITCModuleMotherNeg, &xfITCModuleMotherNeg, @@ -888,7 +890,7 @@ void TileTBFactory::create(GeoPhysVol *world) else { ztrans = 0; } - tfBarrelMother = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::RotateZ3D((dbManager->GetEnvDPhi())*CLHEP::deg)); + tfBarrelMother = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*GeoModelKernelUnits::deg)); (*m_log) << MSG::DEBUG << "Positioning barrel with translation " << ztrans << " cm" << endmsg; GeoNameTag* ntBarrelModuleMother = new GeoNameTag("Barrel"); @@ -910,7 +912,7 @@ void TileTBFactory::create(GeoPhysVol *world) else { ztrans = 0; } - tfFingerMotherPos = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::RotateZ3D((dbManager->GetEnvDPhi())*CLHEP::deg)); + tfFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*GeoModelKernelUnits::deg)); (*m_log) << MSG::DEBUG << "Positioning positive barrel finger with translation " << ztrans << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg; GeoNameTag* ntFingerMotherPos = new GeoNameTag("TileFingerPos"); @@ -932,7 +934,7 @@ void TileTBFactory::create(GeoPhysVol *world) else { ztrans = 0; } - tfFingerMotherNeg = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::RotateZ3D((dbManager->GetEnvDPhi())*CLHEP::deg)); + tfFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D((dbManager->GetEnvDPhi())*GeoModelKernelUnits::deg)); (*m_log) << MSG::DEBUG << "Positioning negative barrel finger with translation " << ztrans << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg; GeoNameTag* ntFingerMotherNeg = new GeoNameTag("TileFingerNeg"); @@ -945,7 +947,7 @@ void TileTBFactory::create(GeoPhysVol *world) if(EnvType == 3) { // positive ext.barrel is always at positive boundary, after finger ztrans = (tileTBEnvThickness/2. - dbManager->GetEnvZLength()/2. - EBFingerLength/2.); - GeoTransform* tfEBarrelMotherPos = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::RotateZ3D(dbManager->GetEnvDPhi() * CLHEP::deg)); + GeoTransform* tfEBarrelMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); (*m_log) << MSG::DEBUG << "Positioning positive ext.barrel with translation " << ztrans << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg; @@ -955,7 +957,7 @@ void TileTBFactory::create(GeoPhysVol *world) pvTileTBEnv->add(pvEBarrelMotherPos); ztrans = (tileTBEnvThickness/2. - EBFingerLength/2.); - GeoTransform* tfEFingerMotherPos = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::RotateZ3D(dbManager->GetEnvDPhi() * CLHEP::deg)); + GeoTransform* tfEFingerMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); (*m_log) << MSG::DEBUG << "Positioning positive ext.barrel finger with translation " << ztrans << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg; @@ -968,7 +970,7 @@ void TileTBFactory::create(GeoPhysVol *world) if(EnvType == 2) { // negative ext.barrel is always at negative boundary, after finger ztrans = (-tileTBEnvThickness/2. + dbManager->GetEnvZLength()/2. + EBFingerLength/2.); - GeoTransform* tfEBarrelMotherNeg = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::RotateZ3D(dbManager->GetEnvDPhi() * CLHEP::deg)); + GeoTransform* tfEBarrelMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); (*m_log) << MSG::DEBUG << "Positioning negative ext.barrel with translation " << ztrans << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg; @@ -978,7 +980,7 @@ void TileTBFactory::create(GeoPhysVol *world) pvTileTBEnv->add(pvEBarrelMotherNeg); ztrans = (-tileTBEnvThickness/2. + EBFingerLength/2.); - GeoTransform* tfEFingerMotherNeg = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::RotateZ3D(dbManager->GetEnvDPhi() * CLHEP::deg)); + GeoTransform* tfEFingerMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); (*m_log) << MSG::DEBUG << "Positioning negative ext.barrel finger with translation " << ztrans << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg; @@ -991,7 +993,7 @@ void TileTBFactory::create(GeoPhysVol *world) if(EnvType == 5) { // positive ITC attached to positive ext.barrel ztrans = (tileTBEnvThickness/2. - ZLengthEBarrelPos - dbManager->GetEnvZLength()/2.); - GeoTransform* tfITCMotherPos = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::RotateZ3D(dbManager->GetEnvDPhi() * CLHEP::deg)); + GeoTransform* tfITCMotherPos = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); (*m_log) << MSG::DEBUG << "Positioning positive ITC with translation " << ztrans << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg; @@ -1003,7 +1005,7 @@ void TileTBFactory::create(GeoPhysVol *world) if(EnvType == 4) { // negative ITC attached to negative ext.barrel ztrans = (-tileTBEnvThickness/2. + ZLengthEBarrelNeg + dbManager->GetEnvZLength()/2.); - GeoTransform* tfITCMotherNeg = new GeoTransform(HepGeom::TranslateZ3D(ztrans*CLHEP::cm) * HepGeom::RotateZ3D(dbManager->GetEnvDPhi() * CLHEP::deg)); + GeoTransform* tfITCMotherNeg = new GeoTransform(GeoTrf::TranslateZ3D(ztrans*GeoModelKernelUnits::cm) * GeoTrf::RotateZ3D(dbManager->GetEnvDPhi() * GeoModelKernelUnits::deg)); (*m_log) << MSG::DEBUG << "Positioning negative ITC with translation " << ztrans << " cm and rotation " << dbManager->GetEnvDPhi() << " deg " << endmsg; @@ -1024,12 +1026,12 @@ void TileTBFactory::create(GeoPhysVol *world) dbManager->SetCurrentEnvByIndex(EnvCounter); int EnvType = dbManager->GetEnvType(); int NumberOfMod = dbManager->GetEnvNModules(); - float Zshift = dbManager->GetEnvZShift() * CLHEP::cm; + float Zshift = dbManager->GetEnvZShift() * GeoModelKernelUnits::cm; (*m_log) << MSG::DEBUG << "EnvCounter is " << EnvCounter << " EnvType is " << EnvType << " Nmodules is " << NumberOfMod - << " Zshift is " << Zshift*(1./CLHEP::cm) << " cm" + << " Zshift is " << Zshift*(1./GeoModelKernelUnits::cm) << " cm" << endmsg; if(EnvType == 1 || EnvType == 0) { // central barrel diff --git a/TileCalorimeter/TileRecUtils/src/TileCellBuilder.cxx b/TileCalorimeter/TileRecUtils/src/TileCellBuilder.cxx index 6475b62cbceced40d1d0ed7acba607c1aa6f096d..fc80db7a7251f288442a0095e2e70dd5328afd2b 100644 --- a/TileCalorimeter/TileRecUtils/src/TileCellBuilder.cxx +++ b/TileCalorimeter/TileRecUtils/src/TileCellBuilder.cxx @@ -31,6 +31,7 @@ #include "StoreGate/ReadHandle.h" #include "StoreGate/WriteHandle.h" +#include "CLHEP/Units/SystemOfUnits.h" using CLHEP::MeV; // uncomment line below for debug output diff --git a/TileCalorimeter/TileTrackingGeometry/CMakeLists.txt b/TileCalorimeter/TileTrackingGeometry/CMakeLists.txt index 8eb89649d84a9509146490b41ab885f918223719..0463b37f08b7a922931d2104ba8f7c0a1bad736a 100644 --- a/TileCalorimeter/TileTrackingGeometry/CMakeLists.txt +++ b/TileCalorimeter/TileTrackingGeometry/CMakeLists.txt @@ -15,8 +15,6 @@ atlas_depends_on_subdirs( PUBLIC Calorimeter/CaloDetDescr Control/CxxUtils Control/StoreGate - DetectorDescription/GeoModel/GeoModelKernel - DetectorDescription/GeoPrimitives TileCalorimeter/TileDetDescr Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv Tracking/TrkDetDescr/TrkDetDescrUtils @@ -27,13 +25,14 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( CLHEP ) find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_component( TileTrackingGeometry src/*.cxx src/components/*.cxx - INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} AthenaBaseComps GaudiKernel TrkDetDescrInterfaces CaloDetDescrLib CxxUtils StoreGateLib SGtests GeoModelKernel GeoPrimitives TileDetDescr TrkDetDescrGeoModelCnv TrkDetDescrUtils TrkGeometry TrkSurfaces TrkVolumes ) + INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${CLHEP_LIBRARIES} ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} AthenaBaseComps GaudiKernel TrkDetDescrInterfaces CaloDetDescrLib CxxUtils StoreGateLib SGtests GeoPrimitives TileDetDescr TrkDetDescrGeoModelCnv TrkDetDescrUtils TrkGeometry TrkSurfaces TrkVolumes ) # Install files from the package: atlas_install_headers( TileTrackingGeometry ) diff --git a/TileCalorimeter/TileTrackingGeometry/src/TileVolumeBuilder.cxx b/TileCalorimeter/TileTrackingGeometry/src/TileVolumeBuilder.cxx index 98da0e7d9268059efdbbf12a6e2b57b3e92a6a44..17da0de671113224c4b85ffbbdd67ab400def605 100755 --- a/TileCalorimeter/TileTrackingGeometry/src/TileVolumeBuilder.cxx +++ b/TileCalorimeter/TileTrackingGeometry/src/TileVolumeBuilder.cxx @@ -27,8 +27,7 @@ #include "GeoModelKernel/GeoPVConstLink.h" #include "GeoModelKernel/GeoVPhysVol.h" #include "GeoModelKernel/GeoVolumeCursor.h" -// Amg -#include "GeoPrimitives/CLHEPtoEigenConverter.h" +#include "GeoModelKernel/Units.h" // Trk #include "TrkDetDescrInterfaces/ITrackingVolumeHelper.h" #include "TrkDetDescrInterfaces/ITrackingVolumeCreator.h" @@ -49,18 +48,13 @@ #include "TrkSurfaces/CylinderBounds.h" #include "TrkSurfaces/DiscSurface.h" #include "TrkSurfaces/DiscBounds.h" -// CLHEP -#include "CLHEP/Units/SystemOfUnits.h" // Gaudi #include "GaudiKernel/MsgStream.h" // StoreGate #include "StoreGate/StoreGateSvc.h" #include "CxxUtils/make_unique.h" -using HepGeom::Transform3D; -using HepGeom::Translate3D; -using CLHEP::Hep3Vector; -using CLHEP::mm; +using GeoModelKernelUnits::mm; using CxxUtils::make_unique; // constructor @@ -268,13 +262,13 @@ const std::vector<const Trk::TrackingVolume*>* Tile::TileVolumeBuilder::tracking const GeoTubs* currentTubs = dynamic_cast<const GeoTubs*>(childShape); Trk::CylinderVolumeBounds* childCylVolBounds = currentTubs ? geoShapeToVolumeBounds.convert(currentTubs) : 0; // get the transform - Transform3D childTransform = currentVPhysVolLink->getXToChildVol(ichild); - double childZposition = childTransform.getTranslation().z(); + GeoTrf::Transform3D childTransform = currentVPhysVolLink->getXToChildVol(ichild); + double childZposition = childTransform.translation().z(); if (childCylVolBounds){ // screen output ATH_MSG_VERBOSE( " ---> CylinderVolumeBounds created as: " ); - ATH_MSG_VERBOSE( " ---> Position in z: " << childTransform.getTranslation().z() ); + ATH_MSG_VERBOSE( " ---> Position in z: " << childTransform.translation().z() ); ATH_MSG_VERBOSE( *childCylVolBounds ); // retrieve split radius from the TileBar2 exit surface @@ -823,7 +817,7 @@ void Tile::TileVolumeBuilder::printInfo(const PVConstLink pv) const std::cout << "New Tile Object:"<<lv->getName()<<", made of"<<lv->getMaterial()->getName()<<","<<lv->getShape()->type()<<std::endl; //m_geoShapeConverter->decodeShape(lv->getShape()); int igen=0; - Amg::Transform3D transf = Amg::CLHEPTransformToEigen(pv->getX()); + Amg::Transform3D transf = pv->getX(); printChildren(pv,igen,transf); } @@ -834,7 +828,7 @@ void Tile::TileVolumeBuilder::printChildren(const PVConstLink pv,int igen, Amg:: igen++; std::string cname; for (unsigned int ic=0; ic<nc; ic++) { - Amg::Transform3D transf = trIn*Amg::CLHEPTransformToEigen(pv->getXToChildVol(ic)); + Amg::Transform3D transf = trIn*pv->getXToChildVol(ic); // //std::cout << " dumping transform to subcomponent" << std::endl; diff --git a/Tracking/Acts/ActsGeometry/src/ActsDetectorElement.cxx b/Tracking/Acts/ActsGeometry/src/ActsDetectorElement.cxx index d2c3a95b26a9c6e337af12e13555fcd299503a90..56c85d53d68ae45a31820a274fcbe2bb084550ad 100644 --- a/Tracking/Acts/ActsGeometry/src/ActsDetectorElement.cxx +++ b/Tracking/Acts/ActsGeometry/src/ActsDetectorElement.cxx @@ -172,10 +172,10 @@ ActsDetectorElement::storeTransform(ActsAlignmentStore* gas) const Transform3D operator()(const InDetDD::SiDetectorElement* detElem) const { - HepGeom::Transform3D g2l + Amg::Transform3D g2l = detElem->getMaterialGeom()->getAbsoluteTransform(m_store); - return Amg::CLHEPTransformToEigen(g2l * detElem->recoToHitTransform()); + return g2l * Amg::CLHEPTransformToEigen(detElem->recoToHitTransform()); } Transform3D operator()(const InDetDD::TRT_BaseElement*) const @@ -206,10 +206,10 @@ ActsDetectorElement::getDefaultTransformMutexed() const Transform3D operator()(const InDetDD::SiDetectorElement* detElem) const { - HepGeom::Transform3D g2l + Amg::Transform3D g2l = detElem->getMaterialGeom()->getDefAbsoluteTransform(); - return Amg::CLHEPTransformToEigen(g2l * detElem->recoToHitTransform()); + return g2l * Amg::CLHEPTransformToEigen(detElem->recoToHitTransform()); } Transform3D operator()(const InDetDD::TRT_BaseElement*) const diff --git a/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/CMakeLists.txt b/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/CMakeLists.txt index 77e3a5d7d1b60ee80f8a623cc363611a9ed85cbd..ec8f8498dcc164e47a7c0aedf6c322dcfaeee8a5 100644 --- a/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/CMakeLists.txt +++ b/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/CMakeLists.txt @@ -10,20 +10,19 @@ atlas_depends_on_subdirs( PUBLIC DetectorDescription/GeoPrimitives Tracking/TrkDetDescr/TrkGeometry PRIVATE - DetectorDescription/GeoModel/GeoModelKernel Tracking/TrkDetDescr/TrkVolumes ) # External dependencies: find_package( CLHEP ) find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( TrkDetDescrGeoModelCnv src/*.cxx PUBLIC_HEADERS TrkDetDescrGeoModelCnv INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} - PRIVATE_INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} + PRIVATE_INCLUDE_DIRS ${GEOMODEL_INCLUDE_DIRS} LINK_LIBRARIES ${EIGEN_LIBRARIES} GeoPrimitives TrkGeometry - PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} GeoModelKernel TrkVolumes ) + PRIVATE_LINK_LIBRARIES ${GEOMODEL_LIBRARIES} TrkVolumes ) diff --git a/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/src/GeoMaterialConverter.cxx b/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/src/GeoMaterialConverter.cxx index ced74187ff390894a1b565e0f689af5ec047c036..3d46044d3d6a02b87ebde019a39b61ea43a8e2dc 100755 --- a/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/src/GeoMaterialConverter.cxx +++ b/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/src/GeoMaterialConverter.cxx @@ -11,10 +11,10 @@ // GeoModelKernel #include "GeoModelKernel/GeoMaterial.h" #include "GeoModelKernel/GeoElement.h" -// CLHEP -#include "CLHEP/Units/SystemOfUnits.h" +#include "GeoModelKernel/Units.h" -double Trk::GeoMaterialConverter::s_densityCnvFactor = 1./CLHEP::gram; + +double Trk::GeoMaterialConverter::s_densityCnvFactor = 1./GeoModelKernelUnits::gram; Trk::Material Trk::GeoMaterialConverter::convert(const GeoMaterial* gm) const { // get the obvious things @@ -30,7 +30,7 @@ Trk::Material Trk::GeoMaterialConverter::convert(const GeoMaterial* gm) const { for (int iEl=0; iEl<numberOfElements; iEl++){ const GeoElement* geoEl = gm->getElement(iEl); float fraction = gm->getFraction(iEl); - A += fraction*(geoEl->getA()/(CLHEP::gram)); + A += fraction*(geoEl->getA()/(GeoModelKernelUnits::gram)); Z += fraction*(geoEl->getZ()); } // return the result diff --git a/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/src/GeoShapeConverter.cxx b/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/src/GeoShapeConverter.cxx index 52de12f99ed95974d5c1d0d9b0bd648a724888ac..0533d79f2ecba4977cc7ce9fba521d5a5f10ab91 100755 --- a/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/src/GeoShapeConverter.cxx +++ b/Tracking/TrkDetDescr/TrkDetDescrGeoModelCnv/src/GeoShapeConverter.cxx @@ -35,8 +35,8 @@ #include "GeoModelKernel/GeoPgon.h" #include "GeoModelKernel/GeoPara.h" #include "GeoModelKernel/GeoVolumeCursor.h" - -#include "GeoPrimitives/CLHEPtoEigenConverter.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" // #define DEBUG #ifdef DEBUG @@ -50,7 +50,7 @@ namespace { //commonly used axes const Amg::Vector3D gXAxis(1.0, 0.0, 0.0), gYAxis(0.0, 1.0, 0.0), gZAxis(0.0, 0.0, 1.0); //commonly used angles, ±90°, 180° - const double p90deg(90.0 * CLHEP::deg), m90deg(-90.0 * CLHEP::deg), p180deg(180.0 * CLHEP::deg); + const double p90deg(90.0 * GeoModelKernelUnits::deg), m90deg(-90.0 * GeoModelKernelUnits::deg), p180deg(180.0 * GeoModelKernelUnits::deg); } @@ -522,7 +522,7 @@ Trk::Volume* Trk::GeoShapeConverter::translateGeoShape(const GeoShape* sh, Amg:: if (!shift) return 0; const GeoShape* shA = shift->getOp(); //check this! - const Amg::Transform3D tr = Amg::CLHEPTransformToEigen(shift->getX()); + const Amg::Transform3D tr = shift->getX(); Amg::Transform3D newtransf = *transf * tr; Trk::Volume* vol = translateGeoShape(shA, &newtransf); return vol; @@ -602,9 +602,9 @@ void Trk::GeoShapeConverter::decodeShape(const GeoShape* sh) const if ( sh->type()=="Shift") { const GeoShapeShift* shift = dynamic_cast<const GeoShapeShift*> (sh); const GeoShape* shA = shift->getOp(); - const HepGeom::Transform3D transf = shift->getX(); - std::cout << "shifted by:transl:" <<transf.getTranslation() <<", rot:" - << transf[0][0]<<"," << transf[1][1] <<"," << transf[2][2] << std::endl; + const GeoTrf::Transform3D transf = shift->getX(); + std::cout << "shifted by:transl:" <<transf.translation() <<", rot:" + << transf(0,0)<<"," << transf(1,1) <<"," << transf(2,2) << std::endl; decodeShape(shA); } } diff --git a/Tracking/TrkDetDescr/TrkDetElementBase/CMakeLists.txt b/Tracking/TrkDetDescr/TrkDetElementBase/CMakeLists.txt index ac31e33995fea0528b5eb3bdfa28e6611307b6f8..4e927fdc0a40b2abeadff0e03757d43fc56fa899 100644 --- a/Tracking/TrkDetDescr/TrkDetElementBase/CMakeLists.txt +++ b/Tracking/TrkDetDescr/TrkDetElementBase/CMakeLists.txt @@ -7,18 +7,18 @@ atlas_subdir( TrkDetElementBase ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoPrimitives DetectorDescription/Identifier Event/EventPrimitives ) # External dependencies: find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( TrkDetElementBase src/*.cxx PUBLIC_HEADERS TrkDetElementBase - INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${EIGEN_LIBRARIES} GeoModelKernel GeoPrimitives Identifier EventPrimitives ) + INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} ${GEOMODEL_INCLUDE_DIRS} + LINK_LIBRARIES ${EIGEN_LIBRARIES} ${GEOMODEL_LIBRARIES} GeoPrimitives Identifier EventPrimitives ) diff --git a/Tracking/TrkDetDescr/TrkDetElementBase/TrkDetElementBase/TrkDetElementBase.h b/Tracking/TrkDetDescr/TrkDetElementBase/TrkDetElementBase/TrkDetElementBase.h index f878dba67d819b59d8b16c54d4ae18bee281cca7..f9be125f01baf8a2ed7c30346feacd855a52cb36 100755 --- a/Tracking/TrkDetDescr/TrkDetElementBase/TrkDetElementBase/TrkDetElementBase.h +++ b/Tracking/TrkDetDescr/TrkDetElementBase/TrkDetElementBase/TrkDetElementBase.h @@ -9,13 +9,14 @@ #ifndef TRKDETELEMENTBASE_TRKDETELEMENTBASE_H #define TRKDETELEMENTBASE_TRKDETELEMENTBASE_H -#include "GeoModelKernel/GeoVDetectorElement.h" -#include "Identifier/Identifier.h" -#include "Identifier/IdentifierHash.h" // Math & Geometry library #include "GeoPrimitives/GeoPrimitives.h" #include "EventPrimitives/EventPrimitives.h" +#include "GeoModelKernel/GeoVDetectorElement.h" +#include "Identifier/Identifier.h" +#include "Identifier/IdentifierHash.h" + namespace Trk { diff --git a/Tracking/TrkEventCnv/TrkJiveXML/src/TrackRetriever.cxx b/Tracking/TrkEventCnv/TrkJiveXML/src/TrackRetriever.cxx index 11e2d09e7ee461e13101fdefed39fdb8e4f41253..81cb4272b04e3ab5312bc414a7220e3f59eb1441 100644 --- a/Tracking/TrkEventCnv/TrkJiveXML/src/TrackRetriever.cxx +++ b/Tracking/TrkEventCnv/TrkJiveXML/src/TrackRetriever.cxx @@ -35,6 +35,8 @@ // for detector id #include "AtlasDetDescr/AtlasDetectorID.h" +#include "GaudiKernel/SystemOfUnits.h" + namespace JiveXML { ///Namespace for all helper functions namespace TrackRetrieverHelpers { @@ -61,10 +63,10 @@ namespace JiveXML { //write out p_T if ((perigee->parameters())[Trk::qOverP]==0) pt.push_back(DataType(9999.)); - else pt.push_back( (perigee->charge() > 0) ? DataType(perigee->pT()/CLHEP::GeV) : DataType((-perigee->pT())/CLHEP::GeV)); + else pt.push_back( (perigee->charge() > 0) ? DataType(perigee->pT()/Gaudi::Units::GeV) : DataType((-perigee->pT())/Gaudi::Units::GeV)); - d0.push_back(DataType((perigee->parameters())[Trk::d0]/CLHEP::cm)); - z0.push_back(DataType(perigee->parameters()[Trk::z0]/CLHEP::cm)); + d0.push_back(DataType((perigee->parameters())[Trk::d0]/Gaudi::Units::cm)); + z0.push_back(DataType(perigee->parameters()[Trk::z0]/Gaudi::Units::cm)); phi0.push_back(DataType(perigee->parameters()[Trk::phi0])); if (perigee->parameters()[Trk::theta] == 0.) cotTheta.push_back(DataType(9999.)); diff --git a/Tracking/TrkExtrapolation/TrkExSTEP_Propagator/src/STEP_Propagator.cxx b/Tracking/TrkExtrapolation/TrkExSTEP_Propagator/src/STEP_Propagator.cxx index da02025c9585be243f078196666b6d8684029cc4..e8445ef286ceeb5ce04637b19a5abad5dcdf0598 100755 --- a/Tracking/TrkExtrapolation/TrkExSTEP_Propagator/src/STEP_Propagator.cxx +++ b/Tracking/TrkExtrapolation/TrkExSTEP_Propagator/src/STEP_Propagator.cxx @@ -31,6 +31,7 @@ // CLHEP #include "CLHEP/Random/RandFlat.h" #include "CLHEP/Random/RandGauss.h" +#include "CLHEP/Units/PhysicalConstants.h" //Gaudi #include "GaudiKernel/PhysicalConstants.h" #include "EventPrimitives/EventPrimitivesToStringConverter.h" diff --git a/Tracking/TrkFitter/TrkDistributedKalmanFilter/src/DistributedKalmanFilter.cxx b/Tracking/TrkFitter/TrkDistributedKalmanFilter/src/DistributedKalmanFilter.cxx index fc62ca93544298d0ac2be98aaeec2d8d1409c0f7..ca27bf8d4fa87e131dc7ea8923b788af10cb3720 100755 --- a/Tracking/TrkFitter/TrkDistributedKalmanFilter/src/DistributedKalmanFilter.cxx +++ b/Tracking/TrkFitter/TrkDistributedKalmanFilter/src/DistributedKalmanFilter.cxx @@ -13,6 +13,7 @@ /////////////////////////////////////////////////////////////////// #include "GaudiKernel/MsgStream.h" +#include "GaudiKernel/SystemOfUnits.h" #include "StoreGate/StoreGateSvc.h" #include "TrkTrack/Track.h" @@ -929,7 +930,7 @@ void Trk::DistributedKalmanFilter::getMagneticField(double gP[3], double* pB) co pB[0]=0.0;pB[1]=0.0;pB[2]=0.0; double field[3]; m_MagFieldSvc->getField(gP,field);//field is returned in kT - for(int i=0;i<3;i++) pB[i]=field[i]/CLHEP::kilogauss;//convert to kG + for(int i=0;i<3;i++) pB[i]=field[i]/Gaudi::Units::kilogauss;//convert to kG } // fit a set of PrepRawData objects diff --git a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx index 78036c33da28fbf44eaa77e7125ce27402658e68..58a83461be57977ddbbe697cf5b62f8507430cef 100644 --- a/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx +++ b/Tracking/TrkFitter/TrkGlobalChi2Fitter/src/GlobalChi2Fitter.cxx @@ -64,6 +64,10 @@ #include "MagFieldInterfaces/IMagFieldSvc.h" +#include "CLHEP/Matrix/Matrix.h" +#include "CLHEP/Matrix/SymMatrix.h" +#include "CLHEP/Matrix/Vector.h" +#include "CLHEP/Units/SystemOfUnits.h" #include "AtlasDetDescr/AtlasDetectorID.h" #include "IdDictDetDescr/IdDictManager.h" diff --git a/Tracking/TrkFitter/TrkKalmanFitter/src/ForwardKalmanFitter.cxx b/Tracking/TrkFitter/TrkKalmanFitter/src/ForwardKalmanFitter.cxx index 6b8a765c87100b67467160968a5890a4a305ec55..cc6ce5abe802ad0c810ba6e9a50763c1d358866c 100755 --- a/Tracking/TrkFitter/TrkKalmanFitter/src/ForwardKalmanFitter.cxx +++ b/Tracking/TrkFitter/TrkKalmanFitter/src/ForwardKalmanFitter.cxx @@ -42,6 +42,8 @@ #include "TrkParameters/TrackParameters.h" #include "TrkSurfaces/StraightLineSurface.h" +#include "CLHEP/Units/SystemOfUnits.h" + #include <ext/algorithm> //////////////////////////////////////////////////////////////////////////////// diff --git a/Tracking/TrkTools/TrkTrackFieldIntegralTools/src/FieldIntegralByTrackQueryTool.cxx b/Tracking/TrkTools/TrkTrackFieldIntegralTools/src/FieldIntegralByTrackQueryTool.cxx index 7ff653abec04be673ebe7d483becdb5136eb0359..b139b244d6a8ce792983f6360060078f64261915 100755 --- a/Tracking/TrkTools/TrkTrackFieldIntegralTools/src/FieldIntegralByTrackQueryTool.cxx +++ b/Tracking/TrkTools/TrkTrackFieldIntegralTools/src/FieldIntegralByTrackQueryTool.cxx @@ -16,7 +16,7 @@ #include "TrkMaterialOnTrack/MaterialEffectsOnTrack.h" #include "TrkMaterialOnTrack/ScatteringAngles.h" #include "TrkGeometry/TrackingVolume.h" - +#include "GaudiKernel/SystemOfUnits.h" // ================ Constructor ================================================= Trk::FieldIntegralByTrackQueryTool::FieldIntegralByTrackQueryTool(const std::string& t, @@ -159,7 +159,7 @@ double Trk::FieldIntegralByTrackQueryTool::fieldIntegral(const Trk::Track& track cosTheta); } } - Amg::Vector3D momentumKick = startMomentum.cross(endDirection)/(0.3*CLHEP::GeV); + Amg::Vector3D momentumKick = startMomentum.cross(endDirection)/(0.3*Gaudi::Units::GeV); integratedMomentumKick += momentumKick; // accumulate abs(Bdl) between measurements diff --git a/Tracking/TrkTruthTracks/TrkTruthTrackTools/src/TruthTrackBuilder.cxx b/Tracking/TrkTruthTracks/TrkTruthTrackTools/src/TruthTrackBuilder.cxx index b5bb7456fe7fbbb0acf1ddd61287317d52939fa1..9e9f2ecda87488335e36bf181bb06b248d742a2c 100644 --- a/Tracking/TrkTruthTracks/TrkTruthTrackTools/src/TruthTrackBuilder.cxx +++ b/Tracking/TrkTruthTracks/TrkTruthTrackTools/src/TruthTrackBuilder.cxx @@ -23,6 +23,7 @@ #include "TrkRIO_OnTrack/RIO_OnTrack.h" // Gaudi #include "GaudiKernel/IPartPropSvc.h" +#include "GaudiKernel/SystemOfUnits.h" // HepMC #include "HepMC/GenParticle.h" #include "HepMC/GenVertex.h" @@ -30,8 +31,6 @@ #include "AtlasDetDescr/AtlasDetectorID.h" -using namespace CLHEP; - /** Constructor **/ Trk::TruthTrackBuilder::TruthTrackBuilder(const std::string& t, const std::string& n, const IInterface* p) : AthAlgTool(t,n,p), @@ -209,7 +208,7 @@ Trk::Track* Trk::TruthTrackBuilder::createTrack(const PRD_TruthTrajectory& prdTr const Trk::TrackParameters *thispar = m_extrapolator->extrapolate(*prevpar,surf,Trk::alongMomentum,false,Trk::nonInteracting); if (!thispar) break; - if (!surf.insideBounds(thispar->localPosition(),20*mm,50*mm)) { + if (!surf.insideBounds(thispar->localPosition(),20*Gaudi::Units::mm,50*Gaudi::Units::mm)) { delete thispar; continue; } diff --git a/Tracking/TrkValidation/TrkValAlgs/src/TrackValidationNtupleWriter.cxx b/Tracking/TrkValidation/TrkValAlgs/src/TrackValidationNtupleWriter.cxx index 84dc79917a27764c178f91b5d0ea16a37d518681..23a4057f8a52e1548af9169a2cad11c720f0a2cd 100644 --- a/Tracking/TrkValidation/TrkValAlgs/src/TrackValidationNtupleWriter.cxx +++ b/Tracking/TrkValidation/TrkValAlgs/src/TrackValidationNtupleWriter.cxx @@ -38,6 +38,7 @@ #include "TrkValInterfaces/ITruthNtupleTool.h" #include "TrkValInterfaces/IEventPropertyNtupleTool.h" +#include "CLHEP/Vector/LorentzVector.h" using CLHEP::HepLorentzVector; Trk::TrackValidationNtupleWriter::TrackValidationNtupleWriter(const std::string& name, ISvcLocator* pSvcLocator): diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtFitter/src/VKalMagFld.cxx b/Tracking/TrkVertexFitter/TrkVKalVrtFitter/src/VKalMagFld.cxx index 2fbf5b0f9aeca4cc472da64eca202aa58d2975d2..2161baf258a38d434c179370e969f55f594e50f5 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtFitter/src/VKalMagFld.cxx +++ b/Tracking/TrkVertexFitter/TrkVKalVrtFitter/src/VKalMagFld.cxx @@ -28,6 +28,7 @@ // Header include #include "TrkVKalVrtFitter/TrkVKalVrtFitter.h" #include "TrkVKalVrtFitter/VKalVrtAtlas.h" +#include "CLHEP/Units/SystemOfUnits.h" //------------------------------------------------- #include<iostream> diff --git a/Tracking/TrkVertexFitter/TrkVertexFitterInterfaces/TrkVertexFitterInterfaces/ITrackToVertexIPEstimator.h b/Tracking/TrkVertexFitter/TrkVertexFitterInterfaces/TrkVertexFitterInterfaces/ITrackToVertexIPEstimator.h index 0fbcb9cde67837922ed6112ed525cb4e3c6d5847..e6838a8e32c5334430ea479401147ce724642f56 100644 --- a/Tracking/TrkVertexFitter/TrkVertexFitterInterfaces/TrkVertexFitterInterfaces/ITrackToVertexIPEstimator.h +++ b/Tracking/TrkVertexFitter/TrkVertexFitterInterfaces/TrkVertexFitterInterfaces/ITrackToVertexIPEstimator.h @@ -9,6 +9,7 @@ #include "TrkParameters/TrackParameters.h" #include "xAODTracking/TrackParticleFwd.h" #include "xAODTracking/VertexFwd.h" +#include "CLHEP/Vector/ThreeVector.h" /** * An abstract base class for algorithms estimating the transverse impact parameter d0 and diff --git a/Tracking/TrkVertexFitter/TrkVertexFitterUtils/TrkVertexFitterUtils/TrackToVertexIPEstimator.h b/Tracking/TrkVertexFitter/TrkVertexFitterUtils/TrkVertexFitterUtils/TrackToVertexIPEstimator.h index 4a2db55308d9d113a7ffdf2f83db75981a73369a..3dd1fda2cf0f2a3f46b474590673856f95355b5a 100644 --- a/Tracking/TrkVertexFitter/TrkVertexFitterUtils/TrkVertexFitterUtils/TrackToVertexIPEstimator.h +++ b/Tracking/TrkVertexFitter/TrkVertexFitterUtils/TrkVertexFitterUtils/TrackToVertexIPEstimator.h @@ -11,6 +11,7 @@ #include "xAODTracking/TrackParticleFwd.h" #include "xAODTracking/VertexFwd.h" +#include "CLHEP/Vector/ThreeVector.h" namespace Trk { diff --git a/Trigger/TrigAlgorithms/TrigT2HistoPrmVtx/src/TrigT2HistoPrmVtx.cxx b/Trigger/TrigAlgorithms/TrigT2HistoPrmVtx/src/TrigT2HistoPrmVtx.cxx index dfe3a608296e6101a92d8bbf40a3834eae23abb1..1c1d7d96c617f9ea902c85c04713a115ff76f2f2 100755 --- a/Trigger/TrigAlgorithms/TrigT2HistoPrmVtx/src/TrigT2HistoPrmVtx.cxx +++ b/Trigger/TrigAlgorithms/TrigT2HistoPrmVtx/src/TrigT2HistoPrmVtx.cxx @@ -24,6 +24,8 @@ #include "xAODTracking/TrackParticleContainer.h" #include "xAODBase/IParticle.h" +#include "GaudiKernel/SystemOfUnits.h" + //** ----------------------------------------------------------------------------------------------------------------- **// @@ -45,8 +47,8 @@ TrigT2HistoPrmVtx::TrigT2HistoPrmVtx(const std::string& name, ISvcLocator* pSvcL declareProperty ("EFTrkSel_BLayer", m_c->m_efTrkSelBLayer = 1); declareProperty ("EFTrkSel_PixHits", m_c->m_efTrkSelPixHits = 2); declareProperty ("EFTrkSel_SiHits", m_c->m_efTrkSelSiHits = 7); - declareProperty ("EFTrkSel_D0", m_c->m_efTrkSelD0 = 1*CLHEP::mm); - declareProperty ("EFTrkSel_Pt", m_c->m_efTrkSelPt = 1*CLHEP::GeV); + declareProperty ("EFTrkSel_D0", m_c->m_efTrkSelD0 = 1*Gaudi::Units::mm); + declareProperty ("EFTrkSel_Pt", m_c->m_efTrkSelPt = 1*Gaudi::Units::GeV); declareMonitoredVariable("PrmVtx", m_c->m_zPrmVtx[0] = -1); declareMonitoredVariable("PrmVtxSigmaAll", m_c->m_zPrmVtxSigmaAll[0] = -1); diff --git a/Trigger/TrigAlgorithms/TrigT2HistoPrmVtx/src/TrigT2HistoPrmVtxAllTE.cxx b/Trigger/TrigAlgorithms/TrigT2HistoPrmVtx/src/TrigT2HistoPrmVtxAllTE.cxx index ce575b96019e8d4edf5a1ced29f0cf6a4d6c08cb..1550ea5dd32528c46c62c2d9200bb02686c4ddc6 100755 --- a/Trigger/TrigAlgorithms/TrigT2HistoPrmVtx/src/TrigT2HistoPrmVtxAllTE.cxx +++ b/Trigger/TrigAlgorithms/TrigT2HistoPrmVtx/src/TrigT2HistoPrmVtxAllTE.cxx @@ -26,7 +26,7 @@ #include "xAODBase/IParticle.h" #include "BeamSpotConditionsData/BeamSpotData.h" - +#include "GaudiKernel/SystemOfUnits.h" //** ----------------------------------------------------------------------------------------------------------------- **// @@ -50,8 +50,8 @@ TrigT2HistoPrmVtxAllTE::TrigT2HistoPrmVtxAllTE(const std::string& name, ISvcLoca declareProperty ("EFTrkSel_BLayer", m_c->m_efTrkSelBLayer = 1); declareProperty ("EFTrkSel_PixHits", m_c->m_efTrkSelPixHits = 2); declareProperty ("EFTrkSel_SiHits", m_c->m_efTrkSelSiHits = 7); - declareProperty ("EFTrkSel_D0", m_c->m_efTrkSelD0 = 1*CLHEP::mm); - declareProperty ("EFTrkSel_Pt", m_c->m_efTrkSelPt = 1*CLHEP::GeV); + declareProperty ("EFTrkSel_D0", m_c->m_efTrkSelD0 = 1*Gaudi::Units::mm); + declareProperty ("EFTrkSel_Pt", m_c->m_efTrkSelPt = 1*Gaudi::Units::GeV); declareMonitoredVariable("PrmVtx", m_c->m_zPrmVtx[0] = -1); declareMonitoredVariable("PrmVtxSigmaAll", m_c->m_zPrmVtxSigmaAll[0] = -1); diff --git a/Trigger/TrigAlgorithms/TrigmuComb/TrigmuComb/muCombMT.h b/Trigger/TrigAlgorithms/TrigmuComb/TrigmuComb/muCombMT.h index 1cb386fbdf8c1dffc1cac424980fad8e374e122b..395cc97bfb84373eb55ecb83dc30f3023c7eb84b 100644 --- a/Trigger/TrigAlgorithms/TrigmuComb/TrigmuComb/muCombMT.h +++ b/Trigger/TrigAlgorithms/TrigmuComb/TrigmuComb/muCombMT.h @@ -42,6 +42,7 @@ //#include "TrigT1Interfaces/RecMuonRoI.h" #include "AthenaMonitoring/GenericMonitoringTool.h" +#include "CLHEP/Units/SystemOfUnits.h" /** Main LVL2 Algorithm. Sided by a xAOD::L2StandaloneMuon, match the muon spectrometer track with an ID track, and produces a xAOD::L2CombinedMuon. */ class muCombMT : public AthAlgorithm diff --git a/Trigger/TrigHypothesis/TrigBphysHypo/src/TrigL2TrkMassHypo.cxx b/Trigger/TrigHypothesis/TrigBphysHypo/src/TrigL2TrkMassHypo.cxx index 56aee1710fc14567a21bb0b1a0bd54025580e6da..0b904b37334b2a8ab59de539bc3f3bb708db3b77 100644 --- a/Trigger/TrigHypothesis/TrigBphysHypo/src/TrigL2TrkMassHypo.cxx +++ b/Trigger/TrigHypothesis/TrigBphysHypo/src/TrigL2TrkMassHypo.cxx @@ -35,7 +35,7 @@ // additions of xAOD objects #include "TrigBphysHelperUtilsTool.h" #include "xAODTrigBphys/TrigBphysContainer.h" - +#include "CLHEP/Units/SystemOfUnits.h" class ISvcLocator; diff --git a/Trigger/TrigHypothesis/TrigCaloHypo/src/TrigEFCaloHypoNoise.cxx b/Trigger/TrigHypothesis/TrigCaloHypo/src/TrigEFCaloHypoNoise.cxx index ac0836911b1fba2aaf4b3ed0006757e1f19e2ddb..f68f2fbb6de96fdcea011cbd0860fa90da0723fe 100755 --- a/Trigger/TrigHypothesis/TrigCaloHypo/src/TrigEFCaloHypoNoise.cxx +++ b/Trigger/TrigHypothesis/TrigCaloHypo/src/TrigEFCaloHypoNoise.cxx @@ -32,6 +32,8 @@ #include "hltinterface/IInfoRegister.h" #include "hltinterface/ContainerFactory.h" +#include "CLHEP/Units/SystemOfUnits.h" + class ISvcLocator; ///////////////////////////////////////////////////////////////////// diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigEFMtAllTE.cxx b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigEFMtAllTE.cxx index a6f260a707712c2bfcd4dcc06470a08025093cdf..4e680975f39167283de908749b53ddeaa54b1e69 100755 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigEFMtAllTE.cxx +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigEFMtAllTE.cxx @@ -17,6 +17,8 @@ #include "TrigMissingEtEvent/TrigMissingET.h" #include "xAODEgamma/ElectronContainer.h" #include "xAODTrigger/TrigPassBits.h" +#include "CLHEP/Units/SystemOfUnits.h" + using namespace std; struct DescendingEt:std::binary_function<const xAOD::Electron*, diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronFex.cxx b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronFex.cxx index fc43bb151458efa943fd64a2cca32b3ecf73eacd..bedcb8853bcf71c1f4fc7a33c0070a6f296942ea 100755 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronFex.cxx +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronFex.cxx @@ -24,6 +24,8 @@ #include "TrkCaloExtension/CaloExtensionHelpers.h" #include "TrigEgammaHypo/TrigL2ElectronFex.h" #include "xAODTrigCalo/TrigEMClusterContainer.h" +#include "CLHEP/Units/SystemOfUnits.h" + class ISvcLocator; template <class SRC> diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronFexMT.h b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronFexMT.h index 782dc0f7177c6247d8b12c76ac38e24f0d91a91f..4ccda710657776ecd0c119e1239e0fd5ca874fdf 100644 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronFexMT.h +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronFexMT.h @@ -46,6 +46,8 @@ #include "RecoToolInterfaces/IParticleCaloExtensionTool.h" #include "AthenaMonitoring/GenericMonitoringTool.h" +#include "CLHEP/Units/SystemOfUnits.h" + //namespace Trk //{ class IParticleCaloExtensionTool; } diff --git a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronHypo.cxx b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronHypo.cxx index 718cb79fa4547080873cad6f8472fcd7ea853bf1..06cfc09b95fa7723f7cab0080c21ed86f59a5c3e 100755 --- a/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronHypo.cxx +++ b/Trigger/TrigHypothesis/TrigEgammaHypo/src/TrigL2ElectronHypo.cxx @@ -23,6 +23,7 @@ #include "TrigEgammaHypo/TrigL2ElectronHypo.h" #include "xAODTrigger/TrigPassBits.h" +#include "CLHEP/Units/SystemOfUnits.h" class ISvcLocator; diff --git a/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigEFDPhiMetJetAllTE.cxx b/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigEFDPhiMetJetAllTE.cxx index ef0afeef58e6f7a00480948b5d73e390ec9d9c9d..6a6e20258142f40d093fb01555663382ab003faf 100755 --- a/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigEFDPhiMetJetAllTE.cxx +++ b/Trigger/TrigHypothesis/TrigHLTJetHypo/src/TrigEFDPhiMetJetAllTE.cxx @@ -19,6 +19,7 @@ #include "xAODTrigger/TrigPassBits.h" #include <math.h> +#include "GaudiKernel/SystemOfUnits.h" TrigEFDPhiMetJetAllTE::TrigEFDPhiMetJetAllTE(const std::string & name, ISvcLocator* pSvcLocator) : HLT::AllTEAlgo(name, pSvcLocator) @@ -27,7 +28,7 @@ TrigEFDPhiMetJetAllTE::TrigEFDPhiMetJetAllTE(const std::string & name, ISvcLocat { declareProperty("MinDPhiCut", m_MinDPhiCut = 0.3 ); declareProperty("MaxDPhiJets", m_MaxDPhiJets = 3 ); - declareProperty("MinJetEt", m_MinJetEt = 20*CLHEP::GeV ); + declareProperty("MinJetEt", m_MinJetEt = 20*Gaudi::Units::GeV ); declareProperty("MinJetEta", m_MinJetEta = 0 ); declareProperty("MaxJetEta", m_MaxJetEta = 3.2 ); diff --git a/Trigger/TrigHypothesis/TrigLongLivedParticlesHypo/src/TrigCaloRatioHypo.cxx b/Trigger/TrigHypothesis/TrigLongLivedParticlesHypo/src/TrigCaloRatioHypo.cxx index 8819bd6482cfffbd116425dd48afe1c53edda888..7dd83479ac83df23f61a11af0d2d93391e4d5ea8 100755 --- a/Trigger/TrigHypothesis/TrigLongLivedParticlesHypo/src/TrigCaloRatioHypo.cxx +++ b/Trigger/TrigHypothesis/TrigLongLivedParticlesHypo/src/TrigCaloRatioHypo.cxx @@ -23,7 +23,7 @@ #include "CxxUtils/fpcompare.h" - +#include "CLHEP/Units/SystemOfUnits.h" //** ----------------------------------------------------------------------------------------------------------------- **// diff --git a/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigMuonEFCombinerHypoTool.h b/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigMuonEFCombinerHypoTool.h index e45d82593377d1f668da9e36595bf8a898f9eb14..a4b260f4df51f06009045c5902a581f12a5f2ef4 100644 --- a/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigMuonEFCombinerHypoTool.h +++ b/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigMuonEFCombinerHypoTool.h @@ -11,6 +11,7 @@ #include "AthenaMonitoring/GenericMonitoringTool.h" #include "TrigSteeringEvent/TrigRoiDescriptor.h" #include "xAODMuon/MuonContainer.h" +#include "CLHEP/Units/SystemOfUnits.h" class StoreGateSvc; class TriggerElement; class TrigMuonEFCombinerHypoTool: public ::AthAlgTool { diff --git a/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigMuonEFMSonlyHypoTool.h b/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigMuonEFMSonlyHypoTool.h index 872d49ff88403490c662f11e1a5fa64bce5949a2..c7fa09cb3f6c4038b5694ce0b92a8b847cf976e8 100644 --- a/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigMuonEFMSonlyHypoTool.h +++ b/Trigger/TrigHypothesis/TrigMuonHypo/TrigMuonHypo/TrigMuonEFMSonlyHypoTool.h @@ -11,6 +11,7 @@ #include "AthenaMonitoring/GenericMonitoringTool.h" #include "TrigSteeringEvent/TrigRoiDescriptor.h" #include "xAODMuon/MuonContainer.h" +#include "CLHEP/Units/SystemOfUnits.h" class StoreGateSvc; class TriggerElement; class TrigMuonEFMSonlyHypoTool: public ::AthAlgTool { diff --git a/Trigger/TrigMonitoring/TrigJetMonitoring/src/HLTJetMonTool.cxx b/Trigger/TrigMonitoring/TrigJetMonitoring/src/HLTJetMonTool.cxx index 758bfd2fe9c8fed48a343d76493971c54896c612..0beea014e786c2a02b1064f4849df5d36467a12e 100755 --- a/Trigger/TrigMonitoring/TrigJetMonitoring/src/HLTJetMonTool.cxx +++ b/Trigger/TrigMonitoring/TrigJetMonitoring/src/HLTJetMonTool.cxx @@ -12,6 +12,8 @@ #include "TrigDecisionTool/TrigDecisionTool.h" #include "TrigSteeringEvent/TrigRoiDescriptorCollection.h" +#include "GaudiKernel/SystemOfUnits.h" + //#include "TrigCaloEvent/TrigT2JetContainer.h" //#include "JetEvent/JetCollection.h" @@ -1437,7 +1439,7 @@ StatusCode HLTJetMonTool::fillBasicHists() { xAOD::JetRoIContainer::const_iterator it_e_L1 = m_L1JetRoIC->end(); for ( ; it_L1 != it_e_L1; it_L1++) { L1Roi_num++; - double et = ( (*it_L1)->et4x4())/CLHEP::GeV; + double et = ( (*it_L1)->et4x4())/Gaudi::Units::GeV; if(et < 1.e-3) et = 0.; double eta = (*it_L1)->eta(); double ene = et * cosh(eta); @@ -1531,9 +1533,9 @@ StatusCode HLTJetMonTool::fillBasicHists() { // for basic hists, don't cut eta/pt //come back to this - LS//if(m_doselOFBasicHists) if(!selectJet(jet)) continue; - double e = (thisjet->e())/CLHEP::GeV; + double e = (thisjet->e())/Gaudi::Units::GeV; double et = 0., epsilon = 1.e-3; - if(thisjet->pt() > epsilon) et = (thisjet->pt())/CLHEP::GeV; + if(thisjet->pt() > epsilon) et = (thisjet->pt())/Gaudi::Units::GeV; if(et < epsilon) et = 0; double eta = thisjet->eta(); double phi = thisjet->phi(); @@ -1622,9 +1624,9 @@ StatusCode HLTJetMonTool::fillBasicHists() { // for basic hists, don't cut eta/pt //come back to this - LS//if(m_doselOFBasicHists) if(!selectJet(jet)) continue; - double e = (thisjet->e())/CLHEP::GeV; + double e = (thisjet->e())/Gaudi::Units::GeV; double et = 0., epsilon = 1.e-3; - if(thisjet->pt() > epsilon) et = (thisjet->pt())/CLHEP::GeV; + if(thisjet->pt() > epsilon) et = (thisjet->pt())/Gaudi::Units::GeV; if(et < epsilon) et = 0; ATH_MSG_DEBUG( lvl << " thisjet->pt() = " << et ); double eta = thisjet->eta(); @@ -1639,7 +1641,7 @@ StatusCode HLTJetMonTool::fillBasicHists() { ATH_MSG_DEBUG( lvl << " et = " << et << "\teta = " << eta << "\temfrac = " << emfrac <<"\thecfrac"); - v_thisjet.SetPtEtaPhiE(thisjet->pt()/CLHEP::GeV,eta,phi,e); + v_thisjet.SetPtEtaPhiE(thisjet->pt()/Gaudi::Units::GeV,eta,phi,e); m_v_OFjet.push_back(v_thisjet); m_n_index++; @@ -1721,10 +1723,10 @@ void HLTJetMonTool::fillBasicHLTforChain( const std::string& theChain, double th for (auto j : *jcont.cptr()) { - double e = (j->e())/CLHEP::GeV; + double e = (j->e())/Gaudi::Units::GeV; double et = 0., epsilon = 1.e-3; - if(j->pt() > epsilon) et = (j->pt())/CLHEP::GeV; + if(j->pt() > epsilon) et = (j->pt())/Gaudi::Units::GeV; ATH_MSG_DEBUG("jet et = "<<et); @@ -1741,7 +1743,7 @@ void HLTJetMonTool::fillBasicHLTforChain( const std::string& theChain, double th hecfrac = j->getAttribute<float>(xAOD::JetAttribute::HECFrac); } - v_thisjet.SetPtEtaPhiE(j->pt()/CLHEP::GeV,j->eta(), j->phi(),j->e()/CLHEP::GeV); + v_thisjet.SetPtEtaPhiE(j->pt()/Gaudi::Units::GeV,j->eta(), j->phi(),j->e()/Gaudi::Units::GeV); m_v_HLTjet.push_back(v_thisjet); m_n_index++; @@ -1824,7 +1826,7 @@ void HLTJetMonTool::fillBasicL1forChain(const std::string& theChain, double thrE for (; it_L1 != it_e_L1; ++it_L1) { - double et = ((*it_L1)->et4x4())/CLHEP::GeV; + double et = ((*it_L1)->et4x4())/Gaudi::Units::GeV; if(et < 1.e-3) et = 0; double eta = (*it_L1)->eta(); double phi = (*it_L1)->phi(); @@ -1834,8 +1836,8 @@ void HLTJetMonTool::fillBasicL1forChain(const std::string& theChain, double thrE if(msgLvl(MSG::DEBUG)) { const Jet_ROI::thresholds_type thrVec = (*it_L1)->thrNames(); const Jet_ROI::thr_value_type thrVal = (*it_L1)->thrValues(); - double et6 = ((*it_L1)->et6x6())/CLHEP::GeV; - double et8 = ((*it_L1)->et8x8())/CLHEP::GeV; + double et6 = ((*it_L1)->et6x6())/Gaudi::Units::GeV; + double et8 = ((*it_L1)->et8x8())/Gaudi::Units::GeV; std::ostringstream thrv; unsigned int kk = 0; for(Jet_ROI::thresholds_type::const_iterator l1i = thrVec.begin(); l1i != thrVec.end(); ++l1i,kk++ ) { @@ -2300,7 +2302,7 @@ bool HLTJetMonTool::selectJet(const Jet *jet) { // pt / eta // don't cut on eta here since we have FJ signatures to contend with: // if(m_reqEtaCut) if (fabs(jet->eta()) >= m_EtaCut ) return false; - if(m_reqMinPtCut) if (jet->pt()/CLHEP::GeV <= m_MinPtCut ) return false; + if(m_reqMinPtCut) if (jet->pt()/Gaudi::Units::GeV <= m_MinPtCut ) return false; /* jet quality @@ -2456,7 +2458,7 @@ StatusCode HLTJetMonTool::fillOfflineHists() { //passL1thr = (jet->pt()/CLHEP::GeV > thrGeVItem); - ATH_MSG_DEBUG(" L1 Chain= "<<itemName<<" OF Jet pt= "<<jet->pt()/CLHEP::GeV<<" OF Jet eta= "<<jet->eta()<<" Threshold= "<<thrGeVItem<<" TDT= "<<getTDT()->isPassed(itemName)<<" Eta Low "<<EtaLowThres<<" Eta High "<<EtaHighThres); + ATH_MSG_DEBUG(" L1 Chain= "<<itemName<<" OF Jet pt= "<<jet->pt()/Gaudi::Units::GeV<<" OF Jet eta= "<<jet->eta()<<" Threshold= "<<thrGeVItem<<" TDT= "<<getTDT()->isPassed(itemName)<<" Eta Low "<<EtaLowThres<<" Eta High "<<EtaHighThres); // if L1 eff required if(m_doL1TrigEff) { @@ -2464,11 +2466,11 @@ StatusCode HLTJetMonTool::fillOfflineHists() { ATH_MSG_DEBUG(" OF Jet passed requirements->Filling the denominator"); - if((h = hist(Form("%s_Eff_vs_pt_den",itemName.c_str())))) h->Fill(jet->pt()/CLHEP::GeV); + if((h = hist(Form("%s_Eff_vs_pt_den",itemName.c_str())))) h->Fill(jet->pt()/Gaudi::Units::GeV); if((h = hist(Form("%s_Eff_vs_eta_den",itemName.c_str())))) h->Fill(jet->eta()); if((h = hist(Form("%s_Eff_vs_phi_den",itemName.c_str())))) h->Fill(jet->phi()); - if((h2 = hist2(Form("%s_Eff_vs_pt_vs_eta_den",itemName.c_str())))) h2->Fill(jet->pt()/CLHEP::GeV,jet->eta()); - if((h2 = hist2(Form("%s_Eff_vs_pt_vs_phi_den",itemName.c_str())))) h2->Fill(jet->pt()/CLHEP::GeV,jet->phi()); + if((h2 = hist2(Form("%s_Eff_vs_pt_vs_eta_den",itemName.c_str())))) h2->Fill(jet->pt()/Gaudi::Units::GeV,jet->eta()); + if((h2 = hist2(Form("%s_Eff_vs_pt_vs_phi_den",itemName.c_str())))) h2->Fill(jet->pt()/Gaudi::Units::GeV,jet->phi()); } } //if trigeff @@ -2496,14 +2498,14 @@ StatusCode HLTJetMonTool::fillOfflineHists() { ATH_MSG_DEBUG(" OF Jet passed requirements->Filling the numerator"); - if((h = hist(Form("%s_Eff_vs_pt_num",itemName.c_str())))) h->Fill(jet->pt()/CLHEP::GeV); //fill numerator histogram + if((h = hist(Form("%s_Eff_vs_pt_num",itemName.c_str())))) h->Fill(jet->pt()/Gaudi::Units::GeV); //fill numerator histogram if((h = hist(Form("%s_Eff_vs_eta_num",itemName.c_str())))) h->Fill(jet->eta()); if((h = hist(Form("%s_Eff_vs_phi_num",itemName.c_str())))) h->Fill(jet->phi()); - if((h2 = hist2(Form("%s_Eff_vs_pt_vs_eta_num",itemName.c_str())))) h2->Fill(jet->pt()/CLHEP::GeV,jet->eta()); - if((h2 = hist2(Form("%s_Eff_vs_pt_vs_phi_num",itemName.c_str())))) h2->Fill(jet->pt()/CLHEP::GeV,jet->phi()); - if((h2 = hist2(Form("%s_pt_vs_OF_pt",itemName.c_str())))) h2->Fill(jet->pt()/CLHEP::GeV,v_trigjet_tmp.Pt()/CLHEP::GeV); + if((h2 = hist2(Form("%s_Eff_vs_pt_vs_eta_num",itemName.c_str())))) h2->Fill(jet->pt()/Gaudi::Units::GeV,jet->eta()); + if((h2 = hist2(Form("%s_Eff_vs_pt_vs_phi_num",itemName.c_str())))) h2->Fill(jet->pt()/Gaudi::Units::GeV,jet->phi()); + if((h2 = hist2(Form("%s_pt_vs_OF_pt",itemName.c_str())))) h2->Fill(jet->pt()/Gaudi::Units::GeV,v_trigjet_tmp.Pt()/Gaudi::Units::GeV); - if((p = profile(Form("%s_EffPt",itemName.c_str())))) p->Fill(jet->pt()/CLHEP::GeV,1.0,1.0); //fill profile with 1 + if((p = profile(Form("%s_EffPt",itemName.c_str())))) p->Fill(jet->pt()/Gaudi::Units::GeV,1.0,1.0); //fill profile with 1 if((p = profile(Form("%s_EffEta",itemName.c_str())))) p->Fill(jet->eta(),1.0,1.0); if((p = profile(Form("%s_EffPhi",itemName.c_str())))) p->Fill(jet->phi(),1.0,1.0); @@ -2512,7 +2514,7 @@ StatusCode HLTJetMonTool::fillOfflineHists() { } if (!getTDT()->isPassed(itemName)){ - if((p = profile(Form("%s_EffPt",itemName.c_str())))) p->Fill(jet->pt()/CLHEP::GeV,0.0,1.0); //fill profile with 0 + if((p = profile(Form("%s_EffPt",itemName.c_str())))) p->Fill(jet->pt()/Gaudi::Units::GeV,0.0,1.0); //fill profile with 0 if((p = profile(Form("%s_EffEta",itemName.c_str())))) p->Fill(jet->eta(),0.0,1.0); if((p = profile(Form("%s_EffPhi",itemName.c_str())))) p->Fill(jet->phi(),0.0,1.0); @@ -2538,7 +2540,7 @@ StatusCode HLTJetMonTool::fillOfflineHists() { if(m_doL1TrigEff) { if(getTDT()->isPassed(itemName) /*&& passHLTthr*/) { - if((h = hist(Form("%s_unmatched_pt",itemName.c_str())))) h->Fill(v_trigjet_tmp.Pt()/CLHEP::GeV); + if((h = hist(Form("%s_unmatched_pt",itemName.c_str())))) h->Fill(v_trigjet_tmp.Pt()/Gaudi::Units::GeV); }//TDT } // doTrigEff @@ -2566,11 +2568,11 @@ StatusCode HLTJetMonTool::fillOfflineHists() { if(m_doHLTTrigEff) { if (isLeadingJet(jet,jetcoll,EtaLowThres,EtaHighThres,NJet)){ //OF nth leading jet in the same eta region of HLTJet - if((h = hist(Form("%s_Eff_vs_pt_den",chainName.c_str())))) h->Fill(jet->pt()/CLHEP::GeV); + if((h = hist(Form("%s_Eff_vs_pt_den",chainName.c_str())))) h->Fill(jet->pt()/Gaudi::Units::GeV); if((h = hist(Form("%s_Eff_vs_eta_den",chainName.c_str())))) h->Fill(jet->eta()); if((h = hist(Form("%s_Eff_vs_phi_den",chainName.c_str())))) h->Fill(jet->phi()); - if((h2 = hist2(Form("%s_Eff_vs_pt_vs_eta_den",chainName.c_str())))) h2->Fill(jet->pt()/CLHEP::GeV,jet->eta()); - if((h2 = hist2(Form("%s_Eff_vs_pt_vs_phi_den",chainName.c_str())))) h2->Fill(jet->pt()/CLHEP::GeV,jet->phi()); + if((h2 = hist2(Form("%s_Eff_vs_pt_vs_eta_den",chainName.c_str())))) h2->Fill(jet->pt()/Gaudi::Units::GeV,jet->eta()); + if((h2 = hist2(Form("%s_Eff_vs_pt_vs_phi_den",chainName.c_str())))) h2->Fill(jet->pt()/Gaudi::Units::GeV,jet->phi()); } //isLeading }//doTrigEff @@ -2595,14 +2597,14 @@ StatusCode HLTJetMonTool::fillOfflineHists() { if (isLeadingJet(jet,jetcoll,EtaLowThres,EtaHighThres,NJet)){ //OF leading jet in the same eta region of HLTJet if(getTDT()->isPassed(Form("HLT_%s",chainName.c_str()))) { - if((h = hist(Form("%s_Eff_vs_pt_num",chainName.c_str())))) h->Fill(jet->pt()/CLHEP::GeV); + if((h = hist(Form("%s_Eff_vs_pt_num",chainName.c_str())))) h->Fill(jet->pt()/Gaudi::Units::GeV); if((h = hist(Form("%s_Eff_vs_eta_num",chainName.c_str())))) h->Fill(jet->eta()); if((h = hist(Form("%s_Eff_vs_phi_num",chainName.c_str())))) h->Fill(jet->phi()); - if((h2 = hist2(Form("%s_Eff_vs_pt_vs_eta_num",chainName.c_str())))) h2->Fill(jet->pt()/CLHEP::GeV,jet->eta()); - if((h2 = hist2(Form("%s_Eff_vs_pt_vs_phi_num",chainName.c_str())))) h2->Fill(jet->pt()/CLHEP::GeV,jet->phi()); - if((h2 = hist2(Form("%s_pt_vs_OF_pt",chainName.c_str())))) h2->Fill(jet->pt()/CLHEP::GeV,v_trigjet_tmp.Pt()/CLHEP::GeV); + if((h2 = hist2(Form("%s_Eff_vs_pt_vs_eta_num",chainName.c_str())))) h2->Fill(jet->pt()/Gaudi::Units::GeV,jet->eta()); + if((h2 = hist2(Form("%s_Eff_vs_pt_vs_phi_num",chainName.c_str())))) h2->Fill(jet->pt()/Gaudi::Units::GeV,jet->phi()); + if((h2 = hist2(Form("%s_pt_vs_OF_pt",chainName.c_str())))) h2->Fill(jet->pt()/Gaudi::Units::GeV,v_trigjet_tmp.Pt()/Gaudi::Units::GeV); - if((p = profile(Form("%s_EffPt",chainName.c_str())))) p->Fill(jet->pt()/CLHEP::GeV,1.0,1.0); //fill profile with 1 + if((p = profile(Form("%s_EffPt",chainName.c_str())))) p->Fill(jet->pt()/Gaudi::Units::GeV,1.0,1.0); //fill profile with 1 if((p = profile(Form("%s_EffEta",chainName.c_str())))) p->Fill(jet->eta(),1.0,1.0); if((p = profile(Form("%s_EffPhi",chainName.c_str())))) p->Fill(jet->phi(),1.0,1.0); @@ -2610,7 +2612,7 @@ StatusCode HLTJetMonTool::fillOfflineHists() { if((h = hist(Form("%s_Resolution_pt",chainName.c_str())))) h->Fill(res); } if (! getTDT()->isPassed(Form("HLT_%s",chainName.c_str()))){ - if((p = profile(Form("%s_EffPt",chainName.c_str())))) p->Fill(jet->pt()/CLHEP::GeV,0.0,1.0); //fill profile with 0 + if((p = profile(Form("%s_EffPt",chainName.c_str())))) p->Fill(jet->pt()/Gaudi::Units::GeV,0.0,1.0); //fill profile with 0 if((p = profile(Form("%s_EffEta",chainName.c_str())))) p->Fill(jet->eta(),0.0,1.0); if((p = profile(Form("%s_EffPhi",chainName.c_str())))) p->Fill(jet->phi(),0.0,1.0); } @@ -2635,7 +2637,7 @@ StatusCode HLTJetMonTool::fillOfflineHists() { if(m_doHLTTrigEff) { if(getTDT()->isPassed(Form("HLT_%s",chainName.c_str())) /*&& passHLTthr*/) { - if((h = hist(Form("%s_unmatched_pt",chainName.c_str())))) h->Fill(v_trigjet_tmp.Pt()/CLHEP::GeV); + if((h = hist(Form("%s_unmatched_pt",chainName.c_str())))) h->Fill(v_trigjet_tmp.Pt()/Gaudi::Units::GeV); }//TDT } // doTrigEff @@ -2837,7 +2839,7 @@ TLorentzVector HLTJetMonTool::DeltaRMatching(const xAOD::Jet *jet, const std::st for (auto j : *jcont.cptr()) { double et = 0., epsilon = 1.e-3; - if(j->pt() > epsilon) et = (j->pt())/CLHEP::GeV; + if(j->pt() > epsilon) et = (j->pt())/Gaudi::Units::GeV; if(et < epsilon) et = 0; TLorentzVector v_HLT; diff --git a/graphics/GeometryJiveXML/CMakeLists.txt b/graphics/GeometryJiveXML/CMakeLists.txt index 50cfbb141f65511bf993f18a53bb5178bc2b0dd5..8e57bf2cbdd83ab28dc9e4ee69a5bafb2d371538 100644 --- a/graphics/GeometryJiveXML/CMakeLists.txt +++ b/graphics/GeometryJiveXML/CMakeLists.txt @@ -12,7 +12,6 @@ atlas_depends_on_subdirs( PUBLIC PRIVATE Calorimeter/CaloDetDescr Control/StoreGate - DetectorDescription/GeoModel/GeoModelKernel GaudiKernel InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry @@ -29,7 +28,7 @@ atlas_add_component( GeometryJiveXML src/*.cxx src/components/*.cxx INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaBaseComps JiveXMLLib CaloDetDescrLib StoreGateLib SGtests GeoModelKernel GaudiKernel InDetIdentifier InDetReadoutGeometry LArReadoutGeometry MuonReadoutGeometry MuonIdHelpersLib TileDetDescr ) + LINK_LIBRARIES ${CLHEP_LIBRARIES} AthenaBaseComps JiveXMLLib CaloDetDescrLib StoreGateLib SGtests GaudiKernel InDetIdentifier InDetReadoutGeometry LArReadoutGeometry MuonReadoutGeometry MuonIdHelpersLib TileDetDescr ) # Install files from the package: atlas_install_headers( GeometryJiveXML ) diff --git a/graphics/GeometryJiveXML/src/GeometryWriter.cxx b/graphics/GeometryJiveXML/src/GeometryWriter.cxx index 4efbc3990f431ed934db5f83f4716ec1e3578898..f654f5951a2d4b164990cda7c382d55ea2fa74b5 100755 --- a/graphics/GeometryJiveXML/src/GeometryWriter.cxx +++ b/graphics/GeometryJiveXML/src/GeometryWriter.cxx @@ -16,9 +16,9 @@ #include "TileDetDescr/TileDetDescrManager.h" #include "LArReadoutGeometry/LArDetectorManager.h" -#include "GeoModelKernel/GeoPVConstLink.h" -#include "GeoModelKernel/GeoTube.h" -#include "GeoModelKernel/GeoTrd.h" +// #include "GeoModelKernel/GeoPVConstLink.h" +// #include "GeoModelKernel/GeoTube.h" +// #include "GeoModelKernel/GeoTrd.h" #include "InDetReadoutGeometry/SiDetectorManager.h" #include "InDetReadoutGeometry/SiDetectorElement.h" diff --git a/graphics/VP1/VP1Systems/VP12DGeometrySystems/CMakeLists.txt b/graphics/VP1/VP1Systems/VP12DGeometrySystems/CMakeLists.txt index 2dbf43805736dfb40915e0c5ee0811480ed9845d..d8d05a5d0d5a48de297e51fa96f3e7e1fc32c93c 100644 --- a/graphics/VP1/VP1Systems/VP12DGeometrySystems/CMakeLists.txt +++ b/graphics/VP1/VP1Systems/VP12DGeometrySystems/CMakeLists.txt @@ -12,7 +12,6 @@ atlas_depends_on_subdirs( PUBLIC graphics/VP1/VP1Base PRIVATE Calorimeter/CaloDetDescr - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/IdDictDetDescr InnerDetector/InDetDetDescr/InDetIdentifier InnerDetector/InDetDetDescr/InDetReadoutGeometry @@ -23,6 +22,7 @@ atlas_depends_on_subdirs( PUBLIC # External dependencies: find_package( Eigen ) +find_package( GeoModel ) # Component(s) in the package: atlas_add_library( VP12DGeometrySystems @@ -30,5 +30,5 @@ atlas_add_library( VP12DGeometrySystems PUBLIC_HEADERS VP12DGeometrySystems INCLUDE_DIRS ${EIGEN_INCLUDE_DIRS} LINK_LIBRARIES ${EIGEN_LIBRARIES} GeoPrimitives VP1Base StoreGateLib SGtests CaloDetDescrLib MuonIdHelpersLib - PRIVATE_LINK_LIBRARIES GeoModelKernel IdDictDetDescr InDetIdentifier InDetReadoutGeometry LArReadoutGeometry MuonReadoutGeometry TileDetDescr ) + PRIVATE_LINK_LIBRARIES ${GEOMODEL_LIBRARIES} IdDictDetDescr InDetIdentifier InDetReadoutGeometry LArReadoutGeometry MuonReadoutGeometry TileDetDescr ) diff --git a/graphics/VP1/VP1Systems/VP12DGeometrySystems/VP12DGeometrySystems/StoreGateGeometryReader.h b/graphics/VP1/VP1Systems/VP12DGeometrySystems/VP12DGeometrySystems/StoreGateGeometryReader.h index cfdabd351fd3e94675f1a71853707a1e23e549d1..0d89032b5e011bee09c988ce7475d81bbaaa6540 100644 --- a/graphics/VP1/VP1Systems/VP12DGeometrySystems/VP12DGeometrySystems/StoreGateGeometryReader.h +++ b/graphics/VP1/VP1Systems/VP12DGeometrySystems/VP12DGeometrySystems/StoreGateGeometryReader.h @@ -169,8 +169,6 @@ class StoreGateGeometryReader bool readMuonGeometry(); private: - Detector *newDetector; - /** Pixel detector manager. */ const InDetDD::SiDetectorManager* m_pixel_manager; diff --git a/graphics/VP1/VP1Systems/VP12DGeometrySystems/VP12DGeometrySystems/VP12DGeometrySystem.h b/graphics/VP1/VP1Systems/VP12DGeometrySystems/VP12DGeometrySystems/VP12DGeometrySystem.h index fb6d05a6fface18847f497426af94094c52dd5f7..5dcd1d04682c62a6db7e4c8ade253720ce17bec4 100755 --- a/graphics/VP1/VP1Systems/VP12DGeometrySystems/VP12DGeometrySystems/VP12DGeometrySystem.h +++ b/graphics/VP1/VP1Systems/VP12DGeometrySystems/VP12DGeometrySystems/VP12DGeometrySystem.h @@ -33,7 +33,7 @@ public: VP12DGeometrySystem & operator= ( const VP12DGeometrySystem & ); class Imp; - Imp *d; + Imp *m_d; }; diff --git a/graphics/VP1/VP1Systems/VP12DGeometrySystems/src/StoreGateGeometryReader.cxx b/graphics/VP1/VP1Systems/VP12DGeometrySystems/src/StoreGateGeometryReader.cxx index de5b3c8ea3c4ab8915ab26ac4c015ee4ed6552c1..f0bdaa16d8923959c2ac39a3a270afc33b169265 100644 --- a/graphics/VP1/VP1Systems/VP12DGeometrySystems/src/StoreGateGeometryReader.cxx +++ b/graphics/VP1/VP1Systems/VP12DGeometrySystems/src/StoreGateGeometryReader.cxx @@ -10,6 +10,7 @@ #include "TileDetDescr/TileDetDescrManager.h" #include "LArReadoutGeometry/LArDetectorManager.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoModelKernel/GeoPVConstLink.h" #include "GeoModelKernel/GeoTrd.h" @@ -32,8 +33,7 @@ StoreGateGeometryReader::StoreGateGeometryReader() - : newDetector(nullptr), - m_pixel_manager(nullptr), + : m_pixel_manager(nullptr), m_silicon_manager(nullptr), m_trt_manager(nullptr), m_calo_manager(nullptr), @@ -138,12 +138,11 @@ bool StoreGateGeometryReader::readGeometry() bool StoreGateGeometryReader::readPixelGeometry() { const PixelID* pixelIdHelper = 0; - if(m_detStore->retrieve(pixelIdHelper,"PixelID").isFailure() || !pixelIdHelper) - return false; + if(m_detStore->retrieve(pixelIdHelper,"PixelID").isFailure() || !pixelIdHelper) return false; - InDetDD::SiDetectorElementCollection::const_iterator it; + InDetDD::SiDetectorElementCollection::const_iterator it; - for (it=m_pixel_manager->getDetectorElementBegin(); it<m_pixel_manager->getDetectorElementEnd(); it++) + for (it=m_pixel_manager->getDetectorElementBegin(); it<m_pixel_manager->getDetectorElementEnd(); it++) { const InDetDD::SiDetectorElement *element = *it; @@ -168,7 +167,7 @@ bool StoreGateGeometryReader::readPixelGeometry() } zMax += 5; - newDetector = new Detector; + Detector* newDetector = new Detector; newDetector->type = Detector::ABarrelSiliconDetector; newDetector->name = "Pixel"; @@ -224,7 +223,7 @@ bool StoreGateGeometryReader::readPixelGeometry() zMin -= 5; zMax += 5; - newDetector = new Detector; + Detector* newDetector = new Detector; newDetector->type = Detector::AEndcapSiliconDetector; newDetector->name = "Pixel"; @@ -308,7 +307,7 @@ bool StoreGateGeometryReader::readSCTGeometry() } zMax += 5; - newDetector = new Detector; + Detector* newDetector = new Detector; newDetector->type = Detector::ABarrelSiliconDetector; newDetector->name = "Silicon"; @@ -375,7 +374,7 @@ bool StoreGateGeometryReader::readSCTGeometry() zMin -= 5; zMax += 5; - newDetector = new Detector; + Detector* newDetector = new Detector; newDetector->type = Detector::AEndcapSiliconDetector; newDetector->name = "Silicon"; @@ -459,7 +458,7 @@ bool StoreGateGeometryReader::readTRTGeometry() double dphiIn = 2.*M_PI / (nphi * trtIdHelper->straw_max(elementIn->identify())); double dphiOut = 2.*M_PI / (nphi * trtIdHelper->straw_max(elementOut->identify())); - newDetector = new Detector; + Detector* newDetector = new Detector; newDetector->type = Detector::ABarrelTRTDetector; newDetector->name = "TRT"; @@ -502,7 +501,7 @@ bool StoreGateGeometryReader::readTRTGeometry() // floor() instead of round() becuase we are neglecting the space between two modules int nphi = (int) floor(2.*M_PI / fabs(posOut.phi() - posIn.phi())); - newDetector = new Detector; + Detector* newDetector = new Detector; newDetector->type = Detector::AEndcapTRTDetector; newDetector->name = "TRT"; @@ -541,7 +540,7 @@ bool StoreGateGeometryReader::readSolenoidGeometry() double rIn = 122.9; double rOut = 127.4; - newDetector = new Detector; + Detector* newDetector = new Detector; newDetector->type = Detector::ADisc; newDetector->name = "Solenoid"; @@ -607,7 +606,7 @@ bool StoreGateGeometryReader::readTILEGeometry() if (!name.compare(0, 3, "ITC")) { - newDetector = new Detector; + Detector* newDetector = new Detector; newDetector->type = Detector::AGapCalorimeter; newDetector->name = name; @@ -644,7 +643,7 @@ bool StoreGateGeometryReader::readTILEGeometry() int tower = tileIdHelper->tower(descriptor->identify()); Identifier id = tileIdHelper->cell_id(section, side, module, tower, i); - newDetector = new Detector; + Detector* newDetector = new Detector; newDetector->type = Detector::ABarrelCalorimeter; newDetector->name = name; @@ -694,11 +693,8 @@ bool StoreGateGeometryReader::readMBTSGeometry() { int sampling=0,numPhi=0; std::string stringOfNames=""; - HepGeom::Scale3D scale; - HepGeom::Rotate3D rotate; - HepGeom::Translate3D translate; - (child->getX()).getDecomposition(scale, rotate, translate); - double zlocation = translate.dz(); + GeoTrf::Vector3D translate = (child->getX()).translation(); + double zlocation = translate.z(); if(zlocation<0) zlocation=-zlocation; for (unsigned int cc=0; cc< child->getNChildVols();cc++) @@ -715,17 +711,16 @@ bool StoreGateGeometryReader::readMBTSGeometry() if(stringOfNames.find(currentName,0) == std::string::npos) { stringOfNames+=" " + currentName; - HepGeom::Translate3D translateToChild; - (child->getXToChildVol(cc)).getDecomposition(scale, rotate, translateToChild); + GeoTrf::Vector3D translateToChild = (child->getXToChildVol(cc)).translation(); const GeoTrd* theTrd = dynamic_cast<const GeoTrd*> ((childschild->getLogVol())->getShape()); - double rho=pow(translateToChild.dx(),2.0) + pow(translateToChild.dy(),2.0); + double rho=pow(translateToChild.x(),2.0) + pow(translateToChild.y(),2.0); rho=pow(rho,0.5); double RMin=rho-theTrd->getZHalfLength(); double RMax=rho+theTrd->getZHalfLength(); - double zmovement=translateToChild.dz(); + double zmovement=translateToChild.z(); double zthickness=theTrd->getXHalfLength1(); - newDetector = new Detector; + Detector* newDetector = new Detector; newDetector->type = Detector::AEndcapCryostat; newDetector->name = "Minimum Bias Trigger Scintillators"; @@ -764,6 +759,7 @@ bool StoreGateGeometryReader::readLArGeometry() QColor lArColor; const CaloCell_ID *idHelper = m_calo_manager->getCaloCell_ID(); CaloDetDescrManager::calo_element_const_iterator it; + Detector* newDetector{nullptr}; // This code is not very efficient in terms of speed. Since it will only be used // when the geometry has changed, the code is made to be easily readable instead. @@ -1062,7 +1058,8 @@ bool StoreGateGeometryReader::readMuonGeometry() // this is not MDT specific and any of the other IdHelpers would have worked as well. const MdtIdHelper *mdtIdHelper = m_muon_manager->mdtIdHelper(); int snMax = mdtIdHelper->nStationNames()-1; - + Detector* newDetector{nullptr}; + // Loop over all station types. for (int sn=0; sn<=snMax; sn++) { diff --git a/graphics/VP1/VP1Systems/VP12DGeometrySystems/src/VP12DGeometrySystem.cxx b/graphics/VP1/VP1Systems/VP12DGeometrySystems/src/VP12DGeometrySystem.cxx index 0d03a2fc0e3f09cb7a7146eb3a8c9cdf1d14bc63..c876ae01818555b669e440eab11ab5ea7206db7e 100755 --- a/graphics/VP1/VP1Systems/VP12DGeometrySystems/src/VP12DGeometrySystem.cxx +++ b/graphics/VP1/VP1Systems/VP12DGeometrySystems/src/VP12DGeometrySystem.cxx @@ -105,15 +105,15 @@ VP12DGeometrySystem::VP12DGeometrySystem() : IVP12DDetViewsSystem("2DGeo", "This is an illustration of an extremely basic 2D system.\n " "It is a placeholder for the future 2D geometry system.", - "Thomas.Kittelmann@cern.ch"), d(new Imp) + "Thomas.Kittelmann@cern.ch"), m_d(new Imp) { - d->theclass=this; + m_d->theclass=this; } VP12DGeometrySystem::~VP12DGeometrySystem() { - delete d; d = 0; + delete m_d; m_d = nullptr; } //Initializes system members, loads geometry @@ -122,10 +122,10 @@ void VP12DGeometrySystem::systemcreate(StoreGateSvc *detStore) if (detStore) { //set detector store pointer of geometry reader - d->mGeoReader.setDetStore(detStore); + m_d->mGeoReader.setDetStore(detStore); //read geometry and test for success - if (!d->mGeoReader.readGeometry()) + if (!m_d->mGeoReader.readGeometry()) { //here we had an error somewhere while reading geometry message("Error parsing DetStore geometry!"); @@ -142,7 +142,7 @@ void VP12DGeometrySystem::systemcreate(StoreGateSvc *detStore) //print number of detector elements found for sanity check std::stringstream outputdata; - outputdata << "2D Geometry System finds: " << d->mGeoReader.mDetectors.size() << " elements." << std::endl; + outputdata << "2D Geometry System finds: " << m_d->mGeoReader.mDetectors.size() << " elements." << std::endl; QString qstrout = outputdata.str().c_str(); message(qstrout); } @@ -154,10 +154,10 @@ void VP12DGeometrySystem::buildPermanentItemCollections(StoreGateSvc* /*detstore //todo: Add all four at once, but only make one visible, depending //on a UI radio selector - d->addYXProjectionToCollection(ic_xy); + m_d->addYXProjectionToCollection(ic_xy); message("Just wrote X-Y Projection"); - d->addRZProjectionToCollection(ic_rz); + m_d->addRZProjectionToCollection(ic_rz); message("Just wrote Rho-Z Projection"); // if (PROJECTION == "FR") @@ -1526,8 +1526,8 @@ void VP12DGeometrySystem::Imp::processMuonDetector(const Detector& theDetector, // Ui::VP12DGeometryControllerForm ui; // ui.setupUi(theWidget); -// d->xy_RadioBtn = ui.radio_xy; -// d->rz_RadioBtn = ui.radio_rz; +// m_d->xy_RadioBtn = ui.radio_xy; +// m_d->xrz_RadioBtn = ui.radio_rz; // return theWidget; // } diff --git a/graphics/VP1/VP1Systems/VP1AODSystems/src/IParticleCollHandle_CaloCluster.cxx b/graphics/VP1/VP1Systems/VP1AODSystems/src/IParticleCollHandle_CaloCluster.cxx index 09a13fab27202a70fb69986b4ae6fe7be4997f74..04375ddd61b8e8400376fef1b853d056f0ecf323 100644 --- a/graphics/VP1/VP1Systems/VP1AODSystems/src/IParticleCollHandle_CaloCluster.cxx +++ b/graphics/VP1/VP1Systems/VP1AODSystems/src/IParticleCollHandle_CaloCluster.cxx @@ -43,7 +43,7 @@ #include "PathResolver/PathResolver.h" - +#include "GaudiKernel/SystemOfUnits.h" //____________________________________________________________________ @@ -92,8 +92,8 @@ public: * DEFINITIONS */ //Fixme: Just some approximate values for now: -double IParticleCollHandle_CaloCluster::calo_start_r = 1.1*CLHEP::m + 0.05*CLHEP::m; -double IParticleCollHandle_CaloCluster::calo_start_z = 3.671*CLHEP::m + 0.05*CLHEP::m; +double IParticleCollHandle_CaloCluster::calo_start_r = 1.1*Gaudi::Units::m + 0.05*Gaudi::Units::m; +double IParticleCollHandle_CaloCluster::calo_start_z = 3.671*Gaudi::Units::m + 0.05*Gaudi::Units::m; double IParticleCollHandle_CaloCluster::calo_crack_eta = fabs(log(tan(0.5*atan(calo_start_r/calo_start_z)))); @@ -216,7 +216,7 @@ double IParticleCollHandle_CaloCluster::energyToLength(const double&energy) cons { VP1Msg::messageDebug("IParticleCollHandle_CaloCluster::energyToLength()"); - return std::max(1*CLHEP::mm, m_d->scale.second*(m_d->scale.first?log(1+fabs(energy)):energy)); + return std::max(1*Gaudi::Units::mm, m_d->scale.second*(m_d->scale.first?log(1+fabs(energy)):energy)); } //____________________________________________________________________ diff --git a/graphics/VP1/VP1Systems/VP1AODSystems/src/IParticleHandle_Muon.cxx b/graphics/VP1/VP1Systems/VP1AODSystems/src/IParticleHandle_Muon.cxx index a4ebaa97113cb4acfdbede773717fa3c0118d626..0669d0c5d7bbdd434a1ae6b317935843b6d524c1 100644 --- a/graphics/VP1/VP1Systems/VP1AODSystems/src/IParticleHandle_Muon.cxx +++ b/graphics/VP1/VP1Systems/VP1AODSystems/src/IParticleHandle_Muon.cxx @@ -30,6 +30,7 @@ #include <Inventor/nodes/SoTranslation.h> #include <Inventor/nodes/SoRotationXYZ.h> +#include "GaudiKernel/SystemOfUnits.h" //AOD //____________________________________________________________________ @@ -425,7 +426,7 @@ QString IParticleHandle_Muon::qualityString() const{ QString IParticleHandle_Muon::shortInfo() const { - QString l("|P|="+VP1Msg::str(momentum().mag()/CLHEP::GeV)+" [GeV], " +muonTypeString() + ", "+qualityString() ); + QString l("|P|="+VP1Msg::str(momentum().mag()/Gaudi::Units::GeV)+" [GeV], " +muonTypeString() + ", "+qualityString() ); return l; } diff --git a/graphics/VP1/VP1Systems/VP1AODSystems/src/IParticleHandle_TrackParticle.cxx b/graphics/VP1/VP1Systems/VP1AODSystems/src/IParticleHandle_TrackParticle.cxx index aa834f27956231544d8637652c71ce9d6754bc55..6226fb3e741a09c1e4d00e197b517bcac68c2720 100644 --- a/graphics/VP1/VP1Systems/VP1AODSystems/src/IParticleHandle_TrackParticle.cxx +++ b/graphics/VP1/VP1Systems/VP1AODSystems/src/IParticleHandle_TrackParticle.cxx @@ -32,6 +32,7 @@ //Athena #include "TrkExInterfaces/IExtrapolationEngine.h" +#include "GaudiKernel/SystemOfUnits.h" //____________________________________________________________________ class IParticleHandle_TrackParticle::Imp { @@ -419,7 +420,7 @@ unsigned IParticleHandle_TrackParticle::getNMuonPhiHoleLayers() const QString IParticleHandle_TrackParticle::shortInfo() const { - QString l("|P|="+VP1Msg::str(momentum().mag()/CLHEP::GeV)+" [GeV], "); + QString l("|P|="+VP1Msg::str(momentum().mag()/Gaudi::Units::GeV)+" [GeV], "); l+= "Pix["+QString::number(getNPixelHits())+"], SCT["+QString::number(getNSCTHits())+"], TRT["+QString::number(getNTRTHits()) +"], Muon prec. layers/holes ["+QString::number(getNMuonPrecisionLayers())+"/"+QString::number(getNMuonPrecisionHoleLayers())+"]"; return l; diff --git a/graphics/VP1/VP1Systems/VP1CaloReadoutSystems/CMakeLists.txt b/graphics/VP1/VP1Systems/VP1CaloReadoutSystems/CMakeLists.txt index 77cadf6c74cd729a0df224a17f83307a3d36adc1..b9f8e46c76dbac98a4967a77d5b0f026da78ba73 100644 --- a/graphics/VP1/VP1Systems/VP1CaloReadoutSystems/CMakeLists.txt +++ b/graphics/VP1/VP1Systems/VP1CaloReadoutSystems/CMakeLists.txt @@ -11,6 +11,7 @@ atlas_depends_on_subdirs( PUBLIC PRIVATE LArCalorimeter/LArGeoModel/LArHV LArCalorimeter/LArGeoModel/LArReadoutGeometry + DetectorDescription/GeoPrimitives graphics/VP1/VP1Utils ) # External dependencies: diff --git a/graphics/VP1/VP1Systems/VP1CaloReadoutSystems/src/VP1CaloReadoutSystem.cxx b/graphics/VP1/VP1Systems/VP1CaloReadoutSystems/src/VP1CaloReadoutSystem.cxx index 54f9fa8cc4afa7b1a83cc7bd30407c8f631ad465..f9010d5760f6a7c449b2a3dd2a03be1da40071c7 100755 --- a/graphics/VP1/VP1Systems/VP1CaloReadoutSystems/src/VP1CaloReadoutSystem.cxx +++ b/graphics/VP1/VP1Systems/VP1CaloReadoutSystems/src/VP1CaloReadoutSystem.cxx @@ -56,6 +56,8 @@ #include "LArHV/HECHVSubgap.h" #include "LArHV/LArHVManager.h" +#include "GeoPrimitives/CLHEPtoEigenConverter.h" + #include "VP1Utils/VP1LinAlgUtils.h" #include <sstream> @@ -1044,7 +1046,7 @@ void VP1CaloReadoutSystem::createHV() { const HECDetectorManager *hecManager = VP1DetInfo::hecDetMgr(); const HECDetectorRegion *region = hecManager->getDetectorRegion(element->getEndcapIndex(),element->getSamplingIndex(),element->getRegionIndex()); - const HepGeom::Transform3D &XF= region->getAbsoluteTransform(); + const HepGeom::Transform3D &XF= Amg::EigenTransformToCLHEP(region->getAbsoluteTransform()); double z0 = (XF*HepGeom::Point3D<double>(0,0,element->getZLocal(HECCell::FRONT))).z(); double z1 = (XF*HepGeom::Point3D<double>(0,0,element->getZLocal(HECCell::BACK))).z(); @@ -1113,7 +1115,7 @@ void VP1CaloReadoutSystem::createHV() { for (e=fcalManager->beginFCAL();e!=fcalManager->endFCAL(); e++) { const FCALModule *fcalMod = *e; - const HepGeom::Transform3D &xf = fcalMod->getAbsoluteTransform(); + const HepGeom::Transform3D &xf = Amg::EigenTransformToCLHEP(fcalMod->getAbsoluteTransform()); SoTransform *XF = VP1LinAlgUtils::toSoTransform(xf); SoSeparator *sep = new SoSeparator(); @@ -1174,7 +1176,7 @@ void VP1CaloReadoutSystem::createEtaPhi() { EMBDetectorManager::DetectorRegionConstIterator e; for (e=manager->beginDetectorRegion();e!=manager->endDetectorRegion(); e++) { const EMBDetectorRegion *region = *e; - const HepGeom::Transform3D &xf = region->getAbsoluteTransform(); + const HepGeom::Transform3D &xf = Amg::EigenTransformToCLHEP(region->getAbsoluteTransform()); SoTransform *XF = VP1LinAlgUtils::toSoTransform(xf); SoSeparator *sep[NPHISECTORS]= {new SoSeparator(), new SoSeparator(), new SoSeparator(), new SoSeparator(), new SoSeparator(), new SoSeparator(), new SoSeparator(), new SoSeparator(), @@ -1274,7 +1276,7 @@ void VP1CaloReadoutSystem::createEtaPhi() { EMECDetectorManager::DetectorRegionConstIterator e; for (e=manager->beginDetectorRegion();e!=manager->endDetectorRegion(); e++) { const EMECDetectorRegion *region = *e; - const HepGeom::Transform3D &xf = region->getAbsoluteTransform(); + const HepGeom::Transform3D &xf = Amg::EigenTransformToCLHEP(region->getAbsoluteTransform()); // First Focal Points: try { @@ -1358,7 +1360,7 @@ void VP1CaloReadoutSystem::createEtaPhi() { const HECDetectorRegion *region = *e; - const HepGeom::Transform3D &xf = region->getAbsoluteTransform(); + const HepGeom::Transform3D &xf = Amg::EigenTransformToCLHEP(region->getAbsoluteTransform()); // First Focal Points: if (region->getSamplingIndex()==1) { @@ -1444,7 +1446,7 @@ void VP1CaloReadoutSystem::createEtaPhi() { for (e=manager->beginFCAL();e!=manager->endFCAL(); e++) { const FCALModule *fcalMod = *e; - const HepGeom::Transform3D &xf = fcalMod->getAbsoluteTransform(); + const HepGeom::Transform3D &xf = Amg::EigenTransformToCLHEP(fcalMod->getAbsoluteTransform()); SoTransform *XF = VP1LinAlgUtils::toSoTransform(xf); @@ -1751,7 +1753,7 @@ void VP1CaloReadoutSystem::userPickedNode(SoNode* mySelectedNode, SoPath */*pick const FCALModule *fcalMod=element->getModule(); - const HepGeom::Transform3D &xf = fcalMod->getAbsoluteTransform(); + const HepGeom::Transform3D &xf = Amg::EigenTransformToCLHEP(fcalMod->getAbsoluteTransform()); SoTransform *XF = VP1LinAlgUtils::toSoTransform(xf); SoSeparator * sep = new SoSeparator(); @@ -1800,7 +1802,7 @@ void VP1CaloReadoutSystem::userPickedNode(SoNode* mySelectedNode, SoPath */*pick } if (m_clockwork->ui.fcalTubesCheckBox->isChecked()) { const FCALModule *fcalMod=element->getModule(); - const HepGeom::Transform3D &xf = fcalMod->getAbsoluteTransform(); + const HepGeom::Transform3D &xf = Amg::EigenTransformToCLHEP(fcalMod->getAbsoluteTransform()); SoTransform *XF = VP1LinAlgUtils::toSoTransform(xf); SoSeparator * sep = new SoSeparator(); @@ -1895,7 +1897,7 @@ void VP1CaloReadoutSystem::userPickedNode(SoNode* mySelectedNode, SoPath */*pick const HECDetectorManager *hecManager = VP1DetInfo::hecDetMgr(); const HECDetectorRegion *region = hecManager->getDetectorRegion(element->getEndcapIndex(),element->getSamplingIndex(),element->getRegionIndex()); - const HepGeom::Transform3D &XF= region->getAbsoluteTransform(); + const HepGeom::Transform3D &XF= Amg::EigenTransformToCLHEP(region->getAbsoluteTransform()); double z = (XF*HepGeom::Point3D<double>(0,0,element->getZLocal(HECCell::FRONT))).z(); double phiMin = module->getPhiMin(); diff --git a/graphics/VP1/VP1Systems/VP1CaloSystems/CMakeLists.txt b/graphics/VP1/VP1Systems/VP1CaloSystems/CMakeLists.txt index d2bc10e5d617f71e15ce919022066498d5c7c20d..78d206c3dd5516b2833d678076283b254571c4ef 100644 --- a/graphics/VP1/VP1Systems/VP1CaloSystems/CMakeLists.txt +++ b/graphics/VP1/VP1Systems/VP1CaloSystems/CMakeLists.txt @@ -17,7 +17,6 @@ atlas_depends_on_subdirs( Calorimeter/CaloEvent Calorimeter/CaloIdentifier Control/StoreGate - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoModel/GeoModelUtilities GaudiKernel LArCalorimeter/LArIdentifier @@ -36,6 +35,7 @@ find_package( CLHEP ) find_package( Coin3D ) find_package( Qt5 COMPONENTS Core Gui Widgets ) #find_package( Qwt ) +find_package( GeoModel ) # Generate UI files automatically: set( CMAKE_AUTOUIC TRUE ) @@ -51,8 +51,8 @@ atlas_add_library( VP1CaloSystems ${CMAKE_CURRENT_BINARY_DIR} DEFINITIONS ${CLHEP_DEFINITIONS} LINK_LIBRARIES ${CLHEP_LIBRARIES} Identifier VP1Base Qt5::Core - PRIVATE_LINK_LIBRARIES ${COIN3D_LIBRARIES} ${QWT_LIBRARIES} CaloDetDescrLib + PRIVATE_LINK_LIBRARIES ${COIN3D_LIBRARIES} ${QWT_LIBRARIES} ${GEOMODEL_LIBRARIES} CaloDetDescrLib StoreGateLib LArCablingLib TileConditionsLib CaloConditions CaloEvent - CaloIdentifier GeoModelKernel GeoModelUtilities GaudiKernel LArIdentifier + CaloIdentifier GeoModelUtilities GaudiKernel LArIdentifier LArRawEvent TileDetDescr TileEvent TileIdentifier VP1HEPVis VP1Utils Qt5::Gui ) diff --git a/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCellController.h b/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCellController.h index 52a764f477e8da5c00948c6f8f3a5b91685918fd..b61bbc46678f624d04de2cffc721c09471dc3c53 100644 --- a/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCellController.h +++ b/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCellController.h @@ -7,6 +7,7 @@ #include "VP1Base/VP1Controller.h" #include "VP1CaloSystems/VP1CaloCells.h" +#include "GeoModelKernel/Units.h" #include <QByteArray> #include <QString> #include <map> @@ -113,7 +114,7 @@ class VP1CaloCellController : public VP1Controller //For verbose output: template <class T> static QString toString( const T& t ) { return VP1Controller::toString(t); }//unhide base methods static QString toString(const VP1CCIntervalMap& m) { return "VP1CCIntervalMap of size "+QString::number(m.count()); } - static QString toString(const QPair<bool,double>& par) { return "<"+QString(par.first?"log":"linear")+", "+QString::number(par.second/(CLHEP::cm/CLHEP::GeV))+" cm/GeV>"; } + static QString toString(const QPair<bool,double>& par) { return "<"+QString(par.first?"log":"linear")+", "+QString::number(par.second/(GeoModelKernelUnits::cm/GeoModelKernelUnits::GeV))+" cm/GeV>"; } static QString toString(const VP1CC_GlobalCuts& cuts) { return "VP1CC global cuts: sideA=" + QString(cuts.sideA?"True":"False") + ", sideC=" + QString(cuts.sideC?"True":"False") + ", allowedEta=" + VP1Controller::toString(cuts.allowedEta) + ", allowedPhi=" + VP1Controller::toString(cuts.allowedEta); } // // FIXME:You have to compile Qwt with Qt5. LCG's Qwt is compiled with Qt4 only... diff --git a/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCells.h b/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCells.h index c8a9d387039944d24d652306e6b6bd44c3a5419e..7b00191e1d9506191e1d7b35f47178a5bba97630 100644 --- a/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCells.h +++ b/graphics/VP1/VP1Systems/VP1CaloSystems/VP1CaloSystems/VP1CaloCells.h @@ -10,7 +10,9 @@ #include "Identifier/Identifier.h" #include "Identifier/IdentifierHash.h" -#include "CLHEP/Geometry/Transform3D.h" +#include "GeoPrimitives/GeoPrimitives.h" +#include "GeoModelKernel/GeoDefinitions.h" +#include "GeoModelKernel/Units.h" #include <map> #include <set> @@ -185,7 +187,7 @@ class VP1CaloCell const VP1CC_GlobalCuts& ) = 0; double cellDepth(const QPair<bool,double>& scale, const double& energy) - { return std::max(1.0*CLHEP::mm,scale.second*(scale.first?log(1+fabs(energy)):fabs(energy))); } + { return std::max(1.0*GeoModelKernelUnits::mm,scale.second*(scale.first?log(1+fabs(energy)):fabs(energy))); } virtual bool isInsideClipVolume(const VP1CC_GlobalCuts& globalCuts) ; // by default uses radius to determine this @@ -386,7 +388,7 @@ class VP1CC_TileCrack : public VP1CC_Tile // 1. MBTS scintillator shape parameters (2 different shapes) // 2. MBTS scintillator global positions -typedef std::map<int, HepGeom::Transform3D, std::less<int> > VP1CC_MbtsXfMap; +typedef std::map<int, GeoTrf::Transform3D, std::less<int> > VP1CC_MbtsXfMap; typedef struct { diff --git a/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1CaloCellController.cxx b/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1CaloCellController.cxx index 710d7a84ac99697bbe1be217ca6652287279bdd0..c275a81ab16e0ea0874aa6a04389880bb24e526d 100644 --- a/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1CaloCellController.cxx +++ b/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1CaloCellController.cxx @@ -1137,7 +1137,7 @@ VP1CCIntervalMap VP1CaloCellController::selectionIntervals() const QPair<bool,double> VP1CaloCellController::scale() const { - double scl = m_d->ui_visopts.chbxLogscale->isChecked() ? m_d->ui_visopts.dspbxScale->value()*CLHEP::m/log(1+10*CLHEP::GeV) : m_d->ui_visopts.dspbxScale->value()*CLHEP::m/(10*CLHEP::GeV); + double scl = m_d->ui_visopts.chbxLogscale->isChecked() ? m_d->ui_visopts.dspbxScale->value()*GeoModelKernelUnits::m/log(1+10*GeoModelKernelUnits::GeV) : m_d->ui_visopts.dspbxScale->value()*GeoModelKernelUnits::m/(10*GeoModelKernelUnits::GeV); return QPair<bool,double>(m_d->ui_visopts.chbxLogscale->isChecked(),scl); } diff --git a/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1CaloCells.cxx b/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1CaloCells.cxx index ea8e67278f57917aae0ed71669dfa5552fbdf9a5..b91cd28aabaae22f6c0a1f9cb7bc55c29448e445 100644 --- a/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1CaloCells.cxx +++ b/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1CaloCells.cxx @@ -24,8 +24,6 @@ #include <stdexcept> #include <sstream> -#include "CLHEP/Units/SystemOfUnits.h" - // MBTS #include "CaloIdentifier/TileTBID.h" #include <Inventor/nodes/SoTransform.h> diff --git a/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1MbtsHelper.cxx b/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1MbtsHelper.cxx index 7ff23be36a775b0a7fb6f4de3e93c3e2f4c0ccdc..04dc2eda7c73241a4c97ec9c00060a6122836d0f 100644 --- a/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1MbtsHelper.cxx +++ b/graphics/VP1/VP1Systems/VP1CaloSystems/src/VP1MbtsHelper.cxx @@ -92,11 +92,11 @@ void VP1MbtsHelper::systemcreate(StoreGateSvc* detstore) GeoFullPhysVol* pvLArECA = storedLArECA->getPhysVol(); GeoFullPhysVol* pvLArECC = storedLArECC->getPhysVol(); - HepGeom::Transform3D xfLArECA = pvLArECA->getAbsoluteTransform(); - HepGeom::Transform3D xfLArECC = pvLArECC->getAbsoluteTransform(); + GeoTrf::Transform3D xfLArECA = pvLArECA->getAbsoluteTransform(); + GeoTrf::Transform3D xfLArECC = pvLArECC->getAbsoluteTransform(); // Find a pointer to MBTS mother volume and its local transform - HepGeom::Transform3D xfMbtsMother; + GeoTrf::Transform3D xfMbtsMother; PVConstLink pvMbtsMother; bool mbtsExists = false; diff --git a/graphics/VP1/VP1Systems/VP1GeometrySystems/CMakeLists.txt b/graphics/VP1/VP1Systems/VP1GeometrySystems/CMakeLists.txt index 6763fda413f7c7e0bc7bea75b2c0038a8a9bd906..72a59b24ebb2974cfff8b0a9fce276b932b2ef58 100644 --- a/graphics/VP1/VP1Systems/VP1GeometrySystems/CMakeLists.txt +++ b/graphics/VP1/VP1Systems/VP1GeometrySystems/CMakeLists.txt @@ -9,7 +9,7 @@ atlas_subdir( VP1GeometrySystems ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC - DetectorDescription/GeoModel/GeoModelKernel + DetectorDescription/GeoPrimitives MuonSpectrometer/MuonDetDescr/MuonReadoutGeometry Generators/TruthUtils Event/xAOD/xAODTruth @@ -23,6 +23,7 @@ atlas_depends_on_subdirs( find_package( CLHEP ) find_package( Coin3D ) find_package( Qt5 COMPONENTS Core Gui Widgets ) +find_package( GeoModel ) # Find includes in corresponding build directories set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -45,5 +46,5 @@ atlas_add_library( VP1GeometrySystems INCLUDE_DIRS ${COIN3D_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR} PRIVATE_DEFINITIONS ${CLHEP_DEFINITIONS} - LINK_LIBRARIES ${COIN3D_LIBRARIES} GeoModelKernel MuonReadoutGeometry TruthUtils xAODTruth VP1Base GL Qt5::Core Qt5::Widgets + LINK_LIBRARIES ${COIN3D_LIBRARIES} ${GEOMODEL_LIBRARIES} MuonReadoutGeometry TruthUtils xAODTruth VP1Base GL Qt5::Core Qt5::Widgets PRIVATE_LINK_LIBRARIES ${CLHEP_LIBRARIES} GeoModelUtilities VP1HEPVis VP1Utils Qt5::Gui ) diff --git a/graphics/VP1/VP1Systems/VP1GeometrySystems/src/DumpShape.cxx b/graphics/VP1/VP1Systems/VP1GeometrySystems/src/DumpShape.cxx index 16317bd07b9cf7f411334d93538c0d8471e0a3f5..8b619104ad4e90b6af2ed9799dbbddf153ebdc55 100644 --- a/graphics/VP1/VP1Systems/VP1GeometrySystems/src/DumpShape.cxx +++ b/graphics/VP1/VP1Systems/VP1GeometrySystems/src/DumpShape.cxx @@ -4,6 +4,7 @@ #include "VP1GeometrySystems/DumpShape.h" +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/GeoShape.h" #include "GeoModelKernel/GeoBox.h" #include "GeoModelKernel/GeoTubs.h" @@ -21,6 +22,7 @@ #include "GeoModelKernel/GeoGenericTrap.h" #include "CLHEP/Units/SystemOfUnits.h" +#include "CLHEP/Vector/TwoVector.h" #include "VP1Utils/VP1LinAlgUtils.h" #include "Inventor/SbMatrix.h" @@ -149,7 +151,7 @@ QStringList DumpShape::shapeToStringList(const GeoShape* shape) if (theShift){ out << " =========> GeoShapeShift:"; SbMatrix t; - VP1LinAlgUtils::transformToMatrix(theShift->getX(), t); + VP1LinAlgUtils::transformToMatrix(Amg::EigenTransformToCLHEP(theShift->getX()), t); float translation_x, translation_y, translation_z, rotaxis_x, rotaxis_y, rotaxis_z, rotangle_radians; VP1LinAlgUtils::decodeTransformation( t, translation_x, translation_y, translation_z, @@ -212,7 +214,11 @@ QStringList DumpShape::shapeToStringList(const GeoShape* shape) if (theGenericTrap){ out << " =========> GenericTrap:"; out << " halfZlength = "+QString::number(theGenericTrap->getZHalfLength()/CLHEP::mm)+" mm"; - std::vector<CLHEP::Hep2Vector> vertices = theGenericTrap->getVertices(); + std::vector<CLHEP::Hep2Vector> vertices; + vertices.reserve(theGenericTrap->getVertices().size()); + for(const auto& geoVertex : theGenericTrap->getVertices()) { + vertices.push_back(CLHEP::Hep2Vector(geoVertex.x(),geoVertex.y())); + } //in total 8 vertices by definition! out << "==> First 4 vertices at - hz/2"; out << "(Ax,Ay) = ( "+QString::number(vertices[0].x()/CLHEP::mm)+" , "+QString::number(vertices[0].y()/CLHEP::mm)+" ) mm"; diff --git a/graphics/VP1/VP1Systems/VP1GeometrySystems/src/VP1GeometrySystem.cxx b/graphics/VP1/VP1Systems/VP1GeometrySystems/src/VP1GeometrySystem.cxx index caeaf57606a73ea3521bdb441f59fe9004021d77..8ce1c04fdc7e5c5c71de0ef849fda6c24a2a258b 100644 --- a/graphics/VP1/VP1Systems/VP1GeometrySystems/src/VP1GeometrySystem.cxx +++ b/graphics/VP1/VP1Systems/VP1GeometrySystems/src/VP1GeometrySystem.cxx @@ -540,7 +540,7 @@ void VP1GeometrySystem::buildPermanentSceneGraph(StoreGateSvc*/*detstore*/, SoSe //We did... now, time to extract info: subsys->treetopinfo.resize(subsys->treetopinfo.size()+1); subsys->treetopinfo.back().pV = av.getVolume(); - subsys->treetopinfo.back().xf = av.getTransform(); + subsys->treetopinfo.back().xf = Amg::EigenTransformToCLHEP(av.getTransform()); subsys->treetopinfo.back().volname = av.getName(); //Add a switch for this system (turned off for now): @@ -995,7 +995,7 @@ void VP1GeometrySystem::Imp::buildSystem(SubSystemInfo* si) if (si->childrenRegExpNameCompatible(av.getName().c_str())) { PVConstLink pVD = av.getVolume(); SbMatrix matr; - VP1LinAlgUtils::transformToMatrix(av.getTransform(),matr); + VP1LinAlgUtils::transformToMatrix(Amg::EigenTransformToCLHEP(av.getTransform()),matr); VolumeHandle * vh=0; // std::cout<<count++<<": dump SubSystemInfo\n"<<"---"<<std::endl; // si->dump(); diff --git a/graphics/VP1/VP1Systems/VP1GeometrySystems/src/VolumeHandle.cxx b/graphics/VP1/VP1Systems/VP1GeometrySystems/src/VolumeHandle.cxx index 6809aeda9ba37cc8ce8c2b7806e2199393f94063..eeaa2ae73cf846e7f5c5e809a87d9a0caf969fd4 100644 --- a/graphics/VP1/VP1Systems/VP1GeometrySystems/src/VolumeHandle.cxx +++ b/graphics/VP1/VP1Systems/VP1GeometrySystems/src/VolumeHandle.cxx @@ -141,7 +141,7 @@ void VolumeHandle::initialiseChildren() while (!av.atEnd()) { //Add transformation between parent and child to find the complete transformation of the child: SbMatrix matr; - VP1LinAlgUtils::transformToMatrix(av.getTransform(), matr); + VP1LinAlgUtils::transformToMatrix(Amg::EigenTransformToCLHEP(av.getTransform()), matr); matr.multRight(m_d->accumTrans); m_children.push_back(new VolumeHandle(m_d->commondata,this,av.getVolume(),ichild++,(isInMuonChamber()?MUONCHAMBERCHILD:NONMUONCHAMBER),matr)); av.next(); @@ -271,7 +271,7 @@ void VolumeHandle::ensureBuildNodeSep() //In the case of a GeoShapeShift we add its contained transformation here: //Fixme: Remember to use this extra transformation for phisector cuts also! if (m_d->pV->getLogVol()->getShape()->typeID()==GeoShapeShift::getClassTypeID()) - m_d->nodesep->addChild(VP1LinAlgUtils::toSoTransform(dynamic_cast<const GeoShapeShift*>(m_d->pV->getLogVol()->getShape())->getX())); + m_d->nodesep->addChild(VP1LinAlgUtils::toSoTransform(Amg::EigenTransformToCLHEP(dynamic_cast<const GeoShapeShift*>(m_d->pV->getLogVol()->getShape())->getX()))); //Add shape child(ren) and get the separator (helper) where we attach the nodesep when volume is visible: if (iphi>=-1) { diff --git a/graphics/VP1/VP1Systems/VP1PRDSystems/CMakeLists.txt b/graphics/VP1/VP1Systems/VP1PRDSystems/CMakeLists.txt index 664ae08e27a8ebaa6a38c0c38c89385af9f39ef3..64389e93480aaea132e72de82357bb6f9b29f343 100644 --- a/graphics/VP1/VP1Systems/VP1PRDSystems/CMakeLists.txt +++ b/graphics/VP1/VP1Systems/VP1PRDSystems/CMakeLists.txt @@ -9,7 +9,6 @@ atlas_subdir( VP1PRDSystems ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoPrimitives InnerDetector/InDetDetDescr/InDetReadoutGeometry InnerDetector/InDetRecEvent/InDetPrepRawData @@ -38,6 +37,7 @@ atlas_depends_on_subdirs( find_package( CLHEP ) find_package( Coin3D ) find_package( Qt5 COMPONENTS Core Gui Widgets) +find_package( GeoModel ) # Generate UI files automatically: set( CMAKE_AUTOUIC TRUE ) @@ -49,7 +49,7 @@ atlas_add_library( VP1PRDSystems VP1PRDSystems/*.h src/*.cxx PUBLIC_HEADERS VP1PRDSystems PRIVATE_INCLUDE_DIRS ${COIN3D_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR} - LINK_LIBRARIES GeoModelKernel GeoPrimitives InDetReadoutGeometry + LINK_LIBRARIES ${GEOMODEL_LIBRARIES} GeoPrimitives InDetReadoutGeometry InDetPrepRawData MuonPrepRawData TrkPrepRawData TrkSpacePoint VP1Base VP1Utils MuonIdHelpersLib Qt5::Core Qt5::Gui PRIVATE_LINK_LIBRARIES ${COIN3D_LIBRARIES} ${CLHEP_LIBRARIES} AthContainers diff --git a/graphics/VP1/VP1Systems/VP1PRDSystems/src/MuonChamberProjectionHelper.cxx b/graphics/VP1/VP1Systems/VP1PRDSystems/src/MuonChamberProjectionHelper.cxx index 2dd115542e6ac70738a64e963bd7eca7ad9d6dcc..f4598bb17c23629129b2e30b2c68edd519c4028a 100644 --- a/graphics/VP1/VP1Systems/VP1PRDSystems/src/MuonChamberProjectionHelper.cxx +++ b/graphics/VP1/VP1Systems/VP1PRDSystems/src/MuonChamberProjectionHelper.cxx @@ -215,7 +215,7 @@ bool MuonChamberProjectionHelper::Imp::init() av.next(); continue; } - Amg::Transform3D toptransform = Amg::CLHEPTransformToEigen(av.getTransform()); + Amg::Transform3D toptransform = av.getTransform(); GeoVolumeCursor av2(av.getVolume()); while (!av2.atEnd()) { if (nameIsMDTChamber(av2.getName())) { @@ -240,7 +240,7 @@ bool MuonChamberProjectionHelper::Imp::init() && trd->getYHalfLength1() > 0.0 && trd->getYHalfLength2() > 0.0 ) { trd->ref(); - Amg::Transform3D geovolume_transf = Amg::CLHEPTransformToEigen(av2.getTransform()); + Amg::Transform3D geovolume_transf = av2.getTransform(); mdtchambervolinfo.insert(std::pair<const GeoPVConstLink,MDTChamberInfo>( av2.getVolume(), Imp::MDTChamberInfo(toptransform * geovolume_transf, trd) )); } else { theclass->message("MuonChamberProjectionHelper Error: Chamber trd has non-positive shape parameters!"); diff --git a/graphics/VP1/VP1Systems/VP1PRDSystems/src/PRDHandle_TGC.cxx b/graphics/VP1/VP1Systems/VP1PRDSystems/src/PRDHandle_TGC.cxx index f4e30fd42dfb97265dcec96ef2f881d7a27da983..e78f4cbaeb45fbf8457af919a46ec57422ff3ac9 100644 --- a/graphics/VP1/VP1Systems/VP1PRDSystems/src/PRDHandle_TGC.cxx +++ b/graphics/VP1/VP1Systems/VP1PRDSystems/src/PRDHandle_TGC.cxx @@ -54,7 +54,7 @@ SoTransform * PRDHandle_TGC::createTransform() const } Amg::Vector3D lpos_shift(lposTGC.x(),locy_shift,z_shift); - const Amg::Transform3D tgcTrans = Amg::CLHEPTransformToEigen(detEl->getMaterialGeom()->getAbsoluteTransform()); + const Amg::Transform3D tgcTrans = detEl->getMaterialGeom()->getAbsoluteTransform(); Amg::Vector3D gpos = tgcTrans*lposTGC; Amg::Vector3D gpos_shift = tgcTrans*lpos_shift; diff --git a/graphics/VP1/VP1Systems/VP1RawDataSystems/CMakeLists.txt b/graphics/VP1/VP1Systems/VP1RawDataSystems/CMakeLists.txt index fa5f972f94b9a7989070d36f53fff3ec6e7930fb..de4431bdaf8d439a08a8b7c6ee5f8aef11ffe705 100644 --- a/graphics/VP1/VP1Systems/VP1RawDataSystems/CMakeLists.txt +++ b/graphics/VP1/VP1Systems/VP1RawDataSystems/CMakeLists.txt @@ -10,7 +10,6 @@ atlas_depends_on_subdirs( PUBLIC DetectorDescription/GeoPrimitives graphics/VP1/VP1Base PRIVATE - DetectorDescription/GeoModel/GeoModelKernel Event/EventPrimitives ForwardDetectors/LUCID/LUCID_RawEvent GaudiKernel @@ -25,6 +24,7 @@ atlas_depends_on_subdirs( PUBLIC find_package( Coin3D ) find_package( Eigen ) find_package( Qt5 COMPONENTS Core Gui Widgets ) +find_package( GeoModel ) # Generate UI files automatically: set( CMAKE_AUTOUIC TRUE ) @@ -43,5 +43,5 @@ atlas_add_library( VP1RawDataSystems VP1RawDataSystems/*.h src/*.h src/*.cxx src PRIVATE_INCLUDE_DIRS ${COIN3D_INCLUDE_DIRS} FILES LUCID_RawEvent/LUCID_Digit.h LINK_LIBRARIES ${EIGEN_LIBRARIES} GeoPrimitives VP1Base GL - PRIVATE_LINK_LIBRARIES ${COIN3D_LIBRARIES} GeoModelKernel EventPrimitives LUCID_RawEvent GaudiKernel InDetIdentifier InDetReadoutGeometry InDetBCM_RawData InDetRawData VP1HEPVis VP1Utils ) + PRIVATE_LINK_LIBRARIES ${COIN3D_LIBRARIES} ${GEOMODEL_LIBRARIES} EventPrimitives LUCID_RawEvent GaudiKernel InDetIdentifier InDetReadoutGeometry InDetBCM_RawData InDetRawData VP1HEPVis VP1Utils ) diff --git a/graphics/VP1/VP1Systems/VP1RawDataSystems/src/VP1RawDataHandle_BCM_RDO.cxx b/graphics/VP1/VP1Systems/VP1RawDataSystems/src/VP1RawDataHandle_BCM_RDO.cxx index d3fff54a0a87aca854641e643ec2f2bd0461c9f8..6ba77420390640b0d98b1e6d8262eb4c0be42a8c 100644 --- a/graphics/VP1/VP1Systems/VP1RawDataSystems/src/VP1RawDataHandle_BCM_RDO.cxx +++ b/graphics/VP1/VP1Systems/VP1RawDataSystems/src/VP1RawDataHandle_BCM_RDO.cxx @@ -132,12 +132,12 @@ void VP1RawDataHandle_BCM_RDO::Imp::ensureInitModuleInfo() GeoVolumeCursor av(*world); while (!av.atEnd()) { if (av.getName()=="Pixel") { - Amg::Transform3D tr_pix = Amg::CLHEPTransformToEigen( av.getTransform() ); + Amg::Transform3D tr_pix = av.getTransform(); GeoVolumeCursor pv(av.getVolume()); while (!pv.atEnd()) { int bcmModLogCopyNumber(-1); if (pv.getVolume()->getLogVol()->getName()=="bcmModLog") { - Amg::Transform3D tr_bcmmod = Amg::CLHEPTransformToEigen( pv.getTransform() ); + Amg::Transform3D tr_bcmmod = pv.getTransform(); Query<int> Qint = pv.getId(); if (Qint.isValid()) { bcmModLogCopyNumber = int(Qint); @@ -145,7 +145,7 @@ void VP1RawDataHandle_BCM_RDO::Imp::ensureInitModuleInfo() GeoVolumeCursor bv(pv.getVolume()); while (!bv.atEnd()) { if (bv.getVolume()->getLogVol()->getName()=="bcmDiamondLog") { - Amg::Transform3D tr_diamond( Amg::CLHEPTransformToEigen( bv.getTransform() ) ); + Amg::Transform3D tr_diamond(bv.getTransform()); const GeoBox * box = bv.getVolume()->getLogVol()->getShape()->typeID()==GeoBox::getClassTypeID() ? static_cast<const GeoBox*>(bv.getVolume()->getLogVol()->getShape()) : 0; modInfo->addBox(tr_pix*tr_bcmmod*tr_diamond,box); diff --git a/graphics/VP1/VP1Systems/VP1RawDataSystems/src/VP1RawDataHandle_LUCID.cxx b/graphics/VP1/VP1Systems/VP1RawDataSystems/src/VP1RawDataHandle_LUCID.cxx index 3d7b1c9fc671ce23de266a3e80e5d2c51d1aa511..7f3c0fc790f4808f3e37ef95473079e611422ee7 100644 --- a/graphics/VP1/VP1Systems/VP1RawDataSystems/src/VP1RawDataHandle_LUCID.cxx +++ b/graphics/VP1/VP1Systems/VP1RawDataSystems/src/VP1RawDataHandle_LUCID.cxx @@ -138,7 +138,7 @@ void VP1RawDataHandle_LUCID::Imp::ensureInitTubeInfo() if (tubeID>=0) { const GeoTube * geotube = av4.getVolume()->getLogVol()->getShape()->typeID()==GeoTube::getClassTypeID() ? static_cast<const GeoTube*>(av4.getVolume()->getLogVol()->getShape()) : 0; - Amg::Transform3D tr( Amg::CLHEPTransformToEigen(av.getTransform()*av2.getTransform()*av3.getTransform()*av4.getTransform() ) ); + Amg::Transform3D tr( av.getTransform()*av2.getTransform()*av3.getTransform()*av4.getTransform() ); (*tubeID2TubeInfo)[tubeID] = new TubeInfo(tubeID,tr,geotube); if (VP1Msg::verbose()) VP1Msg::messageVerbose("VP1RawDataHandle_LUCID Added TubeInfo for tubeID = "+QString::number(tubeID)); diff --git a/graphics/VP1/VP1Systems/VP1TrackSystems/CMakeLists.txt b/graphics/VP1/VP1Systems/VP1TrackSystems/CMakeLists.txt index ee2d554f7ae707304cb18a89c005edc4420e828e..12a83342665aa5b70ee1408ced61936719d36bb5 100644 --- a/graphics/VP1/VP1Systems/VP1TrackSystems/CMakeLists.txt +++ b/graphics/VP1/VP1Systems/VP1TrackSystems/CMakeLists.txt @@ -9,7 +9,6 @@ atlas_subdir( VP1TrackSystems ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoPrimitives DetectorDescription/Identifier Event/xAOD/xAODTracking @@ -65,6 +64,7 @@ find_package( CLHEP ) find_package( Coin3D ) find_package( HepMC ) find_package( Qt5 COMPONENTS Core Gui Widgets ) +find_package( GeoModel ) # Generate UI files automatically: # Note: add the "Widgets" component to "find_package( Qt5 ...)" if you have UI files, otherwise UIC, even if CMAKE_AUTOUIC is set to ON, is not run @@ -77,7 +77,7 @@ atlas_add_library( VP1TrackSystems VP1TrackSystems/*.h src/*.cxx PUBLIC_HEADERS VP1TrackSystems PRIVATE_INCLUDE_DIRS ${COIN3D_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR} - LINK_LIBRARIES GeoModelKernel GeoPrimitives Identifier xAODTracking + LINK_LIBRARIES ${GEOMODEL_LIBRARIES} GeoPrimitives Identifier xAODTracking GaudiKernel GeneratorObjects TrkDetDescrInterfaces TrkSurfaces TrkEventPrimitives TrkParameters VP1Base VP1Utils StoreGateLib SGtests MuonIdHelpersLib MuonRecHelperToolsLib Qt5::Core Qt5::Gui diff --git a/graphics/VP1/VP1Systems/VP1TrackSystems/src/SimHitHandle_SiHit.cxx b/graphics/VP1/VP1Systems/VP1TrackSystems/src/SimHitHandle_SiHit.cxx index aa2930a835b441edbcb68e8626333d8b72ae462c..4fda1569d553e02bddec737df6adff55d7682119 100644 --- a/graphics/VP1/VP1Systems/VP1TrackSystems/src/SimHitHandle_SiHit.cxx +++ b/graphics/VP1/VP1Systems/VP1TrackSystems/src/SimHitHandle_SiHit.cxx @@ -94,7 +94,7 @@ Amg::Vector3D SimHitHandle_SiHit::Imp::localToGlobal( const HepGeom::Point3D<dou { if (!ensureDetElemInit()) return Amg::Vector3D(0,0,0); - return Amg::Vector3D(detelem->transformHit() * local); + return Amg::Vector3D(Amg::EigenTransformToCLHEP(detelem->transformHit()) * local); } //____________________________________________________________________ diff --git a/graphics/VP1/VP1Systems/VP1TrackSystems/src/TrackPropagationHelper.cxx b/graphics/VP1/VP1Systems/VP1TrackSystems/src/TrackPropagationHelper.cxx index 04076ecd1d8c51510015419129fb13059fda65ab..7e8bb6a37d53b54cd2d9cfe8671de543937935bb 100644 --- a/graphics/VP1/VP1Systems/VP1TrackSystems/src/TrackPropagationHelper.cxx +++ b/graphics/VP1/VP1Systems/VP1TrackSystems/src/TrackPropagationHelper.cxx @@ -26,6 +26,7 @@ #include "TrkVolumes/BoundarySurface.h" #include "TrkVolumes/VolumeBounds.h" +#include "CLHEP/Units/PhysicalConstants.h" #include "VP1Base/VP1QtUtils.h" #include <limits> diff --git a/graphics/VP1/VP1Systems/VP1TrackingGeometrySystems/CMakeLists.txt b/graphics/VP1/VP1Systems/VP1TrackingGeometrySystems/CMakeLists.txt index 72b1e98ca491b7dafd120cd3b22e810d0935d510..17ac75c5f040bd67e4fb6ff46652d887df399ead 100644 --- a/graphics/VP1/VP1Systems/VP1TrackingGeometrySystems/CMakeLists.txt +++ b/graphics/VP1/VP1Systems/VP1TrackingGeometrySystems/CMakeLists.txt @@ -7,7 +7,6 @@ atlas_subdir( VP1TrackingGeometrySystems ) # Declare the package's dependencies: atlas_depends_on_subdirs( PUBLIC - DetectorDescription/GeoModel/GeoModelKernel Tracking/TrkDetDescr/TrkVolumes graphics/VP1/VP1Base PRIVATE @@ -24,6 +23,7 @@ atlas_depends_on_subdirs( PUBLIC find_package( Coin3D ) find_package( Eigen ) find_package( Qt5 COMPONENTS Core Gui Widgets ) +find_package( GeoModel ) # Generate UI files automatically: set( CMAKE_AUTOUIC TRUE ) @@ -41,6 +41,6 @@ set(CMAKE_INCLUDE_CURRENT_DIR ON) atlas_add_library( VP1TrackingGeometrySystems VP1TrackingGeometrySystems/*.h src/*.h src/*.cxx src/*.qrc PUBLIC_HEADERS VP1TrackingGeometrySystems PRIVATE_INCLUDE_DIRS ${COIN3D_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES GeoModelKernel TrkVolumes VP1Base GL StoreGateLib SGtests + LINK_LIBRARIES ${GEOMODEL_LIBRARIES} TrkVolumes VP1Base GL StoreGateLib SGtests PRIVATE_LINK_LIBRARIES ${COIN3D_LIBRARIES} ${EIGEN_LIBRARIES} GeoPrimitives GaudiKernel TrkDetDescrInterfaces TrkDetDescrUtils TrkGeometry VP1HEPVis VP1Utils ) diff --git a/graphics/VP1/VP1Systems/VP1TrackingGeometrySystems/src/TrackingVolumeToSoNode.cxx b/graphics/VP1/VP1Systems/VP1TrackingGeometrySystems/src/TrackingVolumeToSoNode.cxx index 90d08766755331cf23978a97d142141ca702426d..559a76663a6f9f492d62dd82103c5993669a321f 100755 --- a/graphics/VP1/VP1Systems/VP1TrackingGeometrySystems/src/TrackingVolumeToSoNode.cxx +++ b/graphics/VP1/VP1Systems/VP1TrackingGeometrySystems/src/TrackingVolumeToSoNode.cxx @@ -13,6 +13,7 @@ // // ///////////////////////////////////////////////////////////////////////// +#include "GeoPrimitives/GeoPrimitives.h" #include "VP1TrackingGeometrySystems/TrackingVolumeToSoNode.h" #include "VP1HEPVis/nodes/SoGenericBox.h" #include "VP1HEPVis/nodes/SoTubs.h" @@ -42,6 +43,7 @@ #include "GeoModelKernel/GeoShapeIntersection.h" #include "GeoModelKernel/GeoShapeUnion.h" #include "GeoModelKernel/GeoSimplePolygonBrep.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "GeoPrimitives/GeoPrimitives.h" @@ -146,8 +148,8 @@ SoNode* TrackingVolumeToSoNode::translateTrackingVolume(const Trk::TrackingVolu Trk::TrapezoidVolumeBounds* trBoundB = new Trk::TrapezoidVolumeBounds(medX,maxX,z,y2); const GeoShape* trdA = getShapeFromBounds( trBoundA ); const GeoShape* trdB = getShapeFromBounds( trBoundB ); - const GeoShapeShift* shiftA = new GeoShapeShift(trdA,HepGeom::TranslateY3D(-y1)*HepGeom::RotateX3D(-90*CLHEP::deg)*HepGeom::RotateZ3D(-90*CLHEP::deg)); - const GeoShapeShift* shiftB = new GeoShapeShift(trdB,HepGeom::TranslateY3D(+y2)*HepGeom::RotateX3D(-90*CLHEP::deg)*HepGeom::RotateZ3D(-90*CLHEP::deg)); + const GeoShapeShift* shiftA = new GeoShapeShift(trdA,GeoTrf::TranslateY3D(-y1)*GeoTrf::RotateX3D(-90*CLHEP::deg)*GeoTrf::RotateZ3D(-90*CLHEP::deg)); + const GeoShapeShift* shiftB = new GeoShapeShift(trdB,GeoTrf::TranslateY3D(+y2)*GeoTrf::RotateX3D(-90*CLHEP::deg)*GeoTrf::RotateZ3D(-90*CLHEP::deg)); const GeoShapeUnion* dtrd = new GeoShapeUnion(shiftA,shiftB); SoVisualizeAction* sa = new SoVisualizeAction(); @@ -175,14 +177,14 @@ SoNode* TrackingVolumeToSoNode::translateTrackingVolume(const Trk::TrackingVolu } else if ( type==1 ) { const GeoTubs* tubs = new GeoTubs(innerR,outerR,hZ,-hPhi,2*hPhi); const GeoBox* box = new GeoBox( innerR, tp*innerR, hZ); - const GeoShapeSubtraction* sub = new GeoShapeSubtraction(tubs,new GeoShapeShift(box,HepGeom::Transform3D())); + const GeoShapeSubtraction* sub = new GeoShapeSubtraction(tubs,new GeoShapeShift(box,GeoTrf::Transform3D::Identity())); SoVisualizeAction* sa = new SoVisualizeAction(); sa->handleShape(sub); sovol = sa->getShape(); } else if ( type==2 ) { const GeoTubs* tubs = new GeoTubs(innerR,outerR/cos(hPhi),hZ,-hPhi,2*hPhi); const GeoBox* box = new GeoBox( outerR*(1./cos(hPhi)-1.),tp*outerR,hZ ); - const GeoShapeSubtraction* sub = new GeoShapeSubtraction(tubs,new GeoShapeShift(box,HepGeom::TranslateX3D(outerR/cos(hPhi)))); + const GeoShapeSubtraction* sub = new GeoShapeSubtraction(tubs,new GeoShapeShift(box,GeoTrf::TranslateX3D(outerR/cos(hPhi)))); SoVisualizeAction* sa = new SoVisualizeAction(); sa->handleShape(sub); sovol = sa->getShape(); @@ -190,7 +192,7 @@ SoNode* TrackingVolumeToSoNode::translateTrackingVolume(const Trk::TrackingVolu const GeoTubs* tubs = new GeoTubs(innerR,outerR/cos(hPhi),hZ,-hPhi,2*hPhi); const GeoBox* boxO = new GeoBox( outerR*(1./cos(hPhi)-1.),tp*outerR,hZ ); const GeoBox* boxI = new GeoBox( innerR, tp*innerR, hZ); - const GeoShapeUnion* uni = new GeoShapeUnion(boxI,new GeoShapeShift(boxO,HepGeom::TranslateX3D(outerR/cos(hPhi)))); + const GeoShapeUnion* uni = new GeoShapeUnion(boxI,new GeoShapeShift(boxO,GeoTrf::TranslateX3D(outerR/cos(hPhi)))); const GeoShapeSubtraction* sub = new GeoShapeSubtraction(tubs,uni); SoVisualizeAction* sa = new SoVisualizeAction(); sa->handleShape(sub); @@ -267,9 +269,9 @@ const GeoShape* TrackingVolumeToSoNode::getShapeFromBounds(const Trk::VolumeBoun double thPlus = tvolBevCylBounds->thetaPlus(); double thMinus= tvolBevCylBounds->thetaMinus(); const GeoTube* tub = new GeoTube(innerR, outerR, halfZ); - HepGeom::Transform3D trBoxP = HepGeom::TranslateZ3D(+halfZ)*HepGeom::RotateY3D(thPlus); + GeoTrf::Transform3D trBoxP = GeoTrf::TranslateZ3D(+halfZ)*GeoTrf::RotateY3D(thPlus); const GeoShapeShift* boxP = new GeoShapeShift(new GeoBox(2*outerR/cos(thPlus),outerR ,outerR*sin(thPlus)),trBoxP); - HepGeom::Transform3D trBoxM = HepGeom::TranslateZ3D(-halfZ)*HepGeom::RotateY3D(-thMinus); + GeoTrf::Transform3D trBoxM = GeoTrf::TranslateZ3D(-halfZ)*GeoTrf::RotateY3D(-thMinus); const GeoShapeShift* boxM = new GeoShapeShift(new GeoBox(2*outerR/cos(thPlus),outerR ,outerR*sin(thPlus)),trBoxM); const GeoShapeSubtraction* shape= new GeoShapeSubtraction( new GeoShapeSubtraction(tub,boxM), boxP); @@ -298,8 +300,8 @@ const GeoShape* TrackingVolumeToSoNode::getShapeFromBounds(const Trk::VolumeBoun } const GeoShape* shape1 = getShapeFromBounds(vb1); const GeoShape* shape2 = getShapeFromBounds(vb2); - const GeoShapeShift* shift1 = new GeoShapeShift(shape1, Amg::EigenTransformToCLHEP(transf1) ); - const GeoShapeShift* shift2 = new GeoShapeShift(shape2, Amg::EigenTransformToCLHEP(transf2) ); + const GeoShapeShift* shift1 = new GeoShapeShift(shape1, transf1); + const GeoShapeShift* shift2 = new GeoShapeShift(shape2, transf2); const GeoShapeSubtraction* subtr= new GeoShapeSubtraction(shift1, shift2); return subtr; } @@ -325,8 +327,8 @@ const GeoShape* TrackingVolumeToSoNode::getShapeFromBounds(const Trk::VolumeBoun } const GeoShape* shape1 = getShapeFromBounds(vb1); const GeoShape* shape2 = getShapeFromBounds(vb2); - const GeoShapeShift* shift1 = new GeoShapeShift(shape1, Amg::EigenTransformToCLHEP(transf1) ); - const GeoShapeShift* shift2 = new GeoShapeShift(shape2, Amg::EigenTransformToCLHEP(transf2) ); + const GeoShapeShift* shift1 = new GeoShapeShift(shape1,transf1); + const GeoShapeShift* shift2 = new GeoShapeShift(shape2,transf2); if (tvolCombBounds->intersection()) { const GeoShapeIntersection* intersection= new GeoShapeIntersection( shift1, shift2); return intersection; diff --git a/graphics/VP1/VP1Systems/VP1VertexSystems/src/VP1VertexCollection.cxx b/graphics/VP1/VP1Systems/VP1VertexSystems/src/VP1VertexCollection.cxx index 13826815f6d78723d44a81fa064b30361b729df7..9c6e6b42b46269d9e9e083b3fcc3014533b0f055 100644 --- a/graphics/VP1/VP1Systems/VP1VertexSystems/src/VP1VertexCollection.cxx +++ b/graphics/VP1/VP1Systems/VP1VertexSystems/src/VP1VertexCollection.cxx @@ -42,6 +42,7 @@ #include "TrkParticleBase/LinkToTrackParticleBase.h" #include "TrkTrackLink/ITrackLink.h" #include "GeoPrimitives/GeoPrimitives.h" +#include "GaudiKernel/SystemOfUnits.h" #include <iostream> @@ -511,8 +512,8 @@ QStringList VP1VertexCollection::infoOnClicked(SoPath* pickedPath) //Make output: l <<"Reconstructed vertex from collection "+text()+":" ; - l << "--Position [CLHEP::mm]: ("+str(vtx->recVertex().position().x()/CLHEP::mm)+", "+ - str(vtx->recVertex().position().y()/CLHEP::mm)+", "+str(vtx->recVertex().position().z()/CLHEP::mm)+")"; + l << "--Position [CLHEP::mm]: ("+str(vtx->recVertex().position().x()/Gaudi::Units::mm)+", "+ + str(vtx->recVertex().position().y()/Gaudi::Units::mm)+", "+str(vtx->recVertex().position().z()/Gaudi::Units::mm)+")"; //Track associations. (in the future we will use them to tell the //track system to e.g. colour tracks by vertex - for now just print the number of those): diff --git a/graphics/VP1/VP1Utils/CMakeLists.txt b/graphics/VP1/VP1Utils/CMakeLists.txt index 1de2eb71f69a20058c3102ed43375672a177a6be..09ebbed35daca1bb830c1e0777deaa621e929320 100644 --- a/graphics/VP1/VP1Utils/CMakeLists.txt +++ b/graphics/VP1/VP1Utils/CMakeLists.txt @@ -13,7 +13,6 @@ atlas_depends_on_subdirs( PUBLIC Control/AthenaKernel Control/StoreGate - DetectorDescription/GeoModel/GeoModelKernel DetectorDescription/GeoPrimitives Event/EventPrimitives GaudiKernel @@ -44,6 +43,7 @@ find_package( Coin3D ) find_package( Eigen ) find_package( HepPDT ) find_package( Qt5 COMPONENTS Core HINTS ${QT5_ROOT} ) +find_package( GeoModel ) # CLHEP definitions: add_definitions( -DCLHEP_MAX_MIN_DEFINED @@ -59,7 +59,7 @@ atlas_add_library( VP1Utils VP1Utils/*.h src/*.cxx src/*.cpp INCLUDE_DIRS ${CLHEP_INCLUDE_DIRS} PRIVATE_INCLUDE_DIRS ${HEPPDT_INCLUDE_DIRS} ${COIN3D_INCLUDE_DIRS} ${EIGEN_INCLUDE_DIRS} - LINK_LIBRARIES ${CLHEP_LIBRARIES} GeoModelKernel EventPrimitives + LINK_LIBRARIES ${CLHEP_LIBRARIES} ${GEOMODEL_LIBRARIES} EventPrimitives GaudiKernel VP1Base StoreGateLib SGtests AthDSoCallBacks MuonIdHelpersLib GeoPrimitives Qt5::Core PRIVATE_LINK_LIBRARIES ${HEPPDT_LIBRARIES} ${COIN3D_LIBRARIES} diff --git a/graphics/VP1/VP1Utils/src/HitToSodeNode.cxx b/graphics/VP1/VP1Utils/src/HitToSodeNode.cxx index 2802dc71c0b9643465e0bb354f2df505da36948b..6a2b2f121eebf2679cef971b0699cb11ff3d25b4 100644 --- a/graphics/VP1/VP1Utils/src/HitToSodeNode.cxx +++ b/graphics/VP1/VP1Utils/src/HitToSodeNode.cxx @@ -100,7 +100,7 @@ double HitToSoNode::getTGCAngle(Identifier id) const { } Amg::Vector3D lpos_shift(lposTGC.x(),locy_shift,z_shift); - const Amg::Transform3D tgcTrans = Amg::CLHEPTransformToEigen(detEl->getMaterialGeom()->getAbsoluteTransform()); + const Amg::Transform3D tgcTrans = detEl->getMaterialGeom()->getAbsoluteTransform(); Amg::Vector3D gpos = tgcTrans * lposTGC; Amg::Vector3D gpos_shift = tgcTrans*lpos_shift; diff --git a/graphics/VP1/VP1Utils/src/SbPolyhedrizeAction.cxx b/graphics/VP1/VP1Utils/src/SbPolyhedrizeAction.cxx index ac6d6f4903621446fc6f092eccb98ca19957e1b3..c9400065b618d611268d819154d9c950f8a6e2fc 100644 --- a/graphics/VP1/VP1Utils/src/SbPolyhedrizeAction.cxx +++ b/graphics/VP1/VP1Utils/src/SbPolyhedrizeAction.cxx @@ -2,6 +2,7 @@ Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration */ +#include "GeoPrimitives/GeoPrimitives.h" #include "GeoModelKernel/GeoShapeShift.h" #include "GeoModelKernel/GeoShapeIntersection.h" #include "GeoModelKernel/GeoShapeUnion.h" @@ -19,6 +20,7 @@ #include "GeoModelKernel/GeoTessellatedSolid.h" #include "GeoModelKernel/GeoFacet.h" #include "GeoModelKernel/GeoGenericTrap.h" +#include "GeoModelKernel/GeoDefinitions.h" #include "VP1Utils/SbPolyhedrizeAction.h" #include "VP1HEPVis/SbPolyhedron.h" @@ -40,8 +42,8 @@ SbPolyhedrizeAction::~SbPolyhedrizeAction() void SbPolyhedrizeAction::handleShift(const GeoShapeShift *shift) { shift->getOp()->exec(this); - CLHEP::HepRotation rotation=shift->getX().getRotation(); - CLHEP::Hep3Vector translation = shift->getX().getTranslation(); + GeoTrf::RotationMatrix3D rotation=shift->getX().rotation(); + GeoTrf::Vector3D translation = shift->getX().translation(); // rbianchi - 14.12.2012 // SbVec3f trx(translation.x(),translation.y(),translation.z()); @@ -51,9 +53,9 @@ void SbPolyhedrizeAction::handleShift(const GeoShapeShift *shift) // 0,0,0,1)); SbVec3d trx(translation.x(),translation.y(),translation.z()); #include <VP1HEPVis/SbRotation.h> //using doubles instead of floats. - HEPVis::SbRotation rot(rotation.xx(),rotation.yx(),rotation.zx(),0, - rotation.xy(),rotation.yy(),rotation.zy(),0, - rotation.xz(),rotation.yz(),rotation.zz(),0, + HEPVis::SbRotation rot(rotation(0,0),rotation(1,0),rotation(2,0),0, + rotation(0,1),rotation(1,1),rotation(2,1),0, + rotation(0,2),rotation(1,2),rotation(2.2),0, 0,0,0,1); //--- diff --git a/graphics/VP1/VP1Utils/src/SoVisualizeAction.cxx b/graphics/VP1/VP1Utils/src/SoVisualizeAction.cxx index 3867818cc94885884b4a92121dd5630878fb007a..dec8091d1fe4688b73a66fefa83cef202ea222d7 100644 --- a/graphics/VP1/VP1Utils/src/SoVisualizeAction.cxx +++ b/graphics/VP1/VP1Utils/src/SoVisualizeAction.cxx @@ -14,6 +14,7 @@ #include "GeoModelKernel/GeoTessellatedSolid.h" #include "GeoModelKernel/GeoFacet.h" #include "GeoModelKernel/GeoGenericTrap.h" +#include "GeoModelKernel/Units.h" #include "GeoSpecialShapes/LArCustomShape.h" #include "GeoSpecialShapes/LArWheelCalculator.h" #include "VP1HEPVis/nodes/SoTubs.h" @@ -154,11 +155,11 @@ void SoVisualizeAction::handleLArCustom(const LArCustomShape *custom) static const double eta_low = 1.375; - // static const double zWheelRefPoint = 3689.5*CLHEP::mm; //=endg_z0 - static const double dMechFocaltoWRP = 3691. *CLHEP::mm; //=endg_z1 - // static const double dElecFocaltoWRP = 3689. *CLHEP::mm; //=endg_dcf - static const double dWRPtoFrontFace = 11. *CLHEP::mm; - static const double rOuterCutoff = 2034. *CLHEP::mm; //=endg_rlimit + // static const double zWheelRefPoint = 3689.5*GeoModelKernelUnits::mm; //=endg_z0 + static const double dMechFocaltoWRP = 3691. *GeoModelKernelUnits::mm; //=endg_z1 + // static const double dElecFocaltoWRP = 3689. *GeoModelKernelUnits::mm; //=endg_dcf + static const double dWRPtoFrontFace = 11. *GeoModelKernelUnits::mm; + static const double rOuterCutoff = 2034. *GeoModelKernelUnits::mm; //=endg_rlimit SoLAr::initClass(); @@ -181,7 +182,7 @@ void SoVisualizeAction::handleLArCustom(const LArCustomShape *custom) rInner[1] = zWheelBackFace * tanThetaInner; // Note that there is a 3mm gap between the outer surface of the // inner wheel and the inner surface of the outer wheel. - double HalfGapBetweenWheels = 0.15*CLHEP::cm; // In DB EMECGEOMETRY.DCRACK + double HalfGapBetweenWheels = 0.15*GeoModelKernelUnits::cm; // In DB EMECGEOMETRY.DCRACK rOuter[0] = zWheelFrontFace * tanThetaMid - HalfGapBetweenWheels; rOuter[1] = zWheelBackFace * tanThetaMid - HalfGapBetweenWheels; solar->fRmin.setValues(0,2,rInner); @@ -201,7 +202,7 @@ void SoVisualizeAction::handleLArCustom(const LArCustomShape *custom) double zWheelBackFace = zWheelFrontFace + calc->GetWheelThickness(); // Note that there is a 3mm gap between the outer surface of the // inner wheel and the inner surface of the outer wheel. - double HalfGapBetweenWheels = 0.15*CLHEP::cm; // In DB! (EMECGEOMETRY.DCRACK); + double HalfGapBetweenWheels = 0.15*GeoModelKernelUnits::cm; // In DB! (EMECGEOMETRY.DCRACK); rInner[0] = zWheelFrontFace * tanThetaMid + HalfGapBetweenWheels; rInner[2] = zWheelBackFace * tanThetaMid + HalfGapBetweenWheels; rOuter[0] = zWheelFrontFace * tanThetaOuter;