ATLAS Offline Software
Loading...
Searching...
No Matches
L1CPCMXTools.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#ifndef LVL1L1CPCMXTOOLS_H
7#define LVL1L1CPCMXTOOLS_H
8
9#include <string>
10#include <vector>
11
12#include "GaudiKernel/ServiceHandle.h"
18#include "TrigConfData/L1Menu.h"
19
20namespace LVL1 {
21class CPMTobRoI;
22class EmTauROI;
23
35
36class L1CPCMXTools : virtual public IL1CPCMXTools, public AthAlgTool {
37public:
38 L1CPCMXTools(const std::string &type, const std::string &name,
39 const IInterface *parent);
40
42 virtual StatusCode initialize();
43
45 virtual void formCMXCPTob(const xAOD::CPMTobRoIContainer *cpmRoiVec,
46 xAOD::CMXCPTobContainer *cmxTobVec) const;
48 virtual void
49 formCMXCPTob(const std::vector<const xAOD::CPMTobRoIContainer *> &cpmRoiColls,
50 xAOD::CMXCPTobContainer *cmxTobVec, uint8_t peak) const;
52 virtual void formCMXCPHits(const TrigConf::L1Menu* l1menu,
53 const xAOD::CMXCPTobContainer *cmxTobVec,
54 xAOD::CMXCPHitsContainer *cmxHitsVec) const;
56 virtual void formCMXCPHitsCrate(const TrigConf::L1Menu* l1menu,
57 const xAOD::CMXCPTobContainer *cmxTobVec,
58 xAOD::CMXCPHitsContainer *cmxHitsCrate) const;
60 virtual void formCMXCPHitsSystem(const xAOD::CMXCPHitsContainer *cmxHitsCrate,
61 xAOD::CMXCPHitsContainer *cmxHitsSys) const;
63 virtual void formCMXCPHitsTopo(const xAOD::CMXCPTobContainer *cmxTobVec,
64 xAOD::CMXCPHitsContainer *cmxHitsTopo) const;
65
66private:
67 typedef std::vector<uint32_t> HitsVector;
68 typedef std::vector<uint32_t> ErrorVector;
69
71 std::pair<uint32_t, uint32_t> roiWord(const EmTauROI *roi) const;
72 int isolationEm(unsigned int clusterEnergy, unsigned int emIsol,
73 unsigned int hadIsol, unsigned int hadVeto) const;
74 int isolationTau(unsigned int clusterEnergy, unsigned int emIsol,
75 unsigned int hadIsol) const;
76 void unpackEmIsol(int energy, int isol, unsigned int &emIsol,
77 unsigned int &hadIsol, unsigned int &hadVeto) const;
78 void unpackTauIsol(int energy, int isol, unsigned int &emIsol,
79 unsigned int &hadIsol) const;
80 // void getHits(const xAOD::CMXCPTob* tob,
81 // HitsVector& hit0, HitsVector& hit1) const;
82 void getHits(const TrigConf::L1Menu* l1menu, const xAOD::CMXCPTob *tob, HitsVector &hits0,
83 HitsVector &hits1) const;
84
85 void addOverflow(ErrorVector &hitErr, const ErrorVector &tobErr) const;
86
88 void addCMXCPHits(HitsVector &vec1, const HitsVector &vec2) const;
90 unsigned int addHits(unsigned int hitMult, unsigned int hitVec, int multBits,
91 int vecBits) const;
94 xAOD::CMXCPHitsContainer *cmxHitsVec2) const;
97 const HitsVector &hits0, const HitsVector &hits1,
98 const ErrorVector &err0, const ErrorVector &err1,
99 uint8_t crate, uint8_t cmx, uint8_t source,
100 uint8_t peak) const;
101
112};
113
114} // end of namespace
115
116#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:
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...
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.