|
ATLAS Offline Software
|
#include <SCT_Ski.h>
|
| SCT_Ski (const std::string &name, SCT_Module *module, int stereoSign, double tilt, double length, InDetDD::SCT_DetectorManager *detectorManager, SCT_GeometryManager *geometryManager, SCT_MaterialManager *materials, GeoModelIO::ReadGeoModel *sqliteReader, std::shared_ptr< std::map< std::string, GeoFullPhysVol * >> mapFPV, std::shared_ptr< std::map< std::string, GeoAlignableTransform * >> mapAX) |
|
| ~SCT_Ski () |
|
virtual GeoVPhysVol * | build (SCT_Identifier id) |
|
double | thickness () const |
|
double | width () const |
|
double | length () const |
|
double | zPos (int i) const |
|
int | identifier (int i) const |
|
double | radialSep () const |
|
int | firstStagger () const |
|
int | modulesPerSki () const |
|
double | tilt () const |
|
int | stereoSign () const |
|
const SCT_Module * | module () const |
|
const SCT_Dogleg * | dogleg () const |
|
const SCT_CoolingBlock * | coolingBlock () const |
|
const SCT_CoolingPipe * | coolingPipe () const |
|
const GeoTransform * | getRefPointTransform () const |
|
const GeoTrf::Vector3D * | env1RefPointVector () const |
|
const GeoTrf::Vector3D * | env2RefPointVector () const |
|
double | env1Thickness () const |
|
double | env1Width () const |
|
double | env2Thickness () const |
|
double | env2Width () const |
|
double | coolingBlockOffsetX () const |
|
double | coolingBlockOffsetY () const |
|
double | coolingBlockOffsetZ () const |
|
double | coolingPipeOffsetX () const |
|
double | coolingPipeOffsetY () const |
|
double | doglegOffsetX () const |
|
double | doglegOffsetY () const |
|
const std::string & | getName () const |
|
std::string | intToString (int i) const |
|
Definition at line 28 of file SCT_Ski.h.
◆ SCT_Ski() [1/2]
SCT_Ski::SCT_Ski |
( |
const std::string & |
name, |
|
|
SCT_Module * |
module, |
|
|
int |
stereoSign, |
|
|
double |
tilt, |
|
|
double |
length, |
|
|
InDetDD::SCT_DetectorManager * |
detectorManager, |
|
|
SCT_GeometryManager * |
geometryManager, |
|
|
SCT_MaterialManager * |
materials, |
|
|
GeoModelIO::ReadGeoModel * |
sqliteReader, |
|
|
std::shared_ptr< std::map< std::string, GeoFullPhysVol * >> |
mapFPV, |
|
|
std::shared_ptr< std::map< std::string, GeoAlignableTransform * >> |
mapAX |
|
) |
| |
◆ ~SCT_Ski()
◆ SCT_Ski() [2/2]
◆ build()
Implements SCT_UniqueComponentFactory.
Definition at line 341 of file SCT_Ski.cxx.
343 GeoPhysVol * ski=
nullptr;
353 GeoAlignableTransform * moduleTransform =
new GeoAlignableTransform(
m_modulePos[iModule]);
354 ski->add(moduleTransform);
356 ski->add(
new GeoIdentifierTag(
m_id[iModule]));
357 id.setEtaModule(
m_id[iModule]);
385 id.setEtaModule(
m_id[iModule]);
◆ coolingBlock()
◆ coolingBlockOffsetX()
double SCT_Ski::coolingBlockOffsetX |
( |
| ) |
const |
|
inline |
◆ coolingBlockOffsetY()
double SCT_Ski::coolingBlockOffsetY |
( |
| ) |
const |
|
inline |
◆ coolingBlockOffsetZ()
double SCT_Ski::coolingBlockOffsetZ |
( |
| ) |
const |
|
inline |
◆ coolingPipe()
◆ coolingPipeOffsetX()
double SCT_Ski::coolingPipeOffsetX |
( |
| ) |
const |
|
inline |
◆ coolingPipeOffsetY()
double SCT_Ski::coolingPipeOffsetY |
( |
| ) |
const |
|
inline |
◆ dogleg()
◆ doglegOffsetX()
double SCT_Ski::doglegOffsetX |
( |
| ) |
const |
|
inline |
◆ doglegOffsetY()
double SCT_Ski::doglegOffsetY |
( |
| ) |
const |
|
inline |
◆ env1RefPointVector()
const GeoTrf::Vector3D* SCT_Ski::env1RefPointVector |
( |
| ) |
const |
|
inline |
◆ env1Thickness()
double SCT_Ski::env1Thickness |
( |
| ) |
const |
|
inline |
◆ env1Width()
double SCT_Ski::env1Width |
( |
| ) |
const |
|
inline |
◆ env2RefPointVector()
const GeoTrf::Vector3D* SCT_Ski::env2RefPointVector |
( |
| ) |
const |
|
inline |
◆ env2Thickness()
double SCT_Ski::env2Thickness |
( |
| ) |
const |
|
inline |
◆ env2Width()
double SCT_Ski::env2Width |
( |
| ) |
const |
|
inline |
◆ epsilon()
double SCT_ComponentFactory::epsilon |
( |
| ) |
const |
|
protectedinherited |
◆ firstStagger()
int SCT_Ski::firstStagger |
( |
| ) |
const |
|
inline |
◆ getName()
const std::string& SCT_ComponentFactory::getName |
( |
| ) |
const |
|
inlineinherited |
◆ getParameters()
void SCT_Ski::getParameters |
( |
| ) |
|
|
private |
◆ getRefPointTransform()
const GeoTransform* SCT_Ski::getRefPointTransform |
( |
| ) |
const |
|
inline |
◆ identifier()
int SCT_Ski::identifier |
( |
int |
i | ) |
const |
|
inline |
◆ intToString()
std::string SCT_ComponentFactory::intToString |
( |
int |
i | ) |
const |
|
inherited |
◆ length()
double SCT_Ski::length |
( |
| ) |
const |
|
inline |
◆ module()
◆ modulesPerSki()
int SCT_Ski::modulesPerSki |
( |
| ) |
const |
|
inline |
◆ operator=()
◆ preBuild()
const GeoLogVol * SCT_Ski::preBuild |
( |
| ) |
|
|
privatevirtual |
Implements SCT_UniqueComponentFactory.
Definition at line 102 of file SCT_Ski.cxx.
116 int tiltSign = (
m_tilt < 0) ? -1 : +1;
125 double yModuleOffset = 0.0;
154 m_coolingPipePos =
new GeoTransform(GeoTrf::Translate3D(xCoolingPipePos, yCoolingPipePos, 0));
167 double xModulePos = stagger_sign * xModuleOffset;
168 double yModulePos = yModuleOffset;
169 double zModulePos =
m_zPos[iModule];
181 double xCoolingBlockPos = xCoolingBlockOffset + xModulePos;
182 double yCoolingBlockPos = yCoolingBlockOffset + yModulePos;
183 double zCoolingBlockPos = zCoolingBlockOffset + zModulePos;
184 m_coolingBlockPos.push_back(
new GeoTransform(GeoTrf::Translate3D(xCoolingBlockPos, yCoolingBlockPos, zCoolingBlockPos)));
190 double xDoglegPos = xDoglegOffset + xModulePos;
191 double yDoglegPos = yDoglegOffset + yModulePos;
192 double zDoglegPos = zDoglegOffset + zModulePos;
193 m_doglegPos.push_back(
new GeoTransform(GeoTrf::Translate3D(xDoglegPos, yDoglegPos, zDoglegPos)));
196 stagger_sign = - stagger_sign;
231 double moduleYMax = c4.y();
232 double moduleYMin = c5.y();
245 double skiWidth = moduleYMax - moduleYMin + 2*rphiClearance;
250 double skiThickness =
m_module->
thickness() + 2 * std::abs(xModuleOffset) + radialClearance;
260 double xmax1 = 0.5*skiThickness;
261 double xmin1 = -xModuleOffset + xDoglegOffset - 0.5*
m_dogleg->thickness();
262 double xmax2 = xmax1;
263 double xmin2 = xCoolingPipePos -
m_coolingPipe->pipeRadius();
267 double ymax1 = moduleYMax + rphiClearance;
268 double ymin1 = moduleYMin - rphiClearance;
292 double xCenter = 0.5*(xmin1+xmax1);
293 double yCenter = 0.5*(ymin1+ymax1);
294 double xShift2 = 0.5*(xmin2+xmax2) - xCenter;
295 double yShift2 = 0.5*(ymin2+ymax2) - yCenter;
306 GeoBox * envelope1 =
new GeoBox(0.5 * (xmax1-xmin1), 0.5 * (ymax1-ymin1), 0.5 *
m_length);
307 GeoBox * envelope2 =
new GeoBox(0.5 * (xmax2-xmin2), 0.5 * (ymax2-ymin2), 0.5 *
m_length);
309 const GeoShape * skiEnvelopeShape =
nullptr;
311 const GeoShape & tmpShape = (*envelope1).
312 add(*envelope2 << GeoTrf::Translate3D(xShift2, yShift2, 0));
313 skiEnvelopeShape = &tmpShape;
320 std::ostringstream
name;
◆ radialSep()
double SCT_Ski::radialSep |
( |
| ) |
const |
|
inline |
◆ stereoSign()
int SCT_Ski::stereoSign |
( |
| ) |
const |
|
inline |
◆ thickness()
double SCT_Ski::thickness |
( |
| ) |
const |
|
inline |
◆ tilt()
double SCT_Ski::tilt |
( |
| ) |
const |
|
inline |
◆ width()
double SCT_Ski::width |
( |
| ) |
const |
|
inline |
◆ zPos()
double SCT_Ski::zPos |
( |
int |
i | ) |
const |
|
inline |
◆ m_coolingBlock
◆ m_coolingBlockOffsetX
double SCT_Ski::m_coolingBlockOffsetX = 0.0 |
|
private |
◆ m_coolingBlockOffsetY
double SCT_Ski::m_coolingBlockOffsetY = 0.0 |
|
private |
◆ m_coolingBlockOffsetZ
double SCT_Ski::m_coolingBlockOffsetZ = 0.0 |
|
private |
◆ m_coolingBlockPhiOffset
double SCT_Ski::m_coolingBlockPhiOffset = 0.0 |
|
private |
◆ m_coolingBlockPos
std::vector<GeoTransform *> SCT_Ski::m_coolingBlockPos |
|
private |
◆ m_coolingBlockRadialOffset
double SCT_Ski::m_coolingBlockRadialOffset = 0.0 |
|
private |
◆ m_coolingPipe
◆ m_coolingPipeOffsetX
double SCT_Ski::m_coolingPipeOffsetX = 0.0 |
|
private |
◆ m_coolingPipeOffsetY
double SCT_Ski::m_coolingPipeOffsetY = 0.0 |
|
private |
◆ m_coolingPipePhiOffset
double SCT_Ski::m_coolingPipePhiOffset = 0.0 |
|
private |
◆ m_coolingPipePos
GeoIntrusivePtr<GeoTransform> SCT_Ski::m_coolingPipePos {} |
|
private |
◆ m_coolingPipeRadialOffset
double SCT_Ski::m_coolingPipeRadialOffset = 0.0 |
|
private |
◆ m_detectorManager
◆ m_dogleg
◆ m_doglegOffsetX
double SCT_Ski::m_doglegOffsetX = 0.0 |
|
private |
◆ m_doglegOffsetY
double SCT_Ski::m_doglegOffsetY = 0.0 |
|
private |
◆ m_doglegPhiOffset
double SCT_Ski::m_doglegPhiOffset = 0.0 |
|
private |
◆ m_doglegPos
std::vector<GeoTransform *> SCT_Ski::m_doglegPos |
|
private |
◆ m_doglegRadialOffset
double SCT_Ski::m_doglegRadialOffset = 0.0 |
|
private |
◆ m_env1RefPointVector
std::unique_ptr<GeoTrf::Vector3D> SCT_Ski::m_env1RefPointVector |
|
private |
For calculations of envelopes of SCT_DetailLayer.
Definition at line 133 of file SCT_Ski.h.
◆ m_env1Thickness
double SCT_Ski::m_env1Thickness = 0.0 |
|
private |
◆ m_env1Width
double SCT_Ski::m_env1Width = 0.0 |
|
private |
◆ m_env2RefPointVector
std::unique_ptr<GeoTrf::Vector3D> SCT_Ski::m_env2RefPointVector |
|
private |
For calculations of envelopes of SCT_DetailLayer.
Definition at line 135 of file SCT_Ski.h.
◆ m_env2Thickness
double SCT_Ski::m_env2Thickness = 0.0 |
|
private |
◆ m_env2Width
double SCT_Ski::m_env2Width = 0.0 |
|
private |
◆ m_firstStagger
int SCT_Ski::m_firstStagger = 0 |
|
private |
◆ m_geometryManager
◆ m_id
std::vector<int> SCT_Ski::m_id |
|
private |
◆ m_length
◆ m_logVolume
const GeoLogVol* SCT_UniqueComponentFactory::m_logVolume |
|
protectedinherited |
◆ m_mapAX
std::shared_ptr<std::map<std::string, GeoAlignableTransform*> > SCT_UniqueComponentFactory::m_mapAX |
|
protectedinherited |
◆ m_mapFPV
std::shared_ptr<std::map<std::string, GeoFullPhysVol*> > SCT_UniqueComponentFactory::m_mapFPV |
|
protectedinherited |
◆ m_materials
◆ m_module
◆ m_modulePos
std::vector<GeoTrf::Transform3D> SCT_Ski::m_modulePos |
|
private |
◆ m_modulesPerSki
int SCT_Ski::m_modulesPerSki = 0 |
|
private |
◆ m_name
std::string SCT_ComponentFactory::m_name |
|
privateinherited |
◆ m_nameTag
std::vector<GeoNameTag *> SCT_Ski::m_nameTag |
|
private |
◆ m_radialSep
double SCT_Ski::m_radialSep = 0.0 |
|
private |
◆ m_refPointTransform
GeoIntrusivePtr<GeoTransform> SCT_Ski::m_refPointTransform {} |
|
private |
◆ m_safety
double SCT_Ski::m_safety = 0.0 |
|
private |
◆ m_sqliteReader
GeoModelIO::ReadGeoModel* SCT_UniqueComponentFactory::m_sqliteReader |
|
protectedinherited |
◆ m_stereoSign
int SCT_Ski::m_stereoSign |
|
private |
◆ m_thickness
double SCT_Ski::m_thickness = 0.0 |
|
private |
◆ m_tilt
◆ m_width
double SCT_Ski::m_width = 0.0 |
|
private |
◆ m_zPos
std::vector<double> SCT_Ski::m_zPos |
|
private |
◆ s_epsilon
const double SCT_ComponentFactory::s_epsilon = 1.0e-6 * Gaudi::Units::mm |
|
staticprivateinherited |
The documentation for this class was generated from the following files:
SCT_GeometryManager * m_geometryManager
std::vector< double > m_zPos
GeoIntrusivePtr< GeoTransform > m_coolingPipePos
std::shared_ptr< std::map< std::string, GeoFullPhysVol * > > m_mapFPV
double coolingBlockOffsetX() const
double coolingBlockOffsetZ() const
const SCT_Module * module() const
std::shared_ptr< std::map< std::string, GeoAlignableTransform * > > m_mapAX
double m_coolingBlockOffsetZ
double coolingPipeOffsetX() const
std::unique_ptr< GeoTrf::Vector3D > m_env1RefPointVector
For calculations of envelopes of SCT_DetailLayer.
SCT_UniqueComponentFactory(const std::string &name, InDetDD::SCT_DetectorManager *detectorManager, SCT_GeometryManager *geometryManager, SCT_MaterialManager *materials=nullptr, GeoModelIO::ReadGeoModel *sqliteReader=nullptr, std::shared_ptr< std::map< std::string, GeoFullPhysVol * >> mapFPV=nullptr, std::shared_ptr< std::map< std::string, GeoAlignableTransform * >> mapAX=nullptr)
std::unique_ptr< SCT_Dogleg > m_dogleg
std::unique_ptr< SCT_CoolingBlock > m_coolingBlock
double coolingBlockOffsetY() const
double env1Length() const
double m_coolingPipeRadialOffset
InDetDD::SCT_DetectorManager * m_detectorManager
const SCT_GeneralParameters * generalParameters() const
double stereoAngle() const
GeoIntrusivePtr< GeoTransform > m_refPointTransform
double m_coolingPipeOffsetY
double env2Length() const
virtual GeoVPhysVol * build(SCT_Identifier id)
const GeoMaterial * gasMaterial() const
Eigen::Affine3d Transform3D
double doglegOffsetX() const
bool add(const std::string &hname, TKey *tobj)
const SCT_BarrelParameters * barrelParameters() const
double m_coolingPipeOffsetX
std::vector< GeoTrf::Transform3D > m_modulePos
double m_coolingBlockRadialOffset
const GeoTrf::Vector3D * env1RefPointVector() const
static const double s_epsilon
double m_doglegRadialOffset
SCT_MaterialManager * m_materials
std::string to_string(const DetectorType &type)
double coolingPipeOffsetY() const
std::vector< GeoTransform * > m_doglegPos
Eigen::Matrix< double, 3, 1 > Vector3D
const GeoLogVol * m_logVolume
double m_coolingBlockPhiOffset
std::unique_ptr< GeoTrf::Vector3D > m_env2RefPointVector
For calculations of envelopes of SCT_DetailLayer.
virtual void addAlignableTransform(int level, const Identifier &id, GeoAlignableTransform *xf, const GeoVFullPhysVol *child)
Add alignable transforms. No access to these, they will be changed by manager:
Eigen::Translation< double, 3 > Translation3D
double doglegOffsetY() const
double m_coolingBlockOffsetX
std::unique_ptr< SCT_CoolingPipe > m_coolingPipe
const GeoTrf::Vector3D * env2RefPointVector() const
std::vector< GeoTransform * > m_coolingBlockPos
GeoModelIO::ReadGeoModel * m_sqliteReader
double m_coolingBlockOffsetY
const std::string & getName() const
double m_coolingPipePhiOffset
std::vector< GeoNameTag * > m_nameTag
virtual const GeoLogVol * preBuild()