Esempio n. 1
0
    def __init__(self, dataExtractor, settingsDictOrInstName):
        assert settingsDictOrInstName != None
        settingsDict = None
        print settingsDictOrInstName
        if type(settingsDictOrInstName) == str:
            settingsDict = DataDict()
            settingsDict.pushBack("plotType", self.plotType)
            settingsDict.pushBack("instName", settingsDictOrInstName)
            settingsDict.pushBack("varX", "GEOM.e")
            settingsDict.pushBack("varY", "GEOM.sFrac")
            
            settingsDict.pushBack("constE",   "220") #(MV/m)**6 * 200 ns, will be taken to the power 6
            settingsDict.pushBack("constE_2", "250") #(MV/m)**6 * 200 ns, will be taken to the power 6
            settingsDict.pushBack("varNormE", DataDict())
            settingsDict["varNormE"].pushBack("var", "ANA.RFpost_local.maxFieldsOnSurface[0].surf[0].mode[0].Emax_norm[0]")
            
            settingsDict.pushBack("constSC",   "4.0") #(MW/mm**2)**3 * 200 ns, will be taken to the power 3
            settingsDict.pushBack("constSC_2", "5.0") #(MW/mm**2)**3 * 200 ns, will be taken to the power 3
            settingsDict.pushBack("varNormSC", DataDict())
            settingsDict["varNormSC"].pushBack("var", "ANA.RFpost_local.maxFieldsOnSurface[0].surf[0].mode[0].SCmax_norm[0]")
            
            settingsDict.pushBack("constPC",   "2.3") #(MW/mm)**3 * 200 ns, will be taken to the power 3
            settingsDict.pushBack("constPC_2", "2.9") #(MW/mm)**3 * 200 ns, will be taken to the power 3
            settingsDict.pushBack("varFrequency", "ANA.Omega3P_modeInfo.Mode[0].FrequencyReal[0]")
            settingsDict.pushBack("varRQ", "ANA.RFpost_local.RoverQ[0].mode[0].RoQ_norm[0]")
            settingsDict.pushBack("varVg", "ANA.GroupVelocity.VG[0]")
            settingsDict.pushBack("varRadius", "GEOM.a")
            
        else:
            settingsDict = settingsDictOrInstName
            if not "constE_2" in settingsDict.getKeys():
                print "Adding optimistic constants!"
                print settingsDict
                settingsDict.pushBack("constE_2",  "250") #(MV/m)**6 * 200 ns, will be taken to the power 6
                settingsDict.pushBack("constSC_2", "5.0") #(MW/mm**2)**3 * 200 ns, will be taken to the power 3
                settingsDict.pushBack("constPC_2", "2.9") #(MW/mm)**3 * 200 ns, will be taken to the power 3
            
            if type(settingsDict["varNormE"]) == str:
                assert type(settingsDict["varNormSC"]) == str
                print "Changing varNormE and varNormSC to a DataDict"
                print settingsDict
                
                oldVarNormE = settingsDict["varNormE"]
                newVarNormE = DataDict()
                newVarNormE.pushBack("var", oldVarNormE)
                settingsDict.delItem("varNormE")
                settingsDict.pushBack("varNormE", newVarNormE)
                
                oldVarNormSC = settingsDict["varNormSC"]
                newVarNormSC = DataDict()
                newVarNormSC.pushBack("var", oldVarNormSC)
                settingsDict.delItem("varNormSC")
                settingsDict.pushBack("varNormSC", newVarNormSC)
        
        # print settingsDict
        
        super(DataExtractorPlotsScaleOptim,self).__init__(dataExtractor,settingsDict)
        
        self.varX = settingsDict["varX"]
        self.varY = settingsDict["varY"]
        
        self.constE   = settingsDict["constE"]
        self.constE_2 = settingsDict["constE_2"]
        self.varNormE = settingsDict["varNormE"].vals
        
        self.constSC     = settingsDict["constSC"]
        self.constSC_2   = settingsDict["constSC_2"]
        self.varNormSC   = settingsDict["varNormSC"].vals

        self.constPC      = settingsDict["constPC"]
        self.constPC_2    = settingsDict["constPC_2"]
        self.varFrequency = settingsDict["varFrequency"]
        self.varRQ        = settingsDict["varRQ"]
        self.varVg        = settingsDict["varVg"]
        self.varRadius    = settingsDict["varRadius"]