ATLAS Offline Software
TauJetAccessors_v2.icc
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: TauJetAccessors_v2.icc 743783 2016-04-28 21:45:08Z griffith $
8 
9 #ifndef XAODTAU_TAUACCESSORS_V2_ICC
10 #define XAODTAU_TAUACCESSORS_V2_ICC
11 
12 // System include(s):
13 #include <iostream>
14 
15 #define DEFINE_TAUJETPARAMETER_ACCESSOR(TYPE, NAME ) \
16  case xAOD::TauJetParameters::NAME: \
17 { \
18  static const SG::AuxElement::Accessor< TYPE > a( #NAME ); \
19  return &a; \
20 } \
21 break;
22 
23 
24  const SG::AuxElement::Accessor< float >* discriminantAccessorV2( xAOD::TauJetParameters::TauID discriminant ) {
25 
26  switch( discriminant ) {
27 
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 );
35 
36  default:
37  std::cerr << "xAOD::TauJetParameters ERROR Unknown tau discriminant value ("
38  << discriminant << ") requested" << std::endl;
39  return 0;
40  }
41  }
42 
43 
44  template <> const SG::AuxElement::Accessor< float >* panTauDetailsAccessorV2<float>( xAOD::TauJetParameters::PanTauDetails detail ) {
45 
46  switch( detail ) {
47 
48  //panTau details
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
65 
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 );
81 
82 
83 
84  default:
85  std::cerr << "xAOD::TauJetParameters ERROR Unknown float panTau Detail ("
86  << detail << ") requested" << std::endl;
87  return 0;
88  }
89  }
90 
91  template <> const SG::AuxElement::Accessor< int >* panTauDetailsAccessorV2<int>( xAOD::TauJetParameters::PanTauDetails detail ) {
92 
93  switch( detail ) {
94 
95 
96  //panTau details
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
105 
106 
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 );
117 
118  default:
119  std::cerr << "xAOD::TauJetParameters ERROR Unknown integer panTau Detail ("
120  << detail << ") requested" << std::endl;
121  return 0;
122  }
123  }
124 
125 
126 
127  template <> const SG::AuxElement::Accessor< float >* detailsAccessorV2<float>( xAOD::TauJetParameters::Detail detail ) {
128 
129  switch( detail ) {
130 
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 );
178 
179  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PSSFraction );
180  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ChPiEMEOverCaloEME );
181  DEFINE_TAUJETPARAMETER_ACCESSOR( float, EMPOverTrkSysP );
182 
183  DEFINE_TAUJETPARAMETER_ACCESSOR( float, TESOffset );
184  DEFINE_TAUJETPARAMETER_ACCESSOR( float, TESCalibConstant );
185 
186  // DEFINE_TAUJETPARAMETER_ACCESSOR( float, etEflow );//r21 cleanup
187  // DEFINE_TAUJETPARAMETER_ACCESSOR( float, mEflow );//r21 cleanup
188  // DEFINE_TAUJETPARAMETER_ACCESSOR( float, ptRatioEflow );//r21 cleanup
189 
190  // DEFINE_TAUJETPARAMETER_ACCESSOR( float, etEflowTopo );//r21 cleanup
191  // DEFINE_TAUJETPARAMETER_ACCESSOR( float, mEflowTopo );//r21 cleanup
192  // DEFINE_TAUJETPARAMETER_ACCESSOR( float, ptRatioEflowTopo );//r21 cleanup
193 
194  DEFINE_TAUJETPARAMETER_ACCESSOR( float, innerTrkAvgDist );
195  DEFINE_TAUJETPARAMETER_ACCESSOR( float, SumPtTrkFrac );
196 
197 
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 );
210 
211  DEFINE_TAUJETPARAMETER_ACCESSOR( float, mEflowApprox );
212  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ptRatioEflowApprox );
213 
214  default:
215  std::cerr << "xAOD::TauJetParameters ERROR Unknown float detail ("
216  << detail << ") requested" << std::endl;
217  return 0;
218  }
219  }
220 
221  template <> const SG::AuxElement::Accessor< int >* detailsAccessorV2<int>( xAOD::TauJetParameters::Detail detail ) {
222 
223  switch( detail ) {
224 
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
232 
233  default:
234  std::cerr << "xAOD::TauJetParameters ERROR Unknown integer detail ("
235  << detail << ") requested" << std::endl;
236  return 0;
237  }
238  }
239 
240 
241 #endif // XAODTAU_TAUJETACCESSORS_V2_ICC
242 
243 // LocalWords: EMPOverTrkSysPCorrected