ATLAS Offline Software
Loading...
Searching...
No Matches
VertexPointEstimator.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef INDETCONVERSIONFINDERTOOLS_VERTEXPOINTESTIMATOR_H
6#define INDETCONVERSIONFINDERTOOLS_VERTEXPOINTESTIMATOR_H
7
10
11namespace InDet {
12
19
21
22 public:
23 VertexPointEstimator (const std::string& type,const std::string& name, const IInterface* parent);
24
25 virtual ~VertexPointEstimator() = default;
26
27 static const InterfaceID& interfaceID();
28
29 virtual StatusCode initialize() override;
30
31 virtual StatusCode finalize() override;
32
33 typedef std::map<std::string, float> Values_t;
34
40 const Trk::Perigee* per2,
41 unsigned int flag,
42 int& errorcode) const;
43
44
51 const Trk::Perigee* per2,
52 unsigned int flag,
53 int& errorcode,
54 Values_t& decors) const;
55
57 static std::vector<std::string> decorKeys() ;
58
59
60 private:
62 const Trk::Perigee *per2,
63 unsigned int flag,
64 int& errorcode,
65 float& deltaPhi,
66 float& deltaR) const;
67
68
69 static double areaVar(double, double, double, double, double, double, double&) ;
70 static double areaVar(double, double, double, double, double, double, double&, double&, double&) ;
71 static bool circleIntersection(double, double, double,
72 double, double, double,
73 double&, double&,
74 double&, double&) ;
75 static bool secondDegree(double, double, double, double&, double&) ;
76 static double areaTriangle(double, double, double, double, double, double) ;
77
78 static const double s_bmagnt;
79 DoubleArrayProperty m_maxDR
80 {this, "MaxTrkXYDiffAtVtx", {10000., 10000., 10000.},
81 "maximum XY separation, non-intersecting circles"};
82 DoubleArrayProperty m_maxDZ
83 {this, "MaxTrkZDiffAtVtx", {10000., 10000., 10000.},
84 "maximum allowed track Z separation at the vertex"};
85 DoubleArrayProperty m_maxR
86 {this, "MaxTrkXYValue", {10000., 10000., 10000.},
87 "maximum allowed vertex radius"};
88 DoubleArrayProperty m_minArcLength
89 {this, "MinArcLength", {-10000., -10000., -10000.},
90 "minimum permitted arc length, track to vertex, depends on the posion of the first measurement"};
91 DoubleArrayProperty m_maxArcLength
92 {this, "MaxArcLength", {10000., 10000., 10000.},
93 "maximum permitted arc length, track to vertex, depends on the posion of the first measurement"};
94 DoubleArrayProperty m_minDr
95 {this, "MinDeltaR", {-5., -25., -50.},
96 "minimum difference between helix centers"};
97 DoubleArrayProperty m_maxDr
98 {this, "MaxDeltaR", {5., 10., 10.},
99 "maximum difference between helix centers"};
100 DoubleArrayProperty m_maxHl
101 {this, "MaxHl", {10000., 10000., 10000.}, "maximum ratio H/l"};
102 DoubleArrayProperty m_maxPhi
103 {this, "MaxPhi", {0.05, 0.1, 0.1},
104 "maximum DPhi at the estimated vertex position"};
105 BooleanProperty m_returnOnError{this, "ReturnOnError", true};
106 };
107
108}
109#endif // INDETCONVERSIONFINDERTOOLS_VERTEXPOINTESTIMATOR_H
110
111
Scalar deltaPhi(const MatrixBase< Derived > &vec) const
Scalar deltaR(const MatrixBase< Derived > &vec) const
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
static double areaVar(double, double, double, double, double, double, double &)
static std::vector< std::string > decorKeys()
Return list of keys used for decorations.
static bool secondDegree(double, double, double, double &, double &)
Amg::Vector3D intersectionImpl(const Trk::Perigee *per1, const Trk::Perigee *per2, unsigned int flag, int &errorcode, float &deltaPhi, float &deltaR) const
internal implementation
static bool circleIntersection(double, double, double, double, double, double, double &, double &, double &, double &)
virtual StatusCode initialize() override
VertexPointEstimator(const std::string &type, const std::string &name, const IInterface *parent)
static const InterfaceID & interfaceID()
virtual ~VertexPointEstimator()=default
static double areaTriangle(double, double, double, double, double, double)
Amg::Vector3D getCirclesIntersectionPoint(const Trk::Perigee *per1, const Trk::Perigee *per2, unsigned int flag, int &errorcode) const
Get intersection point of two track helices.
virtual StatusCode finalize() override
std::map< std::string, float > Values_t
Eigen::Matrix< double, 3, 1 > Vector3D
Primary Vertex Finder.
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee