11 #include "fastjet/contrib/Nsubjettiness.hh"
12 #include "fastjet/contrib/AxesDefinition.hh"
24 ATH_MSG_ERROR(
"NSubjettinessTool needs to have its input jet container name configured!");
25 return StatusCode::FAILURE;
35 if( std::abs(
m_Alpha-1.0) > 1.0
e-5 ) {
38 ATH_MSG_WARNING(
"The Alpha property is deprecated, please use the AlphaList property to provide a list of values" );
53 if( alphaFix < 0.0 ) {
70 "Tau1" + moment.suffix);
72 "Tau2" + moment.suffix);
74 "Tau3" + moment.suffix);
76 "Tau4" + moment.suffix);
79 "Tau2_ungroomed" + moment.suffix);
81 "Tau3_ungroomed" + moment.suffix);
83 "Tau4_ungroomed" + moment.suffix);
86 "Tau1_wta" + moment.suffix);
88 "Tau2_wta" + moment.suffix);
90 "Tau3_wta" + moment.suffix);
92 "Tau4_wta" + moment.suffix);
95 "Tau2_wta_ungroomed" + moment.suffix);
97 "Tau3_wta_ungroomed" + moment.suffix);
99 "Tau4_wta_ungroomed" + moment.suffix);
120 return StatusCode::SUCCESS;
125 std::vector<SG::WriteDecorHandle<xAOD::JetContainer, float>> wdhs_Tau1;
126 std::vector<SG::WriteDecorHandle<xAOD::JetContainer, float>> wdhs_Tau2;
127 std::vector<SG::WriteDecorHandle<xAOD::JetContainer, float>> wdhs_Tau3;
128 std::vector<SG::WriteDecorHandle<xAOD::JetContainer, float>> wdhs_Tau4;
130 std::vector<SG::WriteDecorHandle<xAOD::JetContainer, float>> wdhs_Tau2_ungroomed;
131 std::vector<SG::WriteDecorHandle<xAOD::JetContainer, float>> wdhs_Tau3_ungroomed;
132 std::vector<SG::WriteDecorHandle<xAOD::JetContainer, float>> wdhs_Tau4_ungroomed;
134 std::vector<SG::WriteDecorHandle<xAOD::JetContainer, float>> wdhs_Tau1_wta;
135 std::vector<SG::WriteDecorHandle<xAOD::JetContainer, float>> wdhs_Tau2_wta;
136 std::vector<SG::WriteDecorHandle<xAOD::JetContainer, float>> wdhs_Tau3_wta;
137 std::vector<SG::WriteDecorHandle<xAOD::JetContainer, float>> wdhs_Tau4_wta;
139 std::vector<SG::WriteDecorHandle<xAOD::JetContainer, float>> wdhs_Tau2_wta_ungroomed;
140 std::vector<SG::WriteDecorHandle<xAOD::JetContainer, float>> wdhs_Tau3_wta_ungroomed;
141 std::vector<SG::WriteDecorHandle<xAOD::JetContainer, float>> wdhs_Tau4_wta_ungroomed;
164 fastjet::PseudoJet
jet;
165 fastjet::PseudoJet jet_ungroomed;
171 bool calculate_ungroomed =
false;
181 ATH_MSG_ERROR(
"Parent element link is not valid. Aborting" );
182 return StatusCode::FAILURE;
185 const xAOD::Jet* parentJet = *(parentLink);
193 std::once_flag oflag;
195 []() { fastjet::contrib::WTA_KT_Axes
x; });
202 fastjet::contrib::NormalizedCutoffMeasure normalized_measure
203 (
alpha, injet->getSizeParameter(), 1000000);
205 float Tau1_value = -999;
206 float Tau2_value = -999;
207 float Tau3_value = -999;
208 float Tau4_value = -999;
210 float Tau2_ungroomed_value = -999;
211 float Tau3_ungroomed_value = -999;
212 float Tau4_ungroomed_value = -999;
214 float Tau1_wta_value = -999;
215 float Tau2_wta_value = -999;
216 float Tau3_wta_value = -999;
217 float Tau4_wta_value = -999;
219 float Tau2_wta_ungroomed_value = -999;
220 float Tau3_wta_ungroomed_value = -999;
221 float Tau4_wta_ungroomed_value = -999;
227 fastjet::contrib::KT_Axes kt_axes;
238 if( calculate_ungroomed ) {
239 Tau2_ungroomed_value = tau2.
result(jet_ungroomed);
240 Tau3_ungroomed_value = tau3.
result(jet_ungroomed);
241 Tau4_ungroomed_value = tau4.
result(jet_ungroomed);
246 fastjet::contrib::WTA_KT_Axes wta_kt_axes;
257 if( calculate_ungroomed ) {
258 Tau2_wta_ungroomed_value = tau2_wta.
result(jet_ungroomed);
259 Tau3_wta_ungroomed_value = tau3_wta.
result(jet_ungroomed);
260 Tau4_wta_ungroomed_value = tau4_wta.
result(jet_ungroomed);
265 wdhs_Tau1[
i](*injet) = Tau1_value;
266 wdhs_Tau2[
i](*injet) = Tau2_value;
267 wdhs_Tau3[
i](*injet) = Tau3_value;
268 wdhs_Tau4[
i](*injet) = Tau4_value;
270 wdhs_Tau2_ungroomed[
i](*injet) = Tau2_ungroomed_value;
271 wdhs_Tau3_ungroomed[
i](*injet) = Tau3_ungroomed_value;
272 wdhs_Tau4_ungroomed[
i](*injet) = Tau4_ungroomed_value;
274 wdhs_Tau1_wta[
i](*injet) = Tau1_wta_value;
275 wdhs_Tau2_wta[
i](*injet) = Tau2_wta_value;
276 wdhs_Tau3_wta[
i](*injet) = Tau3_wta_value;
277 wdhs_Tau4_wta[
i](*injet) = Tau4_wta_value;
279 wdhs_Tau2_wta_ungroomed[
i](*injet) = Tau2_wta_ungroomed_value;
280 wdhs_Tau3_wta_ungroomed[
i](*injet) = Tau3_wta_ungroomed_value;
281 wdhs_Tau4_wta_ungroomed[
i](*injet) = Tau4_wta_ungroomed_value;
286 return StatusCode::SUCCESS;