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
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,
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 )
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) )
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)
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))
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