source: trunk/Mars/msimcamera/MSimCamera.h@ 20026

Last change on this file since 20026 was 19622, checked in by tbretz, 5 years ago
Performance improvement
File size: 2.4 KB
Line 
1#ifndef MARS_MSimCamera
2#define MARS_MSimCamera
3
4#ifndef MARS_MTask
5#include "MTask.h"
6#endif
7
8#include "MArrayF.h"
9#include "MMatrix.h"
10
11class MMcEvt;
12class MParList;
13class MPhotonEvent;
14class MPhotonStatistics;
15class MRawRunHeader;
16class MAnalogChannels;
17class MPedestalCam;
18class MArrayF;
19class MTruePhotonsPerPixelCont;
20
21class MSpline3;
22class MParameterD;
23
24class MSimCamera : public MTask
25{
26private:
27 MPhotonEvent *fEvt; //! Event stroing the photons
28 MPhotonStatistics *fStat; //! Valid time range of the phootn event
29 MRawRunHeader *fRunHeader; //! Sampling frequency
30 MPedestalCam *fElectronicNoise; //! Electronic noise (baseline and rms)
31 MPedestalCam *fGain; //! Electronic noise (baseline and rms)
32 MPedestalCam *fAccidentalPhotons;//! Accidental photon rates
33
34 MAnalogChannels *fCamera; //! Output of the analog signals
35 MMcEvt *fMcEvt; //! For information stored in MMcEvt
36
37 MParameterD *fCrosstalkCoeffParam;
38 MParameterD *fResidualTimeSpread; //! Container to store a standard deviation for a residual time spread
39 MParameterD *fGapdTimeJitter; //! Container to store a standard deviation for a gapd time jitter
40
41 MMatrix *fFixTimeOffsetsBetweenPixelsInNs; //! Container to store the fix temporal offsets for each pixel in ns
42
43 MTruePhotonsPerPixelCont *fTruePhotons; //! Container to store the number of photons per pixel
44
45 const MSpline3 *fSpline; // Pulse Shape
46
47 Bool_t fBaselineGain; // Should the gain be applied to baseline and electronic noise?
48
49 Double_t fDefaultOffset; // Default offset added to all channels
50 Double_t fDefaultNoise; // Default noise (RMS) added to all samples
51 Double_t fDefaultGain; // Default gain (multiplication factor to the given/used pulse shape)
52
53 Double_t fACFudgeFactor;
54 Double_t fACTimeConstant;
55
56 Double_t fAreaOfOnePulse; //! Integral of a single pulse
57
58 // MParContainer
59 Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print);
60
61 // MTask
62 Int_t PreProcess(MParList *pList);
63 Bool_t ReInit(MParList *pList);
64 Int_t Process();
65
66public:
67 MSimCamera(const char *name=NULL, const char *title=NULL);
68
69 ClassDef(MSimCamera, 0) // Task to simulate the electronic noise and to convert photons into pulses
70};
71
72#endif
Note: See TracBrowser for help on using the repository browser.