Mantid
Loading...
Searching...
No Matches
IPeak.h
Go to the documentation of this file.
1// Mantid Repository : https://github.com/mantidproject/mantid
2//
3// Copyright © 2018 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 "MantidGeometry/DllConfig.h"
12#include "MantidKernel/Matrix.h"
14#include "MantidKernel/V3D.h"
15#include <boost/optional.hpp>
16
17namespace Mantid {
18namespace Geometry {
19class InstrumentRayTracer;
20
26class MANTID_GEOMETRY_DLL IPeak {
27public:
28 virtual ~IPeak() = default;
29 virtual std::shared_ptr<const Geometry::ReferenceFrame> getReferenceFrame() const = 0;
30
31 virtual int getRunNumber() const = 0;
32 virtual void setRunNumber(int m_RunNumber) = 0;
33
34 virtual double getMonitorCount() const = 0;
35 virtual void setMonitorCount(double m_MonitorCount) = 0;
36
37 virtual double getH() const = 0;
38 virtual double getK() const = 0;
39 virtual double getL() const = 0;
40 virtual Mantid::Kernel::V3D getHKL() const = 0;
41 virtual bool isIndexed() const = 0;
42 virtual Mantid::Kernel::V3D getIntHKL() const = 0;
43 virtual void setH(double m_H) = 0;
44 virtual void setK(double m_K) = 0;
45 virtual void setL(double m_L) = 0;
46 virtual void setHKL(double H, double K, double L) = 0;
47 virtual void setHKL(const Mantid::Kernel::V3D &HKL) = 0;
48 virtual void setIntHKL(const Mantid::Kernel::V3D &HKL) = 0;
49 virtual void setSamplePos(double samX, double samY, double samZ) = 0;
50 virtual void setSamplePos(const Mantid::Kernel::V3D &XYZ) = 0;
51 virtual Mantid::Kernel::V3D getSamplePos() const = 0;
52
53 virtual Mantid::Kernel::V3D getQLabFrame() const = 0;
55 virtual void setQSampleFrame(const Mantid::Kernel::V3D &QSampleFrame, boost::optional<double> detectorDistance) = 0;
56 virtual void setQLabFrame(const Mantid::Kernel::V3D &QLabFrame, boost::optional<double> detectorDistance) = 0;
57
58 virtual void setWavelength(double wavelength) = 0;
59 virtual double getWavelength() const = 0;
60 virtual double getScattering() const = 0;
61 virtual double getAzimuthal() const = 0;
62 virtual double getDSpacing() const = 0;
63 virtual double getTOF() const = 0;
64
65 virtual double getInitialEnergy() const = 0;
66 virtual double getFinalEnergy() const = 0;
67 virtual double getEnergyTransfer() const = 0;
68 virtual void setInitialEnergy(double m_InitialEnergy) = 0;
69 virtual void setFinalEnergy(double m_FinalEnergy) = 0;
70
71 virtual double getIntensity() const = 0;
72 virtual double getSigmaIntensity() const = 0;
73 virtual double getIntensityOverSigma() const = 0;
74 virtual void setIntensity(double m_Intensity) = 0;
75 virtual void setSigmaIntensity(double m_SigmaIntensity) = 0;
76
77 virtual double getBinCount() const = 0;
78 virtual void setBinCount(double m_BinCount) = 0;
79
80 virtual int getPeakNumber() const = 0;
81 virtual void setPeakNumber(int m_PeakNumber) = 0;
82
83 virtual Mantid::Kernel::V3D getIntMNP() const = 0;
84 virtual void setIntMNP(const Mantid::Kernel::V3D &MNP) = 0;
85
87 virtual void setGoniometerMatrix(const Mantid::Kernel::Matrix<double> &m_GoniometerMatrix) = 0;
88
89 virtual int getRow() const = 0;
90 virtual int getCol() const = 0;
91
92 virtual double getL1() const = 0;
93 virtual double getL2() const = 0;
94
95 virtual const Mantid::Geometry::PeakShape &getPeakShape() const = 0;
96 virtual void setPeakShape(Mantid::Geometry::PeakShape *shape) = 0;
98
99 virtual void setAbsorptionWeightedPathLength(double pathLength) = 0;
100 virtual double getAbsorptionWeightedPathLength() const = 0;
101};
102
103using IPeak_uptr = std::unique_ptr<IPeak>;
104
105} // namespace Geometry
106} // namespace Mantid
HKL : HKL MDFrame.
Definition: HKL.h:21
Structure describing a single-crystal peak.
Definition: IPeak.h:26
virtual double getH() const =0
virtual void setHKL(double H, double K, double L)=0
virtual void setIntensity(double m_Intensity)=0
virtual double getTOF() const =0
virtual void setK(double m_K)=0
virtual double getScattering() const =0
virtual void setHKL(const Mantid::Kernel::V3D &HKL)=0
virtual Mantid::Kernel::Matrix< double > getGoniometerMatrix() const =0
virtual void setBinCount(double m_BinCount)=0
virtual double getSigmaIntensity() const =0
virtual void setPeakShape(Mantid::Geometry::PeakShape *shape)=0
virtual double getWavelength() const =0
virtual void setQLabFrame(const Mantid::Kernel::V3D &QLabFrame, boost::optional< double > detectorDistance)=0
virtual int getPeakNumber() const =0
virtual Mantid::Kernel::V3D getSamplePos() const =0
virtual void setH(double m_H)=0
virtual double getDSpacing() const =0
virtual void setGoniometerMatrix(const Mantid::Kernel::Matrix< double > &m_GoniometerMatrix)=0
virtual void setPeakNumber(int m_PeakNumber)=0
virtual void setSamplePos(const Mantid::Kernel::V3D &XYZ)=0
virtual double getBinCount() const =0
virtual Mantid::Kernel::V3D getIntHKL() const =0
virtual double getInitialEnergy() const =0
virtual double getK() const =0
virtual void setIntMNP(const Mantid::Kernel::V3D &MNP)=0
virtual bool isIndexed() const =0
virtual int getRow() const =0
virtual double getEnergyTransfer() const =0
virtual double getAbsorptionWeightedPathLength() const =0
virtual double getL2() const =0
virtual void setAbsorptionWeightedPathLength(double pathLength)=0
virtual void setFinalEnergy(double m_FinalEnergy)=0
virtual int getCol() const =0
virtual std::shared_ptr< const Geometry::ReferenceFrame > getReferenceFrame() const =0
virtual ~IPeak()=default
virtual void setInitialEnergy(double m_InitialEnergy)=0
virtual void setMonitorCount(double m_MonitorCount)=0
virtual int getRunNumber() const =0
virtual Mantid::Kernel::V3D getQSampleFrame() const =0
virtual double getIntensity() const =0
virtual double getL() const =0
virtual void setSigmaIntensity(double m_SigmaIntensity)=0
virtual const Mantid::Geometry::PeakShape & getPeakShape() const =0
virtual double getFinalEnergy() const =0
virtual double getAzimuthal() const =0
virtual void setPeakShape(Mantid::Geometry::PeakShape_const_sptr shape)=0
virtual void setL(double m_L)=0
virtual Mantid::Kernel::V3D getQLabFrame() const =0
virtual double getL1() const =0
virtual void setQSampleFrame(const Mantid::Kernel::V3D &QSampleFrame, boost::optional< double > detectorDistance)=0
virtual void setSamplePos(double samX, double samY, double samZ)=0
virtual void setRunNumber(int m_RunNumber)=0
virtual void setIntHKL(const Mantid::Kernel::V3D &HKL)=0
virtual Mantid::Kernel::V3D getHKL() const =0
virtual Mantid::Kernel::V3D getIntMNP() const =0
virtual double getIntensityOverSigma() const =0
virtual void setWavelength(double wavelength)=0
virtual double getMonitorCount() const =0
PeakShape : Abstract type to describes the shape of a peak.
Definition: PeakShape.h:20
Numerical Matrix class.
Definition: Matrix.h:42
Class for 3D vectors.
Definition: V3D.h:34
std::shared_ptr< const PeakShape > PeakShape_const_sptr
Definition: PeakShape.h:43
std::unique_ptr< IPeak > IPeak_uptr
Definition: IPeak.h:103
Helper class which provides the Collimation Length for SANS instruments.