Skip to content

Commit

Permalink
Re #6931 Make fw and bw grouping static and check if they changed
Browse files Browse the repository at this point in the history
  • Loading branch information
raquelalvarezbanos committed Apr 22, 2015
1 parent e36c0f9 commit 4087f3a
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 15 deletions.
Expand Up @@ -112,9 +112,9 @@ class DLLExport PlotAsymmetryByLogValue : public API::Algorithm {
/// Stores property "Int"
bool m_int;
/// Store forward spectra
std::vector<int> m_forward_list;
static std::vector<int> g_forward_list;
/// Store backward spectra
std::vector<int> m_backward_list;
static std::vector<int> g_backward_list;
/// If true call LoadMuonNexus with Autogroup on
bool m_autogroup;
/// Store type of dead time corrections
Expand Down
32 changes: 19 additions & 13 deletions Code/Mantid/Framework/Algorithms/src/PlotAsymmetryByLogValue.cpp
Expand Up @@ -93,6 +93,8 @@ std::map<int64_t, double> PlotAsymmetryByLogValue::g_diffE;
std::string PlotAsymmetryByLogValue::g_logName;
std::string PlotAsymmetryByLogValue::g_logFunc;
std::string PlotAsymmetryByLogValue::g_stype;
std::vector<int> PlotAsymmetryByLogValue::g_forward_list;
std::vector<int> PlotAsymmetryByLogValue::g_backward_list;

/** Initialisation method. Declares properties to be used in algorithm.
*
Expand Down Expand Up @@ -177,10 +179,6 @@ void PlotAsymmetryByLogValue::exec() {
checkProperties();

// Get properties
// Get grouping property
m_forward_list = getProperty("ForwardSpectra");
m_backward_list = getProperty("BackwardSpectra");
m_autogroup = (m_forward_list.size() == 0 && m_backward_list.size() == 0);
// Get green and red periods
m_red = getProperty("Red");
m_green = getProperty("Green");
Expand Down Expand Up @@ -244,11 +242,16 @@ void PlotAsymmetryByLogValue::checkProperties () {
std::string logFunc = getPropertyValue("Function");
// Get type of computation
std::string stype = getPropertyValue("Type");
// Get grouping properties
std::vector<int> forward_list = getProperty("ForwardSpectra");
std::vector<int> backward_list = getProperty("BackwardSpectra");

// Check if any property has changed
if ( g_logName != logName ||
g_logFunc != logFunc ||
g_stype != stype ) {
g_stype != stype ||
g_forward_list != forward_list ||
g_backward_list != backward_list ) {

// If so, clear previous results
g_redX.clear();
Expand All @@ -270,6 +273,9 @@ void PlotAsymmetryByLogValue::checkProperties () {
g_logFunc = logFunc;
g_stype = stype;
m_int = g_stype == "Integral";
g_forward_list = forward_list;
g_backward_list = backward_list;
m_autogroup = (g_forward_list.size() == 0 && g_backward_list.size() == 0);


}
Expand Down Expand Up @@ -627,8 +633,8 @@ void PlotAsymmetryByLogValue::calcIntAsymmetry(API::MatrixWorkspace_sptr ws,
asym->setProperty("InputWorkspace", ws);
asym->setPropertyValue("OutputWorkspace", "tmp");
if (!m_autogroup) {
asym->setProperty("ForwardSpectra", m_forward_list);
asym->setProperty("BackwardSpectra", m_backward_list);
asym->setProperty("ForwardSpectra", g_forward_list);
asym->setProperty("BackwardSpectra", g_backward_list);
}
asym->execute();
MatrixWorkspace_sptr asymWS = asym->getProperty("OutputWorkspace");
Expand Down Expand Up @@ -662,8 +668,8 @@ void PlotAsymmetryByLogValue::calcIntAsymmetry(API::MatrixWorkspace_sptr ws,
asym->setProperty("InputWorkspace", intWS);
asym->setPropertyValue("OutputWorkspace", "tmp");
if (!m_autogroup) {
asym->setProperty("ForwardSpectra", m_forward_list);
asym->setProperty("BackwardSpectra", m_backward_list);
asym->setProperty("ForwardSpectra", g_forward_list);
asym->setProperty("BackwardSpectra", g_backward_list);
}
asym->execute();
MatrixWorkspace_sptr out = asym->getProperty("OutputWorkspace");
Expand All @@ -686,10 +692,10 @@ PlotAsymmetryByLogValue::calcIntAsymmetry(API::MatrixWorkspace_sptr ws_red,
API::MatrixWorkspace_sptr ws_green,
double &Y, double &E) {
if (!m_autogroup) {
groupDetectors(ws_red, m_backward_list);
groupDetectors(ws_red, m_forward_list);
groupDetectors(ws_green, m_backward_list);
groupDetectors(ws_green, m_forward_list);
groupDetectors(ws_red, g_backward_list);
groupDetectors(ws_red, g_forward_list);
groupDetectors(ws_green, g_backward_list);
groupDetectors(ws_green, g_forward_list);
}

Property *startXprop = getProperty("TimeMin");
Expand Down

0 comments on commit 4087f3a

Please sign in to comment.