Ejemplo n.º 1
0
evgenConfig.description = "Test of Pythia 8 + Photos++ in Z pT"
evgenConfig.keywords = ["QED", "Z"]

include("MC12JobOptions/Pythia8_AU2_CTEQ6L1_Common.py")
include("MC12JobOptions/PhotosPythia8_Fragment.py")

# Uncomment to turn exponentiation mode off
# Most physics channels should leave the default mode to on (i.e. leave this commented out)
#topAlg.Photospp.ExponentiationMode=False

topAlg.Pythia8.Commands += ["WeakSingleBoson:ffbar2gmZ=on"]
topAlg.Pythia8.Commands += ["23:onMode=off", "23:onIfAny=11"]

evgenConfig.minevents = 25000

from Rivet_i.Rivet_iConf import Rivet_i
rivet = Rivet_i("Rivet")
rivet.Analyses = ["ATLAS_2011_S9131140"]

topAlg += rivet

from AthenaCommon.AppMgr import ServiceMgr as svcMgr
from GaudiSvc.GaudiSvcConf import THistSvc
svcMgr += THistSvc()
svcMgr.THistSvc.Output = ["Rivet DATAFILE='Rivet.root' OPT='RECREATE'"]
if not hasattr(runArgs, "rivetAnas"):
    raise RuntimeError("No Rivet analysis provided")

## Announce start of Rivet setup
evgenLog.debug("****************** CONFIGURING Rivet *****************")

import AthenaPoolCnvSvc.ReadAthenaPool
svcMgr.EventSelector.FirstEvent = runArgs.firstEvent
theApp.EvtMax = -1
if hasattr(runArgs, "maxEvents"):
    theApp.EvtMax = runArgs.maxEvents

## Add Rivet_i to the job
from Rivet_i.Rivet_iConf import Rivet_i
anaSeq += Rivet_i()
anaSeq.Rivet_i.Analyses = runArgs.rivetAnas
anaSeq.Rivet_i.DoRootHistos = True

if not hasattr(runArgs, "inputEVNTFile"):
    raise RuntimeError("Must specify input EVNT file using inputEVNTFile")
else:
    svcMgr.EventSelector.InputCollections = runArgs.inputEVNTFile

from GaudiSvc.GaudiSvcConf import THistSvc
svcMgr += THistSvc()

rootFile = "Rivet.root"

if hasattr(runArgs, "outputYODAFile"):
    anaSeq.Rivet_i.HistoFile = runArgs.outputYODAFile
## Set jet min pT cut: override on Athena command line with e.g. "-c JETPTCUT=30"
JET_PT_CUT = 1
if 'JETPTCUT' in dir():
    JET_PT_CUT = JETPTCUT

## Add to commands
cmds += """
set /Herwig/Generators/LHCGenerator:EventHandler:BeamB /Herwig/Particles/pbar-
insert /Herwig/MatrixElements/SimpleQCD:MatrixElements[0] /Herwig/MatrixElements/MEQCD2to2
set /Herwig/Cuts/JetKtCut:MinKT %f*GeV
set /Herwig/Cuts/QCDCuts:MHatMin %f*GeV
set /Herwig/UnderlyingEvent/MPIHandler:IdenticalToUE 0
""" % (JET_PT_CUT, 2 * JET_PT_CUT)

## Use weighted events with an enhanced pT spectrum
cmds += """
## Use preweighting rather than jet slices to cover wide pT range
create ThePEG::ReweightMinPT /Herwig/Generators/preweight ReweightMinPT.so
set /Herwig/Generators/preweight:Power 6
insert /Herwig/Generators/LHCGenerator:EventHandler:SubProcessHandlers[0]:Preweights[0] /Herwig/Generators/preweight
set /Herwig/Generators/LHCGenerator:EventHandler:Weighted On
"""

topAlg.Herwigpp.Commands = cmds.splitlines()

## Add Rivet UE analysis
from Rivet_i.Rivet_iConf import Rivet_i
rivet = Rivet_i()
rivet.Analyses = ['MC_JETS', 'D0_2004_S5992206']
topAlg += rivet
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration

## Example job option script to run Rivet inside Athena
## using events read in from an EVGEN POOL/ROOT file.
##
## Author: James Monk <*****@*****.**>
## Author: Andy Buckley <*****@*****.**>

include("GeneratorUtils/StdAnalysisSetup.py")
theApp.EvtMax = 1000

## Specify input evgen files
import glob, AthenaPoolCnvSvc.ReadAthenaPool
svcMgr.EventSelector.InputCollections = ["/afs/cern.ch/atlas/offline/ProdData/16.6.X/16.6.7.6/minbias-pythia8-7000.evgen.pool.root"]

## Now set up Rivet
from Rivet_i.Rivet_iConf import Rivet_i
topAlg += Rivet_i("Rivet")
topAlg.Rivet.Analyses = ["EXAMPLE", "MC_GENERIC"]
topAlg.Rivet.Analyses += ["ATLAS_2012_I1082936"]

## Configure ROOT file output
from AthenaCommon.AppMgr import ServiceMgr as svcMgr
from GaudiSvc.GaudiSvcConf import THistSvc
svcMgr += THistSvc()
svcMgr.THistSvc.Output = ["Rivet DATAFILE='Rivet.root' OPT='RECREATE'"]
#svcMgr.MessageSvc.OutputLevel = ERROR