CMS 3D CMS Logo

RPCTwinMuxRawToDigi.h
Go to the documentation of this file.
1 #ifndef EventFilter_RPCRawToDigi_RPCTwinMuxRawToDigi_h
2 #define EventFilter_RPCRawToDigi_RPCTwinMuxRawToDigi_h
3 
4 #include <cstdint>
5 #include <vector>
6 #include <utility>
7 #include <set>
8 
13 
21 
23 
24 namespace edm {
26  class Event;
27  class EventSetup;
28  class ParameterSet;
29  class Run;
30 } // namespace edm
31 
33 public:
35  ~RPCTwinMuxRawToDigi() override;
36 
37  static void compute_crc_64bit(std::uint16_t& crc, std::uint64_t const& word);
38 
40 
41  void beginRun(edm::Run const& run, edm::EventSetup const& setup) override;
42  void produce(edm::Event& event, edm::EventSetup const& setup) override;
43 
44 protected:
45  bool processCDFHeaders(int fed,
46  std::uint64_t const*& word,
47  std::uint64_t const*& word_end,
48  std::uint16_t& crc,
50  bool processCDFTrailers(int fed,
51  unsigned int nwords,
52  std::uint64_t const*& word,
53  std::uint64_t const*& word_end,
54  std::uint16_t& crc,
56  bool processBlock(int fed,
57  std::uint64_t const*& word,
58  std::uint64_t const* word_end,
59  std::uint16_t& crc,
61  std::set<std::pair<RPCDetId, RPCDigi> >& digis) const;
62  bool processTwinMux(int fed,
63  unsigned int amc_number,
64  unsigned int size,
65  std::uint64_t const*& word,
66  std::uint64_t const* word_end,
67  std::uint16_t& crc,
69  std::set<std::pair<RPCDetId, RPCDigi> >& digis) const;
70  void processRPCRecord(int fed,
71  unsigned int amc_number,
72  unsigned int bx_counter,
75  std::set<std::pair<RPCDetId, RPCDigi> >& digis,
76  int bx_min,
77  int bx_max,
78  unsigned int link,
79  unsigned int link_max) const;
80  void putRPCDigis(edm::Event& event, std::set<std::pair<RPCDetId, RPCDigi> > const& digis);
81  void putCounters(edm::Event& event, std::unique_ptr<RPCAMCLinkCounters> counters);
82 
83 protected:
85 
88 
90  std::vector<int> feds_;
96 };
97 
98 #endif // EventFilter_RPCRawToDigi_RPCTwinMuxRawToDigi_h
size
Write out results.
void beginRun(edm::Run const &run, edm::EventSetup const &setup) override
Definition: config.py:1
edm::ESGetToken< RPCAMCLinkMap, RPCTwinMuxLinkMapRcd > es_tm_link_map_br_token_
void processRPCRecord(int fed, unsigned int amc_number, unsigned int bx_counter, rpctwinmux::RPCRecord const &record, RPCAMCLinkCounters &counters, std::set< std::pair< RPCDetId, RPCDigi > > &digis, int bx_min, int bx_max, unsigned int link, unsigned int link_max) const
RPCTwinMuxRawToDigi(edm::ParameterSet const &config)
uint64_t word
TupleMultiplicity< TrackerTraits > const HitToTuple< TrackerTraits > const cms::cuda::AtomicPairCounter GPUCACellT< TrackerTraits > const *__restrict__ uint32_t const *__restrict__ CellNeighborsVector< TrackerTraits > const CellTracksVector< TrackerTraits > const OuterHitOfCell< TrackerTraits > const int32_t uint32_t Counters * counters
edm::EDGetTokenT< FEDRawDataCollection > raw_token_
bool processBlock(int fed, std::uint64_t const *&word, std::uint64_t const *word_end, std::uint16_t &crc, RPCAMCLinkCounters &counters, std::set< std::pair< RPCDetId, RPCDigi > > &digis) const
edm::ESGetToken< RPCAMCLinkMap, RPCTwinMuxLinkMapRcd > es_tm_link_map_token_
bool processTwinMux(int fed, unsigned int amc_number, unsigned int size, std::uint64_t const *&word, std::uint64_t const *word_end, std::uint16_t &crc, RPCAMCLinkCounters &counters, std::set< std::pair< RPCDetId, RPCDigi > > &digis) const
edm::ESWatcher< RPCTwinMuxLinkMapRcd > es_tm_link_map_watcher_
edm::ESGetToken< RPCLBLinkMap, RPCLBLinkMapRcd > es_lb_link_map_token_
unsigned long long uint64_t
Definition: Time.h:13
HLT enums.
static void fillDescriptions(edm::ConfigurationDescriptions &descs)
void produce(edm::Event &event, edm::EventSetup const &setup) override
std::vector< int > feds_
bool processCDFHeaders(int fed, std::uint64_t const *&word, std::uint64_t const *&word_end, std::uint16_t &crc, RPCAMCLinkCounters &counters) const
void putCounters(edm::Event &event, std::unique_ptr< RPCAMCLinkCounters > counters)
static void compute_crc_64bit(std::uint16_t &crc, std::uint64_t const &word)
bool processCDFTrailers(int fed, unsigned int nwords, std::uint64_t const *&word, std::uint64_t const *&word_end, std::uint16_t &crc, RPCAMCLinkCounters &counters) const
edm::ESHandle< RPCLBLinkMap > es_lb_link_map_
edm::ESHandle< RPCAMCLinkMap > es_tm_link_map_
void putRPCDigis(edm::Event &event, std::set< std::pair< RPCDetId, RPCDigi > > const &digis)
Definition: event.py:1
Definition: Run.h:45