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
DCCMemBlock::invalidMemTtIds_
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemTtIds_
Definition: DCCMemBlock.h:71
DCCEventBlock
Definition: DCCEventBlock.h:29
MessageLogger.h
DCCMemBlock::expTowerID_
unsigned int expTowerID_
Definition: DCCMemBlock.h:52
DCCMemBlock::pnDiodeDigis_
std::unique_ptr< EcalPnDiodeDigiCollection > * pnDiodeDigis_
Definition: DCCMemBlock.h:73
DCCMemBlock::expXtalTSamples_
unsigned int expXtalTSamples_
Definition: DCCMemBlock.h:53
EcalDetIdCollections.h
DCCMemBlock::bx_
unsigned int bx_
Definition: DCCMemBlock.h:66
DCCDataUnpacker
Definition: DCCDataUnpacker.h:49
DCCMemBlock::numbDWInXtalBlock_
unsigned int numbDWInXtalBlock_
Definition: DCCMemBlock.h:61
DCCDataBlockPrototype::unpack
virtual int unpack(const uint64_t **data, unsigned int *dwToEnd)
Definition: DCCDataBlockPrototype.h:40
DCCDataBlockPrototype
Definition: DCCDataBlockPrototype.h:28
EcalTangentSkim_cfg.o
o
Definition: EcalTangentSkim_cfg.py:36
DCCMemBlock::kSamplesPerPn_
unsigned int kSamplesPerPn_
Definition: DCCMemBlock.h:54
EcalRawDataCollections.h
DCCMemBlock::lastStripId_
unsigned int lastStripId_
Definition: DCCMemBlock.h:56
DCCMemBlock::invalidMemBlockSizes_
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemBlockSizes_
Definition: DCCMemBlock.h:70
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:72
EcalDigiCollections.h
DCCMemBlock::pn_
std::vector< short > pn_
Definition: DCCMemBlock.h:50
DCCMemBlock::lastTowerBeforeMem_
unsigned int lastTowerBeforeMem_
Definition: DCCMemBlock.h:58
DCCMemBlock
Definition: DCCMemBlock.h:34
DCCMemBlock::unfilteredTowerBlockLength_
unsigned int unfilteredTowerBlockLength_
Definition: DCCMemBlock.h:64
DCCMemBlock::nTSamples_
unsigned int nTSamples_
Definition: DCCMemBlock.h:63
DCCMemBlock::unpackMemTowerData
void unpackMemTowerData()
Definition: DCCMemBlock.cc:158
DCCMemBlock::display
void display(std::ostream &o) override
Definition: DCCMemBlock.cc:315
EcalElectronicsMapper
Definition: EcalElectronicsMapper.h:36
DCCDataBlockPrototype.h
DCCMemBlock::invalidMemChIds_
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemChIds_
Definition: DCCMemBlock.h:69
DCCMemBlock::updateCollectors
void updateCollectors() override
Definition: DCCMemBlock.cc:26
DCCMemBlock::unpack
int unpack(const uint64_t **data, unsigned int *dwToEnd, unsigned int expectedTowerID)
Definition: DCCMemBlock.cc:34
DCCMemBlock::lastXtalId_
unsigned int lastXtalId_
Definition: DCCMemBlock.h:57
DCCMemBlock::DCCMemBlock
DCCMemBlock(DCCDataUnpacker *u, EcalElectronicsMapper *m, DCCEventBlock *e)
Definition: DCCMemBlock.cc:7
DCCMemBlock::l1_
unsigned int l1_
Definition: DCCMemBlock.h:67
DCCMemBlock::fillPnDiodeDigisCollection
void fillPnDiodeDigisCollection()
Definition: DCCMemBlock.cc:260
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
DCCMemBlock::~DCCMemBlock
~DCCMemBlock() override
Definition: DCCMemBlock.h:38
DCCMemBlock::towerId_
unsigned int towerId_
Definition: DCCMemBlock.h:60
cond::uint64_t
unsigned long long uint64_t
Definition: Time.h:13
DCCMemBlock::invalidMemGains_
std::unique_ptr< EcalElectronicsIdCollection > * invalidMemGains_
Definition: DCCMemBlock.h:72
DCCMemBlock::xtalBlockSize_
unsigned int xtalBlockSize_
Definition: DCCMemBlock.h:62
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37