Belle II Software
release-08-01-10
|
Define the geometry of a BKLM module Each sector [octant] contains Modules. More...
#include <Module.h>
Public Member Functions | |
Module (void) | |
Empty constructor does nothing. | |
Module (double phiStripWidth, int phiStripMin, int phiStripMax, double zStripWidth, int zStripNumber, const CLHEP::Hep3Vector &globalOrigin, const CLHEP::Hep3Vector &localReconstructionShift, const CLHEP::HepRotation &rotation) | |
Constructor with explicit values (for RPC module) | |
Module (double stripWidth, int phiStripNumber, int phiSensorSide, int zStripNumber, const CLHEP::Hep3Vector &globalOrigin, const CLHEP::Hep3Vector &localReconstructionShift, const CLHEP::HepRotation &rotation, bool isFlipped) | |
Constructor with explicit values (for scint module) | |
Module (const Module &m) | |
Copy constructor. | |
Module & | operator= (const Module &m) |
Assignment operator: utilizes copy constructor. | |
~Module () | |
Destructor. | |
bool | isFlipped () const |
Determine if this module is flipped by 180 degrees about z axis within its air gap. | |
bool | hasRPCs () const |
Determine if this module contains RPCs (true) or scintillators (false) | |
int | getPhiStripMin () const |
Get module's phi-strip minimum index. | |
int | getPhiStripMax () const |
Get module's phi-strip maximum index. | |
double | getPhiStripWidth () const |
Get phi-strip width. | |
int | getZStripMin () const |
Get module's z-strip minimum index. | |
int | getZStripMax () const |
Get module's z-strip maximum index. | |
double | getZStripWidth () const |
Get z-strip width. | |
void | addPhiScint (int scint, double length, double offset, double position) |
Add one phi-measuring scintillator strip to the module. | |
void | addZScint (int scint, double length, double offset, double position) |
Add one z-measuring scintillator strip to the module. | |
double | getPhiScintHalfLength (int scint) const |
Get the half-length (within the scintillator envelope) of a given phi-measuring scintillator. | |
double | getPhiScintOffset (int scint) const |
Get the longitudinal offset (within the scintillator envelope) of a given phi-measuring scintillator. | |
double | getPhiScintPosition (int scint) const |
Get the transverse position (within the scintillator envelope) of a given phi-measuring scintillator. | |
double | getZScintHalfLength (int scint) const |
Get the half-length (within the scintillator envelope) of a given z-measuring scintillator. | |
double | getZScintOffset (int scint) const |
Get the longitudinal offset (within the scintillator envelope) of a given z-measuring scintillator. | |
double | getZScintPosition (int scint) const |
Get the transverse position (within the scintillator envelope) of a given z-measuring scintillator. | |
double | getStripLength (int plane, int strip) const |
Get scintillator length. | |
const CLHEP::Hep3Vector | getLocalPosition (double phiStripAve, double zStripAve) const |
Convert 2D strip position (0..nStrips along each axis) to local coordinates. | |
const CLHEP::Hep3Vector | getPropagationDistance (const CLHEP::Hep3Vector &) const |
Convert local coordinates to signal-propagation distance (cm). More... | |
double | getPropagationDistance (const CLHEP::Hep3Vector &local, int strip, bool phiReadout) const |
Convert local coordinates to signal-propagation distance (cm) Version for scintillators. More... | |
const CLHEP::Hep3Vector | getPropagationDistance (const CLHEP::Hep3Vector &, int stripZ, int stripPhi) const |
Convert local coordinates to signal-propagation distance (cm) Version for scintillators. | |
const CLHEP::Hep3Vector | getPropagationTimes (const CLHEP::Hep3Vector &) const |
Convert local coordinates to signal-propagation time (ns) Version for RPCs. | |
double | getPropagationTime (const CLHEP::Hep3Vector &local, int strip, bool phiReadout) const |
Convert local coordinates to signal-propagation time (ns) Version for scintillators. | |
const CLHEP::Hep3Vector | getPropagationTimes (const CLHEP::Hep3Vector &, int stripZ, int stripPhi) const |
Convert local coordinates to signal-propagation time (ns) Version for scintillators. | |
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. | |
int | getPhiStripNumber (const CLHEP::Hep3Vector &p) const |
Get phi strip corresponding to local phi coordinate. More... | |
int | getZStripNumber (const CLHEP::Hep3Vector &p) const |
Get z strip corresponding to local z coordinate. More... | |
const CLHEP::Hep3Vector | localToGlobal (const CLHEP::Hep3Vector &v, bool reco=false) const |
Transform space-point within this module from local to global coordinates. More... | |
const CLHEP::Hep3Vector | RotateToLocal (const CLHEP::Hep3Vector &v) const |
Rotate a vector from global to local system. | |
const CLHEP::Hep3Vector | RotateToGlobal (const CLHEP::Hep3Vector &v) const |
Rotate a vector from local to global system. | |
const CLHEP::Hep3Vector | globalToLocal (const CLHEP::Hep3Vector &v, bool reco=false) const |
Transform space-point within this module from global to local coordinates. More... | |
const CLHEP::Hep3Vector | getLocalReconstructionShift () const |
Return the local-coordinate real-vs-ideal translation of this module's sensitive volume; nominally (0,0,0) | |
const CLHEP::Hep3Vector | getGlobalOrigin () const |
Return the position (in global coordinates) of this module's sensitive-volume origin. | |
void | setAlignment (const HepGeom::Transform3D &moduleAlignment) |
Set the alignment Transformation. | |
void | setDisplacedGeo (const HepGeom::Transform3D &moduleDisplacedGeo) |
Set the displaced geometry Transformation. | |
const HepGeom::Transform3D | getAlignment () const |
Get the alignment Transformation. | |
const HepGeom::Transform3D | getDisplacedGeo () const |
Get the displaced geometry Transformation. | |
const CLHEP::HepRotation | getRotationFromTransform3D (const HepGeom::Transform3D &trans) const |
Get the rotation from Transform3D. | |
const CLHEP::Hep3Vector | getTranslationFromTransform3D (const HepGeom::Transform3D &trans) const |
Get the translation from Transform3D. | |
Private Attributes | |
bool | m_HasRPCs |
flag to indicate whether this module contains RPCs (true) or scintillators (false) | |
bool | m_IsFlipped |
flag to indicate if this module is flipped by 180 degrees about z axis within its air gap | |
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 | |
int | m_PhiStripMax |
to store the maximum phi strip number in this module | |
double | m_PhiPositionBase |
to store the base position (in strip More... | |
double | m_ZStripWidth |
to store the width (in cm) of each z strip in this module | |
int | m_ZStripMin |
to store the minimum z strip number in this module | |
int | m_ZStripMax |
to store the maximum z strip number in this module | |
double | m_ZPositionBase |
to store the base position (in strip More... | |
int | m_PhiSensorSide |
to store the sensor side for phi scintillators | |
double | m_SignalSpeed |
to store the signal-propagation speed (cm/ns) along the strip | |
CLHEP::Hep3Vector | m_GlobalOrigin |
to store the position (in global coordinates) of this module's sensitive-volume origin | |
CLHEP::Hep3Vector | m_LocalReconstructionShift |
to store the local-coordinate real-vs-ideal translation of this module's sensitive volume | |
CLHEP::HepRotation | m_Rotation |
to store the rotation matrix (in global coordinates) of this module's sector | |
CLHEP::HepRotation | m_RotationInverse |
to store the inverse of the rotation matrix (in global coordinates) of this module's sector | |
HepGeom::Transform3D | m_Alignment |
alignment transformation (rotation + shift) | |
CLHEP::HepRotation | m_AlignmentRotation |
rotation of the alignment transformation | |
CLHEP::Hep3Vector | m_AlignmentTranslation |
translation of the alignment transformation | |
HepGeom::Transform3D | m_AlignmentInverse |
inverse of alignment transformation | |
CLHEP::HepRotation | m_AlignmentRotationInverse |
inverse of the rotation of the alignment transformation | |
HepGeom::Transform3D | m_DisplacedGeo |
displaced geometry w.r.t the nominal geometry, as transformation (rotation + shift) | |
CLHEP::HepRotation | m_DisplacedGeoRotation |
rotation of the displaced geometry transformation | |
CLHEP::Hep3Vector | m_DisplacedGeoTranslation |
translation of the displaced geometry transformation | |
HepGeom::Transform3D | m_DisplacedGeoInverse |
inverse of displaced geometry transformation | |
CLHEP::HepRotation | m_DisplacedGeoRotationInverse |
inverse of the rotation of displaced geometry transformation | |
std::vector< double > | m_PhiScintLengths |
to store the length of each phi-measuring scintillator | |
std::vector< double > | m_PhiScintPositions |
to store the transverse position (within scintillator envelope) of each phi-measuring scintillator | |
std::vector< double > | m_PhiScintOffsets |
to store the longitudinal offset (within scintillator envelope) of each phi-measuring scintillator | |
std::vector< double > | m_ZScintLengths |
to store the length of each z-measuring scintillator | |
std::vector< double > | m_ZScintPositions |
to store the transverse position (within scintillator envelope) of each z-measuring scintillator | |
std::vector< double > | m_ZScintOffsets |
to store the longitudinal offset (within scintillator envelope) of each z-measuring scintillator | |
Define the geometry of a BKLM module Each sector [octant] contains Modules.
Sectors are numbered 1..8, moving counterclockwise around the global z axis in the global x-y plane. The local geometry of a sector and its modules is defined by the orientation of sector 1 (centred on the global +x axis).
SECTOR 1 GLOBAL COORDINATES SECTOR s LOCAL COORDINATES
+y _ +y _ ^ / | ^ / | | / | | / | | / | |/ | | / | /| | | | end | || end |
The sector's local origin is shifted along the global z axis so that it is at the boundary between the forward and backward barrel KLM.
The sector's local origin is shifted along the local +x axis so that it coincides with the middle of the layer-1 gap (=slot between iron layers); outer layers are at larger values of sector-local x. The module's local origin is shifted along the local x axis so that it is in the middle of the module's sensitive volume. The module's local origin is also shifted slightly along the local y and z axes so that it is in the middle of the sensitive volume along the local y axis and at the edge nearest the local origin of the sensitive volume along the local z axis.
For the backward sectors, the module is rotated by 180 degrees about the +x axis so that the orientation of the local z axis is flipped from the global orientation so that all modules extend along the local +z axis from the local z=0 (which is nearest the forward-backward boundary).
Strip numbering for RPCs: z-measuring strips: #1 is nearest the I.P., sensors are at the other end phi-measuring strips: #1 is on the local -y end, sensors are at the local +y end
Strip numbering for scintillatorss: z-measuring strips: #1 is nearest the I.P., sensors are at the other end phi-measuring strips: if phiSensorSide > 0: #1 is on the local -y end, sensors are at the local +y end if phiSensorSide < 0: #1 is on the local +y end, sensors are at the local -y end
int getPhiStripNumber | ( | const CLHEP::Hep3Vector & | p | ) | const |
Get phi strip corresponding to local phi coordinate.
Definition at line 349 of file Module.cc.
const CLHEP::Hep3Vector getPropagationDistance | ( | const CLHEP::Hep3Vector & | local | ) | const |
double getPropagationDistance | ( | const CLHEP::Hep3Vector & | local, |
int | strip, | ||
bool | phiReadout | ||
) | const |
int getZStripNumber | ( | const CLHEP::Hep3Vector & | p | ) | const |
const CLHEP::Hep3Vector globalToLocal | ( | const CLHEP::Hep3Vector & | v, |
bool | reco = false |
||
) | const |
const CLHEP::Hep3Vector localToGlobal | ( | const CLHEP::Hep3Vector & | v, |
bool | reco = false |
||
) | const |
|
private |
|
private |