source: JEM-EUSO/esaf_lal/tags/v1_r0/esaf/packages/common/atmosphere/include/NoAerosol.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: 3.3 KB
Line 
1// $Id: NoAerosol.hh 2794 2008-02-11 07:56:34Z naumov $
2// Author: Sylvain Moreggia   2006/04/24
3
4/*****************************************************************************
5 * ESAF: Euso Simulation and Analysis Framework                              *
6 *                                                                           *
7 *  Id: NoAerosol                                                           *
8 *  Package: <packagename>                                                   *
9 *  Coordinator: <coordinator>                                               *
10 *                                                                           *
11 *****************************************************************************/
12
13#ifndef __NOAEROSOL_HH__
14#define __NOAEROSOL_HH__
15
16#include "euso.hh"
17#include "Aerosol.hh"
18#include "EarthVector.hh"
19#include <TMath.h>
20
21////////////////////////////////////////////////////////////////////////////////
22//                                                                            //
23// NoAerosol                                                                 //
24//                                                                            // 
25// <brief class description>                                                  // 
26//                                                                            // 
27////////////////////////////////////////////////////////////////////////////////
28
29class NoAerosol : public Aerosol {
30public:
31    // ctor
32    NoAerosol(string name) : Aerosol(name) {}
33    // dtor
34    virtual ~NoAerosol();
35
36    // Return impact for given position and direction
37    // Convention :    - if already within aerosol, returns pos
38    //                 - no impact, returns (0,0,HUGE)
39    virtual EarthVector GetImpact(const EarthVector& pos, const EarthVector& dir,string opt = "default") const  {return EarthVector(0,0,HUGE);}
40
41    // to know if a position is within aerosol
42    virtual Bool_t IsInAerosol(const EarthVector&) const {return kFALSE;}
43
44    // Returns the transmission at given wl, along given track
45    // set "scat" to the scattering rate along a direction
46    virtual Double_t Trans(const EarthVector&,const EarthVector&,Double_t, Double_t& scat) const {return 1.;}
47   
48   
49    // returns a scattering position along a given track
50    // depends on  wavelength
51    virtual Bool_t RandomScatPos(const EarthVector&,const EarthVector&,Double_t,EarthVector& rtn) const {rtn.SetXYZ(0,0,HUGE); return kTRUE;}
52   
53    // set incoming direction to the outgoing direction after scattering
54    // depends on  wavelength
55    virtual void RandomDir(EarthVector&,Double_t) const {}
56   
57    // aerosol scattering phase function - Normalized when integrated over full solid angle
58    // depends on  wavelength
59    virtual Double_t PhaseFunction(const EarthVector&,const EarthVector&,Double_t) const {return 0.;}
60   
61    // returns maximum value of currently used scattering phase function
62    // depends on  wavelength range
63    virtual Double_t GetMaxPhaseFunction(Double_t wlmin,Double_t wlmax) const {return 0;}
64   
65    // reset the instance
66    virtual void Reset() {}
67
68    EsafConfigClass(Atmosphere,NoAerosol)
69
70protected:
71   
72    // read config files
73    virtual void Configure() {}
74
75    // build the configured object
76    virtual void Build() {}
77   
78
79    ClassDef(NoAerosol,0)
80};
81
82#endif  /* __NOAEROSOL_HH__ */
83
Note: See TracBrowser for help on using the repository browser.