Commit eccf6c88 by maarten

refactored MapMaker

git-svn-id: svn+ssh://gitlab/srv/svn-repos/pdb-redo/trunk@240 a1961a4f-ab94-4bcc-80e8-33b5a54de466
parent 2a2fefa8
......@@ -7,13 +7,45 @@
namespace libcif
{
template<typename FTYPE>
class MapMaker
class Map
{
public:
typedef FTYPE ftype;
typedef typename clipper::Xmap<ftype> Xmap;
Map();
~Map();
void calculateStats();
double rmsDensity() const { return mRMSDensity; }
double meanDensity() const { return mMeanDensity; }
operator Xmap& () { return mMap; }
operator const Xmap& () const { return mMap; }
// These routines work with CCP4 map files
void read(const boost::filesystem::path& f);
void write(const boost::filesystem::path& f);
clipper::Spacegroup spacegroup() const { return mMap.spacegroup(); }
clipper::Cell cell() const { return mMap.cell(); }
private:
Xmap mMap;
double mRMSDensity, mMeanDensity;
};
template<typename FTYPE>
class MapMaker
{
public:
typedef Map<FTYPE> MapType;
typedef typename MapType::Xmap Xmap;
typedef clipper::HKL_data<clipper::data32::F_phi> FPdata;
typedef clipper::HKL_data<clipper::data32::F_sigF> FOdata;
typedef clipper::HKL_data<clipper::data32::Phi_fom> WData;
......@@ -27,7 +59,7 @@ class MapMaker
as_None, as_Observed, as_Calculated
};
MapMaker(Xmap& fb, Xmap& fd);
MapMaker();
~MapMaker();
void loadFromMTZ(const boost::filesystem::path& mtzFile,
......@@ -36,22 +68,27 @@ class MapMaker
std::initializer_list<std::string> fdLabels = { "DELFWT", "PHDELWT" },
std::initializer_list<std::string> foLabels = { "FP", "SIGFP" },
std::initializer_list<std::string> fcLabels = { "FC_ALL", "PHIC_ALL" });
void recalculateFromMTZ(const boost::filesystem::path& mtzFile,
const Structure& structure,
bool noBulk, AnisoScalingFlag anisoScaling,
float samplingRate = 4.5, bool electronScattering = false,
std::initializer_list<std::string> foLabels = { "FP", "SIGFP" },
std::initializer_list<std::string> freeLabels = { "FREE" });
void loadFromMapFiles(const boost::filesystem::path& fbMapFile,
const boost::filesystem::path& fdMapFile);
double rmsDensityFb() const { return mRMSDensityFb; }
double meanDensityFb() const { return mMeanDensityFb; }
double rmsDensityFd() const { return mRMSDensityFd; }
double meanDensityFd() const { return mMeanDensityFd; }
void loadFromMapFiles(
const boost::filesystem::path& fbMapFile,
const boost::filesystem::path& fdMapFile,
float reshi, float reslo);
MapType& fb() { return mFb; }
MapType& fd() { return mFd; }
const MapType& fb() const { return mFb; }
const MapType& fd() const { return mFd; }
double resLow() const { return mResLow; }
double resHigh() const { return mResHigh; }
double resLow() const { return mResLow; }
double resHigh() const { return mResHigh; }
const Spacegroup& spacegroup() const { return mSpacegroup; }
const Cell& cell() const { return mCell; }
......@@ -61,18 +98,12 @@ class MapMaker
void fixMTZ(FPdata& fb, FPdata& fd, FOdata& fo, FPdata& fc, WData& fom);
Xmap& mFb;
Xmap& mFd;
Spacegroup mSpacegroup;
Cell mCell;
Grid_sampling mGrid;
float mSamplingRate;
double mRMSDensityFb, mRMSDensityFd;
double mMeanDensityFb, mMeanDensityFd;
double mResLow, mResHigh;
MapType mFb, mFd;
Spacegroup mSpacegroup;
Cell mCell;
Grid_sampling mGrid;
float mSamplingRate;
double mResLow, mResHigh;
};
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment