-
Notifications
You must be signed in to change notification settings - Fork 124
/
MuonProcess.h
66 lines (53 loc) · 2.35 KB
/
MuonProcess.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
65
66
// Mantid Repository : https://github.com/mantidproject/mantid
//
// Copyright © 2013 ISIS Rutherford Appleton Laboratory UKRI,
// NScD Oak Ridge National Laboratory, European Spallation Source
// & Institut Laue - Langevin
// SPDX - License - Identifier: GPL - 3.0 +
#ifndef MANTID_WORKFLOWALGORITHMS_MUONPROCESS_H_
#define MANTID_WORKFLOWALGORITHMS_MUONPROCESS_H_
#include "MantidAPI/DataProcessorAlgorithm.h"
#include "MantidAPI/WorkspaceGroup_fwd.h"
#include "MantidDataObjects/TableWorkspace.h"
#include "MantidKernel/System.h"
namespace Mantid {
namespace WorkflowAlgorithms {
/** MuonProcess : Processes and analyses Muon workspace.
*/
class DLLExport MuonProcess : public API::DataProcessorAlgorithm {
public:
const std::string name() const override;
/// Summary of algorithms purpose
const std::string summary() const override {
return "Processes and analyses Muon workspace.";
}
int version() const override;
const std::string category() const override;
/// Perform validation of inputs to the algorithm
std::map<std::string, std::string> validateInputs() override;
private:
void init() override;
void exec() override;
// We dont' want processGroups to be called
bool checkGroups() override { return false; }
/// Groups specified workspace group according to specified
/// DetectorGroupingTable.
API::WorkspaceGroup_sptr
groupWorkspaces(API::WorkspaceGroup_sptr wsGroup,
DataObjects::TableWorkspace_sptr grouping);
/// Applies dead time correction to the workspace group.
API::WorkspaceGroup_sptr applyDTC(API::WorkspaceGroup_sptr wsGroup,
DataObjects::TableWorkspace_sptr dt);
/// Applies offset, crops and rebin the workspace according to specified
/// params
API::MatrixWorkspace_sptr correctWorkspace(API::MatrixWorkspace_sptr ws,
double loadedTimeZero);
/// Applies offset, crops and rebins all workspaces in the group
API::WorkspaceGroup_sptr correctWorkspaces(API::WorkspaceGroup_sptr wsGroup,
double loadedTimeZero);
/// Builds an error message from a list of invalid periods
std::string buildErrorString(const std::vector<int> &invalidPeriods) const;
};
} // namespace WorkflowAlgorithms
} // namespace Mantid
#endif /* MANTID_WORKFLOWALGORITHMS_MUONPROCESS_H_ */