Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:22:56

0001 // @(#)root/tmva $Id$
0002 // Author: Tancredi Carli, Dominik Dannheim, Alexander Voigt
0003 
0004 /**********************************************************************************
0005  * Project: TMVA - a Root-integrated toolkit for multivariate data analysis       *
0006  * Package: TMVA                                                                  *
0007  * Classes: PDEFoamTarget                                                         *
0008  *                                             *
0009  *                                                                                *
0010  * Description:                                                                   *
0011  *      Concrete PDEFoam sub-class.  This foam stores the first target            *
0012  *      (index 0) with every cell, as well as the statistical error on            *
0013  *      the target.                                                               *
0014  *                                                                                *
0015  * Authors (alphabetical):                                                        *
0016  *      S. Jadach        - Institute of Nuclear Physics, Cracow, Poland           *
0017  *      Tancredi Carli   - CERN, Switzerland                                      *
0018  *      Dominik Dannheim - CERN, Switzerland                                      *
0019  *      Alexander Voigt  - TU Dresden, Germany                                    *
0020  *                                                                                *
0021  * Copyright (c) 2008, 2010:                                                      *
0022  *      CERN, Switzerland                                                         *
0023  *      MPI-K Heidelberg, Germany                                                 *
0024  *                                                                                *
0025  * Redistribution and use in source and binary forms, with or without             *
0026  * modification, are permitted according to the terms listed in LICENSE           *
0027  * (see tmva/doc/LICENSE)                                          *
0028  **********************************************************************************/
0029 
0030 #ifndef ROOT_TMVA_PDEFoamTarget
0031 #define ROOT_TMVA_PDEFoamTarget
0032 
0033 #include "TMVA/PDEFoam.h"
0034 
0035 #include <vector>
0036 
0037 namespace TMVA
0038 {
0039 
0040    class PDEFoamTarget : public PDEFoam
0041    {
0042 
0043    protected:
0044       UInt_t fTarget; // the target to fill the cells with
0045 
0046       // specific function used during evaluation; determines, whether
0047       // a cell value is undefined
0048       Bool_t CellValueIsUndefined(PDEFoamCell* cell);
0049 
0050       // calculate the average of the neighbor cell values
0051       Float_t GetAverageNeighborsValue(std::vector<Float_t>&, ECellValue);
0052 
0053       PDEFoamTarget(const PDEFoamTarget&); // Copy Constructor  NOT USED
0054 
0055       // ---------- Public functions ----------------------------------
0056    public:
0057       PDEFoamTarget();                  // Default constructor (used only by ROOT streamer)
0058       PDEFoamTarget(const TString&, UInt_t); // Principal user-defined constructor
0059       virtual ~PDEFoamTarget() {}       // Default destructor
0060 
0061       // function to fill created cell with given value
0062       virtual void FillFoamCells(const Event* ev, Float_t wt);
0063 
0064       // function to call after foam is grown
0065       virtual void Finalize();
0066 
0067       virtual Float_t GetCellValue(const std::vector<Float_t> &xvec, ECellValue cv, PDEFoamKernelBase*);
0068       using PDEFoam::GetCellValue;
0069 
0070       // ---------- ROOT class definition
0071       ClassDef(PDEFoamTarget, 1) // Tree of PDEFoamCells
0072          }; // end of PDEFoamTarget
0073 
0074 }  // namespace TMVA
0075 
0076 // ---------- Inline functions
0077 
0078 #endif