00001
00002
00003 #ifndef CHOOSESOLUTION
00004 #define CHOOSESOLUTION
00005
00006 #include <string>
00007 #include <vector>
00008 #include "pgscore.hh"
00009 #include "zone.hh"
00010 #include "Output.hh"
00011
00012
00013 #include <clipper/clipper.h>
00014 using clipper::Message;
00015 using clipper::Message_fatal;
00016
00017 namespace scala
00018 {
00019 class ChooseSolution
00020 {
00021 public:
00022 ChooseSolution(): solutionnumber(0), lauegroup(""), spacegroup("") {}
00023 ChooseSolution(const int& solution,
00024 const std::string& Lauegroup,
00025 const std::string& Spacegroup,
00026 phaser_io::Output& output);
00027
00028
00029
00030 bool ChooseLaueGroup() const;
00031
00032
00033 bool ChooseSpaceGroup() const {return (spacegroup != "");}
00034
00035
00036
00037
00038
00039 int MarkAcceptedSubgroup(std::vector<PGscore>& SGscores);
00040
00041
00042
00043 int ChooseSpacegroup(const std::vector<scala::PossibleSpaceGroup>& AllGroups) const;
00044
00045 int SolutionNumber() const {return solutionnumber;}
00046 std::string Lauegroup() const {return lauegroup;}
00047 std::string Spacegroup() const {return spacegroup;}
00048
00049 bool IsI2() const;
00050
00051 bool IsRhombohedralR() const;
00052
00053 private:
00054 int solutionnumber;
00055 std::string lauegroup;
00056 std::string spacegroup;
00057 };
00058 }
00059 #endif