ATLAS Offline Software
Loading...
Searching...
No Matches
TrigTauPrecisionIDHypoTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TrigTauHypo_TrigTauPrecisionIDHypoTool_H
6#define TrigTauHypo_TrigTauPrecisionIDHypoTool_H
7
11
12#include "xAODTau/TauJet.h"
13
14#include "Gaudi/Parsers/Factory.h"
15
16#include "ITrigTauJetHypoTool.h"
17
18
23class TrigTauPrecisionIDHypoTool : public extends<AthAlgTool, ITrigTauJetHypoTool> {
24public:
25 TrigTauPrecisionIDHypoTool(const std::string& type, const std::string& name, const IInterface* parent);
26
27 virtual StatusCode initialize() override;
28
29 virtual StatusCode decide(std::vector<ITrigTauJetHypoTool::ToolInfo>& input) const override;
30 virtual bool decide(const ITrigTauJetHypoTool::ToolInfo& i) const override;
31
32private:
33 enum IDMethod {
35 RNN = 1,
37 };
38
39 enum IDWP {
40 None = 0,
43 };
44
46
47 Gaudi::Property<float> m_ptMin {this, "PtMin", 0, "Tau pT minimum cut"};
48
49 Gaudi::Property<int> m_numTrackMin {this, "NTracksMin", 0, "Minimum number of tracks"};
50 Gaudi::Property<int> m_numTrackMax {this, "NTracksMax", 5, "Maximum number of tracks"};
51 Gaudi::Property<int> m_numIsoTrackMax {this, "NIsoTracksMax", 999, "Maximum number of isolation tracks"};
52 Gaudi::Property<float> m_trackPtCut {this, "TrackPtCut", -1, "Only count tracks above this pT threshold (override the 1 GeV cut in the InDetTrackSelectorTool)"};
53
54 Gaudi::Property<int> m_idMethod {this, "IDMethod", IDMethod::Disabled, "ID WP evaluation method (0: Disabled, 1: RNN, 2: Decorator)"};
55 Gaudi::Property<std::string> m_idWP {this, "IDWP", "", "Minimum ID Working Point decorated flag (e.g. 'GNTau_Medium', or 'medium' for built-in RNN WPs)"};
56
57 // High pT Tau selection
58 Gaudi::Property<float> m_highPtTrkThr {this, "HighPtSelectionTrkThr", 200000, "Tau pT threshold for disabling the NTrackMin and NIsoTrackMax cuts" };
59 Gaudi::Property<float> m_highPtIdThr {this, "HighPtSelectionIDThr", 280000, "Tau pT threshold for switching to the high-pT ID WP cut"};
60 Gaudi::Property<std::string> m_highPtIdWP {this, "HighPtIDWP", "", "High pT ID Working Point (e.g. 'GNTau_Loose', or 'loose' for built-in RNN WPs)"};
61 Gaudi::Property<float> m_highPtJetThr {this, "HighPtSelectionJetThr", 440000, "Tau pT threshold for disabling IDWP and NTrackMax cuts"};
62
63 Gaudi::Property<bool> m_acceptAll {this, "AcceptAll", false, "Ignore selection"};
64
65 ToolHandle<GenericMonitoringTool> m_monTool {this, "MonTool", "", "Monitoring tool"};
66 Gaudi::Property<std::map<std::string, std::pair<std::string, std::string>>> m_monitoredIdScores {this, "MonitoredIDScores", {}, "Pairs of the TauID score and signal-transformed scores for each TauID algorithm to be monitored"};
67 std::map<std::string, std::pair<SG::ConstAccessor<float>, SG::ConstAccessor<float>>> m_monitoredIdAccessors;
68
69 // WP accessors
72
73 // Built-in RNN WPs
74 unsigned int m_rnn_id_wp = 0;
75 unsigned int m_rnn_highpt_id_wp = 0;
76};
77
78#endif
Helper class to provide constant type-safe access to aux data.
virtual StatusCode decide(std::vector< ITrigTauJetHypoTool::ToolInfo > &input) const override
Gaudi::Property< std::string > m_highPtIdWP
TrigTauPrecisionIDHypoTool(const std::string &type, const std::string &name, const IInterface *parent)
Gaudi::Property< std::map< std::string, std::pair< std::string, std::string > > > m_monitoredIdScores
Gaudi::Property< int > m_numIsoTrackMax
Gaudi::Property< std::string > m_idWP
Gaudi::Property< float > m_trackPtCut
std::map< std::string, std::pair< SG::ConstAccessor< float >, SG::ConstAccessor< float > > > m_monitoredIdAccessors
Gaudi::Property< float > m_highPtJetThr
Gaudi::Property< float > m_highPtIdThr
ToolHandle< GenericMonitoringTool > m_monTool
Gaudi::Property< float > m_highPtTrkThr
SG::ConstAccessor< char > m_highpt_id_wp_acc
SG::ConstAccessor< char > m_id_wp_acc
virtual StatusCode initialize() override