![]() |
PandaRoot
|
#include <PndGemSensor.h>
Public Member Functions | |
PndGemSensor () | |
PndGemSensor (TString tempName, Int_t detId, Int_t iType, Double_t x0, Double_t y0, Double_t z0, Double_t rotation, Double_t innerRad, Double_t outerRad, Double_t d, Double_t stripAngle0, Double_t stripAngle1, Double_t pitch0, Double_t pitch1) | |
PndGemSensor (TString tempName, Int_t stationNr, Int_t sectorNr, Int_t iType, Double_t x0, Double_t y0, Double_t z0, Double_t rotation, Double_t innerRad, Double_t outerRad, Double_t d, Double_t stripAngle0, Double_t stripAngle1, Double_t pitch0, Double_t pitch1) | |
PndGemSensor (const PndGemSensor &tempSensor) | |
virtual | ~PndGemSensor () |
TString | GetDetectorName () const |
void | SetDetectorId (Int_t stationNr, Int_t sensorNr) |
Int_t | GetDetectorId () const |
Int_t | GetSystemId () const |
Int_t | GetStationNr () const |
Int_t | GetSensorNr () const |
Int_t | GetType () const |
Double_t | GetX0 () const |
Double_t | GetY0 () const |
Double_t | GetZ0 () const |
Double_t | GetRotation () const |
Double_t | GetInnerRadius () const |
Double_t | GetOuterRadius () const |
Double_t | GetD () const |
Double_t | GetStripAngle (Int_t index) const |
Double_t | GetPitch (Int_t index) const |
Double_t | GetSigmaX () const |
Double_t | GetSigmaY () const |
Double_t | GetSigmaXY () const |
Int_t | GetNChannels () const |
Int_t | GetNChannelsFront () const |
Int_t | GetNChannelsBack () const |
Int_t | GetSideChannels (Int_t si) const |
Int_t | GetChannel (Double_t x, Double_t y, Int_t iSide) |
Int_t | GetChannel2 (Double_t x, Double_t y, Int_t iSide, Double_t &feeDist) |
Bool_t | Inside (Double_t x, Double_t y) |
Bool_t | Inside (Double_t radius) |
Double_t | GetStripOrientation (Double_t x, Double_t y, Int_t iSide) |
Double_t | GetDistance (Int_t iSide, Double_t chan1, Double_t chan2) |
Int_t | GetDistance (Int_t iSide, Int_t chanMin, Int_t chanMax, Int_t chanTest) |
Double_t | GetDistance2 (Int_t iSide, Double_t chan1, Double_t chan2) |
Int_t | GetSensorPart (Int_t iSide, Int_t chan) |
Double_t | GetMeanChannel (Int_t iSide, Double_t chan1, Double_t weight1, Double_t chan2, Double_t weight2) |
Int_t | GetNeighbours (Int_t iSide, Int_t iChan, Int_t &nChan1, Int_t &nChan2, Int_t &nChan3) |
Int_t | Intersect (Double_t iFStrip, Double_t iBStrip, Double_t &xCross, Double_t &yCross, Double_t &zCross) |
Int_t | Intersect (Double_t iFStrip, Double_t iBStrip, Double_t &xCross, Double_t &yCross, Double_t &zCross, Double_t &dr, Double_t &dp) |
Int_t | Intersect (Double_t iFStrip, Double_t iBStrip, Double_t &xCross, Double_t &yCross, Double_t &zCross, Double_t &dx, Double_t &dy, Double_t &dr, Double_t &dp) |
void | Reset () |
void | Print () |
This class describes the digitisation scheme for a sensor of the GEM. The sensor shape is circulare with inner and outer radius. The sensor center is defined in 3-D space. The rotation angle is defined as angle around the beam axis. In the sensor two views of strip orientation are defined by specifing the angle of rotation and the smallest pitch. The strip rotation angle should be understood as follows:
Definition at line 40 of file PndGemSensor.h.
PndGemSensor::PndGemSensor | ( | ) |
Default constructor
PndGemSensor::PndGemSensor | ( | TString | tempName, |
Int_t | detId, | ||
Int_t | iType, | ||
Double_t | x0, | ||
Double_t | y0, | ||
Double_t | z0, | ||
Double_t | rotation, | ||
Double_t | innerRad, | ||
Double_t | outerRad, | ||
Double_t | d, | ||
Double_t | stripAngle0, | ||
Double_t | stripAngle1, | ||
Double_t | pitch0, | ||
Double_t | pitch1 | ||
) |
Standard constructor
fName | Unique sensor name |
detId | Unique detector identifier |
iType | Sensor type (1,2,3) |
pos[] | sensor centre coordinate in global c.s [cm] |
rotation | rotation in global c.s. [rad] |
innerRadius | sensor inner radius in [cm] |
outerRadius | sensor outer radius in [cm] |
d | sensor thickness in [cm] |
stripAngle[] | strip angle, if 0 - radial strips, measuring theta, if 60 - modified radial strips, joining inner ring with outer rotated by 60 deg. if 90 - concentric strips, measuring radius |
pitch[] | readout radial/angle strip pitch or pixel width in x/y [cm] |
PndGemSensor::PndGemSensor | ( | TString | tempName, |
Int_t | stationNr, | ||
Int_t | sectorNr, | ||
Int_t | iType, | ||
Double_t | x0, | ||
Double_t | y0, | ||
Double_t | z0, | ||
Double_t | rotation, | ||
Double_t | innerRad, | ||
Double_t | outerRad, | ||
Double_t | d, | ||
Double_t | stripAngle0, | ||
Double_t | stripAngle1, | ||
Double_t | pitch0, | ||
Double_t | pitch1 | ||
) |
PndGemSensor::PndGemSensor | ( | const PndGemSensor & | tempSensor | ) |
|
virtual |
Destructor
Int_t PndGemSensor::GetChannel | ( | Double_t | x, |
Double_t | y, | ||
Int_t | iSide | ||
) |
Calculate channel number for a coordinate pair.
x | x coordinate in global c.s. [cm] |
y | y coordinate in global c.s. [cm] |
iSide | 0 = front side, 1 = back side iChan channel number. -1 if point is outside sensor. Will return the same for both sides in case of pixel sensor. |
Referenced by GetSideChannels().
Int_t PndGemSensor::GetChannel2 | ( | Double_t | x, |
Double_t | y, | ||
Int_t | iSide, | ||
Double_t & | feeDist | ||
) |
Referenced by GetSideChannels().
|
inline |
Definition at line 86 of file PndGemSensor.h.
|
inline |
Definition at line 72 of file PndGemSensor.h.
|
inline |
Double_t PndGemSensor::GetDistance | ( | Int_t | iSide, |
Double_t | chan1, | ||
Double_t | chan2 | ||
) |
Referenced by GetSideChannels().
Int_t PndGemSensor::GetDistance | ( | Int_t | iSide, |
Int_t | chanMin, | ||
Int_t | chanMax, | ||
Int_t | chanTest | ||
) |
Double_t PndGemSensor::GetDistance2 | ( | Int_t | iSide, |
Double_t | chan1, | ||
Double_t | chan2 | ||
) |
Referenced by GetSideChannels().
|
inline |
Definition at line 84 of file PndGemSensor.h.
Double_t PndGemSensor::GetMeanChannel | ( | Int_t | iSide, |
Double_t | chan1, | ||
Double_t | weight1, | ||
Double_t | chan2, | ||
Double_t | weight2 | ||
) |
Referenced by GetSideChannels().
|
inline |
Definition at line 92 of file PndGemSensor.h.
|
inline |
Definition at line 94 of file PndGemSensor.h.
|
inline |
Definition at line 93 of file PndGemSensor.h.
Int_t PndGemSensor::GetNeighbours | ( | Int_t | iSide, |
Int_t | iChan, | ||
Int_t & | nChan1, | ||
Int_t & | nChan2, | ||
Int_t & | nChan3 | ||
) |
Referenced by GetSideChannels().
|
inline |
Definition at line 85 of file PndGemSensor.h.
|
inline |
Definition at line 88 of file PndGemSensor.h.
|
inline |
Definition at line 83 of file PndGemSensor.h.
|
inline |
Definition at line 75 of file PndGemSensor.h.
Int_t PndGemSensor::GetSensorPart | ( | Int_t | iSide, |
Int_t | chan | ||
) |
Referenced by GetSideChannels().
|
inline |
Definition at line 96 of file PndGemSensor.h.
References GetChannel(), GetChannel2(), GetDistance(), GetDistance2(), GetMeanChannel(), GetNeighbours(), GetSensorPart(), GetStripOrientation(), Inside(), Intersect(), Print(), and Reset().
|
inline |
Definition at line 89 of file PndGemSensor.h.
|
inline |
Definition at line 91 of file PndGemSensor.h.
|
inline |
Definition at line 90 of file PndGemSensor.h.
|
inline |
Definition at line 74 of file PndGemSensor.h.
|
inline |
Definition at line 87 of file PndGemSensor.h.
Double_t PndGemSensor::GetStripOrientation | ( | Double_t | x, |
Double_t | y, | ||
Int_t | iSide | ||
) |
Activate the channels corresponding to a MCPoint.
ipt | Index of MCPoint |
x | x coordinate of point (global c.s.) |
y | y coordinate of point (global c.s.) kTRUE if the point is inside the sensor, else kFALSE |
Referenced by GetSideChannels().
|
inline |
Definition at line 73 of file PndGemSensor.h.
|
inline |
Definition at line 79 of file PndGemSensor.h.
|
inline |
Definition at line 80 of file PndGemSensor.h.
|
inline |
Definition at line 81 of file PndGemSensor.h.
|
inline |
Definition at line 82 of file PndGemSensor.h.
Bool_t PndGemSensor::Inside | ( | Double_t | x, |
Double_t | y | ||
) |
Test whether a coordinate pair (x,y) in global coordinates is inside the sensor
Referenced by GetSideChannels().
Bool_t PndGemSensor::Inside | ( | Double_t | radius | ) |
Int_t PndGemSensor::Intersect | ( | Double_t | iFStrip, |
Double_t | iBStrip, | ||
Double_t & | xCross, | ||
Double_t & | yCross, | ||
Double_t & | zCross | ||
) |
Calculates the coordinates of the intersections of front strip i with back strip j in the global coordinate system
iFStrip | Front strip number |
iBStrip | Back strip number |
xCross | Vector of x coordinates of crossings [cm] |
yCross | Vector of y coordinates of crossings [cm] Number of intersections |
Referenced by GetSideChannels().
Int_t PndGemSensor::Intersect | ( | Double_t | iFStrip, |
Double_t | iBStrip, | ||
Double_t & | xCross, | ||
Double_t & | yCross, | ||
Double_t & | zCross, | ||
Double_t & | dr, | ||
Double_t & | dp | ||
) |
Int_t PndGemSensor::Intersect | ( | Double_t | iFStrip, |
Double_t | iBStrip, | ||
Double_t & | xCross, | ||
Double_t & | yCross, | ||
Double_t & | zCross, | ||
Double_t & | dx, | ||
Double_t & | dy, | ||
Double_t & | dr, | ||
Double_t & | dp | ||
) |
void PndGemSensor::Print | ( | ) |
Screen output
Referenced by GetSideChannels().
void PndGemSensor::Reset | ( | ) |
The index of the MCPoint that has caused a combination of front and back strip to be fired. Returns -1 for combinations of strips fired by different points (fake hits)
iFStrip | Front strip number |
iBStrip | Back strip number Index of MCPointClear the maps of fired strips |
Referenced by GetSideChannels().
|
inline |
Definition at line 71 of file PndGemSensor.h.
References kGEM.