FairRoot/PandaRoot
Functions
ModulesStat.C File Reference
#include <TFile.h>
#include <TH1.h>
#include <TH2.h>
#include <TString.h>
#include <TCanvas.h>
#include <TNtuple.h>
#include <TGraphErrors.h>
#include <TMultiGraph.h>
#include <TLegend.h>
#include <TMath.h>
#include <sstream>

Go to the source code of this file.

Functions

int ModulesStat (TString pathG="/home/karavdina/soft/pandaroot/macro/lmd/testPixelAlignSIM/mom_15/")
 

Function Documentation

int ModulesStat ( TString  pathG = "/home/karavdina/soft/pandaroot/macro/lmd/testPixelAlignSIM/mom_15/")

Hits hists --------------------------------------------------------------————————

[end] Hits hists ---------------------------------------------------------———————

average calculatuon -------------------------——————

END average calculatuon -----------------------—————

average err. calculatuon -------------------------------————

END average err. calculatuon ----------------------------———

Let's draw now! ---------------------------------------------------------------——


Definition at line 13 of file ModulesStat.C.

References f, f1, f2, name1, name2, out, sqrt(), and TString.

14 {
15 
16  // const int nDt = 8;
17  // double v_tr_sc[nDt]={0,50,100,200,300,400,500,600};//misalign, trans
18  const int nDt = 1;
19  double v_tr_sc[nDt]={100};//misalign, trans
20 
21 
22  // const int nMod = 10;
23  const int nMod = 1;//TEST
24  // const int nDt = 2;
25  // double v_tr_sc[nDt]={0,600};//misalign, trans
26 
27  // const int nDa = 6;
28  // double v_rt_sc[nDa]={0,1,3,5,7,9};//misalign, trans
29  // const int nDa = 4; //TEST
30  // double v_rt_sc[nDa]={0,1,3,5};//misalign, trans
31  const int nDa = 1; //TEST
32  double v_rt_sc[nDa]={0};//misalign, trans
33  const int nSdGL=100;//number of data samples
34  const int nSd=10;//number of data samples sim in step C
35  const int nSdstep = 10; //step size for "number of used trks in Knossos"
36  const int nuSd = nSdGL/nSdstep;
37  // cout<<"nuSd = "<<nuSd<<endl;
38  // const int nSc=10;//number of align.consts samples
39  const int nSc=1;//number of align.consts samples TEST
40  for(int iSc=0;iSc<nSc;iSc++){//diff output files
41  for(int iDa=0;iDa<nDa;iDa++){//diff output files
42  // for(int iSc=0;iSc<1;iSc++){//diff output files //TEST
43  // for(int iDa=0;iDa<1;iDa++){//diff output files //TEST
44 
45  double ev_mod_b[10][nSd][nuSd+1][nDt]; //module, data sample, sum of data samples, dt
46  double ev_mod_a[10][nSd][nuSd+1][nDt]; //module, data sample, sum of data samples, dt
47  //mean values of residuals
48  double resx_mod_b[10][nSd][nuSd+1][nDt]; //module, data sample, sum of data samples, dt
49  double resx_mod_a[10][nSd][nuSd+1][nDt]; //module, data sample, sum of data samples, dt
50  double resy_mod_b[10][nSd][nuSd+1][nDt]; //module, data sample, sum of data samples, dt
51  double resy_mod_a[10][nSd][nuSd+1][nDt]; //module, data sample, sum of data samples, dt
52  //How to save data
53  TString resname= pathG+"/AlignmentLimits_EvModStat";
54  resname+=v_rt_sc[iDa];
55  resname+="mrad_";
56  resname+=iSc;
57  resname+="constsSample";
58  TString resname_pdf = resname+".pdf";
59  TString resname_pdf_o = resname_pdf+"(";
60  TString resname_pdf_c = resname_pdf+")";
61 
62  for(int idt=0;idt<nDt;idt++){//loop over dt values (x-axis of plots)
63  for(int imod=0;imod<nMod;imod++){// loop over modules (diff plots)
64  // for(int isum=1;isum<nSd+1;isum++){ //loop over diff stat.samples (plot with diff markers)
65  for(int ijsum=1;ijsum<nuSd+1;ijsum++){ //loop over diff stat.samples (plot with diff markers)
66  int isum = 1+nSdstep*(ijsum-1);
67  // cout<<"isum = "<<isum<<endl;
68  for(int ipart=0;ipart<nSd;ipart++){//loop over samples (take average)
69  // cout<<"Mod#"<<imod<<endl;
70  double tr_sc = v_tr_sc[idt];
71  double rt_sc = v_rt_sc[iDa];
72  //Where search for files
73  TString path = pathG+"/";
74  path+=tr_sc;
75  path+="mkm_";
76  path+=rt_sc;
77  path+="mrad/";
78  path+=iSc;
79  path+="Sum";
80  path+=isum; //sample for alignment with sum of samples
81  path+="Samples/Sample";
82  path +=ipart;
83  path+="/results/";
84 
86  TString name1 = path + "/hitsRes_before_alignment_sector";
87  name1+=imod;
88  name1+=".root";
89  TString name2 = path + "/hitsRes_after_alignment_sector";
90  name2+=imod;
91  name2+=".root";
92  TFile *f1 = new TFile(name1,"READ");
93  TNtuple *nb = (TNtuple*)f1->Get("nhits");
94  // nb->Print();
95  TH1I *ntrksb = (TH1I*)f1->Get("trks");
96  ev_mod_b[imod][ipart][ijsum][idt] = 1e-3*double(ntrksb->GetEntries());
97  TH1D *hresx_b = new TH1D("hresx_b","",1e3,-1.,1.);
98  nb->Project("hresx_b","xrec-xmc");
99  resx_mod_b[imod][ipart][ijsum][idt] = 1e4*(hresx_b->GetMean());
100  TH1D *hresy_b = new TH1D("hresy_b","",1e3,-1.,1.);
101  nb->Project("hresy_b","yrec-ymc");
102  resy_mod_b[imod][ipart][ijsum][idt] = 1e4*(hresy_b->GetMean());
103  TFile *f2 = new TFile(name2,"READ");
104  TNtuple *na = (TNtuple*)f2->Get("nhits");
105  // ev_mod_a[imod][ipart][ijsum][idt] = 1e-3*double(na->GetEntries());
106  TH1I *ntrksa = (TH1I*)f2->Get("trks");
107  ev_mod_a[imod][ipart][ijsum][idt] = 1e-3*double(ntrksa->GetEntries());
108  TH1D *hresx_a = new TH1D("hresx_a","",1e3,-1.,1.);
109  na->Project("hresx_a","xrec-xmc");
110  resx_mod_a[imod][ipart][ijsum][idt] = 1e4*(hresx_a->GetMean());
111  TH1D *hresy_a = new TH1D("hresy_a","",1e3,-1.,1.);
112  na->Project("hresy_a","yrec-ymc");
113  resy_mod_a[imod][ipart][ijsum][idt] = 1e4*(hresy_a->GetMean());
114  cout<<"imod:"<<imod<<" dt:"<<idt<<" isum:"<<isum<<" ipart:"<<ipart<<" nEv:"<<ev_mod_b[imod][ipart][ijsum][idt]<<" "<<ev_mod_a[imod][ipart][ijsum][idt]<<" "<<endl;
116  f1->Close();
117  f2->Close();
118  }// end loop over modules (diff plots)
119  }//end
120  }//end //loop over dt values
121  }//end loop over diff sum values
122 
123  double av_evMod_b[10][nuSd+1][nDt];
124  double av_evMod_a[10][nuSd+1][nDt];
125  double err_av_evMod_b[10][nuSd+1][nDt];
126  double err_av_evMod_a[10][nuSd+1][nDt];
127  double av_resxMod_b[10][nuSd+1][nDt];
128  double av_resxMod_a[10][nuSd+1][nDt];
129  double err_av_resxMod_b[10][nuSd+1][nDt];
130  double err_av_resxMod_a[10][nuSd+1][nDt];
131  double av_resyMod_b[10][nuSd+1][nDt];
132  double av_resyMod_a[10][nuSd+1][nDt];
133  double err_av_resyMod_b[10][nuSd+1][nDt];
134  double err_av_resyMod_a[10][nuSd+1][nDt];
135  // for(int isum=1;isum<nSd+1;isum++){//loop over diff stat.samples (plot with diff markers)
136  // for(int isum=1;isum<nSd+1;isum=isum+10){ //loop over diff stat.samples (plot with diff markers)
137  for(int ijsum=1;ijsum<nuSd+1;ijsum++){ //loop over diff stat.samples (plot with diff markers)
138  // int isum = nSdstep*ijsum;
139  int isum = 1+nSdstep*(ijsum-1);
140  for(int idt=0;idt<nDt;idt++){//loop over dt values (x-axis of plots)
141  for(int imod=0;imod<nMod;imod++){// loop over modules (diff plots)
142  av_evMod_b[imod][ijsum][idt]=0;
143  av_evMod_a[imod][ijsum][idt]=0;
144  err_av_evMod_b[imod][ijsum][idt]=0;
145  err_av_evMod_a[imod][ijsum][idt]=0;
146 
147  av_resxMod_b[imod][ijsum][idt]=0;
148  av_resxMod_a[imod][ijsum][idt]=0;
149  err_av_resxMod_b[imod][ijsum][idt]=0;
150  err_av_resxMod_a[imod][ijsum][idt]=0;
151  av_resyMod_b[imod][ijsum][idt]=0;
152  av_resyMod_a[imod][ijsum][idt]=0;
153  err_av_resyMod_b[imod][ijsum][idt]=0;
154  err_av_resyMod_a[imod][ijsum][idt]=0;
155  }//end loop over modules (diff plots)
156  }//end loop over dt
157  }//end loop over diif sum values
158 
159  double i_nS = 1./nSd;
160  double i_nS_r = 1./(nSd-1);
162  // for(int isum=1;isum<nSd+1;isum++){//loop over diff stat.samples (plot with diff markers)
163  // for(int isum=1;isum<nSd+1;isum=isum+10){ //loop over diff stat.samples (plot with diff markers)
164  for(int ijsum=1;ijsum<nuSd+1;ijsum++){ //loop over diff stat.samples (plot with diff markers)
165  // int isum = nSdstep*ijsum;
166  int isum = 1+nSdstep*(ijsum-1);
167  for(int idt=0;idt<nDt;idt++){//loop over dt values (x-axis of plots)
168  for(int imod=0;imod<nMod;imod++){// loop over modules (diff plots)
169  for(int ipart=0;ipart<isum;ipart++){//loop over samples
170  av_evMod_b[imod][ijsum][idt]+= ev_mod_b[imod][ipart][ijsum][idt];
171  av_evMod_a[imod][ijsum][idt]+= ev_mod_a[imod][ipart][ijsum][idt];
172 
173  av_resxMod_b[imod][ijsum][idt]+= resx_mod_b[imod][ipart][ijsum][idt];
174  av_resxMod_a[imod][ijsum][idt]+= resx_mod_a[imod][ipart][ijsum][idt];
175  av_resyMod_b[imod][ijsum][idt]+= resy_mod_b[imod][ipart][ijsum][idt];
176  av_resyMod_a[imod][ijsum][idt]+= resy_mod_a[imod][ipart][ijsum][idt];
177  // cout<<" "<<ev_mod_b[imod][ipart][ijsum][idt]<<" "<<ev_mod_a[imod][ipart][ijsum][idt]<<" "<<endl;
178  }//end over samples
179  av_resxMod_b[imod][ijsum][idt] *= 1./isum;
180  av_resxMod_a[imod][ijsum][idt] *= 1./isum;
181  av_resyMod_b[imod][ijsum][idt] *= 1./isum;
182  av_resyMod_a[imod][ijsum][idt] *= 1./isum;
183  // cout<<" av for sum of "<<isum<<" :"<<av_evMod_b[imod][ijsum][idt]<<" "<<av_evMod_a[imod][ijsum][idt]<<" "<<endl;
184  }//end loop over modules (diff plots)
185  }//end loop over dt
186  }//end loop over diif sum values
188 
190  // for(int isum=1;isum<nSd+1;isum++){//loop over diff stat.samples (plot with diff markers)
191  // for(int isum=1;isum<nSd+1;isum=isum+10){ //loop over diff stat.samples (plot with diff markers)
192  for(int ijsum=1;ijsum<nuSd+1;ijsum++){ //loop over diff stat.samples (plot with diff markers)
193  // int isum = nSdstep*ijsum;
194  int isum = 1+nSdstep*(ijsum-1);
195  for(int idt=0;idt<nDt;idt++){//loop over dt values (x-axis of plots)
196  for(int imod=0;imod<nMod;imod++){// loop over modules (diff plots)
197  for(int ipart=0;ipart<isum;ipart++){//loop over samples
198  err_av_resxMod_b[imod][ijsum][idt] += TMath::Power((resx_mod_b[imod][ipart][ijsum][idt]-av_resxMod_b[imod][ijsum][idt]),2);
199  err_av_resxMod_a[imod][ijsum][idt] += TMath::Power((resx_mod_a[imod][ipart][ijsum][idt]-av_resxMod_a[imod][ijsum][idt]),2);
200  err_av_resyMod_b[imod][ijsum][idt] += TMath::Power((resy_mod_b[imod][ipart][ijsum][idt]-av_resyMod_b[imod][ijsum][idt]),2);
201  err_av_resyMod_a[imod][ijsum][idt] += TMath::Power((resy_mod_a[imod][ipart][ijsum][idt]-av_resyMod_a[imod][ijsum][idt]),2);
202  }//end over samples
203  err_av_resyMod_b[imod][ijsum][idt] *=1./isum;
204  err_av_resyMod_b[imod][ijsum][idt] = sqrt(err_av_resyMod_b[imod][ijsum][idt]);
205  err_av_resyMod_a[imod][ijsum][idt] *=1./isum;
206  err_av_resyMod_a[imod][ijsum][idt] = sqrt(err_av_resyMod_a[imod][ijsum][idt]);
207  // cout<<" ipart="<<ipart<<": err_av_resxMod_a["<<imod<<"]["<<isum<<"]["<<idt<<"] = "<<err_av_resxMod_a[imod][ijsum][idt]<<endl;
208  // cout<<" ipart="<<ipart<<": err_av_resyMod_a["<<imod<<"]["<<isum<<"]["<<idt<<"] = "<<err_av_resyMod_a[imod][ijsum][idt]<<endl;
209  }//end loop over modules (diff plots)
210  }//end loop over dt
211  }//end loop over diif sum values
213 
214 
215  // // PRINT ---------------------------
216  // for(int isum=1;isum<nSd+1;isum++){//loop over diff stat.samples (plot with diff markers)
217  // for(int idt=0;idt<nDt;idt++){//loop over dt values (x-axis of plots)
218  // for(int imod=0;imod<10;imod++){// loop over modules (diff plots)
219  // cout<<"Module #"<<imod<<"@ isum="<<isum<<", idt="<<idt<<" has "<<av_evMod_b[imod][ijsum][idt]<<"+/-"<<err_av_evMod_b[imod][ijsum][idt]<<endl;
220  // }
221  // }
222  // }
223  // // END PRINT ---------------------
224 
225  TString out = resname+".root";
226  TFile *f = new TFile(out,"RECREATE");
227 
229  TCanvas cRes;
230  for(int imod=0;imod<nMod;imod++){// loop over modules (diff plots)
231  TGraphErrors *gr_av_b[nuSd+1];
232  TGraphErrors *gr_av_a[nuSd+1];
233  TMultiGraph *mgr_av_b = new TMultiGraph();
234  TMultiGraph *mgr_av_a = new TMultiGraph();
235  TGraphErrors *gr_avResx_b[nuSd+1];
236  TGraphErrors *gr_avResx_a[nuSd+1];
237  TMultiGraph *mgr_avResx_b = new TMultiGraph();
238  TMultiGraph *mgr_avResx_a = new TMultiGraph();
239  TGraphErrors *gr_avResy_b[nuSd+1];
240  TGraphErrors *gr_avResy_a[nuSd+1];
241  TMultiGraph *mgr_avResy_b = new TMultiGraph();
242  TMultiGraph *mgr_avResy_a = new TMultiGraph();
243  TLegend *leg_b = new TLegend(0.91,0.65,0.99,0.98);
244  leg_b->SetHeader("BEFORE");
245  TLegend *leg_a = new TLegend(0.91,0.65,0.99,0.98);
246  leg_a->SetHeader("AFTER");
247  // for(int isum=nSd;isum>0;isum--){//loop over diff stat.samples (plot with diff markers)
248  // for(int isum=nSd;isum>0;isum=isum-10){//loop over diff stat.samples (plot with diff markers)
249  for(int ijsum=nuSd;ijsum>0;ijsum--){ //loop over diff stat.samples (plot with diff markers)
250  // int isum = nSdstep*ijsum;
251  int isum = 1+nSdstep*(ijsum-1);
252  TString sname = " ";
253  sname +=" sum of ";
254  sname += isum;
255  gr_av_b[ijsum] = new TGraphErrors(nDt,v_tr_sc, av_evMod_b[imod][ijsum],0,err_av_evMod_b[imod][ijsum]);
256  gr_av_a[ijsum] = new TGraphErrors(nDt,v_tr_sc, av_evMod_a[imod][ijsum],0,err_av_evMod_a[imod][ijsum]);
257  gr_avResx_b[ijsum] = new TGraphErrors(nDt,v_tr_sc, av_resxMod_b[imod][ijsum],0,err_av_resxMod_b[imod][ijsum]);
258  gr_avResx_a[ijsum] = new TGraphErrors(nDt,v_tr_sc, av_resxMod_a[imod][ijsum],0,err_av_resxMod_a[imod][ijsum]);
259  gr_avResx_b[ijsum] = new TGraphErrors(nDt,v_tr_sc, av_resxMod_b[imod][ijsum],0,err_av_resxMod_b[imod][ijsum]);
260  gr_avResx_a[ijsum] = new TGraphErrors(nDt,v_tr_sc, av_resxMod_a[imod][ijsum],0,err_av_resxMod_a[imod][ijsum]);
261  gr_avResy_b[ijsum] = new TGraphErrors(nDt,v_tr_sc, av_resyMod_b[imod][ijsum],0,err_av_resyMod_b[imod][ijsum]);
262  gr_avResy_a[ijsum] = new TGraphErrors(nDt,v_tr_sc, av_resyMod_a[imod][ijsum],0,err_av_resyMod_a[imod][ijsum]);
263  gr_avResy_b[ijsum] = new TGraphErrors(nDt,v_tr_sc, av_resyMod_b[imod][ijsum],0,err_av_resyMod_b[imod][ijsum]);
264  gr_avResy_a[ijsum] = new TGraphErrors(nDt,v_tr_sc, av_resyMod_a[imod][ijsum],0,err_av_resyMod_a[imod][ijsum]);
265  TString name_ev = "Ev_";
266  name_ev +=imod;
267  name_ev +="mod_sum";
268  name_ev += isum;
269  gr_av_b[ijsum]->SetName(name_ev+"_b");
270  gr_av_b[ijsum]->SetMarkerStyle(20+ijsum);
271  gr_av_b[ijsum]->SetMarkerColor(kGreen-3);
272  gr_av_b[ijsum]->SetMarkerSize(1.5);
273  gr_av_a[ijsum]->SetName(name_ev+"_a");
274  gr_av_a[ijsum]->SetMarkerStyle(20+ijsum);
275  gr_av_a[ijsum]->SetMarkerColor(kOrange+7);
276  gr_av_a[ijsum]->SetMarkerSize(1.5);
277  mgr_av_b->Add(gr_av_b[ijsum]);
278  mgr_av_a->Add(gr_av_a[ijsum]);
279  gr_av_b[ijsum]->Write();
280  gr_av_a[ijsum]->Write();
281  leg_b->AddEntry(gr_av_b[ijsum],sname,"P");
282  leg_a->AddEntry(gr_av_a[ijsum],sname,"P");
283 
284  gr_avResx_b[ijsum]->SetName(name_ev+"_b");
285  gr_avResx_b[ijsum]->SetMarkerStyle(20+ijsum);
286  gr_avResx_b[ijsum]->SetMarkerColor(kGreen-3);
287  gr_avResx_b[ijsum]->SetMarkerSize(1.5);
288  gr_avResx_a[ijsum]->SetName(name_ev+"_a");
289  gr_avResx_a[ijsum]->SetMarkerStyle(20+ijsum);
290  gr_avResx_a[ijsum]->SetMarkerColor(kOrange+7);
291  gr_avResx_a[ijsum]->SetMarkerSize(1.5);
292  mgr_avResx_b->Add(gr_avResx_b[ijsum]);
293  mgr_avResx_a->Add(gr_avResx_a[ijsum]);
294  gr_avResx_b[ijsum]->Write();
295  gr_avResx_a[ijsum]->Write();
296  gr_avResy_b[ijsum]->SetName(name_ev+"_b");
297  gr_avResy_b[ijsum]->SetMarkerStyle(20+ijsum);
298  gr_avResy_b[ijsum]->SetMarkerColor(kGreen-3);
299  gr_avResy_b[ijsum]->SetMarkerSize(1.5);
300  gr_avResy_a[ijsum]->SetName(name_ev+"_a");
301  gr_avResy_a[ijsum]->SetMarkerStyle(20+ijsum);
302  gr_avResy_a[ijsum]->SetMarkerColor(kOrange+7);
303  gr_avResy_a[ijsum]->SetMarkerSize(1.5);
304  mgr_avResy_b->Add(gr_avResy_b[ijsum]);
305  mgr_avResy_a->Add(gr_avResy_a[ijsum]);
306  gr_avResy_b[ijsum]->Write();
307  gr_avResy_a[ijsum]->Write();
308 
309  }//end over diff stat.samples (plot with diff markers)
310 
311  TString smname = "Module_";
312  smname += imod;
313  mgr_av_b->SetTitle(smname+"_b");
314  mgr_av_a->SetTitle(smname+"_a");
315  leg_a->SetFillColor(0);
316  leg_b->SetFillColor(0);
317  mgr_av_b->SetName(smname+"_b");
318  mgr_av_a->SetName(smname+"_a");
319  TString smnamex,smnamey;
320  smnamex =smname;
321  smnamex+="_resX";
322  smnamey =smname;
323  smnamey+="_resY";
324  mgr_avResx_b->SetName(smnamex+"_b");
325  mgr_avResx_a->SetName(smnamex+"_a");
326  mgr_avResy_b->SetName(smnamey+"_b");
327  mgr_avResy_a->SetName(smnamey+"_a");
328  mgr_av_b->Draw("AP");
329  mgr_av_b->GetXaxis()->SetTitle("#delta_{t}, #mum");
330  mgr_av_b->GetYaxis()->SetTitle("events, 10^{3}");
331  leg_b->Draw();
332  cRes.Print(resname_pdf_o); //write canvas and keep the ps file open
333  cRes.Clear();
334  mgr_av_a->Draw("AP");
335  mgr_av_a->GetXaxis()->SetTitle("#delta_{t}, #mum");
336  mgr_av_a->GetYaxis()->SetTitle("events, 10^{3}");
337  leg_a->Draw();
338  cRes.Print(resname_pdf_o); //write canvas and keep the ps file open
339  cRes.Clear();
340  mgr_av_a->Write();
341  mgr_av_b->Write();
342  if(imod<1){
343  leg_b->SetName("LegBefore");
344  leg_a->SetName("LegAfter");
345  leg_b->Write();
346  leg_a->Write();
347  }
348 
349  mgr_avResx_b->Draw("AP");
350  mgr_avResx_b->GetXaxis()->SetTitle("#delta_{t}, #mum");
351  mgr_avResx_b->GetYaxis()->SetTitle("res_{X}, mean [#mum]");
352  leg_b->Draw();
353  cRes.Print(resname_pdf_o); //write canvas and keep the ps file open
354  cRes.Clear();
355  mgr_avResx_a->Draw("AP");
356  mgr_avResx_a->GetXaxis()->SetTitle("#delta_{t}, #mum");
357  mgr_avResx_a->GetYaxis()->SetTitle("res_{X}, mean [#mum]");
358  leg_a->Draw();
359  cRes.Print(resname_pdf_o); //write canvas and keep the ps file open
360  cRes.Clear();
361  mgr_avResx_a->Write();
362  mgr_avResx_b->Write();
363 
364  mgr_avResy_b->Draw("AP");
365  mgr_avResy_b->GetXaxis()->SetTitle("#delta_{t}, #mum");
366  mgr_avResy_b->GetYaxis()->SetTitle("res_{Y}, mean [#mum]");
367  leg_b->Draw();
368  cRes.Print(resname_pdf_o); //write canvas and keep the ps file open
369  cRes.Clear();
370  mgr_avResy_a->Draw("AP");
371  mgr_avResy_a->GetXaxis()->SetTitle("#delta_{t}, #mum");
372  mgr_avResy_a->GetYaxis()->SetTitle("res_{Y}, mean [#mum]");
373  leg_a->Draw();
374  cRes.Print(resname_pdf_o); //write canvas and keep the ps file open
375  cRes.Clear();
376  mgr_avResy_a->Write();
377  mgr_avResy_b->Write();
378 
379  }//end loop over modules (diff plots)
380  cRes.Print(resname_pdf_c); //write canvas and close the ps file
382  f->Write();
383  f->Close();
384  }
385  }
386  return 0;
387 }
TF1 * f1
Definition: reco_analys2.C:50
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
TFile * f
Definition: bump_analys.C:12
TFile * out
Definition: reco_muo.C:20
TFile * f2