ATLAS Offline Software
Loading...
Searching...
No Matches
DiTauExtraVarDecorator.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#pragma once
6
7// EDM include(s):
9
10// Local include(s):
11#include "DiTauToolBase.h"
12#include "GaudiKernel/ToolHandle.h"
15
16
18{
19public:
20 DiTauExtraVarDecorator( const std::string& type, const std::string& name, const IInterface * parent);
22 virtual StatusCode initialize() override;
23 virtual StatusCode execute(DiTauCandidateData * data, const EventContext& ctx) const override;
24 virtual StatusCode executeObj(xAOD::DiTauJet& xDiTau, const EventContext& ctx) const override;
25
26private:
28 TLorentzVector subjet_p4;
29 std::vector<const xAOD::TrackParticle*> vTracks;
30 std::vector<const xAOD::TrackParticle*> vIsoTracks;
31 std::vector<const xAOD::TrackParticle*> vCoreTracks;
33 };
35 std::vector<const xAOD::TrackParticle*> vTracks;
36 std::vector<const xAOD::TrackParticle*> vIsoTracks;
37 int nSubjets = 0;
38 std::vector<SubjetTrackingInfo> vSubjetInfo;
39 };
40private:
41 int n_subjets (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo) const;
42 float ditau_pt (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo) const;
43 float f_core (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo, int iSubjet) const;
44 float f_subjet (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo, int iSubjet) const;
45 float f_subjets (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo) const;
46 float f_track (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo, int iSubjet) const;
47 float R_max (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo, int iSubjet) const;
48 int n_track (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo) const;
49 int n_tracks (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo, int iSubjet) const;
50 int n_isotrack (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo) const;
51 float R_track (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo) const;
52 float R_track_all (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo) const;
53 float R_track_core (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo) const;
54 float R_isotrack (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo) const;
55 float R_core (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo, int iSubjet) const;
56 float R_tracks (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo, int iSubjet) const;
57 float mass_track (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo) const;
58 float mass_track_core (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo) const;
59 float mass_core (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo, int iSubjet) const;
60 float mass_track_all (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo) const;
61 float mass_tracks (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo, int iSubjet) const;
62 float E_frac (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo, int iSubjet) const;
63 float R_subjets (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo, int iSubjet) const;
64 float d0_leadtrack (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo, int iSubjet) const;
65 float f_isotracks (const xAOD::DiTauJet& xDiTau, const DitauTrackingInfo& ditauInfo) const;
66
67 Gaudi::Property<float> m_dDefault{this, "DefaultValue", -1234};
68
69 StatusCode getTrackingInfo(xAOD::DiTauJet& xDiTau, DitauTrackingInfo& trackingInfo) const;
70
71 // Decorators
72 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_ditau_ptDecKey { this, "ditauPtDecName", "DiTauJets.ditau_pt", "Name of the ditauPt Decorator"};
73 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_f_core_leadDecKey { this, "fCoreLeadDecName", "DiTauJets.f_core_lead", "Name of the fCoreLead Decorator"};
74 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_f_core_sublDecKey { this, "fCoreSublDecName", "DiTauJets.f_core_subl", "Name of the fCoreSubl Decorator"};
75 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_f_subjet_leadDecKey { this, "fSubjetLeadDecName", "DiTauJets.f_subjet_lead", "Name of the fSubjetLead Decorator"};
76 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_f_subjet_sublDecKey { this, "fSubjetSublDecName", "DiTauJets.f_subjet_subl", "Name of the fSubjetSubl Decorator"};
77 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_f_subjetsDecKey { this, "fSubjetsDecName", "DiTauJets.f_subjets", "Name of the fSubjets Decorator"};
78 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_f_track_leadDecKey { this, "fTrackLeadDecName", "DiTauJets.f_track_lead", "Name of the fTrackLead Decorator"};
79 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_f_track_sublDecKey { this, "fTrackSublDecName", "DiTauJets.f_track_subl", "Name of the fTrackSubl Decorator"};
80 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_R_max_leadDecKey { this, "RMaxLeadDecName", "DiTauJets.R_max_lead", "Name of the RMaxLead Decorator"};
81 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_R_max_sublDecKey { this, "RMaxSublDecName", "DiTauJets.R_max_subl", "Name of the RMaxSubl Decorator"};
82 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_n_trackDecKey { this, "nTrackDecName", "DiTauJets.n_track", "Name of the nTrack Decorator"};
83 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_n_tracks_leadDecKey { this, "nTracksLeadDecName", "DiTauJets.n_tracks_lead", "Name of the nTracksLead Decorator"};
84 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_n_tracks_sublDecKey { this, "nTracksSublDecName", "DiTauJets.n_tracks_subl", "Name of the nTracksSubl Decorator"};
85 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_n_isotrackDecKey { this, "nIsotrackDecName", "DiTauJets.n_isotrack", "Name of the nIsotrack Decorator"};
86 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_R_trackDecKey { this, "RTrackDecName", "DiTauJets.R_track", "Name of the RTrack Decorator"};
87 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_R_track_coreDecKey { this, "RTrackCoreDecName", "DiTauJets.R_track_core", "Name of the RTrackCore Decorator"};
88 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_R_track_allDecKey { this, "RTrackAllDecName", "DiTauJets.R_track_all", "Name of the RTrackAll Decorator"};
89 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_R_isotrackDecKey { this, "RIsotrackDecName", "DiTauJets.R_isotrack", "Name of the RIsotrack Decorator"};
90 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_R_core_leadDecKey { this, "RCoreLeadDecName", "DiTauJets.R_core_lead", "Name of the RCoreLead Decorator"};
91 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_R_core_sublDecKey { this, "RCoreSublDecName", "DiTauJets.R_core_subl", "Name of the RCoreSubl Decorator"};
92 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_R_tracks_leadDecKey { this, "RTracksLeadDecName", "DiTauJets.R_tracks_lead", "Name of the RTracksLead Decorator"};
93 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_R_tracks_sublDecKey { this, "RTracksSublDecName", "DiTauJets.R_tracks_subl", "Name of the RTracksSubl Decorator"};
94 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_M_trackDecKey { this, "MTrackDecName", "DiTauJets.m_track", "Name of the MTrack Decorator"};
95 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_M_track_coreDecKey { this, "MTrackCoreDecName", "DiTauJets.m_track_core", "Name of the MTrackCore Decorator"};
96 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_M_core_leadDecKey { this, "MCoreLeadDecName", "DiTauJets.m_core_lead", "Name of the MCoreLead Decorator"};
97 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_M_core_sublDecKey { this, "MCoreSublDecName", "DiTauJets.m_core_subl", "Name of the MCoreSubl Decorator"};
98 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_M_track_allDecKey { this, "MTrackAllDecName", "DiTauJets.m_track_all", "Name of the MTrackAll Decorator"};
99 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_M_tracks_leadDecKey { this, "MTracksLeadDecName", "DiTauJets.m_tracks_lead", "Name of the MTracksLead Decorator"};
100 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_M_tracks_sublDecKey { this, "MTracksSublDecName", "DiTauJets.m_tracks_subl", "Name of the MTracksSubl Decorator"};
101 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_E_frac_sublDecKey { this, "EFracSublDecName", "DiTauJets.E_frac_subl", "Name of the EFracSubl Decorator"};
102 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_E_frac_subsublDecKey { this, "EFracSubsublDecName", "DiTauJets.E_frac_subsubl", "Name of the EFracSubsubl Decorator"};
103 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_R_subjets_sublDecKey { this, "RSubjetsSublDecName", "DiTauJets.R_subjets_subl", "Name of the RSubjetsSubl Decorator"};
104 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_R_subjets_subsublDecKey { this, "RSubjetsSubsublDecName", "DiTauJets.R_subjets_subsubl", "Name of the RSubjetsSubsubl Decorator"};
105 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_d0_leadtrack_leadDecKey { this, "d0LeadtrackLeadDecName", "DiTauJets.d0_leadtrack_lead", "Name of the d0LeadtrackLead Decorator"};
106 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_d0_leadtrack_sublDecKey { this, "d0LeadtrackSublDecName", "DiTauJets.d0_leadtrack_subl", "Name of the d0LeadtrackSubl Decorator"};
107 SG::WriteDecorHandleKey<xAOD::DiTauJetContainer> m_f_isotracksDecKey { this, "fIsotracksDecName", "DiTauJets.f_isotracks", "Name of the fIsotracks Decorator"};
108}; // class DiTauExtraVarDecorator
Handle class for adding a decoration to an object.
char data[hepevt_bytes_allocation_ATLAS]
Definition HepEvt.cxx:11
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_f_core_sublDecKey
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_n_isotrackDecKey
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_f_core_leadDecKey
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_n_tracks_sublDecKey
float f_subjet(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo, int iSubjet) const
float ditau_pt(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo) const
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_M_track_allDecKey
int n_track(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo) const
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_E_frac_subsublDecKey
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_ditau_ptDecKey
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_d0_leadtrack_leadDecKey
float f_isotracks(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo) const
StatusCode getTrackingInfo(xAOD::DiTauJet &xDiTau, DitauTrackingInfo &trackingInfo) const
float f_track(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo, int iSubjet) const
virtual StatusCode executeObj(xAOD::DiTauJet &xDiTau, const EventContext &ctx) const override
Execute - called for each Ditau jet.
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_R_tracks_leadDecKey
Gaudi::Property< float > m_dDefault
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_R_isotrackDecKey
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_R_track_allDecKey
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_f_track_sublDecKey
float R_track_all(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo) const
float R_tracks(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo, int iSubjet) const
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_M_track_coreDecKey
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_R_core_sublDecKey
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_M_tracks_sublDecKey
DiTauExtraVarDecorator(const std::string &type, const std::string &name, const IInterface *parent)
float R_track(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo) const
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_M_trackDecKey
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_M_core_sublDecKey
float mass_tracks(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo, int iSubjet) const
float mass_track(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo) const
virtual ~DiTauExtraVarDecorator()
float R_isotrack(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo) const
float mass_core(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo, int iSubjet) const
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_R_max_sublDecKey
float R_max(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo, int iSubjet) const
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_R_track_coreDecKey
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_E_frac_sublDecKey
float f_subjets(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo) const
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_n_trackDecKey
virtual StatusCode execute(DiTauCandidateData *data, const EventContext &ctx) const override
Execute - called for each Ditau candidate.
float f_core(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo, int iSubjet) const
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_f_subjet_sublDecKey
virtual StatusCode initialize() override
Tool initializer.
float R_core(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo, int iSubjet) const
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_R_subjets_sublDecKey
float R_subjets(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo, int iSubjet) const
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_R_core_leadDecKey
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_R_max_leadDecKey
float R_track_core(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo) const
float E_frac(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo, int iSubjet) const
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_f_subjet_leadDecKey
float mass_track_all(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo) const
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_f_subjetsDecKey
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_M_tracks_leadDecKey
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_d0_leadtrack_sublDecKey
float d0_leadtrack(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo, int iSubjet) const
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_R_tracks_sublDecKey
int n_subjets(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo) const
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_f_isotracksDecKey
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_R_trackDecKey
float mass_track_core(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo) const
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_R_subjets_subsublDecKey
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_f_track_leadDecKey
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_n_tracks_leadDecKey
int n_isotrack(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo) const
int n_tracks(const xAOD::DiTauJet &xDiTau, const DitauTrackingInfo &ditauInfo, int iSubjet) const
SG::WriteDecorHandleKey< xAOD::DiTauJetContainer > m_M_core_leadDecKey
DiTauToolBase(const std::string &type, const std::string &name, const IInterface *parent)
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
DiTauJet_v1 DiTauJet
Definition of the current version.
Definition DiTauJet.h:17
std::vector< const xAOD::TrackParticle * > vTracks
std::vector< const xAOD::TrackParticle * > vIsoTracks
std::vector< SubjetTrackingInfo > vSubjetInfo
std::vector< const xAOD::TrackParticle * > vIsoTracks
std::vector< const xAOD::TrackParticle * > vCoreTracks
std::vector< const xAOD::TrackParticle * > vTracks