CMS 3D CMS Logo

DCCMemBlock.h
Go to the documentation of this file.
1 #ifndef DCCMEMBLOCK_HH
2 #define DCCMEMBLOCK_HH
3 
4 /*
5  *\ Class DCCMemBlock
6  *
7  * Class responsible for MEMs unpacking
8  *
9  * \file DCCTCCBlock.h
10  *
11  *
12  * \author N. Almeida
13  * \author G. Franzoni
14  *
15 */
16 
17 #include <iostream>
18 #include <memory>
19 #include <cstdint>
20 #include <string>
21 #include <vector>
22 #include <map>
23 #include <utility>
24 
29 #include "DCCDataBlockPrototype.h"
30 
31 class DCCEventBlock;
32 class DCCDataUnpacker;
33 
35 public:
37 
38  ~DCCMemBlock() override {}
39 
40  void updateCollectors() override;
41 
42  void display(std::ostream& o) override;
44  int unpack(const uint64_t** data, unsigned int* dwToEnd, unsigned int expectedTowerID);
45 
46 protected:
47  void unpackMemTowerData();
49 
50  std::vector<short> pn_;
51 
52  unsigned int expTowerID_;
53  unsigned int expXtalTSamples_;
54  unsigned int kSamplesPerPn_;
55 
56  unsigned int lastStripId_;
57  unsigned int lastXtalId_;
58  unsigned int lastTowerBeforeMem_;
59 
60  unsigned int towerId_;
61  unsigned int numbDWInXtalBlock_;
62  unsigned int xtalBlockSize_;
63  unsigned int nTSamples_;
65 
66  unsigned int bx_;
67  unsigned int l1_;
68 
69  std::unique_ptr<EcalElectronicsIdCollection>* invalidMemChIds_;
70  std::unique_ptr<EcalElectronicsIdCollection>* invalidMemBlockSizes_;
71  std::unique_ptr<EcalElectronicsIdCollection>* invalidMemTtIds_;
72  std::unique_ptr<EcalElectronicsIdCollection>* invalidMemGains_;
73  std::unique_ptr<EcalPnDiodeDigiCollection>* pnDiodeDigis_;
74 };
75 
76 #endif
unsigned int expTowerID_
Definition: DCCMemBlock.h:52
unsigned int bx_
Definition: DCCMemBlock.h:66
std::unique_ptr< EcalPnDiodeDigiCollection > * pnDiodeDigis_
Definition: DCCMemBlock.h:73
unsigned int kSamplesPerPn_
Definition: DCCMemBlock.h:54
unsigned int numbDWInXtalBlock_
Definition: DCCMemBlock.h:61
unsigned int lastStripId_
Definition: DCCMemBlock.h:56
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemBlockSizes_
Definition: DCCMemBlock.h:70
unsigned int expXtalTSamples_
Definition: DCCMemBlock.h:53
unsigned int unfilteredTowerBlockLength_
Definition: DCCMemBlock.h:64
std::vector< short > pn_
Definition: DCCMemBlock.h:50
unsigned int lastTowerBeforeMem_
Definition: DCCMemBlock.h:58
void display(std::ostream &o) override
Definition: DCCMemBlock.cc:315
unsigned int nTSamples_
Definition: DCCMemBlock.h:63
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemChIds_
Definition: DCCMemBlock.h:69
unsigned long long uint64_t
Definition: Time.h:13
void fillPnDiodeDigisCollection()
Definition: DCCMemBlock.cc:260
~DCCMemBlock() override
Definition: DCCMemBlock.h:38
unsigned int xtalBlockSize_
Definition: DCCMemBlock.h:62
unsigned int l1_
Definition: DCCMemBlock.h:67
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
virtual int unpack(const uint64_t **data, unsigned int *dwToEnd)
void unpackMemTowerData()
Definition: DCCMemBlock.cc:158
void updateCollectors() override
Definition: DCCMemBlock.cc:26
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemTtIds_
Definition: DCCMemBlock.h:71
unsigned int lastXtalId_
Definition: DCCMemBlock.h:57
DCCMemBlock(DCCDataUnpacker *u, EcalElectronicsMapper *m, DCCEventBlock *e)
Definition: DCCMemBlock.cc:7
unsigned int towerId_
Definition: DCCMemBlock.h:60
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemGains_
Definition: DCCMemBlock.h:72
int unpack(const uint64_t **data, unsigned int *dwToEnd, unsigned int expectedTowerID)
Definition: DCCMemBlock.cc:34