1 // Dear emacs, this is -*- c++ -*-
4 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
7 // $Id: TauJetAccessors_v2.icc 743783 2016-04-28 21:45:08Z griffith $
9 #ifndef XAODTAU_TAUACCESSORS_V2_ICC
10 #define XAODTAU_TAUACCESSORS_V2_ICC
15 #define DEFINE_TAUJETPARAMETER_ACCESSOR(TYPE, NAME ) \
16 case xAOD::TauJetParameters::NAME: \
18 static const SG::AuxElement::Accessor< TYPE > a( #NAME ); \
24 const SG::AuxElement::Accessor< float >* discriminantAccessorV2( xAOD::TauJetParameters::TauID discriminant ) {
26 switch( discriminant ) {
28 DEFINE_TAUJETPARAMETER_ACCESSOR( float, Likelihood );
29 DEFINE_TAUJETPARAMETER_ACCESSOR( float, SafeLikelihood );
30 DEFINE_TAUJETPARAMETER_ACCESSOR( float, BDTJetScore );
31 DEFINE_TAUJETPARAMETER_ACCESSOR( float, BDTEleScore );
32 DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTauScore );
33 DEFINE_TAUJETPARAMETER_ACCESSOR( float, BDTJetScoreSigTrans );
34 //DEFINE_TAUJETPARAMETER_ACCESSOR( float, BDTJetScoreBkgTrans );
37 std::cerr << "xAOD::TauJetParameters ERROR Unknown tau discriminant value ("
38 << discriminant << ") requested" << std::endl;
44 template <> const SG::AuxElement::Accessor< float >* panTauDetailsAccessorV2<float>( xAOD::TauJetParameters::PanTauDetails detail ) {
49 //!PanTau variables when using CellBased pfos
50 //BDT output distributions
51 DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTValue_1p0n_vs_1p1n );
52 DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTValue_1p1n_vs_1pXn );
53 DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTValue_3p0n_vs_3pXn );
54 //Variables used in BDTs
55 //DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Charged_JetMoment_EtDRxTotalEt );//r21 cleanup
56 DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Charged_StdDev_Et_WrtEtAllConsts );
57 //DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Neutral_HLV_SumM );//r21 cleanup
58 DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Neutral_PID_BDTValues_BDTSort_1 );
59 DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Neutral_PID_BDTValues_BDTSort_2 );
60 DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Neutral_Ratio_1stBDTEtOverEtAllConsts );
61 DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Neutral_Ratio_EtOverEtAllConsts );
62 //DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Neutral_Shots_NPhotonsInSeed );//r21 cleanup
63 DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Combined_DeltaR1stNeutralTo1stCharged );
64 //DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Charged_HLV_SumM );//r21 cleanup
66 // //!PanTau variables when using eflowRec pfos//r21 cleanup
67 // //BDT output distributions
68 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_eflowRecInput_BDTValue_1p0n_vs_1p1n );
69 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_eflowRecInput_BDTValue_1p1n_vs_1pXn );
70 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_eflowRecInput_BDTValue_3p0n_vs_3pXn );
71 // //Variables used in BDTs
72 // //NOTE: They are different from the CellBased ones in general!
73 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_eflowRecInput_BDTVar_Charged_HLV_SumPt );
74 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_eflowRecInput_BDTVar_Charged_Ratio_EtOverEtAllConsts );
75 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_eflowRecInput_BDTVar_Neutral_HLV_SumM );
76 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_EtSort_1 );
77 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_eflowRecInput_BDTVar_Neutral_PID_BDTValues_BDTSort_2 );
78 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_eflowRecInput_BDTVar_Neutral_Ratio_EtOverEtAllConsts );
79 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_eflowRecInput_BDTVar_Neutral_Mean_DRToLeading_WrtEtAllConsts );
80 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_eflowRecInput_BDTVar_Combined_DeltaR1stNeutralTo1stCharged );
85 std::cerr << "xAOD::TauJetParameters ERROR Unknown float panTau Detail ("
86 << detail << ") requested" << std::endl;
91 template <> const SG::AuxElement::Accessor< int >* panTauDetailsAccessorV2<int>( xAOD::TauJetParameters::PanTauDetails detail ) {
97 //!integer PanTau variables when using CellBased pfos
98 //Flag whether this seed has pantau info
99 DEFINE_TAUJETPARAMETER_ACCESSOR( int, PanTau_isPanTauCandidate );
100 //decay modes (input mode [proto] and output mode [final])
101 DEFINE_TAUJETPARAMETER_ACCESSOR( int, PanTau_DecayModeProto );
102 DEFINE_TAUJETPARAMETER_ACCESSOR( int, PanTau_DecayMode );
103 //Variables used in BDTs
104 //DEFINE_TAUJETPARAMETER_ACCESSOR( int, PanTau_CellBasedInput_BDTVar_Basic_NNeutralConsts );//r21 cleanup
107 // //!integer PanTau variables when using eflowRec pfos
108 // //Flag whether this seed has pantau info
109 // DEFINE_TAUJETPARAMETER_ACCESSOR( int, PanTau_eflowRecInput_isPanTauCandidate );
110 // //decay modes (input mode [proto] and output mode [final])
111 // DEFINE_TAUJETPARAMETER_ACCESSOR( int, PanTau_eflowRecInput_DecayModeProto );
112 // DEFINE_TAUJETPARAMETER_ACCESSOR( int, PanTau_eflowRecInput_DecayMode );
113 // //Variables used in BDTs
114 // //NOTE: They are different from the CellBased ones in general!
115 // DEFINE_TAUJETPARAMETER_ACCESSOR( int, PanTau_eflowRecInput_BDTVar_Basic_NPi0NeutConsts );
116 // DEFINE_TAUJETPARAMETER_ACCESSOR( int, PanTau_eflowRecInput_BDTVar_Basic_NNeutralConsts );
119 std::cerr << "xAOD::TauJetParameters ERROR Unknown integer panTau Detail ("
120 << detail << ") requested" << std::endl;
127 template <> const SG::AuxElement::Accessor< float >* detailsAccessorV2<float>( xAOD::TauJetParameters::Detail detail ) {
131 DEFINE_TAUJETPARAMETER_ACCESSOR( float, ipZ0SinThetaSigLeadTrk );
132 DEFINE_TAUJETPARAMETER_ACCESSOR( float, etOverPtLeadTrk );
133 DEFINE_TAUJETPARAMETER_ACCESSOR( float, leadTrkPt );
134 DEFINE_TAUJETPARAMETER_ACCESSOR( float, ipSigLeadTrk );
135 DEFINE_TAUJETPARAMETER_ACCESSOR( float, massTrkSys );
136 DEFINE_TAUJETPARAMETER_ACCESSOR( float, trkWidth2 );
137 DEFINE_TAUJETPARAMETER_ACCESSOR( float, trFlightPathSig );
138 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, ele_E237E277 );//r21 cleanup
139 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, ele_PresamplerFraction );//r21 cleanup
140 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, ele_ECALFirstFraction );//r21 cleanup
141 DEFINE_TAUJETPARAMETER_ACCESSOR( float, numEffTopoClusters );
142 DEFINE_TAUJETPARAMETER_ACCESSOR( float, topoInvMass );
143 DEFINE_TAUJETPARAMETER_ACCESSOR( float, effTopoInvMass );
144 DEFINE_TAUJETPARAMETER_ACCESSOR( float, topoMeanDeltaR );
145 DEFINE_TAUJETPARAMETER_ACCESSOR( float, effTopoMeanDeltaR );
146 DEFINE_TAUJETPARAMETER_ACCESSOR( float, EMRadius );
147 DEFINE_TAUJETPARAMETER_ACCESSOR( float, hadRadius );
148 DEFINE_TAUJETPARAMETER_ACCESSOR( float, etEMAtEMScale );
149 DEFINE_TAUJETPARAMETER_ACCESSOR( float, etHadAtEMScale );
150 DEFINE_TAUJETPARAMETER_ACCESSOR( float, isolFrac );
151 DEFINE_TAUJETPARAMETER_ACCESSOR( float, centFrac );
152 DEFINE_TAUJETPARAMETER_ACCESSOR( float, stripWidth2 );
153 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, etEMCalib );//r21 cleanup
154 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, etHadCalib );//r21 cleanup
155 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, seedCalo_eta );//r21 cleanup
156 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, seedCalo_phi );//r21 cleanup
157 DEFINE_TAUJETPARAMETER_ACCESSOR( float, trkAvgDist );
158 DEFINE_TAUJETPARAMETER_ACCESSOR( float, trkRmsDist );
159 DEFINE_TAUJETPARAMETER_ACCESSOR( float, lead2ClusterEOverAllClusterE );
160 DEFINE_TAUJETPARAMETER_ACCESSOR( float, lead3ClusterEOverAllClusterE );
161 DEFINE_TAUJETPARAMETER_ACCESSOR( float, caloIso );
162 DEFINE_TAUJETPARAMETER_ACCESSOR( float, caloIsoCorrected );
163 DEFINE_TAUJETPARAMETER_ACCESSOR( float, dRmax );
164 DEFINE_TAUJETPARAMETER_ACCESSOR( float, secMaxStripEt );
165 DEFINE_TAUJETPARAMETER_ACCESSOR( float, sumEMCellEtOverLeadTrkPt );
166 DEFINE_TAUJETPARAMETER_ACCESSOR( float, hadLeakEt );
167 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, EM_TES_scale );//r21 cleanup
168 //DEFINE_TAUJETPARAMETER_ACCESSOR( float, LC_TES_precalib );//r21 cleanup
169 DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing1 );
170 DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing2 );
171 DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing3 );
172 DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing4 );
173 DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing5 );
174 DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing6 );
175 DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing7 );
176 DEFINE_TAUJETPARAMETER_ACCESSOR( float, TRT_NHT_OVER_NLT );
177 DEFINE_TAUJETPARAMETER_ACCESSOR( float, TauJetVtxFraction );
179 DEFINE_TAUJETPARAMETER_ACCESSOR( float, PSSFraction );
180 DEFINE_TAUJETPARAMETER_ACCESSOR( float, ChPiEMEOverCaloEME );
181 DEFINE_TAUJETPARAMETER_ACCESSOR( float, EMPOverTrkSysP );
183 DEFINE_TAUJETPARAMETER_ACCESSOR( float, TESOffset );
184 DEFINE_TAUJETPARAMETER_ACCESSOR( float, TESCalibConstant );
186 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, etEflow );//r21 cleanup
187 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, mEflow );//r21 cleanup
188 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, ptRatioEflow );//r21 cleanup
190 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, etEflowTopo );//r21 cleanup
191 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, mEflowTopo );//r21 cleanup
192 // DEFINE_TAUJETPARAMETER_ACCESSOR( float, ptRatioEflowTopo );//r21 cleanup
194 DEFINE_TAUJETPARAMETER_ACCESSOR( float, innerTrkAvgDist );
195 DEFINE_TAUJETPARAMETER_ACCESSOR( float, SumPtTrkFrac );
198 DEFINE_TAUJETPARAMETER_ACCESSOR( float, centFracCorrected );
199 DEFINE_TAUJETPARAMETER_ACCESSOR( float, etOverPtLeadTrkCorrected );
200 DEFINE_TAUJETPARAMETER_ACCESSOR( float, innerTrkAvgDistCorrected );
201 DEFINE_TAUJETPARAMETER_ACCESSOR( float, SumPtTrkFracCorrected );
202 DEFINE_TAUJETPARAMETER_ACCESSOR( float, ipSigLeadTrkCorrected );
203 DEFINE_TAUJETPARAMETER_ACCESSOR( float, trFlightPathSigCorrected );
204 DEFINE_TAUJETPARAMETER_ACCESSOR( float, massTrkSysCorrected );
205 DEFINE_TAUJETPARAMETER_ACCESSOR( float, dRmaxCorrected );
206 DEFINE_TAUJETPARAMETER_ACCESSOR( float, ChPiEMEOverCaloEMECorrected );
207 DEFINE_TAUJETPARAMETER_ACCESSOR( float, EMPOverTrkSysPCorrected );
208 DEFINE_TAUJETPARAMETER_ACCESSOR( float, ptRatioEflowApproxCorrected );
209 DEFINE_TAUJETPARAMETER_ACCESSOR( float, mEflowApproxCorrected );
211 DEFINE_TAUJETPARAMETER_ACCESSOR( float, mEflowApprox );
212 DEFINE_TAUJETPARAMETER_ACCESSOR( float, ptRatioEflowApprox );
215 std::cerr << "xAOD::TauJetParameters ERROR Unknown float detail ("
216 << detail << ") requested" << std::endl;
221 template <> const SG::AuxElement::Accessor< int >* detailsAccessorV2<int>( xAOD::TauJetParameters::Detail detail ) {
225 DEFINE_TAUJETPARAMETER_ACCESSOR( int, numCells );
226 DEFINE_TAUJETPARAMETER_ACCESSOR( int, numTopoClusters );
227 DEFINE_TAUJETPARAMETER_ACCESSOR( int, nStrip );
228 // DEFINE_TAUJETPARAMETER_ACCESSOR( int, nPi0 );//r21 cleanup
229 DEFINE_TAUJETPARAMETER_ACCESSOR( int, nCharged );
230 // DEFINE_TAUJETPARAMETER_ACCESSOR( int, nPi0Topo );//r21 cleanup
231 // DEFINE_TAUJETPARAMETER_ACCESSOR( int, nChargedTopo );//r21 cleanup
234 std::cerr << "xAOD::TauJetParameters ERROR Unknown integer detail ("
235 << detail << ") requested" << std::endl;
241 #endif // XAODTAU_TAUJETACCESSORS_V2_ICC
243 // LocalWords: EMPOverTrkSysPCorrected