From 25b59ab4734ee91ebb6ffc79580d94a6307694d9 Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Wed, 6 Jun 2018 12:54:54 +0200 Subject: [PATCH] slight performance increase. --- src/classes/PRunNonMusr.cpp | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/classes/PRunNonMusr.cpp b/src/classes/PRunNonMusr.cpp index 2b188141..412aa8a8 100644 --- a/src/classes/PRunNonMusr.cpp +++ b/src/classes/PRunNonMusr.cpp @@ -41,6 +41,8 @@ PRunNonMusr::PRunNonMusr() : PRunBase() { fNoOfFitBins = 0; fPacking = 1; + fStartTimeBin = 0; + fEndTimeBin = 0; fHandleTag = kEmpty; @@ -105,13 +107,11 @@ Double_t PRunNonMusr::CalcChiSquare(const std::vector& par) } // calculate chi square - Double_t x; - for (UInt_t i=0; isize(); i++) { + Double_t x(1.0); + for (UInt_t i=fStartTimeBin; i<=fEndTimeBin; i++) { x = fData.GetX()->at(i); - if ((x>=fFitStartTime) && (x<=fFitEndTime)) { - diff = fData.GetValue()->at(i) - fTheory->Func(x, par, fFuncValues); - chisq += diff*diff / (fData.GetError()->at(i)*fData.GetError()->at(i)); - } + diff = fData.GetValue()->at(i) - fTheory->Func(x, par, fFuncValues); + chisq += diff*diff / (fData.GetError()->at(i)*fData.GetError()->at(i)); } return chisq; @@ -279,6 +279,17 @@ Bool_t PRunNonMusr::PrepareFitData() fNoOfFitBins++; } + // get start/end bin + const PDoubleVector *xx = fData.GetX(); + fStartTimeBin = 0; + fEndTimeBin = xx->size()-1; + for (UInt_t i=0; isize(); i++) { + if (xx->at(i) < fFitStartTime) + fStartTimeBin = i; + if (xx->at(i) < fFitEndTime) + fEndTimeBin = i; + } + return success; }