#ifndef _evt_MultipleGaisserHillasParameters_h_ #define _evt_MultipleGaisserHillasParameters_h_ #include #include #include static const char CvsId_evt_MultipleGaisserHillasParameters[] = "$Id: MultipleGaisserHillasParameters.h 18212 2010-12-21 14:16:51Z darko $"; namespace evt { /** * \class MultipleGaisserHillasParameters * \brief Class to access parameters that were fitted by more than one Gaisser-Hillas function * * With this class you have the possibility to store a fit e.g. with 2 or even more GH fit functions * They will be added to a vector that holds VGaisserHillasParameter. * But fits with two or more Functions will still have only one Chi² and ndf value please store * them in the first VGaisserHillasParameter of the vector. */ class MultipleGaisserHillasParameters { public: MultipleGaisserHillasParameters() : fChi2Improvement(1e99) {} void Add(const VGaisserHillasParameter& val); void Clear() { fVirtualParameters.clear(); } typedef utl::ShadowPtr VGaisserHillasParameterPtr; typedef std::vector GHFits; typedef GHFits::iterator GHFitIterator; typedef GHFits::const_iterator ConstGHFitIterator; const GHFits& GetVirtualParameters() const { return fVirtualParameters; } GHFits& GetVirtualParameters() { return fVirtualParameters; } GHFitIterator GHFitsBegin() { return fVirtualParameters.begin(); } ConstGHFitIterator GHFitsBegin() const { return fVirtualParameters.begin(); } GHFitIterator GHFitsEnd() { return fVirtualParameters.end(); } ConstGHFitIterator GHFitsEnd() const { return fVirtualParameters.end(); } /// Gives back a value that stores the usefulness of the new fit double GetChi2Improvement() const { return fChi2Improvement; } void SetChi2Improvement(double val) { fChi2Improvement=val; } private: GHFits fVirtualParameters; /// Stores change of single GH fit Chi² (both done by minimizing chi²) to /// double GH fit double fChi2Improvement; }; } #endif //_evt_MultipleGaisserHillasParameters_h_