14 rd_token = consumes<FEDRawDataCollection>(
pset.getParameter<
edm::InputTag>(
"FEDRawDataCollectionTag"));
15 sd_token = consumes<CSCStripDigiCollection>(
pset.getParameter<
edm::InputTag>(
"stripDigiTag"));
16 wd_token = consumes<CSCWireDigiCollection>(
pset.getParameter<
edm::InputTag>(
"wireDigiTag"));
17 al_token = consumes<CSCALCTDigiCollection>(
pset.getParameter<
edm::InputTag>(
"alctDigiTag"));
18 cl_token = consumes<CSCCLCTDigiCollection>(
pset.getParameter<
edm::InputTag>(
"clctDigiTag"));
19 rh_token = consumes<CSCRecHit2DCollection>(
pset.getParameter<
edm::InputTag>(
"cscRecHitTag"));
20 se_token = consumes<CSCSegmentCollection>(
pset.getParameter<
edm::InputTag>(
"cscSegTag"));
30 hCSCOccupancy = ibooker.
book1D(
"hCSCOccupancy",
"overall CSC occupancy", 13, -0.5, 12.5);
32 hCSCOccupancy->setBinLabel(4,
"# Events with Wires");
33 hCSCOccupancy->setBinLabel(6,
"# Events with Strips");
34 hCSCOccupancy->setBinLabel(8,
"# Events with Wires&Strips");
35 hCSCOccupancy->setBinLabel(10,
"# Events with Rechits");
36 hCSCOccupancy->setBinLabel(12,
"# Events with Segments");
37 hOWiresAndCLCT = ibooker.
book2D(
"hOWiresAndCLCT",
"Wire and CLCT Digi Occupancy ", 36, 0.5, 36.5, 20, 0.5, 20.5);
38 hOWires = ibooker.
book2D(
"hOWires",
"Wire Digi Occupancy", 36, 0.5, 36.5, 20, 0.5, 20.5);
39 hOWireSerial = ibooker.
book1D(
"hOWireSerial",
"Wire Occupancy by Chamber Serial", 601, -0.5, 600.5);
41 hOStrips = ibooker.
book2D(
"hOStrips",
"Strip Digi Occupancy", 36, 0.5, 36.5, 20, 0.5, 20.5);
42 hOStripSerial = ibooker.
book1D(
"hOStripSerial",
"Strip Occupancy by Chamber Serial", 601, -0.5, 600.5);
44 hOStripsAndWiresAndCLCT =
45 ibooker.
book2D(
"hOStripsAndWiresAndCLCT",
"Strip And Wire And CLCT Digi Occupancy", 36, 0.5, 36.5, 20, 0.5, 20.5);
47 hORecHits = ibooker.
book2D(
"hORecHits",
"RecHit Occupancy", 36, 0.5, 36.5, 20, 0.5, 20.5);
48 hORecHitsSerial = ibooker.
book1D(
"hORecHitSerial",
"RecHit Occupancy by Chamber Serial", 601, -0.5, 600.5);
50 hOSegments = ibooker.
book2D(
"hOSegments",
"Segment Occupancy", 36, 0.5, 36.5, 20, 0.5, 20.5);
51 hOSegmentsSerial = ibooker.
book1D(
"hOSegmentSerial",
"Segment Occupancy by Chamber Serial", 601, -0.5, 600.5);
58 ibooker.
book1D(
"hWirenGroupsTotal",
"Fired Wires per Event; # Wiregroups Fired", 500, -0.5, 499.5);
59 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m42",
"Wire TBin Fired (ME -4/2); Time Bin (25ns)", 17, -0.5, 16.5));
60 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m41",
"Wire TBin Fired (ME -4/1); Time Bin (25ns)", 17, -0.5, 16.5));
61 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m32",
"Wire TBin Fired (ME -3/2); Time Bin (25ns)", 17, -0.5, 16.5));
62 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m31",
"Wire TBin Fired (ME -3/1); Time Bin (25ns)", 17, -0.5, 16.5));
63 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m22",
"Wire TBin Fired (ME -2/2); Time Bin (25ns)", 17, -0.5, 16.5));
64 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m21",
"Wire TBin Fired (ME -2/1); Time Bin (25ns)", 17, -0.5, 16.5));
65 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m11a",
"Wire TBin Fired (ME -1/1a); Time Bin (25ns)", 17, -0.5, 16.5));
66 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m13",
"Wire TBin Fired (ME -1/3); Time Bin (25ns)", 17, -0.5, 16.5));
67 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m12",
"Wire TBin Fired (ME -1/2); Time Bin (25ns)", 17, -0.5, 16.5));
68 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m11b",
"Wire TBin Fired (ME -1/1b); Time Bin (25ns)", 17, -0.5, 16.5));
69 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p11b",
"Wire TBin Fired (ME +1/1b); Time Bin (25ns)", 17, -0.5, 16.5));
70 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p12",
"Wire TBin Fired (ME +1/2); Time Bin (25ns)", 17, -0.5, 16.5));
71 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p13",
"Wire TBin Fired (ME +1/3); Time Bin (25ns)", 17, -0.5, 16.5));
72 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p11a",
"Wire TBin Fired (ME +1/1a); Time Bin (25ns)", 17, -0.5, 16.5));
73 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p21",
"Wire TBin Fired (ME +2/1); Time Bin (25ns)", 17, -0.5, 16.5));
74 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p22",
"Wire TBin Fired (ME +2/2); Time Bin (25ns)", 17, -0.5, 16.5));
75 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p31",
"Wire TBin Fired (ME +3/1); Time Bin (25ns)", 17, -0.5, 16.5));
76 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p32",
"Wire TBin Fired (ME +3/2); Time Bin (25ns)", 17, -0.5, 16.5));
77 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p41",
"Wire TBin Fired (ME +4/1); Time Bin (25ns)", 17, -0.5, 16.5));
78 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p42",
"Wire TBin Fired (ME +4/2); Time Bin (25ns)", 17, -0.5, 16.5));
79 hWireNumber.push_back(
80 ibooker.
book1D(
"hWireNumber_m42",
"Wiregroup Number Fired (ME -4/2); Wiregroup #", 113, -0.5, 112.5));
81 hWireNumber.push_back(
82 ibooker.
book1D(
"hWireNumber_m41",
"Wiregroup Number Fired (ME -4/1); Wiregroup #", 113, -0.5, 112.5));
83 hWireNumber.push_back(
84 ibooker.
book1D(
"hWireNumber_m32",
"Wiregroup Number Fired (ME -3/2); Wiregroup #", 113, -0.5, 112.5));
85 hWireNumber.push_back(
86 ibooker.
book1D(
"hWireNumber_m31",
"Wiregroup Number Fired (ME -3/1); Wiregroup #", 113, -0.5, 112.5));
87 hWireNumber.push_back(
88 ibooker.
book1D(
"hWireNumber_m22",
"Wiregroup Number Fired (ME -2/2); Wiregroup #", 113, -0.5, 112.5));
89 hWireNumber.push_back(
90 ibooker.
book1D(
"hWireNumber_m21",
"Wiregroup Number Fired (ME -2/1); Wiregroup #", 113, -0.5, 112.5));
91 hWireNumber.push_back(
92 ibooker.
book1D(
"hWireNumber_m11a",
"Wiregroup Number Fired (ME -1/1a); Wiregroup #", 113, -0.5, 112.5));
93 hWireNumber.push_back(
94 ibooker.
book1D(
"hWireNumber_m13",
"Wiregroup Number Fired (ME -1/3); Wiregroup #", 113, -0.5, 112.5));
95 hWireNumber.push_back(
96 ibooker.
book1D(
"hWireNumber_m12",
"Wiregroup Number Fired (ME -1/2); Wiregroup #", 113, -0.5, 112.5));
97 hWireNumber.push_back(
98 ibooker.
book1D(
"hWireNumber_m11b",
"Wiregroup Number Fired (ME -1/1b); Wiregroup #", 113, -0.5, 112.5));
99 hWireNumber.push_back(
100 ibooker.
book1D(
"hWireNumber_p11b",
"Wiregroup Number Fired (ME +1/1b); Wiregroup #", 113, -0.5, 112.5));
101 hWireNumber.push_back(
102 ibooker.
book1D(
"hWireNumber_p12",
"Wiregroup Number Fired (ME +1/2); Wiregroup #", 113, -0.5, 112.5));
103 hWireNumber.push_back(
104 ibooker.
book1D(
"hWireNumber_p13",
"Wiregroup Number Fired (ME +1/3); Wiregroup #", 113, -0.5, 112.5));
105 hWireNumber.push_back(
106 ibooker.
book1D(
"hWireNumber_p11a",
"Wiregroup Number Fired (ME +1/1a); Wiregroup #", 113, -0.5, 112.5));
107 hWireNumber.push_back(
108 ibooker.
book1D(
"hWireNumber_p21",
"Wiregroup Number Fired (ME +2/1); Wiregroup #", 113, -0.5, 112.5));
109 hWireNumber.push_back(
110 ibooker.
book1D(
"hWireNumber_p22",
"Wiregroup Number Fired (ME +2/2); Wiregroup #", 113, -0.5, 112.5));
111 hWireNumber.push_back(
112 ibooker.
book1D(
"hWireNumber_p31",
"Wiregroup Number Fired (ME +3/1); Wiregroup #", 113, -0.5, 112.5));
113 hWireNumber.push_back(
114 ibooker.
book1D(
"hWireNumber_p32",
"Wiregroup Number Fired (ME +3/2); Wiregroup #", 113, -0.5, 112.5));
115 hWireNumber.push_back(
116 ibooker.
book1D(
"hWireNumber_p41",
"Wiregroup Number Fired (ME +4/1); Wiregroup #", 113, -0.5, 112.5));
117 hWireNumber.push_back(
118 ibooker.
book1D(
"hWireNumber_p42",
"Wiregroup Number Fired (ME +4/2); Wiregroup #", 113, -0.5, 112.5));
122 ibooker.
book1D(
"hStripNFired",
"Fired Strips per Event; # Strips Fired (above 13 ADC)", 1000, -0.5, 999.5);
123 hStripNumber.push_back(
124 ibooker.
book1D(
"hStripNumber_m42",
"Strip Number Fired (ME -4/2); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
125 hStripNumber.push_back(
126 ibooker.
book1D(
"hStripNumber_m41",
"Strip Number Fired (ME -4/1); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
127 hStripNumber.push_back(
128 ibooker.
book1D(
"hStripNumber_m32",
"Strip Number Fired (ME -3/2); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
129 hStripNumber.push_back(
130 ibooker.
book1D(
"hStripNumber_m31",
"Strip Number Fired (ME -3/1); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
131 hStripNumber.push_back(
132 ibooker.
book1D(
"hStripNumber_m22",
"Strip Number Fired (ME -2/2); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
133 hStripNumber.push_back(
134 ibooker.
book1D(
"hStripNumber_m21",
"Strip Number Fired (ME -2/1); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
135 hStripNumber.push_back(ibooker.
book1D(
136 "hStripNumber_m11a",
"Strip Number Fired (ME -1/1a); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
137 hStripNumber.push_back(
138 ibooker.
book1D(
"hStripNumber_m13",
"Strip Number Fired (ME -1/3); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
139 hStripNumber.push_back(
140 ibooker.
book1D(
"hStripNumber_m12",
"Strip Number Fired (ME -1/2); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
141 hStripNumber.push_back(ibooker.
book1D(
142 "hStripNumber_m11b",
"Strip Number Fired (ME -1/1b); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
143 hStripNumber.push_back(ibooker.
book1D(
144 "hStripNumber_p11b",
"Strip Number Fired (ME +1/1b); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
145 hStripNumber.push_back(
146 ibooker.
book1D(
"hStripNumber_p12",
"Strip Number Fired (ME +1/2); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
147 hStripNumber.push_back(
148 ibooker.
book1D(
"hStripNumber_p13",
"Strip Number Fired (ME +1/3); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
149 hStripNumber.push_back(ibooker.
book1D(
150 "hStripNumber_p11a",
"Strip Number Fired (ME +1/1a); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
151 hStripNumber.push_back(
152 ibooker.
book1D(
"hStripNumber_p21",
"Strip Number Fired (ME +2/1); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
153 hStripNumber.push_back(
154 ibooker.
book1D(
"hStripNumber_p22",
"Strip Number Fired (ME +2/2); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
155 hStripNumber.push_back(
156 ibooker.
book1D(
"hStripNumber_p31",
"Strip Number Fired (ME +3/1); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
157 hStripNumber.push_back(
158 ibooker.
book1D(
"hStripNumber_p32",
"Strip Number Fired (ME +3/2); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
159 hStripNumber.push_back(
160 ibooker.
book1D(
"hStripNumber_p41",
"Strip Number Fired (ME +4/1); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
161 hStripNumber.push_back(ibooker.
book1D(
162 "hStripNumber_p42",
"Stripgroup Number Fired (ME +4/2); Strip # Fired (above 13 ADC)", 81, -0.5, 80.5));
168 ibooker.
book1D(
"hStripPedMEm42",
"Pedestal Noise Distribution Chamber ME -4/2; ADC Counts", 50, -25., 25.));
170 ibooker.
book1D(
"hStripPedMEm41",
"Pedestal Noise Distribution Chamber ME -4/1; ADC Counts", 50, -25., 25.));
172 ibooker.
book1D(
"hStripPedMEm32",
"Pedestal Noise Distribution Chamber ME -3/2; ADC Counts", 50, -25., 25.));
174 ibooker.
book1D(
"hStripPedMEm31",
"Pedestal Noise Distribution Chamber ME -3/1; ADC Counts", 50, -25., 25.));
176 ibooker.
book1D(
"hStripPedMEm22",
"Pedestal Noise Distribution Chamber ME -2/2; ADC Counts", 50, -25., 25.));
178 ibooker.
book1D(
"hStripPedMEm21",
"Pedestal Noise Distribution Chamber ME -2/1; ADC Counts", 50, -25., 25.));
180 ibooker.
book1D(
"hStripPedMEm11a",
"Pedestal Noise Distribution Chamber ME -1/1; ADC Counts", 50, -25., 25.));
182 ibooker.
book1D(
"hStripPedMEm13",
"Pedestal Noise Distribution Chamber ME -1/3; ADC Counts", 50, -25., 25.));
184 ibooker.
book1D(
"hStripPedMEm12",
"Pedestal Noise Distribution Chamber ME -1/2; ADC Counts", 50, -25., 25.));
186 ibooker.
book1D(
"hStripPedMEm11b",
"Pedestal Noise Distribution Chamber ME -1/1; ADC Counts", 50, -25., 25.));
188 ibooker.
book1D(
"hStripPedMEp11b",
"Pedestal Noise Distribution Chamber ME +1/1; ADC Counts", 50, -25., 25.));
190 ibooker.
book1D(
"hStripPedMEp12",
"Pedestal Noise Distribution Chamber ME +1/2; ADC Counts", 50, -25., 25.));
192 ibooker.
book1D(
"hStripPedMEp13",
"Pedestal Noise Distribution Chamber ME +1/3; ADC Counts", 50, -25., 25.));
194 ibooker.
book1D(
"hStripPedMEp11a",
"Pedestal Noise Distribution Chamber ME +1/1; ADC Counts", 50, -25., 25.));
196 ibooker.
book1D(
"hStripPedMEp21",
"Pedestal Noise Distribution Chamber ME +2/1; ADC Counts", 50, -25., 25.));
198 ibooker.
book1D(
"hStripPedMEp22",
"Pedestal Noise Distribution Chamber ME +2/2; ADC Counts", 50, -25., 25.));
200 ibooker.
book1D(
"hStripPedMEp31",
"Pedestal Noise Distribution Chamber ME +3/1; ADC Counts", 50, -25., 25.));
202 ibooker.
book1D(
"hStripPedMEp32",
"Pedestal Noise Distribution Chamber ME +3/2; ADC Counts", 50, -25., 25.));
204 ibooker.
book1D(
"hStripPedMEp41",
"Pedestal Noise Distribution Chamber ME +4/1; ADC Counts", 50, -25., 25.));
206 ibooker.
book1D(
"hStripPedMEp42",
"Pedestal Noise Distribution Chamber ME +4/2; ADC Counts", 50, -25., 25.));
211 hRHnrechits = ibooker.
book1D(
"hRHnrechits",
"recHits per Event (all chambers); # of RecHits", 500, -0.50, 499.5);
212 hRHGlobal.push_back(ibooker.
book2D(
213 "hRHGlobalp1",
"recHit global X,Y station +1; Global X (cm); Global Y (cm)", 100, -800., 800., 100, -800., 800.));
214 hRHGlobal.push_back(ibooker.
book2D(
215 "hRHGlobalp2",
"recHit global X,Y station +2; Global X (cm); Global Y (cm)", 100, -800., 800., 100, -800., 800.));
216 hRHGlobal.push_back(ibooker.
book2D(
217 "hRHGlobalp3",
"recHit global X,Y station +3; Global X (cm); Global Y (cm)", 100, -800., 800., 100, -800., 800.));
218 hRHGlobal.push_back(ibooker.
book2D(
219 "hRHGlobalp4",
"recHit global X,Y station +4; Global X (cm); Global Y (cm)", 100, -800., 800., 100, -800., 800.));
220 hRHGlobal.push_back(ibooker.
book2D(
221 "hRHGlobalm1",
"recHit global X,Y station -1; Global X (cm); Global Y (cm)", 100, -800., 800., 100, -800., 800.));
222 hRHGlobal.push_back(ibooker.
book2D(
223 "hRHGlobalm2",
"recHit global X,Y station -2; Global X (cm); Global Y (cm)", 100, -800., 800., 100, -800., 800.));
224 hRHGlobal.push_back(ibooker.
book2D(
225 "hRHGlobalm3",
"recHit global X,Y station -3; Global X (cm); Global Y (cm)", 100, -800., 800., 100, -800., 800.));
226 hRHGlobal.push_back(ibooker.
book2D(
227 "hRHGlobalm4",
"recHit global X,Y station -4; Global X (cm); Global Y (cm)", 100, -800., 800., 100, -800., 800.));
228 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm42",
"Sum 3x3 recHit Charge (ME -4/2); ADC counts", 100, 0, 2000));
229 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm41",
"Sum 3x3 recHit Charge (ME -4/1); ADC counts", 100, 0, 2000));
230 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm32",
"Sum 3x3 recHit Charge (ME -3/2); ADC counts", 100, 0, 2000));
231 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm31",
"Sum 3x3 recHit Charge (ME -3/1); ADC counts", 100, 0, 2000));
232 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm22",
"Sum 3x3 recHit Charge (ME -2/2); ADC counts", 100, 0, 2000));
233 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm21",
"Sum 3x3 recHit Charge (ME -2/1); ADC counts", 100, 0, 2000));
234 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm11a",
"Sum 3x3 recHit Charge (ME -1/1a); ADC counts", 100, 0, 4000));
235 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm13",
"Sum 3x3 recHit Charge (ME -1/3); ADC counts", 100, 0, 2000));
236 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm12",
"Sum 3x3 recHit Charge (ME -1/2); ADC counts", 100, 0, 2000));
237 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm11b",
"Sum 3x3 recHit Charge (ME -1/1b); ADC counts", 100, 0, 4000));
238 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp11b",
"Sum 3x3 recHit Charge (ME +1/1b); ADC counts", 100, 0, 4000));
239 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp12",
"Sum 3x3 recHit Charge (ME +1/2); ADC counts", 100, 0, 2000));
240 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp13",
"Sum 3x3 recHit Charge (ME +1/3); ADC counts", 100, 0, 2000));
241 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp11a",
"Sum 3x3 recHit Charge (ME +1/1a); ADC counts", 100, 0, 4000));
242 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp21",
"Sum 3x3 recHit Charge (ME +2/1); ADC counts", 100, 0, 2000));
243 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp22",
"Sum 3x3 recHit Charge (ME +2/2); ADC counts", 100, 0, 2000));
244 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp31",
"Sum 3x3 recHit Charge (ME +3/1); ADC counts", 100, 0, 2000));
245 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp32",
"Sum 3x3 recHit Charge (ME +3/2); ADC counts", 100, 0, 2000));
246 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp41",
"Sum 3x3 recHit Charge (ME +4/1); ADC counts", 100, 0, 2000));
247 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp42",
"Sum 3x3 recHit Charge (ME +4/2); ADC counts", 100, 0, 2000));
248 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm42",
"Charge Ratio (Ql+Qr)/Qt (ME -4/2); (Ql+Qr)/Qt", 100, -0.1, 1.1));
249 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm41",
"Charge Ratio (Ql+Qr)/Qt (ME -4/1); (Ql+Qr)/Qt", 100, -0.1, 1.1));
250 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm32",
"Charge Ratio (Ql+Qr)/Qt (ME -3/2); (Ql+Qr)/Qt", 100, -0.1, 1.1));
251 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm31",
"Charge Ratio (Ql+Qr)/Qt (ME -3/1); (Ql+Qr)/Qt", 100, -0.1, 1.1));
252 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm22",
"Charge Ratio (Ql+Qr)/Qt (ME -2/2); (Ql+Qr)/Qt", 100, -0.1, 1.1));
253 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm21",
"Charge Ratio (Ql+Qr)/Qt (ME -2/1); (Ql+Qr)/Qt", 100, -0.1, 1.1));
255 ibooker.
book1D(
"hRHRatioQm11a",
"Charge Ratio (Ql+Qr)/Qt (ME -1/1a); (Ql+Qr)/Qt", 100, -0.1, 1.1));
256 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm13",
"Charge Ratio (Ql+Qr)/Qt (ME -1/3); (Ql+Qr)/Qt", 100, -0.1, 1.1));
257 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm12",
"Charge Ratio (Ql+Qr)/Qt (ME -1/2); (Ql+Qr)/Qt", 100, -0.1, 1.1));
259 ibooker.
book1D(
"hRHRatioQm11b",
"Charge Ratio (Ql+Qr)/Qt (ME -1/1b); (Ql+Qr)/Qt", 100, -0.1, 1.1));
261 ibooker.
book1D(
"hRHRatioQp11b",
"Charge Ratio (Ql+Qr)/Qt (ME +1/1b); (Ql+Qr)/Qt", 100, -0.1, 1.1));
262 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp12",
"Charge Ratio (Ql+Qr)/Qt (ME +1/2); (Ql+Qr)/Qt", 100, -0.1, 1.1));
263 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp13",
"Charge Ratio (Ql+Qr)/Qt (ME +1/3); (Ql+Qr)/Qt", 100, -0.1, 1.1));
265 ibooker.
book1D(
"hRHRatioQp11a",
"Charge Ratio (Ql+Qr)/Qt (ME +1/1a); (Ql+Qr)/Qt", 100, -0.1, 1.1));
266 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp21",
"Charge Ratio (Ql+Qr)/Qt (ME +2/1); (Ql+Qr)/Qt", 100, -0.1, 1.1));
267 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp22",
"Charge Ratio (Ql+Qr)/Qt (ME +2/2); (Ql+Qr)/Qt", 100, -0.1, 1.1));
268 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp31",
"Charge Ratio (Ql+Qr)/Qt (ME +3/1); (Ql+Qr)/Qt", 100, -0.1, 1.1));
269 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp32",
"Charge Ratio (Ql+Qr)/Qt (ME +3/2); (Ql+Qr)/Qt", 100, -0.1, 1.1));
270 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp41",
"Charge Ratio (Ql+Qr)/Qt (ME +4/1); (Ql+Qr)/Qt", 100, -0.1, 1.1));
271 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp42",
"Charge Ratio (Ql+Qr)/Qt (ME +4/2); (Ql+Qr)/Qt", 100, -0.1, 1.1));
272 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm42",
"recHit Time (ME -4/2); ns", 200, -500., 500.));
273 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm41",
"recHit Time (ME -4/1); ns", 200, -500., 500.));
274 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm32",
"recHit Time (ME -3/2); ns", 200, -500., 500.));
275 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm31",
"recHit Time (ME -3/1); ns", 200, -500., 500.));
276 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm22",
"recHit Time (ME -2/2); ns", 200, -500., 500.));
277 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm21",
"recHit Time (ME -2/1); ns", 200, -500., 500.));
278 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm11a",
"recHit Time (ME -1/1a); ns", 200, -500., 500.));
279 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm13",
"recHit Time (ME -1/3); ns", 200, -500., 500.));
280 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm12",
"recHit Time (ME -1/2); ns", 200, -500., 500.));
281 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm11b",
"recHit Time (ME -1/1b); ns", 200, -500., 500.));
282 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp11b",
"recHit Time (ME +1/1b); ns", 200, -500., 500.));
283 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp12",
"recHit Time (ME +1/2); ns", 200, -500., 500.));
284 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp13",
"recHit Time (ME +1/3); ns", 200, -500., 500.));
285 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp11a",
"recHit Time (ME +1/1a); ns", 200, -500., 500.));
286 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp21",
"recHit Time (ME +2/1); ns", 200, -500., 500.));
287 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp22",
"recHit Time (ME +2/2); ns", 200, -500., 500.));
288 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp31",
"recHit Time (ME +3/1); ns", 200, -500., 500.));
289 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp32",
"recHit Time (ME +3/2); ns", 200, -500., 500.));
290 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp41",
"recHit Time (ME +4/1); ns", 200, -500., 500.));
291 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp42",
"recHit Time (ME +4/2); ns", 200, -500., 500.));
292 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem42",
"Anode recHit Time (ME -4/2); ns", 80, -500., 500.));
293 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem41",
"Anode recHit Time (ME -4/1); ns", 80, -500., 500.));
294 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem32",
"Anode recHit Time (ME -3/2); ns", 80, -500., 500.));
295 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem31",
"Anode recHit Time (ME -3/1); ns", 80, -500., 500.));
296 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem22",
"Anode recHit Time (ME -2/2); ns", 80, -500., 500.));
297 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem21",
"Anode recHit Time (ME -2/1); ns", 80, -500., 500.));
298 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem11a",
"Anode recHit Time (ME -1/1a); ns", 80, -500., 500.));
299 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem13",
"Anode recHit Time (ME -1/3); ns", 80, -500., 500.));
300 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem12",
"Anode recHit Time (ME -1/2); ns", 80, -500., 500.));
301 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem11b",
"Anode recHit Time (ME -1/1b); ns", 80, -500., 500.));
302 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep11b",
"Anode recHit Time (ME +1/1b); ns", 80, -500., 500.));
303 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep12",
"Anode recHit Time (ME +1/2); ns", 80, -500., 500.));
304 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep13",
"Anode recHit Time (ME +1/3); ns", 80, -500., 500.));
305 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep11a",
"Anode recHit Time (ME +1/1a); ns", 80, -500., 500.));
306 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep21",
"Anode recHit Time (ME +2/1); ns", 80, -500., 500.));
307 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep22",
"Anode recHit Time (ME +2/2); ns", 80, -500., 500.));
308 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep31",
"Anode recHit Time (ME +3/1); ns", 80, -500., 500.));
309 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep32",
"Anode recHit Time (ME +3/2); ns", 80, -500., 500.));
310 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep41",
"Anode recHit Time (ME +4/1); ns", 80, -500., 500.));
311 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep42",
"Anode recHit Time (ME +4/2); ns", 80, -500., 500.));
313 ibooker.
book1D(
"hRHstposm42",
"Reconstructed Position on Strip (ME -4/2); Strip Widths", 120, -0.6, 0.6));
315 ibooker.
book1D(
"hRHstposm41",
"Reconstructed Position on Strip (ME -4/1); Strip Widths", 120, -0.6, 0.6));
317 ibooker.
book1D(
"hRHstposm32",
"Reconstructed Position on Strip (ME -3/2); Strip Widths", 120, -0.6, 0.6));
319 ibooker.
book1D(
"hRHstposm31",
"Reconstructed Position on Strip (ME -3/1); Strip Widths", 120, -0.6, 0.6));
321 ibooker.
book1D(
"hRHstposm22",
"Reconstructed Position on Strip (ME -2/2); Strip Widths", 120, -0.6, 0.6));
323 ibooker.
book1D(
"hRHstposm21",
"Reconstructed Position on Strip (ME -2/1); Strip Widths", 120, -0.6, 0.6));
325 ibooker.
book1D(
"hRHstposm11a",
"Reconstructed Position on Strip (ME -1/1a); Strip Widths", 120, -0.6, 0.6));
327 ibooker.
book1D(
"hRHstposm13",
"Reconstructed Position on Strip (ME -1/3); Strip Widths", 120, -0.6, 0.6));
329 ibooker.
book1D(
"hRHstposm12",
"Reconstructed Position on Strip (ME -1/2); Strip Widths", 120, -0.6, 0.6));
331 ibooker.
book1D(
"hRHstposm11b",
"Reconstructed Position on Strip (ME -1/1b); Strip Widths", 120, -0.6, 0.6));
333 ibooker.
book1D(
"hRHstposp11b",
"Reconstructed Position on Strip (ME +1/1b); Strip Widths", 120, -0.6, 0.6));
335 ibooker.
book1D(
"hRHstposp12",
"Reconstructed Position on Strip (ME +1/2); Strip Widths", 120, -0.6, 0.6));
337 ibooker.
book1D(
"hRHstposp13",
"Reconstructed Position on Strip (ME +1/3); Strip Widths", 120, -0.6, 0.6));
339 ibooker.
book1D(
"hRHstposp11a",
"Reconstructed Position on Strip (ME +1/1a); Strip Widths", 120, -0.6, 0.6));
341 ibooker.
book1D(
"hRHstposp21",
"Reconstructed Position on Strip (ME +2/1); Strip Widths", 120, -0.6, 0.6));
343 ibooker.
book1D(
"hRHstposp22",
"Reconstructed Position on Strip (ME +2/2); Strip Widths", 120, -0.6, 0.6));
345 ibooker.
book1D(
"hRHstposp31",
"Reconstructed Position on Strip (ME +3/1); Strip Widths", 120, -0.6, 0.6));
347 ibooker.
book1D(
"hRHstposp32",
"Reconstructed Position on Strip (ME +3/2); Strip Widths", 120, -0.6, 0.6));
349 ibooker.
book1D(
"hRHstposp41",
"Reconstructed Position on Strip (ME +4/1); Strip Widths", 120, -0.6, 0.6));
351 ibooker.
book1D(
"hRHstposp42",
"Reconstructed Position on Strip (ME +4/2); Strip Widths", 120, -0.6, 0.6));
353 ibooker.
book1D(
"hRHsterrm42",
"Estimated Error on Strip Measurement (ME -4/2); Strip Widths", 75, -0.01, 0.24));
355 ibooker.
book1D(
"hRHsterrm41",
"Estimated Error on Strip Measurement (ME -4/1); Strip Widths", 75, -0.01, 0.24));
357 ibooker.
book1D(
"hRHsterrm32",
"Estimated Error on Strip Measurement (ME -3/2); Strip Widths", 75, -0.01, 0.24));
359 ibooker.
book1D(
"hRHsterrm31",
"Estimated Error on Strip Measurement (ME -3/1); Strip Widths", 75, -0.01, 0.24));
361 ibooker.
book1D(
"hRHsterrm22",
"Estimated Error on Strip Measurement (ME -2/2); Strip Widths", 75, -0.01, 0.24));
363 ibooker.
book1D(
"hRHsterrm21",
"Estimated Error on Strip Measurement (ME -2/1); Strip Widths", 75, -0.01, 0.24));
365 ibooker.
book1D(
"hRHsterrm11a",
"Estimated Error on Strip Measurement (ME -1/1a); Strip Widths", 75, -0.01, 0.24));
367 ibooker.
book1D(
"hRHsterrm13",
"Estimated Error on Strip Measurement (ME -1/3); Strip Widths", 75, -0.01, 0.24));
369 ibooker.
book1D(
"hRHsterrm12",
"Estimated Error on Strip Measurement (ME -1/2); Strip Widths", 75, -0.01, 0.24));
371 ibooker.
book1D(
"hRHsterrm11b",
"Estimated Error on Strip Measurement (ME -1/1b); Strip Widths", 75, -0.01, 0.24));
373 ibooker.
book1D(
"hRHsterrp11b",
"Estimated Error on Strip Measurement (ME +1/1b); Strip Widths", 75, -0.01, 0.24));
375 ibooker.
book1D(
"hRHsterrp12",
"Estimated Error on Strip Measurement (ME +1/2); Strip Widths", 75, -0.01, 0.24));
377 ibooker.
book1D(
"hRHsterrp13",
"Estimated Error on Strip Measurement (ME +1/3); Strip Widths", 75, -0.01, 0.24));
379 ibooker.
book1D(
"hRHsterrp11a",
"Estimated Error on Strip Measurement (ME +1/1a); Strip Widths", 75, -0.01, 0.24));
381 ibooker.
book1D(
"hRHsterrp21",
"Estimated Error on Strip Measurement (ME +2/1); Strip Widths", 75, -0.01, 0.24));
383 ibooker.
book1D(
"hRHsterrp22",
"Estimated Error on Strip Measurement (ME +2/2); Strip Widths", 75, -0.01, 0.24));
385 ibooker.
book1D(
"hRHsterrp31",
"Estimated Error on Strip Measurement (ME +3/1); Strip Widths", 75, -0.01, 0.24));
387 ibooker.
book1D(
"hRHsterrp32",
"Estimated Error on Strip Measurement (ME +3/2); Strip Widths", 75, -0.01, 0.24));
389 ibooker.
book1D(
"hRHsterrp41",
"Estimated Error on Strip Measurement (ME +4/1); Strip Widths", 75, -0.01, 0.24));
391 ibooker.
book1D(
"hRHsterrp42",
"Estimated Error on Strip Measurement (ME +4/2); Strip Widths", 75, -0.01, 0.24));
396 hSnSegments = ibooker.
book1D(
"hSnSegments",
"Number of Segments per Event; # of Segments", 26, -0.5, 25.5);
397 hSnhitsAll = ibooker.
book1D(
"hSnhits",
"N hits on Segments; # of hits", 8, -0.5, 7.5);
398 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm42",
"# of hits on Segments (ME -4/2); # of hits", 8, -0.5, 7.5));
399 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm41",
"# of hits on Segments (ME -4/1); # of hits", 8, -0.5, 7.5));
400 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm32",
"# of hits on Segments (ME -3/2); # of hits", 8, -0.5, 7.5));
401 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm31",
"# of hits on Segments (ME -3/1); # of hits", 8, -0.5, 7.5));
402 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm22",
"# of hits on Segments (ME -2/2); # of hits", 8, -0.5, 7.5));
403 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm21",
"# of hits on Segments (ME -2/1); # of hits", 8, -0.5, 7.5));
404 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm11a",
"# of hits on Segments (ME -1/1a); # of hits", 8, -0.5, 7.5));
405 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm13",
"# of hits on Segments (ME -1/3); # of hits", 8, -0.5, 7.5));
406 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm12",
"# of hits on Segments (ME -1/2); # of hits", 8, -0.5, 7.5));
407 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm11b",
"# of hits on Segments (ME -1/1b); # of hits", 8, -0.5, 7.5));
408 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp11b",
"# of hits on Segments (ME +1/1b); # of hits", 8, -0.5, 7.5));
409 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp12",
"# of hits on Segments (ME +1/2); # of hits", 8, -0.5, 7.5));
410 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp13",
"# of hits on Segments (ME +1/3); # of hits", 8, -0.5, 7.5));
411 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp11a",
"# of hits on Segments (ME +1/1a); # of hits", 8, -0.5, 7.5));
412 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp21",
"# of hits on Segments (ME +2/1); # of hits", 8, -0.5, 7.5));
413 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp22",
"# of hits on Segments (ME +2/2); # of hits", 8, -0.5, 7.5));
414 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp31",
"# of hits on Segments (ME +3/1); # of hits", 8, -0.5, 7.5));
415 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp32",
"# of hits on Segments (ME +3/2); # of hits", 8, -0.5, 7.5));
416 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp41",
"# of hits on Segments (ME +4/1); # of hits", 8, -0.5, 7.5));
417 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp42",
"# of hits on Segments (ME +4/2); # of hits", 8, -0.5, 7.5));
418 hSChiSqAll = ibooker.
book1D(
"hSChiSq",
"Segment Normalized Chi2; Chi2/ndof", 110, -0.05, 10.5);
419 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm42",
"Segment Normalized Chi2 (ME -4/2); Chi2/ndof", 110, -0.05, 10.5));
420 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm41",
"Segment Normalized Chi2 (ME -4/1); Chi2/ndof", 110, -0.05, 10.5));
421 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm32",
"Segment Normalized Chi2 (ME -3/2); Chi2/ndof", 110, -0.05, 10.5));
422 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm31",
"Segment Normalized Chi2 (ME -3/1); Chi2/ndof", 110, -0.05, 10.5));
423 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm22",
"Segment Normalized Chi2 (ME -2/2); Chi2/ndof", 110, -0.05, 10.5));
424 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm21",
"Segment Normalized Chi2 (ME -2/1); Chi2/ndof", 110, -0.05, 10.5));
425 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm11a",
"Segment Normalized Chi2 (ME -1/1a); Chi2/ndof", 110, -0.05, 10.5));
426 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm13",
"Segment Normalized Chi2 (ME -1/3); Chi2/ndof", 110, -0.05, 10.5));
427 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm12",
"Segment Normalized Chi2 (ME -1/2); Chi2/ndof", 110, -0.05, 10.5));
428 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm11b",
"Segment Normalized Chi2 (ME -1/1b); Chi2/ndof", 110, -0.05, 10.5));
429 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp11b",
"Segment Normalized Chi2 (ME +1/1b); Chi2/ndof", 110, -0.05, 10.5));
430 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp12",
"Segment Normalized Chi2 (ME +1/2); Chi2/ndof", 110, -0.05, 10.5));
431 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp13",
"Segment Normalized Chi2 (ME +1/3); Chi2/ndof", 110, -0.05, 10.5));
432 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp11a",
"Segment Normalized Chi2 (ME +1/1a); Chi2/ndof", 110, -0.05, 10.5));
433 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp21",
"Segment Normalized Chi2 (ME +2/1); Chi2/ndof", 110, -0.05, 10.5));
434 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp22",
"Segment Normalized Chi2 (ME +2/2); Chi2/ndof", 110, -0.05, 10.5));
435 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp31",
"Segment Normalized Chi2 (ME +3/1); Chi2/ndof", 110, -0.05, 10.5));
436 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp32",
"Segment Normalized Chi2 (ME +3/2); Chi2/ndof", 110, -0.05, 10.5));
437 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp41",
"Segment Normalized Chi2 (ME +4/1); Chi2/ndof", 110, -0.05, 10.5));
438 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp42",
"Segment Normalized Chi2 (ME +4/2); Chi2/ndof", 110, -0.05, 10.5));
439 hSChiSqProbAll = ibooker.
book1D(
"hSChiSqProb",
"Segment chi2 Probability; Probability", 110, -0.05, 1.05);
440 hSChiSqProb.push_back(
441 ibooker.
book1D(
"hSChiSqProbm42",
"Segment chi2 Probability (ME -4/2); Probability", 110, -0.05, 1.05));
442 hSChiSqProb.push_back(
443 ibooker.
book1D(
"hSChiSqProbm41",
"Segment chi2 Probability (ME -4/1); Probability", 110, -0.05, 1.05));
444 hSChiSqProb.push_back(
445 ibooker.
book1D(
"hSChiSqProbm32",
"Segment chi2 Probability (ME -3/2); Probability", 110, -0.05, 1.05));
446 hSChiSqProb.push_back(
447 ibooker.
book1D(
"hSChiSqProbm31",
"Segment chi2 Probability (ME -3/1); Probability", 110, -0.05, 1.05));
448 hSChiSqProb.push_back(
449 ibooker.
book1D(
"hSChiSqProbm22",
"Segment chi2 Probability (ME -2/2); Probability", 110, -0.05, 1.05));
450 hSChiSqProb.push_back(
451 ibooker.
book1D(
"hSChiSqProbm21",
"Segment chi2 Probability (ME -2/1); Probability", 110, -0.05, 1.05));
452 hSChiSqProb.push_back(
453 ibooker.
book1D(
"hSChiSqProbm11a",
"Segment chi2 Probability (ME -1/1a); Probability", 110, -0.05, 1.05));
454 hSChiSqProb.push_back(
455 ibooker.
book1D(
"hSChiSqProbm13",
"Segment chi2 Probability (ME -1/3); Probability", 110, -0.05, 1.05));
456 hSChiSqProb.push_back(
457 ibooker.
book1D(
"hSChiSqProbm12",
"Segment chi2 Probability (ME -1/2); Probability", 110, -0.05, 1.05));
458 hSChiSqProb.push_back(
459 ibooker.
book1D(
"hSChiSqProbm11b",
"Segment chi2 Probability (ME -1/1b); Probability", 110, -0.05, 1.05));
460 hSChiSqProb.push_back(
461 ibooker.
book1D(
"hSChiSqProbp11b",
"Segment chi2 Probability (ME +1/1b); Probability", 110, -0.05, 1.05));
462 hSChiSqProb.push_back(
463 ibooker.
book1D(
"hSChiSqProbp12",
"Segment chi2 Probability (ME +1/2); Probability", 110, -0.05, 1.05));
464 hSChiSqProb.push_back(
465 ibooker.
book1D(
"hSChiSqProbp13",
"Segment chi2 Probability (ME +1/3); Probability", 110, -0.05, 1.05));
466 hSChiSqProb.push_back(
467 ibooker.
book1D(
"hSChiSqProbp11a",
"Segment chi2 Probability (ME +1/1a); Probability", 110, -0.05, 1.05));
468 hSChiSqProb.push_back(
469 ibooker.
book1D(
"hSChiSqProbp21",
"Segment chi2 Probability (ME +2/1); Probability", 110, -0.05, 1.05));
470 hSChiSqProb.push_back(
471 ibooker.
book1D(
"hSChiSqProbp22",
"Segment chi2 Probability (ME +2/2); Probability", 110, -0.05, 1.05));
472 hSChiSqProb.push_back(
473 ibooker.
book1D(
"hSChiSqProbp31",
"Segment chi2 Probability (ME +3/1); Probability", 110, -0.05, 1.05));
474 hSChiSqProb.push_back(
475 ibooker.
book1D(
"hSChiSqProbp32",
"Segment chi2 Probability (ME +3/2); Probability", 110, -0.05, 1.05));
476 hSChiSqProb.push_back(
477 ibooker.
book1D(
"hSChiSqProbp41",
"Segment chi2 Probability (ME +4/1); Probability", 110, -0.05, 1.05));
478 hSChiSqProb.push_back(
479 ibooker.
book1D(
"hSChiSqProbp42",
"Segment chi2 Probability (ME +4/2); Probability", 110, -0.05, 1.05));
481 ibooker.
book1D(
"hSGlobalTheta",
"Segment Direction (Global Theta); Global Theta (radians)", 136, -0.1, 3.3);
482 hSGlobalPhi = ibooker.
book1D(
"hSGlobalPhi",
"Segment Direction (Global Phi); Global Phi (radians)", 128, -3.2, 3.2);
484 hSTimeDiff = ibooker.
book1D(
"hSTimeDiff",
"Anode Minus Cathode Segment Time [ns]", 50, -50, 50);
485 hSTimeDiffByChamberType.push_back(
486 ibooker.
book1D(
"hSTimeDiff_m42",
"Anode Minus Cathode Segment Time (ME -4/2) [ns]", 50, -50, 50));
487 hSTimeDiffByChamberType.push_back(
488 ibooker.
book1D(
"hSTimeDiff_m41",
"Anode Minus Cathode Segment Time (ME -4/1) [ns]", 50, -50, 50));
489 hSTimeDiffByChamberType.push_back(
490 ibooker.
book1D(
"hSTimeDiff_m32",
"Anode Minus Cathode Segment Time (ME -3/2) [ns]", 50, -50, 50));
491 hSTimeDiffByChamberType.push_back(
492 ibooker.
book1D(
"hSTimeDiff_m31",
"Anode Minus Cathode Segment Time (ME -3/2) [ns]", 50, -50, 50));
493 hSTimeDiffByChamberType.push_back(
494 ibooker.
book1D(
"hSTimeDiff_m22",
"Anode Minus Cathode Segment Time (ME -2/2) [ns]", 50, -50, 50));
495 hSTimeDiffByChamberType.push_back(
496 ibooker.
book1D(
"hSTimeDiff_m21",
"Anode Minus Cathode Segment Time (ME -2/1) [ns]", 50, -50, 50));
497 hSTimeDiffByChamberType.push_back(
498 ibooker.
book1D(
"hSTimeDiff_m11a",
"Anode Minus Cathode Segment Time (ME -1/1a) [ns]", 50, -50, 50));
499 hSTimeDiffByChamberType.push_back(
500 ibooker.
book1D(
"hSTimeDiff_m13",
"Anode Minus Cathode Segment Time (ME -1/3) [ns]", 50, -50, 50));
501 hSTimeDiffByChamberType.push_back(
502 ibooker.
book1D(
"hSTimeDiff_m12",
"Anode Minus Cathode Segment Time (ME -1/2) [ns]", 50, -50, 50));
503 hSTimeDiffByChamberType.push_back(
504 ibooker.
book1D(
"hSTimeDiff_m11b",
"Anode Minus Cathode Segment Time (ME -1/1b) [ns]", 50, -50, 50));
505 hSTimeDiffByChamberType.push_back(
506 ibooker.
book1D(
"hSTimeDiff_p11b",
"Anode Minus Cathode Segment Time (ME +1/1b) [ns]", 50, -50, 50));
507 hSTimeDiffByChamberType.push_back(
508 ibooker.
book1D(
"hSTimeDiff_p12",
"Anode Minus Cathode Segment Time (ME +1/2) [ns]", 50, -50, 50));
509 hSTimeDiffByChamberType.push_back(
510 ibooker.
book1D(
"hSTimeDiff_p13",
"Anode Minus Cathode Segment Time (ME +1/3) [ns]", 50, -50, 50));
511 hSTimeDiffByChamberType.push_back(
512 ibooker.
book1D(
"hSTimeDiff_p11a",
"Anode Minus Cathode Segment Time (ME +1/1a) [ns]", 50, -50, 50));
513 hSTimeDiffByChamberType.push_back(
514 ibooker.
book1D(
"hSTimeDiff_p21",
"Anode Minus Cathode Segment Time (ME +2/1) [ns]", 50, -50, 50));
515 hSTimeDiffByChamberType.push_back(
516 ibooker.
book1D(
"hSTimeDiff_p22",
"Anode Minus Cathode Segment Time (ME +2/2) [ns]", 50, -50, 50));
517 hSTimeDiffByChamberType.push_back(
518 ibooker.
book1D(
"hSTimeDiff_p31",
"Anode Minus Cathode Segment Time (ME +3/1) [ns]", 50, -50, 50));
519 hSTimeDiffByChamberType.push_back(
520 ibooker.
book1D(
"hSTimeDiff_p32",
"Anode Minus Cathode Segment Time (ME +3/2) [ns]", 50, -50, 50));
521 hSTimeDiffByChamberType.push_back(
522 ibooker.
book1D(
"hSTimeDiff_p41",
"Anode Minus Cathode Segment Time (ME +4/1) [ns]", 50, -50, 50));
523 hSTimeDiffByChamberType.push_back(
524 ibooker.
book1D(
"hSTimeDiff_p42",
"Anode Minus Cathode Segment Time (ME +4/2) [ns]", 50, -50, 50));
526 hSTimeAnode = ibooker.
book1D(
"hSTimeAnode",
"Anode Only Segment Time [ns]", 200, -200, 200);
527 hSTimeAnodeByChamberType.push_back(
528 ibooker.
book1D(
"hSTimeAnode_m42",
"Anode Only Segment Time (ME -4/2) [ns]", 200, -200, 200));
529 hSTimeAnodeByChamberType.push_back(
530 ibooker.
book1D(
"hSTimeAnode_m41",
"Anode Only Segment Time (ME -4/1) [ns]", 200, -200, 200));
531 hSTimeAnodeByChamberType.push_back(
532 ibooker.
book1D(
"hSTimeAnode_m32",
"Anode Only Segment Time (ME -3/2) [ns]", 200, -200, 200));
533 hSTimeAnodeByChamberType.push_back(
534 ibooker.
book1D(
"hSTimeAnode_m31",
"Anode Only Segment Time (ME -3/2) [ns]", 200, -200, 200));
535 hSTimeAnodeByChamberType.push_back(
536 ibooker.
book1D(
"hSTimeAnode_m22",
"Anode Only Segment Time (ME -2/2) [ns]", 200, -200, 200));
537 hSTimeAnodeByChamberType.push_back(
538 ibooker.
book1D(
"hSTimeAnode_m21",
"Anode Only Segment Time (ME -2/1) [ns]", 200, -200, 200));
539 hSTimeAnodeByChamberType.push_back(
540 ibooker.
book1D(
"hSTimeAnode_m11a",
"Anode Only Segment Time (ME -1/1a) [ns]", 200, -200, 200));
541 hSTimeAnodeByChamberType.push_back(
542 ibooker.
book1D(
"hSTimeAnode_m13",
"Anode Only Segment Time (ME -1/3) [ns]", 200, -200, 200));
543 hSTimeAnodeByChamberType.push_back(
544 ibooker.
book1D(
"hSTimeAnode_m12",
"Anode Only Segment Time (ME -1/2) [ns]", 200, -200, 200));
545 hSTimeAnodeByChamberType.push_back(
546 ibooker.
book1D(
"hSTimeAnode_m11b",
"Anode Only Segment Time (ME -1/1b) [ns]", 200, -200, 200));
547 hSTimeAnodeByChamberType.push_back(
548 ibooker.
book1D(
"hSTimeAnode_p11b",
"Anode Only Segment Time (ME +1/1b) [ns]", 200, -200, 200));
549 hSTimeAnodeByChamberType.push_back(
550 ibooker.
book1D(
"hSTimeAnode_p12",
"Anode Only Segment Time (ME +1/2) [ns]", 200, -200, 200));
551 hSTimeAnodeByChamberType.push_back(
552 ibooker.
book1D(
"hSTimeAnode_p13",
"Anode Only Segment Time (ME +1/3) [ns]", 200, -200, 200));
553 hSTimeAnodeByChamberType.push_back(
554 ibooker.
book1D(
"hSTimeAnode_p11a",
"Anode Only Segment Time (ME +1/1a) [ns]", 200, -200, 200));
555 hSTimeAnodeByChamberType.push_back(
556 ibooker.
book1D(
"hSTimeAnode_p21",
"Anode Only Segment Time (ME +2/1) [ns]", 200, -200, 200));
557 hSTimeAnodeByChamberType.push_back(
558 ibooker.
book1D(
"hSTimeAnode_p22",
"Anode Only Segment Time (ME +2/2) [ns]", 200, -200, 200));
559 hSTimeAnodeByChamberType.push_back(
560 ibooker.
book1D(
"hSTimeAnode_p31",
"Anode Only Segment Time (ME +3/1) [ns]", 200, -200, 200));
561 hSTimeAnodeByChamberType.push_back(
562 ibooker.
book1D(
"hSTimeAnode_p32",
"Anode Only Segment Time (ME +3/2) [ns]", 200, -200, 200));
563 hSTimeAnodeByChamberType.push_back(
564 ibooker.
book1D(
"hSTimeAnode_p41",
"Anode Only Segment Time (ME +4/1) [ns]", 200, -200, 200));
565 hSTimeAnodeByChamberType.push_back(
566 ibooker.
book1D(
"hSTimeAnode_p42",
"Anode Only Segment Time (ME +4/2) [ns]", 200, -200, 200));
568 hSTimeCathode = ibooker.
book1D(
"hSTimeCathode",
"Cathode Only Segment Time [ns]", 200, -200, 200);
569 hSTimeCathodeByChamberType.push_back(
570 ibooker.
book1D(
"hSTimeCathode_m42",
"Cathode Only Segment Time (ME -4/2) [ns]", 200, -200, 200));
571 hSTimeCathodeByChamberType.push_back(
572 ibooker.
book1D(
"hSTimeCathode_m41",
"Cathode Only Segment Time (ME -4/1) [ns]", 200, -200, 200));
573 hSTimeCathodeByChamberType.push_back(
574 ibooker.
book1D(
"hSTimeCathode_m32",
"Cathode Only Segment Time (ME -3/2) [ns]", 200, -200, 200));
575 hSTimeCathodeByChamberType.push_back(
576 ibooker.
book1D(
"hSTimeCathode_m31",
"Cathode Only Segment Time (ME -3/2) [ns]", 200, -200, 200));
577 hSTimeCathodeByChamberType.push_back(
578 ibooker.
book1D(
"hSTimeCathode_m22",
"Cathode Only Segment Time (ME -2/2) [ns]", 200, -200, 200));
579 hSTimeCathodeByChamberType.push_back(
580 ibooker.
book1D(
"hSTimeCathode_m21",
"Cathode Only Segment Time (ME -2/1) [ns]", 200, -200, 200));
581 hSTimeCathodeByChamberType.push_back(
582 ibooker.
book1D(
"hSTimeCathode_m11a",
"Cathode Only Segment Time (ME -1/1a) [ns]", 200, -200, 200));
583 hSTimeCathodeByChamberType.push_back(
584 ibooker.
book1D(
"hSTimeCathode_m13",
"Cathode Only Segment Time (ME -1/3) [ns]", 200, -200, 200));
585 hSTimeCathodeByChamberType.push_back(
586 ibooker.
book1D(
"hSTimeCathode_m12",
"Cathode Only Segment Time (ME -1/2) [ns]", 200, -200, 200));
587 hSTimeCathodeByChamberType.push_back(
588 ibooker.
book1D(
"hSTimeCathode_m11b",
"Cathode Only Segment Time (ME -1/1b) [ns]", 200, -200, 200));
589 hSTimeCathodeByChamberType.push_back(
590 ibooker.
book1D(
"hSTimeCathode_p11b",
"Cathode Only Segment Time (ME +1/1b) [ns]", 200, -200, 200));
591 hSTimeCathodeByChamberType.push_back(
592 ibooker.
book1D(
"hSTimeCathode_p12",
"Cathode Only Segment Time (ME +1/2) [ns]", 200, -200, 200));
593 hSTimeCathodeByChamberType.push_back(
594 ibooker.
book1D(
"hSTimeCathode_p13",
"Cathode Only Segment Time (ME +1/3) [ns]", 200, -200, 200));
595 hSTimeCathodeByChamberType.push_back(
596 ibooker.
book1D(
"hSTimeCathode_p11a",
"Cathode Only Segment Time (ME +1/1a) [ns]", 200, -200, 200));
597 hSTimeCathodeByChamberType.push_back(
598 ibooker.
book1D(
"hSTimeCathode_p21",
"Cathode Only Segment Time (ME +2/1) [ns]", 200, -200, 200));
599 hSTimeCathodeByChamberType.push_back(
600 ibooker.
book1D(
"hSTimeCathode_p22",
"Cathode Only Segment Time (ME +2/2) [ns]", 200, -200, 200));
601 hSTimeCathodeByChamberType.push_back(
602 ibooker.
book1D(
"hSTimeCathode_p31",
"Cathode Only Segment Time (ME +3/1) [ns]", 200, -200, 200));
603 hSTimeCathodeByChamberType.push_back(
604 ibooker.
book1D(
"hSTimeCathode_p32",
"Cathode Only Segment Time (ME +3/2) [ns]", 200, -200, 200));
605 hSTimeCathodeByChamberType.push_back(
606 ibooker.
book1D(
"hSTimeCathode_p41",
"Cathode Only Segment Time (ME +4/1) [ns]", 200, -200, 200));
607 hSTimeCathodeByChamberType.push_back(
608 ibooker.
book1D(
"hSTimeCathode_p42",
"Cathode Only Segment Time (ME +4/2) [ns]", 200, -200, 200));
610 hSTimeCombined = ibooker.
book1D(
"hSTimeCombined",
"Segment Time (anode+cathode times) [ns]", 200, -200, 200);
611 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
612 "hSTimeCombined_m42",
"Segment Time (anode+cathode times) Segment Time (ME -4/2) [ns]", 200, -200, 200));
613 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
614 "hSTimeCombined_m41",
"Segment Time (anode+cathode times) Segment Time (ME -4/1) [ns]", 200, -200, 200));
615 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
616 "hSTimeCombined_m32",
"Segment Time (anode+cathode times) Segment Time (ME -3/2) [ns]", 200, -200, 200));
617 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
618 "hSTimeCombined_m31",
"Segment Time (anode+cathode times) Segment Time (ME -3/2) [ns]", 200, -200, 200));
619 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
620 "hSTimeCombined_m22",
"Segment Time (anode+cathode times) Segment Time (ME -2/2) [ns]", 200, -200, 200));
621 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
622 "hSTimeCombined_m21",
"Segment Time (anode+cathode times) Segment Time (ME -2/1) [ns]", 200, -200, 200));
623 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
624 "hSTimeCombined_m11a",
"Segment Time (anode+cathode times) Segment Time (ME -1/1a) [ns]", 200, -200, 200));
625 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
626 "hSTimeCombined_m13",
"Segment Time (anode+cathode times) Segment Time (ME -1/3) [ns]", 200, -200, 200));
627 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
628 "hSTimeCombined_m12",
"Segment Time (anode+cathode times) Segment Time (ME -1/2) [ns]", 200, -200, 200));
629 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
630 "hSTimeCombined_m11b",
"Segment Time (anode+cathode times) Segment Time (ME -1/1b) [ns]", 200, -200, 200));
631 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
632 "hSTimeCombined_p11b",
"Segment Time (anode+cathode times) Segment Time (ME +1/1b) [ns]", 200, -200, 200));
633 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
634 "hSTimeCombined_p12",
"Segment Time (anode+cathode times) Segment Time (ME +1/2) [ns]", 200, -200, 200));
635 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
636 "hSTimeCombined_p13",
"Segment Time (anode+cathode times) Segment Time (ME +1/3) [ns]", 200, -200, 200));
637 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
638 "hSTimeCombined_p11a",
"Segment Time (anode+cathode times) Segment Time (ME +1/1a) [ns]", 200, -200, 200));
639 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
640 "hSTimeCombined_p21",
"Segment Time (anode+cathode times) Segment Time (ME +2/1) [ns]", 200, -200, 200));
641 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
642 "hSTimeCombined_p22",
"Segment Time (anode+cathode times) Segment Time (ME +2/2) [ns]", 200, -200, 200));
643 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
644 "hSTimeCombined_p31",
"Segment Time (anode+cathode times) Segment Time (ME +3/1) [ns]", 200, -200, 200));
645 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
646 "hSTimeCombined_p32",
"Segment Time (anode+cathode times) Segment Time (ME +3/2) [ns]", 200, -200, 200));
647 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
648 "hSTimeCombined_p41",
"Segment Time (anode+cathode times) Segment Time (ME +4/1) [ns]", 200, -200, 200));
649 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
650 "hSTimeCombined_p42",
"Segment Time (anode+cathode times) Segment Time (ME +4/2) [ns]", 200, -200, 200));
653 ibooker.
book2D(
"hSTimeDiffSerial",
"Anode Minus Cathode Segment Time [ns]", 601, -0.5, 600.5, 200, -50, 50);
655 ibooker.
book2D(
"hSTimeAnodeSerial",
"Anode Only Segment Time [ns]", 601, -0.5, 600.5, 200, -200, 200);
656 hSTimeCathodeSerial =
657 ibooker.
book2D(
"hSTimeCathodeSerial",
"Cathode Only Segment Time [ns]", 601, -0.5, 600.5, 200, -200, 200);
658 hSTimeCombinedSerial = ibooker.
book2D(
659 "hSTimeCombinedSerial",
"Segment Time (anode+cathode times) [ns]", 601, -0.5, 600.5, 200, -200, 200);
661 hSTimeVsZ = ibooker.
book2D(
"hSTimeVsZ",
"Segment Time vs. Z; [ns] vs. [cm]", 200, -1200, 1200, 200, -200, 200);
663 ibooker.
book2D(
"hSTimeVsTOF",
"Segment Time vs. Distance from IP; [ns] vs. [cm]", 180, 500, 1400, 200, -200, 200);
668 hSResid.push_back(ibooker.
book1D(
669 "hSResidm42",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -4/2); Strip Widths", 100, -0.5, 0.5));
670 hSResid.push_back(ibooker.
book1D(
671 "hSResidm41",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -4/1); Strip Widths", 100, -0.5, 0.5));
672 hSResid.push_back(ibooker.
book1D(
673 "hSResidm32",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -3/2); Strip Widths", 100, -0.5, 0.5));
674 hSResid.push_back(ibooker.
book1D(
675 "hSResidm31",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -3/1); Strip Widths", 100, -0.5, 0.5));
676 hSResid.push_back(ibooker.
book1D(
677 "hSResidm22",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -2/2); Strip Widths", 100, -0.5, 0.5));
678 hSResid.push_back(ibooker.
book1D(
679 "hSResidm21",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -2/1); Strip Widths", 100, -0.5, 0.5));
680 hSResid.push_back(ibooker.
book1D(
681 "hSResidm11a",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/1a); Strip Widths", 100, -0.5, 0.5));
682 hSResid.push_back(ibooker.
book1D(
683 "hSResidm13",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/3); Strip Widths", 100, -0.5, 0.5));
684 hSResid.push_back(ibooker.
book1D(
685 "hSResidm12",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/2); Strip Widths", 100, -0.5, 0.5));
686 hSResid.push_back(ibooker.
book1D(
687 "hSResidm11b",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/1b); Strip Widths", 100, -0.5, 0.5));
688 hSResid.push_back(ibooker.
book1D(
689 "hSResidp11b",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/1b); Strip Widths", 100, -0.5, 0.5));
690 hSResid.push_back(ibooker.
book1D(
691 "hSResidp12",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/2); Strip Widths", 100, -0.5, 0.5));
692 hSResid.push_back(ibooker.
book1D(
693 "hSResidp13",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/3); Strip Widths", 100, -0.5, 0.5));
694 hSResid.push_back(ibooker.
book1D(
695 "hSResidp11a",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/1a); Strip Widths", 100, -0.5, 0.5));
696 hSResid.push_back(ibooker.
book1D(
697 "hSResidp21",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +2/1); Strip Widths", 100, -0.5, 0.5));
698 hSResid.push_back(ibooker.
book1D(
699 "hSResidp22",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +2/2); Strip Widths", 100, -0.5, 0.5));
700 hSResid.push_back(ibooker.
book1D(
701 "hSResidp31",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +3/1); Strip Widths", 100, -0.5, 0.5));
702 hSResid.push_back(ibooker.
book1D(
703 "hSResidp32",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +3/2); Strip Widths", 100, -0.5, 0.5));
704 hSResid.push_back(ibooker.
book1D(
705 "hSResidp41",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +4/1); Strip Widths", 100, -0.5, 0.5));
706 hSResid.push_back(ibooker.
book1D(
707 "hSResidp42",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +4/2); Strip Widths", 100, -0.5, 0.5));
714 hSnum = ibooker.
book1D(
"hSnum",
"CSC w rechits in 2+ layers && segment(s)", 20, 0.5, 20.5);
715 hSden = ibooker.
book1D(
"hSden",
"CSC w rechits in 2+ layers", 20, 0.5, 20.5);
716 hRHnum = ibooker.
book1D(
"hRHnum",
"CSC w segment(s) && rechits in 6 layers", 20, 0.5, 20.5);
717 hRHden = ibooker.
book1D(
"hRHden",
"CSC w segment(s)", 20, 0.5, 20.5);
718 applyCSClabels(hSnum, EXTENDED,
X);
719 applyCSClabels(hSden, EXTENDED,
X);
720 applyCSClabels(hRHnum, EXTENDED,
X);
721 applyCSClabels(hRHden, EXTENDED,
X);
725 hSSTE2 = ibooker.
book2D(
"hSSTE2",
"hSSTE2", 36, 0.5, 36.5, 20, 0.5, 20.5);
726 hRHSTE2 = ibooker.
book2D(
"hRHSTE2",
"hRHSTE2", 36, 0.5, 36.5, 20, 0.5, 20.5);
727 hStripSTE2 = ibooker.
book2D(
"hStripSTE2",
"hStripSTE2", 36, 0.5, 36.5, 20, 0.5, 20.5);
728 hWireSTE2 = ibooker.
book2D(
"hWireSTE2",
"hWireSTE2", 36, 0.5, 36.5, 20, 0.5, 20.5);
729 hEffDenominator = ibooker.
book2D(
"hEffDenominator",
"hEffDenominator", 36, 0.5, 36.5, 20, 0.5, 20.5);
737 ibooker.
book2D(
"hSensitiveAreaEvt",
"Events Passing Selection for Efficiency", 36, 0.5, 36.5, 20, 0.5, 20.5);
742 hALCTgetBX = ibooker.
book1D(
"hALCTgetBX",
"ALCT position in ALCT-L1A match window [BX]", 7, -0.5, 6.5);
745 ibooker.
book2D(
"hALCTgetBXSerial",
"ALCT position in ALCT-L1A match window [BX]", 601, -0.5, 600.5, 7, -0.5, 6.5);
746 hALCTgetBXSerial->
setAxisTitle(
"Chamber Serial Number");
747 hALCTgetBX2DNumerator = ibooker.
book2D(
748 "hALCTgetBX2DNumerator",
"ALCT position in ALCT-L1A match window [BX] (sum)", 36, 0.5, 36.5, 20, 0.5, 20.5);
750 hALCTgetBX2Denominator =
751 ibooker.
book2D(
"hALCTgetBX2Denominator",
"Number of ALCT Digis checked", 36, 0.5, 36.5, 20, 0.5, 20.5);
754 hALCTMatch = ibooker.
book1D(
"hALCTMatch",
"ALCT position in ALCT-CLCT match window [BX]", 7, -0.5, 6.5);
756 hALCTMatchSerial = ibooker.
book2D(
757 "hALCTMatchSerial",
"ALCT position in ALCT-CLCT match window [BX]", 601, -0.5, 600.5, 7, -0.5, 6.5);
758 hALCTMatchSerial->
setAxisTitle(
"Chamber Serial Number");
759 hALCTMatch2DNumerator = ibooker.
book2D(
760 "hALCTMatch2DNumerator",
"ALCT position in ALCT-CLCT match window [BX] (sum)", 36, 0.5, 36.5, 20, 0.5, 20.5);
762 hALCTMatch2Denominator =
763 ibooker.
book2D(
"hALCTMatch2Denominator",
"Number of ALCT-CLCT matches checked", 36, 0.5, 36.5, 20, 0.5, 20.5);
766 hCLCTL1A = ibooker.
book1D(
"hCLCTL1A",
"L1A - CLCTpreTrigger at TMB [BX]", 40, 149.5, 189.5);
769 ibooker.
book2D(
"hCLCTL1ASerial",
"L1A - CLCTpreTrigger at TMB [BX]", 601, -0.5, 600.5, 40, 149.5, 189.5);
771 hCLCTL1A2DNumerator =
772 ibooker.
book2D(
"hCLCTL1A2DNumerator",
"L1A - CLCTpreTrigger at TMB [BX] (sum)", 36, 0.5, 36.5, 20, 0.5, 20.5);
774 hCLCTL1A2Denominator =
775 ibooker.
book2D(
"hCLCTL1A2Denominator",
"Number of TMB CLCTs checked", 36, 0.5, 36.5, 20, 0.5, 20.5);
778 applyCSClabels(hOWiresAndCLCT, EXTENDED,
Y);
779 applyCSClabels(hOWires, EXTENDED,
Y);
780 applyCSClabels(hOStrips, EXTENDED,
Y);
781 applyCSClabels(hOStripsAndWiresAndCLCT, EXTENDED,
Y);
782 applyCSClabels(hORecHits, EXTENDED,
Y);
783 applyCSClabels(hOSegments, EXTENDED,
Y);
787 applyCSClabels(hSSTE2, EXTENDED,
Y);
788 applyCSClabels(hEffDenominator, EXTENDED,
Y);
790 applyCSClabels(hRHSTE2, EXTENDED,
Y);
793 applyCSClabels(hStripSTE2, EXTENDED,
Y);
795 applyCSClabels(hWireSTE2, EXTENDED,
Y);
796 applyCSClabels(hSensitiveAreaEvt, EXTENDED,
Y);
798 applyCSClabels(hALCTgetBX2Denominator, EXTENDED,
Y);
800 applyCSClabels(hALCTMatch2Denominator, EXTENDED,
Y);
802 applyCSClabels(hCLCTL1A2Denominator, EXTENDED,
Y);
813 event.getByToken(sd_token,
strips);
814 event.getByToken(wd_token,
wires);
815 event.getByToken(al_token, alcts);
816 event.getByToken(cl_token, clcts);
824 event.getByToken(rh_token,
recHits);
836 doPedestalNoise(
strips, cscGeom);
838 doBXMonitor(alcts, clcts,
event, eventSetup);
852 bool clcto[2][4][4][36];
853 bool wireo[2][4][4][36];
854 bool stripo[2][4][4][36];
855 bool rechito[2][4][4][36];
856 bool segmento[2][4][4][36];
858 bool hasWires =
false;
859 bool hasStrips =
false;
860 bool hasRecHits =
false;
861 bool hasSegments =
false;
863 for (
int e = 0;
e < 2;
e++) {
864 for (
int s = 0;
s < 4;
s++) {
865 for (
int r = 0;
r < 4;
r++) {
866 for (
int c = 0;
c < 36;
c++) {
867 clcto[
e][
s][
r][
c] =
false;
868 wireo[
e][
s][
r][
c] =
false;
869 stripo[
e][
s][
r][
c] =
false;
870 rechito[
e][
s][
r][
c] =
false;
871 segmento[
e][
s][
r][
c] =
false;
880 int kEndcap =
id.
endcap();
881 int kRing =
id.ring();
882 int kStation =
id.station();
883 int kChamber =
id.chamber();
887 if ((*digiIt).isValid()) {
889 if (kStation == 1 && kRing == 1 && (*digiIt).getKeyStrip() > 128)
891 clcto[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1] =
true;
899 int kEndcap =
id.
endcap();
900 int kRing =
id.ring();
901 int kStation =
id.station();
902 int kChamber =
id.chamber();
903 std::vector<CSCWireDigi>::const_iterator wireIt = (*wi).second.first;
904 std::vector<CSCWireDigi>::const_iterator lastWire = (*wi).second.second;
905 for (; wireIt != lastWire; ++wireIt) {
906 if (!wireo[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1]) {
907 wireo[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1] =
true;
908 hOWires->Fill(kChamber, typeIndex(
id, 2));
909 hOWireSerial->Fill(chamberSerial(
id));
911 if (clcto[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1])
912 hOWiresAndCLCT->Fill(kChamber, typeIndex(
id, 2));
914 if (kStation == 1 && kRing == 1 && clcto[kEndcap - 1][kStation - 1][3][kChamber - 1]) {
916 hOWiresAndCLCT->Fill(kChamber, typeIndex(idME11a, 2));
925 int kEndcap =
id.
endcap();
926 int kRing =
id.ring();
927 int kStation =
id.station();
928 int kChamber =
id.chamber();
929 std::vector<CSCStripDigi>::const_iterator stripIt = (*si).second.first;
930 std::vector<CSCStripDigi>::const_iterator lastStrip = (*si).second.second;
931 for (; stripIt != lastStrip; ++stripIt) {
932 std::vector<int> myADCVals = stripIt->getADCCounts();
933 bool thisStripFired =
false;
934 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
937 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
938 diff = (
float)myADCVals[iCount] - thisPedestal;
940 thisStripFired =
true;
943 if (thisStripFired) {
944 if (!stripo[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1]) {
945 stripo[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1] =
true;
946 hOStrips->Fill(kChamber, typeIndex(
id, 2));
947 hOStripSerial->Fill(chamberSerial(
id));
949 if (clcto[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1]) {
952 if (wireo[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1] ||
953 (kRing == 4 && wireo[kEndcap - 1][kStation - 1][0][kChamber - 1])) {
954 hOStripsAndWiresAndCLCT->Fill(kChamber, typeIndex(
id, 2));
964 for (recIt =
recHits->begin(); recIt !=
recHits->end(); recIt++) {
966 int kEndcap = idrec.
endcap();
967 int kRing = idrec.
ring();
968 int kStation = idrec.
station();
969 int kChamber = idrec.
chamber();
970 if (!rechito[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1]) {
971 rechito[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1] =
true;
972 hORecHitsSerial->Fill(chamberSerial(idrec));
973 hORecHits->Fill(kChamber, typeIndex(idrec, 2));
981 int kEndcap =
id.
endcap();
982 int kRing =
id.ring();
983 int kStation =
id.station();
984 int kChamber =
id.chamber();
985 if (!segmento[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1]) {
986 segmento[kEndcap - 1][kStation - 1][kRing - 1][kChamber - 1] =
true;
987 hOSegmentsSerial->Fill(chamberSerial(
id));
988 hOSegments->Fill(kChamber, typeIndex(
id, 2));
994 hCSCOccupancy->Fill(1);
996 hCSCOccupancy->Fill(3);
998 hCSCOccupancy->Fill(5);
999 if (hasWires && hasStrips)
1000 hCSCOccupancy->Fill(7);
1002 hCSCOccupancy->Fill(9);
1004 hCSCOccupancy->Fill(11);
1014 int nWireGroupsTotal = 0;
1017 std::vector<CSCWireDigi>::const_iterator wireIter = (*dWDiter).second.first;
1018 std::vector<CSCWireDigi>::const_iterator lWire = (*dWDiter).second.second;
1019 for (; wireIter != lWire; ++wireIter) {
1020 int myWire = wireIter->getWireGroup();
1021 int myTBin = wireIter->getTimeBin();
1023 hWireTBin[typeIndex(
id) - 1]->Fill(myTBin);
1024 hWireNumber[typeIndex(
id) - 1]->Fill(myWire);
1031 hWirenGroupsTotal->Fill(nWireGroupsTotal);
1041 int nStripsFired = 0;
1044 std::vector<CSCStripDigi>::const_iterator stripIter = (*dSDiter).second.first;
1045 std::vector<CSCStripDigi>::const_iterator lStrip = (*dSDiter).second.second;
1046 for (; stripIter != lStrip; ++stripIter) {
1047 int myStrip = stripIter->getStrip();
1048 std::vector<int> myADCVals = stripIter->getADCCounts();
1049 bool thisStripFired =
false;
1050 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1053 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
1054 diff = (
float)myADCVals[iCount] - thisPedestal;
1056 thisStripFired =
true;
1059 if (thisStripFired) {
1061 hStripNumber[typeIndex(
id) - 1]->Fill(myStrip);
1070 hStripNFired->Fill(nStripsFired);
1085 int kRing =
id.ring();
1086 std::vector<CSCStripDigi>::const_iterator pedIt = (*dPNiter).second.first;
1087 std::vector<CSCStripDigi>::const_iterator lStrip = (*dPNiter).second.second;
1088 for (; pedIt != lStrip; ++pedIt) {
1089 int myStrip = pedIt->getStrip();
1090 std::vector<int> myADCVals = pedIt->getADCCounts();
1091 float TotalADC = getSignal(*
strips,
id, myStrip);
1092 bool thisStripFired =
false;
1093 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1095 (1. / 6) * (myADCVals[2] + myADCVals[3] + myADCVals[4] + myADCVals[5] + myADCVals[6] + myADCVals[7]);
1100 if ((kStation == 1 && kRing == 4) && cscGeom->
gangedStrips()) {
1107 thisStripFired =
true;
1109 if (!thisStripFired) {
1110 float ADC = thisSignal - thisPedestal;
1111 hStripPed[typeIndex(
id) - 1]->Fill(
ADC);
1127 int nRecHits =
recHits->size();
1134 for (dRHIter =
recHits->begin(); dRHIter !=
recHits->end(); dRHIter++) {
1139 LocalPoint rhitlocal = (*dRHIter).localPosition();
1144 float stpos = (*dRHIter).positionWithinStrip();
1145 float sterr = (*dRHIter).errorWithinStrip();
1149 int adcsize = dRHIter->nStrips() * dRHIter->nTimeBins();
1152 for (
unsigned int i = 0;
i < dRHIter->nStrips();
i++) {
1153 for (
unsigned int j = 0;
j < dRHIter->nTimeBins() - 1;
j++) {
1154 rHSumQ += dRHIter->adcs(
i,
j);
1156 sumsides += dRHIter->adcs(
i,
j);
1160 float rHratioQ = sumsides / rHSumQ;
1165 float rHtime = (*dRHIter).tpeak();
1166 float rHtimeAnode = (*dRHIter).wireTime();
1173 float grecx = rhitglobal.
x();
1174 float grecy = rhitglobal.
y();
1178 int tIndex = typeIndex(idrec);
1179 hRHSumQ[tIndex - 1]->Fill(rHSumQ);
1180 hRHRatioQ[tIndex - 1]->Fill(rHratioQ);
1181 hRHstpos[tIndex - 1]->Fill(stpos);
1182 hRHsterr[tIndex - 1]->Fill(sterr);
1183 hRHTiming[tIndex - 1]->Fill(rHtime);
1184 hRHTimingAnode[tIndex - 1]->Fill(rHtimeAnode);
1185 hRHGlobal[sIndex - 1]->Fill(grecx, grecy);
1190 hRHnrechits->Fill(nRecHits);
1205 float chisq = (*dSiter).chi2();
1206 int nhits = (*dSiter).nRecHits();
1207 int nDOF = 2 *
nhits - 4;
1208 float nChi2 = chisq / nDOF;
1210 LocalPoint localPos = (*dSiter).localPosition();
1214 float timeCathode = 0;
1215 float timeAnode = 0;
1216 float timeCombined = 0;
1217 std::vector<float> cathodeTimes;
1218 std::vector<float> anodeTimes;
1220 std::vector<CSCRecHit2D> theseRecHits = (*dSiter).specificRecHits();
1221 for (vector<CSCRecHit2D>::const_iterator iRH = theseRecHits.begin(); iRH != theseRecHits.end(); iRH++) {
1222 if (!((*iRH).isValid()))
1224 cathodeTimes.push_back((*iRH).tpeak());
1225 anodeTimes.push_back((*iRH).wireTime());
1229 for (
unsigned int i = 0;
i < cathodeTimes.size();
i++)
1230 timeCathode += cathodeTimes[
i] / cathodeTimes.size();
1234 bool modified =
false;
1235 std::vector<float>::iterator anodeMaxHit;
1237 if (anodeTimes.empty())
1244 for (
unsigned int j = 0;
j < anodeTimes.size();
j++)
1245 timeAnode += anodeTimes[
j] / anodeTimes.size();
1248 for (
unsigned int j = 0;
j < anodeTimes.size();
j++) {
1249 if (fabs(anodeTimes[
j] - timeAnode) > anodeMaxDiff) {
1250 anodeMaxHit = anodeTimes.begin() +
j;
1251 anodeMaxDiff = fabs(anodeTimes[
j] - timeAnode);
1256 if (anodeMaxDiff > 26) {
1258 anodeTimes.erase(anodeMaxHit);
1263 if (cathodeTimes.size() + anodeTimes.size() > 0)
1264 timeCombined = (timeCathode * cathodeTimes.size() + timeAnode * anodeTimes.size()) /
1265 (cathodeTimes.size() + anodeTimes.size());
1272 float globTheta = 0.;
1277 globX = globalPosition.
x();
1278 globY = globalPosition.
y();
1279 globZ = globalPosition.
z();
1280 globTOF =
sqrt(globX * globX + globY * globY + globZ * globZ);
1282 globTheta = globalDirection.
theta();
1283 globPhi = globalDirection.
phi();
1287 int tIndex = typeIndex(
id);
1288 hSnhitsAll->Fill(
nhits);
1289 hSnhits[tIndex - 1]->Fill(
nhits);
1290 hSChiSqAll->Fill(nChi2);
1291 hSChiSq[tIndex - 1]->Fill(nChi2);
1292 hSChiSqProbAll->Fill(chisqProb);
1293 hSChiSqProb[tIndex - 1]->Fill(chisqProb);
1294 hSGlobalTheta->Fill(globTheta);
1295 hSGlobalPhi->Fill(globPhi);
1296 hSTimeDiff->Fill(timeAnode - timeCathode);
1297 hSTimeDiffByChamberType[tIndex - 1]->Fill(timeAnode - timeCathode);
1298 hSTimeAnode->Fill(timeAnode);
1299 hSTimeAnodeByChamberType[tIndex - 1]->Fill(timeAnode);
1300 hSTimeCathode->Fill(timeCathode);
1301 hSTimeCathodeByChamberType[tIndex - 1]->Fill(timeCathode);
1302 hSTimeCombined->Fill(timeCombined);
1303 hSTimeCombinedByChamberType[tIndex - 1]->Fill(timeCombined);
1304 hSTimeDiffSerial->Fill(chamberSerial(
id), timeAnode - timeCathode);
1305 hSTimeAnodeSerial->Fill(chamberSerial(
id), timeAnode);
1306 hSTimeCathodeSerial->Fill(chamberSerial(
id), timeCathode);
1307 hSTimeCombinedSerial->Fill(chamberSerial(
id), timeCombined);
1308 hSTimeVsZ->Fill(globZ, timeCombined);
1309 hSTimeVsTOF->Fill(globTOF, timeCombined);
1314 hSnSegments->Fill(nSegments);
1328 std::vector<CSCRecHit2D> theseRecHits = (*dSiter).specificRecHits();
1329 int nRH = (*dSiter).nRecHits();
1331 CLHEP::HepMatrix sp(6, 1);
1332 CLHEP::HepMatrix se(6, 1);
1333 for (vector<CSCRecHit2D>::const_iterator iRH = theseRecHits.begin(); iRH != theseRecHits.end(); iRH++) {
1337 int kRing = idRH.
ring();
1338 int kStation = idRH.
station();
1343 int centerid = iRH->nStrips() / 2 + 1;
1344 int centerStrip = iRH->channels(centerid - 1);
1348 float stpos = (*iRH).positionWithinStrip();
1349 se(
kLayer, 1) = (*iRH).errorWithinStrip();
1351 if (kStation == 1 && (kRing == 1 || kRing == 4))
1352 sp(
kLayer, 1) = stpos + centerStrip;
1355 sp(
kLayer, 1) = stpos + centerStrip;
1357 sp(
kLayer, 1) = stpos - 0.5 + centerStrip;
1365 float expected = fitX(sp, se);
1366 float residual = expected - sp(3, 1);
1368 hSResid[typeIndex(
id) - 1]->Fill(residual);
1389 for (
int i = 1;
i < 7;
i++) {
1392 S =
S + (1 / sigma2);
1393 Sy = Sy + (
points(
i, 1) / sigma2);
1394 Sx = Sx + ((
i) / sigma2);
1395 Sxx = Sxx + (
i *
i) / sigma2;
1396 Sxy = Sxy + (((
i)*
points(
i, 1)) / sigma2);
1400 float delta =
S * Sxx - Sx * Sx;
1401 float intercept = (Sxx * Sy - Sx * Sxy) /
delta;
1404 return (intercept +
slope * 3);
1426 for (sIt = stripdigis.begin(); sIt != stripdigis.end(); sIt++) {
1430 vector<CSCStripDigi>::const_iterator digiItr = (*sIt).second.first;
1431 vector<CSCStripDigi>::const_iterator
last = (*sIt).second.second;
1432 for (; digiItr !=
last; ++digiItr) {
1433 int thisStrip = digiItr->getStrip();
1434 if (thisStrip == (centerStrip)) {
1435 std::vector<int> myADCVals = digiItr->getADCCounts();
1436 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1437 float thisSignal = (myADCVals[2] + myADCVals[3] + myADCVals[4] + myADCVals[5] + myADCVals[6] + myADCVals[7]);
1438 SigADC[0] = thisSignal - 6 * thisPedestal;
1441 if (thisStrip == (centerStrip + 1)) {
1442 std::vector<int> myADCVals = digiItr->getADCCounts();
1443 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1444 float thisSignal = (myADCVals[2] + myADCVals[3] + myADCVals[4] + myADCVals[5] + myADCVals[6] + myADCVals[7]);
1445 SigADC[1] = thisSignal - 6 * thisPedestal;
1447 if (thisStrip == (centerStrip + 2)) {
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[2] = thisSignal - 6 * thisPedestal;
1453 if (thisStrip == (centerStrip - 1)) {
1454 std::vector<int> myADCVals = digiItr->getADCCounts();
1455 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1456 float thisSignal = (myADCVals[2] + myADCVals[3] + myADCVals[4] + myADCVals[5] + myADCVals[6] + myADCVals[7]);
1457 SigADC[3] = thisSignal - 6 * thisPedestal;
1459 if (thisStrip == (centerStrip - 2)) {
1460 std::vector<int> myADCVals = digiItr->getADCCounts();
1461 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1462 float thisSignal = (myADCVals[2] + myADCVals[3] + myADCVals[4] + myADCVals[5] + myADCVals[6] + myADCVals[7]);
1463 SigADC[4] = thisSignal - 6 * thisPedestal;
1466 TotalADC = 0.2 * (SigADC[0] + SigADC[1] + SigADC[2] + SigADC[3] + SigADC[4]);
1482 bool allWires[2][4][4][36][6];
1483 bool allStrips[2][4][4][36][6];
1484 bool AllRecHits[2][4][4][36][6];
1485 bool AllSegments[2][4][4][36];
1488 for (
int iE = 0; iE < 2; iE++) {
1489 for (
int iS = 0; iS < 4; iS++) {
1490 for (
int iR = 0; iR < 4; iR++) {
1491 for (
int iC = 0; iC < 36; iC++) {
1492 AllSegments[iE][iS][iR][iC] =
false;
1494 for (
int iL = 0; iL < 6; iL++) {
1495 allWires[iE][iS][iR][iC][iL] =
false;
1496 allStrips[iE][iS][iR][iC][iL] =
false;
1497 AllRecHits[iE][iS][iR][iC][iL] =
false;
1507 std::vector<CSCWireDigi>::const_iterator wireIter = (*dWDiter).second.first;
1508 std::vector<CSCWireDigi>::const_iterator lWire = (*dWDiter).second.second;
1509 for (; wireIter != lWire; ++wireIter) {
1519 std::vector<CSCStripDigi>::const_iterator stripIter = (*dSDiter).second.first;
1520 std::vector<CSCStripDigi>::const_iterator lStrip = (*dSDiter).second.second;
1521 for (; stripIter != lStrip; ++stripIter) {
1522 std::vector<int> myADCVals = stripIter->getADCCounts();
1523 bool thisStripFired =
false;
1524 float thisPedestal = 0.5 * (
float)(myADCVals[0] + myADCVals[1]);
1527 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
1528 diff = (
float)myADCVals[iCount] - thisPedestal;
1530 thisStripFired =
true;
1534 if (thisStripFired) {
1550 std::vector<uint> seg_ME2(2, 0);
1551 std::vector<uint> seg_ME3(2, 0);
1552 std::vector<pair<CSCDetId, CSCSegment> > theSegments(4);
1567 ++seg_ME2[idseg.
endcap() - 1];
1568 seg_tmp = seg_ME2[idseg.
endcap() - 1];
1570 ++seg_ME3[idseg.
endcap() - 1];
1571 seg_tmp = seg_ME3[idseg.
endcap() - 1];
1574 if (1 == seg_tmp && 6 == (*segEffIt).nRecHits() && (*segEffIt).chi2() / (*segEffIt).degreesOfFreedom() < 3.) {
1575 pair<CSCDetId, CSCSegment> specSeg = make_pair((
CSCDetId)(*segEffIt).cscDetId(), *segEffIt);
1576 theSegments[2 * (idseg.
endcap() - 1) + (idseg.
station() - 2)] = specSeg;
1597 for (
int iE = 0; iE < 2; iE++) {
1598 for (
int iS = 0; iS < 4; iS++) {
1599 for (
int iR = 0; iR < 4; iR++) {
1600 for (
int iC = 0; iC < 36; iC++) {
1601 int NumberOfLayers = 0;
1602 for (
int iL = 0; iL < 6; iL++) {
1603 if (AllRecHits[iE][iS][iR][iC][iL]) {
1609 bin = iR + 1 + (iE * 10);
1611 bin = (iS + 1) * 2 + (iR + 1) + (iE * 10);
1612 if (NumberOfLayers > 1) {
1614 if (AllSegments[iE][iS][iR][iC]) {
1622 if (AllSegments[iE][iS][iR][iC]) {
1623 if (NumberOfLayers == 6) {
1638 std::vector<pair<CSCDetId, CSCSegment>*> theSeg;
1639 if (1 == seg_ME2[0])
1640 theSeg.push_back(&theSegments[0]);
1641 if (1 == seg_ME3[0])
1642 theSeg.push_back(&theSegments[1]);
1643 if (1 == seg_ME2[1])
1644 theSeg.push_back(&theSegments[2]);
1645 if (1 == seg_ME3[1])
1646 theSeg.push_back(&theSegments[3]);
1651 std::map<std::string, float> chamberTypes;
1652 chamberTypes[
"ME1/a"] = 0.5;
1653 chamberTypes[
"ME1/b"] = 1.5;
1654 chamberTypes[
"ME1/2"] = 2.5;
1655 chamberTypes[
"ME1/3"] = 3.5;
1656 chamberTypes[
"ME2/1"] = 4.5;
1657 chamberTypes[
"ME2/2"] = 5.5;
1658 chamberTypes[
"ME3/1"] = 6.5;
1659 chamberTypes[
"ME3/2"] = 7.5;
1660 chamberTypes[
"ME4/1"] = 8.5;
1661 chamberTypes[
"ME4/2"] = 9.5;
1663 if (!theSeg.empty()) {
1664 std::map<int, GlobalPoint> extrapolatedPoint;
1665 std::map<int, GlobalPoint>::iterator it;
1668 for (
unsigned int nCh = 0; nCh < ChamberContainer.size(); nCh++) {
1669 const CSCChamber* cscchamber = ChamberContainer[nCh];
1670 pair<CSCDetId, CSCSegment>* thisSegment =
nullptr;
1671 for (
uint iSeg = 0; iSeg < theSeg.size(); ++iSeg) {
1672 if (cscchamber->
id().
endcap() == theSeg[iSeg]->first.endcap()) {
1674 if (2 == theSeg[iSeg]->
first.station()) {
1675 thisSegment = theSeg[iSeg];
1678 if (3 == theSeg[iSeg]->
first.station()) {
1679 thisSegment = theSeg[iSeg];
1691 it = extrapolatedPoint.find(
int(cscchamberCenter.
z()));
1692 if (it == extrapolatedPoint.end()) {
1695 double paramaterLine = lineParametrization(segPos.
z(), cscchamberCenter.
z(), segDir.
z());
1696 double xExtrapolated = extrapolate1D(segPos.
x(), segDir.
x(), paramaterLine);
1697 double yExtrapolated = extrapolate1D(segPos.
y(), segDir.
y(), paramaterLine);
1698 GlobalPoint globP(xExtrapolated, yExtrapolated, cscchamberCenter.
z());
1699 extrapolatedPoint[
int(cscchamberCenter.
z())] = globP;
1702 LocalPoint extrapolatedPointLocal = cscchamber->
toLocal(extrapolatedPoint[
int(cscchamberCenter.
z())]);
1705 const std::array<const float, 4>& layerBounds = layerGeom->
parameters();
1706 float shiftFromEdge = 15.;
1707 float shiftFromDeadZone = 10.;
1709 bool pass = withinSensitiveRegion(extrapolatedPointLocal,
1722 for (
int iL = 0; iL < 6; ++iL) {
1730 if (cscchamberCenter.
z() < 0) {
1731 verticalScale = -verticalScale;
1733 verticalScale += 10.5;
1734 hSensitiveAreaEvt->Fill(
float(cscchamber->
id().
chamber()), verticalScale);
1735 if (nRHLayers > 1) {
1740 hEffDenominator->Fill(
float(cscchamber->
id().
chamber()), verticalScale);
1744 hSSTE2->Fill(
float(cscchamber->
id().
chamber()),
float(verticalScale));
1747 for (
int iL = 0; iL < 6; ++iL) {
1753 hRHSTE2->Fill(
float(cscchamber->
id().
chamber()),
float(verticalScale),
weight);
1759 hWireSTE2->Fill(
float(cscchamber->
id().
chamber()),
float(verticalScale),
weight);
1765 hStripSTE2->Fill(
float(cscchamber->
id().
chamber()),
float(verticalScale),
weight);
1789 const CSCDetId& idALCT = (*j).first;
1793 if ((*digiIt).isValid()) {
1794 hALCTgetBX->Fill((*digiIt).getBX());
1795 hALCTgetBXSerial->Fill(chamberSerial(idALCT), (*digiIt).getBX());
1796 hALCTgetBX2DNumerator->Fill(idALCT.
chamber(), typeIndex(idALCT, 2), (*digiIt).getBX());
1797 hALCTgetBX2Denominator->Fill(idALCT.
chamber(), typeIndex(idALCT, 2));
1810 if (!(
event.getByToken(rd_token, rawdata))) {
1811 edm::LogWarning(
"CSCOfflineMonitor") <<
" FEDRawDataCollection not available";
1815 bool goodEvent =
false;
1816 unsigned long dccBinCheckMask = 0x06080016;
1817 unsigned int examinerMask = 0x1FEBF3F6;
1818 unsigned int errorMask = 0x0;
1822 std::vector<unsigned int> cscFEDids;
1826 cscFEDids.push_back(
id);
1831 cscFEDids.push_back(
id);
1834 for (
unsigned int i = 0;
i < cscFEDids.size();
i++)
1836 unsigned int id = cscFEDids[
i];
1844 unsigned long length = fedData.
size();
1848 std::stringstream examiner_out, examiner_err;
1851 if (examinerMask & 0x40000)
1853 if (examinerMask & 0x8000)
1855 if (examinerMask & 0x0400)
1857 examiner->
setMask(examinerMask);
1858 const short unsigned int*
data = (
short unsigned int*)fedData.
data();
1864 goodEvent = !(examiner->
errors() & dccBinCheckMask);
1872 std::vector<CSCDDUEventData> fed_Data;
1873 std::vector<CSCDDUEventData>* ptr_fedData = &fed_Data;
1878 fed_Data.push_back(single_dduData);
1887 const std::vector<CSCDDUEventData>& dduData = *ptr_fedData;
1891 for (
unsigned int iDDU = 0; iDDU < dduData.size(); ++iDDU) {
1894 if (dduData[iDDU].trailer().errorstat() & errorMask) {
1895 LogTrace(
"CSCDCCUnpacker|CSCRawToDigi") <<
"DDU# " << iDDU <<
" has serious error - no digis unpacked! "
1896 << std::hex << dduData[iDDU].trailer().errorstat();
1901 const std::vector<CSCEventData>& cscData = dduData[iDDU].cscData();
1903 for (
unsigned int iCSC = 0; iCSC < cscData.size(); ++iCSC) {
1906 int vmecrate = cscData[iCSC].dmbHeader()->crateID();
1907 int dmb = cscData[iCSC].dmbHeader()->dmbID();
1912 if ((vmecrate >= 1) && (vmecrate <= 60) && (dmb >= 1) && (dmb <= 10) && (dmb != 6)) {
1913 layer = pcrate->
detId(vmecrate, dmb, icfeb, ilayer);
1915 LogTrace(
"CSCOfflineMonitor") <<
" detID input out of range!!! ";
1916 LogTrace(
"CSCOfflineMonitor") <<
" skipping chamber vme= " << vmecrate <<
" dmb= " << dmb;
1921 int nalct = cscData[iCSC].dmbHeader()->nalct();
1922 bool goodALCT =
false;
1924 if (nalct && cscData[iCSC].alctHeader()) {
1925 if (cscData[iCSC].alctHeader()->
check()) {
1931 int nclct = cscData[iCSC].dmbHeader()->nclct();
1932 bool goodTMB =
false;
1933 if (nclct && cscData[iCSC].tmbData()) {
1934 if (cscData[iCSC].tmbHeader()->
check()) {
1935 if (cscData[iCSC].comparatorData()->
check())
1940 if (goodTMB && goodALCT) {
1941 const CSCTMBHeader* tmbHead = cscData[iCSC].tmbHeader();
1942 std::vector<CSCCLCTDigi> clcts = cscData[iCSC].tmbHeader()->CLCTDigis(layer.
rawId());
1943 if (clcts.empty() || !(clcts[0].isValid()))
1946 if (layer.
station() == 1 && layer.
ring() == 1 && clcts[0].getKeyStrip() > 128) {
1950 hALCTMatchSerial->Fill(chamberSerial(layer), tmbHead->
ALCTMatchTime());
1955 hALCTMatch2Denominator->Fill(layer.
chamber(), typeIndex(layer, 2));
1958 int TMB_CLCTpre_rel_L1A = tmbHead->
BXNCount() - clcts[0].getFullBX();
1959 if (TMB_CLCTpre_rel_L1A > 3563)
1960 TMB_CLCTpre_rel_L1A = TMB_CLCTpre_rel_L1A - 3564;
1961 if (TMB_CLCTpre_rel_L1A < 0)
1962 TMB_CLCTpre_rel_L1A = TMB_CLCTpre_rel_L1A + 3564;
1964 hCLCTL1A->Fill(TMB_CLCTpre_rel_L1A);
1965 hCLCTL1ASerial->Fill(chamberSerial(layer), TMB_CLCTpre_rel_L1A);
1966 hCLCTL1A2DNumerator->Fill(layer.
chamber(), typeIndex(layer, 2), TMB_CLCTpre_rel_L1A);
1967 hCLCTL1A2Denominator->Fill(layer.
chamber(), typeIndex(layer, 2));
1973 if (examiner !=
nullptr)
1982 const std::array<const float, 4>& layerBounds,
1985 float shiftFromEdge,
1986 float shiftFromDeadZone) {
1990 float y_center = 0.;
1991 double yUp = layerBounds[3] + y_center;
1992 double yDown = -layerBounds[3] + y_center;
1993 double xBound1Shifted = layerBounds[0] - shiftFromEdge;
1994 double xBound2Shifted = layerBounds[1] - shiftFromEdge;
1995 double lineSlope = (yUp - yDown) / (xBound2Shifted - xBound1Shifted);
1996 double lineConst = yUp - lineSlope * xBound2Shifted;
1997 double yBorder = lineSlope *
abs(localPos.
x()) + lineConst;
2000 std::vector<float> deadZoneCenter(6);
2001 float cutZone = shiftFromDeadZone;
2005 deadZoneCenter[0] = -162.48;
2006 deadZoneCenter[1] = -81.8744;
2007 deadZoneCenter[2] = -21.18165;
2008 deadZoneCenter[3] = 39.51105;
2009 deadZoneCenter[4] = 100.2939;
2010 deadZoneCenter[5] = 160.58;
2012 if (localPos.
y() > yBorder &&
2013 ((localPos.
y() > deadZoneCenter[0] + cutZone && localPos.
y() < deadZoneCenter[1] - cutZone) ||
2014 (localPos.
y() > deadZoneCenter[1] + cutZone && localPos.
y() < deadZoneCenter[2] - cutZone) ||
2015 (localPos.
y() > deadZoneCenter[2] + cutZone && localPos.
y() < deadZoneCenter[3] - cutZone) ||
2016 (localPos.
y() > deadZoneCenter[3] + cutZone && localPos.
y() < deadZoneCenter[4] - cutZone) ||
2017 (localPos.
y() > deadZoneCenter[4] + cutZone && localPos.
y() < deadZoneCenter[5] - cutZone))) {
2020 }
else if (1 ==
ring) {
2022 deadZoneCenter[0] = -95.80;
2023 deadZoneCenter[1] = -27.47;
2024 deadZoneCenter[2] = 33.67;
2025 deadZoneCenter[3] = 90.85;
2027 deadZoneCenter[0] = -89.305;
2028 deadZoneCenter[1] = -39.705;
2029 deadZoneCenter[2] = 20.195;
2030 deadZoneCenter[3] = 77.395;
2032 deadZoneCenter[0] = -75.645;
2033 deadZoneCenter[1] = -26.055;
2034 deadZoneCenter[2] = 23.855;
2035 deadZoneCenter[3] = 70.575;
2037 if (localPos.
y() > yBorder &&
2038 ((localPos.
y() > deadZoneCenter[0] + cutZone && localPos.
y() < deadZoneCenter[1] - cutZone) ||
2039 (localPos.
y() > deadZoneCenter[1] + cutZone && localPos.
y() < deadZoneCenter[2] - cutZone) ||
2040 (localPos.
y() > deadZoneCenter[2] + cutZone && localPos.
y() < deadZoneCenter[3] - cutZone))) {
2046 deadZoneCenter[0] = -83.155;
2047 deadZoneCenter[1] = -22.7401;
2048 deadZoneCenter[2] = 27.86665;
2049 deadZoneCenter[3] = 81.005;
2050 if (localPos.
y() > yBorder &&
2051 ((localPos.
y() > deadZoneCenter[0] + cutZone && localPos.
y() < deadZoneCenter[1] - cutZone) ||
2052 (localPos.
y() > deadZoneCenter[1] + cutZone && localPos.
y() < deadZoneCenter[2] - cutZone) ||
2053 (localPos.
y() > deadZoneCenter[2] + cutZone && localPos.
y() < deadZoneCenter[3] - cutZone))) {
2056 }
else if (2 ==
ring) {
2057 deadZoneCenter[0] = -86.285;
2058 deadZoneCenter[1] = -32.88305;
2059 deadZoneCenter[2] = 32.867423;
2060 deadZoneCenter[3] = 88.205;
2061 if (localPos.
y() > (yBorder) &&
2062 ((localPos.
y() > deadZoneCenter[0] + cutZone && localPos.
y() < deadZoneCenter[1] - cutZone) ||
2063 (localPos.
y() > deadZoneCenter[1] + cutZone && localPos.
y() < deadZoneCenter[2] - cutZone) ||
2064 (localPos.
y() > deadZoneCenter[2] + cutZone && localPos.
y() < deadZoneCenter[3] - cutZone))) {
2068 deadZoneCenter[0] = -81.0;
2069 deadZoneCenter[1] = 81.0;
2070 if (localPos.
y() > (yBorder) &&
2071 (localPos.
y() > deadZoneCenter[0] + cutZone && localPos.
y() < deadZoneCenter[1] - cutZone)) {
2087 index =
id.station() * 2 +
id.ring();
2095 else if (
flag == 2) {
2098 index =
id.ring() + 1;
2102 index =
id.station() * 2 +
id.ring();
2115 int st =
id.station();
2117 int ch =
id.chamber();
2118 int ec =
id.endcap();
2120 if (st == 1 && ri == 1)
2122 if (st == 1 && ri == 2)
2124 if (st == 1 && ri == 3)
2126 if (st == 1 && ri == 4)
2128 if (st == 2 && ri == 1)
2130 if (st == 2 && ri == 2)
2132 if (st == 3 && ri == 1)
2134 if (st == 3 && ri == 2)
2136 if (st == 4 && ri == 1)
2138 if (st == 4 && ri == 2)
2141 kSerial = kSerial + 300;
2146 if (
me !=
nullptr) {
2147 me->setAxisTitle(
"Chamber #");
2148 if (
t == EXTENDED) {
2149 me->setBinLabel(1,
"ME -4/2",
a);
2150 me->setBinLabel(2,
"ME -4/1",
a);
2151 me->setBinLabel(3,
"ME -3/2",
a);
2152 me->setBinLabel(4,
"ME -3/1",
a);
2153 me->setBinLabel(5,
"ME -2/2",
a);
2154 me->setBinLabel(6,
"ME -2/1",
a);
2155 me->setBinLabel(7,
"ME -1/3",
a);
2156 me->setBinLabel(8,
"ME -1/2",
a);
2157 me->setBinLabel(9,
"ME -1/1b",
a);
2158 me->setBinLabel(10,
"ME -1/1a",
a);
2159 me->setBinLabel(11,
"ME +1/1a",
a);
2160 me->setBinLabel(12,
"ME +1/1b",
a);
2161 me->setBinLabel(13,
"ME +1/2",
a);
2162 me->setBinLabel(14,
"ME +1/3",
a);
2163 me->setBinLabel(15,
"ME +2/1",
a);
2164 me->setBinLabel(16,
"ME +2/2",
a);
2165 me->setBinLabel(17,
"ME +3/1",
a);
2166 me->setBinLabel(18,
"ME +3/2",
a);
2167 me->setBinLabel(19,
"ME +4/1",
a);
2168 me->setBinLabel(20,
"ME +4/2",
a);
2170 me->setBinLabel(1,
"ME -4/1",
a);
2171 me->setBinLabel(2,
"ME -3/2",
a);
2172 me->setBinLabel(3,
"ME -3/1",
a);
2173 me->setBinLabel(4,
"ME -2/2",
a);
2174 me->setBinLabel(5,
"ME -2/1",
a);
2175 me->setBinLabel(6,
"ME -1/3",
a);
2176 me->setBinLabel(7,
"ME -1/2",
a);
2177 me->setBinLabel(8,
"ME -1/1b",
a);
2178 me->setBinLabel(9,
"ME -1/1a",
a);
2179 me->setBinLabel(10,
"ME +1/1a",
a);
2180 me->setBinLabel(11,
"ME +1/1b",
a);
2181 me->setBinLabel(12,
"ME +1/2",
a);
2182 me->setBinLabel(13,
"ME +1/3",
a);
2183 me->setBinLabel(14,
"ME +2/1",
a);
2184 me->setBinLabel(15,
"ME +2/2",
a);
2185 me->setBinLabel(16,
"ME +3/1",
a);
2186 me->setBinLabel(17,
"ME +3/2",
a);
2187 me->setBinLabel(18,
"ME +4/1",
a);