def __init__(self, name, xvar, convex=True, a=0.0, b=1.0, power=1, pars=None): ## initialize the base class FUNC.__init__(self, name, xvar=xvar) ShiftScalePoly.__init__(self, a=a, b=b, power=power, pars=pars) self.__convex = True if convex else False xmin, xmax = self.xminmax() ## create the function self.fun = Ostap.MoreRooFit.ConvexOnly( self.roo_name('copol_'), '%s Bernstein %s' % ("convex" if convex else "concave", self.name), self.xvar, self.iconvex, xmin, xmax, self.a, self.b, self.pars_lst) self.tricks = True self.config = { 'name': self.name, 'xvar': self.xvar, 'pars': self.pars, 'a': self.a, 'b': self.b, 'convex': self.convex }
def __init__(self, name, xvar, increasing=True, a=0.0, b=1.0, power=1, pars=None): ## initialize the base class FUNC.__init__(self, name, xvar=xvar) ShiftScalePoly.__init__(self, a=a, b=b, power=power, pars=pars) self.__increasing = True if increasing else False xmin, xmax = self.xminmax() ## create the function self.fun = Ostap.MoreRooFit.Monotonic( self.roo_name('mpol_'), '%s Bernstein %s' % ("increasing" if increasing else "decreasing", self.name), self.xvar, self.increasing, xmin, xmax, self.a, self.b, self.pars_lst) self.tricks = True self.config = { 'name': self.name, 'xvar': self.xvar, 'pars': self.pars, 'a': self.a, 'b': self.b, 'increasing': self.increasing }
def __init__(self, name, xvar, power=1, pars=None): ## initialize the base class FUNC.__init__(self, name, xvar=xvar) ParamsPoly.__init__(self, power=power, pars=pars) xmin, xmax = self.xminmax() ## create the function self.fun = Ostap.MoreRooFit.Bernstein(self.roo_name('bpol_'), 'Bernstein %s' % self.name, self.xvar, xmin, xmax, self.pars_lst) self.tricks = True self.config = {'name': self.name, 'xvar': self.xvar, 'pars': self.pars}
def __init__( self, name, xvar, func, ## c a=0.0, ## a b=1.0): ## b FUNC.__init__(self, name, xvar=xvar) assert isinstance ( func , ( ROOT.RooAbsReal, FUNC ) ) ,\ "Invalid type of ``func'' %s/%s" % ( func , type ( func ) ) self.__func0 = func self.__c = func.fun if isnstance(func, FUNC) else func self.__a = self.make_var(a, "a_%s" % self.name, "shift/bias for %s" % self.name, False, a) self.__b = self.make_var(b, "b_%s" % self.name, "scale for %s" % self.name, False, b) if not self.xvar in self.a.getParameters ( 0 ) and \ not self.xvar in self.b.getParameters ( 0 ) and \ not self.xvar in self.c.getParameters ( 0 ) : self.warning("Function does not depend on xvar=%s" % self.xvar.name) self.__bc = Ostap.MoreRooFit.Product(self.b, self.c) self.fun = Ostap.MoreRooFit.Addition(self.roo_name('ss_'), "Scale&Shift %s" % self.name, self.a, self.__bc) self.config = { 'name': self.name, 'xvar': self.xvar, 'a': self.a, 'b': self.b, 'func': self.c }
def __init__( self, a, ## a xvar=None, b=1.0, ## b name='', pattern='FAB_%s_%s'): self.__a0 = a self.__b0 = b if instance(a, FUNC): a = a.fun if not xvar: xvar = a.xvar if not name: if hasattr(b, 'name'): name = pattern % (a.name, b.name) else: name = pattern % (a.name, b) FUNC.__init__(self, name, xvar=xvar) if isinstance(b, FUNC): b = b.fun self.__a = a self.__b = self.make_var(b, "b_%s" % self.name, "B for %s" % self.name, False, b) if not self.xvar in self.a.getParameters ( 0 ) and \ not self.xvar in self.b.getParameters ( 0 ) and \ not self.xvar is self.a and \ not self.xvar is self.b : self.warning("Function does not depend on xvar=%s" % self.xvar.name) self.config = { 'name': self.name, 'xvar': self.xvar, 'a': self.a, 'b': self.b }
def __init__(self, name, xvar, increasing=True, convex=True, a=0.0, b=1.0, power=1, pars=None): ## initialize the base class FUNC.__init__(self, name, xvar=xvar) ShiftScalePoly.__init__(self, a=a, b=b, power=power, pars=pars) self.__increasing = True if increasing else False self.__convex = True if convex else False xmin, xmax = self.xminmax() ## create the function self.fun = Ostap.MoreRooFit.Convex('cpol_%s' % self.name, 'Bernstein(%s)' % self.name, self.xvar, self.increasing, self.iconvex, xmin, xmax, self.a, self.b, self.pars_lst) self.tricks = True self.config = { 'name': self.name, 'xvar': self.xvar, 'pars': self.pars, 'a': self.a, 'b': self.b, 'convex': self.convex, 'increasing': self.increasing }