add memory handling for DKS/GPU. No fitting possible, yet.

This commit is contained in:
2016-03-31 16:41:46 +02:00
parent 5fb2ce777e
commit ae77181f42
6 changed files with 164 additions and 2 deletions

View File

@@ -36,6 +36,11 @@
#include "DKSBaseMuSR.h"
#include "PRunListCollection.h"
typedef struct {
UInt_t fN0; ///< N0 parameter index
UInt_t fNbkg; ///< Nbkg parameter index
} PNidx;
/**
* <p>This is the minuit2 interface function class providing the function to be optimized (chisq or log max-likelihood).
*/
@@ -63,6 +68,9 @@ class PFitterFcnDKS : public ROOT::Minuit2::FCNBase
mutable DKSBaseMuSR fDKS;
vector<void *> fMemData; ///< vector holding the initial addresses of the data sets on the GPU
vector<PNidx> fNidx; ///< N0 / Nbkg parameter index vector
virtual void InitDKS(const UInt_t dksTag);
virtual void FreeDKS();
};

View File

@@ -113,6 +113,7 @@ class PMsrHandler
virtual std::string GetDKSTheoryString();
virtual UInt_t GetDKSTag();
virtual Int_t GetNoOfMaps() { return fNoOfMaps; }
private:
Bool_t fFourierOnly; ///< flag indicating if Fourier transform only is wished. If yes, some part of the msr-file blocks are not needed.
@@ -139,6 +140,8 @@ class PMsrHandler
Bool_t fCopyStatisticsBlock; ///< flag, if true: just copy to old statistics block (musrt0), otherwise write a new one (musrfit)
Int_t fNoOfMaps;
virtual Bool_t HandleFitParameterEntry(PMsrLines &line);
virtual Bool_t HandleTheoryEntry(PMsrLines &line);
virtual Bool_t HandleFunctionsEntry(PMsrLines &line);

View File

@@ -100,6 +100,12 @@ class PRunListCollection
virtual const Char_t* GetXAxisTitle(const TString &runName, const UInt_t idx) const;
virtual const Char_t* GetYAxisTitle(const TString &runName, const UInt_t idx) const;
virtual Int_t GetNoOfParameters() { return fMsrInfo->GetNoOfParams(); }
virtual Int_t GetNoOfFunctions() { return fMsrInfo->GetNoOfFuncs(); }
virtual Int_t GetNoOfMaps() { return fMsrInfo->GetNoOfMaps(); }
virtual Int_t GetN0Idx(UInt_t idx);
virtual Int_t GetNbkgIdx(UInt_t idx);
private:
PMsrHandler *fMsrInfo; ///< pointer to the msr-file handler
PRunDataHandler *fData; ///< pointer to the run-data handler