1 // Dear emacs, this is -*- c++ -*-
 
    4   Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
 
    7 // $Id: TauJetAccessors_v1.icc 743783 2016-04-28 21:45:08Z griffith $
 
    9 #ifndef XAODTAU_TAUACCESSORS_V1_ICC
 
   10 #define XAODTAU_TAUACCESSORS_V1_ICC
 
   15 #define DEFINE_TAUJETPARAMETER_ACCESSOR(TYPE, NAME )                               \
 
   16   case xAOD::TauJetParameters::NAME:                    \
 
   18   static const SG::Accessor< TYPE > a( #NAME );     \
 
   24   const SG::Accessor< float >* discriminantAccessorV1( 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 );   
 
   36       std::cerr << "xAOD::TauJetParameters ERROR Unknown tau discriminant value ("
 
   37         << discriminant << ") requested" << std::endl;
 
   43   template <> const SG::Accessor< float >* panTauDetailsAccessorV1<float>( xAOD::TauJetParameters::PanTauDetails detail ) {
 
   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 );
 
   62       std::cerr << "xAOD::TauJetParameters ERROR Unknown float panTau Detail ("
 
   63         << detail << ") requested" << std::endl;
 
   68   template <> const SG::Accessor< int >* panTauDetailsAccessorV1<int>( xAOD::TauJetParameters::PanTauDetails detail ) {
 
   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 );
 
   82       std::cerr << "xAOD::TauJetParameters ERROR Unknown integer panTau Detail ("
 
   83         << detail << ") requested" << std::endl;
 
   91   template <> const SG::Accessor< float >* detailsAccessorV1<float>( xAOD::TauJetParameters::Detail detail ) {
 
   95       DEFINE_TAUJETPARAMETER_ACCESSOR( float, ipZ0SinThetaSigLeadTrk );
 
   96       DEFINE_TAUJETPARAMETER_ACCESSOR( float, etOverPtLeadTrk );
 
   97       DEFINE_TAUJETPARAMETER_ACCESSOR( float, leadTrkPt );
 
   98       DEFINE_TAUJETPARAMETER_ACCESSOR( float, ipSigLeadTrk );
 
   99       DEFINE_TAUJETPARAMETER_ACCESSOR( float, massTrkSys );
 
  100       DEFINE_TAUJETPARAMETER_ACCESSOR( float, trkWidth2 );
 
  101       DEFINE_TAUJETPARAMETER_ACCESSOR( float, trFlightPathSig );
 
  102       DEFINE_TAUJETPARAMETER_ACCESSOR( float, numEffTopoClusters );
 
  103       DEFINE_TAUJETPARAMETER_ACCESSOR( float, topoInvMass );
 
  104       DEFINE_TAUJETPARAMETER_ACCESSOR( float, effTopoInvMass );
 
  105       DEFINE_TAUJETPARAMETER_ACCESSOR( float, topoMeanDeltaR );
 
  106       DEFINE_TAUJETPARAMETER_ACCESSOR( float, effTopoMeanDeltaR );
 
  107       DEFINE_TAUJETPARAMETER_ACCESSOR( float, EMRadius );
 
  108       DEFINE_TAUJETPARAMETER_ACCESSOR( float, hadRadius );
 
  109       DEFINE_TAUJETPARAMETER_ACCESSOR( float, etEMAtEMScale );
 
  110       DEFINE_TAUJETPARAMETER_ACCESSOR( float, etHadAtEMScale );
 
  111       DEFINE_TAUJETPARAMETER_ACCESSOR( float, isolFrac );
 
  112       DEFINE_TAUJETPARAMETER_ACCESSOR( float, centFrac );
 
  113       DEFINE_TAUJETPARAMETER_ACCESSOR( float, stripWidth2 );
 
  114       DEFINE_TAUJETPARAMETER_ACCESSOR( float, trkAvgDist );
 
  115       DEFINE_TAUJETPARAMETER_ACCESSOR( float, trkRmsDist );
 
  116       DEFINE_TAUJETPARAMETER_ACCESSOR( float, lead2ClusterEOverAllClusterE );
 
  117       DEFINE_TAUJETPARAMETER_ACCESSOR( float, lead3ClusterEOverAllClusterE );
 
  118       DEFINE_TAUJETPARAMETER_ACCESSOR( float, caloIso );
 
  119       DEFINE_TAUJETPARAMETER_ACCESSOR( float, caloIsoCorrected );
 
  120       DEFINE_TAUJETPARAMETER_ACCESSOR( float, dRmax );
 
  121       DEFINE_TAUJETPARAMETER_ACCESSOR( float, secMaxStripEt );
 
  122       DEFINE_TAUJETPARAMETER_ACCESSOR( float, sumEMCellEtOverLeadTrkPt );
 
  123       DEFINE_TAUJETPARAMETER_ACCESSOR( float, hadLeakEt );
 
  124       DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing1 );
 
  125       DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing2 );
 
  126       DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing3 );
 
  127       DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing4 );
 
  128       DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing5 );
 
  129       DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing6 );
 
  130       DEFINE_TAUJETPARAMETER_ACCESSOR( float, cellBasedEnergyRing7 );
 
  131       DEFINE_TAUJETPARAMETER_ACCESSOR( float, TRT_NHT_OVER_NLT );
 
  132       DEFINE_TAUJETPARAMETER_ACCESSOR( float, TauJetVtxFraction );
 
  134       DEFINE_TAUJETPARAMETER_ACCESSOR( float, PSSFraction );
 
  135       DEFINE_TAUJETPARAMETER_ACCESSOR( float, ChPiEMEOverCaloEME );
 
  136       DEFINE_TAUJETPARAMETER_ACCESSOR( float, EMPOverTrkSysP );
 
  138       DEFINE_TAUJETPARAMETER_ACCESSOR( float, TESOffset );
 
  139       DEFINE_TAUJETPARAMETER_ACCESSOR( float, TESCalibConstant );
 
  141       DEFINE_TAUJETPARAMETER_ACCESSOR( float, centFracCorrected );
 
  142       DEFINE_TAUJETPARAMETER_ACCESSOR( float, etOverPtLeadTrkCorrected );
 
  143       DEFINE_TAUJETPARAMETER_ACCESSOR( float, innerTrkAvgDist );
 
  144       DEFINE_TAUJETPARAMETER_ACCESSOR( float, innerTrkAvgDistCorrected );
 
  145       DEFINE_TAUJETPARAMETER_ACCESSOR( float, SumPtTrkFrac );
 
  146       DEFINE_TAUJETPARAMETER_ACCESSOR( float, SumPtTrkFracCorrected );
 
  149       std::cerr << "xAOD::TauJetParameters ERROR Unknown float detail ("
 
  150         << detail << ") requested" << std::endl;
 
  155   template <> const SG::Accessor< int >* detailsAccessorV1<int>( xAOD::TauJetParameters::Detail detail ) {
 
  159       DEFINE_TAUJETPARAMETER_ACCESSOR( int, numCells );
 
  160       DEFINE_TAUJETPARAMETER_ACCESSOR( int, numTopoClusters );
 
  161       DEFINE_TAUJETPARAMETER_ACCESSOR( int, nStrip );
 
  162       DEFINE_TAUJETPARAMETER_ACCESSOR( int, nCharged );
 
  165       std::cerr << "xAOD::TauJetParameters ERROR Unknown integer detail ("
 
  166         << detail << ") requested" << std::endl;
 
  172 #endif // XAODTAU_TAUJETACCESSORS_V1_ICC