1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
#ifndef CSCChamberMap_h
#define CSCChamberMap_h
#include "CondFormats/Serialization/interface/Serializable.h"
#include "CondFormats/CSCObjects/interface/CSCMapItem.h"
#include <map>
class CSCDetId;
class CSCChamberMap {
public:
CSCChamberMap();
~CSCChamberMap();
/// Accessor for item according to key
const CSCMapItem::MapItem& item(int key) const;
/// Interface required use in digi-to-raw
/// vme crate id for given DetId
int crate(const CSCDetId&) const;
/// dmb id for given DetId
int dmb(const CSCDetId&) const;
/// ddu id for given DetId
int ddu(const CSCDetId&) const;
/// slink id for given DetId
int slink(const CSCDetId&) const;
/// ddu slot for given DetId
int dduSlot(const CSCDetId&) const;
/// ddu input for given DetId
int dduInput(const CSCDetId&) const;
/// Data are public. @@Should be private?
typedef std::map<int, CSCMapItem::MapItem> CSCMap;
CSCMap ch_map;
private:
/**
* Decimal-encoded index (as used inside db - the 'Igor' index)
*
* This is the decimal integer ie*100000 + is*10000 + ir*1000 + ic*10 + il <br>
* (ie=1-2, is=1-4, ir=1-4, ic=1-36, il=1-6) <br>
* But in this case il=0 labels entire chamber.
*/
int dbIndex(const CSCDetId&) const;
COND_SERIALIZABLE;
};
#endif
|