ATLAS Offline Software
JetAccessorMap_v1.h
Go to the documentation of this file.
1 // Dear emacs, this is -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 #ifndef XAODJET_JETACCESSSORMAP_V1_H
8 #define XAODJET_JETACCESSSORMAP_V1_H
9 #include <iostream>
17 
18 // EDM include(s):
20 
22 #include "xAODJet/JetAttributes.h"
23 #include "xAODJet/JetAccessors.h"
24 #include "xAODJet/JetTypes.h"
25 
26 #define JET_DEFINE_ATT_ACCESSOR( NAME ) \
27  case xAOD::JetAttribute::NAME: \
28  { \
29  const static AccessorWrapper< T > a( #NAME ); \
30  return &a; \
31  } \
32  break
33 
34 
35 
36 #define JET_DEFINE_ASSO_ACCESSOR( NAME ) \
37  case xAOD::JetAttribute::NAME: \
38  { \
39  const static VectorIParticleAccessor_t a( #NAME ); \
40  return &a; \
41  } \
42  break
43 
44 #define JET_DEFINE_ASSOBJ_ACCESSOR( NAME ) \
45  case xAOD::JetAttribute::NAME: \
46  { \
47  const static ObjectAccessorWrapper< T > a( #NAME ); \
48  return &a; \
49  } \
50  break
51 
52 
53 namespace xAOD {
54 
55 
56  namespace JetAttributeAccessor {
57 
59  template<class T>
60  struct AccessorMap_v1 {
61  static const AccessorWrapper<T>*
63  switch( moment ) {
64 
65  JET_DEFINE_ATT_ACCESSOR( JetGhostArea );
66  JET_DEFINE_ATT_ACCESSOR( ActiveArea );
67  JET_DEFINE_ATT_ACCESSOR( ActiveArea4vec );
68  JET_DEFINE_ATT_ACCESSOR( VoronoiArea );
69  JET_DEFINE_ATT_ACCESSOR( VoronoiAreaE );
70  JET_DEFINE_ATT_ACCESSOR( VoronoiAreaPx );
71  JET_DEFINE_ATT_ACCESSOR( VoronoiAreaPy );
72  JET_DEFINE_ATT_ACCESSOR( VoronoiAreaPz );
74  JET_DEFINE_ATT_ACCESSOR( GhostTrackCount );
75  JET_DEFINE_ATT_ACCESSOR( GhostTruthParticleCount );
76  JET_DEFINE_ATT_ACCESSOR( TransformType );
77  JET_DEFINE_ATT_ACCESSOR( MuMax );
78  JET_DEFINE_ATT_ACCESSOR( YMin );
79  JET_DEFINE_ATT_ACCESSOR( RClus );
81  JET_DEFINE_ATT_ACCESSOR( DRFilt );
82  JET_DEFINE_ATT_ACCESSOR( YFilt );
83  JET_DEFINE_ATT_ACCESSOR( MuFilt );
84  JET_DEFINE_ATT_ACCESSOR( NSubjet );
86  JET_DEFINE_ATT_ACCESSOR( NTrimSubjets );
87  JET_DEFINE_ATT_ACCESSOR( RCut );
89  JET_DEFINE_ATT_ACCESSOR( JetOriginConstitScaleMomentum );
90  JET_DEFINE_ATT_ACCESSOR( GhostTruthAssociationFraction );
91  JET_DEFINE_ATT_ACCESSOR( GhostTrackAssociationFraction );
92  JET_DEFINE_ATT_ACCESSOR( HECQuality );
93  JET_DEFINE_ATT_ACCESSOR( LArBadHVEnergy );
94  JET_DEFINE_ATT_ACCESSOR( LArBadHVRatio );
95  JET_DEFINE_ATT_ACCESSOR( LArQuality );
96  JET_DEFINE_ATT_ACCESSOR( NegativeE );
97  JET_DEFINE_ATT_ACCESSOR( AverageLArQF );
98  JET_DEFINE_ATT_ACCESSOR( OotFracClusters10 );
99  JET_DEFINE_ATT_ACCESSOR( OotFracClusters5 );
100  JET_DEFINE_ATT_ACCESSOR( OotFracCells5 );
101  JET_DEFINE_ATT_ACCESSOR( OotFracCells10 );
102  JET_DEFINE_ATT_ACCESSOR( Timing );
103  JET_DEFINE_ATT_ACCESSOR( N90Constituents );
104  JET_DEFINE_ATT_ACCESSOR( N90Cells );
105  JET_DEFINE_ATT_ACCESSOR( BchCorrCell );
106  JET_DEFINE_ATT_ACCESSOR( IsoDeltaR2SumPt );
107  JET_DEFINE_ATT_ACCESSOR( IsoDeltaR3SumPt );
109  JET_DEFINE_ATT_ACCESSOR( JVFLoose );
111  JET_DEFINE_ATT_ACCESSOR( JvtRpt );
112  JET_DEFINE_ATT_ACCESSOR( JvtJvfcorr );
113  JET_DEFINE_ATT_ACCESSOR( NumTrkPt1000 );
114  JET_DEFINE_ATT_ACCESSOR( NumTrkPt500 );
115  JET_DEFINE_ATT_ACCESSOR( SumPtTrkPt1000 );
116  JET_DEFINE_ATT_ACCESSOR( SumPtTrkPt500 );
117  JET_DEFINE_ATT_ACCESSOR( TrackWidthPt1000 );
118  JET_DEFINE_ATT_ACCESSOR( TrackWidthPt500 );
119  JET_DEFINE_ATT_ACCESSOR( EMFrac );
120  JET_DEFINE_ATT_ACCESSOR( HECFrac );
122  JET_DEFINE_ATT_ACCESSOR( EnergyPerSampling );
123  JET_DEFINE_ATT_ACCESSOR( FracSamplingMax );
124  JET_DEFINE_ATT_ACCESSOR( FracSamplingMaxIndex );
125  JET_DEFINE_ATT_ACCESSOR( ECPSFraction );
126  JET_DEFINE_ATT_ACCESSOR( SamplingMax );
127  JET_DEFINE_ATT_ACCESSOR( Width );
128  JET_DEFINE_ATT_ACCESSOR( WidthPhi );
129  JET_DEFINE_ATT_ACCESSOR( LeadingClusterPt );
130  JET_DEFINE_ATT_ACCESSOR( LeadingClusterSecondLambda );
131  JET_DEFINE_ATT_ACCESSOR( LeadingClusterCenterLambda );
132  JET_DEFINE_ATT_ACCESSOR( LeadingClusterSecondR );
133  JET_DEFINE_ATT_ACCESSOR( CentroidR );
134  JET_DEFINE_ATT_ACCESSOR( KtDR );
135  JET_DEFINE_ATT_ACCESSOR( Tau1 );
136  JET_DEFINE_ATT_ACCESSOR( Tau2 );
137  JET_DEFINE_ATT_ACCESSOR( Tau3 );
138  JET_DEFINE_ATT_ACCESSOR( Tau1_wta );
139  JET_DEFINE_ATT_ACCESSOR( Tau2_wta );
140  JET_DEFINE_ATT_ACCESSOR( Tau3_wta );
143  JET_DEFINE_ATT_ACCESSOR( Tau21_wta );
144  JET_DEFINE_ATT_ACCESSOR( Tau32_wta );
145  JET_DEFINE_ATT_ACCESSOR( Split12 );
146  JET_DEFINE_ATT_ACCESSOR( Split23 );
147  JET_DEFINE_ATT_ACCESSOR( Split34 );
148  JET_DEFINE_ATT_ACCESSOR( ZCut12 );
149  JET_DEFINE_ATT_ACCESSOR( ZCut23 );
150  JET_DEFINE_ATT_ACCESSOR( ZCut34 );
151  JET_DEFINE_ATT_ACCESSOR( Dip12 );
152  JET_DEFINE_ATT_ACCESSOR( Dip13 );
153  JET_DEFINE_ATT_ACCESSOR( Dip23 );
154  JET_DEFINE_ATT_ACCESSOR( DipExcl12 );
155  JET_DEFINE_ATT_ACCESSOR( ECF1 );
156  JET_DEFINE_ATT_ACCESSOR( ECF2 );
157  JET_DEFINE_ATT_ACCESSOR( ECF3 );
158  JET_DEFINE_ATT_ACCESSOR( ECF1_Beta2 );
159  JET_DEFINE_ATT_ACCESSOR( ECF2_Beta2 );
160  JET_DEFINE_ATT_ACCESSOR( ECF3_Beta2 );
164  JET_DEFINE_ATT_ACCESSOR( C1_Beta2 );
165  JET_DEFINE_ATT_ACCESSOR( C2_Beta2 );
166  JET_DEFINE_ATT_ACCESSOR( D2_Beta2 );
167  JET_DEFINE_ATT_ACCESSOR( ThrustMin );
168  JET_DEFINE_ATT_ACCESSOR( ThrustMaj );
169  JET_DEFINE_ATT_ACCESSOR( FoxWolfram0 );
170  JET_DEFINE_ATT_ACCESSOR( FoxWolfram1 );
171  JET_DEFINE_ATT_ACCESSOR( FoxWolfram2 );
172  JET_DEFINE_ATT_ACCESSOR( FoxWolfram3 );
173  JET_DEFINE_ATT_ACCESSOR( FoxWolfram4 );
174  JET_DEFINE_ATT_ACCESSOR( Sphericity );
175  JET_DEFINE_ATT_ACCESSOR( Aplanarity );
176  JET_DEFINE_ATT_ACCESSOR( PullMag );
177  JET_DEFINE_ATT_ACCESSOR( PullPhi );
178  JET_DEFINE_ATT_ACCESSOR( Pull_C00 );
179  JET_DEFINE_ATT_ACCESSOR( Pull_C01 );
180  JET_DEFINE_ATT_ACCESSOR( Pull_C10 );
181  JET_DEFINE_ATT_ACCESSOR( Pull_C11 );
182  JET_DEFINE_ATT_ACCESSOR( Charge );
183  JET_DEFINE_ATT_ACCESSOR( ShowerDeconstructionW );
184  JET_DEFINE_ATT_ACCESSOR( ShowerDeconstructionTop );
185  JET_DEFINE_ATT_ACCESSOR( Volatility );
186  JET_DEFINE_ATT_ACCESSOR( isBadLoose );
187  JET_DEFINE_ATT_ACCESSOR( isBadMedium );
188  JET_DEFINE_ATT_ACCESSOR( isBadTight );
189  JET_DEFINE_ATT_ACCESSOR( isUgly );
190  JET_DEFINE_ATT_ACCESSOR( PtTruth );
191  JET_DEFINE_ATT_ACCESSOR( IsoKR20Par );
192  JET_DEFINE_ATT_ACCESSOR( IsoKR20Perp );
193  JET_DEFINE_ATT_ACCESSOR( HighestJVFVtx );
194  JET_DEFINE_ATT_ACCESSOR( JetLabel );
195  JET_DEFINE_ATT_ACCESSOR( NumTowers );
196  JET_DEFINE_ATT_ACCESSOR( BchCorrDotx );
197  JET_DEFINE_ATT_ACCESSOR( BchCorrJet );
198  JET_DEFINE_ATT_ACCESSOR( BchCorrJetForCell );
199  JET_DEFINE_ATT_ACCESSOR( VariableRMinRadius );
200  JET_DEFINE_ATT_ACCESSOR( VariableRMassScale );
201 
202  default:
203  std::cerr << "xAOD::Jet_v1 ERROR Unknown attribute ("
204  << moment << ") requested. (Did you ask the wrong type ?)" << std::endl;
205  return 0;
206  }
207  }
208  };
209 
210 
212  std::string name_v1(xAOD::JetAttribute::AttributeID id ) ;
213 
214 
215  template<typename T>
217  static const ObjectAccessorWrapper< T > *
219  switch(id) {
220  JET_DEFINE_ASSOBJ_ACCESSOR( GhostTrack );
221  JET_DEFINE_ASSOBJ_ACCESSOR( GhostTruthParticle );
222  JET_DEFINE_ASSOBJ_ACCESSOR( GhostMuonSegment );
223  JET_DEFINE_ASSOBJ_ACCESSOR( OriginVertex );
224  default:
225  std::cerr << "xAOD::Jet_v1 ERROR Unknown associated particles ("
226  << id << ") requested" << std::endl;
227  return 0;
228  }
229  }
230 
231  };
232 
235 
236  }
237 }
238 #endif
CP::Jvt
@ Jvt
Definition: IJetJvtEfficiency.h:23
xAOD::JetAttributeAccessor::ObjectAccessorWrapper
Definition: JetAccessors.h:258
xAOD::TauJetParameters::GhostMuonSegmentCount
@ GhostMuonSegmentCount
Definition: TauDefs.h:317
JetAttributes.h
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
xAOD::JetAttribute::AttributeID
AttributeID
Definition: JetAttributes.h:24
TrigJetMonitorAlgorithm.ZCut
ZCut
Definition: TrigJetMonitorAlgorithm.py:1230
Prompt::Def::PtFrac
@ PtFrac
Definition: VarHolder.h:71
JET_DEFINE_ATT_ACCESSOR
#define JET_DEFINE_ATT_ACCESSOR(NAME)
This header defines functions to map an Attribute enum to a static accessor object for the correspond...
Definition: JetAccessorMap_v1.h:26
TauGNNUtils::Variables::PSFrac
bool PSFrac(const xAOD::TauJet &tau, double &out)
Definition: TauGNNUtils.cxx:423
xAOD::JetAttributeAccessor::AccessorMap_v1::accessor
static const AccessorWrapper< T > * accessor(xAOD::JetAttribute::AttributeID moment)
Definition: JetAccessorMap_v1.h:62
xAOD::JetAttributeAccessor::ObjectAccessorMap_v1::accessor
static const ObjectAccessorWrapper< T > * accessor(xAOD::JetAttribute::AssoParticlesID id)
Definition: JetAccessorMap_v1.h:218
IParticleContainer.h
xAOD::JetAttribute::AssoParticlesID
AssoParticlesID
Definition: JetAttributes.h:251
xAOD::JetAttributeAccessor::assoName_v1
std::string assoName_v1(xAOD::JetAttribute::AssoParticlesID id)
Returns a name given the AssoParticlesID.
Definition: JetAccessorMap_v1.cxx:41
xAOD::JetAttributeAccessor::name_v1
std::string name_v1(xAOD::JetAttribute::AttributeID id)
Returns a name given the AttributeID.
Definition: JetAccessorMap_v1.cxx:27
xAOD::JetAttributeAccessor::AccessorWrapper
Definition: JetAccessors.h:49
xAOD::JetAttributeAccessor::AccessorMap_v1
Define a template struct.
Definition: JetAccessorMap_v1.h:60
jet::CompScaleVar::Tau32
@ Tau32
Definition: UncertaintyEnum.h:102
jet::CompScaleVar::Tau21
@ Tau21
Definition: UncertaintyEnum.h:101
JET_DEFINE_ASSOBJ_ACCESSOR
#define JET_DEFINE_ASSOBJ_ACCESSOR(NAME)
Definition: JetAccessorMap_v1.h:44
JetTypes.h
JetAccessors.h
This header defines wrapper classes around SG::AuxElement::Accessor used internally in the Jet EDM.
xAOD::JetAttributeAccessor::ObjectAccessorMap_v1
Definition: JetAccessorMap_v1.h:216
AuxElement.h
Base class for elements of a container that can have aux data.