ATLAS Offline Software
ActsSurfaceMappingTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ACTSGEOMETRY_ACTSSURFACEMAPPINGTOOL_H
6 #define ACTSGEOMETRY_ACTSSURFACEMAPPINGTOOL_H
7 
8 // ATHENA
10 #include "GaudiKernel/IInterface.h"
11 #include "GaudiKernel/ServiceHandle.h"
12 #include "Gaudi/Property.h"
13 #include "GaudiKernel/EventContext.h"
14 
15 // PACKAGE
18 
19 // ACTS
20 #include "Acts/Material/SurfaceMaterialMapper.hpp"
21 
22 // BOOST
23 #include <cmath>
24 
25 class ActsSurfaceMappingTool : public extends<AthAlgTool, IActsSurfaceMappingTool>
26 {
27 
28 public:
29  virtual StatusCode initialize() override;
30 
31  ActsSurfaceMappingTool(const std::string& type, const std::string& name,
32  const IInterface* parent);
33 
34  virtual
35  std::shared_ptr<Acts::SurfaceMaterialMapper>
36  mapper() const override
37  {
38  return m_mapper;
39  };
40 
41  virtual
42  Acts::SurfaceMaterialMapper::State
43  mappingState() const override;
44 
45  virtual
47  trackingGeometryTool() const override
48  {
49  return m_trackingGeometryTool.get();
50  }
51 
52 
53 private:
54  // Straight line stepper
55  Acts::MagneticFieldContext m_magFieldContext;
57  using SlStepper = Acts::StraightLineStepper;
58  using StraightLinePropagator = Acts::Propagator<SlStepper, Acts::Navigator>;
59  ToolHandle<IActsTrackingGeometryTool> m_trackingGeometryTool{this, "TrackingGeometryTool", "ActsTrackingGeometryTool"};
60  std::shared_ptr<Acts::SurfaceMaterialMapper> m_mapper;
61  std::shared_ptr<const Acts::TrackingGeometry> m_trackingGeometry;
62 };
63 
64 
65 
66 #endif
IActsSurfaceMappingTool.h
ActsSurfaceMappingTool::SlStepper
Acts::StraightLineStepper SlStepper
Definition: ActsSurfaceMappingTool.h:57
ActsSurfaceMappingTool::StraightLinePropagator
Acts::Propagator< SlStepper, Acts::Navigator > StraightLinePropagator
Definition: ActsSurfaceMappingTool.h:58
ActsSurfaceMappingTool::m_magFieldContext
Acts::MagneticFieldContext m_magFieldContext
Definition: ActsSurfaceMappingTool.h:55
ActsSurfaceMappingTool::m_mapper
std::shared_ptr< Acts::SurfaceMaterialMapper > m_mapper
Definition: ActsSurfaceMappingTool.h:60
ActsSurfaceMappingTool::ActsSurfaceMappingTool
ActsSurfaceMappingTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: ActsSurfaceMappingTool.cxx:26
IActsTrackingGeometryTool
Definition: IActsTrackingGeometryTool.h:18
ActsSurfaceMappingTool::m_trackingGeometryTool
ToolHandle< IActsTrackingGeometryTool > m_trackingGeometryTool
Definition: ActsSurfaceMappingTool.h:59
ActsSurfaceMappingTool::m_trackingGeometry
std::shared_ptr< const Acts::TrackingGeometry > m_trackingGeometry
Definition: ActsSurfaceMappingTool.h:61
ActsSurfaceMappingTool::mapper
virtual std::shared_ptr< Acts::SurfaceMaterialMapper > mapper() const override
Definition: ActsSurfaceMappingTool.h:36
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ActsSurfaceMappingTool::trackingGeometryTool
virtual const IActsTrackingGeometryTool * trackingGeometryTool() const override
Definition: ActsSurfaceMappingTool.h:47
ActsSurfaceMappingTool::mappingState
virtual Acts::SurfaceMaterialMapper::State mappingState() const override
Definition: ActsSurfaceMappingTool.cxx:62
ActsSurfaceMappingTool
Definition: ActsSurfaceMappingTool.h:26
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:28
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ActsSurfaceMappingTool::m_geoContext
ActsGeometryContext m_geoContext
Definition: ActsSurfaceMappingTool.h:56
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
ActsSurfaceMappingTool::initialize
virtual StatusCode initialize() override
Definition: ActsSurfaceMappingTool.cxx:33
IActsTrackingGeometryTool.h