Exemplo n.º 1
0
import ROOT
import os
import sys
import math

from matrixelement import toolFactory
from matrixelement import getDefaultIntegrator
from matrixelement import getAlternateIntegrator
from matrixelement import getVegasIntegrator
from matrixelement import getMiserIntegrator
from matrixelement import getHiggsWidth

# Set the Higgs mass & width for H->WW matrix elements
mH = 125
wH = getHiggsWidth( mH )

allowNull            = True   # allow PH == 0, otherwise assume non-convergence and try with finer grid
useNarrowWidthApprox = True   # remove integration over mH
useBoxPhaseSpace     = True   # if true, use q -> atan(t) transformation to sample BW
useSMKludge          = False  # flag to use the SM kludge 
useRSModel           = False  # flag to use RS graviton model (spin 2)
useJHUModel          = True   # flag to use JHU s=0/2 ME 
selectHelicity       = False  # flag to select particular helicity combination (has no effect if not implemented in ME)

iHel = -1
if os.environ.has_key( 'MYOPTS' ):
    opts = os.environ['MYOPTS']
    if 'iHel' in opts: # integrate only using this helicity combination (index starts @ 1)
        iHel = int( filter( lambda t: 'iHel' in t, opts.split( ':' ) )[0].replace( 'iHel=', '' ) )
        selectHelicity = True
        print 'INFO using helicity i =', iHel
Exemplo n.º 2
0
import ROOT

import math

from matrixelement import toolFactory
from matrixelement import getDefaultIntegrator
from matrixelement import getAlternateIntegrator
from matrixelement import getVegasIntegrator
from matrixelement import getMiserIntegrator
from matrixelement import getHiggsWidth

# Set the Higgs mass & width for H->WW matrix elements
mH = 125
wH = getHiggsWidth(mH)

recoilTF = None

allowNull = True  # allow PH == 0, otherwise assume non-convergence and try with finer grid
useNarrowWidthApprox = True  # remove integration over mH
useSMKludge = True  # flag to use the SM kludge

# Configure default/backup/failsafe integrators
myMEIntegrators = {
    'default': getVegasIntegrator(0.010, 2.5e5, 1.0e6),
    'backup': getVegasIntegrator(0.025, 5.0e5, 1.5e6),
    'failsafe': getVegasIntegrator(0.050, 7.5e5, 5.0e6)
}

# Configure the ME calculators
myMECalculation = toolFactory('HWW')(integrator=myMEIntegrators['default'],
                                     args=(mH, ROOT.HWW.kWMASS_4D, recoilTF,
Exemplo n.º 3
0
import ROOT

import math

from matrixelement import toolFactory
from matrixelement import getDefaultIntegrator
from matrixelement import getAlternateIntegrator
from matrixelement import getVegasIntegrator
from matrixelement import getMiserIntegrator
from matrixelement import getHiggsWidth

# Set the Higgs mass & width for H->WW matrix elements
mH = 125
wH = getHiggsWidth( mH ) + math.pow( getHiggsWidth( mH ) , 1/6.0  ) / 2.0
wH = max( 1, getHiggsWidth( mH ) )

recoilTF = getattr( ROOT, 'SystemBoostHybridTF' )( 'recoilhyb_h125.tf' ) 

# Configure default/backup/failsafe integrators
myMEIntegrators = { 'default'  : getDefaultIntegrator( 0.010, 1.0e4, 2.5e6 ),
                    'backup'   : getDefaultIntegrator( 0.025, 1.0e4, 5.0e6 ),
                    'failsafe' : getDefaultIntegrator( 0.100, 1.0e4, 1.0e7 ) }

# Configure the ME calculaskype:bernd.stelzertors
myMECalculation = toolFactory( 'HWW' )( integrator = myMEIntegrators['default'],
                                        args = [ mH, ROOT.HWW.kNEUTRINO_6D, recoilTF ] ) 

# Set integration limits (use TF to set dynamic limits for jets)
mehndl = myMECalculation.mehndl

mehndl.setWidth( wH )
Exemplo n.º 4
0
    if 'tt' in matrix.lower():
        jetEffTF = root.JetEfficiencyTF( 'bjetefficiency.tf' )
        config += [ root.TT1j.kJET_3D ] 
        myme = matrixelement.toolFactory( matrix )( myint, args = config ) 
        integrand = myme.matrixElement
        integrand.setInvisibleJetTF( jetEffTF )
        integrand.setIntegrationLimits( integrand.getIPTB(), 1, 100 )
        integrand.setIntegrationLimits( integrand.getIPHIB(), -math.pi, math.pi )
        integrand.setIntegrationLimits( integrand.getIETAB(), -4, 4 )
        mymelist = [ myme ]
    else:
        config += [ root.WW1jLeptonsBaseIntegrand.kNEUTRINO_4D, None, None ]
        myme = matrixelement.toolFactory( matrix )( myint, args = config )
        integrand = myme.matrixElement
        if 'hww' in matrix.lower():
            integrand.setWidth( matrixelement.getHiggsWidth( integrand.mass() ) )
            integrand.setUseSM( False )
        integrand.setIntegrationLimits( integrand.getIPTA(), 0, 500 )
        integrand.setIntegrationLimits( integrand.getIPHIA(), -math.pi, math.pi )
        integrand.setIntegrationLimits( integrand.getIPZA(), -500, 500 )
        integrand.setIntegrationLimits( integrand.getIPZB(), -500, 500 )
    integrand.initialize()

    # ---------------------------------------------------------------------

    #
    # main event loop
    #
        
    log.info( 'Begin processing events', (begin,end) )
    
Exemplo n.º 5
0
import ROOT

import math

from matrixelement import toolFactory
from matrixelement import getDefaultIntegrator
from matrixelement import getAlternateIntegrator
from matrixelement import getVegasIntegrator
from matrixelement import getMiserIntegrator
from matrixelement import getHiggsWidth

# Set the Higgs mass & width for H->WW matrix elements
mH = 125
wH = getHiggsWidth(mH) + math.pow(getHiggsWidth(mH), 1 / 6.0) / 2.0
wH = max(1, getHiggsWidth(mH))

recoilTF = getattr(ROOT, 'SystemBoostHybridTF')('recoilhyb_h125.tf')

# Configure default/backup/failsafe integrators
myMEIntegrators = {
    'default': getDefaultIntegrator(0.010, 1.0e4, 2.5e6),
    'backup': getDefaultIntegrator(0.025, 1.0e4, 5.0e6),
    'failsafe': getDefaultIntegrator(0.100, 1.0e4, 1.0e7)
}

# Configure the ME calculaskype:bernd.stelzertors
myMECalculation = toolFactory('HWW')(
    integrator=myMEIntegrators['default'],
    args=[mH, ROOT.HWW.kNEUTRINO_6D, recoilTF])

# Set integration limits (use TF to set dynamic limits for jets)
Exemplo n.º 6
0
    if 'tt' in matrix.lower():
        jetEffTF = root.JetEfficiencyTF('bjetefficiency.tf')
        config += [root.TT1j.kJET_3D]
        myme = matrixelement.toolFactory(matrix)(myint, args=config)
        integrand = myme.matrixElement
        integrand.setInvisibleJetTF(jetEffTF)
        integrand.setIntegrationLimits(integrand.getIPTB(), 1, 100)
        integrand.setIntegrationLimits(integrand.getIPHIB(), -math.pi, math.pi)
        integrand.setIntegrationLimits(integrand.getIETAB(), -4, 4)
        mymelist = [myme]
    else:
        config += [root.WW1jLeptonsBaseIntegrand.kNEUTRINO_4D, None, None]
        myme = matrixelement.toolFactory(matrix)(myint, args=config)
        integrand = myme.matrixElement
        if 'hww' in matrix.lower():
            integrand.setWidth(matrixelement.getHiggsWidth(integrand.mass()))
            integrand.setUseSM(False)
        integrand.setIntegrationLimits(integrand.getIPTA(), 0, 500)
        integrand.setIntegrationLimits(integrand.getIPHIA(), -math.pi, math.pi)
        integrand.setIntegrationLimits(integrand.getIPZA(), -500, 500)
        integrand.setIntegrationLimits(integrand.getIPZB(), -500, 500)
    integrand.initialize()

    # ---------------------------------------------------------------------

    #
    # main event loop
    #

    log.info('Begin processing events', (begin, end))
Exemplo n.º 7
0
import ROOT

import math

from matrixelement import toolFactory
from matrixelement import getDefaultIntegrator
from matrixelement import getAlternateIntegrator
from matrixelement import getVegasIntegrator
from matrixelement import getHiggsWidth

# Set the Higgs mass & width for H->WW matrix elements
mH = ??
wH = getHiggsWidth( mH ) ## + math.pow( getHiggsWidth( mH ) , 1/6.0  ) / 2.0

recoilTF = None ## = getattr( ROOT, 'SystemBoostAverageTF' )( 'recoilavg_ggh125.tf' ) 

# Configure default/backup/failsafe integrators
myMEIntegrators = { 'default'  : getVegasIntegrator( 0.010, 2.0e5, 5.0e6 ),
                    'backup'   : getVegasIntegrator( 0.025, 2.0e5, 1.0e7 ),
                    'failsafe' : getVegasIntegrator( 0.100, 2.0e5, 5.0e7 ) }

# Configure the ME calculators
myMECalculators = { 'HWW' : toolFactory( 'HWW' )( myMEIntegrators['default'],
                                                  args = [ mH, ROOT.HWW.kWMASS_4D, recoilTF ] ) }

myMECalculators['HWW'].matrixElement.setUseBoostGammaXY( False )

# Set integration limits (use TF to set dynamic limits for jets)
myMECalculators['HWW'].matrixElement.setWidth( wH )

# Gets integration limits for transformed Q^{2} variable