CbmRoot
|
Class representing a station of the StsSystem. More...
#include <CbmStsStation.h>
Public Member Functions | |
CbmStsStation () | |
CbmStsStation (const char *name, const char *title, TGeoPhysicalNode *node=nullptr) | |
virtual | ~CbmStsStation () |
void | AddLadder (CbmStsElement *ladder) |
Double_t | GetRadLength () const |
Double_t | GetSensorD () const |
Double_t | GetSensorPitch (Int_t iSide) const |
Double_t | GetSensorRotation () const |
Double_t | GetSensorStereoAngle (Int_t iSide) const |
Double_t | GetXmin () const |
Double_t | GetXmax () const |
Double_t | GetYmin () const |
Double_t | GetYmax () const |
Double_t | GetZ () const |
void | Init () |
Initialise the station parameters. More... | |
virtual std::string | ToString () const |
Private Member Functions | |
void | CheckSensorProperties () |
Check properties of sensors (position, thickness) The z position of the station is determined as the mean of the minimum and maximum z positions of all sensors within the station. The active thickness of the first sensor is defined as thickness of the entire station. A warning is given out if there are different thicknesses among the sensors in the stations. More... | |
CbmStsStation (const CbmStsStation &) | |
CbmStsStation & | operator= (const CbmStsStation &) |
ClassDef (CbmStsStation, 1) | |
Private Attributes | |
Double_t | fZ |
z position of station [cm] More... | |
Double_t | fXmin |
minimal x coordinate [cm] More... | |
Double_t | fXmax |
maximal x coordinate [cm] More... | |
Double_t | fYmin |
minimal y coordinate [cm] More... | |
Double_t | fYmax |
maximal y coordinate [cm] More... | |
Double_t | fSensorD |
thickness of sensors [cm] More... | |
Double_t | fSensorRot |
Rotation of first sensor in global c.s. [rad]. More... | |
Int_t | fNofSensors |
Number of sensors in station. More... | |
Bool_t | fDiffSensorD |
Flag for different sensor thicknesses. More... | |
CbmStsSensor * | fFirstSensor |
Pointer to first sensor. More... | |
TGeoPhysicalNode * | fNode |
Pointer to geometry. More... | |
std::vector< CbmStsElement * > | fLadders |
Array of ladders. More... | |
Class representing a station of the StsSystem.
The StsStation class represents one level in the STS element hierarchy. It holds station-wide parameters like z position, sensor thickness, and material budget for use in reconstruction tasks.
Definition at line 29 of file CbmStsStation.h.
CbmStsStation::CbmStsStation | ( | ) |
Default constructor
Definition at line 32 of file CbmStsStation.cxx.
CbmStsStation::CbmStsStation | ( | const char * | name, |
const char * | title, | ||
TGeoPhysicalNode * | node = nullptr |
||
) |
Standard constructor
name | Station name |
title | Station type |
node | Pointer to corresponding TGeoPhysicalNode |
Definition at line 50 of file CbmStsStation.cxx.
|
virtual |
Destructor
Definition at line 70 of file CbmStsStation.cxx.
|
private |
void CbmStsStation::AddLadder | ( | CbmStsElement * | ladder | ) |
Add a ladder to the station
Definition at line 75 of file CbmStsStation.cxx.
References fLadders, CbmStsElement::GetLevel(), and kStsLadder.
Referenced by CbmStsSetup::CreateStations().
|
private |
Check properties of sensors (position, thickness) The z position of the station is determined as the mean of the minimum and maximum z positions of all sensors within the station. The active thickness of the first sensor is defined as thickness of the entire station. A warning is given out if there are different thicknesses among the sensors in the stations.
Definition at line 88 of file CbmStsStation.cxx.
References fDiffSensorD, fFirstSensor, fLadders, fNofSensors, fSensorD, fZ, CbmStsElement::GetDaughter(), CbmStsElement::GetNofDaughters(), and CbmStsElement::GetPnode().
Referenced by Init().
|
private |
|
inline |
Radiation length of the main material of the station (silicon) @value Radiation length of silicon [cm]
Required from L1/KF. The value for silicon is hard-coded here, since it is not likely that the material will change.
Definition at line 60 of file CbmStsStation.h.
Referenced by CbmKF::Init(), CbmL1::Init(), and CbmL1::WriteSIMDKFData().
|
inline |
Sensor thickness @value Thickness (extension in z) of first sensor [cm]
This return the thickness of the first sensor in the station. Needed by L1/KF. Note that in general, sensors of different thicknesses can be in the station. In this case, a warning message is issued when the station properties are initialised.
Definition at line 72 of file CbmStsStation.h.
References fSensorD.
Referenced by CbmKF::Init(), CbmL1::Init(), and CbmL1::WriteSIMDKFData().
Double_t CbmStsStation::GetSensorPitch | ( | Int_t | iSide | ) | const |
Get sensor strip pitch
iSide | Sensor side (0 = front, 1 = back) @value Strip pitch [cm] |
This return the strip pitch of the first sensor in the station. Valid only for sensors of type DSSD. Needed by L1/KF. Note that in general, sensors of different pitches can be in the station.
Returns -1 if there are no sensors in the station or the first sensor is not of type DSSD.
Definition at line 151 of file CbmStsStation.cxx.
References fFirstSensor, CbmStsParSensor::GetClass(), CbmStsParSensor::GetPar(), CbmStsSensor::GetParams(), kDssdOrtho, and kDssdStereo.
Referenced by CbmL1::Init(), ToString(), and CbmL1::WriteSIMDKFData().
|
inline |
Sensor rotation @value Rotation of first sensor in station in global C.S. [rad]
This return the rotation angle in the x-y plane of the first sensor in the station w.r.t. the global C.S. Needed by L1/KF. Note that in general, the rotation angle will be different for each sensor. In particular, half of them are upside down.
Definition at line 99 of file CbmStsStation.h.
References fSensorRot.
Referenced by CbmL1::Init(), and CbmL1::WriteSIMDKFData().
Double_t CbmStsStation::GetSensorStereoAngle | ( | Int_t | iSide | ) | const |
Get sensor stereo angle
iSide | Sensor side (0 = front, 1 = back) @value Stereo angle [degrees] |
This return the strip stereo angle of the first sensor in the station. Valid only for sensors of type DSSD. Needed by L1/KF. Note that in general, sensors of different stereo angles can be in the station.
Definition at line 166 of file CbmStsStation.cxx.
References fFirstSensor, CbmStsParSensor::GetClass(), CbmStsParSensor::GetPar(), CbmStsSensor::GetParams(), and kDssdStereo.
Referenced by CbmL1::Init(), ToString(), and CbmL1::WriteSIMDKFData().
|
inline |
Definition at line 117 of file CbmStsStation.h.
References fXmax.
Referenced by CbmL1::FieldApproxCheck(), CbmKF::Init(), CbmL1::Init(), and CbmL1::WriteSIMDKFData().
|
inline |
Minimal and maximal x and y coordinates
Definition at line 116 of file CbmStsStation.h.
References fXmin.
|
inline |
Definition at line 119 of file CbmStsStation.h.
References fYmax.
Referenced by CbmL1::FieldApproxCheck(), CbmKF::Init(), CbmL1::Init(), and CbmL1::WriteSIMDKFData().
|
inline |
Definition at line 118 of file CbmStsStation.h.
References fYmin.
|
inline |
Station z position in global c.s. @value z Position of station in global C.S. [cm]
Calculated from the sensor positions (mean between min z and max z)
Definition at line 127 of file CbmStsStation.h.
References fZ.
Referenced by CbmEventBuilderQA::CalculateIsReconstructable(), CbmL1::FieldApproxCheck(), CbmKF::Init(), CbmL1::Init(), and CbmL1::WriteSIMDKFData().
void CbmStsStation::Init | ( | ) |
Initialise the station parameters.
Definition at line 180 of file CbmStsStation.cxx.
References atan2(), CheckSensorProperties(), fDiffSensorD, fFirstSensor, fLadders, fNode, fSensorRot, fXmax, fXmin, fYmax, fYmin, and CbmStsSensor::GetNode().
Referenced by CbmStsSetup::CreateStations().
|
private |
|
virtual |
Info
Definition at line 247 of file CbmStsStation.cxx.
References fFirstSensor, fNofSensors, fSensorD, fSensorRot, fXmax, fXmin, fYmax, fYmin, fZ, CbmStsSensor::GetParams(), GetSensorPitch(), and GetSensorStereoAngle().
|
private |
Flag for different sensor thicknesses.
Definition at line 147 of file CbmStsStation.h.
Referenced by CheckSensorProperties(), and Init().
|
private |
Pointer to first sensor.
Definition at line 148 of file CbmStsStation.h.
Referenced by CheckSensorProperties(), GetSensorPitch(), GetSensorStereoAngle(), Init(), and ToString().
|
private |
Array of ladders.
Definition at line 151 of file CbmStsStation.h.
Referenced by AddLadder(), CheckSensorProperties(), and Init().
|
private |
|
private |
Number of sensors in station.
Definition at line 146 of file CbmStsStation.h.
Referenced by CheckSensorProperties(), and ToString().
|
private |
thickness of sensors [cm]
Definition at line 144 of file CbmStsStation.h.
Referenced by CheckSensorProperties(), GetSensorD(), and ToString().
|
private |
Rotation of first sensor in global c.s. [rad].
Definition at line 145 of file CbmStsStation.h.
Referenced by GetSensorRotation(), Init(), and ToString().
|
private |
maximal x coordinate [cm]
Definition at line 141 of file CbmStsStation.h.
Referenced by GetXmax(), Init(), and ToString().
|
private |
minimal x coordinate [cm]
Definition at line 140 of file CbmStsStation.h.
Referenced by GetXmin(), Init(), and ToString().
|
private |
maximal y coordinate [cm]
Definition at line 143 of file CbmStsStation.h.
Referenced by GetYmax(), Init(), and ToString().
|
private |
minimal y coordinate [cm]
Definition at line 142 of file CbmStsStation.h.
Referenced by GetYmin(), Init(), and ToString().
|
private |
z position of station [cm]
Definition at line 139 of file CbmStsStation.h.
Referenced by CheckSensorProperties(), GetZ(), and ToString().