CbmRoot
CbmStsSimSensorDssd.h
Go to the documentation of this file.
1 
6 #ifndef CBMSTSSIMSENSORDSSD_H
7 #define CBMSTSSIMSENSORDSSD_H 1
8 
9 
10 #include "CbmStsSimSensor.h"
11 #include <TArrayD.h>
12 
13 
46 
47 public:
51  CbmStsSimSensorDssd(CbmStsElement* element = nullptr);
52 
53 
56 
57 
60 
61 
63  virtual ~CbmStsSimSensorDssd() {};
64 
65 
70  virtual Int_t GetNofStrips(Int_t side) const = 0;
71 
72 
78  virtual void ModifyStripPitch(Double_t pitch) = 0;
79 
80 
82  std::string ChargeStatus() const;
83 
84 
86  virtual std::string ToString() const = 0;
87 
88 
89 protected:
90  Double_t fDx = 0.;
91  Double_t fDy = 0.;
92  Double_t fDz = 0.;
93  Bool_t fIsSet = kFALSE;
94 
97  TArrayD fStripCharge[2] {};
98 
99 
110  virtual Int_t CalculateResponse(CbmStsSensorPoint* point);
111 
112 
119  void CrossTalk(Double_t ctCoeff);
120 
121 
131  virtual Int_t
132  GetModuleChannel(Int_t strip, Int_t side, Int_t sensorId) const = 0;
133 
134 
144  Bool_t IsInside(Double_t x, Double_t y);
145 
146 
160  Double_t LorentzShift(Double_t z, Int_t chargeType, Double_t bY) const;
161 
162 
169  void ProduceCharge(CbmStsSensorPoint* point);
170 
171 
181  virtual void PropagateCharge(Double_t x,
182  Double_t y,
183  Double_t z,
184  Double_t charge,
185  Double_t bY,
186  Int_t side) = 0;
187 
188 
198  void
199  RegisterCharge(Int_t side, Int_t strip, Double_t charge, Double_t time) const;
200 
201 
203 };
204 
205 
206 #endif
CbmStsSimSensorDssd::fIsSet
Bool_t fIsSet
Flag whether sensor is properly initialised.
Definition: CbmStsSimSensorDssd.h:93
CbmStsSensorPoint
Container class for a local point in a STS sensor.
Definition: CbmStsSensorPoint.h:19
CbmStsSimSensorDssd::fStripCharge
TArrayD fStripCharge[2]
Definition: CbmStsSimSensorDssd.h:97
CbmStsSimSensor
Class for the simulation of a sensor in the CBM-STS.
Definition: CbmStsSimSensor.h:32
CbmStsSimSensorDssd::LorentzShift
Double_t LorentzShift(Double_t z, Int_t chargeType, Double_t bY) const
Lorentz shift in the x coordinate.
Definition: CbmStsSimSensorDssd.cxx:141
CbmStsSimSensorDssd::fDy
Double_t fDy
Dimension of active area in y [cm].
Definition: CbmStsSimSensorDssd.h:91
CbmStsSimSensorDssd::RegisterCharge
void RegisterCharge(Int_t side, Int_t strip, Double_t charge, Double_t time) const
Register the produced charge in one strip to the module.
Definition: CbmStsSimSensorDssd.cxx:284
CbmStsSimSensorDssd::CalculateResponse
virtual Int_t CalculateResponse(CbmStsSensorPoint *point)
Analogue response to a track in the sensor.
Definition: CbmStsSimSensorDssd.cxx:31
CbmStsSimSensorDssd::ToString
virtual std::string ToString() const =0
String output.
CbmStsSimSensorDssd::~CbmStsSimSensorDssd
virtual ~CbmStsSimSensorDssd()
Destructor
Definition: CbmStsSimSensorDssd.h:63
CbmStsSimSensorDssd::IsInside
Bool_t IsInside(Double_t x, Double_t y)
Definition: CbmStsSimSensorDssd.cxx:130
CbmStsSimSensorDssd::CrossTalk
void CrossTalk(Double_t ctCoeff)
Definition: CbmStsSimSensorDssd.cxx:96
CbmStsSimSensorDssd::GetModuleChannel
virtual Int_t GetModuleChannel(Int_t strip, Int_t side, Int_t sensorId) const =0
Get the readout channel in the module for a given strip.
CbmStsSimSensorDssd::CbmStsSimSensorDssd
CbmStsSimSensorDssd(CbmStsSimSensorDssd &rhs)=delete
Copy constructor (disabled)
CbmStsSimSensor.h
CbmStsSimSensorDssd::ClassDef
ClassDef(CbmStsSimSensorDssd, 1)
CbmStsSimSensorDssd
Abstract class for the simulation of double-sided silicon strip sensors.
Definition: CbmStsSimSensorDssd.h:45
CbmStsSimSensorDssd::CbmStsSimSensorDssd
CbmStsSimSensorDssd(CbmStsElement *element=nullptr)
Standard constructor.
Definition: CbmStsSimSensorDssd.cxx:25
CbmStsSimSensorDssd::PropagateCharge
virtual void PropagateCharge(Double_t x, Double_t y, Double_t z, Double_t charge, Double_t bY, Int_t side)=0
x
Double_t x
Definition: CbmMvdSensorDigiToHitTask.cxx:68
CbmStsSimSensorDssd::ChargeStatus
std::string ChargeStatus() const
Print charge status.
Definition: CbmStsSimSensorDssd.cxx:78
y
Double_t y
Definition: CbmMvdSensorDigiToHitTask.cxx:68
CbmStsSimSensorDssd::operator=
CbmStsSimSensorDssd & operator=(const CbmStsSimSensorDssd &rhs)=delete
Assignment operator (disabled)
CbmStsSimSensorDssd::ProduceCharge
void ProduceCharge(CbmStsSensorPoint *point)
Generate charge as response to a sensor point.
Definition: CbmStsSimSensorDssd.cxx:189
CbmStsSimSensorDssd::GetNofStrips
virtual Int_t GetNofStrips(Int_t side) const =0
Number of strips on front and back side.
CbmStsSimSensorDssd::fDz
Double_t fDz
Thickness in z [cm].
Definition: CbmStsSimSensorDssd.h:92
CbmStsElement
Class representing an element of the STS setup.
Definition: CbmStsElement.h:32
CbmStsSimSensorDssd::fDx
Double_t fDx
Dimension of active area in x [cm].
Definition: CbmStsSimSensorDssd.h:90
CbmStsSimSensorDssd::ModifyStripPitch
virtual void ModifyStripPitch(Double_t pitch)=0
Modify the strip pitch.