 |
Belle II Software
release-05-02-19
|
14 #include <CLHEP/Geometry/Transform3D.h>
15 #include <CLHEP/Vector/Rotation.h>
16 #include <CLHEP/Vector/ThreeVector.h>
91 const CLHEP::Hep3Vector& globalOrigin,
92 const CLHEP::Hep3Vector& localReconstructionShift,
93 const CLHEP::HepRotation& rotation);
100 const CLHEP::Hep3Vector& globalOrigin,
101 const CLHEP::Hep3Vector& localReconstructionShift,
102 const CLHEP::HepRotation& rotation,
163 void addPhiScint(
int scint,
double length,
double offset,
double position);
166 void addZScint(
int scint,
double length,
double offset,
double position);
205 const CLHEP::Hep3Vector
getLocalPosition(
double phiStripAve,
double zStripAve)
const;
214 int strip,
bool phiReadout)
const;
223 int strip,
bool phiReadout)
const;
228 const CLHEP::Hep3Vector&,
int stripZ,
int stripPhi)
const;
231 double getPhiStrip(
const CLHEP::Hep3Vector& p)
const
237 double getZStrip(
const CLHEP::Hep3Vector& p)
const
253 const CLHEP::Hep3Vector
localToGlobal(
const CLHEP::Hep3Vector& v,
bool reco =
false)
const;
256 const CLHEP::Hep3Vector
RotateToLocal(
const CLHEP::Hep3Vector& v)
const
262 const CLHEP::Hep3Vector
RotateToGlobal(
const CLHEP::Hep3Vector& v)
const
270 const CLHEP::Hep3Vector
globalToLocal(
const CLHEP::Hep3Vector& v,
bool reco =
false)
const;
285 void setAlignment(
const HepGeom::Transform3D& moduleAlignment);
double m_SignalSpeed
to store the signal-propagation speed (cm/ns) along the strip
double m_PhiStripWidth
to store the width (in cm) of each phi strip this module
int m_PhiStripMin
to store the minimum phi strip number in this module
HepGeom::Transform3D m_DisplacedGeo
displaced geometry w.r.t the nominal geometry, as transformation (rotation + shift)
const HepGeom::Transform3D getAlignment() const
Get the alignment Transformation.
double getZScintOffset(int scint) const
Get the longitudinal offset (within the scintillator envelope) of a given z-measuring scintillator.
void addZScint(int scint, double length, double offset, double position)
Add one z-measuring scintillator strip to the module.
const CLHEP::Hep3Vector getPropagationDistance(const CLHEP::Hep3Vector &) const
Convert local coordinates to signal-propagation distance (cm).
const CLHEP::Hep3Vector getLocalReconstructionShift() const
Return the local-coordinate real-vs-ideal translation of this module's sensitive volume; nominally (0...
double m_PhiPositionBase
to store the base position (in strip
int m_PhiStripMax
to store the maximum phi strip number in this module
bool m_HasRPCs
flag to indicate whether this module contains RPCs (true) or scintillators (false)
double m_ZPositionBase
to store the base position (in strip
int getPhiStripMin() const
Get module's phi-strip minimum index.
const CLHEP::HepRotation getRotationFromTransform3D(const HepGeom::Transform3D &trans) const
Get the rotation from Transform3D.
const HepGeom::Transform3D getDisplacedGeo() const
Get the displaced geometry Transformation.
int getZStripMin() const
Get module's z-strip minimum index.
Module(void)
Empty constructor does nothing.
const CLHEP::Hep3Vector getPropagationTimes(const CLHEP::Hep3Vector &) const
Convert local coordinates to signal-propagation time (ns) Version for RPCs.
void addPhiScint(int scint, double length, double offset, double position)
Add one phi-measuring scintillator strip to the module.
double getPhiStripWidth() const
Get phi-strip width.
int getPhiStripNumber(const CLHEP::Hep3Vector &p) const
Get phi strip corresponding to local phi coordinate.
CLHEP::HepRotation m_AlignmentRotation
rotation of the alignment transformation
int m_PhiSensorSide
to store the sensor side for phi scintillators
Define the geometry of a BKLM module Each sector [octant] contains Modules.
double getPhiStrip(const CLHEP::Hep3Vector &p) const
Return phi strip (including fractional part) corresponding to local phi coordinate.
double getZStrip(const CLHEP::Hep3Vector &p) const
Return z strip (including fractional part) corresponding to local z coordinate.
double getZScintPosition(int scint) const
Get the transverse position (within the scintillator envelope) of a given z-measuring scintillator.
HepGeom::Transform3D m_DisplacedGeoInverse
inverse of displaced geometry transformation
const CLHEP::Hep3Vector getGlobalOrigin() const
Return the position (in global coordinates) of this module's sensitive-volume origin.
double getPhiScintOffset(int scint) const
Get the longitudinal offset (within the scintillator envelope) of a given phi-measuring scintillator.
const CLHEP::Hep3Vector getTranslationFromTransform3D(const HepGeom::Transform3D &trans) const
Get the translation from Transform3D.
CLHEP::HepRotation m_DisplacedGeoRotation
rotation of the displaced geometry transformation
std::vector< double > m_ZScintLengths
to store the length of each z-measuring scintillator
CLHEP::Hep3Vector m_AlignmentTranslation
translation of the alignment transformation
double getZScintHalfLength(int scint) const
Get the half-length (within the scintillator envelope) of a given z-measuring scintillator.
HepGeom::Transform3D m_AlignmentInverse
inverse of alignment transformation
CLHEP::HepRotation m_RotationInverse
to store the inverse of the rotation matrix (in global coordinates) of this module's sector
CLHEP::HepRotation m_Rotation
to store the rotation matrix (in global coordinates) of this module's sector
const CLHEP::Hep3Vector globalToLocal(const CLHEP::Hep3Vector &v, bool reco=false) const
Transform space-point within this module from global to local coordinates.
double m_ZStripWidth
to store the width (in cm) of each z strip in this module
Module & operator=(const Module &m)
Assignment operator: utilizes copy constructor.
Abstract base class for different kinds of events.
int m_ZStripMin
to store the minimum z strip number in this module
const CLHEP::Hep3Vector RotateToLocal(const CLHEP::Hep3Vector &v) const
Rotate a vector from global to local system.
int m_ZStripMax
to store the maximum z strip number in this module
double getPhiScintHalfLength(int scint) const
Get the half-length (within the scintillator envelope) of a given phi-measuring scintillator.
const CLHEP::Hep3Vector getLocalPosition(double phiStripAve, double zStripAve) const
Convert 2D strip position (0..nStrips along each axis) to local coordinates.
int getZStripNumber(const CLHEP::Hep3Vector &p) const
Get z strip corresponding to local z coordinate.
HepGeom::Transform3D m_Alignment
alignment transformation (rotation + shift)
CLHEP::HepRotation m_AlignmentRotationInverse
inverse of the rotation of the alignment transformation
void setDisplacedGeo(const HepGeom::Transform3D &moduleDisplacedGeo)
Set the displaced geometry Transformation.
std::vector< double > m_PhiScintPositions
to store the transverse position (within scintillator envelope) of each phi-measuring scintillator
CLHEP::Hep3Vector m_LocalReconstructionShift
to store the local-coordinate real-vs-ideal translation of this module's sensitive volume
double getPropagationTime(const CLHEP::Hep3Vector &local, int strip, bool phiReadout) const
Convert local coordinates to signal-propagation time (ns) Version for scintillators.
std::vector< double > m_ZScintOffsets
to store the longitudinal offset (within scintillator envelope) of each z-measuring scintillator
const CLHEP::Hep3Vector localToGlobal(const CLHEP::Hep3Vector &v, bool reco=false) const
Transform space-point within this module from local to global coordinates.
CLHEP::Hep3Vector m_DisplacedGeoTranslation
translation of the displaced geometry transformation
const CLHEP::Hep3Vector RotateToGlobal(const CLHEP::Hep3Vector &v) const
Rotate a vector from local to global system.
CLHEP::HepRotation m_DisplacedGeoRotationInverse
inverse of the rotation of displaced geometry transformation
bool isFlipped() const
Determine if this module is flipped by 180 degrees about z axis within its air gap.
int getPhiStripMax() const
Get module's phi-strip maximum index.
std::vector< double > m_PhiScintOffsets
to store the longitudinal offset (within scintillator envelope) of each phi-measuring scintillator
bool m_IsFlipped
flag to indicate if this module is flipped by 180 degrees about z axis within its air gap
double getZStripWidth() const
Get z-strip width.
CLHEP::Hep3Vector m_GlobalOrigin
to store the position (in global coordinates) of this module's sensitive-volume origin
bool hasRPCs() const
Determine if this module contains RPCs (true) or scintillators (false)
std::vector< double > m_PhiScintLengths
to store the length of each phi-measuring scintillator
void setAlignment(const HepGeom::Transform3D &moduleAlignment)
Set the alignment Transformation.
double getPhiScintPosition(int scint) const
Get the transverse position (within the scintillator envelope) of a given phi-measuring scintillator.
int getZStripMax() const
Get module's z-strip maximum index.
std::vector< double > m_ZScintPositions
to store the transverse position (within scintillator envelope) of each z-measuring scintillator