JHUGen MELA  JHUGen v7.5.6, MELA v2.4.2
Matrix element calculations as used in JHUGen.
MELANCSplineCore Class Referenceabstract

#include <MELANCSplineCore.h>

Inheritance diagram for MELANCSplineCore:
Collaboration diagram for MELANCSplineCore:

Public Types

enum  VerbosityLevel { kSilent, kError, kVerbose }
 
enum  BoundaryCondition {
  bcApproximatedSlope, bcClamped, bcApproximatedSecondDerivative, bcNaturalSpline,
  bcQuadratic, bcQuadraticWithNullSlope, NBoundaryConditions
}
 
typedef Float_t T
 
typedef TMatrixT< TTMatrix_t
 
typedef TVectorT< TTVector_t
 

Public Member Functions

 MELANCSplineCore ()
 
 MELANCSplineCore (const char *name, const char *title)
 
 MELANCSplineCore (const char *name, const char *title, RooAbsReal &inXVar, const std::vector< T > &inXList, Bool_t inUseFloor=true, T inFloorEval=1e-15, T inFloorInt=1e-10)
 
 MELANCSplineCore (const MELANCSplineCore &other, const char *name=0)
 
virtual TObject * clone (const char *newname) const =0
 
virtual ~MELANCSplineCore ()
 
virtual void setVerbosity (VerbosityLevel flag)
 
void setEvalFloor (T val)
 
void setIntFloor (T val)
 
void doFloor (Bool_t flag)
 
virtual void setRangeValidity (const T valmin, const T valmax, const Int_t whichDirection)=0
 
virtual Int_t getAnalyticalIntegral (RooArgSet &allVars, RooArgSet &analVars, const char *rangeName=0) const =0
 
virtual Double_t analyticalIntegral (Int_t code, const char *rangeName=0) const =0
 

Protected Member Functions

virtual void emptyFcnList ()=0
 
void getLeafDependents (RooRealProxy &proxy, RooArgSet &set)
 
void addLeafDependents (RooArgSet &set)
 
unsigned int npointsX () const
 
virtual Int_t getWhichBin (const T &val, const Int_t whichDirection) const =0
 
virtual void getKappas (std::vector< T > &kappas, const Int_t whichDirection)=0
 
virtual T getTVar (const std::vector< T > &kappas, const T &val, const Int_t &bin, const Int_t whichDirection) const =0
 
virtual Bool_t testRangeValidity (const T &val, const Int_t whichDirection) const =0
 
virtual void cropValueForRange (T &val, const Int_t whichDirection) const =0
 
virtual T interpolateFcn (Int_t code, const char *rangeName=0) const =0
 
virtual Double_t evaluate () const =0
 
virtual void getBArray (const std::vector< T > &kappas, const std::vector< T > &fcnList, std::vector< T > &BArray, BoundaryCondition const &bcBegin, BoundaryCondition const &bcEnd) const
 
virtual void getAArray (const std::vector< T > &kappas, std::vector< std::vector< T >> &AArray, BoundaryCondition const &bcBegin, BoundaryCondition const &bcEnd) const
 
virtual std::vector< std::vector< T > > getCoefficientsAlongDirection (const std::vector< T > &kappas, const TMatrix_t &Ainv, const std::vector< T > &fcnList, BoundaryCondition const &bcBegin, BoundaryCondition const &bcEnd, const Int_t pickBin) const
 
virtual std::vector< TgetCoefficients (const TVector_t &S, const std::vector< T > &kappas, const std::vector< T > &fcnList, const Int_t &bin) const
 
virtual T evalSplineSegment (const std::vector< T > &coefs, const T &kappa, const T &tup, const T &tdn, Bool_t doIntegrate=false) const
 

Protected Attributes

VerbosityLevel verbosity
 
Bool_t useFloor
 
T floorEval
 
T floorInt
 
T rangeXmin
 
T rangeXmax
 
RooRealProxy theXVar
 
RooListProxy leafDepsList
 
std::vector< TXList
 

Detailed Description

Definition at line 16 of file MELANCSplineCore.h.

Member Typedef Documentation

◆ T

typedef Float_t MELANCSplineCore::T

Definition at line 18 of file MELANCSplineCore.h.

◆ TMatrix_t

typedef TMatrixT<T> MELANCSplineCore::TMatrix_t

Definition at line 19 of file MELANCSplineCore.h.

◆ TVector_t

typedef TVectorT<T> MELANCSplineCore::TVector_t

Definition at line 20 of file MELANCSplineCore.h.

Member Enumeration Documentation

◆ BoundaryCondition

Enumerator
bcApproximatedSlope 
bcClamped 
bcApproximatedSecondDerivative 
bcNaturalSpline 
bcQuadratic 
bcQuadraticWithNullSlope 
NBoundaryConditions 

Definition at line 28 of file MELANCSplineCore.h.

28  {
29  bcApproximatedSlope, // D1 is the same as deltaY/deltaX in the first/last segment
30  bcClamped, // D1=0 at endpoint
31  bcApproximatedSecondDerivative, // D2 is approximated
32  bcNaturalSpline, // D2=0 at endpoint
33  bcQuadratic, // Coefficient D=0
34  bcQuadraticWithNullSlope, // Coefficient D=0 and D1=0 at endpoint
36  };

◆ VerbosityLevel

Enumerator
kSilent 
kError 
kVerbose 

Definition at line 22 of file MELANCSplineCore.h.

22  {
23  kSilent,
24  kError,
25  kVerbose
26  };

Constructor & Destructor Documentation

◆ MELANCSplineCore() [1/4]

MELANCSplineCore::MELANCSplineCore ( )

◆ MELANCSplineCore() [2/4]

MELANCSplineCore::MELANCSplineCore ( const char *  name,
const char *  title 
)

Definition at line 24 of file MELANCSplineCore.cc.

27  :
28  RooAbsReal(name, title),
30  useFloor(true), floorEval(0), floorInt(0),
31  rangeXmin(1), rangeXmax(-1),
32  theXVar("theXVar", "theXVar", this),
33  leafDepsList("leafDepsList", "leafDepsList", this)
34 {}

◆ MELANCSplineCore() [3/4]

MELANCSplineCore::MELANCSplineCore ( const char *  name,
const char *  title,
RooAbsReal &  inXVar,
const std::vector< T > &  inXList,
Bool_t  inUseFloor = true,
T  inFloorEval = 1e-15,
T  inFloorInt = 1e-10 
)

Definition at line 36 of file MELANCSplineCore.cc.

44  :
45  RooAbsReal(name, title),
47  useFloor(inUseFloor), floorEval(inFloorEval), floorInt(inFloorInt),
48  rangeXmin(1), rangeXmax(-1),
49  theXVar("theXVar", "theXVar", this, inXVar),
50  leafDepsList("leafDepsList", "leafDepsList", this),
51  XList(inXList)
52 {}

◆ MELANCSplineCore() [4/4]

MELANCSplineCore::MELANCSplineCore ( const MELANCSplineCore other,
const char *  name = 0 
)

Definition at line 54 of file MELANCSplineCore.cc.

57  :
58  RooAbsReal(other, name),
59  verbosity(other.verbosity),
60  useFloor(other.useFloor), floorEval(other.floorEval), floorInt(other.floorInt),
61  rangeXmin(other.rangeXmin), rangeXmax(other.rangeXmax),
62  theXVar("theXVar", this, other.theXVar),
63  leafDepsList("leafDepsList", this, other.leafDepsList),
64  XList(other.XList)
65 {}

◆ ~MELANCSplineCore()

virtual MELANCSplineCore::~MELANCSplineCore ( )
inlinevirtual

Definition at line 54 of file MELANCSplineCore.h.

54 {}

Member Function Documentation

◆ addLeafDependents()

void MELANCSplineCore::addLeafDependents ( RooArgSet &  set)
protected

Definition at line 280 of file MELANCSplineCore.cc.

280  {
281  TIterator* iter = set.createIterator();
282  RooAbsArg* absarg;
283  while ((absarg = (RooAbsArg*)iter->Next())){ if (dynamic_cast<RooRealVar*>(absarg)) leafDepsList.add(*absarg); }
284  delete iter;
285 }

◆ analyticalIntegral()

virtual Double_t MELANCSplineCore::analyticalIntegral ( Int_t  code,
const char *  rangeName = 0 
) const
pure virtual

◆ clone()

virtual TObject* MELANCSplineCore::clone ( const char *  newname) const
pure virtual

◆ cropValueForRange()

virtual void MELANCSplineCore::cropValueForRange ( T val,
const Int_t  whichDirection 
) const
protectedpure virtual

◆ doFloor()

void MELANCSplineCore::doFloor ( Bool_t  flag)

Definition at line 70 of file MELANCSplineCore.cc.

70 { useFloor = flag; }

◆ emptyFcnList()

virtual void MELANCSplineCore::emptyFcnList ( )
protectedpure virtual

◆ evalSplineSegment()

MELANCSplineCore::T MELANCSplineCore::evalSplineSegment ( const std::vector< T > &  coefs,
const T kappa,
const T tup,
const T tdn,
Bool_t  doIntegrate = false 
) const
protectedvirtual

Definition at line 265 of file MELANCSplineCore.cc.

265  {
267  for (unsigned int ic=0; ic<coefs.size(); ic++){
268  if (doIntegrate) res += coefs.at(ic)*(pow(tup, (int)(ic+1))-pow(tdn, (int)(ic+1)))/((MELANCSplineCore::T)(ic+1));
269  else res += coefs.at(ic)*pow(tup, (int)ic);
270  }
271  if (doIntegrate) res /= kappa;
272  return res;
273 }

◆ evaluate()

virtual Double_t MELANCSplineCore::evaluate ( ) const
protectedpure virtual

◆ getAArray()

void MELANCSplineCore::getAArray ( const std::vector< T > &  kappas,
std::vector< std::vector< T >> &  AArray,
BoundaryCondition const &  bcBegin,
BoundaryCondition const &  bcEnd 
) const
protectedvirtual

Definition at line 159 of file MELANCSplineCore.cc.

159  {
160  AArray.clear();
161  Int_t npoints = kappas.size();
162  for (int i=0; i<npoints; i++){
163  vector<MELANCSplineCore::T> Ai(npoints, 0.);
164  if (npoints==1) Ai[0]=1;
165  else if (i==0){
166  switch(bcBegin){
167  case bcNaturalSpline:
169  Ai[0]=2; Ai[1]=kappas.at(1)/kappas.at(0);
170  break;
171  case bcClamped:
172  case bcApproximatedSlope:
174  Ai[0]=1;
175  break;
176  case bcQuadratic:
177  Ai[0]=1; Ai[1]=kappas.at(1)/kappas.at(0);
178  break;
179  default:
180  cerr << "MELANCSplineCore::getAArray: bcBegin " << bcBegin << " is not implemented!" << endl;
181  assert(0);
182  }
183  }
184  else if (i==npoints-1){
185  switch(bcEnd){
186  case bcNaturalSpline:
188  Ai[npoints-2]=1; Ai[npoints-1]=2.*kappas.at(npoints-1)/kappas.at(npoints-2);
189  break;
190  case bcClamped:
191  case bcApproximatedSlope:
193  Ai[npoints-1]=1;
194  break;
195  case bcQuadratic:
196  Ai[npoints-2]=1; Ai[npoints-1]=kappas.at(npoints-1)/kappas.at(npoints-2);
197  break;
198  default:
199  cerr << "MELANCSplineCore::getAArray: bcEnd " << bcEnd << " is not implemented!" << endl;
200  assert(0);
201  }
202  }
203  else{
204  if ((i==1 && bcBegin==bcQuadraticWithNullSlope) || (i==npoints-2 && bcEnd==bcQuadraticWithNullSlope)) Ai[i]=1;
205  else{
206  MELANCSplineCore::T kappa_j = kappas.at(i);
207  MELANCSplineCore::T kappa_jmo = kappas.at(i-1);
208  MELANCSplineCore::T kappa_jpo = kappas.at(i+1);
209 
210  Ai[i-1]=1;
211  Ai[i]=2.*kappa_j/kappa_jmo*(1.+kappa_j/kappa_jmo);
212  Ai[i+1]=kappa_j*kappa_jpo/pow(kappa_jmo, 2);
213  }
214  }
215  AArray.push_back(Ai);
216  }
217 }

◆ getAnalyticalIntegral()

virtual Int_t MELANCSplineCore::getAnalyticalIntegral ( RooArgSet &  allVars,
RooArgSet &  analVars,
const char *  rangeName = 0 
) const
pure virtual

◆ getBArray()

void MELANCSplineCore::getBArray ( const std::vector< T > &  kappas,
const std::vector< T > &  fcnList,
std::vector< T > &  BArray,
BoundaryCondition const &  bcBegin,
BoundaryCondition const &  bcEnd 
) const
protectedvirtual

Definition at line 72 of file MELANCSplineCore.cc.

72  {
73  BArray.clear();
74  int npoints=kappas.size();
75  if (npoints!=(int)fcnList.size()){
76  coutE(InputArguments) << "MELANCSplineCore::getBArray: Dim(kappas)=" << npoints << " != Dim(fcnList)=" << fcnList.size() << endl;
77  assert(0);
78  }
79  if (
81  ||
82  bcBegin==bcQuadratic || bcEnd==bcQuadratic
83  ){
84  int nthr=1+(bcBegin==bcQuadraticWithNullSlope || bcBegin==bcQuadratic ? 1 : 0) + (bcEnd==bcQuadraticWithNullSlope || bcEnd==bcQuadratic ? 1 : 0);
85  if (npoints<=nthr){
86  cerr << "Npoints " << npoints << " <= " << nthr << endl;
87  assert(0);
88  }
89  }
90  if (npoints>1){
91  MELANCSplineCore::T bcval=0, ecval=0;
92  // First point constraint
93  switch (bcBegin){
95  bcval=(npoints<3 ? 0 : ((fcnList.at(2)-fcnList.at(1))*kappas.at(1)-(fcnList.at(1)-fcnList.at(0))*kappas.at(0))/(0.5/kappas.at(0)+0.5/kappas.at(1)));
96  case bcNaturalSpline:
97  BArray.push_back(3.*(fcnList.at(1)-fcnList.at(0)) - bcval/2./pow(kappas.at(0), 2));
98  break;
100  bcval=(fcnList.at(1)-fcnList.at(0))*kappas.at(0);
101  case bcClamped:
102  BArray.push_back(bcval/kappas.at(0));
103  break;
104  case bcQuadratic:
105  bcval=2.*(fcnList.at(1)-fcnList.at(0));
106  BArray.push_back(bcval);
107  break;
109  bcval=2.*(fcnList.at(1)-fcnList.at(0));
110  BArray.push_back(0);
111  BArray.push_back(bcval*kappas.at(0)/kappas.at(1));
112  break;
113  default:
114  cerr << "MELANCSplineCore::getBArray: bcBegin " << bcBegin << " is not implemented!" << endl;
115  assert(0);
116  }
117  // Intermediate point constraint is always D0, D1 and D2 continuous
118  for (int j=1; j<npoints-1; j++){
119  if (j==1 && bcBegin==bcQuadraticWithNullSlope) continue;
120  if (j==npoints-2 && bcEnd==bcQuadraticWithNullSlope) continue;
121  MELANCSplineCore::T val_j = fcnList.at(j);
122  MELANCSplineCore::T val_jpo = fcnList.at(j+1);
123  MELANCSplineCore::T val_jmo = fcnList.at(j-1);
124  MELANCSplineCore::T kappa_j = kappas.at(j);
125  MELANCSplineCore::T kappa_jmo = kappas.at(j-1);
126  MELANCSplineCore::T rsq = pow(kappa_j/kappa_jmo, 2);
127  MELANCSplineCore::T Bval = val_jpo*rsq + val_j*(1.-rsq) - val_jmo;
128  Bval *= 3.;
129  BArray.push_back(Bval);
130  }
131  // Last point constraint
132  switch (bcEnd){
134  ecval=(npoints<3 ? 0 : ((fcnList.at(npoints-1)-fcnList.at(npoints-2))*kappas.at(npoints-2)-(fcnList.at(npoints-2)-fcnList.at(npoints-3))*kappas.at(npoints-3))/(0.5/kappas.at(npoints-3)+0.5/kappas.at(npoints-2)));
135  case bcNaturalSpline:
136  BArray.push_back(3.*(fcnList.at(npoints-1)-fcnList.at(npoints-2)) + ecval/2./pow(kappas.at(npoints-1), 2));
137  break;
138  case bcApproximatedSlope:
139  ecval=(fcnList.at(npoints-1)-fcnList.at(npoints-2))*kappas.at(npoints-2);
140  case bcClamped:
141  BArray.push_back(ecval/kappas.at(npoints-1));
142  break;
143  case bcQuadratic:
144  ecval=2.*(fcnList.at(npoints-1)-fcnList.at(npoints-2));
145  BArray.push_back(ecval);
146  break;
148  ecval=2.*(fcnList.at(npoints-1)-fcnList.at(npoints-2));
149  BArray.push_back(ecval);
150  BArray.push_back(0);
151  break;
152  default:
153  cerr << "MELANCSplineCore::getAArray: bcEnd " << bcEnd << " is not implemented!" << endl;
154  assert(0);
155  }
156  }
157  else if (npoints==1) BArray.push_back(0);
158 }

◆ getCoefficients()

vector< MELANCSplineCore::T > MELANCSplineCore::getCoefficients ( const TVector_t S,
const std::vector< T > &  kappas,
const std::vector< T > &  fcnList,
const Int_t &  bin 
) const
protectedvirtual

Definition at line 219 of file MELANCSplineCore.cc.

219  {
221  vector<MELANCSplineCore::T> res;
222 
223  const int fcnsize = fcnList.size();
224  if (fcnsize>bin){
225  A=fcnList.at(bin);
226  B=S[bin];
227  if (fcnsize>(bin+1)){
228  DefaultAccumulator<MELANCSplineCore::T> dFcn = fcnList.at(bin+1);
229  dFcn -= A;
230 
231  C += MELANCSplineCore::T(3.)*dFcn;
232  C -= 2.*B;
233  C -= S[bin+1]*kappas.at(bin+1)/kappas.at(bin);
234 
235  D += MELANCSplineCore::T(-2.)*dFcn;
236  D += B;
237  D += S[bin+1]*kappas.at(bin+1)/kappas.at(bin);
238  }
239  }
240 
241  res.push_back(A);
242  res.push_back(B);
243  res.push_back(C);
244  res.push_back(D);
245  return res;
246 }

◆ getCoefficientsAlongDirection()

vector< vector< MELANCSplineCore::T > > MELANCSplineCore::getCoefficientsAlongDirection ( const std::vector< T > &  kappas,
const TMatrix_t Ainv,
const std::vector< T > &  fcnList,
BoundaryCondition const &  bcBegin,
BoundaryCondition const &  bcEnd,
const Int_t  pickBin 
) const
protectedvirtual

Definition at line 247 of file MELANCSplineCore.cc.

247  {
248  vector<MELANCSplineCore::T> BArray;
249  getBArray(kappas, fcnList, BArray, bcBegin, bcEnd);
250 
251  Int_t npoints = BArray.size();
252  TVector_t Btrans(npoints);
253  for (int i=0; i<npoints; i++) Btrans[i]=BArray.at(i);
254  TVector_t Strans = Ainv*Btrans;
255 
256  vector<vector<MELANCSplineCore::T>> coefs;
257  for (Int_t bin=0; bin<(npoints>1 ? npoints-1 : 1); bin++){
258  if (pickBin>=0 && bin!=pickBin) continue;
259  vector<MELANCSplineCore::T> coef = getCoefficients(Strans, kappas, fcnList, bin);
260  coefs.push_back(coef);
261  }
262  return coefs;
263 }

◆ getKappas()

virtual void MELANCSplineCore::getKappas ( std::vector< T > &  kappas,
const Int_t  whichDirection 
)
protectedpure virtual

◆ getLeafDependents()

void MELANCSplineCore::getLeafDependents ( RooRealProxy &  proxy,
RooArgSet &  set 
)
protected

Definition at line 275 of file MELANCSplineCore.cc.

275  {
276  RooArgSet deps;
277  proxy.absArg()->leafNodeServerList(&deps, 0, true);
278  set.add(deps);
279 }

◆ getTVar()

virtual T MELANCSplineCore::getTVar ( const std::vector< T > &  kappas,
const T val,
const Int_t &  bin,
const Int_t  whichDirection 
) const
protectedpure virtual

◆ getWhichBin()

virtual Int_t MELANCSplineCore::getWhichBin ( const T val,
const Int_t  whichDirection 
) const
protectedpure virtual

◆ interpolateFcn()

virtual T MELANCSplineCore::interpolateFcn ( Int_t  code,
const char *  rangeName = 0 
) const
protectedpure virtual

◆ npointsX()

unsigned int MELANCSplineCore::npointsX ( ) const
inlineprotected

Definition at line 84 of file MELANCSplineCore.h.

84 { return XList.size(); }

◆ setEvalFloor()

void MELANCSplineCore::setEvalFloor ( MELANCSplineCore::T  val)

Definition at line 68 of file MELANCSplineCore.cc.

68 { floorEval = val; }

◆ setIntFloor()

void MELANCSplineCore::setIntFloor ( MELANCSplineCore::T  val)

Definition at line 69 of file MELANCSplineCore.cc.

69 { floorInt = val; }

◆ setRangeValidity()

virtual void MELANCSplineCore::setRangeValidity ( const T  valmin,
const T  valmax,
const Int_t  whichDirection 
)
pure virtual

◆ setVerbosity()

void MELANCSplineCore::setVerbosity ( VerbosityLevel  flag)
virtual

Definition at line 67 of file MELANCSplineCore.cc.

67 { verbosity = flag; }

◆ testRangeValidity()

virtual Bool_t MELANCSplineCore::testRangeValidity ( const T val,
const Int_t  whichDirection 
) const
protectedpure virtual

Member Data Documentation

◆ floorEval

T MELANCSplineCore::floorEval
protected

Definition at line 69 of file MELANCSplineCore.h.

◆ floorInt

T MELANCSplineCore::floorInt
protected

Definition at line 70 of file MELANCSplineCore.h.

◆ leafDepsList

RooListProxy MELANCSplineCore::leafDepsList
protected

Definition at line 76 of file MELANCSplineCore.h.

◆ rangeXmax

T MELANCSplineCore::rangeXmax
protected

Definition at line 73 of file MELANCSplineCore.h.

◆ rangeXmin

T MELANCSplineCore::rangeXmin
protected

Definition at line 72 of file MELANCSplineCore.h.

◆ theXVar

RooRealProxy MELANCSplineCore::theXVar
protected

Definition at line 75 of file MELANCSplineCore.h.

◆ useFloor

Bool_t MELANCSplineCore::useFloor
protected

Definition at line 68 of file MELANCSplineCore.h.

◆ verbosity

VerbosityLevel MELANCSplineCore::verbosity
protected

Definition at line 67 of file MELANCSplineCore.h.

◆ XList

std::vector<T> MELANCSplineCore::XList
protected

Definition at line 77 of file MELANCSplineCore.h.


The documentation for this class was generated from the following files:
MELANCSplineCore::kVerbose
@ kVerbose
Definition: MELANCSplineCore.h:25
MELANCSplineCore::T
Float_t T
Definition: MELANCSplineCore.h:18
MELANCSplineCore::NBoundaryConditions
@ NBoundaryConditions
Definition: MELANCSplineCore.h:35
TNumericUtil::KahanAccumulator
Definition: MELAAccumulators.h:27
MELANCSplineCore::rangeXmax
T rangeXmax
Definition: MELANCSplineCore.h:73
MELANCSplineCore::kError
@ kError
Definition: MELANCSplineCore.h:24
MELANCSplineCore::bcQuadraticWithNullSlope
@ bcQuadraticWithNullSlope
Definition: MELANCSplineCore.h:34
MELANCSplineCore::rangeXmin
T rangeXmin
Definition: MELANCSplineCore.h:72
set
set(CMAKE_MACOSX_RPATH 1) set(CMAKE_CACHEFILE_DIR CMakeFiles/) cmake_minimum_required(VERSION 2.8) project(collier) enable_language(Fortran) get_filename_component(Fortran_COMPILER_NAME $
Definition: CMakeLists.txt:65
modparameters::kappa
complex(8), public kappa
Definition: mod_Parameters.F90:882
MELANCSplineCore::bcQuadratic
@ bcQuadratic
Definition: MELANCSplineCore.h:33
MELANCSplineCore::kSilent
@ kSilent
Definition: MELANCSplineCore.h:23
MELANCSplineCore::bcApproximatedSlope
@ bcApproximatedSlope
Definition: MELANCSplineCore.h:29
MELANCSplineCore::bcClamped
@ bcClamped
Definition: MELANCSplineCore.h:30
MELANCSplineCore::useFloor
Bool_t useFloor
Definition: MELANCSplineCore.h:68
MELANCSplineCore::bcNaturalSpline
@ bcNaturalSpline
Definition: MELANCSplineCore.h:32
MELANCSplineCore::floorInt
T floorInt
Definition: MELANCSplineCore.h:70
MELANCSplineCore::XList
std::vector< T > XList
Definition: MELANCSplineCore.h:77
MELANCSplineCore::floorEval
T floorEval
Definition: MELANCSplineCore.h:69
MELANCSplineCore::verbosity
VerbosityLevel verbosity
Definition: MELANCSplineCore.h:67
MELANCSplineCore::TVector_t
TVectorT< T > TVector_t
Definition: MELANCSplineCore.h:20
MELANCSplineCore::theXVar
RooRealProxy theXVar
Definition: MELANCSplineCore.h:75
MELANCSplineCore::getBArray
virtual void getBArray(const std::vector< T > &kappas, const std::vector< T > &fcnList, std::vector< T > &BArray, BoundaryCondition const &bcBegin, BoundaryCondition const &bcEnd) const
Definition: MELANCSplineCore.cc:72
MELANCSplineCore::bcApproximatedSecondDerivative
@ bcApproximatedSecondDerivative
Definition: MELANCSplineCore.h:31
MELANCSplineCore::getCoefficients
virtual std::vector< T > getCoefficients(const TVector_t &S, const std::vector< T > &kappas, const std::vector< T > &fcnList, const Int_t &bin) const
Definition: MELANCSplineCore.cc:219
MELANCSplineCore::leafDepsList
RooListProxy leafDepsList
Definition: MELANCSplineCore.h:76