8#include "fastjet/ClusterSequenceArea.hh"
9#include "fastjet/AreaDefinition.hh"
12 const std::string& name,
13 const IInterface * parent) :
16 declareInterface<DiTauToolBase > (
this);
25 return StatusCode::SUCCESS;
30 const EventContext& )
const {
37 if (pDiTau ==
nullptr) {
39 return StatusCode::FAILURE;
45 return StatusCode::FAILURE;
54 ATH_MSG_WARNING(
"cluster constituents could not be retrieved from seed jet");
55 return StatusCode::FAILURE;
58 std::vector<PseudoJet> vpjClusters;
60 for (
const auto *cl: vConst) {
62 TLorentzVector temp_p4;
63 temp_p4.SetPtEtaPhiM(cl->pt(), cl->eta(), cl->phi(), cl->m());
64 PseudoJet c( temp_p4.Px(), temp_p4.Py(), temp_p4.Pz(), temp_p4.E());
66 vpjClusters.push_back(c);
72 JetDefinition jd = JetDefinition(antikt_algorithm,
m_Rsubjet);
73 AreaDefinition area_def(active_area_explicit_ghosts,GhostedAreaSpec(SelectorAbsRapMax(4.0)));
74 ClusterSequenceArea cs(vpjClusters, jd, area_def);
77 std::vector<PseudoJet> vSubjets = sorted_by_pt( cs.inclusive_jets(
m_ptmin) );
78 if (vSubjets.size()<=1) {
79 ATH_MSG_DEBUG(
"Found less than 2 subjets. Reject ditau candidate");
80 return StatusCode::FAILURE;
84 for (
const auto& subjet: vSubjets) {
85 ATH_MSG_DEBUG(
"pt: " << subjet.pt() <<
" eta: " << subjet.eta() <<
" phi: " << subjet.phi());
88 data->subjets = vSubjets;
92 return StatusCode::SUCCESS;
#define ATH_MSG_WARNING(x)
char data[hepevt_bytes_allocation_ATLAS]
virtual StatusCode execute(DiTauCandidateData *data, const EventContext &ctx) const override
Execute - called for each Ditau candidate.
Gaudi::Property< float > m_ptmin
SubjetBuilder(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
virtual ~SubjetBuilder()
Destructor.
virtual StatusCode initialize() override
Tool initializer.
Gaudi::Property< float > m_Rsubjet
A vector of jet constituents at the scale used during jet finding.
bool empty() const
true if vector is empty()
JetConstituentVector getConstituents() const
Return a vector of consituents. The object behaves like vector<const IParticle*>. See JetConstituentV...
Jet_v1 Jet
Definition of the current "jet version".
DiTauJet_v1 DiTauJet
Definition of the current version.