1 | // $Id: NoClouds.hh 2794 2008-02-11 07:56:34Z naumov $ |
---|
2 | // Author: Sylvain Moreggia 2005/04/13 |
---|
3 | |
---|
4 | /***************************************************************************** |
---|
5 | * ESAF: Euso Simulation and Analysis Framework * |
---|
6 | * * |
---|
7 | * Id: NoClouds * |
---|
8 | * Package: Atmosphere * |
---|
9 | * Coordinator: Moreggia S. * |
---|
10 | * * |
---|
11 | *****************************************************************************/ |
---|
12 | |
---|
13 | #ifndef __NOCLOUDS_HH__ |
---|
14 | #define __NOCLOUDS_HH__ |
---|
15 | |
---|
16 | #include "euso.hh" |
---|
17 | #include "Clouds.hh" |
---|
18 | #include "EarthVector.hh" |
---|
19 | #include <TMath.h> |
---|
20 | |
---|
21 | //////////////////////////////////////////////////////////////////////////////// |
---|
22 | // // |
---|
23 | // NoClouds // |
---|
24 | // // |
---|
25 | // When no clouds in the simulation. Returns dummy values. // |
---|
26 | // // |
---|
27 | //////////////////////////////////////////////////////////////////////////////// |
---|
28 | |
---|
29 | class NoClouds : public Clouds { |
---|
30 | public: |
---|
31 | // ctor |
---|
32 | NoClouds(); |
---|
33 | |
---|
34 | // dtor |
---|
35 | virtual ~NoClouds(); |
---|
36 | |
---|
37 | // Return no impact, i.e. (0,0,HUGE) |
---|
38 | inline virtual EarthVector GetCloudImpact(const EarthVector& pos, const EarthVector& dir,string opt = "default") const {return EarthVector(0,0,HUGE);} |
---|
39 | |
---|
40 | // to know if a position is within clouds |
---|
41 | virtual Bool_t IsInClouds(const EarthVector&) const {return false;} |
---|
42 | |
---|
43 | // Returns the total OD along a direction |
---|
44 | virtual Double_t TotalOD(const EarthVector&,const EarthVector&) const {return 0;} |
---|
45 | |
---|
46 | // returns a scattering position along a given track |
---|
47 | virtual EarthVector RandomScatPos(const EarthVector&,const EarthVector&) const {return EarthVector(0,0,HUGE);} |
---|
48 | |
---|
49 | // set incoming direction to the outgoing direction after scattering |
---|
50 | virtual void RandomDir(EarthVector&) const {} |
---|
51 | |
---|
52 | // clouds scattering phase function - Normalized when integrated over full solid angle |
---|
53 | virtual Double_t PhaseFunction(const EarthVector&,const EarthVector&) const {return 0;} |
---|
54 | |
---|
55 | // clouds scattering phase function - Normalized when integrated over full solid angle |
---|
56 | // truncated because the strong forward peak (mie scattering) is removed |
---|
57 | virtual Double_t TruncatedPhaseFunction(const EarthVector&,const EarthVector&) const {return 0;} |
---|
58 | |
---|
59 | // returns maximum value of currently used scattering phase function |
---|
60 | virtual Double_t GetMaxPhaseFunction(string opt = "real") const {return 0.;} |
---|
61 | |
---|
62 | |
---|
63 | // reset |
---|
64 | virtual void Reset() {} |
---|
65 | |
---|
66 | private: |
---|
67 | |
---|
68 | // read config files |
---|
69 | virtual void Configure() {} |
---|
70 | |
---|
71 | // build the configured object |
---|
72 | virtual void Build() {} |
---|
73 | |
---|
74 | ClassDef(NoClouds,0) |
---|
75 | }; |
---|
76 | |
---|
77 | #endif /* __NOCLOUDS_HH__ */ |
---|
78 | |
---|