Peak.h 2.26 KB
Newer Older
1
2
3
4
5
#ifndef MANTID_DATAOBJECTS_PEAK_H_
#define MANTID_DATAOBJECTS_PEAK_H_
    
#include "MantidKernel/System.h"
#include "MantidGeometry/Math/Matrix.h"
6
#include "MantidGeometry/IInstrument.h"
7
8
9
10
11
12
13
14
15
16
17
18


namespace Mantid
{
namespace DataObjects
{

  /** Structure describing a single-crystal peak
   * 
   * @author Janik Zikovsky
   * @date 2011-04-15 13:24:07.963491
   */
19
  class DLLExport Peak
20
21
  {
  public:
22
    Peak(Mantid::Geometry::IInstrument_sptr m_inst, int m_DetectorID, double m_InitialEnergy);
23
    ~Peak();
24

25
    int getDetectorID() const;
26

27
28
29
    double getH() const;
    double getK() const;
    double getL() const;
30
31
32
33
34

    double getInitialEnergy() const;
    double getFinalEnergy() const;

    double getIntensity() const;
35
    double getSigIntensity() const;
36

37
    void setDetectorID(int m_DetectorID);
38

39
40
41
    void setH(double m_H);
    void setK(double m_K);
    void setL(double m_L);
42
43
44
45
46
47
    void setHKL(double H, double K, double L);

    void setInitialEnergy(double m_InitialEnergy);
    void setFinalEnergy(double m_FinalEnergy);

    void setIntensity(double m_Intensity);
48
49
50
51
52
    void setSigIntensity(double m_SigIntensity);

    Mantid::Geometry::Matrix<double> getOrientationMatrix() const;
    void setOrientationMatrix(Mantid::Geometry::Matrix<double> m_OrientationMatrix);

53
    // ------ Still to implement -------
54
55
56
57
58
59
60
    double getWavelength();
    double getDSpacing();
    std::string getBankName();
    int getRow();
    int getCol();

  protected:
61
62
    /// Shared pointer to the instrument (for calculating some values )
    Mantid::Geometry::IInstrument_sptr m_inst;
63

64
65
    /// Detector pointed to
    Mantid::Geometry::IDetector_sptr m_det;
66
67
68
69
70
71
72
73
74
75
76
77
78

    /// ID of the detector
    int m_DetectorID;

    /// H of the peak
    double m_H;

    /// K of the peak
    double m_K;

    /// L of the peak
    double m_L;

79
80
81
82
83
84
85
86
87
88
89
90
    /// Integrated peak intensity
    double m_Intensity;

    /// Error (sigma) on peak intensity
    double m_SigIntensity;

    /// Initial energy of neutrons at the peak
    double m_InitialEnergy;

    /// Final energy of the neutrons at peak (normally same as m_InitialEnergy)
    double m_FinalEnergy;

91
92
93
94
95
96
97
98
99
    /// Sample orientation matrix
    Mantid::Geometry::Matrix<double> m_OrientationMatrix;
  };


} // namespace Mantid
} // namespace DataObjects

#endif  /* MANTID_DATAOBJECTS_PEAK_H_ */