00001 ttime() {
00002 TString path="/star/institutions/iucf/balewski/2008-L2-tmp/day333/";
00003
00004 int runL[]={113,115,116,117,118,120,121,122,123,124,125};
00005 TString jay[]={"01","02","03","04","05","06","07","08","09","10","11","12"};
00006 TString kay[]={"a","b","c","d","e","f","g","h","i","j"};
00007 TString ell[]={"01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40"};
00008 TString craten[]={"01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","a","b","c","d","e","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e"};
00009 TString crate1[]={"0","0","0","0","0","0","0","0","0","1","1","1","1","1","1","1","1","1","1","2","2","2","2","2","2","2","2","2","2","3"};
00010 TString crate2[]={"1","2","3","4","5","6","7","8","9","0","1","2","3","4","5","6","7","8","9","0","1","2","3","4","5","6","7","8","9","0"};
00011
00012
00013 c=new TCanvas();
00014 c->Divide(6,5);
00015
00016
00017
00018 Float_t es[11],ese[11];
00019 Float_t ws[11],wse[11];
00020 Float_t td[11];
00021 Float_t csum[30][11];
00022 Float_t mean;
00023 Int_t iiii=0;
00024 Int_t jc;
00025 Float_t gg,sum;
00026
00027 e1= new TF1("e1","expo",60,200);
00028 w1= new TF1("w1","expo",60,200);
00029
00030 TString htitle,title,crate,icrate;
00031 int i,j,k,l,ic,icc,iccc;
00032 for(i=0;i<11;i++) {
00033 cout<<" i = "<<i<<endl;
00034 TString fname=path+"run8333";
00035 fname+=runL[i];
00036 fname+=".l2ped.hist.root";
00037 fd1=new TFile(fname); assert(fd1->IsOpen());
00038
00039 if(i==0) east0 = new TH1D("east0","east0",500,0,500);
00040 if(i==1) east1 = new TH1D("east1","east1",500,0,500);
00041 if(i==2) east2 = new TH1D("east2","east2",500,0,500);
00042 if(i==3) east3 = new TH1D("east3","east3",500,0,500);
00043 if(i==4) east4 = new TH1D("east4","east4",500,0,500);
00044 if(i==5) east5 = new TH1D("east5","east5",500,0,500);
00045 if(i==6) east6 = new TH1D("east6","east6",500,0,500);
00046 if(i==7) east7 = new TH1D("east7","east7",500,0,500);
00047 if(i==8) east8 = new TH1D("east8","east8",500,0,500);
00048 if(i==9) east9 = new TH1D("east9","east9",500,0,500);
00049 if(i==10) east10 = new TH1D("east10","east10",500,0,500);
00050
00051
00052 if(i==0) west0 = new TH1D("west0","west0",500,0,500);
00053 if(i==1) west1 = new TH1D("west1","west1",500,0,500);
00054 if(i==2) west2 = new TH1D("west2","west2",500,0,500);
00055 if(i==3) west3 = new TH1D("west3","west3",500,0,500);
00056 if(i==4) west4 = new TH1D("west4","west4",500,0,500);
00057 if(i==5) west5 = new TH1D("west5","west5",500,0,500);
00058 if(i==6) west6 = new TH1D("west6","west6",500,0,500);
00059 if(i==7) west7 = new TH1D("west7","west7",500,0,500);
00060 if(i==8) west8 = new TH1D("west8","west8",500,0,500);
00061 if(i==9) west9 = new TH1D("west9","west9",500,0,500);
00062 if(i==10) west10 = new TH1D("west10","west10",500,0,500);
00063
00064
00065 for(j=0;j<12;j++){
00066 for(k=0;k<10;k++){
00067 for(l=0;l<40;l++){
00068
00069 htitle="a"+jay[j]+"t"+kay[k]+ell[l];
00070 h1=(TH1F*)fd1->Get(htitle); assert(h1);
00071 title= h1->GetTitle();
00072 crate =title[19]+title[20];
00073 for(icc=0;icc<30;icc++){
00074
00075 if(crate1[icc] == title[19] && crate2[icc] == title[20]){
00076 iccc=icc;
00077 iiii+=1;
00078 h1->SetAxisRange(10.,1000.);
00079 mean = h1->GetMean();
00080 sum = h1->Integral();
00081 if(mean<15)continue;
00082 if(mean>60)continue;
00083 if(sum<100)continue;
00084
00085 if(icc>14&&j==8)continue;
00086
00087 h1->SetAxisRange(mean+50.,mean+100.);
00088 sum=2400.*(h1->Integral())/sum;
00089 if(sum>1.5)cout<<"crate = "<<icc<<"j k l"<<j<<" "<<k<<" "<<l<<endl;
00090 if(sum>1.5)continue;
00091
00092 h1->SetAxisRange(mean+60.,mean+300.);
00093 sum=h1->Integral();
00094 csum[iccc][i] += sum;
00095
00096
00097 if(iccc<15 && i==0){
00098 for(jc=0;jc<300;jc++){
00099 gg =h1->GetBinContent(mean+jc+1);
00100 east0->Fill(20+jc,gg);
00101 }
00102 }
00103 if(iccc<15 && i==1){
00104 for(jc=0;jc<300;jc++){
00105 gg =h1->GetBinContent(mean+jc+1);
00106 east1->Fill(20+jc,gg);
00107 }
00108 }
00109 if(iccc<15 && i==2){
00110 for(jc=0;jc<300;jc++){
00111 gg =h1->GetBinContent(mean+jc+1);
00112 east2->Fill(20+jc,gg);
00113 }
00114 }
00115 if(iccc<15 && i==3){
00116 for(jc=0;jc<300;jc++){
00117 gg =h1->GetBinContent(mean+jc+1);
00118 east3->Fill(20+jc,gg);
00119 }
00120 }
00121 if(iccc<15 && i==4){
00122 for(jc=0;jc<300;jc++){
00123 gg =h1->GetBinContent(mean+jc+1);
00124 east4->Fill(20+jc,gg);
00125 }
00126 }
00127
00128 if(iccc<15 && i==5){
00129 for(jc=0;jc<300;jc++){
00130 gg =h1->GetBinContent(mean+jc+1);
00131 east5->Fill(20+jc,gg);
00132 }
00133 }
00134 if(iccc<15 && i==6){
00135 for(jc=0;jc<300;jc++){
00136 gg =h1->GetBinContent(mean+jc+1);
00137 east6->Fill(20+jc,gg);
00138 }
00139 }
00140 if(iccc<15 && i==7){
00141 for(jc=0;jc<300;jc++){
00142 gg =h1->GetBinContent(mean+jc+1);
00143 east7->Fill(20+jc,gg);
00144 }
00145 }
00146 if(iccc<15 && i==8){
00147 for(jc=0;jc<300;jc++){
00148 gg =h1->GetBinContent(mean+jc+1);
00149 east8->Fill(20+jc,gg);
00150 }
00151 }
00152 if(iccc<15 && i==9){
00153 for(jc=0;jc<300;jc++){
00154 gg =h1->GetBinContent(mean+jc+1);
00155 east9->Fill(20+jc,gg);
00156 }
00157 }
00158
00159 if(iccc<15 && i==10){
00160 for(jc=0;jc<300;jc++){
00161 gg =h1->GetBinContent(mean+jc+1);
00162 east10->Fill(20+jc,gg);
00163 }
00164 }
00165
00166 if(iccc>14 && i==0){
00167 for(jc=0;jc<300;jc++){
00168 gg =h1->GetBinContent(mean+jc+1);
00169 west0->Fill(20+jc,gg);
00170 }
00171 }
00172 if(iccc>14 && i==1){
00173 for(jc=0;jc<300;jc++){
00174 gg =h1->GetBinContent(mean+jc+1);
00175 west1->Fill(20+jc,gg);
00176 }
00177 }
00178 if(iccc>14 && i==2){
00179 for(jc=0;jc<300;jc++){
00180 gg =h1->GetBinContent(mean+jc+1);
00181 west2->Fill(20+jc,gg);
00182 }
00183 }
00184 if(iccc>14 && i==3){
00185 for(jc=0;jc<300;jc++){
00186 gg =h1->GetBinContent(mean+jc+1);
00187 west3->Fill(20+jc,gg);
00188 }
00189 }
00190 if(iccc>14 && i==4){
00191 for(jc=0;jc<300;jc++){
00192 gg =h1->GetBinContent(mean+jc+1);
00193 west4->Fill(20+jc,gg);
00194 }
00195 }
00196 if(iccc>14 && i==5){
00197 for(jc=0;jc<300;jc++){
00198 gg =h1->GetBinContent(mean+jc+1);
00199 west5->Fill(20+jc,gg);
00200 }
00201 }
00202
00203 if(iccc>14 && i==6){
00204 for(jc=0;jc<300;jc++){
00205 gg =h1->GetBinContent(mean+jc+1);
00206 west6->Fill(20+jc,gg);
00207 }
00208 }
00209 if(iccc>14 && i==7){
00210 for(jc=0;jc<300;jc++){
00211 gg =h1->GetBinContent(mean+jc+1);
00212 west7->Fill(20+jc,gg);
00213 }
00214 }
00215 if(iccc>14 && i==8){
00216 for(jc=0;jc<300;jc++){
00217 gg =h1->GetBinContent(mean+jc+1);
00218 west8->Fill(20+jc,gg);
00219 }
00220 }
00221 if(iccc>14 && i==9){
00222 for(jc=0;jc<300;jc++){
00223 gg =h1->GetBinContent(mean+jc+1);
00224 west9->Fill(20+jc,gg);
00225 }
00226 }
00227
00228 if(iccc>14 && i==10){
00229 for(jc=0;jc<300;jc++){
00230 gg =h1->GetBinContent(mean+jc+1);
00231 west10->Fill(20+jc,gg);
00232 }
00233 }
00234
00235
00236
00237
00238 }
00239 }
00240 }
00241 }
00242 }
00243
00244
00245 if(i==0)east0->Fit("e1","RO");
00246 if(i==1)east1->Fit("e1","RO");
00247 if(i==2)east2->Fit("e1","RO");
00248 if(i==3)east3->Fit("e1","RO");
00249 if(i==4)east4->Fit("e1","RO");
00250 if(i==5)east5->Fit("e1","RO");
00251 if(i==6)east6->Fit("e1","RO");
00252 if(i==7)east7->Fit("e1","RO");
00253 if(i==8)east8->Fit("e1","RO");
00254 if(i==9)east9->Fit("e1","RO");
00255 if(i==10)east10->Fit("e1","RO");
00256
00257 if(i==0)west0->Fit("w1","RO");
00258 if(i==1)west1->Fit("w1","RO");
00259 if(i==2)west2->Fit("w1","RO");
00260 if(i==3)west3->Fit("w1","RO");
00261 if(i==4)west4->Fit("w1","RO");
00262 if(i==5)west5->Fit("w1","RO");
00263 if(i==6)west6->Fit("w1","RO");
00264 if(i==7)west7->Fit("w1","RO");
00265 if(i==8)west8->Fit("w1","RO");
00266 if(i==9)west9->Fit("w1","RO");
00267 if(i==10)west10->Fit("w1","RO");
00268
00269
00270 td[i]=12 + 5.*i;
00271
00272 ese[i]=0.;
00273
00274 es[i]=e1->GetParameter(1);
00275 if(es[i]!=0.){
00276 es[i]=-1./es[i];
00277 ese[i]=es[i]**2*(e1->GetParError(1));
00278 }
00279 ese[i]=0.;
00280
00281 ws[i]=w1->GetParameter(1);
00282 if(ws[i]!=0.){
00283 ws[i]=-1./ws[i];
00284 wse[i]=ws[i]**2*(w1->GetParError(1));
00285 }
00286
00287 cout<<es[i]<<" "<<ws[i]<<endl;
00288 }
00289
00290
00291
00292 c1->SetLogy();
00293
00294 Float_t wp[7],ep[7],xp[7];
00295
00296 gStyle->SetOptStat(0);
00297
00298 c2 = new TCanvas("c2","Gain vs Delay", 200, 10, 700, 500);
00299
00300
00301
00302
00303
00304 graph1 = new TGraphErrors(11,td,es,0,ese);
00305
00306 graph1->SetTitle("East Crates: Gain vs TCD Phase");
00307 graph1->GetXaxis()->SetTitle("TCD Phase (ns)");
00308 graph1->GetYaxis()->SetTitle("Average Gain");
00309
00310 graph1->SetMarkerStyle(21);
00311 graph1->SetMarkerSize(1.0);
00312 graph1->SetMarkerColor(1);
00313 graph1->Draw("AP");
00314
00315 for(j=0;j<7;j++){
00316 xp[j]=td[j+2];
00317 wp[j]=es[j+2];
00318 ep[j]=ese[j+2];
00319 }
00320
00321 graph1a = new TGraphErrors(6,xp,wp,0,ep);
00322 graph1a->SetMarkerStyle(21);
00323 graph1a->SetMarkerSize(1.0);
00324 graph1a->SetMarkerColor(2);
00325 graph1a->Draw("SP");
00326
00327 graph1a->Fit("gaus");
00328
00329 gStyle->SetOptStat(0);
00330
00331
00332 c3 = new TCanvas("c3","Gain vs Delay", 200, 10, 700, 500);
00333
00334
00335 graph2 = new TGraphErrors(11,td,ws,0,wse);
00336
00337 graph2->SetTitle("West Crates: Gain vs TCD Phase");
00338 graph2->GetXaxis()->SetTitle("TCD Phase (ns)");
00339 graph2->GetYaxis()->SetTitle("Average Gain");
00340
00341 graph2->SetMarkerStyle(21);
00342 graph2->SetMarkerSize(1.0);
00343 graph2->SetMarkerColor(1);
00344 graph2->Draw("AP");
00345
00346 for(j=0;j<7;j++){
00347 xp[j]=td[j+2];
00348 wp[j]=ws[j+2];
00349 ep[j]=wse[j+2];
00350 }
00351
00352 graph2a = new TGraphErrors(6,xp,wp,0,ep);
00353 graph2a->SetMarkerStyle(21);
00354 graph2a->SetMarkerSize(1.0);
00355 graph2a->SetMarkerColor(2);
00356 graph2a->Draw("SP");
00357
00358 graph2a->Fit("gaus");
00359
00360 ofstream out;
00361 out.open("timing.tex");
00362
00363 Int_t is,iz,icc;
00364 for(is=0;is<11;is++){
00365 for(icc=0;icc<30;icc++){
00366 iz=icc+1;
00367 out<<is<<" "<<iz<<" "<<csum[icc][is]<<endl;
00368 }
00369 }
00370
00371 ofstream out1;
00372 out1.open("timing0.tex");
00373
00374 Int_t i;
00375 for(i=0;i<11;i++){
00376 out1<<i<<" "<<es[i]<<" "<<ese[i]<<" "<<ws[i]<<" "<<wse[i]<<endl;
00377 }
00378
00379 cout<<"finished writing output"<<endl;
00380
00381 }
00382
00383
00384