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;
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;
1616 if( examinerMask&0x40000 ) examiner->
crcCFEB(1);
1617 if( examinerMask&0x8000 ) examiner->
crcTMB (1);
1618 if( examinerMask&0x0400 ) examiner->
crcALCT(1);
1619 examiner->
setMask(examinerMask);
1620 const short unsigned int *
data = (
short unsigned int *)fedData.
data();
1622 int res = examiner->
check(data,
long(fedData.
size()/2));
1627 goodEvent=!(examiner->
errors()&dccBinCheckMask);
1637 const std::vector<CSCDDUEventData> & dduData = dccData.
dduData();
1641 for (
unsigned int iDDU=0; iDDU<dduData.size(); ++iDDU) {
1644 if (dduData[iDDU].trailer().errorstat()&errorMask) {
1645 LogTrace(
"CSCDCCUnpacker|CSCRawToDigi") <<
"DDU# " << iDDU <<
" has serious error - no digis unpacked! " <<
1646 std::hex << dduData[iDDU].trailer().errorstat();
1651 const std::vector<CSCEventData> & cscData = dduData[iDDU].cscData();
1654 for (
unsigned int iCSC=0; iCSC<cscData.size(); ++iCSC) {
1657 int vmecrate = cscData[iCSC].dmbHeader()->crateID();
1658 int dmb = cscData[iCSC].dmbHeader()->dmbID();
1663 if ((vmecrate>=1)&&(vmecrate<=60) && (dmb>=1)&&(dmb<=10)&&(dmb!=6)) {
1664 layer = pcrate->
detId(vmecrate, dmb,icfeb,ilayer );
1667 LogTrace (
"CSCOfflineMonitor") <<
" detID input out of range!!! ";
1669 <<
" skipping chamber vme= " << vmecrate <<
" dmb= " << dmb;
1675 int nalct = cscData[iCSC].dmbHeader()->nalct();
1676 bool goodALCT=
false;
1678 if (nalct&&cscData[iCSC].alctHeader()) {
1679 if (cscData[iCSC].alctHeader()->
check()){
1685 int nclct = cscData[iCSC].dmbHeader()->nclct();
1687 if (nclct&&cscData[iCSC].tmbData()) {
1688 if (cscData[iCSC].tmbHeader()->
check()){
1689 if (cscData[iCSC].clctData()->
check()) goodTMB=
true;
1693 if (goodTMB && goodALCT) {
1694 const CSCTMBHeader *tmbHead = cscData[iCSC].tmbHeader();
1695 std::vector<CSCCLCTDigi> clcts = cscData[iCSC].tmbHeader()->CLCTDigis(layer.
rawId());
1696 if (clcts.size()==0 || !(clcts[0].isValid()))
1699 if(layer.
station()==1 && layer.
ring() ==1 && clcts[0].getKeyStrip()>128){
1711 int TMB_CLCTpre_rel_L1A = tmbHead->
BXNCount()-clcts[0].getFullBX();
1712 if (TMB_CLCTpre_rel_L1A > 3563)
1713 TMB_CLCTpre_rel_L1A = TMB_CLCTpre_rel_L1A - 3564;
1714 if (TMB_CLCTpre_rel_L1A < 0)
1715 TMB_CLCTpre_rel_L1A = TMB_CLCTpre_rel_L1A + 3564;
1726 if (examiner!=
NULL)
delete examiner;
1738 float Efficiency = 0.;
1739 float EffError = 0.;
1740 if(fabs(Norm)>0.000000001){
1741 Efficiency = bin/Norm;
1743 EffError =
sqrt( (1.-Efficiency)*Efficiency/Norm );
1746 eff[0] = Efficiency;
1751 std::vector<float> eff(2);
1752 int Nbins = readHisto->GetSize()-2;
1753 std::vector<float> bins(Nbins);
1754 std::vector<float> Efficiency(Nbins);
1755 std::vector<float> EffError(Nbins);
1758 for (
int i=0;
i<20;
i++){
1759 Num = readHisto->GetBinContent(
i+1);
1760 Den = readHisto->GetBinContent(
i+21);
1762 Efficiency[
i] = eff[0];
1763 EffError[
i] = eff[1];
1770 int station,
int ring,
float shiftFromEdge,
float shiftFromDeadZone){
1774 float y_center = 0.;
1775 double yUp = layerBounds[3] + y_center;
1776 double yDown = - layerBounds[3] + y_center;
1777 double xBound1Shifted = layerBounds[0] - shiftFromEdge;
1778 double xBound2Shifted = layerBounds[1] - shiftFromEdge;
1779 double lineSlope = (yUp - yDown)/(xBound2Shifted-xBound1Shifted);
1780 double lineConst = yUp - lineSlope*xBound2Shifted;
1781 double yBorder = lineSlope*
abs(localPos.
x()) + lineConst;
1784 std::vector <float> deadZoneCenter(6);
1785 float cutZone = shiftFromDeadZone;
1787 if(station>1 && station<5){
1789 deadZoneCenter[0]= -162.48 ;
1790 deadZoneCenter[1] = -81.8744;
1791 deadZoneCenter[2] = -21.18165;
1792 deadZoneCenter[3] = 39.51105;
1793 deadZoneCenter[4] = 100.2939;
1794 deadZoneCenter[5] = 160.58;
1796 if(localPos.
y() >yBorder &&
1797 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1798 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1799 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone) ||
1800 (localPos.
y()> deadZoneCenter[3] + cutZone && localPos.
y()< deadZoneCenter[4] - cutZone) ||
1801 (localPos.
y()> deadZoneCenter[4] + cutZone && localPos.
y()< deadZoneCenter[5] - cutZone))){
1807 deadZoneCenter[0]= -95.80 ;
1808 deadZoneCenter[1] = -27.47;
1809 deadZoneCenter[2] = 33.67;
1810 deadZoneCenter[3] = 90.85;
1812 else if(3==station){
1813 deadZoneCenter[0]= -89.305 ;
1814 deadZoneCenter[1] = -39.705;
1815 deadZoneCenter[2] = 20.195;
1816 deadZoneCenter[3] = 77.395;
1818 else if(4==station){
1819 deadZoneCenter[0]= -75.645;
1820 deadZoneCenter[1] = -26.055;
1821 deadZoneCenter[2] = 23.855;
1822 deadZoneCenter[3] = 70.575;
1824 if(localPos.
y() >yBorder &&
1825 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1826 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1827 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone))){
1832 else if(1==station){
1834 deadZoneCenter[0]= -83.155 ;
1835 deadZoneCenter[1] = -22.7401;
1836 deadZoneCenter[2] = 27.86665;
1837 deadZoneCenter[3] = 81.005;
1838 if(localPos.
y() > yBorder &&
1839 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1840 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1841 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone))){
1846 deadZoneCenter[0]= -86.285 ;
1847 deadZoneCenter[1] = -32.88305;
1848 deadZoneCenter[2] = 32.867423;
1849 deadZoneCenter[3] = 88.205;
1850 if(localPos.
y() > (yBorder) &&
1851 ((localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone) ||
1852 (localPos.
y()> deadZoneCenter[1] + cutZone && localPos.
y()< deadZoneCenter[2] - cutZone) ||
1853 (localPos.
y()> deadZoneCenter[2] + cutZone && localPos.
y()< deadZoneCenter[3] - cutZone))){
1858 deadZoneCenter[0]= -81.0;
1859 deadZoneCenter[1] = 81.0;
1860 if(localPos.
y() > (yBorder) &&
1861 (localPos.
y()> deadZoneCenter[0] + cutZone && localPos.
y()< deadZoneCenter[1] - cutZone )){
1875 if (
id.
station() == 1) index =
id.ring();
1876 else index =
id.station()*2 +
id.ring();
1877 if (
id.
endcap() == 1) index = index + 10;
1882 else if (flag == 2){
1884 if (
id.
station() == 1 &&
id.
ring() != 4) index =
id.ring()+1;
1885 if (
id.
station() == 1 &&
id.
ring() == 4) index = 1;
1886 if (
id.
station() != 1) index =
id.station()*2 +
id.ring();
1887 if (
id.
endcap() == 1) index = index + 10;
1897 int st =
id.station();
1899 int ch =
id.chamber();
1900 int ec =
id.endcap();
1902 if (st == 1 && ri == 1) kSerial = ch;
1903 if (st == 1 && ri == 2) kSerial = ch + 36;
1904 if (st == 1 && ri == 3) kSerial = ch + 72;
1905 if (st == 1 && ri == 4) kSerial = ch;
1906 if (st == 2 && ri == 1) kSerial = ch + 108;
1907 if (st == 2 && ri == 2) kSerial = ch + 126;
1908 if (st == 3 && ri == 1) kSerial = ch + 162;
1909 if (st == 3 && ri == 2) kSerial = ch + 180;
1910 if (st == 4 && ri == 1) kSerial = ch + 216;
1911 if (st == 4 && ri == 2) kSerial = ch + 234;
1912 if (ec == 2) kSerial = kSerial + 300;
1943 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
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
LocalPoint localPosition() const
MonitorElement * hOStripsAndWiresAndCLCT
LocalVector localDirection() const
Local direction.
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)
MonitorElement * hSTimeCombined
MonitorElement * hOWiresAndCLCT
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
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)
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
double S(const TLorentzVector &, const TLorentzVector &)
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
std::vector< const CSCChamber * > ChamberContainer
double getBinContent(int binx) const
get content of bin (1-D)
char data[epos_bytes_allocation]
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", const uint32_t run=0, const uint32_t lumi=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE", const bool resetMEsAfterWriting=false)
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)
if(conf.exists("allCellsPositionCalc"))
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)