ATLAS Offline Software
T2SplitVertex.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 /**********************************************************************************
6  *
7  * @version: $Id: T2SplitVertex.h 361213 2011-04-23 18:26:44Z bartoldu $
8  *
9  * @project: HLT, PESA algorithms
10  * @package: TrigT2BeamSpot
11  * @class : T2SplitVertex
12  *
13  * @brief Helper class for a pair of vertices and their separation (delta)
14  * with some functionality used by the beam spot algorithm
15  *
16  * @author Rainer Bartoldus, SLAC, <bartoldu@slac.stanford.edu>
17  * @author Emanuel Strauss, SLAC <estrauss@slac.stanford.edu>
18  *
19  **********************************************************************************/
20 
21 #ifndef TRIGT2BEAMSPOT_T2SPLITVERTEX_H
22 #define TRIGT2BEAMSPOT_T2SPLITVERTEX_H
23 
25 #include "T2Vertex.h"
26 
29 
30 #include <string>
31 #include <vector>
32 #include <cmath>
33 
34 namespace PESA
35 {
36 
37  class T2SplitVertex
38  {
39  public:
40 
41  // Helpers
42  double rss( double x, double y )
43  {
44  return sqrt( x*x+y*y );
45  }
46 
47  double ratio( double x, double y )
48  {
49  return ( y > 0. ) ? x / y : 0.;
50  }
51 
52  // Constructor
53 
55  : m_vertex1 ( vertex1 )
56  , m_vertex2 ( vertex2 )
57  , m_DNTrks ( ( m_vertex1.NTrks() + m_vertex2.NTrks() ) / 2. )
58  , m_DX ( m_vertex1.X() - m_vertex2.X() )
59  , m_DY ( m_vertex1.Y() - m_vertex2.Y() )
60  , m_DZ ( m_vertex1.Z() - m_vertex2.Z() )
61  , m_DXerr ( rss( m_vertex1.Xerr(), m_vertex2.Xerr() ) )
62  , m_DYerr ( rss( m_vertex1.Yerr(), m_vertex2.Yerr() ) )
63  , m_DZerr ( rss( m_vertex1.Zerr(), m_vertex2.Zerr() ) )
64  , m_DXpull ( ratio( m_DX, m_DXerr ) )
65  , m_DYpull ( ratio( m_DY, m_DYerr ) )
66  , m_DZpull ( ratio( m_DZ, m_DZerr ) )
67  {
68  }
69 
70  // Accessors
71  const T2SimpleVertex& vertex1 () const { return m_vertex1; }
72  const T2SimpleVertex& vertex2 () const { return m_vertex2; }
73  double DNTrks () const { return m_DNTrks ; }
74  double DX () const { return m_DX ; }
75  double DY () const { return m_DY ; }
76  double DZ () const { return m_DZ ; }
77  double DXerr () const { return m_DXerr ; }
78  double DYerr () const { return m_DYerr ; }
79  double DZerr () const { return m_DZerr ; }
80  double DXpull () const { return m_DXpull ; }
81  double DYpull () const { return m_DYpull ; }
82  double DZpull () const { return m_DZpull ; }
83 
84  private:
85 
86  // Data members
89  double m_DNTrks ;
90  double m_DX ;
91  double m_DY ;
92  double m_DZ ;
93  double m_DXerr ;
94  double m_DYerr ;
95  double m_DZerr ;
96  double m_DXpull ;
97  double m_DYpull ;
98  double m_DZpull ;
99  };
100 
101 } // end namespace
102 
103 #endif
T2Vertex.h
PESA::T2SplitVertex::m_DXerr
double m_DXerr
Definition: T2SplitVertex.h:121
PESA::T2SplitVertex::m_DYpull
double m_DYpull
Definition: T2SplitVertex.h:125
PESA::T2SplitVertex::m_DZ
double m_DZ
Definition: T2SplitVertex.h:120
PESA::T2SplitVertex::ratio
double ratio(double x, double y)
Definition: T2SplitVertex.h:75
PESA::T2SplitVertex::m_DNTrks
double m_DNTrks
Definition: T2SplitVertex.h:117
x
#define x
PESA::T2SplitVertex::vertex1
const T2SimpleVertex & vertex1() const
Definition: T2SplitVertex.h:99
PESA::T2SplitVertex::m_DXpull
double m_DXpull
Definition: T2SplitVertex.h:124
PESA::T2SplitVertex::DZpull
double DZpull() const
Definition: T2SplitVertex.h:110
Monitored::X
@ X
Definition: HistogramFillerUtils.h:24
PESA::T2SimpleVertex
Definition: T2Vertex.h:63
PESA::T2SplitVertex::vertex2
const T2SimpleVertex & vertex2() const
Definition: T2SplitVertex.h:100
PESA
Local tools.
Definition: T2BeamSpot.cxx:13
PESA::T2SplitVertex::DZ
double DZ() const
Definition: T2SplitVertex.h:104
PESA::T2SplitVertex::DYpull
double DYpull() const
Definition: T2SplitVertex.h:109
PESA::T2SplitVertex::DXpull
double DXpull() const
Definition: T2SplitVertex.h:108
PESA::T2SplitVertex::DNTrks
double DNTrks() const
Definition: T2SplitVertex.h:101
PESA::T2SplitVertex::m_DYerr
double m_DYerr
Definition: T2SplitVertex.h:122
PESA::T2SplitVertex::DY
double DY() const
Definition: T2SplitVertex.h:103
PESA::T2SplitVertex::DXerr
double DXerr() const
Definition: T2SplitVertex.h:105
PESA::T2SplitVertex::m_DZerr
double m_DZerr
Definition: T2SplitVertex.h:123
Monitored::Y
@ Y
Definition: HistogramFillerUtils.h:24
PESA::T2SplitVertex::m_vertex1
T2SimpleVertex m_vertex1
Definition: T2SplitVertex.h:115
PESA::T2SplitVertex::m_DY
double m_DY
Definition: T2SplitVertex.h:119
PESA::T2SplitVertex::DZerr
double DZerr() const
Definition: T2SplitVertex.h:107
PESA::T2SplitVertex::m_DZpull
double m_DZpull
Definition: T2SplitVertex.h:126
PESA::T2SplitVertex::T2SplitVertex
T2SplitVertex(const TrigVertex &vertex1, const TrigVertex &vertex2)
Definition: T2SplitVertex.h:82
TrigVertex.h
y
#define y
TrigVertex
Definition: TrigVertex.h:28
PESA::T2SplitVertex::m_vertex2
T2SimpleVertex m_vertex2
Definition: T2SplitVertex.h:116
PESA::T2SplitVertex::m_DX
double m_DX
Definition: T2SplitVertex.h:118
PESA::T2SplitVertex::rss
double rss(double x, double y)
Definition: T2SplitVertex.h:70
PESA::T2SplitVertex::DX
double DX() const
Definition: T2SplitVertex.h:102
PESA::T2SplitVertex::DYerr
double DYerr() const
Definition: T2SplitVertex.h:106