BmnRoot
Loading...
Searching...
No Matches
BmnSsdDigitize.h
Go to the documentation of this file.
1
7#ifndef BMNSSDDIGITIZE_H
8#define BMNSSDDIGITIZE_H 1
9
10#include <map>
11#include "TStopwatch.h"
12#include "BmnDigitize.h"
13#include "BmnMatch.h"
15
16class TClonesArray;
17class BmnSsdPoint;
18class BmnSsdSetup;
19
36{
37
38 public:
39
42
43
45 virtual ~BmnSsdDigitize();
46
47
54 void CreateDigi(Int_t address, UShort_t channel, Long64_t time,
55 UShort_t adc, const BmnMatch& match);
56
57
65 void DiscardSecondaries(Bool_t flag = kTRUE) {
66 fDigiPar->SetDiscardSecondaries(flag);
67 }
68
72 virtual void SetParContainers();
73
74
76 virtual void Exec(Option_t* opt);
77
78
82 Int_t GetELossModel() const{return fDigiPar->GetELossModel();}
83
84
86 Int_t GetNofSignalsF() const {return fNofSignalsF;}
87
88
90 Int_t GetNofSignalsB() const {return fNofSignalsB;}
91
92
94 void InitSetup();
95
96
98 virtual InitStatus ReInit();
99
100
102 virtual void ResetArrays();
103
104
118 void SetDefaultModuleParameters(Double_t dynRange, Double_t threshold,
119 Int_t nAdc, Double_t timeResolution,
120 Double_t deadTime, Double_t noise,
121 Double_t zeroNoiseRate,
122 Double_t fracDeadChan);
123
124
135 void SetDefaultSensorConditions(Double_t vDep, Double_t vBias,
136 Double_t temperature, Double_t cCoupling,
137 Double_t cInterstrip);
138
139
149 void SetDefaultSensorParameters(Double_t dInact, Double_t pitch,
150 Double_t stereoF, Double_t stereoB);
151
152
159 void SetGenerateNoise(Bool_t choise = kTRUE);
160
161
168 void SetModuleParameterFile(const char* fileName);
169
170
182 void SetParameters(Double_t dynRange, Double_t threshold, Int_t nAdc,
183 Double_t timeResolution, Double_t deadTime,
184 Double_t noise, Double_t zeroNoiseRate,
185 Double_t deadChannelFrac = 0.);
186
187
197 void SetProcesses(Int_t eLossModel,
198 Bool_t useLorentzShift = kTRUE,
199 Bool_t useDiffusion = kTRUE,
200 Bool_t useCrossTalk = kTRUE,
201 Bool_t generateNoise = kFALSE);
202
203
210 void SetSensorConditionFile(const char* fileName);
211
212
219 void SetSensorParameterFile(const char* fileName);
220
221
231 void SetSensorStripPitch(Double_t pitch) {
232 fDigiPar->SetStripPitch(pitch);
233 }
234
235
239 virtual void WriteDigi(BmnDigi* digi);
240
241
242
243 private:
244
245 Bool_t fIsInitialised;
246
247 Int_t fEnergyLossModel;
248 Bool_t fUseLorentzShift;
249 Bool_t fUseDiffusion;
250 Bool_t fUseCrossTalk;
251 Bool_t fGenerateNoise;
252
253 BmnSsdDigitizeParameters* fDigiPar;
254 BmnSsdSetup* fSetup;
255 TClonesArray* fPoints;
256 TClonesArray* fTracks;
257 TClonesArray* fDigis;
258 TClonesArray* fMatches;
259 TStopwatch fTimer;
260
261 // --- Default sensor parameters (apply to SensorDssdStereo)
262 Double_t fSensorDinact;
263 Double_t fSensorPitch;
264 Double_t fSensorStereoF;
265 Double_t fSensorStereoB;
266
267 // --- Default sensor conditions
268 Double_t fSensorVdep;
269 Double_t fSensorVbias;
270 Double_t fSensorTemperature;
271 Double_t fSensorCcoupling;
272 Double_t fSensorCinterstrip;
273
274 // --- Default module parameters
275 Double_t fModuleDynRange;
276 Double_t fModuleThreshold;
277 Int_t fModuleNofAdc;
278 Double_t fModuleTresol;
279 Double_t fModuleTdead;
280 Double_t fModuleNoise;
281 Double_t fModuleZeroNoiseRate;
282 Double_t fModuleFracDeadChan;
283
284 // --- Input parameter files
285 TString fSensorParameterFile;
286 TString fSensorConditionFile;
287 TString fModuleParameterFile;
288
289 // --- Time of last processed SsdPoint (for stream mode)
290 Double_t fTimePointLast;
291
292 // --- Digi times (for stream mode, in each step)
293 Double_t fTimeDigiFirst;
294 Double_t fTimeDigiLast;
295
296 // --- Event counters
297 Int_t fNofPoints;
298 Int_t fNofSignalsF;
299 Int_t fNofSignalsB;
300 Int_t fNofDigis;
301
302 // --- Run counters
303 Int_t fNofEvents;
304 Double_t fNofPointsTot;
305 Double_t fNofSignalsFTot;
306 Double_t fNofSignalsBTot;
307 Double_t fNofDigisTot;
308 Double_t fNofNoiseTot;
309 Double_t fTimeTot;
310
311
315 Int_t BufferSize() const;
316
317
322 std::string BufferStatus() const;
323
324
326 virtual void Finish();
327
328
342 //void GetEventInfo(Int_t& inputNr, Int_t& eventNr, Double_t& eventTime);
343 // TODO: Is now in base class BmnDigitize. Can be removed here after validation.
344
345
347 virtual InitStatus Init();
348
349
353 void ProcessAnalogBuffers(Double_t readoutTime);
354
355
357 void ProcessMCEvent();
358
359
364 void ProcessPoint(const BmnSsdPoint* point, Double_t eventTime = 0.,
365 BmnLink* link = NULL);
366
367
369 void ResetCounters();
370
371
373 BmnSsdDigitize(const BmnSsdDigitize&) = delete;
374 BmnSsdDigitize operator=(const BmnSsdDigitize&) = delete;
375
376
377 ClassDef(BmnSsdDigitize, 4);
378};
379
380#endif
Base class for persistent representation of digital information.
Definition BmnDigi.h:44
Abstract base class for BMN digitisation tasks.
Definition BmnDigitize.h:23
Parameters for SSD digitization.
void SetStripPitch(Double_t pitch)
Override the strip pitch taken from the sensor database. @value pitch Strip pitch [cm].
void SetDiscardSecondaries(Bool_t choice=kTRUE)
Flag whether secondary tracks are discarded during digitisation.
Task class for simulating the detector response of the SSD.
void SetModuleParameterFile(const char *fileName)
Set the file name with module parameters.
Int_t GetNofSignalsB() const
virtual void Exec(Option_t *opt)
void SetParameters(Double_t dynRange, Double_t threshold, Int_t nAdc, Double_t timeResolution, Double_t deadTime, Double_t noise, Double_t zeroNoiseRate, Double_t deadChannelFrac=0.)
void SetProcesses(Int_t eLossModel, Bool_t useLorentzShift=kTRUE, Bool_t useDiffusion=kTRUE, Bool_t useCrossTalk=kTRUE, Bool_t generateNoise=kFALSE)
void CreateDigi(Int_t address, UShort_t channel, Long64_t time, UShort_t adc, const BmnMatch &match)
void SetDefaultSensorConditions(Double_t vDep, Double_t vBias, Double_t temperature, Double_t cCoupling, Double_t cInterstrip)
Set the default sensor conditions.
virtual InitStatus ReInit()
virtual void ResetArrays()
Clear data arrays.
void DiscardSecondaries(Bool_t flag=kTRUE)
Discard processing of secondary tracks.
virtual ~BmnSsdDigitize()
Int_t GetNofSignalsF() const
void SetSensorParameterFile(const char *fileName)
Set the file name with sensor parameters.
void SetGenerateNoise(Bool_t choise=kTRUE)
Activate noise generation.
Int_t GetELossModel() const
void SetDefaultModuleParameters(Double_t dynRange, Double_t threshold, Int_t nAdc, Double_t timeResolution, Double_t deadTime, Double_t noise, Double_t zeroNoiseRate, Double_t fracDeadChan)
Set the default module parameters.
void SetSensorStripPitch(Double_t pitch)
void SetDefaultSensorParameters(Double_t dInact, Double_t pitch, Double_t stereoF, Double_t stereoB)
Set the default sensor parameters.
virtual void WriteDigi(BmnDigi *digi)
Write a digi to the output tree.
virtual void SetParContainers()
Inherited from FairTask.
void SetSensorConditionFile(const char *fileName)
Set the file name with sensor conditions.
Class representing the top level of the SSD setup.
Definition BmnSsdSetup.h:30