Commit 492ab0c7bcdf0d226ff0fb062930ece5130c2285

Authored by Jürgen Knödlseder
1 parent d9f99bde

Put scale parameter on stack in GModel::scale(GModelPar&) method (#2892)

Showing 1 changed file with 16 additions and 2 deletions
src/model/GModel.cpp
... ... @@ -453,6 +453,7 @@ void GModel::scale(const GModelPar& par)
453 453 found = true;
454 454 m_scales[i] = par;
455 455 m_scales[i].name(instrument);
  456 + m_scales[i].has_grad(true);
456 457 break;
457 458 }
458 459 }
... ... @@ -460,9 +461,21 @@ void GModel::scale(const GModelPar& par)
460 461 // If instrument has not been found then append it now to the list
461 462 // of instruments.
462 463 if (!found) {
  464 +
  465 + // Push scale parameter in list
463 466 m_scales.push_back(par);
464   - m_scales[m_scales.size()-1].name(instrument);
465   - }
  467 +
  468 + // Get index of last scale parameter
  469 + int i = m_scales.size()-1;
  470 +
  471 + // Set instrument name and signal availability of gradient
  472 + m_scales[i].name(instrument);
  473 + m_scales[i].has_grad(true);
  474 +
  475 + // Push scale parameter on parameter stack
  476 + m_pars.push_back(&m_scales[i]);
  477 +
  478 + } // endif: new scale parameter
466 479  
467 480 // Return
468 481 return;
... ... @@ -822,6 +835,7 @@ void GModel::read_scales(const GXmlElement& xml)
822 835 scale.name(gammalib::strip_whitespace(par->attribute("name")));
823 836 scale.has_grad(true);
824 837 m_scales.push_back(scale);
  838 + m_pars.push_back(&m_scales[m_scales.size()-1]);
825 839 }
826 840  
827 841 }
... ...