Esempio n. 1
0
def DREAM():
  
  oldCDREAM=float(TopCmds.GETPAR("PLdB 22"))
  RAMP=TopCmds.GETPAR("SPNAM5")
  #AvgAmpOld=IntShape.Integrate(RAMP)/100.
  
  index = TopCmds.INPUT_DIALOG("DREAM MAS", "DREAM changes for MAS change", \
  ["Old MAS rate","New MAS rate","Old 13C power","Mixing time (p20)","Ramp Name"],\
  [str(MASR),str(MAS),str(ampC5),str(LoopC5),RAMP],\
  ["kHz","kHz","dB",""],\
  ["1","1","1","1"],\
  ["Accept","Close"], ['a','c'], 10)
  
  OldMAS=float(index[0])
  NewMAS=float(index[1])
  olddB=float(index[2])
  newmix=float(index[3])
  RAMP  =index[4]
  #AvgAmpNew=IntShape.Integrate(RAMP)/100.

  adjust=20*(math.log10(NewMAS/OldMAS))
  newdB = olddB-adjust
  adjust=20*(math.log10(AvgAmpNew/AvgAmpOld))  #in case there is a Ramp change 
  newdB = newdB-adjust  
  
  TopCmds.PUTPAR("PLdB 22",str('%3.2f' %newdB))
  TopCmds.PUTPAR("P  20",str('%3.2f' %newmix))
  TopCmds.PUTPAR("SPNAM5",RAMP)
def hhC(CNCT, plH, plC, SP, Unit):
    TopCmds.PUTPAR("SP" + Unit + " 44", plH)
    TopCmds.PUTPAR("PL" + Unit + " 44", plH)
    TopCmds.PUTPAR("PL" + Unit + " 45", plC)
    TopCmds.PUTPAR("P 44", CNCT)
    TopCmds.PUTPAR("SPNAM 44", SP)
    return
def CH(CNCT, plH, plC, SP, Unit):
    TopCmds.PUTPAR("SP" + Unit + " 48", plH)
    TopCmds.PUTPAR("PL" + Unit + " 48", plH)
    TopCmds.PUTPAR("PL" + Unit + " 49", plC)
    TopCmds.PUTPAR("P 48", CNCT)
    TopCmds.PUTPAR("SPNAM 48", SP)
    return
def NH(CNCT, plH, plN, SP, Unit):
    TopCmds.PUTPAR("SP" + Unit + " 46", plH)
    TopCmds.PUTPAR("PL" + Unit + " 46", plH)
    TopCmds.PUTPAR("PL" + Unit + " 47", plC)
    TopCmds.PUTPAR("P 46", CNCT)
    TopCmds.PUTPAR("SPNAM 46", SP)
    return
Esempio n. 5
0
def CalS7purge():
  p90C=float(TopCmds.GETPAR("P 1"))
  ampC=float(TopCmds.GETPAR("PLdB 1"))
  
  MaxB1 = 1000000./4./p90C
  p90sC=float(TopCmds.GETPAR("P 7"))
  
  SPname=(TopCmds.GETPAR("SPNAM7"))
  if p90sC == 0: p90sC = 1500000./MAS
  SP=SPname
  if SP == "gauss" : SP = "3pi2SINC.wtf"
  offs = float(TopCmds.GETPAR("SPOFFS 7"))

  index = TopCmds.INPUT_DIALOG("ON-resonance 90 purge", "S7 soft 90", \
  ["Duration","Offset","Pulse Name (3pi/2 Sinc)"],\
  [str(p90sC),str(offs),SP],\
  ["us","Hz",""],\
  ["1","1","1"],\
  ["Accept","Close"], ['a','c'], 10)
  
  p90sC=float(index[0])
  offs=float(index[1])
  SP=index[2]
  
  AvgAmp=IntShape.Integrate(SP)/100.
  
  adjust=20*math.log10(p90C/p90sC/AvgAmp)
  Power=ampC-adjust
  
  TopCmds.PUTPAR("PLdB 27",str('%3.2f' %Power))
  TopCmds.PUTPAR("SPNAM7",SP)
  TopCmds.PUTPAR("SPOFFS 7",str('%8.2f' %offs))
  TopCmds.PUTPAR("P 7",str('%3.2f' %p90sC))     
Esempio n. 6
0
def CalSPC5_3():
    p90C = float(TopCmds.GETPAR("P 1"))
    ampC = float(TopCmds.GETPAR("PLdB 1"))
    MaxB1 = 1000000. / 4. / p90C
    C5B1 = 10.0 * MAS / 3.0
    adjust = 20 * (math.log10(C5B1 / MaxB1))
    condition = ampC - adjust
    TopCmds.PUTPAR("PLdB 15", str('%3.2f' % condition))
    TopCmds.PUTPAR("L 5", str(10))
Esempio n. 7
0
def CalC72():
    p90C = float(TopCmds.GETPAR("P 1"))
    ampC = float(TopCmds.GETPAR("PLdB 1"))
    MaxB1 = 1000000. / 4. / p90C
    C7B1 = 7.0 * MAS
    adjust = 20 * (math.log10(C7B1 / MaxB1))
    Condition = ampC - adjust
    TopCmds.PUTPAR("PLdB 17", str('%3.2f' % Condition))
    TopCmds.PUTPAR("L 7", str(14))
Esempio n. 8
0
def S6purge():
  p90C=float(TopCmds.GETPAR("P 1"))
  ampC=float(TopCmds.GETPAR("PLdB 1"))
  MAS =float(TopCmds.GETPAR("CNST 31"))
  
  MaxB1 = 1000000./4./p90C
  p90sC=float(TopCmds.GETPAR("P 6"))
  
  SPname=(TopCmds.GETPAR2("SPNAM 6"))
  if p90sC == 0: p90sC = 1500000./MAS
  SP=SPname

  #Check for existence and default
  if SP == "gauss" or SP == "None" :
    #TopCmds.MSG("Please set spnam6")
    TopCmds.XCMD("spnam6")
    SP=(TopCmds.GETPAR2("SPNAM 6"))
    
  offs = float(TopCmds.GETPAR("SPOFFS 6"))
  ppm=CFrq.offs2ppm(offs)

  if ppm > 140.0 : ppm=55.0
  if ppm < -10.0 : ppm=55.0

  index = TopCmds.INPUT_DIALOG("CA 90 purge", "S6 soft 90", \
  ["Duration","Offset","Pulse Name (3pi/2 Sinc)"],\
  [str('%3.2f' %p90sC),str('%3.2f' %ppm),SP],\
  ["us","ppm",""],\
  ["1","1","1"],\
  ["Accept","Close"], ['a','c'], 10)
  
  p90sC=float(index[0])
  ppm=float(index[1])
  SP=index[2]
  offs=CFrq.ppm2offs(ppm)
  
  AvgAmp=IntShape.Integrate(SP)/100.
  adjust=20*math.log10(p90C/p90sC/AvgAmp)
  Power=ampC-adjust
  
  PowerW=pwr.dBtoW(Power)
  
  confirm = TopCmds.SELECT("Adjusting the S6 purge pulse:",\
  "This will set\n \
  13C amp (pl26) to :" + str('%3.2f' %PowerW)+ " W\n \
  Pulse offset to   :" + str('%8.0f' %offs) + " Hz\n \
  Equivalent to     :" + str('%3.1f' %ppm ) + " ppm\n \
  p6 to             :" + str('%6.1f' %p90sC)+ " us\n "\
  ,["Update", "Keep Previous"])
  
  if confirm != 1:
    TopCmds.PUTPAR("PLdB 26",str('%3.2f' %Power))
    TopCmds.PUTPAR("SPNAM 6",SP)
    TopCmds.PUTPAR("SPOFFS 6",str('%8.2f' %offs))
    TopCmds.PUTPAR("P 6",str('%3.2f' %p90sC))
Esempio n. 9
0
def HDec(units):

    Stuff = []
    p90H = float(TopCmds.GETPAR("P 3"))
    ampH = float(TopCmds.GETPAR("PLdB 2"))
    MaxB1H = 1000000. / 4. / p90H

    CPD = TopCmds.GETPAR2("CPDPRG 2")
    if CPD == "mlev" or CPD == "None":
        TopCmds.XCMD("cpdprg2")
        CPD = (TopCmds.GETPAR2("CPDPRG 2"))

    Stuff = CPDtools.CPDparse(CPD, "1H")
    #TopCmds.MSG(str(Stuff))
    amp0 = CPDtools.Find_old_pl(Stuff[0])
    decpw0 = CPDtools.Find_old_pw(Stuff[1], "1H")

    B1_0 = MaxB1H * (math.pow(10, (ampH - amp0) / 20.)) / 1000.
    if B1_0 > 1.: B1out = '% .1f' % B1_0
    if B1_0 <= 1.: B1out = '75.0'

    index = TopCmds.INPUT_DIALOG("Mr Setup Input", "Decoupling Window", \
    ["Desired 1H Decoupling Amplitude","File"],\
    [B1out,CPD],["kHz",""],["1","1",],\
    ["Accept","Close"], ['a','c'], 10)

    TopCmds.PUTPAR("CPDPRG 2", index[1])

    #print(index[0], MaxB1H)
    adjust = 20 * (math.log10(1000. * float(index[0]) / MaxB1H))
    Hamp = ampH - adjust
    decpwH = (MaxB1H / 1000. / float(index[0])) * (170. / 180.) * 2 * p90H

    if units == "W":
        Hamp = dBtoW(Hamp)

    value = TopCmds.SELECT("Adjusting the H decoupling parameters:",\
    "This will set\n 1H power ("+ Stuff[0] +") to:  "+ str('%.2f' %Hamp)+" "+ units+"\n \
  Pulse width ("                  + Stuff[1] +") to:  " +str('%3.2f' %decpwH) + units,["Update", "Keep Previous"])

    if value != 1:

        if Stuff[0] == 'pl12':
            TopCmds.PUTPAR("PL" + units + " 12", str('%3.2f' % Hamp))
        elif Stuff[0] == 'pl13':
            TopCmds.PUTPAR("PL" + units + " 13", str('%3.2f' % Hamp))
        elif Stuff[0] == 'pl14':
            TopCmds.PUTPAR("PL" + units + " 14", str('%3.2f' % Hamp))

        if Stuff[1] == 'pcpd':
            TopCmds.PUTPAR("PCPD 2", str('%3.2f' % decpwH))
        elif Stuff[1] == 'p31':
            TopCmds.PUTPAR("P 31", str('%3.2f' % decpwH))
            TopCmds.PUTPAR("P 30", str('%3.2f' % decpwH))
        elif Stuff[1] == 'p62':
            TopCmds.PUTPAR("P 61", str('%3.2f' % decpwH))
            TopCmds.PUTPAR("P 62", str('%3.2f' % decpwH))
Esempio n. 10
0
def SPC5_3(units):
    p90C = float(TopCmds.GETPAR("P 1"))
    ampC = float(TopCmds.GETPAR("PLdB 1"))
    MaxB1 = 1000000. / 4. / p90C
    C5B1 = 10.0 * MAS / 3.0
    adjust = 20 * (math.log10(C5B1 / MaxB1))
    Condition = ampC - adjust

    if units == "W":
        Condition = dBtoW(Condition)

    TopCmds.PUTPAR("PL" + units + " 15", str('%3.2f' % Condition))
    TopCmds.PUTPAR("L 5", str(10))
Esempio n. 11
0
def C72(units):
    p90C = float(TopCmds.GETPAR("P 1"))
    ampC = float(TopCmds.GETPAR("PLdB 1"))
    MaxB1 = 1000000. / 4. / p90C
    C7B1 = 7.0 * MAS
    adjust = 20 * (math.log10(C7B1 / MaxB1))
    Condition = ampC - adjust

    if units == "W":
        Condition = dBtoW(Condition)

    TopCmds.PUTPAR("PL" + units + " 17", str('%3.2f' % Condition))
    TopCmds.PUTPAR("L 7", str(14))
Esempio n. 12
0
def SetPar(parName, value, unit):

    if parName in pulDict:
        TopSpinName = pulDict[parName]
    else:
        TopSpinName = parName

    j = TopSpinName.find(" ")

    if TopSpinName != "Unused":
        #TopCmds.MSG(parName+" "+TopSpinName+" is Unused")
        if (TopSpinName.find("SP") >=0 and TopSpinName.find("NAM") <= 0) \
        or    TopSpinName.find("PL") >= 0 :
            TopCmds.PUTPAR(TopSpinName[:j] + unit + TopSpinName[j:],
                           str(value))
        else:
            TopCmds.PUTPAR(TopSpinName, str(value))
Esempio n. 13
0
def name_no_confirm(input, Name, SP):
    if Name == "":
        Name = str("R2T_" + input[1] + "MAS_" + input[6] + "I_" + input[7] +
                   "S.wave")
    if SP == "":
        SP = str("SPNAM18")
        TopCmds.PUTPAR(str(SP), str(File))
    return Name, SP
Esempio n. 14
0
def name_no_confirm(input, Name, SP):
    if Name == "":
        Name = str("DREAM_" + input[5] + "D_" + input[6] + "B_" + input[1] +
                   "MAS.wave")
    if SP == "":
        SP = str("SPNAM5")
        TopCmds.PUTPAR(str(SP), str(File))
    return Name, SP
Esempio n. 15
0
def SetPar(parName, value, unit):

    if parName in pulDict:
        TopSpinName = pulDict[parName]
    else:
        TopSpinName = parName

    TopCmds.PUTPAR(TopSpinName, str(value))
Esempio n. 16
0
def name(input, SP):
    Name = str("TAN_" + input[2] + "D_" + input[3] + "B.wave")

    index = str(TopCmds.INPUT_DIALOG("TAN ramp Files", "", ["File = ","edWave =",],\
    [Name,SP],["",""],["1","1"],["Accept","Close"], [spc,ret], 30))

    File, SP = index
    if SP.find("SPNAM ") >= 0:
        TopCmds.PUTPAR(str(SP), str(File))
    return File
Esempio n. 17
0
def HN(CNCT, plH, plX, SPH, SPX, Unit):
    TopCmds.PUTPAR("P 25", CNCT)
    TopCmds.PUTPAR("PL" + Unit + " 42", plX)
    TopCmds.PUTPAR("PL" + Unit + " 43", plH)
    TopCmds.PUTPAR("SP" + Unit + " 42", plH)
    TopCmds.PUTPAR("SP" + Unit + " 43", plX)
    TopCmds.PUTPAR("SPNAM 42", SPX)
    TopCmds.PUTPAR("SPNAM 43", SPH)
    return
Esempio n. 18
0
def HC(CNCT, plH, plX, SPH, SPX, Unit):
    TopCmds.PUTPAR("P 15", CNCT)
    TopCmds.PUTPAR("PL" + Unit + " 40", plX)
    TopCmds.PUTPAR("PL" + Unit + " 41", plH)
    TopCmds.PUTPAR("SP" + Unit + " 40", plX)
    TopCmds.PUTPAR("SP" + Unit + " 41", plH)
    TopCmds.PUTPAR("SPNAM 40", SPX)
    TopCmds.PUTPAR("SPNAM 41", SPH)
    return
Esempio n. 19
0
def SetPar(parName, value, unit):

    if pulDict.has_key(parName):
        # "has_key" is needed for Python 2.0
        #if parName in pulDict:
        TopSpinName = pulDict[parName]
    else:
        TopSpinName = parName

    if TopSpinName != "Unused":
        TopCmds.PUTPAR(TopSpinName, str(value))
Esempio n. 20
0
def C72():
  
  oldC7=float(TopCmds.GETPAR("PLdB 17"))
  LoopC7=float(TopCmds.GETPAR("L 7"))
  
  index = TopCmds.INPUT_DIALOG("POST-C7 MAS", "POST-C7 changes for MAS change", \
  ["Old MAS rate","New MAS rate","Old 13C power","Mixing Loop (L7)"],\
  [str(MASR),str(MAS),str(ampC7),str(LoopC7)],\
  ["kHz","kHz","dB",""],\
  ["1","1","1","1"],\
  ["Accept","Close"], ['a','c'], 10)
  
  OldMAS=float(index[0])
  NewMAS=float(index[1])
  oldC7=float(index[2])
  newL7 =float(index[3])

  adjust=20*(math.log10(NewMAS/OldMAS))
  newC7=oldC7-adjust
  TopCmds.PUTPAR("PLdB 17",str('%3.2f' %Condition))
  TopCmds.PUTPAR("L 7",str(14))
Esempio n. 21
0
def SPC5():
  
  oldC5=float(TopCmds.GETPAR("PLdB 15"))
  LoopC5=float(TopCmds.GETPAR("L 5"))
  
  index = TopCmds.INPUT_DIALOG("SPC5 MAS", "SPC5_2,3 changes for MAS change", \
  ["Old MAS rate","New MAS rate","Old 13C power","Mixing Loop (L5)"],\
  [str(MASR),str(MAS),str(ampC5),str(LoopC5)],\
  ["kHz","kHz","dB",""],\
  ["1","1","1","1"],\
  ["Accept","Close"], ['a','c'], 10)
  
  OldMAS=float(index[0])
  NewMAS=float(index[1])
  oldC5=float(index[2])
  newL5 =float(index[3])
 
  adjust=20*(math.log10(NewMAS/OldMAS))
  newC5=oldC5-adjust
  TopCmds.PUTPAR("PLdB 15",str('%3.2f' %newC5))
  TopCmds.PUTPAR("L 5",str(newL5))
Esempio n. 22
0
def name_confirm(input):
    Name = str("R2T_" + input[1] + "MAS_" + input[6] + "I_" + input[7] +
               "S.wave")
    SP = str("SPNAM18")
    Wave = str(TopCmds.INPUT_DIALOG("R2T Files", "", ["C File = ","C Wave =",],\
    [Name,SP],["",""],["1","1"],["Accept","Close"], ['a','c'], 30))
    Files = Wave[8:len(Wave) - 21]  #get rid of Java formatting

    i = Files.find(",")
    File = Files[0:i - 1]
    SP = Files[i + 3:]
    TopCmds.PUTPAR(str(SP), str(File))
    return File, SP
Esempio n. 23
0
def SetPar(parName, value, unit) :

  if pulDict.has_key(parName):
  # "has_key" is needed for Python 2.0 
  #if parName in pulDict:
    TopSpinName = pulDict[parName]
    if TopSpinName.find("NAM") >= 0 or TopSpinName.find("PRG") >=0 :
      TopSpinName=TopSpinName.replace(" ","")
  else:
    TopSpinName=parName

   if TopSpinName != "Unused":
    TopCmds.PUTPAR(TopSpinName,str(value))
Esempio n. 24
0
def name_confirm(Ttot, RIRO, Sc, Del, Bet):
    Name = "DREAM_" + Del + "D_" + Bet + "B_" + Sc + "Sc_" + Ttot + "ms_" + RIRO + "us_ri.wave"
    SP = "SPNAM 5"
    Wave = str(TopCmds.INPUT_DIALOG("DREAM Files", "", ["C File = ","C Wave =",],\
    [Name,SP],["",""],["1","1"],["Accept","Close"], ['a','c'], 30))

    Files = Wave[27:len(Wave) - 3]  #get rid of Java formatting

    i = Files.find(",")
    File = Files[0:i - 1]
    SP = Files[i + 4:]
    TopCmds.PUTPAR(SP, File)
    return File, SP
Esempio n. 25
0
def NCA(CNCT, plH, plC, plN, SP, Unit):
    TopCmds.PUTPAR("PL" + Unit + " 5", plN)
    TopCmds.PUTPAR("PL" + Unit + " 50", plC)
    TopCmds.PUTPAR("SP" + Unit + " 50", plC)
    TopCmds.PUTPAR("PL" + Unit + " 33", plH)
    TopCmds.PUTPAR("P 16", CNCT)
    TopCmds.PUTPAR("SPNAM 50", SP)
    return
Esempio n. 26
0
def NCO(CNCT, plH, plC, plN, SP, Unit):
    TopCmds.PUTPAR("PL" + Unit + " 6", plN)
    TopCmds.PUTPAR("PL" + Unit + " 51", plC)
    TopCmds.PUTPAR("SP" + Unit + " 51", plC)
    TopCmds.PUTPAR("PL" + Unit + " 34", plH)
    TopCmds.PUTPAR("P 17", CNCT)
    TopCmds.PUTPAR("SPNAM 51", SP)
    return
Esempio n. 27
0
def CalS9refocus():
  p90C=float(TopCmds.GETPAR("P 1"))
  ampC=float(TopCmds.GETPAR("PLdB 1"))
  
  MaxB1 = 1000000./4./p90C
  p180sC=float(TopCmds.GETPAR("P 9"))
  
  SPname=(TopCmds.GETPAR("SPNAM9"))
  if p180sC == 0: p90sC = 1500000./MAS
  SP=SPname
  if SP == "gauss" : SP = "RSnob"
  offs = float(TopCmds.GETPAR("SPOFFS 9"))

  index = TopCmds.INPUT_DIALOG("OFF-resonance 180 Refocussing", "S9 soft 180", \
  ["Duration","Offset","Pulse Name (RSnob)"],\
  [str(p180sC),str(offs),SP],\
  ["us","Hz",""],\
  ["1","1","1"],\
  ["Accept","Close"], ['a','c'], 10)
  p180sC=float(index[0])
  offs=float(index[1])
  SP=index[2]
  
  #TopCmds.MSG(str(p90sC)+' p90sC')
  AvgAmp=IntShape.Integrate(SP)/100.
  adjust=20*math.log10(2*p90C/p180sC/AvgAmp)
  #TopCmds.MSG(str(adjust)+'adjust')
  
  Power=ampC-adjust
  
  #TopCmds.MSG(str(Power))
  
  TopCmds.PUTPAR("PLdB 29",str('%3.2f' %Power))
  TopCmds.PUTPAR("SPNAM9",SP)
  TopCmds.PUTPAR("SPOFFS 9",str('%8.2f' %offs))
  TopCmds.PUTPAR("P 9",str('%3.2f' %p180sC))
Esempio n. 28
0
def name(input, SP):
    Name = str("TAN_" + input[2] + "D_" + input[3] + "B.wave")

    Wave = str(TopCmds.INPUT_DIALOG("TAN ramp Files", "", ["C File = ","C Wave =",],\
    [Name,SP],["",""],["1","1"],["Accept","Close"], ['a','c'], 30))
    Files = Wave[27:len(Wave) - 3]  #get rid of Java formatting

    #TopCmds.MSG(Wave)
    #TopCmds.MSG(Files)

    i = Files.find(",")
    File = Files[0:i - 1]
    #TopCmds.MSG(File)
    SP = Files[i + 4:]
    #TopCmds.MSG(SP)
    if SP.find("SPNAM ") >= 0:
        TopCmds.PUTPAR(str(SP), str(File))
    return File
Esempio n. 29
0
def PP_PUTPAR(name, value):
    if pp.run_flag not in pp.run_flags:
        raise Exception('unknown run_flag: ' + pp.run_flag)

    brukername = name = name.upper()
    ut.putcomment('PP_PUTPAR input: %s %s' % (name, value), 2, ornament=False)

    m = pp.par_array_names_re.match(name)
    if m:
        ut.putcomment('detected array ' + m.group('arn') + ' ' + m.group('ind'),
                      3, ornament=False)
        an = m.group('arn')
        ind = m.group('ind')

        m1 = re.match('(PL|SP)DB', an)
        if m1:
            an = m1.group(1) + 'W'
            value = pow(10.0, -value / 10.)

        m1 = re.match('(D|IN|P|INP)', an)
        if m1 and (type(value) == str):
            m2 = pp.time_units_re.match(value)
            if m2:
                val = m2.group('val')
                un = m2.group('unit')
                value = float(val) * pp.time_units[un]
                if re.match('(P|INP)', an):
                    value = value * 1e6

        brukername = an + ' ' + ind

    pp.pp_log_fd.write('%s: %s\n' % (brukername, str(value)))
    ut.putcomment('PP_PUTPAR: %s %s' % (brukername, str(value)), ornament=False)

    if pp.run_flag == 'DRY':
        # print top.Cmd.putPar(brukername, str(value))
        return None
    elif pp.run_flag in ['FORCE', 'NORMAL', 'INTERACTIVE']:
        return TC.PUTPAR(brukername, str(value))
        return None
Esempio n. 30
0
def setPar(parName, value) :

  
  topSpinName = keyDict[parName]
  TopCmds.PUTPAR(topSpinName,str(value))