# define module specific variables
FILE_LIST = $(shell ls -1 ./*.$(SrcSuf))
FILES = $(basename $(FILE_LIST))
-DICTIONARIES = kdTreeDict
+DICTIONARIES = kDStatDict
OBJECTS = $(addsuffix .$(ObjSuf),$(FILES))
OBJECTS += ./$(DICTIONARIES).$(ObjSuf)
# define libs on which the main lib depends ! (this are defined in config/Makefile.flags)
LIBSDEPEND = $(ROOTLIBS) $(MCLIBS)
# define libs build by module
-LIBS = libKDTree.so
+LIBS = libKDStat.so
# rule for building executables
$(EXECS): $(OBJECTS)
TGraph *ref = new TGraph(GetNTerminalNodes());
ref->SetMarkerStyle(2);
ref->SetMarkerColor(2);
- Float_t val, error;
for(int inode = 0; inode < GetNTerminalNodes(); inode++) ref->SetPoint(inode, fRefPoints[ax1][inode], fRefPoints[ax2][inode]);
ref->Draw("p");
return;
Double_t Eval(Float_t *point);
void DrawNodes(Int_t depth = -1, Int_t ax1 = 0, Int_t ax2 = 1);
void DrawNode(Int_t node, Int_t ax1 = 0, Int_t ax2 = 1);
+
private:
+ TKDInterpolator(const TKDInterpolator &);
+ TKDInterpolator& operator=(const TKDInterpolator &);
void Build();
protected:
for(int idim=0; idim<fNDim; idim++) coord[idim] = fRefPoints[idim][node];
val = fRefValues[node];
- //error = ...;
+ error = fRefValues[node]; // to be implemented
return kTRUE;
}
,fNDim(0)
,fNpoints(0)
,fBucketSize(0)
- ,fIndPoints(0x0)
,fData(0x0)
,fRange(0x0)
,fBoundaries(0x0)
,fNodes(0x0)
,fkNN(0x0)
+ ,fIndPoints(0x0)
+ ,fRowT0(0)
+ ,fCrossNode(0)
+ ,fOffset(0)
{
// Default constructor. Nothing is built
}
,fNDim(ndim)
,fNpoints(npoints)
,fBucketSize(bsize)
- ,fIndPoints(0x0)
,fData(data) //Columnwise!!!!!
,fRange(0x0)
,fBoundaries(0x0)
,fNodes(0x0)
,fkNN(0x0)
+ ,fIndPoints(0x0)
+ ,fRowT0(0)
+ ,fCrossNode(0)
+ ,fOffset(0)
{
// Allocate data by hand. See TKDTree(TTree*, const Char_t*) for an automatic method.
Build();
}
-
//_________________________________________________________________
template <typename Index, typename Value>
TKDTree<Index, Value>::~TKDTree()
if (nleft<0 || nright<0) Warning("Build()", "Problem Negative number");
}
}
- OrderIndexes();
//printf("NBuckets\t%d\n", nbucketsall);
//fData = 0;
stackNode[currentIndex]=(inode*2)+2;
}
}
+
+ return -1;
}
+
//_________________________________________________________________
template <typename Index, typename Value>
void TKDTree<Index, Value>::FindPoint(Value * point, Index &index, Int_t &iter){
}
}
-//_________________________________________________________________
-template <typename Index, typename Value>
-void TKDTree<Index, Value>::OrderIndexes()
-{
-// Order array of point's indexes in increasing order of terminal nodes
-// indexes such that first bucket points correspond to first terminal
-// node (index fNnodes) and so on.
-
- printf("fRowT0 %d fCrossNode %d fOffset %d\n", fRowT0, fCrossNode, fOffset);
-
-}
-
template class TKDTree<Int_t, Float_t>;
template class TKDTree<Int_t, Double_t>;
protected:
void Build(); // build tree
- void Clear(){}; // clear memory allocation
private:
+ TKDTree(const TKDTree &); // not implemented
+ TKDTree<Index, Value>& operator=(const TKDTree<Index, Value>&); // not implemented
void CookBoundariesTerminal(Int_t parent_node, Bool_t left);
- void OrderIndexes();
+
public:
struct TKDNode{
Char_t fAxis;
--- /dev/null
+#ifdef __CINT__
+
+/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * See cxx source for full Copyright notice */
+
+#pragma link off all globals;
+#pragma link off all classes;
+#pragma link off all functions;
+
+#pragma link C++ class TKDTree<Int_t, Float_t>+;
+#pragma link C++ class TKDTree <Int_t, Double_t>+;
+#pragma link C++ typedef TKDTreeIF;
+#pragma link C++ typedef TKDTreeID;
+
+#pragma link C++ class TKDInterpolator+;
+#pragma link C++ class TKDSpline+;
+
+
+#endif
+