ATLAS Offline Software
TauJetAccessors_v3.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 #ifndef XAODTAU_TAUACCESSORS_V3_ICC
8 #define XAODTAU_TAUACCESSORS_V3_ICC
9 
10 // System include(s):
11 #include <iostream>
12 
13 #define DEFINE_TAUJETPARAMETER_ACCESSOR(TYPE, NAME ) \
14  case xAOD::TauJetParameters::NAME: \
15 { \
16  static const SG::Accessor< TYPE > a( #NAME ); \
17  return &a; \
18 } \
19 break;
20 
21 
22 #ifndef TAUTRACK_V1_ACCESSORS
23 
24  const SG::Accessor< float >* discriminantAccessorV3( xAOD::TauJetParameters::TauID discriminant ) {
25 
26  switch( discriminant ) {
27 
28  DEFINE_TAUJETPARAMETER_ACCESSOR( float, EleMatchLikelihoodScore );
29  DEFINE_TAUJETPARAMETER_ACCESSOR( float, BDTJetScore );
30  DEFINE_TAUJETPARAMETER_ACCESSOR( float, RNNJetScore );
31  DEFINE_TAUJETPARAMETER_ACCESSOR( float, RNNEleScore );
32  DEFINE_TAUJETPARAMETER_ACCESSOR( float, BDTEleScore );
33  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTauScore );
34  DEFINE_TAUJETPARAMETER_ACCESSOR( float, BDTJetScoreSigTrans );
35  DEFINE_TAUJETPARAMETER_ACCESSOR( float, RNNJetScoreSigTrans );
36  DEFINE_TAUJETPARAMETER_ACCESSOR( float, RNNEleScoreSigTrans );
37 
38  default:
39  std::cerr << "xAOD::TauJetParameters ERROR Unknown tau discriminant value ("
40  << discriminant << ") requested" << std::endl;
41  return 0;
42  }
43  }
44 
45 
46  template <> const SG::Accessor< float >* panTauDetailsAccessorV3<float>( xAOD::TauJetParameters::PanTauDetails detail ) {
47 
48  switch( detail ) {
49 
50  //panTau details
51  //!PanTau variables when using CellBased pfos
52  //BDT output distributions
53  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTValue_1p0n_vs_1p1n );
54  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTValue_1p1n_vs_1pXn );
55  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTValue_3p0n_vs_3pXn );
56  //Variables used in BDTs
57  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Charged_JetMoment_EtDRxTotalEt );
58  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Charged_StdDev_Et_WrtEtAllConsts );
59  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Neutral_HLV_SumM );
60  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Neutral_PID_BDTValues_BDTSort_1 );
61  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Neutral_PID_BDTValues_BDTSort_2 );
62  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Neutral_Ratio_1stBDTEtOverEtAllConsts );
63  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Neutral_Ratio_EtOverEtAllConsts );
64  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Neutral_Shots_NPhotonsInSeed );
65  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Combined_DeltaR1stNeutralTo1stCharged );
66  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PanTau_BDTVar_Charged_HLV_SumM );
67 
68  default:
69  std::cerr << "xAOD::TauJetParameters ERROR Unknown float panTau Detail ("
70  << detail << ") requested" << std::endl;
71  return 0;
72  }
73  }
74 
75  template <> const SG::Accessor< int >* panTauDetailsAccessorV3<int>( xAOD::TauJetParameters::PanTauDetails detail ) {
76 
77  switch( detail ) {
78 
79 
80  //panTau details
81  //!integer PanTau variables when using pfos
82  //Flag whether this seed has pantau info
83  DEFINE_TAUJETPARAMETER_ACCESSOR( int, PanTau_isPanTauCandidate );
84  //decay modes (input mode [proto] and output mode [final])
85  DEFINE_TAUJETPARAMETER_ACCESSOR( int, PanTau_DecayModeProto );
86  DEFINE_TAUJETPARAMETER_ACCESSOR( int, PanTau_DecayMode );
87  //Variables used in BDTs
88  DEFINE_TAUJETPARAMETER_ACCESSOR( int, PanTau_BDTVar_Basic_NNeutralConsts );
89  DEFINE_TAUJETPARAMETER_ACCESSOR( int, PanTau_DecayModeExtended );
90 
91  default:
92  std::cerr << "xAOD::TauJetParameters ERROR Unknown integer panTau Detail ("
93  << detail << ") requested" << std::endl;
94  return 0;
95  }
96  }
97 
98 
99 
100  template <> const SG::Accessor< float >* detailsAccessorV3<float>( xAOD::TauJetParameters::Detail detail ) {
101 
102  switch( detail ) {
103 
104  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ipZ0SinThetaSigLeadTrk );
105  DEFINE_TAUJETPARAMETER_ACCESSOR( float, etOverPtLeadTrk );
106  DEFINE_TAUJETPARAMETER_ACCESSOR( float, leadTrkPt );
107  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ipSigLeadTrk );
108  DEFINE_TAUJETPARAMETER_ACCESSOR( float, massTrkSys );
109  DEFINE_TAUJETPARAMETER_ACCESSOR( float, trkWidth2 );
110  DEFINE_TAUJETPARAMETER_ACCESSOR( float, trFlightPathSig );
111  DEFINE_TAUJETPARAMETER_ACCESSOR( float, numEffTopoClusters );
112  DEFINE_TAUJETPARAMETER_ACCESSOR( float, topoInvMass );
113  DEFINE_TAUJETPARAMETER_ACCESSOR( float, effTopoInvMass );
114  DEFINE_TAUJETPARAMETER_ACCESSOR( float, topoMeanDeltaR );
115  DEFINE_TAUJETPARAMETER_ACCESSOR( float, effTopoMeanDeltaR );
116  DEFINE_TAUJETPARAMETER_ACCESSOR( float, EMRadius );
117  DEFINE_TAUJETPARAMETER_ACCESSOR( float, hadRadius );
118  DEFINE_TAUJETPARAMETER_ACCESSOR( float, etEMAtEMScale );
119  DEFINE_TAUJETPARAMETER_ACCESSOR( float, etHadAtEMScale );
120  DEFINE_TAUJETPARAMETER_ACCESSOR( float, isolFrac );
121  DEFINE_TAUJETPARAMETER_ACCESSOR( float, centFrac );
122  DEFINE_TAUJETPARAMETER_ACCESSOR( float, stripWidth2 );
123  DEFINE_TAUJETPARAMETER_ACCESSOR( float, trkAvgDist );
124  DEFINE_TAUJETPARAMETER_ACCESSOR( float, trkRmsDist );
125  DEFINE_TAUJETPARAMETER_ACCESSOR( float, lead2ClusterEOverAllClusterE );
126  DEFINE_TAUJETPARAMETER_ACCESSOR( float, lead3ClusterEOverAllClusterE );
127  DEFINE_TAUJETPARAMETER_ACCESSOR( float, caloIso );
128  DEFINE_TAUJETPARAMETER_ACCESSOR( float, caloIsoCorrected );
129  DEFINE_TAUJETPARAMETER_ACCESSOR( float, dRmax );
130  DEFINE_TAUJETPARAMETER_ACCESSOR( float, secMaxStripEt );
131  DEFINE_TAUJETPARAMETER_ACCESSOR( float, sumEMCellEtOverLeadTrkPt );
132  DEFINE_TAUJETPARAMETER_ACCESSOR( float, hadLeakEt );
133  DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing1 );
134  DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing2 );
135  DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing3 );
136  DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing4 );
137  DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing5 );
138  DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing6 );
139  DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing7 );
140  DEFINE_TAUJETPARAMETER_ACCESSOR( float, TRT_NHT_OVER_NLT );
141  DEFINE_TAUJETPARAMETER_ACCESSOR( float, TauJetVtxFraction );
142 
143  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PSSFraction );
144  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ChPiEMEOverCaloEME );
145  DEFINE_TAUJETPARAMETER_ACCESSOR( float, EMPOverTrkSysP );
146 
147  DEFINE_TAUJETPARAMETER_ACCESSOR( float, TESOffset );
148  DEFINE_TAUJETPARAMETER_ACCESSOR( float, TESCalibConstant );
149 
150  DEFINE_TAUJETPARAMETER_ACCESSOR( float, innerTrkAvgDist );
151  DEFINE_TAUJETPARAMETER_ACCESSOR( float, SumPtTrkFrac );
152 
153  DEFINE_TAUJETPARAMETER_ACCESSOR( float, centFracCorrected );
154  DEFINE_TAUJETPARAMETER_ACCESSOR( float, etOverPtLeadTrkCorrected );
155  DEFINE_TAUJETPARAMETER_ACCESSOR( float, innerTrkAvgDistCorrected );
156  DEFINE_TAUJETPARAMETER_ACCESSOR( float, SumPtTrkFracCorrected );
157  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ipSigLeadTrkCorrected );
158  DEFINE_TAUJETPARAMETER_ACCESSOR( float, trFlightPathSigCorrected );
159  DEFINE_TAUJETPARAMETER_ACCESSOR( float, massTrkSysCorrected );
160  DEFINE_TAUJETPARAMETER_ACCESSOR( float, dRmaxCorrected );
161  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ChPiEMEOverCaloEMECorrected );
162  DEFINE_TAUJETPARAMETER_ACCESSOR( float, EMPOverTrkSysPCorrected );
163  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ptRatioEflowApproxCorrected );
164  DEFINE_TAUJETPARAMETER_ACCESSOR( float, mEflowApproxCorrected );
165 
166  DEFINE_TAUJETPARAMETER_ACCESSOR( float, mEflowApprox );
167  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ptRatioEflowApprox );
168 
169  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ClustersMeanCenterLambda );
170  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ClustersMeanEMProbability );
171  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ClustersMeanFirstEngDens );
172  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ClustersMeanSecondLambda );
173  DEFINE_TAUJETPARAMETER_ACCESSOR( float, ClustersMeanPresamplerFrac );
174  DEFINE_TAUJETPARAMETER_ACCESSOR( float, PFOEngRelDiff );
175  DEFINE_TAUJETPARAMETER_ACCESSOR( float, LC_pantau_interpolPt );
176 
177  default:
178  std::cerr << "xAOD::TauJetParameters ERROR Unknown float detail ("
179  << detail << ") requested" << std::endl;
180  return 0;
181  }
182  }
183 
184  template <> const SG::Accessor< int >* detailsAccessorV3<int>( xAOD::TauJetParameters::Detail detail ) {
185 
186  switch( detail ) {
187 
188  DEFINE_TAUJETPARAMETER_ACCESSOR( int, numCells );
189  DEFINE_TAUJETPARAMETER_ACCESSOR( int, numTopoClusters );
190  DEFINE_TAUJETPARAMETER_ACCESSOR( int, nStrip );
191  DEFINE_TAUJETPARAMETER_ACCESSOR( int, nCharged );
192  DEFINE_TAUJETPARAMETER_ACCESSOR( int, GhostMuonSegmentCount );
193  DEFINE_TAUJETPARAMETER_ACCESSOR( int, nChargedTracks );
194  DEFINE_TAUJETPARAMETER_ACCESSOR( int, nIsolatedTracks );
195  DEFINE_TAUJETPARAMETER_ACCESSOR( int, nModifiedIsolationTracks );
196  DEFINE_TAUJETPARAMETER_ACCESSOR( int, nAllTracks );
197  DEFINE_TAUJETPARAMETER_ACCESSOR( int, nLargeRadiusTracks );
198 
199  default:
200  std::cerr << "xAOD::TauJetParameters ERROR Unknown integer detail ("
201  << detail << ") requested" << std::endl;
202  return 0;
203  }
204  }
205 
206  template <> const SG::Accessor< ElementLink<IParticleContainer> >* detailsAccessorV3<ElementLink<IParticleContainer > >( xAOD::TauJetParameters::Detail detail ) {
207 
208  switch( detail ) {
209 
210  DEFINE_TAUJETPARAMETER_ACCESSOR( ElementLink<IParticleContainer>, electronLink );
211 
212  default:
213  std::cerr << "xAOD::TauJetParameters ERROR Unknown IParticle detail ("
214  << detail << ") requested" << std::endl;
215  return 0;
216  }
217  }
218 
219 #else
220 
221  template <> const SG::Accessor< float >* trackDetailsAccessorV3<float>( xAOD::TauJetParameters::TrackDetail detail ) {
222 
223  switch( detail ) {
224  DEFINE_TAUJETPARAMETER_ACCESSOR( float, CaloSamplingEtaEM );
225  DEFINE_TAUJETPARAMETER_ACCESSOR( float, CaloSamplingEtaHad );
226  DEFINE_TAUJETPARAMETER_ACCESSOR( float, CaloSamplingPhiEM );
227  DEFINE_TAUJETPARAMETER_ACCESSOR( float, CaloSamplingPhiHad );
228  default:
229  std::cerr << "xAOD::TauJetParameters ERROR Unknown integer detail ("
230  << detail << ") requested" << std::endl;
231  return 0;
232  }
233  }
234 #endif //TAUTRACK_V1_ACCESSORS to aid with link issues
235 
236 #endif // XAODTAU_TAUJETACCESSORS_V3_ICC