CbmRoot
|
Class for the simulation of a sensor in the CBM-STS. More...
#include <CbmStsSimSensor.h>
Public Member Functions | |
CbmStsSimSensor (CbmStsElement *element=nullptr) | |
Standard constructor. | |
CbmStsSimSensor (const CbmStsSimSensor &)=delete | |
Copy constructor (disabled) | |
CbmStsSimSensor & | operator= (const CbmStsSimSensor &)=delete |
Assignment operator (disabled) | |
virtual | ~CbmStsSimSensor () |
Destructor | |
const CbmStsParSensorCond * | GetConditions () const |
Sensor conditions. | |
const CbmLink & | GetCurrentLink () const |
Current link object. | |
CbmStsElement * | GetElement () const |
Corresponding element in STS setup. | |
CbmStsSimModule * | GetModule () const |
Simulation module. | |
virtual Bool_t | Init () |
Initialise the sensor, if needed. | |
Int_t | GetSensorId () const |
Sensor ID. | |
Int_t | ProcessPoint (const CbmStsPoint *point, Double_t eventTime, const CbmLink &link) |
Process one MC Point. | |
void | SetConditions (const CbmStsParSensorCond *conditions) |
void | SetElement (CbmStsElement *element) |
Set the corresponding STS setup element. | |
void | SetField (Double_t bX, Double_t bY, Double_t bZ) |
Set the magnetic field in the sensor centre. | |
void | SetModule (CbmStsSimModule *module) |
Set the corresponding simulation module. | |
void | SetSimSettings (const CbmStsParSim *settings) |
Set the simulation settings. | |
virtual std::string | ToString () const =0 |
Set the sensor parameters. | |
Static Public Member Functions | |
static UInt_t | GetAddressFromName (TString name) |
Get the address from the sensor name (static) | |
Protected Member Functions | |
virtual Int_t | CalculateResponse (CbmStsSensorPoint *point)=0 |
Link to currently processed MCPoint. | |
ClassDef (CbmStsSimSensor, 1) | |
Protected Attributes | |
CbmStsElement * | fElement = nullptr |
CbmStsSimModule * | fModule = nullptr |
Setup element. | |
const CbmStsParSim * | fSettings = nullptr |
Simulation module. | |
const CbmStsParSensorCond * | fConditions = nullptr |
Simulation settings. | |
Double_t | fBx = 0. |
Operating conditions. | |
Double_t | fBy = 0. |
y component of magnetic field in sensor centre | |
Double_t | fBz = 0. |
z component of magnetic field in sensor centre | |
CbmLink | fCurrentLink = {} |
Class for the simulation of a sensor in the CBM-STS.
The interface to the simulation is the method ProcessPoint(), which performs the coordinate transformation from the global system to the sensor system, having the sensor midpoint as origin. The analog response has to be implemented in the pure virtual method CalulateResponse().
Definition at line 38 of file CbmStsSimSensor.h.
CbmStsSimSensor::CbmStsSimSensor | ( | CbmStsElement * | element = nullptr | ) |
Standard constructor.
setupSensor | Pointer to sensor element in CbmStsSetup |
|
delete |
Copy constructor (disabled)
|
inlinevirtual |
Destructor
Definition at line 56 of file CbmStsSimSensor.h.
|
protectedpure virtual |
Link to currently processed MCPoint.
Perform response simulation for one MC Point
point | Pointer to CbmStsSensorPoint with relevant parameters |
Perform the appropriate action for a particle trajectory in the sensor characterised by the CbmStsSensorPoint object. This is specific to the sensor type and has to be implemented in the derived class.
Implemented in CbmStsSimSensorDssd.
Referenced by ProcessPoint().
|
protected |
|
static |
Get the address from the sensor name (static)
name | Name of sensor @value Unique element address |
Definition at line 37 of file CbmStsSimSensor.cxx.
References CbmStsAddress::GetAddress().
|
inline |
Sensor conditions.
Definition at line 69 of file CbmStsSimSensor.h.
References fConditions.
Referenced by CbmStsSimSensorDssd::CalculateResponse(), CbmStsSimSensorDssd::LorentzShift(), CbmStsSimSensorDssdOrtho::PropagateCharge(), and CbmStsSimSensorDssdStereo::PropagateCharge().
|
inline |
Current link object.
Definition at line 75 of file CbmStsSimSensor.h.
References fCurrentLink.
Referenced by CbmStsSimSensorDssd::RegisterCharge().
|
inline |
Corresponding element in STS setup.
Definition at line 81 of file CbmStsSimSensor.h.
References fElement.
|
inline |
Simulation module.
Definition at line 87 of file CbmStsSimSensor.h.
References fModule.
Referenced by CbmStsSimSensorDssd::CalculateResponse(), and CbmStsSimSensorDssd::RegisterCharge().
Int_t CbmStsSimSensor::GetSensorId | ( | ) | const |
Sensor ID.
Definition at line 52 of file CbmStsSimSensor.cxx.
References fElement, CbmStsElement::GetAddress(), CbmStsAddress::GetElementId(), and kStsSensor.
Referenced by CbmStsSimSensorDssdOrtho::Init(), CbmStsSimSensorDssd::RegisterCharge(), and CbmStsSimSensorDssdOrtho::SetParameters().
|
inlinevirtual |
Initialise the sensor, if needed.
The implementation depends on the concrete sensor class.
Reimplemented in CbmStsSimSensorDssdOrtho, and CbmStsSimSensorDssdStereo.
Definition at line 95 of file CbmStsSimSensor.h.
|
delete |
Assignment operator (disabled)
Int_t CbmStsSimSensor::ProcessPoint | ( | const CbmStsPoint * | point, |
Double_t | eventTime, | ||
const CbmLink & | link ) |
Process one MC Point.
point | Pointer to CbmStsPoint object |
The point coordinates are converted into the internal coordinate system. The appropriate analogue response is then calculated with the pure virtual method CalculateResponse.
Definition at line 61 of file CbmStsSimSensor.cxx.
References CalculateResponse(), fCurrentLink, fElement, CbmStsPoint::GetPid(), CbmStsElement::GetPnode(), CbmStsPoint::GetPxOut(), CbmStsPoint::GetPyOut(), CbmStsPoint::GetPzOut(), CbmStsPoint::GetXIn(), CbmStsPoint::GetXOut(), CbmStsPoint::GetYIn(), CbmStsPoint::GetYOut(), CbmStsPoint::GetZIn(), CbmStsPoint::GetZOut(), and CbmStsPoint::IsEntry().
|
inline |
Set the sensor conditions
conditions | Pointer to conditions parameters |
Definition at line 118 of file CbmStsSimSensor.h.
References fConditions.
|
inline |
Set the corresponding STS setup element.
Pointer | to setup element |
Definition at line 124 of file CbmStsSimSensor.h.
References fElement.
|
inline |
Set the magnetic field in the sensor centre.
bX | x component of magnetic field [T] |
bY | y component of magnetic field [T] |
bZ | z component of magnetic field [T] |
The magnetic field is neede for the calculation of the Lorentz shift of charge carries in the sensor. The field is approximated to be constant.
Definition at line 136 of file CbmStsSimSensor.h.
|
inline |
Set the corresponding simulation module.
module | Pointer to module |
Definition at line 147 of file CbmStsSimSensor.h.
References fModule.
|
inline |
Set the simulation settings.
Simulation | setting parameteres |
Definition at line 153 of file CbmStsSimSensor.h.
References fSettings.
|
pure virtual |
Set the sensor parameters.
par | Sensor parameter object |
String output
Implemented in CbmStsSimSensorDssd, CbmStsSimSensorDssdOrtho, and CbmStsSimSensorDssdStereo.
|
protected |
Operating conditions.
x component of magnetic field in sensor centre
Definition at line 174 of file CbmStsSimSensor.h.
Referenced by SetField().
|
protected |
y component of magnetic field in sensor centre
Definition at line 175 of file CbmStsSimSensor.h.
Referenced by SetField().
|
protected |
z component of magnetic field in sensor centre
Definition at line 176 of file CbmStsSimSensor.h.
Referenced by SetField().
|
protected |
Simulation settings.
Definition at line 173 of file CbmStsSimSensor.h.
Referenced by GetConditions(), SetConditions(), and CbmStsSimSensorDssdStereo::ToString().
|
protected |
Definition at line 177 of file CbmStsSimSensor.h.
Referenced by GetCurrentLink(), and ProcessPoint().
|
protected |
Definition at line 169 of file CbmStsSimSensor.h.
Referenced by GetElement(), GetSensorId(), CbmStsSimSensorDssdOrtho::Init(), CbmStsSimSensorDssdStereo::Init(), ProcessPoint(), SetElement(), CbmStsSimSensorDssdOrtho::SetParameters(), CbmStsSimSensorDssdOrtho::ToString(), and CbmStsSimSensorDssdStereo::ToString().
|
protected |
Setup element.
Definition at line 170 of file CbmStsSimSensor.h.
Referenced by GetModule(), and SetModule().
|
protected |
Simulation module.
Definition at line 171 of file CbmStsSimSensor.h.
Referenced by CbmStsSimSensorDssd::CalculateResponse(), CbmStsSimSensorDssd::ProduceCharge(), CbmStsSimSensorDssdOrtho::PropagateCharge(), CbmStsSimSensorDssdStereo::PropagateCharge(), and SetSimSettings().