StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
plPPVtrack4beamLine.C
1 /*
2 cat outPS/*ps | ps2pdf - all.pdf
3 cp all.pdf ~/WWW/tmp/xP.pdf
4 */
5 
6 TCanvas *can=0;
7 
8 void doAll(){
9  for(int i=10;i<=19;i++) plPPV3D(i,2);
10  plPPV3D(1,2);
11 }
12 
13 //=================================================
14 void plPPVtrack4beamLine( int page=1,int pl=0, char *core0="st_W_10097106_raw_5180001", char *path="./"){ //pl=1=gif, 2=ps, 3=both
15 
16  gStyle->SetOptFit(1);
17  TString fullInpName=path;
18  fullInpName+=core0; fullInpName+=".ppv.hist";
19  fullInpName+=".root";
20  fd=new TFile(fullInpName);
21  if(! fd->IsOpen()) {
22  printf("EROR: input histo file not found, quit\n",fullInpName.Data());
23  return;
24  } else {
25  printf("Opened: %s\n",fullInpName.Data());
26  }
27  if(page==1){
28  fd->ls();
29  printf("v3D_myStat: ");
30  for(int k=1;k<10;k++) printf("%.0f, ",v3D_myStat->GetBinContent(k));
31  printf("\n");
32  }
33  gStyle->SetPalette(1,0);
34  gStyle->SetOptStat(0);
35  char padTit[1000];
36  sprintf(padTit,"%s",core0);
37  //sprintf(padTit,"%s","run 10079030");
38 
39  char *nameA[]={"inPt","inSigY","myStat","inSigZ","inTr","eve0YX"};
40 
41  switch (page) {
42 
43  case 1:{
44  can=new TCanvas("aa","aa",800,600); TPad *c=makeTitle(can,padTit,page);
45  c->Divide(3,2);gStyle->SetOptStat(1001111);
46 
47  char **nameX=nameA;
48  for(int i=0;i<6;i++) {
49  char txt[100];
50 
51  sprintf(txt,"v3D_%s",nameX[i]);
52  printf("->%s<\n",txt);
53  h=(TH1*)fd->Get(txt); assert(h);
54  c->cd(i+1); h->Draw();
55  if(i==1) h->SetAxisRange(0,10.);
56  if(i==2) h->SetMinimum(0.7);
57  }
58  c->GetPad(1)->SetLogy();
59 
60 
61  break;
62  }//--------------------------------------
63  case 2:{
64  can=new TCanvas("aa","aa",900,600); TPad *c=makeTitle(can,padTit,page);
65  c->Divide(3,2);gStyle->SetOptStat(1001111);
66  for(int i=0;i<6;i++) {
67  char txt[100];
68  sprintf(txt,"v3D_chi%d",i+1);
69  printf("->%s<\n",txt);
70  h=(TH1*)fd->Get(txt); assert(h);
71  c->cd(i+1); h->Draw();
72  if(i>0) {
73  h->Draw("colz");
74  }
75  }
76  break;
77  }//--------------------------------------
78 
79  case 10:
80  case 11:
81  case 12:
82  case 13:
83  case 14:
84  case 15:
85  case 16:
86  case 17:
87  case 18:
88  case 19:
89  {
90  can=new TCanvas("aa","aa",500,750); TPad *c=makeTitle(can,padTit,page);
91  int nP=3;
92  c->Divide(2,nP);gStyle->SetOptStat(0);
93  int eve0=(page-10)*nP;
94  eve0+=2;
95  for(int i=0;i<nP;i++) {
96  char txt[100];
97  sprintf(txt,"v3D_eve%dYX",eve0+i);
98  printf("->%s<\n",txt);
99  h=(TH1*)fd->Get(txt); assert(h);
100  c->cd(2*i+1); h->Draw();
101  sprintf(txt,"v3D_eve%dYZ",eve0+i);
102  printf("->%s<\n",txt);
103  h=(TH1*)fd->Get(txt); assert(h);
104  c->cd(2*i+2); h->Draw();
105  }
106  break;
107  }//--------------------------------------
108 
109 
110 
111  default:
112  printf("page=%d NOT defined\n",page);
113 
114  }
115 
116  char text[100];
117  sprintf(text,"outPS/%s_page%03d",core0,page);
118  TString tit=text;
119  can->SetTitle(tit);
120  can->SetName(tit);
121  // c->Clear();
122 
123  if(pl&1) can->Print(tit+".gif");
124  if(pl&2) can->Print(tit+".ps");
125 
126 }
127 
128 //------------------------
129 TPad *makeTitle(TCanvas *c,char *core, int page) {
130 
131  c->Range(0,0,1,1);
132  TPad *pad0 = new TPad("pad0", "apd0",0.0,0.95,1.,1.);
133  pad0->Draw();
134  pad0->cd();
135 
136  TPaveText *pt = new TPaveText(0,0.,1,1,"br");
137  pt->Draw();
138  TDatime dt;
139  TString txt2=core;
140  txt2+=", page=";
141  txt2+=page;
142  txt2+=", ";
143  txt2+=dt.AsString();
144  pt->AddText(txt2);
145  txt2="--";
146  pt->AddText(txt2);
147 
148  c->cd();
149  pad = new TPad("pad1", "apd1",0.0,0.0,1,.95);
150  pad->Draw();
151  return pad;
152 }