EMAN2
Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
EMAN::nn4_rectReconstructor Class Reference

Direct Fourier inversion Reconstructor for extremly rectangular object. More...

#include <reconstructor.h>

Inheritance diagram for EMAN::nn4_rectReconstructor:
Inheritance graph
[legend]
Collaboration diagram for EMAN::nn4_rectReconstructor:
Collaboration graph
[legend]

Public Member Functions

 nn4_rectReconstructor ()
 
 nn4_rectReconstructor (const string &symmetry, int size, int npad)
 
virtual ~nn4_rectReconstructor ()
 
virtual void setup ()
 Initialize the reconstructor. More...
 
virtual int insert_slice (const EMData *const slice, const Transform &euler, const float weight)
 Insert an image slice to the reconstructor. More...
 
virtual EMDatafinish (bool doift=true)
 Finish reconstruction and return the complete model. More...
 
virtual string get_name () const
 Get the unique name of this class (especially for factory based instantiation access) More...
 
virtual string get_desc () const
 Get a clear, concise description of this class. More...
 
virtual TypeDict get_param_types () const
 
void setup (const string &symmetry, int size, int npad)
 
int insert_padfft_slice (EMData *padded, const Transform &trans, float mult=1)
 
- Public Member Functions inherited from EMAN::Reconstructor
 Reconstructor ()
 
virtual ~Reconstructor ()
 
virtual void setup_seed (EMData *seed, float seed_weight)
 Initialize the reconstructor with a seed volume. More...
 
virtual void setup_seedandweights (EMData *seed, EMData *weight)
 Initialize the reconstructor with a seed volume, as above. More...
 
virtual EMDatapreprocess_slice (const EMData *const slice, const Transform &t=Transform())
 While you can just insert unprocessed slices, if you call preprocess_slice yourself, and insert the returned slice instead, repeatedly, it can save a fair bit of computation. More...
 
int insert_slice (const EMData *const slice, const Transform &euler)
 
virtual int determine_slice_agreement (EMData *slice, const Transform &euler, const float weight=1.0, bool sub=true)
 Compares a slice to the current reconstruction volume and computes a normalization factor and quality. More...
 
virtual EMDataprojection (const Transform &euler, int ret_fourier=1)
 This will create a projection from the current reconstruction. More...
 
virtual void clear ()
 set the volume and tmp_volume data to zero, for use in Monte Carlo reconstructors More...
 
void print_params () const
 Print the current parameters to std::out. More...
 
EMObjectoperator[] (const string &key)
 
- Public Member Functions inherited from EMAN::FactoryBase
 FactoryBase ()
 
virtual ~FactoryBase ()
 
Dict get_params () const
 get a copy of the parameters of this class More...
 
void set_params (const Dict &new_params)
 Set new parameters. More...
 
void set_param (const string key, const EMObject val)
 
void insert_params (const Dict &new_params)
 Insert parameters. More...
 
Dict copy_relevant_params (const FactoryBase *const that) const
 

Static Public Member Functions

static ReconstructorNEW ()
 

Static Public Attributes

static const string NAME = "nn4_rect"
 

Private Member Functions

void buildFFTVolume ()
 
void buildNormVolume ()
 
void load_default_settings ()
 

Private Attributes

EMDatam_volume
 
EMDatam_wptr
 
string m_symmetry
 
int m_weighting
 
int m_vnx
 
int m_vny
 
int m_vnz
 
int m_npad
 
int m_nsym
 
int m_ndim
 
int m_vnzp
 
int m_vnyp
 
int m_vnxp
 
int m_vnzc
 
int m_vnyc
 
int m_vnxc
 
int m_count
 
float m_xratio
 
float m_yratio
 
float m_zratio
 
float m_xscale
 
float m_yscale
 
int m_sizeofprojection
 
float m_wghta
 
float m_wghtb
 
float m_osnr
 

Additional Inherited Members

- Protected Attributes inherited from EMAN::FactoryBase
Dict params
 This is the dictionary the stores the parameters of the object. More...
 

Detailed Description

Direct Fourier inversion Reconstructor for extremly rectangular object.

Definition at line 1100 of file reconstructor.h.

Constructor & Destructor Documentation

◆ nn4_rectReconstructor() [1/2]

nn4_rectReconstructor::nn4_rectReconstructor ( )

Definition at line 3451 of file reconstructor.cpp.

3452{
3453 m_volume = NULL;
3454 m_wptr = NULL;
3455}

References m_volume, and m_wptr.

Referenced by NEW().

◆ nn4_rectReconstructor() [2/2]

nn4_rectReconstructor::nn4_rectReconstructor ( const string &  symmetry,
int  size,
int  npad 
)

Definition at line 3457 of file reconstructor.cpp.

3458{
3459 m_volume = NULL;
3460 m_wptr = NULL;
3461 setup( symmetry, size, npad );
3463 print_params();
3464}
void print_params() const
Print the current parameters to std::out.
virtual void setup()
Initialize the reconstructor.

References load_default_settings(), m_volume, m_wptr, EMAN::Reconstructor::print_params(), and setup().

◆ ~nn4_rectReconstructor()

nn4_rectReconstructor::~nn4_rectReconstructor ( )
virtual

Definition at line 3466 of file reconstructor.cpp.

3467{
3468 //if( m_delete_volume ) checked_delete(m_volume);
3469
3470 //if( m_delete_weight ) checked_delete( m_wptr );
3471
3472 //checked_delete( m_result );
3473}

Member Function Documentation

◆ buildFFTVolume()

void nn4_rectReconstructor::buildFFTVolume ( )
private

Definition at line 3547 of file reconstructor.cpp.

3547 {
3548 int offset = 2 - m_vnxp%2;
3549
3550 m_volume = params["fftvol"];
3551
3552 if( m_volume->get_xsize() != m_vnxp+offset && m_volume->get_ysize() != m_vnyp && m_volume->get_zsize() != m_vnzp ) {
3553 m_volume->set_size(m_vnxp+offset,m_vnyp,m_vnzp);
3554 m_volume->to_zero();
3555 }
3556 // ----------------------------------------------------------------
3557 // Added by Zhengfan Yang on 03/15/07
3558 // Original author: please check whether my revision is correct and
3559 // other Reconstructor need similiar revision.
3560 if ( m_vnxp % 2 == 0 ) m_volume->set_fftodd(0);
3561 else m_volume->set_fftodd(1);
3562 // ----------------------------------------------------------------
3563
3564 m_volume->set_nxc(m_vnxp/2);
3565 m_volume->set_complex(true);
3566 m_volume->set_ri(true);
3567 m_volume->set_fftpad(true);
3568 m_volume->set_attr("npad", m_npad);
3569 m_volume->set_array_offsets(0,1,1);
3570}
Dict params
This is the dictionary the stores the parameters of the object.
Definition: emobject.h:953

References m_npad, m_vnxp, m_vnyp, m_vnzp, m_volume, and EMAN::FactoryBase::params.

Referenced by setup().

◆ buildNormVolume()

void nn4_rectReconstructor::buildNormVolume ( )
private

Definition at line 3572 of file reconstructor.cpp.

3572 {
3573
3574 m_wptr = params["weight"];
3575
3576 if( m_wptr->get_xsize() != m_vnxc+1 &&
3577 m_wptr->get_ysize() != m_vnyp &&
3578 m_wptr->get_zsize() != m_vnzp ) {
3579 m_wptr->set_size(m_vnxc+1,m_vnyp,m_vnzp);
3580 m_wptr->to_zero();
3581 }
3582
3583 m_wptr->set_array_offsets(0,1,1);
3584}

References m_vnxc, m_vnyp, m_vnzp, m_wptr, and EMAN::FactoryBase::params.

Referenced by setup().

◆ finish()

EMData * nn4_rectReconstructor::finish ( bool  doift = true)
virtual

Finish reconstruction and return the complete model.

Parameters
doiftA flag indicating whether the returned object should be guaranteed to be in real-space (true) or should be left in whatever space the reconstructor generated
Returns
The result 3D model.

Reimplemented from EMAN::Reconstructor.

Definition at line 3774 of file reconstructor.cpp.

3775{
3776
3777 if( m_ndim==3 ) {
3778 m_volume->symplane0_rect(m_wptr);
3779 } else {
3780 for( int i=1; i <= m_vnyp; ++i ) {
3781
3782 if( (*m_wptr)(0, i, 1)==0.0 ) {
3783 int j = m_vnyp + 1 - i;
3784 (*m_wptr)(0, i, 1) = (*m_wptr)(0, j, 1);
3785 (*m_volume)(0, i, 1) = (*m_volume)(0, j, 1);
3786 (*m_volume)(1, i, 1) = (*m_volume)(1, j, 1);
3787 }
3788 }
3789 }
3790
3791
3792 int box = 7;
3793 int kc = (box-1)/2;
3794 vector< float > pow_a( m_ndim*kc+1, 1.0 );
3795 for( unsigned int i=1; i < pow_a.size(); ++i ) pow_a[i] = pow_a[i-1] * exp(m_wghta);
3796 pow_a.back()=0.0;
3797
3798 float alpha = 0.0;
3799 if( m_ndim==3) {
3800 int vol = box*box*box;
3801 float max = max3d( kc, pow_a );
3802 alpha = ( 1.0f - 1.0f/(float)vol ) / max;
3803 } else {
3804 int ara = box*box;
3805 float max = max2d( kc, pow_a );
3806 alpha = ( 1.0f - 1.0f/(float)ara ) / max;
3807 }
3808
3809 int ix,iy,iz;
3810 for (iz = 1; iz <= m_vnzp; iz++) {
3811 for (iy = 1; iy <= m_vnyp; iy++) {
3812 for (ix = 0; ix <= m_vnxc; ix++) {
3813 if ( (*m_wptr)(ix,iy,iz) > 0) {//(*v) should be treated as complex!!
3814 float tmp;
3815 tmp = (-2*((ix+iy+iz)%2)+1)/((*m_wptr)(ix,iy,iz)+m_osnr);
3816
3817 if( m_weighting == ESTIMATE ) {
3818 int cx = ix;
3819 int cy = (iy<=m_vnyc) ? iy - 1 : iy - 1 - m_vnyp;
3820 int cz = (iz<=m_vnzc) ? iz - 1 : iz - 1 - m_vnzp;
3821 float sum = 0.0;
3822 for( int ii = -kc; ii <= kc; ++ii ) {
3823 int nbrcx = cx + ii;
3824 if( nbrcx >= m_vnxc ) continue;
3825 for( int jj= -kc; jj <= kc; ++jj ) {
3826 int nbrcy = cy + jj;
3827 if( nbrcy <= -m_vnyc || nbrcy >= m_vnyc ) continue;
3828
3829 int kcz = (m_ndim==3) ? kc : 0;
3830 for( int kk = -kcz; kk <= kcz; ++kk ) {
3831 int nbrcz = cz + kk;
3832 if( nbrcz <= -m_vnyc || nbrcz >= m_vnyc ) continue;
3833 if( nbrcx < 0 ) {
3834 nbrcx = -nbrcx;
3835 nbrcy = -nbrcy;
3836 nbrcz = -nbrcz;
3837 }
3838 int nbrix = nbrcx;
3839 int nbriy = nbrcy >= 0 ? nbrcy + 1 : nbrcy + 1 + m_vnyp;
3840 int nbriz = nbrcz >= 0 ? nbrcz + 1 : nbrcz + 1 + m_vnzp;
3841 if( (*m_wptr)( nbrix, nbriy, nbriz ) == 0 ) {
3842 int c = m_ndim*kc+1 - std::abs(ii) - std::abs(jj) - std::abs(kk);
3843 sum = sum + pow_a[c];
3844 }
3845 }
3846 }
3847 }
3848 float wght = 1.0f / ( 1.0f - alpha * sum );
3849 tmp = tmp * wght;
3850 }
3851 (*m_volume)(2*ix,iy,iz) *= tmp;
3852 (*m_volume)(2*ix+1,iy,iz) *= tmp;
3853 }
3854 }
3855 }
3856 }
3857
3858 //if(m_ndim==2) printImage( m_volume );
3859
3860 // back fft
3861 m_volume->do_ift_inplace();
3862
3863
3864 int npad = m_volume->get_attr("npad");
3865 m_volume->depad();
3866 circumfnn_rect( m_volume, npad );
3867 m_volume->set_array_offsets( 0, 0, 0 );
3868
3869 return 0;
3870}
void circumfnn_rect(EMData *win, int npad)
float max2d(int kc, const vector< float > &pow_a)
float max3d(int kc, const vector< float > &pow_a)
@ ESTIMATE

References circumfnn_rect(), ESTIMATE, m_ndim, m_osnr, m_vnxc, m_vnyc, m_vnyp, m_vnzc, m_vnzp, m_volume, m_weighting, m_wghta, m_wptr, max2d(), and max3d().

◆ get_desc()

virtual string EMAN::nn4_rectReconstructor::get_desc ( ) const
inlinevirtual

Get a clear, concise description of this class.

Returns
a clear, concise description of this class

Implements EMAN::FactoryBase.

Definition at line 1128 of file reconstructor.h.

1129 {
1130 return "Direct Fourier inversion routine";
1131 }

◆ get_name()

virtual string EMAN::nn4_rectReconstructor::get_name ( ) const
inlinevirtual

Get the unique name of this class (especially for factory based instantiation access)

Returns
the unique name of this class

Implements EMAN::FactoryBase.

Definition at line 1123 of file reconstructor.h.

1124 {
1125 return NAME;
1126 }
static const string NAME

References NAME.

◆ get_param_types()

virtual TypeDict EMAN::nn4_rectReconstructor::get_param_types ( ) const
inlinevirtual
Returns
a TypeDict defining and describing the feasible parameters of this class

Implements EMAN::FactoryBase.

Definition at line 1138 of file reconstructor.h.

1139 {
1140 TypeDict d;
1141 d.put("sizeprojection", EMObject::INT);
1142 d.put("sizex", EMObject::INT);
1143 d.put("sizey", EMObject::INT);
1144 d.put("sizez", EMObject::INT);
1145 d.put("xratio", EMObject::FLOAT);
1146 d.put("yratio", EMObject::FLOAT);
1147 d.put("zratio", EMObject::FLOAT);
1148 d.put("npad", EMObject::INT);
1149 d.put("sign", EMObject::INT);
1150 d.put("ndim", EMObject::INT);
1151 d.put("snr", EMObject::FLOAT);
1152 d.put("symmetry", EMObject::STRING);
1153 d.put("snr", EMObject::FLOAT);
1154 d.put("fftvol", EMObject::EMDATA);
1155 d.put("weight", EMObject::EMDATA);
1156 d.put("weighting", EMObject::INT);
1157 return d;
1158 }

References EMAN::EMObject::EMDATA, EMAN::EMObject::FLOAT, EMAN::EMObject::INT, EMAN::TypeDict::put(), and EMAN::EMObject::STRING.

◆ insert_padfft_slice()

int nn4_rectReconstructor::insert_padfft_slice ( EMData padded,
const Transform trans,
float  mult = 1 
)

Definition at line 3682 of file reconstructor.cpp.

3683{
3684 Assert( padded != NULL );
3685
3686 vector<Transform> tsym = t.get_sym_proj(m_symmetry);
3687 for (unsigned int isym=0; isym < tsym.size(); isym++)
3688 m_volume->insert_rect_slice(m_wptr, padded, tsym[isym], m_sizeofprojection, m_xratio, m_yratio, m_zratio, m_npad, weight);
3689
3690 return 0;
3691
3692}
#define Assert(s)
Define Assert() function that is effective only when -DDEBUG is used.
Definition: emassert.h:42

References Assert, EMAN::Transform::get_sym_proj(), m_npad, m_sizeofprojection, m_symmetry, m_volume, m_wptr, m_xratio, m_yratio, and m_zratio.

Referenced by insert_slice().

◆ insert_slice()

int nn4_rectReconstructor::insert_slice ( const EMData *const  slice,
const Transform euler,
const float  weight 
)
virtual

Insert an image slice to the reconstructor.

To insert multiple image slices, call this function multiple times.

Parameters
sliceImage slice.
eulerEuler angle of this image slice.
weightA weighting factor for this slice, generally the number of particles in a class-average. May be ignored by some reconstructors
Returns
0 if OK. 1 if error.

Reimplemented from EMAN::Reconstructor.

Definition at line 3586 of file reconstructor.cpp.

3586 {
3587 // sanity checks
3588
3589
3590 if (!slice) {
3591 LOGERR("try to insert NULL slice");
3592 return 1;
3593 }
3594
3595 int padffted= slice->get_attr_default( "padffted", 0 );
3596 if( m_ndim==3 ) {
3597 if ( padffted==0 && (slice->get_xsize()!=slice->get_ysize() || slice->get_xsize()!=m_sizeofprojection) ) {
3598 // FIXME: Why doesn't this throw an exception?
3599 LOGERR("Tried to insert a slice that is the wrong size.");
3600 return 1;
3601 }
3602 }
3603 if (m_ndim==2) {
3604 if( slice->get_ysize() !=1 ) {
3605 LOGERR( "for 2D reconstruction, a line is excepted" );
3606 return 1;
3607 }
3608 }
3609 if( weight > 0.0f ) {
3610
3611 EMData* padfft = padfft_slice( slice, t, m_npad );
3612
3613 //Assert( mult > 0 );
3614
3615 if( m_ndim==3 ) {
3616 insert_padfft_slice( padfft, t, weight );
3617 } else {
3618 float ellipse_length,ellipse_step,cos_alpha,sin_alpha;
3619 int ellipse_length_int;
3620 float alpha = padfft->get_attr( "alpha" );
3621 alpha = alpha/180.0f*M_PI;
3622 int loop_range;
3623 float temp1,temp2;
3624 temp1=m_xratio*cos(alpha)*float(m_sizeofprojection*m_npad)/2;
3625 temp2=m_yratio*sin(alpha)*float(m_sizeofprojection*m_npad)/2;
3626 ellipse_length=sqrt(temp1*temp1+temp2*temp2);
3627 ellipse_length_int=int(ellipse_length);
3628 ellipse_step=0.5f*(m_sizeofprojection*m_npad)/float(ellipse_length_int);
3629 loop_range=ellipse_length_int;
3630 cos_alpha=temp1/ellipse_length;
3631 sin_alpha=temp2/ellipse_length;
3632 if(m_count%100==0) {
3633 std::cout<<"#############################################################"<<std::endl;
3634 std::cout<<"line insert start=="<<m_count<<std::endl;
3635 std::cout<<"ellipse length=="<<ellipse_length_int<<"ellips step=="<<ellipse_step<<std::endl;
3636 std::cout<<"loop_range"<<loop_range<<std::endl;
3637 std::cout<<"x and y ratio=="<<m_xratio<<" "<<m_yratio<<std::endl;
3638 std::cout<<"cos sin of alpha=="<<cos(alpha)<<" "<<sin(alpha)<<std::endl;
3639 std::cout<<"cos sin of alpha_new==="<<cos_alpha<<sin_alpha<<std::endl;
3640 std::cout<<"alpah dig==="<<cos_alpha<<sin_alpha<<std::endl;
3641 std::cout<<"prjection maximum==="<<loop_range*ellipse_step<<"ideal maximum"<<m_sizeofprojection*m_npad/2<<std::endl;
3642 std::cout<<"x_size=="<<m_volume->get_xsize()<<"y_size=="<<m_volume->get_ysize()<<std::endl;
3643 std::cout<<"#############################################################"<<std::endl;
3644 }
3645 for(int i=0; i <=loop_range; ++i ) {
3646 float xnew = i*cos_alpha;
3647 float ynew = -i*sin_alpha;
3648 if(m_count%100==0&&i==loop_range)
3649 std::cout<<"x_new=="<<xnew<<"Y_new=="<<ynew<<std::endl;
3650 float btqr=0,btqi=0;
3651 float xprj=i*ellipse_step;
3652 float t=xprj-int(xprj);
3653 btqr = (1-t)*padfft->get_value_at( 2*int(xprj), 0, 0 )+t*padfft->get_value_at( 2*(1+int(xprj)), 0, 0 );
3654 btqi = (1-t)*padfft->get_value_at( 2*int(xprj)+1, 0, 0 )+t*padfft->get_value_at( 2*(1+int(xprj))+1, 0, 0 );
3655 if( xnew < 0.0 ) {
3656 xnew *= -1;
3657 ynew *= -1;
3658 btqi *= -1;
3659 }
3660
3661 int ixn = int(xnew+0.5+m_vnxp) - m_vnxp;
3662 int iyn = int(ynew+0.5+m_vnyp) - m_vnyp;
3663
3664 if(iyn < 0 ) iyn += m_vnyp;
3665 if(m_count%100==0&&i==loop_range)
3666 std::cout<<"xnn=="<<ixn<<"ynn=="<<iyn<<std::endl;
3667 (*m_volume)( 2*ixn, iyn+1, 1 ) += btqr * weight;
3668 (*m_volume)( 2*ixn+1, iyn+1, 1 ) += btqi * weight;
3669 (*m_wptr)(ixn,iyn+1, 1) += weight;
3670 }
3671
3672
3673 }
3674 checked_delete( padfft );
3675 return 0;
3676 } else return 0;
3677}
EMData stores an image's data and defines core image processing routines.
Definition: emdata.h:82
int insert_padfft_slice(EMData *padded, const Transform &trans, float mult=1)
EMData * sqrt() const
return square root of current image
#define LOGERR
Definition: log.h:51
EMData * padfft_slice(const EMData *const slice, const Transform &t, int npad)
Direct Fourier inversion Reconstructor.
void checked_delete(T *&x)

References checked_delete(), insert_padfft_slice(), LOGERR, m_count, m_ndim, m_npad, m_sizeofprojection, m_vnxp, m_vnyp, m_volume, m_xratio, m_yratio, EMAN::padfft_slice(), and sqrt().

◆ load_default_settings()

void EMAN::nn4_rectReconstructor::load_default_settings ( )
inlineprivate

Definition at line 1186 of file reconstructor.h.

1187 {
1188 //params["use_weights"] = false;
1189 }

Referenced by nn4_rectReconstructor().

◆ NEW()

static Reconstructor * EMAN::nn4_rectReconstructor::NEW ( )
inlinestatic

Definition at line 1133 of file reconstructor.h.

1134 {
1135 return new nn4_rectReconstructor();
1136 }

References nn4_rectReconstructor().

◆ setup() [1/2]

void nn4_rectReconstructor::setup ( )
virtual

Initialize the reconstructor.

Implements EMAN::Reconstructor.

Definition at line 3476 of file reconstructor.cpp.

3477{
3478 m_sizeofprojection = params["sizeprojection"];
3479 int npad = params["npad"];
3480 m_count=0;
3481
3482 string symmetry;
3483 if( params.has_key("symmetry") ) symmetry = params["symmetry"].to_str();
3484 else symmetry = "c1";
3485
3486 if( params.has_key("ndim") ) m_ndim = params["ndim"];
3487 else m_ndim = 3;
3488
3489 if( params.has_key( "snr" ) ) m_osnr = 1.0f/float( params["snr"] );
3490 else m_osnr = 0.0;
3491
3492 setup( symmetry, m_sizeofprojection, npad );
3493}
bool has_key(const string &key) const
Ask the Dictionary if it as a particular key.
Definition: emobject.h:511

References EMAN::Dict::has_key(), m_count, m_ndim, m_osnr, m_sizeofprojection, EMAN::FactoryBase::params, and setup().

Referenced by nn4_rectReconstructor(), and setup().

◆ setup() [2/2]

void nn4_rectReconstructor::setup ( const string &  symmetry,
int  size,
int  npad 
)

Definition at line 3495 of file reconstructor.cpp.

3496{
3498 m_wghta = 0.2f;
3499 m_symmetry = symmetry;
3500 m_npad = npad;
3502
3503 if( params.has_key("sizex") ) m_vnx = params["sizex"];
3504 else if(params.has_key("xratio"))
3505 {
3506 float temp=params["xratio"];
3507 m_vnx=int(float(sizeprojection)*temp);
3508 }
3509 else m_vnx=sizeprojection;
3510
3511 if( params.has_key("sizey") ) m_vny = params["sizey"];
3512 else if (params.has_key("yratio"))
3513 {
3514 float temp=params["yratio"];
3515 m_vny=int(float(sizeprojection)*temp);
3516 }
3517 else m_vny=sizeprojection;
3518
3519 if( params.has_key("sizez") )
3520 m_vnz = params["sizez"];
3521 else
3522 if (params.has_key("zratio"))
3523 {
3524 float temp=params["zratio"];
3525 m_vnz=int(float(sizeprojection)*temp);
3526 }
3527 else
3528 m_vnz = (m_ndim==3) ? sizeprojection : 1;
3529
3530 m_xratio=float(m_vnx)/float(sizeprojection);
3531 m_yratio=float(m_vny)/float(sizeprojection);
3532 m_zratio=float(m_vnz)/float(sizeprojection);
3533
3534 m_vnxp = m_vnx*npad;
3535 m_vnyp = m_vny*npad;
3536 m_vnzp = (m_ndim==3) ? m_vnz*npad : 1;
3537
3538 m_vnxc = m_vnxp/2;
3539 m_vnyc = m_vnyp/2;
3540 m_vnzc = (m_ndim==3) ? m_vnzp/2 : 1;
3541
3544}
static int get_nsym(const string &sym)
get the number of symmetries associated with the given symmetry name
Definition: transform.cpp:1570

References buildFFTVolume(), buildNormVolume(), ESTIMATE, EMAN::Transform::get_nsym(), EMAN::Dict::has_key(), m_ndim, m_npad, m_nsym, m_symmetry, m_vnx, m_vnxc, m_vnxp, m_vny, m_vnyc, m_vnyp, m_vnz, m_vnzc, m_vnzp, m_weighting, m_wghta, m_xratio, m_yratio, m_zratio, and EMAN::FactoryBase::params.

Member Data Documentation

◆ m_count

int EMAN::nn4_rectReconstructor::m_count
private

Definition at line 1177 of file reconstructor.h.

Referenced by insert_slice(), and setup().

◆ m_ndim

int EMAN::nn4_rectReconstructor::m_ndim
private

Definition at line 1174 of file reconstructor.h.

Referenced by finish(), insert_slice(), and setup().

◆ m_npad

int EMAN::nn4_rectReconstructor::m_npad
private

Definition at line 1172 of file reconstructor.h.

Referenced by buildFFTVolume(), insert_padfft_slice(), insert_slice(), and setup().

◆ m_nsym

int EMAN::nn4_rectReconstructor::m_nsym
private

Definition at line 1173 of file reconstructor.h.

Referenced by setup().

◆ m_osnr

float EMAN::nn4_rectReconstructor::m_osnr
private

Definition at line 1185 of file reconstructor.h.

Referenced by finish(), and setup().

◆ m_sizeofprojection

int EMAN::nn4_rectReconstructor::m_sizeofprojection
private

Definition at line 1180 of file reconstructor.h.

Referenced by insert_padfft_slice(), insert_slice(), and setup().

◆ m_symmetry

string EMAN::nn4_rectReconstructor::m_symmetry
private

Definition at line 1169 of file reconstructor.h.

Referenced by insert_padfft_slice(), and setup().

◆ m_vnx

int EMAN::nn4_rectReconstructor::m_vnx
private

Definition at line 1171 of file reconstructor.h.

Referenced by setup().

◆ m_vnxc

int EMAN::nn4_rectReconstructor::m_vnxc
private

Definition at line 1176 of file reconstructor.h.

Referenced by buildNormVolume(), finish(), and setup().

◆ m_vnxp

int EMAN::nn4_rectReconstructor::m_vnxp
private

Definition at line 1175 of file reconstructor.h.

Referenced by buildFFTVolume(), insert_slice(), and setup().

◆ m_vny

int EMAN::nn4_rectReconstructor::m_vny
private

Definition at line 1171 of file reconstructor.h.

Referenced by setup().

◆ m_vnyc

int EMAN::nn4_rectReconstructor::m_vnyc
private

Definition at line 1176 of file reconstructor.h.

Referenced by finish(), and setup().

◆ m_vnyp

int EMAN::nn4_rectReconstructor::m_vnyp
private

Definition at line 1175 of file reconstructor.h.

Referenced by buildFFTVolume(), buildNormVolume(), finish(), insert_slice(), and setup().

◆ m_vnz

int EMAN::nn4_rectReconstructor::m_vnz
private

Definition at line 1171 of file reconstructor.h.

Referenced by setup().

◆ m_vnzc

int EMAN::nn4_rectReconstructor::m_vnzc
private

Definition at line 1176 of file reconstructor.h.

Referenced by finish(), and setup().

◆ m_vnzp

int EMAN::nn4_rectReconstructor::m_vnzp
private

Definition at line 1175 of file reconstructor.h.

Referenced by buildFFTVolume(), buildNormVolume(), finish(), and setup().

◆ m_volume

EMData* EMAN::nn4_rectReconstructor::m_volume
private

◆ m_weighting

int EMAN::nn4_rectReconstructor::m_weighting
private

Definition at line 1170 of file reconstructor.h.

Referenced by finish(), and setup().

◆ m_wghta

float EMAN::nn4_rectReconstructor::m_wghta
private

Definition at line 1183 of file reconstructor.h.

Referenced by finish(), and setup().

◆ m_wghtb

float EMAN::nn4_rectReconstructor::m_wghtb
private

Definition at line 1184 of file reconstructor.h.

◆ m_wptr

EMData* EMAN::nn4_rectReconstructor::m_wptr
private

◆ m_xratio

float EMAN::nn4_rectReconstructor::m_xratio
private

Definition at line 1178 of file reconstructor.h.

Referenced by insert_padfft_slice(), insert_slice(), and setup().

◆ m_xscale

float EMAN::nn4_rectReconstructor::m_xscale
private

Definition at line 1179 of file reconstructor.h.

◆ m_yratio

float EMAN::nn4_rectReconstructor::m_yratio
private

Definition at line 1178 of file reconstructor.h.

Referenced by insert_padfft_slice(), insert_slice(), and setup().

◆ m_yscale

float EMAN::nn4_rectReconstructor::m_yscale
private

Definition at line 1179 of file reconstructor.h.

◆ m_zratio

float EMAN::nn4_rectReconstructor::m_zratio
private

Definition at line 1178 of file reconstructor.h.

Referenced by insert_padfft_slice(), and setup().

◆ NAME

const string nn4_rectReconstructor::NAME = "nn4_rect"
static

Definition at line 1164 of file reconstructor.h.

Referenced by get_name().


The documentation for this class was generated from the following files: