Logo ROOT   6.08/07
Reference Guide
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  * Web : http://tmva.sourceforge.net *
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  * (http://tmva.sourceforge.net/LICENSE) *
27  **********************************************************************************/
28 
29 //_____________________________________________________________________
30 //
31 // PDEFoamEvent
32 //
33 // This PDEFoam variant stores in every cell the sum of event weights
34 // and the sum of the squared event weights. It therefore acts as
35 // event density estimator. It should be booked together with the
36 // PDEFoamEventDensity density estimator, which returns the event
37 // weight density at a given phase space point during the foam
38 // build-up.
39 //
40 //_____________________________________________________________________
41 
42 #include "TMVA/PDEFoamEvent.h"
43 
44 #include "TMVA/Event.h"
45 #include "TMVA/MsgLogger.h"
46 #include "TMVA/PDEFoam.h"
47 #include "TMVA/Types.h"
48 
49 #include "Rtypes.h"
50 
51 namespace TMVA {
52  class PDEFoamCell;
53 }
54 class TString;
55 
57 
58 ////////////////////////////////////////////////////////////////////////////////
59 /// Default constructor for streamer, user should not use it.
60 
62 : PDEFoam()
63 {
64 }
65 
66 ////////////////////////////////////////////////////////////////////////////////
67 
69  : PDEFoam(name)
70 {}
71 
72 ////////////////////////////////////////////////////////////////////////////////
73 /// Copy Constructor NOT IMPLEMENTED (NEVER USED)
74 
76  : PDEFoam(from)
77 {
78  Log() << kFATAL << "COPY CONSTRUCTOR NOT IMPLEMENTED" << Endl;
79 }
80 
81 ////////////////////////////////////////////////////////////////////////////////
82 /// This function fills an event weight 'wt' into the PDEFoam. Cell
83 /// element 0 is filled with the weight 'wt', and element 1 is
84 /// filled with the squared weight.
85 
87 {
88  // find corresponding foam cell
89  std::vector<Float_t> values = ev->GetValues();
90  std::vector<Float_t> tvalues = VarTransform(values);
91  PDEFoamCell *cell = FindCell(tvalues);
92 
93  // 0. Element: Sum of event weights 'wt'
94  // 1. Element: Sum of squared event weights 'wt'
95  SetCellElement(cell, 0, GetCellElement(cell, 0) + wt);
96  SetCellElement(cell, 1, GetCellElement(cell, 1) + wt * wt);
97 }
MsgLogger & Endl(MsgLogger &ml)
Definition: MsgLogger.h:162
float Float_t
Definition: RtypesCore.h:53
virtual void FillFoamCells(const Event *ev, Float_t wt)
This function fills an event weight &#39;wt&#39; into the PDEFoam.
Float_t VarTransform(Int_t idim, Float_t x) const
Definition: PDEFoam.h:303
Basic string class.
Definition: TString.h:137
Double_t GetCellElement(const PDEFoamCell *cell, UInt_t i) const
Returns cell element i of cell &#39;cell&#39;.
Definition: PDEFoam.cxx:1416
void SetCellElement(PDEFoamCell *cell, UInt_t i, Double_t value)
Set cell element i of cell to value.
Definition: PDEFoam.cxx:1432
PDEFoamCell * FindCell(const std::vector< Float_t > &) const
Find cell that contains &#39;xvec&#39; (in foam coordinates [0,1]).
Definition: PDEFoam.cxx:1080
MsgLogger & Log() const
Definition: PDEFoam.h:262
#define ClassImp(name)
Definition: Rtypes.h:279
PDEFoamEvent()
Default constructor for streamer, user should not use it.
Abstract ClassifierFactory template that handles arbitrary types.
std::vector< Float_t > & GetValues()
Definition: Event.h:96
char name[80]
Definition: TGX11.cxx:109