// plot time dependence for selected towers plT(int crate=3) { const int ng=6; TGraphErrors *hg[ng]; char *tower3[]={ "05TB02","05TB05","05TB06","05TB08","05TC09","05TB11"}; char *tower4[]={ "06TA02","06TD02","07TA02","05TE06","06TC08","06TC10"}; char *tower5[]={ "07TD03","07TD04","08TB06","08TC06","07TD11","08TE11"}; char fname[100],ct3[100],ct4[100],ct5[100], *ctx; char ** tower; switch (crate) { case 3: tower=tower3; ctx=ct3; break; case 4: tower=tower4; ctx=ct4; break; case 5: tower=tower5; ctx=ct5; break; default: assert(1==2); } InitGraph( hg, ng,tower); lg=new TLegend(0.5,0.2,0.65,.4); for(i=0;iAddEntry(hg[i],tower[i],"LP"); FILE *fd=fopen("timing.data","r"); assert(fd); int kf; for(kf=0;kf<8;kf++) { // loop over data files int ret=fscanf(fd,"%s%s%s%s\n",fname,ct3,ct4,ct5); printf("bbb %d\n",ret); if(ret!=4) break; int time=getDelay(ctx); readData(hg,ng,fname,time,tower); printf("%s %f \n",fname, time); } TString tt2="timingCrate"; TCanvas *c=new TCanvas(tt2+crate,"Timing",700,600); TGraphErrors *gr=hg[0]; gr->Draw("AP"); gr->GetXaxis()->Set(1,-10 ,110); gr->SetMaximum( -0.0); gr->SetMinimum(-0.47); gr->GetXaxis()->SetTitle("time (ns) =delay +106 *(latency-19)") ; gr->GetYaxis()->SetTitle("Slope of 'isolated MIP' spectrum"); TString tit="Crate="; tit+=crate; gr->SetTitle(tit); int i; for(i=0;iDraw("PL"); lg->Draw(); } //========================================== float getDelay(char *buf) { char *p= strchr(buf,'/'); assert(p); return atoi(buf) + 106* (atoi(p+1)-19); } //------------------------------------------------ //------------------------------------------------ int InitGraph( TGraphErrors **hg,int ng, char **tower){ 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); } } //------------------------------------------------ //------------------------------------------------ void readData( TGraphErrors **hg, int ng, char *fname, float time, char **tower){ 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 j; char *p=0; for(j=0;jGetN(); gr->SetPoint(n,x,slope); gr->SetPointError(n,0,eslope); } fclose(fd); }