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"
21using fastjet::PseudoJet;
22using fastjet::contrib::RecursiveSymmetryCutBase;
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);
107 fastjet::Filter filter(Rfilt, fastjet::SelectorNHardest(
m_filtNSub));
108 filtpjMMDT = filter(pjMMDT);
111 int npMMDT = filtpjMMDT.pieces().size();
112 xAOD::Jet* pjet =
m_bld->add(filtpjMMDT, pjContainer, jets, &jin);
113 if ( pjet ==
nullptr ) {
128 ATH_MSG_DEBUG(
" ncon: " << pjMMDT.constituents().size() <<
"/"
129 << ppjin->constituents().size());
#define ATH_MSG_WARNING(x)
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
virtual const IJetPseudojetRetriever * pseudojetRetriever() const
Return the pseudojet retriever associated with this tool.
virtual const fastjet::PseudoJet * pseudojet(const xAOD::Jet &jet) const =0
Retrieve the pseudojet associate with a jet.
virtual void print() const override
Print the state of the tool.
JetModifiedMassDrop(const std::string &name)
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
@ larger_pt
choose the subjet with larger
@ larger_mt
choose the subjet with larger
@ larger_m
choose the subjet with larger mass (deprecated)
virtual int groom(const xAOD::Jet &jin, const PseudoJetContainer &, xAOD::JetContainer &jout) const override
Transform jet.
ToolHandle< IJetFromPseudojet > m_bld
void setAttribute(const std::string &name, const T &v)
Jet_v1 Jet
Definition of the current "jet version".
JetContainer_v1 JetContainer
Definition of the current "jet container version".