 |
Belle II Software
release-05-02-19
|
11 #ifndef PXD_SENSORINFO_H
12 #define PXD_SENSORINFO_H
14 #include <vxd/geometry/SensorInfoBase.h>
16 #include <root/TVector3.h>
26 class SensorInfo:
public VXD::SensorInfoBase {
29 SensorInfo(VxdID
id = 0,
float width = 0,
float length = 0,
float thickness = 0,
int uCells = 0,
int vCells = 0,
30 float splitLength = 0,
int vCells2 = 0):
31 VXD::
SensorInfoBase(
SensorInfo::
PXD, id, width, length, thickness, uCells, vCells, 0, splitLength, vCells2),
m_temperature(300),
58 void setDEPFETParams(
double bulkDoping,
double backVoltage,
double topVoltage,
59 double sourceBorderSmallPitch,
double clearBorderSmallPitch,
double drainBorderSmallPitch,
60 double sourceBorderLargePitch,
double clearBorderLargePitch,
double drainBorderLargePitch,
61 double gateDepth,
bool doublePixel,
double chargeThreshold,
double noiseFraction)
150 const TVector3
getEField(
const TVector3& point)
const;
156 const TVector3
getBField(
const TVector3& point)
const;
168 const TVector3
getDriftVelocity(
const TVector3& E,
const TVector3& B)
const;
double m_backVoltage
The voltage at the backside of the sensor.
int m_vCells
Number of strips/pixels in v direction (up to splitLength for two pixel sizes)
double m_sourceBorderLargePitch
The distance between the source side of the pixel and the start of the Gate, large pitch area.
const TVector3 getEField(const TVector3 &point) const
Model of the E field inside the sensor.
const TVector3 getBField(const TVector3 &point) const
Get B field value from the field map.
double getBulkDoping() const
Return the bulk doping of the Silicon sensor.
Class to uniquely identify a any structure of the PXD and SVD.
double m_clearBorderLargePitch
The distance between the clear side of the pixel and the start of the Gate, large pitch area
double getTopVoltage() const
Return the voltage at the top of the sensor.
double m_sIGS
size in v direction of the internal gate trapping region for small pixels
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.
unsigned short m_id
ID 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 m_drainBorderSmallPitch
The distance between the drain side of the pixel and the start of the Gate, small pitch area
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.
const TVector3 getLorentzShift(double u, double v) const
Calculate Lorentz shift.
double m_hxIG
size in u direction of the internal gate trapping region
double m_vsplit
v coordinate which splits small and large pixel regions
@ VXD
Any type of VXD Sensor.
double getHallFactor() const
Return the Hall factor for electrons at sensor temperature.
double getIntegrationEnd() const
Return the end of the integration window, the timeframe the PXD is sensitive.
double m_clearBorderSmallPitch
The distance between the clear side of the pixel and the start of the Gate, small pitch area
double m_integrationStart
The start of the integration window, the timeframe the PXD is sensitive.
double m_sourceBorderSmallPitch
The distance between the source side of the pixel and the start of the Gate, small pitch area.
double m_mIGL
middle of the internal gate trapping region for large pixels
double m_chargeThreshold
Charge threshold.
bool getDoublePixel() const
Return true if the Sensor is a double pixel structure: every other pixel is mirrored along v.
int getPixelKindNew(const VxdID &sensorID, int vID) const
Return pixel kind ID.
double m_up
pixel pitch in u direction
double m_vp
large pixel pitch in v direction
double getIntegrationStart() const
Return the start of the integration window, the timeframe the PXD is sensitive.
double getElectronMobility(double E) const
Calculate electron mobility at a given electric field.
double m_mIGS
middle of the internal gate trapping region for small pixels
void setID(VxdID id)
Change the SensorID, useful to copy the SensorInfo from one sensor and use it for another.
SensorInfoBase(SensorType type, VxdID id, double width, double length, double thickness, int uCells, int vCells, double width2=-1, double splitLength=-1, int vCells2=0)
Constructor for a SensorInfo instance.
double m_gateDepth
Return depth of the surface where the electrons will be collected.
double getChargeThreshold() const
Get the charge threshold in ADU for the sensor.
double m_bulkDoping
Doping concentration of the silicon bulk.
Abstract base class for different kinds of events.
double getGateDepth() const
Return the gate depth for the sensor.
int getTrappedID(double x, double y) const
Get pixel number if the given coordinate is in the correspondin internal gate trapping region or -1 o...
int getPixelKind(const VxdID sensorID, double v) const
Return pixel kind ID.
double m_ivp
the reciprocal of the large pixel pitch in v direction
double getBackVoltage() const
Return the voltage at the backside of the sensor.
double m_temperature
The temperature of the sensor.
double m_iup
the reciprocal of the pixel pitch in u direction
double m_splitLength
Relative length at which second pixel size starts, 0 for only one pixel size.
void cook()
calculate constants in advance
void setIntegrationWindow(double start, double end)
Set the time window in which the sensor is active.
double m_ivp2
the reciprocal of the small pixel pitch in v direction
double getNoiseFraction() const
Get the noise fraction for the sensor.
double m_hallFactor
The bulk doping of the Silicon sensor.
void flipVSegmentation()
Flip the Pitch segmentation along v.
double m_vp2
small pixel pitch in v direction
const TVector3 getDriftVelocity(const TVector3 &E, const TVector3 &B) const
Calculate drift velocity of an electron.
double m_drainBorderLargePitch
The distance between the drain side of the pixel and the start of the Gate, large pitch area
bool m_doublePixel
True if the Sensor is a double pixel structure: every other pixel is mirrored along 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 m_topVoltage
The voltate at the top of the sensor.
int m_vCells2
Number of strips/pixels in v direction after splitLength, 0 for only one pixel size.
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 getTemperature() const
Return the temperature of the sensor.
double m_integrationEnd
The end of the integration window, the timeframe the PXD is sensitive.
double m_length
Length of the Sensor.
double m_sIGL
size in v direction of the internal gate trapping region for large pixels
void setLorentzFactor()
Calculate Lorentz shift factor.
double m_noiseFraction
Fixed noise fraction.