ATLAS Offline Software
TrigJetEJsHypoTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 #ifndef TRIGJETEJSHYPOTOOL_H
6 #define TRIGJETEJSHYPOTOOL_H
7 /********************************************************************
8  *
9  * NAME: TrigJetEJsHypoTool.h
10  * PACKAGE: Trigger/TrigHypothesis/TrigHLTJetHypo
11  *
12  * * @class TrigJetEJsHypoTool
13  * * @brief HypoTool for
14  * * @details HypoTool needed to decide on exotic jet selections
15  * * @author Aaron Kilgallon
16  * * @author Antonio Boveia
17  * * @author Caterina Doglioni
18  * * @author Teng Jian Khoo
19  * * @author Tim Martin
20  * * @author Rafal Bielski
21  *
22  *
23  ********************************************************************/
24 
29 
31 
33 #include "xAODJet/JetContainer.h"
37 
38 
40 
41  public:
42 
43  TrigJetEJsHypoTool(const std::string& type,
44  const std::string& name,
45  const IInterface* parent);
46 
50 
51  // typedef for passing jet - decision object assocation
52  using JetDecision = std::pair<const xAOD::Jet*,TrigCompositeUtils::Decision*>;
53 
54  struct JetInfo {
56  const xAOD::Jet_v1* jet;
58  const xAOD::Vertex_v1 *PV;
60  };
61 
62  StatusCode decide( std::vector<JetInfo>& decisions ) const;
63 
64  const HLT::Identifier& getId() const;
65 
66  private:
67 
68  // Identifier is used to keep track of which tool made which decision.
69  // The information is stored in the event store.
71 
72  ToolHandle<ITrigJetHypoToolHelper> m_helper {
73  this, "helper_tool", {}, "Jet hypo helper AlgTool"};
74 
75  Gaudi::Property<bool>
76  m_visitDebug {this, "visit_debug", false, "debug flag"};
77 
78  Gaudi::Property<std::string> m_chainName {
79  this, "chain_name", {}, "chain name"};
80 
81  Gaudi::Property< double > m_ptf {this, "PTF", 1.0, ""};
82  Gaudi::Property< double > m_dr {this, "dR", 1.0, ""};
83  Gaudi::Property< int > m_trackless {this, "Trackless", 1.0, ""};
84 
85  // Track eta cuts for exotics and trackless hypos
86  double m_trackEtaCut_Exotics = 2.4;
87  double m_trackEtaCut_Trackless = 2.4;
88  // Track pT cuts for exotics hypos
91  // Jet pT cut for promptTrackFrac definition (studies only
92  // done down to a 50 GeV cut)
95  // Eta cut for exotics jet selections (may need to be reduced
96  // to 1.4 for large-R jets to have complete overlapy with
97  // the tracker)
98  double m_jetEtaCut_Exotics = 2.0;
99  double m_jetEtaCut_Trackless = 2.0;
100  // Track d0 cuts based on a multiple of background distribution
101  // 2.5 was found to be best signal sensitivity for R-Hadrons
102  double m_PTFSigmaCut = 2.5;
103  // Cut on number of tracks associated to jet in the soft-bomb
104  // trigger case (likely to be changed based on physics studies)
106  // |z0 - PV_z| cut on tracks
107  double m_PV_z = 10.0;
108 
109 };
110 #endif
TrigJetEJsHypoTool::m_jetPtCut_Trackless
double m_jetPtCut_Trackless
Definition: TrigJetEJsHypoTool.h:110
TrigJetEJsHypoTool::JetDecision
std::pair< const xAOD::Jet *, TrigCompositeUtils::Decision * > JetDecision
Definition: TrigJetEJsHypoTool.h:68
TrigJetEJsHypoTool::m_PTFSigmaCut
double m_PTFSigmaCut
Definition: TrigJetEJsHypoTool.h:118
TrigJetEJsHypoTool::m_matchedTracksCut_Trackless
int m_matchedTracksCut_Trackless
Definition: TrigJetEJsHypoTool.h:121
TrackParticlexAODHelpers.h
TrigCompositeUtils.h
TrigJetEJsHypoTool::m_jetEtaCut_Exotics
double m_jetEtaCut_Exotics
Definition: TrigJetEJsHypoTool.h:114
TrigJetEJsHypoTool::m_jetPtCut_Exotics
double m_jetPtCut_Exotics
Definition: TrigJetEJsHypoTool.h:109
TrigJetEJsHypoTool::JetInfo::previousDecisionsIDs
const TrigCompositeUtils::DecisionIDContainer previousDecisionsIDs
Definition: TrigJetEJsHypoTool.h:75
TrigJetEJsHypoTool::TrigJetEJsHypoTool
TrigJetEJsHypoTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: TrigJetEJsHypoTool.cxx:33
TrigJetEJsHypoTool::~TrigJetEJsHypoTool
~TrigJetEJsHypoTool()
Definition: TrigJetEJsHypoTool.cxx:42
TrigJetEJsHypoTool::m_dr
Gaudi::Property< double > m_dr
Definition: TrigJetEJsHypoTool.h:98
TrigJetEJsHypoTool::JetInfo::PV
const xAOD::Vertex_v1 * PV
Definition: TrigJetEJsHypoTool.h:74
GenericMonitoringTool.h
TrigJetEJsHypoTool::JetInfo::jet
const xAOD::Jet_v1 * jet
Definition: TrigJetEJsHypoTool.h:72
TrigJetEJsHypoTool::m_chainName
Gaudi::Property< std::string > m_chainName
Definition: TrigJetEJsHypoTool.h:94
TrigJetEJsHypoTool::decide
StatusCode decide(std::vector< JetInfo > &decisions) const
Definition: TrigJetEJsHypoTool.cxx:66
TrigJetEJsHypoTool::m_helper
ToolHandle< ITrigJetHypoToolHelper > m_helper
Definition: TrigJetEJsHypoTool.h:88
TrigJetEJsHypoTool::m_trackPtCut_Trackless
double m_trackPtCut_Trackless
Definition: TrigJetEJsHypoTool.h:106
TrigJetEJsHypoTool::m_trackless
Gaudi::Property< int > m_trackless
Definition: TrigJetEJsHypoTool.h:99
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
TrigJetEJsHypoTool::m_visitDebug
Gaudi::Property< bool > m_visitDebug
Definition: TrigJetEJsHypoTool.h:92
AthAlgTool.h
TrigJetEJsHypoTool::finalize
StatusCode finalize()
Definition: TrigJetEJsHypoTool.cxx:61
TrigJetEJsHypoTool::initialize
StatusCode initialize()
Definition: TrigJetEJsHypoTool.cxx:45
test_pyathena.parent
parent
Definition: test_pyathena.py:15
TrigJetEJsHypoTool::JetInfo::decision
TrigCompositeUtils::Decision * decision
Definition: TrigJetEJsHypoTool.h:71
xAOD::TrigComposite_v1
Class used to describe composite objects in the HLT.
Definition: TrigComposite_v1.h:52
DataVector< xAOD::TrackParticle_v1 >
HLT::Identifier
Definition: TrigCompositeUtils/TrigCompositeUtils/HLTIdentifier.h:20
xAOD::decisions
decisions
Definition: TrigComposite_v1.cxx:81
ITrigJetHypoToolHelper.h
TrigJetEJsHypoTool::m_trackPtCut_Exotics
double m_trackPtCut_Exotics
Definition: TrigJetEJsHypoTool.h:105
TrigJetEJsHypoTool::m_decisionId
HLT::Identifier m_decisionId
Definition: TrigJetEJsHypoTool.h:86
TrigJetEJsHypoTool::m_trackEtaCut_Trackless
double m_trackEtaCut_Trackless
Definition: TrigJetEJsHypoTool.h:103
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
TrigJetEJsHypoTool::m_ptf
Gaudi::Property< double > m_ptf
Definition: TrigJetEJsHypoTool.h:97
TrigJetEJsHypoTool::m_PV_z
double m_PV_z
Definition: TrigJetEJsHypoTool.h:123
EventInfo.h
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
VertexContainer.h
TrigCompositeUtils::DecisionIDContainer
std::set< DecisionID > DecisionIDContainer
Definition: TrigComposite_v1.h:28
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
TrigJetEJsHypoTool::JetInfo::AllTracks
const xAOD::TrackParticleContainer * AllTracks
Definition: TrigJetEJsHypoTool.h:73
JetContainer.h
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
HLTIdentifier.h
TrigJetEJsHypoTool::JetInfo
Definition: TrigJetEJsHypoTool.h:70
TrigJetEJsHypoTool
Definition: TrigJetEJsHypoTool.h:39
TrigJetEJsHypoTool::getId
const HLT::Identifier & getId() const
TrigJetEJsHypoTool::m_trackEtaCut_Exotics
double m_trackEtaCut_Exotics
Definition: TrigJetEJsHypoTool.h:102
AthAlgTool
Definition: AthAlgTool.h:26
GeV
#define GeV
Definition: CaloTransverseBalanceVecMon.cxx:30
TrackParticleContainer.h
TrigJetEJsHypoTool::m_jetEtaCut_Trackless
double m_jetEtaCut_Trackless
Definition: TrigJetEJsHypoTool.h:115