CbmRoot
Loading...
Searching...
No Matches
CbmStsSimSensorDssdStereo.h
Go to the documentation of this file.
1/* Copyright (C) 2017-2020 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Volker Friese [committer] */
4
10#ifndef CBMSTSSIMSENSORDSSDSTEREO_H
11#define CBMSTSSIMSENSORDSSDSTEREO_H 1
12
13
14#include "CbmStsSimSensorDssd.h"
15
16
45
46public:
52 CbmStsSimSensorDssdStereo(CbmStsElement* element = nullptr);
53
54
62 CbmStsSimSensorDssdStereo(Double_t dy, Int_t nStrips, Double_t pitch, Double_t stereoF, Double_t stereoB,
63 CbmStsElement* element = nullptr);
64
65
68
69
72
73
76
77
82 virtual Int_t GetNofStrips(Int_t) const { return fNofStrips; }
83
84
89 Double_t GetStereoAngle(Int_t side) const { return (side == 0 ? fStereoF : fStereoB); }
90
91
98 virtual Bool_t Init();
99
100
106 virtual void ModifyStripPitch(Double_t pitch);
107
108
110 std::string ToString() const;
111
112
113protected:
114 Int_t fNofStrips = 0;
115 Double_t fPitch = 0.;
116 Double_t fStereoF = 100.;
117 Double_t fStereoB = 100;
118
120 Double_t fTanStereo[2] {};
121 Double_t fCosStereo[2] {};
122 Int_t fStripShift[2] {};
123 Double_t fErrorFac = 0.;
124
125
148 virtual void Diffusion(Double_t x, Double_t y, Double_t sigma, Int_t side, Double_t& fracL, Double_t& fracC,
149 Double_t& fracR);
150
151
161 virtual Int_t GetModuleChannel(Int_t strip, Int_t side, Int_t sensorId) const;
162
163
170 virtual Int_t GetStripNumber(Double_t x, Double_t y, Int_t side) const;
171
172
182 virtual void PropagateCharge(Double_t x, Double_t y, Double_t z, Double_t charge, Double_t bY, Int_t side);
183
184
186};
187
188
189#endif
Class representing an element of the STS setup.
Detector response for DSSD sensors with stereo angles and cross-connection by double metal layers.
Double_t fPitch
Strip pitch /same for front and back)
Int_t fStripShift[2]
cosine of stereo angle front/back side
CbmStsSimSensorDssdStereo & operator=(const CbmStsSimSensorDssdStereo &rhs)=delete
Assignment operator (disabled)
CbmStsSimSensorDssdStereo(CbmStsSimSensorDssdStereo &rhs)=delete
Copy constructor (disabled)
virtual Int_t GetModuleChannel(Int_t strip, Int_t side, Int_t sensorId) const
Get the readout channel in the module for a given strip.
ClassDef(CbmStsSimSensorDssdStereo, 1)
virtual Int_t GetNofStrips(Int_t) const
Number of strips (same for front and back side)
Double_t fCosStereo[2]
tangent of stereo angle front/back side
std::string ToString() const
String output.
Double_t fErrorFac
Shift in number of strips from bottom to top.
virtual void PropagateCharge(Double_t x, Double_t y, Double_t z, Double_t charge, Double_t bY, Int_t side)
virtual Int_t GetStripNumber(Double_t x, Double_t y, Int_t side) const
Get strip number from point coordinates.
Double_t fStereoF
Stereo angle front side [degrees].
virtual void ModifyStripPitch(Double_t pitch)
Modify the strip pitch.
CbmStsSimSensorDssdStereo(CbmStsElement *element=nullptr)
virtual void Diffusion(Double_t x, Double_t y, Double_t sigma, Int_t side, Double_t &fracL, Double_t &fracC, Double_t &fracR)
Used for calculation of hit errors.
virtual Bool_t Init()
Initialisation @value kTRUE if parameters and node are consistent.
Int_t fNofStrips
Number of strips (same for front and back)
Double_t fStereoB
Stereo angle front back side [degrees].
Double_t GetStereoAngle(Int_t side) const
Stereo angle for front and back side.
Abstract class for the simulation of double-sided silicon strip sensors.