16#ifndef TRT_DetElementsRoadMaker_xk_H
17#define TRT_DetElementsRoadMaker_xk_H
22#include "GaudiKernel/ServiceHandle.h"
23#include "GaudiKernel/AlgTool.h"
24#include "GaudiKernel/ToolHandle.h"
25#include "GaudiKernel/MsgStream.h"
78 virtual StatusCode
finalize()
override;
93 virtual MsgStream&
dump(MsgStream& out)
const override;
94 virtual std::ostream&
dump(std::ostream& out)
const override;
100 "TRT_DetElementsRoadData_xk",
"Key of TRT_DetElementsRoadData_xk"};
103 "Name of the Magnetic Field conditions object key"};
105 PublicToolHandle<Trk::IPropagator>
m_proptool{
this,
"PropagatorTool",
106 "Trk::RungeKuttaPropagator/InDetPropagator"};
109 "Width of the roadInnerDetector/InDetRecTools/"};
110 DoubleProperty
m_step{
this,
"MaxStep", 20.,
"Max step allowed"};
112 StringProperty
m_fieldmode{
this,
"MagneticFieldMode",
"MapSolenoid",
113 "Mode of magnetic field"};
121 std::deque<Amg::Vector3D>&,
122 std::vector<const InDetDD::TRT_BaseElement*>&,
124 const EventContext& ctx)
const;
126 std::deque<Amg::Vector3D>&,
127 std::vector<const InDetDD::TRT_BaseElement*>&,
129 const EventContext& ctx)
const;
137 static MsgStream&
dumpEvent (MsgStream & out,
int size_road) ;
140 const TRT_DetElementsLayerVectors_xk *
getLayers(
const EventContext& ctx)
const {
145 return roadData->getLayers();
154 return roadData->getBounds();
163 double rmintrt = roadData->getTRTMinR();
Maintain a set of objects, one per slot.
Virtual base class of TRT readout elements.
std::array< std::vector< std::vector< Used_t > >, 3 > TRT_DetElemUsedMap
static double stepToDetElement(const InDetDD::TRT_BaseElement *&, Amg::Vector3D &, Amg::Vector3D &)
double getTRTMinR(const EventContext &ctx) const
virtual StatusCode finalize() override
static MsgStream & dumpEvent(MsgStream &out, int size_road)
void detElementsRoadATL(std::deque< Amg::Vector3D > &, std::vector< const InDetDD::TRT_BaseElement * > &, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used, const EventContext &ctx) const
MsgStream & dumpConditions(MsgStream &out) const
virtual ~TRT_DetElementsRoadMaker_xk()
Trk::MagneticFieldMode m_fieldModeEnum
TRT_DetElementsRoadMaker_xk(const std::string &, const std::string &, const IInterface *)
StringProperty m_fieldmode
SG::ReadCondHandleKey< TRT_DetElementsRoadData_xk > m_roadDataKey
Trk::CylinderBounds getBound(MagField::AtlasFieldCache &fieldCache, const Trk::TrackParameters &, const EventContext &ctx) const
void detElementsRoadCTB(std::deque< Amg::Vector3D > &, std::vector< const InDetDD::TRT_BaseElement * > &, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used, const EventContext &ctx) const
virtual StatusCode initialize() override
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
PublicToolHandle< Trk::IPropagator > m_proptool
const TRT_DetElementsLayerVectors_xk * getLayers(const EventContext &ctx) const
virtual std::vector< const InDetDD::TRT_BaseElement * > detElementsRoad(const EventContext &ctx, MagField::AtlasFieldCache &fieldCache, const Trk::TrackParameters &Tp, Trk::PropDirection D, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used) const override
const Trk::CylinderBounds get_bounds(const EventContext &ctx) const
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
Bounds for a cylindrical Surface.
holding In fact this class is here in order to allow STL container for all features This class is sho...
Eigen::Matrix< double, 3, 1 > Vector3D
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