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 
32 public:
33 
36 
38  ~L1TTwinMuxRawToDigi() override;
39 
41  void produce( edm::StreamID, edm::Event & e, const edm::EventSetup& c ) const override;
42 
44  bool fillRawData( edm::Event& e,
47  L1MuDTChambPhContainer::Phi_Container& phi_out_data ) const;
48 
49  void processFed( int twinmuxfed, int wheel, std::array<short, 12> const& twinMuxAmcSec,
53  L1MuDTChambPhContainer::Phi_Container& phi_out_data ) const;
54 
55 private:
56 
57  bool debug_;
58  size_t nfeds_;
60  std::vector<int> feds_;
61  std::vector<int> wheels_;
62  std::vector<long long int> amcsecmap_;
63  std::vector < std::array<short, 12> > amcsec_;
64 
65  // utilities
66  inline unsigned char* readline( unsigned char* lineFED, int & lines, long & dataWord ) const
67  {
68  dataWord = *( (long*) lineFED );
69  lineFED += 8;
70  ++lines;
71  return lineFED;
72  }
73 
75 
77 
78  int normBx(int bx_, int bxCnt_) const;
79  int radAngConversion( int radAng_ ) const;
80  int benAngConversion( int benAng_ ) const;
81 
82 };
83 
84 
85 #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:82
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