add tests for the case that maps and/or functions are absent.

This commit is contained in:
suter_a 2019-09-23 16:23:30 +02:00
parent 086050f4e3
commit f4d6f63607

View File

@ -95,10 +95,16 @@ Double_t PFitterFcnDKS::operator()(const std::vector<Double_t>& par) const
ierr += fDKS.callSetConsts(dksp.fN0, dksp.fTau, dksp.fNbkg); ierr += fDKS.callSetConsts(dksp.fN0, dksp.fTau, dksp.fNbkg);
// set fun values // 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 // 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 // calc chisq/log-mlh
chisq = 0.0; chisq = 0.0;
@ -122,10 +128,16 @@ Double_t PFitterFcnDKS::operator()(const std::vector<Double_t>& par) const
ierr += fDKS.callSetConsts(dksp.fAlpha, dksp.fBeta); ierr += fDKS.callSetConsts(dksp.fAlpha, dksp.fBeta);
// set fun values // 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 // 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 // calc chisq
chisq = 0.0; chisq = 0.0;
@ -318,7 +330,6 @@ void PFitterFcnDKS::InitDKS(const UInt_t dksTag)
} }
// now ready to init the chisq buffer on the GPU // 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); ierr = fDKS.initChiSquare(maxSize, parSize, funSize, mapSize);
if (ierr != 0) { if (ierr != 0) {
std::cerr << ">> PFitterFcnDKS::InitDKS: **ERROR** failed to allocate the necessary chisq buffer on the GPU." << std::endl; 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; fValid = false;
return; return;
} }
startTimeBin = fRunListCollection->GetStartTimeBin(MSR_FITTYPE_ASYM, i); //as35 startTimeBin = fRunListCollection->GetStartTimeBin(MSR_FITTYPE_ASYM, i);
endTimeBin = fRunListCollection->GetEndTimeBin(MSR_FITTYPE_ASYM, i); //as35 endTimeBin = fRunListCollection->GetEndTimeBin(MSR_FITTYPE_ASYM, i);
length = endTimeBin-startTimeBin; length = endTimeBin-startTimeBin;
std::cout << "debug> length=" << length << std::endl; //as35
if (startTimeBin < 0) { if (startTimeBin < 0) {
std::cerr << ">> PFitterFcnDKS::InitDKS: **ERROR** startTimeBin undefind (asymmetry fit)." << std::endl; std::cerr << ">> PFitterFcnDKS::InitDKS: **ERROR** startTimeBin undefind (asymmetry fit)." << std::endl;
fValid = false; fValid = false;