LowtranRadiativeProcessesCalculator
#include "LowtranRadiativeProcessesCalculator.hh" |
LowtranRadiativeProcessesCalculator
class description - source file - inheritance tree (.pdf)
class LowtranRadiativeProcessesCalculator : public RadiativeProcessesCalculator
Inheritance Chart: | |||||||||||||
|
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 public:
LowtranRadiativeProcessesCalculator() virtual ~LowtranRadiativeProcessesCalculator() static TClass* Class() virtual TClass* IsA() const void PreProcess(const BunchOfPhotons&) void PreProcessSingles(const Ground*, const EarthVector&, const ListPhotonsInAtmosphere&) 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) 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 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<Double_t*> fToDetectorCoeff 2D-list [nbstep][fNbwl] of transmission (only total trans) 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 step for lowtran calculations
Class Description
for lowtran interface
Double_t Trans(const SinglePhoton& s, const EarthVector& finalpos) const
Total transmission between photon position and finalpos Principle of interpolation from datacard : - find a reference transmission (calcuated from ground for reflected -- interpolated within a step for scattered) - then get the interaction length and apply it to the real travel
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 PreProcessSingles(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()
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 ~LowtranRadiativeProcessesCalculator() LowtranRadiativeProcessesCalculator LowtranRadiativeProcessesCalculator() TClass* Class() TClass* IsA() const void ShowMembers(TMemberInspector& insp, char* parent) void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)