Skip to content
Snippets Groups Projects
ChiSquaredFrequency.h 1.59 KiB
Newer Older
  • Learn to ignore specific revisions
  • // ************************************************************************** //
    
    //  BornAgain: simulate and fit scattering at grazing incidence
    //
    
    //! @file      Algorithms/inc/ChiSquaredFrequency.h
    
    //! @brief     Defines class ChiSquaredFrequency.
    //!
    
    //! @homepage  http://apps.jcns.fz-juelich.de/BornAgain
    
    //! @license   GNU General Public License v3 or higher (see COPYING)
    
    //! @copyright Forschungszentrum Jülich GmbH 2013
    //! @authors   Scientific Computing Group at MLZ Garching
    
    //! @authors   C. Durniak, G. Pospelov, W. Van Herck, J. Wuttke
    
    //
    // ************************************************************************** //
    
    
    #ifndef CHISQUAREDFREQUENCY_H_
    #define CHISQUAREDFREQUENCY_H_
    
    #include "IChiSquaredModule.h"
    
    
    //! @class ChiSquaredFrequency
    //! @ingroup algorithms_internal
    //! @brief Calculation of chi2 in fourier transformed space
    
    class ChiSquaredFrequency : public IChiSquaredModule
    {
    
        ChiSquaredFrequency()
            : mp_real_ft(0) , mp_simulation_ft(0) , m_cutoff(1.0) {}
        virtual ~ChiSquaredFrequency()
        {
            delete mp_real_ft;
            delete mp_simulation_ft;
        }
    
        void setCutoff(double cutoff) {
            if (cutoff>=0.0 && cutoff<=1.0) m_cutoff = cutoff;
        }
    
        double getCutoff() const { return m_cutoff; }
    
        //! Returns output data which contains chi^2 values
    
        virtual OutputData<double > *createChi2DifferenceMap() const;
    
        virtual void initWeights();
        OutputData<complex_t> *mp_real_ft;
        OutputData<complex_t> *mp_simulation_ft;
        double m_cutoff;
    
    };
    
    #endif /* CHISQUAREDFREQUENCY_H_ */