ATLAS Offline Software
NewtonTrkDistanceFinder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRKVERTEXSEEDFINDERUTILS_NEWTONTRKDISTANCEFINDER_H
6 #define TRKVERTEXSEEDFINDERUTILS_NEWTONTRKDISTANCEFINDER_H
7 
8 #include "GaudiKernel/ToolHandle.h"
12 #include <variant>
13 
14 namespace Trk
15 {
16 
28  static const InterfaceID IID_NewtonTrkDistanceFinder("NewtonTrkDistanceFinder", 1, 1);
29 
30  class NewtonTrkDistanceFinder final: public AthAlgTool
31  {
32  public:
33 
34  static const InterfaceID& interfaceID()
35  {
36  return IID_NewtonTrkDistanceFinder;
37  };
38 
39 
40  //default constructor due to Athena interface
41  NewtonTrkDistanceFinder(const std::string& t, const std::string& n, const IInterface* p);
42 
43 
44  //
45  //destructor
47 
48  virtual StatusCode initialize() override;
49  virtual StatusCode finalize() override;
50 
51  // GetClosestPoints returns either the resulting TwoPoints,
52  // or an error string on failure.
53 
54  std::variant<TwoPoints, std::string>
55  GetClosestPoints(const Perigee & a, const Perigee & b) const {
56  //with the constractur of PointOnTrackPar a track is constructed with, as seed,
57  //directly the point of closest approach (see for info PointOnTrack.h)
59  }
60 
61  std::variant<TwoPoints, std::string>
62  GetClosestPoints(const PointOnTrack &, const PointOnTrack &) const;
63 
64  std::variant<TwoPoints, std::string>
65  GetClosestPoints(const TwoTracks & twotracks) const {
66  return GetClosestPoints(twotracks.getFirstPerigee(),twotracks.getSecondPerigee());
67  }
68 
69  std::variant<TwoPoints, std::string>
70  GetClosestPoints(const TwoPointOnTrack & twopointontrack) const {
71  return GetClosestPoints(twopointontrack.first,twopointontrack.second);
72  }
73 
74  private:
75  //parameters for precision
76  double m_precision;//as job option
77  double m_maxloopnumber;//as job option
78 
79  //variables for magnetic field service needed to retrieve the correct Bz
81  {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"};
82 
83  };
84 
85 }
86 
87 #endif
Trk::TwoTracks::getSecondPerigee
const Perigee & getSecondPerigee() const
Definition: TwoTracks.cxx:21
Trk::NewtonTrkDistanceFinder::m_precision
double m_precision
Definition: NewtonTrkDistanceFinder.h:76
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
AtlasFieldCacheCondObj.h
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
Trk::NewtonTrkDistanceFinder
Definition: NewtonTrkDistanceFinder.h:31
Trk::NewtonTrkDistanceFinder::NewtonTrkDistanceFinder
NewtonTrkDistanceFinder(const std::string &t, const std::string &n, const IInterface *p)
Definition: NewtonTrkDistanceFinder.cxx:31
Trk::TwoTracks::getFirstPerigee
const Perigee & getFirstPerigee() const
Definition: TwoTracks.cxx:17
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Trk::NewtonTrkDistanceFinder::finalize
virtual StatusCode finalize() override
Definition: NewtonTrkDistanceFinder.cxx:50
Trk::NewtonTrkDistanceFinder::GetClosestPoints
std::variant< TwoPoints, std::string > GetClosestPoints(const TwoTracks &twotracks) const
Definition: NewtonTrkDistanceFinder.h:65
Trk::NewtonTrkDistanceFinder::~NewtonTrkDistanceFinder
virtual ~NewtonTrkDistanceFinder()
Trk::NewtonTrkDistanceFinder::GetClosestPoints
std::variant< TwoPoints, std::string > GetClosestPoints(const TwoPointOnTrack &twopointontrack) const
Definition: NewtonTrkDistanceFinder.h:70
Trk::NewtonTrkDistanceFinder::GetClosestPoints
std::variant< TwoPoints, std::string > GetClosestPoints(const Perigee &a, const Perigee &b) const
Definition: NewtonTrkDistanceFinder.h:55
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
Trk::TwoPointOnTrack
std::pair< PointOnTrack, PointOnTrack > TwoPointOnTrack
Definition: SeedFinderParamDefs.h:19
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::NewtonTrkDistanceFinder::interfaceID
static const InterfaceID & interfaceID()
Definition: NewtonTrkDistanceFinder.h:34
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
SeedFinderParamDefs.h
SG::ReadCondHandleKey< AtlasFieldCacheCondObj >
Trk::NewtonTrkDistanceFinder::m_fieldCacheCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
Definition: NewtonTrkDistanceFinder.h:81
Trk::PointOnTrack
Definition: PointOnTrack.h:13
a
TList * a
Definition: liststreamerinfos.cxx:10
Trk::NewtonTrkDistanceFinder::m_maxloopnumber
double m_maxloopnumber
Definition: NewtonTrkDistanceFinder.h:77
Trk::NewtonTrkDistanceFinder::initialize
virtual StatusCode initialize() override
Definition: NewtonTrkDistanceFinder.cxx:43
AthAlgTool
Definition: AthAlgTool.h:26
Trk::TwoTracks
Definition: TwoTracks.h:15