84   Log() << kFATAL << 
"COPY CONSTRUCTOR NOT IMPLEMENTED" << 
Endl;
 
   95   std::vector<Float_t> values  = ev->
GetValues();
 
   96   std::vector<Float_t> tvalues = VarTransform(values);
 
  102      SetCellElement(cell, 0, GetCellElement(cell, 0) + wt);
 
  104      SetCellElement(cell, 1, GetCellElement(cell, 1) + wt);
 
  114   for (
Long_t iCell = 0; iCell <= fLastCe; iCell++) {
 
  115      if (!(fCells[iCell]->GetStat()))
 
  118      Double_t n_sig = GetCellElement(fCells[iCell], 0); 
 
  119      Double_t n_bg  = GetCellElement(fCells[iCell], 1); 
 
  122         Log() << kWARNING << 
"Negative number of signal events in cell " << iCell
 
  123               << 
": " << n_sig << 
". Set to 0." << 
Endl;
 
  127         Log() << kWARNING << 
"Negative number of background events in cell " << iCell
 
  128               << 
": " << n_bg << 
". Set to 0." << 
Endl;
 
  133      if (n_sig + n_bg > 0) {
 
  135         SetCellElement(fCells[iCell], 0, n_sig / (n_sig + n_bg));
 
  137         SetCellElement(fCells[iCell], 1, 
TMath::Sqrt(Sqr(n_sig / Sqr(n_sig + n_bg))*n_sig +
 
  138                                                      Sqr(n_bg / Sqr(n_sig + n_bg))*n_bg));
 
  141         SetCellElement(fCells[iCell], 0, 0.5); 
 
  142         SetCellElement(fCells[iCell], 1, 1.);  
 
  174   if ((idim1 >= GetTotDim()) || (idim1 < 0) ||
 
  175       (idim2 >= GetTotDim()) || (idim2 < 0) ||
 
  177      Log() << kFATAL << 
"<Project2>: wrong dimensions given: " 
  178            << idim1 << 
", " << idim2 << 
Endl;
 
  184      Log() << kWARNING << 
"Warning: number of bins too big: " << nbin
 
  185            << 
" Using 1000 bins for each dimension instead." << 
Endl;
 
  187   } 
else if (nbin < 1) {
 
  188      Log() << kWARNING << 
"Wrong bin number: " << nbin
 
  189            << 
"; set nbin=50" << 
Endl;
 
  199   h1 = 
new TH2D(hname.
Data(), 
Form(
"var%d vs var%d", idim1, idim2), nbin, fXmin[idim1], fXmax[idim1], nbin, fXmin[idim2], fXmax[idim2]);
 
  201   if (!
h1) Log() << kFATAL << 
"ERROR: Can not create histo" << hname << 
Endl;
 
  202   if (cell_value == kValue)
 
  204                                   1. + std::numeric_limits<float>::epsilon());
 
  212         std::map<Int_t, Float_t> txvec;
 
  218         std::vector<TMVA::PDEFoamCell*> cells = FindCells(txvec);
 
  223         for (std::vector<TMVA::PDEFoamCell*>::const_iterator it = cells.begin();
 
  224              it != cells.end(); ++it) {
 
  226            PDEFoamVect cellPosi(GetTotDim()), cellSize(GetTotDim());
 
  227            (*it)->GetHcub(cellPosi, cellSize);
 
  230            std::vector<Float_t> tvec;
 
  231            for (
Int_t i = 0; i < GetTotDim(); ++i) {
 
  232               if (i != idim1 && i != idim2)
 
  233                  tvec.push_back(cellPosi[i] + 0.5 * cellSize[i]);
 
  235                  tvec.push_back(txvec[i]);
 
  239            if (kernel != NULL) {
 
  240               cv = kernel->
Estimate(
this, tvec, cell_value);
 
  242               cv = GetCellValue(FindCell(tvec), cell_value);
 
  244            if (cell_value == kValue) {
 
  248               for (
Int_t d1 = 0; d1 < GetTotDim(); ++d1) {
 
  249                  if ((d1 != idim1) && (d1 != idim2))
 
  250                     area_cell *= cellSize[d1];
 
char * Form(const char *fmt,...)
Formats a string in a circular formatting buffer.
 
virtual Double_t GetBinCenter(Int_t bin) const
Return center of bin.
 
virtual void SetRangeUser(Double_t ufirst, Double_t ulast)
Set the viewing range for the axis from ufirst to ulast (in user coordinates, that is,...
 
virtual Int_t GetNbinsY() const
 
virtual Int_t GetNbinsX() const
 
virtual void SetBinContent(Int_t bin, Double_t content)
Set bin content see convention for numbering bins in TH1::GetBin In case the bin number is greater th...
 
virtual Double_t GetBinContent(Int_t bin) const
Return content of bin number bin.
 
2-D histogram with a double per channel (see TH1 documentation)}
 
std::vector< Float_t > & GetValues()
 
This PDEFoam variant stores in every cell the discriminant.
 
virtual void FillFoamCells(const Event *ev, Float_t wt)
This function fills an event into the discriminant PDEFoam.
 
virtual void Finalize()
Calc discriminator and its error for every cell and save it to the cell.
 
virtual TH2D * Project2(Int_t, Int_t, ECellValue, PDEFoamKernelBase *, UInt_t)
Project foam variable idim1 and variable idim2 to histogram.
 
PDEFoamDiscriminant()
Default constructor for streamer, user should not use it.
 
This class is the abstract kernel interface for PDEFoam.
 
virtual Float_t Estimate(PDEFoam *, std::vector< Float_t > &, ECellValue)=0
 
Implementation of PDEFoam.
 
const char * Data() const
 
MsgLogger & Endl(MsgLogger &ml)
 
Double_t Sqrt(Double_t x)
Returns the square root of x.