File indexing completed on 2025-08-06 08:17:40
0001 #ifndef INTT_SURVEY_MAP_H
0002 #define INTT_SURVEY_MAP_H
0003
0004 #include "InttMapping.h"
0005
0006 #ifdef __clang__
0007 #pragma GCC diagnostic push
0008 #pragma GCC diagnostic ignored "-Wundefined-internal"
0009 #include <Eigen/Geometry>
0010 #pragma GCC diagnostic pop
0011 #else
0012 #include <Eigen/Geometry>
0013 #endif
0014
0015 #include <cstddef> // for size_t
0016 #include <iostream>
0017 #include <map>
0018 #include <string>
0019
0020 class CDBTTree;
0021
0022 class InttSurveyMap
0023 {
0024 public:
0025 typedef std::map<InttNameSpace::Offline_s, Eigen::Affine3d> map_t;
0026 typedef InttNameSpace::Offline_s key_t;
0027 typedef Eigen::Affine3d val_t;
0028
0029 InttSurveyMap() = default;
0030 virtual ~InttSurveyMap();
0031
0032 int LoadFromFile(std::string const& = "InttSurveyMap.root");
0033 int LoadFromCDB(std::string const& = "InttSurveyMap");
0034
0035 int GetStripTransform(key_t const&, val_t&) const;
0036 int GetSensorTransform(key_t const&, val_t&) const;
0037 int GetLadderTransform(key_t const&, val_t&) const;
0038
0039 virtual void identify(std::ostream& = std::cout) const;
0040 virtual std::size_t size() const;
0041
0042 virtual val_t const* GetAbsoluteTransform(key_t const&) const;
0043 int const static Wildcard = 0xffff;
0044
0045 protected:
0046 virtual int v_LoadFromCDBTTree(CDBTTree&);
0047
0048 private:
0049 map_t* m_absolute_transforms = nullptr;
0050
0051 };
0052
0053 #endif