示例#1
0
    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)
示例#2
0
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 ) )     
示例#3
0
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 ) )
示例#4
0
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 )  )