ATLAS Offline Software
ExtrapolationEngineTest.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // ExtrapolationEngineTest.cxx, (c) ATLAS Detector software
8 
9 // Amg includes
12 // Gaudi
13 #include "GaudiKernel/ITHistSvc.h"
14 
15 Trk::ExtrapolationEngineTest::ExtrapolationEngineTest(const std::string& name, ISvcLocator* pSvcLocator) :
16  Trk::TrkExUnitTestBase(name, pSvcLocator),
17  m_extrapolationEngine(""),
18  m_idHelper(nullptr),
19  m_pixel_ID(nullptr),
20  m_sct_ID(nullptr),
21  m_hgtd_ID(nullptr),
22  m_useHGTD(false),
23  m_parametersMode(1),
24  m_particleHypothesis(2),
25  m_smearProductionVertex(false),
26  m_smearFlatOriginT(false),
27  m_smearFlatOriginZ(false),
28  m_sigmaOriginT(0.),
29  m_sigmaOriginZ(0.),
30  m_d0Min(0.),
31  m_d0Max(0.),
32  m_z0Min(0.),
33  m_z0Max(0.),
34  m_etaMin(-3.),
35  m_etaMax(3.),
36  m_phiMin(-M_PI),
37  m_phiMax(M_PI),
38  m_ptMin(100.),
39  m_ptMax(100000.),
40  m_pathLimit(10e10),
41  m_collectSensitive(false),
42  m_collectPassive(false),
43  m_collectBoundary(false),
44  m_collectMaterial(false),
45  m_backExtrapolation(false),
46  m_stepwiseExtrapolation(false),
47  m_stepsPhi(1),
48  m_currentPhiStep(0),
49  m_currentEta(0.),
50  m_currentPhi(0.),
51  m_splitCharge(false),
52  m_writeTTree(true),
53  m_treeName("ExtrapolationEngineTest"),
54  m_treeFolder("/val/"),
55  m_treeDescription("ExtrapolationEngine test setup"),
56  m_charge(-1.0),
57  m_backPhi(0.),
58  m_backTheta(0.),
59  m_backEta(0.),
60  m_backP(0.),
61  m_backPt(0.),
62  m_sensitiveLayerIndex(nullptr),
63  m_sensitiveLocalPosX(nullptr),
64  m_sensitiveLocalPosY(nullptr),
65  m_sensitiveCenterPosX(nullptr),
66  m_sensitiveCenterPosY(nullptr),
67  m_sensitiveCenterPosZ(nullptr),
68  m_sensitiveCenterPosR(nullptr),
69  m_sensitiveCenterPosPhi(nullptr),
70  m_materialThicknessInX0(0.),
71  m_materialThicknessInL0(0.),
72  m_materialThicknessZARho(0.),
73  m_materialEmulatedIonizationLoss(0.),
74  m_materialThicknessInX0Bwd(0.),
75  m_materialThicknessInL0Bwd(0.),
76  m_materialThicknessInX0Sensitive(0.),
77  m_materialThicknessInX0Passive(0.),
78  m_materialThicknessInX0Boundary(0.),
79  m_materialThicknessInX0Cylinder(0.),
80  m_materialThicknessInX0Disc(0.),
81  m_materialThicknessInX0Plane(0.),
82  m_materialThicknessInX0Accumulated(nullptr),
83  m_materialThicknessInX0Steps(nullptr),
84  m_materialThicknessInL0Steps(nullptr),
85  m_materialPositionX(nullptr),
86  m_materialPositionY(nullptr),
87  m_materialPositionZ(nullptr),
88  m_materialPositionR(nullptr),
89  m_materialPositionP(nullptr),
90  m_materialPositionPt(nullptr),
91  m_materialScaling(nullptr),
92  m_stepDirection(nullptr),
93  m_endStepSuccessful(0),
94  m_endStepPositionX(0.),
95  m_endStepPositionY(0.),
96  m_endStepPositionZ(0.),
97  m_endStepPositionR(0.),
98  m_endStepPhi(0.),
99  m_endStepTheta(0.),
100  m_endStepEta(0.),
101  m_endStepP(0.),
102  m_endStepPt(0.),
103  m_endStepPathLength(0.),
104  m_endStepThicknessInX0(0.) {
105  // the extrapolation engine
106  declareProperty("ExtrapolationEngine", m_extrapolationEngine);
107  // validation ttree for writing
108  declareProperty("PositionMomentumWriter", m_posmomWriter);
109  // charged / neutral & other stuff
110  declareProperty("ParametersMode", m_parametersMode);
111  declareProperty("ParticleHypothesis", m_particleHypothesis);
112  declareProperty("BackExtrapolation", m_backExtrapolation);
113  declareProperty("StepwiseExtrapolation", m_stepwiseExtrapolation);
114  // configuration
115  declareProperty("PathLimit", m_pathLimit);
116  declareProperty("CollectSensitive", m_collectSensitive);
117  declareProperty("CollectPassive", m_collectPassive);
118  declareProperty("CollectBoundary", m_collectBoundary);
119  declareProperty("CollectMaterial", m_collectMaterial);
120  declareProperty("UseHGTD", m_useHGTD);
121  // Mode for scanning in steps
122  declareProperty("ScanMode", m_scanMode);
123  declareProperty("EtaScans", m_etaScans);
124  declareProperty("PhiSteps", m_stepsPhi);
125  declareProperty("PhiScans", m_phiScans);
126  declareProperty("SplitCharge", m_splitCharge);
127  // production vertices
129  declareProperty("SmearFlatOriginD0", m_smearFlatOriginT);
130  declareProperty("SmearFlatOriginZ0", m_smearFlatOriginZ);
131  declareProperty("SimgaOriginD0", m_sigmaOriginT);
132  declareProperty("SimgaOriginZ0", m_sigmaOriginZ);
133  // d0 min / max values for flat smearing
134  declareProperty("D0Min", m_d0Min);
135  declareProperty("D0Max", m_d0Max);
136  // z0 min / max values for flat smearing
137  declareProperty("Z0Min", m_z0Min);
138  declareProperty("Z0Max", m_z0Max);
139  declareProperty("Z0Values", m_z0Values);
140  // eta min / max values
141  declareProperty("EtaMin", m_etaMin);
142  declareProperty("EtaMax", m_etaMax);
143  // phi min / max values
144  declareProperty("PhiMin", m_phiMin);
145  declareProperty("PhiMax", m_phiMax);
146  // pt min / max values
147  declareProperty("PtMin", m_ptMin);
148  declareProperty("PtMax", m_ptMax);
149  // the properties
150  declareProperty("NumTestsPerEvent", m_numTests = 100);
151  declareProperty("WriteTTree", m_writeTTree);
152  declareProperty("TreeName", m_treeName);
153  declareProperty("TreeFolder", m_treeFolder);
154  declareProperty("TreeDescription", m_treeDescription);
155 }
156 
158  // memory clean up
159  for (size_t ip = 0; ip < m_parameterNames.size(); ++ip) {
160  // create
161  delete m_pPositionX[ip];
162  delete m_pPositionY[ip];
163  delete m_pPositionZ[ip];
164  delete m_pPositionR[ip];
165  delete m_pPhi[ip];
166  delete m_pTheta[ip];
167  delete m_pEta[ip];
168  delete m_pP[ip];
169  delete m_pPt[ip];
170  }
171  delete m_sensitiveLayerIndex;
172  delete m_sensitiveSurfaceType;
173  delete m_sensitiveCenterPosX;
174  delete m_sensitiveCenterPosY;
175  delete m_sensitiveCenterPosZ;
176  delete m_sensitiveCenterPosR;
177  delete m_sensitiveCenterPosPhi;
178  delete m_sensitiveLocalPosX;
179  delete m_sensitiveLocalPosY;
180  delete m_sensitiveLocalPosR;
181  delete m_sensitiveLocalPosPhi;
182  delete m_sensitiveDetector;
183  delete m_sensitiveIsInnermost;
184  delete m_sensitiveIsNextToInnermost;
185  delete m_sensitiveBarrelEndcap;
186  delete m_sensitiveLayerDisc;
187  delete m_sensitiveEtaModule;
188  delete m_sensitivePhiModule;
189  delete m_sensitiveSide;
190  delete m_sensitiveNearBondGap;
191  delete m_sensitiveisInside;
192  delete m_sensitiveisInsideBound;
193  delete m_materialtInX0AccumulatedUpTo;
194  delete m_materialThicknessInX0Accumulated;
195  delete m_materialThicknessInX0Steps;
196  delete m_materialThicknessInL0Steps;
197  delete m_materialPositionX;
198  delete m_materialPositionY;
199  delete m_materialPositionZ;
200  delete m_materialPositionR;
201  delete m_materialPositionP;
202  delete m_materialPositionPt;
203  delete m_materialScaling;
204  delete m_stepDirection;
205 
206  return StatusCode::SUCCESS;
207 }
208 
210  if (m_extrapolationEngine.retrieve().isFailure()) {
211  ATH_MSG_FATAL("Could not retrieve ExtrapolationEngine.");
212  return StatusCode::FAILURE;
213  } else ATH_MSG_INFO("Successfully retrieved ExtrapolationEngine.");
214 
215  if (!m_posmomWriter.empty() && m_posmomWriter.retrieve().isFailure()) {
216  ATH_MSG_FATAL("Could not retrieve position/momentum writer.");
217  return StatusCode::FAILURE;
218  } else ATH_MSG_INFO("Successfully retrieved ExtrapolationEngine.");
219 
220  //ID Helper
221  if (detStore()->retrieve(m_idHelper, "AtlasID" ).isFailure()) {
222  ATH_MSG_ERROR ( "Could not get ATLAS ID helper" );
223  return StatusCode::FAILURE;
224  } else
225  ATH_MSG_INFO("Successfully retrieved ATLAS ID Helper.");
226 
227  if (detStore()->retrieve(m_pixel_ID, "PixelID").isFailure()) {
228  ATH_MSG_ERROR ( "Could not get Pixel ID helper" );
229  return StatusCode::FAILURE;
230  } else
231  ATH_MSG_INFO("Successfully retrieved Pixel ID Helper.");
232 
233  if (detStore()->retrieve(m_sct_ID, "SCT_ID").isFailure()) {
234  ATH_MSG_ERROR ( "Could not get SCT ID helper" );
235  return StatusCode::FAILURE;
236  } else
237  ATH_MSG_INFO("Successfully retrieved SCT ID Helper.");
238 
239  if (m_useHGTD) {
240  if (detStore()->retrieve(m_hgtd_ID, "HGTD_ID").isFailure()) {
241  ATH_MSG_ERROR ( "Could not get HGTD ID helper" );
242  return StatusCode::FAILURE;
243  } else
244  ATH_MSG_INFO("Successfully retrieved HGTD ID Helper.");
245  }
246  // success return
247  return StatusCode::SUCCESS;
248 }
249 
251  ATH_MSG_VERBOSE("Booking the Extrapolation test Tree.");
252 
253  // ------------------------------> OUTPUT NTUPLE (geometry validation)
254  m_tree = new TTree(m_treeName.c_str(), m_treeDescription.c_str());
255  // add the Branches
256  m_tree->Branch("StartPosX", &m_startPositionX);
257  m_tree->Branch("StartPosY", &m_startPositionY);
258  m_tree->Branch("StartPosZ", &m_startPositionZ);
259  m_tree->Branch("StartPosR", &m_startPositionR);
260  m_tree->Branch("StartPhi", &m_startPhi);
261  m_tree->Branch("StartEta", &m_startEta);
262  m_tree->Branch("StartTheta", &m_startTheta);
263  m_tree->Branch("StartP", &m_startP);
264  m_tree->Branch("StartPt", &m_startPt);
265  if (m_parametersMode) m_tree->Branch("StartCharge", &m_charge);
266 
267  m_tree->Branch("EndSuccessful", &m_endSuccessful);
268  m_tree->Branch("EndPosX", &m_endPositionX);
269  m_tree->Branch("EndPosY", &m_endPositionY);
270  m_tree->Branch("EndPosZ", &m_endPositionZ);
271  m_tree->Branch("EndPosR", &m_endPositionR);
272  m_tree->Branch("EndPhi", &m_endPhi);
273  m_tree->Branch("EndEta", &m_endEta);
274  m_tree->Branch("EndTheta", &m_endTheta);
275  m_tree->Branch("EndP", &m_endP);
276  m_tree->Branch("EndPt", &m_endPt);
277  // also add the path length
278  m_tree->Branch("EndPathLength", &m_endPathLength);
279 
280  if (m_backExtrapolation) {
281  m_tree->Branch("BackSuccessful", &m_backSuccessful);
282  m_tree->Branch("BackPosX", &m_backPositionX);
283  m_tree->Branch("BackPosY", &m_backPositionY);
284  m_tree->Branch("BackPosZ", &m_backPositionZ);
285  m_tree->Branch("BackPosR", &m_backPositionR);
286  m_tree->Branch("BackPhi", &m_backPhi);
287  m_tree->Branch("BackEta", &m_backEta);
288  m_tree->Branch("BackTheta", &m_backTheta);
289  m_tree->Branch("BackP", &m_backP);
290  m_tree->Branch("BackPt", &m_backPt);
291  }
292 
293  // this fixes the parameters to order
294  m_parameterNames.emplace_back("Sensitive");
295  m_parameterNames.emplace_back("Passive");
296  m_parameterNames.emplace_back("Boundary");
297  for (size_t ip = 0; ip < m_parameterNames.size(); ++ip) {
298  // create
299  m_pPositionX.push_back(new std::vector<float> );
300  m_pPositionY.push_back(new std::vector<float> );
301  m_pPositionZ.push_back(new std::vector<float> );
302  m_pPositionR.push_back(new std::vector<float> );
303  m_pPhi.push_back(new std::vector<float> );
304  m_pTheta.push_back(new std::vector<float> );
305  m_pEta.push_back(new std::vector<float> );
306  m_pP.push_back(new std::vector<float> );
307  m_pPt.push_back(new std::vector<float> );
308 
309  // define the branches
310  m_tree->Branch(m_parameterNames[ip] + "PosX", m_pPositionX[ip]);
311  m_tree->Branch(m_parameterNames[ip] + "PosY", m_pPositionY[ip]);
312  m_tree->Branch(m_parameterNames[ip] + "PosZ", m_pPositionZ[ip]);
313  m_tree->Branch(m_parameterNames[ip] + "PosR", m_pPositionR[ip]);
314  m_tree->Branch(m_parameterNames[ip] + "Phi", m_pPhi[ip]);
315  m_tree->Branch(m_parameterNames[ip] + "Eta", m_pTheta[ip]);
316  m_tree->Branch(m_parameterNames[ip] + "Theta", m_pEta[ip]);
317  m_tree->Branch(m_parameterNames[ip] + "P", m_pP[ip]);
318  m_tree->Branch(m_parameterNames[ip] + "Pt", m_pPt[ip]);
319  }
320 
321  if (m_collectSensitive) {
322  m_sensitiveLayerIndex = new std::vector< int >;
323  m_sensitiveSurfaceType = new std::vector< int >;
324  m_sensitiveCenterPosX = new std::vector< float >;
325  m_sensitiveCenterPosY = new std::vector< float >;
326  m_sensitiveCenterPosZ = new std::vector< float >;
327  m_sensitiveCenterPosR = new std::vector< float >;
328  m_sensitiveCenterPosPhi = new std::vector< float >;
329  m_sensitiveLocalPosX = new std::vector< float >;
330  m_sensitiveLocalPosY = new std::vector< float >;
331  m_sensitiveLocalPosR = new std::vector< float >;
332  m_sensitiveLocalPosPhi = new std::vector< float >;
333  m_sensitiveDetector = new std::vector< int >;
334  m_sensitiveIsInnermost = new std::vector< int >;
335  m_sensitiveIsNextToInnermost = new std::vector< int >;
336  m_sensitiveBarrelEndcap = new std::vector< int >;
337  m_sensitiveLayerDisc = new std::vector< int >;
338  m_sensitiveEtaModule = new std::vector< int >;
339  m_sensitivePhiModule = new std::vector< int >;
340  m_sensitiveSide = new std::vector< int >;
341  m_sensitiveNearBondGap = new std::vector< int >;
342  m_sensitiveisInside = new std::vector< int >;
343  m_sensitiveisInsideBound = new std::vector< int >;
344  m_materialtInX0AccumulatedUpTo = new std::vector< float >;
345 
346  m_tree->Branch("SensitiveLayerIndex" , m_sensitiveLayerIndex);
347  m_tree->Branch("SensitiveSurfaceType" , m_sensitiveSurfaceType);
348  m_tree->Branch("SensitiveCenterPosX" , m_sensitiveCenterPosX);
349  m_tree->Branch("SensitiveCenterPosY" , m_sensitiveCenterPosY);
350  m_tree->Branch("SensitiveCenterPosZ" , m_sensitiveCenterPosZ);
351  m_tree->Branch("SensitiveCenterPosR" , m_sensitiveCenterPosR);
352  m_tree->Branch("SensitiveCenterPosPhi", m_sensitiveCenterPosPhi);
353  m_tree->Branch("SensitiveLocalPosX" , m_sensitiveLocalPosX);
354  m_tree->Branch("SensitiveLocalPosY" , m_sensitiveLocalPosY);
355  m_tree->Branch("SensitiveLocalPosR" , m_sensitiveLocalPosR);
356  m_tree->Branch("SensitiveLocalPosPhi" , m_sensitiveLocalPosPhi);
357  m_tree->Branch("SensitiveDetector" , m_sensitiveDetector);
358  m_tree->Branch("SensitiveIsInnermost" , m_sensitiveIsInnermost);
359  m_tree->Branch("SensitiveIsNextToInnermost" , m_sensitiveIsNextToInnermost);
360  m_tree->Branch("SensitiveBarrelEndcap", m_sensitiveBarrelEndcap);
361  m_tree->Branch("SensitiveLayerDisc" , m_sensitiveLayerDisc);
362  m_tree->Branch("SensitiveEtaModule" , m_sensitiveEtaModule);
363  m_tree->Branch("SensitivePhiModule" , m_sensitivePhiModule);
364  m_tree->Branch("SensitiveSide" , m_sensitiveSide);
365  m_tree->Branch("SensitiveNearBondGap" , m_sensitiveNearBondGap);
366  m_tree->Branch("SensitiveisInside" , m_sensitiveisInside);
367  m_tree->Branch("SensitiveisInsideBound", m_sensitiveisInsideBound);
368  m_tree->Branch("MaterialtInX0AccumulatedUpTo" , m_materialtInX0AccumulatedUpTo);
369  }
370 
371 
372  // collect the material, you need branches for this
373  if (m_collectMaterial) {
374  m_materialThicknessInX0Accumulated = new std::vector<float>;
375  m_materialThicknessInX0Steps = new std::vector<float>;
376  m_materialThicknessInL0Steps = new std::vector<float>;
377  m_materialPositionX = new std::vector<float>;
378  m_materialPositionY = new std::vector<float>;
379  m_materialPositionZ = new std::vector<float>;
380  m_materialPositionR = new std::vector<float>;
381  m_materialPositionP = new std::vector<float>;
382  m_materialPositionPt = new std::vector<float>;
383  m_materialScaling = new std::vector<float>;
384  m_stepDirection = new std::vector<int>;
385  m_tree->Branch("MaterialThicknessInX0", &m_materialThicknessInX0);
386  m_tree->Branch("MaterialThicknessInL0", &m_materialThicknessInL0);
387  m_tree->Branch("MaterialThicknessZARho", &m_materialThicknessZARho);
388  m_tree->Branch("MaterialEmulatedEloss", &m_materialEmulatedIonizationLoss);
389  m_tree->Branch("MaterialThicknessSensitiveInX0", &m_materialThicknessInX0Sensitive);
390  m_tree->Branch("MaterialThicknessPassiveInX0", &m_materialThicknessInX0Passive);
391  m_tree->Branch("MaterialThicknessBoundaryInX0", &m_materialThicknessInX0Boundary);
392  m_tree->Branch("MaterialThicknessCylinderInX0", &m_materialThicknessInX0Cylinder);
393  m_tree->Branch("MaterialThicknessDiscInX0", &m_materialThicknessInX0Disc);
394  m_tree->Branch("MaterialThicknessPlaneInX0", &m_materialThicknessInX0Plane);
395  m_tree->Branch("MaterialThicknessAccumulatedX0", m_materialThicknessInX0Accumulated);
396  m_tree->Branch("MaterialThicknessStepsInX0", m_materialThicknessInX0Steps);
397  m_tree->Branch("MaterialThicknessStepsInL0", m_materialThicknessInL0Steps);
398  m_tree->Branch("MaterialPosX", m_materialPositionX);
399  m_tree->Branch("MaterialPosY", m_materialPositionY);
400  m_tree->Branch("MaterialPosZ", m_materialPositionZ);
401  m_tree->Branch("MaterialPosR", m_materialPositionR);
402  m_tree->Branch("MaterialPosP", m_materialPositionP);
403  m_tree->Branch("MaterialPosPt", m_materialPositionPt);
404  m_tree->Branch("MaterialScaling", m_materialScaling);
405  m_tree->Branch("StepDirection", m_stepDirection);
406  }
407 
408  if (m_stepwiseExtrapolation) {
409  m_tree->Branch("EndStepSuccessful", &m_endStepSuccessful);
410  m_tree->Branch("EndStepPosX", &m_endStepPositionX);
411  m_tree->Branch("EndStepPosY", &m_endStepPositionY);
412  m_tree->Branch("EndStepPosZ", &m_endStepPositionZ);
413  m_tree->Branch("EndStepPosR", &m_endStepPositionR);
414  m_tree->Branch("EndStepPhi", &m_endStepPhi);
415  m_tree->Branch("EndStepEta", &m_endStepEta);
416  m_tree->Branch("EndStepTheta", &m_endStepTheta);
417  m_tree->Branch("EndStepP", &m_endStepP);
418  m_tree->Branch("EndStepPt", &m_endStepPt);
419  m_tree->Branch("EndStepPathLength", &m_endStepPathLength);
420  m_tree->Branch("EndStepMaterialThicknessInX0", &m_endStepThicknessInX0);
421  }
422 
423  // now register the Tree
424  SmartIF<ITHistSvc> tHistSvc{service("THistSvc")};
425  if (!tHistSvc) {
426  ATH_MSG_ERROR("initialize() Could not find Hist Service -> Switching Tree output off !");
427  delete m_tree;
428  m_tree = nullptr;
429  }
430  if (tHistSvc && ((tHistSvc->regTree(m_treeFolder + m_treeName, m_tree)).isFailure())) {
431  ATH_MSG_ERROR("initialize() Could not register the validation Tree -> Switching Tree output off !");
432  delete m_tree;
433  m_tree = nullptr;
434  }
435  return StatusCode::SUCCESS;
436 }
437 
439  ATH_MSG_VERBOSE("Running the ExtrapolationEngineTest Test in parameters mode : " << m_parametersMode);
440  if (m_parametersMode == 0) {
441  return runTestT<Trk::NeutralParameters, Trk::NeutralPerigee>();
442  }
443  return runTestT<Trk::TrackParameters, Trk::Perigee>();
444 }
445 
447  ATH_MSG_VERBOSE("Running the ExtrapolationEngineTest Test in scanning mode");
448 
449  if (m_phiScans.empty()) {
450  ATH_MSG_VERBOSE("Running in scan mode: Phi scans not given. Automatically calculated.");
451  m_currentPhi = m_phiMin + double(m_currentPhiStep + 1) * (m_phiMax - m_phiMin) / double(m_stepsPhi);
452  } else {
453  ATH_MSG_VERBOSE("Running in scan mode: Phi scans given.");
454  if (m_currentPhiStep >= int(m_phiScans.size())) m_currentPhiStep = 0;
455  m_currentPhi = m_phiScans.at(m_currentPhiStep);
456  }
457  m_currentPhiStep++;
458 
459  if (m_etaScans.empty()) {
460  ATH_MSG_ERROR("Running in scan mode without specified eta values");
461  return StatusCode::FAILURE;
462  }
463 
464  for (auto etaValue : m_etaScans) {
465  m_currentEta = etaValue;
466  ATH_MSG_VERBOSE("Running the ExtrapolationEngineTest Test in parameters mode : " << m_parametersMode);
467  if (m_parametersMode == 0) {
468  if (runTestT<Trk::NeutralParameters, Trk::NeutralPerigee>().isFailure()) return StatusCode::FAILURE;
469  }
470  if (runTestT<Trk::TrackParameters, Trk::Perigee>().isFailure()) return StatusCode::FAILURE;
471  }
472 
473  return StatusCode::SUCCESS;
474 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
Trk::ExtrapolationEngineTest::m_stepsPhi
int m_stepsPhi
scanning parameters
Definition: ExtrapolationEngineTest.h:108
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
Trk::ExtrapolationEngineTest::m_smearProductionVertex
bool m_smearProductionVertex
Definition: ExtrapolationEngineTest.h:77
Trk::ExtrapolationEngineTest::runScan
StatusCode runScan()
Definition: ExtrapolationEngineTest.cxx:446
Trk::ExtrapolationEngineTest::m_smearFlatOriginT
bool m_smearFlatOriginT
Definition: ExtrapolationEngineTest.h:78
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Trk::ExtrapolationEngineTest::m_sigmaOriginT
double m_sigmaOriginT
Definition: ExtrapolationEngineTest.h:80
Trk::ExtrapolationEngineTest::m_backExtrapolation
bool m_backExtrapolation
Definition: ExtrapolationEngineTest.h:103
MaterialProperties.h
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Trk::ExtrapolationEngineTest::m_parametersMode
bool m_parametersMode
Definition: ExtrapolationEngineTest.h:74
Trk::ExtrapolationEngineTest::bookTree
StatusCode bookTree()
Definition: ExtrapolationEngineTest.cxx:250
M_PI
#define M_PI
Definition: ActiveFraction.h:11
Trk::ExtrapolationEngineTest::m_ptMax
double m_ptMax
Definition: ExtrapolationEngineTest.h:94
ExtrapolationEngineTest.h
Trk::ExtrapolationEngineTest::m_d0Max
double m_d0Max
Definition: ExtrapolationEngineTest.h:83
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
Trk::ExtrapolationEngineTest::m_treeName
std::string m_treeName
Definition: ExtrapolationEngineTest.h:121
Trk::ExtrapolationEngineTest::m_phiMax
double m_phiMax
Definition: ExtrapolationEngineTest.h:91
Trk::ExtrapolationEngineTest::ExtrapolationEngineTest
ExtrapolationEngineTest(const std::string &name, ISvcLocator *pSvcLocator)
Standard Athena-Algorithm Constructor.
Definition: ExtrapolationEngineTest.cxx:15
Trk::ExtrapolationEngineTest::m_z0Values
std::vector< float > m_z0Values
Definition: ExtrapolationEngineTest.h:86
Trk::ExtrapolationEngineTest::m_z0Max
double m_z0Max
Definition: ExtrapolationEngineTest.h:85
Trk::ExtrapolationEngineTest::m_etaMax
double m_etaMax
Definition: ExtrapolationEngineTest.h:89
Trk::ExtrapolationEngineTest::finalize
StatusCode finalize()
Definition: ExtrapolationEngineTest.cxx:157
Trk::ExtrapolationEngineTest::m_etaScans
std::vector< float > m_etaScans
Definition: ExtrapolationEngineTest.h:110
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Trk::ExtrapolationEngineTest::m_etaMin
double m_etaMin
Definition: ExtrapolationEngineTest.h:88
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trk::ExtrapolationEngineTest::m_writeTTree
bool m_writeTTree
Definition: ExtrapolationEngineTest.h:118
Trk::ExtrapolationEngineTest::m_posmomWriter
ToolHandle< IPositionMomentumWriter > m_posmomWriter
Definition: ExtrapolationEngineTest.h:119
Trk::ExtrapolationEngineTest::m_smearFlatOriginZ
bool m_smearFlatOriginZ
Definition: ExtrapolationEngineTest.h:79
find_tgc_unfilled_channelids.ip
ip
Definition: find_tgc_unfilled_channelids.py:3
Trk::ExtrapolationEngineTest::m_stepwiseExtrapolation
bool m_stepwiseExtrapolation
Definition: ExtrapolationEngineTest.h:104
Trk::TrkExUnitTestBase::m_numTests
size_t m_numTests
number of tests
Definition: TrkExUnitTestBase.h:60
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
Trk::ExtrapolationEngineTest::m_particleHypothesis
int m_particleHypothesis
Definition: ExtrapolationEngineTest.h:75
Trk::ExtrapolationEngineTest::m_sigmaOriginZ
double m_sigmaOriginZ
Definition: ExtrapolationEngineTest.h:81
Trk::ExtrapolationEngineTest::m_collectMaterial
bool m_collectMaterial
Definition: ExtrapolationEngineTest.h:101
Trk::ExtrapolationEngineTest::m_treeDescription
std::string m_treeDescription
Definition: ExtrapolationEngineTest.h:123
python.PyKernel.detStore
detStore
Definition: PyKernel.py:41
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
Trk::ExtrapolationEngineTest::runTest
StatusCode runTest()
Definition: ExtrapolationEngineTest.cxx:438
Trk::ExtrapolationEngineTest::m_collectBoundary
bool m_collectBoundary
Definition: ExtrapolationEngineTest.h:100
Trk::ExtrapolationEngineTest::m_useHGTD
bool m_useHGTD
Definition: ExtrapolationEngineTest.h:72
Trk::ExtrapolationEngineTest::m_phiScans
std::vector< float > m_phiScans
Definition: ExtrapolationEngineTest.h:112
Trk::ExtrapolationEngineTest::initializeTest
StatusCode initializeTest()
initialize the test, i.e.
Definition: ExtrapolationEngineTest.cxx:209
Trk::ExtrapolationEngineTest::m_collectSensitive
bool m_collectSensitive
Definition: ExtrapolationEngineTest.h:98
Trk::ExtrapolationEngineTest::m_extrapolationEngine
ToolHandle< IExtrapolationEngine > m_extrapolationEngine
retrieve it
Definition: ExtrapolationEngineTest.h:66
Trk::ExtrapolationEngineTest::m_splitCharge
bool m_splitCharge
the tree
Definition: ExtrapolationEngineTest.h:114
Trk::ExtrapolationEngineTest::m_z0Min
double m_z0Min
Definition: ExtrapolationEngineTest.h:84
Trk::ExtrapolationEngineTest::m_treeFolder
std::string m_treeFolder
Definition: ExtrapolationEngineTest.h:122
Trk::TrkExUnitTestBase::m_scanMode
bool m_scanMode
enable scan mode
Definition: TrkExUnitTestBase.h:63
Trk::TrkExUnitTestBase
Definition: TrkExUnitTestBase.h:25
Trk::ExtrapolationEngineTest::m_d0Min
double m_d0Min
Definition: ExtrapolationEngineTest.h:82
Trk::ExtrapolationEngineTest::m_pathLimit
double m_pathLimit
Definition: ExtrapolationEngineTest.h:96
Trk::ExtrapolationEngineTest::m_ptMin
double m_ptMin
Definition: ExtrapolationEngineTest.h:93
Trk::ExtrapolationEngineTest::m_phiMin
double m_phiMin
Definition: ExtrapolationEngineTest.h:90
Trk::ExtrapolationEngineTest::m_collectPassive
bool m_collectPassive
Definition: ExtrapolationEngineTest.h:99