23 #include "DQMOffline/Muon/test/langauFit.C"
39 resEtaSpread_tkGlb = ps.
getParameter<
double>(
"resEtaSpread_tkGlb");
40 resEtaSpread_glbSta = ps.
getParameter<
double>(
"resEtaSpread_glbSta");
41 resPhiSpread_tkGlb = ps.
getParameter<
double>(
"resPhiSpread_tkGlb");
42 resPhiSpread_glbSta = ps.
getParameter<
double>(
"resPhiSpread_glbSta");
43 resOneOvPSpread_tkGlb = ps.
getParameter<
double>(
"resOneOvPSpread_tkGlb");
44 resOneOvPSpread_glbSta = ps.
getParameter<
double>(
"resOneOvPSpread_glbSta");
45 pullEtaSpread = ps.
getParameter<
double>(
"pullEtaSpread");
46 pullPhiSpread = ps.
getParameter<
double>(
"pullPhiSpread");
47 pullOneOvPSpread = ps.
getParameter<
double>(
"pullOneOvPSpread");
48 resChargeLimit_tkGlb = ps.
getParameter<
double>(
"resChargeLimit_tkGlb");
49 resChargeLimit_glbSta = ps.
getParameter<
double>(
"resChargeLimit_glbSta");
50 resChargeLimit_tkSta = ps.
getParameter<
double>(
"resChargeLimit_tkSta");
51 numMatchedExpected_min = ps.
getParameter<
double>(
"numMatchedExpected_min");
52 numMatchedExpected_max = ps.
getParameter<
double>(
"numMatchedExpected_max");
53 matchesFractionDt_min = ps.
getParameter<
double>(
"matchesFractionDt_min");
54 matchesFractionDt_max = ps.
getParameter<
double>(
"matchesFractionDt_max");
55 matchesFractionCsc_min = ps.
getParameter<
double>(
"matchesFractionCsc_min");
56 matchesFractionCsc_max = ps.
getParameter<
double>(
"matchesFractionCsc_max");
57 resSegmTrack_rms_min = ps.
getParameter<
double>(
"resSegmTrack_rms_min");
58 resSegmTrack_rms_max = ps.
getParameter<
double>(
"resSegmTrack_rms_max");
59 resSegmTrack_mean_min = ps.
getParameter<
double>(
"resSegmTrack_mean_min");
60 resSegmTrack_mean_max = ps.
getParameter<
double>(
"resSegmTrack_mean_max");
61 expPeakEcalS9_min = ps.
getParameter<
double>(
"expPeakEcalS9_min");
62 expPeakEcalS9_max = ps.
getParameter<
double>(
"expPeakEcalS9_max");
63 expPeakHadS9_min = ps.
getParameter<
double>(
"expPeakHadS9_min");
64 expPeakHadS9_max = ps.
getParameter<
double>(
"expPeakHadS9_max");
65 expMultiplicityGlb_max = ps.
getParameter<
double>(
"expMultiplicityGlb_max");
66 expMultiplicityTk_max = ps.
getParameter<
double>(
"expMultiplicityTk_max");
67 expMultiplicitySta_max = ps.
getParameter<
double>(
"expMultiplicitySta_max");
68 expMultiplicityGlb_min = ps.
getParameter<
double>(
"expMultiplicityGlb_min");
69 expMultiplicityTk_min = ps.
getParameter<
double>(
"expMultiplicityTk_min");
70 expMultiplicitySta_min = ps.
getParameter<
double>(
"expMultiplicitySta_min");
82 dbe->setCurrentFolder(
"Muons/TestSummary");
85 kinematicsSummaryMap = dbe->book2D(
"kinematicsSummaryMap",
"Kinematics test summary",5,1,6,3,1,4);
86 kinematicsSummaryMap->setAxisTitle(
"track monitored",1);
87 kinematicsSummaryMap->setBinLabel(1,
"GLB",1);
88 kinematicsSummaryMap->setBinLabel(2,
"TKfromGLB",1);
89 kinematicsSummaryMap->setBinLabel(3,
"STAfromGLB",1);
90 kinematicsSummaryMap->setBinLabel(4,
"TK",1);
91 kinematicsSummaryMap->setBinLabel(5,
"STA",1);
92 kinematicsSummaryMap->setAxisTitle(
"parameter tested",2);
93 kinematicsSummaryMap->setBinLabel(1,
"#chi^{2}",2);
94 kinematicsSummaryMap->setBinLabel(2,
"#eta",2);
95 kinematicsSummaryMap->setBinLabel(3,
"#phi",2);
98 chi2TestSummaryMap = dbe->book2D(
"chi2TestSummaryMap",
"#chi2 quality test summary",5,1,6,5,1,6);
99 chi2TestSummaryMap->setAxisTitle(
"track monitored",1);
100 chi2TestSummaryMap->setBinLabel(1,
"GLB",1);
101 chi2TestSummaryMap->setBinLabel(2,
"TKfromGLB",1);
102 chi2TestSummaryMap->setBinLabel(3,
"STAfromGLB",1);
103 chi2TestSummaryMap->setBinLabel(4,
"TK",1);
104 chi2TestSummaryMap->setBinLabel(5,
"STA",1);
105 chi2TestSummaryMap->setAxisTitle(
"parameter tested",2);
106 chi2TestSummaryMap->setBinLabel(1,
"#chi^{2}",2);
107 chi2TestSummaryMap->setBinLabel(2,
"#eta",2);
108 chi2TestSummaryMap->setBinLabel(3,
"#phi",2);
109 chi2TestSummaryMap->setBinLabel(4,
"#pt",2);
110 chi2TestSummaryMap->setBinLabel(5,
"#q",2);
113 KolmogorovTestSummaryMap = dbe->book2D(
"KolmogorovTestSummaryMap",
"Kolmogorov quality test summary",5,1,6,5,1,6);
114 KolmogorovTestSummaryMap->setAxisTitle(
"track monitored",1);
115 KolmogorovTestSummaryMap->setBinLabel(1,
"GLB",1);
116 KolmogorovTestSummaryMap->setBinLabel(2,
"TKfromGLB",1);
117 KolmogorovTestSummaryMap->setBinLabel(3,
"STAfromGLB",1);
118 KolmogorovTestSummaryMap->setBinLabel(4,
"TK",1);
119 KolmogorovTestSummaryMap->setBinLabel(5,
"STA",1);
120 KolmogorovTestSummaryMap->setAxisTitle(
"parameter tested",2);
121 KolmogorovTestSummaryMap->setBinLabel(1,
"#chi^{2}",2);
122 KolmogorovTestSummaryMap->setBinLabel(2,
"#eta",2);
123 KolmogorovTestSummaryMap->setBinLabel(3,
"#phi",2);
124 KolmogorovTestSummaryMap->setBinLabel(4,
"#pt",2);
125 KolmogorovTestSummaryMap->setBinLabel(5,
"#q",2);
129 residualsSummaryMap = dbe->book2D(
"residualsSummaryMap",
"Residuals test summary",4,1,5,4,1,5);
130 residualsSummaryMap->setAxisTitle(
"residuals",1);
131 residualsSummaryMap->setBinLabel(1,
"TK-GLB",1);
132 residualsSummaryMap->setBinLabel(2,
"GLB-STA",1);
133 residualsSummaryMap->setBinLabel(3,
"TK-STA",1);
134 residualsSummaryMap->setBinLabel(4,
"TK-STA Pull",1);
135 residualsSummaryMap->setAxisTitle(
"parameter tested",2);
136 residualsSummaryMap->setBinLabel(1,
"#eta",2);
137 residualsSummaryMap->setBinLabel(2,
"#phi",2);
138 residualsSummaryMap->setBinLabel(3,
"1/p",2);
139 residualsSummaryMap->setBinLabel(4,
"q",2);
142 muonIdSummaryMap = dbe->book2D(
"muonIdSummaryMap",
"muonId test summary",4,1,5, 5,1,6);
143 muonIdSummaryMap->setAxisTitle(
"muons",1);
144 muonIdSummaryMap->setBinLabel(1,
"GLB DT",1);
145 muonIdSummaryMap->setBinLabel(2,
"GLB CSC",1);
146 muonIdSummaryMap->setBinLabel(3,
"TK DT",1);
147 muonIdSummaryMap->setBinLabel(4,
"TK CSC",1);
148 muonIdSummaryMap->setAxisTitle(
"tests",2);
149 muonIdSummaryMap->setBinLabel(1,
"#assSeg",2);
150 muonIdSummaryMap->setBinLabel(2,
"x mean",2);
151 muonIdSummaryMap->setBinLabel(3,
"x rms",2);
152 muonIdSummaryMap->setBinLabel(4,
"y mean",2);
153 muonIdSummaryMap->setBinLabel(5,
"y rms",2);
156 energySummaryMap = dbe->book2D(
"energySummaryMap",
"Energy deposits test summary",3,1,4,3,1,4);
157 energySummaryMap->setAxisTitle(
"muons",1);
158 energySummaryMap->setBinLabel(1,
"GLB",1);
159 energySummaryMap->setBinLabel(2,
"TK",1);
160 energySummaryMap->setBinLabel(3,
"STA",1);
161 energySummaryMap->setAxisTitle(
"calorimeter tested",2);
162 energySummaryMap->setBinLabel(1,
"ECAL",2);
163 energySummaryMap->setBinLabel(2,
"HAD",2);
164 energySummaryMap->setBinLabel(3,
"H0",2);
167 multiplicitySummaryMap = dbe->book1D(
"multiplicitySummaryMap",
"muon multiplicity test summary",3,1,4);
168 multiplicitySummaryMap->setAxisTitle(
"muon");
169 multiplicitySummaryMap->setBinLabel(1,
"GLB");
170 multiplicitySummaryMap->setBinLabel(2,
"TK");
171 multiplicitySummaryMap->setBinLabel(3,
"STA");
175 dbe->setCurrentFolder(
"Muons/EventInfo");
176 summaryReport = dbe->bookFloat(
"reportSummary");
178 summaryReportMap = dbe->book2D(
"reportSummaryMap",
"Muon Report Summary Map",3,1,4,7,1,8);
179 summaryReportMap->setAxisTitle(
"muons",1);
180 summaryReportMap->setBinLabel(1,
"GLB",1);
181 summaryReportMap->setBinLabel(2,
"TK",1);
182 summaryReportMap->setBinLabel(3,
"STA",1);
183 summaryReportMap->setAxisTitle(
"test",2);
184 summaryReportMap->setBinLabel(1,
"#chi^{2}/Df",2);
185 summaryReportMap->setBinLabel(2,
"#eta",2);
186 summaryReportMap->setBinLabel(3,
"#phi",2);
187 summaryReportMap->setBinLabel(4,
"residuals",2);
188 summaryReportMap->setBinLabel(5,
"muonId",2);
189 summaryReportMap->setBinLabel(6,
"energyDeposits",2);
190 summaryReportMap->setBinLabel(7,
"multiplicity",2);
192 dbe->setCurrentFolder(
"Muons/EventInfo/reportSummaryContents");
193 theSummaryContents.push_back(dbe->bookFloat(
"kinematics_GLB"));
194 theSummaryContents.push_back(dbe->bookFloat(
"muonId_GLB"));
195 theSummaryContents.push_back(dbe->bookFloat(
"residuals_GLB"));
196 theSummaryContents.push_back(dbe->bookFloat(
"GLB"));
197 theSummaryContents.push_back(dbe->bookFloat(
"kinematics_TK"));
198 theSummaryContents.push_back(dbe->bookFloat(
"muonId_TK"));
199 theSummaryContents.push_back(dbe->bookFloat(
"residuals_TK"));
200 theSummaryContents.push_back(dbe->bookFloat(
"TK"));
201 theSummaryContents.push_back(dbe->bookFloat(
"kinematics_STA"));
202 theSummaryContents.push_back(dbe->bookFloat(
"residuals_STA"));
203 theSummaryContents.push_back(dbe->bookFloat(
"STA"));
204 theSummaryContents.push_back(dbe->bookFloat(
"energyDeposits"));
205 theSummaryContents.push_back(dbe->bookFloat(
"multiplicity"));
208 dbe->setCurrentFolder(
"Muons/EventInfo");
209 summaryCertification = dbe->bookFloat(
"CertificationSummary");
210 summaryCertification->Fill(-1);
212 summaryCertificationMap = dbe->book2D(
"CertificationSummaryMap",
"Muon Certification Summary Map",9,1,10,7,1,8);
213 summaryCertificationMap->setAxisTitle(
"muons",1);
214 summaryCertificationMap->setBinLabel(1,
"GLB_Tot",1);
215 summaryCertificationMap->setBinLabel(2,
"TK_Tot",1);
216 summaryCertificationMap->setBinLabel(3,
"STA_tot",1);
217 summaryCertificationMap->setBinLabel(4,
"GLB_B",1);
218 summaryCertificationMap->setBinLabel(5,
"TK_B",1);
219 summaryCertificationMap->setBinLabel(6,
"STA_B",1);
220 summaryCertificationMap->setBinLabel(7,
"GLB_EC",1);
221 summaryCertificationMap->setBinLabel(8,
"TK_EC",1);
222 summaryCertificationMap->setBinLabel(9,
"STA_EC",1);
223 summaryCertificationMap->setAxisTitle(
"test",2);
224 summaryCertificationMap->setBinLabel(1,
"#chi^{2}/Df",2);
225 summaryCertificationMap->setBinLabel(2,
"#eta",2);
226 summaryCertificationMap->setBinLabel(3,
"#phi",2);
227 summaryCertificationMap->setBinLabel(4,
"residuals",2);
228 summaryCertificationMap->setBinLabel(5,
"muonId",2);
229 summaryCertificationMap->setBinLabel(6,
"energyDeposits",2);
230 summaryCertificationMap->setBinLabel(7,
"multiplicity",2);
232 dbe->setCurrentFolder(
"Muons/EventInfo/CertificationContents");
233 theCertificationContents.push_back(dbe->bookFloat(
"GLB_Tot"));
234 theCertificationContents.push_back(dbe->bookFloat(
"STA_Tot"));
235 theCertificationContents.push_back(dbe->bookFloat(
"TK_Tot"));
236 theCertificationContents.push_back(dbe->bookFloat(
"GLB_B"));
237 theCertificationContents.push_back(dbe->bookFloat(
"STA_B"));
238 theCertificationContents.push_back(dbe->bookFloat(
"TK_B"));
239 theCertificationContents.push_back(dbe->bookFloat(
"GLB_EC"));
240 theCertificationContents.push_back(dbe->bookFloat(
"STA_EC"));
241 theCertificationContents.push_back(dbe->bookFloat(
"TK_EC"));
244 for (
unsigned int icert=0;icert <theCertificationContents.size();icert++){
245 theCertificationContents[icert]->Fill(-1);
255 for(
int xBin=1; xBin<=5; xBin++){
256 for(
int yBin=1; yBin<=3; yBin++){
257 kinematicsSummaryMap->Fill(xBin,yBin,1);
259 for(
int yBin=1; yBin<=5; yBin++){
260 chi2TestSummaryMap->Fill(xBin,yBin,1);
261 KolmogorovTestSummaryMap->Fill(xBin,yBin,1);
264 for(
int xBin=1; xBin<=residualsSummaryMap->getNbinsX(); xBin++){
265 for(
int yBin=1; yBin<=residualsSummaryMap->getNbinsY(); yBin++){
266 residualsSummaryMap->Fill(xBin,yBin,1);
269 residualsSummaryMap->setBinContent(4, 4, 1);
271 for(
int xBin=1; xBin<=muonIdSummaryMap->getNbinsX(); xBin++){
272 for(
int yBin=1; yBin<=muonIdSummaryMap->getNbinsY(); yBin++){
273 muonIdSummaryMap->Fill(xBin,yBin,1);
276 for(
int xBin=1; xBin<=3; xBin++){
277 for(
int yBin=1; yBin<=3; yBin++){
278 energySummaryMap->Fill(xBin,yBin,1);
281 for(
int xBin=1; xBin<=3; xBin++){
282 multiplicitySummaryMap->Fill(xBin,1);
284 for(
int xBin=1; xBin<=3; xBin++){
285 for(
int yBin=1; yBin<=7; yBin++){
286 summaryReportMap->Fill(xBin,yBin,1);
289 for(
int xBin=1; xBin<=9; xBin++){
290 for(
int yBin=1; yBin<=7; yBin++){
291 summaryCertificationMap->Fill(xBin,yBin,1);
308 LogTrace(
metname)<<
"[MuonTestSummary]: endRun, performing the DQM end of run client operation";
311 doKinematicsTests(
"GlbMuon_Glb_", 1);
312 doKinematicsTests(
"GlbMuon_Tk_", 2);
313 doKinematicsTests(
"GlbMuon_Sta_",3);
314 doKinematicsTests(
"TkMuon_", 4);
315 doKinematicsTests(
"StaMuon_", 5);
318 doResidualsTests(
"TkGlb",
"eta", 1);
319 doResidualsTests(
"GlbSta",
"eta", 2);
320 doResidualsTests(
"TkSta",
"eta", 3);
321 doResidualsTests(
"TkGlb",
"phi", 1);
322 doResidualsTests(
"GlbSta",
"phi", 2);
323 doResidualsTests(
"TkSta",
"phi", 3);
324 doResidualsTests(
"TkGlb",
"oneOverp", 1);
325 doResidualsTests(
"GlbSta",
"oneOverp", 2);
326 doResidualsTests(
"TkSta",
"oneOverp", 3);
327 doResidualsTests(
"GlbMuon",
"qComparison", -1);
333 doEnergyTests(
"ecalS9PointingMuDepositedEnergy_",
"Glb_muons", 1);
334 doEnergyTests(
"hadS9PointingMuDepositedEnergy_",
"Glb_muons", 1);
335 doEnergyTests(
"hoS9PointingMuDepositedEnergy_",
"Glb_muons", 1);
336 doEnergyTests(
"ecalS9PointingMuDepositedEnergy_",
"Tk_muons", 2);
337 doEnergyTests(
"hadS9PointingMuDepositedEnergy_",
"Tk_muons", 2);
338 doEnergyTests(
"hoS9PointingMuDepositedEnergy_",
"Tk_muons", 2);
339 doEnergyTests(
"ecalS9PointingMuDepositedEnergy_",
"Sta_muons", 3);
340 doEnergyTests(
"hadS9PointingMuDepositedEnergy_",
"Sta_muons", 3);
341 doEnergyTests(
"hoS9PointingMuDepositedEnergy_",
"Sta_muons", 3);
344 doMultiplicityTests();
359 summaryReportMap->setBinContent(1,1,
double(KolmogorovTestSummaryMap->getBinContent(1,1)+KolmogorovTestSummaryMap->getBinContent(2,1)+KolmogorovTestSummaryMap->getBinContent(3,1))/3.0);
360 summaryReportMap->setBinContent(2,1,KolmogorovTestSummaryMap->getBinContent(4,1));
361 summaryReportMap->setBinContent(3,1,KolmogorovTestSummaryMap->getBinContent(5,1));
362 summaryReportMap->setBinContent(1,2,
double(KolmogorovTestSummaryMap->getBinContent(1,2)+KolmogorovTestSummaryMap->getBinContent(2,2)+KolmogorovTestSummaryMap->getBinContent(3,2))/3.0);
363 summaryReportMap->setBinContent(2,2,KolmogorovTestSummaryMap->getBinContent(4,2));
364 summaryReportMap->setBinContent(3,2,KolmogorovTestSummaryMap->getBinContent(5,2));
365 summaryReportMap->setBinContent(1,3,
double(KolmogorovTestSummaryMap->getBinContent(1,3)+KolmogorovTestSummaryMap->getBinContent(2,3)+KolmogorovTestSummaryMap->getBinContent(3,3))/3.0);
366 summaryReportMap->setBinContent(2,3,KolmogorovTestSummaryMap->getBinContent(4,3));
367 summaryReportMap->setBinContent(3,3,KolmogorovTestSummaryMap->getBinContent(5,3));
372 double residualsSummary = 0;
375 for(
int i=3;
i<=residualsSummaryMap->getNbinsX();
i++)
376 for (
int j=1;
j<=residualsSummaryMap->getNbinsY();
j++)
377 residualsSummary += residualsSummaryMap->getBinContent(
i,
j);
378 residualsSummary /=2*residualsSummaryMap->getNbinsY();
379 summaryReportMap->setBinContent(1,4, residualsSummary);
382 for(
int i=1;
i<=1;
i++)
383 for (
int j=1;
j<=residualsSummaryMap->getNbinsY();
j++)
384 residualsSummary += residualsSummaryMap->getBinContent(
i,
j);
385 residualsSummary /=1*residualsSummaryMap->getNbinsY();
386 summaryReportMap->setBinContent(2,4,residualsSummary);
389 for(
int i=2;
i<=2;
i++)
390 for (
int j=1;
j<=residualsSummaryMap->getNbinsY();
j++)
391 residualsSummary += residualsSummaryMap->getBinContent(
i,
j);
392 residualsSummary /=1*residualsSummaryMap->getNbinsY();
393 summaryReportMap->setBinContent(3,4,residualsSummary);
401 for(
int i=1;
i<=2;
i++)
402 for(
int j=1;
j<=5;
j++) {
403 if(
j==3 ||
j==5)
continue;
404 idtest+=muonIdSummaryMap->getBinContent(
i,
j);
408 summaryReportMap->setBinContent(1,5, idtest);
410 for(
int i=3;
i<=4;
i++)
411 for(
int j=1;
j<=5;
j++) {
412 if(
j==3 ||
j==5)
continue;
413 idtest+=muonIdSummaryMap->getBinContent(
i,
j);
417 summaryReportMap->setBinContent(2,5,idtest);
418 summaryReportMap->setBinContent(3,5,-1.0/6.0);
426 summaryReportMap->setBinContent(1,6,
double(energySummaryMap->getBinContent(1,1)+energySummaryMap->getBinContent(1,2))/2.0);
427 summaryReportMap->setBinContent(2,6,
double(energySummaryMap->getBinContent(2,1)+energySummaryMap->getBinContent(2,2))/2.0);
428 summaryReportMap->setBinContent(3,6,
double(energySummaryMap->getBinContent(3,1)+energySummaryMap->getBinContent(3,2))/2.0);
429 summaryReportMap->setBinContent(1,7,multiplicitySummaryMap->getBinContent(1));
430 summaryReportMap->setBinContent(2,7,multiplicitySummaryMap->getBinContent(2));
431 summaryReportMap->setBinContent(3,7,multiplicitySummaryMap->getBinContent(3));
434 double kinematics_GLB = double(summaryReportMap->getBinContent(1,1)+summaryReportMap->getBinContent(1,2)+summaryReportMap->getBinContent(1,3))/3.0;
435 theSummaryContents[0]->Fill(kinematics_GLB);
436 double muonId_GLB = double(summaryReportMap->getBinContent(1,5));
437 theSummaryContents[1]->Fill(muonId_GLB);
438 double residuals_GLB = double(summaryReportMap->getBinContent(1,4));
439 theSummaryContents[2]->Fill(residuals_GLB);
440 double GLB = (kinematics_GLB+muonId_GLB+residuals_GLB)/3.0;
441 theSummaryContents[3]->Fill(GLB);
443 double kinematics_TK = double(summaryReportMap->getBinContent(2,1)+summaryReportMap->getBinContent(2,2)+summaryReportMap->getBinContent(2,3))/3.0;
444 theSummaryContents[4]->Fill(kinematics_TK);
445 double muonId_TK = double(summaryReportMap->getBinContent(2,5));
446 theSummaryContents[5]->Fill(muonId_TK);
447 double residuals_TK = double(summaryReportMap->getBinContent(2,4));
448 theSummaryContents[6]->Fill(residuals_TK);
449 double TK = double(kinematics_TK+muonId_TK+residuals_TK)/3.0;
450 theSummaryContents[7]->Fill(TK);
452 double kinematics_STA = double(summaryReportMap->getBinContent(3,1)+summaryReportMap->getBinContent(3,2)+summaryReportMap->getBinContent(3,3))/3.0;
453 theSummaryContents[8]->Fill(kinematics_STA);
454 double residuals_STA = double(summaryReportMap->getBinContent(3,4));
455 theSummaryContents[9]->Fill(residuals_STA);
456 double STA = double(kinematics_STA+residuals_STA)/2.0;
457 theSummaryContents[10]->Fill(STA);
458 double energyDeposits = double(summaryReportMap->getBinContent(1,6)+summaryReportMap->getBinContent(2,6)+summaryReportMap->getBinContent(3,6))/3.0;
459 theSummaryContents[11]->Fill(energyDeposits);
460 double multiplicity = double(summaryReportMap->getBinContent(1,7)+summaryReportMap->getBinContent(2,7)+summaryReportMap->getBinContent(3,7))/3.0;
461 theSummaryContents[12]->Fill(multiplicity);
463 summaryReport->Fill((GLB+TK+STA+energyDeposits+multiplicity)/5.0);
467 float muonIDsummary=0;
472 muonIDsummary += muonIdSummaryMap->getBinContent(1, 2);
473 muonIDsummary += muonIdSummaryMap->getBinContent(1, 4);
474 summaryCertificationMap->setBinContent(4, 5, muonIDsummary/2.);
481 muonIDsummary += muonIdSummaryMap->getBinContent(2, 2);
482 muonIDsummary += muonIdSummaryMap->getBinContent(2, 4);
483 summaryCertificationMap->setBinContent(7, 5, muonIDsummary/2.);
490 muonIDsummary += muonIdSummaryMap->getBinContent(3, 2);
491 muonIDsummary += muonIdSummaryMap->getBinContent(3, 4);
492 summaryCertificationMap->setBinContent(5, 5, muonIDsummary/2.);
499 muonIDsummary += muonIdSummaryMap->getBinContent(4, 2);
500 muonIDsummary += muonIdSummaryMap->getBinContent(4, 4);
501 summaryCertificationMap->setBinContent(8, 5, muonIDsummary/2.);
504 double muonId_GLB_B = double(summaryCertificationMap->getBinContent(4,5));
505 theCertificationContents[3]->Fill(muonId_GLB_B);
506 double muonId_GLB_EC = double(summaryCertificationMap->getBinContent(7,5));
507 theCertificationContents[6]->Fill(muonId_GLB_EC);
509 double muonId_TK_B = double(summaryCertificationMap->getBinContent(5,5));
510 theCertificationContents[5]->Fill(muonId_TK_B);
511 double muonId_TK_EC = double(summaryCertificationMap->getBinContent(8,5));
512 theCertificationContents[8]->Fill(muonId_TK_EC);
527 string path =
"Muons/MuonRecoAnalyzer/" + muonType +
"chi2OverDf";
531 TH1F * chi2Histo_root = chi2Histo->
getTH1F();
532 if(chi2Histo_root->GetEntries()>20){
535 LogTrace(
metname)<<
"chi2 kin test based on fraction for "<<muonType<<endl;
536 int maxBin = chi2Histo_root->GetMaximumBin();
537 if(chi2Histo_root->Integral(maxBin+1,chi2Histo_root->GetNbinsX())!=0){
538 double fraction = double(chi2Histo_root->Integral(1,maxBin))/
double(chi2Histo_root->Integral(maxBin+1,chi2Histo_root->GetNbinsX()));
539 LogTrace(
metname)<<
"chi2 fraction for "<<muonType<<
" : "<<fraction<<
" must be within "<< chi2Fraction-chi2Spread<<
","<<chi2Fraction+chi2Spread<<endl;
540 if(fraction>(chi2Fraction-chi2Spread) && fraction<(chi2Fraction+chi2Spread))
541 kinematicsSummaryMap->setBinContent(bin,1,1);
543 kinematicsSummaryMap->setBinContent(bin,1,0);
547 LogTrace(
metname)<<
"chi2 kin test based on comp wrt reference on terms of chi2 for "<<muonType<<endl;
553 std::string qtmessage = myQReport->
getMessage() ;
554 LogTrace(
metname) <<
"qtresult " <<qtresult <<
" qtstatus "<<qtstatus<<endl;
555 chi2TestSummaryMap->setBinContent(bin,1,qtresult);
558 LogTrace(
metname)<<
"chi2 kin test based on comp wrt reference using kolmogorov for "<<muonType<<endl;
563 int qtstatus = myQReportKolmo->
getStatus() ;
564 std::string qtmessage = myQReportKolmo->
getMessage() ;
565 LogTrace(
metname) <<
"qtresult " <<qtresult<<
" qtstatus "<<qtstatus<<endl;
566 KolmogorovTestSummaryMap->setBinContent(bin,1,qtresult);
571 LogTrace(
metname) <<
"[MuonTestSummary]: Test of Chi2 Kin not performed for "<< muonType <<
" because # entries < 20 ";
578 path =
"Muons/MuonRecoAnalyzer/" + muonType +
"eta";
582 TH1F * etaHisto_root = etaHisto->
getTH1F();
583 if (etaHisto_root ->GetEntries()>20){
586 LogTrace(
metname)<<
"eta kin test based on fraction for "<<muonType<<endl;
587 double binSize = (etaHisto_root->GetXaxis()->GetXmax()-etaHisto_root->GetXaxis()->GetXmin())/etaHisto_root->GetNbinsX();
588 int binZero = int((0-etaHisto_root->GetXaxis()->GetXmin())/binSize);
589 if(etaHisto_root->Integral(1,binZero-1)!=0 && etaHisto_root->Integral(binZero,etaHisto_root->GetNbinsX())!=0){
590 double symmetryFactor =
591 double(etaHisto_root->Integral(1,binZero-1)) /
double(etaHisto_root->Integral(binZero,etaHisto_root->GetNbinsX()));
592 double errSymmetryFactor =
593 symmetryFactor*
sqrt(1.0/
double(etaHisto_root->Integral(1,binZero-1)) + 1.0/
double(etaHisto_root->Integral(binZero,etaHisto_root->GetNbinsX())));
594 LogTrace(
metname)<<
"eta symmetryFactor for "<<muonType<<
" : "<<symmetryFactor<<
" (expected :" <<etaExpected <<
")"<<endl;
595 LogTrace(
metname)<<
"eta errSymmetryFactor for "<<muonType<<
" : "<<errSymmetryFactor<<endl;
597 if((symmetryFactor-etaExpected)>0) tParameter=double(symmetryFactor-etaExpected)/errSymmetryFactor;
598 else tParameter=double(-symmetryFactor+etaExpected)/errSymmetryFactor;
599 LogTrace(
metname)<<
"eta tParameter for "<<muonType<<
" : "<<tParameter<<
" (expected < 1.95)" <<endl;
601 kinematicsSummaryMap->setBinContent(bin,2,1);
603 kinematicsSummaryMap->setBinContent(bin,2,0);
607 LogTrace(
metname)<<
"eta kin test based on comp wrt reference on terms of chi2 for "<<muonType<<endl;
613 std::string qtmessage = myQReport->
getMessage() ;
614 LogTrace(
metname) <<
"qtresult " <<qtresult <<
" qtstatus "<<qtstatus<<endl;
615 chi2TestSummaryMap->setBinContent(bin,2,qtresult);
619 LogTrace(
metname)<<
"eta kin test based on comp wrt reference using kolmogorov for "<<muonType<<endl;
624 int qtstatus = myQReportKolmo->
getStatus() ;
625 std::string qtmessage = myQReportKolmo->
getMessage() ;
626 LogTrace(
metname) <<
"qtresult " <<qtresult<<
" qtstatus "<<qtstatus<<endl;
627 KolmogorovTestSummaryMap->setBinContent(bin,2,qtresult);
632 LogTrace(
metname) <<
"[MuonTestSummary]: Test of Eta Kin not performed for "<< muonType <<
" because # entries < 20 ";
639 path =
"Muons/MuonRecoAnalyzer/" + muonType +
"phi";
643 TH1F * phiHisto_root = phiHisto->
getTH1F();
644 if(phiHisto_root ->GetEntries()>20){
647 LogTrace(
metname)<<
"phi kin test based on fraction for "<<muonType<<endl;
648 double binSize = (phiHisto_root->GetXaxis()->GetXmax()-phiHisto_root->GetXaxis()->GetXmin())/phiHisto_root->GetNbinsX();
649 int binZero = int((0-phiHisto_root->GetXaxis()->GetXmin())/binSize);
650 if(phiHisto_root->Integral(binZero+1,phiHisto_root->GetNbinsX())!=0 && phiHisto_root->Integral(1,binZero)!=0){
651 double symmetryFactor =
652 double(phiHisto_root->Integral(binZero+1,phiHisto_root->GetNbinsX())) / double(phiHisto_root->Integral(1,binZero));
653 double errSymmetryFactor =
654 symmetryFactor*
sqrt(1.0/
double(phiHisto_root->Integral(binZero+1,phiHisto_root->GetNbinsX())) + 1.0/double(phiHisto_root->Integral(1,binZero)));
655 LogTrace(
metname)<<
"phi symmetryFactor for "<<muonType<<
" : "<<symmetryFactor<<
"(phi expected :" <<phiExpected <<
")"<<endl;
656 LogTrace(
metname)<<
"phi errSymmetryFactor for "<<muonType<<
" : "<<errSymmetryFactor<<endl;
658 if((symmetryFactor-phiExpected)>0) tParameter=double(symmetryFactor-phiExpected)/errSymmetryFactor;
659 else tParameter=double(-symmetryFactor+phiExpected)/errSymmetryFactor;
660 LogTrace(
metname)<<
"phi tParameter for "<<muonType<<
" : "<<tParameter<<
" (expected < 1.95)" <<endl;
662 kinematicsSummaryMap->setBinContent(bin,3,1);
664 kinematicsSummaryMap->setBinContent(bin,3,0);
668 LogTrace(
metname)<<
"phi kin test based on comp wrt reference on terms of chi2 for "<<muonType<<endl;
674 std::string qtmessage = myQReport->
getMessage() ;
675 LogTrace(
metname) <<
"qtresult " <<qtresult<<
" qtstatus "<<qtstatus<<endl;
676 chi2TestSummaryMap->setBinContent(bin,3,qtresult);
680 LogTrace(
metname)<<
"phi kin test based on comp wrt reference using kolmogorov for "<<muonType<<endl;
685 int qtstatus = myQReportKolmo->
getStatus() ;
686 std::string qtmessage = myQReportKolmo->
getMessage() ;
687 LogTrace(
metname) <<
"qtresult " <<qtresult<<
" qtstatus "<<qtstatus<<endl;
688 KolmogorovTestSummaryMap->setBinContent(bin,3,qtresult);
693 LogTrace(
metname) <<
"[MuonTestSummary]: Test of Phi Kin not performed for "<< muonType <<
" because # entries < 20 ";
698 path =
"Muons/MuonRecoAnalyzer/" + muonType +
"pt";
702 TH1F * ptHisto_root = ptHisto->
getTH1F();
703 if(ptHisto_root ->GetEntries()>20){
706 LogTrace(
metname)<<
"pt kin test based on comp wrt reference on terms of chi2 for "<<muonType<<endl;
712 std::string qtmessage = myQReport->
getMessage() ;
713 LogTrace(
metname) <<
"qtresult " <<qtresult<<
" qtstatus "<<qtstatus<<endl;
714 chi2TestSummaryMap->setBinContent(bin,4,qtresult);
718 LogTrace(
metname)<<
"pt kin test based on comp wrt reference using kolmogorov for "<<muonType<<endl;
723 int qtstatus = myQReportKolmo->
getStatus() ;
724 std::string qtmessage = myQReportKolmo->
getMessage() ;
725 LogTrace(
metname) <<
"qtresult " <<qtresult<<
" qtstatus "<<qtstatus<<endl;
726 KolmogorovTestSummaryMap->setBinContent(bin,4,qtresult);
730 LogTrace(
metname) <<
"[MuonTestSummary]: Test of Pt Kin not performed for "<< muonType <<
" because # entries < 20 ";
735 path =
"Muons/MuonRecoAnalyzer/" + muonType +
"q";
739 TH1F * qHisto_root = qHisto->
getTH1F();
740 if(qHisto_root ->GetEntries()>20){
743 LogTrace(
metname)<<
"q kin test based on comp wrt reference on terms of chi2 for "<<muonType<<endl;
749 std::string qtmessage = myQReport->
getMessage() ;
750 LogTrace(
metname) <<
"qtresult " <<qtresult<<
" qtstatus "<<qtstatus<<endl;
751 chi2TestSummaryMap->setBinContent(bin,5,qtresult);
755 LogTrace(
metname)<<
"q kin test based on comp wrt reference using kolmogorov for "<<muonType<<endl;
760 int qtstatus = myQReportKolmo->
getStatus() ;
761 std::string qtmessage = myQReportKolmo->
getMessage() ;
762 LogTrace(
metname) <<
"qtresult " <<qtresult<<
" qtstatus "<<qtstatus<<endl;
763 KolmogorovTestSummaryMap->setBinContent(bin,5,qtresult);
767 LogTrace(
metname) <<
"[MuonTestSummary]: Test of q Kin not performed for "<< muonType <<
" because # entries < 20 ";
783 float statMean = Histo->
getMean(1);
784 float statSigma = Histo->
getRMS(1);
785 TH1F * histo_root = Histo->
getTH1F();
786 if(histo_root->GetEntries()>20){
787 TF1 *gfit =
new TF1(
"Gaussian",
"gaus",(statMean-(2*statSigma)),(statMean+(2*statSigma)));
789 histo_root->Fit(gfit,
"Q0");
791 edm::LogError (
metname)<<
"[MuonTestSummary]: Exception when fitting Res_"<<type<<
"_"<<parameter;
794 mean = gfit->GetParameter(1);
795 mean_err = gfit->GetParErrors()[2];
796 sigma = gfit->GetParameter(2);
797 sigma_err = gfit->GetParErrors()[2];
798 LogTrace(
metname)<<
"Gaussian fit mean: "<<mean<<
" +- "<<mean_err<<
" for "<<type<<
"_"<<parameter<<endl;
799 LogTrace(
metname)<<
"Gaussina fit sigma: "<<sigma<<
" +- "<<sigma_err<<
" for "<<type<<
"_"<<parameter<<endl;
803 LogTrace(
metname) <<
"[MuonTestSummary]: Test of Res_"<<type<<
"_"<<parameter<<
" not performed because # entries < 20 ";
821 string path =
"Muons/MuonRecoAnalyzer/Res_" + type +
"_" + parameter;
827 float sigma_err = -1;
831 LogTrace(
metname) <<
"[MuonTestSummary]: Starting Gaussian fit for Test of Res_"<<type<<
"_"<<parameter<< endl;
832 GaussFit( type, parameter, residualsHisto, mean, mean_err, sigma, sigma_err);
834 if(sigma!=-1 && parameter==
"eta" && type==
"TkGlb"){
835 if(sigma-sigma_err<resEtaSpread_tkGlb) residualsSummaryMap->setBinContent(bin, 1, 1);
836 else residualsSummaryMap->setBinContent(bin, 1, 0);
838 if(sigma!=-1 && parameter==
"eta" && (type==
"GlbSta" || type==
"TkSta")) {
839 if(sigma-sigma_err<resEtaSpread_glbSta) residualsSummaryMap->setBinContent(bin, 1, 1);
840 else residualsSummaryMap->setBinContent(bin, 1, 0);
842 if(sigma!=-1 && parameter==
"phi" && type==
"TkGlb"){
843 if(sigma-sigma_err<resPhiSpread_tkGlb) residualsSummaryMap->setBinContent(bin, 2, 1);
844 else residualsSummaryMap->setBinContent(bin, 2, 0);
846 if(sigma!=-1 && parameter==
"phi" && (type==
"GlbSta" || type==
"TkSta")){
847 if(sigma-sigma_err<resPhiSpread_glbSta) residualsSummaryMap->setBinContent(bin, 2, 1);
848 else residualsSummaryMap->setBinContent(bin, 2, 0);
850 if(sigma!=-1 && parameter==
"oneOverp" && type==
"TkGlb"){
851 if(sigma-sigma_err<resOneOvPSpread_tkGlb) residualsSummaryMap->setBinContent(bin, 3, 1);
852 else residualsSummaryMap->setBinContent(bin, 3, 0);
854 if(sigma!=-1 && parameter==
"oneOverp" && (type==
"GlbSta" || type==
"TkSta")) {
855 if(sigma-sigma_err<resOneOvPSpread_glbSta) residualsSummaryMap->setBinContent(bin, 3, 1);
856 else residualsSummaryMap->setBinContent(bin, 3, 0);
865 string path =
"Muons/MuonRecoAnalyzer/Pull_" + type +
"_" + parameter;
870 LogTrace(
metname) <<
"[MuonTestSummary]: Starting Gaussian fit for Test of Pull_"<<type<<
"_"<<parameter<< endl;
871 GaussFit( type, parameter, pullHisto, mean, mean_err, sigma, sigma_err);
873 if(sigma!=-1 && parameter==
"eta" ){
874 if(sigma-sigma_err<pullEtaSpread) residualsSummaryMap->setBinContent(4, 1, 1);
875 else residualsSummaryMap->setBinContent(4, 1, 0);
877 if(sigma!=-1 && parameter==
"phi"){
878 if(sigma-sigma_err<pullPhiSpread) residualsSummaryMap->setBinContent(4, 2, 1);
879 else residualsSummaryMap->setBinContent(4, 2, 0);
881 if(sigma!=-1 && parameter==
"oneOverp"){
882 if(sigma-sigma_err<pullOneOvPSpread) residualsSummaryMap->setBinContent(4, 3, 1);
883 else residualsSummaryMap->setBinContent(4, 3, 0);
892 string path =
"Muons/MuonRecoAnalyzer/" + type +
"_" + parameter;
896 LogTrace(
metname) <<
"[MuonTestSummary]: Test of Charge Comparison "<<type<<
"_"<<parameter<< endl;
900 residualsSummaryMap->setBinContent(1, 4, 1);
902 residualsSummaryMap->setBinContent(1, 4, 0);
907 residualsSummaryMap->setBinContent(2, 4, 1);
909 residualsSummaryMap->setBinContent(2, 4, 0);
914 residualsSummaryMap->setBinContent(3, 4, 1);
916 residualsSummaryMap->setBinContent(3, 4, 0);
925 vector<string> muType;
926 muType.push_back(
"GlobalMuons");
927 muType.push_back(
"TrackerMuons");
929 for(
int i=0;
i<=1;
i++){
932 string path =
"Muons/MuonIdDQM/" + muType[
i] +
"/hNumMatches";
936 TH1F * matchesHisto_root = matchesHisto->
getTH1F();
937 if(matchesHisto_root->GetMaximumBin() >= numMatchedExpected_min && matchesHisto_root->GetMaximumBin() <= numMatchedExpected_max)
938 muonIdSummaryMap->setBinContent(
i+1,1,1);
940 muonIdSummaryMap->setBinContent(
i+1,1,0);
945 double numOneSegm_dt = 0;
948 MonitorElement * DT1Histo = dbe->get(
"Muons/MuonIdDQM/" + muType[
i] +
"/hDT1NumSegments");
952 MonitorElement * DT2Histo = dbe->get(
"Muons/MuonIdDQM/" + muType[
i] +
"/hDT2NumSegments");
956 MonitorElement * DT3Histo = dbe->get(
"Muons/MuonIdDQM/" + muType[
i] +
"/hDT3NumSegments");
960 MonitorElement * DT4Histo = dbe->get(
"Muons/MuonIdDQM/" + muType[
i] +
"/hDT4NumSegments");
964 double fraction_dt=0;
965 if(numOneSegm_dt!=0){
966 fraction_dt = numOneSegm_dt/double(numHistos_dt);
970 double numOneSegm_csc = 0;
971 MonitorElement * CSC1Histo = dbe->get(
"Muons/MuonIdDQM/" + muType[
i] +
"/hCSC1NumSegments");
975 MonitorElement * CSC2Histo = dbe->get(
"Muons/MuonIdDQM/" + muType[
i] +
"/hCSC2NumSegments");
979 MonitorElement * CSC3Histo = dbe->get(
"Muons/MuonIdDQM/" + muType[
i] +
"/hCSC3NumSegments");
983 MonitorElement * CSC4Histo = dbe->get(
"Muons/MuonIdDQM/" + muType[
i] +
"/hCSC4NumSegments");
987 double fraction_csc=0;
988 if(numOneSegm_csc!=0){
989 fraction_csc = numOneSegm_csc/double(numHistos_csc);
990 LogTrace(
metname)<<
"fraction_csc: "<<fraction_csc<<
" for "<<muType[
i]<<endl;
997 if(fraction_dt>matchesFractionDt_min && fraction_dt<matchesFractionDt_max)
998 muonIdSummaryMap->setBinContent(2*
i+1,1,1);
1000 muonIdSummaryMap->setBinContent(2*
i+1,1,0);
1002 if(fraction_csc>matchesFractionCsc_min && fraction_csc<matchesFractionCsc_max)
1003 muonIdSummaryMap->setBinContent(2*
i+2,1,1);
1005 muonIdSummaryMap->setBinContent(2*
i+2,1,0);
1012 vector<string> DTXresHistos, DTYresHistos, CSCXresHistos, CSCYresHistos;
1013 DTXresHistos.push_back(
"hDT1Pullx");
1014 DTXresHistos.push_back(
"hDT2Pullx");
1015 DTXresHistos.push_back(
"hDT3Pullx");
1016 DTXresHistos.push_back(
"hDT4Pullx");
1018 DTYresHistos.push_back(
"hDT1Pully");
1019 DTYresHistos.push_back(
"hDT2Pully");
1020 DTYresHistos.push_back(
"hDT3Pully");
1022 CSCXresHistos.push_back(
"hCSC1Pullx");
1023 CSCXresHistos.push_back(
"hCSC2Pullx");
1024 CSCXresHistos.push_back(
"hCSC3Pullx");
1025 CSCXresHistos.push_back(
"hCSC4Pullx");
1027 CSCYresHistos.push_back(
"hCSC1Pully");
1028 CSCYresHistos.push_back(
"hCSC2Pully");
1029 CSCYresHistos.push_back(
"hCSC3Pully");
1030 CSCYresHistos.push_back(
"hCSC4Pully");
1032 int numPlot_dtX, numPlot_dtY, numPlot_cscX, numPlot_cscY;
1033 double dtSigmaX, dtSigmaY, cscSigmaX, cscSigmaY;
1034 double dtSigmaX_err, dtSigmaY_err, cscSigmaX_err, cscSigmaY_err;
1035 double dtMeanX, dtMeanY, cscMeanX, cscMeanY;
1036 double dtMeanX_err, dtMeanY_err, cscMeanX_err, cscMeanY_err;
1043 LogTrace(
metname)<<
"DT mean must be between: "<<resSegmTrack_mean_min <<
" and "<<resSegmTrack_mean_max<<endl;
1044 LogTrace(
metname)<<
"DT rms must be between: "<<resSegmTrack_rms_min <<
" and "<<resSegmTrack_rms_max<<endl;
1045 LogTrace(
metname)<<
"DT X residual "<< muType[
i]<<
" mean: " << dtMeanX<<
" +- "<< dtMeanX_err
1046 <<
", sigma: "<< dtSigmaX <<
" +- "<<dtSigmaX_err<< endl;
1047 LogTrace(
metname)<<
"DT Y residual "<< muType[
i]<<
" mean: " << dtMeanY<<
" +- "<< dtMeanY_err
1048 <<
", sigma: "<< dtSigmaY <<
" +- "<<dtSigmaY_err<< endl;
1049 LogTrace(
metname)<<
"CSC X residual "<< muType[
i]<<
" mean: " << cscMeanX<<
" +- "<< cscMeanX_err
1050 <<
", sigma: "<< cscSigmaX <<
" +- "<<cscSigmaX_err<< endl;
1051 LogTrace(
metname)<<
"CSC Y residual "<< muType[
i]<<
" mean: " << cscMeanY<<
" +- "<< cscMeanY_err
1052 <<
", sigma: "<< cscSigmaY <<
" +- "<<cscSigmaY_err<< endl;
1057 if(numPlot_dtX > 0 ) {
1058 if( dtMeanX + nsig*dtMeanX_err>resSegmTrack_mean_min &&
1059 dtMeanX - nsig*dtMeanX_err<resSegmTrack_mean_max)
1060 muonIdSummaryMap->setBinContent(2*i+1,2,1);
1062 muonIdSummaryMap->setBinContent(2*i+1,2,0);
1064 if( dtSigmaX + nsig*dtSigmaX_err>resSegmTrack_rms_min &&
1065 dtSigmaX - nsig*dtSigmaX_err<resSegmTrack_rms_max)
1066 muonIdSummaryMap->setBinContent(2*i+1,3,1);
1068 muonIdSummaryMap->setBinContent(2*i+1,3,0);
1070 if(numPlot_dtY > 0 ){
1071 if( dtMeanY + nsig*dtMeanY_err>resSegmTrack_mean_min &&
1072 dtMeanY - nsig*dtMeanY_err<resSegmTrack_mean_max)
1073 muonIdSummaryMap->setBinContent(2*i+1,4,1);
1075 muonIdSummaryMap->setBinContent(2*i+1,4,0);
1077 if( dtSigmaY + nsig*dtSigmaY_err>resSegmTrack_rms_min &&
1078 dtSigmaY - nsig*dtSigmaX_err<resSegmTrack_rms_max)
1079 muonIdSummaryMap->setBinContent(2*i+1,5,1);
1081 muonIdSummaryMap->setBinContent(2*i+1,5,0);
1085 if(numPlot_cscX > 0 ) {
1086 if( cscMeanX + nsig*cscMeanX_err>resSegmTrack_mean_min &&
1087 cscMeanX - nsig*cscMeanX_err<resSegmTrack_mean_max)
1088 muonIdSummaryMap->setBinContent(2*i+2,2,1);
1090 muonIdSummaryMap->setBinContent(2*i+2,2,0);
1092 if( cscSigmaX + nsig*cscSigmaX_err>resSegmTrack_rms_min &&
1093 cscSigmaX - nsig*cscSigmaX_err<resSegmTrack_rms_max)
1094 muonIdSummaryMap->setBinContent(2*i+2,3,1);
1096 muonIdSummaryMap->setBinContent(2*i+2,3,0);
1098 if(numPlot_cscY > 0 ){
1099 if( cscMeanY + nsig*cscMeanY_err>resSegmTrack_mean_min &&
1100 cscMeanY - nsig*cscMeanY_err<resSegmTrack_mean_max)
1101 muonIdSummaryMap->setBinContent(2*i+2,4,1);
1103 muonIdSummaryMap->setBinContent(2*i+2,4,0);
1105 if( cscSigmaY + nsig*cscSigmaY_err>resSegmTrack_rms_min &&
1106 cscSigmaY - nsig*cscSigmaY_err<resSegmTrack_rms_max)
1107 muonIdSummaryMap->setBinContent(2*i+2,5,1);
1109 muonIdSummaryMap->setBinContent(2*i+2,5,0);
1127 MonitorElement * resHisto = dbe->get(
"Muons/MuonIdDQM/" + muType +
"/"+resHistos[
name]);
1130 TH1F * resHisto_root = resHisto->
getTH1F();
1131 if(resHisto_root->GetEntries() < 20) {
1132 LogTrace(
metname) <<
"[MuonTestSummary]: Test of "<< muType<<
" for " <<resHistos[
name]<<
" not performed because # entries < 20 ";
1140 float mean = resHisto_root->GetBinLowEdge(resHisto_root->GetMaximumBin());
1141 TF1 *gfit =
new TF1(
"Gaussian",
"gaus",mean-3,mean+3);
1145 resHisto_root->Fit(gfit,
"Q0");
1150 double mean = gfit->GetParameter(1);
1151 double mean_err = gfit->GetParError(1);
1152 double sigma = gfit->GetParameter(2);
1153 double sigma_err = gfit->GetParError(2);
1155 LogTrace(
metname)<<
"sigmaRes: "<<sigma<<
" +- "<<sigma_err<<
" for "<<resHistos[
name]<<endl;
1158 Mean_err +=mean_err * mean_err;
1160 Sigma_err +=sigma_err * sigma_err;
1175 Mean_err =
sqrt(Mean_err);
1179 Sigma_err =
sqrt(Sigma_err);
1194 string path =
"Muons/MuonEnergyDepositAnalyzer/"+histname+muonType;
1196 Double_t hPeak=-1, hFWHM=-1;
1198 TH1F * energyHisto_root = energyHisto->
getTH1F();
1201 Double_t fitRange[2];
1202 Double_t startValues[4], parlimitslo[4], parlimitshi[4], fitPar[4], fitParErr[4];
1205 if(histname==
"ecalS9PointingMuDepositedEnergy_"){
1209 startValues[0]=0.036; startValues[1]=0.193; startValues[2]=110.0; startValues[3]=0.06;
1210 parlimitslo[0]=0.0; parlimitslo[1]=0.; parlimitslo[2]=1.0; parlimitslo[3]=0.;
1211 parlimitshi[0]=0.05; parlimitshi[1]=0.5; parlimitshi[2]=80000.0; parlimitshi[3]=0.1;
1215 TF1 *fit = langaufit(energyHisto_root,fitRange,startValues,parlimitslo,parlimitshi,fitPar,fitParErr,&chisqr,&ndf);
1218 LogTrace(
metname)<<
"hPeak from langau fit: "<<hPeak<<
" for: "<<histname+muonType<<endl;
1219 LogTrace(
metname)<<
"hFWHM from langau fit: "<<hFWHM<<
" for: "<<histname+muonType<<endl;
1223 if(histname==
"hadS9PointingMuDepositedEnergy_"){
1227 startValues[0]=2.0; startValues[1]=2.4; startValues[2]=110.0; startValues[3]=4.0;
1228 parlimitslo[0]=0.0; parlimitslo[1]=0.; parlimitslo[2]=1.0; parlimitslo[3]=0.;
1229 parlimitshi[0]=4.0; parlimitshi[1]=4.0; parlimitshi[2]=80000.0; parlimitshi[3]=8.0;
1233 TF1 *fit = langaufit(energyHisto_root,fitRange,startValues,parlimitslo,parlimitshi,fitPar,fitParErr,&chisqr,&ndf);
1236 LogTrace(
metname)<<
"hPeak from langau fit: "<<hPeak<<
" for: "<<histname+muonType<<endl;
1237 LogTrace(
metname)<<
"hFWHM from langau fit: "<<hFWHM<<
" for: "<<histname+muonType<<endl;
1242 LogTrace(
metname) <<
"[MuonTestSummary]: Test of Energy for "<< histname+muonType <<
" not performed because # entries < 20 ";
1246 if(histname==
"ecalS9PointingMuDepositedEnergy_" && hPeak>expPeakEcalS9_min && hPeak<expPeakEcalS9_max)
1247 energySummaryMap->setBinContent(binNumber,1, 1);
1248 if(histname==
"ecalS9PointingMuDepositedEnergy_" && (hPeak!=-1) &&!(hPeak>expPeakEcalS9_min && hPeak<expPeakEcalS9_max))
1249 energySummaryMap->setBinContent(binNumber,1, 0);
1251 if(histname==
"hadS9PointingMuDepositedEnergy_" && hPeak>expPeakHadS9_min && hPeak<expPeakHadS9_max)
1252 energySummaryMap->setBinContent(binNumber,2, 1);
1253 if(histname==
"hadS9PointingMuDepositedEnergy_" && (hPeak!=-1) && !(hPeak>expPeakHadS9_min && hPeak<expPeakHadS9_max))
1254 energySummaryMap->setBinContent(binNumber,2, 0);
1262 MonitorElement* multiplicityHisto = dbe->get(
"Muons/MuonRecoAnalyzer/muReco");
1264 if(multiplicityHisto){
1267 LogTrace(
metname)<<
"multiplicity_GLB: "<<multiplicity_GLB<<
" ExpMultiplicityGlb_min " <<expMultiplicityGlb_min <<
" ExpMultiplicityGlb_max " <<expMultiplicityGlb_max<<endl;
1269 LogTrace(
metname)<<
"multiplicity_TK: "<<multiplicity_TK<<
" ExpMultiplicityTk_min " <<expMultiplicityTk_min <<
" ExpMultiplicityTk_max " <<expMultiplicityTk_max<<endl;
1271 LogTrace(
metname)<<
"multiplicity_STA: "<<multiplicity_STA<<
" ExpMultiplicitySta_min " <<expMultiplicitySta_min <<
" ExpMultiplicitySta_max " <<expMultiplicitySta_max<<endl;
1273 if(multiplicity_GLB>expMultiplicityGlb_min && multiplicity_GLB<expMultiplicityGlb_max)
1274 multiplicitySummaryMap->setBinContent(1,1);
1276 multiplicitySummaryMap->setBinContent(1,0);
1278 if(multiplicity_TK>expMultiplicityTk_min && multiplicity_TK<expMultiplicityTk_max)
1279 multiplicitySummaryMap->setBinContent(2,1);
1281 multiplicitySummaryMap->setBinContent(2,0);
1283 if(multiplicity_STA>expMultiplicitySta_min && multiplicity_STA<expMultiplicitySta_max)
1284 multiplicitySummaryMap->setBinContent(3,1);
1286 multiplicitySummaryMap->setBinContent(3,0);
1289 LogTrace(
metname) <<
"[MuonTestSummary]: Test of Multiplicity not performed because # entries < 20 ";
T getParameter(std::string const &) const
const QReport * getQReport(const std::string &qtname) const
get QReport corresponding to <qtname> (null pointer if QReport does not exist)
const std::string metname
double getEntries(void) const
get # of entries
double getMean(int axis=1) const
get mean value of histogram along x, y or z axis (axis=1, 2, 3 respectively)
const std::string & getMessage(void) const
get message attached to test
void doMultiplicityTests()
void endLuminosityBlock(edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &c)
Diagnostic.
virtual ~MuonTestSummary()
Destructor.
int getStatus(void) const
get test status (see Core/interface/QTestStatus.h)
void ResidualCheck(std::string muType, std::vector< std::string > resHistos, int &numPlot, double &Mean, double &Mean_err, double &Sigma, double &Sigma_err)
void beginRun(edm::Run const &run, edm::EventSetup const &eSetup)
Histograms initialisation.
Double_t Sigma(double mHreq, TString proc)
int32_t langaupro(double *params, double &maxx, double &FWHM)
void endRun(edm::Run const &run, edm::EventSetup const &eSetup)
TH1F * getTH1F(void) const
void doEnergyTests(std::string nameHisto, std::string muonType, int bin)
float getQTresult(void) const
get test result i.e. prob value
void doResidualsTests(std::string type, std::string parameter, int bin)
double getBinContent(int binx) const
get content of bin (1-D)
double getRMS(int axis=1) const
get RMS of histogram along x, y or z axis (axis=1, 2, 3 respectively)
void GaussFit(std::string type, std::string parameter, MonitorElement *Histo, float &mean, float &mean_err, float &sigma, float &sigma_err)
void beginLuminosityBlock(edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &c)
void beginJob(void)
BeginJob.
MuonTestSummary(const edm::ParameterSet &ps)
Constructor.
void doKinematicsTests(std::string muonType, int bin)
test operations