Xmipp  v3.23.11-Nereus
multireference_aligneability.h
Go to the documentation of this file.
1 /***************************************************************************
2  * Authors: Javier Vargas (jvargas@cnb.csic.es) (2016)
3  *
4  *
5  * Unidad de Bioinformatica of Centro Nacional de Biotecnologia , CSIC
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
20  * 02111-1307 USA
21  *
22  * All comments concerning this program package may be sent to the
23  * e-mail address 'xmipp@cnb.csic.es'
24  ***************************************************************************/
25 #include <core/xmipp_program.h>
26 #include "validation_nontilt.h"
27 #include <math.h>
28 #include <core/metadata_db.h>
29 #include <string.h>
30 #include <data/mask.h>
31 #include <core/symmetries.h>
32 
33 #ifndef MULTIREFERENCE_ALIGNEABILITY_H_
34 #define MULTIREFERENCE_ALIGNEABILITY_H_
35 //#define PI 3.14159265
36 
37 
38 
42 
44 {
45 
46 
47 public:
50 
52 
55 
56  size_t rank, Nprocessors;
57 
59 
60 private:
61  size_t Xdim,Ydim,Zdim,Ndim;
63  //double sampling_rate //COMMENTED
64 
65 
66 public:
67 
69 
70  void readParams();
71 
72  void defineParams();
73 
74  void run();
75 
76 private:
77 
78  void write_projection_file();
79 
80  void calc_sumu(const MetaData & tempMd, double & sum_W, double & mirrorProb);
81 
82  void calc_sumw(const size_t num, double & sumw);
83 
84  void calc_sumw2(const size_t num, double & sumw, const MetaData & mdGallery);
85 
86  void obtainAngularAccuracy(const MetaData & tempMd, const MDRow & row, double & accuracy,double & accuracyMirror);
87 
89  virtual void gatherResults() {}
90 
92  virtual void synchronize() {}
93 };
95 
96 #endif /* MULTIREFERENCE_ALIGNEABILITY_H_ */