bctest() { // fgLegoPlotHGPtr = new AliHLTPHOSOnlineDisplayTH2D(fOnlineDisplayPtr, "Cosmics, High gain", "PHOS HLT: Cosmics", // N_XCOLUMNS_MOD*N_MODULES , 0, N_XCOLUMNS_MOD*N_MODULES, // N_ZROWS_MOD, 0, N_ZROWS_MOD); TH1I *plot = new TH1I("stats", "number of errors (y) vs number of transactions (x) ",20000, 0, 20001); cout << "HELLO WORLD" << endl; FILE *fp = fopen("testresults_altro_gtl.txt", "r"); int index = 0; int set = 0; int read = 0; int good = 0; int bad = 0; if(fp !=0) { cout << "file found" << endl; for(int i=0; i< 20000; i++) { fscanf(fp,"Loop: %d\tValue set is: 0x%xValues read is: 0x%x, mGood = %d, nBad = %d\n", &index, &set, &read, &good ,&bad); printf("\n index = %d, val = %d", index, bad); plot->SetBinContent(index, bad); } plot->Draw(); } else { cout << "Could not open file" << endl; } }
int main() { float const conS =.3/2.35; ofstream fout("cal/backN.cal"); ofstream fwhm("cal/fwhmback.dat"); TFile f("sort.root"); TCanvas* canvas[14]; int Ntele = 14; int Nstrip = 32; ostringstream outstring; TH2I frame("frame","",10,4.5,9.5,10,0,130); frame.SetStats(kFALSE); double xx[14*32]; double yy[14*32]; TF1 *func = new TF1("fit",ThPeaks,3,9,4); double para[5]; ifstream file("cal/back.cal"); float intercept, slope; int i1,i2; string name; TH1F con("con","",500,0,10); for (int itele=0;itele<Ntele;itele++) { outstring.str(""); outstring << "B"<<itele; name = outstring.str(); canvas[itele] = new TCanvas(name.c_str()); canvas[itele]->Divide(6,6); for (int istrip =0;istrip<Nstrip;istrip++) { canvas[itele]->cd(istrip+1); file >> i1 >> i2 >> slope >> intercept; outstring.str(""); outstring << "back/cal/EBC"<<itele<<"_"<<istrip; string name = outstring.str(); cout << name << endl; TH1I * hist = (TH1I*) f.Get(name.c_str()); frame.Draw(); hist->SetStats(kFALSE); hist->GetXaxis()->SetRangeUser(4.5,9.5); con.GetXaxis()->SetRangeUser(4.5,9.5); for (int i=1;i<=500;i++) for (int j=1;j<500;j++) { float deltax = hist->GetBinCenter(i)-con.GetBinCenter(j); if (fabs(deltax) > 10.*conS)continue; float fact = gauss(deltax,0.,conS); float y = fact*hist->GetBinContent(i)*hist->GetBinWidth(i); con.SetBinContent(j,y+con.GetBinContent(j)); } for (int i=1;i<=500;i++) { hist->SetBinContent(i,con.GetBinContent(i)); con.SetBinContent(i,0.); } hist->Draw("same"); func->SetParameter(0,0); func->SetParameter(1,1.); func->FixParameter(2,conS); //func->SetParameter(2,0.1); func->SetParameter(3,8.); func->SetLineColor(2); //func->Draw("same"); hist->Fit(func); func->GetParameters(para); cout << "chisq=" << func->GetChisquare() << endl; if (fabs(para[1]-1.) < .2) { slope *= para[1]; intercept = intercept*para[1] + para[0]; } fout << itele << " " << istrip << " " << slope << " " << intercept << endl; fwhm << itele << " " << istrip << " " << para[2]*2.35 << endl; int ii = itele*32+istrip; xx[ii] = (float)ii; yy[ii] = para[2]*2.35; cout << para[0] << " " << para[1] << " " << para[2] << endl; } } TFile g("ThBack.root","RECREATE"); for (int itele=0;itele<Ntele;itele++) canvas[itele]->Write(); TCanvas fwhmCan("fwhm"); TH2I frame2("frame2","",10,0,448,10,0,0.12); frame2.SetStats(kFALSE); frame2.GetYaxis()->SetTitle("FWHM [MeV]"); frame2.GetXaxis()->SetTitle("back strip"); frame2.Draw(); TGraph graph(32*14,xx,yy); graph.Draw("*"); graph.Write(); fwhmCan.Write(); g.Write(); }