ATLAS Offline Software
TauJet_v3.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // System include(s):
6 #include <cstdint>
7 #include <bitset>
8 
9 // EDM include(s):
11 
12 // Local include(s):
15 //#include "xAODTau/versions/TauJetCalibMapper_v3.h"
16 #include "TauJetAccessors_v3.h"
18 
19 
20 namespace xAOD {
21 
23  : IParticle() {
24  }
25 
26 
27  //primitive setters and getters for default 4-vector
32 
33  //primitive setters and getters for JetSeed 4-vector
34  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, ptJetSeed)
35  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, etaJetSeed)
36  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, phiJetSeed)
37  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, mJetSeed)
38 
39  //primitive setters and getters for DetectorAxis 4-vector
41  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, etaDetectorAxis)
42  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, phiDetectorAxis)
43  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, mDetectorAxis)
44 
45  //primitive setters and getters for IntermediateAxis 4-vector
47  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, etaIntermediateAxis)
48  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, phiIntermediateAxis)
49  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, mIntermediateAxis)
50 
51  //primitive setters and getters for TauEnergyScale 4-vector
52  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, ptTauEnergyScale)
53  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, etaTauEnergyScale)
54  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, phiTauEnergyScale)
55  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, mTauEnergyScale)
56 
57  //primitive setters and getters for ptTauEtaCalib 4-vector - deprecated in R22
58  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, ptTauEtaCalib)
59  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, etaTauEtaCalib)
60  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, phiTauEtaCalib)
61  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, mTauEtaCalib)
62 
63  //primitive setters and getters for PanTauCellBasedProto 4-vector - deprecated in R22
64  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, ptPanTauCellBasedProto)
65  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, etaPanTauCellBasedProto)
66  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, phiPanTauCellBasedProto)
67  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, mPanTauCellBasedProto)
68 
69  //primitive setters and getters for PanTauCellBased 4-vector
70  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, ptPanTauCellBased)
71  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, etaPanTauCellBased)
72  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, phiPanTauCellBased)
73  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, mPanTauCellBased)
74 
75  //primitive setters and getters for TrigCaloOnly 4-vector
76  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, ptTrigCaloOnly)
77  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, etaTrigCaloOnly)
78  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, phiTrigCaloOnly)
79  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, mTrigCaloOnly)
80 
81  //primitive setters and getters for FinalCalib 4-vector
82  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, ptFinalCalib)
83  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, etaFinalCalib)
84  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, phiFinalCalib)
85  AUXSTORE_PRIMITIVE_GETTER_WITH_CAST( TauJet_v3, float, double, mFinalCalib)
86 
87 
88  double TauJet_v3::e() const {
89  return genvecP4().E();
90  }
91 
92 
93  double TauJet_v3::rapidity() const {
94  return genvecP4().Rapidity();
95  }
96 
98  FourMom_t p4{};
99  p4.SetPtEtaPhiM( pt(), eta(), phi(),m());
100  return p4;
101  }
102 
104  return GenVecFourMom_t(pt(), eta(), phi(), m());
105  }
106 
108  FourMom_t p4;
109 
110  switch(calib) {
112  p4.SetPtEtaPhiM( ptJetSeed(), etaJetSeed(), phiJetSeed(), mJetSeed());
113  break;
116  break;
119  break;
122  break;
124  p4.SetPtEtaPhiM( ptTauEtaCalib(), etaTauEtaCalib(), phiTauEtaCalib(), mTauEtaCalib());
125  break;
128  break;
131  break;
134  break;
136  p4.SetPtEtaPhiM( ptFinalCalib(), etaFinalCalib(), phiFinalCalib(), mFinalCalib());
137  break;
138  default:
139  p4.SetPtEtaPhiM( pt(), eta(), phi(), m());
140  }
141 
142  return p4;
143  }
144 
146 
147  switch(calib) {
166  default:
167  return GenVecFourMom_t( pt(), eta(), phi(), m());
168  }
169  }
170 
171 
172  void TauJet_v3::setP4(double pt, double eta, double phi, double m) {
173  static const Accessor< float > acc1( "pt" );
174  static const Accessor< float > acc2( "eta" );
175  static const Accessor< float > acc3( "phi" );
176  static const Accessor< float > acc4( "m" );
177  acc1( *this )=pt;
178  acc2( *this )=eta;
179  acc3( *this )=phi;
180  acc4( *this )=m;
181  }
182 
183  bool TauJet_v3::setP4(const TauJetParameters::TauCalibType calib, double pt, double eta, double phi, double m) {
184  TauJetCalibTypeMapper_v1 typeMapper;
185  std::string calibString = "";
186  bool result = typeMapper.getValue(calib, calibString);
187  if (result) {
188  Accessor< float > accTauPtCalib( "pt"+calibString );
189  Accessor< float > accTauEtaCalib( "eta"+calibString );
190  Accessor< float > accTauPhiCalib( "phi"+calibString );
191  Accessor< float > accTauMCalib( "m"+calibString );
192  accTauPtCalib( *this )=pt;
193  accTauEtaCalib( *this )=eta;
194  accTauPhiCalib( *this )=phi;
195  accTauMCalib( *this )=m;
196  return true;
197  }
198  else {
199  return false;
200  }
201 
202  // TauJetCalibTypeMapper_v3 typeMapper;
203  // std::string calibStringPt, calibStringEta, calibStringPhi, calibStringM;
204  // bool result = typeMapper.getValue(calib, calibStringPt, calibStringEta, calibStringPhi, calibStringM);
205  // if (result) {
206  // if(calibStringPt.size()) {
207  // Accessor< float > accTauPtCalib( calibStringPt );
208  // accTauPtCalib( *this )=pt;
209  // }
210  // if(calibStringEta.size()) {
211  // Accessor< float > accTauEtaCalib( calibStringEta );
212  // accTauEtaCalib( *this )=eta;
213  // }
214  // if(calibStringPhi.size()) {
215  // Accessor< float > accTauPhiCalib( calibStringPhi );
216  // accTauPhiCalib( *this )=phi;
217  // }
218  // if(calibStringM.size()) {
219  // Accessor< float > accTauMCalib( calibStringM );
220  // accTauMCalib( *this )=m;
221  // }
222  // return true;
223  // }
224  // else {
225  // return false;
226  // }
227 
228 
229  }
230 
231 
233  return Type::Tau;
234  }
235 
236  AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( TauJet_v3, unsigned int, ROIWord , setROIWord )
238 
239  //-------------------------------------------------------------------------
240  // Has discriminant
241  //-------------------------------------------------------------------------
242  bool TauJet_v3::hasDiscriminant( TauJetParameters::TauID discID ) const
243  {
244  // Get the discriminant accessor:
245  const Accessor< float >* acc = xAODTau::discriminantAccessorV3( discID );
246  return acc != nullptr;
247  }
248 
249 
250  //-------------------------------------------------------------------------
251  // Get discriminant
252  //-------------------------------------------------------------------------
254  // Get the discriminant accessor:
256  if( ! acc ) return -1111.0;
257 
258  // Retrieve the discriminant value:
259  return ( *acc )( *this );
260  }
261 
262  //-------------------------------------------------------------------------
263  // Set discriminant
264  //-------------------------------------------------------------------------
266  ( *( xAODTau::discriminantAccessorV3( discriminant ) ) )( *this ) = value;
267  return;
268  }
269 
270  //-------------------------------------------------------------------------
271  // Accept
272  //-------------------------------------------------------------------------
274  {
275  static const Accessor< uint32_t > acc( "isTauFlags" );
276  std::bitset<32> isTauFlags( acc( *this ) );
277  return isTauFlags[flag];
278  }
279 
281  {
282  static const Accessor< uint32_t > acc( "isTauFlags" );
283  std::bitset<32> isTauFlags( acc( *this ) );
284  isTauFlags[flag] = value;
285  acc( *this ) = isTauFlags.to_ulong();
286  }
287 
288 
289  //-------------------------------------------------------------------------
290  // Get int detail via enum
291  //-------------------------------------------------------------------------
293  // Get the detail accessor:
294  const Accessor< int >* acc = xAODTau::detailsAccessorV3<int>( detail );
295  if( ! acc ) return false;
296  if( ! acc->isAvailable( *this ) ) return false;
297 
298  // Retrieve the detail value:
299  value = ( *acc )( *this );
300  return true;
301  }
302 
303  //-------------------------------------------------------------------------
304  // Get float detail via enum
305  //-------------------------------------------------------------------------
307  // Get the detail accessor:
308  const Accessor< float >* acc = xAODTau::detailsAccessorV3<float>( detail );
309  if( ! acc ) return false;
310  if( ! acc->isAvailable( *this ) ) return false;
311 
312  // Retrieve the detail value:
313  value = ( *acc )( *this );
314  return true;
315  }
316 
317  //-------------------------------------------------------------------------
318  // Get IParticle detail via enum
319  //-------------------------------------------------------------------------
321  // Get the detail accessor:
322  value=nullptr;
323  const Accessor< ElementLink<IParticleContainer> >* acc = xAODTau::detailsAccessorV3<ElementLink<IParticleContainer> >( detail );
324  if( ! acc ) return false;
325  if( ! acc->isAvailable( *this ) ) return false;
326 
327  // Retrieve the detail value:
328  ElementLink< IParticleContainer > link = ( *acc )( *this );
329  if( ! link.isValid() ) return false;
330  value = *link;
331  return true;
332  }
333 
334  //-------------------------------------------------------------------------
335  // Set int detail via enum
336  //-------------------------------------------------------------------------
338  ( *( xAODTau::detailsAccessorV3<int>( detail ) ) )( *this ) = value;
339  }
340 
341  //-------------------------------------------------------------------------
342  // Set float detail via enum
343  //-------------------------------------------------------------------------
345  ( *( xAODTau::detailsAccessorV3<float>( detail ) ) )( *this ) = value;
346  }
347 
348  //-------------------------------------------------------------------------
349  // Set IParticle detail via enum
350  //-------------------------------------------------------------------------
352  if(value==nullptr){
354  ( *( xAODTau::detailsAccessorV3<ElementLink < IParticleContainer > >( detail ) ) )( *this ) = lParticleLink;
355  }
356  else{
357  if(!cont) cont=static_cast<const IParticleContainer*> (value->container());
358  ElementLink < IParticleContainer > lParticleLink(value, *cont);
359  ( *( xAODTau::detailsAccessorV3<ElementLink < IParticleContainer > >( detail ) ) )( *this ) = lParticleLink;
360  }
361  }
362 
363 
364  //-------------------------------------------------------------------------
365  // Get int panTauDetail via enum
366  //-------------------------------------------------------------------------
368  // Get the panTauDetail accessor:
369  const Accessor< int >* acc = xAODTau::panTauDetailsAccessorV3<int>( panTauDetail );
370  if( ! acc ) return false;
371  if( ! acc->isAvailable( *this ) ) return false;
372 
373  // Retrieve the panTauDetail value:
374  value = ( *acc )( *this );
375  return true;
376  }
377 
378  //-------------------------------------------------------------------------
379  // Get float panTauDetail via enum
380  //-------------------------------------------------------------------------
381  bool TauJet_v3::panTauDetail( TauJetParameters::PanTauDetails panTauDetail, float& value ) const {
382  // Get the panTauDetail accessor:
383  const Accessor< float >* acc = xAODTau::panTauDetailsAccessorV3<float>( panTauDetail );
384  if( ! acc ) return false;
385  if( ! acc->isAvailable( *this ) ) return false;
386 
387  // Retrieve the panTauDetail value:
388  value = ( *acc )( *this );
389  return true;
390  }
391 
392  //-------------------------------------------------------------------------
393  // Set int panTauDetail via enum
394  //-------------------------------------------------------------------------
396  ( *( xAODTau::panTauDetailsAccessorV3<int>( panTauDetail ) ) )( *this ) = value;
397  }
398 
399  //-------------------------------------------------------------------------
400  // Set float panTauDetail via enum
401  //-------------------------------------------------------------------------
403  ( *( xAODTau::panTauDetailsAccessorV3<float>( panTauDetail ) ) )( *this ) = value;
404  }
405 
406 
407 
408 
409  // implementing the functions by hand in order to maintain tauTrackLinks as
410  // persistent name for EL<TauTracks>, but to actually set/retrieve all links using
411  // function with name 'all'TauTrackLinks/set'All'TauTrackLinks
412  // // setters and getters for the track links
413  // AUXSTORE_OBJECT_SETTER_AND_GETTER( TauJet_v3,
414  // TauJet_v3::TauTrackLinks_t,
415  // tauTrackLinks,
416  // setTauTrackLinks )
417 
418  static const SG::AuxElement::Accessor< TauJet_v3::TauTrackLinks_t > tauTrackAcc( "tauTrackLinks" );
419 
421  return tauTrackAcc(*this);
422  }
423 
425  tauTrackAcc(*this) = links;
426  return;
427  }
428 
429  const TauJet_v3::TauTrackLinks_t TauJet_v3::tauTrackLinks(TauJetParameters::TauTrackFlag flag/*=TauJetParameters::TauTrackFlag::classifiedCharged*/) const{
431  return tauTrackLinksWithMask(mask);
432  }
433 
436  for(const ElementLink< xAOD::TauTrackContainer >& link : tauTrackAcc(*this) ){
437  // protection against tau track thinning
438  if(!link.isValid()) continue;
439  if( (*link)->flagWithMask(mask))
440  links.push_back(link);
441  }
442  return links;
443  }
444 
445 
447  return tauTrackAcc(*this);
448  }
449 
450  const TauTrack* TauJet_v3::track( size_t i, TauJetParameters::TauTrackFlag flag/*=TauJetParameters::TauTrackFlag::classifiedCharged*/ ,int* container_index) const {
452  return trackWithMask(i, mask, container_index);
453  }
454 
455  const TauTrack* TauJet_v3::trackWithMask( size_t i, unsigned int mask, int* container_index ) const {
456  uint tracks_pass_mask=0;
457 
458  for(const ElementLink< xAOD::TauTrackContainer >& link : tauTrackAcc(*this) ){
459  // protection against tau track thinning
460  if(!link.isValid()) continue;
461  const TauTrack* trk = *link;
462  if(trk->flagWithMask(mask)){
463  if(tracks_pass_mask==i) {
464  if(container_index) *container_index=link.index();
465  return trk;
466  }
467  else tracks_pass_mask++;
468  }
469  }
470  return nullptr;
471 
472  }
473 
474 
475 #ifndef XAOD_STANDALONE
476  TauTrack* TauJet_v3::trackNonConst( size_t i, TauJetParameters::TauTrackFlag flag/*=TauJetParameters::TauTrackFlag::classifiedCharged*/ ) {
477  int container_index=-1;
478  const TauTrack* c_trk=track(i,flag, &container_index);
479  if(c_trk==nullptr || container_index<0) return nullptr;
480  ElementLink< xAOD::TauTrackContainer > link = tauTrackAcc(*this).at(0);//we don't care about this specific link, just the container
481  xAOD::TauTrackContainer* tauTrackContainer = link.getDataNonConstPtr();
482  TauTrack* trk=tauTrackContainer->at(container_index);
483  if(trk!=c_trk) std::cout << "Did not properly retrieve non-const tauTrack" << std::endl;
484  return trk;
485  // for( xAOD::TauTrack* trk : *tauTrackContainer){
486  // if(trk==c_trk) return trk;
487  // }
488  //return 0;
489  }
490 #endif
491 
493  std::vector<const TauTrack*> TauJet_v3::tracks(TauJetParameters::TauTrackFlag flag/*=TauJetParameters::TauTrackFlag::classifiedCharged*/ ) const{
495  return tracksWithMask( mask );
496  }
497 
499  std::vector<const TauTrack*> TauJet_v3::tracksWithMask( unsigned int mask ) const {
500  std::vector<const TauTrack*> trks;
501  for(const ElementLink< xAOD::TauTrackContainer >& link : tauTrackAcc(*this) ){
502  // protection against tau track thinning
503  if(!link.isValid()) continue;
504  const TauTrack* trk = *link;
505  if(trk->flagWithMask(mask)){
506  trks.push_back(trk);
507  }
508  }
509  return trks;
510  }
511 
512 
514  std::vector<const TauTrack*> TauJet_v3::allTracks() const{
515  // std::vector<const TauTrack*> trks;
516  // for(const ElementLink< xAOD::TauTrackContainer > link : tauTrackAcc(*this) ){
517  // const TauTrack* trk = *link;
518  // trks.push_back(trk);
519  // }
520  // return trks;
522  return tracksWithMask( mask );
523  }
524 
525  //number of tracks with a given classification
526  size_t TauJet_v3::nTracks(TauJetParameters::TauTrackFlag flag/*=TauJetParameters::TauTrackFlag::classifiedCharged*/) const{
528  return nTracksWithMask(mask);
529  }
530 
531 
534  }
535 
538  }
539 
540 
541  //number of tracks with a given classification
542  size_t TauJet_v3::nTracksWithMask(unsigned int flags) const{
543  size_t n(0);
544  for(const ElementLink< xAOD::TauTrackContainer >& link : tauTrackAcc(*this) ){
545  // protection against tau track thinning
546  if(!link.isValid()) continue;
547  const TauTrack* trk = *link;
548  if(trk->flagWithMask(flags)) n++;
549  }
550  return n;
551  }
552 
553  //all tracks regardless of classification or lack thereof
554  size_t TauJet_v3::nAllTracks() const{
555  // unsafe w.r.t. tau track thinning
556  //return tauTrackAcc( *this ).size();
557  // return the number of tracks with valid element link
559  return nTracksWithMask( mask );
560  }
561 
564  tauTrackAcc( *this ).push_back(tr);
565  }
568  tauTrackAcc( *this ).clear();
569  }
570 
571  // setters and getters for the cluster links
574  clusterLinks,
575  setClusterLinks )
576 
577  static const SG::AuxElement::Accessor< TauJet_v3::IParticleLinks_t > clusterAcc( "clusterLinks" );
578 
579 
580  const IParticle* TauJet_v3::cluster( size_t i) const {
581  return *(clusterAcc(*this).at(i));
582  }
583 
584 
585  std::vector<const IParticle*> TauJet_v3::clusters() const {
586  std::vector<const IParticle*> particleList;
587 
588  for (const auto& link : clusterAcc(*this)) {
589  if (!link) {
590  continue;
591  }
592  const IParticle* particle = *link;
593  particleList.push_back(particle);
594  }
595 
596  return particleList;
597  }
598 
599 
600 
601  TauJet_v3::FourMom_t TauJet_v3::calibratedCluster( size_t i, xAOD::CaloCluster::State state/*=xAOD::CaloCluster::State::CALIBRATED*/) const{
602  const xAOD::IParticle* part = this->cluster(i);
603  if(!part) return FourMom_t();
604  const xAOD::CaloCluster* clus=dynamic_cast<const xAOD::CaloCluster*> (part);
605  if(!clus) return FourMom_t();
606  return clus->p4(state);
607  }
608 
609  //number of clusters
610  size_t TauJet_v3::nClusters() const{
611  return clusterAcc( *this ).size();
612  }
613 
616  clusterAcc( *this ).push_back(tr);
617  }
618 
621  clusterAcc( *this ).clear();
622  }
623 
624  static const SG::AuxElement::Accessor< std::vector< xAOD::CaloVertexedTopoCluster > > vertexedClustersAcc( "VertexedClusters" );
625 
626  std::vector<xAOD::CaloVertexedTopoCluster> TauJet_v3::vertexedClusters() const {
627  return vertexedClustersAcc(*this);
628  }
629 
630  // setters and getters for the pi0 links
633  pi0Links,
634  setPi0Links )
635 
636  static const SG::AuxElement::Accessor< TauJet_v3::IParticleLinks_t > pi0Acc( "pi0Links" );
637 
638 
639  const IParticle* TauJet_v3::pi0( size_t i) const {
640  return *(pi0Acc(*this).at(i));
641  }
642 
643  //number of pi0s
644  size_t TauJet_v3::nPi0s() const{
645  return pi0Acc( *this ).size();
646  }
647 
650  pi0Acc( *this ).push_back(tr);
651  }
652 
655  pi0Acc( *this ).clear();
656  }
657 
658 
659 
660  //setter and getter for trackfilterprongs
661  AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( TauJet_v3, int, trackFilterProngs , setTrackFilterProngs )
662  //setter and getter for trackfilterquality
663  AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( TauJet_v3, int, trackFilterQuality , setTrackFilterQuality )
664  //setter and getter for pi0ConeDR
665  AUXSTORE_PRIMITIVE_SETTER_AND_GETTER( TauJet_v3, float, pi0ConeDR , setPi0ConeDR )
666 
667 
670  jetLink,
671  setJetLink )
672 
673  static const SG::AuxElement::Accessor< TauJet_v3::JetLink_t > jetAcc( "jetLink" );
674 
675  const Jet* TauJet_v3::jet() const {
676  if (!jetAcc( *this ).isValid()) {
677  return nullptr;
678  }
679  return ( *jetAcc( *this ) );
680  }
681 
682 
683  void TauJet_v3::setJet( const xAOD::JetContainer *cont, const xAOD::Jet *jet) {
684  if( jetAcc( *this ).isValid() )
685  jetAcc( *this ).reset();
686  jetAcc( *this ).toContainedElement( *cont, jet );
687  }
688 
689 
690 
694  vertexLink,
695  setVertexLink )
696 
697  static const SG::AuxElement::Accessor< TauJet_v3::VertexLink_t > vertexAcc( "vertexLink" );
698 
699  const Vertex* TauJet_v3::vertex() const {
700  if ( !vertexAcc(*this).isValid() ) {
701  return nullptr;
702  }
703  return ( *vertexAcc( *this ) );
704  }
705 
706 
708  if( vertexAcc( *this ).isValid() )
709  vertexAcc( *this ).reset();
710  vertexAcc( *this ).toContainedElement( *cont, vertex );
711  }
712 
713 
714 
718  secondaryVertexLink,
719  setSecondaryVertexLink )
720 
721  static const SG::AuxElement::Accessor< TauJet_v3::VertexLink_t > secondaryVertexAcc( "secondaryVertexLink" );
722 
723  const Vertex* TauJet_v3::secondaryVertex() const {
724  if (secondaryVertexAcc.isAvailable(*this) == false) {
725  return nullptr;
726  }
727  const VertexLink_t& link = secondaryVertexAcc(*this);
728  if (link.isValid() == false) {
729  return nullptr;
730  }
731  return *link;
732  }
733 
734 
736  if( secondaryVertexAcc( *this ).isValid() )
737  secondaryVertexAcc( *this ).reset();
738  secondaryVertexAcc( *this ).toContainedElement( *cont, vertex );
739  }
740 
741 
742 
743 
745  // setters and getters for the hadronic PFO links
748  hadronicPFOLinks,
749  setHadronicPFOLinks )
750 
751 
752 
753  static const SG::AuxElement::Accessor< TauJet_v3::PFOLinks_t > hadronicPFOAcc( "hadronicPFOLinks" );
754 
755  const PFO* TauJet_v3::hadronicPFO( size_t i ) const {
756  return ( *hadronicPFOAcc( *this )[ i ] );
757  }
758 
759  size_t TauJet_v3::nHadronicPFOs() const {
760  return hadronicPFOAcc( *this ).size();
761  }
762 
764 
765  hadronicPFOAcc( *this ).push_back( pfo );
766  return;
767  }
768 
770  hadronicPFOAcc( *this ).clear();
771  return;
772  }
773 
774  // setters and getters for the shot PFO links
777  shotPFOLinks,
778  setShotPFOLinks )
779 
780 
781 
782  static const SG::AuxElement::Accessor< TauJet_v3::PFOLinks_t > shotPFOAcc( "shotPFOLinks" );
783 
784  const PFO* TauJet_v3::shotPFO( size_t i ) const {
785  return ( *shotPFOAcc( *this )[ i ] );
786  }
787 
788  size_t TauJet_v3::nShotPFOs() const {
789  return shotPFOAcc( *this ).size();
790  }
791 
793 
794  shotPFOAcc( *this ).push_back( pfo );
795  return;
796  }
797 
799  shotPFOAcc( *this ).clear();
800  return;
801  }
802 
803 
804  // setters and getters for the charged PFO links
807  chargedPFOLinks,
808  setChargedPFOLinks )
809 
810 
811 
812  static const SG::AuxElement::Accessor< TauJet_v3::PFOLinks_t > chargedPFOAcc( "chargedPFOLinks" );
813 
814  const PFO* TauJet_v3::chargedPFO( size_t i ) const {
815  return ( *chargedPFOAcc( *this )[ i ] );
816  }
817 
818  size_t TauJet_v3::nChargedPFOs() const {
819  return chargedPFOAcc( *this ).size();
820  }
821 
823 
824  chargedPFOAcc( *this ).push_back( pfo );
825  return;
826  }
827 
829  chargedPFOAcc( *this ).clear();
830  return;
831  }
832 
833 
834 
835  // setters and getters for the neutral PFO links
838  neutralPFOLinks,
839  setNeutralPFOLinks )
840 
841 
842 
843  static const SG::AuxElement::Accessor< TauJet_v3::PFOLinks_t > neutralPFOAcc( "neutralPFOLinks" );
844 
845  const PFO* TauJet_v3::neutralPFO( size_t i ) const {
846  return ( *neutralPFOAcc( *this )[ i ] );
847  }
848 
849  size_t TauJet_v3::nNeutralPFOs() const {
850  return neutralPFOAcc( *this ).size();
851  }
852 
854 
855  neutralPFOAcc( *this ).push_back( pfo );
856  return;
857  }
858 
860  neutralPFOAcc( *this ).clear();
861  return;
862  }
863 
864 
865 
866  // setters and getters for the pi0 PFO links
869  pi0PFOLinks,
870  setPi0PFOLinks )
871 
872 
873 
874  static const SG::AuxElement::Accessor< TauJet_v3::PFOLinks_t > pi0PFOAcc( "pi0PFOLinks" );
875 
876  const PFO* TauJet_v3::pi0PFO( size_t i ) const {
877  return ( *pi0PFOAcc( *this )[ i ] );
878  }
879 
880  size_t TauJet_v3::nPi0PFOs() const {
881  return pi0PFOAcc( *this ).size();
882  }
883 
885 
886  pi0PFOAcc( *this ).push_back( pfo );
887  return;
888  }
889 
891  pi0PFOAcc( *this ).clear();
892  return;
893  }
894 
895 
896 
897 
898 
900  // setters and getters for the cellbased_charged PFO links
903  protoChargedPFOLinks,
904  setProtoChargedPFOLinks )
905 
906 
907 
908  static const SG::AuxElement::Accessor< TauJet_v3::PFOLinks_t > protoChargedPFOAcc( "protoChargedPFOLinks" );
909 
910  const PFO* TauJet_v3::protoChargedPFO( size_t i ) const {
911  return ( *protoChargedPFOAcc( *this )[ i ] );
912  }
913 
915  return protoChargedPFOAcc( *this ).size();
916  }
917 
919 
920  protoChargedPFOAcc( *this ).push_back( pfo );
921  return;
922  }
923 
925  protoChargedPFOAcc( *this ).clear();
926  return;
927  }
928 
929 
930  // setters and getters for the cellbased_neutral PFO links
933  protoNeutralPFOLinks,
934  setProtoNeutralPFOLinks )
935 
936 
937 
938  static const SG::AuxElement::Accessor< TauJet_v3::PFOLinks_t > protoNeutralPFOAcc( "protoNeutralPFOLinks" );
939 
940  const PFO* TauJet_v3::protoNeutralPFO( size_t i ) const {
941  return ( *protoNeutralPFOAcc( *this )[ i ] );
942  }
943 
945  return protoNeutralPFOAcc( *this ).size();
946  }
947 
949 
950  protoNeutralPFOAcc( *this ).push_back( pfo );
951  return;
952  }
953 
955  protoNeutralPFOAcc( *this ).clear();
956  return;
957  }
958 
959 
960 
961  // setters and getters for the cellbased_pi0 PFO links
964  protoPi0PFOLinks,
965  setProtoPi0PFOLinks )
966 
967 
968 
969  static const SG::AuxElement::Accessor< TauJet_v3::PFOLinks_t > protoPi0PFOAcc( "protoPi0PFOLinks" );
970 
971  const PFO* TauJet_v3::protoPi0PFO( size_t i ) const {
972  return ( *protoPi0PFOAcc( *this )[ i ] );
973  }
974 
975  size_t TauJet_v3::nProtoPi0PFOs() const {
976  return protoPi0PFOAcc( *this ).size();
977  }
978 
980 
981  protoPi0PFOAcc( *this ).push_back( pfo );
982  return;
983  }
984 
986  protoPi0PFOAcc( *this ).clear();
987  return;
988  }
989 
990 
991 
992 
993  void TauJet_v3::dump() const {
994  /* keep these two lines to create the template methods. Otherwise they are optimzed away
995  * later: move these two lines into a dummy method, which nobody is calling
996  */
997  std::cout << this->detail<float>(xAOD::TauJetParameters::ipSigLeadTrk) << std::endl;
998  std::cout << this->detail<int>(xAOD::TauJetParameters::numTopoClusters) << std::endl;
999  }
1000 
1001 } // namespace xAOD
1002 
xAOD::TauJetParameters::TauTrackFlag
TauTrackFlag
Enum for tau track flags.
Definition: TauDefs.h:400
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
python.CaloBCIDAvgAlgConfig.acc3
def acc3
Definition: CaloBCIDAvgAlgConfig.py:69
xAOD::TauJet_v3::phiDetectorAxis
double phiDetectorAxis() const
xAOD::TauJet_v3::etaTrigCaloOnly
double etaTrigCaloOnly() const
xAOD::TauJet_v3::etaTauEtaCalib
double etaTauEtaCalib() const
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_v3::addShotPFOLink
void addShotPFOLink(const ElementLink< PFOContainer > &pfo)
add a shot PFO to the tau
Definition: TauJet_v3.cxx:792
xAOD::TauJet_v3::mTauEnergyScale
double mTauEnergyScale() const
xAOD::TauJet_v3::mDetectorAxis
double mDetectorAxis() const
Trk::ParticleSwitcher::particle
constexpr ParticleHypothesis particle[PARTICLEHYPOTHESES]
the array of masses
Definition: ParticleHypothesis.h:76
xAOD::TauJet_v3::etaTauEnergyScale
double etaTauEnergyScale() const
xAOD::TauJet_v3::setAllTauTrackLinks
void setAllTauTrackLinks(const TauTrackLinks_t &tauTracks)
Definition: TauJet_v3.cxx:424
xAOD::TauJet_v3::jet
const Jet * jet() const
get_generator_info.result
result
Definition: get_generator_info.py:21
xAOD::TauJet_v3::hadronicPFO
const PFO * hadronicPFO(size_t i) const
Get the pointer to a given hadronic PFO associated with this tau.
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
xAOD::TauJetParameters::PanTauCellBasedProto
@ PanTauCellBasedProto
Definition: TauDefs.h:343
xAOD::TauJet_v3::mPanTauCellBased
double mPanTauCellBased() const
xAOD::TauJetParameters::IntermediateAxis
@ IntermediateAxis
Definition: TauDefs.h:338
xAOD::TauJet_v3::nNeutralPFOs
size_t nNeutralPFOs() const
Get the number of neutral PFO particles associated with this tau.
Definition: TauJet_v3.cxx:849
TauJet_v3.h
xAOD::TauJet_v3::nTracksWithMask
size_t nTracksWithMask(unsigned int classification) const
Definition: TauJet_v3.cxx:542
xAOD::TauJet_v3::trackWithMask
const TauTrack * trackWithMask(size_t i, unsigned int mask, int *container_index=0) const
Definition: TauJet_v3.cxx:455
xAOD::TauJet_v3::discriminant
double discriminant(TauJetParameters::TauID discID) const
Get value of discriminant.
Definition: TauJet_v3.cxx:253
xAOD::TauJet_v3::nAllTracks
size_t nAllTracks() const
Definition: TauJet_v3.cxx:554
xAOD::TauJet_v3::phiIntermediateAxis
double phiIntermediateAxis() const
xAOD::TauJet_v3::eta
virtual double eta() const
The pseudorapidity ( ) of the particle.
xAOD::TauJet_v3::nProtoNeutralPFOs
size_t nProtoNeutralPFOs() const
Get the number of cellbased_neutral PFO particles associated with this tau.
Definition: TauJet_v3.cxx:944
SG::Accessor< float >
AuxStoreAccessorMacros.h
xAOD::TauJet_v3::etaDetectorAxis
double etaDetectorAxis() const
xAOD::TauJet_v3::etaIntermediateAxis
double etaIntermediateAxis() const
xAOD::TauJet_v3::clearProtoChargedPFOLinks
void clearProtoChargedPFOLinks()
Remove all cellbased_charged PFOs from the tau.
Definition: TauJet_v3.cxx:924
xAOD::TauJet_v3::phiFinalCalib
double phiFinalCalib() const
AthenaPoolTestRead.flags
flags
Definition: AthenaPoolTestRead.py:8
xAOD::TauJet_v3::setPanTauDetail
void setPanTauDetail(TauJetParameters::PanTauDetails panTauDetail, int value)
Definition: TauJet_v3.cxx:395
xAOD::TauJet_v3::mPanTauCellBasedProto
double mPanTauCellBasedProto() const
xAOD::TauJet_v3::clearTauTrackLinks
void clearTauTrackLinks()
Remove all tracks from the tau.
Definition: TauJet_v3.cxx:567
xAOD::TauJet_v3::tracksWithMask
std::vector< const TauTrack * > tracksWithMask(unsigned int mask) const
Get the v<const pointer> to a given tauTrack collection associated with this tau.
Definition: TauJet_v3.cxx:499
xAOD::TauJet_v3::m
virtual double m() const
The invariant mass of the particle.
xAOD::TauJet_v3::addChargedPFOLink
void addChargedPFOLink(const ElementLink< PFOContainer > &pfo)
add a charged PFO to the tau
Definition: TauJet_v3.cxx:822
xAOD::TauJet_v3::etaFinalCalib
double etaFinalCalib() const
xAOD::CaloCluster_v1::State
State
enum of possible signal states.
Definition: CaloCluster_v1.h:304
xAOD::TauJet_v3::nTracks
size_t nTracks(TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged) const
Definition: TauJet_v3.cxx:526
xAOD::TauJet_v3::clearNeutralPFOLinks
void clearNeutralPFOLinks()
Remove all neutral PFOs from the tau.
Definition: TauJet_v3.cxx:859
xAOD::TauJetParameters::classifiedCharged
@ classifiedCharged
Definition: TauDefs.h:406
TauJetParameters
Definition: TauJetParameters.h:23
xAOD::TauJet_v3::clearClusterLinks
void clearClusterLinks()
Remove all clusters from the tau.
Definition: TauJet_v3.cxx:620
xAOD::TauJet_v3::clearPi0PFOLinks
void clearPi0PFOLinks()
Remove all pi0 PFOs from the tau.
Definition: TauJet_v3.cxx:890
xAOD::TauJet_v3::clearPi0Links
void clearPi0Links()
Remove all pi0s from the tau.
Definition: TauJet_v3.cxx:654
xAOD::TauJet_v3::cluster
const IParticle * cluster(size_t i) const
Get the pointer to a given cluster associated with this tau.
xAOD::TauJet_v3::dump
void dump() const
Definition: TauJet_v3.cxx:993
xAOD::TauJet_v3::type
virtual Type::ObjectType type() const
The type of the object as a simple enumeration.
Definition: TauJet_v3.cxx:232
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_v3::panTauDetail
bool panTauDetail(TauJetParameters::PanTauDetails panTauDetail, int &value) const
Get and set values of pantau details variables via enum.
Definition: TauJet_v3.cxx:367
TauGNNUtils::Variables::ptIntermediateAxis
bool ptIntermediateAxis(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:348
xAOD::TauJet_v3::trackNonConst
TauTrack * trackNonConst(size_t i, TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged)
Definition: TauJet_v3.cxx:476
xAOD::TauJet_v3::protoChargedPFO
const PFO * protoChargedPFO(size_t i) const
Get the pointer to a given cellbased_charged PFO associated with this tau.
xAOD::pt
setRcore setEtHad setFside pt
Definition: TrigPhoton_v1.cxx:106
xAOD::xAODTau::discriminantAccessorV3
const SG::AuxElement::Accessor< float > * discriminantAccessorV3(xAOD::TauJetParameters::TauID discriminant)
Helper function for managing accessors to id input and output variables defined as enums in TauDefs....
xAOD::TauJet_v3::nHadronicPFOs
size_t nHadronicPFOs() const
Get the number of hadronic PFO particles associated with this tau.
Definition: TauJet_v3.cxx:759
xAOD::TauJet_v3::ptJetSeed
double ptJetSeed() const
xAOD::TauJet_v3::setVertex
void setVertex(const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex)
Definition: TauJet_v3.cxx:707
xAOD::TauJetParameters::TauID
TauID
Enum for discriminants.
Definition: TauDefs.h:46
xAOD::TauJet_v3::addProtoNeutralPFOLink
void addProtoNeutralPFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_neutral PFO to the tau
Definition: TauJet_v3.cxx:948
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:41
xAOD::TauJet_v3::ptDetectorAxis
double ptDetectorAxis() const
xAOD::TauJet_v3::nProtoPi0PFOs
size_t nProtoPi0PFOs() const
Get the number of cellbased_pi0 PFO particles associated with this tau.
Definition: TauJet_v3.cxx:975
xAOD::TauJet_v3::nClusters
size_t nClusters() const
Definition: TauJet_v3.cxx:610
xAOD::TauJet_v3::phiTrigCaloOnly
double phiTrigCaloOnly() const
xAOD::TauJet_v3::nPi0PFOs
size_t nPi0PFOs() const
Get the number of pi0 PFO particles associated with this tau.
Definition: TauJet_v3.cxx:880
xAOD::TauJet_v3::setIsTau
void setIsTau(TauJetParameters::IsTauFlag flag, bool value)
Set Flag for tau acceptance based on predefined arbitrary criteria.
Definition: TauJet_v3.cxx:280
xAOD::TauJet_v3::genvecP4
GenVecFourMom_t genvecP4() const
The full 4-momentum of the particle : internal taus type.
Definition: TauJet_v3.cxx:103
xAOD::TauJet_v3::setP4
void setP4(double pt, double eta, double phi, double m)
Set methods for IParticle values.
Definition: TauJet_v3.cxx:172
xAOD::TauJetParameters::ipSigLeadTrk
@ ipSigLeadTrk
Definition: TauDefs.h:160
python.utils.AtlRunQueryLookup.mask
string mask
Definition: AtlRunQueryLookup.py:460
xAOD::TauJet_v3::rapidity
virtual double rapidity() const
The true rapidity (y) of the particle.
Definition: TauJet_v3.cxx:93
xAOD::TauJetParameters::JetSeed
@ JetSeed
Definition: TauDefs.h:336
xAOD::TauJetCalibTypeMapper_v1
Definition: TauJetCalibMapper_v1.h:15
xAOD::TauJet_v3::mTauEtaCalib
double mTauEtaCalib() const
xAOD::TauJet_v3::clusters
std::vector< const IParticle * > clusters() const
Definition: TauJet_v3.cxx:585
xAOD::TauJet_v3::pi0PFO
const PFO * pi0PFO(size_t i) const
Get the pointer to a given pi0 PFO associated with this tau.
xAOD::IParticle::FourMom_t
TLorentzVector FourMom_t
Definition of the 4-momentum type.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:69
xAOD::TauJet_v3::phiJetSeed
double phiJetSeed() const
xAOD::phi
setEt phi
Definition: TrigEMCluster_v1.cxx:29
xAOD::TauJet_v3::pt
virtual double pt() const
The transverse momentum ( ) of the particle.
xAOD::TauJetParameters::Detail
Detail
Enum for tau parameters - used mainly for backward compatibility with the analysis code.
Definition: TauDefs.h:156
uint
unsigned int uint
Definition: LArOFPhaseFill.cxx:20
xAOD::TauJet_v3::VertexLink_t
ElementLink< xAOD::VertexContainer > VertexLink_t
Definition: TauJet_v3.h:219
xAOD::TauJet_v3::phi
virtual double phi() const
The azimuthal angle ( ) of the particle.
xAOD::TauJet_v3::tauTrackLinksWithMask
const TauTrackLinks_t tauTrackLinksWithMask(unsigned int) const
Definition: TauJet_v3.cxx:434
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
xAOD::TauJet_v3::etaPanTauCellBased
double etaPanTauCellBased() const
xAOD::TauJet_v3::addPi0PFOLink
void addPi0PFOLink(const ElementLink< PFOContainer > &pfo)
add a pi0 PFO to the tau
Definition: TauJet_v3.cxx:884
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
xAOD::TauJetCalibTypeMapper_v1::getValue
bool getValue(TauJetParameters::TauCalibType type, std::string &stringName)
Definition: TauJetCalibMapper_v1.h:16
xAOD::TauJet_v3::ptTauEnergyScale
double ptTauEnergyScale() const
xAOD::TauJet_v3::clearProtoPi0PFOLinks
void clearProtoPi0PFOLinks()
Remove all cellbased_pi0 PFOs from the tau.
Definition: TauJet_v3.cxx:985
xAOD::TauJet_v3::nTracksCharged
size_t nTracksCharged() const
Definition: TauJet_v3.cxx:532
xAOD::TauJetParameters::TauCalibType
TauCalibType
Enum for tau calib type.
Definition: TauDefs.h:335
lumiFormat.i
int i
Definition: lumiFormat.py:85
xAOD::TauJet_v3::allTauTrackLinks
const TauTrackLinks_t & allTauTrackLinks() const
Definition: TauJet_v3.cxx:420
xAOD::TauJet_v3::setSecondaryVertex
void setSecondaryVertex(const xAOD::VertexContainer *cont, const xAOD::Vertex *vertex)
Definition: TauJet_v3.cxx:735
beamspotman.n
n
Definition: beamspotman.py:731
xAOD::TauJet_v3::clearHadronicPFOLinks
void clearHadronicPFOLinks()
Remove all hadronic PFOs from the tau.
Definition: TauJet_v3.cxx:769
xAOD::e
setPy e
Definition: CompositeParticle_v1.cxx:166
DMTest::links
links
Definition: CLinks_v1.cxx:22
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_v3
Class describing a tau jet.
Definition: TauJet_v3.h:41
xAOD::TauJet_v3::etaJetSeed
double etaJetSeed() const
master.flag
bool flag
Definition: master.py:29
xAOD::TauJet_v3::addHadronicPFOLink
void addHadronicPFOLink(const ElementLink< PFOContainer > &pfo)
add a hadronic PFO to the tau
Definition: TauJet_v3.cxx:763
python.CaloBCIDAvgAlgConfig.acc2
def acc2
Definition: CaloBCIDAvgAlgConfig.py:59
xAOD::TauJet_v3::track
const TauTrack * track(size_t i, TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged, int *container_index=0) const
Get the pointer to a given tauTrack associated with this tau /*container index needed by trackNonCons...
Definition: TauJet_v3.cxx:450
xAOD::TauJet_v3::addTauTrackLink
void addTauTrackLink(const ElementLink< TauTrackContainer > &tr)
add a TauTrack to the tau
Definition: TauJet_v3.cxx:563
xAOD::TauJet_v3::addNeutralPFOLink
void addNeutralPFOLink(const ElementLink< PFOContainer > &pfo)
add a neutral PFO to the tau
Definition: TauJet_v3.cxx:853
xAOD::TauJet_v3::ptTauEtaCalib
double ptTauEtaCalib() const
xAOD::TauJet_v3::etaPanTauCellBasedProto
double etaPanTauCellBasedProto() const
xAOD::TauJet_v3::pi0
const IParticle * pi0(size_t i) const
Get the pointer to a given pi0 associated with this tau.
xAOD::TauJet_v3::ptTrigCaloOnly
double ptTrigCaloOnly() const
xAOD::TauJetParameters::PanTauCellBased
@ PanTauCellBased
Definition: TauDefs.h:344
xAOD::TauJet_v3::IParticleLinks_t
std::vector< ElementLink< xAOD::IParticleContainer > > IParticleLinks_t
Definition: TauJet_v3.h:283
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
xAOD::TauJet_v3::addPi0Link
void addPi0Link(const ElementLink< IParticleContainer > &tr)
add a pi0 link to the tau
Definition: TauJet_v3.cxx:649
SG::AuxElement::index
size_t index() const
Return the index of this element within its container.
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:794
python.LArRecUtilsConfig.acc4
def acc4
Definition: LArRecUtilsConfig.py:196
xAOD::TauJet_v3::phiTauEnergyScale
double phiTauEnergyScale() const
xAOD::TauJet_v3::allTauTrackLinksNonConst
TauTrackLinks_t & allTauTrackLinksNonConst()
In order to sort track links.
Definition: TauJet_v3.cxx:446
xAOD::TauJet_v3::mJetSeed
double mJetSeed() const
xAOD::TauJet_v3::GenVecFourMom_t
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > GenVecFourMom_t
Base 4 Momentum type for taus.
Definition: TauJet_v3.h:69
xAOD::TauJetParameters::TauEnergyScale
@ TauEnergyScale
Definition: TauDefs.h:339
xAOD::TauJet_v3::mTrigCaloOnly
double mTrigCaloOnly() const
xAOD::TauJetParameters::classifiedIsolation
@ classifiedIsolation
Definition: TauDefs.h:407
PFO
Definition: ClusterMomentPlots.h:15
xAOD::TauJet_v3::setJet
void setJet(const xAOD::JetContainer *cont, const xAOD::Jet *jet)
Definition: TauJet_v3.cxx:683
xAOD::CaloCluster_v1::p4
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition: CaloCluster_v1.cxx:465
xAOD::TauTrack_v1::flagWithMask
bool flagWithMask(unsigned int) const
Definition: TauTrack_v1.cxx:81
xAOD::TauJet_v3::addClusterLink
void addClusterLink(const ElementLink< IParticleContainer > &tr)
add a cluster link to the tau
Definition: TauJet_v3.cxx:615
xAOD::TauJet_v3::detail
bool detail(TauJetParameters::Detail detail, int &value) const
Set veto flag.
Definition: TauJet_v3.cxx:292
xAOD::TauJet_v3::phiPanTauCellBased
double phiPanTauCellBased() const
xAOD::TauJet_v3::clearProtoNeutralPFOLinks
void clearProtoNeutralPFOLinks()
Remove all cellbased_neutral PFOs from the tau.
Definition: TauJet_v3.cxx:954
TauJetParameters::discriminant
@ discriminant
Definition: TauJetParameters.h:166
xAOD::TauJet_v3::addProtoPi0PFOLink
void addProtoPi0PFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_pi0 PFO to the tau
Definition: TauJet_v3.cxx:979
xAOD::TauTrack_v1::TrackFlagType
uint16_t TrackFlagType
Definition: TauTrack_v1.h:61
xAOD::TauJet_v3::calibratedCluster
FourMom_t calibratedCluster(size_t i, xAOD::CaloCluster::State state=xAOD::CaloCluster::State::CALIBRATED) const
Get TLV to a given cluster in calibrated state.
Definition: TauJet_v3.cxx:601
xAOD::TauJet_v3::nPi0s
size_t nPi0s() const
Definition: TauJet_v3.cxx:644
CaloVertexedTopoCluster.h
Evaluate cluster kinematics with a different vertex / signal state.
xAOD::TauJet_v3::vertexedClusters
std::vector< xAOD::CaloVertexedTopoCluster > vertexedClusters() const
Definition: TauJet_v3.cxx:626
xAOD::TauJetParameters::TrigCaloOnly
@ TrigCaloOnly
Definition: TauDefs.h:345
xAOD::TauJet_v3::protoPi0PFO
const PFO * protoPi0PFO(size_t i) const
Get the pointer to a given cellbased_pi0 PFO associated with this tau.
xAOD::TauJet_v3::PFOLinks_t
std::vector< ElementLink< xAOD::PFOContainer > > PFOLinks_t
Definition: TauJet_v3.h:335
xAOD::TauJet_v3::clearChargedPFOLinks
void clearChargedPFOLinks()
Remove all charged PFOs from the tau.
Definition: TauJet_v3.cxx:828
xAOD::TauJet_v3::tauTrackLinks
const TauTrackLinks_t tauTrackLinks(TauJetParameters::TauTrackFlag=TauJetParameters::TauTrackFlag::classifiedCharged) const
Definition: TauJet_v3.cxx:429
PlotSFuncertainty.calib
calib
Definition: PlotSFuncertainty.py:110
xAOD::TauJet_v3::phiTauEtaCalib
double phiTauEtaCalib() const
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
xAOD::TauJet_v3::isTau
bool isTau(TauJetParameters::IsTauFlag flag) const
Get Flag for tau acceptance based on predefined arbitrary criteria.
Definition: TauJet_v3.cxx:273
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
TauJetCalibMapper_v1.h
xAOD::TauJet_v3::mIntermediateAxis
double mIntermediateAxis() const
xAOD::TauJetParameters::PanTauDetails
PanTauDetails
Enum for tau details (scalar) calculated by pantau.
Definition: TauDefs.h:355
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
xAOD::TauJet_v3::TauTrackLinks_t
std::vector< ElementLink< xAOD::TauTrackContainer > > TauTrackLinks_t
Definition: TauJet_v3.h:242
xAOD::TauJet_v3::TauJet_v3
TauJet_v3()
Default constructor.
Definition: TauJet_v3.cxx:22
xAOD::TauJet_v3::vertex
const Vertex * vertex() const
xAOD::TauTrack_v1
Definition: TauTrack_v1.h:27
TauJetAccessors_v3.h
xAOD::TauJet_v3::p4
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition: TauJet_v3.cxx:97
xAOD::TauJet_v3::clearShotPFOLinks
void clearShotPFOLinks()
Remove all shot PFOs from the tau.
Definition: TauJet_v3.cxx:798
xAOD::TauJet_v3::setDetail
void setDetail(TauJetParameters::Detail detail, int value)
Definition: TauJet_v3.cxx:337
xAOD::TauJetParameters::IsTauFlag
IsTauFlag
Enum for IsTau flags.
Definition: TauDefs.h:116
xAODType::Tau
@ Tau
The object is a tau (jet)
Definition: ObjectType.h:49
xAOD::TauJet_v3::protoNeutralPFO
const PFO * protoNeutralPFO(size_t i) const
Get the pointer to a given cellbased_neutral PFO associated with this tau.
xAOD::TauJet_v3::nProtoChargedPFOs
size_t nProtoChargedPFOs() const
Get the number of cellbased_charged PFO particles associated with this tau.
Definition: TauJet_v3.cxx:914
DataVector::at
const T * at(size_type n) const
Access an element, as an rvalue.
xAOD::TauJet_v3::addProtoChargedPFOLink
void addProtoChargedPFOLink(const ElementLink< PFOContainer > &pfo)
add a cellbased_charged PFO to the tau
Definition: TauJet_v3.cxx:918
xAOD::TauJetParameters::DetectorAxis
@ DetectorAxis
Definition: TauDefs.h:337
xAOD::TauJet_v3::ptIntermediateAxis
double ptIntermediateAxis() const
TauGNNUtils::Variables::ptDetectorAxis
bool ptDetectorAxis(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:343
xAOD::TauJet_v3::shotPFO
const PFO * shotPFO(size_t i) const
Get the pointer to a given shot PFO associated with this tau.
xAOD::TauJet_v3::nTracksIsolation
size_t nTracksIsolation() const
Definition: TauJet_v3.cxx:536
xAODType::ObjectType
ObjectType
Type of objects that have a representation in the xAOD EDM.
Definition: ObjectType.h:32
xAOD::TauJet_v3::secondaryVertex
const Vertex * secondaryVertex() const
xAOD::bool
setBGCode setTAP setLVL2ErrorBits bool
Definition: TrigDecision_v1.cxx:60
xAOD::TauJetParameters::FinalCalib
@ FinalCalib
Definition: TauDefs.h:346
xAOD::TauJet_v3::ptPanTauCellBased
double ptPanTauCellBased() const
xAOD::TauJet_v3::mFinalCalib
double mFinalCalib() const
xAOD::TauJet_v3::ptFinalCalib
double ptFinalCalib() const
xAOD::TauJet_v3::neutralPFO
const PFO * neutralPFO(size_t i) const
Get the pointer to a given neutral PFO associated with this tau.
xAOD::TauJet_v3::setDiscriminant
void setDiscriminant(TauJetParameters::TauID discID, double disc)
Set value of discriminant.
Definition: TauJet_v3.cxx:265
xAOD::TauJet_v3::nChargedPFOs
size_t nChargedPFOs() const
Get the number of charged PFO particles associated with this tau.
Definition: TauJet_v3.cxx:818
xAOD::TauJet_v3::tracks
std::vector< const TauTrack * > tracks(TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged) const
Get the v<const pointer> to a given tauTrack collection associated with this tau.
Definition: TauJet_v3.cxx:493
xAOD::TauJet_v3::allTracks
std::vector< const TauTrack * > allTracks() const
Get the v<const pointer> to all tracks associated with this tau, regardless of classification.
Definition: TauJet_v3.cxx:514
xAOD::TauJet_v3::chargedPFO
const PFO * chargedPFO(size_t i) const
Get the pointer to a given charged PFO associated with this tau.
xAOD::AUXSTORE_OBJECT_SETTER_AND_GETTER
AUXSTORE_OBJECT_SETTER_AND_GETTER(CaloRings_v1, RingSetLinks, ringSetLinks, setRingSetLinks) unsigned CaloRings_v1
Definition: CaloRings_v1.cxx:27
xAOD::TauJet_v3::nShotPFOs
size_t nShotPFOs() const
Get the number of shot PFO particles associated with this tau.
Definition: TauJet_v3.cxx:788
xAOD::TauJet_v3::phiPanTauCellBasedProto
double phiPanTauCellBasedProto() const
xAOD::TauJet_v3::ptPanTauCellBasedProto
double ptPanTauCellBasedProto() const