source: trunk/Mars/msimreflector/MSimRays.h@ 20105

Last change on this file since 20105 was 19917, checked in by tbretz, 5 years ago
Added a possibility to produce a pre-defined wavelength distirbution.
File size: 1.8 KB
Line 
1#ifndef MARS_MSimRays
2#define MARS_MSimRays
3
4#ifndef MARS_MTask
5#include "MTask.h"
6#endif
7
8class MParList;
9class MSpline3;
10class MGeomCam;
11class MPointingPos;
12class MPhotonEvent;
13class MCorsikaEvtHeader;
14
15class MOptics;
16
17class MSimRays : public MTask
18{
19private:
20 MPhotonEvent *fEvt; //! Event storing the photons
21 MOptics *fReflector; //! Geometry of the reflector
22 MPointingPos *fPointPos; //! Direction the telescope is pointing to
23 MPointingPos *fSource; //! Direction the rays are coming from relative to the telescope
24
25 UInt_t fNumPhotons; // Number of photons to be produced
26 Double_t fHeight; //[km] Height of point source (<=0 means infinity)
27
28 Double_t fWavelengthMin;
29 Double_t fWavelengthMax;
30
31 MSpline3 *fRandomDist; //!
32
33 TString fNameReflector;
34 TString fNamePointPos;
35 TString fNameSource;
36
37 // MParContainer
38 Int_t ReadEnv(const TEnv &env, TString prefix, Bool_t print);
39
40 // MTask
41 Int_t PreProcess(MParList *pList);
42 Int_t Process();
43
44public:
45 MSimRays(const char *name=NULL, const char *title=NULL);
46 ~MSimRays();
47
48 void SetNameReflector(const char *name="MReflector") { fNameReflector = name; }
49 void SetNamePointPos(const char *name="MPointingPos") { fNamePointPos = name; }
50 void SetNameSource(const char *name="Source") { fNameSource = name; }
51
52 void SetHeight(Double_t h=-1) { fHeight=h; }
53 void SetNumPhotons(UInt_t n) { fNumPhotons=n; }
54
55 void SetWavelengthRange(Double_t min, Double_t max) { fWavelengthMin = min; fWavelengthMax = max; }
56 void SetDistribution(const MSpline3 &s);
57 bool ReadDistribution(const char *filename, const char *fmt="%lg %lg");
58
59 // MSimRays
60 ClassDef(MSimRays, 0) // Task to simulate a source for rays
61};
62
63#endif
Note: See TracBrowser for help on using the repository browser.