86 Error(
"PDEFoamCell",
"Dimension has to be >0" );
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;
231 depth0 =
GetDau0()->GetTreeDepth(depth+1);
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;
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.
TObject * fElement
may set by the user to save some data in this cell
Double_t fVolume
Cartesian Volume of cell.
TRef fDaught1
Pointer to daughter 2.
void Print(Option_t *option) const
Printout of the cell geometry parameters for the debug purpose.
TRef fDaught0
Pointer to daughter 1.
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
Int_t fSerial
Serial number.
void GetHSize(PDEFoamVect &) const
Provides size of the cell Size parameters are calculated by analyzing information in all parents cell...
Double_t fIntegral
Integral over cell (estimate from exploration)
PDEFoamCell * GetDau0() const
Double_t fDrive
Driver integral, only for cell build-up.
PDEFoamCell()
Default constructor for streamer.
virtual ~PDEFoamCell()
Destructor.
TRef fParent
Pointer to parent cell.
void GetHcub(PDEFoamVect &, PDEFoamVect &) const
Provides size and position of the cell These parameter are calculated by analyzing information in all...
Int_t fStatus
Status (active, inactive)
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.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
TObject()
TObject constructor.