Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
PDEFoamEvent.cxx
Go to the documentation of this file.
1// @(#)root/tmva $Id$
2// Author: Tancredi Carli, Dominik Dannheim, Alexander Voigt
3
4/**********************************************************************************
5 * Project: TMVA - a Root-integrated toolkit for multivariate data analysis *
6 * Package: TMVA *
7 * Classes: PDEFoamEvent *
8 * *
9 * *
10 * Description: *
11 * Implementation. *
12 * *
13 * Authors (alphabetical): *
14 * Tancredi Carli - CERN, Switzerland *
15 * Dominik Dannheim - CERN, Switzerland *
16 * S. Jadach - Institute of Nuclear Physics, Cracow, Poland *
17 * Alexander Voigt - TU Dresden, Germany *
18 * Peter Speckmayer - CERN, Switzerland *
19 * *
20 * Copyright (c) 2008, 2010: *
21 * CERN, Switzerland *
22 * MPI-K Heidelberg, Germany *
23 * *
24 * Redistribution and use in source and binary forms, with or without *
25 * modification, are permitted according to the terms listed in LICENSE *
26 * (see tmva/doc/LICENSE) *
27 **********************************************************************************/
28
29/*! \class TMVA::PDEFoamEvent
30\ingroup TMVA
31This PDEFoam variant stores in every cell the sum of event weights
32and the sum of the squared event weights. It therefore acts as
33event density estimator. It should be booked together with the
34PDEFoamEventDensity density estimator, which returns the event
35weight density at a given phase space point during the foam
36build-up.
37*/
38
39#include "TMVA/PDEFoamEvent.h"
40
41#include "TMVA/Event.h"
42#include "TMVA/MsgLogger.h"
43#include "TMVA/PDEFoam.h"
44#include "TMVA/Types.h"
45
46#include "Rtypes.h"
47
48namespace TMVA {
49 class PDEFoamCell;
50}
51class TString;
52
53
54////////////////////////////////////////////////////////////////////////////////
55/// Default constructor for streamer, user should not use it.
56
61
62////////////////////////////////////////////////////////////////////////////////
63
67
68////////////////////////////////////////////////////////////////////////////////
69/// Copy Constructor NOT IMPLEMENTED (NEVER USED)
70
72 : PDEFoam(from)
73{
74 Log() << kFATAL << "COPY CONSTRUCTOR NOT IMPLEMENTED" << Endl;
75}
76
77////////////////////////////////////////////////////////////////////////////////
78/// This function fills an event weight 'wt' into the PDEFoam. Cell
79/// element 0 is filled with the weight 'wt', and element 1 is
80/// filled with the squared weight.
81
83{
84 // find corresponding foam cell
85 std::vector<Float_t> values = ev->GetValues();
86 std::vector<Float_t> tvalues = VarTransform(values);
87 PDEFoamCell *cell = FindCell(tvalues);
88
89 // 0. Element: Sum of event weights 'wt'
90 // 1. Element: Sum of squared event weights 'wt'
91 SetCellElement(cell, 0, GetCellElement(cell, 0) + wt);
92 SetCellElement(cell, 1, GetCellElement(cell, 1) + wt * wt);
93}
float Float_t
Float 4 bytes (float).
Definition RtypesCore.h:71
char name[80]
Definition TGX11.cxx:148
std::vector< Float_t > & GetValues()
Definition Event.h:94
PDEFoamEvent()
Default constructor for streamer, user should not use it.
PDEFoamEvent(const PDEFoamEvent &)
Copy Constructor NOT IMPLEMENTED (NEVER USED).
void FillFoamCells(const Event *ev, Float_t wt) override
This function fills an event weight 'wt' into the PDEFoam.
Double_t GetCellElement(const PDEFoamCell *cell, UInt_t i) const
Returns cell element i of cell 'cell'.
Definition PDEFoam.cxx:1411
void SetCellElement(PDEFoamCell *cell, UInt_t i, Double_t value)
Set cell element i of cell to value.
Definition PDEFoam.cxx:1427
PDEFoam(const PDEFoam &)
Copy Constructor NOT IMPLEMENTED (NEVER USED).
Definition PDEFoam.cxx:206
Float_t VarTransform(Int_t idim, Float_t x) const
Definition PDEFoam.h:281
MsgLogger & Log() const
Definition PDEFoam.h:240
PDEFoamCell * FindCell(const std::vector< Float_t > &) const
Find cell that contains 'xvec' (in foam coordinates [0,1]).
Definition PDEFoam.cxx:1075
Basic string class.
Definition TString.h:138
create variable transformations
MsgLogger & Endl(MsgLogger &ml)
Definition MsgLogger.h:148