ATLAS Offline Software
Loading...
Searching...
No Matches
L1EnergyCMXTools.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5/***************************************************************************
6 * *
7 * *
8 ***************************************************************************/
9
10#ifndef LVL1L1ENERGYCMXTOOLS_H
11#define LVL1L1ENERGYCMXTOOLS_H
12
13#include <string>
14#include <vector>
15
17#include "GaudiKernel/ServiceHandle.h"
18#include "GaudiKernel/ToolHandle.h"
23
26
27namespace LVL1
28{
29class ModuleEnergy;
30class CrateEnergy;
31class SystemEnergy;
32
46
47class L1EnergyCMXTools : virtual public IL1EnergyCMXTools, public AthAlgTool
48{
49 public:
50 L1EnergyCMXTools(const std::string &type, const std::string &name,
51 const IInterface *parent);
52
54 virtual ~L1EnergyCMXTools();
55
57 virtual StatusCode initialize();
59 virtual StatusCode finalize();
60
62 virtual void formJEMEtSums(const xAOD::JetElementContainer *jetElementVec,
63 xAOD::JEMEtSumsContainer *jemEtSumsVec) const;
65 virtual void formCMXEtSums(const xAOD::JEMEtSumsContainer *jemEtSumsVec,
66 xAOD::CMXEtSumsContainer *cmxEtSumsVec) const;
68 virtual void formCMXEtSumsModule(const xAOD::JEMEtSumsContainer *jemEtSumsVec,
69 xAOD::CMXEtSumsContainer *cmxEtSumsMod) const;
71 virtual void formCMXEtSumsCrate(const xAOD::CMXEtSumsContainer *cmxEtSumsMod,
72 xAOD::CMXEtSumsContainer *cmxEtSumsCrate) const;
73
75 virtual void formCMXEtSumsSystem(
76 const xAOD::CMXEtSumsContainer *cmxEtSumsCrate,
77 xAOD::CMXEtSumsContainer *cmxEtSumsSys) const;
79 virtual void formCMXEtSumsEtMaps(const xAOD::CMXEtSumsContainer *cmxEtSumsSys,
80 xAOD::CMXEtSumsContainer *cmxEtSumsMap) const;
81
82 private:
83 typedef std::vector<uint16_t> EnergyVector;
84 typedef std::vector<uint32_t> ErrorVector;
85 typedef std::vector<DataVector<ModuleEnergy> *> MultiSliceModuleEnergy;
86 typedef std::vector<DataVector<CrateEnergy> *> MultiSliceCrateEnergy;
87 typedef std::vector<SystemEnergy *> MultiSliceSystemEnergy;
88
91 MultiSliceModuleEnergy &modulesVec, int &peak) const;
94 MultiSliceCrateEnergy &crateVecFull, MultiSliceCrateEnergy &crateVecRestricted,
95 int &peak) const;
98 MultiSliceSystemEnergy &systemVec, int &peak) const;
100 void moduleEnergyToEtSums(const MultiSliceModuleEnergy &modulesVec,
101 xAOD::JEMEtSumsContainer *jemEtSumsVec, int peak) const;
103 void crateEnergyToEtSums(const MultiSliceCrateEnergy &cratesVec,
104 xAOD::CMXEtSumsContainer *cmxEtSumsVec, int peak) const;
106 const MultiSliceCrateEnergy &cratesVecFull, const MultiSliceCrateEnergy &cratesVecRestricted,
107 xAOD::CMXEtSumsContainer *cmxEtSumsVec, int peak) const;
108
110 void systemEnergyToEtSums(const MultiSliceSystemEnergy &systemVec,
113 void etMapsToEtSums(const MultiSliceSystemEnergy &systemVec,
114 xAOD::CMXEtSumsContainer *cmxEtSumsVec, int peak) const;
115 void findRestrictedEta(uint32_t &maskXE, uint32_t &maskTE) const;
116
117 void dumpCrateEnergies(const std::string& msg, const MultiSliceCrateEnergy& crates) const;
118 SG::ReadHandleKey<TrigConf::L1Menu> m_L1MenuKey{ this, "L1TriggerMenu", "DetectorStore+L1TriggerMenu", "L1 Menu" };
120 ToolHandle<LVL1::IL1JetElementTools> m_jeTool;
122 ToolHandle<LVL1::IL1EtTools> m_etTool;
124 bool m_debug = false;
125};
126
127} // end of namespace
128
129#endif
An STL vector of pointers that by default owns its pointed-to elements.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
MsgStream & msg() const
CrateEnergy class declaration Simulates behaviour of the Crate-CMM System CMM logic is done in Energy...
Definition CrateEnergy.h:29
std::vector< uint16_t > EnergyVector
void etSumsToCrateEnergy(const xAOD::CMXEtSumsContainer *etSums, MultiSliceCrateEnergy &crateVecFull, MultiSliceCrateEnergy &crateVecRestricted, int &peak) const
Convert CMXEtSums container to internal CrateEnergy containers.
void findRestrictedEta(uint32_t &maskXE, uint32_t &maskTE) const
form partial CMXEtSums (crate) from module CMXEtSums
virtual void formCMXEtSumsEtMaps(const xAOD::CMXEtSumsContainer *cmxEtSumsSys, xAOD::CMXEtSumsContainer *cmxEtSumsMap) const
form partial CMXEtSums (sumEt/missingEt maps) from system CMXEtSums
virtual ~L1EnergyCMXTools()
default destructor
void moduleEnergyToEtSums(const MultiSliceModuleEnergy &modulesVec, xAOD::JEMEtSumsContainer *jemEtSumsVec, int peak) const
Convert internal ModuleEnergy containers to JEMEtSums container.
std::vector< uint32_t > ErrorVector
void crateEnergyToEtSums(const MultiSliceCrateEnergy &cratesVec, xAOD::CMXEtSumsContainer *cmxEtSumsVec, int peak) const
Convert internal CrateEnergy containers to CMXEtSums container.
ToolHandle< LVL1::IL1JetElementTools > m_jeTool
Tool for JetElement map.
void systemEnergyToEtSums(const MultiSliceSystemEnergy &systemVec, xAOD::CMXEtSumsContainer *cmxEtSumsVec, int peak, xAOD::CMXEtSums_v1::Sources source=xAOD::CMXEtSums::TOTAL_STANDARD) const
Convert internal SystemEnergy objects to CMXEtSums object.
ToolHandle< LVL1::IL1EtTools > m_etTool
Tool for energy sums.
std::vector< SystemEnergy * > MultiSliceSystemEnergy
void dumpCrateEnergies(const std::string &msg, const MultiSliceCrateEnergy &crates) const
void etSumsToModuleEnergy(const xAOD::CMXEtSumsContainer *etSums, MultiSliceModuleEnergy &modulesVec, int &peak) const
Convert CMXEtSums container to internal ModuleEnergy containers.
virtual StatusCode initialize()
standard Athena-Algorithm method
virtual void formCMXEtSumsSystem(const xAOD::CMXEtSumsContainer *cmxEtSumsCrate, xAOD::CMXEtSumsContainer *cmxEtSumsSys) const
form partial CMXEtSums (system) from crate CMXEtSums
L1EnergyCMXTools(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
SG::ReadHandleKey< TrigConf::L1Menu > m_L1MenuKey
void etSumsToSystemEnergy(const xAOD::CMXEtSumsContainer *etSums, MultiSliceSystemEnergy &systemVec, int &peak) const
Convert CMXEtSums container to internal SystemEnergy objects.
std::vector< DataVector< ModuleEnergy > * > MultiSliceModuleEnergy
virtual StatusCode finalize()
standard Athena-Algorithm method
virtual void formCMXEtSums(const xAOD::JEMEtSumsContainer *jemEtSumsVec, xAOD::CMXEtSumsContainer *cmxEtSumsVec) const
form complete CMXEtSums from JEMEtSums
virtual void formCMXEtSumsCrate(const xAOD::CMXEtSumsContainer *cmxEtSumsMod, xAOD::CMXEtSumsContainer *cmxEtSumsCrate) const
form partial CMXEtSums (crate) from module CMXEtSums
std::vector< DataVector< CrateEnergy > * > MultiSliceCrateEnergy
virtual void formJEMEtSums(const xAOD::JetElementContainer *jetElementVec, xAOD::JEMEtSumsContainer *jemEtSumsVec) const
form JEMEtSums from JetElements
virtual void formCMXEtSumsModule(const xAOD::JEMEtSumsContainer *jemEtSumsVec, xAOD::CMXEtSumsContainer *cmxEtSumsMod) const
form partial CMXEtSums (module) from JEMEtSums
void etMapsToEtSums(const MultiSliceSystemEnergy &systemVec, xAOD::CMXEtSumsContainer *cmxEtSumsVec, int peak) const
Convert maps from internal SystemEnergy objects to CMXEtSums objects.
This is an internal class, used in the Energy trigger.
SystemEnergy class declaration Simulates behaviour of the Crate-CMM System CMM logic is done in Energ...
Property holding a SG store/key/clid from which a ReadHandle is made.
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
JetElementContainer_v2 JetElementContainer
Define the latest version of the JetElement container.
CMXEtSumsContainer_v1 CMXEtSumsContainer
Define the latest version of the CMXEtSums class.
JEMEtSumsContainer_v2 JEMEtSumsContainer
Define the latest version of the JEMEtSums container.