ATLAS Offline Software
MC15.345060.PowhegPythia8EvtGen_Hto4l_CT10_AZNLOCTEQ6L1_ggH125.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 # Set Powheg variables, overriding defaults (RDS: defaults are ok. 2019/02)
16 # Note: width_H will be overwritten in case of CPS.
17 # PowhegConfig.mass.H = 125.
18 # PowhegConfig.width.H = 0.00407
19 
20 # PowhegConfig.generateRunCard()
21 # PowhegConfig.generateEvents()
22 # PowhegConfig.generate(run_card_only=True)
23 PowhegConfig.generate(create_run_card_only=True)
24 
25 #--------------------------------------------------------------
26 # configure Hto4l
27 #--------------------------------------------------------------
28 include('Hto4lControl/Hto4lPowhegCommon.py')
29 
30 # set name of LHE file - used below in merger
31 
32 print "runArgs", runArgs
33 
34 # powhegInputFile = "TXT.10248297._000705.events" # for interactive tests
35 # powhegInputFile = runArgs.inputGeneratorFile # for prod jobs
36 # powhegInputFile = "XXX.TTT" # runArgs.inputGeneratorFile # for prod jobs
37 
38 # runargs.maxEvents number of generated events
39 
40 
41 #--------------------------------------------------------------
42 # configure Hto4lPowhegMerger
43 #--------------------------------------------------------------
44 
45 include('Hto4lControl/Hto4lPowhegMergeCommon.py')
46 
47 # input powheg list of files comes from the input generator file names
48 hto4lPowhegMerger.input_powheg_file_name = input_powheg_files
49 
50 # setup inputs for the individual Hto4l jobs - argument must correspond to the number of files per
51 # job on the grid submission:
52 hto4lPowhegMerger.setUpInputs(8)
53 
54 # Generate a file for 4e
55 hto4lConfig4e.channel = "eeee"
56 hto4lConfig4e.lheInput = hto4lPowhegMerger.input_powheg_to_hto4l4e_file_name
57 hto4lConfig4e.lheOutput = hto4lPowhegMerger.output_hto4l4e_file_name
58 hto4lConfig4e.nEvents = int( runArgs.maxEvents / 4 + 0.5 ) # 1/4 for this channel
59 hto4lConfig4e.maxDiffWidth = 3.2052962671115008E-002 # from first run with value set to 0
60 hto4lConfig4e.random_seed = 123*runArgs.randomSeed # separate random seed for 4e
61 
62 hto4lConfig4e.generateRunCard()
63 hto4lConfig4e.generateEvents()
64 
65 # Generate a file for 4mu
66 hto4lConfig4mu.channel = "mmmm"
67 hto4lConfig4mu.lheInput = hto4lPowhegMerger.input_powheg_to_hto4l4mu_file_name
68 hto4lConfig4mu.lheOutput = hto4lPowhegMerger.output_hto4l4mu_file_name
69 hto4lConfig4mu.nEvents = int( runArgs.maxEvents / 4 + 0.5 ) # 1/4 for this channel
70 hto4lConfig4mu.maxDiffWidth = 1.3396654719615330E-002
71 hto4lConfig4mu.random_seed = 368*runArgs.randomSeed # separate random seed for 4mu
72 
73 hto4lConfig4mu.generateRunCard()
74 hto4lConfig4mu.generateEvents()
75 
76 # Generate a file for 2e2mu
77 hto4lConfig2e2mu.channel = "eemm"
78 hto4lConfig2e2mu.lheInput = hto4lPowhegMerger.input_powheg_to_hto4l2e2mu_file_name
79 hto4lConfig2e2mu.lheOutput = hto4lPowhegMerger.output_hto4l2e2mu_file_name
80 hto4lConfig2e2mu.nEvents = int( 1.1*(runArgs.maxEvents / 2) ) # 1/2 for this channel + extra 10% for events failing pythia checks
81 hto4lConfig2e2mu.maxDiffWidth = 0.12975814265233268
82 hto4lConfig2e2mu.random_seed = 278*runArgs.randomSeed # separate random seed for 2e2mu
83 
84 hto4lConfig2e2mu.generateRunCard()
85 hto4lConfig2e2mu.generateEvents()
86 
87 
88 #--------------------------------------------------------------
89 # run final LHE file merging with Hto4lPowhegMerger
90 #--------------------------------------------------------------
91 
92 hto4lPowhegMerger.merge()
93 
94 
95 print "runArgs", runArgs
96 
97 #--------------------------------------------------------------
98 # Pythia8 showering
99 # note: Main31 is set in Pythia8_AZNLO_CTEQ6L1_EvtGen_Common.py
100 #--------------------------------------------------------------
101 include('MC15JobOptions/Pythia8_AZNLO_CTEQ6L1_EvtGen_Common.py')
102 
103 #--------------------------------------------------------------
104 # Pythia8 main31 update
105 #--------------------------------------------------------------
106 # genSeq.Pythia8.UserModes += [ 'Main31:NFinal = 2' ]
107 
108 if "UserHooks" in genSeq.Pythia8.__slots__.keys():
109 
110  genSeq.Pythia8.Commands += ['Powheg:NFinal = 2']
111 
112 else:
113 
114  genSeq.Pythia8.UserModes += [ 'Main31:NFinal = 2' ]
115 
116 #--------------------------------------------------------------
117 # Higgs at Pythia8
118 #--------------------------------------------------------------
119 genSeq.Pythia8.Commands += ["TimeShower:QEDshowerByL = off",
120  "TimeShower:QEDshowerByGamma = off",
121  '25:onMode = off', # decay of Higgs
122  '23:onMode = off' ] # decay of Z
123 
124 
125 # genSeq.Pythia8.Commands += ["TimeShower:QEDshowerByOther = off"]
126 
127 #--------------------------------------------------------------
128 # EVGEN configuration
129 #--------------------------------------------------------------
130 evgenConfig.description = "POWHEG+HTO4L+PYTHIA8+EVTGEN, ggH H->llll+X mh=125 GeV CPS"
131 evgenConfig.keywords = [ "Higgs", "SMHiggs", "ZZ" ]
132 evgenConfig.contact = [ 'R.D.Schaffer@cern.ch' ]
133 
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
python.Include.include
include
Definition: Include.py:319