Belle II Software development
SensorInfo Class Reference

Specific implementation of SensorInfo for PXD Sensors which provides additional pixel specific information. More...

#include <SensorInfo.h>

Inheritance diagram for SensorInfo:
SensorInfoBase

Public Types

enum  SensorType {
  PXD = 0 ,
  SVD = 1 ,
  TEL = 2 ,
  VXD = -1
}
 Enum specifing the type of sensor the SensorInfo represents. More...
 

Public Member Functions

 SensorInfo (VxdID id=0, float width=0, float length=0, float thickness=0, int uCells=0, int vCells=0, float splitLength=0, int vCells2=0)
 Constructor which automatically sets the SensorType.
 
void setID (VxdID id)
 Change the SensorID, useful to copy the SensorInfo from one sensor and use it for another.
 
void flipVSegmentation ()
 Flip the Pitch segmentation along v.
 
void setDEPFETParams (double bulkDoping, double backVoltage, double topVoltage, double sourceBorderSmallPitch, double clearBorderSmallPitch, double drainBorderSmallPitch, double sourceBorderLargePitch, double clearBorderLargePitch, double drainBorderLargePitch, double gateDepth, bool doublePixel, double chargeThreshold, double noiseFraction)
 Set operation parameters like voltages.
 
void cook ()
 calculate constants in advance
 
int getTrappedID (double x, double y) const
 Get pixel number if the given coordinate is in the correspondin internal gate trapping region or -1 otherwise.
 
void setIntegrationWindow (double start, double end)
 Set the time window in which the sensor is active.
 
double getTemperature () const
 Return the temperature of the sensor.
 
double getBulkDoping () const
 Return the bulk doping of the Silicon sensor.
 
double getBackVoltage () const
 Return the voltage at the backside of the sensor.
 
double getTopVoltage () const
 Return the voltage at the top of the sensor.
 
double getSourceBorder (double v) const
 Return the distance between the source side of the pixel and the start of the Gate for a pixel at v.
 
double getClearBorder (double v) const
 Return the distance between the clear side of the pixel and the start of the Gate for a pixel at v.
 
double getDrainBorder (double v) const
 Return the distance between the drain side of the pixel and the start of the Gate for a pixel at v.
 
double getGateDepth () const
 Return the gate depth for the sensor.
 
bool getDoublePixel () const
 Return true if the Sensor is a double pixel structure: every other pixel is mirrored along v.
 
double getChargeThreshold () const
 Get the charge threshold in ADU for the sensor.
 
double getNoiseFraction () const
 Get the noise fraction for the sensor.
 
double getIntegrationStart () const
 Return the start of the integration window, the timeframe the PXD is sensitive.
 
double getIntegrationEnd () const
 Return the end of the integration window, the timeframe the PXD is sensitive.
 
double getHallFactor () const
 Return the Hall factor for electrons at sensor temperature.
 
double getElectronMobility (double E) const
 Calculate electron mobility at a given electric field.
 
const ROOT::Math::XYZVector getEField (const ROOT::Math::XYZVector &point) const
 Model of the E field inside the sensor.
 
const ROOT::Math::XYZVector getBField (const ROOT::Math::XYZVector &point) const
 Get B field value from the field map.
 
const ROOT::Math::XYZVector getLorentzShift (double u, double v) const
 Calculate Lorentz shift.
 
const ROOT::Math::XYZVector getDriftVelocity (const ROOT::Math::XYZVector &E, const ROOT::Math::XYZVector &B) const
 Calculate drift velocity of an electron.
 
int getPixelKind (const VxdID sensorID, double v) const
 Return pixel kind ID.
 
int getPixelKindNew (const VxdID &sensorID, int vID) const
 Return pixel kind ID.
 
SensorType getType () const
 Return the Type of the Sensor.
 
VxdID getID () const
 Return the ID of the Sensor.
 
double getWidth (double v=0) const
 Return the width of the sensor.
 
double getBackwardWidth () const
 Convinience Wrapper to return width at backward side.
 
double getForwardWidth () const
 Convinience Wrapper to return width at forward side.
 
double getLength () const
 Return the length of the sensor.
 
double getThickness () const
 Return the thickness of the sensor.
 
double getUSize (double v=0) const
 Return the width of the sensor.
 
double getVSize () const
 Return the length of the sensor.
 
double getWSize () const
 Return the thickness of the sensor.
 
double getUPitch (double v=0) const
 Return the pitch of the sensor.
 
double getVPitch (double v=0) const
 Return the pitch of the sensor.
 
int getVPitchID (double v=0) const
 Return the pitch ID of the sensor.
 
double getUCellPosition (int uID, int vID=-1) const
 Return the position of a specific strip/pixel in u direction.
 
double getVCellPosition (int vID) const
 Return the position of a specific strip/pixel in v direction.
 
int getUCellID (double u, double v=0, bool clamp=false) const
 Return the corresponding pixel/strip ID of a given u coordinate.
 
int getVCellID (double v, bool clamp=false) const
 Return the corresponding pixel/strip ID of a given v coordinate.
 
int getUCells () const
 Return number of pixel/strips in u direction.
 
int getVCells () const
 Return number of pixel/strips in v direction.
 
int getVCells2 () const
 Return number of pixel/strips in v direction up to change pitch.
 
bool inside (double u, double v, double uTolerance=DBL_EPSILON, double vTolerance=DBL_EPSILON) const
 Check wether a given point is inside the active area.
 
bool inside (const ROOT::Math::XYZVector &local, double uTolerance=DBL_EPSILON, double vTolerance=DBL_EPSILON, double wTolerance=DBL_EPSILON) const
 Check wether a given point is inside the active area.
 
void forceInside (double &u, double &v) const
 Force a position to be inside the active area.
 
void forceInside (ROOT::Math::XYZVector &local) const
 Force a given point inside the active area.
 
ROOT::Math::XYZVector pointToGlobal (const ROOT::Math::XYZVector &local, bool reco=false) const
 Convert a point from local to global coordinates.
 
ROOT::Math::XYZVector vectorToGlobal (const ROOT::Math::XYZVector &local, bool reco=false) const
 Convert a vector from local to global coordinates.
 
ROOT::Math::XYZVector pointToLocal (const ROOT::Math::XYZVector &global, bool reco=false) const
 Convert a point from global to local coordinates.
 
ROOT::Math::XYZVector vectorToLocal (const ROOT::Math::XYZVector &global, bool reco=false) const
 Convert a vector from global to local coordinates.
 
void setTransformation (const TGeoHMatrix &transform, bool reco=false)
 Set the transformation matrix of the Sensor.
 
const TGeoHMatrix & getTransformation (bool reco=false) const
 Return the transformation matrix of the Sensor.
 
void setSurfaceParameters (const std::vector< double > &planarParameters)
 Fill parameters of planar deformation to vector.
 
const std::vector< double > & getSurfaceParameters () const
 Return parameters of planar deformation.
 

Protected Member Functions

void setLorentzFactor ()
 Calculate Lorentz shift factor.
 

Protected Attributes

double m_temperature
 The temperature of the sensor.
 
double m_hallFactor
 The bulk doping of the Silicon sensor.
 
double m_bulkDoping
 Doping concentration of the silicon bulk.
 
double m_backVoltage
 The voltage at the backside of the sensor.
 
double m_topVoltage
 The voltate at the top of the sensor.
 
double m_sourceBorderSmallPitch
 The distance between the source side of the pixel and the start of the Gate, small pitch area.
 
double m_clearBorderSmallPitch
 The distance between the clear side of the pixel and the start of the Gate, small pitch area

 
double m_drainBorderSmallPitch
 The distance between the drain side of the pixel and the start of the Gate, small pitch area

 
double m_sourceBorderLargePitch
 The distance between the source side of the pixel and the start of the Gate, large pitch area.
 
double m_clearBorderLargePitch
 The distance between the clear side of the pixel and the start of the Gate, large pitch area

 
double m_drainBorderLargePitch
 The distance between the drain side of the pixel and the start of the Gate, large pitch area

 
double m_gateDepth
 Return depth of the surface where the electrons will be collected.
 
bool m_doublePixel
 True if the Sensor is a double pixel structure: every other pixel is mirrored along v.
 
double m_chargeThreshold
 Charge threshold.
 
double m_noiseFraction
 Fixed noise fraction.
 
double m_integrationStart
 The start of the integration window, the timeframe the PXD is sensitive.
 
double m_integrationEnd
 The end of the integration window, the timeframe the PXD is sensitive.
 
double m_up
 pixel pitch in u direction
 
double m_iup
 the reciprocal of the pixel pitch in u direction
 
double m_vsplit
 v coordinate which splits small and large pixel regions
 
double m_vp
 large pixel pitch in v direction
 
double m_ivp
 the reciprocal of the large pixel pitch in v direction
 
double m_vp2
 small pixel pitch in v direction
 
double m_ivp2
 the reciprocal of the small pixel pitch in v direction
 
double m_hxIG
 size in u direction of the internal gate trapping region
 
double m_mIGL
 middle of the internal gate trapping region for large pixels
 
double m_sIGL
 size in v direction of the internal gate trapping region for large pixels
 
double m_mIGS
 middle of the internal gate trapping region for small pixels
 
double m_sIGS
 size in v direction of the internal gate trapping region for small pixels
 
SensorType m_type
 Type of the Sensor.
 
unsigned short m_id
 ID of the Sensor.
 
double m_width
 Width of the sensor.
 
double m_length
 Length of the Sensor.
 
double m_thickness
 Thickness of the Sensor.
 
double m_deltaWidth
 Difference between backward and forward width, 0 for rectangular sensors.
 
double m_splitLength
 Relative length at which second pixel size starts, 0 for only one pixel size.
 
int m_uCells
 Number of strips/pixels in u direction.
 
int m_vCells
 Number of strips/pixels in v direction (up to splitLength for two pixel sizes)
 
int m_vCells2
 Number of strips/pixels in v direction after splitLength, 0 for only one pixel size.
 
TGeoHMatrix m_transform
 Nominal transformation matrix of the Sensor.
 
TGeoHMatrix m_recoTransform
 Alignment-corrected transformation matrix of the Sensor for use in reconstruction.
 
std::vector< double > m_surfaceDeformationParameters = std::vector<double>(12, 0.0)
 Vector contains all parameter needed for description planar deformation of sensors.
 

Detailed Description

Specific implementation of SensorInfo for PXD Sensors which provides additional pixel specific information.

Definition at line 23 of file SensorInfo.h.

Member Enumeration Documentation

◆ SensorType

enum SensorType
inherited

Enum specifing the type of sensor the SensorInfo represents.

Enumerator
PXD 

PXD Sensor.

SVD 

SVD Sensor.

TEL 

Testbeam telescope sensor.

VXD 

Any type of VXD Sensor.

Definition at line 32 of file SensorInfoBase.h.

32 {
33 PXD = 0,
34 SVD = 1,
35 TEL = 2,
36 VXD = -1,
37 };
@ VXD
Any type of VXD Sensor.
@ TEL
Testbeam telescope sensor.

Constructor & Destructor Documentation

◆ SensorInfo()

SensorInfo ( VxdID  id = 0,
float  width = 0,
float  length = 0,
float  thickness = 0,
int  uCells = 0,
int  vCells = 0,
float  splitLength = 0,
int  vCells2 = 0 
)
inline

Constructor which automatically sets the SensorType.

Definition at line 26 of file SensorInfo.h.

27 :
28 VXD::SensorInfoBase(SensorInfo::PXD, id, width, length, thickness, uCells, vCells, 0, splitLength, vCells2), m_temperature(300),
32 {
33 m_hallFactor = (1.13 + 0.0008 * (m_temperature - 273));
34 cook();
35 }
bool m_doublePixel
True if the Sensor is a double pixel structure: every other pixel is mirrored along v.
Definition: SensorInfo.h:208
double m_clearBorderLargePitch
The distance between the clear side of the pixel and the start of the Gate, large pitch area
Definition: SensorInfo.h:202
double m_hallFactor
The bulk doping of the Silicon sensor.
Definition: SensorInfo.h:186
double m_bulkDoping
Doping concentration of the silicon bulk.
Definition: SensorInfo.h:188
double m_clearBorderSmallPitch
The distance between the clear side of the pixel and the start of the Gate, small pitch area
Definition: SensorInfo.h:196
double m_noiseFraction
Fixed noise fraction.
Definition: SensorInfo.h:212
double m_topVoltage
The voltate at the top of the sensor.
Definition: SensorInfo.h:192
double m_sourceBorderLargePitch
The distance between the source side of the pixel and the start of the Gate, large pitch area.
Definition: SensorInfo.h:200
double m_chargeThreshold
Charge threshold.
Definition: SensorInfo.h:210
double m_drainBorderLargePitch
The distance between the drain side of the pixel and the start of the Gate, large pitch area
Definition: SensorInfo.h:204
double m_integrationEnd
The end of the integration window, the timeframe the PXD is sensitive.
Definition: SensorInfo.h:217
double m_integrationStart
The start of the integration window, the timeframe the PXD is sensitive.
Definition: SensorInfo.h:215
double m_sourceBorderSmallPitch
The distance between the source side of the pixel and the start of the Gate, small pitch area.
Definition: SensorInfo.h:194
double m_backVoltage
The voltage at the backside of the sensor.
Definition: SensorInfo.h:190
double m_gateDepth
Return depth of the surface where the electrons will be collected.
Definition: SensorInfo.h:206
double m_drainBorderSmallPitch
The distance between the drain side of the pixel and the start of the Gate, small pitch area
Definition: SensorInfo.h:198
void cook()
calculate constants in advance
Definition: SensorInfo.cc:130
double m_temperature
The temperature of the sensor.
Definition: SensorInfo.h:184

Member Function Documentation

◆ cook()

void cook ( )

calculate constants in advance

Definition at line 130 of file SensorInfo.cc.

131{
134
135 m_vsplit = m_length * (m_splitLength - 0.5);
136
138 m_ivp = 1 / m_vp;
139
141 m_ivp2 = 1 / m_vp2;
142
148}
double m_vp2
small pixel pitch in v direction
Definition: SensorInfo.h:227
double m_iup
the reciprocal of the pixel pitch in u direction
Definition: SensorInfo.h:220
double m_ivp2
the reciprocal of the small pixel pitch in v direction
Definition: SensorInfo.h:228
double m_up
pixel pitch in u direction
Definition: SensorInfo.h:219
double m_ivp
the reciprocal of the large pixel pitch in v direction
Definition: SensorInfo.h:225
double m_sIGS
size in v direction of the internal gate trapping region for small pixels
Definition: SensorInfo.h:234
double m_vsplit
v coordinate which splits small and large pixel regions
Definition: SensorInfo.h:222
double m_vp
large pixel pitch in v direction
Definition: SensorInfo.h:224
double m_mIGS
middle of the internal gate trapping region for small pixels
Definition: SensorInfo.h:233
double m_hxIG
size in u direction of the internal gate trapping region
Definition: SensorInfo.h:230
double m_mIGL
middle of the internal gate trapping region for large pixels
Definition: SensorInfo.h:231
double m_sIGL
size in v direction of the internal gate trapping region for large pixels
Definition: SensorInfo.h:232
double m_width
Width of the sensor.
int m_vCells
Number of strips/pixels in v direction (up to splitLength for two pixel sizes)
double m_length
Length of the Sensor.
int m_vCells2
Number of strips/pixels in v direction after splitLength, 0 for only one pixel size.
int m_uCells
Number of strips/pixels in u direction.
double m_splitLength
Relative length at which second pixel size starts, 0 for only one pixel size.

◆ flipVSegmentation()

void flipVSegmentation ( )
inline

Flip the Pitch segmentation along v.

If there are two different pixel sizes than mirror the segmentation along v.

Definition at line 43 of file SensorInfo.h.

◆ forceInside() [1/2]

void forceInside ( double &  u,
double &  v 
) const
inlineinherited

Force a position to be inside the active area.

Parameters
uu coordinate to be forced inside
vv coordinate to be forced inside

Definition at line 255 of file SensorInfoBase.h.

256 {
257 double length = getLength() / 2.0;
258 v = std::min(length, std::max(-length, v));
259 double width = getWidth(v) / 2.0;
260 u = std::min(width, std::max(-width, u));
261 }
double getWidth(double v=0) const
Return the width of the sensor.
double getLength() const
Return the length of the sensor.

◆ forceInside() [2/2]

void forceInside ( ROOT::Math::XYZVector &  local) const
inlineinherited

Force a given point inside the active area.

Parameters
localpoint in local coordinates, will be modified to lie inside or at the border of the sensor

Definition at line 358 of file SensorInfoBase.h.

359 {
360 double u = local.X();
361 double v = local.Y();
362 double thickness = getThickness() / 2.0;
363 forceInside(u, v);
364 local.SetX(u);
365 local.SetY(v);
366 local.SetZ(std::min(thickness, std::max(-thickness, local.Z())));
367 }
double getThickness() const
Return the thickness of the sensor.
void forceInside(double &u, double &v) const
Force a position to be inside the active area.

◆ getBackVoltage()

double getBackVoltage ( ) const
inline

Return the voltage at the backside of the sensor.

Definition at line 99 of file SensorInfo.h.

99{ return m_backVoltage; }

◆ getBackwardWidth()

double getBackwardWidth ( ) const
inlineinherited

Convinience Wrapper to return width at backward side.

Returns
width of the sensor at the backward side

Definition at line 89 of file SensorInfoBase.h.

90 {
91 return getWidth(-0.5 * m_length);
92 }

◆ getBField()

const ROOT::Math::XYZVector getBField ( const ROOT::Math::XYZVector &  point) const

Get B field value from the field map.

Parameters
pointDesired position in local coordinates.
Returns
The B field vector in local coordinates.

Definition at line 45 of file SensorInfo.cc.

46{
47 ROOT::Math::XYZVector pointGlobal = pointToGlobal(point, true);
48 ROOT::Math::XYZVector bGlobal = BFieldManager::getField(pointGlobal);
49 ROOT::Math::XYZVector bLocal = vectorToLocal(bGlobal, true);
50 return bLocal;
51}
ROOT::Math::XYZVector pointToGlobal(const ROOT::Math::XYZVector &local, bool reco=false) const
Convert a point from local to global coordinates.
ROOT::Math::XYZVector vectorToLocal(const ROOT::Math::XYZVector &global, bool reco=false) const
Convert a vector from global to local coordinates.
static void getField(const double *pos, double *field)
return the magnetic field at a given position.
Definition: BFieldManager.h:91

◆ getBulkDoping()

double getBulkDoping ( ) const
inline

Return the bulk doping of the Silicon sensor.

Definition at line 97 of file SensorInfo.h.

97{ return m_bulkDoping; }

◆ getChargeThreshold()

double getChargeThreshold ( ) const
inline

Get the charge threshold in ADU for the sensor.

Definition at line 127 of file SensorInfo.h.

127{ return m_chargeThreshold; }

◆ getClearBorder()

double getClearBorder ( double  v) const
inline

Return the distance between the clear side of the pixel and the start of the Gate for a pixel at v.

Definition at line 111 of file SensorInfo.h.

112 {
113 if (v / m_length + 0.5 >= m_splitLength) return m_clearBorderSmallPitch;
115 }

◆ getDoublePixel()

bool getDoublePixel ( ) const
inline

Return true if the Sensor is a double pixel structure: every other pixel is mirrored along v.

Definition at line 125 of file SensorInfo.h.

125{ return m_doublePixel; }

◆ getDrainBorder()

double getDrainBorder ( double  v) const
inline

Return the distance between the drain side of the pixel and the start of the Gate for a pixel at v.

Definition at line 117 of file SensorInfo.h.

118 {
119 if (v / m_length + 0.5 >= m_splitLength) return m_drainBorderSmallPitch;
121 }

◆ getDriftVelocity()

const ROOT::Math::XYZVector getDriftVelocity ( const ROOT::Math::XYZVector &  E,
const ROOT::Math::XYZVector &  B 
) const

Calculate drift velocity of an electron.

Parameters
EElectric field vector
BMagnetic field vector
Returns
drift velocity of an electron in the E+B field.

Definition at line 54 of file SensorInfo.cc.

56{
57 // Set mobility parameters
58 double mobility = -getElectronMobility(E.R());
59 double mobilityH = m_hallFactor * mobility;
60 // Calculate products
61 ROOT::Math::XYZVector EcrossB = E.Cross(B);
62 ROOT::Math::XYZVector BEdotB = E.Dot(B) * B;
63 ROOT::Math::XYZVector v = mobility * E + mobility * mobilityH * EcrossB
64 + mobility * mobilityH * mobilityH * BEdotB;
65 v *= 1.0 / (1.0 + mobilityH * mobilityH * B.Mag2());
66 return v;
67}
R E
internal precision of FFTW codelets
double getElectronMobility(double E) const
Calculate electron mobility at a given electric field.
Definition: SensorInfo.cc:20

◆ getEField()

const ROOT::Math::XYZVector getEField ( const ROOT::Math::XYZVector &  point) const

Model of the E field inside the sensor.

Parameters
pointDesired position in local coordinates.
Returns
The E field vector in local coordinates.

Definition at line 33 of file SensorInfo.cc.

34{
35 // FIXME: Get rid of the gateDepth
36 double depletionVoltage = 0.5 * Unit::e * m_bulkDoping
38 double gateZ = 0.5 * m_thickness - m_gateDepth;
39 double Ez = 2 * depletionVoltage * (point.Z() - gateZ) / m_thickness
41 ROOT::Math::XYZVector E(0, 0, Ez);
42 return E;
43}
static const double permSi
Permittivity of Silicon.
Definition: Const.h:699
static const double e
Standard of [electric charge].
Definition: Unit.h:53
double m_thickness
Thickness of the Sensor.

◆ getElectronMobility()

double getElectronMobility ( double  E) const

Calculate electron mobility at a given electric field.

Based on C. Canali et al., IEEE, ED-22, (1975) 1045

Parameters
EElectric field, V/cm
Returns
electron mobility, cm*2/V.ns

Definition at line 20 of file SensorInfo.cc.

21{
22 // Electron parameters - maximum velocity, critical intensity, beta factor
23 static double vmElec = 1.53 * pow(m_temperature, -0.87) * 1.E9 * Unit::cm
24 / Unit::s;
25 static double EcElec = 1.01 * pow(m_temperature, +1.55) * Unit::V
26 / Unit::cm;
27 static double betaElec = 2.57 * pow(m_temperature, +0.66) * 1.E-2;
28
29 return (vmElec / EcElec * 1.
30 / (pow(1. + pow((fabs(E) / EcElec), betaElec), (1. / betaElec))));
31}
static const double V
[voltage]
Definition: Unit.h:117
static const double cm
Standard units with the value = 1.
Definition: Unit.h:47
static const double s
[second]
Definition: Unit.h:95

◆ getForwardWidth()

double getForwardWidth ( ) const
inlineinherited

Convinience Wrapper to return width at forward side.

Returns
width of the sensor at the forward side

Definition at line 97 of file SensorInfoBase.h.

98 {
99 return getWidth(0.5 * m_length);
100 }

◆ getGateDepth()

double getGateDepth ( ) const
inline

Return the gate depth for the sensor.

Definition at line 123 of file SensorInfo.h.

123{ return m_gateDepth; }

◆ getHallFactor()

double getHallFactor ( ) const
inline

Return the Hall factor for electrons at sensor temperature.

Definition at line 135 of file SensorInfo.h.

135{ return m_hallFactor; }

◆ getID()

VxdID getID ( ) const
inlineinherited

Return the ID of the Sensor.

Definition at line 74 of file SensorInfoBase.h.

74{ return m_id; }
unsigned short m_id
ID of the Sensor.

◆ getIntegrationEnd()

double getIntegrationEnd ( ) const
inline

Return the end of the integration window, the timeframe the PXD is sensitive.

Definition at line 133 of file SensorInfo.h.

133{ return m_integrationEnd; }

◆ getIntegrationStart()

double getIntegrationStart ( ) const
inline

Return the start of the integration window, the timeframe the PXD is sensitive.

Definition at line 131 of file SensorInfo.h.

131{ return m_integrationStart; }

◆ getLength()

double getLength ( ) const
inlineinherited

Return the length of the sensor.

Returns
length of the sensor

Definition at line 105 of file SensorInfoBase.h.

105{ return m_length; }

◆ getLorentzShift()

const ROOT::Math::XYZVector getLorentzShift ( double  u,
double  v 
) const

Calculate Lorentz shift.

Parameters
uLocal u coordinate
vLocal v coordinate
Returns
3-vector (du, dv, 0) of Lorentz shifts.

Definition at line 99 of file SensorInfo.cc.

100{
101 // Constants for the 5-point Gauss quadrature formula
102 const double alphaGL = 1.0 / 3.0 * sqrt(5.0 + 2.0 * sqrt(10.0 / 7.0));
103 const double betaGL = 1.0 / 3.0 * sqrt(5.0 - 2.0 * sqrt(10.0 / 7.0));
104 const double walpha = (322 - 13.0 * sqrt(70)) / 900;
105 const double wbeta = (322 + 13.0 * sqrt(70)) / 900;
106 const double distanceToPlane = 0.5 * m_thickness - m_gateDepth;
107 const double midpoint = 0.5 * distanceToPlane;
108 const double h = 0.5 * distanceToPlane;
109 const double weightGL[5] = {
110 h * walpha, h * wbeta, h * 128.0 / 225.0, h * wbeta, h* walpha
111 };
112 const double zKnots[5] = {
113 midpoint - alphaGL * h, midpoint - betaGL * h, midpoint, midpoint + betaGL * h, midpoint + alphaGL* h
114 };
115 // Integrate v/v_z from z = 0 to z = distanceToPlane
116 ROOT::Math::XYZVector position(u, v, 0);
117 ROOT::Math::XYZVector currentBField = getBField(position);
118 for (int iz = 0; iz < 5; ++iz) {
119 // This is OK as long as E only depends on z
120 ROOT::Math::XYZVector currentEField = getEField(ROOT::Math::XYZVector(0, 0, zKnots[iz]));
121 ROOT::Math::XYZVector velocity = getDriftVelocity(currentEField, currentBField);
122 position += weightGL[iz] / velocity.Z() * velocity;
123 } // for knots
124 position.SetZ(0);
125 position.SetX(position.X() - u);
126 position.SetY(position.Y() - v);
127 return position;
128}
const ROOT::Math::XYZVector getEField(const ROOT::Math::XYZVector &point) const
Model of the E field inside the sensor.
Definition: SensorInfo.cc:33
const ROOT::Math::XYZVector getBField(const ROOT::Math::XYZVector &point) const
Get B field value from the field map.
Definition: SensorInfo.cc:45
const ROOT::Math::XYZVector getDriftVelocity(const ROOT::Math::XYZVector &E, const ROOT::Math::XYZVector &B) const
Calculate drift velocity of an electron.
Definition: SensorInfo.cc:54
double sqrt(double a)
sqrt for double
Definition: beamHelpers.h:28

◆ getNoiseFraction()

double getNoiseFraction ( ) const
inline

Get the noise fraction for the sensor.

Definition at line 129 of file SensorInfo.h.

129{ return m_noiseFraction; }

◆ getPixelKind()

int getPixelKind ( const VxdID  sensorID,
double  v 
) const

Return pixel kind ID.

Parameters
sensorIDthe sensor identification
vLocal v coordinate
Returns
pixel kind ID in range 0..7, 0-3 for Layer=1, 4-7 for Layer=2

Definition at line 69 of file SensorInfo.cc.

70{
71 const SensorInfo& Info = dynamic_cast<const SensorInfo&>(VXD::GeoCache::getInstance().getSensorInfo(sensorID));
72 int i_pixelKind = Info.getVPitchID(v);
73 if (Info.getID().getLayerNumber() == 2) i_pixelKind += 4;
74 if (Info.getID().getSensorNumber() == 2) i_pixelKind += 2;
75 return i_pixelKind;
76}
Specific implementation of SensorInfo for PXD Sensors which provides additional pixel specific inform...
Definition: SensorInfo.h:23
const SensorInfoBase & getSensorInfo(Belle2::VxdID id) const
Return a referecne to the SensorInfo of a given SensorID.
Definition: GeoCache.cc:67
static GeoCache & getInstance()
Return a reference to the singleton instance.
Definition: GeoCache.cc:214
VxdID getID() const
Return the ID of the Sensor.
int getVPitchID(double v=0) const
Return the pitch ID of the sensor.
baseType getSensorNumber() const
Get the sensor id.
Definition: VxdID.h:100
baseType getLayerNumber() const
Get the layer id.
Definition: VxdID.h:96

◆ getPixelKindNew()

int getPixelKindNew ( const VxdID sensorID,
int  vID 
) const

Return pixel kind ID.

Parameters
sensorIDthe sensor identification
vIDLocal vcell ID
Returns
pixel kind ID in range 0, 1, 2, 3 for z55, z60, z70, z85 pixels

Definition at line 78 of file SensorInfo.cc.

79{
80 const SensorInfo& Info = dynamic_cast<const SensorInfo&>(VXD::GeoCache::getInstance().getSensorInfo(sensorID));
81 double v = Info.getVCellPosition(vID);
82 double vPitch = Info.getVPitch(v);
83 int i_pixelKind = 0;
84
85 if (std::fabs(vPitch - 0.0055) < 0.0001)
86 i_pixelKind = 0;
87 else if (std::fabs(vPitch - 0.0060) < 0.0001)
88 i_pixelKind = 1;
89 else if (std::fabs(vPitch - 0.0070) < 0.0001)
90 i_pixelKind = 2;
91 else if (std::fabs(vPitch - 0.0085) < 0.0001)
92 i_pixelKind = 3;
93 else
94 B2FATAL("Unexpected pixel vPitch.");
95 return i_pixelKind;
96}
double getVCellPosition(int vID) const
Return the position of a specific strip/pixel in v direction.
double getVPitch(double v=0) const
Return the pitch of the sensor.

◆ getSourceBorder()

double getSourceBorder ( double  v) const
inline

Return the distance between the source side of the pixel and the start of the Gate for a pixel at v.

For these functions to work, the small pitch and large pitch values have to be correctly swapped with the flipVSegmentation method. FIXME: flip... is never called!

Definition at line 105 of file SensorInfo.h.

106 {
107 if (v / m_length + 0.5 >= m_splitLength) return m_sourceBorderSmallPitch;
109 }

◆ getSurfaceParameters()

const std::vector< double > & getSurfaceParameters ( ) const
inlineinherited

Return parameters of planar deformation.

Definition at line 324 of file SensorInfoBase.h.

325 {
327 }
std::vector< double > m_surfaceDeformationParameters
Vector contains all parameter needed for description planar deformation of sensors.

◆ getTemperature()

double getTemperature ( ) const
inline

Return the temperature of the sensor.

Definition at line 95 of file SensorInfo.h.

95{return m_temperature;}

◆ getThickness()

double getThickness ( ) const
inlineinherited

Return the thickness of the sensor.

Returns
thickness of the sensor

Definition at line 110 of file SensorInfoBase.h.

110{ return m_thickness; }

◆ getTopVoltage()

double getTopVoltage ( ) const
inline

Return the voltage at the top of the sensor.

Definition at line 101 of file SensorInfo.h.

101{ return m_topVoltage; }

◆ getTransformation()

const TGeoHMatrix & getTransformation ( bool  reco = false) const
inlineinherited

Return the transformation matrix of the Sensor.

Returns
Transformation matrix of the Sensor
Parameters
recoGet transformation for reconstruction (true) or nominal (false)

Definition at line 311 of file SensorInfoBase.h.

312 {
313 if (reco) return m_recoTransform;
314 else return m_transform;
315 }
TGeoHMatrix m_recoTransform
Alignment-corrected transformation matrix of the Sensor for use in reconstruction.
TGeoHMatrix m_transform
Nominal transformation matrix of the Sensor.

◆ getTrappedID()

int getTrappedID ( double  x,
double  y 
) const

Get pixel number if the given coordinate is in the correspondin internal gate trapping region or -1 otherwise.

Parameters
xu-coordinate in the local system
yv-coordinate in the local system
Returns
pixel number id = ix + 250*iy, or -1

Definition at line 150 of file SensorInfo.cc.

151{
152 double huCells = 0.5 * m_uCells;
153 double ix = floor(x * m_iup + huCells);
154 int jx = ix;
155 double x0 = (ix + 0.5 - huCells) * m_up;
156
157 if (fabs(x - x0) < m_hxIG) {
158 if ((unsigned)jx >= (unsigned)m_uCells) return -1;
159 double ys = y - m_vsplit;
160 if (ys >= 0) {
161 double iy = floor(ys * m_ivp2);
162 int jy = iy;
163 iy = jy / 2;
164 double y0 = iy * m_vp2 * 2 + m_vp2;
165 double yl = fabs(ys - y0);
166 if (fabs(yl - m_mIGS) < m_sIGS) {
167 if ((unsigned)jy >= (unsigned)m_vCells2) return -1;
168 return jx + m_uCells * (jy + m_vCells);
169 }
170 return -1;
171 } else {
172 ys = y + 0.5 * m_length;
173 double iy = floor(ys * m_ivp);
174 int jy = iy;
175 iy = jy / 2;
176 double y0 = iy * m_vp * 2 + m_vp;
177 double yl = fabs(ys - y0);
178 if (fabs(yl - m_mIGL) < m_sIGL) {
179 if ((unsigned)jy >= (unsigned)m_vCells) return -1;
180 return jx + m_uCells * jy;
181 }
182 return -1;
183 }
184 }
185 return -1;
186}

◆ getType()

SensorType getType ( ) const
inlineinherited

Return the Type of the Sensor.

Definition at line 72 of file SensorInfoBase.h.

72{ return m_type; }
SensorType m_type
Type of the Sensor.

◆ getUCellID()

int getUCellID ( double  u,
double  v = 0,
bool  clamp = false 
) const
inlineinherited

Return the corresponding pixel/strip ID of a given u coordinate.

Parameters
uu coordinate of the pixel/strip
vv coordinate of the pixel/strip, ignored for rectangular sensors
clampflag for clamp
Returns
ID of the pixel/strip covering the given coordinate

Definition at line 193 of file SensorInfoBase.h.

194 {
195 if (clamp) return std::min(getUCells() - 1, std::max(0, getUCellID(u, v, false)));
196 return static_cast<int>((u / getWidth(v) + 0.5) * m_uCells);
197 }
int getUCells() const
Return number of pixel/strips in u direction.
int getUCellID(double u, double v=0, bool clamp=false) const
Return the corresponding pixel/strip ID of a given u coordinate.

◆ getUCellPosition()

double getUCellPosition ( int  uID,
int  vID = -1 
) const
inlineinherited

Return the position of a specific strip/pixel in u direction.

Parameters
uIDid of the strip/pixel in u coordinates
vIDid of the strip/pixel in v coordinates, ignored for rectangular sensors
Returns
Pixel/Strip position in u direction

Definition at line 168 of file SensorInfoBase.h.

169 {
170 if (m_deltaWidth == 0) return ((uID + 0.5) / m_uCells - 0.5) * m_width;
171 double v = 0;
172 if (vID >= 0) v = getVCellPosition(vID);
173 return ((uID + 0.5) / m_uCells - 0.5) * getWidth(v);
174 }
double m_deltaWidth
Difference between backward and forward width, 0 for rectangular sensors.

◆ getUCells()

int getUCells ( ) const
inlineinherited

Return number of pixel/strips in u direction.

Definition at line 214 of file SensorInfoBase.h.

214{ return m_uCells; }

◆ getUPitch()

double getUPitch ( double  v = 0) const
inlineinherited

Return the pitch of the sensor.

Parameters
vv-coordinate where to determine the pitch, ignored for rectangular sensors
Returns
Pixel/Strip size in u direction

Definition at line 132 of file SensorInfoBase.h.

132{ return getWidth(v) / m_uCells; }

◆ getUSize()

double getUSize ( double  v = 0) const
inlineinherited

Return the width of the sensor.

Parameters
vv-coordinate where to determine the width, ignored for recangular sensors
Returns
width of the Sensor

Definition at line 116 of file SensorInfoBase.h.

116{ return getWidth(v); }

◆ getVCellID()

int getVCellID ( double  v,
bool  clamp = false 
) const
inlineinherited

Return the corresponding pixel/strip ID of a given v coordinate.

Parameters
vv coordinate of the pixel/strip
clampflag for clamp
Returns
ID of the pixel/strip covering the given coordinate

Definition at line 204 of file SensorInfoBase.h.

205 {
206 if (clamp) return std::min(getVCells() - 1, std::max(0, getVCellID(v, false)));
207 double nv = v / m_length + 0.5;
208 if (m_splitLength <= 0) return static_cast<int>(nv * m_vCells);
209 if (nv >= m_splitLength) return static_cast<int>((nv - m_splitLength) / (1 - m_splitLength) * m_vCells2) + m_vCells;
210 return static_cast<int>(nv / m_splitLength * m_vCells);
211 }
int getVCells() const
Return number of pixel/strips in v direction.
int getVCellID(double v, bool clamp=false) const
Return the corresponding pixel/strip ID of a given v coordinate.

◆ getVCellPosition()

double getVCellPosition ( int  vID) const
inlineinherited

Return the position of a specific strip/pixel in v direction.

Parameters
vIDid of the strip/pixel in v coordinates
Returns
Pixel/Strip position in v direction

Definition at line 180 of file SensorInfoBase.h.

181 {
182 if (m_splitLength <= 0) return ((vID + 0.5) / m_vCells - 0.5) * m_length;
183 if (vID >= m_vCells) return ((vID - m_vCells + 0.5) / m_vCells2 * (1 - m_splitLength) - 0.5 + m_splitLength) * m_length;
184 return ((vID + 0.5) / m_vCells * m_splitLength - 0.5) * m_length;
185 }

◆ getVCells()

int getVCells ( ) const
inlineinherited

Return number of pixel/strips in v direction.

Definition at line 216 of file SensorInfoBase.h.

216{ return m_vCells + m_vCells2; }

◆ getVCells2()

int getVCells2 ( ) const
inlineinherited

Return number of pixel/strips in v direction up to change pitch.

Definition at line 218 of file SensorInfoBase.h.

218{ return m_vCells2; }

◆ getVPitch()

double getVPitch ( double  v = 0) const
inlineinherited

Return the pitch of the sensor.

Parameters
vv-coordinate where to determine the pitch, only used for sensors with two different pixel sizes along v
Returns
Pixel/Strip size in v direction

Definition at line 139 of file SensorInfoBase.h.

140 {
141 if (m_splitLength <= 0) return m_length / m_vCells;
142 if (v / m_length + 0.5 >= m_splitLength) return m_length * (1 - m_splitLength) / m_vCells2;
144 }

◆ getVPitchID()

int getVPitchID ( double  v = 0) const
inlineinherited

Return the pitch ID of the sensor.

Parameters
vv-coordinate where to determine the pitchID only used for PXD sensors with two different pixel sizes along v
Returns
Pixel/Strip ID in v direction: 0 for pitch at smaller v, 1 for bigger v Attention: Pitch ID depend from sensor position For PXD it swap for sensor=1 vs. seensor=2 Sensor=1: bigger pitch = 0, smaller = 1 Sensor=2: smaller pitch = 0, bigger = 1

Definition at line 156 of file SensorInfoBase.h.

157 {
158 if (m_splitLength <= 0) return 0;
159 if (v / m_length + 0.5 >= m_splitLength) return 0;
160 return 1;
161 }

◆ getVSize()

double getVSize ( ) const
inlineinherited

Return the length of the sensor.

Returns
length of the sensor

Definition at line 121 of file SensorInfoBase.h.

121{ return getLength(); }

◆ getWidth()

double getWidth ( double  v = 0) const
inlineinherited

Return the width of the sensor.

Parameters
vv-coordinate where to determine the width, ignored for recangular sensors
Returns
width of the Sensor

Definition at line 80 of file SensorInfoBase.h.

81 {
82 if (m_deltaWidth == 0) return m_width;
83 return m_width + (v / m_length + 0.5) * m_deltaWidth;
84 }

◆ getWSize()

double getWSize ( ) const
inlineinherited

Return the thickness of the sensor.

Returns
thickness of the sensor

Definition at line 126 of file SensorInfoBase.h.

126{ return getThickness(); }

◆ inside() [1/2]

bool inside ( const ROOT::Math::XYZVector &  local,
double  uTolerance = DBL_EPSILON,
double  vTolerance = DBL_EPSILON,
double  wTolerance = DBL_EPSILON 
) const
inlineinherited

Check wether a given point is inside the active area.

Parameters
localpoint in local coordinates
uTolerancetolerance to be added on each side of the sensor in u direction
vTolerancetolerance to be added on each side of the sensor in v direction
wTolerancetolerance to be added on each side of the sensor in w direction
Returns
true if inside active area, false otherwise

Definition at line 243 of file SensorInfoBase.h.

245 {
246 double nw = local.Z() / (getThickness() + 2 * wTolerance) + 0.5;
247
248 return inside(local.X(), local.Y(), uTolerance, vTolerance) && 0 <= nw && nw <= 1;
249 }
bool inside(double u, double v, double uTolerance=DBL_EPSILON, double vTolerance=DBL_EPSILON) const
Check wether a given point is inside the active area.

◆ inside() [2/2]

bool inside ( double  u,
double  v,
double  uTolerance = DBL_EPSILON,
double  vTolerance = DBL_EPSILON 
) const
inlineinherited

Check wether a given point is inside the active area.

Optionally, one can specify a tolerance which should be added to the sensor edges to still be considered inside

Parameters
uu coordinate to check, supply 0 if not interested
vv coordinate to check, supply 0 if not interested
uTolerancetolerance to be added on each side of the sensor in u direction
vTolerancetolerance to be added on each side of the sensor in v direction
Returns
true if inside active area, false otherwise

Definition at line 229 of file SensorInfoBase.h.

230 {
231 double nu = u / (getWidth(v) + 2 * uTolerance) + 0.5;
232 double nv = v / (getLength() + 2 * vTolerance) + 0.5;
233 return 0 <= nu && nu <= 1 && 0 <= nv && nv <= 1;
234 }

◆ pointToGlobal()

ROOT::Math::XYZVector pointToGlobal ( const ROOT::Math::XYZVector &  local,
bool  reco = false 
) const
inlineinherited

Convert a point from local to global coordinates.

Parameters
localpoint in local coordinates
recoUse sensor position in reconstruction (true) or in nominal geometry (false)
Returns
point in global coordinates

Definition at line 369 of file SensorInfoBase.h.

370 {
371 double clocal[3];
372 double cmaster[3];
373 local.GetCoordinates(clocal);
374 if (reco) m_recoTransform.LocalToMaster(clocal, cmaster);
375 else m_transform.LocalToMaster(clocal, cmaster);
376 return ROOT::Math::XYZVector(cmaster[0], cmaster[1], cmaster[2]);
377 }

◆ pointToLocal()

ROOT::Math::XYZVector pointToLocal ( const ROOT::Math::XYZVector &  global,
bool  reco = false 
) const
inlineinherited

Convert a point from global to local coordinates.

Parameters
globalpoint in global coordinates
recoUse sensor position in reconstruction (true) or in nominal geometry (false)
Returns
point in local coordinates

Definition at line 389 of file SensorInfoBase.h.

390 {
391 double clocal[3];
392 double cmaster[3];
393 global.GetCoordinates(cmaster);
394 if (reco) m_recoTransform.MasterToLocal(cmaster, clocal);
395 else m_transform.MasterToLocal(cmaster, clocal);
396 return ROOT::Math::XYZVector(clocal[0], clocal[1], clocal[2]);
397 }

◆ setDEPFETParams()

void setDEPFETParams ( double  bulkDoping,
double  backVoltage,
double  topVoltage,
double  sourceBorderSmallPitch,
double  clearBorderSmallPitch,
double  drainBorderSmallPitch,
double  sourceBorderLargePitch,
double  clearBorderLargePitch,
double  drainBorderLargePitch,
double  gateDepth,
bool  doublePixel,
double  chargeThreshold,
double  noiseFraction 
)
inline

Set operation parameters like voltages.

Definition at line 55 of file SensorInfo.h.

59 {
60 m_bulkDoping = bulkDoping;
61 m_backVoltage = backVoltage;
62 m_topVoltage = topVoltage;
63 m_sourceBorderSmallPitch = sourceBorderSmallPitch;
64 m_clearBorderSmallPitch = clearBorderSmallPitch;
65 m_drainBorderSmallPitch = drainBorderSmallPitch;
66 m_sourceBorderLargePitch = sourceBorderLargePitch;
67 m_clearBorderLargePitch = clearBorderLargePitch;
68 m_drainBorderLargePitch = drainBorderLargePitch;
69 m_gateDepth = gateDepth;
70 m_doublePixel = doublePixel;
71 m_chargeThreshold = chargeThreshold;
72 m_noiseFraction = noiseFraction;
73 cook();
74 }

◆ setID()

void setID ( VxdID  id)
inline

Change the SensorID, useful to copy the SensorInfo from one sensor and use it for another.

Definition at line 37 of file SensorInfo.h.

37{ m_id = id; }

◆ setIntegrationWindow()

void setIntegrationWindow ( double  start,
double  end 
)
inline

Set the time window in which the sensor is active.

Definition at line 88 of file SensorInfo.h.

89 {
90 m_integrationStart = start;
91 m_integrationEnd = end;
92 }

◆ setLorentzFactor()

void setLorentzFactor ( )
protected

Calculate Lorentz shift factor.

This factor is constant for a sensor; the actual, position-dependent Lorentz shift is factor cross B.

◆ setSurfaceParameters()

void setSurfaceParameters ( const std::vector< double > &  planarParameters)
inlineinherited

Fill parameters of planar deformation to vector.

Definition at line 318 of file SensorInfoBase.h.

319 {
320 m_surfaceDeformationParameters = planarParameters;
321 }

◆ setTransformation()

void setTransformation ( const TGeoHMatrix &  transform,
bool  reco = false 
)
inlineinherited

Set the transformation matrix of the Sensor.

Parameters
transformTransformation matrix of the Sensor
recoSet transformation for reconstruction (true) or nominal (false)

Definition at line 301 of file SensorInfoBase.h.

302 {
303 if (reco) m_recoTransform = transform;
304 else m_transform = transform;
305 }

◆ vectorToGlobal()

ROOT::Math::XYZVector vectorToGlobal ( const ROOT::Math::XYZVector &  local,
bool  reco = false 
) const
inlineinherited

Convert a vector from local to global coordinates.

Parameters
localvector in local coordinates
recoUse sensor position in reconstruction (true) or in nominal geometry (false)
Returns
vector in global coordinates

Definition at line 379 of file SensorInfoBase.h.

380 {
381 double clocal[3];
382 double cmaster[3];
383 local.GetCoordinates(clocal);
384 if (reco) m_recoTransform.LocalToMasterVect(clocal, cmaster);
385 else m_transform.LocalToMasterVect(clocal, cmaster);
386 return ROOT::Math::XYZVector(cmaster[0], cmaster[1], cmaster[2]);
387 }

◆ vectorToLocal()

ROOT::Math::XYZVector vectorToLocal ( const ROOT::Math::XYZVector &  global,
bool  reco = false 
) const
inlineinherited

Convert a vector from global to local coordinates.

Parameters
globalvector in global coordinates
recoUse sensor position in reconstruction (true) or in nominal geometry (false)
Returns
vector in local coordinates

Definition at line 399 of file SensorInfoBase.h.

400 {
401 double clocal[3];
402 double cmaster[3];
403 global.GetCoordinates(cmaster);
404 if (reco) m_recoTransform.MasterToLocalVect(cmaster, clocal);
405 else m_transform.MasterToLocalVect(cmaster, clocal);
406 return ROOT::Math::XYZVector(clocal[0], clocal[1], clocal[2]);
407 }

Member Data Documentation

◆ m_backVoltage

double m_backVoltage
protected

The voltage at the backside of the sensor.

Definition at line 190 of file SensorInfo.h.

◆ m_bulkDoping

double m_bulkDoping
protected

Doping concentration of the silicon bulk.

Definition at line 188 of file SensorInfo.h.

◆ m_chargeThreshold

double m_chargeThreshold
protected

Charge threshold.

Definition at line 210 of file SensorInfo.h.

◆ m_clearBorderLargePitch

double m_clearBorderLargePitch
protected

The distance between the clear side of the pixel and the start of the Gate, large pitch area

Definition at line 202 of file SensorInfo.h.

◆ m_clearBorderSmallPitch

double m_clearBorderSmallPitch
protected

The distance between the clear side of the pixel and the start of the Gate, small pitch area

Definition at line 196 of file SensorInfo.h.

◆ m_deltaWidth

double m_deltaWidth
protectedinherited

Difference between backward and forward width, 0 for rectangular sensors.

Definition at line 341 of file SensorInfoBase.h.

◆ m_doublePixel

bool m_doublePixel
protected

True if the Sensor is a double pixel structure: every other pixel is mirrored along v.

Definition at line 208 of file SensorInfo.h.

◆ m_drainBorderLargePitch

double m_drainBorderLargePitch
protected

The distance between the drain side of the pixel and the start of the Gate, large pitch area

Definition at line 204 of file SensorInfo.h.

◆ m_drainBorderSmallPitch

double m_drainBorderSmallPitch
protected

The distance between the drain side of the pixel and the start of the Gate, small pitch area

Definition at line 198 of file SensorInfo.h.

◆ m_gateDepth

double m_gateDepth
protected

Return depth of the surface where the electrons will be collected.

Definition at line 206 of file SensorInfo.h.

◆ m_hallFactor

double m_hallFactor
protected

The bulk doping of the Silicon sensor.

Definition at line 186 of file SensorInfo.h.

◆ m_hxIG

double m_hxIG
protected

size in u direction of the internal gate trapping region

Definition at line 230 of file SensorInfo.h.

◆ m_id

unsigned short m_id
protectedinherited

ID of the Sensor.

Definition at line 333 of file SensorInfoBase.h.

◆ m_integrationEnd

double m_integrationEnd
protected

The end of the integration window, the timeframe the PXD is sensitive.

Definition at line 217 of file SensorInfo.h.

◆ m_integrationStart

double m_integrationStart
protected

The start of the integration window, the timeframe the PXD is sensitive.

Definition at line 215 of file SensorInfo.h.

◆ m_iup

double m_iup
protected

the reciprocal of the pixel pitch in u direction

Definition at line 220 of file SensorInfo.h.

◆ m_ivp

double m_ivp
protected

the reciprocal of the large pixel pitch in v direction

Definition at line 225 of file SensorInfo.h.

◆ m_ivp2

double m_ivp2
protected

the reciprocal of the small pixel pitch in v direction

Definition at line 228 of file SensorInfo.h.

◆ m_length

double m_length
protectedinherited

Length of the Sensor.

Definition at line 337 of file SensorInfoBase.h.

◆ m_mIGL

double m_mIGL
protected

middle of the internal gate trapping region for large pixels

Definition at line 231 of file SensorInfo.h.

◆ m_mIGS

double m_mIGS
protected

middle of the internal gate trapping region for small pixels

Definition at line 233 of file SensorInfo.h.

◆ m_noiseFraction

double m_noiseFraction
protected

Fixed noise fraction.

Definition at line 212 of file SensorInfo.h.

◆ m_recoTransform

TGeoHMatrix m_recoTransform
protectedinherited

Alignment-corrected transformation matrix of the Sensor for use in reconstruction.

Definition at line 353 of file SensorInfoBase.h.

◆ m_sIGL

double m_sIGL
protected

size in v direction of the internal gate trapping region for large pixels

Definition at line 232 of file SensorInfo.h.

◆ m_sIGS

double m_sIGS
protected

size in v direction of the internal gate trapping region for small pixels

Definition at line 234 of file SensorInfo.h.

◆ m_sourceBorderLargePitch

double m_sourceBorderLargePitch
protected

The distance between the source side of the pixel and the start of the Gate, large pitch area.

Definition at line 200 of file SensorInfo.h.

◆ m_sourceBorderSmallPitch

double m_sourceBorderSmallPitch
protected

The distance between the source side of the pixel and the start of the Gate, small pitch area.

Definition at line 194 of file SensorInfo.h.

◆ m_splitLength

double m_splitLength
protectedinherited

Relative length at which second pixel size starts, 0 for only one pixel size.

Definition at line 343 of file SensorInfoBase.h.

◆ m_surfaceDeformationParameters

std::vector<double> m_surfaceDeformationParameters = std::vector<double>(12, 0.0)
protectedinherited

Vector contains all parameter needed for description planar deformation of sensors.

Definition at line 355 of file SensorInfoBase.h.

◆ m_temperature

double m_temperature
protected

The temperature of the sensor.

Definition at line 184 of file SensorInfo.h.

◆ m_thickness

double m_thickness
protectedinherited

Thickness of the Sensor.

Definition at line 339 of file SensorInfoBase.h.

◆ m_topVoltage

double m_topVoltage
protected

The voltate at the top of the sensor.

Definition at line 192 of file SensorInfo.h.

◆ m_transform

TGeoHMatrix m_transform
protectedinherited

Nominal transformation matrix of the Sensor.

Definition at line 351 of file SensorInfoBase.h.

◆ m_type

SensorType m_type
protectedinherited

Type of the Sensor.

Definition at line 331 of file SensorInfoBase.h.

◆ m_uCells

int m_uCells
protectedinherited

Number of strips/pixels in u direction.

Definition at line 345 of file SensorInfoBase.h.

◆ m_up

double m_up
protected

pixel pitch in u direction

Definition at line 219 of file SensorInfo.h.

◆ m_vCells

int m_vCells
protectedinherited

Number of strips/pixels in v direction (up to splitLength for two pixel sizes)

Definition at line 347 of file SensorInfoBase.h.

◆ m_vCells2

int m_vCells2
protectedinherited

Number of strips/pixels in v direction after splitLength, 0 for only one pixel size.

Definition at line 349 of file SensorInfoBase.h.

◆ m_vp

double m_vp
protected

large pixel pitch in v direction

Definition at line 224 of file SensorInfo.h.

◆ m_vp2

double m_vp2
protected

small pixel pitch in v direction

Definition at line 227 of file SensorInfo.h.

◆ m_vsplit

double m_vsplit
protected

v coordinate which splits small and large pixel regions

Definition at line 222 of file SensorInfo.h.

◆ m_width

double m_width
protectedinherited

Width of the sensor.

Definition at line 335 of file SensorInfoBase.h.


The documentation for this class was generated from the following files: