1 | // ESAF : Euso Simulation and Analysis Framework |
---|
2 | // $Id: LightSource.hh 2676 2006-04-28 15:22:49Z moreggia $ |
---|
3 | // D. De Marco - M. Pallavicini created Jan, 20 2002 |
---|
4 | // |
---|
5 | // IMPORTANT : EVERY child of this generic class MUST CONTAIN and HANDLE |
---|
6 | // creation and destruction of the PhotonsInAtmosphere* pointer |
---|
7 | // (the object must be in the HEAP) |
---|
8 | // |
---|
9 | |
---|
10 | #ifndef __LIGHTSOURCE_HH_ |
---|
11 | #define __LIGHTSOURCE_HH_ |
---|
12 | |
---|
13 | #include "euso.hh" |
---|
14 | #include "EsafConfigurable.hh" |
---|
15 | #include "ConfigFileParser.hh" |
---|
16 | |
---|
17 | class PhotonsInAtmosphere; |
---|
18 | class MCTruth; |
---|
19 | class PhysicsData; |
---|
20 | |
---|
21 | class LightSource : public EsafConfigurable { |
---|
22 | public: |
---|
23 | // ctor |
---|
24 | LightSource() {} |
---|
25 | LightSource(const string& name); |
---|
26 | |
---|
27 | // dtor |
---|
28 | virtual ~LightSource(); |
---|
29 | |
---|
30 | virtual PhotonsInAtmosphere* Get( const PhysicsData* ) = 0; |
---|
31 | virtual MCTruth* Truth() = 0; |
---|
32 | |
---|
33 | // get ready for next event |
---|
34 | virtual void Reset() = 0; |
---|
35 | |
---|
36 | // release all the mem hold in the buffers |
---|
37 | virtual Bool_t ClearMemory() = 0; |
---|
38 | |
---|
39 | // Set/Get wavelength bounds |
---|
40 | inline void SetWlRange(Double_t min, Double_t max) {fLambdaMin = min; fLambdaMax = max;} |
---|
41 | inline Double_t GetWlRangeMin() {return fLambdaMin;} |
---|
42 | inline Double_t GetWlRangeMax() {return fLambdaMax;} |
---|
43 | |
---|
44 | EsafConfigClass(LightSource,LightSource) |
---|
45 | |
---|
46 | protected: |
---|
47 | string fName; |
---|
48 | Double_t fLambdaMin; |
---|
49 | Double_t fLambdaMax; |
---|
50 | |
---|
51 | ClassDef(LightSource,0) |
---|
52 | }; |
---|
53 | |
---|
54 | #endif /* __LIGHTSOURCE_HH_ */ |
---|
55 | |
---|