CMS 3D CMS Logo

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 () override
 
GeometricAnnealingclone () const override
 
double currentTemp () const override
 
double cutoff () const override
 
void debug () const override
 
 GeometricAnnealing (const double cutoff=3.0, const double T=256.0, const double annealing_ratio=0.25)
 
double initialTemp () const override
 
bool isAnnealed () const override
 
double phi (double chi2) const override
 
void resetAnnealing () override
 
double weight (double chi2) const override
 
- 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::GeometricAnnealing ( const double  cutoff = 3.0,
const double  T = 256.0,
const double  annealing_ratio = 0.25 
)

Member Function Documentation

◆ anneal()

void GeometricAnnealing::anneal ( )
overridevirtual

Implements AnnealingSchedule.

Definition at line 10 of file GeometricAnnealing.cc.

References theRatio, and theT.

10 { theT = 1 + (theT - 1) * theRatio; }

◆ clone()

GeometricAnnealing* GeometricAnnealing::clone ( void  ) const
inlineoverridevirtual

Implements AnnealingSchedule.

Definition at line 42 of file GeometricAnnealing.h.

42 { return new GeometricAnnealing(*this); };
GeometricAnnealing(const double cutoff=3.0, const double T=256.0, const double annealing_ratio=0.25)

◆ currentTemp()

double GeometricAnnealing::currentTemp ( ) const
overridevirtual

Implements AnnealingSchedule.

Definition at line 33 of file GeometricAnnealing.cc.

References theT.

33 { return theT; }

◆ cutoff()

double GeometricAnnealing::cutoff ( ) const
overridevirtual

Implements AnnealingSchedule.

Definition at line 28 of file GeometricAnnealing.cc.

References mathSSE::sqrt(), and theChi2cut.

28  {
29  // std::cout << "[GeometricAnnealing] cutoff called!" << std::endl;
30  return sqrt(theChi2cut);
31 }
T sqrt(T t)
Definition: SSEVec.h:19

◆ debug()

void GeometricAnnealing::debug ( ) const
overridevirtual

Implements AnnealingSchedule.

Definition at line 39 of file GeometricAnnealing.cc.

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

39  {
40  std::cout << "[GeometricAnnealing] chi2_cut=" << theChi2cut << ", Tini=" << theT0 << ", ratio=" << theRatio
41  << std::endl;
42 }

◆ initialTemp()

double GeometricAnnealing::initialTemp ( ) const
overridevirtual

Implements AnnealingSchedule.

Definition at line 35 of file GeometricAnnealing.cc.

References theT0.

35 { return theT0; }

◆ isAnnealed()

bool GeometricAnnealing::isAnnealed ( ) const
overridevirtual

is it annealed yet?

Implements AnnealingSchedule.

Definition at line 37 of file GeometricAnnealing.cc.

References theT.

37 { return (theT < 1.02); }

◆ phi()

double GeometricAnnealing::phi ( double  chi2) const
overridevirtual

◆ resetAnnealing()

void GeometricAnnealing::resetAnnealing ( )
overridevirtual

Implements AnnealingSchedule.

Definition at line 24 of file GeometricAnnealing.cc.

References theT, and theT0.

◆ weight()

double GeometricAnnealing::weight ( double  chi2) const
overridevirtual

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

Implements AnnealingSchedule.

Definition at line 12 of file GeometricAnnealing.cc.

References nano_mu_local_reco_cff::chi2, edm::isNotFinite(), phi(), and theChi2cut.

12  {
13  double mphi = phi(chi2);
14  long double newtmp = mphi / (mphi + phi(theChi2cut));
15  if (edm::isNotFinite(newtmp)) {
16  if (chi2 < theChi2cut)
17  newtmp = 1.;
18  else
19  newtmp = 0.;
20  }
21  return newtmp;
22 }
constexpr bool isNotFinite(T x)
Definition: isFinite.h:9
double phi(double chi2) const override

Member Data Documentation

◆ theChi2cut

double GeometricAnnealing::theChi2cut
private

Definition at line 47 of file GeometricAnnealing.h.

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

◆ theRatio

double GeometricAnnealing::theRatio
private

Definition at line 48 of file GeometricAnnealing.h.

Referenced by anneal(), and debug().

◆ theT

double GeometricAnnealing::theT
private

Definition at line 46 of file GeometricAnnealing.h.

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

◆ theT0

double GeometricAnnealing::theT0
private

Definition at line 42 of file GeometricAnnealing.h.

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