18 {
20 static const unsigned int kStationNameShift = 24;
21
22 static const unsigned int kStationEtaShift = 19;
23
24 static const unsigned int kStationPhiShift = 13;
25
26
27
28 static const unsigned int kMdtMultilayerShift = 9;
29
30 static const unsigned int kMdtTubeLayerShift = 7;
31
32
33 switch (sort_by) {
35 m_id.second =
id.getIdInt();
36 break;
37 }
39 m_id.second = (
id.stationNameIndex() << kStationNameShift) | (
id.etaIndex() << kStationEtaShift) |
40 (id.phiIndex() << kStationPhiShift) | (id.mdtMultilayerIndex() << kMdtMultilayerShift) |
41 (id.mdtTubeLayerIndex() << kMdtTubeLayerShift);
42 break;
43 }
45 m_id.second = (
id.stationNameIndex() << kStationNameShift) | (
id.etaIndex() << kStationEtaShift) |
46 (id.phiIndex() << kStationPhiShift) | (id.mdtMultilayerIndex() << kMdtMultilayerShift);
47 break;
48 }
50 m_id.second = (
id.stationNameIndex() << kStationNameShift) | (
id.etaIndex() << kStationEtaShift) |
51 (id.phiIndex() << kStationPhiShift);
52 break;
53 }
55
56 m_id.second =
id.mdtMezzanine();
57 break;
58 }
59 default: {
61 log << MSG::WARNING <<
"HistogramId :: Initialize: sort_by arguemnt is invalid!" <<
endmsg;
62 }
63 }
64
65 std::ostringstream
os;
66 if (
m_id.second == -999999) {
68 } else {
69
70 os <<
id.stationNumberToFixedStationString(
id.
stationName()) <<
"_eta";
73 else
75 os << std::abs(
id.
eta()) <<
"_phi" <<
id.phi();
76
77 if (sort_by !=
CHAMBER)
os <<
"_ml" <<
id.mdtMultilayer();
78
80
81 if (sort_by ==
TUBE)
os <<
"_tb" <<
id.mdtTube();
82
83 if (sort_by ==
MEZZ_CARD) {
os <<
"_mez" << (
id.mdtMezzanine() % 100); }
84
85 os <<
"_num" <<
m_id.second <<
"_" << sort_by;
86 }
87
91 }
Scalar eta() const
pseudorapidity method
static const int TUBE
valid values of the sort_by argument of the Initialize function
static const int MEZZ_CARD
static const int MULTILAYER
IMessageSvc * getMessageSvc(bool quiet=false)