ATLAS Offline Software
Loading...
Searching...
No Matches
TrigVertex.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 TRIGINDETEVENT_TRIGVERTEX_H
6#define TRIGINDETEVENT_TRIGVERTEX_H
7
8#include <list>
9
10#include "CLHEP/Geometry/Point3D.h"
12#include <math.h>
13#include <map>
14#include <ostream>
15#include "GaudiKernel/MsgStream.h"
16
25
26typedef std::list< const TrigInDetTrack* > TrackInVertexList;
27
29
30 public:
37
38 // Constructors
39 TrigVertex() : m_x(0.0), m_y(0.0), m_z(0.), m_position(0,0,0),
40 m_chiSquared(0.0), m_nDOF(0),
41 m_tracks(NULL), m_algId(NULLID),
42 m_ownTracks(false)
43 {
44 for(int i=0;i<6;i++) m_cov[i]=0.0;
45 m_mass=0.0;m_massVar=0.0;m_P=NULL;m_energyFraction=0.0;
48 }
49
50 TrigVertex( double zPosition ) : m_x(0.0), m_y(0.0), m_z(zPosition),m_position(0,0,zPosition),
51 m_chiSquared(0.0), m_nDOF(0),
52 m_tracks(NULL), m_algId(NULLID),
53 m_ownTracks(false)
54 {
55 for(int i=0;i<6;i++) m_cov[i]=0.0;
56 m_mass=0.0;m_massVar=0.0;m_P=NULL;m_energyFraction=0.0;
59 }
60
61 TrigVertex( double zPosition, AlgoId id ) : m_x(0.0), m_y(0.0), m_z(zPosition), m_position(0,0,zPosition),
62 m_chiSquared(0.0), m_nDOF(0),
63 m_tracks(NULL), m_algId(id),
64 m_ownTracks(false)
65 {
66 for(int i=0;i<6;i++) m_cov[i]=0.0;
67 m_mass=0.0;m_massVar=0.0;m_P=NULL;m_energyFraction=0.0;
70 }
71
72 TrigVertex( double zPosition, double cv, AlgoId id ) : m_x(0.0), m_y(0.0), m_z(zPosition), m_position(0,0,zPosition),
73 m_chiSquared(0.0), m_nDOF(0),
74 m_tracks(NULL), m_algId(id),
75 m_ownTracks(false)
76 {
77 for(int i=0;i<5;i++) m_cov[i]=0.0;
78 m_cov[5]=cv;
79 m_mass=0.0;m_massVar=0.0;m_P=NULL;m_energyFraction=0.0;
82 }
83
84 TrigVertex(double x, double y, double z, double cv[6], double chi2, int ndf, TrackInVertexList* tracks) :
87 m_ownTracks(false)
88 {
89 for(int i=0;i<6;i++) m_cov[i]=cv[i];
90 m_mass=0.0;m_massVar=0.0;m_P=NULL;m_energyFraction=0.0;
93 }
94
95 TrigVertex(double x, double y, double z, double cv[6], double chi2, int ndf, TrackInVertexList* tracks,
96 double mass, double energyFraction, int n2trkvtx,
98 AlgoId algo_id) :
99 m_x(x), m_y(y), m_z(z), m_mass(mass), m_massVar(0),
101 m_nTwoTracksSecVtx(n2trkvtx),
105 m_nDOF(ndf), m_tracks(tracks), m_algId(algo_id),
106 m_ownTracks(false)
107 {
108 for(int i=0;i<6;i++) m_cov[i]=cv[i];
109 m_P=NULL;
110 }
111
112 // Destructor
114 {
115 if (m_ownTracks) {
116 for (TrackInVertexList::iterator i = m_tracks->begin();
117 i != m_tracks->end();
118 ++i)
119 delete *i;
120 }
121 if(m_tracks!=NULL) delete m_tracks;
122 if(m_P!=NULL) delete m_P;
123 }
124
125 // Methods to retrieve data members
126
127 void algorithmId(const AlgoId id) { m_algId = id;}
128 AlgoId algorithmId() const { return m_algId;}
129
130 const HepGeom::Point3D<double>& position() const { return m_position; }
131 double chi2() const { return m_chiSquared; }
132 int ndof() const { return m_nDOF; }
133 const double* cov() const { return &m_cov[0];}
134
136 const TrackInVertexList* tracks() const { return m_tracks; }
137 double x() const { return m_x; }
138 double y() const { return m_y; }
139 double z() const { return m_z; }
140
141 double mass() const { return m_mass; }
142 double massVariance() const { return m_massVar; }
143 const TrigInDetTrackFitPar* getMotherTrack() const { return m_P;}
144
145 double energyFraction() const { return m_energyFraction; }
146 int nTwoTracksSecVtx() const { return m_nTwoTracksSecVtx; }
147 double decayLength() const { return m_decayLength; }
149
150 // Methods to set data members
151
152 void setMass (double m) { m_mass = m; }
153 void setMassVariance (double m) { m_massVar = m; }
155
156 void setEnergyFraction (double e) { m_energyFraction = e; }
158
159 void setDecayLength (double v) {m_decayLength = v;}
161
162 private:
163 friend class TrigVertexCnv_p1;
164 friend class TrigVertexCnv_p2;
165
166
168 double m_cov[6];
169
171
173
176
177 HepGeom::Point3D<double> m_position;
184
185};
186
187std::string str( const TrigVertex& v ); //<! printing helper
188MsgStream& operator<< ( MsgStream& m, const TrigVertex& v ); //<! printing helper (wraps above)
189bool operator== ( const TrigVertex& a, const TrigVertex& b );
190inline bool operator!= ( const TrigVertex& a, const TrigVertex& b ) { return !(a==b); }
191
199void diff( const TrigVertex& a, const TrigVertex& b, std::map<std::string, double>& variableChange );
200
201
202CLASS_DEF( TrigVertex , 224516498 , 1 )
203
204#endif // TRIGINDETEVENT_TRIGVERTEX_H
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
static Double_t a
static Double_t P(Double_t *tt, Double_t *par)
bool operator==(const TrigVertex &a, const TrigVertex &b)
void diff(const TrigVertex &a, const TrigVertex &b, std::map< std::string, double > &variableChange)
comparison with feedback Function compares two objects and returns "semi verbose" output in the form ...
std::list< const TrigInDetTrack * > TrackInVertexList
Definition TrigVertex.h:26
MsgStream & operator<<(MsgStream &m, const TrigVertex &v)
bool operator!=(const TrigVertex &a, const TrigVertex &b)
Definition TrigVertex.h:190
encapsulates LVL2 track parameters and covariance matrix The vector of track parameters consists of
encapsulates LVL2 vertex parameters (in the global reference frame), covariance matrix,...
Definition TrigVertex.h:28
double mass() const
vertex mass estimated after the vertex fit
Definition TrigVertex.h:141
void setDecayLength(double v)
Definition TrigVertex.h:159
TrigVertex(double zPosition, AlgoId id)
Definition TrigVertex.h:61
double m_energyFraction
energy ratio E(secondary vertex)/E(jet)
Definition TrigVertex.h:170
double chi2() const
of the vertex fit
Definition TrigVertex.h:131
double m_mass
Definition TrigVertex.h:167
void setDecayLengthSignificance(double v)
Definition TrigVertex.h:160
double massVariance() const
variance of the vertex mass estimate
Definition TrigVertex.h:142
double decayLength() const
decay length to the primary vertex used to find this secondary vertex
Definition TrigVertex.h:147
const HepGeom::Point3D< double > & position() const
position in HepGeom::Point3D<double> form
Definition TrigVertex.h:130
double m_x
Definition TrigVertex.h:167
double decayLengthSignificance() const
decay length divided by its error
Definition TrigVertex.h:148
AlgoId m_algId
Definition TrigVertex.h:181
TrackInVertexList * tracks()
std::list of track pointers associated with the vertex
Definition TrigVertex.h:135
double energyFraction() const
energy ratio E(secondary vertex)/E(jet)
Definition TrigVertex.h:145
double m_chiSquared
Definition TrigVertex.h:178
TrigVertex(double x, double y, double z, double cv[6], double chi2, int ndf, TrackInVertexList *tracks, double mass, double energyFraction, int n2trkvtx, double decayLength, double decayLengthSignificance, AlgoId algo_id)
Definition TrigVertex.h:95
const TrackInVertexList * tracks() const
std::list of track pointers associated with the vertex
Definition TrigVertex.h:136
@ BSSPLITSITRACKID
Definition TrigVertex.h:32
@ HISTOPRMVTXFTKIDTAU
Definition TrigVertex.h:35
@ HISTOPRMVTXIDSCANID
Definition TrigVertex.h:32
@ BSFULL_STRATEGY_F_ID
Definition TrigVertex.h:35
@ BSFULLSITRACKID
Definition TrigVertex.h:32
@ BSFULL_STRATEGY_A_ID
Definition TrigVertex.h:34
@ HISTOPRMVTXSITRACKID
Definition TrigVertex.h:31
@ BSSPLIT_STRATEGY_A_ID
Definition TrigVertex.h:34
@ HISTOPRMVTXEFID
Definition TrigVertex.h:33
@ BSSPLITIDSCANID
Definition TrigVertex.h:32
@ HISTOPRMVTXFTKID_REFIT
Definition TrigVertex.h:36
@ HISTOPRMVTXFTKID
Definition TrigVertex.h:35
@ BSSPLIT_STRATEGY_B_ID
Definition TrigVertex.h:34
@ BSFULL_STRATEGY_B_ID
Definition TrigVertex.h:34
@ HISTOPRMVTXSITRACKIDTAU
Definition TrigVertex.h:33
@ HISTOPRMVTXEFIDTAU
Definition TrigVertex.h:33
@ BSSPLIT_STRATEGY_F_ID
Definition TrigVertex.h:35
const TrigInDetTrackFitPar * m_P
Definition TrigVertex.h:182
TrigVertex(double zPosition, double cv, AlgoId id)
Definition TrigVertex.h:72
int m_nTwoTracksSecVtx
number of 2-track vertices
Definition TrigVertex.h:172
const TrigInDetTrackFitPar * getMotherTrack() const
parameters of a mother particle reconstructed after the vertex fit
Definition TrigVertex.h:143
double m_decayLengthSignificance
Definition TrigVertex.h:175
double x() const
x-position
Definition TrigVertex.h:137
void setMotherTrack(const TrigInDetTrackFitPar *P)
Definition TrigVertex.h:154
int ndof() const
Number of degree-of-freedom of the vertex fit.
Definition TrigVertex.h:132
double z() const
z-position
Definition TrigVertex.h:139
int nTwoTracksSecVtx() const
number of 2-track vertices
Definition TrigVertex.h:146
TrigVertex(double x, double y, double z, double cv[6], double chi2, int ndf, TrackInVertexList *tracks)
Definition TrigVertex.h:84
double m_z
Definition TrigVertex.h:167
bool m_ownTracks
Definition TrigVertex.h:183
void setEnergyFraction(double e)
Definition TrigVertex.h:156
friend class TrigVertexCnv_p2
Definition TrigVertex.h:164
const double * cov() const
covariance of the vertex position, packed as follows
Definition TrigVertex.h:133
void setMass(double m)
Definition TrigVertex.h:152
friend class TrigVertexCnv_p1
Definition TrigVertex.h:163
double m_cov[6]
Definition TrigVertex.h:168
double y() const
y-position
Definition TrigVertex.h:138
TrackInVertexList * m_tracks
Definition TrigVertex.h:180
void algorithmId(const AlgoId id)
sets author ID - algorithm that's created this vertex
Definition TrigVertex.h:127
AlgoId algorithmId() const
returns author ID - algorithm that's created this vertex
Definition TrigVertex.h:128
double m_decayLength
Definition TrigVertex.h:174
TrigVertex(double zPosition)
Definition TrigVertex.h:50
double m_y
Definition TrigVertex.h:167
void setNTwoTrackSecVtx(int n)
Definition TrigVertex.h:157
HepGeom::Point3D< double > m_position
Definition TrigVertex.h:177
void setMassVariance(double m)
Definition TrigVertex.h:153
double m_massVar
Definition TrigVertex.h:167