Logo ROOT  
Reference Guide
GeneticRange.h
Go to the documentation of this file.
1// @(#)root/tmva $Id$
2// Author: Peter Speckmayer
3
4/**********************************************************************************
5 * Project: TMVA - a Root-integrated toolkit for multivariate data analysis *
6 * Package: TMVA *
7 * Class : GeneticRange *
8 * Web : http://tmva.sourceforge.net *
9 * *
10 * Description: *
11 * Range definition for genetic algorithm *
12 * *
13 * Authors (alphabetical): *
14 * Peter Speckmayer <speckmay@mail.cern.ch> - CERN, Switzerland *
15 * *
16 * Copyright (c) 2005: *
17 * CERN, Switzerland *
18 * MPI-K Heidelberg, Germany *
19 * *
20 * Redistribution and use in source and binary forms, with or without *
21 * modification, are permitted according to the terms listed in LICENSE *
22 * (http://tmva.sourceforge.net/LICENSE) *
23 **********************************************************************************/
24
25#ifndef ROOT_TMVA_GeneticRange
26#define ROOT_TMVA_GeneticRange
27
28//////////////////////////////////////////////////////////////////////////
29// //
30// GeneticRange //
31// //
32// Range definition for genetic algorithm //
33// //
34//////////////////////////////////////////////////////////////////////////
35
36#include "TMVA/Interval.h"
37
38class TRandom3;
39
40namespace TMVA {
41
43
44 public:
45
46 GeneticRange( TRandom3* rnd, Interval *interval );
47 virtual ~GeneticRange();
48
49 Double_t Random( Bool_t near = kFALSE, Double_t value=0, Double_t spread=0.1, Bool_t mirror=kFALSE );
51
52 Double_t GetFrom() { return fFrom; }
53 Double_t GetTo() { return fTo; }
55
56 private:
57
58 Double_t fFrom, fTo; // the constraints of the coefficient
60
61 Interval *fInterval; // holds the complete information of the interval
62 Double_t fTotalLength; // the distance between the lower and upper constraints
63
64 // maps the values thrown outside of the ]from,to] interval back to the interval
65 // the values which leave the range on the from-side, are mapped in to the to-side
66 Double_t ReMap( Double_t val );
67
68 // same as before, but the values leaving the allowed range, are mirrored into the range.
70
71 TRandom3* fRandomGenerator; // the randomGenerator for calculating the new values
72
73 ClassDef(GeneticRange,0); // Range definition for genetic algorithm
74 };
75
76} // namespace TMVA
77
78#endif
const Bool_t kFALSE
Definition: RtypesCore.h:90
double Double_t
Definition: RtypesCore.h:57
#define ClassDef(name, id)
Definition: Rtypes.h:322
Range definition for genetic algorithm.
Definition: GeneticRange.h:42
virtual ~GeneticRange()
destructor
Double_t fTotalLength
Definition: GeneticRange.h:62
GeneticRange(TRandom3 *rnd, Interval *interval)
defines the "f" (from) and "t" (to) of the coefficient and takes a randomgenerator
Double_t ReMap(Double_t val)
remapping the value to the allowed space
Double_t GetTotalLength()
Definition: GeneticRange.h:54
Interval * fInterval
Definition: GeneticRange.h:61
Double_t RandomDiscrete()
creates a new random value for the coefficient; returns a discrete value
Double_t Random(Bool_t near=kFALSE, Double_t value=0, Double_t spread=0.1, Bool_t mirror=kFALSE)
creates a new random value for the coefficient Parameters:
Double_t ReMapMirror(Double_t val)
remapping the value to the allowed space by reflecting on the boundaries
Double_t GetFrom()
Definition: GeneticRange.h:52
Double_t GetTo()
Definition: GeneticRange.h:53
TRandom3 * fRandomGenerator
Definition: GeneticRange.h:71
The TMVA::Interval Class.
Definition: Interval.h:61
Random number generator class based on M.
Definition: TRandom3.h:27
create variable transformations