ATLAS Offline Software
TauJet_v2.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // $Id: TauJet_v2.cxx 747258 2016-05-15 02:57:19Z griffith $
6 
7 
8 // System include(s):
9 extern "C" {
10 # include <cstdint>
11 }
12 #include <bitset>
13 
14 // EDM include(s):
16 
17 // Local include(s):
20 #include "TauJetAccessors_v2.h"
21 
22 namespace xAOD {
23 
25  : IParticle() {
26  }
27 
28 
33 
34 
35  //primitive setters and getters for jetseed 4-vector
36  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, ptJetSeed)
37  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, etaJetSeed)
38  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, phiJetSeed)
39  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, mJetSeed)
40 
41  //primitive setters and getters for jetseed 4-vector
43  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, etaDetectorAxis)
44  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, phiDetectorAxis)
45  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, mDetectorAxis)
46 
47  //primitive setters and getters for IntermediateAxis 4-vector
49  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, etaIntermediateAxis)
50  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, phiIntermediateAxis)
51  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, mIntermediateAxis)
52 
53  //primitive setters and getters for TauEnergyScale 4-vector
54  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, ptTauEnergyScale)
55  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, etaTauEnergyScale)
56  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, phiTauEnergyScale)
57  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, mTauEnergyScale)
58 
59  //primitive setters and getters for jetseed 4-vector
60  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, ptTauEtaCalib)
61  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, etaTauEtaCalib)
62  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, phiTauEtaCalib)
63  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, mTauEtaCalib)
64 
65  // //primitive setters and getters for jetseed 4-vector
66  // AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, ptPanTauEFlowRecProto)
67  // AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, etaPanTauEFlowRecProto)
68  // AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, phiPanTauEFlowRecProto)
69  // AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, mPanTauEFlowRecProto)
70 
71  // //primitive setters and getters for jetseed 4-vector
72  // AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, ptPanTauEFlowRec)
73  // AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, etaPanTauEFlowRec)
74  // AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, phiPanTauEFlowRec)
75  // AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, mPanTauEFlowRec)
76 
77  //primitive setters and getters for jetseed 4-vector
78  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, ptPanTauCellBasedProto)
79  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, etaPanTauCellBasedProto)
80  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, phiPanTauCellBasedProto)
81  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, mPanTauCellBasedProto)
82 
83  //primitive setters and getters for jetseed 4-vector
84  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, ptPanTauCellBased)
85  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, etaPanTauCellBased)
86  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, phiPanTauCellBased)
87  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, mPanTauCellBased)
88 
89  //primitive setters and getters for HLT 4-vector
90  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, ptTrigCaloOnly)
91  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, etaTrigCaloOnly)
92  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, phiTrigCaloOnly)
93  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v2, float, double, mTrigCaloOnly)
94 
95 
96  double TauJet_v2::e() const {
97  return genvecP4().E();
98  }
99 
100 
101  double TauJet_v2::rapidity() const {
102  return genvecP4().Rapidity();
103  }
104 
106  FourMom_t p4;
107  p4.SetPtEtaPhiM( pt(), eta(), phi(),m());
108  return p4;
109  }
110 
112  return GenVecFourMom_t(pt(), eta(), phi(), m());
113  }
114 
116  FourMom_t p4;
117  switch(calib) {
119  p4.SetPtEtaPhiM( ptJetSeed(), etaJetSeed(), phiJetSeed(), mJetSeed());
120  break;
123  break;
126  break;
129  break;
131  p4.SetPtEtaPhiM( ptTauEtaCalib(), etaTauEtaCalib(), phiTauEtaCalib(), mTauEtaCalib());
132  break;
133  // case TauJetParameters::PanTauEFlowRecProto:
134  // p4.SetPtEtaPhiM( ptPanTauEFlowRecProto(), etaPanTauEFlowRecProto(), phiPanTauEFlowRecProto(), mPanTauEFlowRecProto());
135  // break;
136  // case TauJetParameters::PanTauEFlowRec:
137  // p4.SetPtEtaPhiM( ptPanTauEFlowRec(), etaPanTauEFlowRec(), phiPanTauEFlowRec(), mPanTauEFlowRec());
138  // break;
141  break;
144  break;
147  break;
148  default:
149  p4.SetPtEtaPhiM( pt(), eta(), phi(), m());
150  }
151 
152  return p4;
153  }
154 
156  switch(calib) {
167  // case TauJetParameters::PanTauEFlowRecProto:
168  // return GenVecFourMom_t( ptPanTauEFlowRecProto(), etaPanTauEFlowRecProto(), phiPanTauEFlowRecProto(), mPanTauEFlowRecProto());
169  // case TauJetParameters::PanTauEFlowRec:
170  // return GenVecFourMom_t( ptPanTauEFlowRec(), etaPanTauEFlowRec(), phiPanTauEFlowRec(), mPanTauEFlowRec());
177  default:
178  return GenVecFourMom_t( pt(), eta(), phi(), m());
179  }
180  }
181 
182 
183  void TauJet_v2::setP4(double pt, double eta, double phi, double m) {
184  static const Accessor< float > acc1( "pt" );
185  static const Accessor< float > acc2( "eta" );
186  static const Accessor< float > acc3( "phi" );
187  static const Accessor< float > acc4( "m" );
188  acc1( *this )=pt;
189  acc2( *this )=eta;
190  acc3( *this )=phi;
191  acc4( *this )=m;
192  }
193 
194  bool TauJet_v2::setP4(const TauJetParameters::TauCalibType calib, double pt, double eta, double phi, double m) {
195  TauJetCalibTypeMapper_v1 typeMapper;
196  std::string calibString = "";
197  bool result = typeMapper.getValue(calib, calibString);
198  if (result) {
199  Accessor< float > accTauPtCalib( "pt"+calibString );
200  Accessor< float > accTauEtaCalib( "eta"+calibString );
201  Accessor< float > accTauPhiCalib( "phi"+calibString );
202  Accessor< float > accTauMCalib( "m"+calibString );
203  accTauPtCalib( *this )=pt;
204  accTauEtaCalib( *this )=eta;
205  accTauPhiCalib( *this )=phi;
206  accTauMCalib( *this )=m;
207  return true;
208  }
209  else {
210  return false;
211  }
212  }
213 
214 
216  return Type::Tau;
217  }
218 
219  AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( TauJet_v2, unsigned int, ROIWord , setROIWord )
221 
222  //-------------------------------------------------------------------------
223  // Has discriminant
224  //-------------------------------------------------------------------------
225  bool TauJet_v2::hasDiscriminant( TauJetParameters::TauID discID ) const
226  {
227  // Get the discriminant accessor:
228  const Accessor< float >* acc = xAODTau::discriminantAccessorV2( discID );
229  return acc != nullptr;
230  }
231 
232 
233  //-------------------------------------------------------------------------
234  // Get discriminant
235  //-------------------------------------------------------------------------
237  // Get the discriminant accessor:
239  if( ! acc ) return -1111.0;
240 
241  // Retrieve the discriminant value:
242  return ( *acc )( *this );
243  }
244 
245  //-------------------------------------------------------------------------
246  // Set discriminant
247  //-------------------------------------------------------------------------
249  ( *( xAODTau::discriminantAccessorV2( discriminant ) ) )( *this ) = value;
250  return;
251  }
252 
253  //-------------------------------------------------------------------------
254  // Accept
255  //-------------------------------------------------------------------------
258  {
259  static const Accessor< uint32_t > acc( "isTauFlags" );
260  std::bitset<32> isTauFlags( acc( *this ) );
261  return isTauFlags[flag];
262  }
263 
266  {
267  static const Accessor< uint32_t > acc( "isTauFlags" );
268  std::bitset<32> isTauFlags( acc( *this ) );
269  isTauFlags[flag] = value;
270  acc( *this ) = isTauFlags.to_ulong();
271  }
272 
273  //-------------------------------------------------------------------------
274  // Veto flags accessors
275  //-------------------------------------------------------------------------
278  {
279  static const Accessor< uint32_t > acc( "vetoFlags" );
280  std::bitset<32> vetoFlags( acc( *this ) );
281  vetoFlags[flag] = value;
282  acc( *this ) = vetoFlags.to_ulong();
283  }
284 
287  {
288  static const Accessor< uint32_t > acc( "vetoFlags" );
289  std::bitset<32> vetoFlags( acc( *this ) );
290  return vetoFlags[flag];
291  }
292 
293 
294 
295  //-------------------------------------------------------------------------
296  // Get int detail via enum
297  //-------------------------------------------------------------------------
299  // Get the detail accessor:
300  const Accessor< int >* acc = xAODTau::detailsAccessorV2<int>( detail );
301  if( ! acc ) return false;
302  if( ! acc->isAvailable( *this ) ) return false;
303 
304  // Retrieve the detail value:
305  value = ( *acc )( *this );
306  return true;
307  }
308 
309  //-------------------------------------------------------------------------
310  // Get float detail via enum
311  //-------------------------------------------------------------------------
313  // Get the detail accessor:
314  const Accessor< float >* acc = xAODTau::detailsAccessorV2<float>( detail );
315  if( ! acc ) return false;
316  if( ! acc->isAvailable( *this ) ) return false;
317 
318  // Retrieve the detail value:
319  value = ( *acc )( *this );
320  return true;
321  }
322 
323  //-------------------------------------------------------------------------
324  // Set int detail via enum
325  //-------------------------------------------------------------------------
327  ( *( xAODTau::detailsAccessorV2<int>( detail ) ) )( *this ) = value;
328  }
329 
330  //-------------------------------------------------------------------------
331  // Set float detail via enum
332  //-------------------------------------------------------------------------
334  ( *( xAODTau::detailsAccessorV2<float>( detail ) ) )( *this ) = value;
335  }
336 
337 
338  //-------------------------------------------------------------------------
339  // Get int panTauDetail via enum
340  //-------------------------------------------------------------------------
342  // Get the panTauDetail accessor:
343  const Accessor< int >* acc = xAODTau::panTauDetailsAccessorV2<int>( panTauDetail );
344  if( ! acc ) return false;
345  if( ! acc->isAvailable( *this ) ) return false;
346 
347  // Retrieve the panTauDetail value:
348  value = ( *acc )( *this );
349  return true;
350  }
351 
352  //-------------------------------------------------------------------------
353  // Get float panTauDetail via enum
354  //-------------------------------------------------------------------------
355  bool TauJet_v2::panTauDetail( TauJetParameters::PanTauDetails panTauDetail, float& value ) const {
356  // Get the panTauDetail accessor:
357  const Accessor< float >* acc = xAODTau::panTauDetailsAccessorV2<float>( panTauDetail );
358  if( ! acc ) return false;
359  if( ! acc->isAvailable( *this ) ) return false;
360 
361  // Retrieve the panTauDetail value:
362  value = ( *acc )( *this );
363  return true;
364  }
365 
366  //-------------------------------------------------------------------------
367  // Set int panTauDetail via enum
368  //-------------------------------------------------------------------------
370  ( *( xAODTau::panTauDetailsAccessorV2<int>( panTauDetail ) ) )( *this ) = value;
371  }
372 
373  //-------------------------------------------------------------------------
374  // Set float panTauDetail via enum
375  //-------------------------------------------------------------------------
377  ( *( xAODTau::panTauDetailsAccessorV2<float>( panTauDetail ) ) )( *this ) = value;
378  }
379 
380 
381  // setters and getters for the track links
384  trackLinks,
385  setTrackLinks )
386 
387  static const SG::AuxElement::Accessor< TauJet_v2::TrackParticleLinks_t > trackAcc( "trackLinks" );
388 
389  const TrackParticle* TauJet_v2::track( size_t i ) const {
390  return ( *trackAcc( *this )[ i ] );
391  }
392 
393  size_t TauJet_v2::nTracks() const {
394  return trackAcc( *this ).size();
395  }
396 
398 
399  trackAcc( *this ).push_back( tr );
400  return;
401  }
402 
404  trackAcc( *this ).clear();
405  return;
406  }
407 
408 
410  {
411  static const Accessor< std::vector < uint8_t > > trackFlags("trackFlags");
412  std::vector<uint8_t> vec = trackFlags(*this);
413  unsigned int totalTracks = this->nTracks() + this->nWideTracks() + this->nOtherTracks();
414  while (vec.size() < totalTracks) {
415  vec.push_back(0);
416  }
417  for (unsigned int i = 0 ; i < totalTracks ; i++) {
418  const TrackParticle* iterTrack;
419  if (i < this->nTracks()) {
420  iterTrack = this->track(i);
421  }
422  else if (i < this->nTracks() + this->nWideTracks()) {
423  iterTrack = this->wideTrack(i - this->nTracks());
424  }
425  else {
426  iterTrack = this->otherTrack(i - this->nTracks() - this->nWideTracks());
427  }
428  if (track == iterTrack) {
429  std::bitset<8> thisTracksFlags(vec[i]);
430  return thisTracksFlags[flag];
431  }
432  }
433  return false;
434  }
435 
437  {
438  static const Accessor< std::vector < uint8_t > > trackFlags("trackFlags");
439  std::vector<uint8_t> vec = trackFlags(*this);
440  unsigned int totalTracks = this->nTracks() + this->nWideTracks() + this->nOtherTracks();
441  while (vec.size() < totalTracks) {
442  vec.push_back(0);
443  }
444  for (unsigned int i = 0 ; i < totalTracks ; i++) {
445  const TrackParticle* iterTrack;
446  if (i < this->nTracks()) {
447  iterTrack = this->track(i);
448  }
449  else if (i < this->nTracks() + this->nWideTracks()) {
450  iterTrack = this->wideTrack(i - this->nTracks());
451  }
452  else {
453  iterTrack = this->otherTrack(i - this->nTracks() - this->nWideTracks());
454  }
455  if (track == iterTrack) {
456  std::bitset<8> thisTracksFlags(vec[i]);
457  thisTracksFlags[flag] = value;
458  vec[i] = thisTracksFlags.to_ulong();
459  }
460  }
461  trackFlags(*this) = vec;
462  }
463 
464 
465  //setter and getter for trackfilterprongs
466  AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( TauJet_v2, int, trackFilterProngs , setTrackFilterProngs )
467  //setter and getter for trackfilterquality
468  AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( TauJet_v2, int, trackFilterQuality , setTrackFilterQuality )
469  //setter and getter for pi0ConeDR
470  AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( TauJet_v2, float, pi0ConeDR , setPi0ConeDR )
471 
472 
473 
474  float TauJet_v2::trackEtaStrip(unsigned int numTrack) const
475  {
476  static const Accessor< std::vector <float > > trackEtaStripAcc("trackEtaStrip");
477  const std::vector<float>& vec=trackEtaStripAcc(*this);
478  if (vec.size()<numTrack+1)
479  return -999.0;
480  else
481  return vec[numTrack];
482  }
483 
484  void TauJet_v2::setTrackEtaStrip(unsigned int numTrack, float eta)
485  {
486  static const Accessor< std::vector <float > > trackEtaStripAcc("trackEtaStrip");
487  std::vector<float>& vec=trackEtaStripAcc(*this);
488  if (vec.size()<numTrack+1)
489  vec.resize(numTrack+1);
490  vec[numTrack]=eta;
491  }
492 
493 
494  float TauJet_v2::trackPhiStrip(unsigned int numTrack) const
495  {
496  static const Accessor< std::vector <float > > trackPhiStripAcc("trackPhiStrip");
497  const std::vector<float>& vec=trackPhiStripAcc(*this);
498  if (vec.size()<numTrack+1)
499  return -999.0;
500  else
501  return vec[numTrack];
502  }
503 
504  void TauJet_v2::setTrackPhiStrip(unsigned int numTrack, float phi)
505  {
506  static const Accessor< std::vector <float > > trackPhiStripAcc("trackPhiStrip");
507  std::vector<float>& vec=trackPhiStripAcc(*this);
508  if (vec.size()<numTrack+1)
509  vec.resize(numTrack+1);
510  vec[numTrack]=phi;
511  }
512 
513 
514 
515  // setters and getters for the wide track links
518  wideTrackLinks,
519  setWideTrackLinks )
520 
521  static const SG::AuxElement::Accessor< TauJet_v2::TrackParticleLinks_t > wideTrackAcc( "wideTrackLinks" );
522 
523  const TrackParticle* TauJet_v2::wideTrack( size_t i ) const {
524  return ( *wideTrackAcc( *this )[ i ] );
525  }
526 
527  size_t TauJet_v2::nWideTracks() const {
528  return wideTrackAcc( *this ).size();
529  }
530 
532 
533  wideTrackAcc( *this ).push_back( tr );
534  return;
535  }
536 
538  wideTrackAcc( *this ).clear();
539  return;
540  }
541 
542  // setters and getters for the other track links
545  otherTrackLinks,
546  setOtherTrackLinks )
547 
548  static const SG::AuxElement::Accessor< TauJet_v2::TrackParticleLinks_t > otherTrackAcc( "otherTrackLinks" );
549 
550  const TrackParticle* TauJet_v2::otherTrack( size_t i ) const {
551  return ( *otherTrackAcc( *this )[ i ] );
552  }
553 
554  size_t TauJet_v2::nOtherTracks() const {
555  return otherTrackAcc( *this ).size();
556  }
557 
559 
560  otherTrackAcc( *this ).push_back( tr );
561  return;
562  }
563 
565  otherTrackAcc( *this ).clear();
566  return;
567  }
568 
572  jetLink,
573  setJetLink )
574 
575  static const SG::AuxElement::Accessor< TauJet_v2::JetLink_t > jetAcc( "jetLink" );
576 
577  const Jet* TauJet_v2::jet() const {
578  return ( *jetAcc( *this ) );
579  }
580 
581 
582  void TauJet_v2::setJet( const xAOD::JetContainer *cont, const xAOD::Jet *jet) {
583  if( jetAcc( *this ).isValid() )
584  jetAcc( *this ).reset();
585  jetAcc( *this ).toContainedElement( *cont, jet );
586  }
587 
588 
589 
593  vertexLink,
594  setVertexLink )
595 
596  static const SG::AuxElement::Accessor< TauJet_v2::VertexLink_t > vertexAcc( "vertexLink" );
597 
598  const Vertex* TauJet_v2::vertex() const {
599  return ( *vertexAcc( *this ) );
600  }
601 
602 
604  if( vertexAcc( *this ).isValid() )
605  vertexAcc( *this ).reset();
606  vertexAcc( *this ).toContainedElement( *cont, vertex );
607  }
608 
609 
610 
614  secondaryVertexLink,
615  setSecondaryVertexLink )
616 
617  static const SG::AuxElement::Accessor< TauJet_v2::VertexLink_t > secondaryVertexAcc( "secondaryVertexLink" );
618 
619  const Vertex* TauJet_v2::secondaryVertex() const {
620  return ( *secondaryVertexAcc( *this ) );
621  }
622 
623 
625  if( secondaryVertexAcc( *this ).isValid() )
626  secondaryVertexAcc( *this ).reset();
627  secondaryVertexAcc( *this ).toContainedElement( *cont, vertex );
628  }
629 
630 
631 
632 
634  // setters and getters for the hadronic PFO links
637  hadronicPFOLinks,
638  setHadronicPFOLinks )
639 
640 
641 
642  static const SG::AuxElement::Accessor< TauJet_v2::PFOLinks_t > hadronicPFOAcc( "hadronicPFOLinks" );
643 
644  const PFO* TauJet_v2::hadronicPFO( size_t i ) const {
645  return ( *hadronicPFOAcc( *this )[ i ] );
646  }
647 
648  size_t TauJet_v2::nHadronicPFOs() const {
649  return hadronicPFOAcc( *this ).size();
650  }
651 
653 
654  hadronicPFOAcc( *this ).push_back( pfo );
655  return;
656  }
657 
659  hadronicPFOAcc( *this ).clear();
660  return;
661  }
662 
663  // setters and getters for the shot PFO links
666  shotPFOLinks,
667  setShotPFOLinks )
668 
669 
670 
671  static const SG::AuxElement::Accessor< TauJet_v2::PFOLinks_t > shotPFOAcc( "shotPFOLinks" );
672 
673  const PFO* TauJet_v2::shotPFO( size_t i ) const {
674  return ( *shotPFOAcc( *this )[ i ] );
675  }
676 
677  size_t TauJet_v2::nShotPFOs() const {
678  return shotPFOAcc( *this ).size();
679  }
680 
682 
683  shotPFOAcc( *this ).push_back( pfo );
684  return;
685  }
686 
688  shotPFOAcc( *this ).clear();
689  return;
690  }
691 
692 
693  // setters and getters for the charged PFO links
696  chargedPFOLinks,
697  setChargedPFOLinks )
698 
699 
700 
701  static const SG::AuxElement::Accessor< TauJet_v2::PFOLinks_t > chargedPFOAcc( "chargedPFOLinks" );
702 
703  const PFO* TauJet_v2::chargedPFO( size_t i ) const {
704  return ( *chargedPFOAcc( *this )[ i ] );
705  }
706 
707  size_t TauJet_v2::nChargedPFOs() const {
708  return chargedPFOAcc( *this ).size();
709  }
710 
712 
713  chargedPFOAcc( *this ).push_back( pfo );
714  return;
715  }
716 
718  chargedPFOAcc( *this ).clear();
719  return;
720  }
721 
722 
723 
724  // setters and getters for the neutral PFO links
727  neutralPFOLinks,
728  setNeutralPFOLinks )
729 
730 
731 
732  static const SG::AuxElement::Accessor< TauJet_v2::PFOLinks_t > neutralPFOAcc( "neutralPFOLinks" );
733 
734  const PFO* TauJet_v2::neutralPFO( size_t i ) const {
735  return ( *neutralPFOAcc( *this )[ i ] );
736  }
737 
738  size_t TauJet_v2::nNeutralPFOs() const {
739  return neutralPFOAcc( *this ).size();
740  }
741 
743 
744  neutralPFOAcc( *this ).push_back( pfo );
745  return;
746  }
747 
749  neutralPFOAcc( *this ).clear();
750  return;
751  }
752 
753 
754 
755  // setters and getters for the pi0 PFO links
758  pi0PFOLinks,
759  setPi0PFOLinks )
760 
761 
762 
763  static const SG::AuxElement::Accessor< TauJet_v2::PFOLinks_t > pi0PFOAcc( "pi0PFOLinks" );
764 
765  const PFO* TauJet_v2::pi0PFO( size_t i ) const {
766  return ( *pi0PFOAcc( *this )[ i ] );
767  }
768 
769  size_t TauJet_v2::nPi0PFOs() const {
770  return pi0PFOAcc( *this ).size();
771  }
772 
774 
775  pi0PFOAcc( *this ).push_back( pfo );
776  return;
777  }
778 
780  pi0PFOAcc( *this ).clear();
781  return;
782  }
783 
784 
785 
786 
787 
789  // setters and getters for the cellbased_charged PFO links
792  protoChargedPFOLinks,
793  setProtoChargedPFOLinks )
794 
795 
796 
797  static const SG::AuxElement::Accessor< TauJet_v2::PFOLinks_t > protoChargedPFOAcc( "protoChargedPFOLinks" );
798 
799  const PFO* TauJet_v2::protoChargedPFO( size_t i ) const {
800  return ( *protoChargedPFOAcc( *this )[ i ] );
801  }
802 
804  return protoChargedPFOAcc( *this ).size();
805  }
806 
808 
809  protoChargedPFOAcc( *this ).push_back( pfo );
810  return;
811  }
812 
814  protoChargedPFOAcc( *this ).clear();
815  return;
816  }
817 
818 
819  // setters and getters for the cellbased_neutral PFO links
822  protoNeutralPFOLinks,
823  setProtoNeutralPFOLinks )
824 
825 
826 
827  static const SG::AuxElement::Accessor< TauJet_v2::PFOLinks_t > protoNeutralPFOAcc( "protoNeutralPFOLinks" );
828 
829  const PFO* TauJet_v2::protoNeutralPFO( size_t i ) const {
830  return ( *protoNeutralPFOAcc( *this )[ i ] );
831  }
832 
834  return protoNeutralPFOAcc( *this ).size();
835  }
836 
838 
839  protoNeutralPFOAcc( *this ).push_back( pfo );
840  return;
841  }
842 
844  protoNeutralPFOAcc( *this ).clear();
845  return;
846  }
847 
848 
849 
850  // setters and getters for the cellbased_pi0 PFO links
853  protoPi0PFOLinks,
854  setProtoPi0PFOLinks )
855 
856 
857 
858  static const SG::AuxElement::Accessor< TauJet_v2::PFOLinks_t > protoPi0PFOAcc( "protoPi0PFOLinks" );
859 
860  const PFO* TauJet_v2::protoPi0PFO( size_t i ) const {
861  return ( *protoPi0PFOAcc( *this )[ i ] );
862  }
863 
864  size_t TauJet_v2::nProtoPi0PFOs() const {
865  return protoPi0PFOAcc( *this ).size();
866  }
867 
869 
870  protoPi0PFOAcc( *this ).push_back( pfo );
871  return;
872  }
873 
875  protoPi0PFOAcc( *this ).clear();
876  return;
877  }
878 
879 
880 
881 
882  void TauJet_v2::dump() const {
883  /* keep these two lines to create the template methods. Otherwise they are optimzed away
884  * later: move these two lines into a dummy method, which nobody is calling
885  */
886  std::cout << this->detail<float>(xAOD::TauJetParameters::ipSigLeadTrk) << std::endl;
887  std::cout << this->detail<int>(xAOD::TauJetParameters::numTopoClusters) << std::endl;
888  }
889 
890 } // namespace xAOD
891 
892 // LocalWords: panTauDetail mJetSeed
xAOD::TauJet_v2::setTrackEtaStrip
void setTrackEtaStrip(unsigned int numTrack, float eta)
Definition: TauJet_v2.cxx:484
xAOD::TauJetParameters::TauTrackFlag
TauTrackFlag
Enum for tau track flags.
Definition: TauDefs.h:400
python.CaloBCIDAvgAlgConfig.acc3
def acc3
Definition: CaloBCIDAvgAlgConfig.py:69
xAOD::TauJet_v2::clearProtoChargedPFOLinks
void clearProtoChargedPFOLinks()
Remove all cellbased_charged PFOs from the tau.
Definition: TauJet_v2.cxx:813
xAOD::TauJet_v2::protoNeutralPFO
const PFO * protoNeutralPFO(size_t i) const
Get the pointer to a given cellbased_neutral PFO associated with this tau.
xAOD::AUXSTORE_PRIMITIVE_SETTER_AND_GETTER
AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1, float, IP2D_pb, setIP2D_pb) AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1
xAOD::TauJet_v2::addNeutralPFOLink
void addNeutralPFOLink(const ElementLink< PFOContainer > &pfo)
add a neutral PFO to the tau
Definition: TauJet_v2.cxx:742
xAOD::TauJet_v2::mJetSeed
double mJetSeed() const
xAOD::TauJet_v2::ptTauEnergyScale
double ptTauEnergyScale() const
xAOD::TauJet_v2::type
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
Definition: TauJet_v2.cxx:215
xAOD::TauJet_v2::otherTrack
const TrackParticle * otherTrack(size_t i) const
Get the pointer to a given track associated with this tau.
xAOD::TauJet_v2::nOtherTracks
size_t nOtherTracks() const
Get the number of track particles associated with this tau.
Definition: TauJet_v2.cxx:554
xAOD::TauJet_v2::TauJet_v2
TauJet_v2()
Default constructor.
Definition: TauJet_v2.cxx:24
TauJet_v2.h
get_generator_info.result
result
Definition: get_generator_info.py:21
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
xAOD::TauJet_v2::nProtoNeutralPFOs
size_t nProtoNeutralPFOs() const
Get the number of cellbased_neutral PFO particles associated with this tau.
Definition: TauJet_v2.cxx:833
xAOD::TauJet_v2::GenVecFourMom_t
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for taus.
Definition: TauJet_v2.h:66
xAOD::TauJet_v2::mDetectorAxis
double mDetectorAxis() const
xAOD::TauJet_v2::phiTauEtaCalib
double phiTauEtaCalib() const
xAOD::TauJetParameters::PanTauCellBasedProto
@ PanTauCellBasedProto
Definition: TauDefs.h:343
xAOD::TauJet_v2::etaTauEtaCalib
double etaTauEtaCalib() const
xAOD::TauJetParameters::IntermediateAxis
@ IntermediateAxis
Definition: TauDefs.h:338
xAOD::TauJet_v2::clearOtherTrackLinks
void clearOtherTrackLinks()
Remove all tracks from the tau.
Definition: TauJet_v2.cxx:564
xAOD::TauJet_v2::setIsTau
void setIsTau(TauJetParameters::IsTauFlag flag, bool value)
Set Flag for tau acceptance based on predefined arbitrary criteria.
Definition: TauJet_v2.cxx:264
xAOD::TauJet_v2::etaTrigCaloOnly
double etaTrigCaloOnly() const
xAOD::TauJetParameters::VetoFlags
VetoFlags
Enum for Veto flags.
Definition: TauDefs.h:103
xAOD::TauJet_v2::nProtoChargedPFOs
size_t nProtoChargedPFOs() const
Get the number of cellbased_charged PFO particles associated with this tau.
Definition: TauJet_v2.cxx:803
xAOD::float
float
Definition: BTagging_v1.cxx:168
xAOD::TauJet_v2::wideTrack
const TrackParticle * wideTrack(size_t i) const
Get the pointer to a given track associated with this tau.
xAOD::TauJet_v2::setFlag
void setFlag(TauJetParameters::VetoFlags flag, bool value)
Set veto flag.
Definition: TauJet_v2.cxx:276
xAOD::TauJet_v2::vertex
const Vertex * vertex() const
xAOD::TauJet_v2::clearHadronicPFOLinks
void clearHadronicPFOLinks()
Remove all hadronic PFOs from the tau.
Definition: TauJet_v2.cxx:658
SG::Accessor< float >
xAOD::TauJet_v2::addProtoChargedPFOLink
void addProtoChargedPFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_charged PFO to the tau
Definition: TauJet_v2.cxx:807
AuxStoreAccessorMacros.h
xAOD::TauJet_v2::clearNeutralPFOLinks
void clearNeutralPFOLinks()
Remove all neutral PFOs from the tau.
Definition: TauJet_v2.cxx:748
xAOD::TauJet_v2::ptTauEtaCalib
double ptTauEtaCalib() const
xAOD::TauJet_v2::mTrigCaloOnly
double mTrigCaloOnly() const
xAOD::TauJet_v2::nHadronicPFOs
size_t nHadronicPFOs() const
Get the number of hadronic PFO particles associated with this tau.
Definition: TauJet_v2.cxx:648
xAOD::TauJet_v2::ptPanTauCellBasedProto
double ptPanTauCellBasedProto() const
xAOD::TauJet_v2::setTrackPhiStrip
void setTrackPhiStrip(unsigned int numTrack, float phi)
Definition: TauJet_v2.cxx:504
xAOD::TauJet_v2::mTauEnergyScale
double mTauEnergyScale() const
xAOD::TauJet_v2::dump
void dump() const
Definition: TauJet_v2.cxx:882
xAOD::TauJet_v2::setDiscriminant
void setDiscriminant(TauJetParameters::TauID discID, double disc)
Set value of discriminant.
Definition: TauJet_v2.cxx:248
xAOD::TauJet_v2::addChargedPFOLink
void addChargedPFOLink(const ElementLink< PFOContainer > &pfo)
add a charged PFO to the tau
Definition: TauJet_v2.cxx:711
xAOD::TauJet_v2::addWideTrackLink
void addWideTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
Definition: TauJet_v2.cxx:531
xAOD::TauJet_v2::isTau
bool isTau(TauJetParameters::IsTauFlag flag) const
Get Flag for tau acceptance based on predefined arbitrary criteria.
Definition: TauJet_v2.cxx:256
xAOD::TauJet_v2::phiTauEnergyScale
double phiTauEnergyScale() const
TauJetParameters
Definition: TauJetParameters.h:23
xAOD::TauJet_v2::addShotPFOLink
void addShotPFOLink(const ElementLink< PFOContainer > &pfo)
add a shot PFO to the tau
Definition: TauJet_v2.cxx:681
athena.value
value
Definition: athena.py:124
xAOD::TauJetParameters::TauEtaCalib
@ TauEtaCalib
Definition: TauDefs.h:340
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
detail
Definition: extract_histogram_tag.cxx:14
xAOD::TauJet_v2::setP4
void setP4(double pt, double eta, double phi, double m)
Set methods for IParticle values.
Definition: TauJet_v2.cxx:183
xAOD::TauJet_v2::setVertex
void setVertex(const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex)
Definition: TauJet_v2.cxx:603
vec
std::vector< size_t > vec
Definition: CombinationsGeneratorTest.cxx:12
TauGNNUtils::Variables::ptIntermediateAxis
bool ptIntermediateAxis(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:348
xAOD::pt
setRcore setEtHad setFside pt
Definition: TrigPhoton_v1.cxx:106
xAOD::TauJet_v2::nChargedPFOs
size_t nChargedPFOs() const
Get the number of charged PFO particles associated with this tau.
Definition: TauJet_v2.cxx:707
xAOD::TauJetParameters::TauID
TauID
Enum for discriminants.
Definition: TauDefs.h:46
xAOD::TauJet_v2::pi0PFO
const PFO * pi0PFO(size_t i) const
Get the pointer to a given pi0 PFO associated with this tau.
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
xAOD::TauJet_v2::shotPFO
const PFO * shotPFO(size_t i) const
Get the pointer to a given shot PFO associated with this tau.
xAOD::xAODTau::discriminantAccessorV2
const SG::AuxElement::Accessor< float > * discriminantAccessorV2(xAOD::TauJetParameters::TauID discriminant)
Helper function for managing accessors to id input and output variables defined as enums in TauDefs....
xAOD::TauJetParameters::ipSigLeadTrk
@ ipSigLeadTrk
Definition: TauDefs.h:160
xAOD::TauJetParameters::JetSeed
@ JetSeed
Definition: TauDefs.h:336
xAOD::TauJetCalibTypeMapper_v1
Definition: TauJetCalibMapper_v1.h:15
xAOD::TauJet_v2::setPanTauDetail
void setPanTauDetail(TauJetParameters::PanTauDetails panTauDetail, int value)
Definition: TauJet_v2.cxx:369
xAOD::TauJet_v2::phiPanTauCellBased
double phiPanTauCellBased() const
xAOD::IParticle::FourMom_t
TLorentzVector FourMom_t
Definition of the 4-momentum type.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:69
xAOD::TauJet_v2::setJet
void setJet(const xAOD::JetContainer *cont, const xAOD::Jet *jet)
Definition: TauJet_v2.cxx:582
xAOD::TauJet_v2::detail
bool detail(TauJetParameters::Detail detail, int &value) const
Get and set values of common details variables via enum.
Definition: TauJet_v2.cxx:298
xAOD::phi
setEt phi
Definition: TrigEMCluster_v1.cxx:29
xAOD::TauJet_v2::etaIntermediateAxis
double etaIntermediateAxis() const
xAOD::TauJet_v2::ptIntermediateAxis
double ptIntermediateAxis() const
CxxUtils::vec
typename vecDetail::vec_typedef< T, N >::type vec
Define a nice alias for the vectorized type.
Definition: vec.h:207
xAOD::TauJetParameters::Detail
Detail
Enum for tau parameters - used mainly for backward compatibility with the analysis code.
Definition: TauDefs.h:156
xAOD::TauJet_v2::nPi0PFOs
size_t nPi0PFOs() const
Get the number of pi0 PFO particles associated with this tau.
Definition: TauJet_v2.cxx:769
xAOD::TauJet_v2::addPi0PFOLink
void addPi0PFOLink(const ElementLink< PFOContainer > &pfo)
add a pi0 PFO to the tau
Definition: TauJet_v2.cxx:773
xAOD::TauJet_v2::protoPi0PFO
const PFO * protoPi0PFO(size_t i) const
Get the pointer to a given cellbased_pi0 PFO associated with this tau.
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
xAOD::TauJet_v2::protoChargedPFO
const PFO * protoChargedPFO(size_t i) const
Get the pointer to a given cellbased_charged PFO associated with this tau.
xAOD::TauJetCalibTypeMapper_v1::getValue
bool getValue(TauJetParameters::TauCalibType type, std::string &stringName)
Definition: TauJetCalibMapper_v1.h:16
xAOD::TauJet_v2::discriminant
double discriminant(TauJetParameters::TauID discID) const
Get value of discriminant.
Definition: TauJet_v2.cxx:236
xAOD::TauJet_v2::nShotPFOs
size_t nShotPFOs() const
Get the number of shot PFO particles associated with this tau.
Definition: TauJet_v2.cxx:677
xAOD::TauJet_v2::phiJetSeed
double phiJetSeed() const
xAOD::TauJetParameters::TauCalibType
TauCalibType
Enum for tau calib type.
Definition: TauDefs.h:335
lumiFormat.i
int i
Definition: lumiFormat.py:85
xAOD::TauJet_v2::pt
virtual double pt() const
The transverse momentum ( ) of the particle.
xAOD::e
setPy e
Definition: CompositeParticle_v1.cxx:166
python.CaloBCIDAvgAlgConfig.acc1
def acc1
Definition: CaloBCIDAvgAlgConfig.py:49
xAOD::AUXSTORE_PRIMITIVE_GETTER_WITH_CAST
AUXSTORE_PRIMITIVE_GETTER_WITH_CAST(Muon_v1, uint8_t, Muon_v1::EnergyLossType, energyLossType) AUXSTORE_PRIMITIVE_SETTER_WITH_CAST(Muon_v1
xAOD::charge
charge
Definition: TrigElectron_v1.cxx:85
xAOD::TauJet_v2::etaPanTauCellBased
double etaPanTauCellBased() const
master.flag
bool flag
Definition: master.py:29
python.CaloBCIDAvgAlgConfig.acc2
def acc2
Definition: CaloBCIDAvgAlgConfig.py:59
xAOD::TauJet_v2::ptDetectorAxis
double ptDetectorAxis() const
xAOD::TauJet_v2::jet
const Jet * jet() const
xAOD::TauJet_v2::addOtherTrackLink
void addOtherTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
Definition: TauJet_v2.cxx:558
xAOD::TauJet_v2::neutralPFO
const PFO * neutralPFO(size_t i) const
Get the pointer to a given neutral PFO associated with this tau.
xAOD::TauJet_v2::nNeutralPFOs
size_t nNeutralPFOs() const
Get the number of neutral PFO particles associated with this tau.
Definition: TauJet_v2.cxx:738
xAOD::TauJet_v2::flag
bool flag(TauJetParameters::VetoFlags flag) const
Get veto flag.
Definition: TauJet_v2.cxx:285
xAOD::TauJet_v2::setDetail
void setDetail(TauJetParameters::Detail detail, int value)
Definition: TauJet_v2.cxx:326
xAOD::TauJet_v2
Class describing a tau jet.
Definition: TauJet_v2.h:38
xAOD::TauJet_v2::panTauDetail
bool panTauDetail(TauJetParameters::PanTauDetails panTauDetail, int &value) const
Get and set values of pantau details variables via enum.
Definition: TauJet_v2.cxx:341
xAOD::TauJetParameters::PanTauCellBased
@ PanTauCellBased
Definition: TauDefs.h:344
xAOD::TauJet_v2::mTauEtaCalib
double mTauEtaCalib() const
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
xAOD::TauJet_v2::setTrackFlag
void setTrackFlag(const TrackParticle *track, TauJetParameters::TauTrackFlag flag, bool value)
Definition: TauJet_v2.cxx:436
xAOD::TauJet_v2::nWideTracks
size_t nWideTracks() const
Get the number of track particles associated with this tau.
Definition: TauJet_v2.cxx:527
xAOD::TauJetParameters::numTopoClusters
@ numTopoClusters
get number of topocluster constituents of jet associated to tau candidate
Definition: TauDefs.h:173
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
python.LArRecUtilsConfig.acc4
def acc4
Definition: LArRecUtilsConfig.py:196
xAOD::TauJet_v2::ptJetSeed
double ptJetSeed() const
xAOD::TauJetParameters::TauEnergyScale
@ TauEnergyScale
Definition: TauDefs.h:339
xAOD::TauJet_v2::etaTauEnergyScale
double etaTauEnergyScale() const
xAOD::TauJet_v2::addProtoNeutralPFOLink
void addProtoNeutralPFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_neutral PFO to the tau
Definition: TauJet_v2.cxx:837
PFO
Definition: ClusterMomentPlots.h:13
TauJetAccessors_v2.h
xAOD::TauJet_v2::etaDetectorAxis
double etaDetectorAxis() const
xAOD::TauJet_v2::clearChargedPFOLinks
void clearChargedPFOLinks()
Remove all charged PFOs from the tau.
Definition: TauJet_v2.cxx:717
xAOD::TauJet_v2::clearTrackLinks
void clearTrackLinks()
Remove all tracks from the tau.
Definition: TauJet_v2.cxx:403
xAOD::TauJet_v2::clearWideTrackLinks
void clearWideTrackLinks()
Remove all tracks from the tau.
Definition: TauJet_v2.cxx:537
xAOD::TauJet_v2::mIntermediateAxis
double mIntermediateAxis() const
xAOD::TauJet_v2::track
const TrackParticle * track(size_t i) const
Get the pointer to a given track associated with this tau.
xAOD::TauJet_v2::genvecP4
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : internal taus type.
Definition: TauJet_v2.cxx:111
TauJetParameters::discriminant
@ discriminant
Definition: TauJetParameters.h:166
xAOD::TauJet_v2::addTrackLink
void addTrackLink(const ElementLink< TrackParticleContainer > &tr)
add a track to the tau
Definition: TauJet_v2.cxx:397
xAOD::TauJet_v2::trackFlag
bool trackFlag(const TrackParticle *track, TauJetParameters::TauTrackFlag flag) const
Definition: TauJet_v2.cxx:409
xAOD::TauJet_v2::m
virtual double m() const
The invariant mass of the particle.
xAOD::TauJet_v2::mPanTauCellBased
double mPanTauCellBased() const
xAOD::TauJet_v2::clearPi0PFOLinks
void clearPi0PFOLinks()
Remove all pi0 PFOs from the tau.
Definition: TauJet_v2.cxx:779
xAOD::TauJet_v2::clearProtoNeutralPFOLinks
void clearProtoNeutralPFOLinks()
Remove all cellbased_neutral PFOs from the tau.
Definition: TauJet_v2.cxx:843
xAOD::TauJet_v2::phiTrigCaloOnly
double phiTrigCaloOnly() const
xAOD::TauJetParameters::TrigCaloOnly
@ TrigCaloOnly
Definition: TauDefs.h:345
xAOD::TauJet_v2::etaPanTauCellBasedProto
double etaPanTauCellBasedProto() const
PlotSFuncertainty.calib
calib
Definition: PlotSFuncertainty.py:110
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
xAOD::TauJet_v2::eta
virtual double eta() const
The pseudorapidity ( ) of the particle.
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
xAOD::TauJet_v2::hadronicPFO
const PFO * hadronicPFO(size_t i) const
Get the pointer to a given hadronic PFO associated with this tau.
TauJetCalibMapper_v1.h
xAOD::TauJetParameters::PanTauDetails
PanTauDetails
Enum for tau details (scalar) calculated by pantau.
Definition: TauDefs.h:355
xAOD::TauJet_v2::phiIntermediateAxis
double phiIntermediateAxis() const
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
xAOD::TauJet_v2::ptPanTauCellBased
double ptPanTauCellBased() const
xAOD::TauJet_v2::secondaryVertex
const Vertex * secondaryVertex() const
xAOD::TauJet_v2::nTracks
size_t nTracks() const
Definition: TauJet_v2.cxx:393
xAOD::TauJet_v2::rapidity
virtual double rapidity() const
The true rapidity (y) of the particle.
Definition: TauJet_v2.cxx:101
xAOD::TauJet_v2::nProtoPi0PFOs
size_t nProtoPi0PFOs() const
Get the number of cellbased_pi0 PFO particles associated with this tau.
Definition: TauJet_v2.cxx:864
xAOD::TauJetParameters::IsTauFlag
IsTauFlag
Enum for IsTau flags.
Definition: TauDefs.h:116
xAOD::TauJet_v2::p4
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition: TauJet_v2.cxx:105
xAODType::Tau
@ Tau
The object is a tau (jet)
Definition: ObjectType.h:49
xAOD::TauJet_v2::phiDetectorAxis
double phiDetectorAxis() const
xAOD::TauJet_v2::addProtoPi0PFOLink
void addProtoPi0PFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_pi0 PFO to the tau
Definition: TauJet_v2.cxx:868
xAOD::TauJet_v2::PFOLinks_t
std::vector< ElementLink< xAOD::PFOContainer > > PFOLinks_t
Definition: TauJet_v2.h:317
xAOD::TauJet_v2::ptTrigCaloOnly
double ptTrigCaloOnly() const
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
xAOD::TauJetParameters::DetectorAxis
@ DetectorAxis
Definition: TauDefs.h:337
xAOD::TauJet_v2::addHadronicPFOLink
void addHadronicPFOLink(const ElementLink< PFOContainer > &pfo)
add a hadronic PFO to the tau
Definition: TauJet_v2.cxx:652
TauGNNUtils::Variables::ptDetectorAxis
bool ptDetectorAxis(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:343
xAOD::TauJet_v2::clearShotPFOLinks
void clearShotPFOLinks()
Remove all shot PFOs from the tau.
Definition: TauJet_v2.cxx:687
xAOD::TauJet_v2::etaJetSeed
double etaJetSeed() const
xAODType::ObjectType
ObjectType
Type of objects that have a representation in the xAOD EDM.
Definition: ObjectType.h:32
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60
xAOD::TauJet_v2::mPanTauCellBasedProto
double mPanTauCellBasedProto() const
xAOD::TauJet_v2::setSecondaryVertex
void setSecondaryVertex(const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex)
Definition: TauJet_v2.cxx:624
xAOD::TauJet_v2::phi
virtual double phi() const
The azimuthal angle ( ) of the particle.
xAOD::TauJet_v2::trackPhiStrip
float trackPhiStrip(unsigned int numTrack) const
Definition: TauJet_v2.cxx:494
xAOD::TauJet_v2::clearProtoPi0PFOLinks
void clearProtoPi0PFOLinks()
Remove all cellbased_pi0 PFOs from the tau.
Definition: TauJet_v2.cxx:874
xAOD::TauJet_v2::chargedPFO
const PFO * chargedPFO(size_t i) const
Get the pointer to a given charged PFO associated with this tau.
xAOD::TauJet_v2::phiPanTauCellBasedProto
double phiPanTauCellBasedProto() const
xAOD::TauJet_v2::TrackParticleLinks_t
std::vector< ElementLink< xAOD::TrackParticleContainer > > TrackParticleLinks_t
Definition: TauJet_v2.h:242
xAOD::AUXSTORE_OBJECT_SETTER_AND_GETTER
AUXSTORE_OBJECT_SETTER_AND_GETTER(CaloRings_v1, RingSetLinks, ringSetLinks, setRingSetLinks) unsigned CaloRings_v1
Definition: CaloRings_v1.cxx:27