Mantid
Loading...
Searching...
No Matches
NiggliCell.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2007 ISIS Rutherford Appleton Laboratory UKRI,
4// NScD Oak Ridge National Laboratory, European Spallation Source,
5// Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS
6// SPDX - License - Identifier: GPL - 3.0 +
7#pragma once
8
10#include <nexus/NeXusFile.hpp>
11
12namespace Mantid {
13namespace Geometry {
21class MANTID_GEOMETRY_DLL NiggliCell : public UnitCell {
22public:
23 // Default constructor. a = b = c = 1, alpha = beta = gamma = 90 degrees
24 NiggliCell(const Kernel::DblMatrix &Umatrix = Kernel::DblMatrix(3, 3, true));
25 // a,b,c constructor
26 NiggliCell(const double _a, const double _b, const double _c,
27 const Kernel::DblMatrix &Umatrix = Kernel::DblMatrix(3, 3, true));
28 // a,b,c,alpha,beta,gamma constructor
29 NiggliCell(const double _a, const double _b, const double _c, const double _alpha, const double _beta,
30 const double _gamma, const Kernel::DblMatrix &Umatrix = Kernel::DblMatrix(3, 3, true),
31 const int angleunit = angDegrees);
32 // UnitCell constructor
33 NiggliCell(const UnitCell &uc, const Kernel::DblMatrix &Umatrix = Kernel::DblMatrix(3, 3, true));
34 // Access private variables
36 static bool HasNiggliAngles(const Kernel::V3D &a_dir, const Kernel::V3D &b_dir, const Kernel::V3D &c_dir,
37 double epsilon);
38
40 static bool MakeNiggliUB(const Kernel::DblMatrix &UB, Kernel::DblMatrix &newUB);
41
42private:
45};
46} // namespace Geometry
47} // namespace Mantid
Class to implement UB matrix.
Definition: NiggliCell.h:21
Kernel::DblMatrix UB
Definition: NiggliCell.h:44
Kernel::DblMatrix U
Definition: NiggliCell.h:43
Class to implement unit cell of crystals.
Definition: UnitCell.h:44
Class for 3D vectors.
Definition: V3D.h:34
Helper class which provides the Collimation Length for SANS instruments.