ATLAS Offline Software
Loading...
Searching...
No Matches
EMConvert.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5/********************************************************************
6
7NAME: EMConvert.cxx
8PACKAGE: offline/Reconstruction/egammaEvent
9
10AUTHORS: David Joffe
11CREATED: Oct. 5, 2005
12
13PURPOSE: object containing information about conversions
14UPDATED: Jul 30, 2010 (JM) Add ambiguity result
15
16********************************************************************/
17
18// INCLUDE HEADER FILES:
19
20#include <cmath>
21
23
24#include "GaudiKernel/GaudiException.h"
26
30#include "VxVertex/RecVertex.h"
33
34
35//using CLHEP::Hep3Vector;
36
37
38// END OF HEADER FILES INCLUDE
39
40// ----------------------------
41// Constructor
42// ----------------------------
43
44// give default values
48
50 if (key == egammaParameters::convTrackMatch) return true;
51 if (key == egammaParameters::convAngleMatch) return true;
52 return false;
53}
54
56 if (key == egammaParameters::refittedVertex_ndf) return true;
57 if (key == egammaParameters::refittedVertex_numTracks) return true;
60 if (key == egammaParameters::ambiguityResult) return true;
61 if (key == egammaParameters::linkIndex) return true;
62 return false;
63}
64
66 if(hasBoolParameter(key)) return true;
67 if(hasIntParameter(key)) return true;
68 if (key == egammaParameters::refittedVertex_x) return true;
69 if (key == egammaParameters::refittedVertex_y) return true;
70 if (key == egammaParameters::refittedVertex_z) return true;
71 if (key == egammaParameters::refittedVertex_Covxx) return true;
72 if (key == egammaParameters::refittedVertex_Covxy) return true;
73 if (key == egammaParameters::refittedVertex_Covxz) return true;
74 if (key == egammaParameters::refittedVertex_Covyy) return true;
75 if (key == egammaParameters::refittedVertex_Covyz) return true;
76 if (key == egammaParameters::refittedVertex_Covzz) return true;
77 if (key == egammaParameters::refittedVertex_chi2) return true;
78 if (key == egammaParameters::refittedVertex_track1_phi) return true;
82 if (key == egammaParameters::refittedVertex_track2_phi) return true;
86 if (key == egammaParameters::refittedVertex_Covd01d01) return true;
87 if (key == egammaParameters::refittedVertex_Covd01z01) return true;
88 if (key == egammaParameters::refittedVertex_Covd01phi1) return true;
91 if (key == egammaParameters::refittedVertex_Covz01z01) return true;
92 if (key == egammaParameters::refittedVertex_Covz01phi1) return true;
101 if (key == egammaParameters::refittedVertex_Covphi1phi2) return true;
110 if (key == egammaParameters::refittedVertex_Covphi1x) return true;
111 if (key == egammaParameters::refittedVertex_Covphi1y) return true;
112 if (key == egammaParameters::refittedVertex_Covphi1z) return true;
113 if (key == egammaParameters::refittedVertex_Covtheta1x) return true;
114 if (key == egammaParameters::refittedVertex_Covtheta1y) return true;
115 if (key == egammaParameters::refittedVertex_Covtheta1z) return true;
116 if (key == egammaParameters::refittedVertex_CovqOverP1x) return true;
117 if (key == egammaParameters::refittedVertex_CovqOverP1y) return true;
118 if (key == egammaParameters::refittedVertex_CovqOverP1z) return true;
119 if (key == egammaParameters::refittedVertex_Covd02d02) return true;
120 if (key == egammaParameters::refittedVertex_Covd02z02) return true;
121 if (key == egammaParameters::refittedVertex_Covd02phi2) return true;
122 if (key == egammaParameters::refittedVertex_Covd02theta2) return true;
124 if (key == egammaParameters::refittedVertex_Covz02z02) return true;
125 if (key == egammaParameters::refittedVertex_Covz02phi2) return true;
126 if (key == egammaParameters::refittedVertex_Covz02theta2) return true;
128 if (key == egammaParameters::refittedVertex_Covphi2phi2) return true;
134 if (key == egammaParameters::refittedVertex_Covphi2x) return true;
135 if (key == egammaParameters::refittedVertex_Covphi2y) return true;
136 if (key == egammaParameters::refittedVertex_Covphi2z) return true;
137 if (key == egammaParameters::refittedVertex_Covtheta2x) return true;
138 if (key == egammaParameters::refittedVertex_Covtheta2y) return true;
139 if (key == egammaParameters::refittedVertex_Covtheta2z) return true;
140 if (key == egammaParameters::refittedVertex_CovqOverP2x) return true;
141 if (key == egammaParameters::refittedVertex_CovqOverP2y) return true;
142 if (key == egammaParameters::refittedVertex_CovqOverP2z) return true;
143 if (key == egammaParameters::convMatchDeltaEta1) return true;
144 if (key == egammaParameters::convMatchDeltaPhi1) return true;
145 if (key == egammaParameters::convMatchDeltaEta2) return true;
146 if (key == egammaParameters::convMatchDeltaPhi2) return true;
147 if (key == egammaParameters::convMatchDeltaEta1_refit) return true;
148 if (key == egammaParameters::convMatchDeltaPhi1_refit) return true;
149 if (key == egammaParameters::convMatchDeltaEta2_refit) return true;
150 if (key == egammaParameters::convMatchDeltaPhi2_refit) return true;
151 return false;
152}
153
154//interfaces
155const std::string& EMConvert::className() const
156{
157 static const std::string s_name = ClassName<EMConvert>::name();
158 return s_name;
159}
160
162
163 if ( !hasParameter(key) )
165
166 if(hasBoolParameter(key)){
167 if ( boolParameter(key)) return 1.;
168 return 0;
169 }
170
171 if ( hasIntParameter(key) ) {
172 return (double) intParameter(key);
173 }
174
176 using elParams = std::pair<egammaParameters::ParamDef, double>;
177 std::vector<elParams>::const_iterator p = m_parameters.begin();
178
179 for (;p !=m_parameters.end(); ++p) {
180 if ( (*p).first == key ) {
181 result = (*p).second;
182 break;
183 }
184 }
185 return result;
186}
187
189
190 using elParams = std::pair<egammaParameters::ParamDef, bool>;
191
192 bool result = false;
193 std::vector<elParams>::const_iterator p = m_parametersBool.begin();
194
195 for (;p !=m_parametersBool.end(); ++p) {
196 if ( (*p).first == key ) {
197 result = (*p).second;
198 break;
199 }
200 }
201 return result;
202}
203
205
206
207 using elParams = std::pair<egammaParameters::ParamDef, int>;
208
210 std::vector<elParams>::const_iterator p = m_parametersInt.begin();
211
212 for (;p !=m_parametersInt.end(); ++p) {
213 if ( (*p).first == key ){
214 result = (*p).second;
215 break;
216 }
217 }
218 return result;
219}
220
221
222void EMConvert::set_parameter(egammaParameters::ParamDef key, double value, bool overwrite) {
223
224 if ( hasBoolParameter(key) ) {
225 if ( value != 0. )
226 set_parameterBool(key,true,overwrite);
227 else
228 set_parameterBool(key,false,overwrite);
229 }
230
231 if ( hasIntParameter(key) ) {
232 set_parameterInt(key,(int)value,overwrite);
233 }
234
235
236 using elParams = std::pair<egammaParameters::ParamDef, double>;
237 std::vector<elParams>::iterator p = m_parameters.begin();
238
239 for (;p !=m_parameters.end(); ++p) {
240 if ( (*p).first == key ) break;
241 }
242
243 if ( p == m_parameters.end() ) {
244 m_parameters.emplace_back(key,value);
245 }
246 else {
247 if ( overwrite ) {
248 (*p).second = value;
249 }
250 else {
251 throw GaudiException("parameter not saved", "EMConvert::set_parameter(...)", StatusCode::FAILURE);
252 }
253 }
254}
255
256
257void EMConvert::set_parameterBool(egammaParameters::ParamDef key, bool value, bool overwrite) {
258
259 using elParams = std::pair<egammaParameters::ParamDef, bool>;
260
261 std::vector<elParams>::iterator p = m_parametersBool.begin();
262
263 for (;p !=m_parametersBool.end(); ++p) {
264 if ( (*p).first == key ) break;
265 }
266
267 if ( p == m_parametersBool.end() ) {
268 m_parametersBool.emplace_back(key,value );
269 }
270 else {
271 if ( overwrite ) {
272 (*p).second = value;
273 }
274 else {
275 throw GaudiException("parameter not saved", "EMConvert::set_parameter(...)", StatusCode::FAILURE);
276 }
277 }
278}
279
280
281void EMConvert::set_parameterInt(egammaParameters::ParamDef key, int value, bool overwrite) {
282
283 using elParams = std::pair<egammaParameters::ParamDef, int>;
284
285 std::vector<elParams>::iterator p = m_parametersInt.begin();
286
287 for (;p !=m_parametersInt.end(); ++p) {
288 if ( (*p).first == key ) break;
289 }
290
291 if ( p == m_parametersInt.end() ) {
292 m_parametersInt.emplace_back(key,value );
293 }
294 else {
295 if ( overwrite ) {
296 (*p).second = value;
297 }
298 else {
299 throw GaudiException("parameter not saved", "EMConvert::set_parameter(...)", StatusCode::FAILURE);
300 }
301 }
302}
303
304
305// print track match quantities
306
307void
309{
310 std::cout << " EMConvert: convtrackmatch "<< boolParameter(egammaParameters::convTrackMatch) << std::endl;
311 std::cout << " EMConvert: convanglematch "<< boolParameter(egammaParameters::convAngleMatch) << std::endl;
312 std::cout << " EMConvert: convMatchDeltaEta1 "<< parameter(egammaParameters::convMatchDeltaEta1) << std::endl;
313 std::cout << " EMConvert: convMatchDeltaPhi1 "<< parameter(egammaParameters::convMatchDeltaPhi1) << std::endl;
314 std::cout << " EMConvert: convMatchDeltaEta2 "<< parameter(egammaParameters::convMatchDeltaEta2) << std::endl;
315 std::cout << " EMConvert: convMatchDeltaPhi2 "<< parameter(egammaParameters::convMatchDeltaPhi2) << std::endl;
316 std::cout << " EMConvert: convMatchDeltaEta1_refit "<< parameter(egammaParameters::convMatchDeltaEta1_refit) << std::endl;
317 std::cout << " EMConvert: convMatchDeltaPhi1_refit "<< parameter(egammaParameters::convMatchDeltaPhi1_refit) << std::endl;
318 std::cout << " EMConvert: convMatchDeltaEta2_refit "<< parameter(egammaParameters::convMatchDeltaEta2_refit) << std::endl;
319 std::cout << " EMConvert: convMatchDeltaPhi2_refit "<< parameter(egammaParameters::convMatchDeltaPhi2_refit) << std::endl;
320 std::cout << " EMConvert: vertex_x "<< parameter(egammaParameters::refittedVertex_x) << std::endl;
321 std::cout << " EMConvert: vertex_y "<< parameter(egammaParameters::refittedVertex_y) << std::endl;
322 std::cout << " EMConvert: vertex_z "<< parameter(egammaParameters::refittedVertex_z) << std::endl;
323 std::cout << " EMConvert: vertex_Covxx "<< parameter(egammaParameters::refittedVertex_Covxx) << std::endl;
324 std::cout << " EMConvert: vertex_Covxy "<< parameter(egammaParameters::refittedVertex_Covxy) << std::endl;
325 std::cout << " EMConvert: vertex_Covxz "<< parameter(egammaParameters::refittedVertex_Covxz) << std::endl;
326 std::cout << " EMConvert: vertex_Covyy "<< parameter(egammaParameters::refittedVertex_Covyy) << std::endl;
327 std::cout << " EMConvert: vertex_Covyz "<< parameter(egammaParameters::refittedVertex_Covyz) << std::endl;
328 std::cout << " EMConvert: vertex_Covzz "<< parameter(egammaParameters::refittedVertex_Covzz) << std::endl;
329 std::cout << " EMConvert: vertex_chi2 "<< parameter(egammaParameters::refittedVertex_chi2) << std::endl;
330 std::cout << " EMConvert: vertex_ndf "<< intParameter(egammaParameters::refittedVertex_ndf) << std::endl;
331 std::cout << " EMConvert: vertex_numTracks "<< intParameter(egammaParameters::refittedVertex_numTracks) << std::endl;
332 std::cout << " EMConvert: vertex_track1_phi "<< parameter(egammaParameters::refittedVertex_track1_phi) << std::endl;
333 std::cout << " EMConvert: vertex_track1_theta "<< parameter(egammaParameters::refittedVertex_track1_theta) << std::endl;
334 std::cout << " EMConvert: vertex_track1_qOverP "<< parameter(egammaParameters::refittedVertex_track1_qOverP) << std::endl;
335 std::cout << " EMConvert: vertex_track1_chi2 "<< parameter(egammaParameters::refittedVertex_track1_chi2) << std::endl;
336 std::cout << " EMConvert: vertex_track1_author "<< intParameter(egammaParameters::refittedVertex_track1_author) << std::endl;
337 std::cout << " EMConvert: vertex_track2_phi "<< parameter(egammaParameters::refittedVertex_track2_phi) << std::endl;
338 std::cout << " EMConvert: vertex_track2_theta "<< parameter(egammaParameters::refittedVertex_track2_theta) << std::endl;
339 std::cout << " EMConvert: vertex_track2_qOverP "<< parameter(egammaParameters::refittedVertex_track2_qOverP) << std::endl;
340 std::cout << " EMConvert: vertex_track2_chi2 "<< parameter(egammaParameters::refittedVertex_track2_chi2) << std::endl;
341 std::cout << " EMConvert: vertex_track2_author "<< intParameter(egammaParameters::refittedVertex_track2_author) << std::endl;
342 std::cout << " EMConvert: vertex_Covd01d01 "<< parameter(egammaParameters::refittedVertex_Covd01d01) << std::endl;
343 std::cout << " EMConvert: vertex_Covd01z01 "<< parameter(egammaParameters::refittedVertex_Covd01z01) << std::endl;
344 std::cout << " EMConvert: vertex_Covd01phi1 "<< parameter(egammaParameters::refittedVertex_Covd01phi1) << std::endl;
345 std::cout << " EMConvert: vertex_Covd01theta1 "<< parameter(egammaParameters::refittedVertex_Covd01theta1) << std::endl;
346 std::cout << " EMConvert: vertex_Covd01qOverP1 "<< parameter(egammaParameters::refittedVertex_Covd01qOverP1) << std::endl;
347 std::cout << " EMConvert: vertex_Covz01z01 "<< parameter(egammaParameters::refittedVertex_Covz01z01) << std::endl;
348 std::cout << " EMConvert: vertex_Covz01phi1 "<< parameter(egammaParameters::refittedVertex_Covz01phi1) << std::endl;
349 std::cout << " EMConvert: vertex_Covz01theta1 "<< parameter(egammaParameters::refittedVertex_Covz01theta1) << std::endl;
350 std::cout << " EMConvert: vertex_Covz01qOverP1 "<< parameter(egammaParameters::refittedVertex_Covz01qOverP1) << std::endl;
351 std::cout << " EMConvert: vertex_Covphi1phi1 "<< parameter(egammaParameters::refittedVertex_Covphi1phi1) << std::endl;
352 std::cout << " EMConvert: vertex_Covphi1theta1 "<< parameter(egammaParameters::refittedVertex_Covphi1theta1) << std::endl;
353 std::cout << " EMConvert: vertex_Covphi1qOverP1 "<< parameter(egammaParameters::refittedVertex_Covphi1qOverP1) << std::endl;
354 std::cout << " EMConvert: vertex_Covtheta1theta1 "<< parameter(egammaParameters::refittedVertex_Covtheta1theta1) << std::endl;
355 std::cout << " EMConvert: vertex_Covtheta1qOverP1 "<< parameter(egammaParameters::refittedVertex_Covtheta1qOverP1) << std::endl;
356 std::cout << " EMConvert: vertex_CovqOverP1qoverP1 "<< parameter(egammaParameters::refittedVertex_CovqOverP1qOverP1) << std::endl;
357 std::cout << " EMConvert: vertex_Covphi1phi2 "<< parameter(egammaParameters::refittedVertex_Covphi1phi2) << std::endl;
358 std::cout << " EMConvert: vertex_Covphi1heta2 "<< parameter(egammaParameters::refittedVertex_Covphi1theta2) << std::endl;
359 std::cout << " EMConvert: vertex_Covphi1qOverP2 "<< parameter(egammaParameters::refittedVertex_Covphi1qOverP2) << std::endl;
360 std::cout << " EMConvert: vertex_Covtheta1phi2 "<< parameter(egammaParameters::refittedVertex_Covtheta1phi2) << std::endl;
361 std::cout << " EMConvert: vertex_Covtheta1theta2 "<< parameter(egammaParameters::refittedVertex_Covtheta1theta2) << std::endl;
362 std::cout << " EMConvert: vertex_Covtheta1qOverP2 "<< parameter(egammaParameters::refittedVertex_Covtheta1qOverP2) << std::endl;
363 std::cout << " EMConvert: vertex_CovqOverP1phi2 "<< parameter(egammaParameters::refittedVertex_CovqOverP1phi2) << std::endl;
364 std::cout << " EMConvert: vertex_CovqOverP1theta2 "<< parameter(egammaParameters::refittedVertex_CovqOverP1theta2) << std::endl;
365 std::cout << " EMConvert: vertex_CovqOverP1qOverP2 "<< parameter(egammaParameters::refittedVertex_CovqOverP1qOverP2) << std::endl;
366 std::cout << " EMConvert: vertex_Covphi1x "<< parameter(egammaParameters::refittedVertex_Covphi1x) << std::endl;
367 std::cout << " EMConvert: vertex_Covphi1y "<< parameter(egammaParameters::refittedVertex_Covphi1y) << std::endl;
368 std::cout << " EMConvert: vertex_Covphi1z "<< parameter(egammaParameters::refittedVertex_Covphi1z) << std::endl;
369 std::cout << " EMConvert: vertex_Covtheta1x "<< parameter(egammaParameters::refittedVertex_Covtheta1x) << std::endl;
370 std::cout << " EMConvert: vertex_Covtheta1y "<< parameter(egammaParameters::refittedVertex_Covtheta1y) << std::endl;
371 std::cout << " EMConvert: vertex_Covtheta1z "<< parameter(egammaParameters::refittedVertex_Covtheta1z) << std::endl;
372 std::cout << " EMConvert: vertex_CovqOverP1x "<< parameter(egammaParameters::refittedVertex_CovqOverP1x) << std::endl;
373 std::cout << " EMConvert: vertex_CovqOverP1y "<< parameter(egammaParameters::refittedVertex_CovqOverP1y) << std::endl;
374 std::cout << " EMConvert: vertex_CovqOverP1z "<< parameter(egammaParameters::refittedVertex_CovqOverP1z) << std::endl;
375 std::cout << " EMConvert: vertex_Covd02d02 "<< parameter(egammaParameters::refittedVertex_Covd02d02) << std::endl;
376 std::cout << " EMConvert: vertex_Covd02z02 "<< parameter(egammaParameters::refittedVertex_Covd02z02) << std::endl;
377 std::cout << " EMConvert: vertex_Covd02phi2 "<< parameter(egammaParameters::refittedVertex_Covd02phi2) << std::endl;
378 std::cout << " EMConvert: vertex_Covd02theta2 "<< parameter(egammaParameters::refittedVertex_Covd02theta2) << std::endl;
379 std::cout << " EMConvert: vertex_Covd02qOverP2 "<< parameter(egammaParameters::refittedVertex_Covd02qOverP2) << std::endl;
380 std::cout << " EMConvert: vertex_Covz02z02 "<< parameter(egammaParameters::refittedVertex_Covz02z02) << std::endl;
381 std::cout << " EMConvert: vertex_Covz02phi2 "<< parameter(egammaParameters::refittedVertex_Covz02phi2) << std::endl;
382 std::cout << " EMConvert: vertex_Covz02theta2 "<< parameter(egammaParameters::refittedVertex_Covz02theta2) << std::endl;
383 std::cout << " EMConvert: vertex_Covz02qOverP2 "<< parameter(egammaParameters::refittedVertex_Covz02qOverP2) << std::endl;
384 std::cout << " EMConvert: vertex_Covphi2phi2 "<< parameter(egammaParameters::refittedVertex_Covphi2phi2) << std::endl;
385 std::cout << " EMConvert: vertex_Covphi2theta2 "<< parameter(egammaParameters::refittedVertex_Covphi2theta2) << std::endl;
386 std::cout << " EMConvert: vertex_Covphi2qOverP2 "<< parameter(egammaParameters::refittedVertex_Covphi2qOverP2) << std::endl;
387 std::cout << " EMConvert: vertex_Covtheta2theta2 "<< parameter(egammaParameters::refittedVertex_Covtheta2theta2) << std::endl;
388 std::cout << " EMConvert: vertex_Covtheta2qOverP2 "<< parameter(egammaParameters::refittedVertex_Covtheta2qOverP2) << std::endl;
389 std::cout << " EMConvert: vertex_CovqOverP2qOverP2 "<< parameter(egammaParameters::refittedVertex_CovqOverP2qOverP2) << std::endl;
390 std::cout << " EMConvert: vertex_Covphi2x "<< parameter(egammaParameters::refittedVertex_Covphi2x) << std::endl;
391 std::cout << " EMConvert: vertex_Covphi2y "<< parameter(egammaParameters::refittedVertex_Covphi2y) << std::endl;
392 std::cout << " EMConvert: vertex_Covphi2z "<< parameter(egammaParameters::refittedVertex_Covphi2z) << std::endl;
393 std::cout << " EMConvert: vertex_Covtheta2x "<< parameter(egammaParameters::refittedVertex_Covtheta2x) << std::endl;
394 std::cout << " EMConvert: vertex_Covtheta2y "<< parameter(egammaParameters::refittedVertex_Covtheta2y) << std::endl;
395 std::cout << " EMConvert: vertex_Covtheta2z "<< parameter(egammaParameters::refittedVertex_Covtheta2z) << std::endl;
396 std::cout << " EMConvert: vertex_CovqOverP2x "<< parameter(egammaParameters::refittedVertex_CovqOverP2x) << std::endl;
397 std::cout << " EMConvert: vertex_CovqOverP2y "<< parameter(egammaParameters::refittedVertex_CovqOverP2y) << std::endl;
398 std::cout << " EMConvert: vertex_CovqOverP2z "<< parameter(egammaParameters::refittedVertex_CovqOverP2z) << std::endl;
399 std::cout << " EMConvert: ambiguityResult "<< intParameter(egammaParameters::ambiguityResult) << std::endl;
400 std::cout << " EMConvert: linkIndex "<< intParameter(egammaParameters::linkIndex) << std::endl;
401}
402
403
404
405// return values for the different variables in the EMConvert object
406
498
499// set values for the different variables in the EMConvert object
500
592
593
595{
596 set_vertex_x(-999.);
597 set_vertex_y(-999.);
598 set_vertex_z(-999.);
599 set_vertex_Covxx(-999.);
600 set_vertex_Covxy(-999.);
601 set_vertex_Covxz(-999.);
602 set_vertex_Covyy(-999.);
603 set_vertex_Covyz(-999.);
604 set_vertex_Covzz(-999.);
605 set_vertex_chi2(-999.);
606 set_vertex_ndf(-999);
642 set_vertex_Covphi1x(-999.);
643 set_vertex_Covphi1y(-999.);
644 set_vertex_Covphi1z(-999.);
666 set_vertex_Covphi2x(-999.);
667 set_vertex_Covphi2y(-999.);
668 set_vertex_Covphi2z(-999.);
676 set_linkIndex(-999);
685}
686
687void EMConvert::fillVxDetails(const Trk::VxCandidate* vxCand, int trkAuthor)
688{
689 if(vxCand){
690 fillVxTracks(vxCand, trkAuthor);
691 fillVertex(vxCand);
692 } else {
693 throw GaudiException("Parameters not saved, no VxCandidate", "EMConvert::fillDetails(...)", StatusCode::FAILURE);
694 }
695}
696
698{
699 set_vertex_x(vxCand->recVertex().position().x());
700 set_vertex_y(vxCand->recVertex().position().y());
701 set_vertex_z(vxCand->recVertex().position().z());
702 set_vertex_Covxx(vxCand->recVertex().covariancePosition()(Trk::x, Trk::x));
703 set_vertex_Covxy(vxCand->recVertex().covariancePosition()(Trk::x, Trk::y));
704 set_vertex_Covxz(vxCand->recVertex().covariancePosition()(Trk::x, Trk::z));
705 set_vertex_Covyy(vxCand->recVertex().covariancePosition()(Trk::y, Trk::y));
706 set_vertex_Covyz(vxCand->recVertex().covariancePosition()(Trk::y, Trk::z));
707 set_vertex_Covzz(vxCand->recVertex().covariancePosition()(Trk::z, Trk::z));
710 std::vector<Trk::VxTrackAtVertex*> trks(*(vxCand->vxTrackAtVertex()));
711 int numTracksAtVertex = trks.size();
712 set_vertex_numTracks(numTracksAtVertex);
713 const Trk::ExtendedVxCandidate* evxCand = dynamic_cast<const Trk::ExtendedVxCandidate*>(vxCand);
714 if(evxCand){
715 const Amg::MatrixX *errMat = evxCand->fullCovariance();
716 set_vertex_Covphi1phi1((*errMat)(3,3));
717 set_vertex_Covphi1theta1((*errMat)(3,4));
718 set_vertex_Covphi1qOverP1((*errMat)(3,5));
719 set_vertex_Covtheta1theta1((*errMat)(4,4));
720 set_vertex_Covtheta1qOverP1((*errMat)(4,5));
721 set_vertex_CovqOverP1qOverP1((*errMat)(5,5));
722 set_vertex_Covphi1x((*errMat)(3,0));
723 set_vertex_Covphi1y((*errMat)(3,1));
724 set_vertex_Covphi1z((*errMat)(3,2));
725 set_vertex_Covtheta1x((*errMat)(4,0));
726 set_vertex_Covtheta1y((*errMat)(4,1));
727 set_vertex_Covtheta1z((*errMat)(4,2));
728 set_vertex_CovqOverP1x((*errMat)(5,0));
729 set_vertex_CovqOverP1y((*errMat)(5,1));
730 set_vertex_CovqOverP1z((*errMat)(5,2));
731 if(numTracksAtVertex>1){
732 set_vertex_Covphi1phi2((*errMat)(6,6));
733 set_vertex_Covphi1theta2((*errMat)(6,7));
734 set_vertex_Covphi1qOverP2((*errMat)(6,8));
735 set_vertex_Covtheta1phi2((*errMat)(4,6));
736 set_vertex_Covtheta1theta2((*errMat)(4,7));
737 set_vertex_Covtheta1qOverP2((*errMat)(4,8));
738 set_vertex_CovqOverP1phi2((*errMat)(5,6));
739 set_vertex_CovqOverP1theta2((*errMat)(5,7));
740 set_vertex_CovqOverP1qOverP2((*errMat)(5,8));
741 set_vertex_Covphi2phi2((*errMat)(6,6));
742 set_vertex_Covphi2theta2((*errMat)(6,7));
743 set_vertex_Covphi2qOverP2((*errMat)(6,8));
744 set_vertex_Covtheta2theta2((*errMat)(7,7));
745 set_vertex_Covtheta2qOverP2((*errMat)(7,8));
746 set_vertex_CovqOverP2qOverP2((*errMat)(8,8));
747 set_vertex_Covphi2x((*errMat)(6,0));
748 set_vertex_Covphi2y((*errMat)(6,1));
749 set_vertex_Covphi2z((*errMat)(6,2));
750 set_vertex_Covtheta2x((*errMat)(7,0));
751 set_vertex_Covtheta2y((*errMat)(7,1));
752 set_vertex_Covtheta2z((*errMat)(7,2));
753 set_vertex_CovqOverP2x((*errMat)(8,0));
754 set_vertex_CovqOverP2y((*errMat)(8,1));
755 set_vertex_CovqOverP2z((*errMat)(8,2));
756 }
757 }
758}
759
760void EMConvert::fillVxTracks(const Trk::VxCandidate* vxCand, int trkAuthor)
761{
762 std::vector<Trk::VxTrackAtVertex*> trks(*(vxCand->vxTrackAtVertex()));
763 int numTracksAtVertex = trks.size();
764 for(int i=0; i<numTracksAtVertex; i++){
765 if(i==0){
766 Trk::VxTrackAtVertex* trk = trks[i];
767 const Trk::TrackParameters* trkParams = trk->perigeeAtVertex();
769 set_vertex_track1_author(trkAuthor);
770 if(trkParams){
771 set_vertex_track1_phi(trkParams->parameters()[Trk::phi]);
772 set_vertex_track1_theta(trkParams->parameters()[Trk::theta]);
773 set_vertex_track1_qOverP(trkParams->parameters()[Trk::qOverP]);
774 const AmgSymMatrix(5)* errMat= trkParams->covariance();
775
776 if(errMat){
786 if(numTracksAtVertex<2){
793 }
794 }
795 }
796 }else if(i==1){
797 Trk::VxTrackAtVertex* trk = trks[i];
798 const Trk::TrackParameters* trkParams = trk->perigeeAtVertex();
800 set_vertex_track2_author(trkAuthor);
801 if(trkParams){
802 set_vertex_track2_phi(trkParams->parameters()[Trk::phi]);
803 set_vertex_track2_theta(trkParams->parameters()[Trk::theta]);
804 set_vertex_track2_qOverP(trkParams->parameters()[Trk::qOverP]);
805 const AmgSymMatrix(5)* errMat= trkParams->covariance();
806 if(errMat){
816 }
817 }
818 }
819 }
820}
821
822AmgSymMatrix(3)* EMConvert::getVxPosErrorMatrix() const
823{
824 // Make a 3x3 matrix that is filled with zero's alternatively we could fill it with the identity matrix;
825 // Chosen the identity matrix option
826 AmgSymMatrix(3)* hepSymMatrix = new AmgSymMatrix(3);
827 // Fill the matrix
828 hepSymMatrix->fillSymmetric(0,0, vertex_Covxx());
829 hepSymMatrix->fillSymmetric(0,1, vertex_Covxy());
830 hepSymMatrix->fillSymmetric(0,2, vertex_Covxz());
831 hepSymMatrix->fillSymmetric(1,1, vertex_Covyy());
832 hepSymMatrix->fillSymmetric(1,2, vertex_Covyz());
833 hepSymMatrix->fillSymmetric(2,2, vertex_Covzz());
834
835 return hepSymMatrix;
836
837}
838
839AmgSymMatrix(5) EMConvert::getTrk2ErrorMatrix() const
840{
841 AmgSymMatrix(5) hepSymMatrix;
842 // Fill the matrix
843 hepSymMatrix.fillSymmetric(0,0, vertex_Covd02d02());
844 hepSymMatrix.fillSymmetric(0,1, vertex_Covd02z02());
845 hepSymMatrix.fillSymmetric(0,2, vertex_Covd02phi2());
846 hepSymMatrix.fillSymmetric(0,3, vertex_Covd02theta2());
847 hepSymMatrix.fillSymmetric(0,4, vertex_Covd02qOverP2());
848 hepSymMatrix.fillSymmetric(1,1, vertex_Covz02z02());
849 hepSymMatrix.fillSymmetric(1,2, vertex_Covz02phi2());
850 hepSymMatrix.fillSymmetric(1,3, vertex_Covz02theta2());
851 hepSymMatrix.fillSymmetric(1,4, vertex_Covz02qOverP2());
852 hepSymMatrix.fillSymmetric(2,2, vertex_Covphi2phi2());
853 hepSymMatrix.fillSymmetric(2,3, vertex_Covphi2theta2());
854 hepSymMatrix.fillSymmetric(2,4, vertex_Covphi2qOverP2());
855 hepSymMatrix.fillSymmetric(3,3, vertex_Covtheta2theta2());
856 hepSymMatrix.fillSymmetric(3,4, vertex_Covtheta2qOverP2());
857 hepSymMatrix.fillSymmetric(4,4, vertex_CovqOverP2qOverP2());
858
859 return hepSymMatrix;
860}
861
862AmgSymMatrix(5) EMConvert::getTrk1ErrorMatrix() const
863{
864 AmgSymMatrix(5) hepSymMatrix;
865 // Fill the matrix
866 hepSymMatrix.fillSymmetric(0,0, vertex_Covd01d01());
867 hepSymMatrix.fillSymmetric(0,1, vertex_Covd01z01());
868 hepSymMatrix.fillSymmetric(0,2, vertex_Covd01phi1());
869 hepSymMatrix.fillSymmetric(0,3, vertex_Covd01theta1());
870 hepSymMatrix.fillSymmetric(0,4, vertex_Covd01qOverP1());
871 hepSymMatrix.fillSymmetric(1,1, vertex_Covz01z01());
872 hepSymMatrix.fillSymmetric(1,2, vertex_Covz01phi1());
873 hepSymMatrix.fillSymmetric(1,3, vertex_Covz01theta1());
874 hepSymMatrix.fillSymmetric(1,4, vertex_Covz01qOverP1());
875 hepSymMatrix.fillSymmetric(2,2, vertex_Covphi1phi1());
876 hepSymMatrix.fillSymmetric(2,3, vertex_Covphi1theta1());
877 hepSymMatrix.fillSymmetric(2,4, vertex_Covphi1qOverP1());
878 hepSymMatrix.fillSymmetric(3,3, vertex_Covtheta1theta1());
879 hepSymMatrix.fillSymmetric(3,4, vertex_Covtheta1qOverP1());
880 hepSymMatrix.fillSymmetric(4,4, vertex_CovqOverP1qOverP1());
881
882 return hepSymMatrix;
883}
884
885
886Amg::MatrixX* EMConvert::getVxErrorMatrix() const
887{
888 if(vertex_numTracks()>0){
889
890 Amg::MatrixX* hepSymMatrix = new Amg::MatrixX(9,9);
891
892 // Fill the matrix
893 hepSymMatrix->fillSymmetric(0,0, vertex_Covxx());
894 hepSymMatrix->fillSymmetric(0,1, vertex_Covxy());
895 hepSymMatrix->fillSymmetric(0,2, vertex_Covxz());
896 hepSymMatrix->fillSymmetric(0,3, vertex_Covphi1x());
897 hepSymMatrix->fillSymmetric(0,4, vertex_Covtheta1x());
898 hepSymMatrix->fillSymmetric(0,5, vertex_CovqOverP1x());
899 hepSymMatrix->fillSymmetric(0,6, vertex_Covphi2x());
900 hepSymMatrix->fillSymmetric(0,7, vertex_Covtheta2x());
901 hepSymMatrix->fillSymmetric(0,8, vertex_CovqOverP2x());
902 hepSymMatrix->fillSymmetric(1,1, vertex_Covyy());
903 hepSymMatrix->fillSymmetric(1,2, vertex_Covyz());
904 hepSymMatrix->fillSymmetric(1,3, vertex_Covphi1y());
905 hepSymMatrix->fillSymmetric(1,4, vertex_Covtheta1y());
906 hepSymMatrix->fillSymmetric(1,5, vertex_CovqOverP1y());
907 hepSymMatrix->fillSymmetric(1,6, vertex_Covphi2y());
908 hepSymMatrix->fillSymmetric(1,7, vertex_Covtheta2y());
909 hepSymMatrix->fillSymmetric(1,8, vertex_CovqOverP2y());
910 hepSymMatrix->fillSymmetric(2,2, vertex_Covzz());
911 hepSymMatrix->fillSymmetric(2,3, vertex_Covphi1z());
912 hepSymMatrix->fillSymmetric(2,4, vertex_Covtheta1z());
913 hepSymMatrix->fillSymmetric(2,5, vertex_CovqOverP1z());
914 hepSymMatrix->fillSymmetric(2,6, vertex_Covphi2z());
915 hepSymMatrix->fillSymmetric(2,7, vertex_Covtheta2z());
916 hepSymMatrix->fillSymmetric(2,8, vertex_CovqOverP2z());
917 hepSymMatrix->fillSymmetric(3,3, vertex_Covphi1phi1());
918 hepSymMatrix->fillSymmetric(3,4, vertex_Covphi1theta1());
919 hepSymMatrix->fillSymmetric(3,5, vertex_Covphi1qOverP1());
920 hepSymMatrix->fillSymmetric(3,6, vertex_Covphi1phi2());
921 hepSymMatrix->fillSymmetric(3,7, vertex_Covphi1theta2());
922 hepSymMatrix->fillSymmetric(3,8, vertex_Covphi1qOverP2());
923 hepSymMatrix->fillSymmetric(4,4, vertex_Covtheta1theta1());
924 hepSymMatrix->fillSymmetric(4,5, vertex_Covtheta1qOverP1());
925 hepSymMatrix->fillSymmetric(4,6, vertex_Covtheta1phi2());
926 hepSymMatrix->fillSymmetric(4,7, vertex_Covtheta1theta2());
927 hepSymMatrix->fillSymmetric(4,8, vertex_Covtheta1qOverP2());
928 hepSymMatrix->fillSymmetric(5,5, vertex_CovqOverP1qOverP1());
929 hepSymMatrix->fillSymmetric(5,6, vertex_CovqOverP1phi2());
930 hepSymMatrix->fillSymmetric(5,7, vertex_CovqOverP1theta2());
931 hepSymMatrix->fillSymmetric(5,8, vertex_CovqOverP1qOverP2());
932 hepSymMatrix->fillSymmetric(6,6, vertex_Covphi2phi2());
933 hepSymMatrix->fillSymmetric(6,7, vertex_Covphi2theta2());
934 hepSymMatrix->fillSymmetric(6,8, vertex_Covphi2qOverP2());
935 hepSymMatrix->fillSymmetric(7,7, vertex_Covtheta2theta2());
936 hepSymMatrix->fillSymmetric(7,8, vertex_Covtheta2qOverP2());
937 hepSymMatrix->fillSymmetric(8,8, vertex_CovqOverP2qOverP2());
938
939 return hepSymMatrix;
940
941 }
942 //Convert the CovarianceMatrix into a ErrorMatrix and create a new new object to pass;
943 return nullptr;
944}
945
946
948{
949
950 Trk::ExtendedVxCandidate* evxCand = nullptr;
951 Trk::VxCandidate* vxCand = nullptr;
952 std::vector<Trk::VxTrackAtVertex*> vxTrkAtVx;
953
954 AmgSymMatrix(3)* posmat = getVxPosErrorMatrix();
955 const Trk::RecVertex* vx = new Trk::RecVertex(Amg::Vector3D(vertex_x(),vertex_y(),vertex_z()),
956 *posmat, (double)vertex_ndf(), (double)vertex_chi2());
957 delete posmat;
958
959 //perigee at vertex
960 Amg::Vector3D globPos(vertex_x(), vertex_y(), vertex_z());
961 AmgSymMatrix(5) trk1EM = getTrk1ErrorMatrix();
962
963 const Trk::PerigeeSurface surface(globPos);
964 Trk::Perigee* trkParams= new Trk::Perigee(0,
965 0,
969 surface,
970 trk1EM);
971 Trk::VxTrackAtVertex* vxtrk1 = new Trk::VxTrackAtVertex(vertex_track1_chi2(), trkParams);
972 vxTrkAtVx.push_back(vxtrk1);
973
974 if(vertex_numTracks()>1){
975 Trk::VxTrackAtVertex* vxtrk2 = nullptr;
976 AmgSymMatrix(5) trk2EM = getTrk2ErrorMatrix();
977 const Trk::PerigeeSurface surface2(globPos);
978 Trk::Perigee* trkParams2= new Trk::Perigee(0,
979 0,
983 surface,
984 trk2EM);
985
986 vxtrk2 = new Trk::VxTrackAtVertex(vertex_track2_chi2(), trkParams2);
987 vxTrkAtVx.push_back(vxtrk2);
988 evxCand = new Trk::ExtendedVxCandidate(*vx, vxTrkAtVx, getVxErrorMatrix());
989 delete vx;
990 return evxCand;
991 }//single track conversion -> VxCandidate
992 vxCand = new Trk::VxCandidate(*vx, vxTrkAtVx);
993 delete vx;
994 return vxCand;
995
996}
997
998
void fillSymmetric(size_t i, size_t j, Scalar value)
method to fill elements for a symmetric matrix
An interface for getting the name of a class as a string.
Provide an interface for finding inheritance information at run time.
#define SG_ADD_BASE(D, B)
Add a new base class B to class D.
#define AmgSymMatrix(dim)
if(febId1==febId2)
#define x
std::atomic< const char * > ClassID_traits< ViewVector< DV > >::s_name
Definition ViewVector.h:339
static std::string name()
Return the name of class T as a string.
EM convert property class data class.
Definition EMConvert.h:35
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
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)
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)
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)
Extends the standard Trk::VxCandidate to store the full covariance matrix of a fitted vertex all part...
const Amg::MatrixX * fullCovariance(void) const
Full covariance matrix access method.
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
Definition FitQuality.h:60
double chiSquared() const
returns the of the overall track fit
Definition FitQuality.h:56
const Trk::FitQuality & fitQuality() const
Fit quality access method.
Definition RecVertex.cxx:64
const Amg::Vector3D & position() const
return position of vertex
Definition Vertex.cxx:63
std::vector< Trk::VxTrackAtVertex * > * vxTrackAtVertex(void)
Unconst pointer to the vector of tracks Required by some of the vertex fitters.
const Trk::RecVertex & recVertex(void) const
Returns a reference to reconstructed vertex.
The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designe...
const TrackParameters * perigeeAtVertex(void) const
Perigee parameters with respect to fitted vertex d_0 and z_0 are equal to 0 in case the trajectory wa...
FitQuality trackQuality(void) const
Returns a pointer to the original track if any.
egDetail()=default
Default constructor.
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, 3, 1 > Vector3D
@ x
Definition ParamDefs.h:55
@ z
global position (cartesian)
Definition ParamDefs.h:57
@ theta
Definition ParamDefs.h:66
@ qOverP
perigee
Definition ParamDefs.h:67
@ y
Definition ParamDefs.h:56
@ phi
Definition ParamDefs.h:75
@ d0
Definition ParamDefs.h:63
@ z0
Definition ParamDefs.h:64
ParametersBase< TrackParametersDim, Charged > TrackParameters
@ refittedVertex_Covyz
refitted vertex covariance item (y,z)
@ refittedVertex_track2_chi2
refitted track chi2 after vertex fit
@ refittedVertex_Covxy
refitted vertex covariance item (x,y)
@ refittedVertex_Covxz
refitted vertex covariance item (x,z)
@ refittedVertex_track1_phi
refitted track global momentum after vertex fit
@ refittedVertex_chi2
refitted vertex fit quality variables
@ refittedVertex_x
refitted vertex position (cartesian coordinates)
@ refittedVertex_track2_author
refitted track author
@ refittedVertex_track1_chi2
refitted track chi2 after vertex fit
@ refittedVertex_Covphi1phi1
refitted track covariance matrix and correlations with vertex position
@ refittedVertex_Covxx
refitted vertex covariance matrix entries (cartesian coordinates)
@ refittedVertex_Covyy
refitted vertex covariance item (y,y)
@ convTrackMatch
from EMConvert, true if a conversion is matched to the track associated to the cluster
@ linkIndex
link index for multiple track and vertex matches
@ refittedVertex_Covzz
refitted vertex covariance item (z,z)
@ refittedVertex_track2_phi
refitted track global momentum after vertex fit
@ ambiguityResult
ambiguity resolultion result, electron/photon
@ refittedVertex_track1_author
refitted track author
@ convAngleMatch
from EMConvert, true if a conversion is matched within an angle of 0,05 to the cluster
const double EgParamUndefined