CMS 3D CMS Logo

DCCFEBlock.h
Go to the documentation of this file.
1 #ifndef DCCFEBLOCK_HH
2 #define DCCFEBLOCK_HH
3 
4 #include <iostream>
5 #include <memory>
6 #include <cstdint>
7 #include <string>
8 #include <vector>
9 #include <map>
10 #include <utility>
11 
16 
17 #include "DCCDataBlockPrototype.h"
18 
19 class DCCEventBlock;
20 class DCCDataUnpacker;
21 
23 public:
24  DCCFEBlock(DCCDataUnpacker* u, EcalElectronicsMapper* m, DCCEventBlock* e, bool unpack, bool forceToKeepFRdata);
25 
26  ~DCCFEBlock() override { delete[] xtalGains_; }
27 
28  void zsFlag(bool zs) { zs_ = zs; }
29 
30  void enableFeIdChecks() { checkFeId_ = true; }
31 
32  void updateCollectors() override;
33 
34  void display(std::ostream& o) override;
36  int unpack(const uint64_t** data, unsigned int* dwToEnd, bool zs, unsigned int expectedTowerID);
37 
38  unsigned int getLength() override { return blockLength_; }
39 
40 protected:
41  virtual int unpackXtalData(unsigned int stripID, unsigned int xtalID) { return BLOCK_UNPACKED; };
42  virtual void fillEcalElectronicsError(std::unique_ptr<EcalElectronicsIdCollection>*){};
43 
44  bool zs_;
45  bool checkFeId_;
46  unsigned int expTowerID_;
48  unsigned int expXtalTSamples_;
50  unsigned int lastStripId_;
51  unsigned int lastXtalId_;
52 
53  unsigned int towerId_;
54  unsigned int numbDWInXtalBlock_;
55  unsigned int xtalBlockSize_;
56  unsigned int nTSamples_;
57 
58  unsigned int blockSize_;
59  unsigned int bx_;
60  unsigned int l1_;
61 
62  short* xtalGains_;
63  std::unique_ptr<EcalElectronicsIdCollection>* invalidTTIds_;
64  std::unique_ptr<EcalElectronicsIdCollection>* invalidZSXtalIds_;
65  std::unique_ptr<EcalElectronicsIdCollection>* invalidBlockLengths_;
66 };
67 
68 #endif
DCCFEBlock::invalidBlockLengths_
std::unique_ptr< EcalElectronicsIdCollection > * invalidBlockLengths_
Definition: DCCFEBlock.h:65
DCCEventBlock
Definition: DCCEventBlock.h:29
MessageLogger.h
DCCFEBlock::unpack
int unpack(const uint64_t **data, unsigned int *dwToEnd, bool zs, unsigned int expectedTowerID)
Definition: DCCFEBlock.cc:22
DCCFEBlock::xtalGains_
short * xtalGains_
Definition: DCCFEBlock.h:62
DCCFEBlock::invalidZSXtalIds_
std::unique_ptr< EcalElectronicsIdCollection > * invalidZSXtalIds_
Definition: DCCFEBlock.h:64
DCCFEBlock::expTowerID_
unsigned int expTowerID_
Definition: DCCFEBlock.h:46
EcalDetIdCollections.h
DCCDataUnpacker
Definition: DCCDataUnpacker.h:49
DCCDataBlockPrototype::unpack
virtual int unpack(const uint64_t **data, unsigned int *dwToEnd)
Definition: DCCDataBlockPrototype.h:40
DCCFEBlock::DCCFEBlock
DCCFEBlock(DCCDataUnpacker *u, EcalElectronicsMapper *m, DCCEventBlock *e, bool unpack, bool forceToKeepFRdata)
Definition: DCCFEBlock.cc:7
DCCFEBlock::l1_
unsigned int l1_
Definition: DCCFEBlock.h:60
DCCDataBlockPrototype
Definition: DCCDataBlockPrototype.h:28
DCCFEBlock::nTSamples_
unsigned int nTSamples_
Definition: DCCFEBlock.h:56
EcalTangentSkim_cfg.o
o
Definition: EcalTangentSkim_cfg.py:42
DCCFEBlock::zs_
bool zs_
Definition: DCCFEBlock.h:42
DCCFEBlock::towerId_
unsigned int towerId_
Definition: DCCFEBlock.h:53
DCCFEBlock::fillEcalElectronicsError
virtual void fillEcalElectronicsError(std::unique_ptr< EcalElectronicsIdCollection > *)
Definition: DCCFEBlock.h:42
EcalRawDataCollections.h
DCCFEBlock::updateCollectors
void updateCollectors() override
Definition: DCCFEBlock.cc:16
DCCFEBlock::getLength
unsigned int getLength() override
Definition: DCCFEBlock.h:38
DCCFEBlock::display
void display(std::ostream &o) override
Definition: DCCFEBlock.cc:225
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:72
EcalDigiCollections.h
DCCFEBlock::checkFeId_
bool checkFeId_
Definition: DCCFEBlock.h:45
DCCFEBlock::~DCCFEBlock
~DCCFEBlock() override
Definition: DCCFEBlock.h:26
DCCFEBlock::forceToKeepFRdata_
bool forceToKeepFRdata_
Definition: DCCFEBlock.h:47
DCCFEBlock::zsFlag
void zsFlag(bool zs)
Definition: DCCFEBlock.h:28
DCCFEBlock::expXtalTSamples_
unsigned int expXtalTSamples_
Definition: DCCFEBlock.h:48
DCCFEBlock::lastXtalId_
unsigned int lastXtalId_
Definition: DCCFEBlock.h:51
DCCFEBlock::unfilteredDataBlockLength_
unsigned int unfilteredDataBlockLength_
Definition: DCCFEBlock.h:49
DCCFEBlock::blockSize_
unsigned int blockSize_
Definition: DCCFEBlock.h:58
EcalElectronicsMapper
Definition: EcalElectronicsMapper.h:36
DCCDataBlockPrototype.h
DCCFEBlock::invalidTTIds_
std::unique_ptr< EcalElectronicsIdCollection > * invalidTTIds_
Definition: DCCFEBlock.h:63
DCCFEBlock::numbDWInXtalBlock_
unsigned int numbDWInXtalBlock_
Definition: DCCFEBlock.h:54
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
cond::uint64_t
unsigned long long uint64_t
Definition: Time.h:13
DCCFEBlock::unpackXtalData
virtual int unpackXtalData(unsigned int stripID, unsigned int xtalID)
Definition: DCCFEBlock.h:41
DCCDataBlockPrototype::blockLength_
unsigned int blockLength_
Definition: DCCDataBlockPrototype.h:76
DCCFEBlock::lastStripId_
unsigned int lastStripId_
Definition: DCCFEBlock.h:50
BLOCK_UNPACKED
Definition: DCCRawDataDefinitions.h:6
DCCFEBlock::bx_
unsigned int bx_
Definition: DCCFEBlock.h:59
DCCFEBlock::enableFeIdChecks
void enableFeIdChecks()
Definition: DCCFEBlock.h:30
DCCFEBlock
Definition: DCCFEBlock.h:22
DCCFEBlock::xtalBlockSize_
unsigned int xtalBlockSize_
Definition: DCCFEBlock.h:55
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37