10 #include "fastjet/PseudoJet.hh"
11 #include "fastjet/JetDefinition.hh"
12 #include "fastjet/Selector.hh"
13 #include "fastjet/tools/Filter.hh"
16 #include "fastjet/ClusterSequence.hh"
17 #include "fastjet/contrib/RecursiveSymmetryCutBase.hh"
18 #include "fastjet/contrib/ModifiedMassDropTagger.hh"
21 using fastjet::PseudoJet;
22 using fastjet::contrib::RecursiveSymmetryCutBase;
28 : AsgTool(
name), m_bld(
"",this) {
46 if ( m_zcut < 0.0 || m_zcut > 10.0 ) {
48 return StatusCode::FAILURE;
55 return StatusCode::FAILURE;
59 return StatusCode::FAILURE;
61 if (
m_bld.empty() ) {
63 return StatusCode::FAILURE;
66 return StatusCode::SUCCESS;
79 if ( ppjin ==
nullptr ) {
90 RecursiveSymmetryCutBase::SymmetryMeasure sym =
static_cast<RecursiveSymmetryCutBase::SymmetryMeasure
>(
m_sym);
91 RecursiveSymmetryCutBase::RecursionChoice recursion =
static_cast<RecursiveSymmetryCutBase::RecursionChoice
>(
m_recursion);
94 fastjet::contrib::ModifiedMassDropTagger MMDT(
m_zcut,sym,
m_mu,recursion);
96 MMDT.set_grooming_mode();
97 PseudoJet pjMMDT = MMDT(*ppjin);
99 bool didMMDT = pjMMDT.has_structure_of<fastjet::contrib::ModifiedMassDropTagger>();
103 PseudoJet filtpjMMDT = pjMMDT;
106 Rfilt =
std::min(
m_filtR, pjMMDT.structure_of<fastjet::contrib::ModifiedMassDropTagger>().delta_R()*0.5);
108 filtpjMMDT =
filter(pjMMDT);
111 int npMMDT = filtpjMMDT.pieces().size();
113 if ( pjet ==
nullptr ) {
128 ATH_MSG_DEBUG(
" ncon: " << pjMMDT.constituents().size() <<
"/"
129 << ppjin->constituents().size());