Logo ROOT  
Reference Guide
TKDE Class Reference

Kernel Density Estimation class.

The three main references are:

  1. "Scott DW, Multivariate Density Estimation. Theory, Practice and Visualization. New York: Wiley",
  2. "Jann Ben - ETH Zurich, Switzerland -, Univariate kernel density estimation document for KDENS: Stata module for univariate kernel density estimation."
  3. "Hardle W, Muller M, Sperlich S, Werwatz A, Nonparametric and Semiparametric Models. Springer."
  4. "Cranmer KS, Kernel Estimation in High-Energy Physics. Computer Physics Communications 136:198-207,2001" - e-Print Archive: hep ex/0011057.

The algorithm is briefly described in (4). A binned version is also implemented to address the performance issue due to its data size dependance.

Definition at line 37 of file TKDE.h.

Classes

struct  KernelIntegrand
 
class  TKernel
 

Public Types

enum  EBinning { kUnbinned , kRelaxedBinning , kForcedBinning }
 Data binning option. More...
 
enum  EIteration { kAdaptive , kFixed }
 Iteration types. They can be set using SetIteration() More...
 
enum  EKernelType {
  kGaussian , kEpanechnikov , kBiweight , kCosineArch ,
  kUserDefined , kTotalKernels
}
 Types of Kernel functions They can be set using the function SetKernelType() or as a string in the constructor. More...
 
enum  EMirror {
  kNoMirror , kMirrorLeft , kMirrorRight , kMirrorBoth ,
  kMirrorAsymLeft , kMirrorRightAsymLeft , kMirrorAsymRight , kMirrorLeftAsymRight ,
  kMirrorAsymBoth
}
 Data "mirroring" option to address the probability "spill out" boundary effect They can be set using SetMirror() More...
 
- Public Types inherited from TObject
enum  {
  kIsOnHeap = 0x01000000 , kNotDeleted = 0x02000000 , kZombie = 0x04000000 , kInconsistent = 0x08000000 ,
  kBitMask = 0x00ffffff
}
 
enum  { kSingleKey = (1ULL << ( 0 )) , kOverwrite = (1ULL << ( 1 )) , kWriteDelete = (1ULL << ( 2 )) }
 
enum  EDeprecatedStatusBits { kObjInCanvas = (1ULL << ( 3 )) }
 
enum  EStatusBits {
  kCanDelete = (1ULL << ( 0 )) , kMustCleanup = (1ULL << ( 3 )) , kIsReferenced = (1ULL << ( 4 )) , kHasUUID = (1ULL << ( 5 )) ,
  kCannotPick = (1ULL << ( 6 )) , kNoContextMenu = (1ULL << ( 8 )) , kInvalidObject = (1ULL << ( 13 ))
}
 

Public Member Functions

 TKDE ()
 default constructor used only by I/O More...
 
template<class KernelFunction >
 TKDE (const Char_t *, const KernelFunction &kernfunc, UInt_t events, const Double_t *data, const Double_t *dataWeight, Double_t xMin=0.0, Double_t xMax=0.0, const Option_t *option="KernelType:UserDefined;Iteration:Adaptive;Mirror:noMirror;Binning:RelaxedBinning", Double_t rho=1.0)
 Constructor for weighted data and a user defined kernel function. More...
 
template<class KernelFunction >
 TKDE (const Char_t *, const KernelFunction &kernfunc, UInt_t events, const Double_t *data, Double_t xMin=0.0, Double_t xMax=0.0, const Option_t *option="KernelType:UserDefined;Iteration:Adaptive;Mirror:noMirror;Binning:RelaxedBinning", Double_t rho=1.0)
 Constructor for unweighted data and a user defined kernel function. More...
 
 TKDE (UInt_t events, const Double_t *data, const Double_t *dataWeight, Double_t xMin=0.0, Double_t xMax=0.0, const Option_t *option="KernelType:Gaussian;Iteration:Adaptive;Mirror:noMirror;Binning:RelaxedBinning", Double_t rho=1.0)
 Constructor for weighted data. More...
 
 TKDE (UInt_t events, const Double_t *data, Double_t xMin=0.0, Double_t xMax=0.0, const Option_t *option="KernelType:Gaussian;Iteration:Adaptive;Mirror:noMirror;Binning:RelaxedBinning", Double_t rho=1.0)
 Constructor for unweighted data Varius option for TKDE can be passed in the option string as below. More...
 
 ~TKDE () override
 
void Draw (const Option_t *option="") override
 Draws either the KDE functions or its errors. More...
 
void Fill (Double_t data)
 
void Fill (Double_t data, Double_t weight)
 
const Double_tGetAdaptiveWeights () const
 
TF1GetApproximateBias (UInt_t npx=100, Double_t xMin=1.0, Double_t xMax=0.0)
 
Double_t GetBias (Double_t x) const
 
Double_t GetError (Double_t x) const
 
Double_t GetFixedWeight () const
 
TF1GetFunction (UInt_t npx=100, Double_t xMin=1.0, Double_t xMax=0.0)
 
TGraphErrorsGetGraphWithErrors (UInt_t npx=100, Double_t xMin=1.0, Double_t xMax=0.0)
 return a TGraphErrors with the KDE values and errors The return object is managed by the user More...
 
TF1GetLowerFunction (Double_t confidenceLevel=0.95, UInt_t npx=100, Double_t xMin=1.0, Double_t xMax=0.0)
 
Double_t GetMean () const
 
Double_t GetRAMISE () const
 
Double_t GetSigma () const
 
TF1GetUpperFunction (Double_t confidenceLevel=0.95, UInt_t npx=100, Double_t xMin=1.0, Double_t xMax=0.0)
 
Double_t GetValue (Double_t x) const
 
TClassIsA () const override
 
Double_t operator() (const Double_t *x, const Double_t *p=0) const
 
Double_t operator() (Double_t x) const
 
void SetBinning (EBinning)
 
void SetIteration (EIteration iter)
 
void SetKernelType (EKernelType kern)
 
void SetMirror (EMirror mir)
 
void SetNBins (UInt_t nbins)
 
void SetRange (Double_t xMin, Double_t xMax)
 By default computed from the data. More...
 
void SetTuneFactor (Double_t rho)
 
void SetUseBinsNEvents (UInt_t nEvents)
 
void Streamer (TBuffer &) override
 Stream an object of class TObject. More...
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
Drawn objects getters

Allow to change settings These objects are managed by TKDE and should not be deleted by the user

TF1GetDrawnFunction ()
 
TF1GetDrawnUpperFunction ()
 
TF1GetDrawnLowerFunction ()
 
TGraphErrorsGetDrawnGraph ()
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TNamed &named)
 TNamed copy ctor. More...
 
 TNamed (const TString &name, const TString &title)
 
virtual ~TNamed ()
 TNamed destructor. More...
 
void Clear (Option_t *option="") override
 Set name and title to empty strings (""). More...
 
TObjectClone (const char *newname="") const override
 Make a clone of an object using the Streamer facility. More...
 
Int_t Compare (const TObject *obj) const override
 Compare two TNamed objects. More...
 
void Copy (TObject &named) const override
 Copy this to obj. More...
 
virtual void FillBuffer (char *&buffer)
 Encode TNamed into output buffer. More...
 
const char * GetName () const override
 Returns name of object. More...
 
const char * GetTitle () const override
 Returns title of object. More...
 
ULong_t Hash () const override
 Return hash value for this object. More...
 
TClassIsA () const override
 
Bool_t IsSortable () const override
 
void ls (Option_t *option="") const override
 List TNamed name and title. More...
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator. More...
 
void Print (Option_t *option="") const override
 Print TNamed name and title. More...
 
virtual void SetName (const char *name)
 Set the name of the TNamed. More...
 
virtual void SetNameTitle (const char *name, const char *title)
 Set all the TNamed parameters (name and title). More...
 
virtual void SetTitle (const char *title="")
 Set the title of the TNamed. More...
 
virtual Int_t Sizeof () const
 Return size of the TNamed part of the TObject. More...
 
void Streamer (TBuffer &) override
 Stream an object of class TObject. More...
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- Public Member Functions inherited from TObject
 TObject ()
 TObject constructor. More...
 
 TObject (const TObject &object)
 TObject copy ctor. More...
 
virtual ~TObject ()
 TObject destructor. More...
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract. More...
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad. More...
 
virtual void Browse (TBrowser *b)
 Browse object. May be overridden for another default action. More...
 
ULong_t CheckedHash ()
 Check and record whether this class has a consistent Hash/RecursiveRemove setup (*) and then return the regular Hash value for this object. More...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual void Clear (Option_t *="")
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility. More...
 
virtual Int_t Compare (const TObject *obj) const
 Compare abstract method. More...
 
virtual void Copy (TObject &object) const
 Copy this to obj. More...
 
virtual void Delete (Option_t *option="")
 Delete this object. More...
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object. More...
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects. More...
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs. More...
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current selected pad for instance with: gROOT->SetSelectedPad(gPad). More...
 
virtual void Dump () const
 Dump contents of object on stdout. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. More...
 
virtual void Execute (const char *method, const char *params, Int_t *error=nullptr)
 Execute method on this object with the given parameter string, e.g. More...
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr)
 Execute method on this object with parameters stored in the TObjArray. More...
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py). More...
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. More...
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes. More...
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes. More...
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object. More...
 
virtual const char * GetIconName () const
 Returns mime type name of object. More...
 
virtual const char * GetName () const
 Returns name of object. More...
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual Option_tGetOption () const
 
virtual const char * GetTitle () const
 Returns title of object. More...
 
virtual UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out. More...
 
virtual ULong_t Hash () const
 Return hash value for this object. More...
 
Bool_t HasInconsistentHash () const
 Return true is the type of this object is known to have an inconsistent setup for Hash and RecursiveRemove (i.e. More...
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. More...
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname". More...
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl. More...
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas. More...
 
void InvertBit (UInt_t f)
 
virtual TClassIsA () const
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory). More...
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
virtual Bool_t IsSortable () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
virtual void ls (Option_t *option="") const
 The ls function lists the contents of a class on stdout. More...
 
void MayNotUse (const char *method) const
 Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). More...
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. More...
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
void * operator new (size_t sz)
 
void * operator new (size_t sz, void *vp)
 
void * operator new[] (size_t sz)
 
void * operator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. More...
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself. More...
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list. More...
 
virtual void Print (Option_t *option="") const
 This method must be overridden when a class wants to print itself. More...
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory. More...
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list. More...
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename. More...
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out". More...
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. More...
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object. More...
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id. More...
 
virtual void Streamer (TBuffer &)
 Stream an object of class TObject. More...
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. More...
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. More...
 
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory. More...
 
virtual Int_t Write (const char *name=nullptr, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory. More...
 

Static Public Member Functions

static TClassClass ()
 
static const char * Class_Name ()
 
static Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TNamed
static TClassClass ()
 
static const char * Class_Name ()
 
static Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TObject
static TClassClass ()
 
static const char * Class_Name ()
 
static Version_t Class_Version ()
 
static const char * DeclFileName ()
 
static Longptr_t GetDtorOnly ()
 Return destructor only flag. More...
 
static Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 

Private Types

typedef ROOT::Math::IBaseFunctionOneDimKernelFunction_Ptr
 

Private Member Functions

 TKDE (TKDE &kde)
 
Double_t ApproximateBias (const Double_t *x, const Double_t *) const
 
void AssureOptions ()
 
Double_t BiweightKernel (Double_t x) const
 Returns the kernel evaluation at x. More...
 
void CheckKernelValidity ()
 
void CheckOptions (Bool_t isUserDefinedKernel=kFALSE)
 
void ComputeDataStats ()
 Internal function to compute statistics (mean,stddev) using always all the provided data (i.e. no binning) More...
 
Double_t ComputeKernelIntegral () const
 
Double_t ComputeKernelL2Norm () const
 
Double_t ComputeKernelMu () const
 
Double_t ComputeKernelSigma2 () const
 
Double_t ComputeMidspread ()
 
Double_t CosineArchKernel (Double_t x) const
 Returns the kernel evaluation at x. More...
 
void DrawConfidenceInterval (TString &drawOpt, double cl=0.95)
 // Draws the KDE and its confidence interval More...
 
void DrawErrors (TString &drawOpt)
 Draws a TGraphErrors with KDE values and errors. More...
 
Double_t EpanechnikovKernel (Double_t x) const
 
Double_t GaussianKernel (Double_t x) const
 Returns the kernel evaluation at x. More...
 
TF1GetKDEApproximateBias (UInt_t npx=100, Double_t xMin=1.0, Double_t xMax=0.0)
 
TF1GetKDEFunction (UInt_t npx=100, Double_t xMin=1.0, Double_t xMax=0.0)
 
void GetOptions (std::string optionType, std::string option)
 
TF1GetPDFLowerConfidenceInterval (Double_t confidenceLevel=0.95, UInt_t npx=100, Double_t xMin=1.0, Double_t xMax=0.0)
 
TF1GetPDFUpperConfidenceInterval (Double_t confidenceLevel=0.95, UInt_t npx=100, Double_t xMin=1.0, Double_t xMax=0.0)
 
UInt_t Index (Double_t x) const
 compute the bin index given a data point x More...
 
void InitFromNewData ()
 
void Instantiate (KernelFunction_Ptr kernfunc, UInt_t events, const Double_t *data, const Double_t *weight, Double_t xMin, Double_t xMax, const Option_t *option, Double_t rho)
 
Double_t LowerConfidenceInterval (const Double_t *x, const Double_t *p) const
 Valid if the bandwidth is small compared to nEvents**1/5. More...
 
TKDE operator= (TKDE &kde)
 
void ReInit ()
 
void SetBinCentreData (Double_t xmin, Double_t xmax)
 
void SetBinCountData ()
 
void SetCanonicalBandwidths ()
 
void SetData (const Double_t *data, const Double_t *weights)
 
void SetDrawOptions (const Option_t *option, TString &plotOpt, TString &drawOpt)
 
void SetHistogram ()
 
void SetKernel ()
 
void SetKernelFunction (KernelFunction_Ptr kernfunc=0)
 
void SetKernelSigmas2 ()
 
void SetMean ()
 
void SetMirror ()
 
void SetMirroredEvents ()
 Intgernal function to mirror the data. More...
 
void SetOptions (const Option_t *option, Double_t rho)
 
void SetSigma (Double_t R)
 
void SetUseBins ()
 
void SetUserCanonicalBandwidth ()
 
void SetUserKernelSigma2 ()
 
Double_t UpperConfidenceInterval (const Double_t *x, const Double_t *p) const
 Valid if the bandwidth is small compared to nEvents**1/5. More...
 

Private Attributes

Double_t fAdaptiveBandwidthFactor
 Geometric mean of the kernel density estimation from the data for adaptive iteration. More...
 
TF1fApproximateBias
 Output Kernel Density Estimation lower confidence interval PDF function. More...
 
Bool_t fAsymLeft
 
Bool_t fAsymRight
 
std::vector< Double_tfBinCount
 Number of events per bin for binned data option. More...
 
EBinning fBinning
 
std::vector< Double_tfCanonicalBandwidths
 
std::vector< Double_tfData
 Data events. More...
 
std::vector< Double_tfEvents
 Original data storage. More...
 
std::vector< Double_tfEventWeights
 Original data weights. More...
 
TGraphErrorsfGraph
 Output Kernel Density Estimation approximate bias. More...
 
EIteration fIteration
 
std::unique_ptr< TKernelfKernel
 ! internal kernel class. Transient because it is recreated after reading from a file More...
 
KernelFunction_Ptr fKernelFunction
 ! pointer to kernel function More...
 
std::vector< Double_tfKernelSigmas2
 
EKernelType fKernelType
 Graph with the errors. More...
 
TF1fLowerPDF
 Output Kernel Density Estimation upper confidence interval PDF function. More...
 
Double_t fMean
 Data mean. More...
 
EMirror fMirror
 
Bool_t fMirrorLeft
 
Bool_t fMirrorRight
 
UInt_t fNBins
 Number of bins for binned data option. More...
 
UInt_t fNEvents
 Data's number of events. More...
 
Bool_t fNewData
 Flag to control when new data are given. More...
 
TF1fPDF
 
Double_t fRho
 Adjustment factor for sigma. More...
 
std::vector< Bool_tfSettedOptions
 User input options flag. More...
 
Double_t fSigma
 Data std deviation. More...
 
Double_t fSigmaRob
 Data std deviation (robust estimation) More...
 
Double_t fSumOfCounts
 Data sum of weights. More...
 
TF1fUpperPDF
 Output Kernel Density Estimation PDF function. More...
 
Bool_t fUseBins
 
UInt_t fUseBinsNEvents
 If the algorithm is allowed to use automatic (relaxed) binning this is the minimum number of events to do so. More...
 
Bool_t fUseMinMaxFromData
 Flag top control if min and max must be used from data. More...
 
Bool_t fUseMirroring
 
Double_t fWeightSize
 Caches the weight size. More...
 
Double_t fXMax
 Data maximum value. More...
 
Double_t fXMin
 Data minimum value. More...
 

Friends

struct KernelIntegrand
 
class TKernel
 

Additional Inherited Members

- Protected Types inherited from TObject
enum  { kOnlyPrepStep = (1ULL << ( 3 )) }
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 
void MakeZombie ()
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 

#include <TKDE.h>

Inheritance diagram for TKDE:
[legend]

Member Typedef Documentation

◆ KernelFunction_Ptr

Definition at line 184 of file TKDE.h.

Member Enumeration Documentation

◆ EBinning

Data binning option.

They can be set using SetBinning()

Enumerator
kUnbinned 
kRelaxedBinning 

The algorithm is allowed to use binning if the data is large enough.

kForcedBinning 

Definition at line 73 of file TKDE.h.

◆ EIteration

Iteration types. They can be set using SetIteration()

Enumerator
kAdaptive 
kFixed 

Definition at line 52 of file TKDE.h.

◆ EKernelType

Types of Kernel functions They can be set using the function SetKernelType() or as a string in the constructor.

Enumerator
kGaussian 
kEpanechnikov 
kBiweight 
kCosineArch 
kUserDefined 

Internal use only for the class's template constructor.

kTotalKernels 

Internal use only for member initialization.

Definition at line 42 of file TKDE.h.

◆ EMirror

Data "mirroring" option to address the probability "spill out" boundary effect They can be set using SetMirror()

Enumerator
kNoMirror 
kMirrorLeft 
kMirrorRight 
kMirrorBoth 
kMirrorAsymLeft 
kMirrorRightAsymLeft 
kMirrorAsymRight 
kMirrorLeftAsymRight 
kMirrorAsymBoth 

Definition at line 59 of file TKDE.h.

Constructor & Destructor Documentation

◆ TKDE() [1/6]

TKDE::TKDE ( )

default constructor used only by I/O

default constructor used by I/O

Definition at line 61 of file TKDE.cxx.

◆ TKDE() [2/6]

TKDE::TKDE ( UInt_t  events,
const Double_t data,
Double_t  xMin = 0.0,
Double_t  xMax = 0.0,
const Option_t option = "KernelType:Gaussian;Iteration:Adaptive;Mirror:noMirror;Binning:RelaxedBinning",
Double_t  rho = 1.0 
)
inline

Constructor for unweighted data Varius option for TKDE can be passed in the option string as below.

Note that min and max will define the plotting range but will not restrict the data in the unbinned case Instead when use binning, only the data in the range will be considered. Note also, that when some data exists outside the range, one should not use the mirror option with unbinned. Adaptive will be soon very slow especially for Nevents > 10000. For this reason, by default for Nevents >=10000, the data are automatically binned in nbins=Min(10000,Nevents/10) In case of ForceBinning option the default number of bins is 1000

Definition at line 91 of file TKDE.h.

◆ TKDE() [3/6]

TKDE::TKDE ( UInt_t  events,
const Double_t data,
const Double_t dataWeight,
Double_t  xMin = 0.0,
Double_t  xMax = 0.0,
const Option_t option = "KernelType:Gaussian;Iteration:Adaptive;Mirror:noMirror;Binning:RelaxedBinning",
Double_t  rho = 1.0 
)
inline

Constructor for weighted data.

Definition at line 97 of file TKDE.h.

◆ TKDE() [4/6]

template<class KernelFunction >
TKDE::TKDE ( const Char_t ,
const KernelFunction &  kernfunc,
UInt_t  events,
const Double_t data,
Double_t  xMin = 0.0,
Double_t  xMax = 0.0,
const Option_t option = "KernelType:UserDefined;Iteration:Adaptive;Mirror:noMirror;Binning:RelaxedBinning",
Double_t  rho = 1.0 
)
inline

Constructor for unweighted data and a user defined kernel function.

Definition at line 104 of file TKDE.h.

◆ TKDE() [5/6]

template<class KernelFunction >
TKDE::TKDE ( const Char_t ,
const KernelFunction &  kernfunc,
UInt_t  events,
const Double_t data,
const Double_t dataWeight,
Double_t  xMin = 0.0,
Double_t  xMax = 0.0,
const Option_t option = "KernelType:UserDefined;Iteration:Adaptive;Mirror:noMirror;Binning:RelaxedBinning",
Double_t  rho = 1.0 
)
inline

Constructor for weighted data and a user defined kernel function.

Definition at line 110 of file TKDE.h.

◆ ~TKDE()

TKDE::~TKDE ( )
override

Definition at line 77 of file TKDE.cxx.

◆ TKDE() [6/6]

TKDE::TKDE ( TKDE kde)
private

Member Function Documentation

◆ ApproximateBias()

Double_t TKDE::ApproximateBias ( const Double_t x,
const Double_t  
) const
inlineprivate

Definition at line 259 of file TKDE.h.

◆ AssureOptions()

void TKDE::AssureOptions ( )
private

Definition at line 270 of file TKDE.cxx.

◆ BiweightKernel()

Double_t TKDE::BiweightKernel ( Double_t  x) const
inlineprivate

Returns the kernel evaluation at x.

Definition at line 249 of file TKDE.h.

◆ CheckKernelValidity()

void TKDE::CheckKernelValidity ( )
private

Definition at line 1100 of file TKDE.cxx.

◆ CheckOptions()

void TKDE::CheckOptions ( Bool_t  isUserDefinedKernel = kFALSE)
private

Definition at line 286 of file TKDE.cxx.

◆ Class()

static TClass * TKDE::Class ( )
static
Returns
TClass describing this class

◆ Class_Name()

static const char * TKDE::Class_Name ( )
static
Returns
Name of this class

◆ Class_Version()

static Version_t TKDE::Class_Version ( )
inlinestatic
Returns
Version of this class

Definition at line 301 of file TKDE.h.

◆ ComputeDataStats()

void TKDE::ComputeDataStats ( )
private

Internal function to compute statistics (mean,stddev) using always all the provided data (i.e. no binning)

Definition at line 1162 of file TKDE.cxx.

◆ ComputeKernelIntegral()

Double_t TKDE::ComputeKernelIntegral ( ) const
private

Definition at line 1151 of file TKDE.cxx.

◆ ComputeKernelL2Norm()

Double_t TKDE::ComputeKernelL2Norm ( ) const
private

Definition at line 1124 of file TKDE.cxx.

◆ ComputeKernelMu()

Double_t TKDE::ComputeKernelMu ( ) const
private

Definition at line 1142 of file TKDE.cxx.

◆ ComputeKernelSigma2()

Double_t TKDE::ComputeKernelSigma2 ( ) const
private

Definition at line 1133 of file TKDE.cxx.

◆ ComputeMidspread()

Double_t TKDE::ComputeMidspread ( )
private

Definition at line 1191 of file TKDE.cxx.

◆ CosineArchKernel()

Double_t TKDE::CosineArchKernel ( Double_t  x) const
inlineprivate

Returns the kernel evaluation at x.

Definition at line 254 of file TKDE.h.

◆ DeclFileName()

static const char * TKDE::DeclFileName ( )
inlinestatic
Returns
Name of the file containing the class declaration

Definition at line 301 of file TKDE.h.

◆ Draw()

void TKDE::Draw ( const Option_t option = "")
override

Draws either the KDE functions or its errors.

Definition at line 895 of file TKDE.cxx.

◆ DrawConfidenceInterval()

void TKDE::DrawConfidenceInterval ( TString drawOpt,
double  cl = 0.95 
)
private

// Draws the KDE and its confidence interval

Definition at line 965 of file TKDE.cxx.

◆ DrawErrors()

void TKDE::DrawErrors ( TString drawOpt)
private

Draws a TGraphErrors with KDE values and errors.

Definition at line 931 of file TKDE.cxx.

◆ EpanechnikovKernel()

Double_t TKDE::EpanechnikovKernel ( Double_t  x) const
inlineprivate

Definition at line 244 of file TKDE.h.

◆ Fill() [1/2]

void TKDE::Fill ( Double_t  data)

Definition at line 713 of file TKDE.cxx.

◆ Fill() [2/2]

void TKDE::Fill ( Double_t  data,
Double_t  weight 
)

Definition at line 724 of file TKDE.cxx.

◆ GaussianKernel()

Double_t TKDE::GaussianKernel ( Double_t  x) const
inlineprivate

Returns the kernel evaluation at x.

Definition at line 239 of file TKDE.h.

◆ GetAdaptiveWeights()

const Double_t * TKDE::GetAdaptiveWeights ( ) const

Definition at line 990 of file TKDE.cxx.

◆ GetApproximateBias()

TF1 * TKDE::GetApproximateBias ( UInt_t  npx = 100,
Double_t  xMin = 1.0,
Double_t  xMax = 0.0 
)

Definition at line 708 of file TKDE.cxx.

◆ GetBias()

Double_t TKDE::GetBias ( Double_t  x) const

Definition at line 1082 of file TKDE.cxx.

◆ GetDrawnFunction()

TF1 * TKDE::GetDrawnFunction ( )
inline

Definition at line 152 of file TKDE.h.

◆ GetDrawnGraph()

TGraphErrors * TKDE::GetDrawnGraph ( )
inline

Definition at line 155 of file TKDE.h.

◆ GetDrawnLowerFunction()

TF1 * TKDE::GetDrawnLowerFunction ( )
inline

Definition at line 154 of file TKDE.h.

◆ GetDrawnUpperFunction()

TF1 * TKDE::GetDrawnUpperFunction ( )
inline

Definition at line 153 of file TKDE.h.

◆ GetError()

Double_t TKDE::GetError ( Double_t  x) const

Definition at line 1091 of file TKDE.cxx.

◆ GetFixedWeight()

Double_t TKDE::GetFixedWeight ( ) const

Definition at line 979 of file TKDE.cxx.

◆ GetFunction()

TF1 * TKDE::GetFunction ( UInt_t  npx = 100,
Double_t  xMin = 1.0,
Double_t  xMax = 0.0 
)

Definition at line 689 of file TKDE.cxx.

◆ GetGraphWithErrors()

TGraphErrors * TKDE::GetGraphWithErrors ( UInt_t  npx = 100,
Double_t  xMin = 1.0,
Double_t  xMax = 0.0 
)

return a TGraphErrors with the KDE values and errors The return object is managed by the user

Definition at line 940 of file TKDE.cxx.

◆ GetKDEApproximateBias()

TF1 * TKDE::GetKDEApproximateBias ( UInt_t  npx = 100,
Double_t  xMin = 1.0,
Double_t  xMax = 0.0 
)
private

Definition at line 1271 of file TKDE.cxx.

◆ GetKDEFunction()

TF1 * TKDE::GetKDEFunction ( UInt_t  npx = 100,
Double_t  xMin = 1.0,
Double_t  xMax = 0.0 
)
private

Definition at line 1231 of file TKDE.cxx.

◆ GetLowerFunction()

TF1 * TKDE::GetLowerFunction ( Double_t  confidenceLevel = 0.95,
UInt_t  npx = 100,
Double_t  xMin = 1.0,
Double_t  xMax = 0.0 
)

Definition at line 703 of file TKDE.cxx.

◆ GetMean()

Double_t TKDE::GetMean ( ) const

Definition at line 751 of file TKDE.cxx.

◆ GetOptions()

void TKDE::GetOptions ( std::string  optionType,
std::string  option 
)
private

Definition at line 198 of file TKDE.cxx.

◆ GetPDFLowerConfidenceInterval()

TF1 * TKDE::GetPDFLowerConfidenceInterval ( Double_t  confidenceLevel = 0.95,
UInt_t  npx = 100,
Double_t  xMin = 1.0,
Double_t  xMax = 0.0 
)
private

Definition at line 1258 of file TKDE.cxx.

◆ GetPDFUpperConfidenceInterval()

TF1 * TKDE::GetPDFUpperConfidenceInterval ( Double_t  confidenceLevel = 0.95,
UInt_t  npx = 100,
Double_t  xMin = 1.0,
Double_t  xMax = 0.0 
)
private

Definition at line 1245 of file TKDE.cxx.

◆ GetRAMISE()

Double_t TKDE::GetRAMISE ( ) const

Definition at line 763 of file TKDE.cxx.

◆ GetSigma()

Double_t TKDE::GetSigma ( ) const

Definition at line 757 of file TKDE.cxx.

◆ GetUpperFunction()

TF1 * TKDE::GetUpperFunction ( Double_t  confidenceLevel = 0.95,
UInt_t  npx = 100,
Double_t  xMin = 1.0,
Double_t  xMax = 0.0 
)

Definition at line 698 of file TKDE.cxx.

◆ GetValue()

Double_t TKDE::GetValue ( Double_t  x) const
inline

Definition at line 132 of file TKDE.h.

◆ Index()

UInt_t TKDE::Index ( Double_t  x) const
private

compute the bin index given a data point x

Definition at line 1050 of file TKDE.cxx.

◆ InitFromNewData()

void TKDE::InitFromNewData ( )
private

Definition at line 500 of file TKDE.cxx.

◆ Instantiate()

void TKDE::Instantiate ( KernelFunction_Ptr  kernfunc,
UInt_t  events,
const Double_t data,
const Double_t weight,
Double_t  xMin,
Double_t  xMax,
const Option_t option,
Double_t  rho 
)
private

Definition at line 91 of file TKDE.cxx.

◆ IsA()

TClass * TKDE::IsA ( ) const
inlineoverridevirtual
Returns
TClass describing current object

Reimplemented from TNamed.

Definition at line 301 of file TKDE.h.

◆ LowerConfidenceInterval()

Double_t TKDE::LowerConfidenceInterval ( const Double_t x,
const Double_t p 
) const
private

Valid if the bandwidth is small compared to nEvents**1/5.

Definition at line 1072 of file TKDE.cxx.

◆ operator()() [1/2]

Double_t TKDE::operator() ( const Double_t x,
const Double_t p = 0 
) const

Definition at line 736 of file TKDE.cxx.

◆ operator()() [2/2]

Double_t TKDE::operator() ( Double_t  x) const

Definition at line 741 of file TKDE.cxx.

◆ operator=()

TKDE TKDE::operator= ( TKDE kde)
private

◆ ReInit()

void TKDE::ReInit ( )
private

Definition at line 478 of file TKDE.cxx.

◆ SetBinCentreData()

void TKDE::SetBinCentreData ( Double_t  xmin,
Double_t  xmax 
)
private

Definition at line 819 of file TKDE.cxx.

◆ SetBinCountData()

void TKDE::SetBinCountData ( )
private

Definition at line 828 of file TKDE.cxx.

◆ SetBinning()

void TKDE::SetBinning ( EBinning  bin)

Definition at line 339 of file TKDE.cxx.

◆ SetCanonicalBandwidths()

void TKDE::SetCanonicalBandwidths ( )
private

Definition at line 672 of file TKDE.cxx.

◆ SetData()

void TKDE::SetData ( const Double_t data,
const Double_t weights 
)
private

Definition at line 442 of file TKDE.cxx.

◆ SetDrawOptions()

void TKDE::SetDrawOptions ( const Option_t option,
TString plotOpt,
TString drawOpt 
)
private

Definition at line 152 of file TKDE.cxx.

◆ SetHistogram()

void TKDE::SetHistogram ( )
private

◆ SetIteration()

void TKDE::SetIteration ( EIteration  iter)

Definition at line 321 of file TKDE.cxx.

◆ SetKernel()

void TKDE::SetKernel ( )
private

Definition at line 596 of file TKDE.cxx.

◆ SetKernelFunction()

void TKDE::SetKernelFunction ( KernelFunction_Ptr  kernfunc = 0)
private

Definition at line 625 of file TKDE.cxx.

◆ SetKernelSigmas2()

void TKDE::SetKernelSigmas2 ( )
private

Definition at line 681 of file TKDE.cxx.

◆ SetKernelType()

void TKDE::SetKernelType ( EKernelType  kern)

Definition at line 309 of file TKDE.cxx.

◆ SetMean()

void TKDE::SetMean ( )
private

Definition at line 585 of file TKDE.cxx.

◆ SetMirror() [1/2]

void TKDE::SetMirror ( )
private

Definition at line 433 of file TKDE.cxx.

◆ SetMirror() [2/2]

void TKDE::SetMirror ( EMirror  mir)

Definition at line 328 of file TKDE.cxx.

◆ SetMirroredEvents()

void TKDE::SetMirroredEvents ( )
private

Intgernal function to mirror the data.

Definition at line 526 of file TKDE.cxx.

◆ SetNBins()

void TKDE::SetNBins ( UInt_t  nbins)

Definition at line 346 of file TKDE.cxx.

◆ SetOptions()

void TKDE::SetOptions ( const Option_t option,
Double_t  rho 
)
private

Definition at line 126 of file TKDE.cxx.

◆ SetRange()

void TKDE::SetRange ( Double_t  xMin,
Double_t  xMax 
)

By default computed from the data.

Definition at line 380 of file TKDE.cxx.

◆ SetSigma()

void TKDE::SetSigma ( Double_t  R)
private

Definition at line 590 of file TKDE.cxx.

◆ SetTuneFactor()

void TKDE::SetTuneFactor ( Double_t  rho)

Definition at line 370 of file TKDE.cxx.

◆ SetUseBins()

void TKDE::SetUseBins ( )
private

Definition at line 394 of file TKDE.cxx.

◆ SetUseBinsNEvents()

void TKDE::SetUseBinsNEvents ( UInt_t  nEvents)

Definition at line 364 of file TKDE.cxx.

◆ SetUserCanonicalBandwidth()

void TKDE::SetUserCanonicalBandwidth ( )
private

Definition at line 1202 of file TKDE.cxx.

◆ SetUserKernelSigma2()

void TKDE::SetUserKernelSigma2 ( )
private

Definition at line 1207 of file TKDE.cxx.

◆ Streamer()

void TKDE::Streamer ( TBuffer R__b)
overridevirtual

Stream an object of class TObject.

Reimplemented from TNamed.

◆ StreamerNVirtual()

void TKDE::StreamerNVirtual ( TBuffer ClassDef_StreamerNVirtual_b)
inline

Definition at line 301 of file TKDE.h.

◆ UpperConfidenceInterval()

Double_t TKDE::UpperConfidenceInterval ( const Double_t x,
const Double_t p 
) const
private

Valid if the bandwidth is small compared to nEvents**1/5.

Definition at line 1063 of file TKDE.cxx.

Friends And Related Function Documentation

◆ KernelIntegrand

friend struct KernelIntegrand
friend

Definition at line 233 of file TKDE.h.

◆ TKernel

friend class TKernel
friend

Definition at line 176 of file TKDE.h.

Member Data Documentation

◆ fAdaptiveBandwidthFactor

Double_t TKDE::fAdaptiveBandwidthFactor
private

Geometric mean of the kernel density estimation from the data for adaptive iteration.

Definition at line 221 of file TKDE.h.

◆ fApproximateBias

TF1* TKDE::fApproximateBias
private

Output Kernel Density Estimation lower confidence interval PDF function.

Definition at line 196 of file TKDE.h.

◆ fAsymLeft

Bool_t TKDE::fAsymLeft
private

Definition at line 205 of file TKDE.h.

◆ fAsymRight

Bool_t TKDE::fAsymRight
private

Definition at line 205 of file TKDE.h.

◆ fBinCount

std::vector<Double_t> TKDE::fBinCount
private

Number of events per bin for binned data option.

Definition at line 228 of file TKDE.h.

◆ fBinning

EBinning TKDE::fBinning
private

Definition at line 202 of file TKDE.h.

◆ fCanonicalBandwidths

std::vector<Double_t> TKDE::fCanonicalBandwidths
private

Definition at line 225 of file TKDE.h.

◆ fData

std::vector<Double_t> TKDE::fData
private

Data events.

Definition at line 189 of file TKDE.h.

◆ fEvents

std::vector<Double_t> TKDE::fEvents
private

Original data storage.

Definition at line 190 of file TKDE.h.

◆ fEventWeights

std::vector<Double_t> TKDE::fEventWeights
private

Original data weights.

Definition at line 191 of file TKDE.h.

◆ fGraph

TGraphErrors* TKDE::fGraph
private

Output Kernel Density Estimation approximate bias.

Definition at line 197 of file TKDE.h.

◆ fIteration

EIteration TKDE::fIteration
private

Definition at line 200 of file TKDE.h.

◆ fKernel

std::unique_ptr<TKernel> TKDE::fKernel
private

! internal kernel class. Transient because it is recreated after reading from a file

Definition at line 187 of file TKDE.h.

◆ fKernelFunction

KernelFunction_Ptr TKDE::fKernelFunction
private

! pointer to kernel function

Definition at line 185 of file TKDE.h.

◆ fKernelSigmas2

std::vector<Double_t> TKDE::fKernelSigmas2
private

Definition at line 226 of file TKDE.h.

◆ fKernelType

EKernelType TKDE::fKernelType
private

Graph with the errors.

Definition at line 199 of file TKDE.h.

◆ fLowerPDF

TF1* TKDE::fLowerPDF
private

Output Kernel Density Estimation upper confidence interval PDF function.

Definition at line 195 of file TKDE.h.

◆ fMean

Double_t TKDE::fMean
private

Data mean.

Definition at line 215 of file TKDE.h.

◆ fMirror

EMirror TKDE::fMirror
private

Definition at line 201 of file TKDE.h.

◆ fMirrorLeft

Bool_t TKDE::fMirrorLeft
private

Definition at line 205 of file TKDE.h.

◆ fMirrorRight

Bool_t TKDE::fMirrorRight
private

Definition at line 205 of file TKDE.h.

◆ fNBins

UInt_t TKDE::fNBins
private

Number of bins for binned data option.

Definition at line 210 of file TKDE.h.

◆ fNEvents

UInt_t TKDE::fNEvents
private

Data's number of events.

Definition at line 211 of file TKDE.h.

◆ fNewData

Bool_t TKDE::fNewData
private

Flag to control when new data are given.

Definition at line 207 of file TKDE.h.

◆ fPDF

TF1* TKDE::fPDF
private

Definition at line 193 of file TKDE.h.

◆ fRho

Double_t TKDE::fRho
private

Adjustment factor for sigma.

Definition at line 220 of file TKDE.h.

◆ fSettedOptions

std::vector<Bool_t> TKDE::fSettedOptions
private

User input options flag.

Definition at line 230 of file TKDE.h.

◆ fSigma

Double_t TKDE::fSigma
private

Data std deviation.

Definition at line 216 of file TKDE.h.

◆ fSigmaRob

Double_t TKDE::fSigmaRob
private

Data std deviation (robust estimation)

Definition at line 217 of file TKDE.h.

◆ fSumOfCounts

Double_t TKDE::fSumOfCounts
private

Data sum of weights.

Definition at line 212 of file TKDE.h.

◆ fUpperPDF

TF1* TKDE::fUpperPDF
private

Output Kernel Density Estimation PDF function.

Definition at line 194 of file TKDE.h.

◆ fUseBins

Bool_t TKDE::fUseBins
private

Definition at line 206 of file TKDE.h.

◆ fUseBinsNEvents

UInt_t TKDE::fUseBinsNEvents
private

If the algorithm is allowed to use automatic (relaxed) binning this is the minimum number of events to do so.

Definition at line 213 of file TKDE.h.

◆ fUseMinMaxFromData

Bool_t TKDE::fUseMinMaxFromData
private

Flag top control if min and max must be used from data.

Definition at line 208 of file TKDE.h.

◆ fUseMirroring

Bool_t TKDE::fUseMirroring
private

Definition at line 205 of file TKDE.h.

◆ fWeightSize

Double_t TKDE::fWeightSize
private

Caches the weight size.

Definition at line 223 of file TKDE.h.

◆ fXMax

Double_t TKDE::fXMax
private

Data maximum value.

Definition at line 219 of file TKDE.h.

◆ fXMin

Double_t TKDE::fXMin
private

Data minimum value.

Definition at line 218 of file TKDE.h.

Libraries for TKDE:
[legend]

The documentation for this class was generated from the following files: