1 package org.lcsim.detector.tracker.silicon;
2
3 import org.lcsim.detector.DetectorIdentifierHelper;
4 import org.lcsim.detector.IDetectorElement;
5 import org.lcsim.detector.identifier.IExpandedIdentifier;
6 import org.lcsim.detector.identifier.IIdentifier;
7 import org.lcsim.detector.identifier.IIdentifierDictionary;
8 import org.lcsim.detector.identifier.IIdentifierField;
9
10
11
12
13
14
15
16 public class SiTrackerIdentifierHelper
17 extends DetectorIdentifierHelper
18 {
19 int moduleIdx=-1;
20 int sensorIdx=-1;
21 int sideIdx=-1;
22 int electrodeIdx=-1;
23
24 IIdentifierField moduleField = null;
25 IIdentifierField sensorField = null;
26 IIdentifierField sideField = null;
27 IIdentifierField electrodeField = null;
28
29 public SiTrackerIdentifierHelper(IDetectorElement subdetector, IIdentifierDictionary iddict, SystemMap sysMap)
30 {
31 super(subdetector, iddict, sysMap);
32
33 moduleIdx = iddict.getFieldIndex("module");
34 sensorIdx = iddict.getFieldIndex("sensor");
35 sideIdx = iddict.getFieldIndex("side");
36 electrodeIdx = iddict.getFieldIndex("strip");
37
38 moduleField = iddict.getField(moduleIdx);
39 sensorField = iddict.getField(sensorIdx);
40 sideField = iddict.getField(sideIdx);
41 electrodeField = iddict.getField(electrodeIdx);
42 }
43
44
45
46
47
48 public int getModuleValue(IIdentifier id)
49 {
50 return moduleField.unpack(id);
51 }
52
53
54
55
56
57 public int getSensorValue(IIdentifier id)
58 {
59 return sensorField.unpack(id);
60 }
61
62
63
64
65
66 public int getSideValue(IIdentifier id)
67 {
68 return sideField.unpack(id);
69 }
70
71
72
73
74
75 public int getElectrodeValue(IIdentifier id)
76 {
77 return electrodeField.unpack(id);
78 }
79
80
81
82
83
84 public int getModuleValue(IExpandedIdentifier id)
85 {
86 return id.getValue(moduleIdx);
87 }
88
89
90
91
92
93 public int getSensorValue(IExpandedIdentifier id)
94 {
95 return id.getValue(sensorIdx);
96 }
97
98
99
100
101
102 public int getSideValue(IExpandedIdentifier id)
103 {
104 return id.getValue(sideIdx);
105 }
106
107
108
109
110
111 public int getElectrodeValue(IExpandedIdentifier id)
112 {
113 return id.getValue(electrodeIdx);
114 }
115
116
117
118
119
120 public int getModuleIndex()
121 {
122 return moduleIdx;
123 }
124
125
126
127
128
129 public int getSensorIndex()
130 {
131 return sensorIdx;
132 }
133
134
135
136
137
138 public int getSideIndex()
139 {
140 return sideIdx;
141 }
142
143
144
145
146
147 public int getElectrodeIndex()
148 {
149 return electrodeIdx;
150 }
151 }