1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
import FWCore.ParameterSet.Config as cms
from FWCore.ParameterSet.VarParsing import VarParsing
options = VarParsing ('python')
options.register('outFilename', 'particleLevel.root', VarParsing.multiplicity.singleton, VarParsing.varType.string, "Output file name")
#options.register('photos', 'off', VarParsing.multiplicity.singleton, VarParsing.varType.string, "ME corrections")
options.register('lepton', 13, VarParsing.multiplicity.singleton, VarParsing.varType.int, "Lepton ID for Z decays")
options.register('cutoff', 0.00011, VarParsing.multiplicity.singleton, VarParsing.varType.float, "IR cutoff")
options.register('taufilter', 'off', VarParsing.multiplicity.singleton, VarParsing.varType.string, "Filter tau -> leptons")
options.parseArguments()
print(options)
process = cms.Process("PROD")
# import of standard configurations
process.load('Configuration.StandardSequences.Services_cff')
process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi')
process.load("FWCore.MessageLogger.MessageLogger_cfi")
process.MessageLogger.cerr.FwkReport.reportEvery = int(options.maxEvents/100)
process.RandomNumberGeneratorService = cms.Service("RandomNumberGeneratorService",
generator = cms.PSet(
initialSeed = cms.untracked.uint32(123456789),
)
)
# set input to process
process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(100) )
process.source = cms.Source("EmptySource")
from Configuration.Generator.Pythia8CommonSettings_cfi import *
from Configuration.Generator.Pythia8CUEP8M1Settings_cfi import *
process.generator = cms.EDFilter("Pythia8HepMC3GeneratorFilter",
maxEventsToPrint = cms.untracked.int32(1),
pythiaPylistVerbosity = cms.untracked.int32(1),
filterEfficiency = cms.untracked.double(1.0),
pythiaHepMCVerbosity = cms.untracked.bool(False),
comEnergy = cms.double(13000.),
PythiaParameters = cms.PSet(
pythia8CommonSettingsBlock,
pythia8CUEP8M1SettingsBlock,
processParameters = cms.vstring(
'WeakSingleBoson:ffbar2gmZ = on',
'PhaseSpace:mHatMin = 50.',
'23:onMode = off',
'23:onIfAny = 15',
'ParticleDecays:allowPhotonRadiation = on',
'TimeShower:QEDshowerByL = off',
),
parameterSets = cms.vstring('pythia8CommonSettings',
'pythia8CUEP8M1Settings',
'processParameters')
),
ExternalDecays = cms.PSet(
Photospp = cms.untracked.PSet(
parameterSets = cms.vstring("setExponentiation", "setInfraredCutOff", "setCorrectionWtForW", "setMeCorrectionWtForW",
"setMeCorrectionWtForZ", "setMomentumConservationThreshold", "setPairEmission", "setPhotonEmission",
"setStopAtCriticalError", "suppressAll", "forceBremForDecay"),
setExponentiation = cms.bool(True),
setCorrectionWtForW = cms.bool(False),
setMeCorrectionWtForW = cms.bool(False),
setMeCorrectionWtForZ = cms.bool(False),
setInfraredCutOff = cms.double(0.0000001),
setMomentumConservationThreshold = cms.double(0.1),
setPairEmission = cms.bool(False), # retain pair emission in MiNNLO x NLOEW / this
setPhotonEmission = cms.bool(True),
setStopAtCriticalError = cms.bool(False),
# Use Photos only for W/Z and tau decays
suppressAll = cms.bool(True),
forceBremForDecay = cms.PSet(
parameterSets = cms.vstring("Z", "Wp", "Wm", "tau", "atau"),
Z = cms.vint32(0, 23),
Wp = cms.vint32(0, 24),
Wm = cms.vint32(0, -24),
tau = cms.vint32(0, 15),
atau = cms.vint32(0, -15)
),
),
parameterSets = cms.vstring("Photospp")
)
)
## configure process options
process.options = cms.untracked.PSet(
allowUnscheduled = cms.untracked.bool(True),
wantSummary = cms.untracked.bool(True)
)
process.genParticles = cms.EDProducer("GenParticleProducer",
saveBarCodes = cms.untracked.bool(True),
src = cms.InputTag("generator:unsmeared"),
abortOnUnknownPDGCode = cms.untracked.bool(False)
)
process.printTree1 = cms.EDAnalyzer("ParticleListDrawer",
src = cms.InputTag("genParticles"),
maxEventsToPrint = cms.untracked.int32(10)
)
process.path = cms.Path(process.generator)
|