def runTriCycle(param=None,samples=10,fitHist=None,doPickle=True): IGEElement='Fe0' fitHist,curParam,intervals=initTriCycle(IGEElement) i=1 while True: print "starting cycle %s"%i lumRange=np.linspace(intervals['luminterval'][0],intervals['luminterval'][1],num=samples) vphRange=np.linspace(intervals['vphinterval'][0],intervals['vphinterval'][1],num=samples) # IGERange=np.linspace(intervals['igeinterval'][0],intervals['igeinterval'][1],num=samples) IGERange=np.logspace(np.log10(intervals['igeinterval'][0]),np.log10(intervals['igeinterval'][1]),num=samples) lumMG,vphMG,IGEMG,curParamMG=launcherSteps.launchTriCycle(lumRange,vphRange,IGERange,IGEElement,initParam=copy.deepcopy(curParam),procPath='tri%02d'%i) print IGERange print "EVALING Cycle %s"%i print done=evalTriCycle(lumMG,vphMG,IGEMG,curParamMG,curParam,intervals,fitHist,IGEElement) #pdb.set_trace() #if done: break i+=1 pickle.dump(curParam,file('curTriParam.pkl','w')) return curParam
def initTriCycle(IGEElement,doPickle=True,samples=10): fitHist=param.fitHistory() lumInterval=runLumCycle(maxIter=5) curParam=param.param() curParam['lum']=lumInterval['suggestValue'] intervals={'luminterval':lumInterval['interval'], 'vphinterval':initialize.getVphBounds(), #make sure that no other metal really shoots up 'igeinterval':initialize.getElementBounds(IGEElement,curParam.comp)} #pdb.set_trace() lumRange=np.linspace(intervals['luminterval'][0],intervals['luminterval'][1],num=samples) vphRange=np.linspace(intervals['vphinterval'][0],intervals['vphinterval'][1],num=samples) IGERange=np.linspace(intervals['igeinterval'][0],intervals['igeinterval'][1],num=samples) lumMG,vphMG,IGEMG,curParamMG=launcherSteps.launchTriCycle(lumRange,vphRange,IGERange,IGEElement,initParam=curParam) if doPickle: pickle.dump(lumMG,file('lumMG0.pkl','w')) pickle.dump(vphMG,file('vphMG0.pkl','w')) pickle.dump(IGEMG,file('igeMG0.pkl','w')) evalTriCycle(lumMG,vphMG,IGEMG,curParamMG,curParam,intervals,fitHist,IGEElement,mode='init') return fitHist,curParam,intervals