From 3a75ced375a4f7eb36bd3260a065a6ee8aa46f1e Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Thu, 5 Jan 2023 08:12:11 +0100 Subject: [PATCH] improvement on: allow to draw theory only at the data points for PRunNonMusr. --- src/classes/PRunNonMusr.cpp | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/src/classes/PRunNonMusr.cpp b/src/classes/PRunNonMusr.cpp index 76cc094d..6614f84b 100644 --- a/src/classes/PRunNonMusr.cpp +++ b/src/classes/PRunNonMusr.cpp @@ -441,20 +441,31 @@ Bool_t PRunNonMusr::PrepareViewData() // typically take 1000 points to calculate the theory, except if there are more data points, than take that number Double_t xStep; - if ((fData.GetX()->size() > 1000.0) || fTheoAsData) + if (fData.GetX()->size() > 1000.0) xStep = (xMax-xMin)/fData.GetX()->size(); else xStep = (xMax-xMin)/1000.0; - Double_t xx = xMin; - do { - // fill x-vector - fData.AppendXTheoryValue(xx); - // fill y-vector - fData.AppendTheoryValue(fTheory->Func(xx, par, fFuncValues)); - // calculate next xx - xx += xStep; - } while (xx < xMax); + if (fTheoAsData) { + Double_t xx; + for (UInt_t i=0; ifDataNonMusr.GetData()->at(xIndex).size(); i++) { + // fill x-vector + xx = fRawRunData->fDataNonMusr.GetData()->at(xIndex).at(i); + fData.AppendXTheoryValue(xx); + // fill y-vector + fData.AppendTheoryValue(fTheory->Func(xx, par, fFuncValues)); + } + } else { + Double_t xx = xMin; + do { + // fill x-vector + fData.AppendXTheoryValue(xx); + // fill y-vector + fData.AppendTheoryValue(fTheory->Func(xx, par, fFuncValues)); + // calculate next xx + xx += xStep; + } while (xx < xMax); + } // clean up par.clear();