ATLAS Offline Software
AFP_GeoModelTD.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 
6 #include "AFP_GeoModelFactory.h"
9 #include "GeoModelKernel/GeoMaterial.h"
10 #include "GeoModelKernel/GeoBox.h"
11 #include "GeoModelKernel/GeoTube.h"
12 #include "GeoModelKernel/GeoTubs.h"
13 #include "GeoModelKernel/GeoShapeSubtraction.h"
14 #include "GeoModelKernel/GeoShapeIntersection.h"
15 #include "GeoModelKernel/GeoShapeUnion.h"
16 #include "GeoModelKernel/GeoShapeShift.h"
17 #include "GeoModelKernel/GeoLogVol.h"
18 #include "GeoModelKernel/GeoNameTag.h"
19 #include "GeoModelKernel/GeoPhysVol.h"
20 #include "GeoModelKernel/GeoFullPhysVol.h"
21 #include "GeoModelKernel/GeoTransform.h"
22 #include "GeoModelKernel/GeoAlignableTransform.h"
23 #include "CLHEP/GenericFunctions/AbsFunction.hh"
24 #include "CLHEP/GenericFunctions/Variable.hh"
25 #include "CLHEP/GenericFunctions/Sin.hh"
26 #include "CLHEP/GenericFunctions/Cos.hh"
27 #include "StoreGate/StoreGateSvc.h"
29 
31 
36 
37 #include <iostream>
38 #include <fstream>
39 #include <string>
40 
41 #include <algorithm>
42 #include <cmath>
43 
44 #include <list>
45 #include <map>
46 
47 #include <cstdlib>
48 
50 {
51  // Surface definition (preliminary)
53 
56  double pfEnergy1[2]={ 1.62*CLHEP::eV, 6.20*CLHEP::eV };
57  double pfReflectivity1[2]={ 0.9, 0.9};
58  pMPT->AddProperty("REFLECTIVITY",pfEnergy1,pfReflectivity1,2);
60 }
61 
62 StatusCode AFP_GeoModelFactory::addTimingDetector(const char* pszStationName, GeoOpticalPhysVol* pPhysMotherVol, HepGeom::Transform3D& TransInMotherVolume, GeoBorderSurfaceContainer* bsContainer)
63 {
64  int i,j,nPixelID;
65  double fXShift,fYShift,fZShift;
66 
67  eAFPStation eStation=m_pGeometry->parseStationName(pszStationName);
68 
69  AFP_TDCONFIGURATION TofCfg=m_CfgParams.tdcfg[eStation];
70  AFPTOF_LBARDIMENSIONS BarDims11=TofCfg.mapBarDims[11];
71  fXShift=-73.5*CLHEP::mm; //FIXME TODO
72  fYShift=(BarDims11.fRadLength+TofCfg.mapTrainInfo[BarDims11.nTrainID].fPerpShiftInPixel-0.5*(BarDims11.fLGuideWidth-TofCfg.mapTrainInfo[BarDims11.nTrainID].fTaperOffset)-0.5*BarDims11.fLBarThickness/std::tan(TofCfg.fAlpha))*std::sin(TofCfg.fAlpha);
73  fZShift=fabs(fYShift)/std::tan(TofCfg.fAlpha)+0.5*BarDims11.fLBarThickness/std::sin(TofCfg.fAlpha);
74 
75  HepGeom::Transform3D TofTransform=TransInMotherVolume*HepGeom::Translate3D(fXShift,fYShift,fZShift)*HepGeom::RotateX3D((90.0*CLHEP::deg-TofCfg.fAlpha))*HepGeom::RotateZ3D(-90.0*CLHEP::deg);
76 
77  for(i=0;i<m_CfgParams.tdcfg[eStation].nX1PixCnt;i++)
78  {
79  for(j=0;j<m_CfgParams.tdcfg[eStation].nX2PixCnt;j++)
80  {
81  nPixelID=10*(i+1)+(j+1);
82  addSepRadLBar(pszStationName,1,nPixelID,pPhysMotherVol,TofTransform,bsContainer);
83  }
84  }
85 
87  {
88  addLBarSensorSeparationWindow(pszStationName,1,pPhysMotherVol,TofTransform,bsContainer);
89  }
90  addSensor(pszStationName,1,pPhysMotherVol,TofTransform,bsContainer);
91 
92  return StatusCode::SUCCESS;
93 }
94 
95 void AFP_GeoModelFactory::addSepRadLBar(const char* pszStationName, const int nQuarticID, const int nBarID, GeoOpticalPhysVol* pPhysMotherVolume, HepGeom::Transform3D& TransInMotherVolume, GeoBorderSurfaceContainer* bsContainer)
96 {
97  double fX1Pos,fX2Pos,falpha,fd;
98  HepGeom::Vector3D<double> vecA1, vecA2, vecX;
99  CLHEP::Hep3Vector vecCutShift;
100  HepGeom::Transform3D TransCut;
101  GeoShapeShift* pMoveCut;
102  GeoBox* pSolAux;
103  char szlabel[64];
104 
105  CLHEP::HepRotation Rot1,Rot2,Rot3;
106 
107  eAFPStation eStation=m_pGeometry->parseStationName(pszStationName);
108  AFP_TDCONFIGURATION TofCfg=m_CfgParams.tdcfg[eStation];
109  AFPTOF_LBARDIMENSIONS BarDims=TofCfg.mapBarDims[nBarID];
110 
111  double fTaperOffset=TofCfg.mapTrainInfo[BarDims.nTrainID].fTaperOffset;
112  m_pGeometry->getPixelLocalPosition(eStation,nBarID,&fX1Pos,&fX2Pos);
113 
114  fX1Pos+=TofCfg.mapTrainInfo[BarDims.nTrainID].fPerpShiftInPixel;
115 
116 
117  //Light guide
118  HepGeom::Transform3D TotTransform=TransInMotherVolume*HepGeom::Translate3D( fX1Pos,
119  0.5*BarDims.fLGuideLength,
120  fX2Pos);
121  GeoShape* pSolVolume=new GeoBox(0.5*BarDims.fLGuideWidth,0.5*BarDims.fLGuideLength,0.5*BarDims.fLBarThickness);
122 
123  if(TofCfg.mapTrainInfo[BarDims.nTrainID].bUseTaper)
124  {
125  falpha=TofCfg.mapTrainInfo[BarDims.nTrainID].fTaperAngle;
126  fd=fTaperOffset/std::sin(falpha);
127  vecA1=-fd*std::cos(falpha)*CLHEP::Hep3Vector(0.0,1.0,0.0);
128  vecA2=+0.5*fd*std::sqrt(2.0)*(CLHEP::HepRotationZ(+(45*CLHEP::deg-falpha))*CLHEP::Hep3Vector(0.0,1.0,0.0)).unit();
129  vecX=vecA1+vecA2;
130  vecCutShift=CLHEP::Hep3Vector(-0.5*BarDims.fLGuideWidth,0.5*BarDims.fLGuideLength,0.0)+CLHEP::Hep3Vector(vecX);
131  Rot1.rotateZ(-falpha);
132 
133  pSolAux=new GeoBox(0.5*fd,0.5*fd,0.5*BarDims.fLBarThickness+SLIMCUT);
134  TransCut=HepGeom::Transform3D(Rot1,vecCutShift);
135  pMoveCut=new GeoShapeShift(pSolAux, Amg::CLHEPTransformToEigen(TransCut));
136  pSolVolume=new GeoShapeSubtraction(pSolVolume, pMoveCut);
137  }
138 
139  sprintf(szlabel,"%s_Q%i_LogLGuide[%i]",pszStationName,nQuarticID,nBarID);
140  GeoLogVol* pLogLGuide=new GeoLogVol(szlabel,pSolVolume,m_MapMaterials[std::string("Quartz")]);
141  GeoOpticalPhysVol* pPhysLGuide=new GeoOpticalPhysVol(pLogLGuide);
142  sprintf(szlabel,"%s_Q%i_LGuide[%i]",pszStationName,nQuarticID,nBarID);
143  pPhysMotherVolume->add(new GeoNameTag(szlabel));
144  pPhysMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(TotTransform)));
145  pPhysMotherVolume->add(pPhysLGuide);
146  sprintf(szlabel,"%s_Q%i_LGuideSurface[%i]",pszStationName,nQuarticID,nBarID);
147  bsContainer->push_back(GeoBorderSurface(szlabel, pPhysLGuide, pPhysMotherVolume, m_pOpticalSurface));
148 
149  //Radiator elbow
150  double fRadYDim=BarDims.fRadYDim;
151  double fElbowXDim=fRadYDim;
152  TotTransform=TransInMotherVolume*HepGeom::Translate3D( fX1Pos-0.5*BarDims.fLGuideWidth+0.5*fElbowXDim+fTaperOffset,
153  BarDims.fLGuideLength+0.5*fRadYDim,
154  fX2Pos);
155  pSolVolume=new GeoBox(0.5*fElbowXDim,0.5*fRadYDim,0.5*BarDims.fLBarThickness);
156 
157  falpha=45.0*CLHEP::deg;
158  fd=fRadYDim/std::sin(falpha);//std::sqrt(2.0)*fRadYDim;
159  vecA1=-fd*std::cos(falpha)*CLHEP::Hep3Vector(0.0,1.0,0.0);
160  vecA2=+0.5*fd*std::sqrt(2.0)*(CLHEP::HepRotationZ(+(45*CLHEP::deg-falpha))*CLHEP::Hep3Vector(0.0,1.0,0.0)).unit();
161  vecX=vecA1+vecA2;
162  vecCutShift=CLHEP::Hep3Vector(-0.5*fElbowXDim,0.5*fRadYDim,0.0)+CLHEP::Hep3Vector(vecX);
163  Rot2.rotateZ(-falpha);
164 
165  pSolAux=new GeoBox(0.5*fd,0.5*fd,0.5*BarDims.fLBarThickness+SLIMCUT);
166  TransCut=HepGeom::Transform3D(Rot2,vecCutShift);
167  pMoveCut=new GeoShapeShift(pSolAux, Amg::CLHEPTransformToEigen(TransCut));
168  pSolVolume=new GeoShapeSubtraction(pSolVolume, pMoveCut);
169 
170  sprintf(szlabel,"%s_Q%i_LogRadiator[%i]",pszStationName,nQuarticID,nBarID);
171  GeoLogVol* pLogRadiator=new GeoLogVol(szlabel,pSolVolume,m_MapMaterials[std::string("Quartz")]);
172  GeoOpticalPhysVol* pPhysRadiator=new GeoOpticalPhysVol(pLogRadiator);
173  sprintf(szlabel,"%s_Q%i_Radiator[%i]",pszStationName,nQuarticID,nBarID);
174  pPhysMotherVolume->add(new GeoNameTag(szlabel));
175  pPhysMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(TotTransform)));
176  pPhysMotherVolume->add(pPhysRadiator);
177  sprintf(szlabel,"%s_Q%i_RadiatorElbowSurface[%i]",pszStationName,nQuarticID,nBarID);
178  bsContainer->push_back(GeoBorderSurface(szlabel, pPhysRadiator, pPhysMotherVolume, m_pReflectionOptSurface));
179 
180  //Radiator
181  double fRadLength=BarDims.fRadLength-(BarDims.fLGuideWidth-fTaperOffset);
182  TotTransform=TransInMotherVolume*HepGeom::Translate3D( fX1Pos-0.5*BarDims.fLGuideWidth+fElbowXDim+fTaperOffset+0.5*fRadLength,
183  BarDims.fLGuideLength+0.5*fRadYDim,
184  fX2Pos);
185  pSolVolume=new GeoBox(0.5*fRadLength,0.5*fRadYDim,0.5*BarDims.fLBarThickness);
186 
187  if(TofCfg.bApplyBottomCut){
188  falpha = TofCfg.fAlpha;
189  fd = BarDims.fLBarThickness/std::sin(falpha);
190  vecA1 = -fd*std::cos(falpha)*CLHEP::Hep3Vector(1.0,0.0,0.0);
191  vecA2 = 0.5*fd*std::sqrt(2.0)*(CLHEP::HepRotationY(-(45*CLHEP::deg-falpha))*CLHEP::Hep3Vector(1.0,0.0,0.0)).unit();
192  vecX = vecA1 + vecA2;
193  vecCutShift = CLHEP::Hep3Vector(0.5*fRadLength,0.0,0.5*BarDims.fLBarThickness) + CLHEP::Hep3Vector(vecX);
194  Rot3.rotateY(falpha);
195 
196  pSolAux=new GeoBox(0.5*fd,0.5*fRadYDim+SLIMCUT,0.5*fd);
197  TransCut=HepGeom::Transform3D(Rot3,vecCutShift);
198  pMoveCut=new GeoShapeShift(pSolAux, Amg::CLHEPTransformToEigen(TransCut));
199  pSolVolume=new GeoShapeSubtraction(pSolVolume, pMoveCut);
200  }
201 
202  sprintf(szlabel,"%s_Q%i_LogRadiator[%i]",pszStationName,nQuarticID,nBarID);
203  pLogRadiator=new GeoLogVol(szlabel,pSolVolume,m_MapMaterials[std::string("Quartz")]);
204  pPhysRadiator=new GeoOpticalPhysVol(pLogRadiator);
205  sprintf(szlabel,"%s_Q%i_Radiator[%i]",pszStationName,nQuarticID,nBarID);
206  pPhysMotherVolume->add(new GeoNameTag(szlabel));
207  pPhysMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(TotTransform)));
208  pPhysMotherVolume->add(pPhysRadiator);
209  sprintf(szlabel,"%s_Q%i_RadiatorSurface[%i]",pszStationName,nQuarticID,nBarID);
210  bsContainer->push_back(GeoBorderSurface(szlabel, pPhysRadiator, pPhysMotherVolume, m_pOpticalSurface));
211 }
212 
213 
214 void AFP_GeoModelFactory::addLBarSensorSeparationWindow(const char* pszStationName, const int nQuarticID, GeoOpticalPhysVol* pPhysMotherVolume,
215  HepGeom::Transform3D &TransInMotherVolume, GeoBorderSurfaceContainer* bsContainer)
216 {
217  int nPixelID;
218  char szlabel[64];
219  double fX1Pos_1, fX2Pos_1, fX1Pos_2, fX2Pos_2;
220  HepGeom::Transform3D TotTransform;
221 
222  eAFPStation eStation=m_pGeometry->parseStationName(pszStationName);
223  AFP_TDCONFIGURATION TofCfg=m_CfgParams.tdcfg[eStation];
224  double fSensor2BarDistance=(TofCfg.bEmulateImmersion)? 0.0:AFP_CONSTANTS::ToF_Sensor2BarDist;
225 
227 
228  nPixelID=10*( TofCfg.nX1PixCnt/2-1 +1)+( TofCfg.nX1PixCnt/2-1 +1);
229  m_pGeometry->getPixelLocalPosition(eStation,nPixelID,&fX1Pos_1,&fX2Pos_1);
230  nPixelID=10*( TofCfg.nX1PixCnt/2 +1)+( TofCfg.nX1PixCnt/2 +1);
231  m_pGeometry->getPixelLocalPosition(eStation,nPixelID,&fX1Pos_2,&fX2Pos_2);
232 
233  sprintf(szlabel,"%s_Q%i_LogLBarSensorSeparationWindow",pszStationName,nQuarticID);
234  TotTransform=TransInMotherVolume*HepGeom::Translate3D(0.5*(fX1Pos_1+fX1Pos_2),-0.5*AFP_CONSTANTS::ToF_SeparationWindowThickness-fSensor2BarDistance,0.5*(fX2Pos_1+fX2Pos_2))*HepGeom::RotateX3D(90.0*CLHEP::deg);
235  GeoLogVol* pLogWindow=new GeoLogVol(szlabel,pSolWindow,m_MapMaterials["Quartz"]);
236  GeoOpticalPhysVol* pPhysWindow=new GeoOpticalPhysVol(pLogWindow);
237  sprintf(szlabel,"%s_Q%i_LBarSensorSeparationWindow",pszStationName,nQuarticID);
238  pPhysMotherVolume->add(new GeoNameTag(szlabel));
239  pPhysMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(TotTransform)));
240  pPhysMotherVolume->add(pPhysWindow);
241  sprintf(szlabel,"%s_Q%i_WindowSurface",pszStationName,nQuarticID);
242  bsContainer->push_back(GeoBorderSurface(szlabel, pPhysWindow, pPhysMotherVolume, m_pOpticalSurface));
243 
244  pPhysWindow=nullptr;
245 
246 }
247 
248 
249 
250 void AFP_GeoModelFactory::addSensor(const char* pszStationName, const int nQuarticID, GeoOpticalPhysVol* pPhysMotherVolume,
251  HepGeom::Transform3D &TransInMotherVolume, GeoBorderSurfaceContainer* bsContainer)
252 {
253  int i,j,nPixelID;
254  char szlabel[64];
255  double fX1Pos, fX2Pos;
256  HepGeom::Transform3D TotTransform;
257 
258  eAFPStation eStation=m_pGeometry->parseStationName(pszStationName);
259  AFP_TDCONFIGURATION TofCfg=m_CfgParams.tdcfg[eStation];
260  double fSensor2BarDistance=(TofCfg.bEmulateImmersion)? 0.0:AFP_CONSTANTS::ToF_Sensor2BarDist;
262  {
263  fSensor2BarDistance += AFP_CONSTANTS::ToF_SeparationWindowThickness;
264  }
265 
266  GeoBox* pSolSensor=new GeoBox(0.5*TofCfg.fPixelX1Dim,0.5*AFP_CONSTANTS::ToF_SensorThickness,0.5*TofCfg.fPixelX2Dim);
267 
268  for(i=0;i<TofCfg.nX1PixCnt;i++)
269  {
270  for(j=0;j<TofCfg.nX2PixCnt;j++)
271  {
272  nPixelID=10*(i+1)+(j+1);
273  m_pGeometry->getPixelLocalPosition(eStation,nPixelID,&fX1Pos,&fX2Pos);
274 
275  sprintf(szlabel,"%s_Q%i_LogTDSensor[%i]",pszStationName,nQuarticID,nPixelID);
276  TotTransform=TransInMotherVolume*HepGeom::Translate3D(fX1Pos,-0.5*AFP_CONSTANTS::ToF_SensorThickness-fSensor2BarDistance,fX2Pos);
277  GeoLogVol* pLogSensor=new GeoLogVol(szlabel,pSolSensor,m_MapMaterials["SiliconPMT"]);
278  GeoOpticalPhysVol* pPhysSensor=new GeoOpticalPhysVol(pLogSensor);
279  sprintf(szlabel,"%s_Q%i_TDSensor[%i]",pszStationName,nQuarticID,nPixelID);
280  pPhysMotherVolume->add(new GeoNameTag(szlabel));
281  pPhysMotherVolume->add(new GeoTransform(Amg::CLHEPTransformToEigen(TotTransform)));
282  pPhysMotherVolume->add(pPhysSensor);
283  sprintf(szlabel,"%s_Q%i_SensorSurface[%i]",pszStationName,nQuarticID,nPixelID);
284  bsContainer->push_back(GeoBorderSurface(szlabel, pPhysSensor, pPhysMotherVolume, m_pOpticalSurface));
285 
286  pPhysSensor=nullptr;
287  }
288  }
289 
290 }
GeoOpticalPhysVol
Ensure that the extensions for the Vector3D are properly loaded.
Definition: GeoOpticalPhysVol.h:14
GeoOpticalSurface.h
GeoOpticalSurface::dielectric_metal
@ dielectric_metal
Definition: GeoOpticalSurface.h:24
AFP_TDCONFIGURATION::nX2PixCnt
int nX2PixCnt
Definition: AFP_ConfigParams.h:85
GeoOpticalSurface::dielectric_dielectric
@ dielectric_dielectric
Definition: GeoOpticalSurface.h:25
GeoOpticalSurface::SetMaterialPropertiesTable
void SetMaterialPropertiesTable(GeoMaterialPropertiesTable *mpt)
Definition: GeoOpticalSurface.h:62
GeoMaterialPropertiesTable::AddProperty
void AddProperty(const char *key, double *PhotonMomenta, double *PropertyValues, int NumEntries)
Definition: GeoMaterialPropertiesTable.cxx:31
AFP_GeoModelFactory::addTimingDetector
StatusCode addTimingDetector(const char *pszStationName, GeoOpticalPhysVol *pPhysMotherVol, HepGeom::Transform3D &TransInMotherVolume, GeoBorderSurfaceContainer *bsContainer)
Definition: AFP_GeoModelTD.cxx:62
AFP_constants.h
AFP_TDCONFIGURATION
Definition: AFP_ConfigParams.h:81
AFP_CONSTANTS::ToF_SeparationWindowThickness
static constexpr double ToF_SeparationWindowThickness
Definition: AFP_constants.h:79
GeoOpticalPhysVol.h
deg
#define deg
Definition: SbPolyhedron.cxx:17
AFP_CONSTANTS::ToF_SensorThickness
static constexpr double ToF_SensorThickness
Definition: AFP_constants.h:84
AFPTOF_LBARDIMENSIONS::fLBarThickness
double fLBarThickness
Definition: AFP_ConfigParams.h:70
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
GeoModelTool.h
AFP_GeoModelFactory::addSepRadLBar
void addSepRadLBar(const char *pszStationName, const int nQuarticID, const int nBarID, GeoOpticalPhysVol *pPhysMotherVolume, HepGeom::Transform3D &TransInMotherVolume, GeoBorderSurfaceContainer *bsContainer)
Definition: AFP_GeoModelTD.cxx:95
AFP_GeoModelFactory.h
GeoBorderSurfaceContainer.h
AFP_GeoModelFactory::m_CfgParams
AFP_CONFIGURATION m_CfgParams
Definition: AFP_GeoModelFactory.h:59
AFP_CONSTANTS::ToF_Sensor2BarDist
static constexpr double ToF_Sensor2BarDist
Definition: AFP_constants.h:71
AFP_GeoModelFactory::addLBarSensorSeparationWindow
void addLBarSensorSeparationWindow(const char *pszStationName, const int nQuarticID, GeoOpticalPhysVol *pPhysMotherVolume, HepGeom::Transform3D &TransInMotherVolume, GeoBorderSurfaceContainer *bsContainer)
Definition: AFP_GeoModelTD.cxx:214
AFP_TDCONFIGURATION::bEmulateImmersion
bool bEmulateImmersion
Definition: AFP_ConfigParams.h:89
AFP_GeoModelFactory::m_pGeometry
AFP_Geometry * m_pGeometry
Definition: AFP_GeoModelFactory.h:60
AFP_GeoModelFactory::m_pOpticalSurface
GeoOpticalSurface * m_pOpticalSurface
Definition: AFP_GeoModelFactory.h:69
AFP_TDCONFIGURATION::bApplyBottomCut
bool bApplyBottomCut
Definition: AFP_ConfigParams.h:88
lumiFormat.i
int i
Definition: lumiFormat.py:85
GeoBorderSurface
Definition: GeoBorderSurface.h:18
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AFP_CONFIGURATION::tdcfg
std::map< eAFPStation, AFP_TDCONFIGURATION > tdcfg
Definition: AFP_ConfigParams.h:137
AFP_GeoModelFactory::addSensor
void addSensor(const char *pszStationName, const int nQuarticID, GeoOpticalPhysVol *pPhysMotherVolume, HepGeom::Transform3D &TransInMotherVolume, GeoBorderSurfaceContainer *bsContainer)
Definition: AFP_GeoModelTD.cxx:250
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
GeoOpticalSurface::unified
@ unified
Definition: GeoOpticalSurface.h:43
SLIMCUT
#define SLIMCUT
Definition: AFP_GeoModelFactory.h:15
AFPTOF_LBARDIMENSIONS::fLGuideLength
double fLGuideLength
Definition: AFP_ConfigParams.h:74
GeoOpticalSurface
Ensure that the extensions for the Vector3D are properly loaded.
Definition: GeoOpticalSurface.h:19
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
AFP_Geometry::parseStationName
eAFPStation parseStationName(const char *pszStationName) const
Definition: AFP_Geometry.cxx:214
AFP_CONSTANTS::ToF_SeparationWindowDiameter
static constexpr double ToF_SeparationWindowDiameter
Definition: AFP_constants.h:78
AFP_Geometry::getPixelLocalPosition
void getPixelLocalPosition(const eAFPStation eStation, const int nPixelID, double *pfX1Pos, double *pfX2Pos) const
Definition: AFP_Geometry.cxx:264
AFP_TDCONFIGURATION::mapTrainInfo
std::map< int, AFPTOF_TRAININFO > mapTrainInfo
Definition: AFP_ConfigParams.h:95
eAFPStation
eAFPStation
Definition: AFP_ConfigParams.h:18
CLHEPtoEigenConverter.h
ReadFromCoolCompare.fd
fd
Definition: ReadFromCoolCompare.py:196
AFP_GeoModelFactory::initializeTDParameters
void initializeTDParameters()
Definition: AFP_GeoModelTD.cxx:49
python.SystemOfUnits.eV
int eV
Definition: SystemOfUnits.py:155
StoredMaterialManager.h
AFP_GeoModelFactory::m_pReflectionOptSurface
GeoOpticalSurface * m_pReflectionOptSurface
Definition: AFP_GeoModelFactory.h:70
AFPTOF_LBARDIMENSIONS
Definition: AFP_ConfigParams.h:61
GeoMaterialPropertiesTable.h
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
AFP_TDCONFIGURATION::nX1PixCnt
int nX1PixCnt
Definition: AFP_ConfigParams.h:84
AFP_GeoModelFactory::m_addSeparationWindow
const bool m_addSeparationWindow
Definition: AFP_GeoModelFactory.h:61
AFP_TDCONFIGURATION::mapBarDims
std::map< int, AFPTOF_LBARDIMENSIONS > mapBarDims
Definition: AFP_ConfigParams.h:94
GeoBorderSurfaceContainer
std::vector< GeoBorderSurface > GeoBorderSurfaceContainer
Definition: GeoBorderSurfaceContainer.h:12
Amg::CLHEPTransformToEigen
Amg::Transform3D CLHEPTransformToEigen(const HepGeom::Transform3D &CLHEPtransf)
Converts a CLHEP-based HepGeom::Transform3D into an Eigen Amg::Transform3D.
Definition: CLHEPtoEigenConverter.h:38
AFPTOF_LBARDIMENSIONS::fRadYDim
double fRadYDim
Definition: AFP_ConfigParams.h:72
unit
const PlainObject unit() const
This is a plugin that makes Eigen look like CLHEP & defines some convenience methods.
Definition: AmgMatrixBasePlugin.h:21
AFP_TDCONFIGURATION::fPixelX1Dim
double fPixelX1Dim
Definition: AFP_ConfigParams.h:86
AFP_TDCONFIGURATION::fPixelX2Dim
double fPixelX2Dim
Definition: AFP_ConfigParams.h:87
AFPTOF_LBARDIMENSIONS::nTrainID
int nTrainID
Definition: AFP_ConfigParams.h:69
AFPTOF_LBARDIMENSIONS::fLGuideWidth
double fLGuideWidth
Definition: AFP_ConfigParams.h:73
GeoMaterialPropertiesTable
Definition: GeoMaterialPropertiesTable.h:20
AFPTOF_LBARDIMENSIONS::fRadLength
double fRadLength
Definition: AFP_ConfigParams.h:71
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
GeoOpticalSurface::polished
@ polished
Definition: GeoOpticalSurface.h:32
AFP_GeoModelFactory::m_MapMaterials
std::map< std::string, GeoRef< const GeoMaterial > > m_MapMaterials
Definition: AFP_GeoModelFactory.h:44
StoreGateSvc.h
AFP_TDCONFIGURATION::fAlpha
double fAlpha
Definition: AFP_ConfigParams.h:83