35 std::vector< std::shared_ptr<const Trk::Surface> > sSurfaces;
37 int startbinX = entryCids.first;
38 int endbinX = exitCids.first;
40 if (startbinX > endbinX)
std::swap(startbinX,endbinX);
42 for ( ; startbinX <= endbinX; ++startbinX)
46 int startbinY = entryCids.second;
47 int endbinY = exitCids.second;
49 if (startbinY > endbinY)
std::swap(startbinY,endbinY);
51 for ( ; startbinY <= endbinY; ++startbinY)
61 std::vector< std::shared_ptr<const Trk::Surface> >
stepSurfaces;
67 size_t sCellX = startCell.first;
68 size_t eCellX = endCell.first;
69 if (sCellX > eCellX)
std::swap(sCellX,eCellX);
71 if (sCellX > 0) --sCellX;
74 size_t sCellY = startCell.second;
75 size_t eCellY = endCell.second;
76 if (sCellY > eCellY)
std::swap(sCellY,eCellY);
const std::vector< std::shared_ptr< const Surface > > stepSurfaces(const Amg::Vector3D &start, const Amg::Vector3D &end) const
return the test surfaces between these points
double lorentzAngle() const
return the lorentz Angle
int readoutDirection() const
return the readout direction
double m_lorentzAngle
the lorentz angle
DigitizationModule(std::shared_ptr< const Segmentation > moduleSegmentation, double halfThickness, int readoutDirection, double lorentzAngle)
Constructor from a Segmentation descriptor.
std::vector< std::shared_ptr< const Surface > > m_boundarySurfaces
boundary surfaces, they are ordered: readout, opposite, x boundaries, y boundaries
std::vector< std::shared_ptr< const Surface > > m_segmentationSurfacesX
segmentation surfaces in X - without boundaries
std::shared_ptr< const Segmentation > m_segmentation
segmentation descriptor
std::vector< std::shared_ptr< const Surface > > m_segmentationSurfacesY
segmentation surfaces in Y - without boundaries
double m_tanLorentzAngle
and the tangent of it
int m_readoutDirection
defines if the readout is along (+1) / (-1) wrt the z axis
double halfThickness() const
module thickness
const std::vector< std::shared_ptr< const Surface > > segmentationSurfaces(const DigitizationCell &entryCids, const DigitizationCell &exitCids) const
Return the internal test segmentation surfaces to test between entry and exit given by their cell id'...
Eigen::Matrix< double, 3, 1 > Vector3D
std::pair< size_t, size_t > DigitizationCell
void swap(ElementLinkVector< DOBJ > &lhs, ElementLinkVector< DOBJ > &rhs)