ATLAS Offline Software
Loading...
Searching...
No Matches
ActsMuonTrackingGeometryTest.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ACTSMUONTRACKINGGEOMETRYTEST_ACTSMUONTRACKINGGEOMETRYTEST_H
6#define ACTSMUONTRACKINGGEOMETRYTEST_ACTSMUONTRACKINGGEOMETRYTEST_H
7
10
19
23
24
28
29class IAthRNGSvc;
30
31
32namespace ActsTrk {
33
35
37
38 public:
40
42
43 StatusCode initialize() override;
44 StatusCode execute(const EventContext& ctx) override;
45 StatusCode finalize() override;
46
47 private:
48
50
51 ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "IdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
52
53 ServiceHandle<IAthRNGSvc> m_rndmGenSvc{this, "AthRNGSvc", "AthRNGSvc"};
54
55 PublicToolHandle<ActsTrk::ITrackingGeometryTool> m_trackingGeometryTool{this, "TrackingGeometryTool", "ActsTrackingGeometryTool"};
56
58 "MuonDetectorManager", "MuonManager ReadKey for IOV Range intersection"};
59
61 "fieldCondObj", "Name of the Magnetic Field conditions object key"};
62
63 ActsTrk::GeoContextReadKey_t m_geoCtxKey{this, "AlignmentKey", "ActsAlignment", "cond handle key"};
64
66
67 SG::ReadDecorHandleKey<xAOD::TruthParticleContainer> m_truthSegLinkKey{this, "TruthKeyToSeg", m_truthParticleKey, "truthSegmentLinks", "TruthParticle to TruthSegment link"};
68
69 UnsignedIntegerProperty m_nEvents{this, "nEvents", 100};
70
71 DoubleProperty m_pathLimit{this, "PathLimit", 30.*Gaudi::Units::m};
72
73 DoubleProperty m_maxStepSize{this, "MaxStepSize", 1*Gaudi::Units::m};
74
75 UnsignedIntegerProperty m_maxSteps{this, "MaxSteps", 100000};
76
77 UnsignedIntegerProperty m_maxTargetSkipping{this, "MaxTargetSkipping", 10000};
78
79 DoubleProperty m_stepTolerance{this, "StepTolerance", 1e-10};
80
81 Gaudi::Property<bool> m_startFromFirstHit{this, "StartFromFirstHit", false, "Start from first hit"};
82
83 Amg::Transform3D toLocalTrf(const ActsTrk::GeometryContext& gctx, const Identifier& hitId) const;
84
85 Amg::Transform3D toGlobalTrf(const ActsTrk::GeometryContext& gctx, const Identifier& hitId) const;
86
87 IdentifierHash layerHash(const Identifier& id) const;
88
89 Gaudi::Property<std::vector<double>> m_etaRange{this, "EtaRange", {-3, 3}, "The eta range for particles"};
90
91 MuonVal::MuonTesterTree m_tree{"MuonNavigationTestGen3R4", "MuonNavigationTestGen3R4"};
93 MuonVal::VectorBranch<unsigned short>& m_techIdx{m_tree.newVector<unsigned short>("detId_techIdx")};
94 MuonVal::VectorBranch<unsigned short>& m_gasGapId{m_tree.newVector<unsigned short>("detId_gasGap")};
98 MuonVal::ScalarBranch<float>& m_truthPt{m_tree.newScalar<float>("truthPt")};
99 MuonVal::ScalarBranch<float>& m_truthP{m_tree.newScalar<float>("truthP")};
101 MuonVal::VectorBranch<float>& m_actsPropabsMomentum{m_tree.newVector<float>("actsPropabsMomentum")};
105 MuonVal::VectorBranch<float>& m_actsHitWireDist{m_tree.newVector<float>("actsHitWireDist")};
106 MuonVal::VectorBranch<float>& m_actsStepSize{m_tree.newVector<float>("actsStepSize")};
107 MuonVal::ScalarBranch<float>& m_propLength{m_tree.newScalar<float>("propLength")};
108 MuonVal::VectorBranch<unsigned short>& m_isPropagated{m_tree.newVector<unsigned short>("isPropagated")};
109 MuonVal::ScalarBranch<unsigned int>& m_propSteps{m_tree.newScalar<unsigned int>("propSteps")};
110 MuonVal::ScalarBranch<unsigned int>& m_event{m_tree.newScalar<unsigned int>("event")};
111
112
113 };
114}
115
116#endif
Property holding a SG store/key/clid from which a ReadHandle is made.
Extrapolation test for the ActsMuonTrackingGeometry for gen3.
MuonVal::ScalarBranch< unsigned int > & m_propSteps
MuonVal::VectorBranch< unsigned short > & m_isPropagated
MuonVal::VectorBranch< unsigned short > & m_gasGapId
MuonVal::VectorBranch< float > & m_actsHitWireDist
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_truthParticleKey
const MuonGMR4::MuonDetectorManager * m_r4DetMgr
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Amg::Transform3D toGlobalTrf(const ActsTrk::GeometryContext &gctx, const Identifier &hitId) const
StatusCode execute(const EventContext &ctx) override
Execute method.
SG::ReadDecorHandleKey< xAOD::TruthParticleContainer > m_truthSegLinkKey
MuonVal::VectorBranch< float > & m_actsPropabsMomentum
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
IdentifierHash layerHash(const Identifier &id) const
MuonVal::ScalarBranch< unsigned int > & m_event
Amg::Transform3D toLocalTrf(const ActsTrk::GeometryContext &gctx, const Identifier &hitId) const
MuonVal::VectorBranch< unsigned short > & m_techIdx
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_detMgrKey
AthHistogramAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
MuonVal::VectorBranch< float > & m_actsStepSize
Gaudi::Property< std::vector< double > > m_etaRange
PublicToolHandle< ActsTrk::ITrackingGeometryTool > m_trackingGeometryTool
AthHistogramAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
manage multiple RandomEngines in thread-safe way.
Definition IAthRNGSvc.h:28
This is a "hash" representation of an Identifier.
Class to dump the basic properties of an Identifier into an n-tuple StationName -> BIS,...
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Property holding a SG store/key/clid from which a ReadHandle is made.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
SG::ReadHandleKey< GeometryContext > GeoContextReadKey_t
Abrivate the ReadHandleKey to declare the data dependency on the Geometry context.
Eigen::Affine3d Transform3D