11 #include "CaloEvent/CaloClusterContainer.h"
15 #include "fastjet/PseudoJet.hh"
18 const std::string&
name,
19 const IInterface *
parent) :
21 m_ClusterContainerName(
"CaloCalTopoClusters"),
22 m_CellContainerName(
"AllCalo"),
25 declareInterface<DiTauToolBase > (
this);
37 return StatusCode::SUCCESS;
42 const EventContext& )
const {
51 return StatusCode::FAILURE;
57 return StatusCode::FAILURE;
60 std::vector<fastjet::PseudoJet> vSubjets =
data->subjets;
61 if (vSubjets.empty()) {
62 ATH_MSG_WARNING(
"No subjets given. Continue without cell information.");
63 return StatusCode::SUCCESS;
68 std::bitset<200000> cellSeen;
69 std::vector<const CaloCell*> subjetCells;
79 if (
cc->pt() < 0)
continue;
80 if (cellSeen.test(
cc->caloDDE()->calo_hash()))
continue;
82 cellSeen.set(
cc->caloDDE()->calo_hash());
84 TLorentzVector temp_cc_p4;
85 temp_cc_p4.SetPtEtaPhiM(
cc->pt(),
cc->eta(),
cc->phi(),
cc->m());
88 for (
const auto&
subjet : vSubjets) {
89 TLorentzVector temp_sub_p4;
91 if (temp_cc_p4.DeltaR(temp_sub_p4) <
m_Rsubjet) {
92 subjetCells.push_back(
cc);
99 data->subjetCells = subjetCells;
101 return StatusCode::SUCCESS;