1 | // $Id: LowtranManager.hh 2616 2006-03-24 10:49:12Z thea $ |
---|
2 | // Author: 2006/03/15 |
---|
3 | |
---|
4 | /***************************************************************************** |
---|
5 | * ESAF: Euso Simulation and Analysis Framework * |
---|
6 | * * |
---|
7 | * Id: LowtranManager * |
---|
8 | * Package: <packagename> * |
---|
9 | * Coordinator: <coordinator> * |
---|
10 | * * |
---|
11 | *****************************************************************************/ |
---|
12 | |
---|
13 | #ifndef __LOWTRANMANAGER_HH__ |
---|
14 | #define __LOWTRANMANAGER_HH__ |
---|
15 | |
---|
16 | #include "euso.hh" |
---|
17 | #include "EsafConfigurable.hh" |
---|
18 | #include "EsafMsgSource.hh" |
---|
19 | #include <TArrayF.h> |
---|
20 | #include <TString.h> |
---|
21 | |
---|
22 | //////////////////////////////////////////////////////////////////////////////// |
---|
23 | // // |
---|
24 | // LowtranTransferOutput // |
---|
25 | // // |
---|
26 | // <brief class description> // |
---|
27 | // // |
---|
28 | //////////////////////////////////////////////////////////////////////////////// |
---|
29 | |
---|
30 | struct LowtranTransferOutput { |
---|
31 | Float_t R; |
---|
32 | Float_t Altitude; |
---|
33 | Float_t Angle; |
---|
34 | Float_t WaveLength[100]; |
---|
35 | Float_t Transmission[100]; |
---|
36 | Float_t Ozone[100]; |
---|
37 | Float_t Rayl[100]; |
---|
38 | Float_t Aerosol[100]; |
---|
39 | }; |
---|
40 | |
---|
41 | //////////////////////////////////////////////////////////////////////////////// |
---|
42 | // // |
---|
43 | // LowtranManager // |
---|
44 | // // |
---|
45 | // <brief class description> // |
---|
46 | // // |
---|
47 | //////////////////////////////////////////////////////////////////////////////// |
---|
48 | |
---|
49 | class LowtranManager : public EsafConfigurable, public EsafMsgSource { |
---|
50 | public: |
---|
51 | virtual ~LowtranManager(); |
---|
52 | |
---|
53 | |
---|
54 | Bool_t InitLowtran(); |
---|
55 | Bool_t LwTrans(Int_t init, Float_t altitude, Float_t angle, Float_t *trans); |
---|
56 | Bool_t LwTrans_V2(Int_t init, Float_t h1, Float_t h2, Float_t theta); |
---|
57 | |
---|
58 | Float_t GetR() const { return fR; } |
---|
59 | Float_t GetAltitude() const { return fAltitude; } |
---|
60 | Float_t GetAngle() const { return fAngle; } |
---|
61 | const TArrayF& GetWaveLength() const { return fWaveLength; } |
---|
62 | const TArrayF& GetTransmission() const { return fTransmission; } |
---|
63 | const TArrayF& GetOzone() const { return fOzone; } |
---|
64 | const TArrayF& GetRayl() const { return fRayl; } |
---|
65 | const TArrayF& GetAerosol() const { return fAerosol; } |
---|
66 | |
---|
67 | void GetWaveLength(Float_t *array, Int_t n) const; |
---|
68 | void GetTransmission(Float_t *array, Int_t n) const; |
---|
69 | void GetOzone(Float_t *array, Int_t n) const; |
---|
70 | void GetRayl(Float_t *array, Int_t n) const; |
---|
71 | void GetAerosol(Float_t *array, Int_t n) const; |
---|
72 | |
---|
73 | void GetTransferOutput( LowtranTransferOutput& ) const; |
---|
74 | |
---|
75 | const char* GetTape5() const { return fTape5.Data(); } |
---|
76 | const char* GetTape6() const { return fTape6.Data(); } |
---|
77 | const char* GetTape7() const { return fTape7.Data(); } |
---|
78 | const char* GetTape8() const { return fTape8.Data(); } |
---|
79 | |
---|
80 | void SetTape5( const char* file ) { fTape5 = file; } |
---|
81 | void SetTape6( const char* file ) { fTape6 = file; } |
---|
82 | void SetTape7( const char* file ) { fTape7 = file; } |
---|
83 | void SetTape8( const char* file ) { fTape8 = file; } |
---|
84 | |
---|
85 | void SyncTapeNames(); |
---|
86 | static LowtranManager* Get(); |
---|
87 | |
---|
88 | private: |
---|
89 | LowtranManager(); |
---|
90 | |
---|
91 | void LoadLwtrnOutput(); |
---|
92 | |
---|
93 | static LowtranManager* fgMe; |
---|
94 | |
---|
95 | TString fTape5; |
---|
96 | TString fTape6; |
---|
97 | TString fTape7; |
---|
98 | TString fTape8; |
---|
99 | |
---|
100 | Float_t fR; |
---|
101 | Float_t fAltitude; |
---|
102 | Float_t fAngle; |
---|
103 | |
---|
104 | TArrayF fWaveLength; |
---|
105 | TArrayF fTransmission; |
---|
106 | TArrayF fOzone; |
---|
107 | TArrayF fRayl; |
---|
108 | TArrayF fAerosol; |
---|
109 | |
---|
110 | EsafConfigClass(Atmosphere,LowtranManager) |
---|
111 | |
---|
112 | ClassDef(LowtranManager,0) |
---|
113 | }; |
---|
114 | |
---|
115 | #endif /* __LOWTRANMANAGER_HH__ */ |
---|
116 | |
---|