diff --git a/script/MultiRegionScan.py b/script/MultiRegionScan.py index 13fbf602..dc79d482 100644 --- a/script/MultiRegionScan.py +++ b/script/MultiRegionScan.py @@ -2,11 +2,16 @@ Discrete photon energy scan (vector scan) of multiple spectral regions """ +PHI_RANGE = (-160.0, 160.0) # (tuple (min, max)) +THETA_RANGE = (-9.0, 81.0) # (tuple (min, max)) +STEPS = (40.0, 1.0) # (tuple (phi, theta)) +ZIGZAG = True + # scan positioner: Eph = photon energy -MOTORS = [dummy] +MOTORS = (ManipulatorPhi, ManipulatorTheta) #MOTORS = [ManipulatorPhi] # comma-separated discrete list of scan positions -POSITIONS = [0., 1., 300] +POSITIONS = [(PHI_RANGE[0], THETA_RANGE[0]), (PHI_RANGE[1], THETA_RANGE[1]), STEPS] #POSITIONS = [-175., 180., 5.] # seconds to wait between positioning command and triggering the detector LATENCY = 0.0 @@ -29,8 +34,10 @@ LATENCY = 0.0 # 'cis': True = constant initial state (photoemission line), False = constant final state (Auger peak), (default False) # 'slit': exit slit (default current value) -REGION1 = {'name': 'secondary', 'elo': 9.0, 'ehi': 11.0, 'estep': 0.02, 'epass': 2, 'tstep': 0.20, 'iter': 1, 'cis': False} -REGION2 = {'name': 'fermi', 'elo': 23.5, 'ehi': 27.5, 'estep': 0.02, 'epass': 2, 'tstep': 0.35, 'iter': 1, 'cis': False} +REGION1 = {'name': 'on-resonance', 'ephot': 1237.7, 'efix': 1222.1, 'epass': 200., 'tstep': 20., 'iter': 1, 'cis': False} +REGION2 = {'name': 'off-resonance', 'ephot': 1235.0, 'efix': 1219.4, 'epass': 200., 'tstep': 20., 'iter': 1, 'cis': False} +#REGION1 = {'name': 'secondary', 'elo': 9.0, 'ehi': 11.0, 'estep': 0.02, 'epass': 2, 'tstep': 0.20, 'iter': 1, 'cis': False} +#REGION2 = {'name': 'fermi', 'elo': 23.5, 'ehi': 27.5, 'estep': 0.02, 'epass': 2, 'tstep': 0.35, 'iter': 1, 'cis': False} # list of region dictionaries to execute at each scan position REGIONS = [REGION1, REGION2] @@ -107,9 +114,11 @@ class SpectrumReader(ReadonlyRegisterBase, ReadonlyRegisterArray): ehi = self.region['ehi'] + edelta if self.region['fixed']: + Eph.move(self.region['ephot']) Scienta.setAcquisitionMode(ch.psi.pshell.epics.Scienta.AcquisitionMode.Fixed) Scienta.centerEnergy.write(elo) else: + Eph.move(self.region['ephot']) Scienta.setAcquisitionMode(ch.psi.pshell.epics.Scienta.AcquisitionMode.Swept) Scienta.lowEnergy.write(elo) Scienta.highEnergy.write(ehi) @@ -217,7 +226,8 @@ def do_scan(motors, positions, regions, latency): adjust_sensors() set_adc_averaging() - lscan(motors, SENSORS, positions[0], positions[1], positions[2], latency, False, before_read=wait_beam, after_read = after_readout) + ascan(motors, SENSORS, positions[0], positions[1], positions[2], latency, False, zigzag = True, before_read=wait_beam, after_read = after_readout) + #lscan(motors, SENSORS, positions[0], positions[1], positions[2], latency, False, before_read=wait_beam, after_read = after_readout) #vscan(motors, SENSORS, positions, True, latency,False, before_read=wait_beam, after_read = after_readout) for (index, region) in enumerate(regions):