Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:22:11

0001 // @(#)root/minuit2:$Id$
0002 // Authors: M. Winkler, F. James, L. Moneta, A. Zsenei   2003-2005
0003 
0004 /**********************************************************************
0005  *                                                                    *
0006  * Copyright (c) 2005 LCG ROOT Math team,  CERN/PH-SFT                *
0007  *                                                                    *
0008  **********************************************************************/
0009 
0010 #ifndef ROOT_Minuit2_ContoursError
0011 #define ROOT_Minuit2_ContoursError
0012 
0013 #include "Minuit2/MnConfig.h"
0014 #include "Minuit2/MinosError.h"
0015 
0016 #include <vector>
0017 #include <utility>
0018 
0019 namespace ROOT {
0020 
0021 namespace Minuit2 {
0022 
0023 class ContoursError {
0024 
0025 public:
0026    ContoursError(unsigned int parX, unsigned int parY, const std::vector<std::pair<double, double>> &points,
0027                  const MinosError &xmnos, const MinosError &ymnos, unsigned int nfcn)
0028       : fParX(parX), fParY(parY), fPoints(points), fXMinos(xmnos), fYMinos(ymnos), fNFcn(nfcn)
0029    {
0030    }
0031 
0032    ~ContoursError() {}
0033 
0034    ContoursError(const ContoursError &cont)
0035       : fParX(cont.fParX), fParY(cont.fParY), fPoints(cont.fPoints), fXMinos(cont.fXMinos), fYMinos(cont.fYMinos),
0036         fNFcn(cont.fNFcn)
0037    {
0038    }
0039 
0040    ContoursError &operator()(const ContoursError &cont)
0041    {
0042       fParX = cont.fParX;
0043       fParY = cont.fParY;
0044       fPoints = cont.fPoints;
0045       fXMinos = cont.fXMinos;
0046       fYMinos = cont.fYMinos;
0047       fNFcn = cont.fNFcn;
0048       return *this;
0049    }
0050 
0051    const std::vector<std::pair<double, double>> &operator()() const { return fPoints; }
0052 
0053    std::pair<double, double> XMinos() const { return fXMinos(); }
0054 
0055    std::pair<double, double> YMinos() const { return fYMinos(); }
0056 
0057    unsigned int Xpar() const { return fParX; }
0058    unsigned int Ypar() const { return fParY; }
0059 
0060    const MinosError &XMinosError() const { return fXMinos; }
0061 
0062    const MinosError &YMinosError() const { return fYMinos; }
0063 
0064    unsigned int NFcn() const { return fNFcn; }
0065    double XMin() const { return fXMinos.Min(); }
0066    double YMin() const { return fYMinos.Min(); }
0067 
0068 private:
0069    unsigned int fParX;
0070    unsigned int fParY;
0071    std::vector<std::pair<double, double>> fPoints;
0072    MinosError fXMinos;
0073    MinosError fYMinos;
0074    unsigned int fNFcn;
0075 };
0076 
0077 } // namespace Minuit2
0078 
0079 } // namespace ROOT
0080 
0081 #endif // ROOT_Minuit2_ContoursError