14#ifndef SiDetElementsRoadMaker_xk_H
15#define SiDetElementsRoadMaker_xk_H
29#include "GaudiKernel/ToolHandle.h"
55 @author Igor.Gavrilenko@cern.ch
60 public extends<AthAlgTool, ISiDetElementsRoadMaker>
73 (
const std::string&,
const std::string&,
const IInterface*);
76 virtual StatusCode
finalize()
override;
95 (std::deque<Amg::Vector3D>& globalPositions,
96 std::vector<const InDetDD::SiDetectorElement*>& Road,
99 const EventContext& ctx)
const override;
111 (
const EventContext& ctx,
115 std::vector<const InDetDD::SiDetectorElement*>& Road,
123 MsgStream&
dump(MsgStream & out)
const override;
124 std::ostream&
dump(std::ostream& out)
const override;
135 PublicToolHandle<Trk::IPropagator>
m_proptool{
this,
"PropagatorTool",
136 "Trk::RungeKuttaPropagator/InDetPropagator",
"Propagator tool"};
142 "SiDetElementsLayerVectors_xk",
"Key of SiDetElementsLayerVectors_xk"};
145 "Name of the Magnetic Field conditions object key"};
152 FloatProperty
m_width{
this,
"RoadWidth", 20.,
"Width of the road"};
153 DoubleProperty
m_step{
this,
"MaxStep", 40.,
"Max step allowed"};
154 StringProperty
m_pix{
this,
"PixManagerLocation",
"Pixel",
"PIX manager location"};
155 StringProperty
m_sct{
this,
"SCTManagerLocation",
"SCT",
"SCT manager location"};
156 StringProperty
m_fieldmode{
this,
"MagneticFieldMode",
"MapSolenoid",
"Mode of magnetic field"};
181 const SiDetElementsLayerVectors_xk *
getLayers(
const EventContext& ctx)
const {
186 return layerVec.
cptr();
Maintain a set of objects, one per slot.
char data[hepevt_bytes_allocation_ATLAS]
Class to hold geometrical description of a silicon detector element.
InDet::SiDetElementRoadMakerData_xk holds event dependent data used by SiDetElementRoadMaker_xk.
Trk::CylinderBounds m_bounds
Trk::MagneticFieldMode m_fieldModeEnum
virtual ~SiDetElementsRoadMaker_xk()=default
const SiDetElementsLayerVectors_xk * getLayers(const EventContext &ctx) const
StringProperty m_fieldmode
virtual StatusCode initialize() override
MsgStream & dumpConditions(MsgStream &out) const
virtual void detElementsRoad(std::deque< Amg::Vector3D > &globalPositions, std::vector< const InDetDD::SiDetectorElement * > &Road, bool testDirection, SiDetElementRoadMakerData_xk &roadMakerData, const EventContext &ctx) const override
This signature assumes you already have a list of positions along the trajectory.
PublicToolHandle< Trk::IPropagator > m_proptool
BooleanProperty m_ITkGeometry
static float stepToDetElement(const InDetDD::SiDetectorElement *&, Amg::Vector3D &, Amg::Vector3D &)
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
Trk::CylinderBounds getBound(MagField::AtlasFieldCache &fieldCache, const Trk::TrackParameters &) const
static void bookUsageTracker(InDet::SiDetElementRoadMakerData_xk &data, const SiDetElementsLayerVectors_xk &layers)
this method is used to initialize the detector element usage tracker member of the event data struct ...
virtual StatusCode finalize() override
SG::ReadCondHandleKey< SiDetElementsLayerVectors_xk > m_layerVecKey
Created by SiDetElementsRoadCondAlg_xk.
SiDetElementsRoadMaker_xk(const std::string &, const std::string &, const IInterface *)
std::vector< std::vector< InDet::SiDetElementsLayer_xk > > SiDetElementsLayerVectors_xk
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
const_pointer_type cptr()
Bounds for a cylindrical Surface.
Eigen::Matrix< double, 3, 1 > Vector3D
MsgStream & operator<<(MsgStream &, const GNNTrackFinderTritonTool &)
PropDirection
PropDirection, enum for direction of the propagation.
MagneticFieldMode
MagneticFieldMode describing the field setup within a volume.
@ FullField
Field is set to be realistic, but within a given Volume.
ParametersBase< TrackParametersDim, Charged > TrackParameters