ATLAS Offline Software
Loading...
Searching...
No Matches
L1CPCMXTools.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5
6#ifndef LVL1L1CPCMXTOOLS_H
7#define LVL1L1CPCMXTOOLS_H
8
9#include "GaudiKernel/ServiceHandle.h"
14
15#include <string>
16#include <vector>
17#include <cstdint> //uint8_t etc
18
19namespace TrigConf{
20 class L1Menu;
21}
22
23namespace LVL1 {
24class CPMTobRoI;
25class EmTauROI;
26
38
39class L1CPCMXTools : virtual public IL1CPCMXTools, public AthAlgTool {
40public:
41 L1CPCMXTools(const std::string &type, const std::string &name,
42 const IInterface *parent);
43
45 virtual StatusCode initialize();
46
48 virtual void formCMXCPTob(const xAOD::CPMTobRoIContainer *cpmRoiVec,
49 xAOD::CMXCPTobContainer *cmxTobVec) const;
51 virtual void
52 formCMXCPTob(const std::vector<const xAOD::CPMTobRoIContainer *> &cpmRoiColls,
53 xAOD::CMXCPTobContainer *cmxTobVec, uint8_t peak) const;
55 virtual void formCMXCPHits(const TrigConf::L1Menu* l1menu,
56 const xAOD::CMXCPTobContainer *cmxTobVec,
57 xAOD::CMXCPHitsContainer *cmxHitsVec) const;
59 virtual void formCMXCPHitsCrate(const TrigConf::L1Menu* l1menu,
60 const xAOD::CMXCPTobContainer *cmxTobVec,
61 xAOD::CMXCPHitsContainer *cmxHitsCrate) const;
63 virtual void formCMXCPHitsSystem(const xAOD::CMXCPHitsContainer *cmxHitsCrate,
64 xAOD::CMXCPHitsContainer *cmxHitsSys) const;
66 virtual void formCMXCPHitsTopo(const xAOD::CMXCPTobContainer *cmxTobVec,
67 xAOD::CMXCPHitsContainer *cmxHitsTopo) const;
68
69private:
70 typedef std::vector<uint32_t> HitsVector;
71 typedef std::vector<uint32_t> ErrorVector;
72
74 std::pair<uint32_t, uint32_t> roiWord(const EmTauROI *roi) const;
75 int isolationEm(unsigned int clusterEnergy, unsigned int emIsol,
76 unsigned int hadIsol, unsigned int hadVeto) const;
77 int isolationTau(unsigned int clusterEnergy, unsigned int emIsol,
78 unsigned int hadIsol) const;
79 void unpackEmIsol(int energy, int isol, unsigned int &emIsol,
80 unsigned int &hadIsol, unsigned int &hadVeto) const;
81 void unpackTauIsol(int energy, int isol, unsigned int &emIsol,
82 unsigned int &hadIsol) const;
83 // void getHits(const xAOD::CMXCPTob* tob,
84 // HitsVector& hit0, HitsVector& hit1) const;
85 void getHits(const TrigConf::L1Menu* l1menu, const xAOD::CMXCPTob *tob, HitsVector &hits0,
86 HitsVector &hits1) const;
87
88 void addOverflow(ErrorVector &hitErr, const ErrorVector &tobErr) const;
89
91 void addCMXCPHits(HitsVector &vec1, const HitsVector &vec2) const;
93 unsigned int addHits(unsigned int hitMult, unsigned int hitVec, int multBits,
94 int vecBits) const;
97 xAOD::CMXCPHitsContainer *cmxHitsVec2) const;
100 const HitsVector &hits0, const HitsVector &hits1,
101 const ErrorVector &err0, const ErrorVector &err1,
102 uint8_t crate, uint8_t cmx, uint8_t source,
103 uint8_t peak) const;
104
115};
116
117} // end of namespace
118
119#endif
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
This class defines the em/tau hadron ROI which are generated by the LVL1 Calo Trigger.
Definition EmTauROI.h:35
std::vector< uint32_t > HitsVector
L1CPCMXTools(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
void addOverflow(ErrorVector &hitErr, const ErrorVector &tobErr) const
void addCMXCPHits(HitsVector &vec1, const HitsVector &vec2) const
Add hits from second vector to first.
std::pair< uint32_t, uint32_t > roiWord(const EmTauROI *roi) const
Temporary for testing until CPAlgorithm and EmTauROI are updated.
virtual void formCMXCPHitsTopo(const xAOD::CMXCPTobContainer *cmxTobVec, xAOD::CMXCPHitsContainer *cmxHitsTopo) const
form partial CMX-CP hits (topo) from CMX-CP TOBs
std::vector< uint32_t > ErrorVector
unsigned int addHits(unsigned int hitMult, unsigned int hitVec, int multBits, int vecBits) const
Increment CPM/CMX hit word.
void getHits(const TrigConf::L1Menu *l1menu, const xAOD::CMXCPTob *tob, HitsVector &hits0, HitsVector &hits1) const
virtual void formCMXCPHitsCrate(const TrigConf::L1Menu *l1menu, const xAOD::CMXCPTobContainer *cmxTobVec, xAOD::CMXCPHitsContainer *cmxHitsCrate) const
form partial CMX-CP hits (crate) from CMX-CP TOBs
int isolationTau(unsigned int clusterEnergy, unsigned int emIsol, unsigned int hadIsol) const
virtual void formCMXCPHitsSystem(const xAOD::CMXCPHitsContainer *cmxHitsCrate, xAOD::CMXCPHitsContainer *cmxHitsSys) const
form partial CMX-CP hits (system) from crate CMX-CP hits
int m_maxTobs
Maximum number of TOBs per CPM.
void saveCMXCPHits(xAOD::CMXCPHitsContainer *cmxHitsVec, const HitsVector &hits0, const HitsVector &hits1, const ErrorVector &err0, const ErrorVector &err1, uint8_t crate, uint8_t cmx, uint8_t source, uint8_t peak) const
Save non-zero CMX-CP hits.
int isolationEm(unsigned int clusterEnergy, unsigned int emIsol, unsigned int hadIsol, unsigned int hadVeto) const
int m_crates
Number of CP crates.
int m_modules
Number of CPMs per crate.
int m_sysCrate
System crate.
bool m_debug
Debug printout flag.
void unpackEmIsol(int energy, int isol, unsigned int &emIsol, unsigned int &hadIsol, unsigned int &hadVeto) const
void unpackTauIsol(int energy, int isol, unsigned int &emIsol, unsigned int &hadIsol) const
virtual StatusCode initialize()
standard Athena-Algorithm method
virtual void formCMXCPTob(const xAOD::CPMTobRoIContainer *cpmRoiVec, xAOD::CMXCPTobContainer *cmxTobVec) const
form CMX-CP TOBs from RoIs - single slice
virtual void formCMXCPHits(const TrigConf::L1Menu *l1menu, const xAOD::CMXCPTobContainer *cmxTobVec, xAOD::CMXCPHitsContainer *cmxHitsVec) const
form complete CMX-CP hits from CMX-CP TOBs
void mergeCMXCPHits(xAOD::CMXCPHitsContainer *cmxHitsVec1, xAOD::CMXCPHitsContainer *cmxHitsVec2) const
Merge CMX-CP hits vectors.
L1 menu configuration.
Definition L1Menu.h:28
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
Forward iterator to traverse the main components of the trigger configuration.
Definition Config.h:22
CMXCPTobContainer_v1 CMXCPTobContainer
Define the latest version of the CMXCPTob class.
CMXCPHitsContainer_v1 CMXCPHitsContainer
Define the latest version of the CMXCPHits class.
CMXCPTob_v1 CMXCPTob
Define the latest version of the CMXCPTob class.
CPMTobRoIContainer_v1 CPMTobRoIContainer
Define the latest version of the CPMTobRoI class.