CbmRoot
Loading...
Searching...
No Matches
CbmStsSimSensorDssdOrtho.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], Pierre-Alain Loizeau */
4
10#ifndef CBMSTSSIMSENSORDSSDORTHO_H
11#define CBMSTSSIMSENSORDSSDORTHO_H 1
12
13
14#include "CbmStsSimSensorDssd.h"
15
16#include <cassert>
17
18
33
34public:
38 CbmStsSimSensorDssdOrtho(CbmStsElement* element = nullptr);
39
40
48 CbmStsSimSensorDssdOrtho(Int_t nStripsF, Double_t pitchF, Int_t nStripsB, Double_t pitchB,
49 CbmStsElement* element = nullptr);
50
51
54
55
58
59
62
63
68 virtual Int_t GetNofStrips(Int_t side) const
69 {
70 assert(side == 0 || side == 1);
71 return fNofStrips[side];
72 }
73
74
81 virtual Bool_t Init();
82
83
89 virtual void ModifyStripPitch(Double_t pitch);
90
91
99 Bool_t SetParameters(Int_t nStripsF, Double_t pitchF, Int_t nStripsB, Double_t pitchB);
100
101
103 std::string ToString() const;
104
105
106protected:
107 Int_t fNofStrips[2];
108 Double_t fPitch[2];
109
110
133 virtual void Diffusion(Double_t x, Double_t y, Double_t sigma, Int_t side, Double_t& fracL, Double_t& fracC,
134 Double_t& fracR);
135
136
146 virtual Int_t GetModuleChannel(Int_t strip, Int_t side, Int_t sensorId) const;
147
148
155 virtual Int_t GetStripNumber(Double_t x, Double_t y, Int_t side) const;
156
157
167 virtual void PropagateCharge(Double_t x, Double_t y, Double_t z, Double_t charge, Double_t bY, Int_t side);
168
169
171};
172
173
174#endif
Class representing an element of the STS setup.
Detector response for DSSD sensors with orthogonal strips.
virtual void ModifyStripPitch(Double_t pitch)
Modify the strip pitch.
virtual void Diffusion(Double_t x, Double_t y, Double_t sigma, Int_t side, Double_t &fracL, Double_t &fracC, Double_t &fracR)
virtual ~CbmStsSimSensorDssdOrtho()
Destructor
CbmStsSimSensorDssdOrtho(CbmStsElement *element=nullptr)
Standard constructor.
virtual void PropagateCharge(Double_t x, Double_t y, Double_t z, Double_t charge, Double_t bY, Int_t side)
Double_t fPitch[2]
Strip pitch front/back side [cm].
CbmStsSimSensorDssdOrtho(CbmStsSimSensorDssdOrtho &rhs)=delete
Copy constructor (disabled)
virtual Int_t GetStripNumber(Double_t x, Double_t y, Int_t side) const
Get strip number from point coordinates.
ClassDef(CbmStsSimSensorDssdOrtho, 1)
Int_t fNofStrips[2]
Number of strips on front/back side.
virtual Bool_t Init()
Initialisation @value kTRUE if parameters and node are consistent.
Bool_t SetParameters(Int_t nStripsF, Double_t pitchF, Int_t nStripsB, Double_t pitchB)
Set the internal sensor parameters.
CbmStsSimSensorDssdOrtho & operator=(const CbmStsSimSensorDssdOrtho &rhs)=delete
Assignment operator (disabled)
virtual Int_t GetNofStrips(Int_t side) const
Number of strips on front or back side.
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.
Abstract class for the simulation of double-sided silicon strip sensors.