52 hOWires =
dbe->
book2D(
"hOWires",
"Wire Digi Occupancy",36,0.5,36.5,20,0.5,20.5);
55 hOStrips =
dbe->
book2D(
"hOStrips",
"Strip Digi Occupancy",36,0.5,36.5,20,0.5,20.5);
70 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_m42",
"Wire TBin Fired (ME -4/2); Time Bin (25ns)",17,-0.5,16.5));
71 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_m41",
"Wire TBin Fired (ME -4/1); Time Bin (25ns)",17,-0.5,16.5));
72 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_m32",
"Wire TBin Fired (ME -3/2); Time Bin (25ns)",17,-0.5,16.5));
73 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_m31",
"Wire TBin Fired (ME -3/1); Time Bin (25ns)",17,-0.5,16.5));
74 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_m22",
"Wire TBin Fired (ME -2/2); Time Bin (25ns)",17,-0.5,16.5));
75 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_m21",
"Wire TBin Fired (ME -2/1); Time Bin (25ns)",17,-0.5,16.5));
76 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_m11a",
"Wire TBin Fired (ME -1/1a); Time Bin (25ns)",17,-0.5,16.5));
77 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_m13",
"Wire TBin Fired (ME -1/3); Time Bin (25ns)",17,-0.5,16.5));
78 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_m12",
"Wire TBin Fired (ME -1/2); Time Bin (25ns)",17,-0.5,16.5));
79 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_m11b",
"Wire TBin Fired (ME -1/1b); Time Bin (25ns)",17,-0.5,16.5));
80 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_p11b",
"Wire TBin Fired (ME +1/1b); Time Bin (25ns)",17,-0.5,16.5));
81 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_p12",
"Wire TBin Fired (ME +1/2); Time Bin (25ns)",17,-0.5,16.5));
82 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_p13",
"Wire TBin Fired (ME +1/3); Time Bin (25ns)",17,-0.5,16.5));
83 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_p11a",
"Wire TBin Fired (ME +1/1a); Time Bin (25ns)",17,-0.5,16.5));
84 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_p21",
"Wire TBin Fired (ME +2/1); Time Bin (25ns)",17,-0.5,16.5));
85 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_p22",
"Wire TBin Fired (ME +2/2); Time Bin (25ns)",17,-0.5,16.5));
86 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_p31",
"Wire TBin Fired (ME +3/1); Time Bin (25ns)",17,-0.5,16.5));
87 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_p32",
"Wire TBin Fired (ME +3/2); Time Bin (25ns)",17,-0.5,16.5));
88 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_p41",
"Wire TBin Fired (ME +4/1); Time Bin (25ns)",17,-0.5,16.5));
89 hWireTBin.push_back(
dbe->
book1D(
"hWireTBin_p42",
"Wire TBin Fired (ME +4/2); Time Bin (25ns)",17,-0.5,16.5));
90 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_m42",
"Wiregroup Number Fired (ME -4/2); Wiregroup #",113,-0.5,112.5));
91 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_m41",
"Wiregroup Number Fired (ME -4/1); Wiregroup #",113,-0.5,112.5));
92 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_m32",
"Wiregroup Number Fired (ME -3/2); Wiregroup #",113,-0.5,112.5));
93 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_m31",
"Wiregroup Number Fired (ME -3/1); Wiregroup #",113,-0.5,112.5));
94 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_m22",
"Wiregroup Number Fired (ME -2/2); Wiregroup #",113,-0.5,112.5));
95 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_m21",
"Wiregroup Number Fired (ME -2/1); Wiregroup #",113,-0.5,112.5));
96 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_m11a",
"Wiregroup Number Fired (ME -1/1a); Wiregroup #",113,-0.5,112.5));
97 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_m13",
"Wiregroup Number Fired (ME -1/3); Wiregroup #",113,-0.5,112.5));
98 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_m12",
"Wiregroup Number Fired (ME -1/2); Wiregroup #",113,-0.5,112.5));
99 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_m11b",
"Wiregroup Number Fired (ME -1/1b); Wiregroup #",113,-0.5,112.5));
100 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_p11b",
"Wiregroup Number Fired (ME +1/1b); Wiregroup #",113,-0.5,112.5));
101 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_p12",
"Wiregroup Number Fired (ME +1/2); Wiregroup #",113,-0.5,112.5));
102 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_p13",
"Wiregroup Number Fired (ME +1/3); Wiregroup #",113,-0.5,112.5));
103 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_p11a",
"Wiregroup Number Fired (ME +1/1a); Wiregroup #",113,-0.5,112.5));
104 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_p21",
"Wiregroup Number Fired (ME +2/1); Wiregroup #",113,-0.5,112.5));
105 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_p22",
"Wiregroup Number Fired (ME +2/2); Wiregroup #",113,-0.5,112.5));
106 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_p31",
"Wiregroup Number Fired (ME +3/1); Wiregroup #",113,-0.5,112.5));
107 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_p32",
"Wiregroup Number Fired (ME +3/2); Wiregroup #",113,-0.5,112.5));
108 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_p41",
"Wiregroup Number Fired (ME +4/1); Wiregroup #",113,-0.5,112.5));
109 hWireNumber.push_back(
dbe->
book1D(
"hWireNumber_p42",
"Wiregroup Number Fired (ME +4/2); Wiregroup #",113,-0.5,112.5));
112 hStripNFired =
dbe->
book1D(
"hStripNFired",
"Fired Strips per Event; # Strips Fired (above 13 ADC)",101,-0.5,100.5);
113 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_m42",
"Strip Number Fired (ME -4/2); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
114 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_m41",
"Strip Number Fired (ME -4/1); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
115 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_m32",
"Strip Number Fired (ME -3/2); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
116 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_m31",
"Strip Number Fired (ME -3/1); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
117 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_m22",
"Strip Number Fired (ME -2/2); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
118 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_m21",
"Strip Number Fired (ME -2/1); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
119 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_m11a",
"Strip Number Fired (ME -1/1a); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
120 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_m13",
"Strip Number Fired (ME -1/3); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
121 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_m12",
"Strip Number Fired (ME -1/2); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
122 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_m11b",
"Strip Number Fired (ME -1/1b); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
123 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_p11b",
"Strip Number Fired (ME +1/1b); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
124 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_p12",
"Strip Number Fired (ME +1/2); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
125 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_p13",
"Strip Number Fired (ME +1/3); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
126 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_p11a",
"Strip Number Fired (ME +1/1a); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
127 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_p21",
"Strip Number Fired (ME +2/1); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
128 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_p22",
"Strip Number Fired (ME +2/2); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
129 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_p31",
"Strip Number Fired (ME +3/1); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
130 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_p32",
"Strip Number Fired (ME +3/2); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
131 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_p41",
"Strip Number Fired (ME +4/1); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
132 hStripNumber.push_back(
dbe->
book1D(
"hStripNumber_p42",
"Stripgroup Number Fired (ME +4/2); Strip # Fired (above 13 ADC)",81,-0.5,80.5));
136 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEm42",
"Pedestal Noise Distribution Chamber ME -4/2; ADC Counts",50,-25.,25.));
137 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEm41",
"Pedestal Noise Distribution Chamber ME -4/1; ADC Counts",50,-25.,25.));
138 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEm32",
"Pedestal Noise Distribution Chamber ME -3/2; ADC Counts",50,-25.,25.));
139 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEm31",
"Pedestal Noise Distribution Chamber ME -3/1; ADC Counts",50,-25.,25.));
140 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEm22",
"Pedestal Noise Distribution Chamber ME -2/2; ADC Counts",50,-25.,25.));
141 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEm21",
"Pedestal Noise Distribution Chamber ME -2/1; ADC Counts",50,-25.,25.));
142 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEm11a",
"Pedestal Noise Distribution Chamber ME -1/1; ADC Counts",50,-25.,25.));
143 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEm13",
"Pedestal Noise Distribution Chamber ME -1/3; ADC Counts",50,-25.,25.));
144 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEm12",
"Pedestal Noise Distribution Chamber ME -1/2; ADC Counts",50,-25.,25.));
145 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEm11b",
"Pedestal Noise Distribution Chamber ME -1/1; ADC Counts",50,-25.,25.));
146 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEp11b",
"Pedestal Noise Distribution Chamber ME +1/1; ADC Counts",50,-25.,25.));
147 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEp12",
"Pedestal Noise Distribution Chamber ME +1/2; ADC Counts",50,-25.,25.));
148 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEp13",
"Pedestal Noise Distribution Chamber ME +1/3; ADC Counts",50,-25.,25.));
149 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEp11a",
"Pedestal Noise Distribution Chamber ME +1/1; ADC Counts",50,-25.,25.));
150 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEp21",
"Pedestal Noise Distribution Chamber ME +2/1; ADC Counts",50,-25.,25.));
151 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEp22",
"Pedestal Noise Distribution Chamber ME +2/2; ADC Counts",50,-25.,25.));
152 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEp31",
"Pedestal Noise Distribution Chamber ME +3/1; ADC Counts",50,-25.,25.));
153 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEp32",
"Pedestal Noise Distribution Chamber ME +3/2; ADC Counts",50,-25.,25.));
154 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEp41",
"Pedestal Noise Distribution Chamber ME +4/1; ADC Counts",50,-25.,25.));
155 hStripPed.push_back(
dbe->
book1D(
"hStripPedMEp42",
"Pedestal Noise Distribution Chamber ME +4/2; ADC Counts",50,-25.,25.));
159 hRHnrechits =
dbe->
book1D(
"hRHnrechits",
"recHits per Event (all chambers); # of RecHits",50,0,50);
160 hRHGlobal.push_back(
dbe->
book2D(
"hRHGlobalp1",
"recHit global X,Y station +1; Global X (cm); Global Y (cm)",100,-800.,800.,100,-800.,800.));
161 hRHGlobal.push_back(
dbe->
book2D(
"hRHGlobalp2",
"recHit global X,Y station +2; Global X (cm); Global Y (cm)",100,-800.,800.,100,-800.,800.));
162 hRHGlobal.push_back(
dbe->
book2D(
"hRHGlobalp3",
"recHit global X,Y station +3; Global X (cm); Global Y (cm)",100,-800.,800.,100,-800.,800.));
163 hRHGlobal.push_back(
dbe->
book2D(
"hRHGlobalp4",
"recHit global X,Y station +4; Global X (cm); Global Y (cm)",100,-800.,800.,100,-800.,800.));
164 hRHGlobal.push_back(
dbe->
book2D(
"hRHGlobalm1",
"recHit global X,Y station -1; Global X (cm); Global Y (cm)",100,-800.,800.,100,-800.,800.));
165 hRHGlobal.push_back(
dbe->
book2D(
"hRHGlobalm2",
"recHit global X,Y station -2; Global X (cm); Global Y (cm)",100,-800.,800.,100,-800.,800.));
166 hRHGlobal.push_back(
dbe->
book2D(
"hRHGlobalm3",
"recHit global X,Y station -3; Global X (cm); Global Y (cm)",100,-800.,800.,100,-800.,800.));
167 hRHGlobal.push_back(
dbe->
book2D(
"hRHGlobalm4",
"recHit global X,Y station -4; Global X (cm); Global Y (cm)",100,-800.,800.,100,-800.,800.));
168 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQm42",
"Sum 3x3 recHit Charge (ME -4/2); ADC counts",100,0,2000));
169 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQm41",
"Sum 3x3 recHit Charge (ME -4/1); ADC counts",100,0,2000));
170 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQm32",
"Sum 3x3 recHit Charge (ME -3/2); ADC counts",100,0,2000));
171 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQm31",
"Sum 3x3 recHit Charge (ME -3/1); ADC counts",100,0,2000));
172 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQm22",
"Sum 3x3 recHit Charge (ME -2/2); ADC counts",100,0,2000));
173 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQm21",
"Sum 3x3 recHit Charge (ME -2/1); ADC counts",100,0,2000));
174 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQm11a",
"Sum 3x3 recHit Charge (ME -1/1a); ADC counts",100,0,4000));
175 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQm13",
"Sum 3x3 recHit Charge (ME -1/3); ADC counts",100,0,2000));
176 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQm12",
"Sum 3x3 recHit Charge (ME -1/2); ADC counts",100,0,2000));
177 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQm11b",
"Sum 3x3 recHit Charge (ME -1/1b); ADC counts",100,0,4000));
178 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQp11b",
"Sum 3x3 recHit Charge (ME +1/1b); ADC counts",100,0,4000));
179 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQp12",
"Sum 3x3 recHit Charge (ME +1/2); ADC counts",100,0,2000));
180 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQp13",
"Sum 3x3 recHit Charge (ME +1/3); ADC counts",100,0,2000));
181 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQp11a",
"Sum 3x3 recHit Charge (ME +1/1a); ADC counts",100,0,4000));
182 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQp21",
"Sum 3x3 recHit Charge (ME +2/1); ADC counts",100,0,2000));
183 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQp22",
"Sum 3x3 recHit Charge (ME +2/2); ADC counts",100,0,2000));
184 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQp31",
"Sum 3x3 recHit Charge (ME +3/1); ADC counts",100,0,2000));
185 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQp32",
"Sum 3x3 recHit Charge (ME +3/2); ADC counts",100,0,2000));
186 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQp41",
"Sum 3x3 recHit Charge (ME +4/1); ADC counts",100,0,2000));
187 hRHSumQ.push_back(
dbe->
book1D(
"hRHSumQp42",
"Sum 3x3 recHit Charge (ME +4/2); ADC counts",100,0,2000));
188 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQm42",
"Charge Ratio (Ql+Qr)/Qt (ME -4/2); (Ql+Qr)/Qt",100,-0.1,1.1));
189 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQm41",
"Charge Ratio (Ql+Qr)/Qt (ME -4/1); (Ql+Qr)/Qt",100,-0.1,1.1));
190 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQm32",
"Charge Ratio (Ql+Qr)/Qt (ME -3/2); (Ql+Qr)/Qt",100,-0.1,1.1));
191 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQm31",
"Charge Ratio (Ql+Qr)/Qt (ME -3/1); (Ql+Qr)/Qt",100,-0.1,1.1));
192 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQm22",
"Charge Ratio (Ql+Qr)/Qt (ME -2/2); (Ql+Qr)/Qt",100,-0.1,1.1));
193 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQm21",
"Charge Ratio (Ql+Qr)/Qt (ME -2/1); (Ql+Qr)/Qt",100,-0.1,1.1));
194 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQm11a",
"Charge Ratio (Ql+Qr)/Qt (ME -1/1a); (Ql+Qr)/Qt",100,-0.1,1.1));
195 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQm13",
"Charge Ratio (Ql+Qr)/Qt (ME -1/3); (Ql+Qr)/Qt",100,-0.1,1.1));
196 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQm12",
"Charge Ratio (Ql+Qr)/Qt (ME -1/2); (Ql+Qr)/Qt",100,-0.1,1.1));
197 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQm11b",
"Charge Ratio (Ql+Qr)/Qt (ME -1/1b); (Ql+Qr)/Qt",100,-0.1,1.1));
198 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQp11b",
"Charge Ratio (Ql+Qr)/Qt (ME +1/1b); (Ql+Qr)/Qt",100,-0.1,1.1));
199 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQp12",
"Charge Ratio (Ql+Qr)/Qt (ME +1/2); (Ql+Qr)/Qt",100,-0.1,1.1));
200 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQp13",
"Charge Ratio (Ql+Qr)/Qt (ME +1/3); (Ql+Qr)/Qt",100,-0.1,1.1));
201 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQp11a",
"Charge Ratio (Ql+Qr)/Qt (ME +1/1a); (Ql+Qr)/Qt",100,-0.1,1.1));
202 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQp21",
"Charge Ratio (Ql+Qr)/Qt (ME +2/1); (Ql+Qr)/Qt",100,-0.1,1.1));
203 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQp22",
"Charge Ratio (Ql+Qr)/Qt (ME +2/2); (Ql+Qr)/Qt",100,-0.1,1.1));
204 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQp31",
"Charge Ratio (Ql+Qr)/Qt (ME +3/1); (Ql+Qr)/Qt",100,-0.1,1.1));
205 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQp32",
"Charge Ratio (Ql+Qr)/Qt (ME +3/2); (Ql+Qr)/Qt",100,-0.1,1.1));
206 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQp41",
"Charge Ratio (Ql+Qr)/Qt (ME +4/1); (Ql+Qr)/Qt",100,-0.1,1.1));
207 hRHRatioQ.push_back(
dbe->
book1D(
"hRHRatioQp42",
"Charge Ratio (Ql+Qr)/Qt (ME +4/2); (Ql+Qr)/Qt",100,-0.1,1.1));
208 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingm42",
"recHit Time (ME -4/2); ns",200,-500.,500.));
209 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingm41",
"recHit Time (ME -4/1); ns",200,-500.,500.));
210 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingm32",
"recHit Time (ME -3/2); ns",200,-500.,500.));
211 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingm31",
"recHit Time (ME -3/1); ns",200,-500.,500.));
212 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingm22",
"recHit Time (ME -2/2); ns",200,-500.,500.));
213 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingm21",
"recHit Time (ME -2/1); ns",200,-500.,500.));
214 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingm11a",
"recHit Time (ME -1/1a); ns",200,-500.,500.));
215 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingm13",
"recHit Time (ME -1/3); ns",200,-500.,500.));
216 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingm12",
"recHit Time (ME -1/2); ns",200,-500.,500.));
217 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingm11b",
"recHit Time (ME -1/1b); ns",200,-500.,500.));
218 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingp11b",
"recHit Time (ME +1/1b); ns",200,-500.,500.));
219 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingp12",
"recHit Time (ME +1/2); ns",200,-500.,500.));
220 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingp13",
"recHit Time (ME +1/3); ns",200,-500.,500.));
221 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingp11a",
"recHit Time (ME +1/1a); ns",200,-500.,500.));
222 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingp21",
"recHit Time (ME +2/1); ns",200,-500.,500.));
223 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingp22",
"recHit Time (ME +2/2); ns",200,-500.,500.));
224 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingp31",
"recHit Time (ME +3/1); ns",200,-500.,500.));
225 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingp32",
"recHit Time (ME +3/2); ns",200,-500.,500.));
226 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingp41",
"recHit Time (ME +4/1); ns",200,-500.,500.));
227 hRHTiming.push_back(
dbe->
book1D(
"hRHTimingp42",
"recHit Time (ME +4/2); ns",200,-500.,500.));
248 hRHstpos.push_back(
dbe->
book1D(
"hRHstposm42",
"Reconstructed Position on Strip (ME -4/2); Strip Widths",120,-0.6,0.6));
249 hRHstpos.push_back(
dbe->
book1D(
"hRHstposm41",
"Reconstructed Position on Strip (ME -4/1); Strip Widths",120,-0.6,0.6));
250 hRHstpos.push_back(
dbe->
book1D(
"hRHstposm32",
"Reconstructed Position on Strip (ME -3/2); Strip Widths",120,-0.6,0.6));
251 hRHstpos.push_back(
dbe->
book1D(
"hRHstposm31",
"Reconstructed Position on Strip (ME -3/1); Strip Widths",120,-0.6,0.6));
252 hRHstpos.push_back(
dbe->
book1D(
"hRHstposm22",
"Reconstructed Position on Strip (ME -2/2); Strip Widths",120,-0.6,0.6));
253 hRHstpos.push_back(
dbe->
book1D(
"hRHstposm21",
"Reconstructed Position on Strip (ME -2/1); Strip Widths",120,-0.6,0.6));
254 hRHstpos.push_back(
dbe->
book1D(
"hRHstposm11a",
"Reconstructed Position on Strip (ME -1/1a); Strip Widths",120,-0.6,0.6));
255 hRHstpos.push_back(
dbe->
book1D(
"hRHstposm13",
"Reconstructed Position on Strip (ME -1/3); Strip Widths",120,-0.6,0.6));
256 hRHstpos.push_back(
dbe->
book1D(
"hRHstposm12",
"Reconstructed Position on Strip (ME -1/2); Strip Widths",120,-0.6,0.6));
257 hRHstpos.push_back(
dbe->
book1D(
"hRHstposm11b",
"Reconstructed Position on Strip (ME -1/1b); Strip Widths",120,-0.6,0.6));
258 hRHstpos.push_back(
dbe->
book1D(
"hRHstposp11b",
"Reconstructed Position on Strip (ME +1/1b); Strip Widths",120,-0.6,0.6));
259 hRHstpos.push_back(
dbe->
book1D(
"hRHstposp12",
"Reconstructed Position on Strip (ME +1/2); Strip Widths",120,-0.6,0.6));
260 hRHstpos.push_back(
dbe->
book1D(
"hRHstposp13",
"Reconstructed Position on Strip (ME +1/3); Strip Widths",120,-0.6,0.6));
261 hRHstpos.push_back(
dbe->
book1D(
"hRHstposp11a",
"Reconstructed Position on Strip (ME +1/1a); Strip Widths",120,-0.6,0.6));
262 hRHstpos.push_back(
dbe->
book1D(
"hRHstposp21",
"Reconstructed Position on Strip (ME +2/1); Strip Widths",120,-0.6,0.6));
263 hRHstpos.push_back(
dbe->
book1D(
"hRHstposp22",
"Reconstructed Position on Strip (ME +2/2); Strip Widths",120,-0.6,0.6));
264 hRHstpos.push_back(
dbe->
book1D(
"hRHstposp31",
"Reconstructed Position on Strip (ME +3/1); Strip Widths",120,-0.6,0.6));
265 hRHstpos.push_back(
dbe->
book1D(
"hRHstposp32",
"Reconstructed Position on Strip (ME +3/2); Strip Widths",120,-0.6,0.6));
266 hRHstpos.push_back(
dbe->
book1D(
"hRHstposp41",
"Reconstructed Position on Strip (ME +4/1); Strip Widths",120,-0.6,0.6));
267 hRHstpos.push_back(
dbe->
book1D(
"hRHstposp42",
"Reconstructed Position on Strip (ME +4/2); Strip Widths",120,-0.6,0.6));
268 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrm42",
"Estimated Error on Strip Measurement (ME -4/2); Strip Widths",75,-0.01,0.24));
269 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrm41",
"Estimated Error on Strip Measurement (ME -4/1); Strip Widths",75,-0.01,0.24));
270 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrm32",
"Estimated Error on Strip Measurement (ME -3/2); Strip Widths",75,-0.01,0.24));
271 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrm31",
"Estimated Error on Strip Measurement (ME -3/1); Strip Widths",75,-0.01,0.24));
272 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrm22",
"Estimated Error on Strip Measurement (ME -2/2); Strip Widths",75,-0.01,0.24));
273 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrm21",
"Estimated Error on Strip Measurement (ME -2/1); Strip Widths",75,-0.01,0.24));
274 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrm11a",
"Estimated Error on Strip Measurement (ME -1/1a); Strip Widths",75,-0.01,0.24));
275 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrm13",
"Estimated Error on Strip Measurement (ME -1/3); Strip Widths",75,-0.01,0.24));
276 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrm12",
"Estimated Error on Strip Measurement (ME -1/2); Strip Widths",75,-0.01,0.24));
277 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrm11b",
"Estimated Error on Strip Measurement (ME -1/1b); Strip Widths",75,-0.01,0.24));
278 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrp11b",
"Estimated Error on Strip Measurement (ME +1/1b); Strip Widths",75,-0.01,0.24));
279 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrp12",
"Estimated Error on Strip Measurement (ME +1/2); Strip Widths",75,-0.01,0.24));
280 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrp13",
"Estimated Error on Strip Measurement (ME +1/3); Strip Widths",75,-0.01,0.24));
281 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrp11a",
"Estimated Error on Strip Measurement (ME +1/1a); Strip Widths",75,-0.01,0.24));
282 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrp21",
"Estimated Error on Strip Measurement (ME +2/1); Strip Widths",75,-0.01,0.24));
283 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrp22",
"Estimated Error on Strip Measurement (ME +2/2); Strip Widths",75,-0.01,0.24));
284 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrp31",
"Estimated Error on Strip Measurement (ME +3/1); Strip Widths",75,-0.01,0.24));
285 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrp32",
"Estimated Error on Strip Measurement (ME +3/2); Strip Widths",75,-0.01,0.24));
286 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrp41",
"Estimated Error on Strip Measurement (ME +4/1); Strip Widths",75,-0.01,0.24));
287 hRHsterr.push_back(
dbe->
book1D(
"hRHsterrp42",
"Estimated Error on Strip Measurement (ME +4/2); Strip Widths",75,-0.01,0.24));
292 hSnSegments =
dbe->
book1D(
"hSnSegments",
"Number of Segments per Event; # of Segments",11,-0.5,10.5);
294 hSnhits.push_back(
dbe->
book1D(
"hSnhitsm42",
"# of hits on Segments (ME -4/2); # of hits",8,-0.5,7.5));
295 hSnhits.push_back(
dbe->
book1D(
"hSnhitsm41",
"# of hits on Segments (ME -4/1); # of hits",8,-0.5,7.5));
296 hSnhits.push_back(
dbe->
book1D(
"hSnhitsm32",
"# of hits on Segments (ME -3/2); # of hits",8,-0.5,7.5));
297 hSnhits.push_back(
dbe->
book1D(
"hSnhitsm31",
"# of hits on Segments (ME -3/1); # of hits",8,-0.5,7.5));
298 hSnhits.push_back(
dbe->
book1D(
"hSnhitsm22",
"# of hits on Segments (ME -2/2); # of hits",8,-0.5,7.5));
299 hSnhits.push_back(
dbe->
book1D(
"hSnhitsm21",
"# of hits on Segments (ME -2/1); # of hits",8,-0.5,7.5));
300 hSnhits.push_back(
dbe->
book1D(
"hSnhitsm11a",
"# of hits on Segments (ME -1/1a); # of hits",8,-0.5,7.5));
301 hSnhits.push_back(
dbe->
book1D(
"hSnhitsm13",
"# of hits on Segments (ME -1/3); # of hits",8,-0.5,7.5));
302 hSnhits.push_back(
dbe->
book1D(
"hSnhitsm12",
"# of hits on Segments (ME -1/2); # of hits",8,-0.5,7.5));
303 hSnhits.push_back(
dbe->
book1D(
"hSnhitsm11b",
"# of hits on Segments (ME -1/1b); # of hits",8,-0.5,7.5));
304 hSnhits.push_back(
dbe->
book1D(
"hSnhitsp11b",
"# of hits on Segments (ME +1/1b); # of hits",8,-0.5,7.5));
305 hSnhits.push_back(
dbe->
book1D(
"hSnhitsp12",
"# of hits on Segments (ME +1/2); # of hits",8,-0.5,7.5));
306 hSnhits.push_back(
dbe->
book1D(
"hSnhitsp13",
"# of hits on Segments (ME +1/3); # of hits",8,-0.5,7.5));
307 hSnhits.push_back(
dbe->
book1D(
"hSnhitsp11a",
"# of hits on Segments (ME +1/1a); # of hits",8,-0.5,7.5));
308 hSnhits.push_back(
dbe->
book1D(
"hSnhitsp21",
"# of hits on Segments (ME +2/1); # of hits",8,-0.5,7.5));
309 hSnhits.push_back(
dbe->
book1D(
"hSnhitsp22",
"# of hits on Segments (ME +2/2); # of hits",8,-0.5,7.5));
310 hSnhits.push_back(
dbe->
book1D(
"hSnhitsp31",
"# of hits on Segments (ME +3/1); # of hits",8,-0.5,7.5));
311 hSnhits.push_back(
dbe->
book1D(
"hSnhitsp32",
"# of hits on Segments (ME +3/2); # of hits",8,-0.5,7.5));
312 hSnhits.push_back(
dbe->
book1D(
"hSnhitsp41",
"# of hits on Segments (ME +4/1); # of hits",8,-0.5,7.5));
313 hSnhits.push_back(
dbe->
book1D(
"hSnhitsp42",
"# of hits on Segments (ME +4/2); # of hits",8,-0.5,7.5));
315 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqm42",
"Segment Normalized Chi2 (ME -4/2); Chi2/ndof",110,-0.05,10.5));
316 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqm41",
"Segment Normalized Chi2 (ME -4/1); Chi2/ndof",110,-0.05,10.5));
317 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqm32",
"Segment Normalized Chi2 (ME -3/2); Chi2/ndof",110,-0.05,10.5));
318 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqm31",
"Segment Normalized Chi2 (ME -3/1); Chi2/ndof",110,-0.05,10.5));
319 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqm22",
"Segment Normalized Chi2 (ME -2/2); Chi2/ndof",110,-0.05,10.5));
320 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqm21",
"Segment Normalized Chi2 (ME -2/1); Chi2/ndof",110,-0.05,10.5));
321 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqm11a",
"Segment Normalized Chi2 (ME -1/1a); Chi2/ndof",110,-0.05,10.5));
322 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqm13",
"Segment Normalized Chi2 (ME -1/3); Chi2/ndof",110,-0.05,10.5));
323 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqm12",
"Segment Normalized Chi2 (ME -1/2); Chi2/ndof",110,-0.05,10.5));
324 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqm11b",
"Segment Normalized Chi2 (ME -1/1b); Chi2/ndof",110,-0.05,10.5));
325 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqp11b",
"Segment Normalized Chi2 (ME +1/1b); Chi2/ndof",110,-0.05,10.5));
326 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqp12",
"Segment Normalized Chi2 (ME +1/2); Chi2/ndof",110,-0.05,10.5));
327 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqp13",
"Segment Normalized Chi2 (ME +1/3); Chi2/ndof",110,-0.05,10.5));
328 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqp11a",
"Segment Normalized Chi2 (ME +1/1a); Chi2/ndof",110,-0.05,10.5));
329 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqp21",
"Segment Normalized Chi2 (ME +2/1); Chi2/ndof",110,-0.05,10.5));
330 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqp22",
"Segment Normalized Chi2 (ME +2/2); Chi2/ndof",110,-0.05,10.5));
331 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqp31",
"Segment Normalized Chi2 (ME +3/1); Chi2/ndof",110,-0.05,10.5));
332 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqp32",
"Segment Normalized Chi2 (ME +3/2); Chi2/ndof",110,-0.05,10.5));
333 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqp41",
"Segment Normalized Chi2 (ME +4/1); Chi2/ndof",110,-0.05,10.5));
334 hSChiSq.push_back(
dbe->
book1D(
"hSChiSqp42",
"Segment Normalized Chi2 (ME +4/2); Chi2/ndof",110,-0.05,10.5));
336 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbm42",
"Segment chi2 Probability (ME -4/2); Probability",110,-0.05,1.05));
337 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbm41",
"Segment chi2 Probability (ME -4/1); Probability",110,-0.05,1.05));
338 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbm32",
"Segment chi2 Probability (ME -3/2); Probability",110,-0.05,1.05));
339 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbm31",
"Segment chi2 Probability (ME -3/1); Probability",110,-0.05,1.05));
340 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbm22",
"Segment chi2 Probability (ME -2/2); Probability",110,-0.05,1.05));
341 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbm21",
"Segment chi2 Probability (ME -2/1); Probability",110,-0.05,1.05));
342 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbm11a",
"Segment chi2 Probability (ME -1/1a); Probability",110,-0.05,1.05));
343 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbm13",
"Segment chi2 Probability (ME -1/3); Probability",110,-0.05,1.05));
344 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbm12",
"Segment chi2 Probability (ME -1/2); Probability",110,-0.05,1.05));
345 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbm11b",
"Segment chi2 Probability (ME -1/1b); Probability",110,-0.05,1.05));
346 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbp11b",
"Segment chi2 Probability (ME +1/1b); Probability",110,-0.05,1.05));
347 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbp12",
"Segment chi2 Probability (ME +1/2); Probability",110,-0.05,1.05));
348 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbp13",
"Segment chi2 Probability (ME +1/3); Probability",110,-0.05,1.05));
349 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbp11a",
"Segment chi2 Probability (ME +1/1a); Probability",110,-0.05,1.05));
350 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbp21",
"Segment chi2 Probability (ME +2/1); Probability",110,-0.05,1.05));
351 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbp22",
"Segment chi2 Probability (ME +2/2); Probability",110,-0.05,1.05));
352 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbp31",
"Segment chi2 Probability (ME +3/1); Probability",110,-0.05,1.05));
353 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbp32",
"Segment chi2 Probability (ME +3/2); Probability",110,-0.05,1.05));
354 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbp41",
"Segment chi2 Probability (ME +4/1); Probability",110,-0.05,1.05));
355 hSChiSqProb.push_back(
dbe->
book1D(
"hSChiSqProbp42",
"Segment chi2 Probability (ME +4/2); Probability",110,-0.05,1.05));
356 hSGlobalTheta =
dbe->
book1D(
"hSGlobalTheta",
"Segment Direction (Global Theta); Global Theta (radians)",136,-0.1,3.3);
357 hSGlobalPhi =
dbe->
book1D(
"hSGlobalPhi",
"Segment Direction (Global Phi); Global Phi (radians)", 128,-3.2,3.2);
360 hSTimeVsZ =
dbe->
book2D(
"hSTimeVsZ",
"Segment Time vs. Z; [ns] vs. [cm]",200,-1200,1200,200,-200,200);
361 hSTimeVsTOF =
dbe->
book2D(
"hSTimeVsTOF",
"Segment Time vs. Distance from IP; [ns] vs. [cm]",180,500,1400, 200,-200,200);
364 hSResid.push_back(
dbe->
book1D(
"hSResidm42",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -4/2); Strip Widths",100,-0.5,0.5));
365 hSResid.push_back(
dbe->
book1D(
"hSResidm41",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -4/1); Strip Widths",100,-0.5,0.5));
366 hSResid.push_back(
dbe->
book1D(
"hSResidm32",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -3/2); Strip Widths",100,-0.5,0.5));
367 hSResid.push_back(
dbe->
book1D(
"hSResidm31",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -3/1); Strip Widths",100,-0.5,0.5));
368 hSResid.push_back(
dbe->
book1D(
"hSResidm22",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -2/2); Strip Widths",100,-0.5,0.5));
369 hSResid.push_back(
dbe->
book1D(
"hSResidm21",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -2/1); Strip Widths",100,-0.5,0.5));
370 hSResid.push_back(
dbe->
book1D(
"hSResidm11a",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/1a); Strip Widths",100,-0.5,0.5));
371 hSResid.push_back(
dbe->
book1D(
"hSResidm13",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/3); Strip Widths",100,-0.5,0.5));
372 hSResid.push_back(
dbe->
book1D(
"hSResidm12",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/2); Strip Widths",100,-0.5,0.5));
373 hSResid.push_back(
dbe->
book1D(
"hSResidm11b",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME -1/1b); Strip Widths",100,-0.5,0.5));
374 hSResid.push_back(
dbe->
book1D(
"hSResidp11b",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/1b); Strip Widths",100,-0.5,0.5));
375 hSResid.push_back(
dbe->
book1D(
"hSResidp12",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/2); Strip Widths",100,-0.5,0.5));
376 hSResid.push_back(
dbe->
book1D(
"hSResidp13",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/3); Strip Widths",100,-0.5,0.5));
377 hSResid.push_back(
dbe->
book1D(
"hSResidp11a",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +1/1a); Strip Widths",100,-0.5,0.5));
378 hSResid.push_back(
dbe->
book1D(
"hSResidp21",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +2/1); Strip Widths",100,-0.5,0.5));
379 hSResid.push_back(
dbe->
book1D(
"hSResidp22",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +2/2); Strip Widths",100,-0.5,0.5));
380 hSResid.push_back(
dbe->
book1D(
"hSResidp31",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +3/1); Strip Widths",100,-0.5,0.5));
381 hSResid.push_back(
dbe->
book1D(
"hSResidp32",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +3/2); Strip Widths",100,-0.5,0.5));
382 hSResid.push_back(
dbe->
book1D(
"hSResidp41",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +4/1); Strip Widths",100,-0.5,0.5));
383 hSResid.push_back(
dbe->
book1D(
"hSResidp42",
"Fitted Position on Strip - Reconstructed for Layer 3 (ME +4/2); Strip Widths",100,-0.5,0.5));
397 hSEff2 =
dbe->
book2D(
"hSEff2",
"Segment Efficiency 2D",36,0.5,36.5, 18, 0.5, 18.5);
398 hRHEff2 =
dbe->
book2D(
"hRHEff2",
"recHit Efficiency 2D",36,0.5,36.5, 18, 0.5, 18.5);
399 hStripReadoutEff2 =
dbe->
book2D(
"hStripReadoutEff2",
"strip readout ratio [(strip+clct+wires)/(clct+wires)] 2D",36,0.5,36.5, 20, 0.5, 20.5);
407 hALCTgetBX =
dbe->
book1D(
"hALCTgetBX",
"ALCT position in ALCT-L1A match window [BX]",7,-0.5,6.5);
409 hALCTgetBXSerial =
dbe->
book2D(
"hALCTgetBXSerial",
"ALCT position in ALCT-L1A match window [BX]",601,-0.5,600.5,7,-0.5,6.5);
416 hALCTMatch =
dbe->
book1D(
"hALCTMatch",
"ALCT position in ALCT-CLCT match window [BX]",7,-0.5,6.5);
418 hALCTMatchSerial =
dbe->
book2D(
"hALCTMatchSerial",
"ALCT position in ALCT-CLCT match window [BX]",601,-0.5,600.5,7,-0.5,6.5);
425 hCLCTL1A =
dbe->
book1D(
"hCLCTL1A",
"L1A - CLCTpreTrigger at TMB [BX]",10,149.5,159.5);
427 hCLCTL1ASerial =
dbe->
book2D(
"hCLCTL1ASerial",
"L1A - CLCTpreTrigger at TMB [BX]",601,-0.5,600.5,10,149.5,159.5);
490 hRHEff =
dbe->
get(
"CSC/CSCOfflineMonitor/Efficiency/hRHEff");
491 hSEff =
dbe->
get(
"CSC/CSCOfflineMonitor/Efficiency/hSEff");
492 hSEff2 =
dbe->
get(
"CSC/CSCOfflineMonitor/Efficiency/hSEff2");
493 hRHEff2 =
dbe->
get(
"CSC/CSCOfflineMonitor/Efficiency/hRHEff2");
563 for (
int biny = 0; biny < hNum->
getNbinsY()+1 ; biny++){
564 for (
int binx = 0; binx < hNum->
getNbinsX()+1 ; binx++){
567 meMean1D->
Fill(mean);
581 TH1D* hproj = h->ProjectionX(
"hproj");
583 for (
int binx = 0; binx < h->GetNbinsX()+1 ; binx++){
584 Double_t
entries = hproj->GetBinContent(binx);
585 for (Int_t biny=1;biny <= h->GetNbinsY();biny++) {
586 Double_t cxy = h->GetBinContent(binx,biny);
587 if (cxy > 0 && entries>0) h->SetBinContent(binx,biny,cxy/entries);
607 event.getByToken(
sd_token, strips );
608 event.getByToken(
wd_token, wires );
609 event.getByToken(
al_token, alcts );
610 event.getByToken(
cl_token, clcts );
618 event.getByToken(
rh_token, recHits );
622 event.getByToken(
se_token, cscSegments );
645 bool clcto[2][4][4][36];
646 bool wireo[2][4][4][36];
647 bool stripo[2][4][4][36];
648 bool rechito[2][4][4][36];
649 bool segmento[2][4][4][36];
651 bool hasWires =
false;
652 bool hasStrips =
false;
653 bool hasRecHits =
false;
654 bool hasSegments =
false;
656 for (
int e = 0;
e < 2;
e++){
657 for (
int s = 0;
s < 4;
s++){
658 for (
int r = 0;
r < 4;
r++){
659 for (
int c = 0;
c < 36;
c++){
660 clcto[
e][
s][
r][
c] =
false;
661 wireo[
e][
s][
r][
c] =
false;
662 stripo[
e][
s][
r][
c] =
false;
663 rechito[
e][
s][
r][
c] =
false;
664 segmento[
e][
s][
r][
c] =
false;
673 int kEndcap =
id.
endcap();
674 int kRing =
id.ring();
675 int kStation =
id.station();
676 int kChamber =
id.chamber();
680 if((*digiIt).isValid()){
682 if( kStation ==1 && kRing==1 && (*digiIt).getKeyStrip()>128)
684 clcto[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
692 int kEndcap =
id.
endcap();
693 int kRing =
id.ring();
694 int kStation =
id.station();
695 int kChamber =
id.chamber();
696 std::vector<CSCWireDigi>::const_iterator wireIt = (*wi).second.first;
697 std::vector<CSCWireDigi>::const_iterator lastWire = (*wi).second.second;
698 for( ; wireIt != lastWire; ++wireIt){
699 if (!wireo[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
700 wireo[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
704 if( clcto[kEndcap-1][kStation-1][kRing-1][kChamber-1])
707 if (kStation==1 && kRing==1 && clcto[kEndcap-1][kStation-1][3][kChamber-1]){
718 int kEndcap =
id.
endcap();
719 int kRing =
id.ring();
720 int kStation =
id.station();
721 int kChamber =
id.chamber();
722 std::vector<CSCStripDigi>::const_iterator stripIt = (*si).second.first;
723 std::vector<CSCStripDigi>::const_iterator lastStrip = (*si).second.second;
724 for( ; stripIt != lastStrip; ++stripIt) {
725 std::vector<int> myADCVals = stripIt->getADCCounts();
726 bool thisStripFired =
false;
727 float thisPedestal = 0.5*(float)(myADCVals[0]+myADCVals[1]);
730 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
731 diff = (float)myADCVals[iCount]-thisPedestal;
732 if (diff > threshold) { thisStripFired =
true; }
734 if (thisStripFired) {
735 if (!stripo[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
736 stripo[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
740 if (clcto[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
743 if(wireo[kEndcap-1][kStation-1][kRing-1][kChamber-1] || (kRing==4 && wireo[kEndcap-1][kStation-1][0][kChamber-1]) ){
754 for (recIt = recHits->begin(); recIt != recHits->end(); recIt++) {
756 int kEndcap = idrec.
endcap();
757 int kRing = idrec.
ring();
758 int kStation = idrec.
station();
759 int kChamber = idrec.
chamber();
760 if (!rechito[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
761 rechito[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
771 int kEndcap =
id.
endcap();
772 int kRing =
id.ring();
773 int kStation =
id.station();
774 int kChamber =
id.chamber();
775 if (!segmento[kEndcap-1][kStation-1][kRing-1][kChamber-1]){
776 segmento[kEndcap-1][kStation-1][kRing-1][kChamber-1] =
true;
803 int nWireGroupsTotal = 0;
806 std::vector<CSCWireDigi>::const_iterator wireIter = (*dWDiter).second.first;
807 std::vector<CSCWireDigi>::const_iterator lWire = (*dWDiter).second.second;
808 for( ; wireIter != lWire; ++wireIter) {
809 int myWire = wireIter->getWireGroup();
810 int myTBin = wireIter->getTimeBin();
818 if (nWireGroupsTotal == 0) nWireGroupsTotal = -1;
832 int nStripsFired = 0;
835 std::vector<CSCStripDigi>::const_iterator stripIter = (*dSDiter).second.first;
836 std::vector<CSCStripDigi>::const_iterator lStrip = (*dSDiter).second.second;
837 for( ; stripIter != lStrip; ++stripIter) {
838 int myStrip = stripIter->getStrip();
839 std::vector<int> myADCVals = stripIter->getADCCounts();
840 bool thisStripFired =
false;
841 float thisPedestal = 0.5*(float)(myADCVals[0]+myADCVals[1]);
844 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
845 diff = (float)myADCVals[iCount]-thisPedestal;
846 if (diff > threshold) { thisStripFired =
true; }
848 if (thisStripFired) {
856 if (nStripsFired == 0) nStripsFired = -1;
874 int kRing =
id.ring();
875 std::vector<CSCStripDigi>::const_iterator pedIt = (*dPNiter).second.first;
876 std::vector<CSCStripDigi>::const_iterator lStrip = (*dPNiter).second.second;
877 for( ; pedIt != lStrip; ++pedIt) {
878 int myStrip = pedIt->getStrip();
879 std::vector<int> myADCVals = pedIt->getADCCounts();
880 float TotalADC =
getSignal(*strips,
id, myStrip);
881 bool thisStripFired =
false;
882 float thisPedestal = 0.5*(float)(myADCVals[0]+myADCVals[1]);
883 float thisSignal = (1./6)*(myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
885 if(kStation == 1 && kRing == 4)
888 if(myStrip <= 16) myStrip += 64;
890 if (TotalADC > threshold) { thisStripFired =
true;}
891 if (!thisStripFired){
892 float ADC = thisSignal - thisPedestal;
912 int nRecHits = recHits->size();
919 for (dRHIter = recHits->begin(); dRHIter != recHits->end(); dRHIter++) {
925 LocalPoint rhitlocal = (*dRHIter).localPosition();
930 float stpos = (*dRHIter).positionWithinStrip();
931 float sterr = (*dRHIter).errorWithinStrip();
935 int adcsize = dRHIter->nStrips()*dRHIter->nTimeBins();
938 for (
unsigned int i = 0;
i < dRHIter->nStrips();
i++){
939 for (
unsigned int j=0;
j<dRHIter->nTimeBins()-1;
j++) {
940 rHSumQ+=dRHIter->adcs(
i,
j);
941 if (
i != 1 ) sumsides += dRHIter->adcs(
i,
j);
945 float rHratioQ = sumsides/rHSumQ;
946 if (adcsize != 12) rHratioQ = -99;
949 float rHtime = (*dRHIter).tpeak();
950 float rHtimeAnode = (*dRHIter).wireTime();
953 const CSCLayer* csclayer = cscGeom->layer( idrec );
957 float grecx = rhitglobal.
x();
958 float grecy = rhitglobal.
y();
963 hRHSumQ[tIndex-1]->Fill(rHSumQ);
973 if (nRecHits == 0) nRecHits = -1;
989 int nSegments = cscSegments->size();
993 float chisq = (*dSiter).chi2();
994 int nhits = (*dSiter).nRecHits();
995 int nDOF = 2*nhits-4;
996 float nChi2 = chisq/nDOF;
998 LocalPoint localPos = (*dSiter).localPosition();
1002 float timeCathode = 0;
1003 float timeAnode = 0;
1004 float timeCombined = 0;
1005 std::vector<float> cathodeTimes;
1006 std::vector<float> anodeTimes;
1008 std::vector<CSCRecHit2D> theseRecHits = (*dSiter).specificRecHits();
1009 for ( vector<CSCRecHit2D>::const_iterator iRH = theseRecHits.begin(); iRH != theseRecHits.end(); iRH++) {
1010 if ( !((*iRH).isValid()) )
continue;
1011 cathodeTimes.push_back((*iRH).tpeak());
1012 anodeTimes.push_back((*iRH).wireTime());
1016 for (
unsigned int i=0;
i<cathodeTimes.size();
i++)
1017 timeCathode+=cathodeTimes[
i]/cathodeTimes.size();
1021 bool modified =
false;
1022 std::vector<float>::iterator anodeMaxHit;
1024 if (anodeTimes.size()==0)
continue;
1030 for (
unsigned int j=0;
j<anodeTimes.size();
j++) timeAnode+=anodeTimes[
j]/anodeTimes.size();
1033 for (
unsigned int j=0;
j<anodeTimes.size();
j++) {
1034 if (fabs(anodeTimes[
j]-timeAnode)>anodeMaxDiff) {
1035 anodeMaxHit=anodeTimes.begin()+
j;
1036 anodeMaxDiff=fabs(anodeTimes[
j]-timeAnode);
1041 if (anodeMaxDiff>26) {
1043 anodeTimes.erase(anodeMaxHit);
1048 if(cathodeTimes.size()+anodeTimes.size() >0 )
1049 timeCombined = (timeCathode*cathodeTimes.size() + timeAnode*anodeTimes.size())/(cathodeTimes.size()+anodeTimes.size());
1056 float globTheta = 0.;
1058 const CSCChamber* cscchamber = cscGeom->chamber(
id);
1061 globX = globalPosition.
x();
1062 globY = globalPosition.
y();
1063 globZ = globalPosition.
z();
1064 globTOF =
sqrt(globX*globX+globY*globY+globZ*globZ);
1066 globTheta = globalDirection.
theta();
1067 globPhi = globalDirection.
phi();
1073 hSnhits[tIndex-1]->Fill(nhits);
1075 hSChiSq[tIndex-1]->Fill(nChi2);
1087 if (nSegments == 0) nSegments = -1;
1104 std::vector<CSCRecHit2D> theseRecHits = (*dSiter).specificRecHits();
1105 int nRH = (*dSiter).nRecHits();
1107 CLHEP::HepMatrix sp(6,1);
1108 CLHEP::HepMatrix se(6,1);
1109 for ( vector<CSCRecHit2D>::const_iterator iRH = theseRecHits.begin(); iRH != theseRecHits.end(); iRH++) {
1113 int kRing = idRH.
ring();
1114 int kStation = idRH.
station();
1119 int centerid = iRH->nStrips()/2 + 1;
1120 int centerStrip = iRH->channels(centerid - 1);
1124 float stpos = (*iRH).positionWithinStrip();
1125 se(kLayer,1) = (*iRH).errorWithinStrip();
1127 if (kStation == 1 && (kRing == 1 || kRing == 4)) sp(kLayer,1) = stpos + centerStrip;
1129 if (kLayer == 1 || kLayer == 3 || kLayer == 5) sp(kLayer,1) = stpos + centerStrip;
1130 if (kLayer == 2 || kLayer == 4 || kLayer == 6) sp(kLayer,1) = stpos - 0.5 + centerStrip;
1136 float residual = -99;
1139 float expected =
fitX(sp,se);
1140 residual = expected - sp(3,1);
1166 for (
int i=1;
i<7;
i++){
1170 Sy = Sy + (points(
i,1)/sigma2);
1171 Sx = Sx + ((
i)/sigma2);
1172 Sxx = Sxx + (
i*
i)/sigma2;
1173 Sxy = Sxy + (((
i)*points(
i,1))/sigma2);
1177 float delta = S*Sxx - Sx*Sx;
1178 float intercept = (Sxx*Sy - Sx*Sxy)/delta;
1179 float slope = (S*Sxy - Sx*Sy)/delta;
1181 return (intercept + slope*3);
1207 for (sIt = stripdigis.begin(); sIt != stripdigis.end(); sIt++){
1212 vector<CSCStripDigi>::const_iterator digiItr = (*sIt).second.first;
1213 vector<CSCStripDigi>::const_iterator
last = (*sIt).second.second;
1214 for ( ; digiItr !=
last; ++digiItr ) {
1215 int thisStrip = digiItr->getStrip();
1216 if (thisStrip == (centerStrip)){
1217 std::vector<int> myADCVals = digiItr->getADCCounts();
1218 float thisPedestal = 0.5*(float)(myADCVals[0]+myADCVals[1]);
1219 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1220 SigADC[0] = thisSignal - 6*thisPedestal;
1223 if (thisStrip == (centerStrip+1)){
1224 std::vector<int> myADCVals = digiItr->getADCCounts();
1225 float thisPedestal = 0.5*(float)(myADCVals[0]+myADCVals[1]);
1226 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1227 SigADC[1] = thisSignal - 6*thisPedestal;
1229 if (thisStrip == (centerStrip+2)){
1230 std::vector<int> myADCVals = digiItr->getADCCounts();
1231 float thisPedestal = 0.5*(float)(myADCVals[0]+myADCVals[1]);
1232 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1233 SigADC[2] = thisSignal - 6*thisPedestal;
1235 if (thisStrip == (centerStrip-1)){
1236 std::vector<int> myADCVals = digiItr->getADCCounts();
1237 float thisPedestal = 0.5*(float)(myADCVals[0]+myADCVals[1]);
1238 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1239 SigADC[3] = thisSignal - 6*thisPedestal;
1241 if (thisStrip == (centerStrip-2)){
1242 std::vector<int> myADCVals = digiItr->getADCCounts();
1243 float thisPedestal = 0.5*(float)(myADCVals[0]+myADCVals[1]);
1244 float thisSignal = (myADCVals[2]+myADCVals[3]+myADCVals[4]+myADCVals[5]+myADCVals[6]+myADCVals[7]);
1245 SigADC[4] = thisSignal - 6*thisPedestal;
1248 TotalADC = 0.2*(SigADC[0]+SigADC[1]+SigADC[2]+SigADC[3]+SigADC[4]);
1265 bool allWires[2][4][4][36][6];
1266 bool allStrips[2][4][4][36][6];
1267 bool AllRecHits[2][4][4][36][6];
1268 bool AllSegments[2][4][4][36];
1271 for(
int iE = 0;iE<2;iE++){
1272 for(
int iS = 0;iS<4;iS++){
1273 for(
int iR = 0; iR<4;iR++){
1274 for(
int iC =0;iC<36;iC++){
1275 AllSegments[iE][iS][iR][iC] =
false;
1277 for(
int iL=0;iL<6;iL++){
1278 allWires[iE][iS][iR][iC][iL] =
false;
1279 allStrips[iE][iS][iR][iC][iL] =
false;
1280 AllRecHits[iE][iS][iR][iC][iL] =
false;
1291 std::vector<CSCWireDigi>::const_iterator wireIter = (*dWDiter).second.first;
1292 std::vector<CSCWireDigi>::const_iterator lWire = (*dWDiter).second.second;
1293 for( ; wireIter != lWire; ++wireIter) {
1302 std::vector<CSCStripDigi>::const_iterator stripIter = (*dSDiter).second.first;
1303 std::vector<CSCStripDigi>::const_iterator lStrip = (*dSDiter).second.second;
1304 for( ; stripIter != lStrip; ++stripIter) {
1305 std::vector<int> myADCVals = stripIter->getADCCounts();
1306 bool thisStripFired =
false;
1307 float thisPedestal = 0.5*(float)(myADCVals[0]+myADCVals[1]);
1310 for (
unsigned int iCount = 0; iCount < myADCVals.size(); iCount++) {
1311 diff = (float)myADCVals[iCount]-thisPedestal;
1312 if (diff > threshold) {
1313 thisStripFired =
true;
1332 std::vector <uint> seg_ME2(2,0) ;
1333 std::vector <uint> seg_ME3(2,0) ;
1334 std::vector < pair <CSCDetId, CSCSegment> > theSegments(4);
1348 ++seg_ME2[idseg.
endcap() -1];
1349 seg_tmp = seg_ME2[idseg.
endcap() -1];
1352 ++seg_ME3[idseg.
endcap() -1];
1353 seg_tmp = seg_ME3[idseg.
endcap() -1];
1356 if(1== seg_tmp&& 6==(*segEffIt).nRecHits() && (*segEffIt).chi2()/(*segEffIt).degreesOfFreedom()<3.){
1357 pair <CSCDetId, CSCSegment> specSeg = make_pair( (
CSCDetId)(*segEffIt).cscDetId(),*segEffIt);
1358 theSegments[2*(idseg.
endcap()-1)+(idseg.
station() -2)] = specSeg;
1380 for(
int iE = 0;iE<2;iE++){
1381 for(
int iS = 0;iS<4;iS++){
1382 for(
int iR = 0; iR<4;iR++){
1383 for(
int iC =0;iC<36;iC++){
1384 int NumberOfLayers = 0;
1385 for(
int iL=0;iL<6;iL++){
1386 if(AllRecHits[iE][iS][iR][iC][iL]){
1391 if (iS==0) bin = iR+1+(iE*10);
1392 else bin = (iS+1)*2 + (iR+1) + (iE*10);
1393 if(NumberOfLayers>1){
1395 if(AllSegments[iE][iS][iR][iC]){
1403 if(AllSegments[iE][iS][iR][iC]){
1404 if(NumberOfLayers==6){
1417 std::vector < pair <CSCDetId, CSCSegment> * > theSeg;
1418 if(1==seg_ME2[0]) theSeg.push_back(&theSegments[0]);
1419 if(1==seg_ME3[0]) theSeg.push_back(&theSegments[1]);
1420 if(1==seg_ME2[1]) theSeg.push_back(&theSegments[2]);
1421 if(1==seg_ME3[1]) theSeg.push_back(&theSegments[3]);
1426 std::map <std::string, float> chamberTypes;
1427 chamberTypes[
"ME1/a"] = 0.5;
1428 chamberTypes[
"ME1/b"] = 1.5;
1429 chamberTypes[
"ME1/2"] = 2.5;
1430 chamberTypes[
"ME1/3"] = 3.5;
1431 chamberTypes[
"ME2/1"] = 4.5;
1432 chamberTypes[
"ME2/2"] = 5.5;
1433 chamberTypes[
"ME3/1"] = 6.5;
1434 chamberTypes[
"ME3/2"] = 7.5;
1435 chamberTypes[
"ME4/1"] = 8.5;
1438 std::map <int , GlobalPoint> extrapolatedPoint;
1439 std::map <int , GlobalPoint>::iterator it;
1440 const std::vector<CSCChamber*> ChamberContainer = cscGeom->chambers();
1442 for(
unsigned int nCh=0;nCh<ChamberContainer.size();nCh++){
1443 const CSCChamber *cscchamber = ChamberContainer[nCh];
1444 pair <CSCDetId, CSCSegment> * thisSegment = 0;
1445 for(uint iSeg =0;iSeg<theSeg.size();++iSeg ){
1446 if(cscchamber->
id().
endcap() == theSeg[iSeg]->first.endcap()){
1448 if(2==theSeg[iSeg]->
first.station()){
1449 thisSegment = theSeg[iSeg];
1453 if(3==theSeg[iSeg]->
first.station()){
1454 thisSegment = theSeg[iSeg];
1462 const CSCChamber *segChamber = cscGeom->chamber(thisSegment->first);
1466 it = extrapolatedPoint.find(
int(cscchamberCenter.
z()));
1467 if(it==extrapolatedPoint.end()){
1471 double xExtrapolated =
extrapolate1D(segPos.
x(),segDir.
x(), paramaterLine);
1472 double yExtrapolated =
extrapolate1D(segPos.
y(),segDir.
y(), paramaterLine);
1473 GlobalPoint globP (xExtrapolated, yExtrapolated, cscchamberCenter.
z());
1474 extrapolatedPoint[int(cscchamberCenter.
z())] = globP;
1477 LocalPoint extrapolatedPointLocal = cscchamber->
toLocal(extrapolatedPoint[
int(cscchamberCenter.
z())]);
1480 const std::array<const float, 4> & layerBounds = layerGeom->
parameters ();
1481 float shiftFromEdge = 15.;
1482 float shiftFromDeadZone = 10.;
1486 shiftFromEdge, shiftFromDeadZone);
1494 for(
int iL =0;iL<6;++iL){
1495 if(AllRecHits[cscchamber->
id().
endcap()-1]
1503 if(cscchamberCenter.
z()<0){
1504 verticalScale = - verticalScale;
1506 verticalScale +=9.5;
1515 if(AllSegments[cscchamber->
id().
endcap()-1]
1521 for(
int iL =0;iL<6;++iL){
1525 if(AllRecHits[cscchamber->
id().
endcap()-1]
1531 if(allWires[cscchamber->
id().
endcap()-1]
1538 if(allStrips[cscchamber->
id().
endcap()-1]
1567 const CSCDetId& idALCT = (*j).first;
1571 if((*digiIt).isValid()){
1591 edm::LogWarning(
"CSCOfflineMonitor") <<
" FEDRawDataColelction not available";
1597 bool goodEvent =
false;
1598 unsigned long dccBinCheckMask = 0x06080016;
1599 unsigned int examinerMask = 0x1FEBF3F6;
1600 unsigned int errorMask = 0x0;
1608 const FEDRawData& fedData = rawdata->FEDData(
id);
1609 unsigned long length = fedData.
size();
1613 std::stringstream examiner_out, examiner_err;
1618 if( examinerMask&0x40000 ) examiner->
crcCFEB(1);
1619 if( examinerMask&0x8000 ) examiner->
crcTMB (1);
1620 if( examinerMask&0x0400 ) examiner->
crcALCT(1);
1623 examiner->
setMask(examinerMask);
1624 const short unsigned int *
data = (
short unsigned int *)fedData.
data();
1626 int res = examiner->
check(data,
long(fedData.
size()/2));
1631 goodEvent=!(examiner->
errors()&dccBinCheckMask);
1641 const std::vector<CSCDDUEventData> & dduData = dccData.
dduData();
1645 for (
unsigned int iDDU=0; iDDU<dduData.size(); ++iDDU) {
1648 if (dduData[iDDU].trailer().errorstat()&errorMask) {
1649 LogTrace(
"CSCDCCUnpacker|CSCRawToDigi") <<
"DDU# " << iDDU <<
" has serious error - no digis unpacked! " <<
1650 std::hex << dduData[iDDU].trailer().errorstat();
1655 const std::vector<CSCEventData> & cscData = dduData[iDDU].cscData();
1658 for (
unsigned int iCSC=0; iCSC<cscData.size(); ++iCSC) {
1661 int vmecrate = cscData[iCSC].dmbHeader()->crateID();
1662 int dmb = cscData[iCSC].dmbHeader()->dmbID();
1667 if ((vmecrate>=1)&&(vmecrate<=60) && (dmb>=1)&&(dmb<=10)&&(dmb!=6)) {
1668 layer = pcrate->
detId(vmecrate, dmb,icfeb,ilayer );
1671 LogTrace (
"CSCOfflineMonitor") <<
" detID input out of range!!! ";
1673 <<
" skipping chamber vme= " << vmecrate <<
" dmb= " << dmb;
1679 int nalct = cscData[iCSC].dmbHeader()->nalct();
1680 bool goodALCT=
false;
1682 if (nalct&&cscData[iCSC].alctHeader()) {
1683 if (cscData[iCSC].alctHeader()->
check()){
1689 int nclct = cscData[iCSC].dmbHeader()->nclct();
1691 if (nclct&&cscData[iCSC].tmbData()) {
1692 if (cscData[iCSC].tmbHeader()->
check()){
1693 if (cscData[iCSC].clctData()->
check()) goodTMB=
true;
1697 if (goodTMB && goodALCT) {
1698 const CSCTMBHeader *tmbHead = cscData[iCSC].tmbHeader();
1699 std::vector<CSCCLCTDigi> clcts = cscData[iCSC].tmbHeader()->CLCTDigis(layer.
rawId());
1700 if (clcts.size()==0 || !(clcts[0].isValid()))
1703 if(layer.
station()==1 && layer.
ring() ==1 && clcts[0].getKeyStrip()>128){
1715 int TMB_CLCTpre_rel_L1A = tmbHead->
BXNCount()-clcts[0].getFullBX();
1716 if (TMB_CLCTpre_rel_L1A > 3563)
1717 TMB_CLCTpre_rel_L1A = TMB_CLCTpre_rel_L1A - 3564;
1718 if (TMB_CLCTpre_rel_L1A < 0)
1719 TMB_CLCTpre_rel_L1A = TMB_CLCTpre_rel_L1A + 3564;
1730 if (examiner!=
NULL)
delete examiner;
1742 float Efficiency = 0.;
1743 float EffError = 0.;
1744 if(fabs(Norm)>0.000000001){
1745 Efficiency = bin/Norm;
1747 EffError =
sqrt( (1.-Efficiency)*Efficiency/Norm );
1750 eff[0] = Efficiency;
1755 std::vector<float> eff(2);
1756 int Nbins = readHisto->GetSize()-2;
1757 std::vector<float> bins(Nbins);
1758 std::vector<float> Efficiency(Nbins);
1759 std::vector<float> EffError(Nbins);
1762 for (
int i=0;
i<20;
i++){
1763 Num = readHisto->GetBinContent(
i+1);
1764 Den = readHisto->GetBinContent(
i+21);
1766 Efficiency[
i] = eff[0];
1767 EffError[
i] = eff[1];
1774 int station,
int ring,
float shiftFromEdge,
float shiftFromDeadZone){
1778 float y_center = 0.;
1779 double yUp = layerBounds[3] + y_center;
1780 double yDown = - layerBounds[3] + y_center;
1781 double xBound1Shifted = layerBounds[0] - shiftFromEdge;
1782 double xBound2Shifted = layerBounds[1] - shiftFromEdge;
1783 double lineSlope = (yUp - yDown)/(xBound2Shifted-xBound1Shifted);
1784 double lineConst = yUp - lineSlope*xBound2Shifted;
1785 double yBorder = lineSlope*
abs(localPos.
x()) + lineConst;
1788 std::vector <float> deadZoneCenter(6);
1789 float cutZone = shiftFromDeadZone;
1791 if(station>1 && station<5){
1793 deadZoneCenter[0]= -162.48 ;
1794 deadZoneCenter[1] = -81.8744;
1795 deadZoneCenter[2] = -21.18165;
1796 deadZoneCenter[3] = 39.51105;
1797 deadZoneCenter[4] = 100.2939;
1798 deadZoneCenter[5] = 160.58;
1800 if(localPos.
y() >yBorder &&
1801 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1802 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1803 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone) ||
1804 (localPos.
y()> deadZoneCenter[3] + cutZone && localPos.
y()< deadZoneCenter[4] - cutZone) ||
1805 (localPos.
y()> deadZoneCenter[4] + cutZone && localPos.
y()< deadZoneCenter[5] - cutZone))){
1811 deadZoneCenter[0]= -95.80 ;
1812 deadZoneCenter[1] = -27.47;
1813 deadZoneCenter[2] = 33.67;
1814 deadZoneCenter[3] = 90.85;
1816 else if(3==station){
1817 deadZoneCenter[0]= -89.305 ;
1818 deadZoneCenter[1] = -39.705;
1819 deadZoneCenter[2] = 20.195;
1820 deadZoneCenter[3] = 77.395;
1822 else if(4==station){
1823 deadZoneCenter[0]= -75.645;
1824 deadZoneCenter[1] = -26.055;
1825 deadZoneCenter[2] = 23.855;
1826 deadZoneCenter[3] = 70.575;
1828 if(localPos.
y() >yBorder &&
1829 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1830 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1831 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone))){
1836 else if(1==station){
1838 deadZoneCenter[0]= -83.155 ;
1839 deadZoneCenter[1] = -22.7401;
1840 deadZoneCenter[2] = 27.86665;
1841 deadZoneCenter[3] = 81.005;
1842 if(localPos.
y() > yBorder &&
1843 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1844 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1845 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone))){
1850 deadZoneCenter[0]= -86.285 ;
1851 deadZoneCenter[1] = -32.88305;
1852 deadZoneCenter[2] = 32.867423;
1853 deadZoneCenter[3] = 88.205;
1854 if(localPos.
y() > (yBorder) &&
1855 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1856 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1857 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone))){
1862 deadZoneCenter[0]= -81.0;
1863 deadZoneCenter[1] = 81.0;
1864 if(localPos.
y() > (yBorder) &&
1865 (localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone )){
1879 if (
id.
station() == 1) index =
id.ring();
1880 else index =
id.station()*2 +
id.ring();
1881 if (
id.
endcap() == 1) index = index + 10;
1886 else if (flag == 2){
1888 if (
id.
station() == 1 &&
id.
ring() != 4) index =
id.ring()+1;
1889 if (
id.
station() == 1 &&
id.
ring() == 4) index = 1;
1890 if (
id.
station() != 1) index =
id.station()*2 +
id.ring();
1891 if (
id.
endcap() == 1) index = index + 10;
1901 int st =
id.station();
1903 int ch =
id.chamber();
1904 int ec =
id.endcap();
1906 if (st == 1 && ri == 1) kSerial = ch;
1907 if (st == 1 && ri == 2) kSerial = ch + 36;
1908 if (st == 1 && ri == 3) kSerial = ch + 72;
1909 if (st == 1 && ri == 4) kSerial = ch;
1910 if (st == 2 && ri == 1) kSerial = ch + 108;
1911 if (st == 2 && ri == 2) kSerial = ch + 126;
1912 if (st == 3 && ri == 1) kSerial = ch + 162;
1913 if (st == 3 && ri == 2) kSerial = ch + 180;
1914 if (st == 4 && ri == 1) kSerial = ch + 216;
1915 if (st == 4 && ri == 2) kSerial = ch + 234;
1916 if (ec == 2) kSerial = kSerial + 300;
1947 else if (t ==
SMALL)
MonitorElement * hEffDenominator
void harvestChamberMeans(MonitorElement *meMean1D, MonitorElement *meMean2D, MonitorElement *hNum, MonitorElement *meDenom)
MonitorElement * hOSegmentsSerial
edm::EDGetTokenT< CSCALCTDigiCollection > al_token
void doPedestalNoise(edm::Handle< CSCStripDigiCollection > strips)
T getParameter(std::string const &) const
void crcCFEB(bool enable)
MonitorElement * hOWireSerial
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * hSensitiveAreaEvt
MonitorElement * hOStrips
int chamberSerial(CSCDetId id)
MonitorElement * hWireEff2
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
MonitorElement * hORecHits
virtual const std::array< const float, 4 > parameters() const
bool finalizedHistograms_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
CSCDetId id() const
Get the (concrete) DetId.
MonitorElement * hStripSTE2
void histoEfficiency(TH1F *readHisto, MonitorElement *writeHisto)
MonitorElement * hStripReadoutEff2
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.
edm::EDGetTokenT< CSCWireDigiCollection > wd_token
Geom::Phi< T > phi() const
MonitorElement * hALCTMatch2DNumerator
std::vector< MonitorElement * > hRHGlobal
const std::vector< CSCDDUEventData > & dduData() const
accessor to dduData
MonitorElement * hORecHitsSerial
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.
std::vector< MonitorElement * > hSChiSq
float getSignal(const CSCStripDigiCollection &stripdigis, CSCDetId idRH, int centerStrip)
virtual void beginRun(edm::Run const &, edm::EventSetup const &)
MonitorElement * hWirenGroupsTotal
MonitorElement * hCLCTL1ASerial
MonitorElement * hOStripSerial
void redirect(std::ostream &str)
std::vector< MonitorElement * > hWireNumber
MonitorElement * hALCTgetBXChamberMeans
ExaminerStatusType errors(void) const
void crcALCT(bool enable)
MonitorElement * hWireSTE2
MonitorElement * hALCTMatch2DMeans
size_t size() const
Lenght of the data buffer in bytes.
virtual void endRun(edm::Run const &, edm::EventSetup const &)
MonitorElement * hSGlobalPhi
int getNbinsY(void) const
get # of bins in Y-axis
std::vector< MonitorElement * > hSnhits
Geom::Theta< T > theta() const
CSCOfflineMonitor(const edm::ParameterSet &pset)
std::string chamberTypeName() const
uint32_t rawId() const
get the raw id
MonitorElement * hSnSegments
std::vector< MonitorElement * > hRHSumQ
MonitorElement * hOStripsAndWiresAndCLCT
void normalize(MonitorElement *me)
MonitorElement * hOSegments
edm::EDGetTokenT< FEDRawDataCollection > rd_token
std::vector< MonitorElement * > hStripPed
const CSCChamberSpecs * specs() const
MonitorElement * hALCTMatchSerial
int typeIndex(CSCDetId id, int flag=1)
MonitorElement * hSnhitsAll
float fitX(const CLHEP::HepMatrix &sp, const CLHEP::HepMatrix &ep)
MonitorElement * hCLCTL1AChamberMeans
bool check(const DataFrame &df, bool capcheck, bool dvercheck)
std::vector< MonitorElement * > hRHTiming
MonitorElement * hALCTgetBX
edm::EDGetTokenT< CSCCLCTDigiCollection > cl_token
MonitorElement * hALCTMatch
MonitorElement * hSGlobalTheta
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)
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", const uint32_t run=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
MonitorElement * hSTimeCombined
MonitorElement * hOWiresAndCLCT
void setBinError(int binx, double error)
set uncertainty on content of bin (1-D)
std::vector< MonitorElement * > hRHsterr
MonitorElement * hCLCTL1A2Denominator
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. "my/long/dir/my_histo")
MonitorElement * hALCTgetBX2Denominator
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
edm::EDGetTokenT< CSCSegmentCollection > se_token
void getEfficiency(float bin, float Norm, std::vector< float > &eff)
edm::EDGetTokenT< CSCStripDigiCollection > sd_token
MonitorElement * hSTimeVsZ
void doSegments(edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom)
void analyze(const edm::Event &event, const edm::EventSetup &eventSetup)
MonitorElement * hALCTgetBX2DMeans
MonitorElement * hSChiSqAll
MonitorElement * hCSCOccupancy
MonitorElement * hCLCTL1A2DNumerator
void doWireDigis(edm::Handle< CSCWireDigiCollection > wires)
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
MonitorElement * hALCTgetBX2DNumerator
std::vector< MonitorElement * > hStripNumber
T const * product() const
MonitorElement * hALCTMatch2Denominator
TH1F * getTH1F(void) const
MonitorElement * hALCTMatchChamberMeans
std::vector< CSCCLCTDigi >::const_iterator const_iterator
std::vector< MonitorElement * > hWireTBin
MonitorElement * hCLCTL1A
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)
MonitorElement * hSTimeCathode
double getBinContent(int binx) const
get content of bin (1-D)
char data[epos_bytes_allocation]
std::vector< MonitorElement * > hRHstpos
void doStripDigis(edm::Handle< CSCStripDigiCollection > strips)
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
MonitorElement * hStripNFired
int getNbinsX(void) const
get # of bins in X-axis
std::vector< MonitorElement * > hSResid
edm::EDGetTokenT< CSCRecHit2DCollection > rh_token
std::pair< const_iterator, const_iterator > Range
MonitorElement * hStripEff2
MonitorElement * hALCTgetBXSerial
MonitorElement * hSTimeVsTOF
MonitorElement * hRHnrechits
TH2F * getTH2F(void) const
double extrapolate1D(double initPosition, double initDirection, double parameterOfTheLine)
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
std::vector< MonitorElement * > hSChiSqProb
std::vector< MonitorElement * > hRHTimingAnode
double lineParametrization(double z1Position, double z2Position, double z1Direction)
void doEfficiencies(edm::Handle< CSCWireDigiCollection > wires, edm::Handle< CSCStripDigiCollection > strips, edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCSegmentCollection > cscSegments, edm::ESHandle< CSCGeometry > cscGeom)
MonitorElement * hCLCTL1A2DMeans
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 setCurrentFolder(const std::string &fullpath)
MonitorElement * hSChiSqProbAll
void doRecHits(edm::Handle< CSCRecHit2DCollection > recHits, edm::Handle< CSCStripDigiCollection > strips, edm::ESHandle< CSCGeometry > cscGeom)
std::vector< MonitorElement * > hRHRatioQ
void applyCSClabels(MonitorElement *meHisto, LabelType t, AxisType a)