File indexing completed on 2024-09-07 04:36:08
0001 #ifndef DCCSRPBLOCK_HH
0002 #define DCCSRPBLOCK_HH
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #include <iostream>
0017 #include <memory>
0018 #include <cstdint>
0019 #include <string>
0020 #include <vector>
0021 #include <map>
0022 #include <utility>
0023
0024 #include "DCCDataBlockPrototype.h"
0025
0026 #include <DataFormats/EcalDigi/interface/EcalDigiCollections.h>
0027 #include <DataFormats/EcalRawData/interface/EcalRawDataCollections.h>
0028 #include <DataFormats/EcalDetId/interface/EcalDetIdCollections.h>
0029
0030 class DCCSRPBlock : public DCCDataBlockPrototype {
0031 public:
0032 DCCSRPBlock(DCCDataUnpacker* u, EcalElectronicsMapper* m, DCCEventBlock* e, bool unpack);
0033
0034 void display(std::ostream& o) override;
0035 using DCCDataBlockPrototype::unpack;
0036 int unpack(const uint64_t** data, unsigned int* dwToEnd, unsigned int numbFlags = SRP_NUMBFLAGS);
0037
0038 unsigned short srFlag(unsigned int feChannel) { return srFlags_[feChannel - 1]; }
0039
0040 protected:
0041 virtual void addSRFlagToCollection() {}
0042
0043 virtual bool checkSrpIdAndNumbSRFlags() { return true; };
0044
0045 unsigned int srpId_;
0046 unsigned int bx_;
0047 unsigned int l1_;
0048 unsigned int nSRFlags_;
0049 unsigned int expNumbSrFlags_;
0050
0051 unsigned short srFlags_[SRP_NUMBFLAGS];
0052 };
0053
0054 #endif