StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
plJetsL2.C
1 /* notes
2 
3 LSF CPU per event
4 - full histos MPV=47 kTics, mean 54 kTics
5 - ~all histos OFF : MPV=44kTics, mean 51 kTics
6 
7 */
8 class TCanvas;
9 TCanvas *c=0;
10 TFile *fd=0;
11 
12 // root.exe plJetsL2.C'("wrk/hist/run7076054.l2jet.hist.root")'
13 
14 //======================================
15 //======================================
16 plJetsL2(char *hFile="xx.hist.root", char *pathPS=0) {
17 //open hist file & empty canvas, no plots
18 
19  gStyle->SetPalette(1,0);
20  gStyle->SetOptStat(10);
21 
22  TString rootHistFname=hFile;
23  fd=new TFile(rootHistFname);
24  assert(fd->IsOpen());
25  c=new TCanvas("aa","aa",600,500);
26  printf("To view plots exec: plJetsL2(1) ,2,3,4,5,6,10,20,21,22\n");
27  if(pathPS) plAll(pathPS);
28 }
29 
30 //======================================
31 //======================================
32 plAll(char *pathPS) {
33  int pgA[]={1,2,3,4,5,6,10,20,21,22};
34  int i;
35  int k=0;
36  for(i=0;i<10;i++) {
37  char txt[100];
38  int page=pgA[i];
39  sprintf(txt,"%s/L2jet_Page%02d.ps",pathPS,page);
40  plJetsL2(page);
41  c->Print(txt);
42  k++;
43  }
44  printf("#L2jet_plALL_done_%d\n",k);// confirmation string for the outside script
45 }
46 
47 
48 //======================================
49 //======================================
50 plJetsL2(int page) {
51 
52  if(c==0) {
53  printf(" execute plJetsL2() first to open the Canvas, QUIT\n");
54  return;
55  }
56 
57  TString tit="L2Jet-page"; tit+=page;
58  c->SetTitle(tit);
59  c->Clear();
60 
61  switch (page) {
62 
63  case 1: { //...........................
64  gStyle->SetOptStat(1110);
65  char *names[]={"h10","h11","h12"};
66  c->Divide(2,2);
67  int i;
68  for(i=0;i<3;i++) {
69  c->cd(i+1);
70  TH1F *h=(TH1F *)fd->Get(names[i]);
71  h->Draw();
72  if(i==0) {
73  gPad->SetLogy();
74  h->SetFillColor(kBlue);
75  h->SetXTitle("Input: 1=btow, 2=etaw Accept: 4=oneJet, 5=diJet, 6=rnd" );
76  h->SetTitle("total events 0=anyInput 8=anyAccept");
77  }
78  if(i==2) {
79  int nbin=5;
80  h->Rebin(nbin); h->Scale(1./nbin);
81  }
82  }
83 
84  // frequency plot
85  c->cd(4);
86  const int mxh=3;
87  int nbin=50;
88  float mxT=50.;
89  TH1F *hA[mxh];
90  float yMax=0;
91 
92  char *names2[]={"h13","h14","h15"};
93  for(i=0;i<3;i++) {
94  TH1F *h=(TH1F *)fd->Get(names2[i]);
95  h->Rebin(nbin); h->Scale(1./nbin);
96  if(i==0) {
97  h->Draw(); //h->SetAxisRange(0,mxT); }
98  h->SetTitle("accpet rate blue:monoJet, red:diJet, black:random");
99  } else h->Draw("same");
100  if(i==0) {h->SetLineColor(kBlue);}
101  if(i==1) {h->SetLineColor(kRed); h->SetLineStyle(2);}
102  if(i==2) {h->SetLineColor(kBlack); h->SetLineStyle(2);}
103  if(yMax<h->GetMaximum()) yMax=h->GetMaximum();
104  h->SetLineWidth(2.);
105  hA[i]=h;
106  }
107  for(i=0;i<mxh;i++) hA[i]->SetMaximum(yMax*1.1);
108  if(yMax>0.5) gPad->SetLogy();
109  } break;
110 
111 
112  case 2: { // BTOW vs. softID
113  gStyle->SetOptStat(0);
114  TH1F *h0=(TH1F *)fd->Get("h21");
115  float yMax=h0->GetMaximum();
116  h0->SetMaximum(yMax*1.1);
117 
118  h0->SetFillColor(kRed);
119  h0->SetLineColor(kRed);
120  int nd=6;
121  int nx=4800/nd;
122  c->Divide(1,nd);
123  int i;
124  for(i=0;i<nd;i++) {
125  TH1F *ha=(TH1F *)h0->Clone();
126  ha->SetAxisRange(nx*i, nx*(i+1));
127  c->cd(i+1);
128  ha->Draw();
129 
130  // print extra label
131  TString aaa="soft=";
132  aaa+=nx*i+1; aaa+="+";
133  tx=new TText(nx*i-100,1.,aaa);
134  tx->SetTextSize(0.15);
135  tx->Draw();
136 
137  }
138  } break;
139 
140 
141  case 3: { // ETOW vs. crate/cannel, common ymax
142  gStyle->SetOptStat(0);
143  TH1F *h0=(TH1F *)fd->Get("h31");
144  h0->SetFillColor(kBlue);
145  float yMax=h0->GetMaximum();
146  h0->SetMaximum(yMax*1.1);
147  int nd=6;
148  int nx=h0->GetNbinsX()/nd;
149  c->Divide(1,nd);
150  int i;
151  for(i=0;i<nd;i++) {
152  TH1F *ha=(TH1F *)h0->Clone();
153  ha->SetAxisRange(nx*i, nx*(i+1));
154  c->cd(i+1);
155  ha->Draw();
156 
157  // print extra label
158  TString aaa="crate=";
159  aaa+=i+1;
160  tx=new TText(nx*i-15,1.,aaa);
161  tx->SetTextSize(0.2);
162  tx->Draw();
163  }
164  } break;
165 
166 
167  case 4: { // BTOW+ETOW 2D eta-phi
168 
169  gStyle->SetOptStat(10);
170  TH1F *hb=(TH1F *)fd->Get("h22");
171  TH1F *he=(TH1F *)fd->Get("h32");
172  he->SetTitle("ETOW");
173  c->Divide(0);
174  c->Range(0,0,1,1);
175  float xDiv=0.7;
176 
177  pdL = new TPad("padL", "padL",0.0,0.,xDiv,1.);
178  pdL->Draw();
179 
180  pdR = new TPad("padR", "padR",xDiv,0.,1.,1.);
181  pdR->Draw();
182 
183  float zMx=hb->GetMaximum();
184  if(zMx<he->GetMaximum()) zMx=he->GetMaximum();
185  hb->SetMaximum(zMx*1.2);
186  he->SetMaximum(zMx*1.2);
187 
188  pdL->cd();
189  hb->Draw("colz");
190  TLine* ln=new TLine(20.,-10.,20., 130);
191  ln->SetLineColor(kMagenta);
192  ln->Draw();
193  tx=new TText(5,121,"BTOW-East"); tx->Draw();tx->SetTextColor(kMagenta);
194  tx=new TText(25,121,"BTOW-West"); tx->Draw();tx->SetTextColor(kMagenta);
195 
196  pdR->cd();
197  he->Draw("colz");
198  tx=new TText(4,61,"Endcap"); tx->Draw();tx->SetTextColor(kMagenta);
199  tx->SetTextSize(0.1);
200  } ;break;
201 
202  case 5: { //...........................
203  gStyle->SetOptStat(10);
204  char *names[]={"h40","h41","h43","h42"};
205  c->Divide(2,2);
206  int i;
207  for(i=0;i<4;i++) {
208  c->cd(i+1);
209  TH1F *h=(TH1F *)fd->Get(names[i]);
210  h->Draw("colz");
211  if(i%2) draw_eta_phi_text();
212  }
213  } break;
214 
215 
216  case 6: { //...........................
217  gStyle->SetOptStat(1110);
218  char *names[]={"h44","h45","h47","h46","h48"};
219  c->Divide(2,3);
220  int i;
221  for(i=0;i<5;i++) {
222  c->cd(i+1);
223  TH1F *h=(TH1F *)fd->Get(names[i]);
224  h->Draw();
225  h->SetLineWidth(2.);
226  if(i!=2 && i!=4) gPad->SetLogy();
227  }
228  } break;
229 
230 
231  case 10: { // one-jet accepted
232  gStyle->SetOptStat(10);
233  char *names[]={"h50","h51","h53","h52"};
234  c->Divide(2,2);
235  int i;
236  for(i=0;i<4;i++) {
237  c->cd(i+1);
238  TH1F *h=(TH1F *)fd->Get(names[i]);
239  if(i==1) h->Draw("colz");
240  else h->Draw();
241  if(i==0) gPad->SetLogy();
242  if(i==1) draw_eta_phi_text();
243  if(i>1) h->SetMinimum(0);
244  }
245  } break;
246 
247  case 20: { //...........................
248  gStyle->SetOptStat(10);
249  char *names[]={"h60","h61","h63","h62"};
250  c->Divide(2,2);
251  int i;
252  for(i=0;i<4;i++) {
253  c->cd(i+1);
254  TH1F *h=(TH1F *)fd->Get(names[i]);
255  h->Draw("colz");
256  if(i%2) draw_eta_phi_text();
257  }
258  } break;
259 
260  case 21: { // di-jet accepted
261  gStyle->SetOptStat(1110);
262  char *names1[]={"h64","h66","h68"};
263  char *names2[]={"h65","h67","h69"};
264  c->Divide(2,2);
265  int i;
266  for(i=0;i<3;i++) {
267  c->cd(i+1);
268  TH1F *h1=(TH1F *)fd->Get(names1[i]);
269  h1->Draw(); h1->SetLineColor(kRed);
270  h1->SetLineWidth(2.);
271  TH1F *h2=(TH1F *)fd->Get(names2[i]);
272  h2->SetLineWidth(2.); h2->Draw("same");
273  h2->SetLineColor(kBlue); h2->SetLineStyle(2);
274 
275  if(i==0) gPad->SetLogy();
276 
277 
278  if(i<3) { // make it nicer
279  h1->SetMinimum(0.9);
280  if(i==0)h1->SetTitle("diJet Et (accepted)");
281  if(i==1)h1->SetTitle("diJet eta (accepted)");
282  if(i==2)h1->SetTitle("diJet phi (accepted)");
283  lg=new TLegend(0.4,0.42,.7,0.55);
284  lg->AddEntry(h1,"High Et jet");
285  lg->AddEntry(h2,"Low Et jet");
286  lg->Draw();
287  }
288 
289  else h1->SetMinimum(0);
290 
291  float yMax=h1->GetMaximum();
292  if(yMax<h2->GetMaximum()){
293  yMax=h2->GetMaximum();
294  h1->SetMaximum(yMax*1.1);
295  }
296  if(i==2) {
297  t=new TText(2.8,yMax/5,"RED Jet1 ET > GREEN Jet2 ET ");
298  t->Draw();
299  }
300 
301  }
302  TH1F *h=(TH1F *)fd->Get("h70");
303  c->cd(4);
304  h->Draw();
305 
306  t=new TLatex(3,h->GetMaximum()*.3,"#Delta #zeta=phi(J1,J2) * sign( K_{T} x S_{Y} )");
307  t->Draw();
308 
309  } break;
310 
311  case 22: { //...........................
312  gStyle->SetOptStat(110);
313  char *names[]={"h71","h72","h73","h74"};
314  c->Divide(2,2);
315  int i;
316  for(i=0;i<4;i++) {
317  c->cd(i+1);
318  TH1F *h=(TH1F *)fd->Get(names[i]);
319  if(i<=2) h->Draw("colz");
320  if(i==3) {
321  h->Draw();
322  gPad->SetLogy();
323  }
324  if(i==1) draw_eta12_text();
325  }
326 
327  } break;
328 
329 
330  default: ;
331  }
332 
333 
334 }
335 
336 //===============================
337 void draw_eta_phi_text() {
338  ln=new TLine(5.,0.,5., 33); ln->SetLineColor(kMagenta); ln->Draw();
339  ln=new TLine(10.,0.,10., 33); ln->SetLineColor(kMagenta); ln->Draw();
340  tx=new TText(.8,29.8,"BTOW-East"); tx->Draw();tx->SetTextColor(kMagenta);
341  tx=new TText(5.8,30.5,"BTOW-West"); tx->Draw();tx->SetTextColor(kMagenta);
342  tx=new TText(10.5,30.5,"Endcap"); tx->Draw();tx->SetTextColor(kMagenta);
343 }
344 
345 
346 //===============================
347 void draw_eta12_text() {
348  ln=new TLine(10.,0.,10., 16); ln->SetLineColor(kMagenta); ln->Draw();
349  ln=new TLine(-1.,10.,15., 10); ln->SetLineColor(kMagenta); ln->Draw();
350 
351  tx=new TText(4.8,14.8,"BTOW"); tx->Draw();tx->SetTextColor(kMagenta);
352  tx=new TText(10.5,15.1,"Endcap"); tx->Draw();tx->SetTextColor(kMagenta);
353 
354  tx=new TText(14.5,7,"BTOW"); tx->Draw();tx->SetTextColor(kMagenta);
355  tx=new TText(14.5,12,"Endcap"); tx->Draw();tx->SetTextColor(kMagenta);
356 }
357 
358 
359 //====================================
360 //======================================
361 //======================================
362 //pl$carl() {