26 #include "TRotation.h"
27 #include "TGeoMatrix.h"
44 fRotation(TGeoRotation()),
47 fNormalToFrontFace(0,0,0),
58 fNormalToFrontFace(0,0,0),
67 *
TMath::Cos(trap.GetPhi() * TMath::DegToRad());
69 *
TMath::Sin(trap.GetPhi() * TMath::DegToRad());
71 Double_t axis[3] = { trap.GetDz() * tx, trap.GetDz() * ty, trap.GetDz() };
72 Double_t axis_rotated[3]; rot.LocalToMaster(axis, axis_rotated);
73 TVector3 axis_vector(axis_rotated);
77 Double_t normal[3] = { 0.0, 0.0, 1.0 };
78 Double_t normal_rotated[3]; rot.LocalToMaster(normal, normal_rotated);
79 TVector3 normal_vector(normal_rotated);
81 if (pos.Dot(axis_vector) < 0.0) {
87 fAxis = -1.0 * axis_vector.Unit();
94 fAxis = +1.0 * axis_vector.Unit();
const TGeoTrap & geometry() const
const PndEmcTwoCoordIndex * myIndex() const
const TVector3 & frontCentre() const
represents coordinates of one crystal
stores crystal index coordinates (x,y) or (theta,phi)
const PndEmcTwoCoordIndex * fTCIIndex
virtual bool operator<(const PndEmcXtal &compare) const
const TVector3 & axisVector() const
const TVector3 & normalToFrontFace() const
const TGeoRotation & rotation() const
TVector3 fNormalToFrontFace
const TVector3 & centre() const
const TGeoRotation fRotation
virtual bool operator==(const PndEmcXtal &compare) const