Belle II Software
release-08-01-10
|
Specific implementation of SensorInfo for SVD Sensors which provides additional sensor specific information. More...
#include <SensorInfo.h>
Public Types | |
enum | Coordinate { u = 1 , v = 0 } |
Enum for parametric access to sensor coordinates. | |
enum | CarrierType { electron = -1 , hole = +1 } |
Enum to flag charge carriers. More... | |
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 width2=0) | |
Constructor which automatically sets the SensorType to SensorInfo::SVD. More... | |
void | setIsBackward (VxdID id) |
Determine if this is a backward side barrel sensor. More... | |
void | setID (VxdID id) |
Change the SensorID. More... | |
void | setSensorParams (double stripEdgeU, double stripEdgeV, double depletionVoltage, double biasVoltage, double backplaneCapacitanceU, double interstripCapacitanceU, double couplingCapacitanceU, double backplaneCapacitanceV, double interstripCapacitanceV, double couplingCapacitanceV, double AduEquivalentU, double AduEquivalentV, double electronicNoiseU, double electronicNoiseV, double AduEquivalentSbwU, double AduEquivalentSbwV, double electronicNoiseSbwU, double electronicNoiseSbwV) |
Set sensor operation parameters. More... | |
double | getTemperature () const |
Return the sensor temperature. | |
double | getStripLengthU (int uID=0) const |
Return u-strip length. More... | |
double | getStripLengthV (int vID=0) const |
Return v-strip length. More... | |
double | getDepletionVoltage () const |
Return the depletion voltage of the sensor. | |
double | getBiasVoltage () const |
Return the bias voltage on the sensor. | |
double | getBackplaneCapacitanceU (int uID=0) const |
Return the backplane capacitanceU for the sensor's u strips (long). | |
double | getInterstripCapacitanceU (int uID=0) const |
Return the interstrip capacitanceU for the sensor's u strips (long). | |
double | getCouplingCapacitanceU (int uID=0) const |
Return the coupling capacitanceU of the sensor's u strips (long) | |
double | getBackplaneCapacitanceV (int vID=0) const |
Return the backplane capacitanceV for the sensor's v strips (short). | |
double | getInterstripCapacitanceV (int vID=0) const |
Return the interstrip capacitanceV for the sensor's v strips (short). | |
double | getCouplingCapacitanceV (int vID=0) const |
Return the coupling capacitanceV of the sensor's v strips (short). | |
double | getAduEquivalentU () const |
Return ADU equivalent for u strips. | |
double | getAduEquivalentV () const |
Return ADU equivalent for v strips. | |
double | getElectronicNoiseU () const |
Return electronic noise in e- for u (long) strips. | |
double | getElectronicNoiseV () const |
Return electronic noise in e- for v (short) strips. | |
double | getElectronMobility (double E) const |
Calculate electron mobility at a given electric field. More... | |
double | getHoleMobility (double E) const |
Calculate hole mobility at a given electric field. More... | |
const ROOT::Math::XYZVector | getEField (const ROOT::Math::XYZVector &point) const |
Model of the E field inside the sensor. More... | |
const ROOT::Math::XYZVector & | getBField (const ROOT::Math::XYZVector &point) const |
Get B field value from the field map. More... | |
double | getHallFactor (CarrierType carrier) const |
Return Hall factor for the corresponding carrier type. More... | |
const ROOT::Math::XYZVector | getVelocity (CarrierType carrier, const ROOT::Math::XYZVector &point) const |
Get drift velocity for electrons or holes at a given point. More... | |
const ROOT::Math::XYZVector & | getLorentzShift (double uCoord, double vCoord) const |
Calculate Lorentz shift along a given coordinate in a magnetic field at a given position. More... | |
double | getLorentzShift (bool isUCoordinate, double position) const |
Calculate mean Lorentz shift along a given coordinate, with B-field averaged along the corresponding strip. More... | |
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. More... | |
double | getBackwardWidth () const |
Convinience Wrapper to return width at backward side. More... | |
double | getForwardWidth () const |
Convinience Wrapper to return width at forward side. More... | |
double | getLength () const |
Return the length of the sensor. More... | |
double | getThickness () const |
Return the thickness of the sensor. More... | |
double | getUSize (double v=0) const |
Return the width of the sensor. More... | |
double | getVSize () const |
Return the length of the sensor. More... | |
double | getWSize () const |
Return the thickness of the sensor. More... | |
double | getUPitch (double v=0) const |
Return the pitch of the sensor. More... | |
double | getVPitch (double v=0) const |
Return the pitch of the sensor. More... | |
int | getVPitchID (double v=0) const |
Return the pitch ID of the sensor. More... | |
double | getUCellPosition (int uID, int vID=-1) const |
Return the position of a specific strip/pixel in u direction. More... | |
double | getVCellPosition (int vID) const |
Return the position of a specific strip/pixel in v direction. More... | |
int | getUCellID (double u, double v=0, bool clamp=false) const |
Return the corresponding pixel/strip ID of a given u coordinate. More... | |
int | getVCellID (double v, bool clamp=false) const |
Return the corresponding pixel/strip ID of a given v coordinate. More... | |
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. More... | |
bool | inside (const ROOT::Math::XYZVector &local) const |
Check wether a given point is inside the active area. More... | |
void | forceInside (double &u, double &v) const |
Force a position to be inside the active area. More... | |
void | forceInside (ROOT::Math::XYZVector &local) const |
Force a given point inside the active area. More... | |
ROOT::Math::XYZVector | pointToGlobal (const ROOT::Math::XYZVector &local, bool reco=false) const |
Convert a point from local to global coordinates. More... | |
ROOT::Math::XYZVector | vectorToGlobal (const ROOT::Math::XYZVector &local, bool reco=false) const |
Convert a vector from local to global coordinates. More... | |
ROOT::Math::XYZVector | pointToLocal (const ROOT::Math::XYZVector &global, bool reco=false) const |
Convert a point from global to local coordinates. More... | |
ROOT::Math::XYZVector | vectorToLocal (const ROOT::Math::XYZVector &global, bool reco=false) const |
Convert a vector from global to local coordinates. More... | |
void | setTransformation (const TGeoHMatrix &transform, bool reco=false) |
Set the transformation matrix of the Sensor. More... | |
const TGeoHMatrix & | getTransformation (bool reco=false) const |
Return the transformation matrix of the Sensor. More... | |
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. | |
Public Attributes | |
const double | c_fanoFactorSi = 0.08 |
The Fano factor for silicon. | |
Protected Attributes | |
double | m_temperature |
Sensor temperature. | |
double | m_stripEdgeU |
The distance between end of strips and edge of active area. | |
double | m_stripEdgeV |
The distance between end of strips and edge of active area. | |
double | m_depletionVoltage |
The depletion voltage of the Silicon sensor. | |
double | m_biasVoltage |
The bias voltage on the sensor. | |
double | m_backplaneCapacitanceU |
The backplane capacitance/cm for the sensor's u strips. | |
double | m_interstripCapacitanceU |
The interstrip capacitance/cm for the sensor's u strips. | |
double | m_couplingCapacitanceU |
The coupling capacitance/cm for the sensor's u strips. | |
double | m_backplaneCapacitanceV |
The backplane capacitance/cm for the sensor's v strips. | |
double | m_interstripCapacitanceV |
The interstrip capacitance/cm for the sensor's v strips. | |
double | m_couplingCapacitanceV |
The coupling capacitance/cm for the sensor's v strips. | |
double | m_aduEquivalentU |
ADU equivalent (electrons/ADU) for u strips. | |
double | m_aduEquivalentV |
ADU equivalent (electrons/ADU) for v strips. | |
double | m_electronicNoiseU |
The electronic noise for u (long) strips. | |
double | m_electronicNoiseV |
The electronic noise for v (short) strips. | |
double | m_aduEquivalentSbwU |
ADU equivalent (electrons/ADU) for u strips, Sbw barrel sensors. | |
double | m_aduEquivalentSbwV |
ADU equivalent (electrons/ADU) for v strips, Sbw barrel sensors. | |
double | m_electronicNoiseSbwU |
The electronic noise for u strips in bw barrel (non-Origami) sensors. | |
double | m_electronicNoiseSbwV |
The electronic noise for v strips in bw barrel (non-Origami) sensors. | |
bool | m_isBackward |
Is this a backward barrel sensor? | |
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. | |
Specific implementation of SensorInfo for SVD Sensors which provides additional sensor specific information.
This is a temporary fixup: the parameters are stored in the geometry xml files.
Definition at line 25 of file SensorInfo.h.
enum CarrierType |
|
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.
|
inline |
Constructor which automatically sets the SensorType to SensorInfo::SVD.
id | VXD ID of the sensor. |
width | Width of the sensor. |
length | Length of the sensor. |
thickness | Thickness of the senosr. |
uCells | Number of strips in u dirrection. |
vCells | Number of strips in v direction. |
width2 | For wedge sensors, width is the width at 0, width2 is the width at maximum u. |
Definition at line 52 of file SensorInfo.h.
|
inlineinherited |
Force a position to be inside the active area.
u | u coordinate to be forced inside |
v | v coordinate to be forced inside |
Definition at line 250 of file SensorInfoBase.h.
|
inlineinherited |
Force a given point inside the active area.
local | point in local coordinates, will be modified to lie inside or at the border of the sensor |
Definition at line 353 of file SensorInfoBase.h.
|
inlineinherited |
Convinience Wrapper to return width at backward side.
Definition at line 89 of file SensorInfoBase.h.
const ROOT::Math::XYZVector & getBField | ( | const ROOT::Math::XYZVector & | point | ) | const |
Get B field value from the field map.
point | Desired position in local coordinates. |
Definition at line 58 of file SensorInfo.cc.
const ROOT::Math::XYZVector getEField | ( | const ROOT::Math::XYZVector & | point | ) | const |
Model of the E field inside the sensor.
point | Desired position in local coordinates. |
Definition at line 47 of file SensorInfo.cc.
double getElectronMobility | ( | double | E | ) | const |
Calculate electron mobility at a given electric field.
Based on C. Canali et al., IEEE, ED-22, (1975) 1045
E | Electric field, V/cm |
Definition at line 21 of file SensorInfo.cc.
|
inlineinherited |
Convinience Wrapper to return width at forward side.
Definition at line 97 of file SensorInfoBase.h.
|
inline |
Return Hall factor for the corresponding carrier type.
carrier | electron or hole, SVD::SensorInfo::CarrierType |
Definition at line 213 of file SensorInfo.h.
double getHoleMobility | ( | double | E | ) | const |
Calculate hole mobility at a given electric field.
Based on C. Canali et al., IEEE, ED-22, (1975) 1045
E | Electric field, V/cm |
Definition at line 34 of file SensorInfo.cc.
|
inlineinherited |
Return the length of the sensor.
Definition at line 105 of file SensorInfoBase.h.
double getLorentzShift | ( | bool | isUCoordinate, |
double | position | ||
) | const |
Calculate mean Lorentz shift along a given coordinate, with B-field averaged along the corresponding strip.
Use this for 1D clusters, where only one coordinate is known.
isUCoordinate | True if u, false if v. |
position | The position of the strip. |
Definition at line 122 of file SensorInfo.cc.
const ROOT::Math::XYZVector & getLorentzShift | ( | double | uCoord, |
double | vCoord | ||
) | const |
Calculate Lorentz shift along a given coordinate in a magnetic field at a given position.
This method can only be used for a completely reconstructed 2D cluster. For 1D clusters, use the following method.
uCoord | u coordinate where the shift is required |
vCoord | v coordinate where the shift is required |
Definition at line 104 of file SensorInfo.cc.
|
inline |
Return u-strip length.
uID | number of the strip (ignored for rectangular sensors) |
Definition at line 289 of file SensorInfo.h.
|
inline |
Return v-strip length.
vID | number of the strip (ignored for rectangular sensors) |
Definition at line 301 of file SensorInfo.h.
|
inlineinherited |
Return the thickness of the sensor.
Definition at line 110 of file SensorInfoBase.h.
|
inlineinherited |
Return the transformation matrix of the Sensor.
reco | Get transformation for reconstruction (true) or nominal (false) |
Definition at line 306 of file SensorInfoBase.h.
|
inlineinherited |
Return the corresponding pixel/strip ID of a given u coordinate.
u | u coordinate of the pixel/strip |
v | v coordinate of the pixel/strip, ignored for rectangular sensors |
clamp | flag for clamp |
Definition at line 193 of file SensorInfoBase.h.
|
inlineinherited |
Return the position of a specific strip/pixel in u direction.
uID | id of the strip/pixel in u coordinates |
vID | id of the strip/pixel in v coordinates, ignored for rectangular sensors |
Definition at line 168 of file SensorInfoBase.h.
|
inlineinherited |
Return the pitch of the sensor.
v | v-coordinate where to determine the pitch, ignored for rectangular sensors |
Definition at line 132 of file SensorInfoBase.h.
|
inlineinherited |
Return the width of the sensor.
v | v-coordinate where to determine the width, ignored for recangular sensors |
Definition at line 116 of file SensorInfoBase.h.
|
inlineinherited |
Return the corresponding pixel/strip ID of a given v coordinate.
v | v coordinate of the pixel/strip |
clamp | flag for clamp |
Definition at line 204 of file SensorInfoBase.h.
|
inlineinherited |
Return the position of a specific strip/pixel in v direction.
vID | id of the strip/pixel in v coordinates |
Definition at line 180 of file SensorInfoBase.h.
const ROOT::Math::XYZVector getVelocity | ( | CarrierType | carrier, |
const ROOT::Math::XYZVector & | point | ||
) | const |
Get drift velocity for electrons or holes at a given point.
carrier | Electron or hole. |
point | The point in local coordinates. |
Definition at line 78 of file SensorInfo.cc.
|
inlineinherited |
Return the pitch of the sensor.
v | v-coordinate where to determine the pitch, only used for sensors with two different pixel sizes along v |
Definition at line 139 of file SensorInfoBase.h.
|
inlineinherited |
Return the pitch ID of the sensor.
v | v-coordinate where to determine the pitchID only used for PXD sensors with two different pixel sizes along v |
Definition at line 156 of file SensorInfoBase.h.
|
inlineinherited |
Return the length of the sensor.
Definition at line 121 of file SensorInfoBase.h.
|
inlineinherited |
Return the width of the sensor.
v | v-coordinate where to determine the width, ignored for recangular sensors |
Definition at line 80 of file SensorInfoBase.h.
|
inlineinherited |
Return the thickness of the sensor.
Definition at line 126 of file SensorInfoBase.h.
|
inlineinherited |
Check wether a given point is inside the active area.
local | point in local coordinates |
Definition at line 240 of file SensorInfoBase.h.
|
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
u | u coordinate to check, supply 0 if not interested |
v | v coordinate to check, supply 0 if not interested |
uTolerance | tolerance to be added on each side of the sensor in u direction |
vTolerance | tolerance to be added on each side of the sensor in u direction |
Definition at line 229 of file SensorInfoBase.h.
|
inlineinherited |
Convert a point from local to global coordinates.
local | point in local coordinates |
reco | Use sensor position in reconstruction (true) or in nominal geometry (false) |
Definition at line 364 of file SensorInfoBase.h.
|
inlineinherited |
Convert a point from global to local coordinates.
global | point in global coordinates |
reco | Use sensor position in reconstruction (true) or in nominal geometry (false) |
Definition at line 384 of file SensorInfoBase.h.
|
inline |
Change the SensorID.
Useful to copy the SensorInfo from one sensor and use it for another.
id | VxdID to be assigned to current sensor. |
Definition at line 85 of file SensorInfo.h.
|
inline |
Determine if this is a backward side barrel sensor.
We have special noise settings for these snesors. We need to cheat here, since we don't want to ask the GeoCache. @ param id VxdID of this sensor
Definition at line 74 of file SensorInfo.h.
|
inline |
Set sensor operation parameters.
stripEdgeU | distance from end of strip to edge of active area. |
stripEdgeV | distance from end of strip to edge of active area. |
depletionVoltage | Depletion voltage of the sensor. |
biasVoltage | Bias voltage on the sensor. |
backplaneCapacitanceU | Backplane capacitance wrt. the strips. |
interstripCapacitanceU | Interstrip capacitance for the sensor. |
couplingCapacitanceU | Coupling capacitance for the strips. |
backplaneCapacitanceV | Backplane capacitance wrt. the strips. |
interstripCapacitanceV | Interstrip capacitance for the sensor. |
couplingCapacitanceV | Coupling capacitance for the strips. |
AduEquivalentU | |
AduEquivalentV | |
electronicNoiseU | |
electronicNoiseV | |
AduEquivalentSbwU | |
AduEquivalentSbwV | |
electronicNoiseSbwU | |
electronicNoiseSbwV |
Definition at line 111 of file SensorInfo.h.
|
inlineinherited |
Set the transformation matrix of the Sensor.
transform | Transformation matrix of the Sensor |
reco | Set transformation for reconstruction (true) or nominal (false) |
Definition at line 296 of file SensorInfoBase.h.
|
inlineinherited |
Convert a vector from local to global coordinates.
local | vector in local coordinates |
reco | Use sensor position in reconstruction (true) or in nominal geometry (false) |
Definition at line 374 of file SensorInfoBase.h.
|
inlineinherited |
Convert a vector from global to local coordinates.
global | vector in global coordinates |
reco | Use sensor position in reconstruction (true) or in nominal geometry (false) |
Definition at line 394 of file SensorInfoBase.h.