ATLAS Offline Software
SeedNewtonTrkDistanceFinder.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRKVERTEXSEEDFINDERUTILS_SEEDNEWTONTRKDISTANCEFINDER_H
6 #define TRKVERTEXSEEDFINDERUTILS_SEEDNEWTONTRKDISTANCEFINDER_H
7 
8 #include "GaudiKernel/ToolHandle.h"
10 #include "TrkVertexSeedFinderUtils/SeedFinderParamDefs.h" // For TwoPoints
13 #include <atomic>
14 
15 namespace Trk
16 {
17 
18  class Trk2dDistanceSeeder;
19  class NewtonTrkDistanceFinder;
20 
44  class SeedNewtonTrkDistanceFinder final: public extends<AthAlgTool, ITrkDistanceFinder>
45  {
46  public:
47  virtual StatusCode initialize() override;
48  virtual StatusCode finalize() override;
49 
50  //default constructor due to Athena interface
51  SeedNewtonTrkDistanceFinder(const std::string& t, const std::string& n, const IInterface* p);
52 
53  //destructor
55 
58  virtual std::optional<TwoPoints>
59  CalculateMinimumDistance(const Trk::Perigee &, const Trk::Perigee &) const override final;
60 
62  virtual std::optional<TwoPoints>
63  CalculateMinimumDistance(const Trk::Track &, const Trk::Track &) const override final;
64 
66  virtual std::optional<TwoPoints>
67  CalculateMinimumDistance(const Trk::TrackParticleBase &, const Trk::TrackParticleBase &) const override final;
68 
69 
70  private:
71  ToolHandle<Trk2dDistanceSeeder> m_2ddistanceseeder;
72  ToolHandle<NewtonTrkDistanceFinder> m_distancefinder;
73  mutable std::atomic<int> m_numberOfMinimizationFailures;
74  };
75 }
76 #endif
Trk::SeedNewtonTrkDistanceFinder::SeedNewtonTrkDistanceFinder
SeedNewtonTrkDistanceFinder(const std::string &t, const std::string &n, const IInterface *p)
Definition: SeedNewtonTrkDistanceFinder.cxx:29
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
TrackParameters.h
Trk::SeedNewtonTrkDistanceFinder::m_2ddistanceseeder
ToolHandle< Trk2dDistanceSeeder > m_2ddistanceseeder
Definition: SeedNewtonTrkDistanceFinder.h:71
ITrkDistanceFinder.h
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
Trk::SeedNewtonTrkDistanceFinder::CalculateMinimumDistance
virtual std::optional< TwoPoints > CalculateMinimumDistance(const Trk::Perigee &, const Trk::Perigee &) const override final
method to do the calculation starting from two Perigees
Definition: SeedNewtonTrkDistanceFinder.cxx:65
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Trk::SeedNewtonTrkDistanceFinder::finalize
virtual StatusCode finalize() override
Definition: SeedNewtonTrkDistanceFinder.cxx:54
Trk::SeedNewtonTrkDistanceFinder
Definition: SeedNewtonTrkDistanceFinder.h:45
Trk::TrackParticleBase
Definition: TrackParticleBase.h:41
Trk::SeedNewtonTrkDistanceFinder::initialize
virtual StatusCode initialize() override
Definition: SeedNewtonTrkDistanceFinder.cxx:41
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::SeedNewtonTrkDistanceFinder::~SeedNewtonTrkDistanceFinder
virtual ~SeedNewtonTrkDistanceFinder()
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
SeedFinderParamDefs.h
Trk::SeedNewtonTrkDistanceFinder::m_distancefinder
ToolHandle< NewtonTrkDistanceFinder > m_distancefinder
Definition: SeedNewtonTrkDistanceFinder.h:72
Trk::SeedNewtonTrkDistanceFinder::m_numberOfMinimizationFailures
std::atomic< int > m_numberOfMinimizationFailures
Definition: SeedNewtonTrkDistanceFinder.h:73