ATLAS Offline Software
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 
11 namespace InDet {
12 
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 
InDet::VertexPointEstimator::~VertexPointEstimator
virtual ~VertexPointEstimator()=default
InDet::VertexPointEstimator::m_maxDZ
DoubleArrayProperty m_maxDZ
Definition: VertexPointEstimator.h:83
TrackParameters.h
InDet::VertexPointEstimator::areaTriangle
static double areaTriangle(double, double, double, double, double, double)
Definition: VertexPointEstimator.cxx:475
InDet::VertexPointEstimator::s_bmagnt
static const double s_bmagnt
Definition: VertexPointEstimator.h:78
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
xAOD::deltaPhi
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin setIsTgcFailure setDeltaPt deltaPhi
Definition: L2StandAloneMuon_v1.cxx:160
InDet
Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::VertexPointEstimator::finalize
virtual StatusCode finalize() override
Definition: VertexPointEstimator.cxx:42
InDet::VertexPointEstimator::interfaceID
static const InterfaceID & interfaceID()
Definition: VertexPointEstimator.cxx:32
InDet::VertexPointEstimator::m_minDr
DoubleArrayProperty m_minDr
Definition: VertexPointEstimator.h:95
InDet::VertexPointEstimator::m_maxR
DoubleArrayProperty m_maxR
Definition: VertexPointEstimator.h:86
InDet::VertexPointEstimator::m_maxHl
DoubleArrayProperty m_maxHl
Definition: VertexPointEstimator.h:101
InDet::VertexPointEstimator::Values_t
std::map< std::string, float > Values_t
Definition: VertexPointEstimator.h:33
InDet::VertexPointEstimator
Definition: VertexPointEstimator.h:20
InDet::VertexPointEstimator::intersectionImpl
Amg::Vector3D intersectionImpl(const Trk::Perigee *per1, const Trk::Perigee *per2, unsigned int flag, int &errorcode, float &deltaPhi, float &deltaR) const
internal implementation
Definition: VertexPointEstimator.cxx:83
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
master.flag
bool flag
Definition: master.py:29
AthAlgTool.h
InDet::VertexPointEstimator::m_maxDr
DoubleArrayProperty m_maxDr
Definition: VertexPointEstimator.h:98
InDet::VertexPointEstimator::m_maxDR
DoubleArrayProperty m_maxDR
Definition: VertexPointEstimator.h:80
test_pyathena.parent
parent
Definition: test_pyathena.py:15
InDet::VertexPointEstimator::decorKeys
static std::vector< std::string > decorKeys()
Return list of keys used for decorations.
Definition: VertexPointEstimator.cxx:74
InDet::VertexPointEstimator::getCirclesIntersectionPoint
Amg::Vector3D getCirclesIntersectionPoint(const Trk::Perigee *per1, const Trk::Perigee *per2, unsigned int flag, int &errorcode) const
Get intersection point of two track helices.
Definition: VertexPointEstimator.cxx:49
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
InDet::VertexPointEstimator::m_returnOnError
BooleanProperty m_returnOnError
Definition: VertexPointEstimator.h:105
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
InDet::VertexPointEstimator::initialize
virtual StatusCode initialize() override
Definition: VertexPointEstimator.cxx:37
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
InDet::VertexPointEstimator::secondDegree
static bool secondDegree(double, double, double, double &, double &)
Definition: VertexPointEstimator.cxx:462
InDet::VertexPointEstimator::m_minArcLength
DoubleArrayProperty m_minArcLength
Definition: VertexPointEstimator.h:89
InDet::VertexPointEstimator::m_maxArcLength
DoubleArrayProperty m_maxArcLength
Definition: VertexPointEstimator.h:92
InDet::VertexPointEstimator::VertexPointEstimator
VertexPointEstimator(const std::string &type, const std::string &name, const IInterface *parent)
Definition: VertexPointEstimator.cxx:25
AthAlgTool
Definition: AthAlgTool.h:26
InDet::VertexPointEstimator::circleIntersection
static bool circleIntersection(double, double, double, double, double, double, double &, double &, double &, double &)
Definition: VertexPointEstimator.cxx:413
makeComparison.deltaR
float deltaR
Definition: makeComparison.py:36
InDet::VertexPointEstimator::areaVar
static double areaVar(double, double, double, double, double, double, double &)
Definition: VertexPointEstimator.cxx:336
InDet::VertexPointEstimator::m_maxPhi
DoubleArrayProperty m_maxPhi
Definition: VertexPointEstimator.h:103