/search.css" rel="stylesheet" type="text/css"/> /search.js">
00001 00020 #ifndef AUTOPOSITIONERTOOL_H 00021 #define AUTOPOSITIONERTOOL_H 00022 00023 #include "DetHelpers/IPositionerTool.h" 00024 #include "DetHelpers/ICoordSysSvc.h" 00025 #include "GaudiAlg/GaudiTool.h" 00026 #include "GaudiKernel/IDataProviderSvc.h" 00027 00028 class AutoPositionerTool : public GaudiTool, 00029 virtual public IPositionerTool 00030 { 00031 public: 00032 // Tool interface 00033 AutoPositionerTool(const std::string& type, 00034 const std::string& name, 00035 const IInterface* parent); 00036 ~AutoPositionerTool(); 00037 virtual StatusCode initialize(); 00038 virtual StatusCode reinitialize(); 00039 virtual StatusCode finalize(); 00040 virtual StatusCode queryInterface(const InterfaceID& riid, 00041 void** ppvInterface); 00043 00045 StatusCode placeVolume(); 00046 00047 private: 00048 00049 StatusCode addDetectorElement(std::string detElemName, 00050 std::string detElemPath, 00051 std::string logVolName, 00052 std::string support, 00053 std::string npath); 00054 00055 IDataProviderSvc* m_detSvc; // Handle to Detector Data Service 00056 ICoordSysSvc* m_coordSvc; // Handle to Coordinate System Service 00057 00058 std::string m_physVolName; 00059 std::string m_logVolName; 00060 std::string m_coordDetElemPath; 00061 std::vector<double> m_position; 00062 std::vector<double> m_rotation; 00063 std::string m_detElemName; 00064 std::string m_detElemPath; 00065 std::vector< std::vector<std::string> > m_subDetElements; 00066 }; 00067 00068 #endif // AUTOPOSITIONERTOOL_H