Hall-D Software  alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ST_Propagation_Time/macros/SC_PTC_ResolvsZPlot.C
Go to the documentation of this file.
1 /// SC_PTC_ResolvsZPlot in PTC macros directory
2 
3 
4 #include "Riostream.h"
5 #include "TCanvas.h"
6 #include "TCut.h"
7 TCanvas *PT_can[30];
9 
10  ifstream in;
11 
12  in.open("SC_ResVSz.txt");
13  Float_t sector, z, z_err, t, t_err,sigma,sigma_err;
14  Int_t nlines = 0;
15  std::ofstream SC_PTC;
16  SC_PTC.open ("Resol_1DFits.txt", std::ofstream::out);
17  auto f = TFile::Open("PTC_NS.root","RECREATE");
18  TNtuple ntuple("ntuple","data from ascii file","sector:z:z_err:sigma:sigma_err");
19  while (1) {
20  in >> sector >> z >> z_err >> sigma >> sigma_err;
21  if (!in.good()) break;
22  if (nlines < 5) printf("sector=%8f, z=%8f, z_err=%8f, sigma=%8f sigma_err=%8f\n",sector,z,z_err,sigma,sigma_err);
23  ntuple.Fill(sector,z,z_err,sigma,sigma_err);
24  nlines++;
25  }
26  auto c1 = new TCanvas("c1","c1",600,500);
27  c1->Divide(3,2);
28  c1->cd(1);
29  ntuple.Draw("z:z_err:sigma:sigma_err","sector >0 & sector <2 " );
30  TGraphErrors *gr = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
31  gr->Draw("ap"); //draw graph in current pad
32  gr->SetTitle("Sector 1");
33  gr->SetMaximum(0.4);
34  gr->SetMinimum(0.1);
35  TFitResultPtr sec1_r1 = gr->Fit("pol1","S","",10,41);
36  double sec1_r1_intcp = sec1_r1->Parameter(0);
37  double sec1_r1_slope = sec1_r1->Parameter(1);
38  TFitResultPtr sec1_r2 = gr->Fit("pol1","S+","",41,54);
39  double sec1_r2_intcp = sec1_r2->Parameter(0);
40  double sec1_r2_slope = sec1_r2->Parameter(1);
41  TFitResultPtr sec1_r3 = gr->Fit("pol1","S+","",52,60);
42  double sec1_r3_intcp = sec1_r3->Parameter(0);
43  double sec1_r3_slope = sec1_r3->Parameter(1);
44  c1->cd(2);
45  ntuple.Draw("z:z_err:sigma:sigma_err","sector >1 & sector <3 " );
46  TGraphErrors *gr2 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
47  gr2->Draw("ap"); //draw graph in current pad
48  gr2->SetTitle("Sector 2");
49  gr2->SetMaximum(0.4);
50  gr2->SetMinimum(0.1);
51  TFitResultPtr sec2_r1 = gr2->Fit("pol1","S","",10,41);
52  double sec2_r1_intcp = sec2_r1->Parameter(0);
53  double sec2_r1_slope = sec2_r1->Parameter(1);
54  TFitResultPtr sec2_r2 = gr2->Fit("pol1","S+","",41,54);
55  double sec2_r2_intcp = sec2_r2->Parameter(0);
56  double sec2_r2_slope = sec2_r2->Parameter(1);
57  TFitResultPtr sec2_r3 = gr2->Fit("pol1","S+","",54,60);
58  double sec2_r3_intcp = sec2_r3->Parameter(0);
59  double sec2_r3_slope = sec2_r3->Parameter(1);
60 c1->cd(3);
61  ntuple.Draw("z:z_err:sigma:sigma_err","sector >2 & sector <4 " );
62  TGraphErrors *gr3 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
63  gr3->Draw("ap"); //draw graph in current pad
64  gr3->SetTitle("Sector 3");
65  gr3->SetMaximum(0.4);
66  gr3->SetMinimum(0.1);
67  TFitResultPtr sec3_r1 = gr3->Fit("pol1","S","",10,41);
68  double sec3_r1_intcp = sec3_r1->Parameter(0);
69  double sec3_r1_slope = sec3_r1->Parameter(1);
70  TFitResultPtr sec3_r2 = gr3->Fit("pol1","S+","",41,54);
71  double sec3_r2_intcp = sec3_r2->Parameter(0);
72  double sec3_r2_slope = sec3_r2->Parameter(1);
73  TFitResultPtr sec3_r3 = gr3->Fit("pol1","S+","",54,60);
74  double sec3_r3_intcp = sec3_r3->Parameter(0);
75  double sec3_r3_slope = sec3_r3->Parameter(1);
76  c1->cd(4);
77  ntuple.Draw("z:z_err:sigma:sigma_err","sector >3 & sector <5 " );
78  TGraphErrors *gr4 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
79  gr4->Draw("ap"); //draw graph in current pad
80  gr4->SetTitle("Sector 4");
81  gr4->SetMaximum(0.4);
82  gr4->SetMinimum(0.1);
83  TFitResultPtr sec4_r1 = gr4->Fit("pol1","S","",10,41);
84  double sec4_r1_intcp = sec4_r1->Parameter(0);
85  double sec4_r1_slope = sec4_r1->Parameter(1);
86  TFitResultPtr sec4_r2 = gr4->Fit("pol1","S+","",41,54);
87  double sec4_r2_intcp = sec4_r2->Parameter(0);
88  double sec4_r2_slope = sec4_r2->Parameter(1);
89  TFitResultPtr sec4_r3 = gr4->Fit("pol1","S+","",54,60);
90  double sec4_r3_intcp = sec4_r3->Parameter(0);
91  double sec4_r3_slope = sec4_r3->Parameter(1);
92  c1->cd(5);
93  ntuple.Draw("z:z_err:sigma:sigma_err","sector >4 & sector <6 " );
94  TGraphErrors *gr5 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
95  gr5->Draw("ap"); //draw graph in current pad
96  gr5->SetTitle("Sector 5");
97  gr5->SetMaximum(0.4);
98  gr5->SetMinimum(0.1);
99  TFitResultPtr sec5_r1 = gr5->Fit("pol1","S","",10,41);
100  double sec5_r1_intcp = sec5_r1->Parameter(0);
101  double sec5_r1_slope = sec5_r1->Parameter(1);
102  TFitResultPtr sec5_r2 = gr5->Fit("pol1","S+","",41,54);
103  double sec5_r2_intcp = sec5_r2->Parameter(0);
104  double sec5_r2_slope = sec5_r2->Parameter(1);
105  TFitResultPtr sec5_r3 = gr5->Fit("pol1","S+","",54,60);
106  double sec5_r3_intcp = sec5_r3->Parameter(0);
107  double sec5_r3_slope = sec5_r3->Parameter(1);
108  c1->cd(6);
109  ntuple.Draw("z:z_err:sigma:sigma_err","sector >5 & sector <7 " );
110  TGraphErrors *gr6 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
111  gr6->Draw("ap"); //draw graph in current pad
112  gr6->SetTitle("Sector 6");
113  gr6->SetMaximum(0.4);
114  gr6->SetMinimum(0.1);
115  TFitResultPtr sec6_r1 = gr6->Fit("pol1","S","",10,41);
116  double sec6_r1_intcp = sec6_r1->Parameter(0);
117  double sec6_r1_slope = sec6_r1->Parameter(1);
118  TFitResultPtr sec6_r2 = gr6->Fit("pol1","S+","",41,54);
119  double sec6_r2_intcp = sec6_r2->Parameter(0);
120  double sec6_r2_slope = sec6_r2->Parameter(1);
121  TFitResultPtr sec6_r3 = gr6->Fit("pol1","S+","",54,60);
122  double sec6_r3_intcp = sec6_r3->Parameter(0);
123  double sec6_r3_slope = sec6_r3->Parameter(1);
124  auto c2 = new TCanvas("c2","c2",600,500);
125  c2->Divide(3,2);
126  c2->cd(1);
127  ntuple.Draw("z:z_err:sigma:sigma_err","sector >6 & sector <8 " );
128  TGraphErrors *gr7 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
129  gr7->Draw("ap"); //draw graph in current pad
130  gr7->SetTitle("Sector 7");
131  gr7->SetMaximum(0.4);
132  gr7->SetMinimum(0.1);
133  TFitResultPtr sec7_r1 = gr7->Fit("pol1","S","",10,41);
134  double sec7_r1_intcp = sec7_r1->Parameter(0);
135  double sec7_r1_slope = sec7_r1->Parameter(1);
136  TFitResultPtr sec7_r2 = gr7->Fit("pol1","S+","",41,54);
137  double sec7_r2_intcp = sec7_r2->Parameter(0);
138  double sec7_r2_slope = sec7_r2->Parameter(1);
139  TFitResultPtr sec7_r3 = gr7->Fit("pol1","S+","",54,60);
140  double sec7_r3_intcp = sec7_r3->Parameter(0);
141  double sec7_r3_slope = sec7_r3->Parameter(1);
142  c2->cd(2);
143  ntuple.Draw("z:z_err:sigma:sigma_err","sector >7 & sector <9 " );
144  TGraphErrors *gr8 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
145  gr8->Draw("ap"); //draw graph in current pad
146  gr8->SetTitle("Sector 8");
147  gr8->SetMaximum(0.4);
148  gr8->SetMinimum(0.1);
149  TFitResultPtr sec8_r1 = gr8->Fit("pol1","S","",10,41);
150  double sec8_r1_intcp = sec8_r1->Parameter(0);
151  double sec8_r1_slope = sec8_r1->Parameter(1);
152  TFitResultPtr sec8_r2 = gr8->Fit("pol1","S+","",41,54);
153  double sec8_r2_intcp = sec8_r2->Parameter(0);
154  double sec8_r2_slope = sec8_r2->Parameter(1);
155  TFitResultPtr sec8_r3 = gr8->Fit("pol1","S+","",54,60);
156  double sec8_r3_intcp = sec8_r3->Parameter(0);
157  double sec8_r3_slope = sec8_r3->Parameter(1);
158 c2->cd(3);
159  ntuple.Draw("z:z_err:sigma:sigma_err","sector >8 & sector <10 " );
160  TGraphErrors *gr9 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
161  gr9->Draw("ap"); //draw graph in current pad
162  gr9->SetTitle("Sector 9");
163  gr9->SetMaximum(0.4);
164  gr9->SetMinimum(0.1);
165  TFitResultPtr sec9_r1 = gr9->Fit("pol1","S","",10,41);
166  double sec9_r1_intcp = sec9_r1->Parameter(0);
167  double sec9_r1_slope = sec9_r1->Parameter(1);
168  TFitResultPtr sec9_r2 = gr9->Fit("pol1","S+","",41,54);
169  double sec9_r2_intcp = sec9_r2->Parameter(0);
170  double sec9_r2_slope = sec9_r2->Parameter(1);
171  TFitResultPtr sec9_r3 = gr9->Fit("pol1","S+","",54,60);
172  double sec9_r3_intcp = sec9_r3->Parameter(0);
173  double sec9_r3_slope = sec9_r3->Parameter(1);
174 
175  c2->cd(4);
176  ntuple.Draw("z:z_err:sigma:sigma_err","sector >9 & sector <11 " );
177  TGraphErrors *gr10 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
178  gr10->Draw("ap"); //draw graph in current pad
179  gr10->SetTitle("Sector 10");
180  gr10->SetMaximum(0.4);
181  gr10->SetMinimum(0.1);
182  TFitResultPtr sec10_r1 = gr10->Fit("pol1","S","",10,41);
183  double sec10_r1_intcp = sec10_r1->Parameter(0);
184  double sec10_r1_slope = sec10_r1->Parameter(1);
185  TFitResultPtr sec10_r2 = gr10->Fit("pol1","S+","",41,54);
186  double sec10_r2_intcp = sec10_r2->Parameter(0);
187  double sec10_r2_slope = sec10_r2->Parameter(1);
188  TFitResultPtr sec10_r3 = gr10->Fit("pol1","S+","",54,60);
189  double sec10_r3_intcp = sec10_r3->Parameter(0);
190  double sec10_r3_slope = sec10_r3->Parameter(1);
191  c2->cd(5);
192  ntuple.Draw("z:z_err:sigma:sigma_err","sector >10 & sector <12 " );
193  TGraphErrors *gr11 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
194  gr11->Draw("ap"); //draw graph in current pad
195  gr11->SetTitle("Sector 11");
196  gr11->SetMaximum(0.4);
197  gr11->SetMinimum(0.1);
198  TFitResultPtr sec11_r1 = gr11->Fit("pol1","S","",10,41);
199  double sec11_r1_intcp = sec11_r1->Parameter(0);
200  double sec11_r1_slope = sec11_r1->Parameter(1);
201  TFitResultPtr sec11_r2 = gr11->Fit("pol1","S+","",41,54);
202  double sec11_r2_intcp = sec11_r2->Parameter(0);
203  double sec11_r2_slope = sec11_r2->Parameter(1);
204  TFitResultPtr sec11_r3 = gr11->Fit("pol1","S+","",54,60);
205  double sec11_r3_intcp = sec11_r3->Parameter(0);
206  double sec11_r3_slope = sec11_r3->Parameter(1);
207  c2->cd(6);
208  ntuple.Draw("z:z_err:sigma:sigma_err","sector >11 & sector <13 " );
209  TGraphErrors *gr12 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
210  gr12->Draw("ap"); //draw graph in current pad
211  gr12->SetTitle("Sector 12");
212  gr12->SetMaximum(0.4);
213  gr12->SetMinimum(0.1);
214  TFitResultPtr sec12_r1 = gr12->Fit("pol1","S","",10,41);
215  double sec12_r1_intcp = sec12_r1->Parameter(0);
216  double sec12_r1_slope = sec12_r1->Parameter(1);
217  TFitResultPtr sec12_r2 = gr12->Fit("pol1","S+","",41,54);
218  double sec12_r2_intcp = sec12_r2->Parameter(0);
219  double sec12_r2_slope = sec12_r2->Parameter(1);
220  TFitResultPtr sec12_r3 = gr12->Fit("pol1","S+","",54,60);
221  double sec12_r3_intcp = sec12_r3->Parameter(0);
222  double sec12_r3_slope = sec12_r3->Parameter(1);
223  auto c3 = new TCanvas("c3","c3",600,500);
224  c3->Divide(3,2);
225  c3->cd(1);
226  ntuple.Draw("z:z_err:sigma:sigma_err","sector >12 & sector <14 " );
227  TGraphErrors *gr13 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
228  gr13->Draw("ap"); //draw graph in current pad
229  gr13->SetTitle("Sector 13");
230  gr13->SetMaximum(0.4);
231  gr13->SetMinimum(0.1);
232  TFitResultPtr sec13_r1 = gr13->Fit("pol1","S","",10,41);
233  double sec13_r1_intcp = sec13_r1->Parameter(0);
234  double sec13_r1_slope = sec13_r1->Parameter(1);
235  TFitResultPtr sec13_r2 = gr13->Fit("pol1","S+","",41,54);
236  double sec13_r2_intcp = sec13_r2->Parameter(0);
237  double sec13_r2_slope = sec13_r2->Parameter(1);
238  TFitResultPtr sec13_r3 = gr13->Fit("pol1","S+","",54,60);
239  double sec13_r3_intcp = sec13_r3->Parameter(0);
240  double sec13_r3_slope = sec13_r3->Parameter(1);
241  c3->cd(2);
242  ntuple.Draw("z:z_err:sigma:sigma_err","sector >13 & sector <15 " );
243  TGraphErrors *gr14 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
244  gr14->Draw("ap"); //draw graph in current pad
245  gr14->SetTitle("Sector 14");
246  gr14->SetMaximum(0.4);
247  gr14->SetMinimum(0.1);
248  TFitResultPtr sec14_r1 = gr14->Fit("pol1","S","",10,41);
249  double sec14_r1_intcp = sec14_r1->Parameter(0);
250  double sec14_r1_slope = sec14_r1->Parameter(1);
251  TFitResultPtr sec14_r2 = gr14->Fit("pol1","S+","",41,54);
252  double sec14_r2_intcp = sec14_r2->Parameter(0);
253  double sec14_r2_slope = sec14_r2->Parameter(1);
254  TFitResultPtr sec14_r3 = gr14->Fit("pol1","S+","",54,60);
255  double sec14_r3_intcp = sec14_r3->Parameter(0);
256  double sec14_r3_slope = sec14_r3->Parameter(1);
257 c3->cd(3);
258  ntuple.Draw("z:z_err:sigma:sigma_err","sector >14 & sector <16 " );
259  TGraphErrors *gr15 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
260  gr15->Draw("ap"); //draw graph in current pad
261  gr15->SetTitle("Sector 15");
262  gr15->SetMaximum(0.4);
263  gr15->SetMinimum(0.1);
264  TFitResultPtr sec15_r1 = gr15->Fit("pol1","S","",10,41);
265  double sec15_r1_intcp = sec15_r1->Parameter(0);
266  double sec15_r1_slope = sec15_r1->Parameter(1);
267  TFitResultPtr sec15_r2 = gr15->Fit("pol1","S+","",41,54);
268  double sec15_r2_intcp = sec15_r2->Parameter(0);
269  double sec15_r2_slope = sec15_r2->Parameter(1);
270  TFitResultPtr sec15_r3 = gr15->Fit("pol1","S+","",54,60);
271  double sec15_r3_intcp = sec15_r3->Parameter(0);
272  double sec15_r3_slope = sec15_r3->Parameter(1);
273  c3->cd(4);
274  ntuple.Draw("z:z_err:sigma:sigma_err","sector >15 & sector <17 " );
275  TGraphErrors *gr16 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
276  gr16->Draw("ap"); //draw graph in current pad
277  gr16->SetTitle("Sector 16");
278  gr16->SetMaximum(0.4);
279  gr16->SetMinimum(0.1);
280  TFitResultPtr sec16_r1 = gr16->Fit("pol1","S","",10,41);
281  double sec16_r1_intcp = sec16_r1->Parameter(0);
282  double sec16_r1_slope = sec16_r1->Parameter(1);
283  TFitResultPtr sec16_r2 = gr16->Fit("pol1","S+","",41,54);
284  double sec16_r2_intcp = sec16_r2->Parameter(0);
285  double sec16_r2_slope = sec16_r2->Parameter(1);
286  TFitResultPtr sec16_r3 = gr16->Fit("pol1","S+","",54,60);
287  double sec16_r3_intcp = sec16_r3->Parameter(0);
288  double sec16_r3_slope = sec16_r3->Parameter(1);
289  c3->cd(5);
290  ntuple.Draw("z:z_err:sigma:sigma_err","sector >16 & sector <18 " );
291  TGraphErrors *gr17 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
292  gr17->Draw("ap"); //draw graph in current pad
293  gr17->SetTitle("Sector 17");
294  gr17->SetMaximum(0.4);
295  gr17->SetMinimum(0.1);
296  TFitResultPtr sec17_r1 = gr17->Fit("pol1","S","",10,41);
297  double sec17_r1_intcp = sec17_r1->Parameter(0);
298  double sec17_r1_slope = sec17_r1->Parameter(1);
299  TFitResultPtr sec17_r2 = gr17->Fit("pol1","S+","",41,54);
300  double sec17_r2_intcp = sec17_r2->Parameter(0);
301  double sec17_r2_slope = sec17_r2->Parameter(1);
302  TFitResultPtr sec17_r3 = gr17->Fit("pol1","S+","",54,60);
303  double sec17_r3_intcp = sec17_r3->Parameter(0);
304  double sec17_r3_slope = sec17_r3->Parameter(1);
305  c3->cd(6);
306  ntuple.Draw("z:z_err:sigma:sigma_err","sector >17 & sector <19 " );
307  TGraphErrors *gr18 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
308  gr18->Draw("ap"); //draw graph in current pad
309  gr18->SetTitle("Sector 18");
310  gr18->SetMaximum(0.4);
311  gr18->SetMinimum(0.1);
312  TFitResultPtr sec18_r1 = gr18->Fit("pol1","S","",10,41);
313  double sec18_r1_intcp = sec18_r1->Parameter(0);
314  double sec18_r1_slope = sec18_r1->Parameter(1);
315  TFitResultPtr sec18_r2 = gr18->Fit("pol1","S+","",41,54);
316  double sec18_r2_intcp = sec18_r2->Parameter(0);
317  double sec18_r2_slope = sec18_r2->Parameter(1);
318  TFitResultPtr sec18_r3 = gr18->Fit("pol1","S+","",54,60);
319  double sec18_r3_intcp = sec18_r3->Parameter(0);
320  double sec18_r3_slope = sec18_r3->Parameter(1);
321  auto c4 = new TCanvas("c4","c4",600,500);
322  c4->Divide(3,2);
323  c4->cd(1);
324  ntuple.Draw("z:z_err:sigma:sigma_err","sector >18 & sector <20 " );
325  TGraphErrors *gr19 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
326  gr19->Draw("ap"); //draw graph in current pad
327  gr19->SetTitle("Sector 19");
328  gr19->SetMaximum(0.4);
329  gr19->SetMinimum(0.1);
330  TFitResultPtr sec19_r1 = gr19->Fit("pol1","S","",10,41);
331  double sec19_r1_intcp = sec19_r1->Parameter(0);
332  double sec19_r1_slope = sec19_r1->Parameter(1);
333  TFitResultPtr sec19_r2 = gr19->Fit("pol1","S+","",41,54);
334  double sec19_r2_intcp = sec19_r2->Parameter(0);
335  double sec19_r2_slope = sec19_r2->Parameter(1);
336  TFitResultPtr sec19_r3 = gr19->Fit("pol1","S+","",54,60);
337  double sec19_r3_intcp = sec19_r3->Parameter(0);
338  double sec19_r3_slope = sec19_r3->Parameter(1);
339  c4->cd(2);
340  ntuple.Draw("z:z_err:sigma:sigma_err","sector >19 & sector <21 " );
341  TGraphErrors *gr20 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
342  gr20->Draw("ap"); //draw graph in current pad
343  gr20->SetTitle("Sector 20");
344  gr20->SetMaximum(0.4);
345  gr20->SetMinimum(0.1);
346  TFitResultPtr sec20_r1 = gr20->Fit("pol1","S","",10,41);
347  double sec20_r1_intcp = sec20_r1->Parameter(0);
348  double sec20_r1_slope = sec20_r1->Parameter(1);
349  TFitResultPtr sec20_r2 = gr20->Fit("pol1","S+","",41,54);
350  double sec20_r2_intcp = sec20_r2->Parameter(0);
351  double sec20_r2_slope = sec20_r2->Parameter(1);
352  TFitResultPtr sec20_r3 = gr20->Fit("pol1","S+","",54,60);
353  double sec20_r3_intcp = sec20_r3->Parameter(0);
354  double sec20_r3_slope = sec20_r3->Parameter(1);
355 c4->cd(3);
356  ntuple.Draw("z:z_err:sigma:sigma_err","sector >20 & sector <22 " );
357  TGraphErrors *gr21 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
358  gr21->Draw("ap"); //draw graph in current pad
359  gr21->SetTitle("Sector 21");
360  gr21->SetMaximum(0.4);
361  gr21->SetMinimum(0.1);
362  TFitResultPtr sec21_r1 = gr21->Fit("pol1","S","",10,41);
363  double sec21_r1_intcp = sec21_r1->Parameter(0);
364  double sec21_r1_slope = sec21_r1->Parameter(1);
365  TFitResultPtr sec21_r2 = gr21->Fit("pol1","S+","",41,54);
366  double sec21_r2_intcp = sec21_r2->Parameter(0);
367  double sec21_r2_slope = sec21_r2->Parameter(1);
368 TFitResultPtr sec21_r3 = gr21->Fit("pol1","S+","",54,60);
369  double sec21_r3_intcp = sec21_r3->Parameter(0);
370  double sec21_r3_slope = sec21_r3->Parameter(1);
371  c4->cd(4);
372  ntuple.Draw("z:z_err:sigma:sigma_err","sector >21 & sector <23 " );
373  TGraphErrors *gr22 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
374  gr22->Draw("ap"); //draw graph in current pad
375  gr22->SetTitle("Sector 22");
376  gr22->SetMaximum(0.4);
377  gr22->SetMinimum(0.1);
378  TFitResultPtr sec22_r1 = gr22->Fit("pol1","S","",10,41);
379  double sec22_r1_intcp = sec22_r1->Parameter(0);
380  double sec22_r1_slope = sec22_r1->Parameter(1);
381  TFitResultPtr sec22_r2 = gr22->Fit("pol1","S+","",41,54);
382  double sec22_r2_intcp = sec22_r2->Parameter(0);
383  double sec22_r2_slope = sec22_r2->Parameter(1);
384  TFitResultPtr sec22_r3 = gr22->Fit("pol1","S+","",54,60);
385  double sec22_r3_intcp = sec22_r3->Parameter(0);
386  double sec22_r3_slope = sec22_r3->Parameter(1);
387  c4->cd(5);
388  ntuple.Draw("z:z_err:sigma:sigma_err","sector >22 & sector <24 " );
389  TGraphErrors *gr23 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
390  gr23->Draw("ap"); //draw graph in current pad
391  gr23->SetTitle("Sector 23");
392  gr23->SetMaximum(0.4);
393  gr23->SetMinimum(0.1);
394  TFitResultPtr sec23_r1 = gr23->Fit("pol1","S","",10,41);
395  double sec23_r1_intcp = sec23_r1->Parameter(0);
396  double sec23_r1_slope = sec23_r1->Parameter(1);
397  TFitResultPtr sec23_r2 = gr23->Fit("pol1","S+","",41,54);
398  double sec23_r2_intcp = sec23_r2->Parameter(0);
399  double sec23_r2_slope = sec23_r2->Parameter(1);
400  TFitResultPtr sec23_r3 = gr23->Fit("pol1","S+","",54,60);
401  double sec23_r3_intcp = sec23_r3->Parameter(0);
402  double sec23_r3_slope = sec23_r3->Parameter(1);
403  c4->cd(6);
404  ntuple.Draw("z:z_err:sigma:sigma_err","sector >23 & sector <25 " );
405  TGraphErrors *gr24 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
406  gr24->Draw("ap"); //draw graph in current pad
407  gr24->SetTitle("Sector 24");
408  gr24->SetMaximum(0.4);
409  gr24->SetMinimum(0.1);
410  TFitResultPtr sec24_r1 = gr24->Fit("pol1","S","",10,41);
411  double sec24_r1_intcp = sec24_r1->Parameter(0);
412  double sec24_r1_slope = sec24_r1->Parameter(1);
413  TFitResultPtr sec24_r2 = gr24->Fit("pol1","S+","",41,54);
414  double sec24_r2_intcp = sec24_r2->Parameter(0);
415  double sec24_r2_slope = sec24_r2->Parameter(1);
416  TFitResultPtr sec24_r3 = gr24->Fit("pol1","S+","",54,60);
417  double sec24_r3_intcp = sec24_r3->Parameter(0);
418  double sec24_r3_slope = sec24_r3->Parameter(1);
419  auto c5 = new TCanvas("c5","c5",600,500);
420  c5->Divide(3,2);
421  c5->cd(1);
422  ntuple.Draw("z:z_err:sigma:sigma_err","sector >24 & sector <26 " );
423  TGraphErrors *gr25 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
424  gr25->Draw("ap"); //draw graph in current pad
425  gr25->SetTitle("Sector 25");
426  gr25->SetMaximum(0.4);
427  gr25->SetMinimum(0.1);
428  TFitResultPtr sec25_r1 = gr25->Fit("pol1","S","",10,41);
429  double sec25_r1_intcp = sec25_r1->Parameter(0);
430  double sec25_r1_slope = sec25_r1->Parameter(1);
431  TFitResultPtr sec25_r2 = gr25->Fit("pol1","S+","",41,54);
432  double sec25_r2_intcp = sec25_r2->Parameter(0);
433  double sec25_r2_slope = sec25_r2->Parameter(1);
434  TFitResultPtr sec25_r3 = gr25->Fit("pol1","S+","",54,60);
435  double sec25_r3_intcp = sec25_r3->Parameter(0);
436  double sec25_r3_slope = sec25_r3->Parameter(1);
437  c5->cd(2);
438  ntuple.Draw("z:z_err:sigma:sigma_err","sector >25 & sector <27 " );
439  TGraphErrors *gr26 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
440  gr26->Draw("ap"); //draw graph in current pad
441  gr26->SetTitle("Sector 26");
442  gr26->SetMaximum(0.4);
443  gr26->SetMinimum(0.1);
444  TFitResultPtr sec26_r1 = gr26->Fit("pol1","S","",10,41);
445  double sec26_r1_intcp = sec26_r1->Parameter(0);
446  double sec26_r1_slope = sec26_r1->Parameter(1);
447  TFitResultPtr sec26_r2 = gr26->Fit("pol1","S+","",41,54);
448  double sec26_r2_intcp = sec26_r2->Parameter(0);
449  double sec26_r2_slope = sec26_r2->Parameter(1);
450  TFitResultPtr sec26_r3 = gr26->Fit("pol1","S+","",54,60);
451  double sec26_r3_intcp = sec26_r3->Parameter(0);
452  double sec26_r3_slope = sec26_r3->Parameter(1);
453 c5->cd(3);
454  ntuple.Draw("z:z_err:sigma:sigma_err","sector >26 & sector <28 " );
455  TGraphErrors *gr27 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
456  gr27->Draw("ap"); //draw graph in current pad
457  gr27->SetTitle("Sector 27");
458  gr27->SetMaximum(0.4);
459  gr27->SetMinimum(0.1);
460  TFitResultPtr sec27_r1 = gr27->Fit("pol1","S","",10,41);
461  double sec27_r1_intcp = sec27_r1->Parameter(0);
462  double sec27_r1_slope = sec27_r1->Parameter(1);
463  TFitResultPtr sec27_r2 = gr27->Fit("pol1","S+","",41,54);
464  double sec27_r2_intcp = sec27_r2->Parameter(0);
465  double sec27_r2_slope = sec27_r2->Parameter(1);
466  TFitResultPtr sec27_r3 = gr27->Fit("pol1","S+","",54,60);
467  double sec27_r3_intcp = sec27_r3->Parameter(0);
468  double sec27_r3_slope = sec27_r3->Parameter(1);
469  c5->cd(4);
470  ntuple.Draw("z:z_err:sigma:sigma_err","sector >27 & sector <29 " );
471  TGraphErrors *gr28 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
472  gr28->Draw("ap"); //draw graph in current pad
473  gr28->SetTitle("Sector 28");
474  gr28->SetMaximum(0.4);
475  gr28->SetMinimum(0.1);
476  TFitResultPtr sec28_r1 = gr28->Fit("pol1","S","",10,41);
477  double sec28_r1_intcp = sec28_r1->Parameter(0);
478  double sec28_r1_slope = sec28_r1->Parameter(1);
479  TFitResultPtr sec28_r2 = gr28->Fit("pol1","S+","",41,54);
480  double sec28_r2_intcp = sec28_r2->Parameter(0);
481  double sec28_r2_slope = sec28_r2->Parameter(1);
482  TFitResultPtr sec28_r3 = gr28->Fit("pol1","S+","",54,60);
483  double sec28_r3_intcp = sec28_r3->Parameter(0);
484  double sec28_r3_slope = sec28_r3->Parameter(1);
485  c5->cd(5);
486  ntuple.Draw("z:z_err:sigma:sigma_err","sector >28 & sector <30 " );
487  TGraphErrors *gr29 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
488  gr29->Draw("ap"); //draw graph in current pad
489  gr29->SetTitle("Sector 29");
490  gr29->SetMaximum(0.4);
491  gr29->SetMinimum(0.1);
492  TFitResultPtr sec29_r1 = gr29->Fit("pol1","S","",10,41);
493  double sec29_r1_intcp = sec29_r1->Parameter(0);
494  double sec29_r1_slope = sec29_r1->Parameter(1);
495  TFitResultPtr sec29_r2 = gr29->Fit("pol1","S+","",41,54);
496  double sec29_r2_intcp = sec29_r2->Parameter(0);
497  double sec29_r2_slope = sec29_r2->Parameter(1);
498  TFitResultPtr sec29_r3 = gr29->Fit("pol1","S+","",54,60);
499  double sec29_r3_intcp = sec29_r3->Parameter(0);
500  double sec29_r3_slope = sec29_r3->Parameter(1);
501  c5->cd(6);
502  ntuple.Draw("z:z_err:sigma:sigma_err","sector >29 & sector <31 " );
503  TGraphErrors *gr30 = new TGraphErrors(ntuple.GetSelectedRows(), ntuple.GetV1(), ntuple.GetV3(),ntuple.GetV2(), ntuple.GetV4());
504  gr30->Draw("ap"); //draw graph in current pad
505  gr30->SetTitle("Sector 30");
506  gr30->SetMaximum(0.4);
507  gr30->SetMinimum(0.1);
508  TFitResultPtr sec30_r1 = gr30->Fit("pol1","S","",10,41);
509  double sec30_r1_intcp = sec30_r1->Parameter(0);
510  double sec30_r1_slope = sec30_r1->Parameter(1);
511  TFitResultPtr sec30_r2 = gr30->Fit("pol1","S+","",41,54);
512  double sec30_r2_intcp = sec30_r2->Parameter(0);
513  double sec30_r2_slope = sec30_r2->Parameter(1);
514  TFitResultPtr sec30_r3 = gr30->Fit("pol1","S+","",54,60);
515  double sec30_r3_intcp = sec30_r3->Parameter(0);
516  double sec30_r3_slope = sec30_r3->Parameter(1);
517  in.close();
518  f->Write();
519  SC_PTC << sec1_r1_intcp << "\t" << sec1_r1_slope << "\t" << sec1_r2_intcp << "\t" << sec1_r2_slope << "\t" <<sec1_r3_intcp << "\t" << sec1_r3_slope <<endl;
520  SC_PTC << sec2_r1_intcp << "\t" << sec2_r1_slope << "\t" << sec2_r2_intcp << "\t" << sec2_r2_slope << "\t" <<sec2_r3_intcp << "\t" << sec2_r3_slope <<endl;
521  SC_PTC << sec3_r1_intcp << "\t" << sec3_r1_slope << "\t" << sec3_r2_intcp << "\t" << sec3_r2_slope << "\t" <<sec3_r3_intcp << "\t" << sec3_r3_slope <<endl;
522  SC_PTC << sec4_r1_intcp << "\t" << sec4_r1_slope << "\t" << sec4_r2_intcp << "\t" << sec4_r2_slope << "\t" <<sec4_r3_intcp << "\t" << sec4_r3_slope <<endl;
523  SC_PTC << sec5_r1_intcp << "\t" << sec5_r1_slope << "\t" << sec5_r2_intcp << "\t" << sec5_r2_slope << "\t" <<sec5_r3_intcp << "\t" << sec5_r3_slope <<endl;
524  SC_PTC << sec6_r1_intcp << "\t" << sec6_r1_slope << "\t" << sec6_r2_intcp << "\t" << sec6_r2_slope << "\t" <<sec6_r3_intcp << "\t" << sec6_r3_slope <<endl;
525  SC_PTC << sec7_r1_intcp << "\t" << sec7_r1_slope << "\t" << sec7_r2_intcp << "\t" << sec7_r2_slope << "\t" <<sec7_r3_intcp << "\t" << sec7_r3_slope <<endl;
526  SC_PTC << sec8_r1_intcp << "\t" << sec8_r1_slope << "\t" << sec8_r2_intcp << "\t" << sec8_r2_slope << "\t" <<sec8_r3_intcp << "\t" << sec8_r3_slope <<endl;
527  SC_PTC << sec9_r1_intcp << "\t" << sec9_r1_slope << "\t" << sec9_r2_intcp << "\t" << sec9_r2_slope << "\t" <<sec9_r3_intcp << "\t" << sec9_r3_slope <<endl;
528 
529  SC_PTC << sec10_r1_intcp << "\t" << sec10_r1_slope << "\t" << sec10_r2_intcp << "\t" << sec10_r2_slope << "\t" <<sec10_r3_intcp << "\t" << sec10_r3_slope <<endl;
530  SC_PTC << sec11_r1_intcp << "\t" << sec11_r1_slope << "\t" << sec11_r2_intcp << "\t" << sec11_r2_slope << "\t" <<sec11_r3_intcp << "\t" << sec11_r3_slope <<endl;
531  SC_PTC << sec12_r1_intcp << "\t" << sec12_r1_slope << "\t" << sec12_r2_intcp << "\t" << sec12_r2_slope << "\t" <<sec12_r3_intcp << "\t" << sec12_r3_slope <<endl;
532  SC_PTC << sec13_r1_intcp << "\t" << sec13_r1_slope << "\t" << sec13_r2_intcp << "\t" << sec13_r2_slope << "\t" <<sec13_r3_intcp << "\t" << sec13_r3_slope << endl;
533  SC_PTC << sec14_r1_intcp << "\t" << sec14_r1_slope << "\t" << sec14_r2_intcp << "\t" << sec14_r2_slope << "\t" <<sec14_r3_intcp << "\t" << sec14_r3_slope <<endl;
534  SC_PTC << sec15_r1_intcp << "\t" << sec15_r1_slope << "\t" << sec15_r2_intcp << "\t" << sec15_r2_slope << "\t" <<sec15_r3_intcp << "\t" << sec15_r3_slope<<endl;
535  SC_PTC << sec16_r1_intcp << "\t" << sec16_r1_slope << "\t" << sec16_r2_intcp << "\t" << sec16_r2_slope << "\t" <<sec16_r3_intcp << "\t" << sec16_r3_slope<<endl;
536  SC_PTC << sec17_r1_intcp << "\t" << sec17_r1_slope << "\t" << sec17_r2_intcp << "\t" << sec17_r2_slope << "\t" <<sec17_r3_intcp << "\t" << sec17_r3_slope<<endl;
537  SC_PTC << sec18_r1_intcp << "\t" << sec18_r1_slope << "\t" << sec18_r2_intcp << "\t" << sec18_r2_slope << "\t" <<sec18_r3_intcp << "\t" << sec18_r3_slope<<endl;
538  SC_PTC << sec19_r1_intcp << "\t" << sec19_r1_slope << "\t" << sec19_r2_intcp << "\t" << sec19_r2_slope << "\t" <<sec19_r3_intcp << "\t" << sec19_r3_slope<<endl;
539  SC_PTC << sec20_r1_intcp << "\t" << sec20_r1_slope << "\t" << sec20_r2_intcp << "\t" << sec20_r2_slope << "\t" <<sec20_r3_intcp << "\t" << sec20_r3_slope<<endl;
540  SC_PTC << sec21_r1_intcp << "\t" << sec21_r1_slope << "\t" << sec21_r2_intcp << "\t" << sec21_r2_slope << "\t" <<sec21_r3_intcp << "\t" << sec21_r3_slope<<endl;
541  SC_PTC << sec22_r1_intcp << "\t" << sec22_r1_slope << "\t" << sec22_r2_intcp << "\t" << sec22_r2_slope << "\t" <<sec22_r3_intcp << "\t" << sec22_r3_slope<<endl;
542  SC_PTC << sec23_r1_intcp << "\t" << sec23_r1_slope << "\t" << sec23_r2_intcp << "\t" << sec23_r2_slope << "\t" <<sec23_r3_intcp << "\t" << sec23_r3_slope<<endl;
543  SC_PTC << sec24_r1_intcp << "\t" << sec24_r1_slope << "\t" << sec24_r2_intcp << "\t" << sec24_r2_slope << "\t" <<sec24_r3_intcp << "\t" << sec24_r3_slope<<endl;
544  SC_PTC << sec25_r1_intcp << "\t" << sec25_r1_slope << "\t" << sec25_r2_intcp << "\t" << sec25_r2_slope << "\t" <<sec25_r3_intcp << "\t" << sec25_r3_slope<<endl;
545  SC_PTC << sec26_r1_intcp << "\t" << sec26_r1_slope << "\t" << sec26_r2_intcp << "\t" << sec26_r2_slope << "\t" <<sec26_r3_intcp << "\t" << sec26_r3_slope<<endl;
546  SC_PTC << sec27_r1_intcp << "\t" << sec27_r1_slope << "\t" << sec27_r2_intcp << "\t" << sec27_r2_slope << "\t" <<sec27_r3_intcp << "\t" << sec27_r3_slope<<endl;
547  SC_PTC << sec28_r1_intcp << "\t" << sec28_r1_slope << "\t" << sec28_r2_intcp << "\t" << sec28_r2_slope << "\t" <<sec28_r3_intcp << "\t" << sec28_r3_slope<<endl;
548  SC_PTC << sec29_r1_intcp << "\t" << sec29_r1_slope << "\t" << sec29_r2_intcp << "\t" << sec29_r2_slope << "\t" <<sec29_r3_intcp << "\t" << sec29_r3_slope<<endl;
549  SC_PTC << sec30_r1_intcp << "\t" << sec30_r1_slope << "\t" << sec30_r2_intcp << "\t" << sec30_r2_slope << "\t" <<sec30_r3_intcp << "\t" << sec30_r3_slope<<endl;
550  SC_PTC.close();
551 }
void SC_PTC(char const *input_filename)
Definition: SC_PTC.C:89
static TGraph * gr3
TGraph * gr[NCHANNELS]
Definition: st_tw_resols.C:43
Double_t c1[2][NMODULES]
Definition: tw_corr.C:68
TF1 * f
Definition: FitGains.C:21
static TGraphErrors * gr12
Double_t c2[2][NMODULES]
Definition: tw_corr.C:69
static TGraph * gr2
Double_t sigma[NCHANNELS]
Definition: st_tw_resols.C:37
TCanvas * PT_can[30]
static TGraphErrors * gr11
TCanvas * c4
TCanvas * c3
printf("string=%s", string)