Dear ROOTers,
I have run in several problems:
1) Colors on B/W prints. If I print a color PS file of a canvas on a
B/W printer, then even the
primary colors come out dithered (as opposed to grey-scale). This
makes B/W prints
of pictures of rather poor quality. This naturally leads to
necessity to keep two versions of
pictures around (one colored for slide presentation and one for the
paper). Note that PAW color
prints were grey scaled at least for primary colors (r,g,b,y,m,c).
Could that be fixed?
2) I have some problems with OptFit and OptStat, let me try to describe
the problem:
- thise is what I have in rootlogon.C:
gROOT->SetStyle("Plain");
gStyle->SetFrameLineWidth(3);
gStyle->SetTitleOffset(1.3,"X");
gStyle->SetPadBottomMargin(0.15);
gStyle->SetPadTickX(1);
gStyle->SetPadTickY(1);
gStyle->SetHistLineWidth(2);
gStyle->SetFuncWidth(2);
gStyle->SetStatFormat("6.4f");
gStyle->SetFitFormat("6.4f");
gStyle->SetTitleX(gStyle->GetPadLeftMargin());
gStyle->SetTitleY(1.-0.25*gStyle->GetPadTopMargin());
gSystem->Load("libDCache.so"); // thi is needed to access files
in dCache
gSystem->Load("libPhysics.so"); // this is needed to use
TVector
gROOT->LoadMacro("fit.C"); // this is my fit functions
collection
gROOT->LoadMacro("add.C"); // this one addes/subtracts
histograms right
gROOT->GetPluginManager()->AddHandler("TFile","^dcache:","TDCacheFile","DCache","TDCacheFile(const
char*)");
gROOT->GetPluginManager()->AddHandler("TFile","^dcap:","TDCacheFile","DCache","TDCacheFile(const
char*)");
- If I plot a histogram, there is a "stat box" superimposed
If I fit this histogram, the FitBox does not show, so I do
gStyle->SetOptFit(111), As the result of this command I see
a box filled with tiny text. Well, I think it is due to OptStat,
so I do gStyle->SetOptStat(0); pictures changes a little bit, but
still looks strange, then if I point cursor to the "TPaveStats"
and explicitly delete it, only then the Fit Status pave looks right
to me.
- now, if _before _ plotting/itting any histograms I say
gStyle->SetOptStat(0);
gStyle->SetOptFit(111);
and then proceed fitting the histogram, then the Fit Status box
looks _right_ .
- Also, if I plot histogram first and then say
'gStyle->SetOptStat(0)', the PaveStat does not dissappear. Instead it
goes overlayed
by the histogram frame.
- In addition , the function plotted after fit behaves kind of
flaky. It may jump all around after
identical sequence of calls, like these for example:
h->Fit("gp","QMR");
h->Fit("gp","QMR");
fitFun->SetParLimits(0,0,1000000);
fitFun->SetParLimits(3,2.0,3.);
h->Fit("gp","QMR");
h->Fit("gp","QMR");
fitFun->SetParLimits(2,0.0001,0.030);
h->Fit("gp","EMQR");
I may run these commands, get a fit done, obtain reasonable
paramaters but the function plotted
has very little to do with the distribution fitted. I would repeat
last command a couple of times and
the function would finally be plotted correctly (note, that fit
parameters would not change). This one
drives me nuts :( Sometimes just redrawing the histogram causes the
fit function to jump.
(I plot several histograms using the same function, could that be
the cause of the problem). This is my fit
function:
#include "TH1.h"
#include "TF1.h"
void fitter1(TH1* h,double hLow=-1, double hHigh=-1, double
mass=2.6,double sigma=0.020) {
double hig = ( hHigh > 0 ) ? hHigh : h->GetXaxis()->GetXmax();
double low = ( hLow > 0 ) ? hLow : h->GetXaxis()->GetXmin();
double bw = h->GetBinWidth(0);
TF1* fitFun = new TF1("gp",gp1,low,hig,6);
fitFun->SetLineWidth(2);
fitFun->SetLineColor(4);
fitFun->SetParameter(0,0);
fitFun->SetParameter(1,bw);
fitFun->SetParameter(2,sigma);
fitFun->SetParameter(3,mass);
fitFun->SetParameter(4,0);
fitFun->SetParameter(5,0);
fitFun->SetRange(low,hig);
fitFun->SetParLimits(0,1,1);
fitFun->SetParLimits(1,1,1);
fitFun->SetParLimits(2,1,1);
fitFun->SetParLimits(3,1,1);
fitFun->SetParName(0,"Entries");
fitFun->SetParName(1,"binwidth");
fitFun->SetParName(2,"sigma ");
fitFun->SetParName(3,"Mass ");
h->Fit("gp","QMR");
h->Fit("gp","QMR");
fitFun->SetParLimits(0,0,1000000);
fitFun->SetParLimits(3,2.0,3.);
h->Fit("gp","QMR");
h->Fit("gp","QMR");
fitFun->SetParLimits(2,0.0001,0.030);
h->Fit("gp","EMQR");
h->Fit("gp","EMQR");
h->Fit("gp","EMQR");
}
I use it like this:
.L fitter1.C
fitter1(h);
is that the 'new' that never gets deleted that is causing such problems?
All of the above is rather annoying. This is the ROOT version I am
using:
v3_05_04dKCC_4_0
Does anybody have similar experience, is there something I am doing
wrong, and if not can that be fixed?
thanks,
Dmitri Litvintsev
/----------------------------------------------------------\
| Tel: (630) 840 5005 |
| FAX: (630) 840 2968 |
| office: 149-L CDF Trailers |
| E-mail: litvinse@fnal.gov |
\----------------------------------------------------------/
This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:14 MET