From cbacba3f2cf8f22271245f932cc02f087da56f6b Mon Sep 17 00:00:00 2001 From: Andreas Suter Date: Fri, 14 Oct 2011 13:23:31 +0000 Subject: [PATCH] proper normalization for NOT lifetime corrected signals --- src/classes/PRunSingleHisto.cpp | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) diff --git a/src/classes/PRunSingleHisto.cpp b/src/classes/PRunSingleHisto.cpp index b23fd664..86ae8cb2 100644 --- a/src/classes/PRunSingleHisto.cpp +++ b/src/classes/PRunSingleHisto.cpp @@ -852,6 +852,14 @@ Bool_t PRunSingleHisto::PrepareRawViewData(PRawRunData* runData, const UInt_t hi packing = fMsrInfo->GetMsrPlotList()->at(0).fViewPacking; } + // calculate necessary norms + Double_t dataNorm = 1.0, theoryNorm = 1.0; + if (fScaleN0AndBkg) { + dataNorm = 1.0/ (packing * (fTimeResolution * 1.0e3)); // fTimeResolution us->ns + } else if (!fScaleN0AndBkg && (fMsrInfo->GetMsrPlotList()->at(0).fViewPacking > 0)) { + theoryNorm = (Double_t)fMsrInfo->GetMsrPlotList()->at(0).fViewPacking/(Double_t)fRunInfo->GetPacking(); + } + // raw data, since PMusrCanvas is doing ranging etc. // start = the first bin which is a multiple of packing backward from first good data bin Int_t start = fRunInfo->GetDataRange(0) - (fRunInfo->GetDataRange(0)/packing)*packing; @@ -897,31 +905,18 @@ Bool_t PRunSingleHisto::PrepareRawViewData(PRawRunData* runData, const UInt_t hi Double_t normalizer = 1.0; for (Int_t i=start; ins - value /= normalizer; + value *= dataNorm; fData.AppendValue(value); if (value == 0.0) fData.AppendErrorValue(1.0); else - fData.AppendErrorValue(TMath::Sqrt(value/normalizer)); + fData.AppendErrorValue(TMath::Sqrt(value*dataNorm)); // reset values value = 0.0; } value += runData->GetDataBin(histoNo)->at(i); } -// // count the number of bins -// fNoOfFitBins=0; -// -// Double_t time; -// for (UInt_t i=0; isize(); i++) { -// time = fData.GetDataTimeStart() + (Double_t)i*fData.GetDataTimeStep(); -// if ((time >= fFitStartTime) && (time <= fFitEndTime)) -// fNoOfFitBins++; -// } CalcNoOfFitBins(); // fill theory vector for kView @@ -942,6 +937,7 @@ Bool_t PRunSingleHisto::PrepareRawViewData(PRawRunData* runData, const UInt_t hi // evaluate function N0 = fMsrInfo->EvalFunc(funNo, *fRunInfo->GetMap(), par); } + N0 *= theoryNorm; // get tau Double_t tau; @@ -974,6 +970,7 @@ Bool_t PRunSingleHisto::PrepareRawViewData(PRawRunData* runData, const UInt_t hi } else { // bkg fitted bkg = par[fRunInfo->GetBkgFitParamNo()-1]; } + bkg *= theoryNorm; // calculate functions for (Int_t i=0; iGetNoOfFuncs(); i++) {