CbmRoot
Loading...
Searching...
No Matches
CbmStsSimSensor Class Referenceabstract

Class for the simulation of a sensor in the CBM-STS. More...

#include <CbmStsSimSensor.h>

Inheritance diagram for CbmStsSimSensor:
[legend]
Collaboration diagram for CbmStsSimSensor:
[legend]

Public Member Functions

 CbmStsSimSensor (CbmStsElement *element=nullptr)
 Standard constructor.
 
 CbmStsSimSensor (const CbmStsSimSensor &)=delete
 Copy constructor (disabled)
 
CbmStsSimSensoroperator= (const CbmStsSimSensor &)=delete
 Assignment operator (disabled)
 
virtual ~CbmStsSimSensor ()
 Destructor

 
const CbmStsParSensorCondGetConditions () const
 Sensor conditions.
 
const CbmLinkGetCurrentLink () const
 Current link object.
 
CbmStsElementGetElement () const
 Corresponding element in STS setup.
 
CbmStsSimModuleGetModule () 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

CbmStsElementfElement = nullptr
 
CbmStsSimModulefModule = nullptr
 Setup element.
 
const CbmStsParSimfSettings = nullptr
 Simulation module.
 
const CbmStsParSensorCondfConditions = 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 = {}
 

Detailed Description

Class for the simulation of a sensor in the CBM-STS.

Author
V.Friese v.fri.nosp@m.ese@.nosp@m.gsi.d.nosp@m.e
Since
16.03.2020

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.

Constructor & Destructor Documentation

◆ CbmStsSimSensor() [1/2]

CbmStsSimSensor::CbmStsSimSensor ( CbmStsElement * element = nullptr)

Standard constructor.

Parameters
setupSensorPointer to sensor element in CbmStsSetup

◆ CbmStsSimSensor() [2/2]

CbmStsSimSensor::CbmStsSimSensor ( const CbmStsSimSensor & )
delete

Copy constructor (disabled)

◆ ~CbmStsSimSensor()

virtual CbmStsSimSensor::~CbmStsSimSensor ( )
inlinevirtual

Destructor

Definition at line 56 of file CbmStsSimSensor.h.

Member Function Documentation

◆ CalculateResponse()

virtual Int_t CbmStsSimSensor::CalculateResponse ( CbmStsSensorPoint * point)
protectedpure virtual

Link to currently processed MCPoint.

Perform response simulation for one MC Point

Parameters
pointPointer to CbmStsSensorPoint with relevant parameters
Returns
Status variable, depends on concrete type

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().

◆ ClassDef()

CbmStsSimSensor::ClassDef ( CbmStsSimSensor ,
1  )
protected

◆ GetAddressFromName()

UInt_t CbmStsSimSensor::GetAddressFromName ( TString name)
static

Get the address from the sensor name (static)

Parameters
nameName of sensor @value Unique element address

Definition at line 37 of file CbmStsSimSensor.cxx.

References CbmStsAddress::GetAddress().

◆ GetConditions()

const CbmStsParSensorCond * CbmStsSimSensor::GetConditions ( ) const
inline

◆ GetCurrentLink()

const CbmLink & CbmStsSimSensor::GetCurrentLink ( ) const
inline

Current link object.

Returns
Current link object (to CbmStsPoint)

Definition at line 75 of file CbmStsSimSensor.h.

References fCurrentLink.

Referenced by CbmStsSimSensorDssd::RegisterCharge().

◆ GetElement()

CbmStsElement * CbmStsSimSensor::GetElement ( ) const
inline

Corresponding element in STS setup.

Returns
Sensor element

Definition at line 81 of file CbmStsSimSensor.h.

References fElement.

◆ GetModule()

CbmStsSimModule * CbmStsSimSensor::GetModule ( ) const
inline

Simulation module.

Returns
Corresponding simulation module

Definition at line 87 of file CbmStsSimSensor.h.

References fModule.

Referenced by CbmStsSimSensorDssd::CalculateResponse(), and CbmStsSimSensorDssd::RegisterCharge().

◆ GetSensorId()

Int_t CbmStsSimSensor::GetSensorId ( ) const

◆ Init()

virtual Bool_t CbmStsSimSensor::Init ( )
inlinevirtual

Initialise the sensor, if needed.

Returns
kTRUE is successfully initialised

The implementation depends on the concrete sensor class.

Reimplemented in CbmStsSimSensorDssdOrtho, and CbmStsSimSensorDssdStereo.

Definition at line 95 of file CbmStsSimSensor.h.

◆ operator=()

CbmStsSimSensor & CbmStsSimSensor::operator= ( const CbmStsSimSensor & )
delete

Assignment operator (disabled)

◆ ProcessPoint()

Int_t CbmStsSimSensor::ProcessPoint ( const CbmStsPoint * point,
Double_t eventTime,
const CbmLink & link )

Process one MC Point.

Parameters
pointPointer to CbmStsPoint object
Returns
Status variable, depends on sensor type

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().

◆ SetConditions()

void CbmStsSimSensor::SetConditions ( const CbmStsParSensorCond * conditions)
inline

Set the sensor conditions

Parameters
conditionsPointer to conditions parameters

Definition at line 118 of file CbmStsSimSensor.h.

References fConditions.

◆ SetElement()

void CbmStsSimSensor::SetElement ( CbmStsElement * element)
inline

Set the corresponding STS setup element.

Parameters
Pointerto setup element

Definition at line 124 of file CbmStsSimSensor.h.

References fElement.

◆ SetField()

void CbmStsSimSensor::SetField ( Double_t bX,
Double_t bY,
Double_t bZ )
inline

Set the magnetic field in the sensor centre.

Parameters
bXx component of magnetic field [T]
bYy component of magnetic field [T]
bZz 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.

References fBx, fBy, and fBz.

◆ SetModule()

void CbmStsSimSensor::SetModule ( CbmStsSimModule * module)
inline

Set the corresponding simulation module.

Parameters
modulePointer to module

Definition at line 147 of file CbmStsSimSensor.h.

References fModule.

◆ SetSimSettings()

void CbmStsSimSensor::SetSimSettings ( const CbmStsParSim * settings)
inline

Set the simulation settings.

Parameters
Simulationsetting parameteres

Definition at line 153 of file CbmStsSimSensor.h.

References fSettings.

◆ ToString()

virtual std::string CbmStsSimSensor::ToString ( ) const
pure virtual

Set the sensor parameters.

Parameters
parSensor parameter object

String output

Implemented in CbmStsSimSensorDssd, CbmStsSimSensorDssdOrtho, and CbmStsSimSensorDssdStereo.

Member Data Documentation

◆ fBx

Double_t CbmStsSimSensor::fBx = 0.
protected

Operating conditions.

x component of magnetic field in sensor centre

Definition at line 174 of file CbmStsSimSensor.h.

Referenced by SetField().

◆ fBy

Double_t CbmStsSimSensor::fBy = 0.
protected

y component of magnetic field in sensor centre

Definition at line 175 of file CbmStsSimSensor.h.

Referenced by SetField().

◆ fBz

Double_t CbmStsSimSensor::fBz = 0.
protected

z component of magnetic field in sensor centre

Definition at line 176 of file CbmStsSimSensor.h.

Referenced by SetField().

◆ fConditions

const CbmStsParSensorCond* CbmStsSimSensor::fConditions = nullptr
protected

Simulation settings.

Definition at line 173 of file CbmStsSimSensor.h.

Referenced by GetConditions(), SetConditions(), and CbmStsSimSensorDssdStereo::ToString().

◆ fCurrentLink

CbmLink CbmStsSimSensor::fCurrentLink = {}
protected

Definition at line 177 of file CbmStsSimSensor.h.

Referenced by GetCurrentLink(), and ProcessPoint().

◆ fElement

◆ fModule

CbmStsSimModule* CbmStsSimSensor::fModule = nullptr
protected

Setup element.

Definition at line 170 of file CbmStsSimSensor.h.

Referenced by GetModule(), and SetModule().

◆ fSettings


The documentation for this class was generated from the following files: