57 edm::LogInfo(
"SiStripCalibLorentzAngle") <<
"### DIR-NAME = " << Dir_Name_;
59 std::vector<MonitorElement*>::iterator
histo;
64 Rootple = LorentzAngle_Plots->mkdir(
"Rootple");
65 MuH = LorentzAngle_Plots->mkdir(
"MuH");
68 MuH_vs_Phi = LorentzAngle_Plots->mkdir(
"MuH_vs_Phi");
71 MuH_vs_Eta = LorentzAngle_Plots->mkdir(
"MuH_vs_Eta");
84 TH1Ds[
"LA_TIB"] =
new TH1D(
"TanLAPerTesla TIB",
"TanLAPerTesla TIB", 1000, -0.5, 0.5);
86 TH1Ds[
"LA_TOB"] =
new TH1D(
"TanLAPerTesla TOB",
"TanLAPerTesla TOB", 1000, -0.5, 0.5);
88 TH1Ds[
"LA_err_TIB"] =
new TH1D(
"TanLAPerTesla Error TIB",
"TanLAPerTesla Error TIB", 1000, 0, 1);
89 TH1Ds[
"LA_err_TIB"]->SetDirectory(
MuH);
90 TH1Ds[
"LA_err_TOB"] =
new TH1D(
"TanLAPerTesla Error TOB",
"TanLAPerTesla Error TOB", 1000, 0, 1);
91 TH1Ds[
"LA_err_TOB"]->SetDirectory(
MuH);
92 TH1Ds[
"LA_chi2norm_TIB"] =
new TH1D(
"TanLAPerTesla Chi2norm TIB",
"TanLAPerTesla Chi2norm TIB", 2000, 0, 10);
93 TH1Ds[
"LA_chi2norm_TIB"]->SetDirectory(
MuH);
94 TH1Ds[
"LA_chi2norm_TOB"] =
new TH1D(
"TanLAPerTesla Chi2norm TOB",
"TanLAPerTesla Chi2norm TOB", 2000, 0, 10);
95 TH1Ds[
"LA_chi2norm_TOB"]->SetDirectory(
MuH);
96 TH1Ds[
"MagneticField"] =
new TH1D(
"MagneticField",
"MagneticField", 500, 0, 5);
97 TH1Ds[
"MagneticField"]->SetDirectory(
MuH);
99 TH2Ds[
"LA_TIB_graph"] =
new TH2D(
"TanLAPerTesla TIB Layers",
"TanLAPerTesla TIB Layers", 60, 0, 5, 1000, -0.3, 0.3);
100 TH2Ds[
"LA_TIB_graph"]->SetDirectory(
MuH);
101 TH2Ds[
"LA_TIB_graph"]->SetNdivisions(6);
102 TH2Ds[
"LA_TOB_graph"] =
new TH2D(
"TanLAPerTesla TOB Layers",
"TanLAPerTesla TOB Layers", 80, 0, 7, 1000, -0.3, 0.3);
103 TH2Ds[
"LA_TOB_graph"]->SetDirectory(
MuH);
104 TH2Ds[
"LA_TOB_graph"]->SetNdivisions(8);
106 TH1Ds[
"LA_TIB_1"] =
new TH1D(
"TanLAPerTesla TIB1",
"TanLAPerTesla TIB1", 2000, -0.5, 0.5);
108 TH1Ds[
"LA_TIB_1_mono"] =
new TH1D(
"TanLAPerTesla TIB1 MONO",
"TanLAPerTesla TIB1 MONO", 2000, -0.5, 0.5);
110 TH1Ds[
"LA_TIB_1_stereo"] =
new TH1D(
"TanLAPerTesla TIB1 STEREO",
"TanLAPerTesla TIB1 STEREO", 2000, -0.5, 0.5);
112 TH1Ds[
"LA_TIB_2"] =
new TH1D(
"TanLAPerTesla TIB2",
"TanLAPerTesla TIB2", 2000, -0.5, 0.5);
114 TH1Ds[
"LA_TIB_2_mono"] =
new TH1D(
"TanLAPerTesla TIB2 MONO",
"TanLAPerTesla TIB2 MONO", 2000, -0.5, 0.5);
116 TH1Ds[
"LA_TIB_2_stereo"] =
new TH1D(
"TanLAPerTesla TIB2 STEREO",
"TanLAPerTesla TIB2 STEREO", 2000, -0.5, 0.5);
118 TH1Ds[
"LA_TIB_3"] =
new TH1D(
"TanLAPerTesla_TIB 3",
"TanLAPerTesla TIB3", 2000, -0.5, 0.5);
120 TH1Ds[
"LA_TIB_4"] =
new TH1D(
"TanLAPerTesla_TIB 4",
"TanLAPerTesla TIB4", 2000, -0.5, 0.5);
123 TH1Ds[
"LA_TOB_1"] =
new TH1D(
"TanLAPerTesla TOB1",
"TanLAPerTesla TOB1", 2000, -0.5, 0.5);
125 TH1Ds[
"LA_TOB_1_mono"] =
new TH1D(
"TanLAPerTesla TOB1 MONO",
"TanLAPerTesla TOB1 MONO", 2000, -0.5, 0.5);
127 TH1Ds[
"LA_TOB_1_stereo"] =
new TH1D(
"TanLAPerTesla TOB1 STEREO",
"TanLAPerTesla TOB1 STEREO", 2000, -0.5, 0.5);
129 TH1Ds[
"LA_TOB_2"] =
new TH1D(
"TanLAPerTesla TOB2",
"TanLAPerTesla TOB2", 2000, -0.5, 0.5);
131 TH1Ds[
"LA_TOB_2_mono"] =
new TH1D(
"TanLAPerTesla TOB2 MONO",
"TanLAPerTesla TOB2 MONO", 2000, -0.5, 0.5);
133 TH1Ds[
"LA_TOB_2_stereo"] =
new TH1D(
"TanLAPerTesla TOB2 STEREO",
"TanLAPerTesla TOB2 STEREO", 2000, -0.5, 0.5);
135 TH1Ds[
"LA_TOB_3"] =
new TH1D(
"TanLAPerTesla TOB3",
"TanLAPerTesla TOB3", 2000, -0.5, 0.5);
137 TH1Ds[
"LA_TOB_4"] =
new TH1D(
"TanLAPerTesla TOB4",
"TanLAPerTesla TOB4", 2000, -0.5, 0.5);
139 TH1Ds[
"LA_TOB_5"] =
new TH1D(
"TanLAPerTesla TOB5",
"TanLAPerTesla TOB5", 2000, -0.5, 0.5);
141 TH1Ds[
"LA_TOB_6"] =
new TH1D(
"TanLAPerTesla TOB6",
"TanLAPerTesla TOB6", 2000, -0.5, 0.5);
144 TH2Ds[
"LA_phi_TIB"] =
new TH2D(
"TanLAPerTesla vs Phi TIB",
"TanLAPerTesla vs Phi TIB", 800, -4, 4, 600, -0.3, 0.3);
146 TH2Ds[
"LA_phi_TOB"] =
new TH2D(
"TanLAPerTesla vs Phi TOB",
"TanLAPerTesla vs Phi TOB", 800, -4, 4, 600, -0.3, 0.3);
149 TH2Ds[
"LA_phi_TIB1"] =
new TH2D(
"TanLAPerTesla vs Phi TIB1",
"TanLAPerTesla vs Phi TIB1", 800, -4, 4, 600, -0.3, 0.3);
151 TH2Ds[
"LA_phi_TIB1_mono"] =
152 new TH2D(
"TanLAPerTesla vs Phi TIB1 MONO",
"TanLAPerTesla vs Phi TIB1 MONO", 800, -4, 4, 600, -0.3, 0.3);
154 TH2Ds[
"LA_phi_TIB1_stereo"] =
155 new TH2D(
"TanLAPerTesla vs Phi TIB1 STEREO",
"TanLAPerTesla vs Phi TIB1 STEREO", 800, -4, 4, 600, -0.3, 0.3);
157 TH2Ds[
"LA_phi_TIB2"] =
new TH2D(
"TanLAPerTesla vs Phi TIB2",
"TanLAPerTesla vs Phi TIB2", 800, -4, 4, 600, -0.3, 0.3);
159 TH2Ds[
"LA_phi_TIB2_mono"] =
160 new TH2D(
"TanLAPerTesla vs Phi TIB2 MONO",
"TanLAPerTesla vs Phi TIB2 MONO", 800, -4, 4, 600, -0.3, 0.3);
162 TH2Ds[
"LA_phi_TIB2_stereo"] =
163 new TH2D(
"TanLAPerTesla vs Phi TIB2 STEREO",
"TanLAPerTesla vs Phi TIB2 STEREO", 800, -4, 4, 600, -0.3, 0.3);
165 TH2Ds[
"LA_phi_TIB3"] =
new TH2D(
"TanLAPerTesla vs Phi TIB3",
"TanLAPerTesla vs Phi TIB3", 800, -4, 4, 600, -0.3, 0.3);
167 TH2Ds[
"LA_phi_TIB4"] =
new TH2D(
"TanLAPerTesla vs Phi TIB4",
"TanLAPerTesla vs Phi TIB4", 800, -4, 4, 600, -0.3, 0.3);
170 TH2Ds[
"LA_phi_TOB1"] =
new TH2D(
"TanLAPerTesla vs Phi TOB1",
"TanLAPerTesla vs Phi TOB1", 800, -4, 4, 600, -0.3, 0.3);
172 TH2Ds[
"LA_phi_TOB1_mono"] =
173 new TH2D(
"TanLAPerTesla vs Phi TOB1 MONO",
"TanLAPerTesla vs Phi TOB1 MONO", 800, -4, 4, 600, -0.3, 0.3);
175 TH2Ds[
"LA_phi_TOB1_stereo"] =
176 new TH2D(
"TanLAPerTesla vs Phi TOB1 STEREO",
"TanLAPerTesla vs Phi TOB1 STEREO", 800, -4, 4, 600, -0.3, 0.3);
178 TH2Ds[
"LA_phi_TOB2"] =
new TH2D(
"TanLAPerTesla vs Phi TOB2",
"TanLAPerTesla vs Phi TOB2", 800, -4, 4, 600, -0.3, 0.3);
180 TH2Ds[
"LA_phi_TOB2_mono"] =
181 new TH2D(
"TanLAPerTesla vs Phi TOB2 MONO",
"TanLAPerTesla vs Phi TOB2 MONO", 800, -4, 4, 600, -0.3, 0.3);
183 TH2Ds[
"LA_phi_TOB2_stereo"] =
184 new TH2D(
"TanLAPerTesla vs Phi TOB2 STEREO",
"TanLAPerTesla vs Phi TOB2 STEREO", 800, -4, 4, 600, -0.3, 0.3);
186 TH2Ds[
"LA_phi_TOB3"] =
new TH2D(
"TanLAPerTesla vs Phi TOB3",
"TanLAPerTesla vs Phi TOB3", 800, -4, 4, 600, -0.3, 0.3);
188 TH2Ds[
"LA_phi_TOB4"] =
new TH2D(
"TanLAPerTesla vs Phi TOB4",
"TanLAPerTesla vs Phi TOB4", 800, -4, 4, 600, -0.3, 0.3);
190 TH2Ds[
"LA_phi_TOB5"] =
new TH2D(
"TanLAPerTesla vs Phi TOB5",
"TanLAPerTesla vs Phi TOB5", 800, -4, 4, 600, -0.3, 0.3);
192 TH2Ds[
"LA_phi_TOB6"] =
new TH2D(
"TanLAPerTesla vs Phi TOB6",
"TanLAPerTesla vs Phi TOB6", 800, -4, 4, 600, -0.3, 0.3);
195 TH2Ds[
"LA_eta_TIB"] =
196 new TH2D(
"TanLAPerTesla vs Eta TIB",
"TanLAPerTesla vs Eta TIB", 800, -2.6, 2.6, 600, -0.3, 0.3);
198 TH2Ds[
"LA_eta_TOB"] =
199 new TH2D(
"TanLAPerTesla vs Eta TOB",
"TanLAPerTesla vs Eta TOB", 800, -2.6, 2.6, 600, -0.3, 0.3);
202 TH2Ds[
"LA_eta_TIB1"] =
203 new TH2D(
"TanLAPerTesla vs Eta TIB1",
"TanLAPerTesla vs Eta TIB1", 800, -2.6, 2.6, 600, -0.3, 0.3);
205 TH2Ds[
"LA_eta_TIB1_mono"] =
206 new TH2D(
"TanLAPerTesla vs Eta TIB1 MONO",
"TanLAPerTesla vs Eta TIB1 MONO", 800, -2.6, 2.6, 600, -0.3, 0.3);
208 TH2Ds[
"LA_eta_TIB1_stereo"] =
209 new TH2D(
"TanLAPerTesla vs Eta TIB1 STEREO",
"TanLAPerTesla vs Eta TIB1 STEREO", 800, -2.6, 2.6, 600, -0.3, 0.3);
211 TH2Ds[
"LA_eta_TIB2"] =
212 new TH2D(
"TanLAPerTesla vs Eta TIB2",
"TanLAPerTesla vs Eta TIB2", 800, -2.6, 2.6, 600, -0.3, 0.3);
214 TH2Ds[
"LA_eta_TIB2_mono"] =
215 new TH2D(
"TanLAPerTesla vs Eta TIB2 MONO",
"TanLAPerTesla vs Eta TIB2 MONO", 800, -2.6, 2.6, 600, -0.3, 0.3);
217 TH2Ds[
"LA_eta_TIB2_stereo"] =
218 new TH2D(
"TanLAPerTesla vs Eta TIB2 STEREO",
"TanLAPerTesla vs Eta TIB2 STEREO", 800, -2.6, 2.6, 600, -0.3, 0.3);
220 TH2Ds[
"LA_eta_TIB3"] =
221 new TH2D(
"TanLAPerTesla vs Eta TIB3",
"TanLAPerTesla vs Eta TIB3", 800, -2.6, 2.6, 600, -0.3, 0.3);
223 TH2Ds[
"LA_eta_TIB4"] =
224 new TH2D(
"TanLAPerTesla vs Eta TIB4",
"TanLAPerTesla vs Eta TIB4", 800, -2.6, 2.6, 600, -0.3, 0.3);
227 TH2Ds[
"LA_eta_TOB1"] =
228 new TH2D(
"TanLAPerTesla vs Eta TOB1",
"TanLAPerTesla vs Eta TOB1", 800, -2.6, 2.6, 600, -0.3, 0.3);
230 TH2Ds[
"LA_eta_TOB1_mono"] =
231 new TH2D(
"TanLAPerTesla vs Eta TOB1 MONO",
"TanLAPerTesla vs Eta TOB1 MONO", 800, -2.6, 2.6, 600, -0.3, 0.3);
233 TH2Ds[
"LA_eta_TOB1_stereo"] =
234 new TH2D(
"TanLAPerTesla vs Eta TOB1 STEREO",
"TanLAPerTesla vs Eta TOB1 STEREO", 800, -2.6, 2.6, 600, -0.3, 0.3);
236 TH2Ds[
"LA_eta_TOB2"] =
237 new TH2D(
"TanLAPerTesla vs Eta TOB2",
"TanLAPerTesla vs Eta TOB2", 800, -2.6, 2.6, 600, -0.3, 0.3);
239 TH2Ds[
"LA_eta_TOB2_mono"] =
240 new TH2D(
"TanLAPerTesla vs Eta TOB2 MONO",
"TanLAPerTesla vs Eta TOB2 MONO", 800, -2.6, 2.6, 600, -0.3, 0.3);
242 TH2Ds[
"LA_eta_TOB2_stereo"] =
243 new TH2D(
"TanLAPerTesla vs Eta TOB2 STEREO",
"TanLAPerTesla vs Eta TOB2 STEREO", 800, -2.6, 2.6, 600, -0.3, 0.3);
245 TH2Ds[
"LA_eta_TOB3"] =
246 new TH2D(
"TanLAPerTesla vs Eta TOB3",
"TanLAPerTesla vs Eta TOB3", 800, -2.6, 2.6, 600, -0.3, 0.3);
248 TH2Ds[
"LA_eta_TOB4"] =
249 new TH2D(
"TanLAPerTesla vs Eta TOB4",
"TanLAPerTesla vs Eta TOB4", 800, -2.6, 2.6, 600, -0.3, 0.3);
251 TH2Ds[
"LA_eta_TOB5"] =
252 new TH2D(
"TanLAPerTesla vs Eta TOB5",
"TanLAPerTesla vs Eta TOB5", 800, -2.6, 2.6, 600, -0.3, 0.3);
254 TH2Ds[
"LA_eta_TOB6"] =
255 new TH2D(
"TanLAPerTesla vs Eta TOB6",
"TanLAPerTesla vs Eta TOB6", 800, -2.6, 2.6, 600, -0.3, 0.3);
258 ModuleTree =
new TTree(
"ModuleTree",
"ModuleTree");
278 int histocounter = 0;
279 int NotEnoughEntries = 0;
282 int FirstIT_goodfit = 0;
283 int FirstIT_badfit = 0;
284 int SecondIT_badfit = 0;
285 int SecondIT_goodfit = 0;
286 int no_mod_histo = 0;
304 double TIB1calib = 1.;
305 double TIB2calib = 1.;
306 double TIB3calib = 1.;
307 double TIB4calib = 1.;
308 double TOB1calib = 1.;
309 double TOB2calib = 1.;
310 double TOB3calib = 1.;
311 double TOB4calib = 1.;
312 double TOB5calib = 1.;
313 double TOB6calib = 1.;
315 if (CalibByMC ==
true) {
329 auto fitfunc = std::make_unique<TF1>(
"fitfunc",
"([4]/[3])*[1]*(TMath::Abs(x-[0]))+[2]", -1, 1);
330 auto fitfunc2IT = std::make_unique<TF1>(
"fitfunc2IT",
"([4]/[3])*[1]*(TMath::Abs(x-[0]))+[2]", -1, 1);
332 std::ofstream NoEntries;
333 NoEntries.open(NoEntriesHisto_.c_str());
335 Rep.open(LAreport_.c_str());
337 gStyle->SetOptStat(1110);
342 bool Good2ITFit =
false;
343 bool ModuleHisto =
true;
370 edm::LogInfo(
"SiStripCalibLorentzAngle") <<
"### NO MODULE HISTOGRAM";
373 if (stripdet !=
nullptr && ModuleHisto ==
true) {
396 if (det ==
nullptr) {
397 edm::LogError(
"SiStripCalibLorentzAngle") <<
"[SiStripCalibLorentzAngle::getNewObject] the detID " <<
id 398 <<
" doesn't seem to belong to Tracker" << std::endl;
406 if (stripdet ==
nullptr)
409 if (((*histo)->getEntries() <= FitCuts_Entries) && ModuleHisto ==
true) {
410 if (((*histo)->getEntries() == 0) && ModuleHisto ==
true) {
411 NoEntries <<
"NO ENTRIES MODULE, ID = " <<
id << std::endl;
412 edm::LogInfo(
"SiStripCalibLorentzAngle") <<
"### HISTOGRAM WITH 0 ENTRIES => TYPE:" << subid.subdetId();
416 <<
"### HISTOGRAM WITH NR. ENTRIES <= ENTRIES_CUT => TYPE:" << subid.subdetId();
427 std::stringstream LayerStream;
428 LayerStream <<
Layer;
429 name += LayerStream.str();
430 std::stringstream idnum;
435 gStyle->SetOptFit(111);
443 if (((*histo)->getEntries() > FitCuts_Entries) && ModuleHisto ==
true) {
457 fitfunc->SetParameter(0, p0_guess);
458 fitfunc->SetParameter(1, p1_guess);
459 fitfunc->SetParameter(2, p2_guess);
460 fitfunc->FixParameter(3, pitch);
461 fitfunc->FixParameter(4, thickness);
463 Profiles[
name]->Fit(fitfunc.get(),
"E",
"", ModuleRangeMin, ModuleRangeMax);
469 FitFunction->GetParameter(2) < FitCuts_p2 || chi2norm > FitCuts_chi2 ||
473 fitfunc2IT->SetParameter(0, p0_guess);
474 fitfunc2IT->SetParameter(1, p1_guess);
475 fitfunc2IT->SetParameter(2, p2_guess);
476 fitfunc2IT->FixParameter(3, pitch);
477 fitfunc2IT->FixParameter(4, thickness);
480 Profiles[
name]->Fit(fitfunc2IT.get(),
"E",
"", ModuleRangeMin2IT, ModuleRangeMax2IT);
488 FitFunction->GetParameter(2) < FitCuts_p2 || chi2norm > FitCuts_chi2 ||
503 FitFunction->GetParameter(2) > FitCuts_p2 && chi2norm < FitCuts_chi2 &&
517 FitFunction->GetParameter(2) > FitCuts_p2 && chi2norm < FitCuts_chi2 &&
519 if (Good2ITFit ==
false) {
533 LorentzAngle_Plots->cd();
569 TH1Ds[
"LA_chi2norm_TIB"]->Fill(chi2norm);
572 TH2Ds[
"LA_TIB_graph"]->Fill(Layer,
muH);
584 TH1Ds[
"LA_TIB_1_stereo"]->Fill(
muH);
600 TH1Ds[
"LA_TIB_2_stereo"]->Fill(
muH);
622 TH1Ds[
"LA_chi2norm_TOB"]->Fill(chi2norm);
625 TH2Ds[
"LA_TOB_graph"]->Fill(Layer,
muH);
637 TH1Ds[
"LA_TOB_1_stereo"]->Fill(
muH);
653 TH1Ds[
"LA_TOB_2_stereo"]->Fill(
muH);
690 auto gaus = std::make_unique<TF1>(
"gaus",
"gaus");
692 TH1Ds[
"LA_TIB_1"]->Fit(gaus.get(),
"",
"", -GaussFitRange, GaussFitRange);
694 float err_mean_TIB1 = gaus->GetParError(1);
695 float rms_TIB1 = gaus->GetParameter(2);
696 TH1Ds[
"LA_TIB_2"]->Fit(gaus.get(),
"",
"", -GaussFitRange, GaussFitRange);
698 float err_mean_TIB2 = gaus->GetParError(1);
699 float rms_TIB2 = gaus->GetParameter(2);
700 TH1Ds[
"LA_TIB_3"]->Fit(gaus.get(),
"",
"", -GaussFitRange, GaussFitRange);
702 float err_mean_TIB3 = gaus->GetParError(1);
703 float rms_TIB3 = gaus->GetParameter(2);
704 TH1Ds[
"LA_TIB_4"]->Fit(gaus.get(),
"",
"", -GaussFitRange, GaussFitRange);
706 float err_mean_TIB4 = gaus->GetParError(1);
707 float rms_TIB4 = gaus->GetParameter(2);
709 TH1Ds[
"LA_TOB_1"]->Fit(gaus.get(),
"",
"", -GaussFitRange, GaussFitRange);
711 float err_mean_TOB1 = gaus->GetParError(1);
712 float rms_TOB1 = gaus->GetParameter(2);
713 TH1Ds[
"LA_TOB_2"]->Fit(gaus.get(),
"",
"", -GaussFitRange, GaussFitRange);
715 float err_mean_TOB2 = gaus->GetParError(1);
716 float rms_TOB2 = gaus->GetParameter(2);
717 TH1Ds[
"LA_TOB_3"]->Fit(gaus.get(),
"",
"", -GaussFitRange, GaussFitRange);
719 float err_mean_TOB3 = gaus->GetParError(1);
720 float rms_TOB3 = gaus->GetParameter(2);
721 TH1Ds[
"LA_TOB_4"]->Fit(gaus.get(),
"",
"", -GaussFitRange, GaussFitRange);
723 float err_mean_TOB4 = gaus->GetParError(1);
724 float rms_TOB4 = gaus->GetParameter(2);
725 TH1Ds[
"LA_TOB_5"]->Fit(gaus.get(),
"",
"", -GaussFitRange, GaussFitRange);
727 float err_mean_TOB5 = gaus->GetParError(1);
728 float rms_TOB5 = gaus->GetParameter(2);
729 TH1Ds[
"LA_TOB_6"]->Fit(gaus.get(),
"",
"", -GaussFitRange, GaussFitRange);
731 float err_mean_TOB6 = gaus->GetParError(1);
732 float rms_TOB6 = gaus->GetParameter(2);
735 float TIBx[4] = {1, 2, 3, 4};
736 float TIBex[4] = {0, 0, 0, 0};
738 float TIBey[4] = {err_mean_TIB1, err_mean_TIB2, err_mean_TIB3, err_mean_TIB4};
741 float TOBx[6] = {1, 2, 3, 4, 5, 6};
742 float TOBex[6] = {0, 0, 0, 0, 0, 0};
744 float TOBey[6] = {err_mean_TOB1, err_mean_TOB2, err_mean_TOB3, err_mean_TOB4, err_mean_TOB5, err_mean_TOB6};
746 TIB_graph =
new TGraphErrors(nlayersTIB, TIBx, TIBy, TIBex, TIBey);
747 TOB_graph =
new TGraphErrors(nlayersTOB, TOBx, TOBy, TOBex, TOBey);
752 gStyle->SetOptFit(111);
753 gStyle->SetOptStat(111);
755 TIB_graph->SetTitle(
"TIB Layers #mu_{H}");
756 TIB_graph->GetXaxis()->SetTitle(
"Layers");
758 TIB_graph->GetYaxis()->SetTitle(
"#mu_{H}");
760 TIB_graph->GetYaxis()->SetTitleOffset(1.3);
761 TIB_graph->Fit(
"fit_TIB",
"E",
"", 1, 4);
764 TOB_graph->SetTitle(
"TOB Layers #mu_{H}");
765 TOB_graph->GetXaxis()->SetTitle(
"Layers");
767 TOB_graph->GetYaxis()->SetTitle(
"#mu_{H}");
769 TOB_graph->GetYaxis()->SetTitleOffset(1.3);
770 TOB_graph->Fit(
"fit_TOB",
"E",
"", 1, 6);
776 Rep <<
"- NR.OF TIB AND TOB MODULES = 7932" << std::endl << std::endl << std::endl;
777 Rep <<
"- NO MODULE HISTOS FOUND = " << no_mod_histo << std::endl << std::endl;
778 Rep <<
"- NR.OF HISTOS WITH ENTRIES > " << FitCuts_Entries <<
" = " << histocounter << std::endl << std::endl;
779 Rep <<
"- NR.OF HISTOS WITH ENTRIES <= " << FitCuts_Entries <<
" (!=0) = " << NotEnoughEntries << std::endl
781 Rep <<
"- NR.OF HISTOS WITH 0 ENTRIES = " << ZeroEntries << std::endl << std::endl << std::endl;
782 Rep <<
"- NR.OF GOOD FIT (FIRST IT + SECOND IT GOOD FIT)= " << GoodFit << std::endl << std::endl;
783 Rep <<
"- NR.OF FIRST IT GOOD FIT = " << FirstIT_goodfit << std::endl << std::endl;
784 Rep <<
"- NR.OF SECOND IT GOOD FIT = " << SecondIT_goodfit << std::endl << std::endl;
785 Rep <<
"- NR.OF FIRST IT BAD FIT = " << FirstIT_badfit << std::endl << std::endl;
786 Rep <<
"- NR.OF SECOND IT BAD FIT = " << SecondIT_badfit << std::endl << std::endl << std::endl;
788 Rep <<
"--------------- Mean MuH values per Layer -------------------" << std::endl << std::endl << std::endl;
789 Rep <<
"TIB1 = " <<
mean_TIB1 <<
" +- " << err_mean_TIB1 <<
" RMS = " << rms_TIB1 << std::endl;
790 Rep <<
"TIB2 = " <<
mean_TIB2 <<
" +- " << err_mean_TIB2 <<
" RMS = " << rms_TIB2 << std::endl;
791 Rep <<
"TIB3 = " <<
mean_TIB3 <<
" +- " << err_mean_TIB3 <<
" RMS = " << rms_TIB3 << std::endl;
792 Rep <<
"TIB4 = " << mean_TIB4 <<
" +- " << err_mean_TIB4 <<
" RMS = " << rms_TIB4 << std::endl;
793 Rep <<
"TOB1 = " <<
mean_TOB1 <<
" +- " << err_mean_TOB1 <<
" RMS = " << rms_TOB1 << std::endl;
794 Rep <<
"TOB2 = " <<
mean_TOB2 <<
" +- " << err_mean_TOB2 <<
" RMS = " << rms_TOB2 << std::endl;
795 Rep <<
"TOB3 = " <<
mean_TOB3 <<
" +- " << err_mean_TOB3 <<
" RMS = " << rms_TOB3 << std::endl;
796 Rep <<
"TOB4 = " <<
mean_TOB4 <<
" +- " << err_mean_TOB4 <<
" RMS = " << rms_TOB4 << std::endl;
797 Rep <<
"TOB5 = " <<
mean_TOB5 <<
" +- " << err_mean_TOB5 <<
" RMS = " << rms_TOB5 << std::endl;
798 Rep <<
"TOB6 = " << mean_TOB6 <<
" +- " << err_mean_TOB6 <<
" RMS = " << rms_TOB6 << std::endl << std::endl;
TDirectory * SecondIT_BadFit_Histos
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
TDirectory * FirstIT_GoodFit_Histos
const GlobalPoint gposition
Point3DBase< Scalar, LocalTag > LocalPoint
TDirectory * TIB_2IT_GoodFit
unsigned int tibLayer(const DetId &id) const
dqm::legacy::DQMStore DQMStore
virtual const Topology & topology() const
const std::map< unsigned int, float > & getLorentzAngles() const
TDirectory * TOB_2IT_GoodFit
dqm::legacy::DQMStore * dbe_
Geom::Phi< T > phi() const
const Bounds & bounds() const
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
const Plane & surface() const
The nominal surface of the GeomDet.
uint32_t getComponentId(std::string histoid)
TDirectory * TIB_1IT_GoodFit
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
const TrackerTopology * tTopo
const TrackerGeometry * tracker
TDirectory * LorentzAngle_Plots
std::vector< MonitorElement * > histolist
TDirectory * TIB_2IT_BadFit
TDirectory * TOB_1IT_GoodFit
static constexpr auto TOB
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
std::vector< MonitorElement * > getAllContents(std::string const &path, uint32_t runNumber=0, uint32_t lumi=0) const
TDirectory * SecondIT_GoodFit_Histos
int extract(std::vector< int > *output, const std::string &dati)
static constexpr auto TIB
virtual float thickness() const =0
virtual float localPitch(const LocalPoint &) const =0
TDirectory * TOB_2IT_BadFit
edm::ESHandle< TrackerGeometry > estracker
bool open(std::string const &filename, bool overwrite=false, std::string const &path="", std::string const &prepend="", OpenRunDirs stripdirs=KeepRunDirs, bool fileMustExist=true)
edm::ESHandle< MagneticField > magfield_
const PositionType & position() const
T const * product() const
Power< A, B >::type pow(const A &a, const B &b)
std::map< uint32_t, float > detid_la
const Plane & specificSurface() const
Same as surface(), kept for backward compatibility.
unsigned int tobLayer(const DetId &id) const