FairRoot/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 () |
Private Member Functions | |
Int_t | FrontStripNumber (Double_t x, Double_t y) const |
Int_t | BackStripNumber (Double_t x, Double_t y) const |
Bool_t | IntCoord (Double_t x, Double_t y, Double_t z, Double_t &xint, Double_t &yint, Double_t &zint) const |
Bool_t | IsInside (Double_t xint, Double_t yint) const |
ClassDef (PndGemSensor, 1) | |
Private Attributes | |
Int_t | fDetectorId |
Int_t | fType |
Double_t | fPosition [3] |
Double_t | fRotation |
Double_t | fInnerRadius |
Double_t | fOuterRadius |
Double_t | fD |
Double_t | fStripAngle [2] |
Double_t | fPitch [2] |
Int_t | fNChannelsFront |
Int_t | fNChannelsBack |
Double_t | fSigmaX |
Double_t | fSigmaY |
Double_t | fSigmaXY |
PndGemSensor.h
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 42 of file PndGemSensor.h.
PndGemSensor::PndGemSensor | ( | ) |
Default constructor
Definition at line 23 of file PndGemSensor.cxx.
References fD, fDetectorId, fInnerRadius, fNChannelsBack, fNChannelsFront, fOuterRadius, fPitch, fPosition, fRotation, fSigmaX, fSigmaXY, fSigmaY, fStripAngle, and fType.
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] |
Definition at line 36 of file PndGemSensor.cxx.
References d, fD, fDetectorId, fInnerRadius, fNChannelsBack, fNChannelsFront, fOuterRadius, fPitch, fPosition, fRotation, fSigmaX, fSigmaXY, fSigmaY, fStripAngle, fType, Pi, rotation, x0, y0, and z0.
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 | ||
) |
Definition at line 108 of file PndGemSensor.cxx.
References d, fD, fInnerRadius, fNChannelsBack, fNChannelsFront, fOuterRadius, fPitch, fPosition, fRotation, fSigmaX, fSigmaXY, fSigmaY, fStripAngle, fType, Pi, rotation, SetDetectorId(), x0, y0, and z0.
PndGemSensor::PndGemSensor | ( | const PndGemSensor & | tempSensor | ) |
Definition at line 180 of file PndGemSensor.cxx.
|
virtual |
Strip number of a point in the back plane. Returns -1 if the point is outside the sensor
x | x coordinate of point (global c.s.) |
y | y coordinate of point (global c.s.) Number of strip hitted by the point |
|
private |
-------—— Private methods ------------------—— Strip number of a point in the front plane. Returns -1 if the point is outside the sensor
x | x coordinate of point (global c.s.) |
y | y coordinate of point (global c.s.) Number of strip hitted by the point |
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. |
Definition at line 267 of file PndGemSensor.cxx.
References Double_t, fInnerRadius, fNChannelsBack, fNChannelsFront, fOuterRadius, fPitch, fType, Inside(), Pi, and CAMath::Sqrt().
Referenced by PndGemFindHits::ConfirmHits(), PndGemDigitize::DigitizeEvent(), MyMainFrame::DoInfoStatusBar(), and PndGemDigitize::SimulateGaussianResponse().
Definition at line 824 of file PndGemSensor.cxx.
References CAMath::Abs(), CAMath::Cos(), Double_t, fInnerRadius, fNChannelsBack, fNChannelsFront, fOuterRadius, fPitch, fStripAngle, fType, Inside(), Pi, CAMath::Sqrt(), and x.
Referenced by PndGemDigitize::SimulateGaussianResponse().
|
inline |
Definition at line 104 of file PndGemSensor.h.
References fD.
Referenced by PndGemFindHits::ConfirmHits2(), PndGemIdealHitProducer::Exec(), PndGemFindHits::FindHits(), and PndGemFindHits::FindHits2().
|
inline |
Definition at line 89 of file PndGemSensor.h.
References fDetectorId.
Referenced by PndGemFindHits::ConfirmHits2(), PndGemDigitize::DigitizeEvent(), and PndGemDigitize::SimulateGaussianResponse().
|
inline |
Accessors
Definition at line 86 of file PndGemSensor.h.
Referenced by PndGemFindHits::FindHits(), and PndGemFindHits::FindHits2().
Definition at line 494 of file PndGemSensor.cxx.
References CAMath::Abs(), Double_t, fInnerRadius, fNChannelsBack, fNChannelsFront, fOuterRadius, fPitch, and fType.
Referenced by PndGemFindClustersTB::AnalyzeClusters(), PndGemFindClustersTB::CompareDigiToClusters(), and PndGemDigitize::SimulateGaussianResponse().
Int_t PndGemSensor::GetDistance | ( | Int_t | iSide, |
Int_t | chanMin, | ||
Int_t | chanMax, | ||
Int_t | chanTest | ||
) |
Definition at line 568 of file PndGemSensor.cxx.
References CAMath::Abs(), Double_t, fInnerRadius, fNChannelsBack, fNChannelsFront, fOuterRadius, fPitch, fType, and CAMath::Min().
Definition at line 653 of file PndGemSensor.cxx.
References CAMath::Abs(), Double_t, fInnerRadius, fNChannelsBack, fNChannelsFront, fOuterRadius, fPitch, and fType.
Referenced by PndGemFindClusters::CompareDigiToClustersDigis().
|
inline |
Definition at line 102 of file PndGemSensor.h.
References fInnerRadius.
Referenced by MyMainFrame::DrawDigis(), and PndGemIdealHitProducer::Exec().
Double_t PndGemSensor::GetMeanChannel | ( | Int_t | iSide, |
Double_t | chan1, | ||
Double_t | weight1, | ||
Double_t | chan2, | ||
Double_t | weight2 | ||
) |
Definition at line 764 of file PndGemSensor.cxx.
References CAMath::Abs(), Double_t, fInnerRadius, fNChannelsBack, fNChannelsFront, fOuterRadius, fPitch, and fType.
Referenced by PndGemFindClustersTB::AddDigiToCluster(), and PndGemFindClusters::AddDigiToCluster().
|
inline |
Definition at line 110 of file PndGemSensor.h.
References fNChannelsBack, and fNChannelsFront.
Referenced by PndGemDigiPar::CreateStations(), and PndGemStation::GetNChannels().
|
inline |
Definition at line 112 of file PndGemSensor.h.
References fNChannelsBack.
Referenced by MyMainFrame::DrawDigis(), and PndGemSensorMonitor::PndGemSensorMonitor().
|
inline |
Definition at line 111 of file PndGemSensor.h.
References fNChannelsFront.
Referenced by MyMainFrame::DrawDigis(), and PndGemSensorMonitor::PndGemSensorMonitor().
Int_t PndGemSensor::GetNeighbours | ( | Int_t | iSide, |
Int_t | iChan, | ||
Int_t & | nChan1, | ||
Int_t & | nChan2, | ||
Int_t & | nChan3 | ||
) |
Definition at line 362 of file PndGemSensor.cxx.
References fType.
Referenced by PndGemSensorMonitor::CheckNeighbours().
|
inline |
Definition at line 103 of file PndGemSensor.h.
References fOuterRadius.
Referenced by PndGemFindHitsAna::CreateHistos(), PndGemFindHitsQA::CreateHistos(), MyMainFrame::DrawDigis(), PndGemIdealHitProducer::Exec(), PndGemFindHits::FindHits(), PndGemFindHits::FindHits2(), PndGemFindClusters::Init(), PndGemFindHits::Init(), PndGemFindClustersTB::Init(), PndSttMvdGemTracking::PropagateToGemPlaneAsHelix(), and PndSttMvdGemTracking::Reset().
|
inline |
Definition at line 106 of file PndGemSensor.h.
References fPitch.
Referenced by MyMainFrame::DrawDigis(), and PndGemIdealHitProducer::Exec().
|
inline |
|
inline |
Definition at line 95 of file PndGemSensor.h.
References fDetectorId.
Referenced by PndGemStation::AddSensor(), PndGemMonitor::CreateSensorMonitor(), PndGemFindHits::Exec(), PndGemFindHits::FindHits(), PndGemFindHits::FindHits2(), and Print().
Int_t PndGemSensor::GetSensorPart | ( | Int_t | iSide, |
Int_t | chan | ||
) |
Definition at line 405 of file PndGemSensor.cxx.
References CAMath::Abs(), fInnerRadius, fNChannelsFront, fPitch, and fType.
Referenced by PndGemFindClustersTB::CheckCluster().
|
inline |
Definition at line 114 of file PndGemSensor.h.
References fNChannelsBack, and fNChannelsFront.
Referenced by PndGemDigiAna::CreateHistos().
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 93 of file PndGemSensor.h.
References fDetectorId.
Referenced by PndGemMonitor::CreateSensorMonitor(), PndGemFindHits::FindHits(), and PndGemFindHits::FindHits2().
|
inline |
Definition at line 105 of file PndGemSensor.h.
References fStripAngle.
Referenced by MyMainFrame::DrawDigis(), and PndGemIdealHitProducer::Exec().
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 |
Definition at line 438 of file PndGemSensor.cxx.
References Double_t, fType, Inside(), Pi, and CAMath::Sqrt().
Referenced by PndGemDigitize::SimulateGaussianResponse().
|
inline |
|
inline |
|
inline |
Definition at line 98 of file PndGemSensor.h.
References fPosition.
Referenced by PndSttMvdGemTracking::SetupGEMPlanes().
|
inline |
Definition at line 99 of file PndGemSensor.h.
References fPosition.
Referenced by PndSttMvdGemTracking::SetupGEMPlanes().
|
inline |
Definition at line 100 of file PndGemSensor.h.
References fPosition.
Referenced by PndGemFindHits::ConfirmHits(), PndGemFindHitsAna::CreateHistos(), PndGemFindHitsQA::CreateHistos(), PndSttMvdGemTracking::Exec(), PndGemIdealHitProducer::Exec(), PndGemStation::GetNofZ(), PndGemStation::GetZ(), and PndSttMvdGemTracking::SetupGEMPlanes().
Test whether a coordinate pair (x,y) in global coordinates is inside the sensor
Definition at line 1027 of file PndGemSensor.cxx.
References CAMath::Abs(), Double_t, fInnerRadius, fOuterRadius, fStripAngle, and y.
Referenced by GetChannel(), GetChannel2(), GetStripOrientation(), and Intersect().
|
private |
Calculate coordinates in internal coordinate system
x | x coordinate in global system |
y | y coordinate in global system |
xint | internal x coordinate (return) |
yint | internal y coordinate (return) kTRUE if point is inside the sensor |
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 |
Definition at line 1045 of file PndGemSensor.cxx.
References CAMath::Cos(), Double_t, fDetectorId, fInnerRadius, fNChannelsBack, fNChannelsFront, fOuterRadius, fPitch, fPosition, fType, Inside(), phi, Pi, and CAMath::Sin().
Referenced by PndGemFindHits::FindHits(), and PndGemFindHits::FindHits2().
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 | ||
) |
Definition at line 1124 of file PndGemSensor.cxx.
References CAMath::Cos(), Double_t, fDetectorId, fInnerRadius, fNChannelsBack, fNChannelsFront, fOuterRadius, fPitch, fPosition, fType, Inside(), phi, Pi, CAMath::Sin(), and CAMath::Sqrt().
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 | ||
) |
Definition at line 1230 of file PndGemSensor.cxx.
References CAMath::Abs(), CAMath::Cos(), Double_t, fDetectorId, fInnerRadius, fNChannelsBack, fNChannelsFront, fOuterRadius, fPitch, fPosition, fType, Inside(), phi, Pi, CAMath::Sin(), and CAMath::Sqrt().
Check whether a point is inside the sensor
xpt | x coordinate of point (internal system) |
ypt | y coordinate of point (internal system) kTRUE if inside sensor, else kFALSE |
void PndGemSensor::Print | ( | ) |
Screen output
Definition at line 221 of file PndGemSensor.cxx.
References fD, fDetectorId, fInnerRadius, fOuterRadius, fPitch, fPosition, fRotation, fStripAngle, fType, GetSensorNr(), and Pi.
Referenced by PndSttMvdGemTracking::Exec(), and PndGemStation::Print().
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 |
Definition at line 214 of file PndGemSensor.cxx.
Referenced by PndGemStation::Reset().
|
inline |
Definition at line 87 of file PndGemSensor.h.
References fDetectorId, and kGEM.
Referenced by PndGemSensor().
|
private |
Definition at line 205 of file PndGemSensor.h.
Referenced by GetD(), PndGemSensor(), and Print().
|
private |
----------— Data members -----------------------—
Definition at line 199 of file PndGemSensor.h.
Referenced by GetDetectorId(), GetSensorNr(), GetStationNr(), GetSystemId(), Intersect(), PndGemSensor(), Print(), and SetDetectorId().
|
private |
Definition at line 203 of file PndGemSensor.h.
Referenced by GetChannel(), GetChannel2(), GetDistance(), GetDistance2(), GetInnerRadius(), GetMeanChannel(), GetSensorPart(), Inside(), Intersect(), PndGemSensor(), and Print().
|
private |
Definition at line 211 of file PndGemSensor.h.
Referenced by GetChannel(), GetChannel2(), GetDistance(), GetDistance2(), GetMeanChannel(), GetNChannels(), GetNChannelsBack(), GetSideChannels(), Intersect(), and PndGemSensor().
|
private |
Number of channels in front and back plane
Definition at line 210 of file PndGemSensor.h.
Referenced by GetChannel(), GetChannel2(), GetDistance(), GetDistance2(), GetMeanChannel(), GetNChannels(), GetNChannelsFront(), GetSensorPart(), GetSideChannels(), Intersect(), and PndGemSensor().
|
private |
Definition at line 204 of file PndGemSensor.h.
Referenced by GetChannel(), GetChannel2(), GetDistance(), GetDistance2(), GetMeanChannel(), GetOuterRadius(), Inside(), Intersect(), PndGemSensor(), and Print().
|
private |
Definition at line 207 of file PndGemSensor.h.
Referenced by GetChannel(), GetChannel2(), GetDistance(), GetDistance2(), GetMeanChannel(), GetPitch(), GetSensorPart(), Intersect(), PndGemSensor(), and Print().
|
private |
Definition at line 201 of file PndGemSensor.h.
Referenced by GetX0(), GetY0(), GetZ0(), Intersect(), PndGemSensor(), and Print().
|
private |
Definition at line 202 of file PndGemSensor.h.
Referenced by GetRotation(), PndGemSensor(), and Print().
|
private |
Errors of hit coordinates. For pixel sensor: size/sqrt(12), for strip sensors RMS of overlap of front and back side strip
Definition at line 218 of file PndGemSensor.h.
Referenced by GetSigmaX(), and PndGemSensor().
|
private |
Definition at line 220 of file PndGemSensor.h.
Referenced by GetSigmaXY(), and PndGemSensor().
|
private |
Definition at line 219 of file PndGemSensor.h.
Referenced by GetSigmaY(), and PndGemSensor().
|
private |
Definition at line 206 of file PndGemSensor.h.
Referenced by GetChannel2(), GetStripAngle(), Inside(), PndGemSensor(), and Print().
|
private |
Definition at line 200 of file PndGemSensor.h.
Referenced by GetChannel(), GetChannel2(), GetDistance(), GetDistance2(), GetMeanChannel(), GetNeighbours(), GetSensorPart(), GetStripOrientation(), GetType(), Intersect(), PndGemSensor(), and Print().