6#ifndef ALFA_GeometryReader_h
7#define ALFA_GeometryReader_h 1
11#include "CLHEP/Geometry/Transform3D.h"
12#include "CLHEP/Geometry/Point3D.h"
252 HepGeom::Transform3D
ComputeTransformMatrix(
const std::vector<HepGeom::Point3D<double> >& VecIdealRefPoints,
const std::vector<HepGeom::Point3D<double> >& VecRealRefPoints,
const int nPointCnt, HepGeom::Scale3D&
Scale,
bool bForceUseSVD=
false);
260 double GetPolyFitValue(
const double fInputValue,
const std::vector<double>& vecPolyFitParams);
ASPOSPARAMS * PASPOSPARAMS
GEOMETRYCONFIGURATION * PGEOMETRYCONFIGURATION
PLATEPARAMS * PPLATEPARAMS
CFGRPPOSPARAMS * PCFGRPPOSPARAMS
FIBERPARAMS * PFIBERPARAMS
RPPOSPARAMS * PRPPOSPARAMS
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
bool GetASPosParams(PASPOSPARAMS pRPosParams, const eAStationName eASName)
double GetODFiberOffset(const eRPotName eRPName, const eFiberType eFType, const int nPlateID, const int nFiberID)
bool ParseRPMetrology(eGeoSourceType eSourceType, const char *szDataSource)
static const HepGeom::Point3D< double > ms_NominalRPPin1
bool InitializeDefault(const PGEOMETRYCONFIGURATION pConfig)
bool Initialize(const PGEOMETRYCONFIGURATION pConfig, eFiberCoordSystem eFCoordSystem)
bool GetUFiberParams(PFIBERPARAMS pFiberParams, const eRPotName eRPName, const int nPlateID, const int nFiberID)
const char * GetAStationLabel(const eAStationName eASName)
bool SaveRPGeometryParams(const eRPotName eRPName, const char *szDataDestination)
void SetupSWCorrections(const PGEOMETRYCONFIGURATION pConfig)
double GetUFiberCentreXPos(const eRPotName eRPName, const int nPlateID, const int nFiberID)
bool SetupRPMetrologyPoints(ALFA_ConfigParams &CfgParams, eRPotName eRPName)
void SetVFiberPositionToMainReference(const eRPotName eRPName, const int nPlateID, const int nFiberID, const HepGeom::Point3D< float > &TransPoint, const double fTransSlope)
const char * GetRPotLabel(const eRPotName eRPName)
void SetupCurrentLVDT(const PGEOMETRYCONFIGURATION pConfig)
bool ReadFiberGeometry(const PGEOMETRYCONFIGURATION pConfig)
double GetPolyFitValue(const double fInputValue, const std::vector< double > &vecPolyFitParams)
HepGeom::Transform3D ComputeTransformMatrix(const std::vector< HepGeom::Point3D< double > > &VecIdealRefPoints, const std::vector< HepGeom::Point3D< double > > &VecRealRefPoints, const int nPointCnt, HepGeom::Scale3D &Scale, bool bForceUseSVD=false)
bool ReadSource(const eGeoSourceType eSourceType, const eRPotName eRPName, const eFiberType eFType, const char *szDataSource)
void SetODFiberPositionToMainReference(const eRPotName eRPName, const eFiberType eFType, const int nPlateID, const int nFiberID, const HepGeom::Point3D< float > &TransPoint, const double fTransSlope)
bool ParseArrayOfValues(const char *szvalue, std::vector< double > &vecValues)
bool SetupDetMetrologyPoints(ALFA_ConfigParams &CfgParams, eRPotName eRPName)
bool GetVFiberParams(PFIBERPARAMS pFiberParams, const eRPotName eRPName, const int nPlateID, const int nFiberID)
double GetVFiberCentreXPos(const eRPotName eRPName, const int nPlateID, const int nFiberID)
void TransformFiberPositionsFCSAtlas(PFIBERPARAMS pFiberParams, eRPotName eRPName, const eFiberType eType, const eGeoSourceType eSourceType)
bool GetODFiberParams(PFIBERPARAMS pFiberParams, const eFiberType eFType, const eRPotName eRPName, const int nPlateID, const int nFiberID)
double GetMDFiberSlope(const eRPotName eRPName, const eFiberType eFType, const int nPlateID, const int nFiberID)
bool ResolveRPotRefPoints(const char *szvalue, eRPotName eRPName, eRefPointType eRPointType)
HepGeom::Point3D< double > GetDetPointInRPot(eRPotName eRPName, const HepGeom::Point3D< double > &PointInDetCS)
void PrintFiberGeometry(std::ostream &OutStream)
double GetMDFiberOffset(const eRPotName eRPName, const eFiberType eFType, const int nPlateID, const int nFiberID)
bool GetRPPosParams(PRPPOSPARAMS pRPosParams, const eRPotName eRPName)
double GetODFiberAngle(const eRPotName eRPName, const eFiberType eFType, const int nPlateID, const int nFiberID)
std::map< eRPotName, RPPOSPARAMS > m_RPPosParams
bool StoreReconstructionGeometry(const eRPotName eRPName, const eFiberType eFType, const char *szDataDestination)
double GetVFiberAngle(const eRPotName eRPName, const int nPlateID, const int nFiberID)
std::map< eAStationName, ASPOSPARAMS > m_ASPosParams
HepGeom::Transform3D GetTransformMatrix(const eRPotName eRPName, const eTransformElement eMatrixType)
void UpdateStationsPosParams()
bool ReadDatabase(const eRPotName eRPName, const eFiberType eFType, const char *szDataSource)
double GetMDFiberZPos(const eRPotName eRPName, const eFiberType eFType, const int nPlateID, const int nFiberID)
static const HepGeom::Point3D< double > ms_NominalRPMainPoint
~ALFA_GeometryReader()=default
GEOMETRYCONFIGURATION m_ConfigOpts
double GetUFiberAngle(const eRPotName eRPName, const int nPlateID, const int nFiberID)
void GetListOfExistingRPotIDs(std::list< eRPotName > *pListRPotName)
std::map< eRPotName, ROMAPOT > m_MapRPot
double GetODFiberZPos(const eRPotName eRPName, const eFiberType eFType, const int nPlateID, const int nFiberID)
eFiberCoordSystem m_eFCoordSystem
bool ReadFile(const eRPotName eRPName, const eFiberType eFType, const char *szFilename)
void GetListOfRPotIDs(std::map< eRPotName, std::string > *pMapRPotName)
bool SetupStationMetrologyPoints(ALFA_ConfigParams &CfgParams, eAStationName eASName)
bool GetMDFiberParams(PFIBERPARAMS pFiberParams, const eFiberType eFType, const eRPotName eRPName, const int nPlateID, const int nFiberID)
void SetUFiberPositionToMainReference(const eRPotName eRPName, const int nPlateID, const int nFiberID, const HepGeom::Point3D< float > &TransPoint, const double fTransSlope)
bool ParseRefPoints(const char *szvalue, std::vector< HepGeom::Point3D< double > > &vecRefPoints, eMetrologyCoordSystem eCSystem)
std::list< eRPotName > m_ListExistingRPots
bool SetIdealGeometry(const eRPotName eRPName, const eFiberType eFType)
static const HepGeom::Point3D< double > ms_NominalDetPin1
eGeoSourceType GetRPGeometryType(const eRPotName eRPName, eFiberType eFType)
HepGeom::Point3D< double > GetDetPointInAtlas(eRPotName eRPName, const HepGeom::Point3D< double > &PointInDetCS)
double GetODFiberCentreYPos(const eRPotName eRPName, const eFiberType eFType, const int nPlateID, const int nFiberID)
double GetRPotZPosInAtlas(const eRPotName eRPName)
void TransformFiberPositionsFCSCladding(PFIBERPARAMS pFiberParams, eRPotName eRPName, const eFiberType eType, const eGeoSourceType eSourceType)
void SetupUserCorrections(const PGEOMETRYCONFIGURATION pConfig)
double GetODFiberSlope(const eRPotName eRPName, const eFiberType eFType, const int nPlateID, const int nFiberID)
ALFA_GeometryReader()=default
static const HepGeom::Point3D< double > ms_NominalAlfaRefPoint
bool GetPlateParams(PPLATEPARAMS pPlateParams, const eRPotName eRPName, const int nPlateID)
eMetrologyType m_eMetrologyType
void UpdateSimRPPos(const eRPotName eRPName)
void TransformFiberPositions(PFIBERPARAMS pFiberParams, eRPotName eRPName, const eFiberType eType, const eGeoSourceType eSourceType)
void Scale(TH1 *h, double d=1)
HepGeom::Point3D< double > IdealMainPoint
HepGeom::Vector3D< double > ShiftS
HepGeom::Transform3D ASTransformInATLAS
HepGeom::Vector3D< double > ShiftE
HepGeom::Transform3D ASTransformInMainPoint
HepGeom::Transform3D UserTransformOfDetInRPot
HepGeom::Transform3D UserTransformOfRPInStation
struct CFGRPPOSPARAMS::@231257277057307277056102303220054160371375126174 swcorr
std::string strMDConnString
bool bIsEnabledUserTranform
struct CFGRPPOSPARAMS::@165241311276335134100243022336214374316370201115 usercorr
std::string strODConnString
HepGeom::Point3D< double > UserOriginOfDetTransInRPot
struct FIBERPARAMS::@137236151216355350112202173215267151040247315222 fcs_atlas_full
double fMainRefPointSlope
HepGeom::Point3D< float > MainRefPointPos
struct FIBERPARAMS::@020037127242310025131233034221252240210054065073 fcs_atlas
struct FIBERPARAMS::@070176165224160152370155126271064066333326310013 fcs_cladding
CFGRPPOSPARAMS CfgRPosParams[RPOTSCNT]
std::string strRPMetrologyConnString
std::list< FIBERPARAMS > ListODFibersV1
std::list< FIBERPARAMS > ListODFibersU0
std::map< int, PLATEPARAMS > MapODPlates
std::list< FIBERPARAMS > ListODFibersU1
std::list< FIBERPARAMS > ListVFibers
std::list< FIBERPARAMS > ListUFibers
std::list< FIBERPARAMS > ListODFibersV0
std::map< int, PLATEPARAMS > MapPlates
eGeoSourceType eMDGeometryType
eGeoSourceType eODGeometryType
HepGeom::Point3D< double > IdealRPPin3
HepGeom::Point3D< double > DTPInAlfaCS
HepGeom::Point3D< double > IdealRPPin2
HepGeom::Point3D< double > DCPInRPotCS
HepGeom::Point3D< double > RealRPPin2
HepGeom::Point3D< double > DCPInAlfaCS
HepGeom::Point3D< double > IdealRPPin1
HepGeom::Point3D< double > DCPInAtlasCS
HepGeom::Point3D< double > DTPInRPotCS
HepGeom::Point3D< double > RealRPPin1
HepGeom::Point3D< double > DTPInAtlasCS
HepGeom::Point3D< double > RealRPPin3
HepGeom::Vector3D< double > DetectorNormal
HepGeom::Transform3D RPTransformInStation
HepGeom::Point3D< double > IdealMainPointInStation
std::vector< HepGeom::Point3D< double > > VecIdealDetRefPoints
std::vector< HepGeom::Point3D< double > > VecRealRPRefPoints
std::vector< HepGeom::Point3D< double > > VecIdealRPRefPoints
HepGeom::Scale3D RPScaleInStation
HepGeom::Transform3D DetSWTransformInMainPoint
HepGeom::Point3D< double > IdealRefPoint
HepGeom::Point3D< double > OriginOfDetSWTransform
HepGeom::Transform3D RPSWTransformInStation
HepGeom::Transform3D DetTransformInMainPoint
HepGeom::Point3D< double > IdealMainPoint
HepGeom::Scale3D DetScaleInRP
HepGeom::Transform3D RPIdealTransformInStation
std::vector< HepGeom::Point3D< double > > VecRealDetRefPoints
HepGeom::Transform3D DetSWTransform
HepGeom::Transform3D DetIdealTransformInMainPoint