ATLAS Offline Software
Loading...
Searching...
No Matches
TileROD_Encoder.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TILEBYTESTREAM_TILEROD_ENCODER_H
6#define TILEBYTESTREAM_TILEROD_ENCODER_H
7
10
16
22
23class TileRawChannel;
25class TileDigits;
26class TileL2;
28class TileID;
29class TileHWID;
30
31#include <vector>
32#include <stdint.h>
33
43
45 : public AthMessaging
46{
47 public:
48
52
55 void setTileHWID(const TileHWID* tileHWID, bool verbose, unsigned int type = 4);
56 void setTileHWID(const TileHWID* tileHWID, int m_runPeriod);
57
61
64 void setMaxChannels(int maxChannels);
65
66
70
73 void add(const TileFastRawChannel* rc) { m_vTileRC.push_back(rc); }
74
77 void addL2(const TileL2* l2) { m_vTileL2.push_back(l2); }
78
81 void addTileMuRcvObj(const TileMuonReceiverObj* tileMuRcvObj) { m_vTileMuRcvObj.push_back(tileMuRcvObj); } // decision (d6 and d5+d6) calculated @ TMDB
82
85 void addDigi(const TileDigits* digi) { m_vTileDigi.push_back(digi); }
86
89 void fillROD(std::vector<uint32_t>& v);
90 void fillROD2(std::vector<uint32_t>& v);
91 void fillROD3(std::vector<uint32_t>& v);
92 void fillROD4(std::vector<uint32_t>& v);
93 void fillROD5(std::vector<uint32_t>& v);
94
97 void fillROD10(std::vector<uint32_t>& v);
98 void fillROD12(std::vector<uint32_t>& v);
99 void fillRODL2(std::vector<uint32_t>& v);
100
103 void fillROD1(std::vector<uint32_t>& v);
104 void fillROD5D(std::vector<uint32_t>& v);
105
108 void fillRODTileMuRcvDigi(std::vector<uint32_t>& v);
109 void fillRODTileMuRcvRawChannel(std::vector<uint32_t>& v);
110 void fillRODTileMuRcvObj(std::vector<uint32_t>& v);
111
114 void dumpROD(const std::vector<uint32_t>& v);
115
116 private:
117
120 void setBit(uint32_t* p, int chan);
121
124 bool checkBit(const uint32_t* p, int chan);
125
126 std::vector<const TileFastRawChannel*> m_vTileRC;
127 std::vector<const TileL2*> m_vTileL2;
128 std::vector<const TileDigits*> m_vTileDigi;
129
130 std::vector<const TileMuonReceiverObj*> m_vTileMuRcvObj; // decision (d6 and d5+d6) calculated @ TMDB
131
137
139 // const TileID* m_tileID;
140
141 // sort channels according to Channel HWID
143
145 unsigned int m_type;
146 unsigned int m_unitType;
147 unsigned int m_rChUnit;
148
151};
152
153#endif
const PlainObject unit() const
This is a plugin that makes Eigen look like CLHEP & defines some convenience methods.
static Double_t rc
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
This class converts TileDigits to and from bytestream in ROD format.
TYPE
initialize
Helper class for TileCal online (hardware) identifiers.
Definition TileHWID.h:49
Helper class for TileCal offline identifiers.
Definition TileID.h:67
Class to store TileMuId and Et quantities computed at the TileCal ROD DSPs.
Definition TileL2.h:33
void fillRODTileMuRcvObj(std::vector< uint32_t > &v)
unsigned int m_unitType
void setMaxChannels(int maxChannels)
set maximum number of channels in a drawer
std::vector< const TileDigits * > m_vTileDigi
const TileHWID * m_tileHWID
void fillROD5(std::vector< uint32_t > &v)
std::vector< const TileL2 * > m_vTileL2
void fillROD10(std::vector< uint32_t > &v)
convert all TileL2s in the current list to a vector of 32bit words
TileRawChannel2Bytes4 m_rc2bytes4
unsigned int m_type
TileRawChannel2Bytes m_rc2bytes3
void addDigi(const TileDigits *digi)
add TileDigits to the current list
void fillROD5D(std::vector< uint32_t > &v)
void fillROD(std::vector< uint32_t > &v)
convert all TileRawChannels in the current list to a vector of 32bit words
TileRawChannel2Bytes2 m_rc2bytes2
void setTypeAndUnit(TileFragHash::TYPE type, TileRawChannelUnit::UNIT unit)
set OF algorigtm type and amplitude units for a drawer
void fillRODTileMuRcvRawChannel(std::vector< uint32_t > &v)
void fillRODL2(std::vector< uint32_t > &v)
void setBit(uint32_t *p, int chan)
set the bitmap for a channel
TileROD_Encoder()
constructor
void fillROD12(std::vector< uint32_t > &v)
TileRawDataOrdering m_order
void addTileMuRcvObj(const TileMuonReceiverObj *tileMuRcvObj)
add TMBDs ROD sub-fragmens TileMuRcvObj (type3) to the current list
void setTileHWID(const TileHWID *tileHWID, bool verbose, unsigned int type=4)
set all necessary parameters for the encoder
bool checkBit(const uint32_t *p, int chan)
check the bitmap for a channel
TileRawChannel2Bytes5 m_rc2bytes5
std::vector< const TileFastRawChannel * > m_vTileRC
void fillROD1(std::vector< uint32_t > &v)
convert all TileDigits in the current list to a vector of 32bit words
void fillROD2(std::vector< uint32_t > &v)
std::vector< const TileMuonReceiverObj * > m_vTileMuRcvObj
void addL2(const TileL2 *l2)
add TileL2s to the current list
~TileROD_Encoder()
destructor
void fillROD3(std::vector< uint32_t > &v)
TileDigits2Bytes m_Digi2bytes
void fillRODTileMuRcvDigi(std::vector< uint32_t > &v)
convert the TMDB objects into a vector of 32bit words: 8bit words/digit, 16bit words/RC,...
void fillROD4(std::vector< uint32_t > &v)
void add(const TileFastRawChannel *rc)
add TileRawChannels to the current list
unsigned int m_rChUnit
void dumpROD(const std::vector< uint32_t > &v)
dump contents of the ROD fragment
Converts the TileRawChannel object into bytes as it is defined at the testbeam.
Converts the TileRawChannel object into bytes as it is defined at the commissioning 2007.
Converts the TileRawChannel object into bytes as it.
Converts the TileRawChannel object into bytes.
class for ordering TileRawData Objects according to hardware identifier (channel number) To be used w...
singleton-like access to IMessageSvc via open function and helper
bool verbose
Definition hcg.cxx:73