45 Error(
"TFoamCell",
"Dimension has to be >0 \n ");
75 cellPosi = 0.0; cellSize=1.0;
77 while(dCell !=
nullptr) {
79 if( pCell==
nullptr)
break;
82 if(dCell == pCell->
GetDau0() ) {
83 cellSize[
kDiv] *=xDivi;
84 cellPosi[
kDiv] *=xDivi;
85 }
else if( dCell == pCell->
GetDau1() ) {
86 cellSize[
kDiv] *=(1.0-xDivi);
87 cellPosi[
kDiv] =cellPosi[
kDiv]*(1.0-xDivi)+xDivi;
89 Error(
"GetHcub ",
"Something wrong with linked tree \n");
106 while(dCell !=
nullptr) {
108 if( pCell==
nullptr)
break;
111 if(dCell == pCell->
GetDau0() ) {
112 cellSize[
kDiv]=cellSize[
kDiv]*xDivi;
113 }
else if(dCell == pCell->
GetDau1() ) {
114 cellSize[
kDiv]=cellSize[
kDiv]*(1.0-xDivi);
116 Error(
"GetHSize ",
"Something wrong with linked tree \n");
132 for(k=0; k<
fDim; k++) volu *= cellSize[k];
144 std::cout <<
" Status= "<<
fStatus <<
",";
145 std::cout <<
" Volume= "<<
fVolume <<
",";
146 std::cout <<
" TrueInteg= " <<
fIntegral <<
",";
147 std::cout <<
" DriveInteg= "<<
fDrive <<
",";
148 std::cout <<
" PrimInteg= " <<
fPrimary <<
",";
149 std::cout<< std::endl;
150 std::cout <<
" Xdiv= "<<
fXdiv<<
",";
151 std::cout <<
" Best= "<<
fBest<<
",";
155 std::cout<< std::endl;
161 std::cout <<
" Posi= "; cellPosi.
Print(
"1"); std::cout<<
","<< std::endl;
162 std::cout <<
" Size= "; cellSize.
Print(
"1"); std::cout<<
","<< std::endl;
Double_t fXdiv
Factor for division.
TFoamCell * GetDau1() const
void CalcVolume()
Calculates volume of the cell using size params which are calculated.
Double_t fIntegral
Integral over cell (estimate from exploration)
Int_t fStatus
Status (active, inactive)
TFoamCell * GetDau0() const
Double_t fVolume
Cartesian Volume of cell.
Int_t fDaught0Idx
Serial number of daughter 1.
void Print(Option_t *option) const override
Printout of the cell geometry parameters for the debug purpose.
void GetHcub(TFoamVect &, TFoamVect &) const
Provides size and position of the cell These parameter are calculated by analyzing information in all...
TFoamCell * GetPare() const
Double_t fDrive
Driver integral, only for cell build-up.
Short_t fDim
Dimension of the vector space.
Double_t fPrimary
Primary integral, only for MC generation.
TFoamCell()
Default constructor for streamer.
Int_t fDaught1Idx
Serial number of daughter 2.
void Fill(Int_t, TFoamCell *, TFoamCell *, TFoamCell *)
Fills in certain data into newly allocated cell.
~TFoamCell() override
Destructor.
Int_t fBest
Best Edge for division.
Int_t fSerial
Serial number.
void GetHSize(TFoamVect &) const
Provides size of the cell Size parameters are calculated by analyzing information in all parents cell...
Int_t fParentIdx
Serial number of parent cell.
Auxiliary class TFoamVect of n-dimensional vector, with dynamic allocation used for the cartesian geo...
void Print(Option_t *option) const override
Printout of all vector components on "std::cout".
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.