ATLAS Offline Software
Loading...
Searching...
No Matches
AFP_Geometry.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef AFP_GEOMETRY_H
6#define AFP_GEOMETRY_H 1
7
10
11#include "CLHEP/Geometry/Point3D.h"
13
14#include <list>
15#include <map>
16#include <vector>
17#include <string>
18
20{
21
22protected:
24
25 std::map<eAFPStation, std::map<int, HepGeom::Transform3D> > m_MapSIDTransToLocal;
26 std::map<eAFPStation, std::map<int, HepGeom::Transform3D> > m_MapSIDTransToGlobal;
27
28public:
30 AFP_Geometry(const AFP_CONFIGURATION* pCfgParams);
32
33public:
34 void getCfgParams(AFP_CONFIGURATION* pCfgParams) const { *pCfgParams=m_CfgParams; }
35 HepGeom::Transform3D getStationTransform(const char* pszStationName) const; //in world
36 HepGeom::Transform3D getStationElementTransform(const char* pszStationName, eStationElement eElement, const int nPlateID=-1) const; //in station
37
38public:
39 //SID detector
40 int getSIDPlatesCnt(const eAFPStation eStation) const{
41 std::map<eAFPStation, AFP_SIDCONFIGURATION> sidcfg(m_CfgParams.sidcfg.begin(),m_CfgParams.sidcfg.end());
42 return sidcfg[eStation].fLayerCount;
43 }
44 HepGeom::Transform3D getSIDTransform(const eSIDTransformType eType, const char* pszStationName, const int nPlateID) const; // in station
45 StatusCode getPointInSIDSensorLocalCS(const int nStationID, const int nPlateID, const HepGeom::Point3D<double>& GlobalPoint, HepGeom::Point3D<double>& LocalPoint) const;
46 StatusCode getPointInSIDSensorGlobalCS(const int nStationID, const int nPlateID, const HepGeom::Point3D<double>& LocalPoint, HepGeom::Point3D<double>& GlobalPoint) const;
47 eAFPStation parseStationName(const char* pszStationName) const;
48
49 //TOF detector
50 void setupLBarsDims(const eAFPStation eStation);
51 void getPixelLocalPosition(const eAFPStation eStation, const int nPixelID, double* pfX1Pos, double* pfX2Pos) const;
52 int getPixelRow(const int nPixelID) const { return (nPixelID-(nPixelID%10))/10; }
53 int getPixelColumn(const int nPixelID) const { return nPixelID%10; }
54
55};
56
57#ifndef __CINT__
58CLASS_DEF(AFP_Geometry, 160718034, 1)
59#endif
60
61#endif //AFP_GEOMETRY_H
eSIDTransformType
eAFPStation
eStationElement
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
int getPixelColumn(const int nPixelID) const
HepGeom::Transform3D getStationElementTransform(const char *pszStationName, eStationElement eElement, const int nPlateID=-1) const
void getPixelLocalPosition(const eAFPStation eStation, const int nPixelID, double *pfX1Pos, double *pfX2Pos) const
eAFPStation parseStationName(const char *pszStationName) const
std::map< eAFPStation, std::map< int, HepGeom::Transform3D > > m_MapSIDTransToGlobal
std::map< eAFPStation, std::map< int, HepGeom::Transform3D > > m_MapSIDTransToLocal
void getCfgParams(AFP_CONFIGURATION *pCfgParams) const
void setupLBarsDims(const eAFPStation eStation)
AFP_CONFIGURATION m_CfgParams
StatusCode getPointInSIDSensorLocalCS(const int nStationID, const int nPlateID, const HepGeom::Point3D< double > &GlobalPoint, HepGeom::Point3D< double > &LocalPoint) const
StatusCode getPointInSIDSensorGlobalCS(const int nStationID, const int nPlateID, const HepGeom::Point3D< double > &LocalPoint, HepGeom::Point3D< double > &GlobalPoint) const
int getPixelRow(const int nPixelID) const
HepGeom::Transform3D getSIDTransform(const eSIDTransformType eType, const char *pszStationName, const int nPlateID) const
HepGeom::Transform3D getStationTransform(const char *pszStationName) const
int getSIDPlatesCnt(const eAFPStation eStation) const