ATLAS Offline Software
mc.PhPy8EG_Hto4l_NNLOPS_nnlo_30_ggH125_ZZ4l.py
Go to the documentation of this file.
1 #--------------------------------------------------------------
2 # Powheg ggH_quark_mass_effects setup
3 #--------------------------------------------------------------
4 
5 # Must save input gen file names before it is overwritten
6 input_powheg_files = runArgs.inputGeneratorFile
7 
8 
9 include('PowhegControl/PowhegControl_ggF_H_Common.py')
10 
11 
12 # Temporarily, we setup Powheg to use some variables to be the same in the Hto4l config. These
13 # should eventually be taken from the incoming LHE file
14 
15 PowhegConfig.generate(create_run_card_only=True)
16 
17 #--------------------------------------------------------------
18 # configure Hto4l
19 #--------------------------------------------------------------
20 include('Hto4lControl/Hto4lPowhegCommon.py')
21 
22 
23 #--------------------------------------------------------------
24 # configure Hto4lPowhegMerger
25 #--------------------------------------------------------------
26 
27 include('Hto4lControl/Hto4lPowhegMergeCommon.py')
28 
29 # input powheg list of files comes from the input generator file names
30 hto4lPowhegMerger.input_powheg_file_name = input_powheg_files
31 
32 # setup input for the individual Hto4l jobs - merge multiple LHE input files, if more than one
33 # job on the grid submission:
34 hto4lPowhegMerger.setUpInput()
35 
36 # Generate a file for 4e
37 hto4lConfig4e.channel = "eeee"
38 hto4lConfig4e.lheInput = hto4lPowhegMerger.input_powheg_to_hto4l_file_name
39 hto4lConfig4e.lheOutput = hto4lPowhegMerger.output_hto4l4e_file_name
40 hto4lConfig4e.nEvents = int( runArgs.maxEvents / 4 + 0.5 ) # 1/4 for this channel
41 hto4lConfig4e.nskip = int(0) # no events to skip
42 hto4lConfig4e.maxDiffWidth = 3.2052962671115008E-002 # from first run with value set to 0
43 hto4lConfig4e.random_seed = 123*runArgs.randomSeed # separate random seed for 4e
44 
45 hto4lConfig4e.generateRunCard()
46 hto4lConfig4e.generateEvents()
47 
48 # Generate a file for 4mu
49 hto4lConfig4mu.channel = "mmmm"
50 hto4lConfig4mu.lheInput = hto4lPowhegMerger.input_powheg_to_hto4l_file_name
51 hto4lConfig4mu.lheOutput = hto4lPowhegMerger.output_hto4l4mu_file_name
52 hto4lConfig4mu.nEvents = int( runArgs.maxEvents / 4 + 0.5 ) # 1/4 for this channel
53 hto4lConfig4mu.nskip = hto4lConfig4e.nEvents # skip 4e events
54 hto4lConfig4mu.maxDiffWidth = 1.3396654719615330E-002
55 hto4lConfig4mu.random_seed = 368*runArgs.randomSeed # separate random seed for 4mu
56 
57 hto4lConfig4mu.generateRunCard()
58 hto4lConfig4mu.generateEvents()
59 
60 # Generate a file for 2e2mu
61 hto4lConfig2e2mu.channel = "eemm"
62 hto4lConfig2e2mu.lheInput = hto4lPowhegMerger.input_powheg_to_hto4l_file_name
63 hto4lConfig2e2mu.lheOutput = hto4lPowhegMerger.output_hto4l2e2mu_file_name
64 hto4lConfig2e2mu.nEvents = int( 1.1*(runArgs.maxEvents / 2) ) # 1/2 for this channel + extra 10% for events failing pythia checks
65 hto4lConfig2e2mu.nskip = hto4lConfig4e.nEvents + hto4lConfig4mu.nEvents # skip 4e and 4mu events
66 hto4lConfig2e2mu.maxDiffWidth = 0.12975814265233268
67 hto4lConfig2e2mu.random_seed = 278*runArgs.randomSeed # separate random seed for 2e2mu
68 
69 hto4lConfig2e2mu.generateRunCard()
70 hto4lConfig2e2mu.generateEvents()
71 
72 
73 #--------------------------------------------------------------
74 # run final LHE file merging with Hto4lPowhegMerger
75 #--------------------------------------------------------------
76 
77 hto4lPowhegMerger.merge()
78 
79 
80 #--------------------------------------------------------------
81 # Pythia8 showering
82 # note: Main31 is set in Pythia8_AZNLO_CTEQ6L1_EvtGen_Common.py
83 #--------------------------------------------------------------
84 # include('MC15JobOptions/Pythia8_AZNLO_CTEQ6L1_EvtGen_Common.py')
85 include('Pythia8_i/Pythia8_AZNLO_CTEQ6L1_EvtGen_Common.py')
86 
87 #--------------------------------------------------------------
88 # Pythia8 main31 update
89 #--------------------------------------------------------------
90 # genSeq.Pythia8.UserModes += [ 'Main31:NFinal = 2' ]
91 
92 if "UserHooks" in genSeq.Pythia8.__slots__.keys():
93 
94  genSeq.Pythia8.Commands += ['Powheg:NFinal = 2']
95 
96 else:
97 
98  genSeq.Pythia8.UserModes += [ 'Main31:NFinal = 2' ]
99 
100 #--------------------------------------------------------------
101 # Higgs at Pythia8
102 #--------------------------------------------------------------
103 genSeq.Pythia8.Commands += ["TimeShower:QEDshowerByL = off",
104  "TimeShower:QEDshowerByGamma = off"]
105 
106 
107 # genSeq.Pythia8.Commands += ["TimeShower:QEDshowerByOther = off"]
108 
109 #--------------------------------------------------------------
110 # EVGEN configuration
111 #--------------------------------------------------------------
112 evgenConfig.description = "POWHEG+HTO4L+PYTHIA8+EVTGEN, ggH H->llll+X mh=125 GeV CPS"
113 evgenConfig.keywords = [ "Higgs", "SMHiggs", "ZZ" ]
114 evgenConfig.contact = [ 'R.D.Schaffer@cern.ch' ]
115 
116 evgenConfig.nEventsPerJob = 10000
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
python.Include.include
include
Definition: Include.py:319