39 hOWiresAndCLCT = ibooker.
book2D(
"hOWiresAndCLCT",
"Wire and CLCT Digi Occupancy ", 36, 0.5, 36.5, 20, 0.5, 20.5);
40 hOWires = ibooker.
book2D(
"hOWires",
"Wire Digi Occupancy", 36, 0.5, 36.5, 20, 0.5, 20.5);
41 hOWireSerial = ibooker.
book1D(
"hOWireSerial",
"Wire Occupancy by Chamber Serial", 601, -0.5, 600.5);
43 hOStrips = ibooker.
book2D(
"hOStrips",
"Strip Digi Occupancy", 36, 0.5, 36.5, 20, 0.5, 20.5);
44 hOStripSerial = ibooker.
book1D(
"hOStripSerial",
"Strip Occupancy by Chamber Serial", 601, -0.5, 600.5);
47 ibooker.
book2D(
"hOStripsAndWiresAndCLCT",
"Strip And Wire And CLCT Digi Occupancy", 36, 0.5, 36.5, 20, 0.5, 20.5);
49 hORecHits = ibooker.
book2D(
"hORecHits",
"RecHit Occupancy", 36, 0.5, 36.5, 20, 0.5, 20.5);
50 hORecHitsSerial = ibooker.
book1D(
"hORecHitSerial",
"RecHit Occupancy by Chamber Serial", 601, -0.5, 600.5);
52 hOSegments = ibooker.
book2D(
"hOSegments",
"Segment Occupancy", 36, 0.5, 36.5, 20, 0.5, 20.5);
53 hOSegmentsSerial = ibooker.
book1D(
"hOSegmentSerial",
"Segment Occupancy by Chamber Serial", 601, -0.5, 600.5);
61 ibooker.
book1D(
"hWirenGroupsTotal",
"Fired Wires per Event; # Wiregroups Fired", 250, 0., 250.);
64 ibooker.
book1D(
"hWirenGroupsTotalHi",
"Fired Wires per Event; # Wiregroups Fired", 250, 0., 1000.);
66 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m42",
"Wire TBin Fired (ME -4/2); Time Bin (25ns)", 17, -0.5, 16.5));
67 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m41",
"Wire TBin Fired (ME -4/1); Time Bin (25ns)", 17, -0.5, 16.5));
68 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m32",
"Wire TBin Fired (ME -3/2); Time Bin (25ns)", 17, -0.5, 16.5));
69 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m31",
"Wire TBin Fired (ME -3/1); Time Bin (25ns)", 17, -0.5, 16.5));
70 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m22",
"Wire TBin Fired (ME -2/2); Time Bin (25ns)", 17, -0.5, 16.5));
71 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m21",
"Wire TBin Fired (ME -2/1); Time Bin (25ns)", 17, -0.5, 16.5));
72 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m11a",
"Wire TBin Fired (ME -1/1a); Time Bin (25ns)", 17, -0.5, 16.5));
73 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m13",
"Wire TBin Fired (ME -1/3); Time Bin (25ns)", 17, -0.5, 16.5));
74 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m12",
"Wire TBin Fired (ME -1/2); Time Bin (25ns)", 17, -0.5, 16.5));
75 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m11b",
"Wire TBin Fired (ME -1/1b); Time Bin (25ns)", 17, -0.5, 16.5));
76 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p11b",
"Wire TBin Fired (ME +1/1b); Time Bin (25ns)", 17, -0.5, 16.5));
77 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p12",
"Wire TBin Fired (ME +1/2); Time Bin (25ns)", 17, -0.5, 16.5));
78 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p13",
"Wire TBin Fired (ME +1/3); Time Bin (25ns)", 17, -0.5, 16.5));
79 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p11a",
"Wire TBin Fired (ME +1/1a); Time Bin (25ns)", 17, -0.5, 16.5));
80 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p21",
"Wire TBin Fired (ME +2/1); Time Bin (25ns)", 17, -0.5, 16.5));
81 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p22",
"Wire TBin Fired (ME +2/2); Time Bin (25ns)", 17, -0.5, 16.5));
82 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p31",
"Wire TBin Fired (ME +3/1); Time Bin (25ns)", 17, -0.5, 16.5));
83 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p32",
"Wire TBin Fired (ME +3/2); Time Bin (25ns)", 17, -0.5, 16.5));
84 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p41",
"Wire TBin Fired (ME +4/1); Time Bin (25ns)", 17, -0.5, 16.5));
85 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p42",
"Wire TBin Fired (ME +4/2); Time Bin (25ns)", 17, -0.5, 16.5));
87 ibooker.
book1D(
"hWireNumber_m42",
"Wiregroup Number Fired (ME -4/2); Wiregroup #", 113, -0.5, 112.5));
89 ibooker.
book1D(
"hWireNumber_m41",
"Wiregroup Number Fired (ME -4/1); Wiregroup #", 113, -0.5, 112.5));
91 ibooker.
book1D(
"hWireNumber_m32",
"Wiregroup Number Fired (ME -3/2); Wiregroup #", 113, -0.5, 112.5));
93 ibooker.
book1D(
"hWireNumber_m31",
"Wiregroup Number Fired (ME -3/1); Wiregroup #", 113, -0.5, 112.5));
95 ibooker.
book1D(
"hWireNumber_m22",
"Wiregroup Number Fired (ME -2/2); Wiregroup #", 113, -0.5, 112.5));
97 ibooker.
book1D(
"hWireNumber_m21",
"Wiregroup Number Fired (ME -2/1); Wiregroup #", 113, -0.5, 112.5));
99 ibooker.
book1D(
"hWireNumber_m11a",
"Wiregroup Number Fired (ME -1/1a); Wiregroup #", 113, -0.5, 112.5));
101 ibooker.
book1D(
"hWireNumber_m13",
"Wiregroup Number Fired (ME -1/3); Wiregroup #", 113, -0.5, 112.5));
103 ibooker.
book1D(
"hWireNumber_m12",
"Wiregroup Number Fired (ME -1/2); Wiregroup #", 113, -0.5, 112.5));
105 ibooker.
book1D(
"hWireNumber_m11b",
"Wiregroup Number Fired (ME -1/1b); Wiregroup #", 113, -0.5, 112.5));
107 ibooker.
book1D(
"hWireNumber_p11b",
"Wiregroup Number Fired (ME +1/1b); Wiregroup #", 113, -0.5, 112.5));
109 ibooker.
book1D(
"hWireNumber_p12",
"Wiregroup Number Fired (ME +1/2); Wiregroup #", 113, -0.5, 112.5));
111 ibooker.
book1D(
"hWireNumber_p13",
"Wiregroup Number Fired (ME +1/3); Wiregroup #", 113, -0.5, 112.5));
113 ibooker.
book1D(
"hWireNumber_p11a",
"Wiregroup Number Fired (ME +1/1a); Wiregroup #", 113, -0.5, 112.5));
115 ibooker.
book1D(
"hWireNumber_p21",
"Wiregroup Number Fired (ME +2/1); Wiregroup #", 113, -0.5, 112.5));
117 ibooker.
book1D(
"hWireNumber_p22",
"Wiregroup Number Fired (ME +2/2); Wiregroup #", 113, -0.5, 112.5));
119 ibooker.
book1D(
"hWireNumber_p31",
"Wiregroup Number Fired (ME +3/1); Wiregroup #", 113, -0.5, 112.5));
121 ibooker.
book1D(
"hWireNumber_p32",
"Wiregroup Number Fired (ME +3/2); Wiregroup #", 113, -0.5, 112.5));
123 ibooker.
book1D(
"hWireNumber_p41",
"Wiregroup Number Fired (ME +4/1); Wiregroup #", 113, -0.5, 112.5));
125 ibooker.
book1D(
"hWireNumber_p42",
"Wiregroup Number Fired (ME +4/2); Wiregroup #", 113, -0.5, 112.5));
131 "hStripNFired",
"Fired Strips per Event; # Strips Fired (above 13 ADC)", 400, 0., 400.);
134 "hStripNFiredHi",
"Fired Strips per Event; # Strips Fired (above 13 ADC)", 500, 0., 2000.);
137 ibooker.
book1D(
"hStripNumber_m42",
"Strip Number Fired (ME -4/2); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
139 ibooker.
book1D(
"hStripNumber_m41",
"Strip Number Fired (ME -4/1); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
141 ibooker.
book1D(
"hStripNumber_m32",
"Strip Number Fired (ME -3/2); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
143 ibooker.
book1D(
"hStripNumber_m31",
"Strip Number Fired (ME -3/1); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
145 ibooker.
book1D(
"hStripNumber_m22",
"Strip Number Fired (ME -2/2); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
147 ibooker.
book1D(
"hStripNumber_m21",
"Strip Number Fired (ME -2/1); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
149 "hStripNumber_m11a",
"Strip Number Fired (ME -1/1a); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
151 ibooker.
book1D(
"hStripNumber_m13",
"Strip Number Fired (ME -1/3); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
153 ibooker.
book1D(
"hStripNumber_m12",
"Strip Number Fired (ME -1/2); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
155 "hStripNumber_m11b",
"Strip Number Fired (ME -1/1b); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
157 "hStripNumber_p11b",
"Strip Number Fired (ME +1/1b); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
159 ibooker.
book1D(
"hStripNumber_p12",
"Strip Number Fired (ME +1/2); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
161 ibooker.
book1D(
"hStripNumber_p13",
"Strip Number Fired (ME +1/3); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
163 "hStripNumber_p11a",
"Strip Number Fired (ME +1/1a); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
165 ibooker.
book1D(
"hStripNumber_p21",
"Strip Number Fired (ME +2/1); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
167 ibooker.
book1D(
"hStripNumber_p22",
"Strip Number Fired (ME +2/2); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
169 ibooker.
book1D(
"hStripNumber_p31",
"Strip Number Fired (ME +3/1); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
171 ibooker.
book1D(
"hStripNumber_p32",
"Strip Number Fired (ME +3/2); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
173 ibooker.
book1D(
"hStripNumber_p41",
"Strip Number Fired (ME +4/1); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
175 "hStripNumber_p42",
"Stripgroup Number Fired (ME +4/2); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
181 ibooker.
book1D(
"hStripPedMEm42",
"Pedestal Noise Distribution Chamber ME -4/2; ADC Counts", 50, -25., 25.));
183 ibooker.
book1D(
"hStripPedMEm41",
"Pedestal Noise Distribution Chamber ME -4/1; ADC Counts", 50, -25., 25.));
185 ibooker.
book1D(
"hStripPedMEm32",
"Pedestal Noise Distribution Chamber ME -3/2; ADC Counts", 50, -25., 25.));
187 ibooker.
book1D(
"hStripPedMEm31",
"Pedestal Noise Distribution Chamber ME -3/1; ADC Counts", 50, -25., 25.));
189 ibooker.
book1D(
"hStripPedMEm22",
"Pedestal Noise Distribution Chamber ME -2/2; ADC Counts", 50, -25., 25.));
191 ibooker.
book1D(
"hStripPedMEm21",
"Pedestal Noise Distribution Chamber ME -2/1; ADC Counts", 50, -25., 25.));
193 ibooker.
book1D(
"hStripPedMEm11a",
"Pedestal Noise Distribution Chamber ME -1/1; ADC Counts", 50, -25., 25.));
195 ibooker.
book1D(
"hStripPedMEm13",
"Pedestal Noise Distribution Chamber ME -1/3; ADC Counts", 50, -25., 25.));
197 ibooker.
book1D(
"hStripPedMEm12",
"Pedestal Noise Distribution Chamber ME -1/2; ADC Counts", 50, -25., 25.));
199 ibooker.
book1D(
"hStripPedMEm11b",
"Pedestal Noise Distribution Chamber ME -1/1; ADC Counts", 50, -25., 25.));
201 ibooker.
book1D(
"hStripPedMEp11b",
"Pedestal Noise Distribution Chamber ME +1/1; ADC Counts", 50, -25., 25.));
203 ibooker.
book1D(
"hStripPedMEp12",
"Pedestal Noise Distribution Chamber ME +1/2; ADC Counts", 50, -25., 25.));
205 ibooker.
book1D(
"hStripPedMEp13",
"Pedestal Noise Distribution Chamber ME +1/3; ADC Counts", 50, -25., 25.));
207 ibooker.
book1D(
"hStripPedMEp11a",
"Pedestal Noise Distribution Chamber ME +1/1; ADC Counts", 50, -25., 25.));
209 ibooker.
book1D(
"hStripPedMEp21",
"Pedestal Noise Distribution Chamber ME +2/1; ADC Counts", 50, -25., 25.));
211 ibooker.
book1D(
"hStripPedMEp22",
"Pedestal Noise Distribution Chamber ME +2/2; ADC Counts", 50, -25., 25.));
213 ibooker.
book1D(
"hStripPedMEp31",
"Pedestal Noise Distribution Chamber ME +3/1; ADC Counts", 50, -25., 25.));
215 ibooker.
book1D(
"hStripPedMEp32",
"Pedestal Noise Distribution Chamber ME +3/2; ADC Counts", 50, -25., 25.));
217 ibooker.
book1D(
"hStripPedMEp41",
"Pedestal Noise Distribution Chamber ME +4/1; ADC Counts", 50, -25., 25.));
219 ibooker.
book1D(
"hStripPedMEp42",
"Pedestal Noise Distribution Chamber ME +4/2; ADC Counts", 50, -25., 25.));
225 hRHnrechits = ibooker.
book1D(
"hRHnrechits",
"RecHits per Event; # of RecHits", 100, 0., 100.);
227 hRHnrechitsHi = ibooker.
book1D(
"hRHnrechitsHi",
"RecHits per Event; # of RecHits", 250, 0., 1000.);
230 "hRHGlobalp1",
"recHit global X,Y station +1; Global X (cm); Global Y (cm)", 100, -800., 800., 100, -800., 800.));
232 "hRHGlobalp2",
"recHit global X,Y station +2; Global X (cm); Global Y (cm)", 100, -800., 800., 100, -800., 800.));
234 "hRHGlobalp3",
"recHit global X,Y station +3; Global X (cm); Global Y (cm)", 100, -800., 800., 100, -800., 800.));
236 "hRHGlobalp4",
"recHit global X,Y station +4; Global X (cm); Global Y (cm)", 100, -800., 800., 100, -800., 800.));
238 "hRHGlobalm1",
"recHit global X,Y station -1; Global X (cm); Global Y (cm)", 100, -800., 800., 100, -800., 800.));
240 "hRHGlobalm2",
"recHit global X,Y station -2; Global X (cm); Global Y (cm)", 100, -800., 800., 100, -800., 800.));
242 "hRHGlobalm3",
"recHit global X,Y station -3; Global X (cm); Global Y (cm)", 100, -800., 800., 100, -800., 800.));
244 "hRHGlobalm4",
"recHit global X,Y station -4; Global X (cm); Global Y (cm)", 100, -800., 800., 100, -800., 800.));
245 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm42",
"Sum 3x3 recHit Charge (ME -4/2); ADC counts", 100, 0, 2000));
246 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm41",
"Sum 3x3 recHit Charge (ME -4/1); ADC counts", 100, 0, 2000));
247 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm32",
"Sum 3x3 recHit Charge (ME -3/2); ADC counts", 100, 0, 2000));
248 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm31",
"Sum 3x3 recHit Charge (ME -3/1); ADC counts", 100, 0, 2000));
249 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm22",
"Sum 3x3 recHit Charge (ME -2/2); ADC counts", 100, 0, 2000));
250 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm21",
"Sum 3x3 recHit Charge (ME -2/1); ADC counts", 100, 0, 2000));
251 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm11a",
"Sum 3x3 recHit Charge (ME -1/1a); ADC counts", 100, 0, 4000));
252 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm13",
"Sum 3x3 recHit Charge (ME -1/3); ADC counts", 100, 0, 2000));
253 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm12",
"Sum 3x3 recHit Charge (ME -1/2); ADC counts", 100, 0, 2000));
254 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm11b",
"Sum 3x3 recHit Charge (ME -1/1b); ADC counts", 100, 0, 4000));
255 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp11b",
"Sum 3x3 recHit Charge (ME +1/1b); ADC counts", 100, 0, 4000));
256 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp12",
"Sum 3x3 recHit Charge (ME +1/2); ADC counts", 100, 0, 2000));
257 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp13",
"Sum 3x3 recHit Charge (ME +1/3); ADC counts", 100, 0, 2000));
258 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp11a",
"Sum 3x3 recHit Charge (ME +1/1a); ADC counts", 100, 0, 4000));
259 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp21",
"Sum 3x3 recHit Charge (ME +2/1); ADC counts", 100, 0, 2000));
260 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp22",
"Sum 3x3 recHit Charge (ME +2/2); ADC counts", 100, 0, 2000));
261 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp31",
"Sum 3x3 recHit Charge (ME +3/1); ADC counts", 100, 0, 2000));
262 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp32",
"Sum 3x3 recHit Charge (ME +3/2); ADC counts", 100, 0, 2000));
263 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp41",
"Sum 3x3 recHit Charge (ME +4/1); ADC counts", 100, 0, 2000));
264 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp42",
"Sum 3x3 recHit Charge (ME +4/2); ADC counts", 100, 0, 2000));
265 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm42",
"Charge Ratio (Ql+Qr)/Qt (ME -4/2); (Ql+Qr)/Qt", 100, -0.1, 1.1));
266 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm41",
"Charge Ratio (Ql+Qr)/Qt (ME -4/1); (Ql+Qr)/Qt", 100, -0.1, 1.1));
267 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm32",
"Charge Ratio (Ql+Qr)/Qt (ME -3/2); (Ql+Qr)/Qt", 100, -0.1, 1.1));
268 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm31",
"Charge Ratio (Ql+Qr)/Qt (ME -3/1); (Ql+Qr)/Qt", 100, -0.1, 1.1));
269 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm22",
"Charge Ratio (Ql+Qr)/Qt (ME -2/2); (Ql+Qr)/Qt", 100, -0.1, 1.1));
270 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm21",
"Charge Ratio (Ql+Qr)/Qt (ME -2/1); (Ql+Qr)/Qt", 100, -0.1, 1.1));
272 ibooker.
book1D(
"hRHRatioQm11a",
"Charge Ratio (Ql+Qr)/Qt (ME -1/1a); (Ql+Qr)/Qt", 100, -0.1, 1.1));
273 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm13",
"Charge Ratio (Ql+Qr)/Qt (ME -1/3); (Ql+Qr)/Qt", 100, -0.1, 1.1));
274 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm12",
"Charge Ratio (Ql+Qr)/Qt (ME -1/2); (Ql+Qr)/Qt", 100, -0.1, 1.1));
276 ibooker.
book1D(
"hRHRatioQm11b",
"Charge Ratio (Ql+Qr)/Qt (ME -1/1b); (Ql+Qr)/Qt", 100, -0.1, 1.1));
278 ibooker.
book1D(
"hRHRatioQp11b",
"Charge Ratio (Ql+Qr)/Qt (ME +1/1b); (Ql+Qr)/Qt", 100, -0.1, 1.1));
279 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp12",
"Charge Ratio (Ql+Qr)/Qt (ME +1/2); (Ql+Qr)/Qt", 100, -0.1, 1.1));
280 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp13",
"Charge Ratio (Ql+Qr)/Qt (ME +1/3); (Ql+Qr)/Qt", 100, -0.1, 1.1));
282 ibooker.
book1D(
"hRHRatioQp11a",
"Charge Ratio (Ql+Qr)/Qt (ME +1/1a); (Ql+Qr)/Qt", 100, -0.1, 1.1));
283 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp21",
"Charge Ratio (Ql+Qr)/Qt (ME +2/1); (Ql+Qr)/Qt", 100, -0.1, 1.1));
284 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp22",
"Charge Ratio (Ql+Qr)/Qt (ME +2/2); (Ql+Qr)/Qt", 100, -0.1, 1.1));
285 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp31",
"Charge Ratio (Ql+Qr)/Qt (ME +3/1); (Ql+Qr)/Qt", 100, -0.1, 1.1));
286 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp32",
"Charge Ratio (Ql+Qr)/Qt (ME +3/2); (Ql+Qr)/Qt", 100, -0.1, 1.1));
287 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp41",
"Charge Ratio (Ql+Qr)/Qt (ME +4/1); (Ql+Qr)/Qt", 100, -0.1, 1.1));
288 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp42",
"Charge Ratio (Ql+Qr)/Qt (ME +4/2); (Ql+Qr)/Qt", 100, -0.1, 1.1));
289 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm42",
"recHit Time (ME -4/2); ns", 200, -500., 500.));
290 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm41",
"recHit Time (ME -4/1); ns", 200, -500., 500.));
291 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm32",
"recHit Time (ME -3/2); ns", 200, -500., 500.));
292 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm31",
"recHit Time (ME -3/1); ns", 200, -500., 500.));
293 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm22",
"recHit Time (ME -2/2); ns", 200, -500., 500.));
294 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm21",
"recHit Time (ME -2/1); ns", 200, -500., 500.));
295 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm11a",
"recHit Time (ME -1/1a); ns", 200, -500., 500.));
296 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm13",
"recHit Time (ME -1/3); ns", 200, -500., 500.));
297 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm12",
"recHit Time (ME -1/2); ns", 200, -500., 500.));
298 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm11b",
"recHit Time (ME -1/1b); ns", 200, -500., 500.));
299 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp11b",
"recHit Time (ME +1/1b); ns", 200, -500., 500.));
300 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp12",
"recHit Time (ME +1/2); ns", 200, -500., 500.));
301 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp13",
"recHit Time (ME +1/3); ns", 200, -500., 500.));
302 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp11a",
"recHit Time (ME +1/1a); ns", 200, -500., 500.));
303 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp21",
"recHit Time (ME +2/1); ns", 200, -500., 500.));
304 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp22",
"recHit Time (ME +2/2); ns", 200, -500., 500.));
305 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp31",
"recHit Time (ME +3/1); ns", 200, -500., 500.));
306 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp32",
"recHit Time (ME +3/2); ns", 200, -500., 500.));
307 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp41",
"recHit Time (ME +4/1); ns", 200, -500., 500.));
308 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp42",
"recHit Time (ME +4/2); ns", 200, -500., 500.));
309 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem42",
"Anode recHit Time (ME -4/2); ns", 80, -500., 500.));
310 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem41",
"Anode recHit Time (ME -4/1); ns", 80, -500., 500.));
311 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem32",
"Anode recHit Time (ME -3/2); ns", 80, -500., 500.));
312 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem31",
"Anode recHit Time (ME -3/1); ns", 80, -500., 500.));
313 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem22",
"Anode recHit Time (ME -2/2); ns", 80, -500., 500.));
314 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem21",
"Anode recHit Time (ME -2/1); ns", 80, -500., 500.));
315 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem11a",
"Anode recHit Time (ME -1/1a); ns", 80, -500., 500.));
316 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem13",
"Anode recHit Time (ME -1/3); ns", 80, -500., 500.));
317 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem12",
"Anode recHit Time (ME -1/2); ns", 80, -500., 500.));
318 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem11b",
"Anode recHit Time (ME -1/1b); ns", 80, -500., 500.));
319 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep11b",
"Anode recHit Time (ME +1/1b); ns", 80, -500., 500.));
320 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep12",
"Anode recHit Time (ME +1/2); ns", 80, -500., 500.));
321 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep13",
"Anode recHit Time (ME +1/3); ns", 80, -500., 500.));
322 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep11a",
"Anode recHit Time (ME +1/1a); ns", 80, -500., 500.));
323 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep21",
"Anode recHit Time (ME +2/1); ns", 80, -500., 500.));
324 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep22",
"Anode recHit Time (ME +2/2); ns", 80, -500., 500.));
325 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep31",
"Anode recHit Time (ME +3/1); ns", 80, -500., 500.));
326 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep32",
"Anode recHit Time (ME +3/2); ns", 80, -500., 500.));
327 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep41",
"Anode recHit Time (ME +4/1); ns", 80, -500., 500.));
328 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep42",
"Anode recHit Time (ME +4/2); ns", 80, -500., 500.));
330 ibooker.
book1D(
"hRHstposm42",
"Reconstructed Position on Strip (ME -4/2); Strip Widths", 120, -0.6, 0.6));
332 ibooker.
book1D(
"hRHstposm41",
"Reconstructed Position on Strip (ME -4/1); Strip Widths", 120, -0.6, 0.6));
334 ibooker.
book1D(
"hRHstposm32",
"Reconstructed Position on Strip (ME -3/2); Strip Widths", 120, -0.6, 0.6));
336 ibooker.
book1D(
"hRHstposm31",
"Reconstructed Position on Strip (ME -3/1); Strip Widths", 120, -0.6, 0.6));
338 ibooker.
book1D(
"hRHstposm22",
"Reconstructed Position on Strip (ME -2/2); Strip Widths", 120, -0.6, 0.6));
340 ibooker.
book1D(
"hRHstposm21",
"Reconstructed Position on Strip (ME -2/1); Strip Widths", 120, -0.6, 0.6));
342 ibooker.
book1D(
"hRHstposm11a",
"Reconstructed Position on Strip (ME -1/1a); Strip Widths", 120, -0.6, 0.6));
344 ibooker.
book1D(
"hRHstposm13",
"Reconstructed Position on Strip (ME -1/3); Strip Widths", 120, -0.6, 0.6));
346 ibooker.
book1D(
"hRHstposm12",
"Reconstructed Position on Strip (ME -1/2); Strip Widths", 120, -0.6, 0.6));
348 ibooker.
book1D(
"hRHstposm11b",
"Reconstructed Position on Strip (ME -1/1b); Strip Widths", 120, -0.6, 0.6));
350 ibooker.
book1D(
"hRHstposp11b",
"Reconstructed Position on Strip (ME +1/1b); Strip Widths", 120, -0.6, 0.6));
352 ibooker.
book1D(
"hRHstposp12",
"Reconstructed Position on Strip (ME +1/2); Strip Widths", 120, -0.6, 0.6));
354 ibooker.
book1D(
"hRHstposp13",
"Reconstructed Position on Strip (ME +1/3); Strip Widths", 120, -0.6, 0.6));
356 ibooker.
book1D(
"hRHstposp11a",
"Reconstructed Position on Strip (ME +1/1a); Strip Widths", 120, -0.6, 0.6));
358 ibooker.
book1D(
"hRHstposp21",
"Reconstructed Position on Strip (ME +2/1); Strip Widths", 120, -0.6, 0.6));
360 ibooker.
book1D(
"hRHstposp22",
"Reconstructed Position on Strip (ME +2/2); Strip Widths", 120, -0.6, 0.6));
362 ibooker.
book1D(
"hRHstposp31",
"Reconstructed Position on Strip (ME +3/1); Strip Widths", 120, -0.6, 0.6));
364 ibooker.
book1D(
"hRHstposp32",
"Reconstructed Position on Strip (ME +3/2); Strip Widths", 120, -0.6, 0.6));
366 ibooker.
book1D(
"hRHstposp41",
"Reconstructed Position on Strip (ME +4/1); Strip Widths", 120, -0.6, 0.6));
368 ibooker.
book1D(
"hRHstposp42",
"Reconstructed Position on Strip (ME +4/2); Strip Widths", 120, -0.6, 0.6));
370 ibooker.
book1D(
"hRHsterrm42",
"Estimated Error on Strip Measurement (ME -4/2); Strip Widths", 75, -0.01, 0.24));
372 ibooker.
book1D(
"hRHsterrm41",
"Estimated Error on Strip Measurement (ME -4/1); Strip Widths", 75, -0.01, 0.24));
374 ibooker.
book1D(
"hRHsterrm32",
"Estimated Error on Strip Measurement (ME -3/2); Strip Widths", 75, -0.01, 0.24));
376 ibooker.
book1D(
"hRHsterrm31",
"Estimated Error on Strip Measurement (ME -3/1); Strip Widths", 75, -0.01, 0.24));
378 ibooker.
book1D(
"hRHsterrm22",
"Estimated Error on Strip Measurement (ME -2/2); Strip Widths", 75, -0.01, 0.24));
380 ibooker.
book1D(
"hRHsterrm21",
"Estimated Error on Strip Measurement (ME -2/1); Strip Widths", 75, -0.01, 0.24));
382 ibooker.
book1D(
"hRHsterrm11a",
"Estimated Error on Strip Measurement (ME -1/1a); Strip Widths", 75, -0.01, 0.24));
384 ibooker.
book1D(
"hRHsterrm13",
"Estimated Error on Strip Measurement (ME -1/3); Strip Widths", 75, -0.01, 0.24));
386 ibooker.
book1D(
"hRHsterrm12",
"Estimated Error on Strip Measurement (ME -1/2); Strip Widths", 75, -0.01, 0.24));
388 ibooker.
book1D(
"hRHsterrm11b",
"Estimated Error on Strip Measurement (ME -1/1b); Strip Widths", 75, -0.01, 0.24));
390 ibooker.
book1D(
"hRHsterrp11b",
"Estimated Error on Strip Measurement (ME +1/1b); Strip Widths", 75, -0.01, 0.24));
392 ibooker.
book1D(
"hRHsterrp12",
"Estimated Error on Strip Measurement (ME +1/2); Strip Widths", 75, -0.01, 0.24));
394 ibooker.
book1D(
"hRHsterrp13",
"Estimated Error on Strip Measurement (ME +1/3); Strip Widths", 75, -0.01, 0.24));
396 ibooker.
book1D(
"hRHsterrp11a",
"Estimated Error on Strip Measurement (ME +1/1a); Strip Widths", 75, -0.01, 0.24));
398 ibooker.
book1D(
"hRHsterrp21",
"Estimated Error on Strip Measurement (ME +2/1); Strip Widths", 75, -0.01, 0.24));
400 ibooker.
book1D(
"hRHsterrp22",
"Estimated Error on Strip Measurement (ME +2/2); Strip Widths", 75, -0.01, 0.24));
402 ibooker.
book1D(
"hRHsterrp31",
"Estimated Error on Strip Measurement (ME +3/1); Strip Widths", 75, -0.01, 0.24));
404 ibooker.
book1D(
"hRHsterrp32",
"Estimated Error on Strip Measurement (ME +3/2); Strip Widths", 75, -0.01, 0.24));
406 ibooker.
book1D(
"hRHsterrp41",
"Estimated Error on Strip Measurement (ME +4/1); Strip Widths", 75, -0.01, 0.24));
408 ibooker.
book1D(
"hRHsterrp42",
"Estimated Error on Strip Measurement (ME +4/2); Strip Widths", 75, -0.01, 0.24));
413 hSnSegments = ibooker.
book1D(
"hSnSegments",
"Segments per Event; # of Segments", 100, 0., 100.);
415 hSnhitsAll = ibooker.
book1D(
"hSnhits",
"N hits on Segments; # of hits", 8, -0.5, 7.5);
416 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm42",
"# of hits on Segments (ME -4/2); # of hits", 8, -0.5, 7.5));
417 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm41",
"# of hits on Segments (ME -4/1); # of hits", 8, -0.5, 7.5));
418 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm32",
"# of hits on Segments (ME -3/2); # of hits", 8, -0.5, 7.5));
419 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm31",
"# of hits on Segments (ME -3/1); # of hits", 8, -0.5, 7.5));
420 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm22",
"# of hits on Segments (ME -2/2); # of hits", 8, -0.5, 7.5));
421 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm21",
"# of hits on Segments (ME -2/1); # of hits", 8, -0.5, 7.5));
422 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm11a",
"# of hits on Segments (ME -1/1a); # of hits", 8, -0.5, 7.5));
423 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm13",
"# of hits on Segments (ME -1/3); # of hits", 8, -0.5, 7.5));
424 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm12",
"# of hits on Segments (ME -1/2); # of hits", 8, -0.5, 7.5));
425 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm11b",
"# of hits on Segments (ME -1/1b); # of hits", 8, -0.5, 7.5));
426 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp11b",
"# of hits on Segments (ME +1/1b); # of hits", 8, -0.5, 7.5));
427 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp12",
"# of hits on Segments (ME +1/2); # of hits", 8, -0.5, 7.5));
428 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp13",
"# of hits on Segments (ME +1/3); # of hits", 8, -0.5, 7.5));
429 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp11a",
"# of hits on Segments (ME +1/1a); # of hits", 8, -0.5, 7.5));
430 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp21",
"# of hits on Segments (ME +2/1); # of hits", 8, -0.5, 7.5));
431 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp22",
"# of hits on Segments (ME +2/2); # of hits", 8, -0.5, 7.5));
432 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp31",
"# of hits on Segments (ME +3/1); # of hits", 8, -0.5, 7.5));
433 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp32",
"# of hits on Segments (ME +3/2); # of hits", 8, -0.5, 7.5));
434 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp41",
"# of hits on Segments (ME +4/1); # of hits", 8, -0.5, 7.5));
435 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp42",
"# of hits on Segments (ME +4/2); # of hits", 8, -0.5, 7.5));
436 hSChiSqAll = ibooker.
book1D(
"hSChiSq",
"Segment Normalized Chi2; Chi2/ndof", 110, -0.05, 10.5);
437 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm42",
"Segment Normalized Chi2 (ME -4/2); Chi2/ndof", 110, -0.05, 10.5));
438 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm41",
"Segment Normalized Chi2 (ME -4/1); Chi2/ndof", 110, -0.05, 10.5));
439 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm32",
"Segment Normalized Chi2 (ME -3/2); Chi2/ndof", 110, -0.05, 10.5));
440 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm31",
"Segment Normalized Chi2 (ME -3/1); Chi2/ndof", 110, -0.05, 10.5));
441 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm22",
"Segment Normalized Chi2 (ME -2/2); Chi2/ndof", 110, -0.05, 10.5));
442 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm21",
"Segment Normalized Chi2 (ME -2/1); Chi2/ndof", 110, -0.05, 10.5));
443 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm11a",
"Segment Normalized Chi2 (ME -1/1a); Chi2/ndof", 110, -0.05, 10.5));
444 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm13",
"Segment Normalized Chi2 (ME -1/3); Chi2/ndof", 110, -0.05, 10.5));
445 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm12",
"Segment Normalized Chi2 (ME -1/2); Chi2/ndof", 110, -0.05, 10.5));
446 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm11b",
"Segment Normalized Chi2 (ME -1/1b); Chi2/ndof", 110, -0.05, 10.5));
447 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp11b",
"Segment Normalized Chi2 (ME +1/1b); Chi2/ndof", 110, -0.05, 10.5));
448 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp12",
"Segment Normalized Chi2 (ME +1/2); Chi2/ndof", 110, -0.05, 10.5));
449 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp13",
"Segment Normalized Chi2 (ME +1/3); Chi2/ndof", 110, -0.05, 10.5));
450 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp11a",
"Segment Normalized Chi2 (ME +1/1a); Chi2/ndof", 110, -0.05, 10.5));
451 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp21",
"Segment Normalized Chi2 (ME +2/1); Chi2/ndof", 110, -0.05, 10.5));
452 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp22",
"Segment Normalized Chi2 (ME +2/2); Chi2/ndof", 110, -0.05, 10.5));
453 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp31",
"Segment Normalized Chi2 (ME +3/1); Chi2/ndof", 110, -0.05, 10.5));
454 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp32",
"Segment Normalized Chi2 (ME +3/2); Chi2/ndof", 110, -0.05, 10.5));
455 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp41",
"Segment Normalized Chi2 (ME +4/1); Chi2/ndof", 110, -0.05, 10.5));
456 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp42",
"Segment Normalized Chi2 (ME +4/2); Chi2/ndof", 110, -0.05, 10.5));
457 hSChiSqProbAll = ibooker.
book1D(
"hSChiSqProb",
"Segment chi2 Probability; Probability", 110, -0.05, 1.05);
459 ibooker.
book1D(
"hSChiSqProbm42",
"Segment chi2 Probability (ME -4/2); Probability", 110, -0.05, 1.05));
461 ibooker.
book1D(
"hSChiSqProbm41",
"Segment chi2 Probability (ME -4/1); Probability", 110, -0.05, 1.05));
463 ibooker.
book1D(
"hSChiSqProbm32",
"Segment chi2 Probability (ME -3/2); Probability", 110, -0.05, 1.05));
465 ibooker.
book1D(
"hSChiSqProbm31",
"Segment chi2 Probability (ME -3/1); Probability", 110, -0.05, 1.05));
467 ibooker.
book1D(
"hSChiSqProbm22",
"Segment chi2 Probability (ME -2/2); Probability", 110, -0.05, 1.05));
469 ibooker.
book1D(
"hSChiSqProbm21",
"Segment chi2 Probability (ME -2/1); Probability", 110, -0.05, 1.05));
471 ibooker.
book1D(
"hSChiSqProbm11a",
"Segment chi2 Probability (ME -1/1a); Probability", 110, -0.05, 1.05));
473 ibooker.
book1D(
"hSChiSqProbm13",
"Segment chi2 Probability (ME -1/3); Probability", 110, -0.05, 1.05));
475 ibooker.
book1D(
"hSChiSqProbm12",
"Segment chi2 Probability (ME -1/2); Probability", 110, -0.05, 1.05));
477 ibooker.
book1D(
"hSChiSqProbm11b",
"Segment chi2 Probability (ME -1/1b); Probability", 110, -0.05, 1.05));
479 ibooker.
book1D(
"hSChiSqProbp11b",
"Segment chi2 Probability (ME +1/1b); Probability", 110, -0.05, 1.05));
481 ibooker.
book1D(
"hSChiSqProbp12",
"Segment chi2 Probability (ME +1/2); Probability", 110, -0.05, 1.05));
483 ibooker.
book1D(
"hSChiSqProbp13",
"Segment chi2 Probability (ME +1/3); Probability", 110, -0.05, 1.05));
485 ibooker.
book1D(
"hSChiSqProbp11a",
"Segment chi2 Probability (ME +1/1a); Probability", 110, -0.05, 1.05));
487 ibooker.
book1D(
"hSChiSqProbp21",
"Segment chi2 Probability (ME +2/1); Probability", 110, -0.05, 1.05));
489 ibooker.
book1D(
"hSChiSqProbp22",
"Segment chi2 Probability (ME +2/2); Probability", 110, -0.05, 1.05));
491 ibooker.
book1D(
"hSChiSqProbp31",
"Segment chi2 Probability (ME +3/1); Probability", 110, -0.05, 1.05));
493 ibooker.
book1D(
"hSChiSqProbp32",
"Segment chi2 Probability (ME +3/2); Probability", 110, -0.05, 1.05));
495 ibooker.
book1D(
"hSChiSqProbp41",
"Segment chi2 Probability (ME +4/1); Probability", 110, -0.05, 1.05));
497 ibooker.
book1D(
"hSChiSqProbp42",
"Segment chi2 Probability (ME +4/2); Probability", 110, -0.05, 1.05));
499 ibooker.
book1D(
"hSGlobalTheta",
"Segment Direction (Global Theta); Global Theta (radians)", 136, -0.1, 3.3);
500 hSGlobalPhi = ibooker.
book1D(
"hSGlobalPhi",
"Segment Direction (Global Phi); Global Phi (radians)", 128, -3.2, 3.2);
502 hSTimeDiff = ibooker.
book1D(
"hSTimeDiff",
"Anode Minus Cathode Segment Time [ns]", 50, -50, 50);
504 ibooker.
book1D(
"hSTimeDiff_m42",
"Anode Minus Cathode Segment Time (ME -4/2) [ns]", 50, -50, 50));
506 ibooker.
book1D(
"hSTimeDiff_m41",
"Anode Minus Cathode Segment Time (ME -4/1) [ns]", 50, -50, 50));
508 ibooker.
book1D(
"hSTimeDiff_m32",
"Anode Minus Cathode Segment Time (ME -3/2) [ns]", 50, -50, 50));
510 ibooker.
book1D(
"hSTimeDiff_m31",
"Anode Minus Cathode Segment Time (ME -3/2) [ns]", 50, -50, 50));
512 ibooker.
book1D(
"hSTimeDiff_m22",
"Anode Minus Cathode Segment Time (ME -2/2) [ns]", 50, -50, 50));
514 ibooker.
book1D(
"hSTimeDiff_m21",
"Anode Minus Cathode Segment Time (ME -2/1) [ns]", 50, -50, 50));
516 ibooker.
book1D(
"hSTimeDiff_m11a",
"Anode Minus Cathode Segment Time (ME -1/1a) [ns]", 50, -50, 50));
518 ibooker.
book1D(
"hSTimeDiff_m13",
"Anode Minus Cathode Segment Time (ME -1/3) [ns]", 50, -50, 50));
520 ibooker.
book1D(
"hSTimeDiff_m12",
"Anode Minus Cathode Segment Time (ME -1/2) [ns]", 50, -50, 50));
522 ibooker.
book1D(
"hSTimeDiff_m11b",
"Anode Minus Cathode Segment Time (ME -1/1b) [ns]", 50, -50, 50));
524 ibooker.
book1D(
"hSTimeDiff_p11b",
"Anode Minus Cathode Segment Time (ME +1/1b) [ns]", 50, -50, 50));
526 ibooker.
book1D(
"hSTimeDiff_p12",
"Anode Minus Cathode Segment Time (ME +1/2) [ns]", 50, -50, 50));
528 ibooker.
book1D(
"hSTimeDiff_p13",
"Anode Minus Cathode Segment Time (ME +1/3) [ns]", 50, -50, 50));
530 ibooker.
book1D(
"hSTimeDiff_p11a",
"Anode Minus Cathode Segment Time (ME +1/1a) [ns]", 50, -50, 50));
532 ibooker.
book1D(
"hSTimeDiff_p21",
"Anode Minus Cathode Segment Time (ME +2/1) [ns]", 50, -50, 50));
534 ibooker.
book1D(
"hSTimeDiff_p22",
"Anode Minus Cathode Segment Time (ME +2/2) [ns]", 50, -50, 50));
536 ibooker.
book1D(
"hSTimeDiff_p31",
"Anode Minus Cathode Segment Time (ME +3/1) [ns]", 50, -50, 50));
538 ibooker.
book1D(
"hSTimeDiff_p32",
"Anode Minus Cathode Segment Time (ME +3/2) [ns]", 50, -50, 50));
540 ibooker.
book1D(
"hSTimeDiff_p41",
"Anode Minus Cathode Segment Time (ME +4/1) [ns]", 50, -50, 50));
542 ibooker.
book1D(
"hSTimeDiff_p42",
"Anode Minus Cathode Segment Time (ME +4/2) [ns]", 50, -50, 50));
544 hSTimeAnode = ibooker.
book1D(
"hSTimeAnode",
"Anode Only Segment Time [ns]", 200, -200, 200);
546 ibooker.
book1D(
"hSTimeAnode_m42",
"Anode Only Segment Time (ME -4/2) [ns]", 200, -200, 200));
548 ibooker.
book1D(
"hSTimeAnode_m41",
"Anode Only Segment Time (ME -4/1) [ns]", 200, -200, 200));
550 ibooker.
book1D(
"hSTimeAnode_m32",
"Anode Only Segment Time (ME -3/2) [ns]", 200, -200, 200));
552 ibooker.
book1D(
"hSTimeAnode_m31",
"Anode Only Segment Time (ME -3/2) [ns]", 200, -200, 200));
554 ibooker.
book1D(
"hSTimeAnode_m22",
"Anode Only Segment Time (ME -2/2) [ns]", 200, -200, 200));
556 ibooker.
book1D(
"hSTimeAnode_m21",
"Anode Only Segment Time (ME -2/1) [ns]", 200, -200, 200));
558 ibooker.
book1D(
"hSTimeAnode_m11a",
"Anode Only Segment Time (ME -1/1a) [ns]", 200, -200, 200));
560 ibooker.
book1D(
"hSTimeAnode_m13",
"Anode Only Segment Time (ME -1/3) [ns]", 200, -200, 200));
562 ibooker.
book1D(
"hSTimeAnode_m12",
"Anode Only Segment Time (ME -1/2) [ns]", 200, -200, 200));
564 ibooker.
book1D(
"hSTimeAnode_m11b",
"Anode Only Segment Time (ME -1/1b) [ns]", 200, -200, 200));
566 ibooker.
book1D(
"hSTimeAnode_p11b",
"Anode Only Segment Time (ME +1/1b) [ns]", 200, -200, 200));
568 ibooker.
book1D(
"hSTimeAnode_p12",
"Anode Only Segment Time (ME +1/2) [ns]", 200, -200, 200));
570 ibooker.
book1D(
"hSTimeAnode_p13",
"Anode Only Segment Time (ME +1/3) [ns]", 200, -200, 200));
572 ibooker.
book1D(
"hSTimeAnode_p11a",
"Anode Only Segment Time (ME +1/1a) [ns]", 200, -200, 200));
574 ibooker.
book1D(
"hSTimeAnode_p21",
"Anode Only Segment Time (ME +2/1) [ns]", 200, -200, 200));
576 ibooker.
book1D(
"hSTimeAnode_p22",
"Anode Only Segment Time (ME +2/2) [ns]", 200, -200, 200));
578 ibooker.
book1D(
"hSTimeAnode_p31",
"Anode Only Segment Time (ME +3/1) [ns]", 200, -200, 200));
580 ibooker.
book1D(
"hSTimeAnode_p32",
"Anode Only Segment Time (ME +3/2) [ns]", 200, -200, 200));
582 ibooker.
book1D(
"hSTimeAnode_p41",
"Anode Only Segment Time (ME +4/1) [ns]", 200, -200, 200));
584 ibooker.
book1D(
"hSTimeAnode_p42",
"Anode Only Segment Time (ME +4/2) [ns]", 200, -200, 200));
586 hSTimeCathode = ibooker.
book1D(
"hSTimeCathode",
"Cathode Only Segment Time [ns]", 200, -200, 200);
588 ibooker.
book1D(
"hSTimeCathode_m42",
"Cathode Only Segment Time (ME -4/2) [ns]", 200, -200, 200));
590 ibooker.
book1D(
"hSTimeCathode_m41",
"Cathode Only Segment Time (ME -4/1) [ns]", 200, -200, 200));
592 ibooker.
book1D(
"hSTimeCathode_m32",
"Cathode Only Segment Time (ME -3/2) [ns]", 200, -200, 200));
594 ibooker.
book1D(
"hSTimeCathode_m31",
"Cathode Only Segment Time (ME -3/2) [ns]", 200, -200, 200));
596 ibooker.
book1D(
"hSTimeCathode_m22",
"Cathode Only Segment Time (ME -2/2) [ns]", 200, -200, 200));
598 ibooker.
book1D(
"hSTimeCathode_m21",
"Cathode Only Segment Time (ME -2/1) [ns]", 200, -200, 200));
600 ibooker.
book1D(
"hSTimeCathode_m11a",
"Cathode Only Segment Time (ME -1/1a) [ns]", 200, -200, 200));
602 ibooker.
book1D(
"hSTimeCathode_m13",
"Cathode Only Segment Time (ME -1/3) [ns]", 200, -200, 200));
604 ibooker.
book1D(
"hSTimeCathode_m12",
"Cathode Only Segment Time (ME -1/2) [ns]", 200, -200, 200));
606 ibooker.
book1D(
"hSTimeCathode_m11b",
"Cathode Only Segment Time (ME -1/1b) [ns]", 200, -200, 200));
608 ibooker.
book1D(
"hSTimeCathode_p11b",
"Cathode Only Segment Time (ME +1/1b) [ns]", 200, -200, 200));
610 ibooker.
book1D(
"hSTimeCathode_p12",
"Cathode Only Segment Time (ME +1/2) [ns]", 200, -200, 200));
612 ibooker.
book1D(
"hSTimeCathode_p13",
"Cathode Only Segment Time (ME +1/3) [ns]", 200, -200, 200));
614 ibooker.
book1D(
"hSTimeCathode_p11a",
"Cathode Only Segment Time (ME +1/1a) [ns]", 200, -200, 200));
616 ibooker.
book1D(
"hSTimeCathode_p21",
"Cathode Only Segment Time (ME +2/1) [ns]", 200, -200, 200));
618 ibooker.
book1D(
"hSTimeCathode_p22",
"Cathode Only Segment Time (ME +2/2) [ns]", 200, -200, 200));
620 ibooker.
book1D(
"hSTimeCathode_p31",
"Cathode Only Segment Time (ME +3/1) [ns]", 200, -200, 200));
622 ibooker.
book1D(
"hSTimeCathode_p32",
"Cathode Only Segment Time (ME +3/2) [ns]", 200, -200, 200));
624 ibooker.
book1D(
"hSTimeCathode_p41",
"Cathode Only Segment Time (ME +4/1) [ns]", 200, -200, 200));
626 ibooker.
book1D(
"hSTimeCathode_p42",
"Cathode Only Segment Time (ME +4/2) [ns]", 200, -200, 200));
628 hSTimeCombined = ibooker.
book1D(
"hSTimeCombined",
"Segment Time (anode+cathode times) [ns]", 200, -200, 200);
630 "hSTimeCombined_m42",
"Segment Time (anode+cathode times) Segment Time (ME -4/2) [ns]", 200, -200, 200));
632 "hSTimeCombined_m41",
"Segment Time (anode+cathode times) Segment Time (ME -4/1) [ns]", 200, -200, 200));
634 "hSTimeCombined_m32",
"Segment Time (anode+cathode times) Segment Time (ME -3/2) [ns]", 200, -200, 200));
636 "hSTimeCombined_m31",
"Segment Time (anode+cathode times) Segment Time (ME -3/2) [ns]", 200, -200, 200));
638 "hSTimeCombined_m22",
"Segment Time (anode+cathode times) Segment Time (ME -2/2) [ns]", 200, -200, 200));
640 "hSTimeCombined_m21",
"Segment Time (anode+cathode times) Segment Time (ME -2/1) [ns]", 200, -200, 200));
642 "hSTimeCombined_m11a",
"Segment Time (anode+cathode times) Segment Time (ME -1/1a) [ns]", 200, -200, 200));
644 "hSTimeCombined_m13",
"Segment Time (anode+cathode times) Segment Time (ME -1/3) [ns]", 200, -200, 200));
646 "hSTimeCombined_m12",
"Segment Time (anode+cathode times) Segment Time (ME -1/2) [ns]", 200, -200, 200));
648 "hSTimeCombined_m11b",
"Segment Time (anode+cathode times) Segment Time (ME -1/1b) [ns]", 200, -200, 200));
650 "hSTimeCombined_p11b",
"Segment Time (anode+cathode times) Segment Time (ME +1/1b) [ns]", 200, -200, 200));
652 "hSTimeCombined_p12",
"Segment Time (anode+cathode times) Segment Time (ME +1/2) [ns]", 200, -200, 200));
654 "hSTimeCombined_p13",
"Segment Time (anode+cathode times) Segment Time (ME +1/3) [ns]", 200, -200, 200));
656 "hSTimeCombined_p11a",
"Segment Time (anode+cathode times) Segment Time (ME +1/1a) [ns]", 200, -200, 200));
658 "hSTimeCombined_p21",
"Segment Time (anode+cathode times) Segment Time (ME +2/1) [ns]", 200, -200, 200));
660 "hSTimeCombined_p22",
"Segment Time (anode+cathode times) Segment Time (ME +2/2) [ns]", 200, -200, 200));
662 "hSTimeCombined_p31",
"Segment Time (anode+cathode times) Segment Time (ME +3/1) [ns]", 200, -200, 200));
664 "hSTimeCombined_p32",
"Segment Time (anode+cathode times) Segment Time (ME +3/2) [ns]", 200, -200, 200));
666 "hSTimeCombined_p41",
"Segment Time (anode+cathode times) Segment Time (ME +4/1) [ns]", 200, -200, 200));
668 "hSTimeCombined_p42",
"Segment Time (anode+cathode times) Segment Time (ME +4/2) [ns]", 200, -200, 200));
671 ibooker.
book2D(
"hSTimeDiffSerial",
"Anode Minus Cathode Segment Time [ns]", 601, -0.5, 600.5, 200, -50, 50);
673 ibooker.
book2D(
"hSTimeAnodeSerial",
"Anode Only Segment Time [ns]", 601, -0.5, 600.5, 200, -200, 200);
675 ibooker.
book2D(
"hSTimeCathodeSerial",
"Cathode Only Segment Time [ns]", 601, -0.5, 600.5, 200, -200, 200);
677 "hSTimeCombinedSerial",
"Segment Time (anode+cathode times) [ns]", 601, -0.5, 600.5, 200, -200, 200);
679 hSTimeVsZ = ibooker.
book2D(
"hSTimeVsZ",
"Segment Time vs. Z; [ns] vs. [cm]", 200, -1200, 1200, 200, -200, 200);
681 ibooker.
book2D(
"hSTimeVsTOF",
"Segment Time vs. Distance from IP; [ns] vs. [cm]", 180, 500, 1400, 200, -200, 200);
687 "hSResidm42",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -4/2); Strip Widths", 100, -0.5, 0.5));
689 "hSResidm41",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -4/1); Strip Widths", 100, -0.5, 0.5));
691 "hSResidm32",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -3/2); Strip Widths", 100, -0.5, 0.5));
693 "hSResidm31",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -3/1); Strip Widths", 100, -0.5, 0.5));
695 "hSResidm22",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -2/2); Strip Widths", 100, -0.5, 0.5));
697 "hSResidm21",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -2/1); Strip Widths", 100, -0.5, 0.5));
699 "hSResidm11a",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/1a); Strip Widths", 100, -0.5, 0.5));
701 "hSResidm13",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/3); Strip Widths", 100, -0.5, 0.5));
703 "hSResidm12",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/2); Strip Widths", 100, -0.5, 0.5));
705 "hSResidm11b",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/1b); Strip Widths", 100, -0.5, 0.5));
707 "hSResidp11b",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/1b); Strip Widths", 100, -0.5, 0.5));
709 "hSResidp12",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/2); Strip Widths", 100, -0.5, 0.5));
711 "hSResidp13",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/3); Strip Widths", 100, -0.5, 0.5));
713 "hSResidp11a",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/1a); Strip Widths", 100, -0.5, 0.5));
715 "hSResidp21",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +2/1); Strip Widths", 100, -0.5, 0.5));
717 "hSResidp22",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +2/2); Strip Widths", 100, -0.5, 0.5));
719 "hSResidp31",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +3/1); Strip Widths", 100, -0.5, 0.5));
721 "hSResidp32",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +3/2); Strip Widths", 100, -0.5, 0.5));
723 "hSResidp41",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +4/1); Strip Widths", 100, -0.5, 0.5));
725 "hSResidp42",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +4/2); Strip Widths", 100, -0.5, 0.5));
732 hSnum = ibooker.
book1D(
"hSnum",
"CSC w rechits in 2+ layers && segment(s)", 20, 0.5, 20.5);
733 hSden = ibooker.
book1D(
"hSden",
"CSC w rechits in 2+ layers", 20, 0.5, 20.5);
734 hRHnum = ibooker.
book1D(
"hRHnum",
"CSC w segment(s) && rechits in 6 layers", 20, 0.5, 20.5);
735 hRHden = ibooker.
book1D(
"hRHden",
"CSC w segment(s)", 20, 0.5, 20.5);
743 hSSTE2 = ibooker.
book2D(
"hSSTE2",
"hSSTE2", 36, 0.5, 36.5, 20, 0.5, 20.5);
744 hRHSTE2 = ibooker.
book2D(
"hRHSTE2",
"hRHSTE2", 36, 0.5, 36.5, 20, 0.5, 20.5);
745 hStripSTE2 = ibooker.
book2D(
"hStripSTE2",
"hStripSTE2", 36, 0.5, 36.5, 20, 0.5, 20.5);
746 hWireSTE2 = ibooker.
book2D(
"hWireSTE2",
"hWireSTE2", 36, 0.5, 36.5, 20, 0.5, 20.5);
747 hEffDenominator = ibooker.
book2D(
"hEffDenominator",
"hEffDenominator", 36, 0.5, 36.5, 20, 0.5, 20.5);
755 ibooker.
book2D(
"hSensitiveAreaEvt",
"Events Passing Selection for Efficiency", 36, 0.5, 36.5, 20, 0.5, 20.5);
760 hALCTgetBX = ibooker.
book1D(
"hALCTgetBX",
"ALCT position in ALCT-L1A match window [BX]", 7, -0.5, 6.5);
763 ibooker.
book2D(
"hALCTgetBXSerial",
"ALCT position in ALCT-L1A match window [BX]", 601, -0.5, 600.5, 7, -0.5, 6.5);
766 "hALCTgetBX2DNumerator",
"ALCT position in ALCT-L1A match window [BX] (sum)", 36, 0.5, 36.5, 20, 0.5, 20.5);
769 ibooker.
book2D(
"hALCTgetBX2Denominator",
"Number of ALCT Digis checked", 36, 0.5, 36.5, 20, 0.5, 20.5);
772 hALCTMatch = ibooker.
book1D(
"hALCTMatch",
"ALCT position in ALCT-CLCT match window [BX]", 7, -0.5, 6.5);
775 "hALCTMatchSerial",
"ALCT position in ALCT-CLCT match window [BX]", 601, -0.5, 600.5, 7, -0.5, 6.5);
778 "hALCTMatch2DNumerator",
"ALCT position in ALCT-CLCT match window [BX] (sum)", 36, 0.5, 36.5, 20, 0.5, 20.5);
781 ibooker.
book2D(
"hALCTMatch2Denominator",
"Number of ALCT-CLCT matches checked", 36, 0.5, 36.5, 20, 0.5, 20.5);
784 hCLCTL1A = ibooker.
book1D(
"hCLCTL1A",
"L1A - CLCTpreTrigger at TMB [BX]", 40, 149.5, 189.5);
787 ibooker.
book2D(
"hCLCTL1ASerial",
"L1A - CLCTpreTrigger at TMB [BX]", 601, -0.5, 600.5, 40, 149.5, 189.5);
790 ibooker.
book2D(
"hCLCTL1A2DNumerator",
"L1A - CLCTpreTrigger at TMB [BX] (sum)", 36, 0.5, 36.5, 20, 0.5, 20.5);
793 ibooker.
book2D(
"hCLCTL1A2Denominator",
"Number of TMB CLCTs checked", 36, 0.5, 36.5, 20, 0.5, 20.5);
871 bool clcto[2][4][4][36];
872 bool wireo[2][4][4][36];
873 bool stripo[2][4][4][36];
874 bool rechito[2][4][4][36];
875 bool segmento[2][4][4][36];
877 bool hasWires =
false;
878 bool hasStrips =
false;
879 bool hasRecHits =
false;
880 bool hasSegments =
false;
882 for (
int e = 0;
e < 2;
e++) {
883 for (
int s = 0;
s < 4;
s++) {
884 for (
int r = 0;
r < 4;
r++) {
885 for (
int c = 0;
c < 36;
c++) {
886 clcto[
e][
s][
r][
c] =
false;
887 wireo[
e][
s][
r][
c] =
false;
888 stripo[
e][
s][
r][
c] =
false;
889 rechito[
e][
s][
r][
c] =
false;
890 segmento[
e][
s][
r][
c] =
false;
899 int kEndcap =
id.
endcap();
900 int kRing =
id.ring();
901 int kStation =
id.station();
902 int kChamber =
id.chamber();
906 if ((*digiIt).isValid()) {
908 if (kStation == 1 && kRing == 1 && (*digiIt).getKeyStrip() > 128)
910 clcto[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1] =
true;
918 int kEndcap =
id.
endcap();
919 int kRing =
id.ring();
920 int kStation =
id.station();
921 int kChamber =
id.chamber();
922 std::vector<CSCWireDigi>::const_iterator wireIt = (*wi).second.first;
923 std::vector<CSCWireDigi>::const_iterator lastWire = (*wi).second.second;
924 for (; wireIt != lastWire; ++wireIt) {
925 if (!wireo[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1]) {
926 wireo[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1] =
true;
930 if (clcto[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1])
933 if (kStation == 1 && kRing == 1 && clcto[kEndcap - 1][kStation - 1][3][kChamber - 1]) {
944 int kEndcap =
id.
endcap();
945 int kRing =
id.ring();
946 int kStation =
id.station();
947 int kChamber =
id.chamber();
948 std::vector<CSCStripDigi>::const_iterator stripIt = (*si).second.first;
949 std::vector<CSCStripDigi>::const_iterator lastStrip = (*si).second.second;
950 for (; stripIt != lastStrip; ++stripIt) {
951 std::vector<int> myADCVals = stripIt->getADCCounts();
952 bool thisStripFired =
false;
953 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
956 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
957 diff = (
float)myADCVals[iCount] - thisPedestal;
959 thisStripFired =
true;
962 if (thisStripFired) {
963 if (!stripo[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1]) {
964 stripo[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1] =
true;
968 if (clcto[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1]) {
971 if (wireo[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1] ||
972 (kRing == 4 && wireo[kEndcap - 1][kStation - 1][0][kChamber - 1])) {
983 for (recIt =
recHits->begin(); recIt !=
recHits->end(); recIt++) {
985 int kEndcap = idrec.
endcap();
986 int kRing = idrec.
ring();
987 int kStation = idrec.
station();
988 int kChamber = idrec.
chamber();
989 if (!rechito[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1]) {
990 rechito[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1] =
true;
1000 int kEndcap =
id.
endcap();
1001 int kRing =
id.ring();
1002 int kStation =
id.station();
1003 int kChamber =
id.chamber();
1004 if (!segmento[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1]) {
1005 segmento[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1] =
true;
1018 if (hasWires && hasStrips)
1033 int nWireGroupsTotal = 0;
1036 std::vector<CSCWireDigi>::const_iterator wireIter = (*dWDiter).second.first;
1037 std::vector<CSCWireDigi>::const_iterator lWire = (*dWDiter).second.second;
1038 for (; wireIter != lWire; ++wireIter) {
1039 int myWire = wireIter->getWireGroup();
1040 int myTBin = wireIter->getTimeBin();
1058 int nStripsFired = 0;
1061 std::vector<CSCStripDigi>::const_iterator stripIter = (*dSDiter).second.first;
1062 std::vector<CSCStripDigi>::const_iterator lStrip = (*dSDiter).second.second;
1063 for (; stripIter != lStrip; ++stripIter) {
1064 int myStrip = stripIter->getStrip();
1065 std::vector<int> myADCVals = stripIter->getADCCounts();
1066 bool thisStripFired =
false;
1067 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1070 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
1071 diff = (
float)myADCVals[iCount] - thisPedestal;
1073 thisStripFired =
true;
1076 if (thisStripFired) {
1100 int kRing =
id.ring();
1101 std::vector<CSCStripDigi>::const_iterator pedIt = (*dPNiter).second.first;
1102 std::vector<CSCStripDigi>::const_iterator lStrip = (*dPNiter).second.second;
1103 for (; pedIt != lStrip; ++pedIt) {
1104 int myStrip = pedIt->getStrip();
1105 std::vector<int> myADCVals = pedIt->getADCCounts();
1107 bool thisStripFired =
false;
1108 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1110 (1. / 6) * (myADCVals[2] + myADCVals[3] + myADCVals[4] + myADCVals[5] + myADCVals[6] + myADCVals[7]);
1115 if ((kStation == 1 && kRing == 4) && cscGeom->
gangedStrips()) {
1122 thisStripFired =
true;
1124 if (!thisStripFired) {
1125 float ADC = thisSignal - thisPedestal;
1142 int nRecHits =
recHits->size();
1149 for (dRHIter =
recHits->begin(); dRHIter !=
recHits->end(); dRHIter++) {
1154 LocalPoint rhitlocal = (*dRHIter).localPosition();
1159 float stpos = (*dRHIter).positionWithinStrip();
1160 float sterr = (*dRHIter).errorWithinStrip();
1164 int adcsize = dRHIter->nStrips() * dRHIter->nTimeBins();
1167 for (
unsigned int i = 0;
i < dRHIter->nStrips();
i++) {
1168 for (
unsigned int j = 0;
j < dRHIter->nTimeBins() - 1;
j++) {
1169 rHSumQ += dRHIter->adcs(
i,
j);
1171 sumsides += dRHIter->adcs(
i,
j);
1175 float rHratioQ = sumsides / rHSumQ;
1180 float rHtime = (*dRHIter).tpeak();
1181 float rHtimeAnode = (*dRHIter).wireTime();
1188 float grecx = rhitglobal.
x();
1189 float grecy = rhitglobal.
y();
1194 hRHSumQ[tIndex - 1]->Fill(rHSumQ);
1200 hRHGlobal[sIndex - 1]->Fill(grecx, grecy);
1221 float chisq = (*dSiter).chi2();
1222 int nhits = (*dSiter).nRecHits();
1223 int nDOF = 2 *
nhits - 4;
1224 float nChi2 = chisq / nDOF;
1226 LocalPoint localPos = (*dSiter).localPosition();
1230 float timeCathode = 0;
1231 float timeAnode = 0;
1232 float timeCombined = 0;
1233 std::vector<float> cathodeTimes;
1234 std::vector<float> anodeTimes;
1236 std::vector<CSCRecHit2D> theseRecHits = (*dSiter).specificRecHits();
1237 for (vector<CSCRecHit2D>::const_iterator iRH = theseRecHits.begin(); iRH != theseRecHits.end(); iRH++) {
1238 if (!((*iRH).isValid()))
1240 cathodeTimes.push_back((*iRH).tpeak());
1241 anodeTimes.push_back((*iRH).wireTime());
1245 for (
unsigned int i = 0;
i < cathodeTimes.size();
i++)
1246 timeCathode += cathodeTimes[
i] / cathodeTimes.size();
1250 bool modified =
false;
1251 std::vector<float>::iterator anodeMaxHit;
1253 if (anodeTimes.empty())
1260 for (
unsigned int j = 0;
j < anodeTimes.size();
j++)
1261 timeAnode += anodeTimes[
j] / anodeTimes.size();
1264 for (
unsigned int j = 0;
j < anodeTimes.size();
j++) {
1265 if (fabs(anodeTimes[
j] - timeAnode) > anodeMaxDiff) {
1266 anodeMaxHit = anodeTimes.begin() +
j;
1267 anodeMaxDiff = fabs(anodeTimes[
j] - timeAnode);
1272 if (anodeMaxDiff > 26) {
1274 anodeTimes.erase(anodeMaxHit);
1279 if (cathodeTimes.size() + anodeTimes.size() > 0)
1280 timeCombined = (timeCathode * cathodeTimes.size() + timeAnode * anodeTimes.size()) /
1281 (cathodeTimes.size() + anodeTimes.size());
1288 float globTheta = 0.;
1293 globX = globalPosition.
x();
1294 globY = globalPosition.
y();
1295 globZ = globalPosition.
z();
1296 globTOF =
sqrt(globX * globX + globY * globY + globZ * globZ);
1298 globTheta = globalDirection.
theta();
1299 globPhi = globalDirection.
phi();
1307 hSChiSq[tIndex - 1]->Fill(nChi2);
1343 std::vector<CSCRecHit2D> theseRecHits = (*dSiter).specificRecHits();
1344 int nRH = (*dSiter).nRecHits();
1345 CLHEP::HepMatrix sp(6, 1);
1346 CLHEP::HepMatrix se(6, 1);
1347 for (vector<CSCRecHit2D>::const_iterator iRH = theseRecHits.begin(); iRH != theseRecHits.end(); iRH++) {
1350 int kRing = idRH.
ring();
1351 int kStation = idRH.
station();
1356 int centerid = iRH->nStrips() / 2 + 1;
1357 int centerStrip = iRH->channels(centerid - 1);
1361 float stpos = (*iRH).positionWithinStrip();
1362 se(
kLayer, 1) = (*iRH).errorWithinStrip();
1364 if (kStation == 1 && (kRing == 1 || kRing == 4))
1365 sp(
kLayer, 1) = stpos + centerStrip;
1368 sp(
kLayer, 1) = stpos + centerStrip;
1370 sp(
kLayer, 1) = stpos - 0.5 + centerStrip;
1378 float expected =
fitX(sp, se);
1379 float residual = expected - sp(3, 1);
1402 for (
int i = 1;
i < 7;
i++) {
1405 S =
S + (1 / sigma2);
1406 Sy = Sy + (points(
i, 1) / sigma2);
1407 Sx = Sx + ((
i) / sigma2);
1408 Sxx = Sxx + (
i *
i) / sigma2;
1409 Sxy = Sxy + (((
i)*points(
i, 1)) / sigma2);
1413 float delta =
S * Sxx - Sx * Sx;
1414 float intercept = (Sxx * Sy - Sx * Sxy) /
delta;
1417 return (intercept +
slope * 3);
1439 for (sIt = stripdigis.begin(); sIt != stripdigis.end(); sIt++) {
1443 vector<CSCStripDigi>::const_iterator digiItr = (*sIt).second.first;
1444 vector<CSCStripDigi>::const_iterator
last = (*sIt).second.second;
1445 for (; digiItr !=
last; ++digiItr) {
1446 int thisStrip = digiItr->getStrip();
1447 if (thisStrip == (centerStrip)) {
1448 std::vector<int> myADCVals = digiItr->getADCCounts();
1449 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1450 float thisSignal = (myADCVals[2] + myADCVals[3] + myADCVals[4] + myADCVals[5] + myADCVals[6] + myADCVals[7]);
1451 SigADC[0] = thisSignal - 6 * thisPedestal;
1454 if (thisStrip == (centerStrip + 1)) {
1455 std::vector<int> myADCVals = digiItr->getADCCounts();
1456 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1457 float thisSignal = (myADCVals[2] + myADCVals[3] + myADCVals[4] + myADCVals[5] + myADCVals[6] + myADCVals[7]);
1458 SigADC[1] = thisSignal - 6 * thisPedestal;
1460 if (thisStrip == (centerStrip + 2)) {
1461 std::vector<int> myADCVals = digiItr->getADCCounts();
1462 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1463 float thisSignal = (myADCVals[2] + myADCVals[3] + myADCVals[4] + myADCVals[5] + myADCVals[6] + myADCVals[7]);
1464 SigADC[2] = thisSignal - 6 * thisPedestal;
1466 if (thisStrip == (centerStrip - 1)) {
1467 std::vector<int> myADCVals = digiItr->getADCCounts();
1468 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1469 float thisSignal = (myADCVals[2] + myADCVals[3] + myADCVals[4] + myADCVals[5] + myADCVals[6] + myADCVals[7]);
1470 SigADC[3] = thisSignal - 6 * thisPedestal;
1472 if (thisStrip == (centerStrip - 2)) {
1473 std::vector<int> myADCVals = digiItr->getADCCounts();
1474 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1475 float thisSignal = (myADCVals[2] + myADCVals[3] + myADCVals[4] + myADCVals[5] + myADCVals[6] + myADCVals[7]);
1476 SigADC[4] = thisSignal - 6 * thisPedestal;
1479 TotalADC = 0.2 * (SigADC[0] + SigADC[1] + SigADC[2] + SigADC[3] + SigADC[4]);
1495 bool allWires[2][4][4][36][6];
1496 bool allStrips[2][4][4][36][6];
1497 bool AllRecHits[2][4][4][36][6];
1498 bool AllSegments[2][4][4][36];
1501 for (
int iE = 0; iE < 2; iE++) {
1502 for (
int iS = 0; iS < 4; iS++) {
1503 for (
int iR = 0; iR < 4; iR++) {
1504 for (
int iC = 0; iC < 36; iC++) {
1505 AllSegments[iE][iS][iR][iC] =
false;
1507 for (
int iL = 0; iL < 6; iL++) {
1508 allWires[iE][iS][iR][iC][iL] =
false;
1509 allStrips[iE][iS][iR][iC][iL] =
false;
1510 AllRecHits[iE][iS][iR][iC][iL] =
false;
1520 std::vector<CSCWireDigi>::const_iterator wireIter = (*dWDiter).second.first;
1521 std::vector<CSCWireDigi>::const_iterator lWire = (*dWDiter).second.second;
1522 for (; wireIter != lWire; ++wireIter) {
1532 std::vector<CSCStripDigi>::const_iterator stripIter = (*dSDiter).second.first;
1533 std::vector<CSCStripDigi>::const_iterator lStrip = (*dSDiter).second.second;
1534 for (; stripIter != lStrip; ++stripIter) {
1535 std::vector<int> myADCVals = stripIter->getADCCounts();
1536 bool thisStripFired =
false;
1537 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1540 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
1541 diff = (
float)myADCVals[iCount] - thisPedestal;
1543 thisStripFired =
true;
1547 if (thisStripFired) {
1563 std::vector<uint> seg_ME2(2, 0);
1564 std::vector<uint> seg_ME3(2, 0);
1565 std::vector<pair<CSCDetId, CSCSegment> > theSegments(4);
1580 ++seg_ME2[idseg.
endcap() - 1];
1581 seg_tmp = seg_ME2[idseg.
endcap() - 1];
1583 ++seg_ME3[idseg.
endcap() - 1];
1584 seg_tmp = seg_ME3[idseg.
endcap() - 1];
1587 if (1 == seg_tmp && 6 == (*segEffIt).nRecHits() && (*segEffIt).chi2() / (*segEffIt).degreesOfFreedom() < 3.) {
1588 pair<CSCDetId, CSCSegment> specSeg = make_pair((
CSCDetId)(*segEffIt).cscDetId(), *segEffIt);
1589 theSegments[2 * (idseg.
endcap() - 1) + (idseg.
station() - 2)] = specSeg;
1610 for (
int iE = 0; iE < 2; iE++) {
1611 for (
int iS = 0; iS < 4; iS++) {
1612 for (
int iR = 0; iR < 4; iR++) {
1613 for (
int iC = 0; iC < 36; iC++) {
1614 int NumberOfLayers = 0;
1615 for (
int iL = 0; iL < 6; iL++) {
1616 if (AllRecHits[iE][iS][iR][iC][iL]) {
1630 if (NumberOfLayers > 1) {
1632 if (AllSegments[iE][iS][iR][iC]) {
1640 if (AllSegments[iE][iS][iR][iC]) {
1641 if (NumberOfLayers == 6) {
1656 std::vector<pair<CSCDetId, CSCSegment>*> theSeg;
1657 if (1 == seg_ME2[0])
1658 theSeg.push_back(&theSegments[0]);
1659 if (1 == seg_ME3[0])
1660 theSeg.push_back(&theSegments[1]);
1661 if (1 == seg_ME2[1])
1662 theSeg.push_back(&theSegments[2]);
1663 if (1 == seg_ME3[1])
1664 theSeg.push_back(&theSegments[3]);
1666 if (!theSeg.empty()) {
1667 std::map<int, GlobalPoint> extrapolatedPoint;
1668 std::map<int, GlobalPoint>::iterator
it;
1671 for (
unsigned int nCh = 0;
nCh < ChamberContainer.size();
nCh++) {
1673 pair<CSCDetId, CSCSegment>* thisSegment =
nullptr;
1674 for (
uint iSeg = 0; iSeg < theSeg.size(); ++iSeg) {
1675 if (cscchamber->
id().
endcap() == theSeg[iSeg]->first.endcap()) {
1677 if (2 == theSeg[iSeg]->
first.station()) {
1678 thisSegment = theSeg[iSeg];
1681 if (3 == theSeg[iSeg]->
first.station()) {
1682 thisSegment = theSeg[iSeg];
1694 it = extrapolatedPoint.find(
int(cscchamberCenter.
z()));
1695 if (
it == extrapolatedPoint.end()) {
1699 double xExtrapolated =
extrapolate1D(segPos.
x(), segDir.
x(), paramaterLine);
1700 double yExtrapolated =
extrapolate1D(segPos.
y(), segDir.
y(), paramaterLine);
1701 GlobalPoint globP(xExtrapolated, yExtrapolated, cscchamberCenter.
z());
1702 extrapolatedPoint[
int(cscchamberCenter.
z())] = globP;
1705 LocalPoint extrapolatedPointLocal = cscchamber->
toLocal(extrapolatedPoint[
int(cscchamberCenter.
z())]);
1708 const std::array<const float, 4>& layerBounds = layerGeom->
parameters();
1709 float shiftFromEdge = 15.;
1710 float shiftFromDeadZone = 10.;
1725 for (
int iL = 0; iL < 6; ++iL) {
1734 float verticalScale =
1738 if (nRHLayers > 1) {
1747 for (
int iL = 0; iL < 6; ++iL) {
1789 const CSCDetId& idALCT = (*j).first;
1793 if ((*digiIt).isValid()) {
1813 edm::LogWarning(
"CSCOfflineMonitor") <<
" FEDRawDataCollection not available";
1817 bool goodEvent =
false;
1818 unsigned long dccBinCheckMask = 0x06080016;
1819 unsigned int examinerMask = 0x1FEBF3F6;
1820 unsigned int errorMask = 0x0;
1824 std::vector<unsigned int> cscFEDids;
1828 cscFEDids.push_back(
id);
1833 cscFEDids.push_back(
id);
1836 for (
unsigned int i = 0;
i < cscFEDids.size();
i++)
1838 unsigned int id = cscFEDids[
i];
1846 unsigned long length = fedData.
size();
1850 std::stringstream examiner_out, examiner_err;
1853 if (examinerMask & 0x40000)
1855 if (examinerMask & 0x8000)
1857 if (examinerMask & 0x0400)
1859 examiner->
setMask(examinerMask);
1860 const short unsigned int*
data = (
short unsigned int*)fedData.
data();
1866 goodEvent = !(examiner->
errors() & dccBinCheckMask);
1874 std::vector<CSCDDUEventData> fed_Data;
1875 std::vector<CSCDDUEventData>* ptr_fedData = &fed_Data;
1880 fed_Data.push_back(single_dduData);
1889 const std::vector<CSCDDUEventData>& dduData = *ptr_fedData;
1893 for (
unsigned int iDDU = 0; iDDU < dduData.size(); ++iDDU) {
1896 if (dduData[iDDU].trailer().errorstat() & errorMask) {
1897 LogTrace(
"CSCDCCUnpacker|CSCRawToDigi") <<
"DDU# " << iDDU <<
" has serious error - no digis unpacked! " 1898 << std::hex << dduData[iDDU].trailer().errorstat();
1903 const std::vector<CSCEventData>& cscData = dduData[iDDU].cscData();
1905 for (
unsigned int iCSC = 0; iCSC < cscData.size(); ++iCSC) {
1908 int vmecrate = cscData[iCSC].dmbHeader()->crateID();
1909 int dmb = cscData[iCSC].dmbHeader()->dmbID();
1914 if ((vmecrate >= 1) && (vmecrate <= 60) && (dmb >= 1) && (dmb <= 10) && (dmb != 6)) {
1915 layer = pcrate->
detId(vmecrate, dmb, icfeb, ilayer);
1917 LogTrace(
"CSCOfflineMonitor") <<
" detID input out of range!!! ";
1918 LogTrace(
"CSCOfflineMonitor") <<
" skipping chamber vme= " << vmecrate <<
" dmb= " << dmb;
1923 int nalct = cscData[iCSC].dmbHeader()->nalct();
1924 bool goodALCT =
false;
1926 if (nalct && cscData[iCSC].alctHeader()) {
1927 if (cscData[iCSC].alctHeader()->
check()) {
1933 int nclct = cscData[iCSC].dmbHeader()->nclct();
1934 bool goodTMB =
false;
1935 if (nclct && cscData[iCSC].tmbData()) {
1936 if (cscData[iCSC].tmbHeader()->
check()) {
1937 if (cscData[iCSC].comparatorData()->
check())
1942 if (goodTMB && goodALCT) {
1943 const CSCTMBHeader* tmbHead = cscData[iCSC].tmbHeader();
1944 std::vector<CSCCLCTDigi> clcts = cscData[iCSC].tmbHeader()->CLCTDigis(
layer.rawId());
1945 if (clcts.empty() || !(clcts[0].isValid()))
1948 if (
layer.station() == 1 &&
layer.ring() == 1 && clcts[0].getKeyStrip() > 128) {
1960 int TMB_CLCTpre_rel_L1A = tmbHead->
BXNCount() - clcts[0].getFullBX();
1961 if (TMB_CLCTpre_rel_L1A > 3563)
1962 TMB_CLCTpre_rel_L1A = TMB_CLCTpre_rel_L1A - 3564;
1963 if (TMB_CLCTpre_rel_L1A < 0)
1964 TMB_CLCTpre_rel_L1A = TMB_CLCTpre_rel_L1A + 3564;
1975 if (examiner !=
nullptr)
1984 const std::array<const float, 4>& layerBounds,
1987 float shiftFromEdge,
1988 float shiftFromDeadZone) {
1992 float y_center = 0.;
1993 double yUp = layerBounds[3] + y_center;
1994 double yDown = -layerBounds[3] + y_center;
1995 double xBound1Shifted = layerBounds[0] - shiftFromEdge;
1996 double xBound2Shifted = layerBounds[1] - shiftFromEdge;
1997 double lineSlope = (yUp - yDown) / (xBound2Shifted - xBound1Shifted);
1998 double lineConst = yUp - lineSlope * xBound2Shifted;
1999 double yBorder = lineSlope *
abs(localPos.
x()) + lineConst;
2002 std::vector<float> deadZoneCenter(6);
2003 float cutZone = shiftFromDeadZone;
2007 deadZoneCenter[0] = -162.48;
2008 deadZoneCenter[1] = -81.8744;
2009 deadZoneCenter[2] = -21.18165;
2010 deadZoneCenter[3] = 39.51105;
2011 deadZoneCenter[4] = 100.2939;
2012 deadZoneCenter[5] = 160.58;
2014 if (localPos.
y() > yBorder &&
2015 ((localPos.
y() > deadZoneCenter[0] + cutZone && localPos.
y() < deadZoneCenter[1] - cutZone) ||
2016 (localPos.
y() > deadZoneCenter[1] + cutZone && localPos.
y() < deadZoneCenter[2] - cutZone) ||
2017 (localPos.
y() > deadZoneCenter[2] + cutZone && localPos.
y() < deadZoneCenter[3] - cutZone) ||
2018 (localPos.
y() > deadZoneCenter[3] + cutZone && localPos.
y() < deadZoneCenter[4] - cutZone) ||
2019 (localPos.
y() > deadZoneCenter[4] + cutZone && localPos.
y() < deadZoneCenter[5] - cutZone))) {
2022 }
else if (1 ==
ring) {
2024 deadZoneCenter[0] = -95.80;
2025 deadZoneCenter[1] = -27.47;
2026 deadZoneCenter[2] = 33.67;
2027 deadZoneCenter[3] = 90.85;
2029 deadZoneCenter[0] = -89.305;
2030 deadZoneCenter[1] = -39.705;
2031 deadZoneCenter[2] = 20.195;
2032 deadZoneCenter[3] = 77.395;
2034 deadZoneCenter[0] = -75.645;
2035 deadZoneCenter[1] = -26.055;
2036 deadZoneCenter[2] = 23.855;
2037 deadZoneCenter[3] = 70.575;
2039 if (localPos.
y() > yBorder &&
2040 ((localPos.
y() > deadZoneCenter[0] + cutZone && localPos.
y() < deadZoneCenter[1] - cutZone) ||
2041 (localPos.
y() > deadZoneCenter[1] + cutZone && localPos.
y() < deadZoneCenter[2] - cutZone) ||
2042 (localPos.
y() > deadZoneCenter[2] + cutZone && localPos.
y() < deadZoneCenter[3] - cutZone))) {
2048 deadZoneCenter[0] = -83.155;
2049 deadZoneCenter[1] = -22.7401;
2050 deadZoneCenter[2] = 27.86665;
2051 deadZoneCenter[3] = 81.005;
2052 if (localPos.
y() > yBorder &&
2053 ((localPos.
y() > deadZoneCenter[0] + cutZone && localPos.
y() < deadZoneCenter[1] - cutZone) ||
2054 (localPos.
y() > deadZoneCenter[1] + cutZone && localPos.
y() < deadZoneCenter[2] - cutZone) ||
2055 (localPos.
y() > deadZoneCenter[2] + cutZone && localPos.
y() < deadZoneCenter[3] - cutZone))) {
2058 }
else if (2 ==
ring) {
2059 deadZoneCenter[0] = -86.285;
2060 deadZoneCenter[1] = -32.88305;
2061 deadZoneCenter[2] = 32.867423;
2062 deadZoneCenter[3] = 88.205;
2063 if (localPos.
y() > (yBorder) &&
2064 ((localPos.
y() > deadZoneCenter[0] + cutZone && localPos.
y() < deadZoneCenter[1] - cutZone) ||
2065 (localPos.
y() > deadZoneCenter[1] + cutZone && localPos.
y() < deadZoneCenter[2] - cutZone) ||
2066 (localPos.
y() > deadZoneCenter[2] + cutZone && localPos.
y() < deadZoneCenter[3] - cutZone))) {
2070 deadZoneCenter[0] = -81.0;
2071 deadZoneCenter[1] = 81.0;
2072 if (localPos.
y() > (yBorder) &&
2073 (localPos.
y() > deadZoneCenter[0] + cutZone && localPos.
y() < deadZoneCenter[1] - cutZone)) {
2089 index =
id.station() * 2 +
id.ring();
2097 else if (
flag == 2) {
2100 index =
id.ring() + 1;
2104 index =
id.station() * 2 +
id.ring();
2117 int st =
id.station();
2119 int ch =
id.chamber();
2120 int ec =
id.endcap();
2122 if (st == 1 && ri == 1)
2124 if (st == 1 && ri == 2)
2126 if (st == 1 && ri == 3)
2128 if (st == 1 && ri == 4)
2130 if (st == 2 && ri == 1)
2132 if (st == 2 && ri == 2)
2134 if (st == 3 && ri == 1)
2136 if (st == 3 && ri == 2)
2138 if (st == 4 && ri == 1)
2140 if (st == 4 && ri == 2)
2143 kSerial = kSerial + 300;
2148 if (
me !=
nullptr) {
2149 me->setAxisTitle(
"Chamber #");
2151 me->setBinLabel(1,
"ME -4/2",
a);
2152 me->setBinLabel(2,
"ME -4/1",
a);
2153 me->setBinLabel(3,
"ME -3/2",
a);
2154 me->setBinLabel(4,
"ME -3/1",
a);
2155 me->setBinLabel(5,
"ME -2/2",
a);
2156 me->setBinLabel(6,
"ME -2/1",
a);
2157 me->setBinLabel(7,
"ME -1/3",
a);
2158 me->setBinLabel(8,
"ME -1/2",
a);
2159 me->setBinLabel(9,
"ME -1/1b",
a);
2160 me->setBinLabel(10,
"ME -1/1a",
a);
2161 me->setBinLabel(11,
"ME +1/1a",
a);
2162 me->setBinLabel(12,
"ME +1/1b",
a);
2163 me->setBinLabel(13,
"ME +1/2",
a);
2164 me->setBinLabel(14,
"ME +1/3",
a);
2165 me->setBinLabel(15,
"ME +2/1",
a);
2166 me->setBinLabel(16,
"ME +2/2",
a);
2167 me->setBinLabel(17,
"ME +3/1",
a);
2168 me->setBinLabel(18,
"ME +3/2",
a);
2169 me->setBinLabel(19,
"ME +4/1",
a);
2170 me->setBinLabel(20,
"ME +4/2",
a);
2172 me->setBinLabel(1,
"ME -4/1",
a);
2173 me->setBinLabel(2,
"ME -3/2",
a);
2174 me->setBinLabel(3,
"ME -3/1",
a);
2175 me->setBinLabel(4,
"ME -2/2",
a);
2176 me->setBinLabel(5,
"ME -2/1",
a);
2177 me->setBinLabel(6,
"ME -1/3",
a);
2178 me->setBinLabel(7,
"ME -1/2",
a);
2179 me->setBinLabel(8,
"ME -1/1b",
a);
2180 me->setBinLabel(9,
"ME -1/1a",
a);
2181 me->setBinLabel(10,
"ME +1/1a",
a);
2182 me->setBinLabel(11,
"ME +1/1b",
a);
2183 me->setBinLabel(12,
"ME +1/2",
a);
2184 me->setBinLabel(13,
"ME +1/3",
a);
2185 me->setBinLabel(14,
"ME +2/1",
a);
2186 me->setBinLabel(15,
"ME +2/2",
a);
2187 me->setBinLabel(16,
"ME +3/1",
a);
2188 me->setBinLabel(17,
"ME +3/2",
a);
2189 me->setBinLabel(18,
"ME +4/1",
a);
MonitorElement * hEffDenominator
MonitorElement * hOSegmentsSerial
edm::EDGetTokenT< CSCALCTDigiCollection > al_token
void crcCFEB(bool enable)
std::vector< MonitorElement * > hSTimeCathodeByChamberType
MonitorElement * hOWireSerial
const CSCLayer * layer(CSCDetId id) const
Return the layer corresponding to the given id.
MonitorElement * hSensitiveAreaEvt
const edm::ESGetToken< CSCCrateMap, CSCCrateMapRcd > hcrateToken_
MonitorElement * hOStrips
int chamberSerial(CSCDetId id)
std::vector< MonitorElement * > hSTimeAnodeByChamberType
LocalPoint localPosition() const override
short int zendcap() const
std::vector< MonitorElement * > hSTimeDiffByChamberType
std::vector< MonitorElement * > hSResid
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
const CSCChamber * chamber(CSCDetId id) const
Return the chamber corresponding to given DetId.
MonitorElement * hORecHits
virtual void setCurrentFolder(std::string const &fullpath)
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
std::vector< MonitorElement * > hRHSumQ
MonitorElement * hStripSTE2
std::vector< MonitorElement * > hWireNumber
for(int i=first, nt=offsets[nh];i< nt;i+=gridDim.x *blockDim.x)
void doResolution(edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom)
Geom::Phi< T > phi() const
static const double slope[3]
std::vector< MonitorElement * > hRHGlobal
edm::EDGetTokenT< CSCWireDigiCollection > wd_token
MonitorElement * hALCTMatch2DNumerator
MonitorElement * hORecHitsSerial
size_t size() const
Lenght of the data buffer in bytes.
float getSignal(const CSCStripDigiCollection &stripdigis, CSCDetId idRH, int centerStrip)
MonitorElement * hSTimeAnodeSerial
MonitorElement * hWirenGroupsTotal
MonitorElement * hCLCTL1ASerial
MonitorElement * hOStripSerial
std::vector< MonitorElement * > hStripNumber
unsigned short iChamberType() const
void crcALCT(bool enable)
MonitorElement * hWireSTE2
void analyze(const edm::Event &event, const edm::EventSetup &eventSetup) override
MonitorElement * hSTimeAnode
MonitorElement * hSGlobalPhi
std::vector< MonitorElement * > hSnhits
const CSCLayerGeometry * geometry() const
CSCOfflineMonitor(const edm::ParameterSet &pset)
MonitorElement * hSnSegments
LocalVector localDirection() const override
Local direction.
C::const_iterator const_iterator
constant access iterator type
const edm::ESGetToken< CSCGeometry, MuonGeometryRecord > cscGeomToken_
MonitorElement * hOStripsAndWiresAndCLCT
bool gangedStrips() const
const std::vector< CSCDDUEventData > & dduData() const
accessor to dduData
T const * product() const
MonitorElement * hOSegments
edm::EDGetTokenT< FEDRawDataCollection > rd_token
std::vector< MonitorElement * > hRHstpos
MonitorElement * hALCTMatchSerial
int typeIndex(CSCDetId id, int flag=1)
MonitorElement * hSnhitsAll
float fitX(const CLHEP::HepMatrix &sp, const CLHEP::HepMatrix &ep)
MonitorElement * hRHnrechitsHi
MonitorElement * hALCTgetBX
edm::EDGetTokenT< CSCCLCTDigiCollection > cl_token
MonitorElement * hALCTMatch
std::vector< MonitorElement * > hSChiSq
MonitorElement * hSGlobalTheta
MonitorElement * hSTimeDiffSerial
Abs< T >::type abs(const T &t)
float ChiSquaredProbability(double chiSquared, double nrDOF)
MonitorElement * hSTimeCombined
#define DEFINE_FWK_MODULE(type)
MonitorElement * hOWiresAndCLCT
MonitorElement * hCLCTL1A2Denominator
std::vector< MonitorElement * > hSTimeCombinedByChamberType
MonitorElement * hALCTgetBX2Denominator
static const std::string kLayer("layer")
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
edm::EDGetTokenT< CSCSegmentCollection > se_token
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
edm::EDGetTokenT< CSCStripDigiCollection > sd_token
MonitorElement * hSTimeVsZ
void doSegments(edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom)
MonitorElement * hSChiSqAll
MonitorElement * hCSCOccupancy
std::vector< MonitorElement * > hWireTBin
CSCDetId detId(int vme, int dmb, int cfeb, int layer=0) const
MonitorElement * hCLCTL1A2DNumerator
std::vector< MonitorElement * > hRHTiming
void doWireDigis(edm::Handle< CSCWireDigiCollection > wires)
virtual const std::array< const float, 4 > parameters() const
MonitorElement * hALCTgetBX2DNumerator
std::pair< const_iterator, const_iterator > Range
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
MonitorElement * hALCTMatch2Denominator
std::vector< DigiType >::const_iterator const_iterator
MonitorElement * hCLCTL1A
std::vector< MonitorElement * > hRHTimingAnode
bool withinSensitiveRegion(LocalPoint localPos, const std::array< const float, 4 > &layerBounds, int station, int ring, float shiftFromEdge, float shiftFromDeadZone)
std::vector< MonitorElement * > hRHRatioQ
std::vector< MonitorElement * > hRHsterr
void doBXMonitor(edm::Handle< CSCALCTDigiCollection > alcts, edm::Handle< CSCCLCTDigiCollection > clcts, const edm::Event &event, const edm::EventSetup &eventSetup)
int32_t check(const uint16_t *&buffer, int32_t length)
MonitorElement * hSTimeDiff
MonitorElement * hSTimeCathode
std::vector< const CSCChamber * > ChamberContainer
char data[epos_bytes_allocation]
std::vector< MonitorElement * > hSChiSqProb
MonitorElement * hSTimeCathodeSerial
MonitorElement * hWirenGroupsTotalHi
void doStripDigis(edm::Handle< CSCStripDigiCollection > strips)
ExaminerStatusType errors(void) const
MonitorElement * hStripNFired
void doPedestalNoise(edm::Handle< CSCStripDigiCollection > strips, edm::ESHandle< CSCGeometry > cscGeom)
MonitorElement * hSTimeCombinedSerial
std::vector< MonitorElement * > hStripPed
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
strips
#turn off noise in all subdetectors simHcalUnsuppressedDigis.doNoise = False mix.digitizers.hcal.doNoise = False simEcalUnsuppressedDigis.doNoise = False mix.digitizers.ecal.doNoise = False simEcalUnsuppressedDigis.doESNoise = False simSiPixelDigis.AddNoise = False mix.digitizers.pixel.AddNoise = False simSiStripDigis.Noise = False mix.digitizers.strip.AddNoise = False
edm::EDGetTokenT< CSCRecHit2DCollection > rh_token
MonitorElement * hALCTgetBXSerial
MonitorElement * hSTimeVsTOF
MonitorElement * hRHnrechits
Log< level::Warning, false > LogWarning
const ChamberContainer & chambers() const
Return a vector of all chambers.
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
MonitorElement * hStripNFiredHi
double extrapolate1D(double initPosition, double initDirection, double parameterOfTheLine)
const CSCLayer * layer(CSCDetId id) const
Return the layer corresponding to given DetId.
double lineParametrization(double z1Position, double z2Position, double z1Direction)
void doEfficiencies(edm::Handle< CSCWireDigiCollection > wires, edm::Handle< CSCStripDigiCollection > strips, edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom)
void doOccupancies(edm::Handle< CSCStripDigiCollection > strips, edm::Handle< CSCWireDigiCollection > wires, edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCSegmentCollection > cscSegments, edm::Handle< CSCCLCTDigiCollection > clcts)
if(threadIdxLocalY==0 &&threadIdxLocalX==0)
const CSCChamberSpecs * specs() const
void setMask(ExaminerMaskType mask)
MonitorElement * hSChiSqProbAll
Geom::Theta< T > theta() const
void doRecHits(edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCStripDigiCollection > strips, edm::ESHandle< CSCGeometry > cscGeom)
CSCDetId id() const
Get the (concrete) DetId.
void applyCSClabels(MonitorElement *meHisto, LabelType t, AxisType a)
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)