rdJim(char *fname="dsmdat_4079058.dat") { TH1F *h1[90]; initHisto(h1,90); FILE *fd=fopen(fname,"r"); assert(fd); const int mx=200; char buf[mx]; int nd=0; while(nd<4000) { char *ret=fgets(buf,sizeof(buf),fd); if(ret==0) break; char *p=strstr(buf,"***"); assert(p); int id, token; ret=sscanf(p+3,"%d%d",&id,&token); assert(ret==2); nd++; if(nd%50==1)printf("read eve %d ID=%d token=%d\n",nd,id,token); int i; int a,b,c,d,e; for(i=0;i<45;i++) { ret=fgets(buf,sizeof(buf),fd); assert(ret); ret=sscanf(buf,"%d%d%d%d%d",&a,&b,&c,&d,&e); assert(ret==5); int k=2*i; h1[k]->Fill(b); h1[k+1]->Fill(d); } } } initHisto( TH1F **hA, int mxH) { TH1F *h; int i; for(i=1;i<=9;i++) { //input to DSM0 int j; for(j=0;j<=9;j++) { char tt1[100], tt2[100]; sprintf(tt1,"dsm%3.3d-%d",i,j); sprintf(tt2,"DSM EE%3.3d ch=%d\n",i,j); h=new TH1F(tt1,tt2,100,-.5,99.5); // hL->Add(h); int k=(i-1)*10+j; assert(k>=0); assert(kDivide(5,2); printf("key=%d\n",key); int j; for(j=0;j<=9;j++) { char tt1[100]; int k=key; sprintf(tt1,"dsm%3.3d-%d",k,j); can->cd(j+1); h1=(TH1F*) gDirectory->FindObjectAny(tt1); h1->Draw(); gPad->SetLogy(); // h1->SetNdivisions(-104); h1->SetAxisRange(0.,70.); printf("%d %d %s int=%.1f\n",k,j,tt1, h1->GetIntegral()); } } pl1(int key=2) { can=new TCanvas(); can->Divide(1,1); printf("key=%d\n",key); int j; char tt1[100]; int k=key; sprintf(tt1,"dsm%3.3d-%d",2,6); can->cd(1); h1=(TH1F*) gDirectory->FindObjectAny(tt1); h1->Draw(); gPad->SetLogy(); // h1->SetNdivisions(-104); h1->SetAxisRange(0.,70.); printf("%d %d %s int=%.1f\n",k,j,tt1, h1->GetIntegral()); }