89 Error(
"PDEFoamCell",
"Dimension has to be >0" );
98 fSerial (cell.fSerial),
99 fStatus (cell.fStatus),
100 fParent (cell.fParent),
101 fDaught0 (cell.fDaught0),
102 fDaught1 (cell.fDaught1),
105 fVolume (cell.fVolume),
106 fIntegral(cell.fIntegral),
107 fDrive (cell.fDrive),
108 fElement (cell.fElement)
110 Error(
"PDEFoamCell",
"COPY CONSTRUCTOR NOT IMPLEMENTED" );
144 cellPosi = 0.0; cellSize=1.0;
148 if( pCell== 0)
break;
151 if(dCell == pCell->
GetDau0() ) {
152 cellSize[
kDiv] *=xDivi;
153 cellPosi[
kDiv] *=xDivi;
154 }
else if( dCell == pCell->
GetDau1() ) {
155 cellSize[
kDiv] *=(1.0-xDivi);
156 cellPosi[
kDiv] =cellPosi[
kDiv]*(1.0-xDivi)+xDivi;
158 Error(
"GetHcub ",
"Something wrong with linked tree \n");
177 if( pCell== 0)
break;
180 if(dCell == pCell->
GetDau0() ) {
181 cellSize[
kDiv]=cellSize[
kDiv]*xDivi;
182 }
else if(dCell == pCell->
GetDau1() ) {
183 cellSize[
kDiv]=cellSize[
kDiv]*(1.0-xDivi);
185 Error(
"GetHSize ",
"Something wrong with linked tree \n");
201 for(k=0; k<fDim; k++) volu *= cellSize[k];
218 while ((cell=cell->
GetPare()) != 0){
232 UInt_t depth0 = 0, depth1 = 0;
233 if (GetDau0() != NULL)
234 depth0 = GetDau0()->GetTreeDepth(depth+1);
235 if (GetDau1() != NULL)
236 depth1 = GetDau1()->GetTreeDepth(depth+1);
238 return (depth0 > depth1 ? depth0 : depth1);
248 std::cout <<
" Status= "<< fStatus <<
",";
249 std::cout <<
" Volume= "<< fVolume <<
",";
250 std::cout <<
" TrueInteg= " << fIntegral <<
",";
251 std::cout <<
" DriveInteg= "<< fDrive <<
",";
252 std::cout << std::endl;;
253 std::cout <<
" Xdiv= "<<fXdiv<<
",";
254 std::cout <<
" Best= "<<fBest<<
",";
255 std::cout <<
" Parent= {"<< (GetPare() ? GetPare()->GetSerial() : -1) <<
"} ";
256 std::cout <<
" Daught0= {"<< (GetDau0() ? GetDau0()->GetSerial() : -1 )<<
"} ";
257 std::cout <<
" Daught1= {"<< (GetDau1() ? GetDau1()->GetSerial() : -1 )<<
"} ";
258 std::cout << std::endl;;
263 GetHcub(cellPosi,cellSize);
264 std::cout <<
" Posi= "; cellPosi.
Print(
"1"); std::cout<<
","<< std::endl;;
265 std::cout <<
" Size= "; cellSize.
Print(
"1"); std::cout<<
","<< std::endl;;
void Error(const char *location, const char *msgfmt,...)
Use this function in case an error occurred.
void Fill(Int_t, PDEFoamCell *, PDEFoamCell *, PDEFoamCell *)
Fills in certain data into newly allocated cell.
void Print(Option_t *option) const
Printout of the cell geometry parameters for the debug purpose.
void CalcVolume()
Calculates volume of the cell using size params which are calculated.
UInt_t GetTreeDepth(UInt_t depth=0)
Get depth of cell tree, starting at this cell.
Double_t fXdiv
Factor for division.
Int_t fBest
Best Edge for division.
PDEFoamCell * GetPare() const
PDEFoamCell * GetDau1() const
void GetHSize(PDEFoamVect &) const
Provides size of the cell Size parameters are calculated by analyzing information in all parents cell...
PDEFoamCell * GetDau0() const
PDEFoamCell()
Default constructor for streamer.
virtual ~PDEFoamCell()
Destructor.
void GetHcub(PDEFoamVect &, PDEFoamVect &) const
Provides size and position of the cell These parameter are calculated by analyzing information in all...
UInt_t GetDepth()
Get depth of cell in binary tree, where the root cell has depth 1.
void Print(Option_t *option) const
Printout of all vector components.
Mother of all ROOT objects.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.