ATLAS Offline Software
FullVertexFitter.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRKVERTEXFITTERBILLOIR_FULLVERTEXFITTER_H
6 #define TRKVERTEXFITTERBILLOIR_FULLVERTEXFITTER_H
7 
8 #include "GaudiKernel/ToolHandle.h"
12 #include "xAODTracking/VertexFwd.h"
14 
15 
16 namespace Trk
17 {
18  class Track;
19  class TrackParticleBase;
20  class IExtrapolator;
21  class IVertexLinearizedTrackFactory;
22 
37  class FullVertexFitter : public extends<AthAlgTool, IVertexFitter>
38  {
39  public:
40  // The following 'using' can be removed when IVertexFitter::fit has been
41  // fully migrated to the one with the EventContext
43 
44  virtual StatusCode initialize() override;
45 
46  enum FitError
47  {
54  NOFIT
55  };
56  FullVertexFitter(const std::string& t,
57  const std::string& n,
58  const IInterface* p);
59  virtual ~FullVertexFitter();
60 
62  virtual xAOD::Vertex* fit(
63  const std::vector<const Trk::TrackParameters*>& perigeeList,
64  const Amg::Vector3D& startingPoint) const override;
65 
68  virtual xAOD::Vertex* fit(
69  const std::vector<const TrackParameters*>& perigeeList,
70  const std::vector<const Trk::NeutralParameters*>& /*neutralPerigeeList*/,
71  const Amg::Vector3D& startingPoint) const override
72  {
73  msg(MSG::WARNING)
74  << "FullVertexFitter::fit(fit(const std::vector<const "
75  "TrackParameters*>&,const std::vector<const "
76  "Trk::NeutralParameters*>&,const Amg::Vector3D&) ignoring neutrals"
77  << endmsg;
78  return fit(perigeeList, startingPoint);
79  };
80 
83  virtual xAOD::Vertex* fit(
84  const std::vector<const Trk::TrackParameters*>& perigeeList,
85  const xAOD::Vertex& constraint) const override;
86 
89  virtual xAOD::Vertex* fit(
90  const std::vector<const TrackParameters*>& perigeeList,
91  const std::vector<const Trk::NeutralParameters*>& /*neutralPerigeeList*/,
92  const xAOD::Vertex& constraint) const override
93  {
94  msg(MSG::WARNING)
95  << "FullVertexFitter::fit(fit(const std::vector<const "
96  "TrackParameters*>&,const std::vector<const "
97  "Trk::NeutralParameters*>&,const xAOD::Vertex&) ignoring neutrals"
98  << endmsg;
99  return fit(perigeeList, constraint);
100  };
101 
106  virtual xAOD::Vertex* fit(const std::vector<const Trk::TrackParameters*>&
107  perigeeList) const override;
108 
109  virtual xAOD::Vertex* fit(
110  const std::vector<const TrackParameters*>& perigeeList,
111  const std::vector<const Trk::NeutralParameters*>& /*neutralPerigeeList*/)
112  const override
113  {
114  msg(MSG::WARNING) << "FullVertexFitter::fit(fit(const std::vector<const "
115  "TrackParameters*>&,const std::vector<const "
116  "Trk::NeutralParameters*>&) ignoring neutrals"
117  << endmsg;
118  return fit(perigeeList);
119  };
120 
122  virtual xAOD::Vertex* fit(
123  const std::vector<const xAOD::TrackParticle*>& vectorTrk,
124  const Amg::Vector3D& startingPoint) const override;
125 
128  virtual xAOD::Vertex* fit(
129  const std::vector<const xAOD::TrackParticle*>& vectorTrk,
130  const std::vector<const xAOD::NeutralParticle*>& /*vectorNeut*/,
131  const Amg::Vector3D& startingPoint) const override
132  {
133  msg(MSG::WARNING)
134  << "FullVertexFitter::fit(fit(const std::vector<const "
135  "TrackParticle*>&,const std::vector<const "
136  "Trk::NeutralParticle*>&,const Amg::Vector3D&) ignoring neutrals"
137  << endmsg;
138  return fit(vectorTrk, startingPoint);
139  };
140 
143  virtual xAOD::Vertex* fit(
144  const std::vector<const xAOD::TrackParticle*>& vectorTrk,
145  const xAOD::Vertex& constraint) const override;
146 
150  virtual xAOD::Vertex* fit(
151  const std::vector<const xAOD::TrackParticle*>& vectorTrk,
152  const std::vector<const xAOD::NeutralParticle*>& /*vectorNeut*/,
153  const xAOD::Vertex& constraint) const override
154  {
155  msg(MSG::WARNING)
156  << "FullVertexFitter::fit(fit(const std::vector<const "
157  "TrackParticle*>&,const std::vector<const "
158  "Trk::NeutralParticle*>&,const xAOD::Vertex&) ignoring neutrals"
159  << endmsg;
160  return fit(vectorTrk, constraint);
161  };
162 
163  private:
164  unsigned int m_maxIterations;
166 
169  ToolHandle<Trk::IVertexLinearizedTrackFactory> m_linFactory;
170  };
171  }
172 #endif
173 
Trk::FullVertexFitter::~FullVertexFitter
virtual ~FullVertexFitter()
standard destructor
Trk::IVertexFitter::fit
virtual std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &vectorTrk, const Amg::Vector3D &startingPoint) const
Interface for xAOD::TrackParticle with starting point Event Context aware interface.
Definition: IVertexFitter.h:76
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
TrackParameters.h
Trk::FullVertexFitter::m_maxDchi2PerNdf
double m_maxDchi2PerNdf
Definition: FullVertexFitter.h:165
Trk::FullVertexFitter::FullVertexFitter
FullVertexFitter(const std::string &t, const std::string &n, const IInterface *p)
Definition: FullVertexFitter.cxx:107
Trk::FullVertexFitter::fit
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const std::vector< const xAOD::NeutralParticle * > &, const xAOD::Vertex &constraint) const override
Definition: FullVertexFitter.h:150
Trk::FullVertexFitter::MATINV
@ MATINV
Definition: FullVertexFitter.h:49
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Trk::FullVertexFitter::fit
virtual xAOD::Vertex * fit(const std::vector< const TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &, const Amg::Vector3D &startingPoint) const override
Interface for TrackParameters and NeutralParameters with starting point.
Definition: FullVertexFitter.h:68
Trk::FullVertexFitter::NOTRKS
@ NOTRKS
Definition: FullVertexFitter.h:53
Trk::FullVertexFitter::NEGTRCHI2
@ NEGTRCHI2
Definition: FullVertexFitter.h:50
Trk::FullVertexFitter::fit
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const std::vector< const xAOD::NeutralParticle * > &, const Amg::Vector3D &startingPoint) const override
*Interface for xAOD::TrackParticle and NeutralParticle with starting point
Definition: FullVertexFitter.h:128
Trk::FullVertexFitter::MAXCHI2
@ MAXCHI2
Definition: FullVertexFitter.h:51
Trk::FullVertexFitter::m_maxIterations
unsigned int m_maxIterations
Definition: FullVertexFitter.h:161
Trk::FullVertexFitter::initialize
virtual StatusCode initialize() override
Definition: FullVertexFitter.cxx:90
beamspotman.n
n
Definition: beamspotman.py:731
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
Trk::FullVertexFitter::fit
virtual xAOD::Vertex * fit(const std::vector< const TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &) const override
Definition: FullVertexFitter.h:109
Trk::FullVertexFitter::FitError
FitError
Definition: FullVertexFitter.h:47
AthAlgTool.h
Trk::FullVertexFitter::FITOK
@ FITOK
Definition: FullVertexFitter.h:48
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::FullVertexFitter::m_linFactory
ToolHandle< Trk::IVertexLinearizedTrackFactory > m_linFactory
Data members to store the results.
Definition: FullVertexFitter.h:169
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
IVertexFitter.h
VertexFwd.h
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
TrackParticleFwd.h
Trk::FullVertexFitter::MAXTRCHI2
@ MAXTRCHI2
Definition: FullVertexFitter.h:52
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
Trk::FullVertexFitter::fit
virtual xAOD::Vertex * fit(const std::vector< const TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &, const xAOD::Vertex &constraint) const override
Interface for TrackParameters and NeutralParameters with RecVertex starting point.
Definition: FullVertexFitter.h:89
Trk::FullVertexFitter::fit
virtual xAOD::Vertex * fit(const std::vector< const Trk::TrackParameters * > &perigeeList, const Amg::Vector3D &startingPoint) const override
Interface for ParametersBase with starting point.
Definition: FullVertexFitter.cxx:121
Trk::FullVertexFitter
This class implements a full vertex fitting algorithm as proposed by P.
Definition: FullVertexFitter.h:38
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
Trk::FullVertexFitter::NOFIT
@ NOFIT
Definition: FullVertexFitter.h:54