Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:10:33

0001 #ifndef DCCSRPBLOCK_HH
0002 #define DCCSRPBLOCK_HH
0003 
0004 /*
0005  *\ Class DCCSRPBlock
0006  *
0007  * Class responsible for SR flag unpacking.
0008  *
0009  * \file DCCSRPBlock.h
0010  *
0011  *
0012  * \author N. Almeida
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