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 
36  public :
37 
39 
40  ~DCCMemBlock() override{}
41 
42  void updateCollectors() override;
43 
44  void display(std::ostream & o) override;
46  int unpack(const uint64_t ** data, unsigned int * dwToEnd, unsigned int expectedTowerID);
47 
48  protected :
49 
50  void unpackMemTowerData();
52 
53  std::vector<short> pn_;
54 
55  unsigned int expTowerID_;
56  unsigned int expXtalTSamples_;
57  unsigned int kSamplesPerPn_;
58 
59  unsigned int lastStripId_;
60  unsigned int lastXtalId_;
61  unsigned int lastTowerBeforeMem_;
62 
63  unsigned int towerId_;
64  unsigned int numbDWInXtalBlock_;
65  unsigned int xtalBlockSize_;
66  unsigned int nTSamples_;
68 
69  unsigned int bx_;
70  unsigned int l1_;
71 
72  std::unique_ptr<EcalElectronicsIdCollection> * invalidMemChIds_;
73  std::unique_ptr<EcalElectronicsIdCollection> * invalidMemBlockSizes_;
74  std::unique_ptr<EcalElectronicsIdCollection> * invalidMemTtIds_;
75  std::unique_ptr<EcalElectronicsIdCollection> * invalidMemGains_;
76  std::unique_ptr<EcalPnDiodeDigiCollection> * pnDiodeDigis_;
77 
78 };
79 
80 
81 #endif
unsigned int expTowerID_
Definition: DCCMemBlock.h:55
unsigned int bx_
Definition: DCCMemBlock.h:69
std::unique_ptr< EcalPnDiodeDigiCollection > * pnDiodeDigis_
Definition: DCCMemBlock.h:76
unsigned int kSamplesPerPn_
Definition: DCCMemBlock.h:57
unsigned int numbDWInXtalBlock_
Definition: DCCMemBlock.h:64
unsigned int lastStripId_
Definition: DCCMemBlock.h:59
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemBlockSizes_
Definition: DCCMemBlock.h:73
unsigned int expXtalTSamples_
Definition: DCCMemBlock.h:56
unsigned int unfilteredTowerBlockLength_
Definition: DCCMemBlock.h:67
std::vector< short > pn_
Definition: DCCMemBlock.h:53
unsigned int lastTowerBeforeMem_
Definition: DCCMemBlock.h:61
void display(std::ostream &o) override
Definition: DCCMemBlock.cc:348
unsigned int nTSamples_
Definition: DCCMemBlock.h:66
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemChIds_
Definition: DCCMemBlock.h:72
unsigned long long uint64_t
Definition: Time.h:15
void fillPnDiodeDigisCollection()
Definition: DCCMemBlock.cc:286
~DCCMemBlock() override
Definition: DCCMemBlock.h:40
unsigned int xtalBlockSize_
Definition: DCCMemBlock.h:65
unsigned int l1_
Definition: DCCMemBlock.h:70
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
virtual int unpack(const uint64_t **data, unsigned int *dwToEnd)
void unpackMemTowerData()
Definition: DCCMemBlock.cc:176
void updateCollectors() override
Definition: DCCMemBlock.cc:29
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemTtIds_
Definition: DCCMemBlock.h:74
unsigned int lastXtalId_
Definition: DCCMemBlock.h:60
DCCMemBlock(DCCDataUnpacker *u, EcalElectronicsMapper *m, DCCEventBlock *e)
Definition: DCCMemBlock.cc:9
unsigned int towerId_
Definition: DCCMemBlock.h:63
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemGains_
Definition: DCCMemBlock.h:75
int unpack(const uint64_t **data, unsigned int *dwToEnd, unsigned int expectedTowerID)
Definition: DCCMemBlock.cc:41