#include <Camera.h>
Public Types | |
enum | HexagonDirection { eInside = 0, eTopRight = 1, eTopLeft = 2, eLeft = 3, eBottomLeft = 4, eBottomRight = 5, eRight = 6 } |
Public Member Functions | |
Camera (utl::RandomEngine &rndm, const fdet::Telescope &tel) | |
int | ConstructPlane (const int id, utl::Vector &n, utl::Point &p, const utl::CoordinateSystemPtr &pxlCS) |
TObjArray * | Draw (const bool do3D=true) |
HexagonDirection | Hexagon (double x, double y, double r) |
RTResult | Trace (const utl::Photon &photonIn, utl::Photon &photonOut, int &nreflections, int &col, int &row, double &cosTheta, bool doMercedes=true) |
RTResult | TraceMerc (const utl::CoordinateSystemPtr &pxlCS, const utl::Photon &photonIn, utl::Photon &photonOut, int &nreflections) |
RTResult | TraceShadow (const utl::Photon &photonIn, const bool doSupport=true) |
int | TraceSurf (const utl::Photon &photonIn, utl::Photon &photonOut, utl::Vector &normal) |
Private Member Functions | |
void | CalculateCameraSupportCoordinateSystem () |
Camera () | |
Camera (const Camera &) | |
bool | FindPixelId (const utl::Vector &incidentDir, int &row, int &col) const |
Camera & | operator= (const Camera &) |
void | SetMercedesParameter (double height, double width) |
Private Attributes | |
utl::CoordinateSystemPtr | fCameraSupportCoordinateSystem |
double | fD1 |
double | fD2 |
double | fHMerc |
double | fMercedesEff |
double | fNt |
double | fNz |
utl::Point | fOrigin |
double | fR1 |
double | fR2 |
utl::RandomEngine & | fRandom |
double | fRFocal |
double | fSigma |
double | fSinAx |
double | fSinAy |
double | fSinBx |
double | fSinBy |
const fdet::Telescope & | fTel |
utl::CoordinateSystemPtr | fTelCS |
Definition at line 35 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Enumerator | |
---|---|
eInside | |
eTopRight | |
eTopLeft | |
eLeft | |
eBottomLeft | |
eBottomRight | |
eRight |
Definition at line 76 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
|
private |
|
private |
Camera::Camera | ( | utl::RandomEngine & | rndm, |
const fdet::Telescope & | tel | ||
) |
Definition at line 58 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.cc.
References CalculateCameraSupportCoordinateSystem(), fMercedesEff, fOrigin, fRFocal, fSigma, fSinAx, fSinAy, fSinBx, fSinBy, fTelCS, fdet::Telescope::GetCamera(), fdet::Camera::GetMercedesBase(), fdet::Camera::GetMercedesEfficiency(), fdet::Camera::GetMercedesHeight(), fdet::Telescope::GetPosition(), fdet::Camera::GetRadiusFocal(), fdet::Camera::GetSigmaNormal(), fdet::Telescope::GetTelescopeCoordinateSystem(), and SetMercedesParameter().
|
private |
Definition at line 928 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.cc.
References utl::cm, utl::deg, fCameraSupportCoordinateSystem, fRFocal, and fTelCS.
Referenced by Camera().
int Camera::ConstructPlane | ( | const int | id, |
utl::Vector & | n, | ||
utl::Point & | p, | ||
const utl::CoordinateSystemPtr & | pxlCS | ||
) |
Definition at line 656 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.cc.
References utl::deg, fD1, fHMerc, fNt, and fNz.
Referenced by TraceMerc().
TObjArray * Camera::Draw | ( | const bool | do3D = true | ) |
Definition at line 698 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.cc.
References utl::cm, utl::deg, fCameraSupportCoordinateSystem, fHMerc, fR1, fR2, fTel, fTelCS, fdet::Telescope::GetFirstColumn(), fdet::Telescope::GetFirstRow(), fdet::Telescope::GetLastColumn(), fdet::Telescope::GetLastRow(), fdet::Telescope::GetPixel(), fdet::Pixel::GetPixelCoordinateSystem(), utl::BasicVector< HepVector >::GetX(), utl::BasicVector< HepVector >::GetY(), utl::BasicVector< HepVector >::GetZ(), and utl::m.
|
private |
Definition at line 245 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.cc.
References fTel, fTelCS, fdet::Telescope::GetCamera(), fdet::Camera::GetEta(), fdet::Telescope::GetFirstColumn(), fdet::Telescope::GetFirstRow(), fdet::Telescope::GetLastColumn(), fdet::Telescope::GetLastRow(), utl::BasicVector< HepVector >::GetX(), utl::BasicVector< HepVector >::GetY(), utl::BasicVector< HepVector >::GetZ(), and utl::kSqrt3.
Referenced by Trace().
Camera::HexagonDirection Camera::Hexagon | ( | double | x, |
double | y, | ||
double | r | ||
) |
Definition at line 630 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.cc.
References eBottomLeft, eBottomRight, eInside, eLeft, eRight, eTopLeft, eTopRight, and utl::kSqrt3.
Referenced by TraceMerc().
|
private |
RTResult Camera::Trace | ( | const utl::Photon & | photonIn, |
utl::Photon & | photonOut, | ||
int & | nreflections, | ||
int & | col, | ||
int & | row, | ||
double & | cosTheta, | ||
bool | doMercedes = true |
||
) |
Definition at line 133 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.cc.
References utl::deg, TelescopeSimulatorKG::eBackscattered, TelescopeSimulatorKG::eMissedFocalSurface, TelescopeSimulatorKG::eMissedPixels, TelescopeSimulatorKG::eOK, ERROR, FindPixelId(), fOrigin, fTel, utl::BasicVector< HepVector >::GetCosTheta(), TelescopeSimulatorKG::RayTracer::GetDebugLevel(), utl::Photon::GetDirection(), fdet::Telescope::GetId(), fdet::Telescope::GetPixel(), fdet::Pixel::GetPixelCoordinateSystem(), utl::Photon::GetPosition(), utl::Photon::GetWeight(), utl::BasicVector< HepVector >::GetZ(), INFO, utl::Vector::Normalize(), TelescopeSimulatorKG::RTFunctions::Refraction(), utl::Photon::SetWeight(), TraceMerc(), and TraceSurf().
Referenced by TelescopeSimulatorKG::RayTracer::Trace().
RTResult Camera::TraceMerc | ( | const utl::CoordinateSystemPtr & | pxlCS, |
const utl::Photon & | photonIn, | ||
utl::Photon & | photonOut, | ||
int & | nreflections | ||
) |
Definition at line 398 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.cc.
References ConstructPlane(), TelescopeSimulatorKG::eBackscattered, TelescopeSimulatorKG::eInvalidHitMercedes, TelescopeSimulatorKG::eInvalidMercedes, TelescopeSimulatorKG::eOK, ERROR, fMercedesEff, fR1, TelescopeSimulatorKG::RayTracer::GetDebugLevel(), utl::Photon::GetDirection(), utl::Photon::GetPosition(), utl::Photon::GetWeight(), utl::BasicVector< HepVector >::GetX(), utl::BasicVector< HepVector >::GetY(), utl::BasicVector< HepVector >::GetZ(), Hexagon(), INFO, TelescopeSimulatorKG::RTFunctions::Plane(), TelescopeSimulatorKG::RTFunctions::Reflection(), and utl::Photon::SetWeight().
Referenced by Trace().
RTResult Camera::TraceShadow | ( | const utl::Photon & | photonIn, |
const bool | doSupport = true |
||
) |
Definition at line 310 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.cc.
References utl::cm, TelescopeSimulatorKG::eOK, TelescopeSimulatorKG::eShadowed, fCameraSupportCoordinateSystem, fOrigin, fRFocal, fSinAx, fSinAy, fSinBx, fSinBy, fTelCS, TelescopeSimulatorKG::RayTracer::GetDebugLevel(), utl::BasicVector< HepVector >::GetX(), utl::BasicVector< HepVector >::GetY(), INFO, TelescopeSimulatorKG::RTFunctions::Plane(), and TelescopeSimulatorKG::RTFunctions::Sphere().
Referenced by TelescopeSimulatorKG::RayTracer::Trace().
int Camera::TraceSurf | ( | const utl::Photon & | photonIn, |
utl::Photon & | photonOut, | ||
utl::Vector & | normal | ||
) |
Definition at line 367 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.cc.
References fOrigin, fRFocal, and TelescopeSimulatorKG::RTFunctions::Sphere().
Referenced by Trace().
|
private |
Definition at line 117 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Referenced by CalculateCameraSupportCoordinateSystem(), Draw(), and TraceShadow().
|
private |
Definition at line 107 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Referenced by ConstructPlane(), and SetMercedesParameter().
|
private |
Definition at line 107 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Referenced by SetMercedesParameter().
|
private |
Definition at line 107 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Referenced by ConstructPlane(), Draw(), and SetMercedesParameter().
|
private |
Definition at line 102 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Referenced by Camera(), and TraceMerc().
|
private |
Definition at line 110 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Referenced by ConstructPlane(), and SetMercedesParameter().
|
private |
Definition at line 110 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Referenced by ConstructPlane(), and SetMercedesParameter().
|
private |
Definition at line 99 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Referenced by Camera(), Trace(), TraceShadow(), and TraceSurf().
|
private |
Definition at line 107 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Referenced by Draw(), SetMercedesParameter(), and TraceMerc().
|
private |
Definition at line 107 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Referenced by Draw(), and SetMercedesParameter().
|
private |
Definition at line 95 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
|
private |
Definition at line 101 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Referenced by CalculateCameraSupportCoordinateSystem(), Camera(), TraceShadow(), and TraceSurf().
|
private |
Definition at line 113 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Referenced by Camera().
|
private |
Definition at line 104 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Referenced by Camera(), and TraceShadow().
|
private |
Definition at line 104 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Referenced by Camera(), and TraceShadow().
|
private |
Definition at line 104 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Referenced by Camera(), and TraceShadow().
|
private |
Definition at line 104 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Referenced by Camera(), and TraceShadow().
|
private |
Definition at line 96 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Referenced by Draw(), FindPixelId(), and Trace().
|
private |
Definition at line 98 of file Modules/FdSimulation/TelescopeSimulatorKG/Camera.h.
Referenced by CalculateCameraSupportCoordinateSystem(), Camera(), Draw(), FindPixelId(), and TraceShadow().