1 #ifndef FastSimulation_GeometryTool_Crystal_h 2 #define FastSimulation_GeometryTool_Crystal_h 5 #include "Math/GenVector/Plane3D.h" void getBackSide(XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
Coordinates of the back side.
const DetId & getDetId() const
get the DetId
crystalEqual(const DetId &cell)
const Plane3D & getBackPlane() const
back plane
const XYZPoint & getCenter() const
get 1/8*(Sum of corners)
void getFrontSide(std::vector< XYZPoint > &corners) const
const XYZPoint & getCenter() const
get 1/8*(Sum of corners)
const Plane3D & getLateralPlane(unsigned i) const
lateral planes
void getLateralSide(unsigned i, XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
Coordinates of the i=th lateral side.
const XYZVector & getLateralEdge(unsigned i) const
lateral directions
void getSide(const CaloDirection &side, XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
generic access
const XYZPoint & getFrontCenter() const
get front center
const XYZVector & getAxis() const
get crystal axis
void getSide(const CaloDirection &side, XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
generic access
ALPAKA_FN_ACC int side(int ieta, int iphi)
const XYZVector & exitingNormal(const CaloDirection &side) const
normal exiting vector for the surface
const XYZPoint & getFrontCenter() const
get front center
void getFrontSide(XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
coordinates of the front side
const Plane3D & getBackPlane() const
back plane
unsigned number() const
get the number of the crystal
const int getSubdetNumber() const
get the subdector
void getLateralSide(unsigned i, XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
Coordinates of the i=th lateral side.
void getFrontSide(XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
coordinates of the front side
const XYZVector & exitingNormal(const CaloDirection &side) const
normal exiting vector for the surface
math::XYZVector XYZVector
static unsigned oppositeDirection(unsigned iside)
const XYZVector & getAxis() const
get crystal axis
const XYZPoint & getBackCenter() const
get front center
const Plane3D & getLateralPlane(unsigned i) const
lateral planes
ROOT::Math::Plane3D Plane3D
void getLateralSide(unsigned i, std::vector< XYZPoint > &corners) const
const XYZVector & getFirstEdge() const
Direction of the first edge.
void getLateralEdges(unsigned i, XYZPoint &a, XYZPoint &b) const
get the lateral edges
void getLateralEdges(unsigned i, XYZPoint &, XYZPoint &) const
get the lateral edges
const XYZVector & getFirstEdge() const
Direction of the first edge.
void setNumber(unsigned n)
it might be useful to have a number assigned to the crystal
void setX0Back(double val)
set X0back (it depends on the choosen origin, it isn't purely geometrical)
void getBackSide(XYZPoint &a, XYZPoint &b, XYZPoint &c, XYZPoint &d) const
Coordinates of the back side.
const Plane3D & getPlane(const CaloDirection &side) const
generic access
const XYZVector & getLateralEdge(unsigned i) const
lateral directions
void getBackSide(std::vector< XYZPoint > &corners) const
const Plane3D & getPlane(const CaloDirection &side) const
generic access
bool operator()(const Crystal &xtal) const
const XYZPoint & getCorner(unsigned i) const
get the i-th corner
Crystal()=default
Empty constructor.
const XYZVector & getFifthEdge() const
Direction of the fifth edge.
const XYZPoint & getBackCenter() const
get front center
const Plane3D & getFrontPlane() const
front plane
XYZVectorD XYZVector
spatial vector with cartesian internal representation
CrystalNeighbour & crystalNeighbour(unsigned iq)
Direct acces to the iq-th neighbour.
void getDrawingCoordinates(std::vector< float > &x, std::vector< float > &y, std::vector< float > &z) const
for debugging.
const BaseCrystal * myCrystal_
std::vector< CrystalNeighbour > neighbours_
const XYZPoint & getCorner(unsigned i) const
get the i-th corner
void getDrawingCoordinates(std::vector< float > &x, std::vector< float > &y, std::vector< float > &z) const
for debugging.
void getSide(const CaloDirection &side, std::vector< XYZPoint > &corners) const
double getX0Back() const
get the X0back
CaloDirection
Codes the local directions in the cell lattice.
const XYZVector & getFifthEdge() const
Direction of the fifth edge.
const Plane3D & getFrontPlane() const
front plane
const int getSubdetNumber() const
get the subdector
ROOT::Math::Plane3D Plane3D