ATLAS Offline Software
Loading...
Searching...
No Matches
python.Hto4lPowhegDefault.Hto4lPowhegDefault Class Reference
Inheritance diagram for python.Hto4lPowhegDefault.Hto4lPowhegDefault:
Collaboration diagram for python.Hto4lPowhegDefault.Hto4lPowhegDefault:

Public Types

typedef HLT::TypeInformation::for_each_type_c< typenameEDMLIST::map, my_functor, my_result<>, my_arg< HLT::TypeInformation::get_cont, CONTAINER > >::type result

Public Member Functions

 __init__ (self, runArgs=None, opts=None)
 run_card_decorators (self)
 Get list of enabled run card decorators.
 run_card_path (self)
 Get full path to runcard.
 fixed_parameters (self)
 Get list of non-configurable parameters.
 run_directory (self)
 Get run directory.
 generate (self, filter_name='', filter_args='')
 Run normal event generation.
 generateRunCard (self)
 Initialise runcard with generic options.
 generateEvents (self)
 Run normal event generation.
 add_parameter (self, configurable_name, value, desc='', parameter=None)
 Register configurable parameter.
 add_parameter_set (self, parameter_set, **kwargs)
 Alias to DecoratorFactory.decorate.
 emit_heartbeat (self, duration)
 Output a heartbeat message.
 fix_parameter (self, parameter, value=None, desc='')
 Register non-configurable parameter.
 runHto4l (configurator)
 configurable_parameters (self)
 Get dictionary of configurable parameters.
 logger (self)
 Get handle to logger.

Public Attributes

 nEvents = int( runArgs.maxEvents + 0.5 )
 Add universal functionality.
 random_seed = runArgs.randomSeed
 run_card_decorators
 Finalise registered decorators.
 run_card_path
 Write out final runcard.
 fixed_parameters
 Write out final runcard.
list running_process = []
 Initialise generation process tracker.
 run_directory

Static Protected Attributes

str _hto4l_executable = 'Hto4l'
 This must be defined by each derived class - don't change it in the jobOptions!

Private Attributes

str __output_events_file_name = 'Hto4lOTF._1.events'
 This needs to be set so that Generate_trf finds an appropriate file format for showering.
list __fixed_parameters = []
 Set up lists of parameters and decorators.
 __configurable_parameters = collections.OrderedDict()
list __run_card_decorators = []
bool __enable_reweighting = True

Static Private Attributes

 __run_directory = os.environ['PWD']
 Set up run directory and path to Hto4l.
 __logger = Logging.logging.getLogger('Hto4lControl')
 Setup athena-compatible logger.

Detailed Description

Definition at line 5 of file Hto4lPowhegDefault.py.

Member Typedef Documentation

◆ result

Definition at line 90 of file EDM_MasterSearch.h.

Constructor & Destructor Documentation

◆ __init__()

python.Hto4lPowhegDefault.Hto4lPowhegDefault.__init__ ( self,
runArgs = None,
opts = None )

Definition at line 7 of file Hto4lPowhegDefault.py.

7 def __init__( self, runArgs=None, opts=None ) :
8
9 super(Hto4lPowhegDefault, self).__init__( runArgs, opts )
10 # self.add_parameter_set( 'fromPowheg')

Member Function Documentation

◆ add_parameter()

python.Hto4lConfig.Hto4lConfig.add_parameter ( self,
configurable_name,
value,
desc = '',
parameter = None )
inherited

Register configurable parameter.

Definition at line 149 of file Hto4lConfig.py.

149 def add_parameter( self, configurable_name, value, desc='', parameter=None ) :
150 setattr( self, configurable_name, value ) # add new attribute
151 hto4l_parameter = parameter if parameter is not None else configurable_name
152 self.configurable_parameters[hto4l_parameter] = ( configurable_name, desc )
153
154

◆ add_parameter_set()

python.Hto4lConfig.Hto4lConfig.add_parameter_set ( self,
parameter_set,
** kwargs )
inherited

Alias to DecoratorFactory.decorate.

Definition at line 156 of file Hto4lConfig.py.

156 def add_parameter_set( self, parameter_set, **kwargs ) :
157 return decorate( self, parameter_set, **kwargs )
158
159

◆ configurable_parameters()

python.Hto4lConfig.Hto4lConfig.configurable_parameters ( self)
inherited

Get dictionary of configurable parameters.

Definition at line 210 of file Hto4lConfig.py.

210 def configurable_parameters(self) :
211 return self.__configurable_parameters
212
213

◆ emit_heartbeat()

python.Hto4lConfig.Hto4lConfig.emit_heartbeat ( self,
duration )
inherited

Output a heartbeat message.

Definition at line 161 of file Hto4lConfig.py.

161 def emit_heartbeat(self, duration) :
162 message = 'Heartbeat: Hto4l generation has been running for {0} in total'.format( RepeatingTimer.human_readable_time_interval(duration) )
163 self.logger.info( message )
164 with open( '{0}/eventLoopHeartBeat.txt'.format( self.__run_directory ), 'w' ) as f : f.write( message )
165
166

◆ fix_parameter()

python.Hto4lConfig.Hto4lConfig.fix_parameter ( self,
parameter,
value = None,
desc = '' )
inherited

Register non-configurable parameter.

Definition at line 168 of file Hto4lConfig.py.

168 def fix_parameter( self, parameter, value=None, desc='' ) :
169 # Get previously set value if not overwriting
170 if value is None : value = getattr( self, parameter )
171 # Remove it from the configurable list if it was there
172 for hto4l_parameter, configurable_name_tuple in self.configurable_parameters.items() :
173 # Retrieve Hto4l parameter name and description if there is a match
174 if parameter == configurable_name_tuple[0] :
175 parameter, desc = hto4l_parameter, configurable_name_tuple[1]
176 self.configurable_parameters.pop(hto4l_parameter)
177 break
178 self.fixed_parameters.append( (parameter, value, desc) )
179

◆ fixed_parameters()

python.Hto4lConfig.Hto4lConfig.fixed_parameters ( self)
inherited

Get list of non-configurable parameters.

Definition at line 216 of file Hto4lConfig.py.

216 def fixed_parameters(self) :
217 return self.__fixed_parameters
218

◆ generate()

python.Hto4lConfig.Hto4lConfig.generate ( self,
filter_name = '',
filter_args = '' )
inherited

Run normal event generation.

Definition at line 62 of file Hto4lConfig.py.

62 def generate( self, filter_name='', filter_args='' ) :
63 self.generateRunCard()
64 self.generateEvents()
65

◆ generateEvents()

python.Hto4lConfig.Hto4lConfig.generateEvents ( self)
inherited

Run normal event generation.

Definition at line 104 of file Hto4lConfig.py.

104 def generateEvents(self) :
105
106 time_start = time.time()
107 self.logger.info( 'Starting Hto4l LHEF event generation at {0}'.format( time.ctime( time_start ) ) )
108 self.logger.info( 'Number of events: {0}.'.format( self.nEvents ) )
109
110 # Setup heartbeat thread
111 heartbeat = HeartbeatTimer(600., "{}/eventLoopHeartBeat.txt".format(self.__run_directory))
112 heartbeat.setName("heartbeat thread")
113 heartbeat.daemon = True # Allow program to exit if this is the only live thread
114 heartbeat.start()
115
116
117
118 self.running_process = []
119
120 self.runHto4l()
121
122
123 heartbeat.cancel()
124
125
126 generation_end = time.time()
127 elapsed_time = generation_end - time_start
128 self.logger.info( 'Running nominal Hto4l took {0} for {1} events => {2:6.3f} Hz'.format( HeartbeatTimer.readable_duration(elapsed_time), self.nEvents, self.nEvents / elapsed_time ) )
129
130 # self.logger.info( 'Removing Hto4l born LHE file' )
131 # try :
132 # os.remove( 'plot_unweighted_born.lhe' )
133 # except OSError :
134 # pass
135
136 # ## Move output to correctly named file
137 # try :
138 # os.rename( 'plot_unweighted.lhe', self.output_events_file_name )
139 # self.logger.info( 'Moved plot_unweighted.lhe to {0}'.format(self.output_events_file_name) )
140 # except OSError :
141 # self.logger.warning( 'No output LHEF file found! Probably because the Hto4l process was killed before finishing.' )
142
143
144 self.logger.info( 'Finished at {0}'.format( time.asctime() ) )
145 return
146
147
void generateEvents(int eventMax)

◆ generateRunCard()

python.Hto4lConfig.Hto4lConfig.generateRunCard ( self)
inherited

Initialise runcard with generic options.

Definition at line 67 of file Hto4lConfig.py.

67 def generateRunCard(self) :
68
69
70 for run_card_decorator in self.run_card_decorators :
71 if hasattr( run_card_decorator, 'finalise' ) : run_card_decorator.finalise()
72
73
74 self.logger.info( '** User configurable parameters for this process **' )
75 self.logger.info( ': Configurable parameter : Current value : Description' )
76 # for value_tuple in sorted( self.configurable_parameters.values(), key=lambda x: x[0].lower() ) :
77 # self.logger.info( ': {0:<22} : {1:>17} : {2}'.format( value_tuple[0], getattr(self, value_tuple[0]), value_tuple[1] ) )
78 for value_tuple in self.configurable_parameters.values() :
79 self.logger.info( ': {0:<22} : {1:>17} : {2}'.format( value_tuple[0], getattr(self, value_tuple[0]), value_tuple[1] ) )
80
81
82 [ self.fix_parameter(parameter=value_tuple[0], desc=value_tuple[1]) for value_tuple in list(self.configurable_parameters.values()) ]
83
84
85 self.logger.info( 'Writing Hto4l runcard to {0}'.format( self.run_card_path ) )
86 with open( self.run_card_path, 'w' ) as f :
87 # for parameter_tuple in sorted( self.fixed_parameters, key=lambda x: x[0].lower() ) :
88 for parameter_tuple in self.fixed_parameters :
89 name, value, desc = parameter_tuple
90 # Set starting value to first in list when multiple values are provided
91 if isinstance(value,list) :
92 value = value[0]
93 self.__enable_reweighting = True
94 # output_line = '{0:<30}! {1}'.format( '{0}={1}'.format( name, value ), desc )
95 output_line = '{0:<30}! {1}'.format( '{0}'.format( value ), desc )
96 f.write( '{0}\n'.format(output_line) )
97 self.logger.info( 'Wrote {0}'.format( output_line ) )
98
99
100 self.logger.info( 'Using executable: {0}'.format( self._hto4l_executable ) )
101
102

◆ logger()

python.Hto4lConfig.Hto4lConfig.logger ( self)
inherited

Get handle to logger.

Definition at line 221 of file Hto4lConfig.py.

221 def logger(self) :
222 return self.__logger
223
static Root::TMsgLogger logger("iLumiCalc")

◆ run_card_decorators()

python.Hto4lConfig.Hto4lConfig.run_card_decorators ( self)
inherited

Get list of enabled run card decorators.

Definition at line 232 of file Hto4lConfig.py.

232 def run_card_decorators(self) :
233 return self.__run_card_decorators
234
235

◆ run_card_path()

python.Hto4lConfig.Hto4lConfig.run_card_path ( self)
inherited

Get full path to runcard.

Definition at line 238 of file Hto4lConfig.py.

238 def run_card_path(self) :
239 return '{0}/hto4l.input'.format( self.run_directory )
240

◆ run_directory()

python.Hto4lConfig.Hto4lConfig.run_directory ( self)
inherited

Get run directory.

Definition at line 204 of file Hto4lConfig.py.

204 def run_directory(self) :
205 return self.__run_directory
206
207

◆ runHto4l()

python.Hto4lConfig.Hto4lConfig.runHto4l ( configurator)
inherited

Definition at line 180 of file Hto4lConfig.py.

180 def runHto4l(configurator) :
181 configurator.running_process.append(subprocess.Popen( [configurator._hto4l_executable,''], stdout=subprocess.PIPE, stdin=open(configurator.run_card_path), stderr=subprocess.STDOUT ) )
182
183 while configurator.running_process :
184 # Write output buffer if any
185 for process in configurator.running_process :
186 while True :
187 output = process.stdout.readline().rstrip()
188 if len(output) == 0 : break
189 configurator.logger.info( '{0}'.format(output) )
190 if process.poll() is not None : # process has ended
191 # Flush buffer and print final output (if any) to screen
192 process.stdout.flush()
193 while True :
194 output = process.stdout.readline().rstrip()
195 if len(output) == 0 : break
196 configurator.logger.info( '{0}'.format(output) )
197 # Close output stream and remove process from list
198 process.stdout.close()
199 configurator.running_process.remove( process )
200 configurator.logger.info( 'Hto4l finished - all done.' )
201

Member Data Documentation

◆ __configurable_parameters

python.Hto4lConfig.Hto4lConfig.__configurable_parameters = collections.OrderedDict()
privateinherited

Definition at line 43 of file Hto4lConfig.py.

◆ __enable_reweighting

bool python.Hto4lConfig.Hto4lConfig.__enable_reweighting = True
privateinherited

Definition at line 93 of file Hto4lConfig.py.

◆ __fixed_parameters

list python.Hto4lConfig.Hto4lConfig.__fixed_parameters = []
privateinherited

Set up lists of parameters and decorators.

Definition at line 41 of file Hto4lConfig.py.

◆ __logger

python.Hto4lConfig.Hto4lConfig.__logger = Logging.logging.getLogger('Hto4lControl')
staticprivateinherited

Setup athena-compatible logger.

Definition at line 23 of file Hto4lConfig.py.

◆ __output_events_file_name

str python.Hto4lConfig.Hto4lConfig.__output_events_file_name = 'Hto4lOTF._1.events'
privateinherited

This needs to be set so that Generate_trf finds an appropriate file format for showering.

Definition at line 38 of file Hto4lConfig.py.

◆ __run_card_decorators

list python.Hto4lConfig.Hto4lConfig.__run_card_decorators = []
privateinherited

Definition at line 44 of file Hto4lConfig.py.

◆ __run_directory

python.Hto4lConfig.Hto4lConfig.__run_directory = os.environ['PWD']
staticprivateinherited

Set up run directory and path to Hto4l.

Definition at line 14 of file Hto4lConfig.py.

◆ _hto4l_executable

python.Hto4lConfig.Hto4lConfig._hto4l_executable = 'Hto4l'
staticprotectedinherited

This must be defined by each derived class - don't change it in the jobOptions!

Print final preparation message.

_hto4l_executable = __hto4l_directory + '/Hto4l/Hto4l-v2.0/Hto4l' for local copy of Hto4l use: _hto4l_executable = __hto4l_directory + '/runGrid/Hto4l' For the lcg version of Hto4l use: _hto4l_executable = __hto4l_directory + '/Hto4l'

Definition at line 33 of file Hto4lConfig.py.

◆ fixed_parameters

python.Hto4lConfig.Hto4lConfig.fixed_parameters
inherited

Write out final runcard.

Definition at line 88 of file Hto4lConfig.py.

◆ nEvents

python.Hto4lConfig.Hto4lConfig.nEvents = int( runArgs.maxEvents + 0.5 )
inherited

Add universal functionality.

Initialise values from runArgs

Definition at line 55 of file Hto4lConfig.py.

◆ random_seed

python.Hto4lConfig.Hto4lConfig.random_seed = runArgs.randomSeed
inherited

Definition at line 57 of file Hto4lConfig.py.

◆ run_card_decorators

python.Hto4lConfig.Hto4lConfig.run_card_decorators
inherited

Finalise registered decorators.

Definition at line 70 of file Hto4lConfig.py.

◆ run_card_path

python.Hto4lConfig.Hto4lConfig.run_card_path
inherited

Write out final runcard.

Definition at line 85 of file Hto4lConfig.py.

◆ run_directory

python.Hto4lConfig.Hto4lConfig.run_directory
inherited

Definition at line 239 of file Hto4lConfig.py.

◆ running_process

list python.Hto4lConfig.Hto4lConfig.running_process = []
inherited

Initialise generation process tracker.

Definition at line 118 of file Hto4lConfig.py.


The documentation for this class was generated from the following file: