allow to draw theory only at the data points for PRunNonMusr.

This commit is contained in:
suter_a 2023-01-05 07:59:15 +01:00
parent 7ab9892b96
commit 8a6e4dca6f
3 changed files with 6 additions and 4 deletions

View File

@ -151,7 +151,7 @@ Bool_t PRunListCollection::Add(Int_t runNo, EPMusrHandleTag tag)
success = false;
break;
case PRUN_NON_MUSR:
fRunNonMusrList.push_back(new PRunNonMusr(fMsrInfo, fData, runNo, tag));
fRunNonMusrList.push_back(new PRunNonMusr(fMsrInfo, fData, runNo, tag, fTheoAsData));
if (!fRunNonMusrList[fRunNonMusrList.size()-1]->IsValid())
success = false;
break;

View File

@ -60,7 +60,8 @@ PRunNonMusr::PRunNonMusr() : PRunBase()
* \param runNo number of the run within the msr-file
* \param tag tag showing what shall be done: kFit == fitting, kView == viewing
*/
PRunNonMusr::PRunNonMusr(PMsrHandler *msrInfo, PRunDataHandler *rawData, UInt_t runNo, EPMusrHandleTag tag) : PRunBase(msrInfo, rawData, runNo, tag)
PRunNonMusr::PRunNonMusr(PMsrHandler *msrInfo, PRunDataHandler *rawData, UInt_t runNo, EPMusrHandleTag tag, Bool_t theoAsData) :
PRunBase(msrInfo, rawData, runNo, tag), fTheoAsData(theoAsData)
{
// get the proper run
fRawRunData = fRawData->GetRunData(*(fRunInfo->GetRunName()));
@ -440,7 +441,7 @@ Bool_t PRunNonMusr::PrepareViewData()
// typically take 1000 points to calculate the theory, except if there are more data points, than take that number
Double_t xStep;
if (fData.GetX()->size() > 1000.0)
if ((fData.GetX()->size() > 1000.0) || fTheoAsData)
xStep = (xMax-xMin)/fData.GetX()->size();
else
xStep = (xMax-xMin)/1000.0;

View File

@ -40,7 +40,7 @@ class PRunNonMusr : public PRunBase
{
public:
PRunNonMusr();
PRunNonMusr(PMsrHandler *msrInfo, PRunDataHandler *rawData, UInt_t runNo, EPMusrHandleTag tag);
PRunNonMusr(PMsrHandler *msrInfo, PRunDataHandler *rawData, UInt_t runNo, EPMusrHandleTag tag, Bool_t theoAsData);
virtual ~PRunNonMusr();
virtual Double_t CalcChiSquare(const std::vector<Double_t>& par);
@ -65,6 +65,7 @@ class PRunNonMusr : public PRunBase
UInt_t fNoOfFitBins; ///< number of bins to be be fitted
Int_t fPacking; ///< packing for this particular run. Either given in the RUN- or GLOBAL-block.
Bool_t fTheoAsData; ///< true=only calculate the theory points at the data points, false=calculate more points for the theory as compared to data are calculated which lead to 'nicer' Fouriers
Int_t fStartTimeBin; ///< bin at which the fit starts
Int_t fEndTimeBin; ///< bin at which the fit ends