Simulates all ray tracing inside a telescope. More...
#include <RayTracer.h>
Classes | |
class | Track |
Public Member Functions | |
RayTracer (const int Verbosity, const fdet::Telescope &tel, utl::RandomEngine &random, bool simulateShadow, bool simualteCameraSupportShadow, bool simulateMercedesStars, bool simulateFilterStructure, bool simulateHaloEffects, bool simulateGhostEffects, const int maxMirrorReflections, const double mirrorSize, const double mirrorSegmentSigma, const double mirrorRadiusSigma, const double mirrorAbsorptionTop, const double mirrorAbsorptionBot, utl::TabulatedFunction *mirrorDiffusionTop, utl::TabulatedFunction *mirrorDiffusionBot, const double filterIncreaseReflInside, const double filterIncreaseReflOutside, const double filterPosition, const double filterPositionVertical, const double filterPositionVertical2, const double filterPositionHorizontal, const double filterDustAbsorption, const double lensIncreaseRefl, const double lensPosition, const double minLensThickness, const double torusRadius, const double tubeRadius, const double torusZ0, const double pmt_n, bool plotPhotonTracks=false, bool plotPhotonTracksAtMercedes=false, double drawPhotonsProbabilty=0) | |
RTResult | Trace (const utl::Photon &photonIn, utl::Photon &photonOut, int &nreflections, int &nbackscattered, int &col, int &row) |
Raytracing through the telescope components. More... | |
~RayTracer () | |
Private Member Functions | |
RayTracer & | operator= (const RayTracer &) |
RayTracer () | |
RayTracer (const RayTracer &) | |
Private Attributes | |
Camera * | fCamera |
double | fDrawPhotonProbability |
Filter * | fFilter |
bool | fHasCorrectorRing |
Lens * | fLens |
const int | fMaxMirrorReflections |
Mirror * | fMirror |
int | fNTooManyReflections |
TObjArray * | fObjectsPhotons |
bool | fPlotPhotonTracks |
const utl::RandomEngine * | fRandom |
bool | fSimualteCameraSupportShadow |
bool | fSimulateCameraShadow |
bool | fSimulateFilterStructure |
bool | fSimulateGhostEffects |
bool | fSimulateHaloEffects |
bool | fSimulateMercedesStars |
const fdet::Telescope * | fTel |
int | fVerbosity |
Simulates all ray tracing inside a telescope.
Definition at line 43 of file /RayTracer.h.
|
private |
|
private |
RayTracer::RayTracer | ( | const int | Verbosity, |
const fdet::Telescope & | tel, | ||
utl::RandomEngine & | random, | ||
bool | simulateShadow, | ||
bool | simualteCameraSupportShadow, | ||
bool | simulateMercedesStars, | ||
bool | simulateFilterStructure, | ||
bool | simulateHaloEffects, | ||
bool | simulateGhostEffects, | ||
const int | maxMirrorReflections, | ||
const double | mirrorSize, | ||
const double | mirrorSegmentSigma, | ||
const double | mirrorRadiusSigma, | ||
const double | mirrorAbsorptionTop, | ||
const double | mirrorAbsorptionBot, | ||
utl::TabulatedFunction * | mirrorDiffusionTop, | ||
utl::TabulatedFunction * | mirrorDiffusionBot, | ||
const double | filterIncreaseReflInside, | ||
const double | filterIncreaseReflOutside, | ||
const double | filterPosition, | ||
const double | filterPositionVertical, | ||
const double | filterPositionVertical2, | ||
const double | filterPositionHorizontal, | ||
const double | filterDustAbsorption, | ||
const double | lensIncreaseRefl, | ||
const double | lensPosition, | ||
const double | minLensThickness, | ||
const double | torusRadius, | ||
const double | tubeRadius, | ||
const double | torusZ0, | ||
const double | pmt_n, | ||
bool | plotPhotonTracks = false , |
||
bool | plotPhotonTracksAtMercedes = false , |
||
double | drawPhotonsProbabilty = 0 |
||
) |
Definition at line 50 of file /RayTracer.cc.
References fCamera, fFilter, fHasCorrectorRing, fLens, fMirror, fObjectsPhotons, fSimulateFilterStructure, fSimulateGhostEffects, fSimulateHaloEffects, fSimulateMercedesStars, fTel, and fdet::Telescope::HasCorrectorRing().
RayTracer::~RayTracer | ( | ) |
Definition at line 146 of file /RayTracer.cc.
References RdGeoCeLDFFitter::c, TelescopeSimulatorKG2::Filter::Draw(), TelescopeSimulatorKG2::Lens::Draw(), TelescopeSimulatorKG2::Camera::Draw(), TelescopeSimulatorKG2::Mirror::Draw(), fCamera, fFilter, fLens, fMaxMirrorReflections, fMirror, fNTooManyReflections, fObjectsPhotons, fPlotPhotonTracks, fTel, fVerbosity, fdet::Telescope::GetEyeId(), fdet::Telescope::GetId(), and INFO.
RTResult RayTracer::Trace | ( | const utl::Photon & | photonIn, |
utl::Photon & | photonOut, | ||
int & | nreflections, | ||
int & | nbackscattered, | ||
int & | col, | ||
int & | row | ||
) |
Raytracing through the telescope components.
Definition at line 192 of file /RayTracer.cc.
References TelescopeSimulatorKG2::eAbsorbed, TelescopeSimulatorKG2::eCamera, TelescopeSimulatorKG2::eCameraShadow, TelescopeSimulatorKG2::eDetected, TelescopeSimulatorKG2::eDrawAndExit, TelescopeSimulatorKG2::eFilter, TelescopeSimulatorKG2::eLens, TelescopeSimulatorKG2::eLost, TelescopeSimulatorKG2::eMirror, TelescopeSimulatorKG2::eOK, ERROR, TelescopeSimulatorKG2::eTerminate, TelescopeSimulatorKG2::eTooManyReflections, fCamera, fFilter, fLens, fMaxMirrorReflections, fMirror, fNTooManyReflections, fObjectsPhotons, fPlotPhotonTracks, fSimualteCameraSupportShadow, fTel, fVerbosity, utl::Photon::GetDirection(), utl::TimeInterval::GetInterval(), utl::Photon::GetPosition(), utl::BasicVector< HepVector >::GetR(), utl::Photon::GetSource(), fdet::Telescope::GetTelescopeCoordinateSystem(), utl::Photon::GetTime(), utl::Photon::GetWeight(), utl::BasicVector< HepVector >::GetX(), utl::BasicVector< HepVector >::GetY(), utl::BasicVector< HepVector >::GetZ(), utl::meter, SdAreaSelectorWG::next(), TelescopeSimulatorKG2::RTNextName, TelescopeSimulatorKG2::RayTracer::Track::SetColor(), TelescopeSimulatorKG2::Lens::SetPhotonTrack(), TelescopeSimulatorKG2::Camera::SetPhotonTrack(), TelescopeSimulatorKG2::SIZE_RTNext, TelescopeSimulatorKG2::Filter::Trace(), TelescopeSimulatorKG2::Camera::Trace(), TelescopeSimulatorKG2::Mirror::Trace(), TelescopeSimulatorKG2::Camera::TraceShadow(), and TelescopeSimulatorKG2::Lens::TraceWithTorus().
Referenced by TelescopeSimulatorKG2::TelescopeSimulator::Run().
|
private |
Definition at line 130 of file /RayTracer.h.
Referenced by RayTracer(), Trace(), and ~RayTracer().
|
private |
Definition at line 126 of file /RayTracer.h.
|
private |
Definition at line 132 of file /RayTracer.h.
Referenced by RayTracer(), Trace(), and ~RayTracer().
|
private |
Definition at line 122 of file /RayTracer.h.
Referenced by RayTracer().
|
private |
Definition at line 129 of file /RayTracer.h.
Referenced by RayTracer(), Trace(), and ~RayTracer().
|
private |
Definition at line 121 of file /RayTracer.h.
Referenced by Trace(), and ~RayTracer().
|
private |
Definition at line 131 of file /RayTracer.h.
Referenced by RayTracer(), Trace(), and ~RayTracer().
|
private |
Definition at line 133 of file /RayTracer.h.
Referenced by Trace(), and ~RayTracer().
|
private |
Definition at line 127 of file /RayTracer.h.
Referenced by RayTracer(), Trace(), and ~RayTracer().
|
private |
Definition at line 125 of file /RayTracer.h.
Referenced by Trace(), and ~RayTracer().
|
private |
Definition at line 114 of file /RayTracer.h.
|
private |
Definition at line 116 of file /RayTracer.h.
Referenced by Trace().
|
private |
Definition at line 115 of file /RayTracer.h.
|
private |
Definition at line 118 of file /RayTracer.h.
Referenced by RayTracer().
|
private |
Definition at line 120 of file /RayTracer.h.
Referenced by RayTracer().
|
private |
Definition at line 119 of file /RayTracer.h.
Referenced by RayTracer().
|
private |
Definition at line 117 of file /RayTracer.h.
Referenced by RayTracer().
|
private |
Definition at line 113 of file /RayTracer.h.
Referenced by RayTracer(), Trace(), and ~RayTracer().
|
private |
Definition at line 112 of file /RayTracer.h.
Referenced by Trace(), and ~RayTracer().