fixed a minor bug in the background handling. For now change over to un-weighted N0 estimate which seems to be slightly better. This only could mean, that the error estimate if M is NOT optimal. Eventually this needs some deeper investigation.
This commit is contained in:
@ -593,6 +593,9 @@ Bool_t PRunSingleHistoRRF::PrepareFitData(PRawRunData* runData, const UInt_t his
|
|||||||
if (!EstimateBkg(histoNo))
|
if (!EstimateBkg(histoNo))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
// subtract background from fForward
|
||||||
|
for (UInt_t i=0; i<fForward.size(); i++)
|
||||||
|
fForward[i] -= fBackground;
|
||||||
} else { // fixed background given
|
} else { // fixed background given
|
||||||
for (UInt_t i=0; i<fForward.size(); i++) {
|
for (UInt_t i=0; i<fForward.size(); i++) {
|
||||||
fForward[i] -= fRunInfo->GetBkgFix(0);
|
fForward[i] -= fRunInfo->GetBkgFix(0);
|
||||||
@ -1093,15 +1096,17 @@ Double_t PRunSingleHistoRRF::EstimateN0(Double_t &errN0, Double_t freqMax)
|
|||||||
{
|
{
|
||||||
// endBin is estimated such that the number of full cycles (according to the maximum frequency of the data)
|
// endBin is estimated such that the number of full cycles (according to the maximum frequency of the data)
|
||||||
// is approximately the time fN0EstimateEndTime.
|
// is approximately the time fN0EstimateEndTime.
|
||||||
Int_t endBin = (Int_t)round(fN0EstimateEndTime / fTimeResolution * ceil(freqMax)/freqMax);
|
Int_t endBin = (Int_t)round(ceil(fN0EstimateEndTime*freqMax/TMath::TwoPi()) * (TMath::TwoPi()/freqMax) / fTimeResolution);
|
||||||
|
|
||||||
Double_t n0 = 0.0;
|
Double_t n0 = 0.0;
|
||||||
Double_t wN = 0.0;
|
Double_t wN = 0.0;
|
||||||
for (Int_t i=0; i<endBin; i++) {
|
for (Int_t i=0; i<endBin; i++) {
|
||||||
n0 += fW[i]*fM[i];
|
// n0 += fW[i]*fM[i];
|
||||||
|
n0 += fM[i];
|
||||||
wN += fW[i];
|
wN += fW[i];
|
||||||
}
|
}
|
||||||
n0 /= wN;
|
// n0 /= wN;
|
||||||
|
n0 /= endBin;
|
||||||
|
|
||||||
errN0 = 0.0;
|
errN0 = 0.0;
|
||||||
for (Int_t i=0; i<endBin; i++) {
|
for (Int_t i=0; i<endBin; i++) {
|
||||||
|
Reference in New Issue
Block a user