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();
839 const CSCLayer* csclayer = cscGeom->layer( idrec );
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.;
944 const CSCChamber* cscchamber = cscGeom->chamber(
id);
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];
1359 const CSCChamber *segChamber = cscGeom->chamber(thisSegment->first);
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];
1524 const FEDRawData& fedData = rawdata->FEDData(
id);
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)
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
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)
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)