9 const std::string&
name,
10 const IInterface *
parent) :
14 declareInterface<DiTauToolBase > (
this);
24 return StatusCode::SUCCESS;
29 const EventContext& )
const {
38 return StatusCode::FAILURE;
44 return StatusCode::FAILURE;
47 std::vector<fastjet::PseudoJet> vSubjets =
data->subjets;
48 if (vSubjets.empty()) {
49 ATH_MSG_WARNING(
"No subjets given. Continue without cluster information.");
50 return StatusCode::SUCCESS;
53 std::vector<const xAOD::CaloCluster*> subjetClusters;
59 if(cluster == NULL)
continue;
61 for (
const auto&
subjet : vSubjets) {
62 TLorentzVector temp_sub_p4;
64 if (cluster->p4().DeltaR(temp_sub_p4) <
m_Rsubjet) {
65 subjetClusters.push_back(cluster);
70 ATH_MSG_DEBUG(
"subjetCluster.size()=" << subjetClusters.size());
72 std::vector<float> vec_f_core(vSubjets.size(), 0);
73 for (
unsigned int i = 0;
i < vSubjets.size();
i++) {
74 const fastjet::PseudoJet&
subjet = vSubjets.at(
i);
79 TLorentzVector temp_sub_p4;
82 for (
const auto&
cc : subjetClusters) {
84 if (
cc->p4().DeltaR(temp_sub_p4) <
data->Rsubjet) {
88 if (
cc->p4().DeltaR(temp_sub_p4) <
data->Rcore) {
94 f_core = ptCore/ptAll;
99 vec_f_core.at(
i) = f_core;
103 mDecor(*pDiTau) = std::move(vec_f_core);
105 return StatusCode::SUCCESS;