86 Error(
"PDEFoamCell",
"Dimension has to be >0" );
95 fSerial (cell.fSerial),
96 fStatus (cell.fStatus),
97 fParent (cell.fParent),
98 fDaught0 (cell.fDaught0),
99 fDaught1 (cell.fDaught1),
102 fVolume (cell.fVolume),
103 fIntegral(cell.fIntegral),
104 fDrive (cell.fDrive),
105 fElement (cell.fElement)
107 Error(
"PDEFoamCell",
"COPY CONSTRUCTOR NOT IMPLEMENTED" );
141 cellPosi = 0.0; cellSize=1.0;
145 if( pCell== 0)
break;
148 if(dCell == pCell->
GetDau0() ) {
149 cellSize[
kDiv] *=xDivi;
150 cellPosi[
kDiv] *=xDivi;
151 }
else if( dCell == pCell->
GetDau1() ) {
152 cellSize[
kDiv] *=(1.0-xDivi);
153 cellPosi[
kDiv] =cellPosi[
kDiv]*(1.0-xDivi)+xDivi;
155 Error(
"GetHcub ",
"Something wrong with linked tree \n");
174 if( pCell== 0)
break;
177 if(dCell == pCell->
GetDau0() ) {
178 cellSize[
kDiv]=cellSize[
kDiv]*xDivi;
179 }
else if(dCell == pCell->
GetDau1() ) {
180 cellSize[
kDiv]=cellSize[
kDiv]*(1.0-xDivi);
182 Error(
"GetHSize ",
"Something wrong with linked tree \n");
198 for(k=0; k<fDim; k++) volu *= cellSize[k];
215 while ((cell=cell->
GetPare()) != 0){
229 UInt_t depth0 = 0, depth1 = 0;
230 if (GetDau0() != NULL)
231 depth0 = GetDau0()->GetTreeDepth(depth+1);
232 if (GetDau1() != NULL)
233 depth1 = GetDau1()->GetTreeDepth(depth+1);
235 return (depth0 > depth1 ? depth0 : depth1);
245 std::cout <<
" Status= "<< fStatus <<
",";
246 std::cout <<
" Volume= "<< fVolume <<
",";
247 std::cout <<
" TrueInteg= " << fIntegral <<
",";
248 std::cout <<
" DriveInteg= "<< fDrive <<
",";
249 std::cout << std::endl;
250 std::cout <<
" Xdiv= "<<fXdiv<<
",";
251 std::cout <<
" Best= "<<fBest<<
",";
252 std::cout <<
" Parent= {"<< (GetPare() ? GetPare()->GetSerial() : -1) <<
"} ";
253 std::cout <<
" Daught0= {"<< (GetDau0() ? GetDau0()->GetSerial() : -1 )<<
"} ";
254 std::cout <<
" Daught1= {"<< (GetDau1() ? GetDau1()->GetSerial() : -1 )<<
"} ";
255 std::cout << std::endl;
260 GetHcub(cellPosi,cellSize);
261 std::cout <<
" Posi= "; cellPosi.
Print(
"1"); std::cout<<
","<< std::endl;
262 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.