CMS 3D CMS Logo

L1TTwinMuxRawToDigi.h
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
13 //
14 //--------------------------------------------------
15 #ifndef L1TXRAWTODIGI_L1TTWINMUXRAWTODIGI_HH
16 #define L1TXRAWTODIGI_L1TTWINMUXRAWTODIGI_HH
17 
22 
27 
28 #include <string>
29 
31 public:
34 
36  ~L1TTwinMuxRawToDigi() override;
37 
39  void produce(edm::StreamID, edm::Event& e, const edm::EventSetup& c) const override;
40 
42  bool fillRawData(edm::Event& e,
45  L1MuDTChambPhContainer::Phi_Container& phi_out_data) const;
46 
47  void processFed(int twinmuxfed,
48  int wheel,
49  std::array<short, 12> const& twinMuxAmcSec,
53  L1MuDTChambPhContainer::Phi_Container& phi_out_data) const;
54 
55 private:
56  bool debug_;
57  size_t nfeds_;
59  std::vector<int> feds_;
60  std::vector<int> wheels_;
61  std::vector<long long int> amcsecmap_;
62  std::vector<std::array<short, 12> > amcsec_;
63 
64  // utilities
65  inline unsigned char* readline(unsigned char* lineFED, int& lines, long& dataWord) const {
66  dataWord = *((long*)lineFED);
67  lineFED += 8;
68  ++lines;
69  return lineFED;
70  }
71 
73 
75 
76  int normBx(int bx_, int bxCnt_) const;
77  int radAngConversion(int radAng_) const;
78  int benAngConversion(int benAng_) const;
79 };
80 
81 #endif
unsigned char * readline(unsigned char *lineFED, int &lines, long &dataWord) const
~L1TTwinMuxRawToDigi() override
Destructor.
std::vector< long long int > amcsecmap_
std::vector< std::array< short, 12 > > amcsec_
L1TTwinMuxRawToDigi(const edm::ParameterSet &pset)
Constructor.
edm::InputTag getDTTM7InputTag() const
int normBx(int bx_, int bxCnt_) const
int benAngConversion(int benAng_) const
void produce(edm::StreamID, edm::Event &e, const edm::EventSetup &c) const override
Produce digis out of raw data.
bool fillRawData(edm::Event &e, L1MuDTChambPhContainer::Phi_Container &phi_data, L1MuDTChambThContainer::The_Container &the_data, L1MuDTChambPhContainer::Phi_Container &phi_out_data) const
Generate and fill FED raw data for a full event.
std::vector< int > feds_
std::vector< L1MuDTChambPhDigi > Phi_Container
std::vector< L1MuDTChambThDigi > The_Container
std::vector< int > wheels_
edm::EDGetTokenT< FEDRawDataCollection > Raw_token
int radAngConversion(int radAng_) const
edm::InputTag DTTM7InputTag_
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
void processFed(int twinmuxfed, int wheel, std::array< short, 12 > const &twinMuxAmcSec, edm::Handle< FEDRawDataCollection > data, L1MuDTChambPhContainer::Phi_Container &phi_data, L1MuDTChambThContainer::The_Container &the_data, L1MuDTChambPhContainer::Phi_Container &phi_out_data) const