CMS 3D CMS Logo

RPCReadOutMapping.h
Go to the documentation of this file.
1 #ifndef RPCReadOutMapping_H
2 #define RPCReadOutMapping_H
3 
10 
11 #include <map>
12 #include <vector>
13 #include <utility>
14 #include <string>
15 
19 #include <cstdint>
20 class LinkBoardSpec;
21 
23 public:
25  typedef std::pair<uint32_t, int> StripInDetUnit;
26 
28  virtual ~RPCReadOutMapping() {}
29 
31  const DccSpec* dcc(int dccId) const;
32 
34  std::pair<int, int> dccNumberRange() const;
35 
37  std::vector<const DccSpec*> dccList() const;
38 
40  void add(const DccSpec& dcc);
41 
43  const std::string& version() const { return theVersion; }
44 
46  virtual const LinkBoardSpec* location(const LinkBoardElectronicIndex& ele) const;
47 
49  virtual StripInDetUnit detUnitFrame(const LinkBoardSpec& location, const LinkBoardPackedStrip& packedStrip) const;
50 
52  std::vector<std::pair<LinkBoardElectronicIndex, LinkBoardPackedStrip> > rawDataFrame(
53  const StripInDetUnit& duFrame) const;
54 
55  // TEMPORARY
56  std::vector<const LinkBoardSpec*> getLBforChamber(const std::string& name) const;
57  std::pair<LinkBoardElectronicIndex, int> getRAWSpecForCMSChamberSrip(uint32_t detId,
58  int strip,
59  int dccInputChannel) const;
60 
61 private:
62  typedef std::map<int, DccSpec>::const_iterator IMAP;
63  std::map<int, DccSpec> theFeds;
65 
67 };
68 
69 #endif // RPCReadOutMapping_H
std::vector< const LinkBoardSpec * > getLBforChamber(const std::string &name) const
RPCReadOutMapping(const std::string &version="")
std::vector< const DccSpec * > dccList() const
all FEDs in map
std::map< int, DccSpec >::const_iterator IMAP
virtual ~RPCReadOutMapping()
const std::string & version() const
version as string
std::map< int, DccSpec > theFeds
std::pair< LinkBoardElectronicIndex, int > getRAWSpecForCMSChamberSrip(uint32_t detId, int strip, int dccInputChannel) const
void add(const DccSpec &dcc)
attach FED to map
std::string theVersion
std::pair< int, int > dccNumberRange() const
Range of FED IDs in map (min and max id)
virtual StripInDetUnit detUnitFrame(const LinkBoardSpec &location, const LinkBoardPackedStrip &packedStrip) const
convert strip location as in raw data (LB and LBchannel) to detUnit frame
virtual const LinkBoardSpec * location(const LinkBoardElectronicIndex &ele) const
conversion between electronic and detector indexing
std::vector< std::pair< LinkBoardElectronicIndex, LinkBoardPackedStrip > > rawDataFrame(const StripInDetUnit &duFrame) const
connection "paths" that lead from one digi to one strip
#define COND_SERIALIZABLE
Definition: Serializable.h:38
const DccSpec * dcc(int dccId) const
FED identified by ID.
unsigned dccId(DetId const &)
std::pair< uint32_t, int > StripInDetUnit
first member is DetUnit ID, second strip in DetUnit frame