add N0 estimate to single histogram fit. Some improvements in musredit (see ChangLog)

This commit is contained in:
2013-02-14 09:16:27 +00:00
parent 4e554aaf84
commit 310eedf190
24 changed files with 1089 additions and 163 deletions

View File

@@ -47,7 +47,7 @@
class PMsrHandler
{
public:
PMsrHandler(const Char_t *fileName, const Bool_t writeExpectedChisq=false);
PMsrHandler(const Char_t *fileName, PStartupOptions *startupOptions=0);
virtual ~PMsrHandler();
virtual Int_t ReadMsrFile();
@@ -106,9 +106,11 @@ class PMsrHandler
virtual void CheckMaxLikelihood();
virtual void GetGroupingString(Int_t runNo, TString detector, TString &groupingStr);
virtual Bool_t EstimateN0();
virtual Double_t GetAlphaEstimateN0();
private:
Bool_t fWriteExpectedChisq; ///< flag shows if expected chisq shall be written to the msr-file
PStartupOptions *fStartupOptions; ///< contains information about startup options from the musrfit_startup.xml
TString fFileName; ///< file name of the msr-file
TString fMsrFileDirectoryPath; ///< msr-file directory path

View File

@@ -738,4 +738,14 @@ typedef struct {
UInt_t idf; ///< IDF version for NeXus files.
} PAny2ManyInfo;
//-------------------------------------------------------------
/**
* <p>Holds the informations for the any2many converter program
*/
typedef struct {
Bool_t writeExpectedChisq; ///< if set to true, expected chisq per block will be written
Bool_t estimateN0; ///< if set to true, for single histogram fits N0 will be estimated
Double_t alphaEstimateN0; ///< relates the Bkg to N0, i.e. Bkg = alpha*N0
} PStartupOptions;
#endif // _PMUSR_H_

View File

@@ -69,6 +69,7 @@ class PRunSingleHisto : public PRunBase
PDoubleVector fForward; ///< forward histo data
virtual void EstimateN0();
virtual Bool_t EstimateBkg(UInt_t histoNo);
virtual Bool_t IsScaleN0AndBkg();
};

View File

@@ -75,14 +75,16 @@ class PStartupHandler : public TObject, public TQObject
virtual void CheckLists();
virtual const Bool_t GetWritePerRunBlockChisq() { return fWritePerRunBlockChisq; } ///< returns the write_per_run_block_chisq flag
virtual PMsrFourierStructure GetFourierDefaults() { return fFourierDefaults; } ///< returns the Fourier defaults
virtual const PStringVector GetDataPathList() const { return fDataPathList; } ///< returns the search data path list
virtual const PIntVector GetMarkerList() const { return fMarkerList; } ///< returns the marker list
virtual const PIntVector GetColorList() const { return fColorList; } ///< returns the color list
virtual PStartupOptions* GetStartupOptions() { return &fStartupOptions; } ///< returns the startup options
virtual PMsrFourierStructure GetFourierDefaults() { return fFourierDefaults; } ///< returns the Fourier defaults
virtual const PStringVector GetDataPathList() const { return fDataPathList; } ///< returns the search data path list
virtual const PIntVector GetMarkerList() const { return fMarkerList; } ///< returns the marker list
virtual const PIntVector GetColorList() const { return fColorList; } ///< returns the color list
virtual void SetStartupOptions(const PStartupOptions opt) { fStartupOptions = opt; }
private:
enum EKeyWords {eEmpty, eComment, eDataPath, eWritePerRunBlockChisq,
enum EKeyWords {eEmpty, eComment, eDataPath, eOptions, eWritePerRunBlockChisq, eEstimateN0, eAlphaEstimateN0,
eFourierSettings, eUnits, eFourierPower, eApodization, ePlot, ePhase, ePhaseIncrement,
eRootSettings, eMarkerList, eMarker,
eColorList, eColor};
@@ -90,11 +92,11 @@ class PStartupHandler : public TObject, public TQObject
Bool_t fStartupFileFound; ///< startup file found flag
TString fStartupFilePath; ///< full musrfit_startup.xml startup file paths
Bool_t fWritePerRunBlockChisq; ///< flag showing if per run block chisq and the expected chisq shall be written to the msr-file
PMsrFourierStructure fFourierDefaults; ///< Fourier defaults
PStringVector fDataPathList; ///< search data path list
PIntVector fMarkerList; ///< marker list
PIntVector fColorList; ///< color list
PStartupOptions fStartupOptions; ///< collects all startup options which will be requested by PMsrFileHandler
Bool_t StartupFileExists(Char_t *fln);