1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
// Date : 02/03/2004
// Author : N.Almeida (LIP)
#ifndef DCCTBTOWERBLOCK_HH
#define DCCTBTOWERBLOCK_HH
#include <iostream>
#include <string>
#include <vector>
#include <map>
#include <utility>
#include "DCCBlockPrototype.h"
class DCCTBEventBlock;
class DCCTBXtalBlock;
class DCCTBDataParser;
class DCCTBTowerBlock : public DCCTBBlockPrototype {
public:
DCCTBTowerBlock(DCCTBEventBlock *dccBlock,
DCCTBDataParser *parser,
const uint32_t *buffer,
uint32_t numbBytes,
uint32_t wordsToEnd,
uint32_t wordEventOffset,
uint32_t expectedTowerID);
~DCCTBTowerBlock() override;
void parseXtalData();
int towerID();
std::vector<DCCTBXtalBlock *> &xtalBlocks();
std::vector<DCCTBXtalBlock *> xtalBlocksById(uint32_t stripId, uint32_t xtalId);
protected:
void dataCheck();
enum towerFields { BXMASK = 0xFFF, L1MASK = 0xFFF };
std::vector<DCCTBXtalBlock *> xtalBlocks_;
DCCTBEventBlock *dccBlock_;
uint32_t expectedTowerID_;
};
inline std::vector<DCCTBXtalBlock *> &DCCTBTowerBlock::xtalBlocks() { return xtalBlocks_; }
#endif
|