Skip to content

Commit

Permalink
Refs #4867 - Misc changes to ResNorm, Qlines, Quest and Bayes
Browse files Browse the repository at this point in the history
  • Loading branch information
PeterParker committed Jul 9, 2012
1 parent 6a61338 commit 0eb44f1
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 24 deletions.
13 changes: 10 additions & 3 deletions Code/Mantid/Framework/PythonAPI/PythonAlgorithms/QLines.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,17 @@

class QLines(PythonAlgorithm):

def category(self):
return "Workflow\\MIDAS;PythonAlgorithms"

def PyInit(self):
self.declareProperty(Name='InputType',DefaultValue='File',Validator=ListValidator(['File','Workspace']),Description = 'Origin of data input - File (*.nxs) or Workspace')
self.declareProperty(Name='Instrument',DefaultValue='IRIS',Validator=ListValidator(['IRIS','OSIRIS']),Description = 'Instrument')
self.declareProperty(Name='Analyser',DefaultValue='graphite002',Validator=ListValidator(['graphite002','graphite004']),Description = 'Analyser & reflection')
self.declareProperty(Name='Program',DefaultValue='QL',Validator=ListValidator(['QL','QSe']),Description = 'Name of program to run')
self.declareProperty(Name='ResType',DefaultValue='Res',Validator=ListValidator(['Res','Data']),Description = 'Format of Resolution file')
self.declareProperty(Name='SamNumber',DefaultValue='',Validator=MandatoryValidator(),Description = 'Sample run number')
self.declareProperty(Name='ResInputType',DefaultValue='File',Validator=ListValidator(['File','Workspace']),Description = 'Origin of res input - File (*_res.nxs) or Workspace')
self.declareProperty(Name='ResType',DefaultValue='Res',Validator=ListValidator(['Res','Data']),Description = 'Format of Resolution file')
self.declareProperty(Name='ResNumber',DefaultValue='',Validator=MandatoryValidator(),Description = 'Resolution run number')
self.declareProperty(Name='BackgroundOption',DefaultValue='Sloping',Validator=ListValidator(['Sloping','Flat','Zero']),Description = 'Form of background to fit')
self.declareProperty(Name='ElasticOption',DefaultValue=True,Description = 'Include elastic peak in fit')
Expand All @@ -32,15 +37,17 @@ def PyExec(self):
run_f2py_compatibility_test()

self.log().information('QLines input')
inType = self.getPropertyValue('InputType')
instr = self.getPropertyValue('Instrument')
if instr == 'IRIS':
prefix = 'irs'
if instr == 'OSIRIS':
prefix = 'osi'
ana = self.getPropertyValue('Analyser')
prog = self.getPropertyValue('Program')
rtype = self.getPropertyValue('ResType')
sam = self.getPropertyValue('SamNumber')
rinType = self.getPropertyValue('ResInputType')
rtype = self.getPropertyValue('ResType')
res = self.getPropertyValue('ResNumber')
elastic = self.getProperty('ElasticOption')
bgd = self.getPropertyValue('BackgroundOption')
Expand Down Expand Up @@ -80,7 +87,7 @@ def PyExec(self):
verbOp = self.getProperty('Verbose')
plotOp = self.getPropertyValue('Plot')
saveOp = self.getProperty('Save')
Main.QLStart(prog,sname,rname,rtype,rsname,erange,nbins,fitOp,wfile,verbOp,plotOp,saveOp)
Main.QLStart(prog,inType,sname,rinType,rname,rtype,rsname,erange,nbins,fitOp,wfile,verbOp,plotOp,saveOp)
#def QLStart(program,ana,samWS,resWS,rtype,rsname,erange,nbins,fitOp,wfile,Verbose,Plot,Save):

mantid.registerPyAlgorithm(QLines()) # Register algorithm with Mantid
7 changes: 6 additions & 1 deletion Code/Mantid/Framework/PythonAPI/PythonAlgorithms/Quest.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@ def category(self):
return "Workflow\\MIDAS;PythonAlgorithms"

def PyInit(self):
self.declareProperty(Name='InputType',DefaultValue='File',Validator=ListValidator(['File','Workspace']),Description = 'Origin of data input - File (*.nxs) or Workspace')
self.declareProperty(Name='Instrument',DefaultValue='IRIS',Validator=ListValidator(['IRIS','OSIRIS']),Description = 'Instrument')
self.declareProperty(Name='Analyser',DefaultValue='graphite002',Validator=ListValidator(['graphite002','graphite004']),Description = 'Analyser & reflection')
self.declareProperty(Name='SamNumber',DefaultValue='',Validator=MandatoryValidator(),Description = 'Sample run number')
self.declareProperty(Name='ResInputType',DefaultValue='File',Validator=ListValidator(['File','Workspace']),Description = 'Origin of res input - File (*_res.nxs) or Workspace')
self.declareProperty(Name='ResNumber',DefaultValue='',Validator=MandatoryValidator(),Description = 'Resolution run number')
self.declareProperty(Name='ElasticOption',DefaultValue=True,Description = 'Include elastic peak in fit')
self.declareProperty(Name='BackgroundOption',DefaultValue='Sloping',Validator=ListValidator(['Sloping','Flat','Zero']),Description = 'Form of background to fit')
Expand All @@ -30,13 +32,15 @@ def PyExec(self):
run_f2py_compatibility_test()

self.log().information('Quest input')
inType = self.getPropertyValue('InputType')
instr = self.getPropertyValue('Instrument')
if instr == 'IRIS':
prefix = 'irs'
if instr == 'OSIRIS':
prefix = 'osi'
ana = self.getPropertyValue('Analyser')
sam = self.getPropertyValue('SamNumber')
rinType = self.getPropertyValue('ResInputType')
res = self.getPropertyValue('ResNumber')
elastic = self.getProperty('ElasticOption')
bgd = self.getPropertyValue('BackgroundOption')
Expand All @@ -47,6 +51,7 @@ def PyExec(self):
nbet = self.getPropertyValue('NumberBeta')
nsig = self.getPropertyValue('NumberSigma')
nbs = [nbet, nsig]
nbs = [ 30,50]

sname = prefix+sam+'_'+ana
rname = prefix+res+'_'+ana
Expand All @@ -65,6 +70,6 @@ def PyExec(self):
verbOp = self.getProperty('Verbose')
plotOp = self.getPropertyValue('Plot')
saveOp = self.getProperty('Save')
Main.QuestStart(sname,rname,nbs,erange,nbins,fitOp,verbOp,plotOp,saveOp)
Main.QuestStart(inType,sname,rinType,rname,nbs,erange,nbins,fitOp,verbOp,plotOp,saveOp)

mantid.registerPyAlgorithm(Quest()) # Register algorithm with Mantid
7 changes: 5 additions & 2 deletions Code/Mantid/Framework/PythonAPI/PythonAlgorithms/ResNorm.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,11 @@ def category(self):
return "Workflow\\MIDAS;PythonAlgorithms"

def PyInit(self):
self.declareProperty(Name='InputType',DefaultValue='File',Validator=ListValidator(['File','Workspace']),Description = 'Origin of data input - File (*.nxs) or Workspace')
self.declareProperty(Name='Instrument',DefaultValue='IRIS',Validator=ListValidator(['IRIS','OSIRIS']),Description = 'Instrument')
self.declareProperty(Name='Analyser',DefaultValue='graphite002',Validator=ListValidator(['graphite002','graphite004']),Description = 'Analyser & reflection')
self.declareProperty(Name='VanNumber',DefaultValue='',Validator=MandatoryValidator(),Description = 'Sample run number')
self.declareProperty(Name='ResInputType',DefaultValue='File',Validator=ListValidator(['File','Workspace']),Description = 'Origin of res input - File (*_res.nxs) or Workspace')
self.declareProperty(Name='ResNumber',DefaultValue='',Validator=MandatoryValidator(),Description = 'Resolution run number')
self.declareProperty(Name='EnergyMin', DefaultValue=-0.2,Description = 'Minimum energy for fit. Default=-0.2')
self.declareProperty(Name='EnergyMax', DefaultValue=0.2,Description = 'Maximum energy for fit. Default=0.2')
Expand All @@ -26,25 +28,26 @@ def PyExec(self):
run_f2py_compatibility_test()

self.log().information('ResNorm input')
inType = self.getPropertyValue('InputType')
instr = self.getPropertyValue('Instrument')
if instr == 'IRIS':
prefix = 'irs'
if instr == 'OSIRIS':
prefix = 'osi'
ana = self.getPropertyValue('Analyser')
van = self.getPropertyValue('VanNumber')
rinType = self.getPropertyValue('ResInputType')
res = self.getPropertyValue('ResNumber')
emin = self.getPropertyValue('EnergyMin')
emax = self.getPropertyValue('EnergyMax')
nbin = self.getPropertyValue('VanBinning')
nbins = [nbin]

vname = prefix+van+'_'+ana
rname = prefix+res+'_'+ana
erange = [emin, emax]
verbOp = self.getProperty('Verbose')
plotOp = self.getPropertyValue('Plot')
saveOp = self.getProperty('Save')
Main.ResNormStart(vname,rname,erange,nbins,verbOp,plotOp,saveOp)
Main.ResNormStart(inType,vname,rinType,rname,erange,nbin,verbOp,plotOp,saveOp)

mantid.registerPyAlgorithm(ResNorm()) # Register algorithm with Mantid
75 changes: 57 additions & 18 deletions Code/Mantid/scripts/Inelastic/IndirectBayes.py
Original file line number Diff line number Diff line change
Expand Up @@ -149,18 +149,29 @@ def CheckErange(erange,nbins):

# QLines programs

def QLStart(program,sam,res,rtype,rsname,erange,nbins,fitOp,wfile,Verbose,Plot,Save):
def QLStart(program,inType,sam,rinType,res,rtype,rsname,erange,nbins,fitOp,wfile,Verbose,Plot,Save):
if rtype == 'Res':
rext = 'res'
if rtype == 'Data':
rext = 'red'
workdir = config['defaultsave.directory']
sname = sam + '_red'
spath = os.path.join(workdir, sname+'.nxs') # path name for sample nxs file
LoadNexusProcessed(Filename=spath, OutputWorkspace=sname)
if inType == 'File':
spath = os.path.join(workdir, sname+'.nxs') # path name for sample nxs file
LoadNexusProcessed(Filename=spath, OutputWorkspace=sname)
Smessage = 'Sample from File : '+spath
else:
Smessage = 'Sample from Workspace : '+sname
rname = res + '_' + rext
rpath = os.path.join(workdir, rname+'.nxs') # path name for res nxs file
LoadNexusProcessed(Filename=rpath, OutputWorkspace=rname)
if rinType == 'File':
rpath = os.path.join(workdir, rname+'.nxs') # path name for res nxs file
LoadNexusProcessed(Filename=rpath, OutputWorkspace=rname)
Rmessage = 'Resolution from File : '+rpath
else:
Rmessage = 'Resolution from Workspace : '+rname
if Verbose:
logger.notice(Smessage)
logger.notice(Rmessage)
if fitOp[3] == 1:
path = os.path.join(workdir, rsname+'_ResNorm_Paras.nxs') # path name for resnnrm nxs file
LoadNexusProcessed(Filename=path, OutputWorkspace='ResNorm')
Expand Down Expand Up @@ -637,16 +648,27 @@ def CheckBetSig(nbs):
sys.exit(error)
return Nbet,Nsig

def QuestStart(sam,res,nbs,erange,nbins,fitOp,Verbose,Plot,Save):
def QuestStart(inType,sam,rinType,res,nbs,erange,nbins,fitOp,Verbose,Plot,Save):
StartTime('Quest')
workdir = config['defaultsave.directory']
sname = sam + '_red'
spath = os.path.join(workdir, sname+'.nxs') # path name for sample nxs file
LoadNexusProcessed(Filename=spath, OutputWorkspace=sname)
if inType == 'File':
spath = os.path.join(workdir, sname+'.nxs') # path name for sample nxs file
LoadNexusProcessed(Filename=spath, OutputWorkspace=sname)
Smessage = 'Sample from File : '+spath
else:
Smessage = 'Sample from Workspace : '+sname
nsam = mtd[sname].getNumberHistograms() # no. of hist/groups in sam
rname = res + '_res'
rpath = os.path.join(workdir, rname+'.nxs') # path name for res nxs file
LoadNexusProcessed(Filename=rpath, OutputWorkspace=rname)
if rinType == 'File':
rpath = os.path.join(workdir, rname+'.nxs') # path name for res nxs file
LoadNexusProcessed(Filename=rpath, OutputWorkspace=rname)
Rmessage = 'Resolution from File : '+rpath
else:
Rmessage = 'Resolution from Workspace : '+rname
if Verbose:
logger.notice(Smessage)
logger.notice(Rmessage)
QuestRun(sname,rname,nbs,erange,nbins,fitOp,Verbose,Plot,Save)

def QuestRun(samWS,resWS,nbs,erange,nbins,fitOp,Verbose,Plot,Save):
Expand Down Expand Up @@ -775,14 +797,25 @@ def QuestPlot(inputWS,Plot):

# ResNorm programs

def ResNormStart(van,res,erange,nbins,Verbose,Plot,Save):
def ResNormStart(inType,van,rinType,res,erange,nbins,Verbose,Plot,Save):
workdir = config['defaultsave.directory']
vname = van + '_red'
vpath = os.path.join(workdir, vname+'.nxs') # path name for van nxs file
LoadNexusProcessed(Filename=vpath, OutputWorkspace=vname)
if inType == 'File':
vpath = os.path.join(workdir, vname+'.nxs') # path name for van nxs file
LoadNexusProcessed(Filename=vpath, OutputWorkspace=vname)
Vmessage = 'Vanadium from File : '+vpath
else:
Vmessage = 'Vanadium from Workspace : '+vname
rname = res + '_res'
rpath = os.path.join(workdir, rname+'.nxs') # path name for res nxs file
LoadNexusProcessed(Filename=rpath, OutputWorkspace=rname)
if rinType == 'File':
rpath = os.path.join(workdir, rname+'.nxs') # path name for res nxs file
LoadNexusProcessed(Filename=rpath, OutputWorkspace=rname)
Rmessage = 'Resolution from File : '+rpath
else:
Rmessage = 'Resolution from Workspace : '+rname
if Verbose:
logger.notice(Vmessage)
logger.notice(Rmessage)
ResNormRun(vname,rname,erange,nbins,Verbose,Plot,Save)

def ResNormRun(vname,rname,erange,nbins,Verbose,Plot,Save):
Expand Down Expand Up @@ -887,10 +920,16 @@ def ResNormPlot(inputWS,Plot):

# Jump programs

def JumpStart(sname,jump,prog,fw,Verbose,Plot,Save):
def JumpStart(inType,sname,jump,prog,fw,Verbose,Plot,Save):
workdir = config['defaultsave.directory']
path = os.path.join(workdir, sname+'_Parameters.nxs') # path name for nxs file
LoadNexusProcessed(Filename=path, OutputWorkspace=sname+'_Parameters')
if inType == 'File':
path = os.path.join(workdir, sname+'_Parameters.nxs') # path name for nxs file
LoadNexusProcessed(Filename=path, OutputWorkspace=sname+'_Parameters')
message = 'Input from File : '+path
else:
message = 'Input from Workspace : '+sname
if Verbose:
logger.notice(message)
JumpRun(sname,jump,prog,fw,Verbose,Plot,Save)

def JumpRun(sname,jump,prog,fw,Verbose,Plot,Save):
Expand Down

0 comments on commit 0eb44f1

Please sign in to comment.