8 #include "fastjet/ClusterSequenceArea.hh"
9 #include "fastjet/AreaDefinition.hh"
12 const std::string&
name,
13 const IInterface *
parent) :
18 declareInterface<DiTauToolBase > (
this);
29 return StatusCode::SUCCESS;
34 const EventContext& )
const {
41 if (pDiTau ==
nullptr) {
43 return StatusCode::FAILURE;
49 return StatusCode::FAILURE;
58 ATH_MSG_WARNING(
"cluster constituents could not be retrieved from seed jet");
59 return StatusCode::FAILURE;
62 std::vector<PseudoJet> vpjClusters;
64 for (
const auto *
cl: vConst) {
66 TLorentzVector temp_p4;
67 temp_p4.SetPtEtaPhiM(
cl->pt(),
cl->eta(),
cl->phi(),
cl->m());
68 PseudoJet
c( temp_p4.Px(), temp_p4.Py(), temp_p4.Pz(), temp_p4.E());
70 vpjClusters.push_back(
c);
77 AreaDefinition area_def(active_area_explicit_ghosts,GhostedAreaSpec(SelectorAbsRapMax(4.0)));
78 ClusterSequenceArea cs(vpjClusters, jd, area_def);
81 std::vector<PseudoJet> vSubjets = sorted_by_pt( cs.inclusive_jets(
m_ptmin) );
82 if (vSubjets.size()<=1) {
83 ATH_MSG_DEBUG(
"Found less than 2 subjets. Reject ditau candidate");
84 return StatusCode::FAILURE;
88 for (
const auto&
subjet: vSubjets) {
92 data->subjets = vSubjets;
95 return StatusCode::SUCCESS;