ATLAS Offline Software
TrigTauPrecisionIDHypoTool.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 #ifndef TrigTauHypo_TrigTauPrecisionIDHypoTool_H
6 #define TrigTauHypo_TrigTauPrecisionIDHypoTool_H
7 
11 
12 #include "Gaudi/Parsers/Factory.h"
13 
14 #include "ITrigTauJetHypoTool.h"
15 
16 
21 class TrigTauPrecisionIDHypoTool : public extends<AthAlgTool, ITrigTauJetHypoTool> {
22 public:
23  TrigTauPrecisionIDHypoTool(const std::string& type, const std::string& name, const IInterface* parent);
24 
25  virtual StatusCode initialize() override;
26 
27  virtual StatusCode decide(std::vector<ITrigTauJetHypoTool::ToolInfo>& input) const override;
28  virtual bool decide(const ITrigTauJetHypoTool::ToolInfo& i) const override;
29 
30 private:
31  enum IDMethod {
32  Disabled = 0,
33  RNN = 1,
34  Decorator = 2
35  };
36 
37  enum IDWP {
38  None = -1,
39  VeryLoose = 0,
40  Loose = 1,
41  Medium = 2,
42  Tight = 3
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<int> m_idWP {this, "IDWP", IDWP::None, "Minimum ID Working Point (-1: None, 0: VeryLoose, 1: Loose, 2: Medium, 3: Tight)"};
56  Gaudi::Property<std::vector<std::string>> m_idWPNames {this, "IDWPNames", {}, "ID WP decorated variable names; use with IDMethod=2"};
57 
58  // High pT Tau selection
59  Gaudi::Property<float> m_highPtTrkThr {this, "HighPtSelectionTrkThr", 200000, "Tau pT threshold for disabling the NTrackMin and NIsoTrackMax cuts" };
60  Gaudi::Property<float> m_highPtLooseIDThr {this, "HighPtSelectionLooseIDThr", 280000, "Tau pT threshold for loosening the IDWP cut to Loose (IDWP=1)"};
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 
70 #endif
TrigTauPrecisionIDHypoTool::VeryLoose
@ VeryLoose
Definition: TrigTauPrecisionIDHypoTool.h:39
TrigTauPrecisionIDHypoTool::m_acceptAll
Gaudi::Property< bool > m_acceptAll
Definition: TrigTauPrecisionIDHypoTool.h:63
TrigTauPrecisionIDHypoTool::Loose
@ Loose
Definition: TrigTauPrecisionIDHypoTool.h:40
TrigTauPrecisionIDHypoTool
Precision step hypothesis tool for applying ID cuts (standard chains)
Definition: TrigTauPrecisionIDHypoTool.h:21
TrigTauPrecisionIDHypoTool::initialize
virtual StatusCode initialize() override
Definition: TrigTauPrecisionIDHypoTool.cxx:23
TrigTauPrecisionIDHypoTool::m_numTrackMax
Gaudi::Property< int > m_numTrackMax
Definition: TrigTauPrecisionIDHypoTool.h:50
TrigTauPrecisionIDHypoTool::m_monitoredIdScores
Gaudi::Property< std::map< std::string, std::pair< std::string, std::string > > > m_monitoredIdScores
Definition: TrigTauPrecisionIDHypoTool.h:66
SG::ConstAccessor< float >
TrigTauPrecisionIDHypoTool::m_monitoredIdAccessors
std::map< std::string, std::pair< SG::ConstAccessor< float >, SG::ConstAccessor< float > > > m_monitoredIdAccessors
Definition: TrigTauPrecisionIDHypoTool.h:67
TrigTauPrecisionIDHypoTool::Tight
@ Tight
Definition: TrigTauPrecisionIDHypoTool.h:42
TrigTauPrecisionIDHypoTool::m_highPtJetThr
Gaudi::Property< float > m_highPtJetThr
Definition: TrigTauPrecisionIDHypoTool.h:61
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
TrigTauPrecisionIDHypoTool::m_decisionId
HLT::Identifier m_decisionId
Definition: TrigTauPrecisionIDHypoTool.h:45
TrigTauPrecisionIDHypoTool::TrigTauPrecisionIDHypoTool
TrigTauPrecisionIDHypoTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: TrigTauPrecisionIDHypoTool.cxx:15
GenericMonitoringTool.h
TrigTauPrecisionIDHypoTool::m_numIsoTrackMax
Gaudi::Property< int > m_numIsoTrackMax
Definition: TrigTauPrecisionIDHypoTool.h:51
CaloCellPos2Ntuple.None
None
Definition: CaloCellPos2Ntuple.py:23
TrigTauPrecisionIDHypoTool::m_highPtTrkThr
Gaudi::Property< float > m_highPtTrkThr
Definition: TrigTauPrecisionIDHypoTool.h:59
TrigTauPrecisionIDHypoTool::decide
virtual StatusCode decide(std::vector< ITrigTauJetHypoTool::ToolInfo > &input) const override
Definition: TrigTauPrecisionIDHypoTool.cxx:264
lumiFormat.i
int i
Definition: lumiFormat.py:85
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
TrigTauPrecisionIDHypoTool::RNN
@ RNN
Definition: TrigTauPrecisionIDHypoTool.h:33
TrigTauPrecisionIDHypoTool::IDMethod
IDMethod
Definition: TrigTauPrecisionIDHypoTool.h:31
HLT::Identifier
Definition: TrigCompositeUtils/TrigCompositeUtils/HLTIdentifier.h:19
TrigTauPrecisionIDHypoTool::IDWP
IDWP
Definition: TrigTauPrecisionIDHypoTool.h:37
ITrigTauJetHypoTool::ToolInfo
Definition: ITrigTauJetHypoTool.h:23
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
ITrigTauJetHypoTool.h
TrigTauPrecisionIDHypoTool::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
Definition: TrigTauPrecisionIDHypoTool.h:65
TrigTauPrecisionIDHypoTool::m_highPtLooseIDThr
Gaudi::Property< float > m_highPtLooseIDThr
Definition: TrigTauPrecisionIDHypoTool.h:60
TrigTauPrecisionIDHypoTool::Decorator
@ Decorator
Definition: TrigTauPrecisionIDHypoTool.h:34
TrigTauPrecisionIDHypoTool::None
@ None
Definition: TrigTauPrecisionIDHypoTool.h:38
TrigTauPrecisionIDHypoTool::m_idMethod
Gaudi::Property< int > m_idMethod
Definition: TrigTauPrecisionIDHypoTool.h:54
TrigTauPrecisionIDHypoTool::Medium
@ Medium
Definition: TrigTauPrecisionIDHypoTool.h:41
HLTIdentifier.h
TrigTauPrecisionIDHypoTool::m_ptMin
Gaudi::Property< float > m_ptMin
Definition: TrigTauPrecisionIDHypoTool.h:47
TrigTauPrecisionIDHypoTool::Disabled
@ Disabled
Definition: TrigTauPrecisionIDHypoTool.h:32
TrigTauPrecisionIDHypoTool::m_trackPtCut
Gaudi::Property< float > m_trackPtCut
Definition: TrigTauPrecisionIDHypoTool.h:52
TrigTauPrecisionIDHypoTool::m_idWP
Gaudi::Property< int > m_idWP
Definition: TrigTauPrecisionIDHypoTool.h:55
TrigTauPrecisionIDHypoTool::m_idWPNames
Gaudi::Property< std::vector< std::string > > m_idWPNames
Definition: TrigTauPrecisionIDHypoTool.h:56
TrigTauPrecisionIDHypoTool::m_numTrackMin
Gaudi::Property< int > m_numTrackMin
Definition: TrigTauPrecisionIDHypoTool.h:49