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 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)