Universita' di GenovaINFN Sezione di Genova  
AIRWATCH / EUSO Genova

LowtranRadiativeProcessesCalculator

#include "LowtranRadiativeProcessesCalculator.hh"

LowtranRadiativeProcessesCalculator


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

class LowtranRadiativeProcessesCalculator : public RadiativeProcessesCalculator

Inheritance Chart:
EsafMsgSource
<-
RadiativeProcessesCalculator
<-
LowtranRadiativeProcessesCalculator
    private:
void CallLowtran100(const EarthVector&, const EarthVector&, LowtranTransferOutput&) const void CleanBuffer(string) EarthVector InLowtranFrame(const EarthVector&, const EarthVector&) const Double_t Interpolate(Int_t, Int_t, const EarthVector&) const Double_t InterpolWl(string, Double_t, Double_t, Double_t, Double_t, Double_t) const void SetVertical(Bool_t vert = true) public:
LowtranRadiativeProcessesCalculator() virtual ~LowtranRadiativeProcessesCalculator() static TClass* Class() virtual TClass* IsA() const void MakeTrackToDetectorDatacard(const Ground* ground, const EarthVector& detector, const ListPhotonsInAtmosphere& track) void MakeVerticalDatacard(const Ground*, Double_t) void PreProcess(const BunchOfPhotons&) virtual void Reset() virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) virtual Double_t Trans(const SinglePhoton&, const EarthVector& finalpos, Double_t* coeff = 0) const virtual void Trans(const BunchOfPhotons&, const EarthVector&, vector<Double_t*>&) const

Data Members

    private:
Bool_t fFlag to know if PreProcess(BunchOfPhotons) has been run Bool_t fVertical tell if fToDetectorCoeff for vertical path (otherwise along track) EarthVector fInitPos position where transmission tables start Int_t fNbwl nb of wavelength treated for the bunch process Float_t fWlArray[100] wavelengths treated by lowtran vector<vector<vector<Double_t> >*> fAlongTrackCoeff 3D-list [Nbstep][4][fNbwl] of transmission (4 kinds) along track vector<vector<vector<Double_t> >*> fToDetectorCoeff 3D-list [nbstep][4][fNbwl] of VERTICAL transmission to detector const ListPhotonsInAtmosphere* fTrack copy of the list containing the light track (used in single propagation) EarthVector fImpact track impact for SinglePhoton transmission Double_t fStep_along_track step for lowtran datacard along track (used by BunchRT) Double_t fStep_detector step for lowtran datacard to detector Double_t fDetectorAlt detector altitude (for fToDetectorCoeff[][][] datacard) Double_t fNbSinglesFarFromTrack should be less than fNbSinglesCorrected of 02_CS propagators (DEBUG var.)

Class Description

 for lowtran interface


LowtranRadiativeProcessesCalculator() : RadiativeProcessesCalculator()
 ctor


~LowtranRadiativeProcessesCalculator()
 dtor


void MakeVerticalDatacard(const Ground* ground, Double_t detector_alt)
 build a VERTICAL transmission map (fToDetectorCoeff) from positions uniformly distributed in altitude until detector


void MakeTrackToDetectorDatacard(const Ground* ground, const EarthVector& detector, const ListPhotonsInAtmosphere& track)
 Copy the light track and
 build a transmission map (fToDetectorCoeff), from positions along the track until detector
 used in BunchRadiativeTransfer::PropagationOfSingles() in RT 'decoupled' mode


Double_t Trans(const SinglePhoton& s, const EarthVector& finalpos, Double_t* coeff) const
 Transmission between photon position and finalpos

void PreProcess(const BunchOfPhotons& b)
 Preprocessing for bunch transmission along the track (for ckov backscattering simulation)
 Initialization of tables (fAlongTrackCoeff) for a step by step transfer process of a given bunchofphotons


void Trans(const BunchOfPhotons& b,const EarthVector& nextpos,vector<Double_t*>& coeff) const
 Total transmission between bunch position and a final position
 NB: for a considered bunch, step for running lowtran is independant of step defined for bunch propagation
 (lowtran step is larger.. cf computing time consumption)


Double_t Interpolate(Int_t i,Int_t j,const EarthVector& pos) const
 Interpolate the specified transmission coefficient fAlongTrackCoeff[][i][j]
 to get the value at pos (on the transfer track)


EarthVector InLowtranFrame(const EarthVector& v1,const EarthVector& v2) const
 Change of frame to match lowtran (v1 is the reference vector)
 the frame moves, then v2 expression in the new frame is returned


void CallLowtran100(const EarthVector& pos, const EarthVector& nextpos, LowtranTransferOutput& output) const
 Call lowtran (100 wavelengths processed) to calculate transmission between pos and nextpos, then fill output


Double_t InterpolWl(string type,Double_t w,Double_t w1,Double_t w2,Double_t T1,Double_t T2) const
 Interpolation of transmission coefficients as function of wavelength


void CleanBuffer(string DM)
 Clean the indicated internal trans map (fAlong.. or fToDetect..)


void Reset()
 get ready for next event




Inline Functions


               void SetVertical(Bool_t vert = true)
            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:21:22 2005