]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - STAT/TKDInterpolator.cxx
had to introduce fDebug too (AliResonance does not inherit from TaskSE... %-|
[u/mrichter/AliRoot.git] / STAT / TKDInterpolator.cxx
... / ...
CommitLineData
1#include "TKDInterpolator.h"
2#include "TKDNodeInfo.h"
3
4#include "TClonesArray.h"
5
6ClassImp(TKDInterpolator)
7
8
9
10//_________________________________________________________________
11TKDInterpolator::TKDInterpolator() :
12 TKDInterpolatorBase()
13{
14// Default constructor. To be used with care since in this case building
15// of data structure is completly left to the user responsability.
16}
17
18//_________________________________________________________________
19TKDInterpolator::TKDInterpolator(Int_t ndim, Int_t npoints) :
20 TKDInterpolatorBase(ndim)
21{
22// Wrapper constructor for the TKDTree.
23
24 if(npoints) TKDInterpolatorBase::Build(npoints);
25}
26
27
28//_________________________________________________________________
29TKDInterpolator::~TKDInterpolator()
30{
31}
32
33//_________________________________________________________________
34void TKDInterpolator::AddNode(const TKDNodeInfo &node)
35{
36 if(!fTNodes){
37 printf("W - TKDInterpolator::SetNode() : Node array not defined.\n");
38 return;
39 }
40
41 new((*fTNodes)[fNTNodes++]) TKDNodeInfo(node);
42}
43
44//_________________________________________________________________
45void TKDInterpolator::Build(Int_t npoints, Int_t ndim)
46{
47 fNSize = ndim;
48 TKDInterpolatorBase::Build(npoints);
49}
50
51//_________________________________________________________________
52Int_t TKDInterpolator::GetNodeIndex(const Float_t *p)
53{
54/* printf("TKDInterpolator::GetNodeIndex() ...\n");
55 printf("Looking for p[");
56 for(int i=0; i<fNSize; i++) printf("%f ", p[i]);
57 printf("] ...\n");*/
58 TKDNodeInfo *node;
59 for(int inode=0; inode<fNTNodes; inode++){
60 node = (TKDNodeInfo*)(*fTNodes)[inode];
61 //node->Print();
62 if(node->Has(p)) return inode;
63 }
64 return -1;
65}
66
67
68//_________________________________________________________________
69Bool_t TKDInterpolator::SetNode(Int_t inode, const TKDNodeInfo &ref)
70{
71 if(!fTNodes){
72 printf("W - TKDInterpolator::SetNode() : Node array not defined.\n");
73 return kFALSE;
74 }
75 if(inode >= fNTNodes){
76 printf("W - TKDInterpolator::SetNode() : Node array defined up to %d.\n", fNTNodes);
77 return kFALSE;
78 }
79 TKDNodeInfo *node = (TKDNodeInfo*)(*fTNodes)[inode];
80 (*node) = ref;
81 return kTRUE;
82}
83