#ifndef TRANSLATIONMGR_HPP #define TRANSLATIONMGR_HPP #include "framework/Package.hpp" #include "framework/Result.hpp" #include "framework/hooks/Dump.hpp" #include "tsim_l2stt/StripRPHI.hpp" #include "l2stt_util/L2STTCluster.hpp" #include "smtutil/SmtAddressTranslation.hpp" #include "tsim_l2stt/CFTaddress.hpp" #include "tsim_l2stt/CombStripFEAddress.hpp" #include "d0om/d0_Ref.hpp" #include "geometry_system/components/CartesianCoordinate.hpp" #include "smtutil/StripAddress.hpp" #include "smtutil/StripFEAddress.hpp" #include "smtutil/SmtAddress.hpp" #include "smtutil/SmtFEAddress.hpp" #include "smtutil/SmtParams.hpp" #include "smtutil/SmtAddressTranslation.hpp" #include "silicon_geometry/base/SiGeometer.hpp" #include "silicon_geometry/base/SiBaseGeometry.hpp" #include "silicon_geometry/channel/SiChannelGeometer.hpp" #include "silicon_geometry/channel/SiStrips.hpp" #include "silicon_geometry/utils/smt_build_default.hpp" #include "smtdata/SmtStrips.hpp" #include using namespace dgs; class TranslationMgr: public fwk::Package, public fwk::Dump { public: TranslationMgr(fwk::Context* context); ~TranslationMgr(); std::string packageName() const {return package_name();} static const std::string package_name(){return "TranslationMgr";} static const std::string version() {return "$Id: TranslationMgr.hpp,v 1.3 1999/12/08 19:03:33 silvia Exp $";} fwk::Result dumpEvent(const edm::Event &event); static void setupTrans(); static bool translator(StripFEAddress& hwaddr, StripRPHI& rphiaddr); static bool translator(StripRPHI& rphiaddr, StripFEAddress& hwaddr); static SmtAddressTranslation* SmtTrans() { return _SMTaddrTranslation; } static const dgs::CartesianCoordinate _getLocalPosition(int _barrel, int _layer, int _view, int strip, float pitch, float zero); static int assignVRB(int ilay, int ibar); static int assignHDI(int ilay, int ibar, int detpos); static void assignChanID(int ibar, int ilay, int iview, int istrip, int& chipID, int& chanID); static void assignSector(int ilay, int ilad, int ibar, int& isector, int& detpos); void assignChanID(int istrip, int& chipID, int& chanID); static void lookup_table( std::map& CombStripFEAddressMap, std::map& CFTaddressMap); static bool cft_smt_map(CFTaddress& cftaddr, CombStripFEAddress& hwaddr); private: static std::map _StripFEAddressmap; static std::map _StripRPHImap; static SmtAddressTranslation* _SMTaddrTranslation; static std::map _CombStripFELookup; static std::map _CFTaddressLookup; static float delta_phi(float phi1, float phi2); static float signed_delta_phi(float phi1, float phi2); }; #endif