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 
24  public :
25 
26  DCCFEBlock(DCCDataUnpacker * u,EcalElectronicsMapper * m, DCCEventBlock * e, bool unpack, bool forceToKeepFRdata);
27 
28  ~DCCFEBlock() override{ delete [] xtalGains_;}
29 
30  void zsFlag(bool zs){ zs_ = zs;}
31 
33 
34  void updateCollectors() override;
35 
36  void display(std::ostream & o) override;
38  int unpack(const uint64_t** data, unsigned int * dwToEnd, bool zs, unsigned int expectedTowerID);
39 
40  unsigned int getLength() override{return blockLength_; }
41 
42  protected :
43 
44  virtual int unpackXtalData(unsigned int stripID, unsigned int xtalID){ return BLOCK_UNPACKED;};
45  virtual void fillEcalElectronicsError( std::unique_ptr<EcalElectronicsIdCollection> * ){};
46 
47 
48  bool zs_;
49  bool checkFeId_;
50  unsigned int expTowerID_;
52  unsigned int expXtalTSamples_;
54  unsigned int lastStripId_;
55  unsigned int lastXtalId_;
56 
57  unsigned int towerId_;
58  unsigned int numbDWInXtalBlock_;
59  unsigned int xtalBlockSize_;
60  unsigned int nTSamples_;
61 
62  unsigned int blockSize_;
63  unsigned int bx_;
64  unsigned int l1_;
65 
66  short * xtalGains_;
67  std::unique_ptr<EcalElectronicsIdCollection> * invalidTTIds_;
68  std::unique_ptr<EcalElectronicsIdCollection> * invalidZSXtalIds_;
69  std::unique_ptr<EcalElectronicsIdCollection> * invalidBlockLengths_;
70 
71 };
72 
73 
74 #endif
unsigned int towerId_
Definition: DCCFEBlock.h:57
std::unique_ptr< EcalElectronicsIdCollection > * invalidTTIds_
Definition: DCCFEBlock.h:67
unsigned int blockSize_
Definition: DCCFEBlock.h:62
std::unique_ptr< EcalElectronicsIdCollection > * invalidBlockLengths_
Definition: DCCFEBlock.h:69
unsigned int expTowerID_
Definition: DCCFEBlock.h:50
bool zs_
Definition: DCCFEBlock.h:45
unsigned int xtalBlockSize_
Definition: DCCFEBlock.h:59
unsigned int getLength() override
Definition: DCCFEBlock.h:40
int unpack(const uint64_t **data, unsigned int *dwToEnd, bool zs, unsigned int expectedTowerID)
Definition: DCCFEBlock.cc:29
virtual void fillEcalElectronicsError(std::unique_ptr< EcalElectronicsIdCollection > *)
Definition: DCCFEBlock.h:45
unsigned int nTSamples_
Definition: DCCFEBlock.h:60
void zsFlag(bool zs)
Definition: DCCFEBlock.h:30
DCCFEBlock(DCCDataUnpacker *u, EcalElectronicsMapper *m, DCCEventBlock *e, bool unpack, bool forceToKeepFRdata)
Definition: DCCFEBlock.cc:9
void updateCollectors() override
Definition: DCCFEBlock.cc:20
unsigned int lastXtalId_
Definition: DCCFEBlock.h:55
~DCCFEBlock() override
Definition: DCCFEBlock.h:28
unsigned int l1_
Definition: DCCFEBlock.h:64
bool forceToKeepFRdata_
Definition: DCCFEBlock.h:51
unsigned long long uint64_t
Definition: Time.h:15
unsigned int bx_
Definition: DCCFEBlock.h:63
unsigned int expXtalTSamples_
Definition: DCCFEBlock.h:52
unsigned int lastStripId_
Definition: DCCFEBlock.h:54
virtual int unpackXtalData(unsigned int stripID, unsigned int xtalID)
Definition: DCCFEBlock.h:44
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:82
virtual int unpack(const uint64_t **data, unsigned int *dwToEnd)
unsigned int numbDWInXtalBlock_
Definition: DCCFEBlock.h:58
void enableFeIdChecks()
Definition: DCCFEBlock.h:32
unsigned int unfilteredDataBlockLength_
Definition: DCCFEBlock.h:53
std::unique_ptr< EcalElectronicsIdCollection > * invalidZSXtalIds_
Definition: DCCFEBlock.h:68
void display(std::ostream &o) override
Definition: DCCFEBlock.cc:254
short * xtalGains_
Definition: DCCFEBlock.h:66
bool checkFeId_
Definition: DCCFEBlock.h:49