3 #include <boost/lexical_cast.hpp>
5 #include <fdet/Mirror.h>
7 #include <fdet/FDetector.h>
9 #include <fdet/Telescope.h>
11 #include <utl/TabulatedFunction.h>
12 #include <utl/ErrorLogger.h>
14 #include <det/VManager.h>
15 #include <det/Detector.h>
23 Mirror::Mirror(
const unsigned int eyeId,
const unsigned int telId,
24 const std::string& physEyeIdString,
25 const std::string& physTelIdString) :
28 fPhysicalEyeIdString(physEyeIdString),
29 fPhysicalTelescopeIdString(physTelIdString),
30 fRadiusOfCurvature(0),
85 const std::string& property,
86 const std::string& component,
87 const std::string& errorMsg)
91 requestedData =
new T;
94 return *requestedData;
102 const std::string& property,
103 const std::string& component,
104 const std::string& errorMsg)
107 const VManager& manager = Detector::GetInstance().GetFManagerRegister();
114 manager.
GetData(requestedData, property, component, indexMap);
116 if (foundFlag == VManager::eNotFound) {
118 err <<
"Did not find requested component for " << errorMsg<<
"; "
119 << VManager::QueryInfoMessage(property, component, indexMap);
double GetSigmaNormal() const
Variable to model the mirror surface imperfection.
Class to hold collection (x,y) points and provide interpolation between them.
const T & GetMirrorData(T *&requestedData, const std::string &property, const std::string &component, const std::string &errorMsg) const
Base class for exceptions trying to access non-existing components.
Interface for detector managers.
virtual Status GetData(double &returnData, const std::string &componentProperty, const std::string &componentName, const IndexMap &componentIndex) const =0
std::string fPhysicalTelescopeIdString
std::string fPhysicalEyeIdString
double * fRadiusOfCurvature
const utl::TabulatedFunction & GetReflectivity() const
Average reflectivity of the segments as a function of the wavelength.
fTelescopeId(t.GetTelescopeId())
utl::TabulatedFunction * fReflectivity
double GetRadiusOfCurvature() const
Average radius of curvature for the segments.
std::map< std::string, std::string > IndexMap
#define ERROR(message)
Macro for logging error messages.
Status
Specifies success or (eventually) various possible failure modes.