ATLAS Offline Software
Loading...
Searching...
No Matches
L1CPHitsTools.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
5// L1CPHitsTools.h,
7
8 /***************************************************************************
9 * *
10 * *
11 ***************************************************************************/
12
13#ifndef LVL1L1CPHITSTOOLS_H
14#define LVL1L1CPHITSTOOLS_H
15
16#include <string>
17#include <vector>
18
22
23namespace LVL1
24{
25
26class CMMCPHits;
27class CPMHits;
28class CPMRoI;
29class EmTauROI;
30
44
45class L1CPHitsTools : virtual public IL1CPHitsTools, public AthAlgTool
46{
47 public:
48
49 L1CPHitsTools(const std::string& type, const std::string& name,
50 const IInterface* parent);
51
53 virtual ~L1CPHitsTools ();
54
56 virtual StatusCode initialize();
58 virtual StatusCode finalize ();
59
61 virtual void formCPMRoI(const DataVector<EmTauROI>* emTauRoiVec,
62 DataVector<CPMRoI>* cpmRoiVec) const;
64 virtual void formCPMHits(const DataVector<CPMRoI>* cpmRoiVec,
65 DataVector<CPMHits>* cpmHitsVec) const;
67 virtual void formCPMHits(
68 const std::vector<const DataVector<CPMRoI>*>& cpmRoiColls,
69 DataVector<CPMHits>* cpmHitsVec, int peak) const;
71 virtual void formCMMCPHits(const DataVector<CPMHits>* cpmHitsVec,
72 DataVector<CMMCPHits>* cmmHitsVec) const;
74 virtual void formCMMCPHitsModule(const DataVector<CPMHits>* cpmHitsVec,
75 DataVector<CMMCPHits>* cmmHitsMod) const;
77 virtual void formCMMCPHitsCrate(const DataVector<CMMCPHits>* cmmHitsMod,
78 DataVector<CMMCPHits>* cmmHitsCrate) const;
80 virtual void formCMMCPHitsSystem(const DataVector<CMMCPHits>* cmmHitsCrate,
81 DataVector<CMMCPHits>* cmmHitsSys) const;
82
83 private:
84
85 typedef std::vector<unsigned int> HitsVector;
86 typedef std::vector<int> ErrorVector;
87
89 void addCMMCPHits(HitsVector& vec1, const HitsVector& vec2) const;
91 unsigned int addHits(unsigned int hitMult, unsigned int hitVec,
92 int multBits, int vecBits) const;
94 void mergeCMMCPHits(DataVector<CMMCPHits>* cmmHitsVec1,
95 DataVector<CMMCPHits>* cmmHitsVec2) const;
97 void saveCMMCPHits(DataVector<CMMCPHits>* cmmHitsVec,
98 const HitsVector& hits0, const HitsVector& hits1,
99 int crate, int dataId, int peak) const;
100
101 bool m_debug = false;
102
103};
104
105} // end of namespace
106
107#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:
Derived DataVector<T>.
Definition DataVector.h:795
Summary of CP (EM/tau) hits received by the merger modules.
The CPMHits object contains the hit data produced by a given Cluster Processor Module,...
This class defines the em/tau hadron ROI which are generated by the LVL1 Calo Trigger.
Definition EmTauROI.h:35
virtual void formCMMCPHitsSystem(const DataVector< CMMCPHits > *cmmHitsCrate, DataVector< CMMCPHits > *cmmHitsSys) const
form partial CMM-CP hits (system) from crate CMM-CP hits
virtual void formCMMCPHitsModule(const DataVector< CPMHits > *cpmHitsVec, DataVector< CMMCPHits > *cmmHitsMod) const
form partial CMM-CP hits (module) from CPM hits
virtual ~L1CPHitsTools()
default destructor
std::vector< unsigned int > HitsVector
virtual void formCPMRoI(const DataVector< EmTauROI > *emTauRoiVec, DataVector< CPMRoI > *cpmRoiVec) const
EmTauROI to CPMRoI conversion.
virtual void formCPMHits(const DataVector< CPMRoI > *cpmRoiVec, DataVector< CPMHits > *cpmHitsVec) const
form CPM hits from RoIs - single slice
virtual void formCMMCPHitsCrate(const DataVector< CMMCPHits > *cmmHitsMod, DataVector< CMMCPHits > *cmmHitsCrate) const
form partial CMM-CP hits (crate) from module CMM-CP hits
void mergeCMMCPHits(DataVector< CMMCPHits > *cmmHitsVec1, DataVector< CMMCPHits > *cmmHitsVec2) const
Merge CMM-CP hits vectors.
void saveCMMCPHits(DataVector< CMMCPHits > *cmmHitsVec, const HitsVector &hits0, const HitsVector &hits1, int crate, int dataId, int peak) const
Save non-zero CMM-CP hits.
void addCMMCPHits(HitsVector &vec1, const HitsVector &vec2) const
Add hits from second vector to first.
unsigned int addHits(unsigned int hitMult, unsigned int hitVec, int multBits, int vecBits) const
Increment CPM/CMM hit word.
virtual StatusCode finalize()
standard Athena-Algorithm method
std::vector< int > ErrorVector
virtual void formCMMCPHits(const DataVector< CPMHits > *cpmHitsVec, DataVector< CMMCPHits > *cmmHitsVec) const
form complete CMM-CP hits from CPM hits
L1CPHitsTools(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
virtual StatusCode initialize()
standard Athena-Algorithm method
eFexTowerBuilder creates xAOD::eFexTowerContainer from supercells (LATOME) and triggerTowers (TREX) i...