34 hCSCOccupancy = ibooker.
book1D(
"hCSCOccupancy",
"overall CSC occupancy",13,-0.5,12.5);
36 hCSCOccupancy->setBinLabel(4,
"# Events with Wires");
37 hCSCOccupancy->setBinLabel(6,
"# Events with Strips");
38 hCSCOccupancy->setBinLabel(8,
"# Events with Wires&Strips");
39 hCSCOccupancy->setBinLabel(10,
"# Events with Rechits");
40 hCSCOccupancy->setBinLabel(12,
"# Events with Segments");
41 hOWiresAndCLCT = ibooker.
book2D(
"hOWiresAndCLCT",
"Wire and CLCT Digi Occupancy ",36,0.5,36.5,20,0.5,20.5);
42 hOWires = ibooker.
book2D(
"hOWires",
"Wire Digi Occupancy",36,0.5,36.5,20,0.5,20.5);
43 hOWireSerial = ibooker.
book1D(
"hOWireSerial",
"Wire Occupancy by Chamber Serial",601,-0.5,600.5);
45 hOStrips = ibooker.
book2D(
"hOStrips",
"Strip Digi Occupancy",36,0.5,36.5,20,0.5,20.5);
46 hOStripSerial = ibooker.
book1D(
"hOStripSerial",
"Strip Occupancy by Chamber Serial",601,-0.5,600.5);
48 hOStripsAndWiresAndCLCT = ibooker.
book2D(
"hOStripsAndWiresAndCLCT",
"Strip And Wire And CLCT Digi Occupancy",36,0.5,36.5,20,0.5,20.5);
50 hORecHits = ibooker.
book2D(
"hORecHits",
"RecHit Occupancy",36,0.5,36.5,20,0.5,20.5);
51 hORecHitsSerial = ibooker.
book1D(
"hORecHitSerial",
"RecHit Occupancy by Chamber Serial",601,-0.5,600.5);
53 hOSegments = ibooker.
book2D(
"hOSegments",
"Segment Occupancy",36,0.5,36.5,20,0.5,20.5);
54 hOSegmentsSerial = ibooker.
book1D(
"hOSegmentSerial",
"Segment Occupancy by Chamber Serial",601,-0.5,600.5);
60 hWirenGroupsTotal = ibooker.
book1D(
"hWirenGroupsTotal",
"Fired Wires per Event; # Wiregroups Fired",500,-0.5,499.5);
61 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m42",
"Wire TBin Fired (ME -4/2); Time Bin (25ns)",17,-0.5,16.5));
62 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m41",
"Wire TBin Fired (ME -4/1); Time Bin (25ns)",17,-0.5,16.5));
63 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m32",
"Wire TBin Fired (ME -3/2); Time Bin (25ns)",17,-0.5,16.5));
64 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m31",
"Wire TBin Fired (ME -3/1); Time Bin (25ns)",17,-0.5,16.5));
65 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m22",
"Wire TBin Fired (ME -2/2); Time Bin (25ns)",17,-0.5,16.5));
66 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m21",
"Wire TBin Fired (ME -2/1); Time Bin (25ns)",17,-0.5,16.5));
67 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m11a",
"Wire TBin Fired (ME -1/1a); Time Bin (25ns)",17,-0.5,16.5));
68 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m13",
"Wire TBin Fired (ME -1/3); Time Bin (25ns)",17,-0.5,16.5));
69 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m12",
"Wire TBin Fired (ME -1/2); Time Bin (25ns)",17,-0.5,16.5));
70 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_m11b",
"Wire TBin Fired (ME -1/1b); Time Bin (25ns)",17,-0.5,16.5));
71 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p11b",
"Wire TBin Fired (ME +1/1b); Time Bin (25ns)",17,-0.5,16.5));
72 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p12",
"Wire TBin Fired (ME +1/2); Time Bin (25ns)",17,-0.5,16.5));
73 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p13",
"Wire TBin Fired (ME +1/3); Time Bin (25ns)",17,-0.5,16.5));
74 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p11a",
"Wire TBin Fired (ME +1/1a); Time Bin (25ns)",17,-0.5,16.5));
75 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p21",
"Wire TBin Fired (ME +2/1); Time Bin (25ns)",17,-0.5,16.5));
76 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p22",
"Wire TBin Fired (ME +2/2); Time Bin (25ns)",17,-0.5,16.5));
77 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p31",
"Wire TBin Fired (ME +3/1); Time Bin (25ns)",17,-0.5,16.5));
78 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p32",
"Wire TBin Fired (ME +3/2); Time Bin (25ns)",17,-0.5,16.5));
79 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p41",
"Wire TBin Fired (ME +4/1); Time Bin (25ns)",17,-0.5,16.5));
80 hWireTBin.push_back(ibooker.
book1D(
"hWireTBin_p42",
"Wire TBin Fired (ME +4/2); Time Bin (25ns)",17,-0.5,16.5));
81 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_m42",
"Wiregroup Number Fired (ME -4/2); Wiregroup #",113,-0.5,112.5));
82 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_m41",
"Wiregroup Number Fired (ME -4/1); Wiregroup #",113,-0.5,112.5));
83 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_m32",
"Wiregroup Number Fired (ME -3/2); Wiregroup #",113,-0.5,112.5));
84 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_m31",
"Wiregroup Number Fired (ME -3/1); Wiregroup #",113,-0.5,112.5));
85 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_m22",
"Wiregroup Number Fired (ME -2/2); Wiregroup #",113,-0.5,112.5));
86 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_m21",
"Wiregroup Number Fired (ME -2/1); Wiregroup #",113,-0.5,112.5));
87 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_m11a",
"Wiregroup Number Fired (ME -1/1a); Wiregroup #",113,-0.5,112.5));
88 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_m13",
"Wiregroup Number Fired (ME -1/3); Wiregroup #",113,-0.5,112.5));
89 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_m12",
"Wiregroup Number Fired (ME -1/2); Wiregroup #",113,-0.5,112.5));
90 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_m11b",
"Wiregroup Number Fired (ME -1/1b); Wiregroup #",113,-0.5,112.5));
91 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_p11b",
"Wiregroup Number Fired (ME +1/1b); Wiregroup #",113,-0.5,112.5));
92 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_p12",
"Wiregroup Number Fired (ME +1/2); Wiregroup #",113,-0.5,112.5));
93 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_p13",
"Wiregroup Number Fired (ME +1/3); Wiregroup #",113,-0.5,112.5));
94 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_p11a",
"Wiregroup Number Fired (ME +1/1a); Wiregroup #",113,-0.5,112.5));
95 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_p21",
"Wiregroup Number Fired (ME +2/1); Wiregroup #",113,-0.5,112.5));
96 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_p22",
"Wiregroup Number Fired (ME +2/2); Wiregroup #",113,-0.5,112.5));
97 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_p31",
"Wiregroup Number Fired (ME +3/1); Wiregroup #",113,-0.5,112.5));
98 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_p32",
"Wiregroup Number Fired (ME +3/2); Wiregroup #",113,-0.5,112.5));
99 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_p41",
"Wiregroup Number Fired (ME +4/1); Wiregroup #",113,-0.5,112.5));
100 hWireNumber.push_back(ibooker.
book1D(
"hWireNumber_p42",
"Wiregroup Number Fired (ME +4/2); Wiregroup #",113,-0.5,112.5));
103 hStripNFired = ibooker.
book1D(
"hStripNFired",
"Fired Strips per Event; # Strips Fired (above 13 ADC)",1000,-0.5,999.5);
104 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_m42",
"Strip Number Fired (ME -4/2); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
105 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_m41",
"Strip Number Fired (ME -4/1); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
106 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_m32",
"Strip Number Fired (ME -3/2); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
107 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_m31",
"Strip Number Fired (ME -3/1); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
108 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_m22",
"Strip Number Fired (ME -2/2); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
109 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_m21",
"Strip Number Fired (ME -2/1); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
110 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_m11a",
"Strip Number Fired (ME -1/1a); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
111 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_m13",
"Strip Number Fired (ME -1/3); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
112 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_m12",
"Strip Number Fired (ME -1/2); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
113 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_m11b",
"Strip Number Fired (ME -1/1b); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
114 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_p11b",
"Strip Number Fired (ME +1/1b); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
115 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_p12",
"Strip Number Fired (ME +1/2); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
116 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_p13",
"Strip Number Fired (ME +1/3); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
117 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_p11a",
"Strip Number Fired (ME +1/1a); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
118 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_p21",
"Strip Number Fired (ME +2/1); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
119 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_p22",
"Strip Number Fired (ME +2/2); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
120 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_p31",
"Strip Number Fired (ME +3/1); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
121 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_p32",
"Strip Number Fired (ME +3/2); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
122 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_p41",
"Strip Number Fired (ME +4/1); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
123 hStripNumber.push_back(ibooker.
book1D(
"hStripNumber_p42",
"Stripgroup Number Fired (ME +4/2); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
128 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEm42",
"Pedestal Noise Distribution Chamber ME -4/2; ADC Counts",50,-25.,25.));
129 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEm41",
"Pedestal Noise Distribution Chamber ME -4/1; ADC Counts",50,-25.,25.));
130 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEm32",
"Pedestal Noise Distribution Chamber ME -3/2; ADC Counts",50,-25.,25.));
131 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEm31",
"Pedestal Noise Distribution Chamber ME -3/1; ADC Counts",50,-25.,25.));
132 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEm22",
"Pedestal Noise Distribution Chamber ME -2/2; ADC Counts",50,-25.,25.));
133 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEm21",
"Pedestal Noise Distribution Chamber ME -2/1; ADC Counts",50,-25.,25.));
134 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEm11a",
"Pedestal Noise Distribution Chamber ME -1/1; ADC Counts",50,-25.,25.));
135 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEm13",
"Pedestal Noise Distribution Chamber ME -1/3; ADC Counts",50,-25.,25.));
136 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEm12",
"Pedestal Noise Distribution Chamber ME -1/2; ADC Counts",50,-25.,25.));
137 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEm11b",
"Pedestal Noise Distribution Chamber ME -1/1; ADC Counts",50,-25.,25.));
138 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEp11b",
"Pedestal Noise Distribution Chamber ME +1/1; ADC Counts",50,-25.,25.));
139 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEp12",
"Pedestal Noise Distribution Chamber ME +1/2; ADC Counts",50,-25.,25.));
140 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEp13",
"Pedestal Noise Distribution Chamber ME +1/3; ADC Counts",50,-25.,25.));
141 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEp11a",
"Pedestal Noise Distribution Chamber ME +1/1; ADC Counts",50,-25.,25.));
142 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEp21",
"Pedestal Noise Distribution Chamber ME +2/1; ADC Counts",50,-25.,25.));
143 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEp22",
"Pedestal Noise Distribution Chamber ME +2/2; ADC Counts",50,-25.,25.));
144 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEp31",
"Pedestal Noise Distribution Chamber ME +3/1; ADC Counts",50,-25.,25.));
145 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEp32",
"Pedestal Noise Distribution Chamber ME +3/2; ADC Counts",50,-25.,25.));
146 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEp41",
"Pedestal Noise Distribution Chamber ME +4/1; ADC Counts",50,-25.,25.));
147 hStripPed.push_back(ibooker.
book1D(
"hStripPedMEp42",
"Pedestal Noise Distribution Chamber ME +4/2; ADC Counts",50,-25.,25.));
152 hRHnrechits = ibooker.
book1D(
"hRHnrechits",
"recHits per Event (all chambers); # of RecHits",500,-0.50,499.5);
153 hRHGlobal.push_back(ibooker.
book2D(
"hRHGlobalp1",
"recHit global X,Y station +1; Global X (cm); Global Y (cm)",100,-800.,800.,100,-800.,800.));
154 hRHGlobal.push_back(ibooker.
book2D(
"hRHGlobalp2",
"recHit global X,Y station +2; Global X (cm); Global Y (cm)",100,-800.,800.,100,-800.,800.));
155 hRHGlobal.push_back(ibooker.
book2D(
"hRHGlobalp3",
"recHit global X,Y station +3; Global X (cm); Global Y (cm)",100,-800.,800.,100,-800.,800.));
156 hRHGlobal.push_back(ibooker.
book2D(
"hRHGlobalp4",
"recHit global X,Y station +4; Global X (cm); Global Y (cm)",100,-800.,800.,100,-800.,800.));
157 hRHGlobal.push_back(ibooker.
book2D(
"hRHGlobalm1",
"recHit global X,Y station -1; Global X (cm); Global Y (cm)",100,-800.,800.,100,-800.,800.));
158 hRHGlobal.push_back(ibooker.
book2D(
"hRHGlobalm2",
"recHit global X,Y station -2; Global X (cm); Global Y (cm)",100,-800.,800.,100,-800.,800.));
159 hRHGlobal.push_back(ibooker.
book2D(
"hRHGlobalm3",
"recHit global X,Y station -3; Global X (cm); Global Y (cm)",100,-800.,800.,100,-800.,800.));
160 hRHGlobal.push_back(ibooker.
book2D(
"hRHGlobalm4",
"recHit global X,Y station -4; Global X (cm); Global Y (cm)",100,-800.,800.,100,-800.,800.));
161 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm42",
"Sum 3x3 recHit Charge (ME -4/2); ADC counts",100,0,2000));
162 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm41",
"Sum 3x3 recHit Charge (ME -4/1); ADC counts",100,0,2000));
163 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm32",
"Sum 3x3 recHit Charge (ME -3/2); ADC counts",100,0,2000));
164 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm31",
"Sum 3x3 recHit Charge (ME -3/1); ADC counts",100,0,2000));
165 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm22",
"Sum 3x3 recHit Charge (ME -2/2); ADC counts",100,0,2000));
166 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm21",
"Sum 3x3 recHit Charge (ME -2/1); ADC counts",100,0,2000));
167 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm11a",
"Sum 3x3 recHit Charge (ME -1/1a); ADC counts",100,0,4000));
168 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm13",
"Sum 3x3 recHit Charge (ME -1/3); ADC counts",100,0,2000));
169 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm12",
"Sum 3x3 recHit Charge (ME -1/2); ADC counts",100,0,2000));
170 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQm11b",
"Sum 3x3 recHit Charge (ME -1/1b); ADC counts",100,0,4000));
171 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp11b",
"Sum 3x3 recHit Charge (ME +1/1b); ADC counts",100,0,4000));
172 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp12",
"Sum 3x3 recHit Charge (ME +1/2); ADC counts",100,0,2000));
173 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp13",
"Sum 3x3 recHit Charge (ME +1/3); ADC counts",100,0,2000));
174 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp11a",
"Sum 3x3 recHit Charge (ME +1/1a); ADC counts",100,0,4000));
175 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp21",
"Sum 3x3 recHit Charge (ME +2/1); ADC counts",100,0,2000));
176 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp22",
"Sum 3x3 recHit Charge (ME +2/2); ADC counts",100,0,2000));
177 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp31",
"Sum 3x3 recHit Charge (ME +3/1); ADC counts",100,0,2000));
178 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp32",
"Sum 3x3 recHit Charge (ME +3/2); ADC counts",100,0,2000));
179 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp41",
"Sum 3x3 recHit Charge (ME +4/1); ADC counts",100,0,2000));
180 hRHSumQ.push_back(ibooker.
book1D(
"hRHSumQp42",
"Sum 3x3 recHit Charge (ME +4/2); ADC counts",100,0,2000));
181 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm42",
"Charge Ratio (Ql+Qr)/Qt (ME -4/2); (Ql+Qr)/Qt",100,-0.1,1.1));
182 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm41",
"Charge Ratio (Ql+Qr)/Qt (ME -4/1); (Ql+Qr)/Qt",100,-0.1,1.1));
183 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm32",
"Charge Ratio (Ql+Qr)/Qt (ME -3/2); (Ql+Qr)/Qt",100,-0.1,1.1));
184 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm31",
"Charge Ratio (Ql+Qr)/Qt (ME -3/1); (Ql+Qr)/Qt",100,-0.1,1.1));
185 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm22",
"Charge Ratio (Ql+Qr)/Qt (ME -2/2); (Ql+Qr)/Qt",100,-0.1,1.1));
186 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm21",
"Charge Ratio (Ql+Qr)/Qt (ME -2/1); (Ql+Qr)/Qt",100,-0.1,1.1));
187 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm11a",
"Charge Ratio (Ql+Qr)/Qt (ME -1/1a); (Ql+Qr)/Qt",100,-0.1,1.1));
188 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm13",
"Charge Ratio (Ql+Qr)/Qt (ME -1/3); (Ql+Qr)/Qt",100,-0.1,1.1));
189 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm12",
"Charge Ratio (Ql+Qr)/Qt (ME -1/2); (Ql+Qr)/Qt",100,-0.1,1.1));
190 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQm11b",
"Charge Ratio (Ql+Qr)/Qt (ME -1/1b); (Ql+Qr)/Qt",100,-0.1,1.1));
191 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp11b",
"Charge Ratio (Ql+Qr)/Qt (ME +1/1b); (Ql+Qr)/Qt",100,-0.1,1.1));
192 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp12",
"Charge Ratio (Ql+Qr)/Qt (ME +1/2); (Ql+Qr)/Qt",100,-0.1,1.1));
193 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp13",
"Charge Ratio (Ql+Qr)/Qt (ME +1/3); (Ql+Qr)/Qt",100,-0.1,1.1));
194 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp11a",
"Charge Ratio (Ql+Qr)/Qt (ME +1/1a); (Ql+Qr)/Qt",100,-0.1,1.1));
195 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp21",
"Charge Ratio (Ql+Qr)/Qt (ME +2/1); (Ql+Qr)/Qt",100,-0.1,1.1));
196 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp22",
"Charge Ratio (Ql+Qr)/Qt (ME +2/2); (Ql+Qr)/Qt",100,-0.1,1.1));
197 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp31",
"Charge Ratio (Ql+Qr)/Qt (ME +3/1); (Ql+Qr)/Qt",100,-0.1,1.1));
198 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp32",
"Charge Ratio (Ql+Qr)/Qt (ME +3/2); (Ql+Qr)/Qt",100,-0.1,1.1));
199 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp41",
"Charge Ratio (Ql+Qr)/Qt (ME +4/1); (Ql+Qr)/Qt",100,-0.1,1.1));
200 hRHRatioQ.push_back(ibooker.
book1D(
"hRHRatioQp42",
"Charge Ratio (Ql+Qr)/Qt (ME +4/2); (Ql+Qr)/Qt",100,-0.1,1.1));
201 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm42",
"recHit Time (ME -4/2); ns",200,-500.,500.));
202 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm41",
"recHit Time (ME -4/1); ns",200,-500.,500.));
203 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm32",
"recHit Time (ME -3/2); ns",200,-500.,500.));
204 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm31",
"recHit Time (ME -3/1); ns",200,-500.,500.));
205 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm22",
"recHit Time (ME -2/2); ns",200,-500.,500.));
206 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm21",
"recHit Time (ME -2/1); ns",200,-500.,500.));
207 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm11a",
"recHit Time (ME -1/1a); ns",200,-500.,500.));
208 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm13",
"recHit Time (ME -1/3); ns",200,-500.,500.));
209 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm12",
"recHit Time (ME -1/2); ns",200,-500.,500.));
210 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingm11b",
"recHit Time (ME -1/1b); ns",200,-500.,500.));
211 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp11b",
"recHit Time (ME +1/1b); ns",200,-500.,500.));
212 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp12",
"recHit Time (ME +1/2); ns",200,-500.,500.));
213 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp13",
"recHit Time (ME +1/3); ns",200,-500.,500.));
214 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp11a",
"recHit Time (ME +1/1a); ns",200,-500.,500.));
215 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp21",
"recHit Time (ME +2/1); ns",200,-500.,500.));
216 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp22",
"recHit Time (ME +2/2); ns",200,-500.,500.));
217 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp31",
"recHit Time (ME +3/1); ns",200,-500.,500.));
218 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp32",
"recHit Time (ME +3/2); ns",200,-500.,500.));
219 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp41",
"recHit Time (ME +4/1); ns",200,-500.,500.));
220 hRHTiming.push_back(ibooker.
book1D(
"hRHTimingp42",
"recHit Time (ME +4/2); ns",200,-500.,500.));
221 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem42",
"Anode recHit Time (ME -4/2); ns",80,-500.,500.));
222 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem41",
"Anode recHit Time (ME -4/1); ns",80,-500.,500.));
223 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem32",
"Anode recHit Time (ME -3/2); ns",80,-500.,500.));
224 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem31",
"Anode recHit Time (ME -3/1); ns",80,-500.,500.));
225 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem22",
"Anode recHit Time (ME -2/2); ns",80,-500.,500.));
226 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem21",
"Anode recHit Time (ME -2/1); ns",80,-500.,500.));
227 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem11a",
"Anode recHit Time (ME -1/1a); ns",80,-500.,500.));
228 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem13",
"Anode recHit Time (ME -1/3); ns",80,-500.,500.));
229 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem12",
"Anode recHit Time (ME -1/2); ns",80,-500.,500.));
230 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodem11b",
"Anode recHit Time (ME -1/1b); ns",80,-500.,500.));
231 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep11b",
"Anode recHit Time (ME +1/1b); ns",80,-500.,500.));
232 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep12",
"Anode recHit Time (ME +1/2); ns",80,-500.,500.));
233 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep13",
"Anode recHit Time (ME +1/3); ns",80,-500.,500.));
234 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep11a",
"Anode recHit Time (ME +1/1a); ns",80,-500.,500.));
235 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep21",
"Anode recHit Time (ME +2/1); ns",80,-500.,500.));
236 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep22",
"Anode recHit Time (ME +2/2); ns",80,-500.,500.));
237 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep31",
"Anode recHit Time (ME +3/1); ns",80,-500.,500.));
238 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep32",
"Anode recHit Time (ME +3/2); ns",80,-500.,500.));
239 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep41",
"Anode recHit Time (ME +4/1); ns",80,-500.,500.));
240 hRHTimingAnode.push_back(ibooker.
book1D(
"hRHTimingAnodep42",
"Anode recHit Time (ME +4/2); ns",80,-500.,500.));
241 hRHstpos.push_back(ibooker.
book1D(
"hRHstposm42",
"Reconstructed Position on Strip (ME -4/2); Strip Widths",120,-0.6,0.6));
242 hRHstpos.push_back(ibooker.
book1D(
"hRHstposm41",
"Reconstructed Position on Strip (ME -4/1); Strip Widths",120,-0.6,0.6));
243 hRHstpos.push_back(ibooker.
book1D(
"hRHstposm32",
"Reconstructed Position on Strip (ME -3/2); Strip Widths",120,-0.6,0.6));
244 hRHstpos.push_back(ibooker.
book1D(
"hRHstposm31",
"Reconstructed Position on Strip (ME -3/1); Strip Widths",120,-0.6,0.6));
245 hRHstpos.push_back(ibooker.
book1D(
"hRHstposm22",
"Reconstructed Position on Strip (ME -2/2); Strip Widths",120,-0.6,0.6));
246 hRHstpos.push_back(ibooker.
book1D(
"hRHstposm21",
"Reconstructed Position on Strip (ME -2/1); Strip Widths",120,-0.6,0.6));
247 hRHstpos.push_back(ibooker.
book1D(
"hRHstposm11a",
"Reconstructed Position on Strip (ME -1/1a); Strip Widths",120,-0.6,0.6));
248 hRHstpos.push_back(ibooker.
book1D(
"hRHstposm13",
"Reconstructed Position on Strip (ME -1/3); Strip Widths",120,-0.6,0.6));
249 hRHstpos.push_back(ibooker.
book1D(
"hRHstposm12",
"Reconstructed Position on Strip (ME -1/2); Strip Widths",120,-0.6,0.6));
250 hRHstpos.push_back(ibooker.
book1D(
"hRHstposm11b",
"Reconstructed Position on Strip (ME -1/1b); Strip Widths",120,-0.6,0.6));
251 hRHstpos.push_back(ibooker.
book1D(
"hRHstposp11b",
"Reconstructed Position on Strip (ME +1/1b); Strip Widths",120,-0.6,0.6));
252 hRHstpos.push_back(ibooker.
book1D(
"hRHstposp12",
"Reconstructed Position on Strip (ME +1/2); Strip Widths",120,-0.6,0.6));
253 hRHstpos.push_back(ibooker.
book1D(
"hRHstposp13",
"Reconstructed Position on Strip (ME +1/3); Strip Widths",120,-0.6,0.6));
254 hRHstpos.push_back(ibooker.
book1D(
"hRHstposp11a",
"Reconstructed Position on Strip (ME +1/1a); Strip Widths",120,-0.6,0.6));
255 hRHstpos.push_back(ibooker.
book1D(
"hRHstposp21",
"Reconstructed Position on Strip (ME +2/1); Strip Widths",120,-0.6,0.6));
256 hRHstpos.push_back(ibooker.
book1D(
"hRHstposp22",
"Reconstructed Position on Strip (ME +2/2); Strip Widths",120,-0.6,0.6));
257 hRHstpos.push_back(ibooker.
book1D(
"hRHstposp31",
"Reconstructed Position on Strip (ME +3/1); Strip Widths",120,-0.6,0.6));
258 hRHstpos.push_back(ibooker.
book1D(
"hRHstposp32",
"Reconstructed Position on Strip (ME +3/2); Strip Widths",120,-0.6,0.6));
259 hRHstpos.push_back(ibooker.
book1D(
"hRHstposp41",
"Reconstructed Position on Strip (ME +4/1); Strip Widths",120,-0.6,0.6));
260 hRHstpos.push_back(ibooker.
book1D(
"hRHstposp42",
"Reconstructed Position on Strip (ME +4/2); Strip Widths",120,-0.6,0.6));
261 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrm42",
"Estimated Error on Strip Measurement (ME -4/2); Strip Widths",75,-0.01,0.24));
262 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrm41",
"Estimated Error on Strip Measurement (ME -4/1); Strip Widths",75,-0.01,0.24));
263 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrm32",
"Estimated Error on Strip Measurement (ME -3/2); Strip Widths",75,-0.01,0.24));
264 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrm31",
"Estimated Error on Strip Measurement (ME -3/1); Strip Widths",75,-0.01,0.24));
265 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrm22",
"Estimated Error on Strip Measurement (ME -2/2); Strip Widths",75,-0.01,0.24));
266 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrm21",
"Estimated Error on Strip Measurement (ME -2/1); Strip Widths",75,-0.01,0.24));
267 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrm11a",
"Estimated Error on Strip Measurement (ME -1/1a); Strip Widths",75,-0.01,0.24));
268 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrm13",
"Estimated Error on Strip Measurement (ME -1/3); Strip Widths",75,-0.01,0.24));
269 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrm12",
"Estimated Error on Strip Measurement (ME -1/2); Strip Widths",75,-0.01,0.24));
270 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrm11b",
"Estimated Error on Strip Measurement (ME -1/1b); Strip Widths",75,-0.01,0.24));
271 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrp11b",
"Estimated Error on Strip Measurement (ME +1/1b); Strip Widths",75,-0.01,0.24));
272 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrp12",
"Estimated Error on Strip Measurement (ME +1/2); Strip Widths",75,-0.01,0.24));
273 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrp13",
"Estimated Error on Strip Measurement (ME +1/3); Strip Widths",75,-0.01,0.24));
274 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrp11a",
"Estimated Error on Strip Measurement (ME +1/1a); Strip Widths",75,-0.01,0.24));
275 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrp21",
"Estimated Error on Strip Measurement (ME +2/1); Strip Widths",75,-0.01,0.24));
276 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrp22",
"Estimated Error on Strip Measurement (ME +2/2); Strip Widths",75,-0.01,0.24));
277 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrp31",
"Estimated Error on Strip Measurement (ME +3/1); Strip Widths",75,-0.01,0.24));
278 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrp32",
"Estimated Error on Strip Measurement (ME +3/2); Strip Widths",75,-0.01,0.24));
279 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrp41",
"Estimated Error on Strip Measurement (ME +4/1); Strip Widths",75,-0.01,0.24));
280 hRHsterr.push_back(ibooker.
book1D(
"hRHsterrp42",
"Estimated Error on Strip Measurement (ME +4/2); Strip Widths",75,-0.01,0.24));
285 hSnSegments = ibooker.
book1D(
"hSnSegments",
"Number of Segments per Event; # of Segments",26,-0.5,25.5);
286 hSnhitsAll = ibooker.
book1D(
"hSnhits",
"N hits on Segments; # of hits",8,-0.5,7.5);
287 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm42",
"# of hits on Segments (ME -4/2); # of hits",8,-0.5,7.5));
288 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm41",
"# of hits on Segments (ME -4/1); # of hits",8,-0.5,7.5));
289 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm32",
"# of hits on Segments (ME -3/2); # of hits",8,-0.5,7.5));
290 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm31",
"# of hits on Segments (ME -3/1); # of hits",8,-0.5,7.5));
291 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm22",
"# of hits on Segments (ME -2/2); # of hits",8,-0.5,7.5));
292 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm21",
"# of hits on Segments (ME -2/1); # of hits",8,-0.5,7.5));
293 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm11a",
"# of hits on Segments (ME -1/1a); # of hits",8,-0.5,7.5));
294 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm13",
"# of hits on Segments (ME -1/3); # of hits",8,-0.5,7.5));
295 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm12",
"# of hits on Segments (ME -1/2); # of hits",8,-0.5,7.5));
296 hSnhits.push_back(ibooker.
book1D(
"hSnhitsm11b",
"# of hits on Segments (ME -1/1b); # of hits",8,-0.5,7.5));
297 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp11b",
"# of hits on Segments (ME +1/1b); # of hits",8,-0.5,7.5));
298 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp12",
"# of hits on Segments (ME +1/2); # of hits",8,-0.5,7.5));
299 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp13",
"# of hits on Segments (ME +1/3); # of hits",8,-0.5,7.5));
300 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp11a",
"# of hits on Segments (ME +1/1a); # of hits",8,-0.5,7.5));
301 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp21",
"# of hits on Segments (ME +2/1); # of hits",8,-0.5,7.5));
302 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp22",
"# of hits on Segments (ME +2/2); # of hits",8,-0.5,7.5));
303 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp31",
"# of hits on Segments (ME +3/1); # of hits",8,-0.5,7.5));
304 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp32",
"# of hits on Segments (ME +3/2); # of hits",8,-0.5,7.5));
305 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp41",
"# of hits on Segments (ME +4/1); # of hits",8,-0.5,7.5));
306 hSnhits.push_back(ibooker.
book1D(
"hSnhitsp42",
"# of hits on Segments (ME +4/2); # of hits",8,-0.5,7.5));
307 hSChiSqAll = ibooker.
book1D(
"hSChiSq",
"Segment Normalized Chi2; Chi2/ndof",110,-0.05,10.5);
308 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm42",
"Segment Normalized Chi2 (ME -4/2); Chi2/ndof",110,-0.05,10.5));
309 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm41",
"Segment Normalized Chi2 (ME -4/1); Chi2/ndof",110,-0.05,10.5));
310 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm32",
"Segment Normalized Chi2 (ME -3/2); Chi2/ndof",110,-0.05,10.5));
311 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm31",
"Segment Normalized Chi2 (ME -3/1); Chi2/ndof",110,-0.05,10.5));
312 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm22",
"Segment Normalized Chi2 (ME -2/2); Chi2/ndof",110,-0.05,10.5));
313 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm21",
"Segment Normalized Chi2 (ME -2/1); Chi2/ndof",110,-0.05,10.5));
314 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm11a",
"Segment Normalized Chi2 (ME -1/1a); Chi2/ndof",110,-0.05,10.5));
315 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm13",
"Segment Normalized Chi2 (ME -1/3); Chi2/ndof",110,-0.05,10.5));
316 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm12",
"Segment Normalized Chi2 (ME -1/2); Chi2/ndof",110,-0.05,10.5));
317 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqm11b",
"Segment Normalized Chi2 (ME -1/1b); Chi2/ndof",110,-0.05,10.5));
318 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp11b",
"Segment Normalized Chi2 (ME +1/1b); Chi2/ndof",110,-0.05,10.5));
319 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp12",
"Segment Normalized Chi2 (ME +1/2); Chi2/ndof",110,-0.05,10.5));
320 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp13",
"Segment Normalized Chi2 (ME +1/3); Chi2/ndof",110,-0.05,10.5));
321 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp11a",
"Segment Normalized Chi2 (ME +1/1a); Chi2/ndof",110,-0.05,10.5));
322 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp21",
"Segment Normalized Chi2 (ME +2/1); Chi2/ndof",110,-0.05,10.5));
323 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp22",
"Segment Normalized Chi2 (ME +2/2); Chi2/ndof",110,-0.05,10.5));
324 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp31",
"Segment Normalized Chi2 (ME +3/1); Chi2/ndof",110,-0.05,10.5));
325 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp32",
"Segment Normalized Chi2 (ME +3/2); Chi2/ndof",110,-0.05,10.5));
326 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp41",
"Segment Normalized Chi2 (ME +4/1); Chi2/ndof",110,-0.05,10.5));
327 hSChiSq.push_back(ibooker.
book1D(
"hSChiSqp42",
"Segment Normalized Chi2 (ME +4/2); Chi2/ndof",110,-0.05,10.5));
328 hSChiSqProbAll = ibooker.
book1D(
"hSChiSqProb",
"Segment chi2 Probability; Probability",110,-0.05,1.05);
329 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbm42",
"Segment chi2 Probability (ME -4/2); Probability",110,-0.05,1.05));
330 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbm41",
"Segment chi2 Probability (ME -4/1); Probability",110,-0.05,1.05));
331 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbm32",
"Segment chi2 Probability (ME -3/2); Probability",110,-0.05,1.05));
332 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbm31",
"Segment chi2 Probability (ME -3/1); Probability",110,-0.05,1.05));
333 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbm22",
"Segment chi2 Probability (ME -2/2); Probability",110,-0.05,1.05));
334 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbm21",
"Segment chi2 Probability (ME -2/1); Probability",110,-0.05,1.05));
335 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbm11a",
"Segment chi2 Probability (ME -1/1a); Probability",110,-0.05,1.05));
336 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbm13",
"Segment chi2 Probability (ME -1/3); Probability",110,-0.05,1.05));
337 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbm12",
"Segment chi2 Probability (ME -1/2); Probability",110,-0.05,1.05));
338 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbm11b",
"Segment chi2 Probability (ME -1/1b); Probability",110,-0.05,1.05));
339 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbp11b",
"Segment chi2 Probability (ME +1/1b); Probability",110,-0.05,1.05));
340 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbp12",
"Segment chi2 Probability (ME +1/2); Probability",110,-0.05,1.05));
341 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbp13",
"Segment chi2 Probability (ME +1/3); Probability",110,-0.05,1.05));
342 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbp11a",
"Segment chi2 Probability (ME +1/1a); Probability",110,-0.05,1.05));
343 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbp21",
"Segment chi2 Probability (ME +2/1); Probability",110,-0.05,1.05));
344 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbp22",
"Segment chi2 Probability (ME +2/2); Probability",110,-0.05,1.05));
345 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbp31",
"Segment chi2 Probability (ME +3/1); Probability",110,-0.05,1.05));
346 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbp32",
"Segment chi2 Probability (ME +3/2); Probability",110,-0.05,1.05));
347 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbp41",
"Segment chi2 Probability (ME +4/1); Probability",110,-0.05,1.05));
348 hSChiSqProb.push_back(ibooker.
book1D(
"hSChiSqProbp42",
"Segment chi2 Probability (ME +4/2); Probability",110,-0.05,1.05));
349 hSGlobalTheta = ibooker.
book1D(
"hSGlobalTheta",
"Segment Direction (Global Theta); Global Theta (radians)",136,-0.1,3.3);
350 hSGlobalPhi = ibooker.
book1D(
"hSGlobalPhi",
"Segment Direction (Global Phi); Global Phi (radians)", 128,-3.2,3.2);
352 hSTimeDiff = ibooker.
book1D(
"hSTimeDiff",
"Anode Minus Cathode Segment Time [ns]",50,-50,50);
353 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_m42",
"Anode Minus Cathode Segment Time (ME -4/2) [ns]",50,-50,50));
354 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_m41",
"Anode Minus Cathode Segment Time (ME -4/1) [ns]",50,-50,50));
355 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_m32",
"Anode Minus Cathode Segment Time (ME -3/2) [ns]",50,-50,50));
356 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_m31",
"Anode Minus Cathode Segment Time (ME -3/2) [ns]",50,-50,50));
357 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_m22",
"Anode Minus Cathode Segment Time (ME -2/2) [ns]",50,-50,50));
358 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_m21",
"Anode Minus Cathode Segment Time (ME -2/1) [ns]",50,-50,50));
359 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_m11a",
"Anode Minus Cathode Segment Time (ME -1/1a) [ns]",50,-50,50));
360 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_m13",
"Anode Minus Cathode Segment Time (ME -1/3) [ns]",50,-50,50));
361 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_m12",
"Anode Minus Cathode Segment Time (ME -1/2) [ns]",50,-50,50));
362 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_m11b",
"Anode Minus Cathode Segment Time (ME -1/1b) [ns]",50,-50,50));
363 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_p11b",
"Anode Minus Cathode Segment Time (ME +1/1b) [ns]",50,-50,50));
364 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_p12",
"Anode Minus Cathode Segment Time (ME +1/2) [ns]",50,-50,50));
365 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_p13",
"Anode Minus Cathode Segment Time (ME +1/3) [ns]",50,-50,50));
366 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_p11a",
"Anode Minus Cathode Segment Time (ME +1/1a) [ns]",50,-50,50));
367 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_p21",
"Anode Minus Cathode Segment Time (ME +2/1) [ns]",50,-50,50));
368 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_p22",
"Anode Minus Cathode Segment Time (ME +2/2) [ns]",50,-50,50));
369 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_p31",
"Anode Minus Cathode Segment Time (ME +3/1) [ns]",50,-50,50));
370 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_p32",
"Anode Minus Cathode Segment Time (ME +3/2) [ns]",50,-50,50));
371 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_p41",
"Anode Minus Cathode Segment Time (ME +4/1) [ns]",50,-50,50));
372 hSTimeDiffByChamberType.push_back(ibooker.
book1D(
"hSTimeDiff_p42",
"Anode Minus Cathode Segment Time (ME +4/2) [ns]",50,-50,50));
374 hSTimeAnode = ibooker.
book1D(
"hSTimeAnode",
"Anode Only Segment Time [ns]",200,-200,200);
375 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_m42",
"Anode Only Segment Time (ME -4/2) [ns]",200,-200,200));
376 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_m41",
"Anode Only Segment Time (ME -4/1) [ns]",200,-200,200));
377 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_m32",
"Anode Only Segment Time (ME -3/2) [ns]",200,-200,200));
378 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_m31",
"Anode Only Segment Time (ME -3/2) [ns]",200,-200,200));
379 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_m22",
"Anode Only Segment Time (ME -2/2) [ns]",200,-200,200));
380 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_m21",
"Anode Only Segment Time (ME -2/1) [ns]",200,-200,200));
381 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_m11a",
"Anode Only Segment Time (ME -1/1a) [ns]",200,-200,200));
382 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_m13",
"Anode Only Segment Time (ME -1/3) [ns]",200,-200,200));
383 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_m12",
"Anode Only Segment Time (ME -1/2) [ns]",200,-200,200));
384 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_m11b",
"Anode Only Segment Time (ME -1/1b) [ns]",200,-200,200));
385 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_p11b",
"Anode Only Segment Time (ME +1/1b) [ns]",200,-200,200));
386 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_p12",
"Anode Only Segment Time (ME +1/2) [ns]",200,-200,200));
387 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_p13",
"Anode Only Segment Time (ME +1/3) [ns]",200,-200,200));
388 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_p11a",
"Anode Only Segment Time (ME +1/1a) [ns]",200,-200,200));
389 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_p21",
"Anode Only Segment Time (ME +2/1) [ns]",200,-200,200));
390 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_p22",
"Anode Only Segment Time (ME +2/2) [ns]",200,-200,200));
391 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_p31",
"Anode Only Segment Time (ME +3/1) [ns]",200,-200,200));
392 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_p32",
"Anode Only Segment Time (ME +3/2) [ns]",200,-200,200));
393 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_p41",
"Anode Only Segment Time (ME +4/1) [ns]",200,-200,200));
394 hSTimeAnodeByChamberType.push_back(ibooker.
book1D(
"hSTimeAnode_p42",
"Anode Only Segment Time (ME +4/2) [ns]",200,-200,200));
396 hSTimeCathode = ibooker.
book1D(
"hSTimeCathode",
"Cathode Only Segment Time [ns]",200,-200,200);
397 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_m42",
"Cathode Only Segment Time (ME -4/2) [ns]",200,-200,200));
398 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_m41",
"Cathode Only Segment Time (ME -4/1) [ns]",200,-200,200));
399 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_m32",
"Cathode Only Segment Time (ME -3/2) [ns]",200,-200,200));
400 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_m31",
"Cathode Only Segment Time (ME -3/2) [ns]",200,-200,200));
401 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_m22",
"Cathode Only Segment Time (ME -2/2) [ns]",200,-200,200));
402 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_m21",
"Cathode Only Segment Time (ME -2/1) [ns]",200,-200,200));
403 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_m11a",
"Cathode Only Segment Time (ME -1/1a) [ns]",200,-200,200));
404 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_m13",
"Cathode Only Segment Time (ME -1/3) [ns]",200,-200,200));
405 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_m12",
"Cathode Only Segment Time (ME -1/2) [ns]",200,-200,200));
406 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_m11b",
"Cathode Only Segment Time (ME -1/1b) [ns]",200,-200,200));
407 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_p11b",
"Cathode Only Segment Time (ME +1/1b) [ns]",200,-200,200));
408 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_p12",
"Cathode Only Segment Time (ME +1/2) [ns]",200,-200,200));
409 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_p13",
"Cathode Only Segment Time (ME +1/3) [ns]",200,-200,200));
410 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_p11a",
"Cathode Only Segment Time (ME +1/1a) [ns]",200,-200,200));
411 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_p21",
"Cathode Only Segment Time (ME +2/1) [ns]",200,-200,200));
412 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_p22",
"Cathode Only Segment Time (ME +2/2) [ns]",200,-200,200));
413 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_p31",
"Cathode Only Segment Time (ME +3/1) [ns]",200,-200,200));
414 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_p32",
"Cathode Only Segment Time (ME +3/2) [ns]",200,-200,200));
415 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_p41",
"Cathode Only Segment Time (ME +4/1) [ns]",200,-200,200));
416 hSTimeCathodeByChamberType.push_back(ibooker.
book1D(
"hSTimeCathode_p42",
"Cathode Only Segment Time (ME +4/2) [ns]",200,-200,200));
418 hSTimeCombined = ibooker.
book1D(
"hSTimeCombined",
"Segment Time (anode+cathode times) [ns]",200,-200,200);
419 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_m42",
"Segment Time (anode+cathode times) Segment Time (ME -4/2) [ns]",200,-200,200));
420 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_m41",
"Segment Time (anode+cathode times) Segment Time (ME -4/1) [ns]",200,-200,200));
421 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_m32",
"Segment Time (anode+cathode times) Segment Time (ME -3/2) [ns]",200,-200,200));
422 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_m31",
"Segment Time (anode+cathode times) Segment Time (ME -3/2) [ns]",200,-200,200));
423 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_m22",
"Segment Time (anode+cathode times) Segment Time (ME -2/2) [ns]",200,-200,200));
424 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_m21",
"Segment Time (anode+cathode times) Segment Time (ME -2/1) [ns]",200,-200,200));
425 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_m11a",
"Segment Time (anode+cathode times) Segment Time (ME -1/1a) [ns]",200,-200,200));
426 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_m13",
"Segment Time (anode+cathode times) Segment Time (ME -1/3) [ns]",200,-200,200));
427 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_m12",
"Segment Time (anode+cathode times) Segment Time (ME -1/2) [ns]",200,-200,200));
428 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_m11b",
"Segment Time (anode+cathode times) Segment Time (ME -1/1b) [ns]",200,-200,200));
429 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_p11b",
"Segment Time (anode+cathode times) Segment Time (ME +1/1b) [ns]",200,-200,200));
430 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_p12",
"Segment Time (anode+cathode times) Segment Time (ME +1/2) [ns]",200,-200,200));
431 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_p13",
"Segment Time (anode+cathode times) Segment Time (ME +1/3) [ns]",200,-200,200));
432 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_p11a",
"Segment Time (anode+cathode times) Segment Time (ME +1/1a) [ns]",200,-200,200));
433 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_p21",
"Segment Time (anode+cathode times) Segment Time (ME +2/1) [ns]",200,-200,200));
434 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_p22",
"Segment Time (anode+cathode times) Segment Time (ME +2/2) [ns]",200,-200,200));
435 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_p31",
"Segment Time (anode+cathode times) Segment Time (ME +3/1) [ns]",200,-200,200));
436 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_p32",
"Segment Time (anode+cathode times) Segment Time (ME +3/2) [ns]",200,-200,200));
437 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_p41",
"Segment Time (anode+cathode times) Segment Time (ME +4/1) [ns]",200,-200,200));
438 hSTimeCombinedByChamberType.push_back(ibooker.
book1D(
"hSTimeCombined_p42",
"Segment Time (anode+cathode times) Segment Time (ME +4/2) [ns]",200,-200,200));
440 hSTimeDiffSerial = ibooker.
book2D(
"hSTimeDiffSerial",
"Anode Minus Cathode Segment Time [ns]",601,-0.5,600.5,200,-50,50);
441 hSTimeAnodeSerial = ibooker.
book2D(
"hSTimeAnodeSerial",
"Anode Only Segment Time [ns]",601,-0.5,600.5,200,-200,200);
442 hSTimeCathodeSerial = ibooker.
book2D(
"hSTimeCathodeSerial",
"Cathode Only Segment Time [ns]",601,-0.5,600.5,200,-200,200);
443 hSTimeCombinedSerial = ibooker.
book2D(
"hSTimeCombinedSerial",
"Segment Time (anode+cathode times) [ns]",601,-0.5,600.5,200,-200,200);
446 hSTimeVsZ = ibooker.
book2D(
"hSTimeVsZ",
"Segment Time vs. Z; [ns] vs. [cm]",200,-1200,1200,200,-200,200);
447 hSTimeVsTOF = ibooker.
book2D(
"hSTimeVsTOF",
"Segment Time vs. Distance from IP; [ns] vs. [cm]",180,500,1400, 200,-200,200);
453 hSResid.push_back(ibooker.
book1D(
"hSResidm42",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -4/2); Strip Widths",100,-0.5,0.5));
454 hSResid.push_back(ibooker.
book1D(
"hSResidm41",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -4/1); Strip Widths",100,-0.5,0.5));
455 hSResid.push_back(ibooker.
book1D(
"hSResidm32",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -3/2); Strip Widths",100,-0.5,0.5));
456 hSResid.push_back(ibooker.
book1D(
"hSResidm31",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -3/1); Strip Widths",100,-0.5,0.5));
457 hSResid.push_back(ibooker.
book1D(
"hSResidm22",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -2/2); Strip Widths",100,-0.5,0.5));
458 hSResid.push_back(ibooker.
book1D(
"hSResidm21",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -2/1); Strip Widths",100,-0.5,0.5));
459 hSResid.push_back(ibooker.
book1D(
"hSResidm11a",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/1a); Strip Widths",100,-0.5,0.5));
460 hSResid.push_back(ibooker.
book1D(
"hSResidm13",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/3); Strip Widths",100,-0.5,0.5));
461 hSResid.push_back(ibooker.
book1D(
"hSResidm12",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/2); Strip Widths",100,-0.5,0.5));
462 hSResid.push_back(ibooker.
book1D(
"hSResidm11b",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/1b); Strip Widths",100,-0.5,0.5));
463 hSResid.push_back(ibooker.
book1D(
"hSResidp11b",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/1b); Strip Widths",100,-0.5,0.5));
464 hSResid.push_back(ibooker.
book1D(
"hSResidp12",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/2); Strip Widths",100,-0.5,0.5));
465 hSResid.push_back(ibooker.
book1D(
"hSResidp13",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/3); Strip Widths",100,-0.5,0.5));
466 hSResid.push_back(ibooker.
book1D(
"hSResidp11a",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/1a); Strip Widths",100,-0.5,0.5));
467 hSResid.push_back(ibooker.
book1D(
"hSResidp21",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +2/1); Strip Widths",100,-0.5,0.5));
468 hSResid.push_back(ibooker.
book1D(
"hSResidp22",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +2/2); Strip Widths",100,-0.5,0.5));
469 hSResid.push_back(ibooker.
book1D(
"hSResidp31",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +3/1); Strip Widths",100,-0.5,0.5));
470 hSResid.push_back(ibooker.
book1D(
"hSResidp32",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +3/2); Strip Widths",100,-0.5,0.5));
471 hSResid.push_back(ibooker.
book1D(
"hSResidp41",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +4/1); Strip Widths",100,-0.5,0.5));
472 hSResid.push_back(ibooker.
book1D(
"hSResidp42",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +4/2); Strip Widths",100,-0.5,0.5));
479 hSnum = ibooker.
book1D(
"hSnum",
"CSC w rechits in 2+ layers && segment(s)", 20, 0.5, 20.5);
480 hSden = ibooker.
book1D(
"hSden",
"CSC w rechits in 2+ layers", 20, 0.5, 20.5);
481 hRHnum = ibooker.
book1D(
"hRHnum",
"CSC w segment(s) && rechits in 6 layers", 20, 0.5, 20.5);
482 hRHden = ibooker.
book1D(
"hRHden",
"CSC w segment(s)", 20, 0.5, 20.5);
483 applyCSClabels(hSnum, EXTENDED,
X);
484 applyCSClabels(hSden, EXTENDED,
X);
485 applyCSClabels(hRHnum, EXTENDED,
X);
486 applyCSClabels(hRHden, EXTENDED,
X);
490 hSSTE2 = ibooker.
book2D(
"hSSTE2",
"hSSTE2",36,0.5,36.5, 20, 0.5, 20.5);
491 hRHSTE2 = ibooker.
book2D(
"hRHSTE2",
"hRHSTE2",36,0.5,36.5, 20, 0.5, 20.5);
492 hStripSTE2 = ibooker.
book2D(
"hStripSTE2",
"hStripSTE2",36,0.5,36.5, 20, 0.5, 20.5);
493 hWireSTE2 = ibooker.
book2D(
"hWireSTE2",
"hWireSTE2",36,0.5,36.5, 20, 0.5, 20.5);
494 hEffDenominator = ibooker.
book2D(
"hEffDenominator",
"hEffDenominator",36,0.5,36.5, 20, 0.5, 20.5);
501 hSensitiveAreaEvt = ibooker.
book2D(
"hSensitiveAreaEvt",
"Events Passing Selection for Efficiency",36,0.5,36.5, 20, 0.5, 20.5);
506 hALCTgetBX = ibooker.
book1D(
"hALCTgetBX",
"ALCT position in ALCT-L1A match window [BX]",7,-0.5,6.5);
508 hALCTgetBXSerial = ibooker.
book2D(
"hALCTgetBXSerial",
"ALCT position in ALCT-L1A match window [BX]",601,-0.5,600.5,7,-0.5,6.5);
509 hALCTgetBXSerial->
setAxisTitle(
"Chamber Serial Number");
510 hALCTgetBX2DNumerator = ibooker.
book2D(
"hALCTgetBX2DNumerator",
"ALCT position in ALCT-L1A match window [BX] (sum)",36,0.5,36.5,20,0.5,20.5);
512 hALCTgetBX2Denominator = ibooker.
book2D(
"hALCTgetBX2Denominator",
"Number of ALCT Digis checked",36,0.5,36.5,20,0.5,20.5);
515 hALCTMatch = ibooker.
book1D(
"hALCTMatch",
"ALCT position in ALCT-CLCT match window [BX]",7,-0.5,6.5);
517 hALCTMatchSerial = ibooker.
book2D(
"hALCTMatchSerial",
"ALCT position in ALCT-CLCT match window [BX]",601,-0.5,600.5,7,-0.5,6.5);
518 hALCTMatchSerial->
setAxisTitle(
"Chamber Serial Number");
519 hALCTMatch2DNumerator = ibooker.
book2D(
"hALCTMatch2DNumerator",
"ALCT position in ALCT-CLCT match window [BX] (sum)",36,0.5,36.5,20,0.5,20.5);
521 hALCTMatch2Denominator = ibooker.
book2D(
"hALCTMatch2Denominator",
"Number of ALCT-CLCT matches checked",36,0.5,36.5,20,0.5,20.5);
524 hCLCTL1A = ibooker.
book1D(
"hCLCTL1A",
"L1A - CLCTpreTrigger at TMB [BX]",40,149.5,189.5);
526 hCLCTL1ASerial = ibooker.
book2D(
"hCLCTL1ASerial",
"L1A - CLCTpreTrigger at TMB [BX]",601,-0.5,600.5,40,149.5,189.5);
528 hCLCTL1A2DNumerator = ibooker.
book2D(
"hCLCTL1A2DNumerator",
"L1A - CLCTpreTrigger at TMB [BX] (sum)",36,0.5,36.5,20,0.5,20.5);
530 hCLCTL1A2Denominator = ibooker.
book2D(
"hCLCTL1A2Denominator",
"Number of TMB CLCTs checked",36,0.5,36.5,20,0.5,20.5);
534 applyCSClabels(hOWiresAndCLCT, EXTENDED,
Y);
535 applyCSClabels(hOWires, EXTENDED,
Y);
536 applyCSClabels(hOStrips, EXTENDED,
Y);
537 applyCSClabels(hOStripsAndWiresAndCLCT, EXTENDED,
Y);
538 applyCSClabels(hORecHits, EXTENDED,
Y);
539 applyCSClabels(hOSegments, EXTENDED,
Y);
543 applyCSClabels(hSSTE2, EXTENDED,
Y);
544 applyCSClabels(hEffDenominator, EXTENDED,
Y);
546 applyCSClabels(hRHSTE2, EXTENDED,
Y);
549 applyCSClabels(hStripSTE2, EXTENDED,
Y);
551 applyCSClabels(hWireSTE2, EXTENDED,
Y);
552 applyCSClabels(hSensitiveAreaEvt, EXTENDED,
Y);
554 applyCSClabels(hALCTgetBX2Denominator, EXTENDED,
Y);
556 applyCSClabels(hALCTMatch2Denominator, EXTENDED,
Y);
558 applyCSClabels(hCLCTL1A2Denominator,EXTENDED,
Y);
570 event.getByToken( sd_token, strips );
571 event.getByToken( wd_token, wires );
572 event.getByToken( al_token, alcts );
573 event.getByToken( cl_token, clcts );
581 event.getByToken( rh_token, recHits );
585 event.getByToken( se_token, cscSegments );
587 doOccupancies(strips,wires,recHits,cscSegments,clcts);
588 doStripDigis(strips);
590 doRecHits(recHits,strips,cscGeom);
591 doSegments(cscSegments,cscGeom);
592 doResolution(cscSegments,cscGeom);
593 doPedestalNoise(strips, cscGeom);
594 doEfficiencies(wires,strips, recHits, cscSegments,cscGeom);
595 doBXMonitor(alcts, clcts, event, eventSetup);
608 bool clcto[2][4][4][36];
609 bool wireo[2][4][4][36];
610 bool stripo[2][4][4][36];
611 bool rechito[2][4][4][36];
612 bool segmento[2][4][4][36];
614 bool hasWires =
false;
615 bool hasStrips =
false;
616 bool hasRecHits =
false;
617 bool hasSegments =
false;
619 for (
int e = 0;
e < 2;
e++){
620 for (
int s = 0;
s < 4;
s++){
621 for (
int r = 0;
r < 4;
r++){
622 for (
int c = 0;
c < 36;
c++){
623 clcto[
e][
s][
r][
c] =
false;
624 wireo[
e][
s][
r][
c] =
false;
625 stripo[
e][
s][
r][
c] =
false;
626 rechito[
e][
s][
r][
c] =
false;
627 segmento[
e][
s][
r][
c] =
false;
636 int kEndcap =
id.
endcap();
637 int kRing =
id.ring();
638 int kStation =
id.station();
639 int kChamber =
id.chamber();
643 if((*digiIt).isValid()){
645 if( kStation ==1 && kRing==1 && (*digiIt).getKeyStrip()>128)
647 clcto[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
655 int kEndcap =
id.
endcap();
656 int kRing =
id.ring();
657 int kStation =
id.station();
658 int kChamber =
id.chamber();
659 std::vector<CSCWireDigi>::const_iterator wireIt = (*wi).second.first;
660 std::vector<CSCWireDigi>::const_iterator lastWire = (*wi).second.second;
661 for( ; wireIt != lastWire; ++wireIt){
662 if (!wireo[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
663 wireo[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
664 hOWires->Fill(kChamber,typeIndex(
id,2));
665 hOWireSerial->Fill(chamberSerial(
id));
667 if( clcto[kEndcap-1][kStation-1][kRing-1][kChamber-1])
668 hOWiresAndCLCT->Fill(kChamber,typeIndex(
id,2));
670 if (kStation==1 && kRing==1 && clcto[kEndcap-1][kStation-1][3][kChamber-1]){
672 hOWiresAndCLCT->Fill(kChamber,typeIndex(idME11a,2));
681 int kEndcap =
id.
endcap();
682 int kRing =
id.ring();
683 int kStation =
id.station();
684 int kChamber =
id.chamber();
685 std::vector<CSCStripDigi>::const_iterator stripIt = (*si).second.first;
686 std::vector<CSCStripDigi>::const_iterator lastStrip = (*si).second.second;
687 for( ; stripIt != lastStrip; ++stripIt) {
688 std::vector<int> myADCVals = stripIt->getADCCounts();
689 bool thisStripFired =
false;
690 float thisPedestal = 0.5*(
float)(myADCVals[0]+myADCVals[1]);
693 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
694 diff = (
float)myADCVals[iCount]-thisPedestal;
695 if (diff > threshold) { thisStripFired =
true; }
697 if (thisStripFired) {
698 if (!stripo[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
699 stripo[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
700 hOStrips->Fill(kChamber,typeIndex(
id,2));
701 hOStripSerial->Fill(chamberSerial(
id));
703 if (clcto[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
706 if(wireo[kEndcap-1][kStation-1][kRing-1][kChamber-1] || (kRing==4 && wireo[kEndcap-1][kStation-1][0][kChamber-1]) ){
707 hOStripsAndWiresAndCLCT->Fill(kChamber,typeIndex(
id,2));
717 for (recIt = recHits->begin(); recIt != recHits->end(); recIt++) {
719 int kEndcap = idrec.
endcap();
720 int kRing = idrec.
ring();
721 int kStation = idrec.
station();
722 int kChamber = idrec.
chamber();
723 if (!rechito[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
724 rechito[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
725 hORecHitsSerial->Fill(chamberSerial(idrec));
726 hORecHits->Fill(kChamber,typeIndex(idrec,2));
734 int kEndcap =
id.
endcap();
735 int kRing =
id.ring();
736 int kStation =
id.station();
737 int kChamber =
id.chamber();
738 if (!segmento[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
739 segmento[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
740 hOSegmentsSerial->Fill(chamberSerial(
id));
741 hOSegments->Fill(kChamber,typeIndex(
id,2));
747 hCSCOccupancy->Fill(1);
748 if (hasWires) hCSCOccupancy->Fill(3);
749 if (hasStrips) hCSCOccupancy->Fill(5);
750 if (hasWires && hasStrips) hCSCOccupancy->Fill(7);
751 if (hasRecHits) hCSCOccupancy->Fill(9);
752 if (hasSegments) hCSCOccupancy->Fill(11);
766 int nWireGroupsTotal = 0;
769 std::vector<CSCWireDigi>::const_iterator wireIter = (*dWDiter).second.first;
770 std::vector<CSCWireDigi>::const_iterator lWire = (*dWDiter).second.second;
771 for( ; wireIter != lWire; ++wireIter) {
772 int myWire = wireIter->getWireGroup();
773 int myTBin = wireIter->getTimeBin();
775 hWireTBin[typeIndex(
id)-1]->Fill(myTBin);
776 hWireNumber[typeIndex(
id)-1]->Fill(myWire);
783 hWirenGroupsTotal->Fill(nWireGroupsTotal);
796 int nStripsFired = 0;
799 std::vector<CSCStripDigi>::const_iterator stripIter = (*dSDiter).second.first;
800 std::vector<CSCStripDigi>::const_iterator lStrip = (*dSDiter).second.second;
801 for( ; stripIter != lStrip; ++stripIter) {
802 int myStrip = stripIter->getStrip();
803 std::vector<int> myADCVals = stripIter->getADCCounts();
804 bool thisStripFired =
false;
805 float thisPedestal = 0.5*(
float)(myADCVals[0]+myADCVals[1]);
808 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
809 diff = (
float)myADCVals[iCount]-thisPedestal;
810 if (diff > threshold) { thisStripFired =
true; }
812 if (thisStripFired) {
814 hStripNumber[typeIndex(
id)-1]->Fill(myStrip);
823 hStripNFired->Fill(nStripsFired);
841 int kRing =
id.ring();
842 std::vector<CSCStripDigi>::const_iterator pedIt = (*dPNiter).second.first;
843 std::vector<CSCStripDigi>::const_iterator lStrip = (*dPNiter).second.second;
844 for( ; pedIt != lStrip; ++pedIt) {
845 int myStrip = pedIt->getStrip();
846 std::vector<int> myADCVals = pedIt->getADCCounts();
847 float TotalADC = getSignal(*strips,
id, myStrip);
848 bool thisStripFired =
false;
849 float thisPedestal = 0.5*(
float)(myADCVals[0]+myADCVals[1]);
850 float thisSignal = (1./6)*(myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
855 if( (kStation == 1 && kRing == 4) && cscGeom->
gangedStrips() )
858 if(myStrip <= 16) myStrip += 64;
861 if (TotalADC > threshold) { thisStripFired =
true;}
862 if (!thisStripFired){
863 float ADC = thisSignal - thisPedestal;
864 hStripPed[typeIndex(
id)-1]->Fill(ADC);
883 int nRecHits = recHits->size();
890 for (dRHIter = recHits->begin(); dRHIter != recHits->end(); dRHIter++) {
896 LocalPoint rhitlocal = (*dRHIter).localPosition();
901 float stpos = (*dRHIter).positionWithinStrip();
902 float sterr = (*dRHIter).errorWithinStrip();
906 int adcsize = dRHIter->nStrips()*dRHIter->nTimeBins();
909 for (
unsigned int i = 0;
i < dRHIter->nStrips();
i++){
910 for (
unsigned int j=0; j<dRHIter->nTimeBins()-1; j++) {
911 rHSumQ+=dRHIter->adcs(
i,j);
912 if (
i != 1 ) sumsides += dRHIter->adcs(
i,j);
916 float rHratioQ = sumsides/rHSumQ;
917 if (adcsize != 12) rHratioQ = -99;
920 float rHtime = (*dRHIter).tpeak();
921 float rHtimeAnode = (*dRHIter).wireTime();
928 float grecx = rhitglobal.
x();
929 float grecy = rhitglobal.
y();
933 int tIndex = typeIndex(idrec);
934 hRHSumQ[tIndex-1]->Fill(rHSumQ);
935 hRHRatioQ[tIndex-1]->Fill(rHratioQ);
936 hRHstpos[tIndex-1]->Fill(stpos);
937 hRHsterr[tIndex-1]->Fill(sterr);
938 hRHTiming[tIndex-1]->Fill(rHtime);
939 hRHTimingAnode[tIndex-1]->Fill(rHtimeAnode);
940 hRHGlobal[sIndex-1]->Fill(grecx,grecy);
945 hRHnrechits->Fill(nRecHits);
960 int nSegments = cscSegments->size();
964 float chisq = (*dSiter).chi2();
965 int nhits = (*dSiter).nRecHits();
966 int nDOF = 2*nhits-4;
967 float nChi2 = chisq/nDOF;
969 LocalPoint localPos = (*dSiter).localPosition();
973 float timeCathode = 0;
975 float timeCombined = 0;
976 std::vector<float> cathodeTimes;
977 std::vector<float> anodeTimes;
979 std::vector<CSCRecHit2D> theseRecHits = (*dSiter).specificRecHits();
980 for ( vector<CSCRecHit2D>::const_iterator iRH = theseRecHits.begin(); iRH != theseRecHits.end(); iRH++) {
981 if ( !((*iRH).isValid()) )
continue;
982 cathodeTimes.push_back((*iRH).tpeak());
983 anodeTimes.push_back((*iRH).wireTime());
987 for (
unsigned int i=0;
i<cathodeTimes.size();
i++)
988 timeCathode+=cathodeTimes[
i]/cathodeTimes.size();
992 bool modified =
false;
993 std::vector<float>::iterator anodeMaxHit;
995 if (anodeTimes.size()==0)
continue;
1001 for (
unsigned int j=0; j<anodeTimes.size(); j++) timeAnode+=anodeTimes[j]/anodeTimes.size();
1004 for (
unsigned int j=0; j<anodeTimes.size(); j++) {
1005 if (fabs(anodeTimes[j]-timeAnode)>anodeMaxDiff) {
1006 anodeMaxHit=anodeTimes.begin()+j;
1007 anodeMaxDiff=fabs(anodeTimes[j]-timeAnode);
1012 if (anodeMaxDiff>26) {
1014 anodeTimes.erase(anodeMaxHit);
1019 if(cathodeTimes.size()+anodeTimes.size() >0 )
1020 timeCombined = (timeCathode*cathodeTimes.size() + timeAnode*anodeTimes.size())/(cathodeTimes.size()+anodeTimes.size());
1027 float globTheta = 0.;
1032 globX = globalPosition.
x();
1033 globY = globalPosition.
y();
1034 globZ = globalPosition.
z();
1035 globTOF =
sqrt(globX*globX+globY*globY+globZ*globZ);
1037 globTheta = globalDirection.
theta();
1038 globPhi = globalDirection.
phi();
1042 int tIndex = typeIndex(
id);
1043 hSnhitsAll->Fill(nhits);
1044 hSnhits[tIndex-1]->Fill(nhits);
1045 hSChiSqAll->Fill(nChi2);
1046 hSChiSq[tIndex-1]->Fill(nChi2);
1047 hSChiSqProbAll->Fill(chisqProb);
1048 hSChiSqProb[tIndex-1]->Fill(chisqProb);
1049 hSGlobalTheta->Fill(globTheta);
1050 hSGlobalPhi->Fill(globPhi);
1051 hSTimeDiff->Fill(timeAnode-timeCathode);
1052 hSTimeDiffByChamberType[tIndex-1]->Fill(timeAnode-timeCathode);
1053 hSTimeAnode->Fill(timeAnode);
1054 hSTimeAnodeByChamberType[tIndex-1]->Fill(timeAnode);
1055 hSTimeCathode->Fill(timeCathode);
1056 hSTimeCathodeByChamberType[tIndex-1]->Fill(timeCathode);
1057 hSTimeCombined->Fill(timeCombined);
1058 hSTimeCombinedByChamberType[tIndex-1]->Fill(timeCombined);
1059 hSTimeDiffSerial->Fill(chamberSerial(
id),timeAnode-timeCathode);
1060 hSTimeAnodeSerial->Fill(chamberSerial(
id),timeAnode);
1061 hSTimeCathodeSerial->Fill(chamberSerial(
id),timeCathode);
1062 hSTimeCombinedSerial->Fill(chamberSerial(
id),timeCombined);
1063 hSTimeVsZ->Fill(globZ, timeCombined);
1064 hSTimeVsTOF->Fill(globTOF, timeCombined);
1069 hSnSegments->Fill(nSegments);
1085 std::vector<CSCRecHit2D> theseRecHits = (*dSiter).specificRecHits();
1086 int nRH = (*dSiter).nRecHits();
1088 CLHEP::HepMatrix sp(6,1);
1089 CLHEP::HepMatrix se(6,1);
1090 for ( vector<CSCRecHit2D>::const_iterator iRH = theseRecHits.begin(); iRH != theseRecHits.end(); iRH++) {
1094 int kRing = idRH.
ring();
1095 int kStation = idRH.
station();
1100 int centerid = iRH->nStrips()/2 + 1;
1101 int centerStrip = iRH->channels(centerid - 1);
1105 float stpos = (*iRH).positionWithinStrip();
1106 se(kLayer,1) = (*iRH).errorWithinStrip();
1108 if (kStation == 1 && (kRing == 1 || kRing == 4)) sp(kLayer,1) = stpos + centerStrip;
1110 if (kLayer == 1 || kLayer == 3 || kLayer == 5) sp(kLayer,1) = stpos + centerStrip;
1111 if (kLayer == 2 || kLayer == 4 || kLayer == 6) sp(kLayer,1) = stpos - 0.5 + centerStrip;
1122 float expected = fitX(sp,se);
1123 float residual = expected - sp(3,1);
1125 hSResid[typeIndex(
id)-1]->Fill(residual);
1151 for (
int i=1;
i<7;
i++){
1155 Sy = Sy + (
points(
i,1)/sigma2);
1156 Sx = Sx + ((
i)/sigma2);
1157 Sxx = Sxx + (
i*
i)/sigma2;
1158 Sxy = Sxy + (((
i)*
points(
i,1))/sigma2);
1162 float delta = S*Sxx - Sx*Sx;
1163 float intercept = (Sxx*Sy - Sx*Sxy)/delta;
1164 float slope = (S*Sxy - Sx*Sy)/delta;
1166 return (intercept + slope*3);
1192 for (sIt = stripdigis.begin(); sIt != stripdigis.end(); sIt++){
1197 vector<CSCStripDigi>::const_iterator digiItr = (*sIt).second.first;
1198 vector<CSCStripDigi>::const_iterator
last = (*sIt).second.second;
1199 for ( ; digiItr !=
last; ++digiItr ) {
1200 int thisStrip = digiItr->getStrip();
1201 if (thisStrip == (centerStrip)){
1202 std::vector<int> myADCVals = digiItr->getADCCounts();
1203 float thisPedestal = 0.5*(
float)(myADCVals[0]+myADCVals[1]);
1204 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1205 SigADC[0] = thisSignal - 6*thisPedestal;
1208 if (thisStrip == (centerStrip+1)){
1209 std::vector<int> myADCVals = digiItr->getADCCounts();
1210 float thisPedestal = 0.5*(
float)(myADCVals[0]+myADCVals[1]);
1211 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1212 SigADC[1] = thisSignal - 6*thisPedestal;
1214 if (thisStrip == (centerStrip+2)){
1215 std::vector<int> myADCVals = digiItr->getADCCounts();
1216 float thisPedestal = 0.5*(
float)(myADCVals[0]+myADCVals[1]);
1217 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1218 SigADC[2] = thisSignal - 6*thisPedestal;
1220 if (thisStrip == (centerStrip-1)){
1221 std::vector<int> myADCVals = digiItr->getADCCounts();
1222 float thisPedestal = 0.5*(
float)(myADCVals[0]+myADCVals[1]);
1223 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1224 SigADC[3] = thisSignal - 6*thisPedestal;
1226 if (thisStrip == (centerStrip-2)){
1227 std::vector<int> myADCVals = digiItr->getADCCounts();
1228 float thisPedestal = 0.5*(
float)(myADCVals[0]+myADCVals[1]);
1229 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1230 SigADC[4] = thisSignal - 6*thisPedestal;
1233 TotalADC = 0.2*(SigADC[0]+SigADC[1]+SigADC[2]+SigADC[3]+SigADC[4]);
1250 bool allWires[2][4][4][36][6];
1251 bool allStrips[2][4][4][36][6];
1252 bool AllRecHits[2][4][4][36][6];
1253 bool AllSegments[2][4][4][36];
1256 for(
int iE = 0;iE<2;iE++){
1257 for(
int iS = 0;iS<4;iS++){
1258 for(
int iR = 0; iR<4;iR++){
1259 for(
int iC =0;iC<36;iC++){
1260 AllSegments[iE][iS][iR][iC] =
false;
1262 for(
int iL=0;iL<6;iL++){
1263 allWires[iE][iS][iR][iC][iL] =
false;
1264 allStrips[iE][iS][iR][iC][iL] =
false;
1265 AllRecHits[iE][iS][iR][iC][iL] =
false;
1276 std::vector<CSCWireDigi>::const_iterator wireIter = (*dWDiter).second.first;
1277 std::vector<CSCWireDigi>::const_iterator lWire = (*dWDiter).second.second;
1278 for( ; wireIter != lWire; ++wireIter) {
1287 std::vector<CSCStripDigi>::const_iterator stripIter = (*dSDiter).second.first;
1288 std::vector<CSCStripDigi>::const_iterator lStrip = (*dSDiter).second.second;
1289 for( ; stripIter != lStrip; ++stripIter) {
1290 std::vector<int> myADCVals = stripIter->getADCCounts();
1291 bool thisStripFired =
false;
1292 float thisPedestal = 0.5*(
float)(myADCVals[0]+myADCVals[1]);
1295 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
1296 diff = (
float)myADCVals[iCount]-thisPedestal;
1297 if (diff > threshold) {
1298 thisStripFired =
true;
1317 std::vector <uint> seg_ME2(2,0) ;
1318 std::vector <uint> seg_ME3(2,0) ;
1319 std::vector < pair <CSCDetId, CSCSegment> > theSegments(4);
1333 ++seg_ME2[idseg.
endcap() -1];
1334 seg_tmp = seg_ME2[idseg.
endcap() -1];
1337 ++seg_ME3[idseg.
endcap() -1];
1338 seg_tmp = seg_ME3[idseg.
endcap() -1];
1341 if(1== seg_tmp&& 6==(*segEffIt).nRecHits() && (*segEffIt).chi2()/(*segEffIt).degreesOfFreedom()<3.){
1342 pair <CSCDetId, CSCSegment> specSeg = make_pair( (
CSCDetId)(*segEffIt).cscDetId(),*segEffIt);
1343 theSegments[2*(idseg.
endcap()-1)+(idseg.
station() -2)] = specSeg;
1365 for(
int iE = 0;iE<2;iE++){
1366 for(
int iS = 0;iS<4;iS++){
1367 for(
int iR = 0; iR<4;iR++){
1368 for(
int iC =0;iC<36;iC++){
1369 int NumberOfLayers = 0;
1370 for(
int iL=0;iL<6;iL++){
1371 if(AllRecHits[iE][iS][iR][iC][iL]){
1376 if (iS==0) bin = iR+1+(iE*10);
1377 else bin = (iS+1)*2 + (iR+1) + (iE*10);
1378 if(NumberOfLayers>1){
1380 if(AllSegments[iE][iS][iR][iC]){
1388 if(AllSegments[iE][iS][iR][iC]){
1389 if(NumberOfLayers==6){
1402 std::vector < pair <CSCDetId, CSCSegment> * > theSeg;
1403 if(1==seg_ME2[0]) theSeg.push_back(&theSegments[0]);
1404 if(1==seg_ME3[0]) theSeg.push_back(&theSegments[1]);
1405 if(1==seg_ME2[1]) theSeg.push_back(&theSegments[2]);
1406 if(1==seg_ME3[1]) theSeg.push_back(&theSegments[3]);
1411 std::map <std::string, float> chamberTypes;
1412 chamberTypes[
"ME1/a"] = 0.5;
1413 chamberTypes[
"ME1/b"] = 1.5;
1414 chamberTypes[
"ME1/2"] = 2.5;
1415 chamberTypes[
"ME1/3"] = 3.5;
1416 chamberTypes[
"ME2/1"] = 4.5;
1417 chamberTypes[
"ME2/2"] = 5.5;
1418 chamberTypes[
"ME3/1"] = 6.5;
1419 chamberTypes[
"ME3/2"] = 7.5;
1420 chamberTypes[
"ME4/1"] = 8.5;
1421 chamberTypes[
"ME4/2"] = 9.5;
1424 std::map <int , GlobalPoint> extrapolatedPoint;
1425 std::map <int , GlobalPoint>::iterator it;
1428 for(
unsigned int nCh=0;nCh<ChamberContainer.size();nCh++){
1429 const CSCChamber *cscchamber = ChamberContainer[nCh];
1430 pair <CSCDetId, CSCSegment> * thisSegment = 0;
1431 for(uint iSeg =0;iSeg<theSeg.size();++iSeg ){
1432 if(cscchamber->
id().
endcap() == theSeg[iSeg]->first.endcap()){
1434 if(2==theSeg[iSeg]->
first.station()){
1435 thisSegment = theSeg[iSeg];
1439 if(3==theSeg[iSeg]->
first.station()){
1440 thisSegment = theSeg[iSeg];
1452 it = extrapolatedPoint.find(
int(cscchamberCenter.
z()));
1453 if(it==extrapolatedPoint.end()){
1456 double paramaterLine = lineParametrization(segPos.
z(),cscchamberCenter.
z() , segDir.
z());
1457 double xExtrapolated = extrapolate1D(segPos.
x(),segDir.
x(), paramaterLine);
1458 double yExtrapolated = extrapolate1D(segPos.
y(),segDir.
y(), paramaterLine);
1459 GlobalPoint globP (xExtrapolated, yExtrapolated, cscchamberCenter.
z());
1460 extrapolatedPoint[
int(cscchamberCenter.
z())] = globP;
1463 LocalPoint extrapolatedPointLocal = cscchamber->
toLocal(extrapolatedPoint[
int(cscchamberCenter.
z())]);
1466 const std::array<const float, 4> & layerBounds = layerGeom->
parameters ();
1467 float shiftFromEdge = 15.;
1468 float shiftFromDeadZone = 10.;
1470 bool pass = withinSensitiveRegion(extrapolatedPointLocal, layerBounds,
1472 shiftFromEdge, shiftFromDeadZone);
1480 for(
int iL =0;iL<6;++iL){
1481 if(AllRecHits[cscchamber->
id().
endcap()-1]
1489 if(cscchamberCenter.
z()<0){
1490 verticalScale = - verticalScale;
1492 verticalScale += 10.5;
1493 hSensitiveAreaEvt->Fill(
float(cscchamber->
id().
chamber()),verticalScale);
1499 hEffDenominator->Fill(
float(cscchamber->
id().
chamber()),verticalScale);
1501 if(AllSegments[cscchamber->
id().
endcap()-1]
1504 hSSTE2->Fill(
float(cscchamber->
id().
chamber()),
float(verticalScale));
1507 for(
int iL =0;iL<6;++iL){
1511 if(AllRecHits[cscchamber->
id().
endcap()-1]
1514 hRHSTE2->Fill(
float(cscchamber->
id().
chamber()),
float(verticalScale),
weight);
1517 if(allWires[cscchamber->
id().
endcap()-1]
1521 hWireSTE2->Fill(
float(cscchamber->
id().
chamber()),
float(verticalScale),
weight);
1524 if(allStrips[cscchamber->
id().
endcap()-1]
1528 hStripSTE2->Fill(
float(cscchamber->
id().
chamber()),
float(verticalScale),
weight);
1553 const CSCDetId& idALCT = (*j).first;
1557 if((*digiIt).isValid()){
1558 hALCTgetBX->Fill((*digiIt).getBX());
1559 hALCTgetBXSerial->Fill(chamberSerial(idALCT),(*digiIt).getBX());
1560 hALCTgetBX2DNumerator->Fill(idALCT.
chamber(),typeIndex(idALCT,2),(*digiIt).getBX());
1561 hALCTgetBX2Denominator->Fill(idALCT.
chamber(),typeIndex(idALCT,2));
1576 if ( !( event.
getByToken( rd_token, rawdata ) ) ){
1577 edm::LogWarning(
"CSCOfflineMonitor") <<
" FEDRawDataCollection not available";
1583 bool goodEvent =
false;
1584 unsigned long dccBinCheckMask = 0x06080016;
1585 unsigned int examinerMask = 0x1FEBF3F6;
1586 unsigned int errorMask = 0x0;
1590 std::vector<unsigned int> cscFEDids;
1595 cscFEDids.push_back(
id);
1601 cscFEDids.push_back(
id);
1604 for (
unsigned int i=0;
i<cscFEDids.size();
i++)
1606 unsigned int id = cscFEDids[
i];
1614 unsigned long length = fedData.
size();
1618 std::stringstream examiner_out, examiner_err;
1621 if( examinerMask&0x40000 ) examiner->
crcCFEB(1);
1622 if( examinerMask&0x8000 ) examiner->
crcTMB (1);
1623 if( examinerMask&0x0400 ) examiner->
crcALCT(1);
1624 examiner->
setMask(examinerMask);
1625 const short unsigned int *
data = (
short unsigned int *)fedData.
data();
1627 int res = examiner->
check(data,
long(fedData.
size()/2));
1632 goodEvent=!(examiner->
errors()&dccBinCheckMask);
1641 std::vector<CSCDDUEventData> fed_Data;
1642 std::vector<CSCDDUEventData>* ptr_fedData = &fed_Data;
1649 fed_Data.push_back(single_dduData);
1659 const std::vector<CSCDDUEventData> & dduData = *ptr_fedData;
1663 for (
unsigned int iDDU=0; iDDU<dduData.size(); ++iDDU) {
1666 if (dduData[iDDU].trailer().errorstat()&errorMask) {
1667 LogTrace(
"CSCDCCUnpacker|CSCRawToDigi") <<
"DDU# " << iDDU <<
" has serious error - no digis unpacked! " <<
1668 std::hex << dduData[iDDU].trailer().errorstat();
1673 const std::vector<CSCEventData> & cscData = dduData[iDDU].cscData();
1676 for (
unsigned int iCSC=0; iCSC<cscData.size(); ++iCSC) {
1679 int vmecrate = cscData[iCSC].dmbHeader()->crateID();
1680 int dmb = cscData[iCSC].dmbHeader()->dmbID();
1685 if ((vmecrate>=1)&&(vmecrate<=60) && (dmb>=1)&&(dmb<=10)&&(dmb!=6)) {
1686 layer = pcrate->
detId(vmecrate, dmb,icfeb,ilayer );
1689 LogTrace (
"CSCOfflineMonitor") <<
" detID input out of range!!! ";
1691 <<
" skipping chamber vme= " << vmecrate <<
" dmb= " << dmb;
1697 int nalct = cscData[iCSC].dmbHeader()->nalct();
1698 bool goodALCT=
false;
1700 if (nalct&&cscData[iCSC].alctHeader()) {
1701 if (cscData[iCSC].alctHeader()->
check()){
1707 int nclct = cscData[iCSC].dmbHeader()->nclct();
1709 if (nclct&&cscData[iCSC].tmbData()) {
1710 if (cscData[iCSC].tmbHeader()->
check()){
1711 if (cscData[iCSC].clctData()->
check()) goodTMB=
true;
1715 if (goodTMB && goodALCT) {
1716 const CSCTMBHeader *tmbHead = cscData[iCSC].tmbHeader();
1717 std::vector<CSCCLCTDigi> clcts = cscData[iCSC].tmbHeader()->CLCTDigis(layer.
rawId());
1718 if (clcts.size()==0 || !(clcts[0].isValid()))
1721 if(layer.
station()==1 && layer.
ring() ==1 && clcts[0].getKeyStrip()>128){
1725 hALCTMatchSerial->Fill(chamberSerial(layer),tmbHead->
ALCTMatchTime());
1730 hALCTMatch2Denominator->Fill(layer.
chamber(),typeIndex(layer,2));
1733 int TMB_CLCTpre_rel_L1A = tmbHead->
BXNCount()-clcts[0].getFullBX();
1734 if (TMB_CLCTpre_rel_L1A > 3563)
1735 TMB_CLCTpre_rel_L1A = TMB_CLCTpre_rel_L1A - 3564;
1736 if (TMB_CLCTpre_rel_L1A < 0)
1737 TMB_CLCTpre_rel_L1A = TMB_CLCTpre_rel_L1A + 3564;
1739 hCLCTL1A->Fill(TMB_CLCTpre_rel_L1A);
1740 hCLCTL1ASerial->Fill(chamberSerial(layer),TMB_CLCTpre_rel_L1A);
1741 hCLCTL1A2DNumerator->Fill(layer.
chamber(),typeIndex(layer,2),TMB_CLCTpre_rel_L1A);
1742 hCLCTL1A2Denominator->Fill(layer.
chamber(),typeIndex(layer,2));
1748 if (examiner!=
NULL)
delete examiner;
1757 int station,
int ring,
float shiftFromEdge,
float shiftFromDeadZone){
1761 float y_center = 0.;
1762 double yUp = layerBounds[3] + y_center;
1763 double yDown = - layerBounds[3] + y_center;
1764 double xBound1Shifted = layerBounds[0] - shiftFromEdge;
1765 double xBound2Shifted = layerBounds[1] - shiftFromEdge;
1766 double lineSlope = (yUp - yDown)/(xBound2Shifted-xBound1Shifted);
1767 double lineConst = yUp - lineSlope*xBound2Shifted;
1768 double yBorder = lineSlope*
abs(localPos.
x()) + lineConst;
1771 std::vector <float> deadZoneCenter(6);
1772 float cutZone = shiftFromDeadZone;
1774 if(station>1 && station<5){
1776 deadZoneCenter[0]= -162.48 ;
1777 deadZoneCenter[1] = -81.8744;
1778 deadZoneCenter[2] = -21.18165;
1779 deadZoneCenter[3] = 39.51105;
1780 deadZoneCenter[4] = 100.2939;
1781 deadZoneCenter[5] = 160.58;
1783 if(localPos.
y() >yBorder &&
1784 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1785 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1786 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone) ||
1787 (localPos.
y()> deadZoneCenter[3] + cutZone && localPos.
y()< deadZoneCenter[4] - cutZone) ||
1788 (localPos.
y()> deadZoneCenter[4] + cutZone && localPos.
y()< deadZoneCenter[5] - cutZone))){
1794 deadZoneCenter[0]= -95.80 ;
1795 deadZoneCenter[1] = -27.47;
1796 deadZoneCenter[2] = 33.67;
1797 deadZoneCenter[3] = 90.85;
1799 else if(3==station){
1800 deadZoneCenter[0]= -89.305 ;
1801 deadZoneCenter[1] = -39.705;
1802 deadZoneCenter[2] = 20.195;
1803 deadZoneCenter[3] = 77.395;
1805 else if(4==station){
1806 deadZoneCenter[0]= -75.645;
1807 deadZoneCenter[1] = -26.055;
1808 deadZoneCenter[2] = 23.855;
1809 deadZoneCenter[3] = 70.575;
1811 if(localPos.
y() >yBorder &&
1812 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1813 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1814 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone))){
1819 else if(1==station){
1821 deadZoneCenter[0]= -83.155 ;
1822 deadZoneCenter[1] = -22.7401;
1823 deadZoneCenter[2] = 27.86665;
1824 deadZoneCenter[3] = 81.005;
1825 if(localPos.
y() > yBorder &&
1826 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1827 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1828 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone))){
1833 deadZoneCenter[0]= -86.285 ;
1834 deadZoneCenter[1] = -32.88305;
1835 deadZoneCenter[2] = 32.867423;
1836 deadZoneCenter[3] = 88.205;
1837 if(localPos.
y() > (yBorder) &&
1838 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1839 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1840 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone))){
1845 deadZoneCenter[0]= -81.0;
1846 deadZoneCenter[1] = 81.0;
1847 if(localPos.
y() > (yBorder) &&
1848 (localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone )){
1863 if (
id.
station() == 1) index =
id.ring();
1864 else index =
id.station()*2 +
id.ring();
1865 if (
id.
endcap() == 1) index = index + 10;
1870 else if (flag == 2){
1872 if (
id.
station() == 1 &&
id.
ring() != 4) index =
id.ring()+1;
1873 if (
id.
station() == 1 &&
id.
ring() == 4) index = 1;
1874 if (
id.
station() != 1) index =
id.station()*2 +
id.ring();
1875 if (
id.
endcap() == 1) index = index + 10;
1885 int st =
id.station();
1887 int ch =
id.chamber();
1888 int ec =
id.endcap();
1890 if (st == 1 && ri == 1) kSerial = ch;
1891 if (st == 1 && ri == 2) kSerial = ch + 36;
1892 if (st == 1 && ri == 3) kSerial = ch + 72;
1893 if (st == 1 && ri == 4) kSerial = ch;
1894 if (st == 2 && ri == 1) kSerial = ch + 108;
1895 if (st == 2 && ri == 2) kSerial = ch + 126;
1896 if (st == 3 && ri == 1) kSerial = ch + 162;
1897 if (st == 3 && ri == 2) kSerial = ch + 180;
1898 if (st == 4 && ri == 1) kSerial = ch + 216;
1899 if (st == 4 && ri == 2) kSerial = ch + 234;
1900 if (ec == 2) kSerial = kSerial + 300;
1931 else if (t ==
SMALL)
T getParameter(std::string const &) const
void crcCFEB(bool enable)
int chamberSerial(CSCDetId id)
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
virtual const std::array< const float, 4 > parameters() const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
CSCDetId id() const
Get the (concrete) DetId.
void doResolution(edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom)
#define DEFINE_FWK_MODULE(type)
static const double slope[3]
CSCDetId detId(int vme, int dmb, int cfeb, int layer=0) const
GlobalPoint toGlobal(const Local2DPoint &lp) const
Conversion to the global R.F. from the R.F. of the GeomDet.
Geom::Phi< T > phi() const
const std::vector< CSCDDUEventData > & dduData() const
accessor to dduData
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)
LocalPoint toLocal(const GlobalPoint &gp) const
Conversion to the R.F. of the GeomDet.
float getSignal(const CSCStripDigiCollection &stripdigis, CSCDetId idRH, int centerStrip)
const ChamberContainer & chambers() const
Return a vector of all chambers.
ExaminerStatusType errors(void) const
void crcALCT(bool enable)
void analyze(const edm::Event &event, const edm::EventSetup &eventSetup) override
size_t size() const
Lenght of the data buffer in bytes.
Geom::Theta< T > theta() const
CSCOfflineMonitor(const edm::ParameterSet &pset)
std::string chamberTypeName() const
uint32_t rawId() const
get the raw id
LocalPoint localPosition() const
LocalVector localDirection() const
Local direction.
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
const CSCChamberSpecs * specs() const
int typeIndex(CSCDetId id, int flag=1)
float fitX(const CLHEP::HepMatrix &sp, const CLHEP::HepMatrix &ep)
MonitorElement * book1D(Args &&...args)
Abs< T >::type abs(const T &t)
const CSCLayer * layer(CSCDetId id) const
Return the layer corresponding to the given id.
float ChiSquaredProbability(double chiSquared, double nrDOF)
static const std::string kLayer("layer")
static const double SMALL
bin
set the eta bin as selection string.
bool gangedStrips() const
void doSegments(edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom)
void setCurrentFolder(const std::string &fullpath)
void doWireDigis(edm::Handle< CSCWireDigiCollection > wires)
MonitorElement * book2D(Args &&...args)
const CSCChamber * chamber(CSCDetId id) const
Return the chamber corresponding to given DetId.
std::vector< CSCCLCTDigi >::const_iterator const_iterator
double S(const TLorentzVector &, const TLorentzVector &)
bool withinSensitiveRegion(LocalPoint localPos, const std::array< const float, 4 > &layerBounds, int station, int ring, float shiftFromEdge, float shiftFromDeadZone)
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)
std::vector< const CSCChamber * > ChamberContainer
char data[epos_bytes_allocation]
const CSCLayer * layer(CSCDetId id) const
Return the layer corresponding to given DetId.
void doStripDigis(edm::Handle< CSCStripDigiCollection > strips)
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
void doPedestalNoise(edm::Handle< CSCStripDigiCollection > strips, edm::ESHandle< CSCGeometry > cscGeom)
std::pair< const_iterator, const_iterator > Range
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)
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
T const * product() const
const CSCLayerGeometry * geometry() const
void setMask(ExaminerMaskType mask)
void doRecHits(edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCStripDigiCollection > strips, edm::ESHandle< CSCGeometry > cscGeom)
void applyCSClabels(MonitorElement *meHisto, LabelType t, AxisType a)