ATLAS Offline Software
AFP_Geometry.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include <algorithm>
6 #include <cstdio>
7 #include <cstdlib>
8 #include <fstream>
9 
10 #include "StoreGate/StoreGateSvc.h"
11 #include "GaudiKernel/MsgStream.h"
14 
15 #include <CLHEP/Matrix/Matrix.h>
16 #include <CLHEP/Matrix/Vector.h>
17 
19 
20 
21 
23  : m_CfgParams (*pCfgParams)
24 {
27 
28  for(int nStationID=0; nStationID<=3; ++nStationID){
29  eAFPStation eStation=(eAFPStation)nStationID;
30  for(int nPlateID=0; nPlateID<getSIDPlatesCnt(eStation); ++nPlateID){
31  if(!(m_MapSIDTransToGlobal.find(eStation)!=m_MapSIDTransToGlobal.end() && m_MapSIDTransToGlobal[eStation].find(nPlateID)!=m_MapSIDTransToGlobal[eStation].end()))
32  {
33  char szStationName[8];
34  sprintf(szStationName,"AFP%02i",(int)eStation);
35  HepGeom::Transform3D Aux=getSIDTransform(ESTT_SENSORGLOBAL,szStationName,nPlateID);
36  m_MapSIDTransToGlobal[eStation][nPlateID]=Aux;
37  }
38 
39  if(!(m_MapSIDTransToLocal.find(eStation)!=m_MapSIDTransToLocal.end() && m_MapSIDTransToLocal[eStation].find(nPlateID)!=m_MapSIDTransToLocal[eStation].end()))
40  {
41  char szStationName[8];
42  sprintf(szStationName,"AFP%02i",(int)eStation);
43  HepGeom::Transform3D Aux=getSIDTransform(ESTT_SENSORLOCAL,szStationName,nPlateID);
44  m_MapSIDTransToLocal[eStation][nPlateID]=Aux;
45  }
46  }
47  }
48 }
49 
51 {
53 }
54 
56 {
57  HepGeom::Transform3D ReqTransform;
58  eAFPStation eStation=parseStationName(pszStationName);
59 
60  switch(eStation)
61  {
62  case EAS_AFP00:
63  ReqTransform=HepGeom::Translate3D(LHCXOFFSET, 0.0*CLHEP::mm, m_CfgParams.vecStatNominalZPos[0]);
64  break;
65  case EAS_AFP01:
66  ReqTransform=HepGeom::Translate3D(LHCXOFFSET, 0.0*CLHEP::mm, m_CfgParams.vecStatNominalZPos[1]);
67  break;
68  case EAS_AFP02:
69  ReqTransform=HepGeom::Translate3D(LHCXOFFSET, 0.0*CLHEP::mm, m_CfgParams.vecStatNominalZPos[2]) * HepGeom::RotateX3D(180*CLHEP::deg);
70  break;
71  case EAS_AFP03:
72  ReqTransform=HepGeom::Translate3D(LHCXOFFSET, 0.0*CLHEP::mm, m_CfgParams.vecStatNominalZPos[3]) * HepGeom::RotateX3D(180*CLHEP::deg);
73  break;
74  default:
75  break;
76  }
77 
78  return ReqTransform;
79 }
80 
81 HepGeom::Transform3D AFP_Geometry::getStationElementTransform(const char* pszStationName, eStationElement eElement, const int nPlateID) const
82 {
83  HepGeom::Transform3D ReqTransform;
84  eAFPStation eStation=parseStationName(pszStationName);
85 
86  AFP_TDCONFIGURATION tdcfg=m_CfgParams.tdcfg.at(eStation);
87  AFP_SIDCONFIGURATION sidcfg=m_CfgParams.sidcfg.at(eStation);
88 
89  double xComponent = -m_CfgParams.vecRPotFloorDistance[eStation];
90  double yComponent = m_CfgParams.vecRPotYPos[eStation];
91 
92  double xStag = 0.0;
93  if(eElement==ESE_SID && nPlateID!=AFP_CONSTANTS::Stat_GlobalVacuumSensorID)
94  xStag = (nPlateID>-1) ? -sidcfg.vecXStaggering[nPlateID] : 0.0;
95 
96  switch(eStation)
97  {
98  case EAS_AFP00:
99  if(eElement==ESE_RPOT)
100  ReqTransform=HepGeom::Translate3D(xComponent, yComponent, 0.0);
101  else if(eElement==ESE_TOF)
102  ReqTransform=HepGeom::Translate3D(xComponent, yComponent, 0.0)*HepGeom::Translate3D(-tdcfg.fXFloorDistance,tdcfg.fYPosInRPot,tdcfg.fZPosInRPot-sidcfg.fZDistanceInRPot);
103  else if(eElement==ESE_SID)
104  ReqTransform=HepGeom::Translate3D(xComponent, yComponent, 0.0)*HepGeom::Translate3D( xStag,0.0,-sidcfg.fZDistanceInRPot);
105  else {};
106  break;
107  case EAS_AFP01:
108  if(eElement==ESE_RPOT)
109  ReqTransform=HepGeom::Translate3D(xComponent, yComponent, 0.0);
110  else if(eElement==ESE_SID)
111  ReqTransform=HepGeom::Translate3D(xComponent, yComponent, 0.0)*HepGeom::TranslateX3D( xStag);
112  else {};
113  break;
114  case EAS_AFP02:
115  if(eElement==ESE_RPOT)
116  ReqTransform=HepGeom::Translate3D(xComponent, yComponent, 0.0);
117  else if(eElement==ESE_SID)
118  ReqTransform=HepGeom::Translate3D(xComponent, yComponent ,0.0)*HepGeom::TranslateX3D( xStag);
119  else {};
120  break;
121  case EAS_AFP03:
122  if(eElement==ESE_RPOT)
123  ReqTransform=HepGeom::Translate3D(xComponent, yComponent, 0.0);
124  else if(eElement==ESE_TOF)
125  ReqTransform=HepGeom::Translate3D(xComponent, yComponent, 0.0)*HepGeom::Translate3D(-tdcfg.fXFloorDistance,tdcfg.fYPosInRPot,tdcfg.fZPosInRPot-sidcfg.fZDistanceInRPot);
126  else if(eElement==ESE_SID)
127  ReqTransform=HepGeom::Translate3D(xComponent, yComponent, 0.0)*HepGeom::Translate3D( xStag,0.0,-sidcfg.fZDistanceInRPot);
128  break;
129  default:
130  break;
131  }
132 
133  return ReqTransform;
134 }
135 
136 HepGeom::Transform3D AFP_Geometry::getSIDTransform(const eSIDTransformType eType, const char* pszStationName, const int nPlateID) const
137 {
139 
140  std::string Station=std::string(pszStationName);
141  eAFPStation eStation=parseStationName(pszStationName);
142  AFP_SIDCONFIGURATION sidcfg=m_CfgParams.sidcfg.at(eStation);
143  double falpha = sidcfg.fSlope;
144 
145  double fzm=0.0;
146 
147  if(eType==ESTT_VACUUMSENSOR)
148  {
150  {
151  double fxm=-(sidcfg.vecChipXPos[nPlateID]+0.5*sidcfg.vecChipXLength[nPlateID])*std::cos(falpha);
152  double fZCorrOffset=(DETXSIDE==+1 || falpha==0)? -0:4*AFP_CONSTANTS::SiT_CorrZOffset;
153  HepGeom::Transform3D TransInMotherVolume=getStationElementTransform(pszStationName,ESE_SID,nPlateID);
154  HepGeom::Transform3D NominalPosInPocket=HepGeom::Translate3D(0.0*CLHEP::mm,0.0*CLHEP::mm, (fzm-fZCorrOffset));
155 
157  ReqTransform=TransInMotherVolume*NominalPosInPocket*HepGeom::Translate3D(fxm, 0.0*CLHEP::mm, nPlateID*sidcfg.fLayerSpacing/std::cos(falpha))*HepGeom::RotateY3D(falpha)*ReqTransform;
158  }
159  else
160  {
162  {
163  if(eStation==EAS_AFP00) ReqTransform=HepGeom::TranslateZ3D(-AFP_CONSTANTS::Stat_GlobalVacuumSensorZOffset);
164  else if(eStation==EAS_AFP01) ReqTransform=HepGeom::TranslateZ3D(-AFP_CONSTANTS::Stat_GlobalVacuumSensorZOffset);
165  else if(eStation==EAS_AFP02) ReqTransform=HepGeom::TranslateZ3D(-AFP_CONSTANTS::Stat_GlobalVacuumSensorZOffset);
166  else if(eStation==EAS_AFP03) ReqTransform=HepGeom::TranslateZ3D(-AFP_CONSTANTS::Stat_GlobalVacuumSensorZOffset);
167  }
168  }
169 
170  return ReqTransform;
171  }
172 
173  double fxm=-(sidcfg.vecChipXPos[nPlateID]+0.5*sidcfg.vecChipXLength[nPlateID])*std::cos(falpha);
174  double fZCorrOffset=(DETXSIDE==+1 || falpha==0)? -0:4*AFP_CONSTANTS::SiT_CorrZOffset;
175  HepGeom::Transform3D TransInMotherVolume=getStationElementTransform(pszStationName,ESE_SID,nPlateID);
176  HepGeom::Transform3D NominalPosInPocket=HepGeom::Translate3D(0.0*CLHEP::mm,0.0*CLHEP::mm, (fzm-fZCorrOffset));
177 
178  HepGeom::Transform3D TransMotherInWorld=getStationTransform(pszStationName);
179 
180  //staggering of sensor shift in its plane - correction to cosinus needed fo x-staggering to transform to staggering in LHC CS
181  HepGeom::Transform3D TransStaggering=HepGeom::Translate3D(sidcfg.vecXStaggering[nPlateID]*std::cos(falpha),sidcfg.vecYStaggering[nPlateID], 0.0*CLHEP::mm);
182  HepGeom::Transform3D TotTransform=TransInMotherVolume*TransStaggering*NominalPosInPocket;
183 
184  HepGeom::Transform3D PlateTotTrans=TotTransform*HepGeom::Translate3D(fxm,0.0*CLHEP::mm, nPlateID*sidcfg.fLayerSpacing/std::cos(falpha))*HepGeom::RotateY3D(falpha);
185  HepGeom::Transform3D TransFEI4=PlateTotTrans*HepGeom::Translate3D(sidcfg.vecChipXPos[nPlateID], sidcfg.vecChipYPos[nPlateID], 0.5*AFP_CONSTANTS::SiT_Plate_Main_thickness+0.5*AFP_CONSTANTS::SiT_Chip_thickness)*HepGeom::RotateZ3D(sidcfg.vecChipRotAngle[nPlateID]);
186  HepGeom::Transform3D TransSID=TotTransform*HepGeom::Translate3D(fxm,0.0*CLHEP::mm, nPlateID*sidcfg.fLayerSpacing/std::cos(falpha)) * HepGeom::Translate3D(sidcfg.vecChipXPos[nPlateID]+sidcfg.vecSensorXPos[nPlateID], sidcfg.vecChipYPos[nPlateID]+sidcfg.vecSensorYPos[nPlateID], (0.5*AFP_CONSTANTS::SiT_Plate_Main_thickness+AFP_CONSTANTS::SiT_Chip_thickness+0.5*AFP_CONSTANTS::SiT_Pixel_thickness))*HepGeom::RotateY3D(falpha) * HepGeom::RotateZ3D(sidcfg.vecChipRotAngle[nPlateID]);
187  HepGeom::Transform3D TotTransSIDInWorld=TransMotherInWorld*TransSID;
188 
189  switch(eType)
190  {
191  case ESTT_PLATE:
192  ReqTransform=PlateTotTrans;
193  break;
194  case ESTT_SENSOR:
195  ReqTransform=TransSID;
196  break;
197  case ESTT_FEI4CHIP: //CHANGE
198  ReqTransform=TransFEI4;
199  break;
200  case ESTT_SENSORLOCAL:
201  ReqTransform=TotTransSIDInWorld.inverse();
202  break;
203  case ESTT_SENSORGLOBAL:
204  ReqTransform=TotTransSIDInWorld;
205  break;
206 
207  default:
208  break;
209  }
210 
211  return ReqTransform;
212 }
213 
214 eAFPStation AFP_Geometry::parseStationName(const char* pszStationName) const
215 {
216  eAFPStation eStation=EAS_UNKNOWN;
217 
218  if(!strcmp(pszStationName,"AFP00")) eStation=EAS_AFP00;
219  else if(!strcmp(pszStationName,"AFP01")) eStation=EAS_AFP01;
220  else if(!strcmp(pszStationName,"AFP02")) eStation=EAS_AFP02;
221  else if(!strcmp(pszStationName,"AFP03")) eStation=EAS_AFP03;
222  else eStation=EAS_UNKNOWN;
223 
224  return eStation;
225 }
226 
227 StatusCode AFP_Geometry::getPointInSIDSensorLocalCS(const int nStationID, const int nPlateID, const HepGeom::Point3D<double>& GlobalPoint, HepGeom::Point3D<double>& LocalPoint) const
228 {
229  StatusCode Status=StatusCode::FAILURE;
230  LocalPoint=HepGeom::Point3D<double>();
231  eAFPStation eStation=(eAFPStation)nStationID;
232 
233  AFP_TDCONFIGURATION tdcfg=m_CfgParams.tdcfg.at(eStation);
234 
235  if(nStationID>=0 && nStationID<=3){
236  if(nPlateID>=0 && nPlateID<getSIDPlatesCnt(eStation)){
237  LocalPoint=m_MapSIDTransToLocal.at(eStation).at(nPlateID)*GlobalPoint-HepGeom::Point3D<double>(0.5*AFP_CONSTANTS::SiT_Pixel_length_totx,0.5*AFP_CONSTANTS::SiT_Pixel_length_toty,0.5*AFP_CONSTANTS::SiT_Pixel_thickness);
238  Status=StatusCode::SUCCESS;
239  }
240  }
241 
242  return Status;
243 }
244 
245 StatusCode AFP_Geometry::getPointInSIDSensorGlobalCS(const int nStationID, const int nPlateID, const HepGeom::Point3D<double>& LocalPoint, HepGeom::Point3D<double>& GlobalPoint) const
246 {
247  StatusCode Status=StatusCode::FAILURE;
248  GlobalPoint=HepGeom::Point3D<double>();
249  eAFPStation eStation=(eAFPStation)nStationID;
250 
251  if(nStationID>=0 && nStationID<=3){
252  if(nPlateID>=0 && nPlateID<getSIDPlatesCnt(eStation)){
253  GlobalPoint=m_MapSIDTransToGlobal.at(eStation).at(nPlateID)*static_cast<HepGeom::Point3D<double> >(LocalPoint+HepGeom::Point3D<double>(0.5*AFP_CONSTANTS::SiT_Pixel_length_totx,0.5*AFP_CONSTANTS::SiT_Pixel_length_toty,0.5*AFP_CONSTANTS::SiT_Pixel_thickness));
254  Status=StatusCode::SUCCESS;
255  }
256  }
257 
258  return Status;
259 }
260 
261 
262 //-----------------------------------------------------------------
263 
264 void AFP_Geometry::getPixelLocalPosition(const eAFPStation eStation, const int nPixelID, double* pfX1Pos, double* pfX2Pos) const
265 {
266  int i,j;
267  AFP_TDCONFIGURATION TofCfg=m_CfgParams.tdcfg.at(eStation);
268 
269  i=getPixelRow(nPixelID)-1;
270  j=getPixelColumn(nPixelID)-1;
271 
272  if(pfX1Pos) *pfX1Pos = -i * m_CfgParams.tdcfg.at(eStation).fPixelX1Dim;
273  if(pfX2Pos) *pfX2Pos = j * m_CfgParams.tdcfg.at(eStation).fPixelX2Dim;
274 }
275 
277 {
278  int i,j,nTrainOfBar11,nRefTrainID,nTrainID,nTrainCnt;
279  AFPTOF_LBARDIMENSIONS BarDims;
280  double fRadLength11, fLGuideLength11, fRadLength, fLGuideLength;
281 
282  AFP_TDCONFIGURATION tdcfg=m_CfgParams.tdcfg.at(eStation);
283  AFPTOF_LBARREFDIMENSIONS RefBarDims=tdcfg.RefBarDims;
284 
285  nTrainCnt=nTrainOfBar11=tdcfg.nX1PixCnt;
286 
288 
289  //calculate dimensions for bar (1,1), move from (refx1,refx2)
290  nRefTrainID = nTrainCnt-(RefBarDims.nBarX1ID-1); //reference train
291  fRadLength11 = (RefBarDims.fRadLength+tdcfg.mapTrainInfo.at(nRefTrainID).fTaperOffset)+(1-RefBarDims.nBarX1ID)*tdcfg.fPixelX1Dim; // move to (refx1,1)
292  fRadLength11 += (tdcfg.mapTrainInfo.at(nRefTrainID).fPerpShiftInPixel-tdcfg.mapTrainInfo.at(nTrainOfBar11).fPerpShiftInPixel)+0.5*(tdcfg.mapTrainInfo.at(nTrainOfBar11).fLGuideWidth-tdcfg.mapTrainInfo.at(nRefTrainID).fLGuideWidth);
293  fRadLength11 -= ((1-RefBarDims.nBarX2ID)*tdcfg.fPixelX2Dim)/std::tan(tdcfg.fAlpha); //move to (1,1)
294  for(fLGuideLength11=RefBarDims.fLGuideLength,i=RefBarDims.nBarX1ID-1;i>=1;i--){
295  nTrainID = nTrainCnt-(i-1);
296  fLGuideLength11 -= AFP_CONSTANTS::ToF_LGuideTrainOffset+(tdcfg.mapTrainInfo.at(nTrainID).fLGuideWidth-tdcfg.mapTrainInfo.at(nTrainID).fTaperOffset);
297  }
298 
299  //calculate length of light guides
300  std::vector<double> vecLGLengths;
301  vecLGLengths.resize(tdcfg.nX1PixCnt);
302  vecLGLengths[0]=fLGuideLength11;
303  for(i=2;i<=tdcfg.nX1PixCnt;i++){
304  nTrainID=nTrainCnt-(i-1);
305  vecLGLengths[i-1]=vecLGLengths[i-2]+AFP_CONSTANTS::ToF_LGuideTrainOffset+tdcfg.mapTrainInfo.at(nTrainID+1).fLGuideWidth-tdcfg.mapTrainInfo.at(nTrainID+1).fTaperOffset;
306  }
307 
308  tdcfg.mapBarDims.clear();
309  for(i=0;i<tdcfg.nX1PixCnt;i++){
310  nTrainID=tdcfg.nX1PixCnt-i;
311 
312  for(j=0;j<tdcfg.nX2PixCnt;j++){
313  int k = j;
314  if(eStation==EAS_AFP02 || eStation==EAS_AFP03){
315  k = tdcfg.nX2PixCnt-1 - j;
316  }
317 
318  fRadLength=fRadLength11+i*tdcfg.fPixelX1Dim-k*tdcfg.fPixelX2Dim/std::tan(tdcfg.fAlpha);
319  fRadLength+=(tdcfg.mapTrainInfo.at(nTrainOfBar11).fPerpShiftInPixel-tdcfg.mapTrainInfo.at(nTrainID).fPerpShiftInPixel);
320  fRadLength+=0.5*(tdcfg.mapTrainInfo.at(nTrainID).fLGuideWidth-tdcfg.mapTrainInfo.at(nTrainOfBar11).fLGuideWidth);
321  fLGuideLength=vecLGLengths[i];
322 
323  BarDims.nBarX1ID=i+1;
324  BarDims.nBarX2ID=j+1;
325  BarDims.nTrainID=nTrainID;
326  BarDims.fLGuideLength=fLGuideLength;
327  BarDims.fLBarThickness=RefBarDims.fLBarThickness;
328  BarDims.fRadLength=fRadLength-tdcfg.mapTrainInfo.at(BarDims.nTrainID).fTaperOffset;
329  BarDims.fRadYDim=tdcfg.mapTrainInfo.at(nTrainID).fLGuideWidth-tdcfg.mapTrainInfo.at(BarDims.nTrainID).fTaperOffset;
330  BarDims.fLGuideWidth=tdcfg.mapTrainInfo.at(nTrainID).fLGuideWidth;
331 
332  if(j==0) tdcfg.mapTrainInfo.at(nTrainCnt-i).fLength=fLGuideLength+0.5*BarDims.fRadYDim;
333  tdcfg.mapBarDims[10*(i+1)+(k + 1)]=BarDims;
334  }
335  }
336 }
AFP_SIDCONFIGURATION
Definition: AFP_ConfigParams.h:105
AFP_SIDCONFIGURATION::fLayerSpacing
double fLayerSpacing
Definition: AFP_ConfigParams.h:108
EAS_AFP02
@ EAS_AFP02
Definition: AFP_ConfigParams.h:18
AFP_TDCONFIGURATION::nX2PixCnt
int nX2PixCnt
Definition: AFP_ConfigParams.h:85
AFP_Geometry::m_MapSIDTransToLocal
std::map< eAFPStation, std::map< int, HepGeom::Transform3D > > m_MapSIDTransToLocal
Definition: AFP_Geometry.h:25
AFPTOF_LBARREFDIMENSIONS::nBarX1ID
int nBarX1ID
Definition: AFP_ConfigParams.h:52
getMessageSvc.h
singleton-like access to IMessageSvc via open function and helper
ESTT_SENSORLOCAL
@ ESTT_SENSORLOCAL
Definition: AFP_ConfigParams.h:17
ESTT_SENSORGLOBAL
@ ESTT_SENSORGLOBAL
Definition: AFP_ConfigParams.h:17
AFP_CONFIGURATION::sidcfg
std::map< eAFPStation, AFP_SIDCONFIGURATION > sidcfg
Definition: AFP_ConfigParams.h:136
AFP_Geometry::getSIDPlatesCnt
int getSIDPlatesCnt(const eAFPStation eStation) const
Definition: AFP_Geometry.h:40
EAS_UNKNOWN
@ EAS_UNKNOWN
Definition: AFP_ConfigParams.h:18
EAS_AFP00
@ EAS_AFP00
Definition: AFP_ConfigParams.h:18
DETXSIDE
#define DETXSIDE
Definition: AFP_constants.h:92
AFPTOF_LBARREFDIMENSIONS::nBarX2ID
int nBarX2ID
Definition: AFP_ConfigParams.h:53
AFP_TDCONFIGURATION
Definition: AFP_ConfigParams.h:81
EAS_AFP01
@ EAS_AFP01
Definition: AFP_ConfigParams.h:18
AFP_Geometry::getPointInSIDSensorLocalCS
StatusCode getPointInSIDSensorLocalCS(const int nStationID, const int nPlateID, const HepGeom::Point3D< double > &GlobalPoint, HepGeom::Point3D< double > &LocalPoint) const
Definition: AFP_Geometry.cxx:227
deg
#define deg
Definition: SbPolyhedron.cxx:17
ESE_RPOT
@ ESE_RPOT
Definition: AFP_ConfigParams.h:16
ESTT_SENSOR
@ ESTT_SENSOR
Definition: AFP_ConfigParams.h:17
AFPTOF_LBARDIMENSIONS::fLBarThickness
double fLBarThickness
Definition: AFP_ConfigParams.h:70
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
AFP_Geometry::AFP_Geometry
AFP_Geometry()
Definition: AFP_Geometry.h:29
AFP_CONSTANTS::Stat_GlobalVacuumSensorThickness
static constexpr double Stat_GlobalVacuumSensorThickness
Definition: AFP_constants.h:15
AFP_CONFIGURATION::vecRPotFloorDistance
std::vector< double > vecRPotFloorDistance
Definition: AFP_ConfigParams.h:139
ESTT_VACUUMSENSOR
@ ESTT_VACUUMSENSOR
Definition: AFP_ConfigParams.h:17
AFP_CONSTANTS::SiT_Chip_length_x
static constexpr double SiT_Chip_length_x
Definition: AFP_constants.h:48
AFP_Geometry::getStationTransform
HepGeom::Transform3D getStationTransform(const char *pszStationName) const
Definition: AFP_Geometry.cxx:55
AFP_TDCONFIGURATION::fZPosInRPot
double fZPosInRPot
Definition: AFP_ConfigParams.h:100
AFPTOF_LBARDIMENSIONS::nBarX2ID
int nBarX2ID
Definition: AFP_ConfigParams.h:68
AFP_SIDCONFIGURATION::vecSensorXPos
std::vector< double > vecSensorXPos
Definition: AFP_ConfigParams.h:120
AFP_SIDCONFIGURATION::vecSensorYPos
std::vector< double > vecSensorYPos
Definition: AFP_ConfigParams.h:121
AFP_CONSTANTS::Stat_GlobalVacuumSensorZOffset
static constexpr double Stat_GlobalVacuumSensorZOffset
Definition: AFP_constants.h:16
AFP_Geometry::getPixelRow
int getPixelRow(const int nPixelID) const
Definition: AFP_Geometry.h:52
AFP_Geometry::getSIDTransform
HepGeom::Transform3D getSIDTransform(const eSIDTransformType eType, const char *pszStationName, const int nPlateID) const
Definition: AFP_Geometry.cxx:136
AFP_CONSTANTS::Stat_GlobalVacuumSensorID
static constexpr int Stat_GlobalVacuumSensorID
Definition: AFP_constants.h:14
lumiFormat.i
int i
Definition: lumiFormat.py:85
AFP_TDCONFIGURATION::fYPosInRPot
double fYPosInRPot
Definition: AFP_ConfigParams.h:99
ESE_TOF
@ ESE_TOF
Definition: AFP_ConfigParams.h:16
AFP_SIDCONFIGURATION::vecChipYPos
std::vector< double > vecChipYPos
Definition: AFP_ConfigParams.h:116
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AFP_CONFIGURATION
Definition: AFP_ConfigParams.h:135
AFP_CONFIGURATION::tdcfg
std::map< eAFPStation, AFP_TDCONFIGURATION > tdcfg
Definition: AFP_ConfigParams.h:137
AFP_SIDCONFIGURATION::vecXStaggering
std::vector< double > vecXStaggering
Definition: AFP_ConfigParams.h:112
AFP_CONSTANTS::SiT_Chip_thickness
static constexpr double SiT_Chip_thickness
Definition: AFP_constants.h:50
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
AFP_Geometry::getStationElementTransform
HepGeom::Transform3D getStationElementTransform(const char *pszStationName, eStationElement eElement, const int nPlateID=-1) const
Definition: AFP_Geometry.cxx:81
AFP_CONSTANTS::SiT_Plate_Main_length_x
static constexpr double SiT_Plate_Main_length_x
Definition: AFP_constants.h:25
AFPTOF_LBARDIMENSIONS::fLGuideLength
double fLGuideLength
Definition: AFP_ConfigParams.h:74
AFP_CONFIGURATION::vecStatNominalZPos
std::vector< double > vecStatNominalZPos
Definition: AFP_ConfigParams.h:141
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
AFP_Geometry::parseStationName
eAFPStation parseStationName(const char *pszStationName) const
Definition: AFP_Geometry.cxx:214
EAS_AFP03
@ EAS_AFP03
Definition: AFP_ConfigParams.h:18
AFP_Geometry::getPixelLocalPosition
void getPixelLocalPosition(const eAFPStation eStation, const int nPixelID, double *pfX1Pos, double *pfX2Pos) const
Definition: AFP_Geometry.cxx:264
eSIDTransformType
eSIDTransformType
Definition: AFP_ConfigParams.h:17
AFP_Geometry::setupLBarsDims
void setupLBarsDims(const eAFPStation eStation)
Definition: AFP_Geometry.cxx:276
AFP_TDCONFIGURATION::mapTrainInfo
std::map< int, AFPTOF_TRAININFO > mapTrainInfo
Definition: AFP_ConfigParams.h:95
eAFPStation
eAFPStation
Definition: AFP_ConfigParams.h:18
AFPTOF_LBARDIMENSIONS::nBarX1ID
int nBarX1ID
Definition: AFP_ConfigParams.h:67
PathResolver.h
AFP_Geometry::getPixelColumn
int getPixelColumn(const int nPixelID) const
Definition: AFP_Geometry.h:53
AFP_Geometry::getPointInSIDSensorGlobalCS
StatusCode getPointInSIDSensorGlobalCS(const int nStationID, const int nPlateID, const HepGeom::Point3D< double > &LocalPoint, HepGeom::Point3D< double > &GlobalPoint) const
Definition: AFP_Geometry.cxx:245
AFPTOF_LBARREFDIMENSIONS::fLBarThickness
double fLBarThickness
Definition: AFP_ConfigParams.h:54
AFP_Geometry::~AFP_Geometry
~AFP_Geometry()
Definition: AFP_Geometry.cxx:50
AFP_SIDCONFIGURATION::vecChipXLength
std::vector< double > vecChipXLength
Definition: AFP_ConfigParams.h:118
AFPTOF_LBARDIMENSIONS
Definition: AFP_ConfigParams.h:61
AFP_TDCONFIGURATION::RefBarDims
AFPTOF_LBARREFDIMENSIONS RefBarDims
Definition: AFP_ConfigParams.h:96
eStationElement
eStationElement
Definition: AFP_ConfigParams.h:16
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
AFP_CONFIGURATION::clear
void clear()
Definition: AFP_ConfigParams.cxx:9
AFP_TDCONFIGURATION::nX1PixCnt
int nX1PixCnt
Definition: AFP_ConfigParams.h:84
AFPTOF_LBARREFDIMENSIONS::fLGuideLength
double fLGuideLength
Definition: AFP_ConfigParams.h:56
AFP_TDCONFIGURATION::mapBarDims
std::map< int, AFPTOF_LBARDIMENSIONS > mapBarDims
Definition: AFP_ConfigParams.h:94
Athena::Status
Status
Athena specific StatusCode values.
Definition: AthStatusCode.h:22
AFPTOF_LBARDIMENSIONS::fRadYDim
double fRadYDim
Definition: AFP_ConfigParams.h:72
AFP_TDCONFIGURATION::fXFloorDistance
double fXFloorDistance
Definition: AFP_ConfigParams.h:98
AFP_CONSTANTS::SiT_Pixel_thickness
static constexpr double SiT_Pixel_thickness
Definition: AFP_constants.h:60
AFP_TDCONFIGURATION::fPixelX1Dim
double fPixelX1Dim
Definition: AFP_ConfigParams.h:86
AFP_CONSTANTS::SiT_Plate_Main_thickness
static constexpr double SiT_Plate_Main_thickness
Definition: AFP_constants.h:27
AFP_CONSTANTS::ToF_MinBarGap
static constexpr double ToF_MinBarGap
Definition: AFP_constants.h:70
AFP_Geometry::m_MapSIDTransToGlobal
std::map< eAFPStation, std::map< int, HepGeom::Transform3D > > m_MapSIDTransToGlobal
Definition: AFP_Geometry.h:26
LHCXOFFSET
#define LHCXOFFSET
Definition: AFP_constants.h:94
AFP_Geometry::m_CfgParams
AFP_CONFIGURATION m_CfgParams
Definition: AFP_Geometry.h:23
ESTT_PLATE
@ ESTT_PLATE
Definition: AFP_ConfigParams.h:17
AFP_TDCONFIGURATION::fPixelX2Dim
double fPixelX2Dim
Definition: AFP_ConfigParams.h:87
AFP_CONSTANTS::SiT_Pixel_length_toty
static constexpr double SiT_Pixel_length_toty
Definition: AFP_constants.h:62
AFP_SIDCONFIGURATION::vecYStaggering
std::vector< double > vecYStaggering
Definition: AFP_ConfigParams.h:113
ESE_SID
@ ESE_SID
Definition: AFP_ConfigParams.h:16
AFPTOF_LBARDIMENSIONS::nTrainID
int nTrainID
Definition: AFP_ConfigParams.h:69
AFPTOF_LBARDIMENSIONS::fLGuideWidth
double fLGuideWidth
Definition: AFP_ConfigParams.h:73
AFPTOF_LBARDIMENSIONS::fRadLength
double fRadLength
Definition: AFP_ConfigParams.h:71
AFPTOF_LBARREFDIMENSIONS::fRadLength
double fRadLength
Definition: AFP_ConfigParams.h:55
AFP_CONFIGURATION::vecRPotYPos
std::vector< double > vecRPotYPos
Definition: AFP_ConfigParams.h:140
AFP_CONSTANTS::SiT_Pixel_length_totx
static constexpr double SiT_Pixel_length_totx
Definition: AFP_constants.h:61
AFP_SIDCONFIGURATION::fSlope
double fSlope
Definition: AFP_ConfigParams.h:106
AFP_CONSTANTS::SiT_CorrZOffset
static constexpr double SiT_CorrZOffset
Definition: AFP_constants.h:23
StoreGateSvc.h
AFP_SIDCONFIGURATION::vecChipRotAngle
std::vector< double > vecChipRotAngle
Definition: AFP_ConfigParams.h:117
AFP_TDCONFIGURATION::fAlpha
double fAlpha
Definition: AFP_ConfigParams.h:83
ESTT_FEI4CHIP
@ ESTT_FEI4CHIP
Definition: AFP_ConfigParams.h:17
AFP_Geometry.h
fitman.k
k
Definition: fitman.py:528
AFP_SIDCONFIGURATION::fZDistanceInRPot
double fZDistanceInRPot
Definition: AFP_ConfigParams.h:109
AFPTOF_LBARREFDIMENSIONS
Definition: AFP_ConfigParams.h:46
AFP_SIDCONFIGURATION::vecChipXPos
std::vector< double > vecChipXPos
Definition: AFP_ConfigParams.h:115
AFP_CONSTANTS::ToF_LGuideTrainOffset
static constexpr double ToF_LGuideTrainOffset
Definition: AFP_constants.h:72