Universita' di GenovaINFN Sezione di Genova  
AIRWATCH / EUSO Genova

TestClouds

#include "TestClouds.hh"

TestClouds


class description - source file - inheritance tree (.pdf)

class TestClouds : public Clouds

Inheritance Chart:
EsafConfigurable
EsafMsgSource
<-
Clouds
<-
TestClouds
    private:
virtual void Build() virtual void Configure() Bool_t GoingDownward(const EarthVector&, const EarthVector&) const public:
TestClouds() virtual ~TestClouds() static TClass* Class() virtual const char* ClassName() const virtual const char* ClassType() const Double_t GetAlbedo() const virtual EarthVector GetCloudImpact(const EarthVector&, const EarthVector&, string opt = default) const string GetType() const virtual TClass* IsA() const virtual Bool_t IsInClouds(const EarthVector& pos) const virtual Double_t PhaseFunction(const EarthVector&, const EarthVector&) const virtual void RandomDir(EarthVector&) const virtual EarthVector RandomScatPos(const EarthVector&, const EarthVector&) const virtual void Reset() virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) virtual Double_t TotalOD(const EarthVector&, const EarthVector&) const

Data Members

    private:
Double_t fG phase function assymetry parameter (used in HG parametrization) string fType lambertian or isotropic (in bunch mode only) Double_t fAlbedo between [0,1] (in bunch mode only)

Class Description


TestClouds() : Clouds()
 ctor


~TestClouds()
 dtor


void Configure()
 read config files


void Build()
 build the object according to config files


Bool_t IsInClouds(const EarthVector& pos) const
 true if position is within clouds, false otherwise


Double_t TotalOD(const EarthVector& pos,const EarthVector& dir) const
 Returns the total OD along a track defined by pos and dir
 Case with pos within clouds handled
 NB : vertical OD is homogeneously distributed


EarthVector RandomScatPos(const EarthVector& pos,const EarthVector& dir) const
 returns a scattering position along a given track
 cloud is uniform so scattering length is independent of direction : beta is constant
 Trans = exp(-OD) = exp(-beta*l)


Double_t PhaseFunction(const EarthVector& incom_dir,const EarthVector& outgo_dir) const
 Mie scattering phase function - Henyey-Greenstein parametrization
 Normalized when integrated over full solid angle


void RandomDir(EarthVector& dir) const
 'dir' is the incoming direction -> this method set dir to the scattering outgoing direction
 get a random direction, sampling clouds scattering phase function


EarthVector GetCloudImpact(const EarthVector& pos, const EarthVector& dir, string opt) const
 Impact on clouds top surface form a given (position,direction) pair in atmosphere
 if no impact, (0,0,HUGE) is returned
 upward bunch is handled, but no scattering to the detector, only absorption

 if opt == "default"         -> incoming impact returned
                                if pos is within clouds, pos is returned
 if opt == "outgoing"        -> outgoing impact returned


Bool_t GoingDownward(const EarthVector& pos,const EarthVector& direc) const
 to know if locally track is going up/downward
 locally means at pos nadir
 if perfectly horizontal (i.e. local angle of halfpi) returns false (i.e. upward)


void Reset()
 reset clodus features




Inline Functions


           Double_t GetAlbedo() const
             string GetType() const
        const char* ClassType() const
        const char* ClassName() const
            TClass* Class()
            TClass* IsA() const
               void ShowMembers(TMemberInspector& insp, char* parent)
               void Streamer(TBuffer& b)
               void StreamerNVirtual(TBuffer& b)
About Us | EUSO Official Website | Web pages created by Roberto Pesce and Alessandro Thea - Last Update Wed Nov 16 16:24:17 2005