00001 #ifndef KEYWORDS_HEADER
00002 #define KEYWORDS_HEADER
00003
00004 #include "CCP4base.hh"
00005 #include "hkl_datatypes.hh"
00006 #include "range.hh"
00007 #include "globalcontrols.hh"
00008 #include "listdir.hh"
00009 #include "expandfilename.hh"
00010
00011 using scala::ResoRange;
00012 using scala::Chirality;
00013
00014 namespace phaser_io {
00015
00016
00017 class CHIRAL : public InputBase, virtual public CCP4base
00018 {
00019 public:
00020 Chirality Chiral;
00021
00022 public:
00023 CHIRAL();
00024 virtual ~CHIRAL() {}
00025 Token_value parse(std::istringstream&);
00026 void setCHIRAL(Chirality);
00027 Chirality getCHIRAL() const;
00028 void analyse();
00029 };
00030
00031
00032 class RESO : public InputBase, virtual public CCP4base
00033 {
00034
00035
00036
00037
00038 public:
00039 RESO();
00040 virtual ~RESO() {}
00041 Token_value parse(std::istringstream&);
00042
00043 void setRESO(const ResoRange& reso_range);
00044 ResoRange getRESO() const;
00045 void analyse(){}
00046
00047 bool ValidRESO() const {return Valid;}
00048
00049 private:
00050 ResoRange input_resolution_range;
00051 bool Valid;
00052 };
00053
00054
00055 class ISIG : public InputBase, virtual public CCP4base
00056 {
00057
00058
00059
00060 public:
00061 ISIG();
00062 virtual ~ISIG() {}
00063 Token_value parse(std::istringstream&);
00064
00065 void setISIG(const float& MinIsig);
00066 float getISIG() const;
00067 void analyse(){}
00068
00069 private:
00070 float MinIsigRatio;
00071 };
00072
00073
00074 class LABI : public InputBase, virtual public CCP4base
00075 {
00076
00077 public:
00078 LABI();
00079 virtual ~LABI() {}
00080 Token_value parse(std::istringstream&);
00081
00082 void setLABI_I(const std::string& lab_I) {FIlabel = lab_I;}
00083 void setLABI_sigI(const std::string& lab_sigI) {sigFIlabel = lab_sigI;}
00084 std::string getLABI_I() const {return FIlabel;}
00085 std::string getLABI_sigI() const {return sigFIlabel;}
00086 void analyse(){}
00087
00088 private:
00089 std::string FIlabel;
00090 std::string sigFIlabel;
00091 };
00092
00093
00094 class LABR : public InputBase, virtual public CCP4base
00095 {
00096
00097 public:
00098 LABR();
00099 virtual ~LABR() {}
00100 Token_value parse(std::istringstream&);
00101
00102 void setLABR_I(const std::string& lab_I) {FIlabel = lab_I;}
00103 void setLABR_sigI(const std::string& lab_sigI) {sigFIlabel = lab_sigI;}
00104 std::string getLABR_I() const {return FIlabel;}
00105 std::string getLABR_sigI() const {return sigFIlabel;}
00106 void analyse(){}
00107
00108 private:
00109 std::string FIlabel;
00110 std::string sigFIlabel;
00111
00112 };
00113
00114 class ORIG : public InputBase, virtual public CCP4base
00115 {
00116
00117 public:
00118 ORIG();
00119 virtual ~ORIG() {}
00120 Token_value parse(std::istringstream&);
00121
00122
00123 void setORIGINAL(const bool& OrigLat) {OriginalLat = OrigLat;}
00124 bool getOriginalLatFlag() const {return OriginalLat;}
00125 void analyse(){}
00126
00127 private:
00128 bool OriginalLat;
00129 };
00130
00131 class LAUE : public InputBase, virtual public CCP4base
00132 {
00133
00134 public:
00135 LAUE();
00136 virtual ~LAUE() {}
00137 Token_value parse(std::istringstream&);
00138
00139
00140 void setLAUEGROUP(const std::string& LG) {Lauegroup = LG;}
00141 std::string getLAUEGROUP() const {return Lauegroup;}
00142 void analyse(){}
00143
00144 private:
00145 std::string Lauegroup;
00146 };
00147
00148
00149 class SPAC : public InputBase, virtual public CCP4base
00150 {
00151
00152 public:
00153 SPAC();
00154 virtual ~SPAC() {}
00155 Token_value parse(std::istringstream&);
00156
00157
00158 void setSPACEGROUP(const std::string& SG) {SPGname = SG;}
00159 std::string getSPACEGROUP() const {return SPGname;}
00160 void analyse(){}
00161
00162 private:
00163 std::string SPGname;
00164 };
00165
00166
00167 class REIN : public InputBase, virtual public CCP4base
00168 {
00169
00170
00171
00172 public:
00173 REIN();
00174 virtual ~REIN() {}
00175 Token_value parse(std::istringstream&);
00176
00177
00178 void setREINDEX(const std::string& Operator);
00179 scala::ReindexOp getREINDEX() const {return Reindex;}
00180 bool REINDEXisSet() const {return set;}
00181 void analyse(){}
00182
00183 private:
00184 scala::ReindexOp Reindex;
00185 bool set;
00186 bool left;
00187 };
00188
00189
00190 class TOLE : public InputBase, virtual public CCP4base
00191 {
00192
00193
00194 public:
00195 TOLE();
00196 virtual ~TOLE() {}
00197 Token_value parse(std::istringstream&);
00198
00199
00200 void setTOLERANCE(const double& Tol) {Tolerance = Tol;}
00201 double getTOLERANCE() const {return Tolerance;}
00202 void analyse(){}
00203
00204 private:
00205 double Tolerance;
00206 };
00207
00208 class ACCE : public InputBase, virtual public CCP4base
00209 {
00210
00211
00212 public:
00213 ACCE();
00214 virtual ~ACCE() {}
00215 Token_value parse(std::istringstream&);
00216
00217
00218 void setACCEPTANCELIMIT(const double& Acc) {acceptlimit = Acc;}
00219 double getACCEPTANCELIMIT() const {return acceptlimit;}
00220 void analyse(){}
00221
00222 private:
00223 double acceptlimit;
00224 };
00225
00226 class CENT: public InputBase, virtual public CCP4base
00227 {
00228
00229
00230 public:
00231 CENT();
00232 virtual ~CENT() {}
00233 Token_value parse(std::istringstream&);
00234 clipper::Vec3<int> CentreGridMax() const {return gridmax;}
00235 bool Centre() const {return centre;}
00236
00237 void analyse(){}
00238
00239 private:
00240 bool centre;
00241 clipper::Vec3<int> gridmax;
00242 };
00243
00244 class SYSA: public InputBase, virtual public CCP4base
00245 {
00246
00247
00248 public:
00249 SYSA();
00250 virtual ~SYSA() {}
00251 Token_value parse(std::istringstream&);
00252
00253
00254 void setProbabilityThreshold(const double& Pt) {ProbabilityThreshold = Pt;}
00255 double getProbabilityThreshold() const {return ProbabilityThreshold;}
00256 void analyse();
00257
00258 private:
00259 double ProbabilityThreshold;
00260 };
00261
00262
00263 class PARTIALS: public InputBase, virtual public CCP4base
00264 {
00265
00266
00267 public:
00268 PARTIALS();
00269 virtual ~PARTIALS() {}
00270 Token_value parse(std::istringstream&);
00271
00272
00273 void setFracLimMin(const double& MinLim)
00274 {minfraclim = MinLim;
00275 }
00276 void setFracLimMax(const double& MaxLim)
00277 {maxfraclim = MaxLim;}
00278
00279 void setFracScaleLim(const double& MinLim)
00280 {minscalefrac = MinLim;}
00281
00282 double getFracLimMin() const {return minfraclim;}
00283 double getFracLimMax() const {return maxfraclim;}
00284
00285 double getSclMinLim() const {return minscalefrac;}
00286 bool getCheck() const {return check;}
00287
00288 void setMaxGap(const int& MaxGap) {maxgap = MaxGap;}
00289 int getMaxGap() const {return maxgap;}
00290
00291 void analyse(){}
00292
00293 private:
00294 double minfraclim, maxfraclim;
00295 double minscalefrac;
00296 bool check;
00297 int maxgap;
00298 };
00299
00300 class SYSABS: public InputBase, virtual public CCP4base
00301
00302 {
00303 public:
00304 SYSABS();
00305 virtual ~SYSABS() {}
00306 Token_value parse(std::istringstream&);
00307
00308 void setSYSABSCHECK(const bool& flag) {check = flag;}
00309
00310 bool getSYSABSCHECK() const {return check;}
00311
00312 void analyse(){}
00313
00314 private:
00315 bool check;
00316 };
00317
00318 class HKLIN : public InputBase, virtual public CCP4base
00319 {
00320
00321
00322 public:
00323 HKLIN();
00324 virtual ~HKLIN() {}
00325 Token_value parse(std::istringstream&);
00326
00327
00328
00329 int AddHKLINfilename(const std::vector<std::string>& Names);
00330
00331 int HKLINnumber() const {return names.size();}
00332 std::vector<std::string> getHKLINnames() const;
00333 std::vector<scala::PxdName> getHKLINpxdNames() const {return pxdnames;}
00334 std::vector<int> getHKLINfileseries() const {return seriesnumber;}
00335 std::vector<std::string> getHKLINseriesNames() const {return seriesnames;}
00336 void analyse(){}
00337
00338 bool HKLIN_wild() const {return wild;}
00339
00340
00341
00342
00343 std::vector<std::string> RejectOutofSequenceHKLINFiles();
00344
00345 private:
00346 bool wild;
00347
00348 std::vector<FileNameTime> names;
00349 std::vector<scala::PxdName> pxdnames;
00350 std::vector<int> seriesnumber;
00351
00352 std::vector<std::string> seriesnames;
00353 int fileseries;
00354
00355
00356 void storeNames(const scala::ExpandFileName& filenames);
00357
00358
00359
00360 std::vector<std::string> Reject(const int& i1, const int& i2);
00361
00362 };
00363
00364 class XDSIN : public InputBase, virtual public CCP4base
00365 {
00366
00367 public:
00368 XDSIN();
00369 virtual ~XDSIN() {}
00370 Token_value parse(std::istringstream&);
00371
00372
00373
00374 int AddXDSINfilename(const std::string& Name);
00375
00376
00377 int XDSINnumber() const {return names.size();}
00378 std::vector<std::string> getXDSINnames() const {return names;}
00379 std::vector<scala::PxdName> getXDSINpxdNames() const {return pxdnames;}
00380 void analyse(){}
00381
00382 private:
00383 std::vector<std::string> names;
00384 std::vector<scala::PxdName> pxdnames;
00385 };
00386
00387 class SCAIN : public InputBase, virtual public CCP4base
00388 {
00389
00390 public:
00391 SCAIN();
00392 virtual ~SCAIN() {}
00393 Token_value parse(std::istringstream&);
00394
00395
00396
00397 int AddSCAINfilename(const std::string& Name);
00398
00399
00400 int SCAINnumber() const {return names.size();}
00401 std::vector<std::string> getSCAINnames() const {return names;}
00402 std::vector<scala::PxdName> getSCAINpxdNames() const {return pxdnames;}
00403 void analyse(){}
00404
00405 private:
00406 std::vector<std::string> names;
00407 std::vector<scala::PxdName> pxdnames;
00408 };
00409
00410 class MERGED : public InputBase, virtual public CCP4base
00411 {
00412
00413
00414
00415 public:
00416 MERGED();
00417 virtual ~MERGED() {}
00418 Token_value parse(std::istringstream&);
00419
00420
00421 std::string getHklinMergedGroup() const {return spacegroupName;}
00422
00423 void analyse(){}
00424
00425 private:
00426 std::string spacegroupName;
00427 };
00428
00429 class HKLOUT : public InputBase, virtual public CCP4base
00430 {
00431
00432 public:
00433 HKLOUT();
00434 virtual ~HKLOUT() {}
00435 Token_value parse(std::istringstream&);
00436
00437
00438 void setHKLOUT(const std::string& Name) {name = Name;}
00439 std::string getHKLOUT() const {return name;}
00440 void analyse(){}
00441
00442 private:
00443 std::string name;
00444 };
00445
00446 class HKLREF : public InputBase, virtual public CCP4base
00447 {
00448
00449 public:
00450 HKLREF();
00451 virtual ~HKLREF() {}
00452 Token_value parse(std::istringstream&);
00453
00454
00455 void setHKLREF(const std::string& Name) {name = Name;}
00456 std::string getHKLREF() const {return name;}
00457 void analyse(){}
00458
00459 private:
00460 std::string name;
00461 };
00462
00463 class XMLOUT : public InputBase, virtual public CCP4base
00464 {
00465
00466 public:
00467 XMLOUT();
00468 virtual ~XMLOUT() {}
00469 Token_value parse(std::istringstream&);
00470
00471
00472 void setXMLOUT(const std::string& Name) {name = Name;}
00473 std::string getXMLOUT() const {return name;}
00474 void analyse(){}
00475
00476 private:
00477 std::string name;
00478 };
00479
00480 class XYZIN : public InputBase, virtual public CCP4base
00481 {
00482
00483 public:
00484 XYZIN();
00485 virtual ~XYZIN() {}
00486 Token_value parse(std::istringstream&);
00487
00488
00489 void setXYZIN(const std::string& Name) {name = Name;}
00490 std::string getXYZIN() const {return name;}
00491 void analyse(){}
00492
00493 private:
00494 std::string name;
00495 };
00496
00497 class NAME : public InputBase, virtual public CCP4base
00498 {
00499
00500 public:
00501 NAME();
00502 virtual ~NAME() {}
00503 Token_value parse(std::istringstream&);
00504
00505
00506 static void setNAME(const scala::PxdName& PXDname);
00507 static scala::PxdName getNAME() {return pxdname;}
00508 void analyse(){}
00509
00510 private:
00511 static scala::PxdName pxdname;
00512 };
00513
00514 class COPY : public InputBase, virtual public CCP4base
00515 {
00516
00517
00518 public:
00519 COPY();
00520 virtual ~COPY() {}
00521 Token_value parse(std::istringstream&);
00522
00523
00524 void setCOPY(const bool& Copy) {copyflag = Copy;}
00525 bool getCOPY() const {return copyflag;}
00526 void analyse(){}
00527
00528 private:
00529 bool copyflag;
00530 };
00531
00532
00533 class CELL : public InputBase, virtual public CCP4base
00534 {
00535
00536
00537 public:
00538 CELL();
00539 virtual ~CELL() {}
00540 Token_value parse(std::istringstream&);
00541
00542
00543 void setCELL(const scala::Scell& Cell) {cell = Cell;}
00544 scala::Scell getCELL() const {return cell;}
00545 void analyse(){}
00546
00547 private:
00548 scala::Scell cell;
00549 };
00550
00551 class TEST : public InputBase, virtual public CCP4base
00552 {
00553
00554
00555 public:
00556 TEST();
00557 virtual ~TEST() {}
00558 Token_value parse(std::istringstream&);
00559
00560
00561 static void setTESTFIRSTFILE(const bool& TestFirst) {testfirstfile = TestFirst;}
00562 bool TestFirstFile() const {return testfirstfile;}
00563 void analyse(){}
00564
00565 private:
00566 static bool testfirstfile;
00567 };
00568
00569 class NOTEST : public InputBase, virtual public CCP4base
00570 {
00571
00572
00573 public:
00574 NOTEST();
00575 virtual ~NOTEST() {}
00576 Token_value parse(std::istringstream&);
00577
00578 void analyse(){}
00579 };
00580
00581 class ASSU : public InputBase, virtual public CCP4base
00582 {
00583
00584
00585 public:
00586 ASSU();
00587 virtual ~ASSU() {}
00588 Token_value parse(std::istringstream&);
00589
00590 static void setASSUMESAMEINDEXING(const bool& AssumeSame);
00591 bool IsSetASSUMESAMEINDEXING() const {return (assumesameindexing >= 0);}
00592 int ASSUMESAMEINDEXING() const {return assumesameindexing;}
00593 void analyse(){}
00594
00595 private:
00596
00597 static int assumesameindexing;
00598 };
00599
00600 class NOASSU : public InputBase, virtual public CCP4base
00601 {
00602
00603
00604 public:
00605 NOASSU();
00606 virtual ~NOASSU() {}
00607 Token_value parse(std::istringstream&);
00608
00609 void analyse(){}
00610 };
00611
00612
00613 class EXCLUDE : public InputBase, virtual public CCP4base
00614 {
00615
00616
00617
00618
00619
00620
00621
00622
00623 public:
00624 EXCLUDE();
00625 virtual ~EXCLUDE() {}
00626 Token_value parse(std::istringstream&);
00627 scala::BatchSelection BatchExclusions() const {return batchexclude;}
00628
00629 void analyse(){}
00630 private:
00631 scala::BatchSelection batchexclude;
00632 };
00633
00634 class CHOOSE : public InputBase, virtual public CCP4base
00635 {
00636
00637
00638
00639
00640
00641 public:
00642 CHOOSE();
00643 virtual ~CHOOSE() {}
00644 Token_value parse(std::istringstream&);
00645
00646 int getSolutionNumber() const {return solution_number;}
00647 std::string getChosenLaueGroup() const {return lauegroup;}
00648 std::string getChosenSpaceGroup() const {return spacegroup;}
00649 void analyse(){}
00650
00651 private:
00652 int solution_number;
00653 std::string lauegroup;
00654 std::string spacegroup;
00655 };
00656
00657 class NEIGHBOUR : public InputBase, virtual public CCP4base
00658 {
00659
00660
00661
00662
00663 public:
00664 NEIGHBOUR();
00665 virtual ~NEIGHBOUR() {}
00666 Token_value parse(std::istringstream&);
00667
00668 float getNeighbourFraction() const {return neighbourfraction;}
00669 void analyse(){}
00670
00671 private:
00672 float neighbourfraction;
00673 };
00674
00675
00676 class SETTING : public InputBase, virtual public CCP4base
00677
00678
00679
00680
00681
00682
00683
00684
00685
00686
00687
00688
00689
00690
00691
00692
00693
00694
00695 {
00696 public:
00697 SETTING();
00698 virtual ~SETTING() {}
00699 Token_value parse(std::istringstream&);
00700 int getSetting() const {return ITCsetting;}
00701 void analyse(){}
00702
00703 private:
00704 int ITCsetting;
00705 };
00706
00707 class OUTPUT : public InputBase, virtual public CCP4base
00708
00709
00710
00711
00712
00713
00714 {
00715 public:
00716 OUTPUT();
00717 virtual ~OUTPUT() {}
00718 Token_value parse(std::istringstream&);
00719 std::string getSUMMEDLIST() const {return filename_summed;}
00720 void analyse(){}
00721
00722 private:
00723 std::string filename_summed;
00724 };
00725
00726 class MULTIPLY : public InputBase, virtual public CCP4base
00727
00728
00729
00730
00731
00732 {
00733 public:
00734 MULTIPLY();
00735 virtual ~MULTIPLY() {}
00736 Token_value parse(std::istringstream&);
00737 float getMULTIPLY() const {return scale;}
00738 void analyse(){}
00739
00740 private:
00741 float scale;
00742 };
00743
00744 class SCORE : public InputBase, virtual public CCP4base
00745
00746
00747
00748
00749
00750
00751
00752 {
00753 public:
00754 SCORE();
00755 virtual ~SCORE() {}
00756 Token_value parse(std::istringstream&);
00757 int getScoreMaxMultiplicity() const {return maxmult;}
00758 void analyse(){}
00759
00760 private:
00761 int maxmult;
00762 };
00763
00764 class ALLOW : public InputBase, virtual public CCP4base
00765
00766
00767
00768
00769
00770 {
00771 public:
00772 ALLOW();
00773 virtual ~ALLOW() {}
00774 Token_value parse(std::istringstream&);
00775 bool AllowOutofSequenceFiles() const {return allowoutofsequencefiles;}
00776 void analyse(){}
00777
00778 private:
00779 bool allowoutofsequencefiles;
00780 };
00781
00782 class WAVELENGTH : public InputBase, virtual public CCP4base
00783
00784
00785
00786
00787
00788 {
00789 public:
00790 WAVELENGTH();
00791 virtual ~WAVELENGTH() {}
00792 Token_value parse(std::istringstream&);
00793 double Wavelength() const {return wavelength;}
00794
00795
00796 void analyse(){}
00797
00798 private:
00799 float wavelength;
00800 bool isset;
00801 };
00802
00803 class BLANK : public InputBase, virtual public CCP4base
00804
00805
00806
00807
00808
00809
00810
00811
00812
00813
00814 {
00815 public:
00816 BLANK();
00817 virtual ~BLANK() {}
00818 Token_value parse(std::istringstream&);
00819 float NullResolutionfraction() const {return nullResolutionfraction;}
00820 float NullNegativeReject() const {return nullNegativeReject;}
00821
00822 void analyse(){}
00823
00824 private:
00825 float nullResolutionfraction;
00826 float nullNegativeReject;
00827 bool isset;
00828 };
00829
00830
00831 }
00832
00833 #endif