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)
