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-2025 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::Accessor< TYPE > a( #NAME ); \
19  return &a; \
20 } \
21 break;
22 
23 
24  const SG::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 
35  default:
36  std::cerr << "xAOD::TauJetParameters ERROR Unknown tau discriminant value ("
37  << discriminant << ") requested" << std::endl;
38  return 0;
39  }
40  }
41 
42 
43  template <> const SG::Accessor< float >* panTauDetailsAccessorV2<float>( xAOD::TauJetParameters::PanTauDetails detail ) {
44 
45  switch( detail ) {
46 
47  //panTau details
48  //!PanTau variables when using CellBased pfos
49  //BDT output distributions
50  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTValue_1p0n_vs_1p1n );
51  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTValue_1p1n_vs_1pXn );
52  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTValue_3p0n_vs_3pXn );
53  //Variables used in BDTs
54  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Charged_StdDev_Et_WrtEtAllConsts );
55  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Neutral_PID_BDTValues_BDTSort_1 );
56  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Neutral_PID_BDTValues_BDTSort_2 );
57  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Neutral_Ratio_1stBDTEtOverEtAllConsts );
58  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Neutral_Ratio_EtOverEtAllConsts );
59  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Combined_DeltaR1stNeutralTo1stCharged );
60 
61  default:
62  std::cerr << "xAOD::TauJetParameters ERROR Unknown float panTau Detail ("
63  << detail << ") requested" << std::endl;
64  return 0;
65  }
66  }
67 
68  template <> const SG::Accessor< int >* panTauDetailsAccessorV2<int>( xAOD::TauJetParameters::PanTauDetails detail ) {
69 
70  switch( detail ) {
71 
72 
73  //panTau details
74  //!integer PanTau variables when using CellBased pfos
75  //Flag whether this seed has pantau info
76  DEFINE_TAUJETPARAMETER_ACCESSOR( int, PanTau_isPanTauCandidate );
77  //decay modes (input mode [proto] and output mode [final])
78  DEFINE_TAUJETPARAMETER_ACCESSOR( int, PanTau_DecayModeProto );
79  DEFINE_TAUJETPARAMETER_ACCESSOR( int, PanTau_DecayMode );
80 
81  default:
82  std::cerr << "xAOD::TauJetParameters ERROR Unknown integer panTau Detail ("
83  << detail << ") requested" << std::endl;
84  return 0;
85  }
86  }
87 
88 
89 
90  template <> const SG::Accessor< float >* detailsAccessorV2<float>( xAOD::TauJetParameters::Detail detail ) {
91 
92  switch( detail ) {
93 
94  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ipZ0SinThetaSigLeadTrk );
95  DEFINE_TAUJETPARAMETER_ACCESSOR( float, etOverPtLeadTrk );
96  DEFINE_TAUJETPARAMETER_ACCESSOR( float, leadTrkPt );
97  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ipSigLeadTrk );
98  DEFINE_TAUJETPARAMETER_ACCESSOR( float, massTrkSys );
99  DEFINE_TAUJETPARAMETER_ACCESSOR( float, trkWidth2 );
100  DEFINE_TAUJETPARAMETER_ACCESSOR( float, trFlightPathSig );
101  DEFINE_TAUJETPARAMETER_ACCESSOR( float, numEffTopoClusters );
102  DEFINE_TAUJETPARAMETER_ACCESSOR( float, topoInvMass );
103  DEFINE_TAUJETPARAMETER_ACCESSOR( float, effTopoInvMass );
104  DEFINE_TAUJETPARAMETER_ACCESSOR( float, topoMeanDeltaR );
105  DEFINE_TAUJETPARAMETER_ACCESSOR( float, effTopoMeanDeltaR );
106  DEFINE_TAUJETPARAMETER_ACCESSOR( float, EMRadius );
107  DEFINE_TAUJETPARAMETER_ACCESSOR( float, hadRadius );
108  DEFINE_TAUJETPARAMETER_ACCESSOR( float, etEMAtEMScale );
109  DEFINE_TAUJETPARAMETER_ACCESSOR( float, etHadAtEMScale );
110  DEFINE_TAUJETPARAMETER_ACCESSOR( float, isolFrac );
111  DEFINE_TAUJETPARAMETER_ACCESSOR( float, centFrac );
112  DEFINE_TAUJETPARAMETER_ACCESSOR( float, stripWidth2 );
113  DEFINE_TAUJETPARAMETER_ACCESSOR( float, trkAvgDist );
114  DEFINE_TAUJETPARAMETER_ACCESSOR( float, trkRmsDist );
115  DEFINE_TAUJETPARAMETER_ACCESSOR( float, lead2ClusterEOverAllClusterE );
116  DEFINE_TAUJETPARAMETER_ACCESSOR( float, lead3ClusterEOverAllClusterE );
117  DEFINE_TAUJETPARAMETER_ACCESSOR( float, caloIso );
118  DEFINE_TAUJETPARAMETER_ACCESSOR( float, caloIsoCorrected );
119  DEFINE_TAUJETPARAMETER_ACCESSOR( float, dRmax );
120  DEFINE_TAUJETPARAMETER_ACCESSOR( float, secMaxStripEt );
121  DEFINE_TAUJETPARAMETER_ACCESSOR( float, sumEMCellEtOverLeadTrkPt );
122  DEFINE_TAUJETPARAMETER_ACCESSOR( float, hadLeakEt );
123  DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing1 );
124  DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing2 );
125  DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing3 );
126  DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing4 );
127  DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing5 );
128  DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing6 );
129  DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing7 );
130  DEFINE_TAUJETPARAMETER_ACCESSOR( float, TRT_NHT_OVER_NLT );
131  DEFINE_TAUJETPARAMETER_ACCESSOR( float, TauJetVtxFraction );
132 
133  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PSSFraction );
134  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ChPiEMEOverCaloEME );
135  DEFINE_TAUJETPARAMETER_ACCESSOR( float, EMPOverTrkSysP );
136 
137  DEFINE_TAUJETPARAMETER_ACCESSOR( float, TESOffset );
138  DEFINE_TAUJETPARAMETER_ACCESSOR( float, TESCalibConstant );
139 
140  DEFINE_TAUJETPARAMETER_ACCESSOR( float, innerTrkAvgDist );
141  DEFINE_TAUJETPARAMETER_ACCESSOR( float, SumPtTrkFrac );
142 
143  DEFINE_TAUJETPARAMETER_ACCESSOR( float, centFracCorrected );
144  DEFINE_TAUJETPARAMETER_ACCESSOR( float, etOverPtLeadTrkCorrected );
145  DEFINE_TAUJETPARAMETER_ACCESSOR( float, innerTrkAvgDistCorrected );
146  DEFINE_TAUJETPARAMETER_ACCESSOR( float, SumPtTrkFracCorrected );
147  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ipSigLeadTrkCorrected );
148  DEFINE_TAUJETPARAMETER_ACCESSOR( float, trFlightPathSigCorrected );
149  DEFINE_TAUJETPARAMETER_ACCESSOR( float, massTrkSysCorrected );
150  DEFINE_TAUJETPARAMETER_ACCESSOR( float, dRmaxCorrected );
151  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ChPiEMEOverCaloEMECorrected );
152  DEFINE_TAUJETPARAMETER_ACCESSOR( float, EMPOverTrkSysPCorrected );
153  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ptRatioEflowApproxCorrected );
154  DEFINE_TAUJETPARAMETER_ACCESSOR( float, mEflowApproxCorrected );
155 
156  DEFINE_TAUJETPARAMETER_ACCESSOR( float, mEflowApprox );
157  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ptRatioEflowApprox );
158 
159  default:
160  std::cerr << "xAOD::TauJetParameters ERROR Unknown float detail ("
161  << detail << ") requested" << std::endl;
162  return 0;
163  }
164  }
165 
166  template <> const SG::Accessor< int >* detailsAccessorV2<int>( xAOD::TauJetParameters::Detail detail ) {
167 
168  switch( detail ) {
169 
170  DEFINE_TAUJETPARAMETER_ACCESSOR( int, numCells );
171  DEFINE_TAUJETPARAMETER_ACCESSOR( int, numTopoClusters );
172  DEFINE_TAUJETPARAMETER_ACCESSOR( int, nStrip );
173  DEFINE_TAUJETPARAMETER_ACCESSOR( int, nCharged );
174 
175  default:
176  std::cerr << "xAOD::TauJetParameters ERROR Unknown integer detail ("
177  << detail << ") requested" << std::endl;
178  return 0;
179  }
180  }
181 
182 
183 #endif // XAODTAU_TAUJETACCESSORS_V2_ICC
184 
185 // LocalWords: EMPOverTrkSysPCorrected