mc_runjob


Introduction:

mc_runjob is a package containing Python scripts design to run Monta Carlo Production chain.  Figure below shows the basic design ideas behind mc_runjob. There are two basic entities. The Configurator encapsulates all of the knowledge needed to run an executable or perform some simple task. The Linker is responsible for instantiating Configurators, maintaining a list of Configurators, and handling communication among Configurators and the user.

 





Figure above shows the  Conceptual design of mc_runjob. The user interacts with the Linker, sending commands to attach and configure various Configurators. Each configurator knows how to run oneproduction  executable or how to perform a simple task. The user then asks the Linker to make a job at which point each Configurator produces a /bin/sh script and release area with configured RCPs to run its corresponding executable. The shell scripts are collected by the Linker and compiled into a master shell script which is then presented to the user. The user can run the resulting shell script, or it can of course be run by another Configurator.

The user can communicate with the Linker using commands contained in a macro script or through a Graphical User Interface (GUI). The GUI architecture is conceptually the same as depicted in figure; the Linker GUI will instantiate a Configurator GUI and maintain it in a visual list. The GUI implementations are related to the non-GUI implementation through inheritance; in fact the GUI Configurators are built automatically from the contents of their non-GUI counterparts with only a few additional cues regarding presentation and item ordering.


The contents of this manual are as follows :

Mc_runjob, as of this writing, consists of nearly 7500 lines of Python code. Much use is made of inheritance among the Configurators to keep the code size down.