ATLAS Offline Software
NNHLTFex.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 /******************************************************************************
6  * @package Trigger/TrigAlgorithms/TrigEFMissingET
7  * @class NNHLTFex
8  *
9  * @brief Fex class for the Neural netowrk algorithm that combines HLT inputs
10  * @author Zhelun Li
11  *****************************************************************************/
12 
13 #ifndef TRIGEFMISSINGET_NNHLTFEX_H
14 #define TRIGEFMISSINGET_NNHLTFEX_H
15 
16 #include "FexBase.h"
17 #include "xAODPFlow/PFOContainer.h"
18 
19 // Externals
20 #include "lwtnn/LightweightGraph.hh"
21 #include "lwtnn/NanReplacer.hh"
22 #include "lwtnn/parse_json.hh"
23 
24 
25 
26 namespace HLT::MET {
27  /****************************************************************************
28  * @class NNHLTFex
29  *
30  * Class to create output from the HLT NN algorithm
31  ***************************************************************************/
32 
33  class NNHLTFex : public FexBase
34  {
35  public:
37  NNHLTFex(const std::string& name, ISvcLocator* pSvcLocator);
38 
40  virtual StatusCode initialize() override;
41 
42  private:
43  /************************************************************************
44  * Properties
45  ***********************************************************************/
46 
48  this, "TriggerMETs", {"HLT_MET_tcpufit","HLT_MET_cell","HLT_MET_trkmht","HLT_MET_pfopufit","HLT_MET_mhtpufit_pf_subjesgscIS","HLT_MET_pfsum_vssk"}, "TriggerMETs"};
49  Gaudi::Property<std::string> m_filename{
50  this, "InputFileName","/eos/atlas/atlascerngroupdisk/asg-calib/TrigEFMissingET/20220211/NNsingleLayerRed.json", "The NN input files in json, used to build NN in C++"};
51  // lightweight graph and preprocessor
52  lwt::GraphConfig m_configNN;
53  std::unique_ptr<lwt::LightweightGraph> m_graphNN;
54 
55  /************************************************************************
56  * Internal functions
57  ***********************************************************************/
64  virtual StatusCode fillMET(
66  const EventContext& context,
67  MonGroupBuilder& monitors) const override;
68  }; //> end class NNHLTFex
69 } //> end namespace HLT::MET
70 
71 #endif //> !TRIGEFMISSINGET_NNHLTFex_H
HLT::MET::NNHLTFex::fillMET
virtual StatusCode fillMET(xAOD::TrigMissingET &met, const EventContext &context, MonGroupBuilder &monitors) const override
Calculate and fill the output MET value.
Definition: NNHLTFex.cxx:50
PFOContainer.h
SG::HandleKeyArray
Definition: StoreGate/StoreGate/HandleKeyArray.h:38
met
Definition: IMETSignificance.h:24
FexBase.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
HLT::MET::NNHLTFex::NNHLTFex
NNHLTFex(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition: NNHLTFex.cxx:29
HLT::MET
Definition: METComponent.cxx:8
HLT::MET::NNHLTFex::m_configNN
lwt::GraphConfig m_configNN
Definition: NNHLTFex.h:68
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
HLT::MET::MonGroupBuilder
Definition: MonGroupBuilder.h:45
HLT::MET::NNHLTFex::m_filename
Gaudi::Property< std::string > m_filename
Definition: NNHLTFex.h:65
HLT::MET::NNHLTFex::m_triggerMETs
SG::ReadHandleKeyArray< xAOD::TrigMissingETContainer > m_triggerMETs
Definition: NNHLTFex.h:63
HLT::MET::NNHLTFex::initialize
virtual StatusCode initialize() override
Initialize the fex.
Definition: NNHLTFex.cxx:35
xAOD::TrigMissingET_v1
Class holding the Missing ET trigger fex results.
Definition: TrigMissingET_v1.h:32
HLT::MET::NNHLTFex::m_graphNN
std::unique_ptr< lwt::LightweightGraph > m_graphNN
Definition: NNHLTFex.h:69