ATLAS Offline Software
Loading...
Searching...
No Matches
L1JetCMXTools.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 LVL1L1JETCMXTOOLS_H
7#define LVL1L1JETCMXTOOLS_H
8
9#include <string>
10#include <vector>
11
13#include "GaudiKernel/ServiceHandle.h"
16#include "TrigConfData/L1Menu.h"
17
18namespace LVL1 {
19
35
36class L1JetCMXTools : virtual public IL1JetCMXTools, public AthAlgTool {
37 public:
38 L1JetCMXTools(const std::string& type, const std::string& name,
39 const IInterface* parent);
40
42 virtual ~L1JetCMXTools();
43
45 virtual StatusCode initialize();
46
48 virtual void formCMXJetTob(const xAOD::JEMTobRoIContainer* jemRoiVec,
49 xAOD::CMXJetTobContainer* cmxTobVec) const;
50
52 virtual void formCMXJetTob(
53 const std::vector<const xAOD::JEMTobRoIContainer*>& jemRoiColls,
54 xAOD::CMXJetTobContainer* cmxTobVec, int peak) const;
55
57 virtual void formCMXJetHits(const xAOD::CMXJetTobContainer* cmxTobVec,
58 xAOD::CMXJetHitsContainer* cmxHitsVec) const;
59
61 virtual void formCMXJetHitsCrate(
62 const xAOD::CMXJetTobContainer* cmxTobVec,
63 xAOD::CMXJetHitsContainer* cmxHitsCrate) const;
64
66 virtual void formCMXJetHitsSystem(
67 const xAOD::CMXJetHitsContainer* cmxHitsCrate,
68 xAOD::CMXJetHitsContainer* cmxHitsSys) const;
70 virtual void formCMXJetHitsTopo(const xAOD::CMXJetTobContainer* cmxTobVec,
71 xAOD::CMXJetHitsContainer* cmxHitsTopo) const;
72
73 private:
75
76 typedef std::vector<uint32_t> HitsVector;
77 typedef std::vector<uint32_t> ErrorVector;
78
80 void getHits(const xAOD::CMXJetTob* tob, HitsVector& hit10, HitsVector& hit11,
81 HitsVector& hit20, HitsVector& hit21) const;
82
84 void addOverflow(ErrorVector& hitErr, const ErrorVector& tobErr) const;
86 void addCMXJetHits(HitsVector& vec1, const HitsVector& vec2,
87 HitsType type) const;
89 unsigned int addHits(unsigned int hitMult, unsigned int hitVec, int multBits,
90 int vecBits, int nthresh) const;
91
94 xAOD::CMXJetHitsContainer* cmxHitsVec2) const;
95
97 const HitsVector& hits0, const HitsVector& hits1,
98 const ErrorVector& err0, const ErrorVector& err1,
99 int crate, int source, int peak) const;
100
101 SG::ReadHandleKey<TrigConf::L1Menu> m_L1MenuKey{ this, "L1TriggerMenu", "DetectorStore+L1TriggerMenu", "L1 Menu" };
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:
virtual void formCMXJetHitsTopo(const xAOD::CMXJetTobContainer *cmxTobVec, xAOD::CMXJetHitsContainer *cmxHitsTopo) const
form partial CMX-Jet hits (topo) from system CMX-Jet TOBs
void getHits(const xAOD::CMXJetTob *tob, HitsVector &hit10, HitsVector &hit11, HitsVector &hit20, HitsVector &hit21) const
Get hit map.
int m_crates
Number of crates.
int m_sysCrate
System crate number.
void saveCMXJetHits(xAOD::CMXJetHitsContainer *cmxHitsVec, const HitsVector &hits0, const HitsVector &hits1, const ErrorVector &err0, const ErrorVector &err1, int crate, int source, int peak) const
Save non-zero CMX-Jet hits.
int m_modules
Number of JEM modules per crate.
L1JetCMXTools(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
virtual void formCMXJetTob(const xAOD::JEMTobRoIContainer *jemRoiVec, xAOD::CMXJetTobContainer *cmxTobVec) const
form CMX-Jet TOBs from RoIs - single slice
bool m_debug
Debug flag.
void addOverflow(ErrorVector &hitErr, const ErrorVector &tobErr) const
Add overflow bit.
virtual void formCMXJetHitsSystem(const xAOD::CMXJetHitsContainer *cmxHitsCrate, xAOD::CMXJetHitsContainer *cmxHitsSys) const
form partial CMX-Jet hits (system) from crate CMX-Jet hits
virtual void formCMXJetHits(const xAOD::CMXJetTobContainer *cmxTobVec, xAOD::CMXJetHitsContainer *cmxHitsVec) const
form complete CMX-Jet hits from CMX-Jet TOBs
int m_maxTobs
Maximum number of TOBs per module to CMXs.
virtual StatusCode initialize()
standard Athena-Algorithm method
SG::ReadHandleKey< TrigConf::L1Menu > m_L1MenuKey
void mergeCMXJetHits(xAOD::CMXJetHitsContainer *cmxHitsVec1, xAOD::CMXJetHitsContainer *cmxHitsVec2) const
Merge CMX-Jet hits vectors.
unsigned int addHits(unsigned int hitMult, unsigned int hitVec, int multBits, int vecBits, int nthresh) const
Increment JEM/CMX hit word.
virtual ~L1JetCMXTools()
default destructor
virtual void formCMXJetHitsCrate(const xAOD::CMXJetTobContainer *cmxTobVec, xAOD::CMXJetHitsContainer *cmxHitsCrate) const
form partial CMX-Jet hits (crate) from CMX-Jet TOBs
std::vector< uint32_t > ErrorVector
std::vector< uint32_t > HitsVector
void addCMXJetHits(HitsVector &vec1, const HitsVector &vec2, HitsType type) const
Add hits from second vector to first.
Property holding a SG store/key/clid from which a ReadHandle is made.
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...
CMXJetHitsContainer_v1 CMXJetHitsContainer
Define the latest version of the CMXJetHits class.
CMXJetTobContainer_v1 CMXJetTobContainer
Define the latest version of the CMXJetTob class.
CMXJetTob_v1 CMXJetTob
Define the latest version of the CMXJetTob class.
JEMTobRoIContainer_v1 JEMTobRoIContainer
Define the latest version of the JEMTobRoI class.