BmnRoot
Loading...
Searching...
No Matches
BmnSsdDigitizeParameters.h
Go to the documentation of this file.
1
7#ifndef BMNSSDDIGITIZEPARAMETERS_H
8#define BMNSSDDIGITIZEPARAMETERS_H 1
9
10#include <iostream>
11#include <string>
12#include "FairParGenericSet.h"
13
14class FairParamList;
15
25class BmnSsdDigitizeParameters : public FairParGenericSet
26{
27
28 public:
29
30
33 const char* name = "BmnSsdDigitizeParameters",
34 const char* title = "Ssd digitization parameters",
35 const char* context = "Default");
36
37
40
42 virtual void clear();
43
44 void putParams(FairParamList*);
45 Bool_t getParams(FairParamList*);
46
48 Double_t GetCcoup() const { return fCcoup; }
49 Double_t GetCis() const { return fCis; }
50 Double_t GetDeadChannelFrac() const { return fDeadChannelFrac; }
51 Double_t GetDeadTime() const { return fDeadTime; }
52 Bool_t GetDiscardSecondaries() const { return fDiscardSecondaries; }
53 Double_t GetDynRange() const { return fDynRange; }
54 Int_t GetELossModel() const { return fELossModel; }
55 Bool_t GetGenerateNoise() const { return fGenerateNoise; }
56 Int_t GetNofAdc() const { return fNofAdc; }
57 Int_t GetNoise() const { return fNoise; }
58 Double_t GetStripPitch() const { return fStripPitch; }
59 Double_t GetTemperature() const { return fTemperature; }
60 Double_t GetThreshold() const { return fThreshold; }
61 Double_t GetTimeResolution() const { return fTimeResolution; }
62 Bool_t GetUseCrossTalk() const { return fUseCrossTalk; }
63 Bool_t GetUseDiffusion() const { return fUseDiffusion; }
64 Bool_t GetUseLorentzShift() const { return fUseLorentzShift; }
65 Double_t GetVbias() const { return fVbias; }
66 Double_t GetVdep() const { return fVdep; }
67 Double_t GetZeroNoiseRate() const { return fZeroNoiseRate; }
68
69
73 void SetDiscardSecondaries(Bool_t choice = kTRUE) {
74 fDiscardSecondaries = choice;
75 setChanged();
76 setInputVersion(-2,1);
77 }
78
79
83 void SetGenerateNoise(Bool_t choice = kTRUE) {
84 fGenerateNoise = choice;
85 setChanged();
86 setInputVersion(-2,1);
87 }
88
89
100 void SetModuleParameters(Double_t dynRange, Double_t threshold,
101 Int_t nAdc, Double_t timeResol,
102 Double_t deadTime, Double_t noise,
103 Double_t zeroNoiseRate,
104 Double_t deadChannelFrac) {
105 fDynRange = dynRange;
106 fThreshold = threshold;
107 fNofAdc = nAdc;
108 fTimeResolution = timeResol;
109 fDeadTime = deadTime;
110 fNoise = noise;
111 fZeroNoiseRate = zeroNoiseRate;
112 fDeadChannelFrac = deadChannelFrac;
113 setChanged();
114 setInputVersion(-2,1);
115 }
116
117
124 void SetProcesses(Int_t eLossModel, Bool_t useLorentzShift,
125 Bool_t useDiffusion, Bool_t useCrossTalk,
126 Bool_t generateNoise = kFALSE) {
127 fELossModel = eLossModel;
128 fUseLorentzShift = useLorentzShift;
129 fUseDiffusion = useDiffusion;
130 fUseCrossTalk = useCrossTalk;
131 fGenerateNoise = generateNoise;
132 setChanged();
133 setInputVersion(-2,1);
134 }
135
136
144 void SetSensorConditions(Double_t vDep, Double_t vBias, Double_t temp,
145 Double_t cCoup, Double_t cIs) {
146 fVdep = vDep;
147 fVbias = vBias;
148 fTemperature = temp;
149 fCcoup = cCoup;
150 fCis = cIs;
151 setChanged();
152 setInputVersion(-2,1);
153 }
154
155
161 void SetStripPitch(Double_t pitch) {
162 fStripPitch = pitch;
163 setChanged();
164 setInputVersion(-2,1);
165 }
166
167
169 virtual std::string ToString() const;
170
171
172 private:
173
174 // --- Analogue response processes
176 Int_t fELossModel;
177 Bool_t fUseLorentzShift;
178 Bool_t fUseDiffusion;
179 Bool_t fUseCrossTalk;
180 Bool_t fGenerateNoise;
181
182 // --- Sensor conditions (analogue response)
183 Double_t fVdep;
184 Double_t fVbias;
185 Double_t fTemperature;
186 Double_t fCcoup;
187 Double_t fCis;
188
189 // --- Read-out ASIC properties (digital response)
190 Double_t fDynRange;
191 Double_t fThreshold;
192 Int_t fNofAdc;
193 Double_t fTimeResolution;
194 Double_t fDeadTime;
195 Double_t fNoise;
196 Double_t fZeroNoiseRate;
197 Double_t fDeadChannelFrac;
198
199 // --- Strip pitch. If not -1, this value overrides the strip pitch
200 // --- defined in the sensor database. It will then be the same for
201 // --- all sensors.
202 Double_t fStripPitch;
203
204 // --- If this variable is set to kTRUE, points from secondary
205 // --- tracks will be discarded. For debug purposes.
206 Bool_t fDiscardSecondaries;
207
208 ClassDef(BmnSsdDigitizeParameters, 1);
209};
210
211#endif /* BMNSSDDIGITIZEPARAMETERS_H */
Parameters for SSD digitization.
void SetModuleParameters(Double_t dynRange, Double_t threshold, Int_t nAdc, Double_t timeResol, Double_t deadTime, Double_t noise, Double_t zeroNoiseRate, Double_t deadChannelFrac)
Set digital response parameters.
void SetProcesses(Int_t eLossModel, Bool_t useLorentzShift, Bool_t useDiffusion, Bool_t useCrossTalk, Bool_t generateNoise=kFALSE)
Switch analogue response processes on or off.
void SetGenerateNoise(Bool_t choice=kTRUE)
Switch noise generation on/off (is deactivated by default).
void SetStripPitch(Double_t pitch)
Override the strip pitch taken from the sensor database. @value pitch Strip pitch [cm].
void SetSensorConditions(Double_t vDep, Double_t vBias, Double_t temp, Double_t cCoup, Double_t cIs)
void SetDiscardSecondaries(Bool_t choice=kTRUE)
Flag whether secondary tracks are discarded during digitisation.
virtual std::string ToString() const