42 fVal[0] = 0.; fVal[1] = 0.;
48 TObject((TObject&) ref)
90 if(
this == &ref)
return *
this;
131 Int_t ndim = Int_t(.5*(TMath::Sqrt(1.+8.*
fNpar)-1.))-1;
148 Int_t dim = Int_t(
fNDim/3.);
154 Float_t *bounds = &
fData[dim];
156 for(
int idim=0; idim<dim; idim++)
printf(
"(%f %f) ", bounds[2*idim], bounds[2*idim+1]);
159 if(strcmp(opt,
"a")!=0)
return;
162 printf(
"Fit parameters : \n");
167 for(
int ip(0), n(0); ip<
fNpar; ip++){
168 for(
int jp(ip); jp<
fNpar; jp++)
printf(
"c(%d %d)[%f] ", ip, jp,
fCov[n++]);
179 for(
int ip=0; ip<
fNpar; ip++)
fPar[ip] = (*par)[ip];
183 for(
int ip(0), np(0); ip<
fNpar; ip++)
184 for(
int jp=ip; jp<
fNpar; jp++)
fCov[np++] = (*cov)(ip,jp);
192 Int_t ndim = Int_t(
fNDim/3.);
193 if(ndim>10)
return kFALSE;
196 Double_t fdfdp[66]; memset(fdfdp, 0, ndim*
sizeof(Double_t));
199 for(
int idim=0; idim<ndim; idim++){
200 fdfdp[ipar++] = point[idim];
201 for(
int jdim=idim; jdim<ndim; jdim++) fdfdp[ipar++] = point[idim]*point[jdim];
205 result =0.; error = 0.;
206 for(
int i=0; i<
fNpar; i++) result += fdfdp[i]*
fPar[i];
207 if(!
fNcov)
return kTRUE;
209 for(
int i(0), n(0); i<
fNpar; i++){
210 error += fdfdp[i]*fdfdp[i]*
fCov[n++];
211 for(
int j(i+1); j<
fNpar; j++) error += 2.*fdfdp[i]*fdfdp[j]*fCov[n++];
213 error = TMath::Sqrt(error);
229 SetFillColor(50+Int_t(gRandom->Uniform()*50.));
231 fCOG.SetMarkerStyle(3);
232 fCOG.SetMarkerSize(.7);
233 fCOG.SetMarkerColor(2);
248 const Float_t kBorder = 0.;
249 Float_t *bounds = &(node->
Data()[size]);
250 fX1=bounds[2*ax1]+kBorder;
251 fX2=bounds[2*ax1+1]-kBorder;
252 fY1=bounds[2*ax2]+kBorder;
253 fY2=bounds[2*ax2+1]-kBorder;
255 Float_t x(node->
Data()[ax1]), y(node->
Data()[ax2]);
void SetNode(TKDNodeInfo *, UChar_t s, UChar_t ax1=0, UChar_t ax2=1)
printf("Chi2/npoints = %f\n", TMath::Sqrt(chi2/npoints))
Float_t fVal[2]
[fNDim] node's data
void Print(const Option_t *="") const
TKDNodeInfo(Int_t ndim=0)
Float_t * fData
3 times data dimension
void Print(const Option_t *option="") const
TKDNodeInfo & operator=(const TKDNodeInfo &ref)
void SetNode(Int_t ndim, Float_t *data, Float_t *pdf)
void Store(TVectorD const *par, TMatrixD const *cov=NULL)
Int_t fNpar
measured value for node
Bool_t CookPDF(const Double_t *point, Double_t &result, Double_t &error) const
void Draw(Option_t *option="")