diff --git a/src/classes/PFitterFcnDKS.cpp b/src/classes/PFitterFcnDKS.cpp index 7c7909b2..cd5238a2 100644 --- a/src/classes/PFitterFcnDKS.cpp +++ b/src/classes/PFitterFcnDKS.cpp @@ -95,10 +95,16 @@ Double_t PFitterFcnDKS::operator()(const std::vector& par) const ierr += fDKS.callSetConsts(dksp.fN0, dksp.fTau, dksp.fNbkg); // set fun values - ierr += fDKS.writeFunctions(&dksp.fFun[0], dksp.fFun.size()); + if (dksp.fFun.size() == 0) + ierr += fDKS.writeFunctions(nullptr, 0); + else + ierr += fDKS.writeFunctions(&dksp.fFun[0], dksp.fFun.size()); // set map values - ierr += fDKS.writeMaps(&dksp.fMap[0], dksp.fMap.size()); + if (dksp.fMap.size() == 0) + ierr += fDKS.writeMaps(nullptr, 0); + else + ierr += fDKS.writeMaps(&dksp.fMap[0], dksp.fMap.size()); // calc chisq/log-mlh chisq = 0.0; @@ -122,10 +128,16 @@ Double_t PFitterFcnDKS::operator()(const std::vector& par) const ierr += fDKS.callSetConsts(dksp.fAlpha, dksp.fBeta); // set fun values - ierr += fDKS.writeFunctions(&dksp.fFun[0], dksp.fFun.size()); + if (dksp.fFun.size() == 0) + ierr += fDKS.writeFunctions(nullptr, 0); + else + ierr += fDKS.writeFunctions(&dksp.fFun[0], dksp.fFun.size()); // set map values - ierr += fDKS.writeMaps(&dksp.fMap[0], dksp.fMap.size()); + if (dksp.fMap.size() == 0) + ierr += fDKS.writeMaps(nullptr, 0); + else + ierr += fDKS.writeMaps(&dksp.fMap[0], dksp.fMap.size()); // calc chisq chisq = 0.0; @@ -318,7 +330,6 @@ void PFitterFcnDKS::InitDKS(const UInt_t dksTag) } // now ready to init the chisq buffer on the GPU -// std::cout << "debug> maximal packed histo size=" << maxSize << ", parSize=" << parSize << ", funSize=" << funSize << ", mapSize=" << mapSize << std::endl; ierr = fDKS.initChiSquare(maxSize, parSize, funSize, mapSize); if (ierr != 0) { std::cerr << ">> PFitterFcnDKS::InitDKS: **ERROR** failed to allocate the necessary chisq buffer on the GPU." << std::endl; @@ -381,10 +392,9 @@ void PFitterFcnDKS::InitDKS(const UInt_t dksTag) fValid = false; return; } - startTimeBin = fRunListCollection->GetStartTimeBin(MSR_FITTYPE_ASYM, i); //as35 - endTimeBin = fRunListCollection->GetEndTimeBin(MSR_FITTYPE_ASYM, i); //as35 + startTimeBin = fRunListCollection->GetStartTimeBin(MSR_FITTYPE_ASYM, i); + endTimeBin = fRunListCollection->GetEndTimeBin(MSR_FITTYPE_ASYM, i); length = endTimeBin-startTimeBin; -std::cout << "debug> length=" << length << std::endl; //as35 if (startTimeBin < 0) { std::cerr << ">> PFitterFcnDKS::InitDKS: **ERROR** startTimeBin undefind (asymmetry fit)." << std::endl; fValid = false;