ParamOpticalSystem
#include "ParamOpticalSystem.hh" |
ParamOpticalSystem
class description - source file - inheritance tree (.pdf)
class ParamOpticalSystem : public OpticalSystem
Inheritance Chart: | |||||||||||||||||||
|
private:
Bool_t InitIntegral() Bool_t IsAbsorbed(Double_t th, Double_t wl) const public:
ParamOpticalSystem() virtual ~ParamOpticalSystem() static TClass* Class() virtual const char* ClassName() const virtual const char* ClassType() const Double_t DistanceToRadius(Double_t) const Double_t FocalSurfProfile(Double_t) const Double_t GetDmax() const Double_t* GetIntegral() const Int_t GetNbins() const Double_t GetRmax() const const TF2* GetSpreadFun() const Double_t GetThetaMax() const virtual TClass* IsA() const virtual void ShowMembers(TMemberInspector& insp, char* parent) Bool_t Spread(Double_t th, Double_t wl, Double_t& x, Double_t& y, Double_t& a, Double_t& b) const virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b) virtual Photon* Transport(Photon*) const
Data Members
private:
ParamOpticalSystem::EFSDescriptor fFSDescriptor IdealFocalSurface* fIdealFocalSurface Double_t fDmax Double_t fRmax Double_t fThetaMax Double_t fOutLensBorder ParamOpticalSystem::EPsfType fPsfType Interpolate* fGaussSpread Interpolate* fTotalEfficacy Double_t fEPD TF2* fSpreadFun Double_t* fIntegral Int_t fNbins Size of fIntegral public:
static const ParamOpticalSystem::EFSDescriptor kIdeal static const ParamOpticalSystem::EFSDescriptor kTF2 static const ParamOpticalSystem::EPsfType kPointLike static const ParamOpticalSystem::EPsfType kGaussian static const ParamOpticalSystem::EGaussPar kAmpl static const ParamOpticalSystem::EGaussPar kSigma static const enum ParamOpticalSystem:: kOutOfPupil static const enum ParamOpticalSystem:: kOutOfFoV static const enum ParamOpticalSystem:: kAbsorbed static const enum ParamOpticalSystem:: kOutOfPsf static const enum ParamOpticalSystem:: kTransportError
Class Description
Parameterized Optical System ============================ Parameterized optical system. This Optical System is done to reproduce the behaviour of an optics design through a set of parameters. The main pourpose is to simulate and OS with a given Triggering efficacy without the need of the full MC simulation. ParamOpticalSystem behaves as an ideal optical system with a given focal surface. The position an incoming photon hits the focal surface is calculated accordingly the relation d = (Dmax/ThetaMax)*theta where: d is the distance of the impact point on the FS from the center of the FS calculated along the FS. Dmax is the maximum distancs. theta is the angle between the incoming photon direction and the optical axis. ThetaMax is the maximum value of theta accepted by the optics. Config file parameters ====================== fPos.Z [mm]: Z coordinate of the bottom base of the OpticalSystem in the Detector Reference System. fRadius [mm]: Radius of the Optical Sytem. fRmax [mm]: Maximmum radius of the Focal Surface. fDZ [mm]: Heigth of the Optical System. fThetaMax [deg]: Maximum valid incident angle of an incoming photon. fFocalSurfaceZ [mm]: Z coordinate of the center (tip) of the focal surface. fDataDirectory: path where data files are stored. If it begins with '/' path is assumed to be absolute, otherwise relative to this cfg file current position fTotalEfficacy.filename [string]: two column file containing the total efficacy as a function of the incident angle. fAnglesOfIncidence.filename [string]: two column file containing the chief ray incident angle on the focal surface as a function of the incident angle on the pupil. fPsfType [string]: type of PSF to use. - options point: No spread. gauss: Gaussian psf. RMS and angles of incidence listed in fGaussSpread.filename fGaussSpread.filename [string]: three column file containing RMS of the gaussian psf and focal surface incident photons cone aperture.
Bool_t InitIntegral()
Initialize integral tables
Photon* Transport(Photon *ph) const
Transport photon through the optics
Double_t FocalSurfProfile( Double_t r ) const
Profile of the focal surface Z(r)
Double_t DistanceToRadius( Double_t d ) const
Distance from the fs vertex to r using linear interpolation
Bool_t IsAbsorbed( Double_t th, Double_t wl) const
True if photon is absorbed
Bool_t Spread( Double_t th, Double_t wl, Double_t &x, Double_t &y, Double_t &a, Double_t &b ) const
Returns a random point (x,y) and angles (a,b) according psf(th,wl)
Inline Functions
void ~ParamOpticalSystem() ParamOpticalSystem ParamOpticalSystem() const TF2* GetSpreadFun() const Double_t GetRmax() const Double_t GetDmax() const Double_t GetThetaMax() const Double_t* GetIntegral() const Int_t GetNbins() 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)