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",200,-0.5,199.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)",300,-0.5,299.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",200,-0.50,199.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);
351 hSTimeDiff = ibooker.
book1D(
"hSTimeDiff",
"Anode Minus Cathode Segment Time [ns]",50,-50,50);
352 hSTimeAnode = ibooker.
book1D(
"hSTimeAnode",
"Anode Only Segment Time [ns]",200,-200,200);
353 hSTimeCathode = ibooker.
book1D(
"hSTimeCathode",
"Cathode Only Segment Time [ns]",200,-200,200);
354 hSTimeCombined = ibooker.
book1D(
"hSTimeCombined",
"Segment Time (anode+cathode times) [ns]",200,-200,200);
355 hSTimeDiffSerial = ibooker.
book2D(
"hSTimeDiffSerial",
"Anode Minus Cathode Segment Time [ns]",601,-0.5,600.5,200,-50,50);
356 hSTimeAnodeSerial = ibooker.
book2D(
"hSTimeAnodeSerial",
"Anode Only Segment Time [ns]",601,-0.5,600.5,200,-200,200);
357 hSTimeCathodeSerial = ibooker.
book2D(
"hSTimeCathodeSerial",
"Cathode Only Segment Time [ns]",601,-0.5,600.5,200,-200,200);
358 hSTimeCombinedSerial = ibooker.
book2D(
"hSTimeCombinedSerial",
"Segment Time (anode+cathode times) [ns]",601,-0.5,600.5,200,-200,200);
361 hSTimeVsZ = ibooker.
book2D(
"hSTimeVsZ",
"Segment Time vs. Z; [ns] vs. [cm]",200,-1200,1200,200,-200,200);
362 hSTimeVsTOF = ibooker.
book2D(
"hSTimeVsTOF",
"Segment Time vs. Distance from IP; [ns] vs. [cm]",180,500,1400, 200,-200,200);
368 hSResid.push_back(ibooker.
book1D(
"hSResidm42",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -4/2); Strip Widths",100,-0.5,0.5));
369 hSResid.push_back(ibooker.
book1D(
"hSResidm41",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -4/1); Strip Widths",100,-0.5,0.5));
370 hSResid.push_back(ibooker.
book1D(
"hSResidm32",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -3/2); Strip Widths",100,-0.5,0.5));
371 hSResid.push_back(ibooker.
book1D(
"hSResidm31",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -3/1); Strip Widths",100,-0.5,0.5));
372 hSResid.push_back(ibooker.
book1D(
"hSResidm22",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -2/2); Strip Widths",100,-0.5,0.5));
373 hSResid.push_back(ibooker.
book1D(
"hSResidm21",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -2/1); Strip Widths",100,-0.5,0.5));
374 hSResid.push_back(ibooker.
book1D(
"hSResidm11a",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/1a); Strip Widths",100,-0.5,0.5));
375 hSResid.push_back(ibooker.
book1D(
"hSResidm13",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/3); Strip Widths",100,-0.5,0.5));
376 hSResid.push_back(ibooker.
book1D(
"hSResidm12",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/2); Strip Widths",100,-0.5,0.5));
377 hSResid.push_back(ibooker.
book1D(
"hSResidm11b",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/1b); Strip Widths",100,-0.5,0.5));
378 hSResid.push_back(ibooker.
book1D(
"hSResidp11b",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/1b); Strip Widths",100,-0.5,0.5));
379 hSResid.push_back(ibooker.
book1D(
"hSResidp12",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/2); Strip Widths",100,-0.5,0.5));
380 hSResid.push_back(ibooker.
book1D(
"hSResidp13",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/3); Strip Widths",100,-0.5,0.5));
381 hSResid.push_back(ibooker.
book1D(
"hSResidp11a",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/1a); Strip Widths",100,-0.5,0.5));
382 hSResid.push_back(ibooker.
book1D(
"hSResidp21",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +2/1); Strip Widths",100,-0.5,0.5));
383 hSResid.push_back(ibooker.
book1D(
"hSResidp22",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +2/2); Strip Widths",100,-0.5,0.5));
384 hSResid.push_back(ibooker.
book1D(
"hSResidp31",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +3/1); Strip Widths",100,-0.5,0.5));
385 hSResid.push_back(ibooker.
book1D(
"hSResidp32",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +3/2); Strip Widths",100,-0.5,0.5));
386 hSResid.push_back(ibooker.
book1D(
"hSResidp41",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +4/1); Strip Widths",100,-0.5,0.5));
387 hSResid.push_back(ibooker.
book1D(
"hSResidp42",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +4/2); Strip Widths",100,-0.5,0.5));
394 hSnum = ibooker.
book1D(
"hSnum",
"CSC w rechits in 2+ layers && segment(s)", 20, 0.5, 20.5);
395 hSden = ibooker.
book1D(
"hSden",
"CSC w rechits in 2+ layers", 20, 0.5, 20.5);
396 hRHnum = ibooker.
book1D(
"hRHnum",
"CSC w segment(s) && rechits in 6 layers", 20, 0.5, 20.5);
397 hRHden = ibooker.
book1D(
"hRHden",
"CSC w segment(s)", 20, 0.5, 20.5);
398 applyCSClabels(hSnum, EXTENDED,
X);
399 applyCSClabels(hSden, EXTENDED,
X);
400 applyCSClabels(hRHnum, EXTENDED,
X);
401 applyCSClabels(hRHden, EXTENDED,
X);
405 hSSTE2 = ibooker.
book2D(
"hSSTE2",
"hSSTE2",36,0.5,36.5, 20, 0.5, 20.5);
406 hRHSTE2 = ibooker.
book2D(
"hRHSTE2",
"hRHSTE2",36,0.5,36.5, 20, 0.5, 20.5);
407 hStripSTE2 = ibooker.
book2D(
"hStripSTE2",
"hStripSTE2",36,0.5,36.5, 20, 0.5, 20.5);
408 hWireSTE2 = ibooker.
book2D(
"hWireSTE2",
"hWireSTE2",36,0.5,36.5, 20, 0.5, 20.5);
409 hEffDenominator = ibooker.
book2D(
"hEffDenominator",
"hEffDenominator",36,0.5,36.5, 20, 0.5, 20.5);
416 hSensitiveAreaEvt = ibooker.
book2D(
"hSensitiveAreaEvt",
"Events Passing Selection for Efficiency",36,0.5,36.5, 20, 0.5, 20.5);
421 hALCTgetBX = ibooker.
book1D(
"hALCTgetBX",
"ALCT position in ALCT-L1A match window [BX]",7,-0.5,6.5);
423 hALCTgetBXSerial = ibooker.
book2D(
"hALCTgetBXSerial",
"ALCT position in ALCT-L1A match window [BX]",601,-0.5,600.5,7,-0.5,6.5);
424 hALCTgetBXSerial->
setAxisTitle(
"Chamber Serial Number");
425 hALCTgetBX2DNumerator = ibooker.
book2D(
"hALCTgetBX2DNumerator",
"ALCT position in ALCT-L1A match window [BX] (sum)",36,0.5,36.5,20,0.5,20.5);
427 hALCTgetBX2Denominator = ibooker.
book2D(
"hALCTgetBX2Denominator",
"Number of ALCT Digis checked",36,0.5,36.5,20,0.5,20.5);
430 hALCTMatch = ibooker.
book1D(
"hALCTMatch",
"ALCT position in ALCT-CLCT match window [BX]",7,-0.5,6.5);
432 hALCTMatchSerial = ibooker.
book2D(
"hALCTMatchSerial",
"ALCT position in ALCT-CLCT match window [BX]",601,-0.5,600.5,7,-0.5,6.5);
433 hALCTMatchSerial->
setAxisTitle(
"Chamber Serial Number");
434 hALCTMatch2DNumerator = ibooker.
book2D(
"hALCTMatch2DNumerator",
"ALCT position in ALCT-CLCT match window [BX] (sum)",36,0.5,36.5,20,0.5,20.5);
436 hALCTMatch2Denominator = ibooker.
book2D(
"hALCTMatch2Denominator",
"Number of ALCT-CLCT matches checked",36,0.5,36.5,20,0.5,20.5);
439 hCLCTL1A = ibooker.
book1D(
"hCLCTL1A",
"L1A - CLCTpreTrigger at TMB [BX]",40,149.5,189.5);
441 hCLCTL1ASerial = ibooker.
book2D(
"hCLCTL1ASerial",
"L1A - CLCTpreTrigger at TMB [BX]",601,-0.5,600.5,40,149.5,189.5);
443 hCLCTL1A2DNumerator = ibooker.
book2D(
"hCLCTL1A2DNumerator",
"L1A - CLCTpreTrigger at TMB [BX] (sum)",36,0.5,36.5,20,0.5,20.5);
445 hCLCTL1A2Denominator = ibooker.
book2D(
"hCLCTL1A2Denominator",
"Number of TMB CLCTs checked",36,0.5,36.5,20,0.5,20.5);
449 applyCSClabels(hOWiresAndCLCT, EXTENDED,
Y);
450 applyCSClabels(hOWires, EXTENDED,
Y);
451 applyCSClabels(hOStrips, EXTENDED,
Y);
452 applyCSClabels(hOStripsAndWiresAndCLCT, EXTENDED,
Y);
453 applyCSClabels(hORecHits, EXTENDED,
Y);
454 applyCSClabels(hOSegments, EXTENDED,
Y);
458 applyCSClabels(hSSTE2, EXTENDED,
Y);
459 applyCSClabels(hEffDenominator, EXTENDED,
Y);
461 applyCSClabels(hRHSTE2, EXTENDED,
Y);
464 applyCSClabels(hStripSTE2, EXTENDED,
Y);
466 applyCSClabels(hWireSTE2, EXTENDED,
Y);
467 applyCSClabels(hSensitiveAreaEvt, EXTENDED,
Y);
469 applyCSClabels(hALCTgetBX2Denominator, EXTENDED,
Y);
471 applyCSClabels(hALCTMatch2Denominator, EXTENDED,
Y);
473 applyCSClabels(hCLCTL1A2Denominator,EXTENDED,
Y);
485 event.getByToken( sd_token, strips );
486 event.getByToken( wd_token, wires );
487 event.getByToken( al_token, alcts );
488 event.getByToken( cl_token, clcts );
496 event.getByToken( rh_token, recHits );
500 event.getByToken( se_token, cscSegments );
502 doOccupancies(strips,wires,recHits,cscSegments,clcts);
503 doStripDigis(strips);
505 doRecHits(recHits,strips,cscGeom);
506 doSegments(cscSegments,cscGeom);
507 doResolution(cscSegments,cscGeom);
508 doPedestalNoise(strips, cscGeom);
509 doEfficiencies(wires,strips, recHits, cscSegments,cscGeom);
510 doBXMonitor(alcts, clcts, event, eventSetup);
523 bool clcto[2][4][4][36];
524 bool wireo[2][4][4][36];
525 bool stripo[2][4][4][36];
526 bool rechito[2][4][4][36];
527 bool segmento[2][4][4][36];
529 bool hasWires =
false;
530 bool hasStrips =
false;
531 bool hasRecHits =
false;
532 bool hasSegments =
false;
534 for (
int e = 0;
e < 2;
e++){
535 for (
int s = 0;
s < 4;
s++){
536 for (
int r = 0;
r < 4;
r++){
537 for (
int c = 0;
c < 36;
c++){
538 clcto[
e][
s][
r][
c] =
false;
539 wireo[
e][
s][
r][
c] =
false;
540 stripo[
e][
s][
r][
c] =
false;
541 rechito[
e][
s][
r][
c] =
false;
542 segmento[
e][
s][
r][
c] =
false;
551 int kEndcap =
id.
endcap();
552 int kRing =
id.ring();
553 int kStation =
id.station();
554 int kChamber =
id.chamber();
558 if((*digiIt).isValid()){
560 if( kStation ==1 && kRing==1 && (*digiIt).getKeyStrip()>128)
562 clcto[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
570 int kEndcap =
id.
endcap();
571 int kRing =
id.ring();
572 int kStation =
id.station();
573 int kChamber =
id.chamber();
574 std::vector<CSCWireDigi>::const_iterator wireIt = (*wi).second.first;
575 std::vector<CSCWireDigi>::const_iterator lastWire = (*wi).second.second;
576 for( ; wireIt != lastWire; ++wireIt){
577 if (!wireo[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
578 wireo[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
579 hOWires->Fill(kChamber,typeIndex(
id,2));
580 hOWireSerial->Fill(chamberSerial(
id));
582 if( clcto[kEndcap-1][kStation-1][kRing-1][kChamber-1])
583 hOWiresAndCLCT->Fill(kChamber,typeIndex(
id,2));
585 if (kStation==1 && kRing==1 && clcto[kEndcap-1][kStation-1][3][kChamber-1]){
587 hOWiresAndCLCT->Fill(kChamber,typeIndex(idME11a,2));
596 int kEndcap =
id.
endcap();
597 int kRing =
id.ring();
598 int kStation =
id.station();
599 int kChamber =
id.chamber();
600 std::vector<CSCStripDigi>::const_iterator stripIt = (*si).second.first;
601 std::vector<CSCStripDigi>::const_iterator lastStrip = (*si).second.second;
602 for( ; stripIt != lastStrip; ++stripIt) {
603 std::vector<int> myADCVals = stripIt->getADCCounts();
604 bool thisStripFired =
false;
605 float thisPedestal = 0.5*(
float)(myADCVals[0]+myADCVals[1]);
608 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
609 diff = (
float)myADCVals[iCount]-thisPedestal;
610 if (diff > threshold) { thisStripFired =
true; }
612 if (thisStripFired) {
613 if (!stripo[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
614 stripo[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
615 hOStrips->Fill(kChamber,typeIndex(
id,2));
616 hOStripSerial->Fill(chamberSerial(
id));
618 if (clcto[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
621 if(wireo[kEndcap-1][kStation-1][kRing-1][kChamber-1] || (kRing==4 && wireo[kEndcap-1][kStation-1][0][kChamber-1]) ){
622 hOStripsAndWiresAndCLCT->Fill(kChamber,typeIndex(
id,2));
632 for (recIt = recHits->begin(); recIt != recHits->end(); recIt++) {
634 int kEndcap = idrec.
endcap();
635 int kRing = idrec.
ring();
636 int kStation = idrec.
station();
637 int kChamber = idrec.
chamber();
638 if (!rechito[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
639 rechito[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
640 hORecHitsSerial->Fill(chamberSerial(idrec));
641 hORecHits->Fill(kChamber,typeIndex(idrec,2));
649 int kEndcap =
id.
endcap();
650 int kRing =
id.ring();
651 int kStation =
id.station();
652 int kChamber =
id.chamber();
653 if (!segmento[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
654 segmento[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
655 hOSegmentsSerial->Fill(chamberSerial(
id));
656 hOSegments->Fill(kChamber,typeIndex(
id,2));
662 hCSCOccupancy->Fill(1);
663 if (hasWires) hCSCOccupancy->Fill(3);
664 if (hasStrips) hCSCOccupancy->Fill(5);
665 if (hasWires && hasStrips) hCSCOccupancy->Fill(7);
666 if (hasRecHits) hCSCOccupancy->Fill(9);
667 if (hasSegments) hCSCOccupancy->Fill(11);
681 int nWireGroupsTotal = 0;
684 std::vector<CSCWireDigi>::const_iterator wireIter = (*dWDiter).second.first;
685 std::vector<CSCWireDigi>::const_iterator lWire = (*dWDiter).second.second;
686 for( ; wireIter != lWire; ++wireIter) {
687 int myWire = wireIter->getWireGroup();
688 int myTBin = wireIter->getTimeBin();
690 hWireTBin[typeIndex(
id)-1]->Fill(myTBin);
691 hWireNumber[typeIndex(
id)-1]->Fill(myWire);
698 hWirenGroupsTotal->Fill(nWireGroupsTotal);
711 int nStripsFired = 0;
714 std::vector<CSCStripDigi>::const_iterator stripIter = (*dSDiter).second.first;
715 std::vector<CSCStripDigi>::const_iterator lStrip = (*dSDiter).second.second;
716 for( ; stripIter != lStrip; ++stripIter) {
717 int myStrip = stripIter->getStrip();
718 std::vector<int> myADCVals = stripIter->getADCCounts();
719 bool thisStripFired =
false;
720 float thisPedestal = 0.5*(
float)(myADCVals[0]+myADCVals[1]);
723 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
724 diff = (
float)myADCVals[iCount]-thisPedestal;
725 if (diff > threshold) { thisStripFired =
true; }
727 if (thisStripFired) {
729 hStripNumber[typeIndex(
id)-1]->Fill(myStrip);
738 hStripNFired->Fill(nStripsFired);
756 int kRing =
id.ring();
757 std::vector<CSCStripDigi>::const_iterator pedIt = (*dPNiter).second.first;
758 std::vector<CSCStripDigi>::const_iterator lStrip = (*dPNiter).second.second;
759 for( ; pedIt != lStrip; ++pedIt) {
760 int myStrip = pedIt->getStrip();
761 std::vector<int> myADCVals = pedIt->getADCCounts();
762 float TotalADC = getSignal(*strips,
id, myStrip);
763 bool thisStripFired =
false;
764 float thisPedestal = 0.5*(
float)(myADCVals[0]+myADCVals[1]);
765 float thisSignal = (1./6)*(myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
770 if( (kStation == 1 && kRing == 4) && cscGeom->
gangedStrips() )
773 if(myStrip <= 16) myStrip += 64;
776 if (TotalADC > threshold) { thisStripFired =
true;}
777 if (!thisStripFired){
778 float ADC = thisSignal - thisPedestal;
779 hStripPed[typeIndex(
id)-1]->Fill(ADC);
798 int nRecHits = recHits->size();
805 for (dRHIter = recHits->begin(); dRHIter != recHits->end(); dRHIter++) {
811 LocalPoint rhitlocal = (*dRHIter).localPosition();
816 float stpos = (*dRHIter).positionWithinStrip();
817 float sterr = (*dRHIter).errorWithinStrip();
821 int adcsize = dRHIter->nStrips()*dRHIter->nTimeBins();
824 for (
unsigned int i = 0;
i < dRHIter->nStrips();
i++){
825 for (
unsigned int j=0; j<dRHIter->nTimeBins()-1; j++) {
826 rHSumQ+=dRHIter->adcs(
i,j);
827 if (
i != 1 ) sumsides += dRHIter->adcs(
i,j);
831 float rHratioQ = sumsides/rHSumQ;
832 if (adcsize != 12) rHratioQ = -99;
835 float rHtime = (*dRHIter).tpeak();
836 float rHtimeAnode = (*dRHIter).wireTime();
843 float grecx = rhitglobal.
x();
844 float grecy = rhitglobal.
y();
848 int tIndex = typeIndex(idrec);
849 hRHSumQ[tIndex-1]->Fill(rHSumQ);
850 hRHRatioQ[tIndex-1]->Fill(rHratioQ);
851 hRHstpos[tIndex-1]->Fill(stpos);
852 hRHsterr[tIndex-1]->Fill(sterr);
853 hRHTiming[tIndex-1]->Fill(rHtime);
854 hRHTimingAnode[tIndex-1]->Fill(rHtimeAnode);
855 hRHGlobal[sIndex-1]->Fill(grecx,grecy);
860 hRHnrechits->Fill(nRecHits);
875 int nSegments = cscSegments->size();
879 float chisq = (*dSiter).chi2();
880 int nhits = (*dSiter).nRecHits();
881 int nDOF = 2*nhits-4;
882 float nChi2 = chisq/nDOF;
884 LocalPoint localPos = (*dSiter).localPosition();
888 float timeCathode = 0;
890 float timeCombined = 0;
891 std::vector<float> cathodeTimes;
892 std::vector<float> anodeTimes;
894 std::vector<CSCRecHit2D> theseRecHits = (*dSiter).specificRecHits();
895 for ( vector<CSCRecHit2D>::const_iterator iRH = theseRecHits.begin(); iRH != theseRecHits.end(); iRH++) {
896 if ( !((*iRH).isValid()) )
continue;
897 cathodeTimes.push_back((*iRH).tpeak());
898 anodeTimes.push_back((*iRH).wireTime());
902 for (
unsigned int i=0;
i<cathodeTimes.size();
i++)
903 timeCathode+=cathodeTimes[
i]/cathodeTimes.size();
907 bool modified =
false;
908 std::vector<float>::iterator anodeMaxHit;
910 if (anodeTimes.size()==0)
continue;
916 for (
unsigned int j=0; j<anodeTimes.size(); j++) timeAnode+=anodeTimes[j]/anodeTimes.size();
919 for (
unsigned int j=0; j<anodeTimes.size(); j++) {
920 if (fabs(anodeTimes[j]-timeAnode)>anodeMaxDiff) {
921 anodeMaxHit=anodeTimes.begin()+j;
922 anodeMaxDiff=fabs(anodeTimes[j]-timeAnode);
927 if (anodeMaxDiff>26) {
929 anodeTimes.erase(anodeMaxHit);
934 if(cathodeTimes.size()+anodeTimes.size() >0 )
935 timeCombined = (timeCathode*cathodeTimes.size() + timeAnode*anodeTimes.size())/(cathodeTimes.size()+anodeTimes.size());
942 float globTheta = 0.;
947 globX = globalPosition.
x();
948 globY = globalPosition.
y();
949 globZ = globalPosition.
z();
950 globTOF =
sqrt(globX*globX+globY*globY+globZ*globZ);
952 globTheta = globalDirection.
theta();
953 globPhi = globalDirection.
phi();
957 int tIndex = typeIndex(
id);
958 hSnhitsAll->Fill(nhits);
959 hSnhits[tIndex-1]->Fill(nhits);
960 hSChiSqAll->Fill(nChi2);
961 hSChiSq[tIndex-1]->Fill(nChi2);
962 hSChiSqProbAll->Fill(chisqProb);
963 hSChiSqProb[tIndex-1]->Fill(chisqProb);
964 hSGlobalTheta->Fill(globTheta);
965 hSGlobalPhi->Fill(globPhi);
966 hSTimeDiff->Fill(timeAnode-timeCathode);
967 hSTimeAnode->Fill(timeAnode);
968 hSTimeCathode->Fill(timeCathode);
969 hSTimeCombined->Fill(timeCombined);
970 hSTimeDiffSerial->Fill(chamberSerial(
id),timeAnode-timeCathode);
971 hSTimeAnodeSerial->Fill(chamberSerial(
id),timeAnode);
972 hSTimeCathodeSerial->Fill(chamberSerial(
id),timeCathode);
973 hSTimeCombinedSerial->Fill(chamberSerial(
id),timeCombined);
974 hSTimeVsZ->Fill(globZ, timeCombined);
975 hSTimeVsTOF->Fill(globTOF, timeCombined);
980 hSnSegments->Fill(nSegments);
996 std::vector<CSCRecHit2D> theseRecHits = (*dSiter).specificRecHits();
997 int nRH = (*dSiter).nRecHits();
999 CLHEP::HepMatrix
sp(6,1);
1000 CLHEP::HepMatrix se(6,1);
1001 for ( vector<CSCRecHit2D>::const_iterator iRH = theseRecHits.begin(); iRH != theseRecHits.end(); iRH++) {
1005 int kRing = idRH.
ring();
1006 int kStation = idRH.
station();
1011 int centerid = iRH->nStrips()/2 + 1;
1012 int centerStrip = iRH->channels(centerid - 1);
1016 float stpos = (*iRH).positionWithinStrip();
1017 se(kLayer,1) = (*iRH).errorWithinStrip();
1019 if (kStation == 1 && (kRing == 1 || kRing == 4)) sp(kLayer,1) = stpos + centerStrip;
1021 if (kLayer == 1 || kLayer == 3 || kLayer == 5) sp(kLayer,1) = stpos + centerStrip;
1022 if (kLayer == 2 || kLayer == 4 || kLayer == 6) sp(kLayer,1) = stpos - 0.5 + centerStrip;
1033 float expected = fitX(sp,se);
1034 float residual = expected - sp(3,1);
1036 hSResid[typeIndex(
id)-1]->Fill(residual);
1062 for (
int i=1;
i<7;
i++){
1066 Sy = Sy + (points(
i,1)/sigma2);
1067 Sx = Sx + ((
i)/sigma2);
1068 Sxx = Sxx + (
i*
i)/sigma2;
1069 Sxy = Sxy + (((
i)*points(
i,1))/sigma2);
1073 float delta = S*Sxx - Sx*Sx;
1074 float intercept = (Sxx*Sy - Sx*Sxy)/delta;
1075 float slope = (S*Sxy - Sx*Sy)/delta;
1077 return (intercept + slope*3);
1103 for (sIt = stripdigis.begin(); sIt != stripdigis.end(); sIt++){
1108 vector<CSCStripDigi>::const_iterator digiItr = (*sIt).second.first;
1109 vector<CSCStripDigi>::const_iterator
last = (*sIt).second.second;
1110 for ( ; digiItr !=
last; ++digiItr ) {
1111 int thisStrip = digiItr->getStrip();
1112 if (thisStrip == (centerStrip)){
1113 std::vector<int> myADCVals = digiItr->getADCCounts();
1114 float thisPedestal = 0.5*(
float)(myADCVals[0]+myADCVals[1]);
1115 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1116 SigADC[0] = thisSignal - 6*thisPedestal;
1119 if (thisStrip == (centerStrip+1)){
1120 std::vector<int> myADCVals = digiItr->getADCCounts();
1121 float thisPedestal = 0.5*(
float)(myADCVals[0]+myADCVals[1]);
1122 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1123 SigADC[1] = thisSignal - 6*thisPedestal;
1125 if (thisStrip == (centerStrip+2)){
1126 std::vector<int> myADCVals = digiItr->getADCCounts();
1127 float thisPedestal = 0.5*(
float)(myADCVals[0]+myADCVals[1]);
1128 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1129 SigADC[2] = thisSignal - 6*thisPedestal;
1131 if (thisStrip == (centerStrip-1)){
1132 std::vector<int> myADCVals = digiItr->getADCCounts();
1133 float thisPedestal = 0.5*(
float)(myADCVals[0]+myADCVals[1]);
1134 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1135 SigADC[3] = thisSignal - 6*thisPedestal;
1137 if (thisStrip == (centerStrip-2)){
1138 std::vector<int> myADCVals = digiItr->getADCCounts();
1139 float thisPedestal = 0.5*(
float)(myADCVals[0]+myADCVals[1]);
1140 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1141 SigADC[4] = thisSignal - 6*thisPedestal;
1144 TotalADC = 0.2*(SigADC[0]+SigADC[1]+SigADC[2]+SigADC[3]+SigADC[4]);
1161 bool allWires[2][4][4][36][6];
1162 bool allStrips[2][4][4][36][6];
1163 bool AllRecHits[2][4][4][36][6];
1164 bool AllSegments[2][4][4][36];
1167 for(
int iE = 0;iE<2;iE++){
1168 for(
int iS = 0;iS<4;iS++){
1169 for(
int iR = 0; iR<4;iR++){
1170 for(
int iC =0;iC<36;iC++){
1171 AllSegments[iE][iS][iR][iC] =
false;
1173 for(
int iL=0;iL<6;iL++){
1174 allWires[iE][iS][iR][iC][iL] =
false;
1175 allStrips[iE][iS][iR][iC][iL] =
false;
1176 AllRecHits[iE][iS][iR][iC][iL] =
false;
1187 std::vector<CSCWireDigi>::const_iterator wireIter = (*dWDiter).second.first;
1188 std::vector<CSCWireDigi>::const_iterator lWire = (*dWDiter).second.second;
1189 for( ; wireIter != lWire; ++wireIter) {
1198 std::vector<CSCStripDigi>::const_iterator stripIter = (*dSDiter).second.first;
1199 std::vector<CSCStripDigi>::const_iterator lStrip = (*dSDiter).second.second;
1200 for( ; stripIter != lStrip; ++stripIter) {
1201 std::vector<int> myADCVals = stripIter->getADCCounts();
1202 bool thisStripFired =
false;
1203 float thisPedestal = 0.5*(
float)(myADCVals[0]+myADCVals[1]);
1206 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
1207 diff = (
float)myADCVals[iCount]-thisPedestal;
1208 if (diff > threshold) {
1209 thisStripFired =
true;
1228 std::vector <uint> seg_ME2(2,0) ;
1229 std::vector <uint> seg_ME3(2,0) ;
1230 std::vector < pair <CSCDetId, CSCSegment> > theSegments(4);
1244 ++seg_ME2[idseg.
endcap() -1];
1245 seg_tmp = seg_ME2[idseg.
endcap() -1];
1248 ++seg_ME3[idseg.
endcap() -1];
1249 seg_tmp = seg_ME3[idseg.
endcap() -1];
1252 if(1== seg_tmp&& 6==(*segEffIt).nRecHits() && (*segEffIt).chi2()/(*segEffIt).degreesOfFreedom()<3.){
1253 pair <CSCDetId, CSCSegment> specSeg = make_pair( (
CSCDetId)(*segEffIt).cscDetId(),*segEffIt);
1254 theSegments[2*(idseg.
endcap()-1)+(idseg.
station() -2)] = specSeg;
1276 for(
int iE = 0;iE<2;iE++){
1277 for(
int iS = 0;iS<4;iS++){
1278 for(
int iR = 0; iR<4;iR++){
1279 for(
int iC =0;iC<36;iC++){
1280 int NumberOfLayers = 0;
1281 for(
int iL=0;iL<6;iL++){
1282 if(AllRecHits[iE][iS][iR][iC][iL]){
1287 if (iS==0) bin = iR+1+(iE*10);
1288 else bin = (iS+1)*2 + (iR+1) + (iE*10);
1289 if(NumberOfLayers>1){
1291 if(AllSegments[iE][iS][iR][iC]){
1299 if(AllSegments[iE][iS][iR][iC]){
1300 if(NumberOfLayers==6){
1313 std::vector < pair <CSCDetId, CSCSegment> * > theSeg;
1314 if(1==seg_ME2[0]) theSeg.push_back(&theSegments[0]);
1315 if(1==seg_ME3[0]) theSeg.push_back(&theSegments[1]);
1316 if(1==seg_ME2[1]) theSeg.push_back(&theSegments[2]);
1317 if(1==seg_ME3[1]) theSeg.push_back(&theSegments[3]);
1322 std::map <std::string, float> chamberTypes;
1323 chamberTypes[
"ME1/a"] = 0.5;
1324 chamberTypes[
"ME1/b"] = 1.5;
1325 chamberTypes[
"ME1/2"] = 2.5;
1326 chamberTypes[
"ME1/3"] = 3.5;
1327 chamberTypes[
"ME2/1"] = 4.5;
1328 chamberTypes[
"ME2/2"] = 5.5;
1329 chamberTypes[
"ME3/1"] = 6.5;
1330 chamberTypes[
"ME3/2"] = 7.5;
1331 chamberTypes[
"ME4/1"] = 8.5;
1332 chamberTypes[
"ME4/2"] = 9.5;
1335 std::map <int , GlobalPoint> extrapolatedPoint;
1336 std::map <int , GlobalPoint>::iterator it;
1339 for(
unsigned int nCh=0;nCh<ChamberContainer.size();nCh++){
1340 const CSCChamber *cscchamber = ChamberContainer[nCh];
1341 pair <CSCDetId, CSCSegment> * thisSegment = 0;
1342 for(uint iSeg =0;iSeg<theSeg.size();++iSeg ){
1343 if(cscchamber->
id().
endcap() == theSeg[iSeg]->first.endcap()){
1345 if(2==theSeg[iSeg]->
first.station()){
1346 thisSegment = theSeg[iSeg];
1350 if(3==theSeg[iSeg]->
first.station()){
1351 thisSegment = theSeg[iSeg];
1363 it = extrapolatedPoint.find(
int(cscchamberCenter.
z()));
1364 if(it==extrapolatedPoint.end()){
1367 double paramaterLine = lineParametrization(segPos.
z(),cscchamberCenter.
z() , segDir.
z());
1368 double xExtrapolated = extrapolate1D(segPos.
x(),segDir.
x(), paramaterLine);
1369 double yExtrapolated = extrapolate1D(segPos.
y(),segDir.
y(), paramaterLine);
1370 GlobalPoint globP (xExtrapolated, yExtrapolated, cscchamberCenter.
z());
1371 extrapolatedPoint[
int(cscchamberCenter.
z())] = globP;
1374 LocalPoint extrapolatedPointLocal = cscchamber->
toLocal(extrapolatedPoint[
int(cscchamberCenter.
z())]);
1377 const std::array<const float, 4> & layerBounds = layerGeom->
parameters ();
1378 float shiftFromEdge = 15.;
1379 float shiftFromDeadZone = 10.;
1381 bool pass = withinSensitiveRegion(extrapolatedPointLocal, layerBounds,
1383 shiftFromEdge, shiftFromDeadZone);
1391 for(
int iL =0;iL<6;++iL){
1392 if(AllRecHits[cscchamber->
id().
endcap()-1]
1400 if(cscchamberCenter.
z()<0){
1401 verticalScale = - verticalScale;
1403 verticalScale += 10.5;
1404 hSensitiveAreaEvt->Fill(
float(cscchamber->
id().
chamber()),verticalScale);
1410 hEffDenominator->Fill(
float(cscchamber->
id().
chamber()),verticalScale);
1412 if(AllSegments[cscchamber->
id().
endcap()-1]
1415 hSSTE2->Fill(
float(cscchamber->
id().
chamber()),
float(verticalScale));
1418 for(
int iL =0;iL<6;++iL){
1422 if(AllRecHits[cscchamber->
id().
endcap()-1]
1425 hRHSTE2->Fill(
float(cscchamber->
id().
chamber()),
float(verticalScale),
weight);
1428 if(allWires[cscchamber->
id().
endcap()-1]
1432 hWireSTE2->Fill(
float(cscchamber->
id().
chamber()),
float(verticalScale),
weight);
1435 if(allStrips[cscchamber->
id().
endcap()-1]
1439 hStripSTE2->Fill(
float(cscchamber->
id().
chamber()),
float(verticalScale),
weight);
1464 const CSCDetId& idALCT = (*j).first;
1468 if((*digiIt).isValid()){
1469 hALCTgetBX->Fill((*digiIt).getBX());
1470 hALCTgetBXSerial->Fill(chamberSerial(idALCT),(*digiIt).getBX());
1471 hALCTgetBX2DNumerator->Fill(idALCT.
chamber(),typeIndex(idALCT,2),(*digiIt).getBX());
1472 hALCTgetBX2Denominator->Fill(idALCT.
chamber(),typeIndex(idALCT,2));
1487 if ( !( event.
getByToken( rd_token, rawdata ) ) ){
1488 edm::LogWarning(
"CSCOfflineMonitor") <<
" FEDRawDataCollection not available";
1494 bool goodEvent =
false;
1495 unsigned long dccBinCheckMask = 0x06080016;
1496 unsigned int examinerMask = 0x1FEBF3F6;
1497 unsigned int errorMask = 0x0;
1501 std::vector<unsigned int> cscFEDids;
1506 cscFEDids.push_back(
id);
1512 cscFEDids.push_back(
id);
1515 for (
unsigned int i=0;
i<cscFEDids.size();
i++)
1517 unsigned int id = cscFEDids[
i];
1525 unsigned long length = fedData.
size();
1529 std::stringstream examiner_out, examiner_err;
1532 if( examinerMask&0x40000 ) examiner->
crcCFEB(1);
1533 if( examinerMask&0x8000 ) examiner->
crcTMB (1);
1534 if( examinerMask&0x0400 ) examiner->
crcALCT(1);
1535 examiner->
setMask(examinerMask);
1536 const short unsigned int *
data = (
short unsigned int *)fedData.
data();
1538 int res = examiner->
check(data,
long(fedData.
size()/2));
1543 goodEvent=!(examiner->
errors()&dccBinCheckMask);
1552 std::vector<CSCDDUEventData> fed_Data;
1553 std::vector<CSCDDUEventData>* ptr_fedData = &fed_Data;
1560 fed_Data.push_back(single_dduData);
1570 const std::vector<CSCDDUEventData> & dduData = *ptr_fedData;
1574 for (
unsigned int iDDU=0; iDDU<dduData.size(); ++iDDU) {
1577 if (dduData[iDDU].trailer().errorstat()&errorMask) {
1578 LogTrace(
"CSCDCCUnpacker|CSCRawToDigi") <<
"DDU# " << iDDU <<
" has serious error - no digis unpacked! " <<
1579 std::hex << dduData[iDDU].trailer().errorstat();
1584 const std::vector<CSCEventData> & cscData = dduData[iDDU].cscData();
1587 for (
unsigned int iCSC=0; iCSC<cscData.size(); ++iCSC) {
1590 int vmecrate = cscData[iCSC].dmbHeader()->crateID();
1591 int dmb = cscData[iCSC].dmbHeader()->dmbID();
1596 if ((vmecrate>=1)&&(vmecrate<=60) && (dmb>=1)&&(dmb<=10)&&(dmb!=6)) {
1597 layer = pcrate->
detId(vmecrate, dmb,icfeb,ilayer );
1600 LogTrace (
"CSCOfflineMonitor") <<
" detID input out of range!!! ";
1602 <<
" skipping chamber vme= " << vmecrate <<
" dmb= " << dmb;
1608 int nalct = cscData[iCSC].dmbHeader()->nalct();
1609 bool goodALCT=
false;
1611 if (nalct&&cscData[iCSC].alctHeader()) {
1612 if (cscData[iCSC].alctHeader()->
check()){
1618 int nclct = cscData[iCSC].dmbHeader()->nclct();
1620 if (nclct&&cscData[iCSC].tmbData()) {
1621 if (cscData[iCSC].tmbHeader()->
check()){
1622 if (cscData[iCSC].clctData()->
check()) goodTMB=
true;
1626 if (goodTMB && goodALCT) {
1627 const CSCTMBHeader *tmbHead = cscData[iCSC].tmbHeader();
1628 std::vector<CSCCLCTDigi> clcts = cscData[iCSC].tmbHeader()->CLCTDigis(layer.
rawId());
1629 if (clcts.size()==0 || !(clcts[0].isValid()))
1632 if(layer.
station()==1 && layer.
ring() ==1 && clcts[0].getKeyStrip()>128){
1636 hALCTMatchSerial->Fill(chamberSerial(layer),tmbHead->
ALCTMatchTime());
1641 hALCTMatch2Denominator->Fill(layer.
chamber(),typeIndex(layer,2));
1644 int TMB_CLCTpre_rel_L1A = tmbHead->
BXNCount()-clcts[0].getFullBX();
1645 if (TMB_CLCTpre_rel_L1A > 3563)
1646 TMB_CLCTpre_rel_L1A = TMB_CLCTpre_rel_L1A - 3564;
1647 if (TMB_CLCTpre_rel_L1A < 0)
1648 TMB_CLCTpre_rel_L1A = TMB_CLCTpre_rel_L1A + 3564;
1650 hCLCTL1A->Fill(TMB_CLCTpre_rel_L1A);
1651 hCLCTL1ASerial->Fill(chamberSerial(layer),TMB_CLCTpre_rel_L1A);
1652 hCLCTL1A2DNumerator->Fill(layer.
chamber(),typeIndex(layer,2),TMB_CLCTpre_rel_L1A);
1653 hCLCTL1A2Denominator->Fill(layer.
chamber(),typeIndex(layer,2));
1659 if (examiner!=
NULL)
delete examiner;
1668 int station,
int ring,
float shiftFromEdge,
float shiftFromDeadZone){
1672 float y_center = 0.;
1673 double yUp = layerBounds[3] + y_center;
1674 double yDown = - layerBounds[3] + y_center;
1675 double xBound1Shifted = layerBounds[0] - shiftFromEdge;
1676 double xBound2Shifted = layerBounds[1] - shiftFromEdge;
1677 double lineSlope = (yUp - yDown)/(xBound2Shifted-xBound1Shifted);
1678 double lineConst = yUp - lineSlope*xBound2Shifted;
1679 double yBorder = lineSlope*
abs(localPos.
x()) + lineConst;
1682 std::vector <float> deadZoneCenter(6);
1683 float cutZone = shiftFromDeadZone;
1685 if(station>1 && station<5){
1687 deadZoneCenter[0]= -162.48 ;
1688 deadZoneCenter[1] = -81.8744;
1689 deadZoneCenter[2] = -21.18165;
1690 deadZoneCenter[3] = 39.51105;
1691 deadZoneCenter[4] = 100.2939;
1692 deadZoneCenter[5] = 160.58;
1694 if(localPos.
y() >yBorder &&
1695 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1696 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1697 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone) ||
1698 (localPos.
y()> deadZoneCenter[3] + cutZone && localPos.
y()< deadZoneCenter[4] - cutZone) ||
1699 (localPos.
y()> deadZoneCenter[4] + cutZone && localPos.
y()< deadZoneCenter[5] - cutZone))){
1705 deadZoneCenter[0]= -95.80 ;
1706 deadZoneCenter[1] = -27.47;
1707 deadZoneCenter[2] = 33.67;
1708 deadZoneCenter[3] = 90.85;
1710 else if(3==station){
1711 deadZoneCenter[0]= -89.305 ;
1712 deadZoneCenter[1] = -39.705;
1713 deadZoneCenter[2] = 20.195;
1714 deadZoneCenter[3] = 77.395;
1716 else if(4==station){
1717 deadZoneCenter[0]= -75.645;
1718 deadZoneCenter[1] = -26.055;
1719 deadZoneCenter[2] = 23.855;
1720 deadZoneCenter[3] = 70.575;
1722 if(localPos.
y() >yBorder &&
1723 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1724 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1725 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone))){
1730 else if(1==station){
1732 deadZoneCenter[0]= -83.155 ;
1733 deadZoneCenter[1] = -22.7401;
1734 deadZoneCenter[2] = 27.86665;
1735 deadZoneCenter[3] = 81.005;
1736 if(localPos.
y() > yBorder &&
1737 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1738 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1739 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone))){
1744 deadZoneCenter[0]= -86.285 ;
1745 deadZoneCenter[1] = -32.88305;
1746 deadZoneCenter[2] = 32.867423;
1747 deadZoneCenter[3] = 88.205;
1748 if(localPos.
y() > (yBorder) &&
1749 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1750 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1751 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone))){
1756 deadZoneCenter[0]= -81.0;
1757 deadZoneCenter[1] = 81.0;
1758 if(localPos.
y() > (yBorder) &&
1759 (localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone )){
1774 if (
id.
station() == 1) index =
id.ring();
1775 else index =
id.station()*2 +
id.ring();
1776 if (
id.
endcap() == 1) index = index + 10;
1781 else if (flag == 2){
1783 if (
id.
station() == 1 &&
id.
ring() != 4) index =
id.ring()+1;
1784 if (
id.
station() == 1 &&
id.
ring() == 4) index = 1;
1785 if (
id.
station() != 1) index =
id.station()*2 +
id.ring();
1786 if (
id.
endcap() == 1) index = index + 10;
1796 int st =
id.station();
1798 int ch =
id.chamber();
1799 int ec =
id.endcap();
1801 if (st == 1 && ri == 1) kSerial = ch;
1802 if (st == 1 && ri == 2) kSerial = ch + 36;
1803 if (st == 1 && ri == 3) kSerial = ch + 72;
1804 if (st == 1 && ri == 4) kSerial = ch;
1805 if (st == 2 && ri == 1) kSerial = ch + 108;
1806 if (st == 2 && ri == 2) kSerial = ch + 126;
1807 if (st == 3 && ri == 1) kSerial = ch + 162;
1808 if (st == 3 && ri == 2) kSerial = ch + 180;
1809 if (st == 4 && ri == 1) kSerial = ch + 216;
1810 if (st == 4 && ri == 2) kSerial = ch + 234;
1811 if (ec == 2) kSerial = kSerial + 300;
1842 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)