slightly more general handling of data. Needed to implement musrview, ...
This commit is contained in:
@@ -118,12 +118,23 @@ typedef vector<TString> PStringVector;
|
||||
|
||||
//-------------------------------------------------------------
|
||||
/**
|
||||
* <p>Predominantly used in PRunBase.
|
||||
* <p> data handling tag
|
||||
*/
|
||||
enum EPMusrHandleTag { kEmpty, kFit, kView };
|
||||
|
||||
//-------------------------------------------------------------
|
||||
/**
|
||||
* <p> Predominantly used in PRunBase.
|
||||
*/
|
||||
typedef struct {
|
||||
vector<double> fTime;
|
||||
// data related info
|
||||
double fDataTimeStart;
|
||||
double fDataTimeStep;
|
||||
vector<double> fValue;
|
||||
vector<double> fError;
|
||||
// theory related info
|
||||
double fTheoryTimeStart;
|
||||
double fTheoryTimeStep;
|
||||
vector<double> fTheory;
|
||||
} PRunData;
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ class PRunAsymmetry : public PRunBase
|
||||
{
|
||||
public:
|
||||
PRunAsymmetry();
|
||||
PRunAsymmetry(PMsrHandler *msrInfo, PRunDataHandler *rawData, unsigned int runNo);
|
||||
PRunAsymmetry(PMsrHandler *msrInfo, PRunDataHandler *rawData, unsigned int runNo, EPMusrHandleTag tag);
|
||||
virtual ~PRunAsymmetry();
|
||||
|
||||
virtual double CalcChiSquare(const std::vector<double>& par);
|
||||
@@ -49,6 +49,8 @@ class PRunAsymmetry : public PRunBase
|
||||
|
||||
protected:
|
||||
virtual bool PrepareData();
|
||||
virtual bool PrepareFitData(PRawRunData* runData, unsigned int histoNo[2]);
|
||||
virtual bool PrepareViewData(PRawRunData* runData, unsigned int histoNo[2]);
|
||||
|
||||
private:
|
||||
unsigned int fAlphaBetaTag; ///< 1-> alpha = beta = 1; 2-> alpha != 1, beta = 1; 3-> alpha = 1, beta != 1; 4-> alpha != 1, beta != 1
|
||||
|
||||
@@ -61,7 +61,7 @@ class PRunBase
|
||||
{
|
||||
public:
|
||||
PRunBase();
|
||||
PRunBase(PMsrHandler *msrInfo, PRunDataHandler *rawData, unsigned int runNo);
|
||||
PRunBase(PMsrHandler *msrInfo, PRunDataHandler *rawData, unsigned int runNo, EPMusrHandleTag tag);
|
||||
virtual ~PRunBase();
|
||||
|
||||
virtual double CalcChiSquare(const vector<double>& par) = 0; // pure virtual, i.e. needs to be implemented by the deriving class!!
|
||||
@@ -70,13 +70,15 @@ class PRunBase
|
||||
virtual void CalcTheory() = 0; // pure virtual, i.e. needs to be implemented by the deriving class!!
|
||||
|
||||
virtual unsigned int GetRunNo() { return fRunNo; }
|
||||
virtual PRunData* GetData() { return &fFitData; }
|
||||
virtual PRunData* GetData() { return &fData; }
|
||||
virtual void CleanUp();
|
||||
virtual bool IsValid() { return fValid; }
|
||||
|
||||
protected:
|
||||
bool fValid;
|
||||
|
||||
EPMusrHandleTag fHandleTag; ///< tag telling whether this is used for fit, view, ...
|
||||
|
||||
unsigned int fRunNo; ///< number of the run within the msr file
|
||||
PMsrHandler *fMsrInfo; ///< msr-file handler
|
||||
PMsrRunStructure *fRunInfo; ///< run info used to filter out needed infos for the run
|
||||
@@ -84,8 +86,7 @@ class PRunBase
|
||||
|
||||
PIntVector fParamNo; ///< vector of parameter numbers for the specifc run
|
||||
|
||||
PRunData fFitData; ///< data to be fitted, i.e. binned data on the fit time range
|
||||
PRunData fBinData; ///< binned data set, starting at raw data 0, i.e. at negative times used to plot and determine t0's
|
||||
PRunData fData; ///< data to be fitted, viewed, i.e. binned data
|
||||
double fTimeResolution; ///< time resolution
|
||||
PDoubleVector fT0s; ///< all t0's of a run! The derived classes will handle it
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@ class PRunListCollection
|
||||
|
||||
enum EDataSwitch { kIndex, kRunNo };
|
||||
|
||||
virtual bool Add(int runNo);
|
||||
virtual bool Add(int runNo, EPMusrHandleTag tag);
|
||||
|
||||
virtual double GetSingleHistoChisq(const std::vector<double>& par);
|
||||
virtual double GetAsymmetryChisq(const std::vector<double>& par);
|
||||
|
||||
@@ -38,7 +38,7 @@ class PRunNonMusr : public PRunBase
|
||||
{
|
||||
public:
|
||||
PRunNonMusr();
|
||||
PRunNonMusr(PMsrHandler *msrInfo, PRunDataHandler *rawData, unsigned int runNo);
|
||||
PRunNonMusr(PMsrHandler *msrInfo, PRunDataHandler *rawData, unsigned int runNo, EPMusrHandleTag tag);
|
||||
virtual ~PRunNonMusr();
|
||||
|
||||
virtual double CalcChiSquare(const std::vector<double>& par);
|
||||
|
||||
@@ -38,7 +38,7 @@ class PRunRRF : public PRunBase
|
||||
{
|
||||
public:
|
||||
PRunRRF();
|
||||
PRunRRF(PMsrHandler *msrInfo, PRunDataHandler *rawData, unsigned int runNo);
|
||||
PRunRRF(PMsrHandler *msrInfo, PRunDataHandler *rawData, unsigned int runNo, EPMusrHandleTag tag);
|
||||
virtual ~PRunRRF();
|
||||
|
||||
virtual double CalcChiSquare(const std::vector<double>& par);
|
||||
|
||||
@@ -38,7 +38,7 @@ class PRunSingleHisto : public PRunBase
|
||||
{
|
||||
public:
|
||||
PRunSingleHisto();
|
||||
PRunSingleHisto(PMsrHandler *msrInfo, PRunDataHandler *rawData, unsigned int runNo);
|
||||
PRunSingleHisto(PMsrHandler *msrInfo, PRunDataHandler *rawData, unsigned int runNo, EPMusrHandleTag tag);
|
||||
virtual ~PRunSingleHisto();
|
||||
|
||||
virtual double CalcChiSquare(const std::vector<double>& par);
|
||||
@@ -49,6 +49,8 @@ class PRunSingleHisto : public PRunBase
|
||||
|
||||
protected:
|
||||
virtual bool PrepareData();
|
||||
virtual bool PrepareFitData(unsigned int start, unsigned int end, double t0, PRawRunData* runData, unsigned int histoNo);
|
||||
virtual bool PrepareViewData(unsigned int start, unsigned int end, double t0, PRawRunData* runData, unsigned int histoNo);
|
||||
|
||||
private:
|
||||
double fFitStartTime;
|
||||
|
||||
Reference in New Issue
Block a user