Skip to content

Commit

Permalink
Replace SNSPowderReductionPluse. Refs #6555.
Browse files Browse the repository at this point in the history
  • Loading branch information
wdzhou committed Mar 11, 2013
1 parent e3bf9c3 commit 5797628
Showing 1 changed file with 113 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,126 @@ def _synInstrument(self):
self.instrument_name = observer._subject._instrument_name

return


def parseTabSetupScript(self, tabsetuptype, setupscript, paramdict):
""" Parse script returned from tab setup
@param setupscript : object of SetupScript for this tab/observer
"""
print "ClassName: %s. Type %s" % (tabsetuptype, type(setupscript))

if setupscript is None:
return

else:
paramdict[tabsetuptype] = {}
terms = str(setupscript).split("\n")
for item in terms:
item = item.strip()
if item == "":
continue

item = item.rstrip(",")
subterms = item.split("=", 1)
key = subterms[0].strip()
value = subterms[1].strip()
paramdict[tabsetuptype][key] = value
# ENDFOR
# ENDIF

return

def constructPythonScript(self, paramdict):
""" Construct python script
"""
# 1. Header
script = "config['default.facility']=\"%s\"\n" % self.facility_name
script += "\n"

# 2. Optional to create event filters
filterdict = paramdict["FilterSetupWidget"]
filterdictkeys = filterdict.keys()
for parname in filterdictkeys:
print "%s = %s size = %d\n" % (parname, filterdict[parname], len(filterdict[parname]))
# simple filter

dofilter = False
if filterdict["FilterByTimeMin"] != "":
dofilter = True
print "Yes! Min Generate Filter will be called!"

if filterdict["FilterByTimeMax"] != "":
dofilter = True
print "Yes! Max Generate Filter will be called!"

if filterdict["FilterType"] != "NoFilter":
dofilter = True
print "Yes! FilterType Generate Filter will be called!"

if dofilter is True:
# Construct the script to do event filtering
script += "# Load data's log only\n"
script += "Load(\n"
script += "%sFile = '%s',\n" % (DiffractionReductionScripter.WIDTH, datafilename)
script += "%sOutputWorkspace = '%s',\n" % (DiffractionReductionScripter.WIDTH, metadatawsname)
script += "%sMetaDataOnly = '1')\n" % (DiffractionReductionScripter.WIDTH)

script += "\n"

# Construct the script to generate event filter
script += "# Construct the event filters\n"
script += "GenerateEventsFilter(\n"
script += "%sInputWorkspace = '%s',\n" % (DiffractionReductionScripter.WIDTH, metadatawsname)
script += "%sOutputWorkspace = '%s',\n" % (DiffractionReductionScripter.WIDTH, splitwsname)
if filterdict["FilterByTimeMin"] != "":
script += "%sStartTime = '%s',\n" % (DiffractionReductionScripter.WIDTH, filterdict["FilterByTimeMin"])
if filterdict["FilterByTimeMax"] != "":
script += "%sStopTime = '%s',\n" % (DiffractionReductionScripter.WIDTH, filterdict["FilterByTimeMax"])

if filterdict["FilterType"] == "ByTime":
# Filter by time
script += "%sTimeInterval = '%s',\n" % (DiffractionReductionScripter.WIDTH, filterdict["LengthOfTimeInterval"])
script += "%sUnitOfTime = '%s',\n" % (DiffractionReductionScripter.WIDTH, filterdict["UnitOfTime"])

elif filterdict["FilterType"] == "ByLogValue":
# Filter by log value
script += "%sLogName = '%s',\n" % (DiffractionReductionScripter.WIDTH, splitwsname)
if filterdict["Minimum"]:
script += "%sMinimumLogValue = '%s',\n" % (DiffractionReductionScripter.WIDTH, filterdict[""])
if filterdict["Maximum"]:
script += "%sMaximumLogValue = '%s',\n" % (DiffractionReductionScripter.WIDTH, filterdict[""])
script += "%sFilterLogValueByChangingDirection = '%s',\n" % (DiffractionReductionScripter.WIDTH, filterdict[""]

script += "%s = '%s',\n" % (DiffractionReductionScripter.WIDTH, splitwsname)
script += "%s = '%s',\n" % (DiffractionReductionScripter.WIDTH, splitwsname)
script += "%s = '%s',\n" % (DiffractionReductionScripter.WIDTH, splitwsname)
script += "%s = '%s',\n" % (DiffractionReductionScripter.WIDTH, splitwsname)
script += "%s = '%s',\n" % (DiffractionReductionScripter.WIDTH, splitwsname)


return


def to_script(self, file_name=None):
""" Generate reduction script via observers
@param file_name: name of the file to write the script to
"""
print "[Main Reduction Script] Facility = %s, Instrument = %s" % (self.facility_name, self.instrument_name)

self._synInstrument()
# 1. Collect from observers
paramdict = {}
for observer in self._observers:
obstate = observer.state()
self.parseTabSetupScript(observer._subject.__class__.__name__, obstate, paramdict)
# ENDFOR

# 2. Construct python commands
self.constructPythonScript(paramdict)

raise NotImplementedError("Debug Stop")

# self._synInstrument()

# Header
script = "config['default.facility']=\"%s\"\n" % self.facility_name
Expand Down

0 comments on commit 5797628

Please sign in to comment.