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",100,-0.5,99.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)",200,-0.5,199.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",100,-0.50,99.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",21,-0.5,20.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);
351 hSTimeCathode = ibooker.
book1D(
"hSTimeCathode",
"Cathode Only Segment Time [ns]",200,-200,200);
352 hSTimeCombined = ibooker.
book1D(
"hSTimeCombined",
"Segment Time (anode+cathode times) [ns]",200,-200,200);
353 hSTimeVsZ = ibooker.
book2D(
"hSTimeVsZ",
"Segment Time vs. Z; [ns] vs. [cm]",200,-1200,1200,200,-200,200);
354 hSTimeVsTOF = ibooker.
book2D(
"hSTimeVsTOF",
"Segment Time vs. Distance from IP; [ns] vs. [cm]",180,500,1400, 200,-200,200);
359 hSResid.push_back(ibooker.
book1D(
"hSResidm42",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -4/2); Strip Widths",100,-0.5,0.5));
360 hSResid.push_back(ibooker.
book1D(
"hSResidm41",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -4/1); Strip Widths",100,-0.5,0.5));
361 hSResid.push_back(ibooker.
book1D(
"hSResidm32",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -3/2); Strip Widths",100,-0.5,0.5));
362 hSResid.push_back(ibooker.
book1D(
"hSResidm31",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -3/1); Strip Widths",100,-0.5,0.5));
363 hSResid.push_back(ibooker.
book1D(
"hSResidm22",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -2/2); Strip Widths",100,-0.5,0.5));
364 hSResid.push_back(ibooker.
book1D(
"hSResidm21",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -2/1); Strip Widths",100,-0.5,0.5));
365 hSResid.push_back(ibooker.
book1D(
"hSResidm11a",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/1a); Strip Widths",100,-0.5,0.5));
366 hSResid.push_back(ibooker.
book1D(
"hSResidm13",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/3); Strip Widths",100,-0.5,0.5));
367 hSResid.push_back(ibooker.
book1D(
"hSResidm12",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/2); Strip Widths",100,-0.5,0.5));
368 hSResid.push_back(ibooker.
book1D(
"hSResidm11b",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/1b); Strip Widths",100,-0.5,0.5));
369 hSResid.push_back(ibooker.
book1D(
"hSResidp11b",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/1b); Strip Widths",100,-0.5,0.5));
370 hSResid.push_back(ibooker.
book1D(
"hSResidp12",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/2); Strip Widths",100,-0.5,0.5));
371 hSResid.push_back(ibooker.
book1D(
"hSResidp13",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/3); Strip Widths",100,-0.5,0.5));
372 hSResid.push_back(ibooker.
book1D(
"hSResidp11a",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/1a); Strip Widths",100,-0.5,0.5));
373 hSResid.push_back(ibooker.
book1D(
"hSResidp21",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +2/1); Strip Widths",100,-0.5,0.5));
374 hSResid.push_back(ibooker.
book1D(
"hSResidp22",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +2/2); Strip Widths",100,-0.5,0.5));
375 hSResid.push_back(ibooker.
book1D(
"hSResidp31",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +3/1); Strip Widths",100,-0.5,0.5));
376 hSResid.push_back(ibooker.
book1D(
"hSResidp32",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +3/2); Strip Widths",100,-0.5,0.5));
377 hSResid.push_back(ibooker.
book1D(
"hSResidp41",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +4/1); Strip Widths",100,-0.5,0.5));
378 hSResid.push_back(ibooker.
book1D(
"hSResidp42",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +4/2); Strip Widths",100,-0.5,0.5));
385 hSnum = ibooker.
book1D(
"hSnum",
"CSC w rechits in 2+ layers && segment(s)", 20, 0.5, 20.5);
386 hSden = ibooker.
book1D(
"hSden",
"CSC w rechits in 2+ layers", 20, 0.5, 20.5);
387 hRHnum = ibooker.
book1D(
"hRHnum",
"CSC w segment(s) && rechits in 6 layers", 20, 0.5, 20.5);
388 hRHden = ibooker.
book1D(
"hRHden",
"CSC w segment(s)", 20, 0.5, 20.5);
389 applyCSClabels(hSnum, EXTENDED,
X);
390 applyCSClabels(hSden, EXTENDED,
X);
391 applyCSClabels(hRHnum, EXTENDED,
X);
392 applyCSClabels(hRHden, EXTENDED,
X);
396 hSSTE2 = ibooker.
book2D(
"hSSTE2",
"hSSTE2",36,0.5,36.5, 20, 0.5, 20.5);
397 hRHSTE2 = ibooker.
book2D(
"hRHSTE2",
"hRHSTE2",36,0.5,36.5, 20, 0.5, 20.5);
398 hStripSTE2 = ibooker.
book2D(
"hStripSTE2",
"hStripSTE2",36,0.5,36.5, 20, 0.5, 20.5);
399 hWireSTE2 = ibooker.
book2D(
"hWireSTE2",
"hWireSTE2",36,0.5,36.5, 20, 0.5, 20.5);
400 hEffDenominator = ibooker.
book2D(
"hEffDenominator",
"hEffDenominator",36,0.5,36.5, 20, 0.5, 20.5);
407 hSensitiveAreaEvt = ibooker.
book2D(
"hSensitiveAreaEvt",
"Events Passing Selection for Efficiency",36,0.5,36.5, 20, 0.5, 20.5);
412 hALCTgetBX = ibooker.
book1D(
"hALCTgetBX",
"ALCT position in ALCT-L1A match window [BX]",7,-0.5,6.5);
414 hALCTgetBXSerial = ibooker.
book2D(
"hALCTgetBXSerial",
"ALCT position in ALCT-L1A match window [BX]",601,-0.5,600.5,7,-0.5,6.5);
415 hALCTgetBXSerial->
setAxisTitle(
"Chamber Serial Number");
416 hALCTgetBX2DNumerator = ibooker.
book2D(
"hALCTgetBX2DNumerator",
"ALCT position in ALCT-L1A match window [BX] (sum)",36,0.5,36.5,20,0.5,20.5);
418 hALCTgetBX2Denominator = ibooker.
book2D(
"hALCTgetBX2Denominator",
"Number of ALCT Digis checked",36,0.5,36.5,20,0.5,20.5);
421 hALCTMatch = ibooker.
book1D(
"hALCTMatch",
"ALCT position in ALCT-CLCT match window [BX]",7,-0.5,6.5);
423 hALCTMatchSerial = ibooker.
book2D(
"hALCTMatchSerial",
"ALCT position in ALCT-CLCT match window [BX]",601,-0.5,600.5,7,-0.5,6.5);
424 hALCTMatchSerial->
setAxisTitle(
"Chamber Serial Number");
425 hALCTMatch2DNumerator = ibooker.
book2D(
"hALCTMatch2DNumerator",
"ALCT position in ALCT-CLCT match window [BX] (sum)",36,0.5,36.5,20,0.5,20.5);
427 hALCTMatch2Denominator = ibooker.
book2D(
"hALCTMatch2Denominator",
"Number of ALCT-CLCT matches checked",36,0.5,36.5,20,0.5,20.5);
430 hCLCTL1A = ibooker.
book1D(
"hCLCTL1A",
"L1A - CLCTpreTrigger at TMB [BX]",10,149.5,159.5);
432 hCLCTL1ASerial = ibooker.
book2D(
"hCLCTL1ASerial",
"L1A - CLCTpreTrigger at TMB [BX]",601,-0.5,600.5,10,149.5,159.5);
434 hCLCTL1A2DNumerator = ibooker.
book2D(
"hCLCTL1A2DNumerator",
"L1A - CLCTpreTrigger at TMB [BX] (sum)",36,0.5,36.5,20,0.5,20.5);
436 hCLCTL1A2Denominator = ibooker.
book2D(
"hCLCTL1A2Denominator",
"Number of TMB CLCTs checked",36,0.5,36.5,20,0.5,20.5);
440 applyCSClabels(hOWiresAndCLCT, EXTENDED, Y);
441 applyCSClabels(hOWires, EXTENDED, Y);
442 applyCSClabels(hOStrips, EXTENDED, Y);
443 applyCSClabels(hOStripsAndWiresAndCLCT, EXTENDED, Y);
444 applyCSClabels(hORecHits, EXTENDED, Y);
445 applyCSClabels(hOSegments, EXTENDED, Y);
449 applyCSClabels(hSSTE2, EXTENDED, Y);
450 applyCSClabels(hEffDenominator, EXTENDED, Y);
452 applyCSClabels(hRHSTE2, EXTENDED, Y);
455 applyCSClabels(hStripSTE2, EXTENDED, Y);
457 applyCSClabels(hWireSTE2, EXTENDED, Y);
458 applyCSClabels(hSensitiveAreaEvt, EXTENDED, Y);
460 applyCSClabels(hALCTgetBX2Denominator, EXTENDED, Y);
462 applyCSClabels(hALCTMatch2Denominator, EXTENDED, Y);
464 applyCSClabels(hCLCTL1A2Denominator,EXTENDED, Y);
476 event.getByToken( sd_token, strips );
477 event.getByToken( wd_token, wires );
478 event.getByToken( al_token, alcts );
479 event.getByToken( cl_token, clcts );
487 event.getByToken( rh_token, recHits );
491 event.getByToken( se_token, cscSegments );
493 doOccupancies(strips,wires,recHits,cscSegments,clcts);
494 doStripDigis(strips);
496 doRecHits(recHits,strips,cscGeom);
497 doSegments(cscSegments,cscGeom);
498 doResolution(cscSegments,cscGeom);
499 doPedestalNoise(strips, cscGeom);
500 doEfficiencies(wires,strips, recHits, cscSegments,cscGeom);
501 doBXMonitor(alcts, clcts, event, eventSetup);
514 bool clcto[2][4][4][36];
515 bool wireo[2][4][4][36];
516 bool stripo[2][4][4][36];
517 bool rechito[2][4][4][36];
518 bool segmento[2][4][4][36];
520 bool hasWires =
false;
521 bool hasStrips =
false;
522 bool hasRecHits =
false;
523 bool hasSegments =
false;
525 for (
int e = 0;
e < 2;
e++){
526 for (
int s = 0;
s < 4;
s++){
527 for (
int r = 0;
r < 4;
r++){
528 for (
int c = 0;
c < 36;
c++){
529 clcto[
e][
s][
r][
c] =
false;
530 wireo[
e][
s][
r][
c] =
false;
531 stripo[
e][
s][
r][
c] =
false;
532 rechito[
e][
s][
r][
c] =
false;
533 segmento[
e][
s][
r][
c] =
false;
542 int kEndcap =
id.
endcap();
543 int kRing =
id.ring();
544 int kStation =
id.station();
545 int kChamber =
id.chamber();
549 if((*digiIt).isValid()){
551 if( kStation ==1 && kRing==1 && (*digiIt).getKeyStrip()>128)
553 clcto[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
561 int kEndcap =
id.
endcap();
562 int kRing =
id.ring();
563 int kStation =
id.station();
564 int kChamber =
id.chamber();
565 std::vector<CSCWireDigi>::const_iterator wireIt = (*wi).second.first;
566 std::vector<CSCWireDigi>::const_iterator lastWire = (*wi).second.second;
567 for( ; wireIt != lastWire; ++wireIt){
568 if (!wireo[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
569 wireo[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
570 hOWires->Fill(kChamber,typeIndex(
id,2));
571 hOWireSerial->Fill(chamberSerial(
id));
573 if( clcto[kEndcap-1][kStation-1][kRing-1][kChamber-1])
574 hOWiresAndCLCT->Fill(kChamber,typeIndex(
id,2));
576 if (kStation==1 && kRing==1 && clcto[kEndcap-1][kStation-1][3][kChamber-1]){
578 hOWiresAndCLCT->Fill(kChamber,typeIndex(idME11a,2));
587 int kEndcap =
id.
endcap();
588 int kRing =
id.ring();
589 int kStation =
id.station();
590 int kChamber =
id.chamber();
591 std::vector<CSCStripDigi>::const_iterator stripIt = (*si).second.first;
592 std::vector<CSCStripDigi>::const_iterator lastStrip = (*si).second.second;
593 for( ; stripIt != lastStrip; ++stripIt) {
594 std::vector<int> myADCVals = stripIt->getADCCounts();
595 bool thisStripFired =
false;
596 float thisPedestal = 0.5*(float)(myADCVals[0]+myADCVals[1]);
599 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
600 diff = (float)myADCVals[iCount]-thisPedestal;
601 if (diff > threshold) { thisStripFired =
true; }
603 if (thisStripFired) {
604 if (!stripo[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
605 stripo[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
606 hOStrips->Fill(kChamber,typeIndex(
id,2));
607 hOStripSerial->Fill(chamberSerial(
id));
609 if (clcto[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
612 if(wireo[kEndcap-1][kStation-1][kRing-1][kChamber-1] || (kRing==4 && wireo[kEndcap-1][kStation-1][0][kChamber-1]) ){
613 hOStripsAndWiresAndCLCT->Fill(kChamber,typeIndex(
id,2));
623 for (recIt = recHits->begin(); recIt != recHits->end(); recIt++) {
625 int kEndcap = idrec.
endcap();
626 int kRing = idrec.
ring();
627 int kStation = idrec.
station();
628 int kChamber = idrec.
chamber();
629 if (!rechito[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
630 rechito[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
631 hORecHitsSerial->Fill(chamberSerial(idrec));
632 hORecHits->Fill(kChamber,typeIndex(idrec,2));
640 int kEndcap =
id.
endcap();
641 int kRing =
id.ring();
642 int kStation =
id.station();
643 int kChamber =
id.chamber();
644 if (!segmento[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
645 segmento[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
646 hOSegmentsSerial->Fill(chamberSerial(
id));
647 hOSegments->Fill(kChamber,typeIndex(
id,2));
653 hCSCOccupancy->Fill(1);
654 if (hasWires) hCSCOccupancy->Fill(3);
655 if (hasStrips) hCSCOccupancy->Fill(5);
656 if (hasWires && hasStrips) hCSCOccupancy->Fill(7);
657 if (hasRecHits) hCSCOccupancy->Fill(9);
658 if (hasSegments) hCSCOccupancy->Fill(11);
672 int nWireGroupsTotal = 0;
675 std::vector<CSCWireDigi>::const_iterator wireIter = (*dWDiter).second.first;
676 std::vector<CSCWireDigi>::const_iterator lWire = (*dWDiter).second.second;
677 for( ; wireIter != lWire; ++wireIter) {
678 int myWire = wireIter->getWireGroup();
679 int myTBin = wireIter->getTimeBin();
681 hWireTBin[typeIndex(
id)-1]->Fill(myTBin);
682 hWireNumber[typeIndex(
id)-1]->Fill(myWire);
689 hWirenGroupsTotal->Fill(nWireGroupsTotal);
702 int nStripsFired = 0;
705 std::vector<CSCStripDigi>::const_iterator stripIter = (*dSDiter).second.first;
706 std::vector<CSCStripDigi>::const_iterator lStrip = (*dSDiter).second.second;
707 for( ; stripIter != lStrip; ++stripIter) {
708 int myStrip = stripIter->getStrip();
709 std::vector<int> myADCVals = stripIter->getADCCounts();
710 bool thisStripFired =
false;
711 float thisPedestal = 0.5*(float)(myADCVals[0]+myADCVals[1]);
714 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
715 diff = (float)myADCVals[iCount]-thisPedestal;
716 if (diff > threshold) { thisStripFired =
true; }
718 if (thisStripFired) {
720 hStripNumber[typeIndex(
id)-1]->Fill(myStrip);
729 hStripNFired->Fill(nStripsFired);
747 int kRing =
id.ring();
748 std::vector<CSCStripDigi>::const_iterator pedIt = (*dPNiter).second.first;
749 std::vector<CSCStripDigi>::const_iterator lStrip = (*dPNiter).second.second;
750 for( ; pedIt != lStrip; ++pedIt) {
751 int myStrip = pedIt->getStrip();
752 std::vector<int> myADCVals = pedIt->getADCCounts();
753 float TotalADC = getSignal(*strips,
id, myStrip);
754 bool thisStripFired =
false;
755 float thisPedestal = 0.5*(float)(myADCVals[0]+myADCVals[1]);
756 float thisSignal = (1./6)*(myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
761 if( (kStation == 1 && kRing == 4) && cscGeom->gangedStrips() )
764 if(myStrip <= 16) myStrip += 64;
767 if (TotalADC > threshold) { thisStripFired =
true;}
768 if (!thisStripFired){
769 float ADC = thisSignal - thisPedestal;
770 hStripPed[typeIndex(
id)-1]->Fill(ADC);
789 int nRecHits = recHits->size();
796 for (dRHIter = recHits->begin(); dRHIter != recHits->end(); dRHIter++) {
802 LocalPoint rhitlocal = (*dRHIter).localPosition();
807 float stpos = (*dRHIter).positionWithinStrip();
808 float sterr = (*dRHIter).errorWithinStrip();
812 int adcsize = dRHIter->nStrips()*dRHIter->nTimeBins();
815 for (
unsigned int i = 0;
i < dRHIter->nStrips();
i++){
816 for (
unsigned int j=0;
j<dRHIter->nTimeBins()-1;
j++) {
817 rHSumQ+=dRHIter->adcs(
i,
j);
818 if (
i != 1 ) sumsides += dRHIter->adcs(
i,
j);
822 float rHratioQ = sumsides/rHSumQ;
823 if (adcsize != 12) rHratioQ = -99;
826 float rHtime = (*dRHIter).tpeak();
827 float rHtimeAnode = (*dRHIter).wireTime();
830 const CSCLayer* csclayer = cscGeom->layer( idrec );
834 float grecx = rhitglobal.
x();
835 float grecy = rhitglobal.
y();
839 int tIndex = typeIndex(idrec);
840 hRHSumQ[tIndex-1]->Fill(rHSumQ);
841 hRHRatioQ[tIndex-1]->Fill(rHratioQ);
842 hRHstpos[tIndex-1]->Fill(stpos);
843 hRHsterr[tIndex-1]->Fill(sterr);
844 hRHTiming[tIndex-1]->Fill(rHtime);
845 hRHTimingAnode[tIndex-1]->Fill(rHtimeAnode);
846 hRHGlobal[sIndex-1]->Fill(grecx,grecy);
851 hRHnrechits->Fill(nRecHits);
866 int nSegments = cscSegments->size();
870 float chisq = (*dSiter).chi2();
871 int nhits = (*dSiter).nRecHits();
872 int nDOF = 2*nhits-4;
873 float nChi2 = chisq/nDOF;
875 LocalPoint localPos = (*dSiter).localPosition();
879 float timeCathode = 0;
881 float timeCombined = 0;
882 std::vector<float> cathodeTimes;
883 std::vector<float> anodeTimes;
885 std::vector<CSCRecHit2D> theseRecHits = (*dSiter).specificRecHits();
886 for ( vector<CSCRecHit2D>::const_iterator iRH = theseRecHits.begin(); iRH != theseRecHits.end(); iRH++) {
887 if ( !((*iRH).isValid()) )
continue;
888 cathodeTimes.push_back((*iRH).tpeak());
889 anodeTimes.push_back((*iRH).wireTime());
893 for (
unsigned int i=0;
i<cathodeTimes.size();
i++)
894 timeCathode+=cathodeTimes[
i]/cathodeTimes.size();
898 bool modified =
false;
899 std::vector<float>::iterator anodeMaxHit;
901 if (anodeTimes.size()==0)
continue;
907 for (
unsigned int j=0;
j<anodeTimes.size();
j++) timeAnode+=anodeTimes[
j]/anodeTimes.size();
910 for (
unsigned int j=0;
j<anodeTimes.size();
j++) {
911 if (fabs(anodeTimes[
j]-timeAnode)>anodeMaxDiff) {
912 anodeMaxHit=anodeTimes.begin()+
j;
913 anodeMaxDiff=fabs(anodeTimes[
j]-timeAnode);
918 if (anodeMaxDiff>26) {
920 anodeTimes.erase(anodeMaxHit);
925 if(cathodeTimes.size()+anodeTimes.size() >0 )
926 timeCombined = (timeCathode*cathodeTimes.size() + timeAnode*anodeTimes.size())/(cathodeTimes.size()+anodeTimes.size());
933 float globTheta = 0.;
935 const CSCChamber* cscchamber = cscGeom->chamber(
id);
938 globX = globalPosition.
x();
939 globY = globalPosition.
y();
940 globZ = globalPosition.
z();
941 globTOF =
sqrt(globX*globX+globY*globY+globZ*globZ);
943 globTheta = globalDirection.
theta();
944 globPhi = globalDirection.
phi();
948 int tIndex = typeIndex(
id);
949 hSnhitsAll->Fill(nhits);
950 hSnhits[tIndex-1]->Fill(nhits);
951 hSChiSqAll->Fill(nChi2);
952 hSChiSq[tIndex-1]->Fill(nChi2);
953 hSChiSqProbAll->Fill(chisqProb);
954 hSChiSqProb[tIndex-1]->Fill(chisqProb);
955 hSGlobalTheta->Fill(globTheta);
956 hSGlobalPhi->Fill(globPhi);
957 hSTimeCathode->Fill(timeCathode);
958 hSTimeCombined->Fill(timeCombined);
959 hSTimeVsZ->Fill(globZ, timeCombined);
960 hSTimeVsTOF->Fill(globTOF, timeCombined);
965 hSnSegments->Fill(nSegments);
981 std::vector<CSCRecHit2D> theseRecHits = (*dSiter).specificRecHits();
982 int nRH = (*dSiter).nRecHits();
984 CLHEP::HepMatrix sp(6,1);
985 CLHEP::HepMatrix se(6,1);
986 for ( vector<CSCRecHit2D>::const_iterator iRH = theseRecHits.begin(); iRH != theseRecHits.end(); iRH++) {
990 int kRing = idRH.
ring();
996 int centerid = iRH->nStrips()/2 + 1;
997 int centerStrip = iRH->channels(centerid - 1);
1001 float stpos = (*iRH).positionWithinStrip();
1002 se(kLayer,1) = (*iRH).errorWithinStrip();
1004 if (kStation == 1 && (kRing == 1 || kRing == 4)) sp(kLayer,1) = stpos + centerStrip;
1006 if (kLayer == 1 || kLayer == 3 || kLayer == 5) sp(kLayer,1) = stpos + centerStrip;
1007 if (kLayer == 2 || kLayer == 4 || kLayer == 6) sp(kLayer,1) = stpos - 0.5 + centerStrip;
1018 float expected = fitX(sp,se);
1019 float residual = expected - sp(3,1);
1021 hSResid[typeIndex(
id)-1]->Fill(residual);
1047 for (
int i=1;
i<7;
i++){
1051 Sy = Sy + (points(
i,1)/sigma2);
1052 Sx = Sx + ((
i)/sigma2);
1053 Sxx = Sxx + (
i*
i)/sigma2;
1054 Sxy = Sxy + (((
i)*points(
i,1))/sigma2);
1058 float delta = S*Sxx - Sx*Sx;
1059 float intercept = (Sxx*Sy - Sx*Sxy)/delta;
1060 float slope = (S*Sxy - Sx*Sy)/delta;
1062 return (intercept + slope*3);
1088 for (sIt = stripdigis.begin(); sIt != stripdigis.end(); sIt++){
1093 vector<CSCStripDigi>::const_iterator digiItr = (*sIt).second.first;
1094 vector<CSCStripDigi>::const_iterator
last = (*sIt).second.second;
1095 for ( ; digiItr !=
last; ++digiItr ) {
1096 int thisStrip = digiItr->getStrip();
1097 if (thisStrip == (centerStrip)){
1098 std::vector<int> myADCVals = digiItr->getADCCounts();
1099 float thisPedestal = 0.5*(float)(myADCVals[0]+myADCVals[1]);
1100 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1101 SigADC[0] = thisSignal - 6*thisPedestal;
1104 if (thisStrip == (centerStrip+1)){
1105 std::vector<int> myADCVals = digiItr->getADCCounts();
1106 float thisPedestal = 0.5*(float)(myADCVals[0]+myADCVals[1]);
1107 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1108 SigADC[1] = thisSignal - 6*thisPedestal;
1110 if (thisStrip == (centerStrip+2)){
1111 std::vector<int> myADCVals = digiItr->getADCCounts();
1112 float thisPedestal = 0.5*(float)(myADCVals[0]+myADCVals[1]);
1113 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1114 SigADC[2] = thisSignal - 6*thisPedestal;
1116 if (thisStrip == (centerStrip-1)){
1117 std::vector<int> myADCVals = digiItr->getADCCounts();
1118 float thisPedestal = 0.5*(float)(myADCVals[0]+myADCVals[1]);
1119 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1120 SigADC[3] = thisSignal - 6*thisPedestal;
1122 if (thisStrip == (centerStrip-2)){
1123 std::vector<int> myADCVals = digiItr->getADCCounts();
1124 float thisPedestal = 0.5*(float)(myADCVals[0]+myADCVals[1]);
1125 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1126 SigADC[4] = thisSignal - 6*thisPedestal;
1129 TotalADC = 0.2*(SigADC[0]+SigADC[1]+SigADC[2]+SigADC[3]+SigADC[4]);
1146 bool allWires[2][4][4][36][6];
1147 bool allStrips[2][4][4][36][6];
1148 bool AllRecHits[2][4][4][36][6];
1149 bool AllSegments[2][4][4][36];
1152 for(
int iE = 0;iE<2;iE++){
1153 for(
int iS = 0;iS<4;iS++){
1154 for(
int iR = 0; iR<4;iR++){
1155 for(
int iC =0;iC<36;iC++){
1156 AllSegments[iE][iS][iR][iC] =
false;
1158 for(
int iL=0;iL<6;iL++){
1159 allWires[iE][iS][iR][iC][iL] =
false;
1160 allStrips[iE][iS][iR][iC][iL] =
false;
1161 AllRecHits[iE][iS][iR][iC][iL] =
false;
1172 std::vector<CSCWireDigi>::const_iterator wireIter = (*dWDiter).second.first;
1173 std::vector<CSCWireDigi>::const_iterator lWire = (*dWDiter).second.second;
1174 for( ; wireIter != lWire; ++wireIter) {
1183 std::vector<CSCStripDigi>::const_iterator stripIter = (*dSDiter).second.first;
1184 std::vector<CSCStripDigi>::const_iterator lStrip = (*dSDiter).second.second;
1185 for( ; stripIter != lStrip; ++stripIter) {
1186 std::vector<int> myADCVals = stripIter->getADCCounts();
1187 bool thisStripFired =
false;
1188 float thisPedestal = 0.5*(float)(myADCVals[0]+myADCVals[1]);
1191 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
1192 diff = (float)myADCVals[iCount]-thisPedestal;
1193 if (diff > threshold) {
1194 thisStripFired =
true;
1213 std::vector <uint> seg_ME2(2,0) ;
1214 std::vector <uint> seg_ME3(2,0) ;
1215 std::vector < pair <CSCDetId, CSCSegment> > theSegments(4);
1229 ++seg_ME2[idseg.
endcap() -1];
1230 seg_tmp = seg_ME2[idseg.
endcap() -1];
1233 ++seg_ME3[idseg.
endcap() -1];
1234 seg_tmp = seg_ME3[idseg.
endcap() -1];
1237 if(1== seg_tmp&& 6==(*segEffIt).nRecHits() && (*segEffIt).chi2()/(*segEffIt).degreesOfFreedom()<3.){
1238 pair <CSCDetId, CSCSegment> specSeg = make_pair( (
CSCDetId)(*segEffIt).cscDetId(),*segEffIt);
1239 theSegments[2*(idseg.
endcap()-1)+(idseg.
station() -2)] = specSeg;
1261 for(
int iE = 0;iE<2;iE++){
1262 for(
int iS = 0;iS<4;iS++){
1263 for(
int iR = 0; iR<4;iR++){
1264 for(
int iC =0;iC<36;iC++){
1265 int NumberOfLayers = 0;
1266 for(
int iL=0;iL<6;iL++){
1267 if(AllRecHits[iE][iS][iR][iC][iL]){
1272 if (iS==0) bin = iR+1+(iE*10);
1273 else bin = (iS+1)*2 + (iR+1) + (iE*10);
1274 if(NumberOfLayers>1){
1276 if(AllSegments[iE][iS][iR][iC]){
1284 if(AllSegments[iE][iS][iR][iC]){
1285 if(NumberOfLayers==6){
1298 std::vector < pair <CSCDetId, CSCSegment> * > theSeg;
1299 if(1==seg_ME2[0]) theSeg.push_back(&theSegments[0]);
1300 if(1==seg_ME3[0]) theSeg.push_back(&theSegments[1]);
1301 if(1==seg_ME2[1]) theSeg.push_back(&theSegments[2]);
1302 if(1==seg_ME3[1]) theSeg.push_back(&theSegments[3]);
1307 std::map <std::string, float> chamberTypes;
1308 chamberTypes[
"ME1/a"] = 0.5;
1309 chamberTypes[
"ME1/b"] = 1.5;
1310 chamberTypes[
"ME1/2"] = 2.5;
1311 chamberTypes[
"ME1/3"] = 3.5;
1312 chamberTypes[
"ME2/1"] = 4.5;
1313 chamberTypes[
"ME2/2"] = 5.5;
1314 chamberTypes[
"ME3/1"] = 6.5;
1315 chamberTypes[
"ME3/2"] = 7.5;
1316 chamberTypes[
"ME4/1"] = 8.5;
1317 chamberTypes[
"ME4/2"] = 9.5;
1320 std::map <int , GlobalPoint> extrapolatedPoint;
1321 std::map <int , GlobalPoint>::iterator it;
1324 for(
unsigned int nCh=0;nCh<ChamberContainer.size();nCh++){
1325 const CSCChamber *cscchamber = ChamberContainer[nCh];
1326 pair <CSCDetId, CSCSegment> * thisSegment = 0;
1327 for(uint iSeg =0;iSeg<theSeg.size();++iSeg ){
1328 if(cscchamber->
id().
endcap() == theSeg[iSeg]->first.endcap()){
1330 if(2==theSeg[iSeg]->
first.station()){
1331 thisSegment = theSeg[iSeg];
1335 if(3==theSeg[iSeg]->
first.station()){
1336 thisSegment = theSeg[iSeg];
1344 const CSCChamber *segChamber = cscGeom->chamber(thisSegment->first);
1348 it = extrapolatedPoint.find(
int(cscchamberCenter.
z()));
1349 if(it==extrapolatedPoint.end()){
1352 double paramaterLine = lineParametrization(segPos.
z(),cscchamberCenter.
z() , segDir.
z());
1353 double xExtrapolated = extrapolate1D(segPos.
x(),segDir.
x(), paramaterLine);
1354 double yExtrapolated = extrapolate1D(segPos.
y(),segDir.
y(), paramaterLine);
1355 GlobalPoint globP (xExtrapolated, yExtrapolated, cscchamberCenter.
z());
1356 extrapolatedPoint[int(cscchamberCenter.
z())] = globP;
1359 LocalPoint extrapolatedPointLocal = cscchamber->
toLocal(extrapolatedPoint[
int(cscchamberCenter.
z())]);
1362 const std::array<const float, 4> & layerBounds = layerGeom->
parameters ();
1363 float shiftFromEdge = 15.;
1364 float shiftFromDeadZone = 10.;
1366 bool pass = withinSensitiveRegion(extrapolatedPointLocal, layerBounds,
1368 shiftFromEdge, shiftFromDeadZone);
1376 for(
int iL =0;iL<6;++iL){
1377 if(AllRecHits[cscchamber->
id().
endcap()-1]
1385 if(cscchamberCenter.
z()<0){
1386 verticalScale = - verticalScale;
1388 verticalScale += 10.5;
1389 hSensitiveAreaEvt->Fill(
float(cscchamber->
id().
chamber()),verticalScale);
1395 hEffDenominator->Fill(
float(cscchamber->
id().
chamber()),verticalScale);
1397 if(AllSegments[cscchamber->
id().
endcap()-1]
1400 hSSTE2->Fill(
float(cscchamber->
id().
chamber()),
float(verticalScale));
1403 for(
int iL =0;iL<6;++iL){
1407 if(AllRecHits[cscchamber->
id().
endcap()-1]
1410 hRHSTE2->Fill(
float(cscchamber->
id().
chamber()),
float(verticalScale),
weight);
1413 if(allWires[cscchamber->
id().
endcap()-1]
1417 hWireSTE2->Fill(
float(cscchamber->
id().
chamber()),
float(verticalScale),
weight);
1420 if(allStrips[cscchamber->
id().
endcap()-1]
1424 hStripSTE2->Fill(
float(cscchamber->
id().
chamber()),
float(verticalScale),
weight);
1449 const CSCDetId& idALCT = (*j).first;
1453 if((*digiIt).isValid()){
1454 hALCTgetBX->Fill((*digiIt).getBX());
1455 hALCTgetBXSerial->Fill(chamberSerial(idALCT),(*digiIt).getBX());
1456 hALCTgetBX2DNumerator->Fill(idALCT.
chamber(),typeIndex(idALCT,2),(*digiIt).getBX());
1457 hALCTgetBX2Denominator->Fill(idALCT.
chamber(),typeIndex(idALCT,2));
1472 if ( !( event.
getByToken( rd_token, rawdata ) ) ){
1473 edm::LogWarning(
"CSCOfflineMonitor") <<
" FEDRawDataCollection not available";
1479 bool goodEvent =
false;
1480 unsigned long dccBinCheckMask = 0x06080016;
1481 unsigned int examinerMask = 0x1FEBF3F6;
1482 unsigned int errorMask = 0x0;
1486 std::vector<unsigned int> cscFEDids;
1491 cscFEDids.push_back(
id);
1497 cscFEDids.push_back(
id);
1500 for (
unsigned int i=0;
i<cscFEDids.size();
i++)
1502 unsigned int id = cscFEDids[
i];
1509 const FEDRawData& fedData = rawdata->FEDData(
id);
1510 unsigned long length = fedData.
size();
1514 std::stringstream examiner_out, examiner_err;
1517 if( examinerMask&0x40000 ) examiner->
crcCFEB(1);
1518 if( examinerMask&0x8000 ) examiner->
crcTMB (1);
1519 if( examinerMask&0x0400 ) examiner->
crcALCT(1);
1520 examiner->
setMask(examinerMask);
1521 const short unsigned int *
data = (
short unsigned int *)fedData.
data();
1523 int res = examiner->
check(data,
long(fedData.
size()/2));
1528 goodEvent=!(examiner->
errors()&dccBinCheckMask);
1537 std::vector<CSCDDUEventData> fed_Data;
1538 std::vector<CSCDDUEventData>* ptr_fedData = &fed_Data;
1545 fed_Data.push_back(single_dduData);
1555 const std::vector<CSCDDUEventData> & dduData = *ptr_fedData;
1559 for (
unsigned int iDDU=0; iDDU<dduData.size(); ++iDDU) {
1562 if (dduData[iDDU].trailer().errorstat()&errorMask) {
1563 LogTrace(
"CSCDCCUnpacker|CSCRawToDigi") <<
"DDU# " << iDDU <<
" has serious error - no digis unpacked! " <<
1564 std::hex << dduData[iDDU].trailer().errorstat();
1569 const std::vector<CSCEventData> & cscData = dduData[iDDU].cscData();
1572 for (
unsigned int iCSC=0; iCSC<cscData.size(); ++iCSC) {
1575 int vmecrate = cscData[iCSC].dmbHeader()->crateID();
1576 int dmb = cscData[iCSC].dmbHeader()->dmbID();
1581 if ((vmecrate>=1)&&(vmecrate<=60) && (dmb>=1)&&(dmb<=10)&&(dmb!=6)) {
1582 layer = pcrate->
detId(vmecrate, dmb,icfeb,ilayer );
1585 LogTrace (
"CSCOfflineMonitor") <<
" detID input out of range!!! ";
1587 <<
" skipping chamber vme= " << vmecrate <<
" dmb= " << dmb;
1593 int nalct = cscData[iCSC].dmbHeader()->nalct();
1594 bool goodALCT=
false;
1596 if (nalct&&cscData[iCSC].alctHeader()) {
1597 if (cscData[iCSC].alctHeader()->
check()){
1603 int nclct = cscData[iCSC].dmbHeader()->nclct();
1605 if (nclct&&cscData[iCSC].tmbData()) {
1606 if (cscData[iCSC].tmbHeader()->
check()){
1607 if (cscData[iCSC].clctData()->
check()) goodTMB=
true;
1611 if (goodTMB && goodALCT) {
1612 const CSCTMBHeader *tmbHead = cscData[iCSC].tmbHeader();
1613 std::vector<CSCCLCTDigi> clcts = cscData[iCSC].tmbHeader()->CLCTDigis(layer.
rawId());
1614 if (clcts.size()==0 || !(clcts[0].isValid()))
1617 if(layer.
station()==1 && layer.
ring() ==1 && clcts[0].getKeyStrip()>128){
1621 hALCTMatchSerial->Fill(chamberSerial(layer),tmbHead->
ALCTMatchTime());
1626 hALCTMatch2Denominator->Fill(layer.
chamber(),typeIndex(layer,2));
1629 int TMB_CLCTpre_rel_L1A = tmbHead->
BXNCount()-clcts[0].getFullBX();
1630 if (TMB_CLCTpre_rel_L1A > 3563)
1631 TMB_CLCTpre_rel_L1A = TMB_CLCTpre_rel_L1A - 3564;
1632 if (TMB_CLCTpre_rel_L1A < 0)
1633 TMB_CLCTpre_rel_L1A = TMB_CLCTpre_rel_L1A + 3564;
1635 hCLCTL1A->Fill(TMB_CLCTpre_rel_L1A);
1636 hCLCTL1ASerial->Fill(chamberSerial(layer),TMB_CLCTpre_rel_L1A);
1637 hCLCTL1A2DNumerator->Fill(layer.
chamber(),typeIndex(layer,2),TMB_CLCTpre_rel_L1A);
1638 hCLCTL1A2Denominator->Fill(layer.
chamber(),typeIndex(layer,2));
1644 if (examiner!=
NULL)
delete examiner;
1653 int station,
int ring,
float shiftFromEdge,
float shiftFromDeadZone){
1657 float y_center = 0.;
1658 double yUp = layerBounds[3] + y_center;
1659 double yDown = - layerBounds[3] + y_center;
1660 double xBound1Shifted = layerBounds[0] - shiftFromEdge;
1661 double xBound2Shifted = layerBounds[1] - shiftFromEdge;
1662 double lineSlope = (yUp - yDown)/(xBound2Shifted-xBound1Shifted);
1663 double lineConst = yUp - lineSlope*xBound2Shifted;
1664 double yBorder = lineSlope*
abs(localPos.
x()) + lineConst;
1667 std::vector <float> deadZoneCenter(6);
1668 float cutZone = shiftFromDeadZone;
1670 if(station>1 && station<5){
1672 deadZoneCenter[0]= -162.48 ;
1673 deadZoneCenter[1] = -81.8744;
1674 deadZoneCenter[2] = -21.18165;
1675 deadZoneCenter[3] = 39.51105;
1676 deadZoneCenter[4] = 100.2939;
1677 deadZoneCenter[5] = 160.58;
1679 if(localPos.
y() >yBorder &&
1680 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1681 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1682 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone) ||
1683 (localPos.
y()> deadZoneCenter[3] + cutZone && localPos.
y()< deadZoneCenter[4] - cutZone) ||
1684 (localPos.
y()> deadZoneCenter[4] + cutZone && localPos.
y()< deadZoneCenter[5] - cutZone))){
1690 deadZoneCenter[0]= -95.80 ;
1691 deadZoneCenter[1] = -27.47;
1692 deadZoneCenter[2] = 33.67;
1693 deadZoneCenter[3] = 90.85;
1695 else if(3==station){
1696 deadZoneCenter[0]= -89.305 ;
1697 deadZoneCenter[1] = -39.705;
1698 deadZoneCenter[2] = 20.195;
1699 deadZoneCenter[3] = 77.395;
1701 else if(4==station){
1702 deadZoneCenter[0]= -75.645;
1703 deadZoneCenter[1] = -26.055;
1704 deadZoneCenter[2] = 23.855;
1705 deadZoneCenter[3] = 70.575;
1707 if(localPos.
y() >yBorder &&
1708 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1709 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1710 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone))){
1715 else if(1==station){
1717 deadZoneCenter[0]= -83.155 ;
1718 deadZoneCenter[1] = -22.7401;
1719 deadZoneCenter[2] = 27.86665;
1720 deadZoneCenter[3] = 81.005;
1721 if(localPos.
y() > yBorder &&
1722 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1723 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1724 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone))){
1729 deadZoneCenter[0]= -86.285 ;
1730 deadZoneCenter[1] = -32.88305;
1731 deadZoneCenter[2] = 32.867423;
1732 deadZoneCenter[3] = 88.205;
1733 if(localPos.
y() > (yBorder) &&
1734 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1735 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1736 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone))){
1741 deadZoneCenter[0]= -81.0;
1742 deadZoneCenter[1] = 81.0;
1743 if(localPos.
y() > (yBorder) &&
1744 (localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone )){
1759 if (
id.
station() == 1) index =
id.ring();
1760 else index =
id.station()*2 +
id.ring();
1761 if (
id.
endcap() == 1) index = index + 10;
1766 else if (flag == 2){
1768 if (
id.
station() == 1 &&
id.
ring() != 4) index =
id.ring()+1;
1769 if (
id.
station() == 1 &&
id.
ring() == 4) index = 1;
1770 if (
id.
station() != 1) index =
id.station()*2 +
id.ring();
1771 if (
id.
endcap() == 1) index = index + 10;
1781 int st =
id.station();
1783 int ch =
id.chamber();
1784 int ec =
id.endcap();
1786 if (st == 1 && ri == 1) kSerial = ch;
1787 if (st == 1 && ri == 2) kSerial = ch + 36;
1788 if (st == 1 && ri == 3) kSerial = ch + 72;
1789 if (st == 1 && ri == 4) kSerial = ch;
1790 if (st == 2 && ri == 1) kSerial = ch + 108;
1791 if (st == 2 && ri == 2) kSerial = ch + 126;
1792 if (st == 3 && ri == 1) kSerial = ch + 162;
1793 if (st == 3 && ri == 2) kSerial = ch + 180;
1794 if (st == 4 && ri == 1) kSerial = ch + 216;
1795 if (st == 4 && ri == 2) kSerial = ch + 234;
1796 if (ec == 2) kSerial = kSerial + 300;
1827 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)
ExaminerStatusType errors(void) const
void crcALCT(bool enable)
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 CSCChamberSpecs * specs() const
bool check(const std::string &)
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")
How EventSelector::AcceptEvent() decides whether to accept an event for output otherwise it is excluding the probing of A single or multiple positive and the trigger will pass if any such matching triggers are PASS or EXCEPTION[A criterion thatmatches no triggers at all is detected and causes a throw.] A single negative with an expectation of appropriate bit checking in the decision and the trigger will pass if any such matching triggers are FAIL or EXCEPTION A wildcarded negative criterion that matches more than one trigger in the trigger but the state exists so we define the behavior If all triggers are the negative crieriion will lead to accepting the event(this again matches the behavior of"!*"before the partial wildcard feature was incorporated).The per-event"cost"of each negative criterion with multiple relevant triggers is about the same as!*was in the past
static const double SMALL
void doSegments(edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom)
void analyze(const edm::Event &event, const edm::EventSetup &eventSetup)
void setCurrentFolder(const std::string &fullpath)
void doWireDigis(edm::Handle< CSCWireDigiCollection > wires)
MonitorElement * book2D(Args &&...args)
T const * product() const
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]
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
if(conf.exists("allCellsPositionCalc"))
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)
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)