12 #include "CLHEP/Random/RandGauss.h" 52 dbe_->
open(inputFile_);
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"] =
new TH2D(
"TanLAPerTesla vs Phi TIB1 MONO",
"TanLAPerTesla vs Phi TIB1 MONO",800,-4,4,600,-0.3,0.3);
153 TH2Ds[
"LA_phi_TIB1_stereo"] =
new TH2D(
"TanLAPerTesla vs Phi TIB1 STEREO",
"TanLAPerTesla vs Phi TIB1 STEREO",800,-4,4,600,-0.3,0.3);
155 TH2Ds[
"LA_phi_TIB2"] =
new TH2D(
"TanLAPerTesla vs Phi TIB2",
"TanLAPerTesla vs Phi TIB2",800,-4,4,600,-0.3,0.3);
157 TH2Ds[
"LA_phi_TIB2_mono"] =
new TH2D(
"TanLAPerTesla vs Phi TIB2 MONO",
"TanLAPerTesla vs Phi TIB2 MONO",800,-4,4,600,-0.3,0.3);
159 TH2Ds[
"LA_phi_TIB2_stereo"] =
new TH2D(
"TanLAPerTesla vs Phi TIB2 STEREO",
"TanLAPerTesla vs Phi TIB2 STEREO",800,-4,4,600,-0.3,0.3);
161 TH2Ds[
"LA_phi_TIB3"] =
new TH2D(
"TanLAPerTesla vs Phi TIB3",
"TanLAPerTesla vs Phi TIB3",800,-4,4,600,-0.3,0.3);
163 TH2Ds[
"LA_phi_TIB4"] =
new TH2D(
"TanLAPerTesla vs Phi TIB4",
"TanLAPerTesla vs Phi TIB4",800,-4,4,600,-0.3,0.3);
166 TH2Ds[
"LA_phi_TOB1"] =
new TH2D(
"TanLAPerTesla vs Phi TOB1",
"TanLAPerTesla vs Phi TOB1",800,-4,4,600,-0.3,0.3);
168 TH2Ds[
"LA_phi_TOB1_mono"] =
new TH2D(
"TanLAPerTesla vs Phi TOB1 MONO",
"TanLAPerTesla vs Phi TOB1 MONO",800,-4,4,600,-0.3,0.3);
170 TH2Ds[
"LA_phi_TOB1_stereo"] =
new TH2D(
"TanLAPerTesla vs Phi TOB1 STEREO",
"TanLAPerTesla vs Phi TOB1 STEREO",800,-4,4,600,-0.3,0.3);
172 TH2Ds[
"LA_phi_TOB2"] =
new TH2D(
"TanLAPerTesla vs Phi TOB2",
"TanLAPerTesla vs Phi TOB2",800,-4,4,600,-0.3,0.3);
174 TH2Ds[
"LA_phi_TOB2_mono"] =
new TH2D(
"TanLAPerTesla vs Phi TOB2 MONO",
"TanLAPerTesla vs Phi TOB2 MONO",800,-4,4,600,-0.3,0.3);
176 TH2Ds[
"LA_phi_TOB2_stereo"] =
new TH2D(
"TanLAPerTesla vs Phi TOB2 STEREO",
"TanLAPerTesla vs Phi TOB2 STEREO",800,-4,4,600,-0.3,0.3);
178 TH2Ds[
"LA_phi_TOB3"] =
new TH2D(
"TanLAPerTesla vs Phi TOB3",
"TanLAPerTesla vs Phi TOB3",800,-4,4,600,-0.3,0.3);
180 TH2Ds[
"LA_phi_TOB4"] =
new TH2D(
"TanLAPerTesla vs Phi TOB4",
"TanLAPerTesla vs Phi TOB4",800,-4,4,600,-0.3,0.3);
182 TH2Ds[
"LA_phi_TOB5"] =
new TH2D(
"TanLAPerTesla vs Phi TOB5",
"TanLAPerTesla vs Phi TOB5",800,-4,4,600,-0.3,0.3);
184 TH2Ds[
"LA_phi_TOB6"] =
new TH2D(
"TanLAPerTesla vs Phi TOB6",
"TanLAPerTesla vs Phi TOB6",800,-4,4,600,-0.3,0.3);
187 TH2Ds[
"LA_eta_TIB"] =
new TH2D(
"TanLAPerTesla vs Eta TIB",
"TanLAPerTesla vs Eta TIB",800,-2.6,2.6,600,-0.3,0.3);
189 TH2Ds[
"LA_eta_TOB"] =
new TH2D(
"TanLAPerTesla vs Eta TOB",
"TanLAPerTesla vs Eta TOB",800,-2.6,2.6,600,-0.3,0.3);
192 TH2Ds[
"LA_eta_TIB1"] =
new TH2D(
"TanLAPerTesla vs Eta TIB1",
"TanLAPerTesla vs Eta TIB1",800,-2.6,2.6,600,-0.3,0.3);
194 TH2Ds[
"LA_eta_TIB1_mono"] =
new TH2D(
"TanLAPerTesla vs Eta TIB1 MONO",
"TanLAPerTesla vs Eta TIB1 MONO",800,-2.6,2.6,600,-0.3,0.3);
196 TH2Ds[
"LA_eta_TIB1_stereo"] =
new TH2D(
"TanLAPerTesla vs Eta TIB1 STEREO",
"TanLAPerTesla vs Eta TIB1 STEREO",800,-2.6,2.6,600,-0.3,0.3);
198 TH2Ds[
"LA_eta_TIB2"] =
new TH2D(
"TanLAPerTesla vs Eta TIB2",
"TanLAPerTesla vs Eta TIB2",800,-2.6,2.6,600,-0.3,0.3);
200 TH2Ds[
"LA_eta_TIB2_mono"] =
new TH2D(
"TanLAPerTesla vs Eta TIB2 MONO",
"TanLAPerTesla vs Eta TIB2 MONO",800,-2.6,2.6,600,-0.3,0.3);
202 TH2Ds[
"LA_eta_TIB2_stereo"] =
new TH2D(
"TanLAPerTesla vs Eta TIB2 STEREO",
"TanLAPerTesla vs Eta TIB2 STEREO",800,-2.6,2.6,600,-0.3,0.3);
204 TH2Ds[
"LA_eta_TIB3"] =
new TH2D(
"TanLAPerTesla vs Eta TIB3",
"TanLAPerTesla vs Eta TIB3",800,-2.6,2.6,600,-0.3,0.3);
206 TH2Ds[
"LA_eta_TIB4"] =
new TH2D(
"TanLAPerTesla vs Eta TIB4",
"TanLAPerTesla vs Eta TIB4",800,-2.6,2.6,600,-0.3,0.3);
209 TH2Ds[
"LA_eta_TOB1"] =
new TH2D(
"TanLAPerTesla vs Eta TOB1",
"TanLAPerTesla vs Eta TOB1",800,-2.6,2.6,600,-0.3,0.3);
211 TH2Ds[
"LA_eta_TOB1_mono"] =
new TH2D(
"TanLAPerTesla vs Eta TOB1 MONO",
"TanLAPerTesla vs Eta TOB1 MONO",800,-2.6,2.6,600,-0.3,0.3);
213 TH2Ds[
"LA_eta_TOB1_stereo"] =
new TH2D(
"TanLAPerTesla vs Eta TOB1 STEREO",
"TanLAPerTesla vs Eta TOB1 STEREO",800,-2.6,2.6,600,-0.3,0.3);
215 TH2Ds[
"LA_eta_TOB2"] =
new TH2D(
"TanLAPerTesla vs Eta TOB2",
"TanLAPerTesla vs Eta TOB2",800,-2.6,2.6,600,-0.3,0.3);
217 TH2Ds[
"LA_eta_TOB2_mono"] =
new TH2D(
"TanLAPerTesla vs Eta TOB2 MONO",
"TanLAPerTesla vs Eta TOB2 MONO",800,-2.6,2.6,600,-0.3,0.3);
219 TH2Ds[
"LA_eta_TOB2_stereo"] =
new TH2D(
"TanLAPerTesla vs Eta TOB2 STEREO",
"TanLAPerTesla vs Eta TOB2 STEREO",800,-2.6,2.6,600,-0.3,0.3);
221 TH2Ds[
"LA_eta_TOB3"] =
new TH2D(
"TanLAPerTesla vs Eta TOB3",
"TanLAPerTesla vs Eta TOB3",800,-2.6,2.6,600,-0.3,0.3);
223 TH2Ds[
"LA_eta_TOB4"] =
new TH2D(
"TanLAPerTesla vs Eta TOB4",
"TanLAPerTesla vs Eta TOB4",800,-2.6,2.6,600,-0.3,0.3);
225 TH2Ds[
"LA_eta_TOB5"] =
new TH2D(
"TanLAPerTesla vs Eta TOB5",
"TanLAPerTesla vs Eta TOB5",800,-2.6,2.6,600,-0.3,0.3);
227 TH2Ds[
"LA_eta_TOB6"] =
new TH2D(
"TanLAPerTesla vs Eta TOB6",
"TanLAPerTesla vs Eta TOB6",800,-2.6,2.6,600,-0.3,0.3);
230 ModuleTree =
new TTree(
"ModuleTree",
"ModuleTree");
250 int histocounter = 0;
251 int NotEnoughEntries = 0;
254 int FirstIT_goodfit = 0;
255 int FirstIT_badfit = 0;
256 int SecondIT_badfit = 0;
257 int SecondIT_goodfit = 0;
258 int no_mod_histo = 0;
276 double TIB1calib = 1.;
277 double TIB2calib = 1.;
278 double TIB3calib = 1.;
279 double TIB4calib = 1.;
280 double TOB1calib = 1.;
281 double TOB2calib = 1.;
282 double TOB3calib = 1.;
283 double TOB4calib = 1.;
284 double TOB5calib = 1.;
285 double TOB6calib = 1.;
302 auto fitfunc= std::make_unique<TF1>(
"fitfunc",
"([4]/[3])*[1]*(TMath::Abs(x-[0]))+[2]",-1,1);
303 auto fitfunc2IT= std::make_unique<TF1>(
"fitfunc2IT",
"([4]/[3])*[1]*(TMath::Abs(x-[0]))+[2]",-1,1);
305 std::ofstream NoEntries;
306 NoEntries.open(NoEntriesHisto_.c_str());
308 Rep.open(LAreport_.c_str());
310 gStyle->SetOptStat(1110);
316 bool Good2ITFit =
false;
317 bool ModuleHisto =
true;
344 edm::LogInfo(
"SiStripCalibLorentzAngle")<<
"### NO MODULE HISTOGRAM";}
346 if(stripdet!=
nullptr && ModuleHisto==
true){
371 edm::LogError(
"SiStripCalibLorentzAngle") <<
"[SiStripCalibLorentzAngle::getNewObject] the detID " <<
id <<
" doesn't seem to belong to Tracker" <<std::endl;
379 if(stripdet==
nullptr)
continue;
381 if(((*histo)->getEntries()<=FitCuts_Entries)&&ModuleHisto==
true){
382 if(((*histo)->getEntries()==0)&&ModuleHisto==
true){
383 NoEntries<<
"NO ENTRIES MODULE, ID = "<<
id<<std::endl;
384 edm::LogInfo(
"SiStripCalibLorentzAngle")<<
"### HISTOGRAM WITH 0 ENTRIES => TYPE:"<<subid.
subdetId();
387 edm::LogInfo(
"SiStripCalibLorentzAngle")<<
"### HISTOGRAM WITH NR. ENTRIES <= ENTRIES_CUT => TYPE:"<<subid.
subdetId();
396 std::stringstream LayerStream;
398 name+=LayerStream.str();
399 std::stringstream idnum;
404 gStyle->SetOptFit(111);
412 if(((*histo)->getEntries()>FitCuts_Entries) && ModuleHisto==
true){
424 fitfunc->SetParameter(0, p0_guess);
425 fitfunc->SetParameter(1, p1_guess);
426 fitfunc->SetParameter(2, p2_guess);
427 fitfunc->FixParameter(3, pitch);
428 fitfunc->FixParameter(4, thickness);
430 Profiles[
name]->Fit(fitfunc.get(),
"E",
"",ModuleRangeMin, ModuleRangeMax);
439 fitfunc2IT->SetParameter(0, p0_guess);
440 fitfunc2IT->SetParameter(1, p1_guess);
441 fitfunc2IT->SetParameter(2, p2_guess);
442 fitfunc2IT->FixParameter(3, pitch);
443 fitfunc2IT->FixParameter(4, thickness);
446 Profiles[
name]->Fit(fitfunc2IT.get(),
"E",
"",ModuleRangeMin2IT, ModuleRangeMax2IT);
483 if(Good2ITFit==
false){
498 LorentzAngle_Plots->cd();
505 if(Layer==1)
muH =
muH/TIB1calib;
506 if(Layer==2)
muH =
muH/TIB2calib;
507 if(Layer==3)
muH =
muH/TIB3calib;
508 if(Layer==4)
muH =
muH/TIB4calib;
511 if(Layer==1)
muH =
muH/TOB1calib;
512 if(Layer==2)
muH =
muH/TOB2calib;
513 if(Layer==3)
muH =
muH/TOB3calib;
514 if(Layer==4)
muH =
muH/TOB4calib;
515 if(Layer==5)
muH =
muH/TOB5calib;
516 if(Layer==6)
muH =
muH/TOB6calib;
525 TH1Ds[
"LA_chi2norm_TIB"]->Fill(chi2norm);
528 TH2Ds[
"LA_TIB_graph"]->Fill(Layer,
muH);
539 TH1Ds[
"LA_TIB_1_stereo"]->Fill(
muH);
553 TH1Ds[
"LA_TIB_2_stereo"]->Fill(
muH);
575 TH1Ds[
"LA_chi2norm_TOB"]->Fill(chi2norm);
578 TH2Ds[
"LA_TOB_graph"]->Fill(Layer,
muH);
589 TH1Ds[
"LA_TOB_1_stereo"]->Fill(
muH);
603 TH1Ds[
"LA_TOB_2_stereo"]->Fill(
muH);
641 auto gaus = std::make_unique<TF1>(
"gaus",
"gaus");
643 TH1Ds[
"LA_TIB_1"]->Fit(gaus.get(),
"",
"",-GaussFitRange,GaussFitRange);
645 float err_mean_TIB1 = gaus->GetParError(1);
646 float rms_TIB1 = gaus->GetParameter(2);
647 TH1Ds[
"LA_TIB_2"]->Fit(gaus.get(),
"",
"",-GaussFitRange,GaussFitRange);
649 float err_mean_TIB2 = gaus->GetParError(1);
650 float rms_TIB2 = gaus->GetParameter(2);
651 TH1Ds[
"LA_TIB_3"]->Fit(gaus.get(),
"",
"",-GaussFitRange,GaussFitRange);
653 float err_mean_TIB3 = gaus->GetParError(1);
654 float rms_TIB3 = gaus->GetParameter(2);
655 TH1Ds[
"LA_TIB_4"]->Fit(gaus.get(),
"",
"",-GaussFitRange,GaussFitRange);
657 float err_mean_TIB4 = gaus->GetParError(1);
658 float rms_TIB4 = gaus->GetParameter(2);
660 TH1Ds[
"LA_TOB_1"]->Fit(gaus.get(),
"",
"",-GaussFitRange,GaussFitRange);
662 float err_mean_TOB1 = gaus->GetParError(1);
663 float rms_TOB1 = gaus->GetParameter(2);
664 TH1Ds[
"LA_TOB_2"]->Fit(gaus.get(),
"",
"",-GaussFitRange,GaussFitRange);
666 float err_mean_TOB2 = gaus->GetParError(1);
667 float rms_TOB2 = gaus->GetParameter(2);
668 TH1Ds[
"LA_TOB_3"]->Fit(gaus.get(),
"",
"",-GaussFitRange,GaussFitRange);
670 float err_mean_TOB3 = gaus->GetParError(1);
671 float rms_TOB3 = gaus->GetParameter(2);
672 TH1Ds[
"LA_TOB_4"]->Fit(gaus.get(),
"",
"",-GaussFitRange,GaussFitRange);
674 float err_mean_TOB4 = gaus->GetParError(1);
675 float rms_TOB4 = gaus->GetParameter(2);
676 TH1Ds[
"LA_TOB_5"]->Fit(gaus.get(),
"",
"",-GaussFitRange,GaussFitRange);
678 float err_mean_TOB5 = gaus->GetParError(1);
679 float rms_TOB5 = gaus->GetParameter(2);
680 TH1Ds[
"LA_TOB_6"]->Fit(gaus.get(),
"",
"",-GaussFitRange,GaussFitRange);
682 float err_mean_TOB6 = gaus->GetParError(1);
683 float rms_TOB6 = gaus->GetParameter(2);
686 float TIBx[4]={1,2,3,4};
687 float TIBex[4]={0,0,0,0};
689 float TIBey[4]={err_mean_TIB1, err_mean_TIB2, err_mean_TIB3, err_mean_TIB4};
692 float TOBx[6]={1,2,3,4,5,6};
693 float TOBex[6]={0,0,0,0,0,0};
695 float TOBey[6]={err_mean_TOB1, err_mean_TOB2, err_mean_TOB3, err_mean_TOB4, err_mean_TOB5, err_mean_TOB6};
697 TIB_graph =
new TGraphErrors(nlayersTIB,TIBx,TIBy,TIBex,TIBey);
698 TOB_graph =
new TGraphErrors(nlayersTOB,TOBx,TOBy,TOBex,TOBey);
703 gStyle->SetOptFit(111);
704 gStyle->SetOptStat(111);
706 TIB_graph->SetTitle(
"TIB Layers #mu_{H}");
707 TIB_graph->GetXaxis()->SetTitle(
"Layers");
709 TIB_graph->GetYaxis()->SetTitle(
"#mu_{H}");
711 TIB_graph->GetYaxis()->SetTitleOffset(1.3);
715 TOB_graph->SetTitle(
"TOB Layers #mu_{H}");
716 TOB_graph->GetXaxis()->SetTitle(
"Layers");
718 TOB_graph->GetYaxis()->SetTitle(
"#mu_{H}");
720 TOB_graph->GetYaxis()->SetTitleOffset(1.3);
727 Rep<<
"- NR.OF TIB AND TOB MODULES = 7932"<<std::endl<<std::endl<<std::endl;
728 Rep<<
"- NO MODULE HISTOS FOUND = "<<no_mod_histo<<std::endl<<std::endl;
729 Rep<<
"- NR.OF HISTOS WITH ENTRIES > "<<FitCuts_Entries<<
" = "<<histocounter<<std::endl<<std::endl;
730 Rep<<
"- NR.OF HISTOS WITH ENTRIES <= "<<FitCuts_Entries<<
" (!=0) = "<<NotEnoughEntries<<std::endl<<std::endl;
731 Rep<<
"- NR.OF HISTOS WITH 0 ENTRIES = "<<ZeroEntries<<std::endl<<std::endl<<std::endl;
732 Rep<<
"- NR.OF GOOD FIT (FIRST IT + SECOND IT GOOD FIT)= "<<GoodFit<<std::endl<<std::endl;
733 Rep<<
"- NR.OF FIRST IT GOOD FIT = "<<FirstIT_goodfit<<std::endl<<std::endl;
734 Rep<<
"- NR.OF SECOND IT GOOD FIT = "<<SecondIT_goodfit<<std::endl<<std::endl;
735 Rep<<
"- NR.OF FIRST IT BAD FIT = "<<FirstIT_badfit<<std::endl<<std::endl;
736 Rep<<
"- NR.OF SECOND IT BAD FIT = "<<SecondIT_badfit<<std::endl<<std::endl<<std::endl;
738 Rep<<
"--------------- Mean MuH values per Layer -------------------"<<std::endl<<std::endl<<std::endl;
739 Rep<<
"TIB1 = "<<
mean_TIB1<<
" +- "<<err_mean_TIB1<<
" RMS = "<<rms_TIB1<<std::endl;
740 Rep<<
"TIB2 = "<<
mean_TIB2<<
" +- "<<err_mean_TIB2<<
" RMS = "<<rms_TIB2<<std::endl;
741 Rep<<
"TIB3 = "<<
mean_TIB3<<
" +- "<<err_mean_TIB3<<
" RMS = "<<rms_TIB3<<std::endl;
742 Rep<<
"TIB4 = "<<mean_TIB4<<
" +- "<<err_mean_TIB4<<
" RMS = "<<rms_TIB4<<std::endl;
743 Rep<<
"TOB1 = "<<
mean_TOB1<<
" +- "<<err_mean_TOB1<<
" RMS = "<<rms_TOB1<<std::endl;
744 Rep<<
"TOB2 = "<<
mean_TOB2<<
" +- "<<err_mean_TOB2<<
" RMS = "<<rms_TOB2<<std::endl;
745 Rep<<
"TOB3 = "<<
mean_TOB3<<
" +- "<<err_mean_TOB3<<
" RMS = "<<rms_TOB3<<std::endl;
746 Rep<<
"TOB4 = "<<
mean_TOB4<<
" +- "<<err_mean_TOB4<<
" RMS = "<<rms_TOB4<<std::endl;
747 Rep<<
"TOB5 = "<<
mean_TOB5<<
" +- "<<err_mean_TOB5<<
" RMS = "<<rms_TOB5<<std::endl;
748 Rep<<
"TOB6 = "<<mean_TOB6<<
" +- "<<err_mean_TOB6<<
" RMS = "<<rms_TOB6<<std::endl<<std::endl;
749 Rep<<
"Mean Hall Mobility TIB = "<<
meanMobility_TIB<<
" +- "<<
TIB_graph->GetFunction(
"fit_TIB")->GetParError(0)<<std::endl;
750 Rep<<
"Mean Hall Mobility TOB = "<<
meanMobility_TOB<<
" +- "<<
TOB_graph->GetFunction(
"fit_TOB")->GetParError(0)<<std::endl<<std::endl<<std::endl;
774 for(std::map<uint32_t, float>::iterator it =
detid_la.begin(); it !=
detid_la.end(); it++){
776 float langle=it->second;
778 edm::LogError(
"SiStripCalibLorentzAngle")<<
"[SiStripCalibLorentzAngle::analyze] detid already exists"<<std::endl;
785 TrackerGeometry::DetIdContainer::const_iterator Iditer;
787 for(Iditer=Id.begin();Iditer!=Id.end();Iditer++){
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
virtual const Topology & topology() const
unsigned int tecRing(const DetId &id) const
ring id
SiStripLorentzAngle * getNewObject() override
TDirectory * TOB_2IT_GoodFit
Geom::Phi< T > phi() const
SiStripCalibLorentzAngle(const edm::ParameterSet &conf)
const Bounds & bounds() const
std::map< uint32_t, float > detid_la
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
const Plane & surface() const
The nominal surface of the GeomDet.
bool putLorentzAngle(const uint32_t &, float)
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 std::map< unsigned int, float > & getLorentzAngles() const
std::vector< MonitorElement * > getAllContents(const std::string &path, uint32_t runNumber=0, uint32_t lumi=0) const
const TrackerTopology * tTopo
const TrackerGeometry * tracker
TDirectory * LorentzAngle_Plots
TDirectory * TIB_2IT_BadFit
TDirectory * TOB_1IT_GoodFit
const DetIdContainer & detIds() const override
Returm a vector of all GeomDet DetIds (including those of GeomDetUnits)
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
TDirectory * SecondIT_GoodFit_Histos
int extract(std::vector< int > *output, const std::string &dati)
unsigned int stereo() const
stereo
void algoBeginJob(const edm::EventSetup &) override
virtual float thickness() const =0
~SiStripCalibLorentzAngle() override
std::vector< DetId > DetIdContainer
virtual float localPitch(const LocalPoint &) const =0
TDirectory * TOB_2IT_BadFit
edm::ESHandle< TrackerGeometry > estracker
bool open(const std::string &filename, bool overwrite=false, const std::string &path="", const std::string &prepend="", OpenRunDirs stripdirs=KeepRunDirs, bool fileMustExist=true)
edm::ESHandle< MagneticField > magfield_
const PositionType & position() const
T const * product() const
std::vector< MonitorElement * > histolist
Power< A, B >::type pow(const A &a, const B &b)
const Plane & specificSurface() const
Same as surface(), kept for backward compatibility.
unsigned int tobLayer(const DetId &id) const