ATLAS Offline Software
Loading...
Searching...
No Matches
TauRecDetails.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
16
17#ifndef TAU_REC_DETAILS_ANALYSIS_H
18#define TAU_REC_DETAILS_ANALYSIS_H
19
20#include "tauEvent/TauDetails.h"
21#include "CLHEP/Vector/LorentzVector.h"
22#include "VxVertex/RecVertex.h"
23#include "AthLinks/ElementLinkVector.h"
25#include <vector>
26
27namespace Analysis
28{
29
30 //-------------------------------------------------------------------------
34 //-------------------------------------------------------------------------
36 {
37 friend class TauJet;
38 friend class TauRecDetailsCnv_p1;
39 public:
40 //-----------------------------------------------------------------
42 //-----------------------------------------------------------------
44
45 //-----------------------------------------------------------------
47 //-----------------------------------------------------------------
48 virtual ~TauRecDetails();
49
50 //-----------------------------------------------------------------
52 //-----------------------------------------------------------------
53 TauRecDetails( const TauRecDetails &rhs );
54
55 //-----------------------------------------------------------------
57 //-----------------------------------------------------------------
59
60 virtual const std::string& className() const;
61
62 //-----------------------------------------------------------------
64 //-----------------------------------------------------------------
65 virtual double parameter( TauJetParameters :: Detail detail ) const;
66
67 //-----------------------------------------------------------------
69 //-----------------------------------------------------------------
70 virtual bool hasParameter( TauJetParameters :: Detail detail ) const;
71
72 //-----------------------------------------------------------------
74 //-----------------------------------------------------------------
75 double emRadius() const;
76 void setEMRadius( double EMRadius );
77
78 //-----------------------------------------------------------------
80 //-----------------------------------------------------------------
81 double hadRadius() const;
82 void setHadRadius( double HadRadius );
83
84 //-----------------------------------------------------------------
86 //-----------------------------------------------------------------
87 double sumEmCellEt() const;
88 void setSumEmCellEt( double SumEmCellEt );
89
90 //-----------------------------------------------------------------
92 //-----------------------------------------------------------------
93 double sumHadCellEt() const;
94 void setSumHadCellEt( double SumHadCellEt );
95
96 //-----------------------------------------------------------------
98 //-----------------------------------------------------------------
99 double isolationFraction() const;
101
102 //-----------------------------------------------------------------
104 //-----------------------------------------------------------------
105 double centralityFraction() const;
107
108 //-----------------------------------------------------------------
110 //-----------------------------------------------------------------
111 double stripWidth2() const;
112 void setStripWidth2( double stripWidth2 );
113
114 //-----------------------------------------------------------------
116 //-----------------------------------------------------------------
117 int numStripCells() const;
119
120 //-----------------------------------------------------------------
122 //-----------------------------------------------------------------
123 double ipSigLeadTrack() const;
124 void setIpSigLeadTrack( double ipSigLeadTrack );
125
126 //-----------------------------------------------------------------
128 //-----------------------------------------------------------------
129 double etOverPtLeadTrack() const;
131
132 //-----------------------------------------------------------------
134 //-----------------------------------------------------------------
135
139 int chargeLooseTracks( ) const;
140
144 void setChargeLooseTracks( const int chargeLooseTracks );
145
146 //-----------------------------------------------------------------
148 //-----------------------------------------------------------------
149 const CLHEP::HepLorentzVector &sumEM() const;
150 void setSumEM( const CLHEP::HepLorentzVector &sumEM );
151
152 //-----------------------------------------------------------------
154 //-----------------------------------------------------------------
155 double etEMCalib() const;
156 void setETEMCalib( double etEMCalib );
157
158 //-----------------------------------------------------------------
161 //-----------------------------------------------------------------
162 double etHadCalib() const;
163 void setETHadCalib( double etHadCalib );
164
165 //-----------------------------------------------------------------
167 //-----------------------------------------------------------------
168 void setSecVertex( const Trk :: RecVertex *secVertex );
169 const Trk :: RecVertex *secVertex() const;
170
171 //-----------------------------------------------------------------
173 //-----------------------------------------------------------------
174 unsigned numTrack() const;
175 void setNumTrack( unsigned n );
176
177 //-----------------------------------------------------------------
179 //-----------------------------------------------------------------
180 double trackCaloEta( int i ) const;
181 void setTrackCaloEta( int i, double trackCaloEta );
182
183 //-----------------------------------------------------------------
185 //-----------------------------------------------------------------
186 double trackCaloPhi( int i ) const;
187 void setTrackCaloPhi( int i, double trackCaloPhi );
188
189 //-----------------------------------------------------------------
191 //-----------------------------------------------------------------
192 double leadingTrackPT() const;
193 void setLeadingTrackPT( double leadingTrackPT );
194
195 //-----------------------------------------------------------------
197 //-----------------------------------------------------------------
198 double trFlightPathSig() const;
199 void setTrFlightPathSig( double trFlightPathSig );
200
201 //-----------------------------------------------------------------
203 //-----------------------------------------------------------------
204 double etaCalo() const;
205 void setEtaCalo( double eta );
206
207 //-----------------------------------------------------------------
209 //-----------------------------------------------------------------
210 double phiCalo() const;
211 void setPhiCalo( double phi );
212
213 //-----------------------------------------------------------------
216 //-----------------------------------------------------------------
217 int nTracksdrdR() const;
218 void setNTracksdrdR( int nTracksdrdR );
219
220 //-----------------------------------------------------------------
222 //-----------------------------------------------------------------
223 const Rec :: TrackParticle *looseTrack( unsigned i ) const;
224
225 //-----------------------------------------------------------------
227 //-----------------------------------------------------------------
228 unsigned numLooseTrack() const;
229
230 //-----------------------------------------------------------------
232 //-----------------------------------------------------------------
234 const Rec::TrackParticle *track );
235
236
237
240
241 private:
242 static const std::string s_className;
243
245
246 //-----------------------------------------------------------------
247 // Identification variables
248 //-----------------------------------------------------------------
259
260 //-----------------------------------------------------------------
261 // Energy
262 //-----------------------------------------------------------------
263 CLHEP::HepLorentzVector m_sumEM;
264
265 //-----------------------------------------------------------------
266 // Recalibrated energy
267 //-----------------------------------------------------------------
270
271 //-----------------------------------------------------------------
272 // Secondary Vertex
273 //-----------------------------------------------------------------
274 Trk :: RecVertex *m_secVertex;
275
276 //-----------------------------------------------------------------
277 // TODO: Comment
278 //-----------------------------------------------------------------
279 std::vector<double> m_trackCaloEta;
280 std::vector<double> m_trackCaloPhi;
281
284
285 double m_etaCalo;
286 double m_phiCalo;
287
288
289 //-----------------------------------------------------------------
290 // Alternative identification variables
291 //-----------------------------------------------------------------
293
296 };
297
298 //-------------------------------------------------------------------------
299 // Implementation of accessors - Identification part
300 //-------------------------------------------------------------------------
301 inline double TauRecDetails :: emRadius() const
302 {
303 return m_emRadius;
304 }
305
306 inline void TauRecDetails :: setEMRadius( double emRadius )
307 {
309 }
310
311 inline double TauRecDetails :: hadRadius() const
312 {
313 return m_hadRadius;
314 }
315
316 inline void TauRecDetails :: setHadRadius( double HadRadius )
317 {
318 m_hadRadius = HadRadius;
319 }
320
321 inline double TauRecDetails :: sumEmCellEt() const
322 {
323 return m_sumEmCellEt;
324 }
325
326 inline void TauRecDetails :: setSumEmCellEt( double SumEmCellEt )
327 {
328 m_sumEmCellEt = SumEmCellEt;
329 }
330
331 inline double TauRecDetails :: sumHadCellEt() const
332 {
333 return m_sumHadCellEt;
334 }
335
336 inline void TauRecDetails :: setSumHadCellEt( double SumHadCellEt )
337 {
338 m_sumHadCellEt = SumHadCellEt;
339 }
340
341 inline double TauRecDetails :: isolationFraction() const
342 {
343 return m_ET12Frac;
344 }
345
346 inline void TauRecDetails :: setIsolationFraction( double isolationFraction )
347 {
349 }
350
351 inline double TauRecDetails :: centralityFraction() const
352 {
354 }
355
356 inline void TauRecDetails :: setCentralityFraction( double centralityFraction )
357 {
359 }
360
361 inline double TauRecDetails :: stripWidth2() const
362 {
363 return m_stripWidth2;
364 }
365
366 inline void TauRecDetails :: setStripWidth2( double stripWidth2 )
367 {
369 }
370
371 inline int TauRecDetails :: numStripCells() const
372 {
373 return m_numStripCells;
374 }
375
376 inline void TauRecDetails :: setNumStripCells( int numStripCells )
377 {
379 }
380
381
382 inline double TauRecDetails :: ipSigLeadTrack() const
383 {
384 return m_ipSigLeadTrack;
385 }
386
387 inline void TauRecDetails :: setIpSigLeadTrack( double ipSigLeadTrack )
388 {
390 }
391
392 inline double TauRecDetails :: etOverPtLeadTrack() const
393 {
394 return m_etOverPtLeadTrack;
395 }
396
397 inline void TauRecDetails :: setEtOverPtLeadTrack( double etOverPtLeadTrack )
398 {
400 }
401
402
403 inline int TauRecDetails :: chargeLooseTracks( ) const
404 {
405 return m_chargeLooseTracks;
406 }
407
408 inline void TauRecDetails :: setChargeLooseTracks(
409 const int chargeLooseTracks )
410 {
412 }
413
414 inline int TauRecDetails :: nTracksdrdR() const
415 {
416 return m_nTracksdrdR;
417 }
418
419 inline void TauRecDetails :: setNTracksdrdR( int nTracksdrdR )
420 {
422 }
423
424
425
426 //-----------------------------------------------------------------
427 // Implementation of accessors - energy part
428 //-----------------------------------------------------------------
429 inline const CLHEP::HepLorentzVector &TauRecDetails :: sumEM() const
430 {
431 return m_sumEM;
432 }
433
434 inline void TauRecDetails :: setSumEM( const CLHEP::HepLorentzVector &sumEM )
435 {
436 m_sumEM = sumEM;
437 }
438
439 inline double TauRecDetails :: etEMCalib() const
440 {
441 return m_etEMCalib;
442 }
443
444 inline void TauRecDetails :: setETEMCalib( double etEMCalib )
445 {
447 }
448
449 inline double TauRecDetails :: etHadCalib() const
450 {
451 return m_etHadCalib;
452 }
453
454 inline void TauRecDetails :: setETHadCalib( double etHadCalib )
455 {
457 }
458
459 //-------------------------------------------------------------------------
460 // Secondary vertex
461 //-------------------------------------------------------------------------
462 inline const Trk :: RecVertex *TauRecDetails :: secVertex() const
463 {
464 return m_secVertex;
465 }
466
467 inline void TauRecDetails :: setSecVertex( const Trk :: RecVertex *secVertex )
468 {
469 delete m_secVertex;
470 m_secVertex = new Trk :: RecVertex( *secVertex );
471 }
472
473 inline void TauRecDetails :: setNumTrack( unsigned n )
474 {
475 m_trackCaloEta.resize( n );
476 m_trackCaloPhi.resize( n );
477 }
478
479 inline unsigned TauRecDetails :: numTrack() const
480 {
481 return m_trackCaloPhi.size();
482 }
483
484 inline double TauRecDetails :: trackCaloEta( int i ) const
485 {
486 return m_trackCaloEta[i];
487 }
488
489 inline void TauRecDetails :: setTrackCaloEta( int i, double trackCaloEta )
490 {
492 }
493
494 inline double TauRecDetails :: trackCaloPhi( int i ) const
495 {
496 return m_trackCaloPhi[i];
497 }
498
499 inline void TauRecDetails :: setTrackCaloPhi( int i, double trackCaloPhi )
500 {
502 }
503
504 inline double TauRecDetails :: leadingTrackPT() const
505 {
506 return m_leadingTrackPT;
507 }
508
509 inline void TauRecDetails :: setLeadingTrackPT( double leadingTrackPT )
510 {
512 }
513
514 //--------------------------------------------------------------------------
515 // Transverse flight path significance
516 //--------------------------------------------------------------------------
517 inline double TauRecDetails :: trFlightPathSig() const
518 {
519 return m_trFlightPathSig;
520 }
521
522 inline void TauRecDetails :: setTrFlightPathSig( double trFlightPathSig )
523 {
525 }
526
527 inline double TauRecDetails::etaCalo() const
528 {
529 return m_etaCalo;
530 }
531
532 inline void TauRecDetails::setEtaCalo( double eta )
533 {
534 m_etaCalo = eta;
535 }
536
537 inline double TauRecDetails::phiCalo() const
538 {
539 return m_phiCalo;
540 }
541
542 inline void TauRecDetails::setPhiCalo( double phi )
543 {
544 m_phiCalo = phi;
545 }
546
547 //-------------------------------------------------------------------------
548 // Implementation of tracking info accessors
549 //-------------------------------------------------------------------------
550 inline const Rec :: TrackParticle *TauRecDetails :: looseTrack( unsigned i ) const
551 {
552 if( m_looseTracks.size() <= i )
553 return 0;
554 else if( m_looseTracks[i].isValid() )
555 return *(m_looseTracks[i]);
556 else
557 return 0;
558 }
559
560 inline void TauRecDetails :: addLooseTrack( const Rec :: TrackParticleContainer *cont,
561 const Rec :: TrackParticle *track )
562 {
564 link.toContainedElement( *cont, track ) ;
565 m_looseTracks.push_back( link ) ;
566 }
567
568 inline unsigned TauRecDetails :: numLooseTrack() const
569 {
570 return m_looseTracks.size();
571 }
572
573 inline
578
579 inline
584}
585
586#endif // TAU_REC_DETAILS_ANALYSIS_H
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
bool isValid(const T &p)
Av: we implement here an ATLAS-sepcific convention: all particles which are 99xxxxx are fine.
Definition AtlasPID.h:878
Declaration of tau details base class.
TauDetails()
Default constructor.
friend class TauJet
Definition of the current "tau version".
double sumHadCellEt() const
Uncalibrated Sum of Cell Transverse energy in the HCAL.
void setTrFlightPathSig(double trFlightPathSig)
double trFlightPathSig() const
Transverse flight path significance for taus with reconstructed secondary vertex.
double etaCalo() const
eta of TauJet calculated from calorimeter (for merged algorithm)
double ipSigLeadTrack() const
Impact Parameter Significance of Leading Track.
void setNumStripCells(int numStripCells)
void setNTracksdrdR(int nTracksdrdR)
const Rec::TrackParticle * looseTrack(unsigned i) const
Accessor to loose tracks.
void setCentralityFraction(double centralityFraction)
static const std::string s_className
void setLeadingTrackPT(double leadingTrackPT)
void setPhiCalo(double phi)
void addLooseTrack(const Rec::TrackParticleContainer *cont, const Rec::TrackParticle *track)
Associate a loose track to a TauJet.
void setSecVertex(const Trk ::RecVertex *secVertex)
Secondary vertex.
double emRadius() const
Uncalibrated Et weighted radius in the Presampler + EM1 + EM2 within dR < 0.4.
void setSumEmCellEt(double SumEmCellEt)
double isolationFraction() const
Ratio of the uncalibrated transverse energy of cells within 0.1<dR<0.2 and cells within 0<dR<0....
virtual ~TauRecDetails()
Destructor.
double trackCaloEta(int i) const
eta of track i extrapolated to EM layer 2
void setIsolationFraction(double isolationFraction)
virtual double parameter(TauJetParameters ::Detail detail) const
backward compatibility accessor (do not use)
void setSumEM(const CLHEP::HepLorentzVector &sumEM)
int chargeLooseTracks() const
Charge of loose tracks.
int nTracksdrdR() const
Number of tracks pT>1GeV between dR = cmsdr and dR = cmsdR (from the jobOptions)
void setEtaCalo(double eta)
unsigned numLooseTrack() const
Number of Loose Tracks associated to the TauJet.
double etHadCalib() const
Calibrated HAD transverse energy, HAD is cryo + EM3 + TILE1 + TILE2 + TILE3.
std::vector< double > m_trackCaloPhi
void setETHadCalib(double etHadCalib)
double leadingTrackPT() const
PT of leading track - for Trigger.
double centralityFraction() const
Centrality fraction (ET(dr<0.1)/ET(dr<0.4) for all calos.
void setChargeLooseTracks(const int chargeLooseTracks)
Set the charge of loose tracks.
std::vector< double > m_trackCaloEta
double phiCalo() const
phi of TauJet calculated from calorimeter (for merged algorithm)
void setETEMCalib(double etEMCalib)
void setEMRadius(double EMRadius)
unsigned numTrack() const
only used internally for non-default tracks (original tauRec tracks)
int m_chargeLooseTracks
Charge of loose tracks.
void setNumTrack(unsigned n)
Trk::RecVertex * m_secVertex
virtual const std::string & className() const
void setTrackCaloEta(int i, double trackCaloEta)
double sumEmCellEt() const
Uncalibrated Sum of Cell Transverse energy in the Presampler + EM1 + EM2 within dR < 0....
void setTrackCaloPhi(int i, double trackCaloPhi)
double stripWidth2() const
Uncalibrated transverse energy weighted width in the strip layer within dR < 0.4.
friend class TauRecDetailsCnv_p1
void setEtOverPtLeadTrack(double etOverPtLeadTrack)
virtual bool hasParameter(TauJetParameters ::Detail detail) const
backward compatibility accessor (do not use)
double etEMCalib() const
Calibrated EM transverse energy, EM is Presampler + EM1 + EM2.
void setIpSigLeadTrack(double ipSigLeadTrack)
double trackCaloPhi(int i) const
phi of track i extrapolated to EM layer 2
const CLHEP::HepLorentzVector & sumEM() const
EM part of the energy (Presampler+EM1 and EM2+EM3 with no nearby track)
TauRecDetails & operator=(const TauRecDetails &rhs)
Assignment Operator.
const Trk::RecVertex * secVertex() const
ElementLinkVector< Rec::TrackParticleContainer > m_looseTracks
double etOverPtLeadTrack() const
Ratio of Transverse Energy of Tau Candidate to Transverse Momentum of Leading Track.
void setHadRadius(double HadRadius)
int numStripCells() const
Number of Strip cells within dR < 0.4, with energy above specified threshold.
void setSumHadCellEt(double SumHadCellEt)
double hadRadius() const
Uncalibrated HCAL weighted radius.
void setStripWidth2(double stripWidth2)
CLHEP::HepLorentzVector m_sumEM
ElementLinkVector< Rec::TrackParticleContainer > & looseTracks()
ElementLinkVector implementation for standalone ROOT.
The namespace of all packages in PhysicsAnalysis/JetTagging.