def __init__(self, name, xvar, yvar, zvar, pdf, fraction=1.e-5): assert isinstance(pdf, ROOT.RooAbsPdf), "``pdf'' must be ROOT.RooAbsPdf" assert isinstance(xvar, ROOT.RooAbsReal), "``xvar'' must be ROOT.RooAbsReal" assert isinstance(yvar, ROOT.RooAbsReal), "``yvar'' must be ROOT.RooAbsReal" assert isinstance(zvar, ROOT.RooAbsReal), "``zvar'' must be ROOT.RooAbsReal" self.name = name self.__old_pdf = pdf self.__flat = Flat3D(xvar, yvar, xvar, name='flat_' + name) self.__frac = self.make_var( fraction, 'fracA_%s' % name, 'small fraction of flat component %s' % name, fraction, 1.e-5, 0, 1) self.__alist1 = ROOT.RooArgList(self.__flat.pdf, self.__old_pdf) self.__alist2 = ROOT.RooArgList(self.__frac) # ## final PDF # self.__pdf = ROOT.RooAddPdf(self.roo_name("adjust3_"), "Adjust 3D %s" % self.name, self.__alist1, self.__alist2)
def make_B3DmixXZ ( name , xvar , yvar , zvar , n , ny ) : """Easy creation of mixed symmetry (x<-->z) 3D function for background >>> xvar = ... >>> yvar = ... >>> zvar = ... >>> bkg = make_B3DmixXZ ( 'BBB' , xvar , yvar , zvar , 1 , 2 ) ## create PolyPos3DmixXZ_pdf >>> bkg = make_B3DmixXZ ( 'BBB' , xvar , yvar , zvar , 0 , 0 ) ## create Flat3D """ if 0 == nx and 0 == n : return Flat3D ( name = name , xvar = xvar , yvar = yvar , zvar = zvar ) return PolyPos3DmixXZ_pdf ( name = name , xvar = xvar , yvar = yvar , zvar = zvar , n = abs ( n ) , ny = abs ( ny ) )
def make_B3Dsym ( name , xvar , yvar , zvar , n ) : """Easy creation of symmetric 3D function for background >>> xvar = ... >>> yvar = ... >>> zvar = ... >>> bkg = make_B3Dsym ( 'BBB' , xvar , yvar , zvar , 1 ) ## create PolyPos3Dsym_pdf >>> bkg = make_B3Dsym ( 'BBB' , xvar , yvar , zvar , 0 ) ## create Flat3D """ if 0 == n : return Flat3D ( name = name , xvar = xvar , yvar = yvar , zvar = zvar ) return PolyPos3Dsym_pdf ( name = name , xvar = xvar , yvar = yvar , zvar = zvar , n = abs ( n ) )
def make_B3D ( name , xvar , yvar , zvar , nx , ny , nz ) : """Easy creation of 3D function for background >>> xvar = ... >>> yvar = ... >>> zvar = ... >>> bkg = make_B3D ( 'BBB' , xvar , yvar , zvar , 1 , 1 , 2 ) ## create PolyPos3D_pdf >>> bkg = make_B3D ( 'BBB' , xvar , yvar , zvar , 0 , 0 , 0 ) ## create Flat3D """ if 0 == nx and 0 == ny and 0 == nz : return Flat3D ( name = name , xvar = xvar , yvar = yvar , zvar = zvar ) return PolyPos3D_pdf ( name = name , xvar = xvar , yvar = yvar , zvar = zvar , nx = abs ( nx ) , ny = abs ( ny ) , nz = abs ( nz ) )