Logo ROOT   6.10/09
Reference Guide
Volume.h
Go to the documentation of this file.
1 // @(#)root/tmva $Id$
2 // Author: Andreas Hoecker, Joerg Stelzer, Helge Voss, Kai Voss
3 
4 /**********************************************************************************
5  * Project: TMVA - a Root-integrated toolkit for multivariate data analysis *
6  * Package: TMVA *
7  * Class : Volume *
8  * Web : http://tmva.sourceforge.net *
9  * *
10  * Description: *
11  * Volume for BinarySearchTree *
12  * *
13  * Authors (alphabetical): *
14  * Andreas Hoecker <Andreas.Hocker@cern.ch> - CERN, Switzerland *
15  * Helge Voss <Helge.Voss@cern.ch> - MPI-K Heidelberg, Germany *
16  * Kai Voss <Kai.Voss@cern.ch> - U. of Victoria, Canada *
17  * *
18  * Copyright (c) 2005: *
19  * CERN, Switzerland *
20  * U. of Victoria, Canada *
21  * MPI-K Heidelberg, Germany *
22  * *
23  * Redistribution and use in source and binary forms, with or without *
24  * modification, are permitted according to the terms listed in LICENSE *
25  * (http://tmva.sourceforge.net/LICENSE) *
26  **********************************************************************************/
27 
28 #ifndef ROOT_TMVA_Volume
29 #define ROOT_TMVA_Volume
30 
31 //////////////////////////////////////////////////////////////////////////
32 // //
33 // Volume //
34 // //
35 // Volume for BinarySearchTree //
36 // //
37 // volume element: cubic variable space beteen upper and lower bonds of //
38 // nvar-dimensional variable space //
39 // //
40 //////////////////////////////////////////////////////////////////////////
41 
42 #include <vector>
43 #include "Rtypes.h"
44 //#include "time.h"
45 
46 namespace TMVA {
47 
48  class Volume {
49 
50  public:
51 
52  // constructors
53  Volume( std::vector<Float_t>* l, std::vector<Float_t>* u = 0);
54  Volume( std::vector<Double_t>* l = 0, std::vector<Double_t>* u = 0);
55  Volume( Volume& );
56  Volume( Float_t* l , Float_t* u , Int_t nvar );
57  Volume( Double_t* l , Double_t* u , Int_t nvar );
58  Volume( Float_t l , Float_t u );
59  Volume( Double_t l , Double_t u );
60 
61  // destructor
62  virtual ~Volume( void );
63 
64  // destruct the volue
65  void Delete ( void );
66  // "scale" the volume by multiplying each upper and lower boundary by "f"
67  void Scale ( Double_t f );
68  // "scale" the volume by symmetrically blowing up the interval in each dimension
69  void ScaleInterval( Double_t f );
70  void Print ( void ) const;
71 
72  // allow direct access for better speed
73  std::vector<Double_t> *fLower; // vector with lower volume dimensions
74  std::vector<Double_t> *fUpper; // vector with upper volume dimensions
75 
76  private:
77 
78  Bool_t fOwnerShip; // flag if "boundary vector" is owned by the volume of not
79  };
80 
81 } // namespace TMVA
82 
83 #endif
std::vector< Double_t > * fLower
Definition: Volume.h:73
void Delete(void)
delete array of volume bondaries
Definition: Volume.cxx:144
float Float_t
Definition: RtypesCore.h:53
std::vector< Double_t > * fUpper
Definition: Volume.h:74
void ScaleInterval(Double_t f)
"scale" the volume by symmetrically blowing up the interval in each dimension
Definition: Volume.cxx:162
int Int_t
Definition: RtypesCore.h:41
bool Bool_t
Definition: RtypesCore.h:59
Volume for BinarySearchTree.
Definition: Volume.h:48
virtual ~Volume(void)
destructor
Definition: Volume.cxx:135
Bool_t fOwnerShip
Definition: Volume.h:78
void Print(void) const
printout of the volume boundaries
Definition: Volume.cxx:175
void Scale(Double_t f)
"scale" the volume by multiplying each upper and lower boundary by "f"
Definition: Volume.cxx:153
Volume(std::vector< Float_t > *l, std::vector< Float_t > *u=0)
constructor specifying the volume by std::vectors of floats
Definition: Volume.cxx:56
TLine * l
Definition: textangle.C:4
double f(double x)
double Double_t
Definition: RtypesCore.h:55
Abstract ClassifierFactory template that handles arbitrary types.