Execute - called for each tau candidate.
31 {
32
33 std::map<TString, float*> availableVars;
35
36
38 availableVars.insert( std::make_pair("TauJetsAuxDyn.mu", &vars.mu) );
39 availableVars.insert( std::make_pair("TauJetsAuxDyn.nVtxPU", &vars.nVtxPU) );
40 availableVars.insert( std::make_pair("TauJetsAuxDyn.rho", &vars.rho) );
41 availableVars.insert( std::make_pair("TauJetsAuxDyn.ClustersMeanCenterLambda", &vars.center_lambda) );
42 availableVars.insert( std::make_pair("TauJetsAuxDyn.ClustersMeanFirstEngDens", &vars.first_eng_dens) );
43 availableVars.insert( std::make_pair("TauJetsAuxDyn.ClustersMeanSecondLambda", &vars.second_lambda) );
44 availableVars.insert( std::make_pair("TauJetsAuxDyn.ClustersMeanPresamplerFrac", &vars.presampler_frac) );
45 availableVars.insert( std::make_pair("TauJetsAuxDyn.ClustersMeanEMProbability", &vars.eprobability) );
46 availableVars.insert( std::make_pair("TauJetsAuxDyn.ptIntermediateAxisEM/TauJetsAuxDyn.ptIntermediateAxis", &vars.ptEM_D_ptLC) );
47 availableVars.insert( std::make_pair("TauJetsAuxDyn.ptIntermediateAxis/TauJetsAuxDyn.ptCombined", &vars.ptLC_D_ptCombined) );
48 availableVars.insert( std::make_pair("TauJetsAuxDyn.etaPanTauCellBased", &vars.etaConstituent) );
50 availableVars.insert( std::make_pair("log(TauJetsAuxDyn.ptCombined)", &vars.logPtCombined) );
51 availableVars.insert( std::make_pair("TauJetsAuxDyn.LeadClusterFrac", &vars.lead_cluster_frac) );
52 availableVars.insert( std::make_pair("TauJetsAuxDyn.centFrac", &vars.centFrac) );
53 availableVars.insert( std::make_pair("TauJetsAuxDyn.UpsilonCluster", &vars.upsilon_cluster) );
54 availableVars.insert( std::make_pair("TauJetsAuxDyn.ptJetSeed/TauJetsAuxDyn.ptCombined", &vars.ptSeed_D_ptCombined) );
55 }
56 else {
57 availableVars.insert( std::make_pair("TauJetsAuxDyn.ptPanTauCellBased/TauJetsAuxDyn.ptCombined", &vars.ptConstituent_D_ptCombined) );
58 availableVars.insert( std::make_pair("TauJetsAuxDyn.ptCombined", &vars.ptCombined) );
59 availableVars.insert( std::make_pair("TauJetsAuxDyn.PanTau_BDTValue_1p0n_vs_1p1n", &vars.PanTauBDT_1p0n_vs_1p1n) );
60 availableVars.insert( std::make_pair("TauJetsAuxDyn.PanTau_BDTValue_1p1n_vs_1pXn", &vars.PanTauBDT_1p1n_vs_1pXn) );
61 availableVars.insert( std::make_pair("TauJetsAuxDyn.PanTau_BDTValue_3p0n_vs_3pXn", &vars.PanTauBDT_3p0n_vs_3pXn) );
62 availableVars.insert( std::make_pair("TauJetsAuxDyn.nTracks", &vars.nTracks) );
63 availableVars.insert( std::make_pair("TauJetsAuxDyn.PFOEngRelDiff", &vars.PFOEngRelDiff) );
64 }
65 }
66 else {
67 availableVars.insert( std::make_pair("TrigTauJetsAuxDyn.mu", &vars.mu) );
68 availableVars.insert( std::make_pair("TrigTauJetsAuxDyn.ClustersMeanCenterLambda", &vars.center_lambda) );
69 availableVars.insert( std::make_pair("TrigTauJetsAuxDyn.ClustersMeanFirstEngDens", &vars.first_eng_dens) );
70 availableVars.insert( std::make_pair("TrigTauJetsAuxDyn.ClustersMeanSecondLambda", &vars.second_lambda) );
71 availableVars.insert( std::make_pair("TrigTauJetsAuxDyn.ClustersMeanPresamplerFrac", &vars.presampler_frac) );
72 availableVars.insert( std::make_pair("TrigTauJetsAuxDyn.ClustersMeanEMProbability", &vars.eprobability) );
73 availableVars.insert( std::make_pair("TrigTauJetsAuxDyn.LeadClusterFrac", &vars.lead_cluster_frac) );
74 availableVars.insert( std::make_pair("TrigTauJetsAuxDyn.SecondClusterFrac", &vars.second_cluster_frac) );
75 availableVars.insert( std::make_pair("TrigTauJetsAuxDyn.ThirdClusterFrac", &vars.third_cluster_frac) );
76 availableVars.insert( std::make_pair("TrigTauJetsAuxDyn.UpsilonCluster", &vars.upsilon_cluster) );
77 availableVars.insert( std::make_pair("log(TrigTauJetsAuxDyn.ptDetectorAxis)", &vars.logPtDetectorAxis) );
78 availableVars.insert( std::make_pair("TrigTauJetsAuxDyn.etaDetectorAxis", &vars.etaDetectorAxis) );
79 availableVars.insert( std::make_pair("TrigTauJetsAuxDyn.ptIntermediateAxisEM/TrigTauJetsAuxDyn.ptDetectorAxis", &vars.ptEM_D_ptLC) );
80 availableVars.insert( std::make_pair("TrigTauJetsAuxDyn.ptDetectorAxis/TrigTauJetsAuxDyn.ptJetSeed", &vars.ptDetectorAxis_D_ptJetSeed) );
81 availableVars.insert( std::make_pair("TrigTauJetsAuxDyn.centFrac", &vars.centFrac) );
82 }
83
84
85 static const SG::ConstAccessor<float> acc_mu("mu");
86 vars.mu = acc_mu(xTau);
87
88
94
95 static const SG::ConstAccessor<float> acc_ptIntermediateAxisEM("ptIntermediateAxisEM");
96 float ptEM = acc_ptIntermediateAxisEM(xTau);
97
99 static const SG::ConstAccessor<float> acc_ptCombined("ptCombined");
100 float ptCombined = acc_ptCombined(xTau);
101
102 if (ptCombined==0.) {
104
106 return StatusCode::SUCCESS;
107 }
108
109 static const SG::ConstAccessor<int> acc_nVtxPU("nVtxPU");
110 vars.nVtxPU = acc_nVtxPU(xTau);
111
112 static const SG::ConstAccessor<float> acc_rho("rho");
113 vars.rho = acc_rho(xTau);
114
116
119
120 vars.ptEM_D_ptLC = (ptLC != 0.) ? ptEM / ptLC : 0.;
121 vars.ptLC_D_ptCombined = ptLC / ptCombined;
122
123 float ptMVA = 0.;
124
126 vars.logPtCombined = std::log(ptCombined);
127 vars.ptSeed_D_ptCombined = xTau.
ptJetSeed() / ptCombined;
128
129 static const SG::ConstAccessor<float> acc_UpsilonCluster("UpsilonCluster");
130 vars.upsilon_cluster = acc_UpsilonCluster(xTau);
131
132 static const SG::ConstAccessor<float> acc_LeadClusterFrac("LeadClusterFrac");
133 vars.lead_cluster_frac = acc_LeadClusterFrac(xTau);
134
136
138 }
139 else {
140 vars.ptCombined = ptCombined;
141 vars.ptConstituent_D_ptCombined = ptConstituent / ptCombined;
142
143
144 static const SG::ConstAccessor<float> acc_PanTauBDT_1p0n_vs_1p1n("PanTau_BDTValue_1p0n_vs_1p1n");
145 static const SG::ConstAccessor<float> acc_PanTauBDT_1p1n_vs_1pXn("PanTau_BDTValue_1p1n_vs_1pXn");
146 static const SG::ConstAccessor<float> acc_PanTauBDT_3p0n_vs_3pXn("PanTau_BDTValue_3p0n_vs_3pXn");
147
148 vars.PanTauBDT_1p0n_vs_1p1n = std::max(acc_PanTauBDT_1p0n_vs_1p1n(xTau), -5.1f);
149 vars.PanTauBDT_1p1n_vs_1pXn = std::max(acc_PanTauBDT_1p1n_vs_1pXn(xTau), -5.1f);
150 vars.PanTauBDT_3p0n_vs_3pXn = std::max(acc_PanTauBDT_3p0n_vs_3pXn(xTau), -5.1f);
151 vars.nTracks =
static_cast<float>(xTau.
nTracks());
153
155 }
156
157 if (ptMVA<1.) ptMVA=1.;
159
161 }
162 else {
163
167 return StatusCode::SUCCESS;
168 }
169
174
175 static const SG::ConstAccessor<float> acc_UpsilonCluster("UpsilonCluster");
176 static const SG::ConstAccessor<float> acc_LeadClusterFrac("LeadClusterFrac");
177 static const SG::ConstAccessor<float> acc_SecondClusterFrac("SecondClusterFrac");
178 static const SG::ConstAccessor<float> acc_ThirdClusterFrac("ThirdClusterFrac");
179
180 vars.upsilon_cluster = acc_UpsilonCluster(xTau);
181 vars.lead_cluster_frac = acc_LeadClusterFrac(xTau);
182 vars.second_cluster_frac = acc_SecondClusterFrac(xTau);
183 vars.third_cluster_frac = acc_ThirdClusterFrac(xTau);
184
186
188 if (ptMVA<1.) ptMVA=1.;
189
191
193 }
194
196
197 return StatusCode::SUCCESS;
198}
#define ATH_MSG_DEBUG(x,...)
std::unique_ptr< tauRecTools::BDTHelper > m_bdtHelper
std::unique_ptr< tauRecTools::BDTHelper > m_bdtHelper0p
virtual double phi() const
The azimuthal angle ( ) of the particle.
double ptPanTauCellBased() const
double ptDetectorAxis() const
virtual double pt() const
The transverse momentum ( ) of the particle.
virtual double e() const
The total energy of the particle.
double phiDetectorAxis() const
double etaDetectorAxis() const
double ptIntermediateAxis() const
bool detail(TauJetParameters::Detail detail, int &value) const
Get and set values of common details variables via enum.
void setP4(double pt, double eta, double phi, double m)
Set methods for IParticle values.
double etaPanTauCellBased() const
virtual double eta() const
The pseudorapidity ( ) of the particle.
size_t nTracks(TauJetParameters::TauTrackFlag flag=TauJetParameters::TauTrackFlag::classifiedCharged) const
double phiPanTauCellBased() const
@ ClustersMeanEMProbability
@ ClustersMeanSecondLambda
@ ClustersMeanFirstEngDens
@ ClustersMeanPresamplerFrac
@ centFrac
Get centrality fraction.
@ ClustersMeanCenterLambda