49 TMVA::PDEFoamCell::PDEFoamCell()
85 Error(
"PDEFoamCell",
"Dimension has to be >0" );
94 fSerial (cell.fSerial),
95 fStatus (cell.fStatus),
96 fParent (cell.fParent),
97 fDaught0 (cell.fDaught0),
98 fDaught1 (cell.fDaught1),
101 fVolume (cell.fVolume),
102 fIntegral(cell.fIntegral),
103 fDrive (cell.fDrive),
104 fElement (cell.fElement)
106 Error(
"PDEFoamCell",
"COPY CONSTRUCTOR NOT IMPLEMENTED" );
140 cellPosi = 0.0; cellSize=1.0;
144 if( pCell== 0)
break;
147 if(dCell == pCell->
GetDau0() ) {
148 cellSize[
kDiv] *=xDivi;
149 cellPosi[
kDiv] *=xDivi;
150 }
else if( dCell == pCell->
GetDau1() ) {
151 cellSize[
kDiv] *=(1.0-xDivi);
152 cellPosi[
kDiv] =cellPosi[
kDiv]*(1.0-xDivi)+xDivi;
154 Error(
"GetHcub ",
"Something wrong with linked tree \n");
173 if( pCell== 0)
break;
176 if(dCell == pCell->
GetDau0() ) {
177 cellSize[
kDiv]=cellSize[
kDiv]*xDivi;
178 }
else if(dCell == pCell->
GetDau1() ) {
179 cellSize[
kDiv]=cellSize[
kDiv]*(1.0-xDivi);
181 Error(
"GetHSize ",
"Something wrong with linked tree \n");
197 for(k=0; k<fDim; k++) volu *= cellSize[k];
214 while ((cell=cell->
GetPare()) != 0){
228 UInt_t depth0 = 0, depth1 = 0;
229 if (GetDau0() !=
NULL)
230 depth0 = GetDau0()->GetTreeDepth(depth+1);
231 if (GetDau1() !=
NULL)
232 depth1 = GetDau1()->GetTreeDepth(depth+1);
234 return (depth0 > depth1 ? depth0 : depth1);
242 if (!option)
Error(
"Print",
"No option set\n");
244 std::cout <<
" Status= "<< fStatus <<
",";
245 std::cout <<
" Volume= "<< fVolume <<
",";
246 std::cout <<
" TrueInteg= " << fIntegral <<
",";
247 std::cout <<
" DriveInteg= "<< fDrive <<
",";
248 std::cout << std::endl;;
249 std::cout <<
" Xdiv= "<<fXdiv<<
",";
250 std::cout <<
" Best= "<<fBest<<
",";
251 std::cout <<
" Parent= {"<< (GetPare() ? GetPare()->GetSerial() : -1) <<
"} ";
252 std::cout <<
" Daught0= {"<< (GetDau0() ? GetDau0()->GetSerial() : -1 )<<
"} ";
253 std::cout <<
" Daught1= {"<< (GetDau1() ? GetDau1()->GetSerial() : -1 )<<
"} ";
254 std::cout << std::endl;;
259 GetHcub(cellPosi,cellSize);
260 std::cout <<
" Posi= "; cellPosi.
Print(
"1"); std::cout<<
","<< std::endl;;
261 std::cout <<
" Size= "; cellSize.
Print(
"1"); std::cout<<
","<< std::endl;;
void Fill(Int_t, PDEFoamCell *, PDEFoamCell *, PDEFoamCell *)
Fills in certain data into newly allocated cell.
virtual ~PDEFoamCell()
Destructor.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
void Error(const char *location, const char *msgfmt,...)
void Print(Option_t *option) const
Printout of the cell geometry parameters for the debug purpose.
void Print(Option_t *option) const
Printout of all vector components.
PDEFoamCell * GetPare() const
UInt_t GetTreeDepth(UInt_t depth=0)
Get depth of cell tree, starting at this cell.
void CalcVolume()
Calculates volume of the cell using size params which are calculated.
UInt_t GetDepth()
Get depth of cell in binary tree, where the root cell has depth 1.
void GetHSize(PDEFoamVect &) const
Provides size of the cell Size parameters are calculated by analyzing information in all parents cell...
ClassImp(TMVA::PDEFoamCell) TMVA
Default constructor for streamer.
Mother of all ROOT objects.
PDEFoamCell * GetDau1() const
void GetHcub(PDEFoamVect &, PDEFoamVect &) const
Provides size and position of the cell These parameter are calculated by analyzing information in all...
PDEFoamCell * GetDau0() const