|
ATLAS Offline Software
|
Go to the documentation of this file.
5 #ifndef PIXELGEOMODEL_GEOPIXELDETAILEDSTAVESUPPORT_H
6 #define PIXELGEOMODEL_GEOPIXELDETAILEDSTAVESUPPORT_H
10 #include "GeoModelKernel/GeoDefinitions.h"
11 #include "GeoModelKernel/GeoPhysVol.h"
20 GeoModelIO::ReadGeoModel* sqliteReader,
21 std::shared_ptr<std::map<std::string, GeoFullPhysVol*>> mapFPV,
22 std::shared_ptr<std::map<std::string, GeoAlignableTransform*>> mapAX);
23 virtual GeoVPhysVol*
Build()
override;
35 double moduleThickN3D,
double moduleThickP3D,
double moduleWidth3D)
override;
65 std::vector<int> iExcept = std::vector<int>());
66 void AddSurroundingXYMargin(
double vMarginX,
double vMarginY, std::vector<double> &xPoint, std::vector<double>&yPoint);
86 double ComputeAngle(
double ux,
double uy,
double vx,
double vy);
static constexpr double m_oneDegree
double m_OmegaEndStavePointY
virtual GeoVPhysVol * getPhysVol() override
GeoPhysVol * m_endblockFlexPhysVol
double m_OmegaEndStaveThick
virtual double thicknessN() const override
virtual GeoVPhysVol * Build() override
GeoNodePtr< GeoTransform > m_endblockFlexTrf
GeoPhysVol * m_endblockAPhysVol
virtual GeoPhysVol * getEndblockEnvelopShape(int) override
GeoPhysVol * m_serviceCoolPipePhysVol
GeoPhysVol * m_endblockCPhysVol
GeoIntrusivePtr< T > GeoNodePtr
GeoNodePtr< GeoTransform > m_serviceCoolPipeTrfA
double m_endblockSrvLength
virtual int PixelNPlanarModule() const override
double ComputeDistance(GeoTrf::Vector3D p, GeoTrf::Vector3D q)
virtual double thicknessP() const override
virtual double getEndblockLength() const override
void ComputeStaveExternalShape()
double m_MidStaveSidePointX
GeoTrf::Vector3D NormalizeDir(GeoTrf::Vector3D v)
virtual const GeoTrf::Transform3D & transform() const override
virtual GeoSimplePolygonBrep * computeStaveEnvelopShape(double safetyMargin) override
double m_MidStaveSidePointY
Eigen::Affine3d Transform3D
void AddSurroundingXYMargin(double vMarginX, double vMarginY, std::vector< double > &xPoint, std::vector< double > &yPoint)
virtual GeoTransform * getEndblockEnvelopShapeTrf(int) override
void RemoveCoincidentAndColinearPointsFromShape(std::vector< double > &xPoint, std::vector< double > &yPoint)
GeoNodePtr< GeoTransform > m_serviceCoolPipeTrfC
GeoNodePtr< GeoVPhysVol > m_physVol
Eigen::Matrix< double, 3, 1 > Vector3D
GeoTrf::Vector3D IntersectionPoint(double Ax, double Ay, double Bx, double By, double Cx, double Cy, double Dx, double Dy)
GeoTrf::Vector3D NeighbourPoint_Rad(GeoTrf::Vector3D p, GeoTrf::Vector3D v, double delta)
virtual int PixelNModule() const override
virtual double getEndblockZpos() const override
virtual int PixelN3DModule() const override
double m_OmegaMidStaveThick
double m_OmegaEndStavePointX
GeoNodePtr< GeoSimplePolygonBrep > m_basicStaveEnvelopShape
GeoTrf::Transform3D m_transform
GeoNodePtr< GeoSimplePolygonBrep > m_staveEnvelopShape
GeoPixelDetailedStaveSupport(InDetDD::PixelDetectorManager *ddmgr, PixelGeometryManager *mgr, GeoModelIO::ReadGeoModel *sqliteReader, std::shared_ptr< std::map< std::string, GeoFullPhysVol * >> mapFPV, std::shared_ptr< std::map< std::string, GeoAlignableTransform * >> mapAX)
GeoTrf::Vector3D NeighbourPoint_Perp(GeoTrf::Vector3D p, GeoTrf::Vector3D v, double delta, int iDir)
virtual double getServiceZpos() const override
virtual void computeStaveEnvelopTransformAndSize(double moduleThickN, double moduleThickP, double moduleWidth, double moduleThickN3D, double moduleThickP3D, double moduleWidth3D) override
void GetSurroundingConvexShape(std::vector< double > &xPoint, std::vector< double > &yPoint, std::vector< int > iExcept=std::vector< int >())
double ComputeAngle(double ux, double uy, double vx, double vy)