ATLAS Offline Software
Loading...
Searching...
No Matches
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
16#include <iostream>
17
18// EDM include(s):
20
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
53namespace xAOD {
54
55
56 namespace JetAttributeAccessor {
57
59 template<class T>
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 );
73 JET_DEFINE_ATT_ACCESSOR( GhostMuonSegmentCount );
74 JET_DEFINE_ATT_ACCESSOR( GhostTrackCount );
75 JET_DEFINE_ATT_ACCESSOR( GhostTruthParticleCount );
76 JET_DEFINE_ATT_ACCESSOR( TransformType );
81 JET_DEFINE_ATT_ACCESSOR( DRFilt );
84 JET_DEFINE_ATT_ACCESSOR( NSubjet );
86 JET_DEFINE_ATT_ACCESSOR( NTrimSubjets );
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 );
121 JET_DEFINE_ATT_ACCESSOR( PSFrac );
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 );
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 );
138 JET_DEFINE_ATT_ACCESSOR( Tau1_wta );
139 JET_DEFINE_ATT_ACCESSOR( Tau2_wta );
140 JET_DEFINE_ATT_ACCESSOR( Tau3_wta );
141 JET_DEFINE_ATT_ACCESSOR( Tau21 );
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 );
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
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
Base class for elements of a container that can have aux data.
#define JET_DEFINE_ATT_ACCESSOR(NAME)
This header defines functions to map an Attribute enum to a static accessor object for the correspond...
#define JET_DEFINE_ASSOBJ_ACCESSOR(NAME)
This header defines wrapper classes around SG::AuxElement::Accessor used internally in the Jet EDM.
Defines enum to access jet attribute and associated particles/objects.
std::string assoName_v1(xAOD::JetAttribute::AssoParticlesID id)
Returns a name given the AssoParticlesID.
std::string name_v1(xAOD::JetAttribute::AttributeID id)
Returns a name given the AttributeID.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
static const AccessorWrapper< T > * accessor(xAOD::JetAttribute::AttributeID moment)
static const ObjectAccessorWrapper< T > * accessor(xAOD::JetAttribute::AssoParticlesID id)