ATLAS Offline Software
VxSecVKalVertexInfo.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  VxSecVKalVertexInfo.h - Description
8  -------------------
9 
10  begin: March 2007
11  authors: CSC vertexing note group members :-)
12  work started by: Giacinto Piacquadio (University of Freiburg)
13  e-mail: giacinto.piacquadio@physik.uni-freiburg.de
14  changes: new!
15 
16 Class which inherits from VxSecVertexInfo and contains the additional
17 information VKalVrt is able to provide:
18 1) mass
19 2) energyFraction
20 3) two track vertices used for seeding
21 4) list of "bad" tracks
22 5) list of tracks from V0s
23 6) Jet track energy - needed for multivertex fit
24 
25 
26  April 2014: Migration to xAOD::Vertex and xAOD::IParticle
27 
28  VxSecVKalVertexInfo owns m_pseudoVertex!
29 
30 ********************************************/
31 
32 #ifndef VXSECVERTEX_VXSECVKALVERTEXINFO_H
33 #define VXSECVERTEX_VXSECVKALVERTEXINFO_H
34 
35 #include "AthLinks/ElementLink.h"
39 #include <vector>
41 
42 
43 namespace Trk {
44 
45  class VxSecVKalVertexInfo : public VxSecVertexInfo {
46 
47  public:
48 
49  /* default constructor for persistency */
51 
52  /* constructor with everything for Trk::TrackParticleBase + jet energy */
53  VxSecVKalVertexInfo(const std::vector<xAOD::Vertex*> & vertices,
54  double mass,double energyFraction,int n2trackvertices, double energyTrkInJet,
55  const std::vector<const Trk::TrackParticleBase*> & badTracks);
56 
57  /* constructor with everything for xAOD::IParticle + jet energy */
58  VxSecVKalVertexInfo(const std::vector<xAOD::Vertex*> & vertices,
59  double mass,double energyFraction,int n2trackvertices, double energyTrkInJet,
60  const std::vector<const xAOD::IParticle*> & badTracks);
61 
62  /* constructor for non-standard pseudo-vertex in a jet*/
64  double mass,double energyFraction,int nBigImpTrk,
65  const std::vector<const xAOD::IParticle*> & badTracks);
66 
67  /* copy constructor */
69 
70  /* clone method */
71  virtual VxSecVKalVertexInfo* clone() const;
72 
73  /* assignment operator */
75 
76  /* destructor */
77  virtual ~VxSecVKalVertexInfo();
78 
79  /* get mass */
80  double mass() const;
81 
82  /* get energyFraction */
83  double energyFraction() const;
84 
85  /* get energy of all tracks in jet */
86  double energyTrkInJet() const;
87 
88  /* get minimal distance to any material layer */
89  double dstToMatLay() const;
90 
91  /* set minimal distance to any material layer */
92  void setDstToMatLay(double Value);
93 
94  /* get number of 2track vertices */
95  int n2trackvertices() const;
96 
97  /* get number of tracks with big impact */
98  int nBigImpTracks() const;
99 
100  /* get pseudo-vertex when normal vertices are absent*/
101  const xAOD::Vertex* pseudoVertex() const;
102 
103  /* get list of bad TP */
104  std::vector<const Trk::TrackParticleBase*> badTracksTP() const;
105 
106  /* get list of bad Tracks */
107  std::vector<const xAOD::IParticle*> badTracksIP() const;
108 
109  /* set origin collection for IParticle */
110  void setIParticleOrigin(const xAOD::IParticleContainer* iparticleTES);
111 
112  /* set origin collectino for TrackParticle */
114 
115 
116  private:
117 
118  double m_mass;
119  double m_energyFraction;
120  double m_energyTrkInJet;
121  double m_dstToMatLayer;
122  int m_n2trackvertices;
123  int m_nBigImpTracks;
124  std::vector<ElementLink<Trk::TrackParticleBaseCollection> > m_badTracksTP;
125  std::vector<ElementLink<xAOD::IParticleContainer> > m_badTracksIP;
126 
128 
129  };
130 
131 
132  inline double VxSecVKalVertexInfo::mass() const {
133  return m_mass;
134  }
135 
136  inline double VxSecVKalVertexInfo::energyFraction() const {
137  return m_energyFraction;
138  }
139 
140  inline double VxSecVKalVertexInfo::energyTrkInJet() const {
141  return m_energyTrkInJet;
142  }
143 
144  inline double VxSecVKalVertexInfo::dstToMatLay() const {
145  return m_dstToMatLayer;
146  }
147  /* set minimal distance to any material layer */
148  inline void VxSecVKalVertexInfo::setDstToMatLay(double Value) {
150  }
151 
152  inline int VxSecVKalVertexInfo::n2trackvertices() const {
153  return m_n2trackvertices;
154  }
155 
156  inline int VxSecVKalVertexInfo::nBigImpTracks() const {
158  }
159 
160  inline const xAOD::Vertex* VxSecVKalVertexInfo::pseudoVertex() const {
162  }
163 
164  /* clone method */
166  return new VxSecVKalVertexInfo(*this);
167  }
168 
169 
170 }//end namespace Trk
171 
172 #endif
Trk::VxSecVKalVertexInfo::~VxSecVKalVertexInfo
virtual ~VxSecVKalVertexInfo()
Definition: VxSecVKalVertexInfo.cxx:140
Trk::VxSecVKalVertexInfo::nBigImpTracks
int nBigImpTracks() const
Definition: VxSecVKalVertexInfo.h:181
TrackParticleBaseCollection.h
Trk::VxSecVKalVertexInfo::m_badTracksTP
std::vector< ElementLink< Trk::TrackParticleBaseCollection > > m_badTracksTP
Definition: VxSecVKalVertexInfo.h:174
Trk::VxSecVKalVertexInfo::setDstToMatLay
void setDstToMatLay(double Value)
Definition: VxSecVKalVertexInfo.h:173
Trk::VxSecVKalVertexInfo::m_energyFraction
double m_energyFraction
Definition: VxSecVKalVertexInfo.h:169
Trk::VxSecVKalVertexInfo::n2trackvertices
int n2trackvertices() const
Definition: VxSecVKalVertexInfo.h:177
Trk::VxSecVKalVertexInfo::VxSecVKalVertexInfo
VxSecVKalVertexInfo()
Definition: VxSecVKalVertexInfo.cxx:39
Trk::VxSecVertexInfo::vertices
const std::vector< xAOD::Vertex * > & vertices() const
Definition: VxSecVertexInfo.cxx:100
Value
tag-value pair class.
Definition: Value.h:39
Trk::VxSecVKalVertexInfo::badTracksTP
std::vector< const Trk::TrackParticleBase * > badTracksTP() const
Definition: VxSecVKalVertexInfo.cxx:143
Trk::VxSecVKalVertexInfo::setTrackParticleOrigin
void setTrackParticleOrigin(const Trk::TrackParticleBaseCollection *trkpartTES)
Definition: VxSecVKalVertexInfo.cxx:181
Trk::VxSecVKalVertexInfo::m_energyTrkInJet
double m_energyTrkInJet
Definition: VxSecVKalVertexInfo.h:170
Trk::VxSecVKalVertexInfo::m_dstToMatLayer
double m_dstToMatLayer
Definition: VxSecVKalVertexInfo.h:171
Trk::VxSecVKalVertexInfo::mass
double mass() const
Definition: VxSecVKalVertexInfo.h:157
Trk::VxSecVKalVertexInfo::m_n2trackvertices
int m_n2trackvertices
Definition: VxSecVKalVertexInfo.h:172
Trk::VxSecVKalVertexInfo::m_badTracksIP
std::vector< ElementLink< xAOD::IParticleContainer > > m_badTracksIP
Definition: VxSecVKalVertexInfo.h:175
Trk::VxSecVKalVertexInfo::m_mass
double m_mass
Definition: VxSecVKalVertexInfo.h:168
IParticleContainer.h
Trk::VxSecVKalVertexInfo::operator=
VxSecVKalVertexInfo & operator=(const VxSecVKalVertexInfo &)
Definition: VxSecVKalVertexInfo.cxx:123
VxSecVertexInfo.h
Trk::VxSecVKalVertexInfo::dstToMatLay
double dstToMatLay() const
Definition: VxSecVKalVertexInfo.h:169
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
Trk::VxSecVKalVertexInfo::badTracksIP
std::vector< const xAOD::IParticle * > badTracksIP() const
Definition: VxSecVKalVertexInfo.cxx:162
Trk::VxSecVKalVertexInfo::energyTrkInJet
double energyTrkInJet() const
Definition: VxSecVKalVertexInfo.h:165
Trk::VxSecVKalVertexInfo::m_nBigImpTracks
int m_nBigImpTracks
Definition: VxSecVKalVertexInfo.h:173
Trk::VxSecVKalVertexInfo::pseudoVertex
const xAOD::Vertex * pseudoVertex() const
Definition: VxSecVKalVertexInfo.h:185
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::VxSecVKalVertexInfo::m_pseudoVertex
const xAOD::Vertex * m_pseudoVertex
Definition: VxSecVKalVertexInfo.h:177
Trk::VxSecVKalVertexInfo::energyFraction
double energyFraction() const
Definition: VxSecVKalVertexInfo.h:161
Trk::VxSecVKalVertexInfo
Definition: VxSecVKalVertexInfo.h:70
Trk::VxSecVKalVertexInfo::setIParticleOrigin
void setIParticleOrigin(const xAOD::IParticleContainer *iparticleTES)
Definition: VxSecVKalVertexInfo.cxx:193
Trk::VxSecVKalVertexInfo::clone
virtual VxSecVKalVertexInfo * clone() const
Definition: VxSecVKalVertexInfo.h:190
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
checker_macros.h
Define macros for attributes used to control the static checker.