ATLAS Offline Software
TrkMHTFex.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 /******************************************************************************
6  * @package Trigger/TrigAlgorithms/TrigEFMissingET
7  * @class TrkMHTFex
8  *
9  * @brief Fex class for trkmht algorithm
10  * @author Jon Burr, Ren-Jie Wang
11  *****************************************************************************/
12 
13 #ifndef TRIGEFMISSINGET_TRKMHTFEX_H
14 #define TRIGEFMISSINGET_TRKMHTFEX_H 1
15 
16 #include "FexBase.h"
17 #include "xAODJet/JetContainer.h"
23 #include <utility>
24 
25 namespace HLT { namespace MET {
26  /****************************************************************************
27  * @class TrkMHTFex
28  *
29  * Class to create output from the trkmht algorithm.
30  *
31  * trkmht calculates the MET using jets with JVT suppression applied. There is
32  * an additional track soft term which adds in any tracks associated to the
33  * hard scatter vertex which are not associated to jets passing the JVT
34  * selection.
35  ***************************************************************************/
36  class TrkMHTFex : public FexBase
37  {
38  // Alias optional to make it clear how we're using it
39  template <typename T>
40  using deferred_t = std::optional<T>;
41  public:
43  TrkMHTFex(const std::string& name, ISvcLocator* pSvcLocator);
44 
46  virtual StatusCode initialize() override;
47 
48  private:
49  /************************************************************************
50  * Properties
51  ***********************************************************************/
54  this, "JetName", "jets", "Input jet collection"};
57  this, "TrackName", "tracks",
58  "Input track collection. Should be ghost-associated to the jets"};
61  this, "VertexName", "vertices", "Input vertex collection"};
64  this, "TVAName", "trackVtxAssoc",
65  "The name of the track-vertex association"};
68  this, "JvtName", "Jvt", "The name of the JVT decorator"};
70  Gaudi::Property<std::string> m_trackGAName{
71  this, "TrackLinkName", "tracks", "The name of the jet track links"};
73  Gaudi::Property<float> m_forwardJetPt{
74  this, "ForwardJetPt", 0., "The pT cut applied to forward jets"};
76  Gaudi::Property<float> m_minJvtJetPt{
77  this, "MinimumJvtJetPt", 20. * Gaudi::Units::GeV,
78  "The minimum pT for central jets for JVT selections to be used"};
80  Gaudi::Property<float> m_maxJvtJetPt{
81  this, "MaximumJvtJetPt", 50. * Gaudi::Units::GeV,
82  "The maximum pT for central jets for JVT selections to be used"};
84  Gaudi::Property<float> m_jvtSelection{
85  this, "JVTCut", 0.9, "The JVT selection"};
87  ToolHandle<InDet::IInDetTrackSelectionTool> m_trackSelTool{
88  this, "TrackSelTool", "InDet::InDetTrackSelectionTool/TrackSelTool",
89  "The track selection tool to use for tracks entering the track soft "
90  "term."};
92  Gaudi::Property<float> m_tstPtCeil{
93  this, "TrackSoftTermPtCeiling", 20. * Gaudi::Units::GeV,
94  "The maximum pT for tracks entering the track soft term."};
95 
96  /************************************************************************
97  * Internal functions
98  ***********************************************************************/
105  virtual StatusCode fillMET(
107  const EventContext& context,
108  MonGroupBuilder& monitors) const override;
109 
110  /************************************************************************
111  * Internal members
112  ***********************************************************************/
114  }; //> end class TrkMHTFex
115 } } //> end namespace HLT::MET
116 
117 #endif //> !TRIGEFMISSINGET_TRKMHTFEX_H
HLT::MET::TrkMHTFex::initialize
virtual StatusCode initialize() override
Initialise the fex.
Definition: TrkMHTFex.cxx:33
HLT::MET::TrkMHTFex::m_maxJvtJetPt
Gaudi::Property< float > m_maxJvtJetPt
Maximum pt selection for JVT on central jets.
Definition: TrkMHTFex.h:107
HLT::MET::TrkMHTFex::m_jvtKey
SG::ReadDecorHandleKey< xAOD::JetContainer > m_jvtKey
The Jvt selection name.
Definition: TrkMHTFex.h:94
ReadDecorHandleKey.h
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
HLT::MET::TrkMHTFex::m_forwardJetPt
Gaudi::Property< float > m_forwardJetPt
Pt selection on forward jets.
Definition: TrkMHTFex.h:100
HLT::MET::TrkMHTFex::TrkMHTFex
TrkMHTFex(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition: TrkMHTFex.cxx:29
HLT::MET::TrkMHTFex::m_trackKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackKey
Input tracks.
Definition: TrkMHTFex.h:83
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
HLT::MET::TrkMHTFex::m_jetKey
SG::ReadHandleKey< xAOD::JetContainer > m_jetKey
Input jets and jvt.
Definition: TrkMHTFex.h:80
HLT::MET::TrkMHTFex::m_trackGAName
Gaudi::Property< std::string > m_trackGAName
The ghost-association aux element name.
Definition: TrkMHTFex.h:97
HLT::MET::TrkMHTFex::fillMET
virtual StatusCode fillMET(xAOD::TrigMissingET &met, const EventContext &context, MonGroupBuilder &monitors) const override
Calculate and fill the output MET value.
Definition: TrkMHTFex.cxx:56
HLT::MET::TrkMHTFex::m_vertexKey
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexKey
Input vertices.
Definition: TrkMHTFex.h:87
met
Definition: IMETSignificance.h:24
FexBase.h
HLT
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...
Definition: HLTResultReader.h:26
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
HLT::MET::TrkMHTFex::m_trackSelTool
ToolHandle< InDet::IInDetTrackSelectionTool > m_trackSelTool
The track selection tool.
Definition: TrkMHTFex.h:114
TCS::MET
@ MET
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/L1TopoCommon/Types.h:16
TrackVertexAssociation.h
IInDetTrackSelectionTool.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
HLT::MET::TrkMHTFex::m_jvtSelection
Gaudi::Property< float > m_jvtSelection
The JVT selection.
Definition: TrkMHTFex.h:111
HLT::MET::MonGroupBuilder
Definition: MonGroupBuilder.h:45
HLT::MET::TrkMHTFex::m_tstPtCeil
Gaudi::Property< float > m_tstPtCeil
The maximum pT for tracks in the soft term.
Definition: TrkMHTFex.h:119
HLT::MET::TrkMHTFex::m_trackGA
deferred_t< SG::AuxElement::ConstAccessor< std::vector< ElementLink< xAOD::IParticleContainer > > > > m_trackGA
Definition: TrkMHTFex.h:140
VertexContainer.h
JetContainer.h
HLT::MET::TrkMHTFex::m_tvaKey
SG::ReadHandleKey< jet::TrackVertexAssociation > m_tvaKey
The track-vertex assocation name.
Definition: TrkMHTFex.h:90
xAOD::TrigMissingET_v1
Class holding the Missing ET trigger fex results.
Definition: TrigMissingET_v1.h:32
HLT::MET::TrkMHTFex::deferred_t
std::optional< T > deferred_t
Definition: TrkMHTFex.h:67
SG::ReadDecorHandleKey
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Definition: StoreGate/StoreGate/ReadDecorHandleKey.h:85
HLT::MET::TrkMHTFex::m_minJvtJetPt
Gaudi::Property< float > m_minJvtJetPt
Minimum pt selection for JVT on central jets.
Definition: TrkMHTFex.h:103
GeV
#define GeV
Definition: CaloTransverseBalanceVecMon.cxx:30
TrackParticleContainer.h