1 #ifndef _TelescopeSimulatorKG2_Lens_h_
2 #define _TelescopeSimulatorKG2_Lens_h_
8 #include <utl/CoordinateSystemPtr.h>
17 class TabulatedFunction;
27 namespace TelescopeSimulatorKG2 {
43 const bool simulateHaloEffects,
44 const double lensIncreaseRefl,
45 const double lensPosition,
46 const double minLensThickness,
47 const double torusRadius,
48 const double tubeRadius,
49 const double torusZ0);
std::vector< PhotonNormalPair > IntersectionList
RayTracer::Track * fPhotonTrack
utl::CoordinateSystemPtr fTelCS
Simulates the corrector ring in the raytracing of the TelescopeSimulator module.
Class to hold collection (x,y) points and provide interpolation between them.
Lens(utl::RandomEngine &rndm, const fdet::Telescope &tel, const bool simulateHaloEffects, const double lensIncreaseRefl, const double lensPosition, const double minLensThickness, const double torusRadius, const double tubeRadius, const double torusZ0)
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
const utl::TabulatedFunction & fTransmittance
const utl::Point fPosPlane
utl::Vector CurvaturePrototype(const double x, const double y) const
Wraps the random number engine used to generate distributions.
void ChoosePhysicalIntersection(unsigned int &index, const RTFunctions::IntersectionList &intersections) const
const double fTorusRadius
RTNext TraceWithTorus(const utl::Photon &photonIn, utl::Photon &photonOut)
Simulate the lens.
const bool fSimulateHaloEffects
const double fIncreaseReflection
Detector description interface for Telescope-related data.
double ProfilePrototype(const double r) const
void SetPhotonTrack(RayTracer::Track *const track)
RTNext Trace(const utl::Photon &photonIn, utl::Photon &photonOut)
const utl::Point fTorusOrigin
const utl::TabulatedFunction & fRefractiveIndex
utl::RandomEngine & fRandom
const double fMinLensThickness