9#ifndef SVD_SENSORINFO_H
10#define SVD_SENSORINFO_H
12#include <vxd/geometry/SensorInfoBase.h>
13#include <Math/Vector3D.h>
53 int uCells = 0,
int vCells = 0,
float width2 = 0):
54 VXD::
SensorInfoBase(
SensorInfo::
SVD, id, width, length, thickness, uCells, vCells, width2, -1, 0),
76 static const unsigned short layerSensors[] = {0, 0, 0, 2, 3, 4, 5};
78 (
id.getLayerNumber() > 3)
79 && (
id.getSensorNumber() == layerSensors[
id.getLayerNumber()]);
112 double depletionVoltage,
double biasVoltage,
113 double backplaneCapacitanceU,
114 double interstripCapacitanceU,
115 double couplingCapacitanceU,
116 double backplaneCapacitanceV,
117 double interstripCapacitanceV,
118 double couplingCapacitanceV,
119 double AduEquivalentU,
120 double AduEquivalentV,
121 double electronicNoiseU,
122 double electronicNoiseV,
123 double AduEquivalentSbwU,
124 double AduEquivalentSbwV,
125 double electronicNoiseSbwU,
126 double electronicNoiseSbwV)
201 const ROOT::Math::XYZVector
getEField(
const ROOT::Math::XYZVector& point)
const;
207 const ROOT::Math::XYZVector&
getBField(
const ROOT::Math::XYZVector& point)
const;
215 if (carrier == electron)
235 const ROOT::Math::XYZVector&
getLorentzShift(
double uCoord,
double vCoord)
const;
Specific implementation of SensorInfo for SVD Sensors which provides additional sensor specific infor...
CarrierType
Enum to flag charge carriers.
double getBiasVoltage() const
Return the bias voltage on the sensor.
double getBackplaneCapacitanceV(int vID=0) const
Return the backplane capacitanceV for the sensor's v strips (short).
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.
const ROOT::Math::XYZVector getVelocity(CarrierType carrier, const ROOT::Math::XYZVector &point) const
Get drift velocity for electrons or holes at a given point.
double m_electronicNoiseSbwU
The electronic noise for u strips in bw barrel (non-Origami) sensors.
double m_backplaneCapacitanceV
The backplane capacitance/cm for the sensor's v strips.
void setIsBackward(VxdID id)
Determine if this is a backward side barrel sensor.
double m_stripEdgeV
The distance between end of strips and edge of active area.
double m_electronicNoiseSbwV
The electronic noise for v strips in bw barrel (non-Origami) sensors.
const ROOT::Math::XYZVector & getBField(const ROOT::Math::XYZVector &point) const
Get B field value from the field map.
double m_aduEquivalentSbwU
ADU equivalent (electrons/ADU) for u strips, Sbw barrel sensors.
double getInterstripCapacitanceU(int uID=0) const
Return the interstrip capacitanceU for the sensor's u strips (long).
bool m_isBackward
Is this a backward barrel sensor?
double getAduEquivalentU() const
Return ADU equivalent for u strips.
void setID(VxdID id)
Change the SensorID.
double getElectronicNoiseV() const
Return electronic noise in e- for v (short) strips.
double getCouplingCapacitanceV(int vID=0) const
Return the coupling capacitanceV of the sensor's v strips (short).
double getStripLengthU(int uID=0) const
Return u-strip length.
const double c_fanoFactorSi
The Fano factor for silicon.
double m_electronicNoiseV
The electronic noise for v (short) strips.
double m_stripEdgeU
The distance between end of strips and edge of active area.
double getElectronMobility(double E) const
Calculate electron mobility at a given electric field.
double m_aduEquivalentSbwV
ADU equivalent (electrons/ADU) for v strips, Sbw barrel sensors.
double m_biasVoltage
The bias voltage on the sensor.
double m_interstripCapacitanceU
The interstrip capacitance/cm for the sensor's u strips.
double m_aduEquivalentV
ADU equivalent (electrons/ADU) for v strips.
double m_electronicNoiseU
The electronic noise for u (long) strips.
double getBackplaneCapacitanceU(int uID=0) const
Return the backplane capacitanceU for the sensor's u strips (long).
double m_couplingCapacitanceV
The coupling capacitance/cm for the sensor's v strips.
double m_interstripCapacitanceV
The interstrip capacitance/cm for the sensor's v strips.
double m_aduEquivalentU
ADU equivalent (electrons/ADU) for u strips.
double getStripLengthV(int vID=0) const
Return v-strip length.
const ROOT::Math::XYZVector getEField(const ROOT::Math::XYZVector &point) const
Model of the E field inside the sensor.
double getHallFactor(CarrierType carrier) const
Return Hall factor for the corresponding carrier type.
double getElectronicNoiseU() const
Return electronic noise in e- for u (long) strips.
double m_backplaneCapacitanceU
The backplane capacitance/cm for the sensor's u strips.
double getCouplingCapacitanceU(int uID=0) const
Return the coupling capacitanceU of the sensor's u strips (long)
double getInterstripCapacitanceV(int vID=0) const
Return the interstrip capacitanceV for the sensor's v strips (short).
double m_depletionVoltage
The depletion voltage of the Silicon sensor.
double getTemperature() const
Return the sensor temperature.
double getAduEquivalentV() const
Return ADU equivalent for v strips.
double getDepletionVoltage() const
Return the depletion voltage of the sensor.
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.
double getHoleMobility(double E) const
Calculate hole mobility at a given electric field.
double m_couplingCapacitanceU
The coupling capacitance/cm for the sensor's u strips.
double m_temperature
Sensor temperature.
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.
Coordinate
Enum for parametric access to sensor coordinates.
Base class to provide Sensor Information for PXD and SVD.
double getVCellPosition(int vID) const
Return the position of a specific strip/pixel in v direction.
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.
@ VXD
Any type of VXD Sensor.
double getWidth(double v=0) const
Return the width of the sensor.
unsigned short m_id
ID of the Sensor.
double m_deltaWidth
Difference between backward and forward width, 0 for rectangular sensors.
double m_length
Length of the Sensor.
int m_uCells
Number of strips/pixels in u direction.
Class to uniquely identify a any structure of the PXD and SVD.
double sqrt(double a)
sqrt for double
Abstract base class for different kinds of events.