ATLAS Offline Software
Loading...
Searching...
No Matches
EMTrackMatch.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5/********************************************************************
6
7NAME: EMTrackMatch.cxx
8PACKAGE: offline/Reconstruction/egammaEvent
9
10AUTHORS: H. Ma, S. Rajagopalan
11CREATED: Dec. 5, 2000
12
13PURPOSE: object containing information about the match of a calo cluster
14 with the best matched track in front of the shower. Information
15 about the different variables can be found in EMTrackMatch.h
16
17Updated: Mar 2003 (AP)
18 change data member definitions
19 Jan 13, 2001 (MW)
20 add some more comments
21 Nov 24, 2003 (MW)
22 add parameter for the track refittingoption
23 Dec 10, 2003 (DR)
24 add SimpleTrack pointer
25Updated: Jan, 2004 (FD+AK)
26 add deltaEta, deltaPhi for all samplings
27 Jan 23, 2004 (FD) add initialisation of all deltaEta, deltaPhi
28 Apr 28, 2004 (FD) add eta of track corrected for magnetic field
29 May 06, 2009 (FD) add track isolation variable
30 May 06, 2009 (FD) remove track isolation variable !
31 May 31, 2009 (FD/RD) add three variables for track extrapolation
32 Feb 01, 2010 (FD) add transverse impact parameter values wrt beam spot
33 Mar 03, 2010 (FD) add transverse impact parameter values
34 wrt primary vertex and deltaPhiRot
35 Mar 05, 2010 (FD) add EtaExtrap, PhiExtrap and methods
36 Mar 16, 2010 (FD) add PhiRescaled in each sampling
37********************************************************************/
38
39// INCLUDE HEADER FILES:
43#include "GaudiKernel/GaudiException.h"
44#include <cmath>
45
46// END OF HEADER FILES INCLUDE
47
48// ----------------------------
49// Constructor
50// ----------------------------
51
52
53// =================================================================
54// constructor with data
55EMTrackMatch::EMTrackMatch(const std::vector<double>& EtaExtrap,
56 const std::vector<double>& PhiExtrap,
57 const std::vector<double>& deltaEta,
58 const std::vector<double>& deltaPhi,
59 bool isPrimary,
60 int trackNumber,
61 bool trackRefit,
62 int linkIndex)
63 : egDetail()
64{
70 for (unsigned int i = 0; i < EtaExtrap.size(); ++i)
71 setEtaExtrap (i, EtaExtrap[i], true);
72 for (unsigned int i = 0; i < PhiExtrap.size(); ++i)
73 setPhiExtrap (i, PhiExtrap[i], true);
74 for (unsigned int i = 0; i < deltaEta.size(); ++i)
75 setDeltaEta (i, deltaEta[i], true);
76 for (unsigned int i = 0; i < deltaPhi.size(); ++i)
77 setDeltaPhi (i, deltaPhi[i], true);
78
79}
80
81// =================================================================
82// constructor with data
83EMTrackMatch::EMTrackMatch(const std::vector<double>& deltaEta,
84 const std::vector<double>& deltaPhi,
85 bool isPrimary,
86 int trackNumber,
87 bool trackRefit,
88 int linkIndex)
89 : egDetail()
90{
96 for (unsigned int i = 0; i < deltaEta.size(); ++i) setDeltaEta (i, deltaEta[i], true);
97 for (unsigned int i = 0; i < deltaPhi.size(); ++i) setDeltaPhi (i, deltaPhi[i], true);
98
99}
100
102const std::string& EMTrackMatch::className() const
103{
104 static const std::string className = ClassName<EMTrackMatch>::name();
105 return className;
106}
107
108// ===============================================================
110{
111 if ( hasBoolParameter(key) ) {
112 if ( boolParameter(key) ) return 1.;
113 return 0;
114 }
115
116 using elParams = std::pair<egammaParameters::ParamDef, double>;
117
119 std::vector<elParams>::const_iterator p = m_parameters.begin();
120
121 for (;p !=m_parameters.end(); ++p) {
122 if ( (*p).first == key ){
123 result = (*p).second;
124 break;
125 }
126 }
127
128 return result;
129}
130
131// ==============================================================
132void EMTrackMatch::set_parameter(egammaParameters::ParamDef key, double value, bool overwrite)
133{
134 if ( hasBoolParameter(key) ) {
135 if (value != 0.)
136 set_boolParameter(key, true, overwrite);
137 else
138 set_boolParameter(key, false, overwrite);
139
140 return;
141 }
142
143 using elParams = std::pair<egammaParameters::ParamDef, double>;
144
145 std::vector<elParams>::iterator p = m_parameters.begin();
146
147 for (;p !=m_parameters.end(); ++p) {
148 if ( (*p).first == key ) break;
149 }
150
151 if ( p == m_parameters.end() ) {
152 m_parameters.emplace_back(key,value );
153 }
154 else {
155 if ( overwrite ) {
156 (*p).second = value;
157 }
158 else {
159 throw GaudiException("parameter not saved", "EMTrackMatch::set_parameter(...)", StatusCode::FAILURE);
160 }
161 }
162
163}
164
165// ====================================================================
167{
168 using elParams = std::pair<egammaParameters::ParamDef, bool>;
169
170 std::vector<elParams>::iterator p = m_parametersBool.begin();
171
172 for (;p !=m_parametersBool.end(); ++p) {
173 if ( (*p).first == key ) break;
174 }
175
176 if ( p == m_parametersBool.end() ) {
177 m_parametersBool.emplace_back(key,value );
178 }
179 else {
180 if ( overwrite ) {
181 (*p).second = value;
182 }
183 else {
184 throw GaudiException("parameter not saved", "EMTrackMatch::set_boolparameter(...)", StatusCode::FAILURE);
185 }
186 }
187}
188
189// ====================================================================
191{
192 using elParams = std::pair<egammaParameters::ParamDef, bool>;
193
194 double result = false;
195 std::vector<elParams>::const_iterator p = m_parametersBool.begin();
196
197 for (;p !=m_parametersBool.end(); ++p) {
198 if ( (*p).first == key ) {
199 result = (*p).second;
200 break;
201 }
202 }
203
204 return result;
205}
206
207// ===================================================================
208void EMTrackMatch::setEtaExtrap (int sampl, double value, bool overwrite)
209{
210 //
211 // Eta extrapolated at presampler(0) -> 3rd sampling (3)
212 //
214 if ( sampl == 0) key = egammaParameters::EtaExtraps0;
215 else if ( sampl == 1) key = egammaParameters::EtaExtraps1;
216 else if ( sampl == 2) key = egammaParameters::EtaExtraps2;
217 else if ( sampl == 3) key = egammaParameters::EtaExtraps3;
218 return set_parameter(key, value, overwrite);
219}
220
221// ===================================================================
222void EMTrackMatch::setPhiExtrap (int sampl, double value, bool overwrite)
223{
224 //
225 // Phi extrapolated at presampler (0) -> 3rd sampling (3)
226 //
228 if ( sampl == 0) key = egammaParameters::PhiExtraps0;
229 else if ( sampl == 1) key = egammaParameters::PhiExtraps1;
230 else if ( sampl == 2) key = egammaParameters::PhiExtraps2;
231 else if ( sampl == 3) key = egammaParameters::PhiExtraps3;
232 return set_parameter(key, value, overwrite);
233}
234
235// ===================================================================
236void EMTrackMatch::setPhiRescaled (int sampl, double value, bool overwrite)
237{
238 //
239 // Phi rescaled at presampler (0) -> 3rd sampling (3)
240 //
242 if ( sampl == 0) key = egammaParameters::PhiRescaled0;
243 else if ( sampl == 1) key = egammaParameters::PhiRescaled1;
244 else if ( sampl == 2) key = egammaParameters::PhiRescaled2;
245 else if ( sampl == 3) key = egammaParameters::PhiRescaled3;
246 return set_parameter(key, value, overwrite);
247}
248
249// ===================================================================
250void EMTrackMatch::setDeltaEta (int sampl, double value, bool overwrite)
251{
252 //
253 // deltaEta at presampler(0) -> 3rd sampling (3)
254 //
256 if ( sampl == 0) key = egammaParameters::deltaEta0;
257 else if ( sampl == 1) key = egammaParameters::deltaEta1;
258 else if ( sampl == 2) key = egammaParameters::deltaEta2;
259 else if ( sampl == 3) key = egammaParameters::deltaEta3;
260 return set_parameter(key, value, overwrite);
261}
262
263// ===================================================================
264void EMTrackMatch::setDeltaPhi (int sampl, double value, bool overwrite)
265{
266 //
267 // deltaPhi at presampler (0) -> 3rd sampling (3)
268 //
270 if ( sampl == 0) key = egammaParameters::deltaPhi0;
271 else if ( sampl == 1) key = egammaParameters::deltaPhi1;
272 else if ( sampl == 2) key = egammaParameters::deltaPhi2;
273 else if ( sampl == 3) key = egammaParameters::deltaPhi3;
274 return set_parameter(key, value, overwrite);
275}
276
277// =============================================================
278void EMTrackMatch::setEtaSampling1 (double value, bool overwrite)
279{
280 //
281 // eta at sampling 1 for extrapolation from the last hit -
282 // allows recalcultion of deltaEta
283 //
284 return set_parameter(egammaParameters::etaSampling1, value, overwrite);
285}
286
287// ===========================================================
288void EMTrackMatch::setDeltaPhiRescaled (double value, bool overwrite)
289{
290 //
291 // deltaPhi at sampling 2 for rescaled momentum extrapolation
292 // from the perigee
293 // Only available if not in deltaPhi, i.e. default
294 //
295 return set_parameter(egammaParameters::deltaPhiRescaled, value, overwrite);
296}
297
298// ===========================================================
299void EMTrackMatch::setextrapMethod (TrkExtrapDef value, bool overwrite)
300{
301 //
302 // extrapolation method used for track match
303 //
304 return set_parameter(egammaParameters::extrapMethod, (double) value, overwrite);
305}
306
307// ===========================================================
308void EMTrackMatch::setDeltaPhiRot (double value, bool overwrite)
309{
310 //
311 // deltaPhi at sampling 2 for rescaled momentum extrapolation
312 // from the perigee
313 // Only available if not in deltaPhi, i.e. default
314 //
315 return set_parameter(egammaParameters::deltaPhiRot, value, overwrite);
316}
317
318// ===========================================================
319void EMTrackMatch::setDeltaPhiLast (double value, bool overwrite)
320{
321 //
322 // deltaPhi at sampling 2 from the last measurement
323 //
324 return set_parameter(egammaParameters::deltaPhiLast, value, overwrite);
325}
326
327
328/*// ===========================================================
329void EMTrackMatch::setexpectHitInBLayer (bool value, bool overwrite)
330{
331 //
332 // boolean to see if hit was expected in b-layer
333 //
334 return set_boolParameter(egammaParameters::expectHitInBLayer, value, overwrite);
335}
336*/
337
338// =================================================================
339// general reset:
340void EMTrackMatch::fill(const std::vector<double>& EtaExtrap,
341 const std::vector<double>& PhiExtrap,
342 const std::vector<double>& deltaEta,
343 const std::vector<double>& deltaPhi,
344 bool isPrimary,
345 int trackNumber,
346 bool trackRefit,
347 int linkIndex)
348{
352 for (unsigned int i = 0; i < EtaExtrap.size(); ++i)
353 setDeltaEta (i, EtaExtrap[i], true);
354 for (unsigned int i = 0; i < PhiExtrap.size(); ++i)
355 setDeltaPhi (i, PhiExtrap[i], true);
356 for (unsigned int i = 0; i < deltaEta.size(); ++i)
357 setDeltaEta (i, deltaEta[i], true);
358 for (unsigned int i = 0; i < deltaPhi.size(); ++i)
359 setDeltaPhi (i, deltaPhi[i], true);
362}
363
364// =================================================================
365// general reset:
366void EMTrackMatch::fill(const std::vector<double>& deltaEta,
367 const std::vector<double>& deltaPhi,
368 bool isPrimary,
369 int trackNumber,
370 bool trackRefit,
371 int linkIndex)
372{
376 for (unsigned int i = 0; i < deltaEta.size(); ++i) setDeltaEta (i, deltaEta[i], true);
377 for (unsigned int i = 0; i < deltaPhi.size(); ++i) setDeltaPhi (i, deltaPhi[i], true);
380}
381
382// ========================================================================
383// only E/p
384void
389
390// ======================================================================
391// only EtaExtrap, PhiExtrap
392void
393EMTrackMatch::fillEtaPhiExtrap(const std::vector<double>& EtaExtrap,
394 const std::vector<double>& PhiExtrap)
395{
396 for (unsigned int i = 0; i < EtaExtrap.size(); ++i)
397 setEtaExtrap (i, EtaExtrap[i], true);
398 for (unsigned int i = 0; i < PhiExtrap.size(); ++i)
399 setPhiExtrap (i, PhiExtrap[i], true);
400}
401
402// ======================================================================
403// only deltaEta, deltaPhi
404void
405EMTrackMatch::fill(const std::vector<double>& deltaEta,
406 const std::vector<double>& deltaPhi)
407{
408 for (unsigned int i = 0; i < deltaEta.size(); ++i) setDeltaEta (i, deltaEta[i], true);
409 for (unsigned int i = 0; i < deltaPhi.size(); ++i) setDeltaPhi (i, deltaPhi[i], true);
410}
411
412// ========================================================================
413// print track match quantities
415{
416
417// std::cout << "Params: " << std::endl;
418
419// typedef std::vector < std::pair<egammaParameters::ParamDef , double > >::const_iterator it_type;
420// it_type it = m_parameters.begin();
421// it_type itend = m_parameters.end();
422// for (; it != itend; ++it) {
423// std::cout << "n,value " << it->first << " " << it->second << std::endl;
424// }
425
426// std::cout <<
427
428// std::cout << "egammaParameters::deltaEta1 " << egammaParameters::deltaEta1 << std::endl;
429// std::cout << "egammaParameters::deltaPhi2 " << egammaParameters::deltaPhi2 << std::endl;
430// std::cout << "egammaParameters::trackNumber " << egammaParameters::trackNumber << std::endl;
431// std::cout << "egammaParameters::linkIndex " << egammaParameters::linkIndex << std::endl;
432// std::cout << "egammaParameters::tracksInBroadWindow " << egammaParameters::tracksInBroadWindow << std::endl;
433// std::cout << "egammaParameters::etaSampling1 " << egammaParameters::etaSampling1 << std::endl;
434// std::cout << "egammaParameters::deltaPhiRescaled " << egammaParameters::deltaPhiRescaled << std::endl;
435// std::cout << "egammaParameters::extrapMethod " << egammaParameters::extrapMethod << std::endl;
436// std::cout << "egammaParameters::deltaEta0 " << egammaParameters::deltaEta0 << std::endl;
437// std::cout << "egammaParameters::deltaEta2 " << egammaParameters::deltaEta2 << std::endl;
438// std::cout << "egammaParameters::deltaEta3 " << egammaParameters::deltaEta3 << std::endl;
439// std::cout << "egammaParameters::deltaPhi0 " << egammaParameters::deltaPhi0 << std::endl;
440// std::cout << "egammaParameters::deltaPhi1 " << egammaParameters::deltaPhi1 << std::endl;
441// std::cout << "egammaParameters::deltaPhi3 " << egammaParameters::deltaPhi3 << std::endl;
442}
443
444// ==============================================================
446 if ( hasBoolParameter(key) ) return true;
447 if (key == egammaParameters::deltaEta1) return true;
448 if (key == egammaParameters::deltaPhi2) return true;
449 if (key == egammaParameters::trackNumber) return true;
450 if (key == egammaParameters::linkIndex) return true;
451 if (key == egammaParameters::tracksInBroadWindow) return true;
452 if (key == egammaParameters::etaSampling1) return true;
453 if (key == egammaParameters::deltaPhiRescaled) return true;
454 if (key == egammaParameters::extrapMethod) return true;
455
456 // The following are less often used, so we leave them at the end - RDS
457 if (key == egammaParameters::EtaExtraps0) return true;
458 if (key == egammaParameters::EtaExtraps1) return true;
459 if (key == egammaParameters::EtaExtraps2) return true;
460 if (key == egammaParameters::EtaExtraps3) return true;
461
462 if (key == egammaParameters::PhiExtraps0) return true;
463 if (key == egammaParameters::PhiExtraps1) return true;
464 if (key == egammaParameters::PhiExtraps2) return true;
465 if (key == egammaParameters::PhiExtraps3) return true;
466
467 if (key == egammaParameters::PhiRescaled0) return true;
468 if (key == egammaParameters::PhiRescaled1) return true;
469 if (key == egammaParameters::PhiRescaled2) return true;
470 if (key == egammaParameters::PhiRescaled3) return true;
471
472 if (key == egammaParameters::deltaEta0) return true;
473 if (key == egammaParameters::deltaEta2) return true;
474 if (key == egammaParameters::deltaEta3) return true;
475 if (key == egammaParameters::deltaPhi0) return true;
476 if (key == egammaParameters::deltaPhi1) return true;
477 if (key == egammaParameters::deltaPhi3) return true;
478
479 if (key == egammaParameters::deltaPhiRot) return true;
480 if (key == egammaParameters::deltaPhiLast) return true;
481
482 if (key == egammaParameters::trackd0_physics) return true;
483 if (key == egammaParameters::trackd0_pv) return true;
484 if (key == egammaParameters::trackd0sigma_physics) return true;
485 if (key == egammaParameters::trackd0sigma_pv) return true;
486
487 return false;
488}
489
490// =================================================================
492{
493 if (key == egammaParameters::isPrimary) return true;
494 if (key == egammaParameters::trackRefit) return true;
495 if (key == egammaParameters::expectHitInBLayer) return true;
496 return false;
497}
498
499// ===============================================================
500double EMTrackMatch::EtaExtrap (int sampl) const
501{
502 //
503 // Eta extrapolated at presampler(0) -> 3rd sampling (3)
504 //
505
507 if ( sampl == 0) key = egammaParameters::EtaExtraps0;
508 else if ( sampl == 1) key = egammaParameters::EtaExtraps1;
509 else if ( sampl == 2) key = egammaParameters::EtaExtraps2;
510 else if ( sampl == 3) key = egammaParameters::EtaExtraps3;
511 return parameter(key);
512}
513
514// ===============================================================
515double EMTrackMatch::PhiExtrap (int sampl) const
516{
517 //
518 // Phi extrapolated at presampler (0) -> 3rd sampling (3)
519 //
521 if ( sampl == 0) key = egammaParameters::PhiExtraps0;
522 else if ( sampl == 1) key = egammaParameters::PhiExtraps1;
523 else if ( sampl == 2) key = egammaParameters::PhiExtraps2;
524 else if ( sampl == 3) key = egammaParameters::PhiExtraps3;
525 return parameter(key);
526}
527
528// ===============================================================
529double EMTrackMatch::PhiRescaled (int sampl) const
530{
531 //
532 // Phi rescaled at presampler (0) -> 3rd sampling (3)
533 //
535 if ( sampl == 0) key = egammaParameters::PhiRescaled0;
536 else if ( sampl == 1) key = egammaParameters::PhiRescaled1;
537 else if ( sampl == 2) key = egammaParameters::PhiRescaled2;
538 else if ( sampl == 3) key = egammaParameters::PhiRescaled3;
539 return parameter(key);
540}
541
542// ===============================================================
543double EMTrackMatch::deltaEta (int sampl) const
544{
545 //
546 // deltaEta at presampler(0) -> 3rd sampling (3)
547 //
548
550 if ( sampl == 0) key = egammaParameters::deltaEta0;
551 else if ( sampl == 1) key = egammaParameters::deltaEta1;
552 else if ( sampl == 2) key = egammaParameters::deltaEta2;
553 else if ( sampl == 3) key = egammaParameters::deltaEta3;
554 return parameter(key);
555}
556
557// ===============================================================
558double EMTrackMatch::deltaPhi (int sampl) const
559{
560 //
561 // deltaPhi at presampler (0) -> 3rd sampling (3)
562 //
564 if ( sampl == 0) key = egammaParameters::deltaPhi0;
565 else if ( sampl == 1) key = egammaParameters::deltaPhi1;
566 else if ( sampl == 2) key = egammaParameters::deltaPhi2;
567 else if ( sampl == 3) key = egammaParameters::deltaPhi3;
568 return parameter(key);
569}
570
571// =============================================================
573{
574 //
575 // eta at sampling 1 for extrapolation from the last hit -
576 // allows recalcultion of deltaEta
577 //
579}
580
581// ==============================================================
583{
584 //
585 // enum to indicate which track extrapolation method was used for
586 // track match
587 //
589}
590
591// ==============================================================
593{
594 //
595 //deltaPhi at sampling 2 for rescaled momentum extrapolation
596 // from the perigee
597 // Only available if not in deltaPhi, i.e. default.
598 //
600}
601
602
603// ==============================================================
605{
606 //
607 //deltaPhi at sampling 2 for rescaled momentum extrapolation
608 // from the perigee
609 // Only available if not in deltaPhi, i.e. default.
610 //
612}
613
614// ==============================================================
616{
617 //
618 //deltaPhi from the last measurement
619 //
621}
622
623// =================================================================
625{
626 //
627 // true if matched track has a hit in first or second pixel layer
628 //
630}
631
632// ================================================================
634{
635 //
636 // index number in TrackContainer (counting starts at 1 for CBNT)
637 //
639}
640
641// ================================================================
643{
644 //
645 // index number among TrackParticle links of egamma object
646 // (counting starts at 0)
647 //
649}
650
651// ===============================================================
653{
655}
656
657// ===============================================================
662
663// ===============================================================
665{
666 //
667 // number of tracks in isolation window (taken at sampling 2):
668 // (# primary tracks if matched track is primary; otherwise all tracks)
669 //
671}
672
673// ==================================================================
674void EMTrackMatch::tracksInBroadWindow (int value, bool overwrite)
675{
677}
678
679// ==============================================================
681{
682 //
683 // return track transverse impact parameter wrt beam spot
684 //
686}
687
688// ==============================================================
690{
691 //
692 // return track transverse impact parameter wrt primary vertex
693 //
695}
696
697// ==============================================================
699{
700 //
701 // return track transverse impact parameter wrt beam spot
702 //
704}
705
706// ==============================================================
708{
709 //
710 // return track transverse impact parameter wrt primary vertex
711 //
713}
714
715// =================================================================
717{
718 //
719 // true if expected hit in b-layer
720 //
722}
723
724
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.
static std::string name()
Return the name of class T as a string.
Track match property data class.
double PhiExtrap(int) const
Phi of track extrapolated at pre sampler(0) -> 3rd sampling(3)
EMTrackMatch()=default
Default constructor.
double trackd0sigma_physics() const
return track transverse impact parameter wrt beam spot
virtual bool hasBoolParameter(egammaParameters::ParamDef) const override final
TrkExtrapDef extrapMethod() const
enum to indicate which track extrapolation method was used for track match.
TrkExtrapDef
Enum for track extrapolation to calo.
std::vector< std::pair< egammaParameters::ParamDef, double > > m_parameters
bool expectHitInBLayer() const
boolean to know if b-layer hit is expected
virtual double parameter(egammaParameters::ParamDef) const override
double trackd0_pv() const
return track transverse impact parameter wrt primary vertex
double etaSampling1() const
eta at sampling 1 for extrapolation from the last hit - allows recalcultion of deltaEta
virtual bool boolParameter(egammaParameters::ParamDef) const override
virtual const std::string & className() const override
interface methods
void fillEtaPhiExtrap(const std::vector< double > &EtaExtrap, const std::vector< double > &PhiExtrap)
set method (EtaExtrap and PhiExtrap)
virtual int linkIndex() const override
index number among TrackParticle links of the egamma object (counting starts at 0)
int trackNumber() const
index number in TrackContainer (counting starts at 1 for sake of CBNT)
int tracksInBroadWindow() const
number of tracks in isolation window (taken at sampling 2): (# primary tracks if matched track is pri...
double EtaExtrap(int) const
Eta of track extrapolated at pre sampler(0) -> 3rd sampling(3)
void setDeltaPhiLast(double value, bool overwrite=false)
void setEtaExtrap(int sampl, double value, bool overwrite=false)
double deltaPhiRot() const
deltaPhi between the direction of the momentum of the track at its perigee and the phi of the POSITIO...
virtual void set_linkIndex(int value) override
double PhiRescaled(int) const
PhiRescaled at pre sampler(0) -> 3rd sampling(3)
bool isPrimary() const
true if matched track has a hit in first or second pixel layer
bool trackRefit() const
true if track was refitted to account for brem effects
void print() const
void set_boolParameter(egammaParameters::ParamDef, bool, bool overwrite=false)
virtual bool hasParameter(egammaParameters::ParamDef) const override
double trackd0_physics() const
return track transverse impact parameter wrt beam spot
void setextrapMethod(TrkExtrapDef value, bool overwrite=false)
double trackd0sigma_pv() const
return track transverse impact parameter wrt primary vertex
void setDeltaPhiRot(double value, bool overwrite=false)
void setDeltaPhi(int sampl, double value, bool overwrite=false)
void set_parameter(egammaParameters::ParamDef, double, bool overwrite=false)
void setPhiExtrap(int sampl, double value, bool overwrite=false)
double deltaPhi(int) const
deltaPhi at pre sampler(0) -> 3rd sampling(3)
void fill(const std::vector< double > &deltaEta, const std::vector< double > &deltaPhi, bool isPrimary, int trackNumber, bool trackRefit, int linkIndex=0)
general set method (arguments as constructor)
void setEtaSampling1(double value, bool overwrite=false)
double deltaEta(int) const
deltaEta at pre sampler(0) -> 3rd sampling(3)
double deltaPhiRescaled() const
deltaPhi at sampling 2 for rescaled momentum extrapolation from the perigee.
std::vector< std::pair< egammaParameters::ParamDef, bool > > m_parametersBool
void setPhiRescaled(int sampl, double value, bool overwrite=false)
double deltaPhiLast() const
deltaPhi from the last Point
void setDeltaPhiRescaled(double value, bool overwrite=false)
void setDeltaEta(int sampl, double value, bool overwrite=false)
Base class for detailed egamma information.
Definition egDetail.h:29
egDetail()=default
Default constructor.
@ deltaPhi2
difference between the cluster phi (second sampling) and the phi of the track extrapolated to the sec...
@ PhiRescaled1
PhiRescaled to the 1st sampling (strips)
@ PhiExtraps2
phi of the track extrapolated to the 2nd sampling
@ trackd0sigma_pv
transverse impact parameter with respect to primary vertex
@ deltaEta3
difference between the cluster eta (3rd sampling) and the eta of the track extrapolated to the 3rd sa...
@ EtaExtraps3
eta of the track extrapolated to the 3rd sampling
@ EtaExtraps2
eta of the track extrapolated to the 2nd sampling
@ PhiExtraps3
phi of the track extrapolated to the 3rd sampling
@ PhiRescaled3
PhiRescaled to the 3rd sampling.
@ expectHitInBLayer
expectHitInBLayer (set to 1 if true)
@ deltaEta1
difference between the cluster eta (first sampling) and the eta of the track extrapolated to the firs...
@ PhiExtraps1
phi of the track extrapolated to the 1st sampling
@ etaSampling1
eta position at sampling 1 for track extrapolated from the last hit.
@ deltaPhiRescaled
difference between the cluster phi (sampling 2) and the phi of the track extrapolated from the perige...
@ trackRefit
true if track was refitted to account for brem effects
@ PhiRescaled2
PhiRescaled to the 2nd sampling.
@ trackd0sigma_physics
transverse impact parameter with respect beam spot
@ EtaExtraps0
eta of the track extrapolated to the presampler
@ tracksInBroadWindow
number of tracks in isolation window (taken at sampling 2): (# primary tracks if matched track is pri...
@ trackd0_physics
transverse impact parameter with respect beam spot
@ PhiExtraps0
phi of the track extrapolated to the presampler
@ isPrimary
true if matched track has a hit in first or second pixel layer
@ deltaPhi0
difference between the cluster phi (presampler) and the eta of the track extrapolated to the presampl...
@ deltaEta0
difference between the cluster eta (presampler) and the eta of the track extrapolated to the presampl...
@ trackNumber
index number in TrackContainer (counting starts at 1 for sake of CBNT)
@ linkIndex
link index for multiple track and vertex matches
@ deltaPhiRot
rotation of the track in the magnetic field: difference between the phi direction of the track at the...
@ deltaPhi1
difference between the cluster eta (1st sampling) and the eta of the track extrapolated to the 1st sa...
@ deltaPhiLast
deltaPhi from the las point
@ trackd0_pv
transverse impact parameter with respect to primary vertex
@ deltaEta2
difference between the cluster eta (second sampling) and the eta of the track extrapolated to the sec...
@ extrapMethod
enum to indicate which track extrapolation method was used for track match
@ EtaExtraps1
eta of the track extrapolated to the 1st sampling
@ PhiRescaled0
PhiRescaled to the presampler.
@ deltaPhi3
difference between the cluster eta (3rd sampling) and the eta of the track extrapolated to the 3rd sa...
const double EgParamUndefined