This is the top-level unmerged reflection object. More...
#include <hkl_unmerge.hh>
Classes | |
| struct | ComparePartOrder |
Public Member Functions | |
| hkl_unmerge_list () | |
| construct empty object, must be followed by init | |
| void | init (const std::string &Title, const int &NreflReserve, const hkl_symmetry &symmetry, const all_controls &controls, const std::vector< Xdataset > &DataSets, const std::vector< Batch > &Batches) |
| Initialise for internal writing, with dataset and batch information. | |
| void | init (const std::string &Title, const int &NreflReserve, const hkl_symmetry &symmetry, const all_controls &controls) |
| Initialise for internal writing,dataset and batch information added later. | |
| void | clear () |
| Clear out list ready for new init. | |
| bool | IsEmpty () const |
| true if list is empty | |
| bool | IsReady () const |
| true if list processed ready for use | |
| void | StoreDatasetBatch (const std::vector< Xdataset > &DataSets, const std::vector< Batch > &Batches) |
| Store datasets & batch info following previous call to init. | |
| void | AddDatasetBatch (const std::vector< Xdataset > &DataSets, const std::vector< Batch > &Batches) |
| append datasets & batch info following previous call to init | |
| int | append (const hkl_unmerge_list &OtherList) |
| Add in another hkl_unmerge_list to this one. | |
| hkl_unmerge_list (const hkl_unmerge_list &List) | |
| Copy constructor throws exception unless object is EMPTY. | |
| hkl_unmerge_list & | operator= (const hkl_unmerge_list &List) |
| Copy operator throws exception unless object is EMPTY. | |
| void | SetResoLimits (const float &LowReso, const float &HighReso) |
| set resolution | |
| void | ResetResoLimits () |
| reset to file limits | |
| void | SetIceRings (const Rings &rings) |
| store ice rings, only store ones flagged as "reject" | |
| void | ImposeResoByRunLimits () |
| If there are any resolution limits set by run, go through the observation. | |
| int | num_reflections () const |
| total number of reflections | |
| int | num_reflections_valid () const |
| number of valid reflections | |
| int | num_reflections_icering () const |
| number of reflections in ice rings | |
| int | num_observations () const |
| total number of observations | |
| int | num_observations_full () const |
| number of fully-recorded observations | |
| int | num_observations_part () const |
| number of partially-recorded observations | |
| int | num_observations_scaled () const |
| number of scaled partial observations | |
| int | num_observations_rejected_FracTooSmall () const |
| number of partial observations rejected for too small fraction | |
| int | num_observations_rejected_FracTooLarge () const |
| number of partial observations rejected for too large fraction | |
| int | num_observations_rejected_Gap () const |
| number of partial observations rejected for gap | |
| Rtype | MinSigma () const |
| Minimum sigma(I) of summed partials. | |
| Scell | cell (const PxdName &PXDsetName=PxdName()) const |
| return unit cell for named dataset: if name is blank return average cell for all datasets | |
| Scell | Cell () const |
| returns average cell | |
| hkl_symmetry | symmetry () const |
| returns symmetry | |
| void | SetMtzSym (const CMtz::SYMGRP &Mtzsym) |
| Store MTZ symmetry (just for checking if next file has same symmetry). | |
| CMtz::SYMGRP | MtzSym () const |
| Return MTZ symmetry (for file output). | |
| ReindexOp | TotalReindex () const |
| Total reindexing so far (cumulative). | |
| ResoRange | ResRange () const |
| Resolution. | |
| Range | Srange () const |
| smin, smax (1/d^2) | |
| Range | RRange () const |
| low, high, A | |
| ResoRange | ResLimRange () const |
| Resolution limits. | |
| Rtype | DstarMax () const |
| maximum d* = lambda/d | |
| int | num_datasets () const |
| number of datasets | |
| Xdataset | xdataset (const int &jset) const |
| jset'th dataset | |
| std::vector< Xdataset > | AllXdatasets () const |
| all datasets | |
| int | num_batches () const |
| number of batches | |
| std::vector< Batch > | Batches () const |
| all batches | |
| Batch | batch (const int &jbat) const |
| Actual batch number for batch serial. | |
| int | batch_serial (const int &batch) const |
| Batch serial for given batch. | |
| int | NextBatchSerial (const int &batchnum, const int &maxbatchnum) const |
| int | LastBatchSerial (const int &batchnum) const |
| int | num_runs () const |
| number of runs | |
| std::vector< Run > | RunList () const |
| all runs | |
| void | OffsetBatchNumbers (const std::vector< int > &runOffsets) |
| Apply offset to batch numbers, one offset for each run. | |
| void | RejectBatch (const int &batch) |
| Mark batch number ibatch as not accepted. | |
| void | RejectBatchSerial (const int &jbat) |
| Mark batch with serial number jbat as not accepted. | |
| int | PurgeRejectedBatches () |
| Remove all observation parts belonging to rejected batches: returns number of parts rejected. | |
| int | EliminateBatches (const std::vector< int > RejectedBatches) |
| Remove all observation parts belonging to specified rejected batches and remove them entirely from the list. | |
| std::string | Title () const |
| Title from file. | |
| void | AppendFileName (const std::string &Name) |
| Append filename to list of names. | |
| std::string | Filename () const |
| returns filename list | |
| reflection | get_reflection (const int &lref) const |
| return one reflection for index jref, unconditional, no checks | |
| int | get_reflection (reflection &refl, const Hkl &hkl) const |
| Return reflection for given (reduced) hkl in refl. Returns index number or -1 if missing. | |
| int | next_reflection (reflection &refl) const |
| Return next accepted reflection in argument refl, returns index number = -1 if end. | |
| void | replace_reflection (const reflection &refl) |
| replace current reflection with updated version | |
| void | replace_observation (const observation &obs, const int &lobs) |
| replace lobs'th observation in current reflection with updated version | |
| void | rewind () const |
| Reset reflection counter to beginning for "next_reflection". | |
| observation_part & | find_part (const int &i) const |
| Retrieve i'th obs_part using pointer list. | |
| int | num_parts () const |
| Total number of parts. Required for MTZ dump, otherwise for internal use. | |
| int | change_symmetry (const hkl_symmetry &new_symm, const ReindexOp &reindex_op, const bool &AllowFractIndex=false) |
| Change symmetry or reindex. | |
| int | prepare () |
| Prepare list for reflection processing. | |
| int | sum_partials () |
| Sum partials. | |
| void | CalcSecondaryBeams (const int &pole) |
| Calculate all secondary beam directions, in chosen frame. | |
| void | SetPoles (const int &pole) |
| Set up poles for Absorption. | |
| std::pair< float, float > | CalcSecondaryBeamPolar (const int &batchNum, const Hkl &hkl_original, const float &phi, DVect3 &sPhi) const |
| Calculate secondary beam direction for one observation. | |
| DVect3 | CalcSecondaryBeam (const int &batchNum, const Hkl &hkl_original, const float &phi, DVect3 &sPhi) const |
| Calculate secondary beam directions. | |
| void | ResetObsAccept (ObservationFlagControl &ObsFlagControl) |
| Reset all observation accepted flags. | |
| void | ResetReflAccept () |
| Reset reflection accepted flags to accept all (subject to resolution checks etc). | |
| void | store_part (const Hkl &hkl_in, const int &isym_in, const int &batch_in, const Rtype &I_in, const Rtype &sigI_in, const Rtype &Ipr, const Rtype &sigIpr, const Rtype &Xdet_in, const Rtype &Ydet_in, const Rtype &phi_in, const Rtype &time_in, const Rtype &fraction_calc_in, const Rtype &width_in, const Rtype &LP_in, const int &Npart_in, const int &Ipart_in, const ObservationFlag &ObsFlag_in) |
| Adding observation parts (spots). | |
| int | close_part_list (const ResoRange &RRange, const bool &Sorted) |
| finish adding parts | |
| void | StoreDataFlags (const data_flags &DataFlags) |
| Put data flags to indicate which data items are actually present. | |
| data_flags | DataFlags () const |
| Get data flags to indicate which data items are actually present. | |
| void | dump_reflection (const Hkl &hkl) const |
| void | AutoSetRun () |
This is the top-level unmerged reflection object.
It contains :-
To fill this object:
No reading of external files (eg MTZ file) is done within this class
| void scala::hkl_unmerge_list::AddDatasetBatch | ( | const std::vector< Xdataset > & | DataSets, | |
| const std::vector< Batch > & | Batches | |||
| ) |
append datasets & batch info following previous call to init
This may be one of several calls
| int scala::hkl_unmerge_list::append | ( | const hkl_unmerge_list & | OtherList | ) |
Add in another hkl_unmerge_list to this one.
Returns status = 0 OK = +1 different symmetry (point group)
| DVect3 scala::hkl_unmerge_list::CalcSecondaryBeam | ( | const int & | batchNum, | |
| const Hkl & | hkl_original, | |||
| const float & | phi, | |||
| DVect3 & | sPhi | |||
| ) | const |
Calculate secondary beam directions.
On entry
| batchNum | [in] batch number | |
| hkl_original | [in] original hkl | |
| phi | [in] incident beam rotation, degrees | |
| sPhi | [out] diffraction vector at actual phi position |
Returns DVect3 secondary beam directions, direction cosines
| std::pair< float, float > scala::hkl_unmerge_list::CalcSecondaryBeamPolar | ( | const int & | batchNum, | |
| const Hkl & | hkl_original, | |||
| const float & | phi, | |||
| DVect3 & | sPhi | |||
| ) | const |
Calculate secondary beam direction for one observation.
On entry
| batchNum | [in] batch number | |
| hkl_original | [in] original hkl | |
| phi | [in] incident beam rotation, degrees | |
| sPhi | [out] diffraction vector at actual phi position |
Returns: pair(thetap, phip) secondary beam directions, radians
| void scala::hkl_unmerge_list::CalcSecondaryBeams | ( | const int & | pole | ) |
Calculate all secondary beam directions, in chosen frame.
On entry:
| pole | = 0 SECONDARY camera frame != 0 ABSORPTION, crystal frame = 1,2,3 for h,k,l, = -1 unspecified, use closest reciprocal axis for each run |
| int scala::hkl_unmerge_list::change_symmetry | ( | const hkl_symmetry & | new_symm, | |
| const ReindexOp & | reindex_op, | |||
| const bool & | AllowFractIndex = false | |||
| ) |
Change symmetry or reindex.
If AllowFractIndex true, allow discarding of fractional index observations after reindexing, otherwise this is a fatal error Returns number of fractional index reflections discarded
| int scala::hkl_unmerge_list::EliminateBatches | ( | const std::vector< int > | RejectedBatches | ) |
Remove all observation parts belonging to specified rejected batches and remove them entirely from the list.
Returns number of parts rejected
| int scala::hkl_unmerge_list::get_reflection | ( | reflection & | refl, | |
| const Hkl & | hkl | |||
| ) | const |
Return reflection for given (reduced) hkl in refl. Returns index number or -1 if missing.
Records current reflection
| int scala::hkl_unmerge_list::prepare | ( | ) |
Prepare list for reflection processing.
if required, sort, organise, partials returns number of unique reflections
| void scala::hkl_unmerge_list::RejectBatch | ( | const int & | batch | ) |
Mark batch number ibatch as not accepted.
Data records are not changed
| void scala::hkl_unmerge_list::RejectBatchSerial | ( | const int & | jbat | ) |
Mark batch with serial number jbat as not accepted.
Data records are not changed
| void scala::hkl_unmerge_list::ResetObsAccept | ( | ObservationFlagControl & | ObsFlagControl | ) |
Reset all observation accepted flags.
Reset all observation accepted flags to allow for acceptance of observations flagged as possible errors Counts observations reclassified them in ObsFlagControl
| void scala::hkl_unmerge_list::rewind | ( | ) | const |
Reset reflection counter to beginning for "next_reflection".
not always needed since next_reflection resets it at end
| int scala::hkl_unmerge_list::sum_partials | ( | ) |
Sum partials.
return number of partials
1.6.3