def __init__(self, input_path, mc_run_script, collect_method, mc_engine_options):
self.input_path = input_path<EOL>self.run_script_path = mc_run_script<EOL>self.collect_method = collect_method<EOL>self.engine_options = mc_engine_options<EOL>if not mc_engine_options:  <EOL><INDENT>self.engine_options = "<STR_LIT>"<EOL>logger.debug("<STR_LIT>")<EOL><DEDENT>elif os.path.exists(mc_engine_options):  <EOL><INDENT>opt_fd = open(mc_engine_options, '<STR_LIT:r>')<EOL>options_file_content = opt_fd.read()<EOL>opt_fd.close()<EOL>self.engine_options = options_file_content<EOL>logger.debug("<STR_LIT>" + options_file_content)<EOL><DEDENT>else:  <EOL><INDENT>self.engine_options = mc_engine_options[<NUM_LIT:1>:-<NUM_LIT:1>]<EOL>logger.debug("<STR_LIT>" + self.engine_options)<EOL><DEDENT>
:param input_path: Path to the input file(s): to the directory or to a single file
:param mc_run_script:  Path to the binary file with Monte-Carlo code executable
:param collect_method:  String denoting result collection method (i.e. 'mv', 'cp', 'image')
:param mc_engine_options: String which may be either list of MC engine options, enclosed in square brackets
or path to the file with options (in case of very long text)