musrfit 1.10.0
PRunBase Class Referenceabstract

Abstract base class defining the interface for all μSR fit types. More...

#include <PRunBase.h>

Inheritance diagram for PRunBase:
Collaboration diagram for PRunBase:

Public Member Functions

 PRunBase ()
 Default constructor.
 
 PRunBase (PMsrHandler *msrInfo, PRunDataHandler *rawData, UInt_t runNo, EPMusrHandleTag tag)
 Constructor initializing run from MSR file and raw data.
 
virtual ~PRunBase ()
 Virtual destructor.
 
virtual Double_t CalcChiSquare (const std::vector< Double_t > &par)=0
 Calculates χ² between data and theory (pure virtual).
 
virtual Double_t CalcChiSquareExpected (const std::vector< Double_t > &par)=0
 Calculates expected chi-square for statistical analysis (pure virtual).
 
virtual Double_t CalcMaxLikelihood (const std::vector< Double_t > &par)=0
 Calculates maximum likelihood estimator (pure virtual).
 
virtual void SetFitRange (PDoublePairVector fitRange)
 Sets the fit time range for this run.
 
virtual void CalcTheory ()=0
 Evaluates theory function at all data points (pure virtual).
 
virtual UInt_t GetRunNo ()
 Returns the run number (0-based index in MSR file).
 
virtual PRunDataGetData ()
 Returns pointer to processed data container.
 
virtual void CleanUp ()
 Cleans up internal data structures.
 
virtual Bool_t IsValid ()
 Returns validity status of this run object.
 

Protected Member Functions

virtual Bool_t PrepareData ()=0
 Prepares raw data for fitting (pure virtual).
 
virtual void DeadTimeCorrection (std::vector< PDoubleVector > &histos, PUIntVector &histoNo)
 carry out dead time correction
 
virtual void CalculateKaiserFilterCoeff (Double_t wc, Double_t A, Double_t dw)
 Calculates Kaiser window FIR filter coefficients for RRF smoothing.
 
virtual void FilterTheo ()
 Applies Kaiser FIR filter to theory values for RRF fits.
 

Protected Attributes

Bool_t fValid
 Flag indicating if run object initialized successfully; false if any error occurred.
 
EPMusrHandleTag fHandleTag
 Operation mode: kFit (fitting), kView (display only), kEmpty (uninitialized)
 
Int_t fRunNo
 Run number (0-based index in MSR file RUN blocks)
 
PMsrHandlerfMsrInfo
 Pointer to MSR file handler (owned externally, not deleted here)
 
PMsrRunBlockfRunInfo
 Pointer to this run's RUN block settings within fMsrInfo.
 
PRunDataHandlerfRawData
 Pointer to raw data handler (owned externally, not deleted here)
 
PRunData fData
 Processed data container: background-corrected, packed, with theory values.
 
Double_t fTimeResolution
 Time resolution of raw histogram data in microseconds (μs), e.g., 0.01953125 μs for PSI GPS.
 
PMetaData fMetaData
 Experimental metadata extracted from data file header (magnetic field, temperature, beam energy)
 
PDoubleVector fT0s
 Time-zero bin values for all histograms in this run (forward, backward, etc.)
 
std::vector< PDoubleVectorfAddT0s
 Time-zero bin values for additional runs to be added to main run.
 
Double_t fFitStartTime
 Fit range start time in microseconds (μs) relative to t0.
 
Double_t fFitEndTime
 Fit range end time in microseconds (μs) relative to t0.
 
PDoubleVector fFuncValues
 Cached values of user-defined functions from FUNCTIONS block, evaluated at current parameters.
 
std::unique_ptr< PTheoryfTheory
 Theory function evaluator (smart pointer, automatically deleted)
 
PDoubleVector fKaiserFilter
 Kaiser window FIR filter coefficients for smoothing RRF theory curves.
 

Detailed Description

Abstract base class defining the interface for all μSR fit types.

PRunBase establishes a common API for processing and fitting different types of μSR data (single histogram, asymmetry, RRF, etc.). This class serves as the foundation of the musrfit framework, providing core functionality and requiring derived classes to implement fit-type-specific algorithms.

Derived Classes

Each derived class handles a specific type of μSR measurement:

Key Responsibilities

  • Loading raw histogram data from various file formats (ROOT, NeXus, WKM, etc.)
  • Extracting metadata (magnetic field, temperature, energy) from data files
  • Managing time-zero (t0) determination and validation
  • Background subtraction (fixed or estimated from pre-t0 region)
  • Time bin packing/rebinning for improved statistics
  • Theory function evaluation via PTheory interface
  • χ² or maximum likelihood calculation for fitting
  • RRF transformations with Kaiser filtering (for RRF-derived classes)
  • Run addition (combining multiple identical measurements)
  • Histogram grouping (combining multiple detectors)

Processing Workflow

The typical processing sequence for a fit is:

  1. Construction: Initialize from MSR file and raw data handler
  2. PrepareData(): Load and preprocess raw data (implemented by derived classes)
    • Load histograms, validate t0 values, subtract background
    • Calculate asymmetry or apply RRF transformation (if applicable)
    • Pack bins, propagate errors
  3. Fitting loop (called by MINUIT):
    • CalcTheory(): Evaluate theory function at data points
    • CalcChiSquare(): Compute χ² between data and theory
    • MINUIT adjusts parameters to minimize χ²
  4. Visualization: Theory calculated with higher resolution for plotting

Design Pattern

PRunBase implements the Template Method design pattern:

  • Base class defines the overall workflow and common operations
  • Derived classes implement fit-type-specific algorithms (pure virtual methods)
  • Ensures consistency across different fit types while allowing specialization

Thread Safety

PRunBase objects are NOT thread-safe. Each thread in parallel fitting should create its own PRunBase-derived object. Theory evaluation may use OpenMP internally (see PTheory documentation).

See also
PTheory for theory function evaluation
PMsrHandler for MSR file parsing
PRunDataHandler for raw data loading

Definition at line 102 of file PRunBase.h.

Constructor & Destructor Documentation

◆ PRunBase() [1/2]

PRunBase::PRunBase ( )

Default constructor.

Default constructor that initializes all member variables to default values.

Creates an empty, invalid run object with all pointers set to nullptr and values set to undefined/invalid states. This constructor is needed to allow creation of vectors of PRunBase-derived objects.

A run created with this constructor requires initialization via the main constructor before it can be used for fitting.

Definition at line 54 of file PRunBase.cpp.

References fFitEndTime, fFitStartTime, fHandleTag, fMetaData, fRawData, fRunInfo, fRunNo, fTimeResolution, fValid, kEmpty, and PMUSR_UNDEFINED.

Referenced by PRunAsymmetry::PRunAsymmetry(), PRunAsymmetry::PRunAsymmetry(), PRunAsymmetryBNMR::PRunAsymmetryBNMR(), PRunAsymmetryBNMR::PRunAsymmetryBNMR(), PRunAsymmetryRRF::PRunAsymmetryRRF(), PRunAsymmetryRRF::PRunAsymmetryRRF(), PRunMuMinus::PRunMuMinus(), PRunMuMinus::PRunMuMinus(), PRunNonMusr::PRunNonMusr(), PRunNonMusr::PRunNonMusr(), PRunSingleHisto::PRunSingleHisto(), PRunSingleHisto::PRunSingleHisto(), PRunSingleHistoRRF::PRunSingleHistoRRF(), and PRunSingleHistoRRF::PRunSingleHistoRRF().

◆ PRunBase() [2/2]

PRunBase::PRunBase ( PMsrHandler * msrInfo,
PRunDataHandler * rawData,
UInt_t runNo,
EPMusrHandleTag tag )

Constructor initializing run from MSR file and raw data.

Main constructor that initializes a run from MSR file and raw data.

Initializes the run object by:

  • Storing pointers to MSR file handler and raw data handler
  • Extracting run-specific settings from MSR RUN block
  • Validating function parameter mappings
  • Creating PTheory object for theory evaluation
  • Initializing metadata and function value vectors
Parameters
msrInfoPointer to MSR file handler containing all fit settings
rawDataPointer to raw data handler for accessing histogram data
runNoRun number (0-based index in MSR file RUN blocks)
tagOperation mode: kFit (fitting), kView (display only)

Performs comprehensive initialization:

  1. Stores operation mode (fit vs. view) and pointers to MSR and data handlers
  2. Extracts run-specific settings from the appropriate MSR RUN block
  3. Validates function parameter mappings to ensure FUNCTIONS block is valid
  4. Initializes metadata structures (field, energy, temperature)
  5. Initializes function value cache for FUNCTIONS block evaluation
  6. Creates PTheory object for evaluating the theory function
  7. Validates that theory initialization succeeded

If any initialization step fails (e.g., invalid theory, out-of-range parameters), the program exits with an error message. The run object is marked as valid upon successful completion.

Parameters
msrInfoPointer to MSR file handler (must remain valid for object lifetime)
rawDataPointer to raw data handler (must remain valid for object lifetime)
runNoRun number (0-based index into MSR file RUN blocks)
tagOperation mode: kFit (fitting), kView (display/plotting)

Definition at line 94 of file PRunBase.cpp.

References fFitEndTime, fFitStartTime, fFuncValues, fHandleTag, fMetaData, fMsrInfo, fRawData, fRunInfo, fRunNo, fTheory, fTimeResolution, fValid, if(), and PMUSR_UNDEFINED.

◆ ~PRunBase()

PRunBase::~PRunBase ( )
virtual

Virtual destructor.

Virtual destructor that cleans up allocated resources.

Cleans up allocated resources including:

  • t0 value vectors
  • Function value vectors
  • PTheory object (via unique_ptr)

Frees memory allocated for:

  • t0 value vectors (fT0s)
  • Additional run t0 vectors (fAddT0s)
  • Function value cache (fFuncValues)

The PTheory object is automatically deleted via unique_ptr. Pointers to MSR handler and raw data handler are NOT deleted as they are owned by the calling code.

Definition at line 152 of file PRunBase.cpp.

References fAddT0s, fFuncValues, and fT0s.

Member Function Documentation

◆ CalcChiSquare()

virtual Double_t PRunBase::CalcChiSquare ( const std::vector< Double_t > & par)
pure virtual

Calculates χ² between data and theory (pure virtual).

Computes the chi-squared statistic:

\[ \chi^2 = \sum_{i=1}^{N} \frac{(y_i^{\rm data} - y_i^{\rm theory})^2}{\sigma_i^2} \]

This is the standard least-squares metric for fitting. It assumes Gaussian statistics (valid for high-count data). For low-count data, consider using CalcMaxLikelihood() instead.

Called by MINUIT during each fit iteration to evaluate parameter quality. Derived classes implement the specific calculation for their data type.

Parameters
parVector of fit parameter values from MINUIT
Returns
Chi-squared value (lower is better)
See also
CalcMaxLikelihood for alternative fit metric

Implemented in PRunAsymmetry, PRunAsymmetryBNMR, PRunAsymmetryRRF, PRunMuMinus, PRunNonMusr, PRunSingleHisto, and PRunSingleHistoRRF.

◆ CalcChiSquareExpected()

virtual Double_t PRunBase::CalcChiSquareExpected ( const std::vector< Double_t > & par)
pure virtual

Calculates expected chi-square for statistical analysis (pure virtual).

Computes the expected χ² value based on the theory and error estimates, useful for evaluating the quality of error bars and fit statistics.

For properly estimated errors: χ²_expected ≈ number of degrees of freedom

Parameters
parVector of fit parameter values from MINUIT
Returns
Expected chi-squared value
Note
Implementation is optional in derived classes; many return 0.0

Implemented in PRunAsymmetry, PRunAsymmetryBNMR, PRunAsymmetryRRF, PRunMuMinus, PRunNonMusr, PRunSingleHisto, and PRunSingleHistoRRF.

◆ CalcMaxLikelihood()

virtual Double_t PRunBase::CalcMaxLikelihood ( const std::vector< Double_t > & par)
pure virtual

Calculates maximum likelihood estimator (pure virtual).

Computes the negative log-likelihood for Poisson statistics:

\[ -2\ln L = 2\sum_{i=1}^{N} \left[y_i^{\rm theory} - y_i^{\rm data} \ln(y_i^{\rm theory})\right] \]

Maximum likelihood estimation is superior to χ² for low-count data where the Gaussian approximation breaks down (typically when counts < 10-20 per bin). It naturally handles Poisson statistics without requiring error estimates.

Called by MINUIT as an alternative to χ² minimization. MINUIT minimizes this function just like χ².

Parameters
parVector of fit parameter values from MINUIT
Returns
Negative 2 times log-likelihood (lower is better)
See also
CalcChiSquare for standard least-squares metric
Note
Not implemented in all derived classes

Implemented in PRunAsymmetry, PRunAsymmetryBNMR, PRunAsymmetryRRF, PRunMuMinus, PRunNonMusr, PRunSingleHisto, and PRunSingleHistoRRF.

◆ CalcTheory()

virtual void PRunBase::CalcTheory ( )
pure virtual

Evaluates theory function at all data points (pure virtual).

Calculates the expected signal at each time point using the current parameter values from the MSR THEORY block. This is called:

  • During each MINUIT fit iteration
  • After fitting for visualization
  • When evaluating functions from FUNCTIONS block

The theory values are stored in fData for comparison with measured data. Derived classes implement fit-type-specific theory calculation (e.g., single histogram vs. asymmetry).

See also
PTheory for the underlying theory evaluation engine

Implemented in PRunAsymmetry, PRunAsymmetryBNMR, PRunAsymmetryRRF, PRunMuMinus, PRunNonMusr, PRunSingleHisto, and PRunSingleHistoRRF.

◆ CalculateKaiserFilterCoeff()

void PRunBase::CalculateKaiserFilterCoeff ( Double_t wc,
Double_t A,
Double_t dw )
protectedvirtual

Calculates Kaiser window FIR filter coefficients for RRF smoothing.

Computes a Kaiser window finite impulse response (FIR) filter for smoothing theory curves in rotating reference frame (RRF) fits. The Kaiser window provides excellent control over the trade-off between main lobe width (frequency resolution) and side lobe attenuation (spectral leakage).

The filter design uses the Kaiser-Bessel formula:

\[ w[n] = \frac{I_0\left(\beta\sqrt{1-\left(\frac{n-\alpha}{\alpha}\right)^2}\right)}{I_0(\beta)} \]

where $ I_0 $ is the modified Bessel function of the first kind, $ \alpha = (M-1)/2 $, and $ \beta $ is determined from the attenuation A.

Parameters
wcCutoff frequency (normalized, 0 to π rad/sample)
AAttenuation in dB (typical: 60 dB for good side lobe suppression)
dwTransition width (normalized, typical: 0.1-0.3)

Coefficients are stored in fKaiserFilter for use by FilterTheo().

See also
FilterTheo() for application of the filter

Designs a low-pass FIR filter using the Kaiser window method, which provides excellent control over the frequency response characteristics. The filter is used to smooth theory curves in rotating reference frame (RRF) fits, ensuring consistent comparison between filtered data and filtered theory.

Algorithm (based on Oppenheim, Schafer, Buck, "Discrete-Time Signal Processing"):

  1. Determine β parameter from attenuation requirement A
  2. Calculate filter order m from transition width dw
  3. Generate Kaiser window: $ w[n] = \frac{I_0(\beta\sqrt{1-(n/\alpha)^2})}{I_0(\beta)} $
  4. Apply window to ideal sinc filter: $ h[n] = \frac{\sin(\omega_c n)}{\pi n} \cdot w[n] $
  5. Normalize coefficients to unity gain at DC

The β parameter is chosen based on attenuation A (in dB):

  • A > 50: β = 0.1102(A - 8.7)
  • 21 ≤ A ≤ 50: β = 0.5842(A - 21)^0.4 + 0.07886(A - 21)
  • A < 21: β = 0

Filter order: m = (A - 8) / (2.285 × Δω × π), rounded to nearest odd integer

Reference: A.V. Oppenheim, R.W. Schafer, J.R. Buck, "Discrete-Time Signal Processing", Pearson 2004, pp. 574ff

Parameters
wcCutoff frequency (normalized, 0 to π rad/sample)
AAttenuation in dB: A = -20 log₁₀(δ) where δ is the tolerance band
dwTransition width: Δω = ω_S - ω_P (stop band - pass band frequencies)

The computed coefficients are stored in fKaiserFilter and normalized for unity DC gain.

See also
FilterTheo() for application of these coefficients

Definition at line 339 of file PRunBase.cpp.

References fData, and fKaiserFilter.

Referenced by PRunAsymmetry::PrepareRRFViewData(), and PRunSingleHisto::PrepareViewData().

◆ CleanUp()

void PRunBase::CleanUp ( )
virtual

Cleans up internal data structures.

Cleans up allocated resources.

Releases memory used by temporary data structures. Called when run processing is complete or when resetting for a new fit.

Releases memory used by the PTheory object via unique_ptr reset. This is called when the run processing is complete or when preparing for a new fit with different settings.

Other data structures (vectors) are managed automatically by their destructors.

Definition at line 298 of file PRunBase.cpp.

References fTheory.

◆ DeadTimeCorrection()

void PRunBase::DeadTimeCorrection ( std::vector< PDoubleVector > & histos,
PUIntVector & histoNo )
protectedvirtual

◆ FilterTheo()

void PRunBase::FilterTheo ( )
protectedvirtual

Applies Kaiser FIR filter to theory values for RRF fits.

Filters the theory function stored in fData using the Kaiser window coefficients from fKaiserFilter. This ensures the theory curve is smoothed in the same way as the RRF-transformed data, enabling fair comparison in χ² calculation.

The filtering is performed via convolution in the time domain:

\[ y_{\rm filtered}[n] = \sum_{k=0}^{M-1} h[k] \cdot y_{\rm theory}[n-k] \]

where h[k] are the Kaiser filter coefficients and M is the filter length.

Only used in RRF-derived classes (PRunAsymmetryRRF, PRunSingleHistoRRF).

Precondition
CalculateKaiserFilterCoeff() must be called first to initialize fKaiserFilter
fData must contain theory values (CalcTheory() must have been called)

Performs time-domain convolution of the theory function with the Kaiser filter coefficients computed by CalculateKaiserFilterCoeff(). This smooths the theory curve to match the filtering applied to RRF-transformed data, ensuring fair comparison during χ² calculation.

The filtering operation is:

\[ y_{\rm filtered}[i] = \sum_{j=0}^{M-1} h[j] \cdot y_{\rm theory}[i-j] \]

where:

  • h[j] are the Kaiser filter coefficients from fKaiserFilter
  • M is the filter length
  • For i < j, the missing samples are treated as zero (causal filter)

Additional processing:

  • The filtered theory replaces the original theory in fData
  • Time start is shifted backward by half the filter length to compensate for the group delay introduced by the symmetric FIR filter

This method is only called by RRF-derived classes (PRunAsymmetryRRF, PRunSingleHistoRRF) after theory calculation and RRF transformation.

Precondition
CalculateKaiserFilterCoeff() must have been called to initialize fKaiserFilter
fData must contain theory values (CalcTheory() must have been called)
See also
CalculateKaiserFilterCoeff() for filter coefficient calculation

Definition at line 405 of file PRunBase.cpp.

References fData, and fKaiserFilter.

Referenced by PRunAsymmetry::PrepareRRFViewData(), and PRunSingleHisto::PrepareViewData().

◆ GetData()

virtual PRunData * PRunBase::GetData ( )
inlinevirtual

Returns pointer to processed data container.

The PRunData object contains:

  • Background-corrected histogram data
  • Packed/rebinned data points
  • Error bars
  • Time grid information
  • Theory values (after CalcTheory() is called)
Returns
Pointer to PRunData object with processed data

Definition at line 242 of file PRunBase.h.

References fData.

◆ GetRunNo()

virtual UInt_t PRunBase::GetRunNo ( )
inlinevirtual

Returns the run number (0-based index in MSR file).

Returns
Run number corresponding to position in MSR RUN blocks

Definition at line 228 of file PRunBase.h.

References fRunNo.

◆ IsValid()

virtual Bool_t PRunBase::IsValid ( )
inlinevirtual

Returns validity status of this run object.

A run becomes invalid if:

  • Required data files cannot be loaded
  • MSR file settings are inconsistent
  • Theory initialization fails
  • Data preprocessing encounters errors
Returns
True if run initialized successfully, false otherwise

Definition at line 263 of file PRunBase.h.

References fValid.

◆ PrepareData()

virtual Bool_t PRunBase::PrepareData ( )
protectedpure virtual

Prepares raw data for fitting (pure virtual).

This is the main data preprocessing pipeline, implemented differently by each derived class according to the fit type. Common operations include:

  • Loading histogram data from raw data files
  • Validating and determining t0 values
  • Subtracting background (fixed or estimated from pre-t0 region)
  • Calculating asymmetry (for asymmetry-based fits)
  • Applying RRF transformation (for RRF fits)
  • Time bin packing/rebinning to improve statistics
  • Proper error propagation through all transformations
  • Adding multiple runs together (if specified)
  • Grouping detector histograms (if specified)

Called once during object construction. If this returns false, the run object is marked as invalid.

Returns
True on success, false if any preprocessing step fails
See also
PRunAsymmetry::PrepareData() for asymmetry-specific implementation
PRunSingleHisto::PrepareData() for single histogram implementation

Implemented in PRunAsymmetry, PRunAsymmetryBNMR, PRunAsymmetryRRF, PRunMuMinus, PRunNonMusr, PRunSingleHisto, and PRunSingleHistoRRF.

◆ SetFitRange()

void PRunBase::SetFitRange ( PDoublePairVector fitRange)
virtual

Sets the fit time range for this run.

Sets the fit time range and recalculates the number of fitted bins.

Updates the fitting window, useful for the FIT_RANGE command which allows scanning different time windows to find the optimal range for parameter extraction. Can be called multiple times during a fit sequence.

The fit range is specified in microseconds (μs) from t0. Multiple ranges can be specified for different runs in a global fit.

Parameters
fitRangeVector of (start, end) time pairs in microseconds

Example: fitRange[0] = (0.1, 10.0) means fit from 0.1 μs to 10.0 μs after t0

Updates the fitting window for this run. This method handles two scenarios:

  1. Single fit range: If fitRange contains one pair, it applies to all runs
  2. Multiple fit ranges: If fitRange contains multiple pairs, it selects the appropriate range based on fRunNo

The method validates that:

  • The fit range vector is not empty (asserts)
  • The run number is within the fit range vector bounds
  • Start time is before end time (swaps if not)

This is typically called by the FIT_RANGE command to dynamically adjust the fitting window during optimization or range scanning.

Parameters
fitRangeVector of (start, end) time pairs in microseconds (μs)

Example: fitRange = {(0.1, 10.0), (0.2, 8.0)} applies first range to run 0, second range to run 1

Definition at line 252 of file PRunBase.cpp.

References fFitEndTime, fFitStartTime, and fRunNo.

Member Data Documentation

◆ fAddT0s

◆ fData

PRunData PRunBase::fData
protected

Processed data container: background-corrected, packed, with theory values.

Definition at line 275 of file PRunBase.h.

Referenced by PRunAsymmetry::CalcChiSquare(), PRunAsymmetryBNMR::CalcChiSquare(), PRunAsymmetryRRF::CalcChiSquare(), PRunMuMinus::CalcChiSquare(), PRunNonMusr::CalcChiSquare(), PRunSingleHisto::CalcChiSquare(), PRunSingleHistoRRF::CalcChiSquare(), PRunMuMinus::CalcChiSquareExpected(), PRunSingleHisto::CalcChiSquareExpected(), PRunSingleHistoRRF::CalcChiSquareExpected(), PRunMuMinus::CalcMaxLikelihood(), PRunSingleHisto::CalcMaxLikelihood(), PRunSingleHisto::CalcMaxLikelihoodExpected(), PRunAsymmetry::CalcNoOfFitBins(), PRunAsymmetryBNMR::CalcNoOfFitBins(), PRunAsymmetryRRF::CalcNoOfFitBins(), PRunMuMinus::CalcNoOfFitBins(), PRunSingleHisto::CalcNoOfFitBins(), PRunSingleHistoRRF::CalcNoOfFitBins(), PRunAsymmetry::CalcTheory(), PRunAsymmetryBNMR::CalcTheory(), PRunAsymmetryRRF::CalcTheory(), PRunMuMinus::CalcTheory(), PRunSingleHisto::CalcTheory(), PRunSingleHistoRRF::CalcTheory(), CalculateKaiserFilterCoeff(), FilterTheo(), GetData(), PRunNonMusr::GetNoOfFitBins(), PRunAsymmetry::PrepareFitData(), PRunAsymmetryBNMR::PrepareFitData(), PRunAsymmetryRRF::PrepareFitData(), PRunMuMinus::PrepareFitData(), PRunNonMusr::PrepareFitData(), PRunSingleHisto::PrepareFitData(), PRunSingleHistoRRF::PrepareFitData(), PRunMuMinus::PrepareRawViewData(), PRunSingleHisto::PrepareRawViewData(), PRunAsymmetry::PrepareRRFViewData(), PRunAsymmetry::PrepareViewData(), PRunAsymmetryBNMR::PrepareViewData(), PRunAsymmetryRRF::PrepareViewData(), PRunNonMusr::PrepareViewData(), PRunSingleHisto::PrepareViewData(), and PRunSingleHistoRRF::PrepareViewData().

◆ fFitEndTime

◆ fFitStartTime

◆ fFuncValues

◆ fHandleTag

◆ fKaiserFilter

PDoubleVector PRunBase::fKaiserFilter
protected

Kaiser window FIR filter coefficients for smoothing RRF theory curves.

Definition at line 287 of file PRunBase.h.

Referenced by CalculateKaiserFilterCoeff(), and FilterTheo().

◆ fMetaData

◆ fMsrInfo

PMsrHandler* PRunBase::fMsrInfo
protected

Pointer to MSR file handler (owned externally, not deleted here)

Definition at line 271 of file PRunBase.h.

Referenced by PRunAsymmetry::CalcChiSquare(), PRunAsymmetryBNMR::CalcChiSquare(), PRunAsymmetryRRF::CalcChiSquare(), PRunMuMinus::CalcChiSquare(), PRunNonMusr::CalcChiSquare(), PRunSingleHisto::CalcChiSquare(), PRunSingleHistoRRF::CalcChiSquare(), PRunMuMinus::CalcChiSquareExpected(), PRunSingleHisto::CalcChiSquareExpected(), PRunSingleHistoRRF::CalcChiSquareExpected(), PRunMuMinus::CalcMaxLikelihood(), PRunSingleHisto::CalcMaxLikelihood(), PRunSingleHisto::CalcMaxLikelihoodExpected(), PRunAsymmetry::CalcTheory(), PRunAsymmetryBNMR::CalcTheory(), PRunAsymmetryRRF::CalcTheory(), PRunMuMinus::CalcTheory(), PRunSingleHisto::CalcTheory(), PRunSingleHistoRRF::CalcTheory(), DeadTimeCorrection(), PRunSingleHisto::EstimateN0(), PRunAsymmetry::GetProperDataRange(), PRunAsymmetryBNMR::GetProperDataRange(), PRunAsymmetryRRF::GetProperDataRange(), PRunMuMinus::GetProperDataRange(), PRunSingleHisto::GetProperDataRange(), PRunSingleHistoRRF::GetProperDataRange(), PRunSingleHisto::IsScaleN0AndBkg(), PRunAsymmetry::PrepareData(), PRunAsymmetryBNMR::PrepareData(), PRunAsymmetryRRF::PrepareData(), PRunMuMinus::PrepareData(), PRunNonMusr::PrepareData(), PRunSingleHisto::PrepareData(), PRunSingleHistoRRF::PrepareData(), PRunAsymmetryRRF::PrepareFitData(), PRunSingleHisto::PrepareFitData(), PRunSingleHistoRRF::PrepareFitData(), PRunMuMinus::PrepareRawViewData(), PRunSingleHisto::PrepareRawViewData(), PRunAsymmetry::PrepareRRFViewData(), PRunAsymmetry::PrepareViewData(), PRunAsymmetryBNMR::PrepareViewData(), PRunAsymmetryRRF::PrepareViewData(), PRunNonMusr::PrepareViewData(), PRunSingleHisto::PrepareViewData(), PRunSingleHistoRRF::PrepareViewData(), PRunAsymmetry::PRunAsymmetry(), PRunAsymmetryBNMR::PRunAsymmetryBNMR(), PRunAsymmetryRRF::PRunAsymmetryRRF(), PRunBase(), PRunMuMinus::PRunMuMinus(), and PRunSingleHisto::PRunSingleHisto().

◆ fRawData

◆ fRunInfo

PMsrRunBlock* PRunBase::fRunInfo
protected

Pointer to this run's RUN block settings within fMsrInfo.

Definition at line 272 of file PRunBase.h.

Referenced by PRunAsymmetry::CalcChiSquare(), PRunAsymmetryBNMR::CalcChiSquare(), PRunAsymmetryRRF::CalcChiSquare(), PRunMuMinus::CalcChiSquare(), PRunNonMusr::CalcChiSquare(), PRunSingleHisto::CalcChiSquare(), PRunSingleHistoRRF::CalcChiSquare(), PRunMuMinus::CalcChiSquareExpected(), PRunSingleHisto::CalcChiSquareExpected(), PRunSingleHistoRRF::CalcChiSquareExpected(), PRunMuMinus::CalcMaxLikelihood(), PRunSingleHisto::CalcMaxLikelihood(), PRunSingleHisto::CalcMaxLikelihoodExpected(), PRunAsymmetry::CalcTheory(), PRunAsymmetryBNMR::CalcTheory(), PRunAsymmetryRRF::CalcTheory(), PRunMuMinus::CalcTheory(), PRunSingleHisto::CalcTheory(), PRunSingleHistoRRF::CalcTheory(), DeadTimeCorrection(), PRunSingleHisto::EstimateBkg(), PRunSingleHistoRRF::EstimateBkg(), PRunSingleHisto::EstimateN0(), PRunAsymmetry::GetProperDataRange(), PRunAsymmetryBNMR::GetProperDataRange(), PRunAsymmetryRRF::GetProperDataRange(), PRunMuMinus::GetProperDataRange(), PRunSingleHisto::GetProperDataRange(), PRunSingleHistoRRF::GetProperDataRange(), PRunAsymmetry::GetProperFitRange(), PRunAsymmetryBNMR::GetProperFitRange(), PRunAsymmetryRRF::GetProperFitRange(), PRunMuMinus::GetProperFitRange(), PRunSingleHisto::GetProperFitRange(), PRunSingleHistoRRF::GetProperFitRange(), PRunAsymmetry::GetProperT0(), PRunAsymmetryBNMR::GetProperT0(), PRunAsymmetryRRF::GetProperT0(), PRunMuMinus::GetProperT0(), PRunSingleHisto::GetProperT0(), PRunSingleHistoRRF::GetProperT0(), PRunNonMusr::GetXIndex(), PRunNonMusr::GetYIndex(), PRunAsymmetry::PrepareData(), PRunAsymmetryBNMR::PrepareData(), PRunAsymmetryRRF::PrepareData(), PRunMuMinus::PrepareData(), PRunNonMusr::PrepareData(), PRunSingleHisto::PrepareData(), PRunSingleHistoRRF::PrepareData(), PRunSingleHisto::PrepareFitData(), PRunSingleHistoRRF::PrepareFitData(), PRunMuMinus::PrepareRawViewData(), PRunSingleHisto::PrepareRawViewData(), PRunAsymmetry::PrepareRRFViewData(), PRunAsymmetry::PrepareViewData(), PRunAsymmetryBNMR::PrepareViewData(), PRunAsymmetryRRF::PrepareViewData(), PRunNonMusr::PrepareViewData(), PRunSingleHisto::PrepareViewData(), PRunSingleHistoRRF::PrepareViewData(), PRunAsymmetry::PRunAsymmetry(), PRunAsymmetryBNMR::PRunAsymmetryBNMR(), PRunAsymmetryRRF::PRunAsymmetryRRF(), PRunBase(), PRunBase(), PRunMuMinus::PRunMuMinus(), PRunNonMusr::PRunNonMusr(), PRunSingleHisto::PRunSingleHisto(), PRunAsymmetry::SubtractEstimatedBkg(), PRunAsymmetryBNMR::SubtractEstimatedBkg(), PRunAsymmetryRRF::SubtractEstimatedBkg(), PRunAsymmetry::SubtractFixBkg(), PRunAsymmetryBNMR::SubtractFixBkg(), and PRunAsymmetryRRF::SubtractFixBkg().

◆ fRunNo

◆ fT0s

PDoubleVector PRunBase::fT0s
protected

Time-zero bin values for all histograms in this run (forward, backward, etc.)

Definition at line 278 of file PRunBase.h.

Referenced by PRunSingleHisto::EstimateN0(), PRunSingleHistoRRF::GetMainFrequency(), PRunAsymmetry::GetProperDataRange(), PRunAsymmetryBNMR::GetProperDataRange(), PRunAsymmetryRRF::GetProperDataRange(), PRunMuMinus::GetProperDataRange(), PRunSingleHisto::GetProperDataRange(), PRunSingleHistoRRF::GetProperDataRange(), PRunAsymmetry::GetProperFitRange(), PRunAsymmetryBNMR::GetProperFitRange(), PRunAsymmetryRRF::GetProperFitRange(), PRunMuMinus::GetProperFitRange(), PRunSingleHisto::GetProperFitRange(), PRunSingleHistoRRF::GetProperFitRange(), PRunAsymmetry::GetProperT0(), PRunAsymmetryBNMR::GetProperT0(), PRunAsymmetryRRF::GetProperT0(), PRunMuMinus::GetProperT0(), PRunSingleHisto::GetProperT0(), PRunSingleHistoRRF::GetProperT0(), PRunAsymmetry::PrepareData(), PRunAsymmetryBNMR::PrepareData(), PRunAsymmetryRRF::PrepareData(), PRunMuMinus::PrepareData(), PRunSingleHisto::PrepareData(), PRunSingleHistoRRF::PrepareData(), PRunAsymmetry::PrepareFitData(), PRunAsymmetryBNMR::PrepareFitData(), PRunAsymmetryRRF::PrepareFitData(), PRunMuMinus::PrepareFitData(), PRunSingleHisto::PrepareFitData(), PRunSingleHistoRRF::PrepareFitData(), PRunMuMinus::PrepareRawViewData(), PRunSingleHisto::PrepareRawViewData(), PRunAsymmetry::PrepareRRFViewData(), PRunAsymmetry::PrepareViewData(), PRunAsymmetryBNMR::PrepareViewData(), PRunAsymmetryRRF::PrepareViewData(), PRunSingleHisto::PrepareViewData(), PRunAsymmetry::SetFitRangeBin(), PRunAsymmetryBNMR::SetFitRangeBin(), PRunAsymmetryRRF::SetFitRangeBin(), PRunMuMinus::SetFitRangeBin(), PRunSingleHisto::SetFitRangeBin(), PRunSingleHistoRRF::SetFitRangeBin(), and ~PRunBase().

◆ fTheory

◆ fTimeResolution

Double_t PRunBase::fTimeResolution
protected

Time resolution of raw histogram data in microseconds (μs), e.g., 0.01953125 μs for PSI GPS.

Definition at line 276 of file PRunBase.h.

Referenced by PRunSingleHisto::CalcChiSquare(), PRunSingleHisto::CalcChiSquareExpected(), PRunSingleHisto::CalcMaxLikelihood(), PRunSingleHisto::CalcMaxLikelihoodExpected(), DeadTimeCorrection(), PRunSingleHisto::EstimateBkg(), PRunSingleHistoRRF::EstimateBkg(), PRunSingleHisto::EstimateN0(), PRunSingleHistoRRF::EstimateN0(), PRunSingleHistoRRF::GetMainFrequency(), PRunAsymmetry::GetProperDataRange(), PRunAsymmetryBNMR::GetProperDataRange(), PRunAsymmetryRRF::GetProperDataRange(), PRunMuMinus::GetProperDataRange(), PRunSingleHisto::GetProperDataRange(), PRunSingleHistoRRF::GetProperDataRange(), PRunAsymmetry::GetProperFitRange(), PRunAsymmetryBNMR::GetProperFitRange(), PRunAsymmetryRRF::GetProperFitRange(), PRunMuMinus::GetProperFitRange(), PRunSingleHisto::GetProperFitRange(), PRunSingleHistoRRF::GetProperFitRange(), PRunAsymmetry::PrepareData(), PRunAsymmetryBNMR::PrepareData(), PRunAsymmetryRRF::PrepareData(), PRunMuMinus::PrepareData(), PRunSingleHisto::PrepareData(), PRunSingleHistoRRF::PrepareData(), PRunAsymmetry::PrepareFitData(), PRunAsymmetryBNMR::PrepareFitData(), PRunAsymmetryRRF::PrepareFitData(), PRunMuMinus::PrepareFitData(), PRunSingleHisto::PrepareFitData(), PRunSingleHistoRRF::PrepareFitData(), PRunMuMinus::PrepareRawViewData(), PRunSingleHisto::PrepareRawViewData(), PRunAsymmetry::PrepareRRFViewData(), PRunAsymmetry::PrepareViewData(), PRunAsymmetryBNMR::PrepareViewData(), PRunAsymmetryRRF::PrepareViewData(), PRunSingleHisto::PrepareViewData(), PRunBase(), PRunBase(), PRunAsymmetry::SetFitRangeBin(), PRunAsymmetryBNMR::SetFitRangeBin(), PRunAsymmetryRRF::SetFitRangeBin(), PRunMuMinus::SetFitRangeBin(), PRunSingleHisto::SetFitRangeBin(), PRunSingleHistoRRF::SetFitRangeBin(), PRunAsymmetry::SubtractEstimatedBkg(), PRunAsymmetryBNMR::SubtractEstimatedBkg(), and PRunAsymmetryRRF::SubtractEstimatedBkg().

◆ fValid


The documentation for this class was generated from the following files: