CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | Private Attributes
GeometricAnnealing Class Reference

#include <GeometricAnnealing.h>

Inheritance diagram for GeometricAnnealing:
AnnealingSchedule DefaultMVFAnnealing

Classes

class  A
 

Public Member Functions

void anneal ()
 
GeometricAnnealingclone () const
 
double currentTemp () const
 
double cutoff () const
 
void debug () const
 
 GeometricAnnealing (const double cutoff=3.0, const double T=256.0, const double annealing_ratio=0.25)
 
double initialTemp () const
 
bool isAnnealed () const
 
double phi (double chi2) const
 
void resetAnnealing ()
 
double weight (double chi2) const
 
- Public Member Functions inherited from AnnealingSchedule
virtual ~AnnealingSchedule ()
 

Private Attributes

double theChi2cut
 
double theRatio
 
double theT
 
double theT0
 

Detailed Description

Definition at line 7 of file GeometricAnnealing.h.

Constructor & Destructor Documentation

GeometricAnnealing::GeometricAnnealing ( const double  cutoff = 3.0,
const double  T = 256.0,
const double  annealing_ratio = 0.25 
)

Definition at line 6 of file GeometricAnnealing.cc.

Referenced by clone().

Member Function Documentation

void GeometricAnnealing::anneal ( )
virtual

Implements AnnealingSchedule.

Definition at line 11 of file GeometricAnnealing.cc.

References theRatio, and theT.

12 {
13  theT=1+(theT-1)*theRatio;
14 }
GeometricAnnealing* GeometricAnnealing::clone ( void  ) const
inlinevirtual

Implements AnnealingSchedule.

Definition at line 45 of file GeometricAnnealing.h.

References GeometricAnnealing().

46  {
47  return new GeometricAnnealing ( * this );
48  };
GeometricAnnealing(const double cutoff=3.0, const double T=256.0, const double annealing_ratio=0.25)
double GeometricAnnealing::currentTemp ( ) const
virtual

Implements AnnealingSchedule.

Definition at line 44 of file GeometricAnnealing.cc.

References theT.

45 {
46  return theT;
47 }
double GeometricAnnealing::cutoff ( ) const
virtual

Implements AnnealingSchedule.

Definition at line 38 of file GeometricAnnealing.cc.

References mathSSE::sqrt(), and theChi2cut.

39 {
40  // std::cout << "[GeometricAnnealing] cutoff called!" << std::endl;
41  return sqrt(theChi2cut);
42 }
T sqrt(T t)
Definition: SSEVec.h:28
void GeometricAnnealing::debug ( ) const
virtual

Implements AnnealingSchedule.

Definition at line 59 of file GeometricAnnealing.cc.

References gather_cfg::cout, theChi2cut, theRatio, and theT0.

60 {
61  std::cout << "[GeometricAnnealing] chi2_cut=" << theChi2cut << ", Tini="
62  << theT0 << ", ratio=" << theRatio << std::endl;
63 }
tuple cout
Definition: gather_cfg.py:41
double GeometricAnnealing::initialTemp ( ) const
virtual

Implements AnnealingSchedule.

Definition at line 49 of file GeometricAnnealing.cc.

References theT0.

50 {
51  return theT0;
52 }
bool GeometricAnnealing::isAnnealed ( ) const
virtual

is it annealed yet?

Implements AnnealingSchedule.

Definition at line 54 of file GeometricAnnealing.cc.

References theT.

55 {
56  return ( theT < 1.02 );
57 }
double GeometricAnnealing::phi ( double  chi2) const
virtual

phi ( chi2 ) = e^( -.5 * chi2 / T )

Implements AnnealingSchedule.

Definition at line 33 of file GeometricAnnealing.cc.

References funct::exp(), and theT.

Referenced by weight().

34 {
35  return exp ( -.5 * chi2 / theT );
36 }
Exp< T >::type exp(const T &t)
Definition: Exp.h:22
void GeometricAnnealing::resetAnnealing ( )
virtual

Implements AnnealingSchedule.

Definition at line 28 of file GeometricAnnealing.cc.

References theT, and theT0.

29 {
30  theT=theT0;
31 }
double GeometricAnnealing::weight ( double  chi2) const
virtual

Returns phi(chi2) / ( phi(cutoff^2) + phi(chi2) ),

Implements AnnealingSchedule.

Definition at line 16 of file GeometricAnnealing.cc.

References phi(), and theChi2cut.

17 {
18  double mphi = phi ( chi2 );
19  long double newtmp = mphi / ( mphi + phi ( theChi2cut ) );
20  if ( std::isinf(newtmp) )
21  {
22  if ( chi2 < theChi2cut ) newtmp=1.;
23  else newtmp=0.;
24  }
25  return newtmp;
26 }
double phi(double chi2) const

Member Data Documentation

double GeometricAnnealing::theChi2cut
private

Definition at line 53 of file GeometricAnnealing.h.

Referenced by cutoff(), debug(), and weight().

double GeometricAnnealing::theRatio
private

Definition at line 54 of file GeometricAnnealing.h.

Referenced by anneal(), and debug().

double GeometricAnnealing::theT
private

Definition at line 52 of file GeometricAnnealing.h.

Referenced by anneal(), currentTemp(), isAnnealed(), phi(), and resetAnnealing().

double GeometricAnnealing::theT0
private

Definition at line 48 of file GeometricAnnealing.h.

Referenced by debug(), initialTemp(), and resetAnnealing().