ATLAS Offline Software
Loading...
Searching...
No Matches
EMConvert.h
Go to the documentation of this file.
1// dear emacs, this is -*- C++ -*-
2
3/*
4 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5*/
6
7#ifndef EGAMMAEVENT_EMCONVERT_H
8#define EGAMMAEVENT_EMCONVERT_H 1
14/********************************************************************
15NAME: EMConvert.h
16PACKAGE: offline/Reconstruction/egammaEvent
17// EM convert property class data class.
18// it is empty until the converted tracks are available.
19//
20// Updated September 22, 2005 by Dave Joffe
21 Jun 14, 2007 (FD) Doxygen documentation
22 Jul 30, 2010 (JM) Add ambiguity result
23********************************************************************/
24
27
28#include <vector>
29
30namespace Trk{
31 class VxCandidate;
32}
33
34class EMConvert : public egDetail
35{
36 public:
37
39 EMConvert();
40
42 virtual ~EMConvert() = default;
43 virtual const std::string& className() const;
44
46 virtual double parameter(egammaParameters::ParamDef) const ;
48 void set_parameter(egammaParameters::ParamDef, double, bool overwrite=false) ;
49
50 virtual bool boolParameter(egammaParameters::ParamDef) const ;
51 virtual int intParameter(egammaParameters::ParamDef) const ;
52 virtual bool hasParameter(egammaParameters::ParamDef) const ;
55
56 void print() const;
57
58/* /\** @brief fill the details from a Trk::VxCandidate *\/ */
59 void fillVxDetails(const Trk::VxCandidate *vxCand, int trkAuthor);
60
63
64 // return values of conversion parameters
66 bool convTrackMatch() const;
68 bool convAngleMatch() const;
69
71 double convMatchDeltaEta1() const;
73 double convMatchDeltaPhi1() const;
75 double convMatchDeltaEta2() const;
77 double convMatchDeltaPhi2() const;
78
80 double convMatchDeltaEta1_refit() const;
82 double convMatchDeltaPhi1_refit() const;
84 double convMatchDeltaEta2_refit() const;
86 double convMatchDeltaPhi2_refit() const;
87
89 double vertex_x() const;
90 double vertex_y() const;
91 double vertex_z() const;
93 double vertex_Covxx() const;
94 double vertex_Covxy() const;
95 double vertex_Covxz() const;
96 double vertex_Covyy() const;
97 double vertex_Covyz() const;
98 double vertex_Covzz() const;
100 double vertex_chi2() const;
101 int vertex_ndf() const;
102 int vertex_numTracks() const;
103
105 double vertex_track1_phi() const;
106 double vertex_track1_theta() const;
107 double vertex_track1_qOverP() const;
109 double vertex_track1_chi2() const;
111 int vertex_track1_author() const;
112
114 double vertex_track2_phi() const;
115 double vertex_track2_theta() const;
116 double vertex_track2_qOverP() const;
118 double vertex_track2_chi2() const;
120 int vertex_track2_author() const;
121
123 double vertex_Covd01d01() const;
124 double vertex_Covd01z01() const;
125 double vertex_Covd01phi1() const;
126 double vertex_Covd01theta1() const;
127 double vertex_Covd01qOverP1() const;
128 double vertex_Covz01z01() const;
129 double vertex_Covz01phi1() const;
130 double vertex_Covz01theta1() const;
131 double vertex_Covz01qOverP1() const;
132 double vertex_Covphi1phi1() const;
133 double vertex_Covphi1theta1() const;
134 double vertex_Covphi1qOverP1() const;
135 double vertex_Covtheta1theta1() const;
136 double vertex_Covtheta1qOverP1() const;
137 double vertex_CovqOverP1qOverP1() const;
138 double vertex_Covphi1phi2() const;
139 double vertex_Covphi1theta2() const;
140 double vertex_Covphi1qOverP2() const;
141 double vertex_Covtheta1phi2() const;
142 double vertex_Covtheta1theta2() const;
143 double vertex_Covtheta1qOverP2() const;
144 double vertex_CovqOverP1phi2() const;
145 double vertex_CovqOverP1theta2() const;
146 double vertex_CovqOverP1qOverP2() const;
147 double vertex_Covphi1x() const;
148 double vertex_Covphi1y() const;
149 double vertex_Covphi1z() const;
150 double vertex_Covtheta1x() const;
151 double vertex_Covtheta1y() const;
152 double vertex_Covtheta1z() const;
153 double vertex_CovqOverP1x() const;
154 double vertex_CovqOverP1y() const;
155 double vertex_CovqOverP1z() const;
156 double vertex_Covd02d02() const;
157 double vertex_Covd02z02() const;
158 double vertex_Covd02phi2() const;
159 double vertex_Covd02theta2() const;
160 double vertex_Covd02qOverP2() const;
161 double vertex_Covz02z02() const;
162 double vertex_Covz02phi2() const;
163 double vertex_Covz02theta2() const;
164 double vertex_Covz02qOverP2() const;
165 double vertex_Covphi2phi2() const;
166 double vertex_Covphi2theta2() const;
167 double vertex_Covphi2qOverP2() const;
168 double vertex_Covtheta2theta2() const;
169 double vertex_Covtheta2qOverP2() const;
170 double vertex_CovqOverP2qOverP2() const;
171 double vertex_Covphi2x() const;
172 double vertex_Covphi2y() const;
173 double vertex_Covphi2z() const;
174 double vertex_Covtheta2x() const;
175 double vertex_Covtheta2y() const;
176 double vertex_Covtheta2z() const;
177 double vertex_CovqOverP2x() const;
178 double vertex_CovqOverP2y() const;
179 double vertex_CovqOverP2z() const;
180 int ambiguityResult() const;
181 int linkIndex() const;
182
183 void set_convTrackMatch(bool);
184 void set_convAngleMatch(bool);
185 void set_convMatchDeltaEta1(double);
186 void set_convMatchDeltaPhi1(double);
187 void set_convMatchDeltaEta2(double);
188 void set_convMatchDeltaPhi2(double);
189 void set_convMatchDeltaEta1_refit(double);
190 void set_convMatchDeltaPhi1_refit(double);
191 void set_convMatchDeltaEta2_refit(double);
192 void set_convMatchDeltaPhi2_refit(double);
193 void set_vertex_x(double);
194 void set_vertex_y(double);
195 void set_vertex_z(double);
196 void set_vertex_Covxx(double);
197 void set_vertex_Covxy(double);
198 void set_vertex_Covxz(double);
199 void set_vertex_Covyy(double);
200 void set_vertex_Covyz(double);
201 void set_vertex_Covzz(double);
202 void set_vertex_chi2(double);
203 void set_vertex_ndf(int);
204 void set_vertex_numTracks(int);
205 void set_vertex_track1_phi(double);
206 void set_vertex_track1_theta(double);
207 void set_vertex_track1_qOverP(double);
208 void set_vertex_track1_chi2(double);
209 void set_vertex_track1_author(int);
210 void set_vertex_track2_phi(double);
211 void set_vertex_track2_theta(double);
212 void set_vertex_track2_qOverP(double);
213 void set_vertex_track2_chi2(double);
214 void set_vertex_track2_author(int);
215 void set_vertex_Covd01d01(double);
216 void set_vertex_Covd01z01(double);
217 void set_vertex_Covd01phi1(double);
218 void set_vertex_Covd01theta1(double);
219 void set_vertex_Covd01qOverP1(double);
220 void set_vertex_Covz01z01(double);
221 void set_vertex_Covz01phi1(double);
222 void set_vertex_Covz01theta1(double);
223 void set_vertex_Covz01qOverP1(double);
224 void set_vertex_Covphi1phi1(double);
225 void set_vertex_Covphi1theta1(double);
226 void set_vertex_Covphi1qOverP1(double);
227 void set_vertex_Covtheta1theta1(double);
228 void set_vertex_Covtheta1qOverP1(double);
229 void set_vertex_CovqOverP1qOverP1(double);
230 void set_vertex_Covphi1phi2(double);
231 void set_vertex_Covphi1theta2(double);
232 void set_vertex_Covphi1qOverP2(double);
233 void set_vertex_Covtheta1phi2(double);
234 void set_vertex_Covtheta1theta2(double);
235 void set_vertex_Covtheta1qOverP2(double);
236 void set_vertex_CovqOverP1phi2(double);
237 void set_vertex_CovqOverP1theta2(double);
238 void set_vertex_CovqOverP1qOverP2(double);
239 void set_vertex_Covphi1x(double);
240 void set_vertex_Covphi1y(double);
241 void set_vertex_Covphi1z(double);
242 void set_vertex_Covtheta1x(double);
243 void set_vertex_Covtheta1y(double);
244 void set_vertex_Covtheta1z(double);
245 void set_vertex_CovqOverP1x(double);
246 void set_vertex_CovqOverP1y(double);
247 void set_vertex_CovqOverP1z(double);
248 void set_vertex_Covd02d02(double);
249 void set_vertex_Covd02z02(double);
250 void set_vertex_Covd02phi2(double);
251 void set_vertex_Covd02theta2(double);
252 void set_vertex_Covd02qOverP2(double);
253 void set_vertex_Covz02z02(double);
254 void set_vertex_Covz02phi2(double);
255 void set_vertex_Covz02theta2(double);
256 void set_vertex_Covz02qOverP2(double);
257 void set_vertex_Covphi2phi2(double);
258 void set_vertex_Covphi2theta2(double);
259 void set_vertex_Covphi2qOverP2(double);
260 void set_vertex_Covtheta2theta2(double);
261 void set_vertex_Covtheta2qOverP2(double);
262 void set_vertex_CovqOverP2qOverP2(double);
263 void set_vertex_Covphi2x(double);
264 void set_vertex_Covphi2y(double);
265 void set_vertex_Covphi2z(double);
266 void set_vertex_Covtheta2x(double);
267 void set_vertex_Covtheta2y(double);
268 void set_vertex_Covtheta2z(double);
269 void set_vertex_CovqOverP2x(double);
270 void set_vertex_CovqOverP2y(double);
271 void set_vertex_CovqOverP2z(double);
272 void set_ambiguityResult(int);
273 void set_linkIndex(int);
274
275 private:
276
277
279 void fillDummy();
281 void fillVertex(const Trk::VxCandidate *vxCand);
282 void fillVxTracks(const Trk::VxCandidate *vxCand, int trkAuthor);
283
284 void set_parameterBool(egammaParameters::ParamDef, bool, bool overwrite=false) ;
285 void set_parameterInt(egammaParameters::ParamDef, int, bool overwrite=false) ;
286 std::vector< std::pair<egammaParameters::ParamDef,bool> > m_parametersBool;
287 std::vector< std::pair<egammaParameters::ParamDef,int> > m_parametersInt;
288 std::vector< std::pair<egammaParameters::ParamDef,double> > m_parameters;
289
291 AmgSymMatrix(3)* getVxPosErrorMatrix() const;
293 AmgSymMatrix(5) getTrk1ErrorMatrix() const;
295 AmgSymMatrix(5) getTrk2ErrorMatrix() const;
298
299};
300
301#endif
302
303
void set_convMatchDeltaEta1(double)
bool convAngleMatch() const
conversion angle matches egamma angle
void set_vertex_Covtheta1phi2(double)
void set_vertex_Covxy(double)
double vertex_CovqOverP2qOverP2() const
double vertex_Covphi2phi2() const
double vertex_Covd01d01() const
refitted track covariance matrix and correlations with vertex position
double vertex_Covxy() const
double vertex_Covphi1theta2() const
virtual const std::string & className() const
void set_convMatchDeltaPhi2(double)
double vertex_Covphi1phi1() const
void set_vertex_Covphi1qOverP1(double)
void set_vertex_Covyy(double)
void set_vertex_CovqOverP1phi2(double)
void set_vertex_Covtheta1y(double)
double vertex_track2_chi2() const
track2 chi2
void set_vertex_Covtheta1qOverP1(double)
void set_vertex_track1_chi2(double)
double convMatchDeltaEta2_refit() const
Delta eta of match between 2nd track and cluster (after refit)
void set_vertex_Covtheta1theta2(double)
double vertex_y() const
virtual bool boolParameter(egammaParameters::ParamDef) const
void set_vertex_Covz02z02(double)
void set_vertex_Covd02theta2(double)
virtual bool hasBoolParameter(egammaParameters::ParamDef) const
Definition EMConvert.cxx:49
void set_vertex_track2_qOverP(double)
void set_vertex_Covz01phi1(double)
void set_vertex_Covphi1theta1(double)
double vertex_Covphi2qOverP2() const
void fillDummy()
fill the details with dummy values (so we can avoid uninitialized values when the conversion refit is...
void set_parameter(egammaParameters::ParamDef, double, bool overwrite=false)
general parameter setting
void set_convTrackMatch(bool)
void set_vertex_CovqOverP1theta2(double)
void set_vertex_CovqOverP1y(double)
void set_convMatchDeltaEta1_refit(double)
double vertex_Covyz() const
double convMatchDeltaPhi2() const
Delta phi of match between 2nd track and cluster.
void set_vertex_Covd01theta1(double)
void set_vertex_track1_author(int)
double vertex_Covz01qOverP1() const
void set_convMatchDeltaEta2(double)
void set_parameterBool(egammaParameters::ParamDef, bool, bool overwrite=false)
double vertex_Covtheta2y() const
void set_vertex_Covtheta1theta1(double)
void set_convMatchDeltaPhi1_refit(double)
void set_vertex_Covphi2qOverP2(double)
double convMatchDeltaPhi2_refit() const
Delta phi of match between 2nd track and cluster (after refit)
int linkIndex() const
double vertex_Covd01z01() const
double vertex_Covtheta2qOverP2() const
double vertex_Covz01theta1() const
std::vector< std::pair< egammaParameters::ParamDef, double > > m_parameters
Definition EMConvert.h:288
double vertex_Covd02qOverP2() const
int ambiguityResult() const
void set_vertex_Covd01z01(double)
void set_vertex_CovqOverP2z(double)
void set_vertex_CovqOverP1x(double)
void set_vertex_CovqOverP1z(double)
double convMatchDeltaPhi1_refit() const
Delta phi of match between track or photon and cluster (after refit)
void set_vertex_track2_chi2(double)
double vertex_Covd02z02() const
double vertex_Covtheta2theta2() const
double vertex_Covtheta1phi2() const
void set_vertex_Covphi1y(double)
double vertex_Covphi1qOverP2() const
void set_vertex_Covd01phi1(double)
int vertex_track2_author() const
track2 author
void set_vertex_track1_qOverP(double)
int vertex_ndf() const
double vertex_Covtheta2x() const
double vertex_Covyy() const
void set_vertex_Covyz(double)
void set_vertex_Covz01theta1(double)
double vertex_Covtheta1qOverP2() const
double vertex_z() const
double vertex_Covd02phi2() const
double vertex_Covphi1qOverP1() const
void print() const
double vertex_CovqOverP2y() const
double vertex_Covd01qOverP1() const
double vertex_Covz02z02() const
void set_vertex_numTracks(int)
double vertex_chi2() const
vertex fit quality
void set_vertex_CovqOverP2y(double)
int vertex_track1_author() const
track1 author
virtual double parameter(egammaParameters::ParamDef) const
general parameter retrieval
void set_vertex_CovqOverP1qOverP2(double)
double vertex_CovqOverP2z() const
double vertex_Covtheta1theta2() const
double vertex_Covtheta1y() const
double vertex_Covz02theta2() const
void set_vertex_track1_theta(double)
void set_vertex_Covphi1qOverP2(double)
double vertex_Covphi1y() const
AmgSymMatrix(3) *getVxPosErrorMatrix() const
get the vertex position error matrix from the stored egammaParameters
double vertex_Covtheta1theta1() const
double vertex_Covz01z01() const
double vertex_Covphi1theta1() const
double vertex_track1_phi() const
track1 global momentum (cartesian coordinates)
virtual bool hasIntParameter(egammaParameters::ParamDef) const
Definition EMConvert.cxx:55
void set_vertex_Covz02qOverP2(double)
double vertex_Covd02d02() const
void set_vertex_Covd02phi2(double)
void set_vertex_Covphi2y(double)
void set_vertex_y(double)
void set_parameterInt(egammaParameters::ParamDef, int, bool overwrite=false)
AmgSymMatrix(5) getTrk1ErrorMatrix() const
get the error matrix for the first track from the stored egammaParameters
double vertex_Covxx() const
vertex position covariance matrix (cartesian coordinates)
double convMatchDeltaEta1() const
Delta eta of match between track or photon and cluster.
void set_vertex_Covtheta2z(double)
void set_ambiguityResult(int)
double vertex_track2_phi() const
track2 global momentum (cartesian coordinates)
double vertex_Covd01theta1() const
void set_vertex_Covtheta2theta2(double)
double vertex_Covxz() const
void set_vertex_Covphi1z(double)
void set_vertex_Covtheta1qOverP2(double)
void set_linkIndex(int)
void set_vertex_Covz01qOverP1(double)
double vertex_Covphi1phi2() const
void set_vertex_Covtheta2y(double)
void set_vertex_Covzz(double)
bool convTrackMatch() const
conversion track matches egamma track
double vertex_Covtheta1qOverP1() const
void set_convMatchDeltaEta2_refit(double)
virtual ~EMConvert()=default
Destructor.
int vertex_numTracks() const
double vertex_Covz01phi1() const
EMConvert()
Default constructor.
Definition EMConvert.cxx:45
double vertex_Covtheta1z() const
double convMatchDeltaEta1_refit() const
Delta eta of match between track or photon and cluster (after refit)
void set_vertex_CovqOverP1qOverP1(double)
double vertex_Covphi2z() const
double vertex_Covphi2theta2() const
void set_convMatchDeltaPhi1(double)
void set_vertex_z(double)
double vertex_Covphi2x() const
void set_convAngleMatch(bool)
void set_vertex_Covd01d01(double)
void fillVxTracks(const Trk::VxCandidate *vxCand, int trkAuthor)
double vertex_track1_theta() const
void set_vertex_CovqOverP2qOverP2(double)
double vertex_Covz02qOverP2() const
void set_vertex_Covz01z01(double)
void set_vertex_Covphi1phi1(double)
double vertex_track1_chi2() const
track1 chi2
void set_vertex_chi2(double)
double vertex_Covphi1z() const
double vertex_Covtheta2z() const
void set_vertex_Covphi1x(double)
void set_vertex_x(double)
double vertex_Covphi1x() const
double vertex_track1_qOverP() const
double vertex_Covd02theta2() const
double convMatchDeltaPhi1() const
Delta phi of match between track or photon and cluster.
void set_convMatchDeltaPhi2_refit(double)
double vertex_CovqOverP1z() const
Amg::MatrixX * getVxErrorMatrix() const
get the full vertex error matrix from the stored egammaParameters
void set_vertex_Covxx(double)
double vertex_Covd01phi1() const
void set_vertex_Covz02theta2(double)
std::vector< std::pair< egammaParameters::ParamDef, int > > m_parametersInt
Definition EMConvert.h:287
double vertex_Covtheta1x() const
double vertex_CovqOverP2x() const
void set_vertex_Covz02phi2(double)
void set_vertex_CovqOverP2x(double)
void set_vertex_track1_phi(double)
Trk::VxCandidate * getVxCandidate() const
get the VxCandidate from the stored egammaParameters
void set_vertex_Covd02d02(double)
double vertex_track2_qOverP() const
void set_vertex_Covd02z02(double)
void set_vertex_Covtheta2qOverP2(double)
void set_vertex_Covtheta1x(double)
void set_vertex_track2_theta(double)
double convMatchDeltaEta2() const
Delta eta of match between 2nd track and cluster.
double vertex_CovqOverP1y() const
void fillVxDetails(const Trk::VxCandidate *vxCand, int trkAuthor)
void set_vertex_Covd02qOverP2(double)
double vertex_Covz02phi2() const
void set_vertex_Covphi1theta2(double)
double vertex_Covphi2y() const
void set_vertex_Covd01qOverP1(double)
double vertex_CovqOverP1theta2() const
double vertex_x() const
vertex position (cartesian coordinates)
void set_vertex_track2_author(int)
void set_vertex_Covxz(double)
virtual bool hasParameter(egammaParameters::ParamDef) const
Definition EMConvert.cxx:65
void set_vertex_ndf(int)
double vertex_Covzz() const
void set_vertex_Covphi2theta2(double)
virtual int intParameter(egammaParameters::ParamDef) const
void set_vertex_Covtheta1z(double)
double vertex_track2_theta() const
std::vector< std::pair< egammaParameters::ParamDef, bool > > m_parametersBool
Definition EMConvert.h:286
void fillVertex(const Trk::VxCandidate *vxCand)
fill the vertex variables from a Trk::VxCandidate *\/
void set_vertex_Covphi2z(double)
double vertex_CovqOverP1qOverP2() const
void set_vertex_track2_phi(double)
double vertex_CovqOverP1qOverP1() const
double vertex_CovqOverP1x() const
void set_vertex_Covphi2phi2(double)
void set_vertex_Covtheta2x(double)
void set_vertex_Covphi1phi2(double)
double vertex_CovqOverP1phi2() const
void set_vertex_Covphi2x(double)
egDetail()=default
Default constructor.
Definition of ATLAS Math & Geometry primitives (Amg)
Ensure that the ATLAS eigen extensions are properly loaded.