ATLAS Offline Software
Loading...
Searching...
No Matches
PFOAttributesAccessor_v1.h
Go to the documentation of this file.
1// Dear emacs, this is -*- c++ -*-
2
3/*
4 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5*/
6
7// $Id: PFOAttributesAccessor_v1.h 792675 2017-01-18 10:39:20Z mhodgkin $
8#ifndef PFOATTRIBUTESACCESSOR_H
9#define PFOATTRIBUTESACCESSOR_H
10
11/* Author Mark Hodgkinson
12This is pretty much based on the class xAODJets/JetMomentsAccessor.h - i.e I copied the code from there
13*/
14
15// System include(s):
16#include <iostream>
17
18// Local include(s):
19#include "xAODPFlow/PFODefs.h"
20
21#define DEFINE_PFO_CONSTACCESSOR( NAME ) \
22 case xAOD::PFODetails::NAME: \
23 { \
24 static const SG::AuxElement::Accessor< T > a( #NAME ); \
25 return &a; \
26 } \
27 break
28
29namespace xAOD{
30
31 template<class T> struct PFOAttributesAccessor_v1 {
33 switch (variable){
35 DEFINE_PFO_CONSTACCESSOR(nPi0Proto);
36 DEFINE_PFO_CONSTACCESSOR(eflowRec_EM_FRAC_ENHANCED);
37 DEFINE_PFO_CONSTACCESSOR(eflowRec_ENG_FRAC_CORE);
38 DEFINE_PFO_CONSTACCESSOR(eflowRec_FIRST_ENG_DENS);
39 DEFINE_PFO_CONSTACCESSOR(eflowRec_CENTER_LAMBDA);
40 DEFINE_PFO_CONSTACCESSOR(eflowRec_SECOND_R);
41 DEFINE_PFO_CONSTACCESSOR(eflowRec_DELTA_ALPHA);
42 DEFINE_PFO_CONSTACCESSOR(eflowRec_HOT_STRIP_FRAC);
43 DEFINE_PFO_CONSTACCESSOR(eflowRec_THREE_CELL_STRIP_FRAC);
44 DEFINE_PFO_CONSTACCESSOR(eflowRec_LATERAL);
45 DEFINE_PFO_CONSTACCESSOR(eflowRec_LONGITUDINAL);
46 DEFINE_PFO_CONSTACCESSOR(eflowRec_SECOND_LAMBDA);
47 DEFINE_PFO_CONSTACCESSOR(eflowRec_ISOLATION);
48 DEFINE_PFO_CONSTACCESSOR(eflowRec_ENG_FRAC_MAX);
49 DEFINE_PFO_CONSTACCESSOR(eflowRec_ENG_BAD_CELLS);
50 DEFINE_PFO_CONSTACCESSOR(eflowRec_N_BAD_CELLS);
51 DEFINE_PFO_CONSTACCESSOR(eflowRec_BADLARQ_FRAC);
52 DEFINE_PFO_CONSTACCESSOR(eflowRec_ENG_POS);
53 DEFINE_PFO_CONSTACCESSOR(eflowRec_SIGNIFICANCE);
54 DEFINE_PFO_CONSTACCESSOR(eflowRec_CELL_SIGNIFICANCE);
55 DEFINE_PFO_CONSTACCESSOR(eflowRec_CELL_SIG_SAMPLING);
56 DEFINE_PFO_CONSTACCESSOR(eflowRec_AVG_LAR_Q);
57 DEFINE_PFO_CONSTACCESSOR(eflowRec_AVG_TILE_Q);
58 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_EM3);
59 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_HEC0);
60 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_Tile0);
61 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_HEC);
62 DEFINE_PFO_CONSTACCESSOR(eflowRec_TIMING);
63 DEFINE_PFO_CONSTACCESSOR(eflowRec_tracksExpectedEnergyDeposit);
64 DEFINE_PFO_CONSTACCESSOR(eflowRec_isInDenseEnvironment);
65 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_EM);
66 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_PreSamplerB);
67 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_EMB1);
68 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_EMB2);
69 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_EMB3);
70 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_PreSamplerE);
71 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_EME1);
72 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_EME2);
73 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_EME3);
74 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_HEC1);
75 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_HEC2);
76 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_HEC3);
77 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_TileBar0);
78 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_TileBar1);
79 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_TileBar2);
80 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_TileGap1);
81 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_TileGap2);
82 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_TileGap3);
83 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_TileExt0);
84 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_TileExt1);
85 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_TileExt2);
86 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_FCAL0);
87 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_FCAL1);
88 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_FCAL2);
89 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_MINIFCAL0);
90 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_MINIFCAL1);
91 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_MINIFCAL2);
92 DEFINE_PFO_CONSTACCESSOR(eflowRec_LAYERENERGY_MINIFCAL3);
93 DEFINE_PFO_CONSTACCESSOR(eflowRec_layerVectorCellOrdering);
94 DEFINE_PFO_CONSTACCESSOR(eflowRec_radiusVectorCellOrdering);
95 DEFINE_PFO_CONSTACCESSOR(eflowRec_avgEdensityVectorCellOrdering);
96 DEFINE_PFO_CONSTACCESSOR(eflowRec_layerHED);
97 DEFINE_PFO_CONSTACCESSOR(eflowRec_EM_PROBABILITY);
98 DEFINE_PFO_CONSTACCESSOR(eflowRec_ENG_CALIB_TOT);
99 DEFINE_PFO_CONSTACCESSOR(eflowRec_ENG_CALIB_FRAC_EM);
100 DEFINE_PFO_CONSTACCESSOR(eflowRec_ENG_CALIB_FRAC_HAD);
101 DEFINE_PFO_CONSTACCESSOR(eflowRec_ENG_CALIB_FRAC_REST);
102 DEFINE_PFO_CONSTACCESSOR(cellBased_FIRST_ETA);
103 DEFINE_PFO_CONSTACCESSOR(cellBased_SECOND_R);
104 DEFINE_PFO_CONSTACCESSOR(cellBased_SECOND_LAMBDA);
105 DEFINE_PFO_CONSTACCESSOR(cellBased_DELTA_PHI);
106 DEFINE_PFO_CONSTACCESSOR(cellBased_DELTA_THETA);
107 DEFINE_PFO_CONSTACCESSOR(cellBased_CENTER_LAMBDA);
108 DEFINE_PFO_CONSTACCESSOR(cellBased_LATERAL);
109 DEFINE_PFO_CONSTACCESSOR(cellBased_LONGITUDINAL);
110 DEFINE_PFO_CONSTACCESSOR(cellBased_ENG_FRAC_EM);
111 DEFINE_PFO_CONSTACCESSOR(cellBased_ENG_FRAC_MAX);
112 DEFINE_PFO_CONSTACCESSOR(cellBased_ENG_FRAC_CORE);
113 DEFINE_PFO_CONSTACCESSOR(cellBased_SECOND_ENG_DENS);
114 DEFINE_PFO_CONSTACCESSOR(cellBased_EM1CoreFrac);
115 DEFINE_PFO_CONSTACCESSOR(cellBased_asymmetryInEM1WRTTrk);
116 DEFINE_PFO_CONSTACCESSOR(cellBased_NHitsInEM1);
117 DEFINE_PFO_CONSTACCESSOR(cellBased_NPosECells_PS);
118 DEFINE_PFO_CONSTACCESSOR(cellBased_NPosECells_EM1);
119 DEFINE_PFO_CONSTACCESSOR(cellBased_NPosECells_EM2);
120 DEFINE_PFO_CONSTACCESSOR(cellBased_firstEtaWRTClusterPosition_EM1);
121 DEFINE_PFO_CONSTACCESSOR(cellBased_firstEtaWRTClusterPosition_EM2);
122 DEFINE_PFO_CONSTACCESSOR(cellBased_secondEtaWRTClusterPosition_EM1);
123 DEFINE_PFO_CONSTACCESSOR(cellBased_secondEtaWRTClusterPosition_EM2);
124 DEFINE_PFO_CONSTACCESSOR(cellBased_energy_EM1);
125 DEFINE_PFO_CONSTACCESSOR(cellBased_energy_EM2);
126 DEFINE_PFO_CONSTACCESSOR(tauShots_nCellsInEta);
127 DEFINE_PFO_CONSTACCESSOR(tauShots_pt1);
128 DEFINE_PFO_CONSTACCESSOR(tauShots_pt3);
129 DEFINE_PFO_CONSTACCESSOR(tauShots_pt5);
130 DEFINE_PFO_CONSTACCESSOR(tauShots_ws5);
131 DEFINE_PFO_CONSTACCESSOR(tauShots_sdevEta5_WRTmean);
132 DEFINE_PFO_CONSTACCESSOR(tauShots_sdevEta5_WRTmode);
133 DEFINE_PFO_CONSTACCESSOR(tauShots_sdevPt5);
134 DEFINE_PFO_CONSTACCESSOR(tauShots_deltaPt12_min);
135 DEFINE_PFO_CONSTACCESSOR(tauShots_Fside_3not1);
136 DEFINE_PFO_CONSTACCESSOR(tauShots_Fside_5not1);
137 DEFINE_PFO_CONSTACCESSOR(tauShots_Fside_5not3);
138 DEFINE_PFO_CONSTACCESSOR(tauShots_fracSide_3not1);
139 DEFINE_PFO_CONSTACCESSOR(tauShots_fracSide_5not1);
140 DEFINE_PFO_CONSTACCESSOR(tauShots_fracSide_5not3);
141 DEFINE_PFO_CONSTACCESSOR(tauShots_pt1OverPt3);
142 DEFINE_PFO_CONSTACCESSOR(tauShots_pt3OverPt5);
143 DEFINE_PFO_CONSTACCESSOR(tauShots_mergedScore);
144 DEFINE_PFO_CONSTACCESSOR(tauShots_signalScore);
145 DEFINE_PFO_CONSTACCESSOR(tauShots_nPhotons);
146 DEFINE_PFO_CONSTACCESSOR(tauShots_seedHash);
147 default:
148 std::cerr << "xAOD::PFO_v1 ERROR Unknown float/double variable (" << static_cast<int>(variable) << ") requested" << std::endl;
149 return 0;
150 }//switch on variable names
151 }//const accessor
152
153 }//struct
154 ;
155
157 bool getValue(PFODetails::PFOParticleType type, std::string& stringName){
158 switch (type){
160 stringName = "pfo_ClusterLinks";
161 return true;
163 stringName = "pfo_TrackLinks";
164 return true;
165 // Note - clients should NEVER set both links to TauShot and HadroniCaloCluster - Tau WG agreed they NEVER will do such a thing (and they are only client)
167 stringName = "pfo_TauShotLinks";
168 return true;
170 stringName = "pfo_TauShotLinks";
172 stringName = "pfo_Charged";
174 stringName = "pfo_Neutral";
176 stringName = "pfo_TauTrack";
177 }//switch
178 return false;
179 }//getValue
180
181 };
182
183}//xAOD namespace
184
185#endif
#define DEFINE_PFO_CONSTACCESSOR(NAME)
SG::Accessor< T, ALLOC > Accessor
Definition AuxElement.h:572
PFOParticleType
This enum is used to label the associated particles to the PFO object.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
static const SG::AuxElement::Accessor< T > * constAccessor(xAOD::PFODetails::PFOAttributes variable)
bool getValue(PFODetails::PFOParticleType type, std::string &stringName)