Bsoft 2.1.4
Bernard's software package
ctf.h File Reference

Header file for CTF (contrast transfer function) functions. More...

#include <cmath>
#include <vector>
#include "Bstring.h"
#include "Complex.h"
#include "json.h"
#include "utilities.h"

Classes

class  CTFparam
 

Macros

#define NCTFPARAM   10
 
#define _CTFparam_
 

Functions

JSvalue ctf_to_json (CTFparam &cp)
 Converts microscope parameters to a JSON object list. More...
 
CTFparam ctf_from_json (JSvalue &js)
 Converts a JSON object list to microscope parameters. More...
 
CTFparam ctf_from_json (string filename)
 Converts a JSON object list to microscope parameters. More...
 
int ctf_update_from_json (CTFparam &cp, JSvalue &js)
 Converts a JSON object list to microscope parameters. More...
 
double electron_wavelength (double volt)
 Calculates the wavelength in angstrom from the acceleration voltage. More...
 
double beta2 (double volt)
 Calculates the square of the relative electron velocity. More...
 
double beta (double volt)
 Calculates the relative electron velocity. More...
 
vector< double > C_curve (long n, double freq_step)
 Calculates the carbon scattering curve. More...
 
vector< double > defocus_range_profile (CTFparam &ctf, double freq_step, double def_min, double def_max, double def_step)
 Calculates a weighting profile associated with a range of defocus values. More...
 
double defocus_factor (CTFparam &ctf, double def_min, double def_max, double def_step)
 Calculates an integrated defocus weighting factor for a range of defocus values. More...
 

Detailed Description

Header file for CTF (contrast transfer function) functions.

Author
Bernard Heymann
Date
Created: 20000426
Modified: 20230105

Macro Definition Documentation

◆ _CTFparam_

#define _CTFparam_

◆ NCTFPARAM

#define NCTFPARAM   10

Function Documentation

◆ beta()

double beta ( double  volt)

Calculates the relative electron velocity.

Parameters
voltacceleration voltage.
Returns
double relative electron velocity.
                          1
beta = sqrt(1 - ---------------------)
                (1+e*volt/(me*c^2))^2

◆ beta2()

double beta2 ( double  volt)

Calculates the square of the relative electron velocity.

Parameters
voltacceleration voltage.
Returns
double square of the relative electron velocity.
                     1
beta2 = 1 - ---------------------
            (1+e*volt/(me*c^2))^2

◆ C_curve()

vector< double > C_curve ( long  n,
double  freq_step 
)

Calculates the carbon scattering curve.

Parameters
nlength of curve.
freq_stepfrequency step size.
Returns
vector<double> array with C-curve.
The curve is based on the sum of five Gaussians.

◆ ctf_from_json() [1/2]

CTFparam ctf_from_json ( JSvalue js)

Converts a JSON object list to microscope parameters.

Parameters
&jsJSON object list.
Returns
CTFparam microscope parameter structure.

◆ ctf_from_json() [2/2]

CTFparam ctf_from_json ( string  filename)

Converts a JSON object list to microscope parameters.

Parameters
filenameJSON file name.
Returns
CTFparam microscope parsmeter structure.

◆ ctf_to_json()

JSvalue ctf_to_json ( CTFparam cp)

Converts microscope parameters to a JSON object list.

Parameters
&cpmicroscope parsmeter structure.
Returns
JSvalue JSON object list.

◆ ctf_update_from_json()

int ctf_update_from_json ( CTFparam cp,
JSvalue js 
)

Converts a JSON object list to microscope parameters.

Parameters
&cpCTF parameter structure.
&jsJSON object list.
Returns
int 0.

◆ defocus_factor()

double defocus_factor ( CTFparam ctf,
double  def_min,
double  def_max,
double  def_step 
)

Calculates an integrated defocus weighting factor for a range of defocus values.

Parameters
&ctfCTF parameters.
def_minminimum defocus.
def_maxmaximum defocus.
def_stepdefocus step.
Returns
vector<double> sum of all CTF curves.
The CTF curves are calculated up to the frequency cutoff determined by the objective aperture.

◆ defocus_range_profile()

vector< double > defocus_range_profile ( CTFparam ctf,
double  freq_step,
double  def_min,
double  def_max,
double  def_step 
)

Calculates a weighting profile associated with a range of defocus values.

Parameters
&ctfCTF parameters.
freq_stepfrequency step size.
def_minminimum defocus.
def_maxmaximum defocus.
def_stepdefocus step.
Returns
vector<double> sum of all CTF curves.
The CTF curves are calculated up to the frequency cutoff determined by the objective aperture.

◆ electron_wavelength()

double electron_wavelength ( double  volt)

Calculates the wavelength in angstrom from the acceleration voltage.

Parameters
voltacceleration voltage.
Returns
double wavelength in angstrom, <0 on error.
                   12.26
lambda = ----------------------------
         sqrt(volt*(1+volt*0.9788e-6)
                       1e10 * h
lambda = ---------------------------------------
         sqrt(2*me*e*volt*(1+e*volt/(2*me*c^2)))