Exemple #1
0
    def __init__( self, **kwargs ) : 
        if 'Model' not in kwargs : raise KeyError('TimeResolution: please specify a resolution model')
        self._model = kwargs.pop( 'Model' )
        if 'Name'  in kwargs : self._Name  = kwargs.pop('Name')

        if not hasattr( self, '_time' ) :
            from P2VV.RooFitWrappers import RealVar
            self._time = RealVar( Name = self._model.convVar().GetName() )

        params = kwargs.pop( 'Parameters', None )
        if params != None :
            self._params = [ var for var in params ]
            self._model._target_()._parameters = [ var for var in params ]

        # cache integrals as a function of observables
        from ROOT import RooArgSet, RooAbsCategory
        obs = RooArgSet( o for o in self._model.Observables() if o != self._time   )
        if kwargs.pop('Cache', True) and len(obs) :
            print 'P2VV - INFO: invoking %s.parameterizeIntegral(%s)' % ( self._model.GetName(),[o.GetName() for o in obs] )
            self._model.setParameterizeIntegral( obs )
            for o in filter( lambda i : not ( isinstance(i,RooAbsCategory) or i.hasBinning('cache') ), obs ):
                print 'P2VV::TimeResolution: adding cache binning wth 20 bins to %s' % o.GetName()
                o.setBins( 20 , 'cache' )

        _util_conditionalObs_mixin.__init__( self, kwargs )
        self.addConditionals( self._model.ConditionalObservables() )

        _util_extConstraints_mixin.__init__( self, kwargs )
        self.addConstraints( self._model.ExternalConstraints() )

        self._check_extraneous_kw( kwargs )
Exemple #2
0
 def __init__( self, **kwargs ) :
     for coef in [ 'MeanLifetime', 'dGamma', 'dM' ] : setattr( self, '_' + coef, kwargs.pop(coef) )
     _util_extConstraints_mixin.__init__( self, kwargs )
     self._check_extraneous_kw( kwargs )