source: JEM-EUSO/esaf_lal/tags/v1_r0/esaf/packages/common/atmosphere/include/LowtranManager.hh @ 117

Last change on this file since 117 was 117, checked in by moretto, 11 years ago

ESAF version compilable on mac OS

File size: 4.3 KB
Line 
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
30struct 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
49class LowtranManager : public EsafConfigurable, public EsafMsgSource {
50public:
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   
88private:
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
Note: See TracBrowser for help on using the repository browser.