make sure that index states in proper range for PRunAsymmetryRRF.

This commit is contained in:
2025-08-05 10:30:41 +02:00
parent bb3d53761a
commit 6449fd120f

View File

@@ -918,16 +918,28 @@ Bool_t PRunAsymmetryRRF::PrepareFitData()
lgb_offset = fGoodBins[3]-static_cast<Int_t>(fT0s[1])+fgbOffset; lgb_offset = fGoodBins[3]-static_cast<Int_t>(fT0s[1])+fgbOffset;
Int_t fgb = static_cast<Int_t>(fT0s[0])+fgbOffset; Int_t fgb = static_cast<Int_t>(fT0s[0])+fgbOffset;
if (fgb < 0)
fgb=0;
Int_t lgb = fgb + lgb_offset; Int_t lgb = fgb + lgb_offset;
if (lgb > fForward.size())
lgb = fForward.size();
if (lgb > fBackward.size())
lgb = fBackward.size();
Int_t dt0 = static_cast<Int_t>(fT0s[0])-static_cast<Int_t>(fT0s[1]); Int_t dt0 = static_cast<Int_t>(fT0s[0])-static_cast<Int_t>(fT0s[1]);
PDoubleVector asym; PDoubleVector asym;
PDoubleVector asymErr; PDoubleVector asymErr;
Double_t asymVal, asymValErr; Double_t asymVal, asymValErr;
Double_t ff, bb, eff, ebb; Double_t ff, bb, eff, ebb;
Int_t idx=0;
for (Int_t i=fgb; i<lgb; i++) { for (Int_t i=fgb; i<lgb; i++) {
ff = fForward[i]; ff = fForward[i];
bb = fBackward[i-dt0]; idx = i-dt0;
if (idx < 0)
idx = 0;
if (idx >= fBackward.size())
idx = fBackward.size()-1;
bb = fBackward[idx];
if (ff+bb != 0.0) if (ff+bb != 0.0)
asymVal = (ff-bb)/(ff+bb); asymVal = (ff-bb)/(ff+bb);
else else