first DKS running version. Still a lot of testing needed. Currently only single histogram fitting with a limited number of functions is supported to run on the GPU.

This commit is contained in:
2016-04-06 17:22:58 +02:00
parent a29b790e04
commit 6fa7bb5764
6 changed files with 171 additions and 66 deletions

View File

@@ -57,6 +57,7 @@ class PRunBase
virtual void CalcTheory() = 0; ///< pure virtual, i.e. needs to be implemented by the deriving class!!
virtual Double_t GetTimeResolution() { return fTimeResolution; } ///< returns the native raw data time resolution
virtual UInt_t GetRunNo() { return fRunNo; } ///< returns the number of runs of the msr-file
virtual PRunData* GetData() { return &fData; } ///< returns the data to be fitted
virtual void CleanUp();

View File

@@ -43,14 +43,23 @@ using namespace std;
#include "PRunMuMinus.h"
#include "PRunNonMusr.h"
//----------------------------------------------------------------------------------------------------------------
/**
*
*/
typedef struct {
Bool_t fScaleN0AndBkg;
Double_t fN0;
Double_t fNbkg;
Double_t fTau;
Double_t fPackedTimeResolution;
Double_t fStartTime;
Int_t fNoOfFitBins;
PDoubleVector fFun;
PIntVector fMap;
} PSingleHistoParams;
//----------------------------------------------------------------------------------------------------------------
/**
* <p>Handler class handling all processed data of an msr-file. All calls of minuit2 are going through this class.
*/
@@ -111,6 +120,8 @@ class PRunListCollection
virtual Int_t GetNoOfParameters() { return fMsrInfo->GetNoOfParams(); }
virtual Int_t GetNoOfFunctions() { return fMsrInfo->GetNoOfFuncs(); }
virtual Int_t GetNoOfMaps() { return fMsrInfo->GetNoOfMaps(); }
virtual Int_t GetStartTimeBin(UInt_t idx);
virtual Int_t GetEndTimeBin(UInt_t idx);
virtual Int_t GetSingleHistoParams(UInt_t idx, const std::vector<Double_t>& par, PSingleHistoParams &shp);
private:

View File

@@ -53,6 +53,11 @@ class PRunSingleHisto : public PRunBase
virtual Double_t GetBackground() { return fBackground; }
virtual Int_t GetStartTimeBin() { return fStartTimeBin; }
virtual Int_t GetEndTimeBin() { return fEndTimeBin; }
virtual Int_t GetPacking() { return fPacking; }
virtual Bool_t GetScaleN0AndBkg() { return fScaleN0AndBkg; }
protected:
virtual void CalcNoOfFitBins();
virtual Bool_t PrepareData();
@@ -66,9 +71,12 @@ class PRunSingleHisto : public PRunBase
Double_t fBackground; ///< needed if background range is given (units: 1/bin)
Int_t fPacking; ///< packing for this particular run. Either given in the RUN- or GLOBAL-block.
Int_t fGoodBins[2]; ///< keep first/last good bins. 0=fgb, 1=lgb
Int_t fGoodBins[2]; ///< keep first/last good bins. 0=fgb, 1=lgb
PDoubleVector fForward; ///< forward histo data
PDoubleVector fForward; ///< forward histo data
Int_t fStartTimeBin; ///< bin at which the fit starts
Int_t fEndTimeBin; ///< bin at which the fit ends
virtual Bool_t GetProperT0(PRawRunData* runData, PMsrGlobalBlock *globalBlock, PUIntVector &histoNo);
virtual Bool_t GetProperDataRange();