ATLAS Offline Software
FexBase.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 FexBase
8  *
9  * @brief Base class for MET Trigger Fexs
10  * @author Jon Burr
11  *****************************************************************************/
12 
13 #ifndef TRIGEFMISSINGET_FEXBASE_H
14 #define TRIGEFMISSINGET_FEXBASE_H 1
15 
18 #include "Gaudi/Property.h"
20 #include "GaudiKernel/SystemOfUnits.h"
21 #include "MonGroupBuilder.h"
22 
23 #include <string>
24 #include <vector>
25 
26 
27 namespace HLT { namespace MET {
28  /****************************************************************************
29  * @class FexBase
30  *
31  * Base class for HLT MET Fex algorithms.
32  *
33  * Responsible for creating the MET object
34  ***************************************************************************/
35  class FexBase : public ::AthReentrantAlgorithm {
36  public:
38  FexBase(const std::string& name, ISvcLocator* pSvcLocator);
39 
41  virtual StatusCode execute(const EventContext& context) const override;
42 
43  protected:
44  /************************************************************************
45  * Data members (accessible from derived classes)
46  ***********************************************************************/
48  std::vector<std::string> m_componentNames;
49 
50  /************************************************************************
51  * Internal functions
52  ***********************************************************************/
65  const std::vector<std::string>& componentNames);
66 
78  virtual StatusCode fillMET(
80  const EventContext& context,
81  MonGroupBuilder& monitors) const = 0;
82 
88  virtual StatusCode monitor(
89  const xAOD::TrigMissingET& met,
90  MonGroupBuilder& monitors) const;
91 
96  virtual StatusCode flagMET(xAOD::TrigMissingET& met) const;
97 
98  private:
99  /************************************************************************
100  * Properties (Not accessible from derived classes)
101  ***********************************************************************/
104  this, "METContainerKey", "HLT_MET", "Name of the output MET object"};
106  ToolHandle<GenericMonitoringTool> m_monTool{
107  this, "MonTool", "", "Monitoring tool"};
108  Gaudi::Property<float> m_maxComponentMETSumEtRatio{
109  "MaxComponentMETSumEtRatio", 1.,
110  "The maximum MET/SumEt ratio per component"};
111  Gaudi::Property<float> m_maxGlobalMETSumEtRatio{
112  "MaxGlobalMETSumEtRatio", 1.,
113  "The maximum MET/SumEt ratio for the total value"};
114 
115  /************************************************************************
116  * Data members (Not accessible from derived classes)
117  ***********************************************************************/
119  bool m_baseInitialised{false};
120  }; //> end class FexBase
121 } } //> end namespace HTL::MET
122 #endif //> !TRIGEFMISSINGET_FEXBASE_H
HLT::MET::FexBase::execute
virtual StatusCode execute(const EventContext &context) const override
Run the algorithm.
Definition: FexBase.cxx:60
HLT::MET::FexBase::FexBase
FexBase(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition: FexBase.cxx:43
HLT::MET::FexBase::m_componentNames
std::vector< std::string > m_componentNames
The names of the output MET components.
Definition: FexBase.h:72
HLT::MET::FexBase::m_maxComponentMETSumEtRatio
Gaudi::Property< float > m_maxComponentMETSumEtRatio
Definition: FexBase.h:132
HLT::MET::FexBase::fillMET
virtual StatusCode fillMET(xAOD::TrigMissingET &met, const EventContext &context, MonGroupBuilder &monitors) const =0
Calculate and fill the output MET value.
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
GenericMonitoringTool.h
HLT::MET::FexBase::m_baseInitialised
bool m_baseInitialised
Whether or not this class has been correctly initialised.
Definition: FexBase.h:143
HLT::MET::FexBase::m_monTool
ToolHandle< GenericMonitoringTool > m_monTool
The monitoring tool.
Definition: FexBase.h:130
HLT::MET::FexBase::monitor
virtual StatusCode monitor(const xAOD::TrigMissingET &met, MonGroupBuilder &monitors) const
Add monitor variables from an xAOD::TrigMissingET object.
Definition: FexBase.cxx:141
met
Definition: IMETSignificance.h:24
SG::WriteHandleKey
Property holding a SG store/key/clid from which a WriteHandle is made.
Definition: StoreGate/StoreGate/WriteHandleKey.h:40
HLT
It used to be useful piece of code for replacing actual SG with other store of similar functionality ...
Definition: HLTResultReader.h:26
HLT::MET::FexBase::m_metContainerKey
SG::WriteHandleKey< xAOD::TrigMissingETContainer > m_metContainerKey
The output MET object.
Definition: FexBase.h:127
MonGroupBuilder.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
HLT::MET::FexBase::m_maxGlobalMETSumEtRatio
Gaudi::Property< float > m_maxGlobalMETSumEtRatio
Definition: FexBase.h:135
TrigMissingETContainer.h
HLT::MET::FexBase::flagMET
virtual StatusCode flagMET(xAOD::TrigMissingET &met) const
Flag suspicious values in the output MET.
Definition: FexBase.cxx:118
HLT::MET::FexBase::initializeBase
StatusCode initializeBase(const std::vector< std::string > &componentNames)
Initialize the base class.
Definition: FexBase.cxx:48
AthReentrantAlgorithm.h
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
MET
Definition: MET.py:1
xAOD::TrigMissingET_v1
Class holding the Missing ET trigger fex results.
Definition: TrigMissingET_v1.h:32