-
Notifications
You must be signed in to change notification settings - Fork 122
/
IntegratePeaksMD2.h
64 lines (50 loc) · 1.78 KB
/
IntegratePeaksMD2.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#ifndef MANTID_MDALGORITHMS_INTEGRATEPEAKSMD_H_
#define MANTID_MDALGORITHMS_INTEGRATEPEAKSMD_H_
#include "MantidAPI/Algorithm.h"
#include "MantidAPI/IMDEventWorkspace.h"
#include "MantidDataObjects/PeaksWorkspace.h"
#include "MantidKernel/System.h"
#include "MantidMDEvents/MDEventWorkspace.h"
#include "MantidAPI/CompositeFunction.h"
namespace Mantid
{
namespace MDAlgorithms
{
/** Integrate single-crystal peaks in reciprocal-space.
*
* @author Janik Zikovsky
* @date 2011-04-13 18:11:53.496539
*/
class DLLExport IntegratePeaksMD2 : public API::Algorithm
{
public:
IntegratePeaksMD2();
~IntegratePeaksMD2();
/// Algorithm's name for identification
virtual const std::string name() const { return "IntegratePeaksMD";};
/// Algorithm's version for identification
virtual int version() const { return 2;};
/// Algorithm's category for identification
virtual const std::string category() const { return "MDAlgorithms";}
private:
/// Sets documentation strings for this algorithm
virtual void initDocs();
/// Initialise the properties
void init();
/// Run the algorithm
void exec();
template<typename MDE, size_t nd>
void integrate(typename MDEvents::MDEventWorkspace<MDE, nd>::sptr ws);
/// Input MDEventWorkspace
Mantid::API::IMDEventWorkspace_sptr inWS;
/// Calculate if this Q is on a detector
bool detectorQ(Mantid::Kernel::V3D QLabFrame, double PeakRadius);
/// Instrument reference
Geometry::Instrument_const_sptr inst;
/// Check if peaks overlap
void checkOverlap(int i,
Mantid::DataObjects::PeaksWorkspace_sptr peakWS, int CoordinatesToUse, double radius);
};
} // namespace Mantid
} // namespace MDEvents
#endif /* MANTID_MDALGORITHMS_INTEGRATEPEAKSMD_H_ */