ATLAS Offline Software
TrkV0VertexFitter.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // TrkV0VertexFitter.h, (c) ATLAS Detector software 2006
8 
17 #ifndef TRKV0FITTER_TRKV0VERTEXFITTER_H
18 #define TRKV0FITTER_TRKV0VERTEXFITTER_H
19 
21 #include "GaudiKernel/ToolHandle.h"
25 #include "xAODTracking/VertexFwd.h"
27 
29 
30 namespace Trk
31 {
32  class IExtrapolator;
39  class TrkV0VertexFitter : public extends<AthAlgTool, IVertexFitter>
40  {
41  public:
42  // The following 'using' can be removed when IVertexFitter::fit
43  // has been fully migrated to the one with the EventContext
45 
46  virtual StatusCode initialize() override;
47  virtual StatusCode finalize() override;
48 
50  TrkV0VertexFitter(const std::string& t, const std::string& n, const IInterface* p);
51  virtual ~TrkV0VertexFitter();
52 
54  virtual xAOD::Vertex * fit(const std::vector<const xAOD::TrackParticle*>& vectorTrk,
55  const Amg::Vector3D& startingPoint) const override;
56 
57  virtual xAOD::Vertex * fit(const std::vector<const xAOD::TrackParticle*>& vectorTrk,
58  const std::vector<const xAOD::NeutralParticle*>& /*vectorNeut*/,
59  const Amg::Vector3D& startingPoint) const override
60  {
61  msg(MSG::WARNING)
62  << "TrkV0VertexFitter::fit(fit(const std::vector<const "
63  "TrackParticle*>&,const std::vector<const "
64  "Trk::NeutralParticle*>&,const Amg::Vector3D&) ignoring neutrals"
65  << endmsg;
66  return fit(vectorTrk, startingPoint);
67  };
68 
70  virtual xAOD::Vertex * fit(const std::vector<const xAOD::TrackParticle*>& vectorTrk,
71  const xAOD::Vertex& constraint) const override;
72 
73  virtual xAOD::Vertex * fit(const std::vector<const xAOD::TrackParticle*>& vectorTrk,
74  const std::vector<const xAOD::NeutralParticle*>& /*vectorNeut*/,
75  const xAOD::Vertex& constraint) const override
76  {
77  msg(MSG::WARNING)
78  << "TrkV0VertexFitter::fit(fit(const std::vector<const "
79  "TrackParticle*>&,const std::vector<const "
80  "Trk::NeutralParticle*>&,const xAOD::Vertex&) ignoring neutrals"
81  << endmsg;
82  return fit(vectorTrk, constraint);
83  };
84 
87  virtual xAOD::Vertex* fit(
88  const std::vector<const xAOD::TrackParticle*>& vectorTrk) const;
89 
91  virtual xAOD::Vertex* fit(
92  const std::vector<const Trk::TrackParameters*>& perigeeList,
93  const Amg::Vector3D& startingPoint) const override;
94 
97  virtual xAOD::Vertex* fit(
98  const std::vector<const Trk::TrackParameters*>& perigeeList,
99  const std::vector<const Trk::NeutralParameters*>& /*neutralPerigeeList*/,
100  const Amg::Vector3D& startingPoint) const override
101  {
102  msg(MSG::WARNING)
103  << "TrkV0VertexFitter::fit(fit(const std::vector<const "
104  "Trk::TrackParameters*>&,const std::vector<const "
105  "Trk::NeutralParameters*>&,const Amg::Vector3D&) ignoring neutrals"
106  << endmsg;
107  return fit(perigeeList, startingPoint);
108  };
109 
111  virtual xAOD::Vertex* fit(
112  const std::vector<const Trk::TrackParameters*>& perigeeList,
113  const xAOD::Vertex& constraint) const override;
114 
117  virtual xAOD::Vertex* fit(
118  const std::vector<const Trk::TrackParameters*>& perigeeList,
119  const std::vector<const Trk::NeutralParameters*>& /*neutralPerigeeList*/,
120  const xAOD::Vertex& constraint) const override
121  {
122  msg(MSG::WARNING)
123  << "TrkV0VertexFitter::fit(fit(const std::vector<const "
124  "Trk::TrackParameters*>&,const std::vector<const "
125  "Trk::NeutralParameters*>&,const xAOD::Vertex&) ignoring neutrals"
126  << endmsg;
127  return fit(perigeeList, constraint);
128  };
129 
132  virtual xAOD::Vertex* fit(const std::vector<const Trk::TrackParameters*>&
133  perigeeList) const override;
134 
135  virtual xAOD::Vertex* fit(
136  const std::vector<const Trk::TrackParameters*>& perigeeList,
137  const std::vector<const Trk::NeutralParameters*>& /*neutralPerigeeList*/)
138  const override
139  {
140  msg(MSG::WARNING) << "TrkV0VertexFitter::fit(fit(const std::vector<const "
141  "Trk::TrackParameters*>&,const std::vector<const "
142  "Trk::NeutralParameters*>&) ignoring neutrals"
143  << endmsg;
144  return fit(perigeeList);
145  };
146 
156  virtual xAOD::Vertex * fit(const std::vector<const xAOD::TrackParticle*> & vectorTrk,
157  const std::vector<double>& masses,
158  const double& constraintMass,
159  const xAOD::Vertex* pointingVertex,
160  const Amg::Vector3D& startingPoint) const;
161 
162  virtual xAOD::Vertex * fit(const std::vector<const Trk::TrackParameters*> & perigeeList,
163  const std::vector<double>& masses,
164  const double& constraintMass,
165  const xAOD::Vertex* pointingVertex,
166  const Amg::Vector3D& startingPoint) const;
167 
168 
169  private:
172  double m_maxR;
173  double m_maxZ;
175  bool m_deltaR;
176 
179  ToolHandle< Trk::IExtrapolator > m_extrapolator;
181  {this, "AtlasFieldCacheCondObj", "fieldCondObj", "Name of the Magnetic Field conditions object key"};
182  };
183 }
184 #endif
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::TrkV0VertexFitter::m_deltaR
bool m_deltaR
Definition: TrkV0VertexFitter.h:175
AtlasFieldCacheCondObj.h
Trk::TrkV0VertexFitter::fit
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const std::vector< const xAOD::NeutralParticle * > &, const Amg::Vector3D &startingPoint) const override
Definition: TrkV0VertexFitter.h:57
Trk::TrkV0VertexFitter::MATINV
@ MATINV
Definition: TrkV0VertexFitter.h:49
Trk::TrkV0VertexFitter::FitError
FitError
Definition: TrkV0VertexFitter.h:49
Trk::TrkV0VertexFitter::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: TrkV0VertexFitter.h:73
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Trk::TrkV0VertexFitter::m_maxR
double m_maxR
Definition: TrkV0VertexFitter.h:172
Trk::TrkV0VertexFitter::fit
virtual xAOD::Vertex * fit(const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &, const xAOD::Vertex &constraint) const override
Interface for TrackParameters and NeutralParameters with xAOD::Vertex starting point.
Definition: TrkV0VertexFitter.h:117
Trk::TrkV0VertexFitter::TrkV0VertexFitter
TrkV0VertexFitter(const std::string &t, const std::string &n, const IInterface *p)
Definition: TrkV0VertexFitter.cxx:39
Trk::TrkV0VertexFitter::m_extrapolator
ToolHandle< Trk::IExtrapolator > m_extrapolator
Data members to store the results.
Definition: TrkV0VertexFitter.h:179
beamspotman.n
n
Definition: beamspotman.py:731
Trk::TrkV0VertexFitter::fit
virtual xAOD::Vertex * fit(const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &) const override
Definition: TrkV0VertexFitter.h:135
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::TrkV0VertexFitter::FITOK
@ FITOK
Definition: TrkV0VertexFitter.h:49
Trk::TrkV0VertexFitter::NOTRKS
@ NOTRKS
Definition: TrkV0VertexFitter.h:49
Trk::TrkV0VertexFitter::MAXCHI2
@ MAXCHI2
Definition: TrkV0VertexFitter.h:49
AthAlgTool.h
Trk::TrkV0VertexFitter::~TrkV0VertexFitter
virtual ~TrkV0VertexFitter()
standard destructor
Trk::TrkV0VertexFitter::m_maxDchi2PerNdf
double m_maxDchi2PerNdf
Definition: TrkV0VertexFitter.h:171
Trk::TrkV0VertexFitter::m_maxZ
double m_maxZ
Definition: TrkV0VertexFitter.h:173
ReadCondHandleKey.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
IVertexFitter.h
VertexFwd.h
Trk::TrkV0VertexFitter::NOFIT
@ NOFIT
Definition: TrkV0VertexFitter.h:49
SG::ReadCondHandleKey< AtlasFieldCacheCondObj >
Trk::TrkV0VertexFitter::NEGTRCHI2
@ NEGTRCHI2
Definition: TrkV0VertexFitter.h:49
Trk::TrkV0VertexFitter::fit
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const Amg::Vector3D &startingPoint) const override
Interface for xAOD::TrackParticle with Amg::Vector3D starting point.
Definition: TrkV0VertexFitter.cxx:83
Trk::TrkV0VertexFitter::fit
virtual xAOD::Vertex * fit(const std::vector< const Trk::TrackParameters * > &perigeeList, const std::vector< const Trk::NeutralParameters * > &, const Amg::Vector3D &startingPoint) const override
Interface for Trk::TrackParameters and NeutralParameters with Amg::Vector3D starting point.
Definition: TrkV0VertexFitter.h:97
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
TrackParticleFwd.h
Trk::TrkV0VertexFitter::MAXTRCHI2
@ MAXTRCHI2
Definition: TrkV0VertexFitter.h:49
Trk::TrkV0VertexFitter::m_maxIterations
int m_maxIterations
Definition: TrkV0VertexFitter.h:170
Trk::TrkV0VertexFitter
This class implements a vertex fitting algorithm optimised for V0 finding.
Definition: TrkV0VertexFitter.h:40
Trk::TrkV0VertexFitter::initialize
virtual StatusCode initialize() override
Definition: TrkV0VertexFitter.cxx:60
Trk::TrkV0VertexFitter::m_fieldCacheCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCacheCondObjInputKey
Definition: TrkV0VertexFitter.h:181
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
Trk::TrkV0VertexFitter::finalize
virtual StatusCode finalize() override
Definition: TrkV0VertexFitter.cxx:75
Trk::TrkV0VertexFitter::m_firstMeas
bool m_firstMeas
Definition: TrkV0VertexFitter.h:174
SUSY_SimplifiedModel_PreInclude.masses
dictionary masses
Definition: SUSY_SimplifiedModel_PreInclude.py:7