Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 10:29:44

0001 // @(#)root/roostats:$Id:  cranmer $
0002 // Author: Kyle Cranmer, Akira Shibata
0003 /*************************************************************************
0004  * Copyright (C) 1995-2008, Rene Brun and Fons Rademakers.               *
0005  * All rights reserved.                                                  *
0006  *                                                                       *
0007  * For the licensing terms see $ROOTSYS/LICENSE.                         *
0008  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
0009  *************************************************************************/
0010 
0011 #ifndef ROOSTATS_LININTERPVAR
0012 #define ROOSTATS_LININTERPVAR
0013 
0014 #include "RooAbsPdf.h"
0015 #include "RooRealProxy.h"
0016 #include "RooListProxy.h"
0017 #include <vector>
0018 
0019 class RooRealVar;
0020 class RooArgList ;
0021 
0022 namespace RooStats{
0023 namespace HistFactory{
0024 
0025   class LinInterpVar : public RooAbsReal {
0026   public:
0027 
0028     LinInterpVar() = default;
0029     LinInterpVar(const char *name, const char *title,
0030                  const RooArgList& _paramList, double nominal, std::vector<double> low, std::vector<double> high);
0031 
0032     LinInterpVar(const char *name, const char *title);
0033     LinInterpVar(const LinInterpVar&, const char*);
0034 
0035     TObject* clone(const char* newname=nullptr) const override { return new LinInterpVar(*this, newname); }
0036 
0037 
0038   protected:
0039 
0040     RooListProxy _paramList ;
0041     double _nominal = 0;
0042     std::vector<double> _low;
0043     std::vector<double> _high;
0044 
0045     double evaluate() const override;
0046 
0047     ClassDefOverride(RooStats::HistFactory::LinInterpVar,1) // Piecewise linear interpolation
0048   };
0049 }
0050 }
0051 
0052 #endif