//plot some numerical values plG4( TString fileD="jim1001.dat") { fileD="time/mar1-run1001.dat"; fileD="out99f7mc.dat"; const int ng=6; TGraphErrors *hg[ng]; InitGraph( hg, ng); lg=new TLegend(0.2,0.8,0.35,1.); lg->AddEntry(hg[0],"carte 3","LP"); lg->AddEntry(hg[2],"carte 4","LP"); lg->AddEntry(hg[4],"carte 5","LP"); readData(hg,fileD.Data()); FILE *fd=fopen( (fileD.ReplaceAll(".dat",".out")).Data(),"w"); float xcr[4]={0.8,3.5,13.5,20.2}; int eta=1; for(eta=1;eta<=12;eta++) { float eta1=20*(eta-1)+0.8; float eta2=eta1+19.4; TString name="con"; name+=eta; TF1 *f1 = new TF1(name,"pol0",eta1,eta2); } // TBox *bx=new TBox(3.5,-.24,13.5,30.); // bx->SetFillColor(17); // bx->Draw(); int i; // slope TCanvas *c=new TCanvas("slope240","Slope240",1200,600); TGraphErrors *gr=hg[1]; gr->Draw("AP"); gr->GetXaxis()->Set(1,-1,241); // gr->GetXaxis()->Set(1,-1,81); // gr->GetXaxis()->Set(1,-1,121); //gr->GetXaxis()->Set(1,119,241); gr->SetMaximum( -0.04); gr->SetMinimum(-0.35); gr->GetXaxis()->SetTitle("20*(eta-1) + 5*(sec-5)+sub") ; gr->GetYaxis()->SetTitle("Slope of 'isolated MIP'"); gr->SetTitle(fileD); for(i=0;iFit(name,"R+"); TF1 *f=gr->GetFunction(name); assert(f); f->SetLineColor(gr->GetLineColor()); float s=f->GetParameter(0); float es=f->GetParError(0); float chi2=f->GetChisquare(); int ndf=f->GetNDF(); fprintf(fd,"%d %d %.3g %.3g %g %d \n",crate ,eta ,s,es,chi2,ndf); // darw error bars float xoff=20*(eta-1); TLine *up=new TLine(xcr[i]+xoff,s+es,xcr[i+1]+xoff,s+es); TLine *dw=new TLine(xcr[i]+xoff,s-es,xcr[i+1]+xoff,s-es); up->Draw(); dw->Draw(); up->SetLineColor(gr->GetLineColor()); dw->SetLineColor(gr->GetLineColor()); up->SetLineStyle(3); dw->SetLineStyle(3); // break; } gr->Draw("P"); printf("\n\n ================= crate %d done \n",crate); //break; } gStyle->SetOptFit(0); // hg[1]->Draw("P "); lg->Draw(); fclose(fd); } //------------------------------------------------ //------------------------------------------------ void readData( TGraphErrors **hg, char *fname){ FILE *fd=fopen(fname,"rd"); assert(fd); char name[100],cdum[100]; float mip,emip, slope, eslope; int ret=0; int i; for(i=0;i<240;i++) { ret=fscanf(fd,"%s%f%f%f%f\n",name,&mip,&emip, &slope, &eslope); if(ret!=5) return; int sec=atoi(name); char sub=name[3]; int eta=atoi(name+4); assert(sec>=5 && sec<=8); assert(sub>='A' && sub<='E'); assert(eta>=1 && eta<=12); int crate=4; if(sec==5 && sub <= 'C') crate=3; if(sec==8 || sec==7 && sub >= 'C') crate=5; float x=20*(eta-1) + 5*(sec-5) + sub-'A' + 1; printf("i=%d %s x=%f %c %f %f %d\n",i,name,x,name[3], slope, eslope,crate); //if(emip>10) continue; //if(mip<0) continue; int ic=2*(crate-3); TGraphErrors *gr=hg[ic]; int n=gr->GetN(); gr->SetPoint(n,x,mip); gr->SetPointError(n,0,emip); gr=hg[ic+1]; int n=gr->GetN(); gr->SetPoint(n,x,slope); gr->SetPointError(n,0,eslope); } fclose(fd); } //------------------------------------------------ //------------------------------------------------ int InitGraph( TGraphErrors **hg,int ng){ int j; for(j=0;jSetName(tit1); int isym=28; if(id==1 )isym=22; if(id==2 )isym=25; if(id==3 )isym=24; if(id==4 )isym=27; if(id==5 )isym=3 ; gr->SetMarkerStyle(isym); int icol=kBlue; if(id==1) icol=kRed; if(id==2) icol=kGreen; // if(id==3) icol=kBlack; //if(id==4) icol=kMagenta; //if(id==5) icol=kYellow; gr->SetMarkerColor(icol); gr->SetLineColor(icol); printf("%d %d\n", isym, icol); } }