Hello, I am trying to set a histogram title with the simple macro but the position of one part of this title in not consistent with the rest. You have to run it, to see the problem. I am using root 2.24/02. I appreciate any hints. Regards, Michal Lijowski #include <string.h> void Test_Hist() { // gROOT -> Reset(); Char_t MacroName[40] = "Test_Hist"; gBenchmark -> Start(MacroName); const Int_t XSize = 200, YSize = 200; // create a new Root file Char_t outfile[200]; sprintf(outfile, "%s%s.root", MacroName); printf(" Output file %s\n", outfile); TFile *top = new TFile(outfile, "recreate"); Char_t htitle[200], ctitle[40], cname[40], outps[120]; const Int_t NTests = 4; TObjString *TESTLabels[NTests] = { " BufId > 50", // 0 " |ZRAT_E1_Norm| < 5", // 1 " |ZRAT_Last_Norm| < 5", " #Theta #leq 25"}; // 3 Int_t TestFlags[NTests] = { 1, // BufId > 50 // 0 1, // |ZRAT_E1_Norm| < 5.0 // 1 1, // |ZRAT_Last_Norm| < 5.0 // 2 1}; // Theta <= 25 // 3 Char_t TTitle[120], ttitle[35]; TTitle[0] = '\0'; for (Int_t it = 0; it < NTests; it++) { if (TestFlags[it]) { ttitle[0] = '\0'; sprintf(ttitle, "%s", TESTLabels[it]); strcat(TTitle, ttitle); cout << " it " << it << " TTitle " << TTitle << endl; } } cout << " TTitle " << TTitle << " Length " << strlen(TTitle) << endl; Float_t AA = 100.0; Float_t BB1 = 100.0; Float_t BB2 = 100.0; Float_t CC1 = 30.0; Float_t CC2 = 30.0; htitle[0] = '\0'; sprintf(htitle, "^6!Li Kinetic Energy IZ == 3 Range 5 120 - 130 EP_Norm > 160 BufId > 50 |ZRAT_E1_Norm| < 5 |ZRAT_Last_Norm| < 5 `Q# < 25"); htitle[0] = '\0'; sprintf(htitle, "{}^{6}Li SOFT Efficiency IZ == 3 Range 5 120 - 130 EP_Norm > 160"); strcat(htitle, TTitle); cout << " htitle " << htitle << " Length " << strlen(htitle) << endl; Float_t xxmin = 0, xxmax = XSize, yymin = 0, yymax = YSize; TH1F *HH = new TH1F("HH", htitle, XSize, xxmin, xxmax); // fill the histogram Float_t wwmin = 5.0, wwmax = 10.0; for (Int_t yk = 0; yk < YSize; yk++) { Float_t YY = (Float_t) yk; for (Int_t xk = 0; xk < XSize; xk++) { Float_t XX = (Float_t) xk; Float_t argx = (XX - BB1) / CC1; Float_t argy = (YY - BB2) / CC2; Float_t ZZ1 = TMath::Exp(-0.5 * argx * argx); Float_t ZZ2 = TMath::Exp(-0.5 * argy * argy); Float_t ww = AA * ZZ1 * ZZ2; HH -> Fill(ww); } } Int_t ii = 0; sprintf(ctitle, "Canvas %d", ii); TCanvas *cc1 = new TCanvas("cc1", ctitle, 800, 600); cc1 -> SetTicks(); HH -> DrawCopy(); cc1 -> Update(); cc1 -> SaveAs("cc1.ps"); top -> Write(); top -> Close(); gBenchmark -> Show(MacroName); }
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:24 MET