ROOT   Reference Guide
Searching...
No Matches
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 * *
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 * (see tmva/doc/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
constexpr Bool_t kFALSE
Definition RtypesCore.h:101
#define ClassDef(name, id)
Definition Rtypes.h:337
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void value
Range definition for genetic algorithm.
virtual ~GeneticRange()
destructor
Double_t fTotalLength
the distance between the lower and upper constraints
Double_t ReMap(Double_t val)
remapping the value to the allowed space
Double_t GetTotalLength()
Interval * fInterval
holds the complete information of the interval
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
TRandom3 * fRandomGenerator
the randomGenerator for calculating the new values
Double_t fTo
the constraints of the coefficient
The TMVA::Interval Class.
Definition Interval.h:61
Random number generator class based on M.
Definition TRandom3.h:27
create variable transformations