00001
00002 #ifndef XAODJET_JETACCESSSORMAP_V1_H
00003 #define XAODJET_JETACCESSSORMAP_V1_H
00011 #include <iostream>
00012
00013
00014 #include "AthLinks/ElementLinkVector.h"
00015 #include "xAODBase/IParticleContainer.h"
00016
00017 #include "AthContainers/AuxElement.h"
00018 #include "xAODJet/JetAttributes.h"
00019 #include "xAODJet/JetAccessors.h"
00020 #include "xAODJet/JetTypes.h"
00021
00022 #define JET_DEFINE_ATT_ACCESSOR( NAME ) \
00023 case xAOD::JetAttribute::NAME: \
00024 { \
00025 static AccessorWrapper< T > a( #NAME ); \
00026 return &a; \
00027 } \
00028 break
00029
00030
00031
00032 #define JET_DEFINE_ASSO_ACCESSOR( NAME ) \
00033 case xAOD::JetAttribute::NAME: \
00034 { \
00035 static VectorIParticleAccessor_t a( #NAME ); \
00036 return &a; \
00037 } \
00038 break
00039
00040 #define JET_DEFINE_ASSOBJ_ACCESSOR( NAME ) \
00041 case xAOD::JetAttribute::NAME: \
00042 { \
00043 static ObjectAccessorWrapper< T > a( #NAME ); \
00044 return &a; \
00045 } \
00046 break
00047
00048
00049 namespace xAOD {
00050
00051
00052 namespace JetAttributeAccessor {
00053
00055 template<class T>
00056 struct AccessorMap_v1 {
00057 static AccessorWrapper<T>*
00058 accessor( xAOD::JetAttribute::AttributeID moment ) {
00059 switch( moment ) {
00060
00061 JET_DEFINE_ATT_ACCESSOR( JetGhostArea );
00062 JET_DEFINE_ATT_ACCESSOR( ActiveArea );
00063 JET_DEFINE_ATT_ACCESSOR( ActiveArea4vec );
00064 JET_DEFINE_ATT_ACCESSOR( VoronoiArea );
00065 JET_DEFINE_ATT_ACCESSOR( VoronoiAreaE );
00066 JET_DEFINE_ATT_ACCESSOR( VoronoiAreaPx );
00067 JET_DEFINE_ATT_ACCESSOR( VoronoiAreaPy );
00068 JET_DEFINE_ATT_ACCESSOR( VoronoiAreaPz );
00069 JET_DEFINE_ATT_ACCESSOR( GhostMuonSegmentCount );
00070 JET_DEFINE_ATT_ACCESSOR( GhostTrackCount );
00071 JET_DEFINE_ATT_ACCESSOR( GhostTruthParticleCount );
00072 JET_DEFINE_ATT_ACCESSOR( TransformType );
00073 JET_DEFINE_ATT_ACCESSOR( MuMax );
00074 JET_DEFINE_ATT_ACCESSOR( YMin );
00075 JET_DEFINE_ATT_ACCESSOR( RClus );
00076 JET_DEFINE_ATT_ACCESSOR( BDRS );
00077 JET_DEFINE_ATT_ACCESSOR( DRFilt );
00078 JET_DEFINE_ATT_ACCESSOR( YFilt );
00079 JET_DEFINE_ATT_ACCESSOR( MuFilt );
00080 JET_DEFINE_ATT_ACCESSOR( NSubjet );
00081 JET_DEFINE_ATT_ACCESSOR( PtFrac );
00082 JET_DEFINE_ATT_ACCESSOR( NTrimSubjets );
00083 JET_DEFINE_ATT_ACCESSOR( RCut );
00084 JET_DEFINE_ATT_ACCESSOR( ZCut );
00085 JET_DEFINE_ATT_ACCESSOR( JetOriginConstitScaleMomentum );
00086 JET_DEFINE_ATT_ACCESSOR( GhostTruthAssociationFraction );
00087 JET_DEFINE_ATT_ACCESSOR( GhostTrackAssociationFraction );
00088 JET_DEFINE_ATT_ACCESSOR( HECQuality );
00089 JET_DEFINE_ATT_ACCESSOR( LArBadHVEnergy );
00090 JET_DEFINE_ATT_ACCESSOR( LArBadHVRatio );
00091 JET_DEFINE_ATT_ACCESSOR( LArQuality );
00092 JET_DEFINE_ATT_ACCESSOR( NegativeE );
00093 JET_DEFINE_ATT_ACCESSOR( AverageLArQF );
00094 JET_DEFINE_ATT_ACCESSOR( OotFracClusters10 );
00095 JET_DEFINE_ATT_ACCESSOR( OotFracClusters5 );
00096 JET_DEFINE_ATT_ACCESSOR( OotFracCells5 );
00097 JET_DEFINE_ATT_ACCESSOR( OotFracCells10 );
00098 JET_DEFINE_ATT_ACCESSOR( Timing );
00099 JET_DEFINE_ATT_ACCESSOR( N90Constituents );
00100 JET_DEFINE_ATT_ACCESSOR( N90Cells );
00101 JET_DEFINE_ATT_ACCESSOR( BchCorrCell );
00102 JET_DEFINE_ATT_ACCESSOR( IsoDeltaR2SumPt );
00103 JET_DEFINE_ATT_ACCESSOR( IsoDeltaR3SumPt );
00104 JET_DEFINE_ATT_ACCESSOR( JVF );
00105 JET_DEFINE_ATT_ACCESSOR( JVFLoose );
00106 JET_DEFINE_ATT_ACCESSOR( Jvt );
00107 JET_DEFINE_ATT_ACCESSOR( JvtRpt );
00108 JET_DEFINE_ATT_ACCESSOR( JvtJvfcorr );
00109 JET_DEFINE_ATT_ACCESSOR( NumTrkPt1000 );
00110 JET_DEFINE_ATT_ACCESSOR( NumTrkPt500 );
00111 JET_DEFINE_ATT_ACCESSOR( SumPtTrkPt1000 );
00112 JET_DEFINE_ATT_ACCESSOR( SumPtTrkPt500 );
00113 JET_DEFINE_ATT_ACCESSOR( TrackWidthPt1000 );
00114 JET_DEFINE_ATT_ACCESSOR( TrackWidthPt500 );
00115 JET_DEFINE_ATT_ACCESSOR( EMFrac );
00116 JET_DEFINE_ATT_ACCESSOR( HECFrac );
00117 JET_DEFINE_ATT_ACCESSOR( EnergyPerSampling );
00118 JET_DEFINE_ATT_ACCESSOR( FracSamplingMax );
00119 JET_DEFINE_ATT_ACCESSOR( FracSamplingMaxIndex );
00120 JET_DEFINE_ATT_ACCESSOR( ECPSFraction );
00121 JET_DEFINE_ATT_ACCESSOR( SamplingMax );
00122 JET_DEFINE_ATT_ACCESSOR( Width );
00123 JET_DEFINE_ATT_ACCESSOR( WidthPhi );
00124 JET_DEFINE_ATT_ACCESSOR( LeadingClusterPt );
00125 JET_DEFINE_ATT_ACCESSOR( LeadingClusterSecondLambda );
00126 JET_DEFINE_ATT_ACCESSOR( LeadingClusterCenterLambda );
00127 JET_DEFINE_ATT_ACCESSOR( LeadingClusterSecondR );
00128 JET_DEFINE_ATT_ACCESSOR( CentroidR );
00129 JET_DEFINE_ATT_ACCESSOR( KtDR );
00130 JET_DEFINE_ATT_ACCESSOR( Tau1 );
00131 JET_DEFINE_ATT_ACCESSOR( Tau2 );
00132 JET_DEFINE_ATT_ACCESSOR( Tau3 );
00133 JET_DEFINE_ATT_ACCESSOR( Tau1_wta );
00134 JET_DEFINE_ATT_ACCESSOR( Tau2_wta );
00135 JET_DEFINE_ATT_ACCESSOR( Tau3_wta );
00136 JET_DEFINE_ATT_ACCESSOR( Tau21 );
00137 JET_DEFINE_ATT_ACCESSOR( Tau32 );
00138 JET_DEFINE_ATT_ACCESSOR( Tau21_wta );
00139 JET_DEFINE_ATT_ACCESSOR( Tau32_wta );
00140 JET_DEFINE_ATT_ACCESSOR( Split12 );
00141 JET_DEFINE_ATT_ACCESSOR( Split23 );
00142 JET_DEFINE_ATT_ACCESSOR( Split34 );
00143 JET_DEFINE_ATT_ACCESSOR( ZCut12 );
00144 JET_DEFINE_ATT_ACCESSOR( ZCut23 );
00145 JET_DEFINE_ATT_ACCESSOR( ZCut34 );
00146 JET_DEFINE_ATT_ACCESSOR( Dip12 );
00147 JET_DEFINE_ATT_ACCESSOR( Dip13 );
00148 JET_DEFINE_ATT_ACCESSOR( Dip23 );
00149 JET_DEFINE_ATT_ACCESSOR( DipExcl12 );
00150 JET_DEFINE_ATT_ACCESSOR( ECF1 );
00151 JET_DEFINE_ATT_ACCESSOR( ECF2 );
00152 JET_DEFINE_ATT_ACCESSOR( ECF3 );
00153 JET_DEFINE_ATT_ACCESSOR( ECF1_Beta2 );
00154 JET_DEFINE_ATT_ACCESSOR( ECF2_Beta2 );
00155 JET_DEFINE_ATT_ACCESSOR( ECF3_Beta2 );
00156 JET_DEFINE_ATT_ACCESSOR( C1 );
00157 JET_DEFINE_ATT_ACCESSOR( C2 );
00158 JET_DEFINE_ATT_ACCESSOR( D2 );
00159 JET_DEFINE_ATT_ACCESSOR( C1_Beta2 );
00160 JET_DEFINE_ATT_ACCESSOR( C2_Beta2 );
00161 JET_DEFINE_ATT_ACCESSOR( D2_Beta2 );
00162 JET_DEFINE_ATT_ACCESSOR( ThrustMin );
00163 JET_DEFINE_ATT_ACCESSOR( ThrustMaj );
00164 JET_DEFINE_ATT_ACCESSOR( FoxWolfram0 );
00165 JET_DEFINE_ATT_ACCESSOR( FoxWolfram1 );
00166 JET_DEFINE_ATT_ACCESSOR( FoxWolfram2 );
00167 JET_DEFINE_ATT_ACCESSOR( FoxWolfram3 );
00168 JET_DEFINE_ATT_ACCESSOR( FoxWolfram4 );
00169 JET_DEFINE_ATT_ACCESSOR( Sphericity );
00170 JET_DEFINE_ATT_ACCESSOR( Aplanarity );
00171 JET_DEFINE_ATT_ACCESSOR( PullMag );
00172 JET_DEFINE_ATT_ACCESSOR( PullPhi );
00173 JET_DEFINE_ATT_ACCESSOR( Pull_C00 );
00174 JET_DEFINE_ATT_ACCESSOR( Pull_C01 );
00175 JET_DEFINE_ATT_ACCESSOR( Pull_C10 );
00176 JET_DEFINE_ATT_ACCESSOR( Pull_C11 );
00177 JET_DEFINE_ATT_ACCESSOR( Charge );
00178 JET_DEFINE_ATT_ACCESSOR( ShowerDeconstructionW );
00179 JET_DEFINE_ATT_ACCESSOR( ShowerDeconstructionTop );
00180 JET_DEFINE_ATT_ACCESSOR( Volatility );
00181 JET_DEFINE_ATT_ACCESSOR( isBadLoose );
00182 JET_DEFINE_ATT_ACCESSOR( isBadMedium );
00183 JET_DEFINE_ATT_ACCESSOR( isBadTight );
00184 JET_DEFINE_ATT_ACCESSOR( isUgly );
00185 JET_DEFINE_ATT_ACCESSOR( PtTruth );
00186 JET_DEFINE_ATT_ACCESSOR( IsoKR20Par );
00187 JET_DEFINE_ATT_ACCESSOR( IsoKR20Perp );
00188 JET_DEFINE_ATT_ACCESSOR( HighestJVFVtx );
00189 JET_DEFINE_ATT_ACCESSOR( JetLabel );
00190 JET_DEFINE_ATT_ACCESSOR( NumTowers );
00191 JET_DEFINE_ATT_ACCESSOR( BchCorrDotx );
00192 JET_DEFINE_ATT_ACCESSOR( BchCorrJet );
00193 JET_DEFINE_ATT_ACCESSOR( BchCorrJetForCell );
00194
00195 default:
00196 std::cerr << "xAOD::Jet_v1 ERROR Unknown attribute ("
00197 << moment << ") requested. (Did you ask the wrong type ?)" << std::endl;
00198 return 0;
00199 }
00200 }
00201 };
00202
00203
00205 std::string name_v1(xAOD::JetAttribute::AttributeID id );
00206
00207
00208 template<typename T>
00209 struct ObjectAccessorMap_v1 {
00210 static ObjectAccessorWrapper< T > *
00211 accessor( xAOD::JetAttribute::AssoParticlesID id ) {
00212 switch(id) {
00213 JET_DEFINE_ASSOBJ_ACCESSOR( GhostTrack );
00214 JET_DEFINE_ASSOBJ_ACCESSOR( GhostTruthParticle );
00215 JET_DEFINE_ASSOBJ_ACCESSOR( GhostMuonSegment );
00216 JET_DEFINE_ASSOBJ_ACCESSOR( OriginVertex );
00217 default:
00218 std::cerr << "xAOD::Jet_v1 ERROR Unknown associated particles ("
00219 << id << ") requested" << std::endl;
00220 return 0;
00221 }
00222 }
00223
00224 };
00225
00227 std::string assoName_v1(xAOD::JetAttribute::AssoParticlesID id );
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254 }
00255 }
00256 #endif