Simulates the mirror in the raytracing of the TelescopeSimulator module. More...
#include <Mirror.h>
Classes | |
struct | MirrorSegment |
Public Member Functions | |
TObjArray * | Draw () |
Mirror (utl::RandomEngine &rndm, const fdet::Telescope &tel, const double mirrorSize, const double mirrorSegmentSigma, const double mirrorRadiusSigma, const double mirrorAbsorptionTop, const double mirrorAbsorptionBot, const utl::TabulatedFunction *const mirrorDiffusionTop, const utl::TabulatedFunction *const mirrorDiffusionBot) | |
RTNext | Trace (const utl::Photon &photonIn, utl::Photon &photonOut) |
Private Member Functions | |
MirrorSegment & | GetMirrorSegment (const utl::Point &p) |
Private Attributes | |
const double | fMirrorAbsorptionBot |
const double | fMirrorAbsorptionTop |
const utl::TabulatedFunction *const | fMirrorDiffusionBot |
const utl::TabulatedFunction *const | fMirrorDiffusionTop |
const double | fMirrorRadiusSigma |
const double | fMirrorSegmentSigma |
const double | fMirrorSize |
const utl::Point | fOrigin |
utl::RandomEngine & | fRandom |
const double | fRCurv |
const utl::TabulatedFunction & | fReflectivity |
std::map< int, MirrorSegment > | fSegments |
const double | fSigma |
utl::CoordinateSystemPtr | fTelCS |
Simulates the mirror in the raytracing of the TelescopeSimulator module.
Definition at line 46 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.h.
Mirror::Mirror | ( | utl::RandomEngine & | rndm, |
const fdet::Telescope & | tel, | ||
const double | mirrorSize, | ||
const double | mirrorSegmentSigma, | ||
const double | mirrorRadiusSigma, | ||
const double | mirrorAbsorptionTop, | ||
const double | mirrorAbsorptionBot, | ||
const utl::TabulatedFunction *const | mirrorDiffusionTop, | ||
const utl::TabulatedFunction *const | mirrorDiffusionBot | ||
) |
Definition at line 46 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.cc.
TObjArray * Mirror::Draw | ( | ) |
Definition at line 350 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.cc.
References TelescopeSimulatorKG2::Mirror::MirrorSegment::cs, fTelCS, GetMirrorSegment(), utl::BasicVector< HepVector >::GetX(), utl::BasicVector< HepVector >::GetY(), utl::BasicVector< HepVector >::GetZ(), gMirrorWidth, gNSegments, utl::ms, std::pow(), TelescopeSimulatorKG2::Mirror::MirrorSegment::radius, and sqrt().
Referenced by TelescopeSimulatorKG2::RayTracer::~RayTracer().
|
private |
Definition at line 303 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.cc.
References utl::deg, fMirrorRadiusSigma, fMirrorSegmentSigma, fOrigin, fRandom, fRCurv, fSegments, fTelCS, utl::RandomEngine::GetEngine(), utl::BasicVector< HepVector >::GetX(), utl::BasicVector< HepVector >::GetY(), gMirrorWidth, gNSegments, std::pow(), and sqrt().
RTNext Mirror::Trace | ( | const utl::Photon & | photonIn, |
utl::Photon & | photonOut | ||
) |
Definition at line 72 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.cc.
References utl::abs(), TelescopeSimulatorKG2::RTFunctions::Absorption(), utl::deg, TelescopeSimulatorKG2::eCamera, TelescopeSimulatorKG2::eLost, ERROR, fMirrorAbsorptionBot, fMirrorAbsorptionTop, fMirrorDiffusionBot, fMirrorDiffusionTop, fMirrorRadiusSigma, fMirrorSegmentSigma, fMirrorSize, fOrigin, fRandom, fRCurv, fReflectivity, fTelCS, utl::Photon::GetDirection(), utl::RandomEngine::GetEngine(), GetMirrorSegment(), utl::Photon::GetPosition(), utl::Photon::GetWavelength(), utl::BasicVector< HepVector >::GetX(), utl::BasicVector< HepVector >::GetY(), utl::BasicVector< HepVector >::GetZ(), TelescopeSimulatorKG2::Mirror::MirrorSegment::index, TelescopeSimulatorKG2::RTFunctions::MirrorDiffusion(), utl::mm, utl::ms, TelescopeSimulatorKG2::Mirror::MirrorSegment::origin, TelescopeSimulatorKG2::Mirror::MirrorSegment::radius, TelescopeSimulatorKG2::RTFunctions::Reflection(), utl::s, utl::Photon::SetDirection(), TelescopeSimulatorKG2::RTFunctions::Sphere(), and utl::TabulatedFunction::Y().
Referenced by TelescopeSimulatorKG2::RayTracer::Trace().
|
private |
Definition at line 70 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.h.
Referenced by Trace().
|
private |
Definition at line 69 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.h.
Referenced by Trace().
|
private |
Definition at line 72 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.h.
Referenced by Trace().
|
private |
Definition at line 71 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.h.
Referenced by Trace().
|
private |
Definition at line 68 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.h.
Referenced by GetMirrorSegment(), and Trace().
|
private |
Definition at line 67 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.h.
Referenced by GetMirrorSegment(), and Trace().
|
private |
Definition at line 66 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.h.
Referenced by Trace().
|
private |
Definition at line 75 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.h.
Referenced by GetMirrorSegment(), and Trace().
|
private |
Definition at line 64 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.h.
Referenced by GetMirrorSegment(), and Trace().
|
private |
Definition at line 78 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.h.
Referenced by GetMirrorSegment(), and Trace().
|
private |
Definition at line 77 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.h.
Referenced by Trace().
|
private |
Definition at line 94 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.h.
Referenced by GetMirrorSegment().
|
private |
Definition at line 79 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.h.
|
private |
Definition at line 74 of file Modules/FdSimulation/TelescopeSimulatorKG2/Mirror.h.
Referenced by Draw(), GetMirrorSegment(), and Trace().