Exemple #1
0
    def create_toroidal_mirror(cls):
        self = ShadowOpticalElement(oe=Shadow.OE())

        self._oe.FMIRR=3
        self._oe.F_CRYSTAL = 0
        self._oe.F_REFRAC = 0

        return self
Exemple #2
0
    def create_toroidal_grating(cls):
        self = ShadowOpticalElement(oe=Shadow.OE())

        self._oe.FMIRR=3
        self._oe.F_GRATING = 1
        self._oe.F_REFRAC = 0

        return self
Exemple #3
0
def test_1(capsys):
    from sys import stderr
    import Shadow
    beam = Shadow.Beam()
    src = Shadow.Source()
    assert 2 == src.FDISTR, \
        'Basic value for Source'
    # Would like to capture stdout, but too complex with extensions.
    # Probably extension needs to call a python output method.
    beam.genSource(src)
    assert 5000 == beam.nrays(), \
        'Basic method call for Beam'
    oe = Shadow.OE()
    oe.D_SPACING = 3
    assert 3 == oe.D_SPACING, \
        'Basic assignment for OE'
    beam.traceOE(oe, 1)
Exemple #4
0
    def create_conic_coefficients_refractor(cls):
        self = ShadowOpticalElement(oe=Shadow.OE())

        self._oe.FMIRR=10
        self._oe.F_CRYSTAL = 0
        self._oe.F_REFRAC = 1

        return self
Exemple #5
0
def shadow_src_beam(n_rays=10000,
                    ran_seed=15829,
                    dist_type=3,
                    sigx=4.42e-05,
                    sigz=2.385e-05,
                    sigdix=3.52e-05,
                    sigdiz=2.875e-05,
                    hdiv1=0.0,
                    hdiv2=0.0,
                    vdiv1=0.0,
                    vdiv2=0.0,
                    ph_energy=1e3):
    """
    This function computes a shadow
    beam object from a specified source.
    """

    source = Shadow.Source()
    beam = Shadow.Beam()

    source.NPOINT = n_rays  # no. of rays (1 on-axis ray, 4 deviations)
    source.ISTAR1 = ran_seed

    #source.FSOUR = src_type  # source type (0 = point, 3 = Gsn)
    #source.WXSOU = wx
    #source.WZSOU = wz
    source.SIGMAX = sigx
    source.SIGMAZ = sigz
    source.FDISTR = dist_type
    source.SIGDIX = sigdix
    source.SIGDIZ = sigdiz
    source.F_POLAR = 0
    source.HDIV1 = hdiv1
    source.HDIV2 = hdiv2
    source.VDIV1 = vdiv1
    source.VDIV2 = vdiv2
    source.IDO_VX = 0
    source.IDO_VZ = 0
    source.IDO_X_S = 0
    source.IDO_Y_S = 0
    source.IDO_Z_S = 0
    source.F_PHOT = 0
    source.PH1 = ph_energy
    beam.genSource(source)

    return beam
Exemple #6
0
    def create_hyperboloid_mirror(cls):
        self = ShadowOpticalElement(oe=Shadow.OE())

        self._oe.FMIRR = 7
        self._oe.F_CRYSTAL = 0
        self._oe.F_REFRAC = 0

        return self
Exemple #7
0
    def create_hyperboloid_grating(cls):
        self = ShadowOpticalElement(oe=Shadow.OE())

        self._oe.FMIRR=7
        self._oe.F_GRATING = 1
        self._oe.F_REFRAC = 0

        return self
Exemple #8
0
    def create_conic_coefficients_grating(cls):
        self = ShadowOpticalElement(oe=Shadow.OE())

        self._oe.FMIRR=10
        self._oe.F_GRATING = 1
        self._oe.F_REFRAC = 0

        return self
    def create_src(cls):
        self = cls.__new__(ShadowSource, src=Shadow.Source())

        self.src.OE_NUMBER = 0
        self.src.FILE_TRAJ = bytes("NONESPECIFIED", 'utf-8')
        self.src.FILE_SOURCE = bytes("NONESPECIFIED", 'utf-8')
        self.src.FILE_BOUND = bytes("NONESPECIFIED", 'utf-8')

        return self
Exemple #10
0
def shadow_ellip_mir_trace(beam,
                           oe_num=1,
                           alpha=0.0,
                           t_source=2850.0,
                           t_image=0.0,
                           ssour=2850.0,
                           simag=900.0,
                           theta=87.9998043372,
                           offz=0.0,
                           mirinfo=0):
    """
    This function propagates an input
    beam object through an elliptical
    mirror element.
    beam: shadow beam object
    oe_num: optical element sequence number along beamline (1, 2, 3,...)
    t_source: source plane distance (drift length before mirror) - assumedly in cm
    t_image: image plane distance (drift length after mirror) - assumedly in cm
    ssour: distance from source to mirror center [cm] (object side focal distance)
    simag: distance from mirror center to second focus [cm] (image side focal distance)
    theta: incidence/reflection angle [deg]
    offz: mirror offset [cm]
    mirinfo: print mirror info; 0 = off, 1 = on
    """

    oe = Shadow.OE()
    oe.DUMMY = 100.0
    oe.FMIRR = 2  # 2: ellipsoidal, 3: toroidal, 10: conic with external coefficients
    oe.ALPHA = alpha
    oe.FHIT_C = 1
    oe.F_EXT = 0  # toggle auto-compute mirror parameters
    oe.F_DEFAULT = 0
    oe.SSOUR = ssour
    oe.SIMAG = simag
    oe.THETA = theta
    oe.FCYL = 1
    oe.FSHAPE = 2
    oe.RWIDX1 = 0.05  # added from oasys # X(+) Half Width / Int Maj Ax [m]
    oe.RWIDX2 = 0.05  # changed from oasys # X(-) Half Width / Int Maj Ax [m]
    oe.RLEN1 = 0.11  # added from oasys # Y(+) Half Width / Int Min Ax [m]
    oe.RLEN2 = 0.11  # changed from oasys # Y(-) Half Width / Int Min Ax [m]
    oe.T_INCIDENCE = theta
    oe.T_REFLECTION = theta
    oe.FWRITE = 0
    oe.T_IMAGE = t_image  # Image plane distance (drift length after mirror)
    oe.T_SOURCE = t_source  # Source plane distance (drift length before mirror)
    oe.F_MOVE = 1
    oe.OFFX = 0.0
    oe.OFFZ = offz
    #oe.Y_ROT = 0
    #oe.Z_ROT = 0
    if mirinfo == 1:
        pkdlog(oe.mirinfo())

    beam.traceOE(oe, oe_num)
    return beam
Exemple #11
0
def compare_results(do_plot=True, do_assert=True):

    if do_plot:
        Shadow.ShadowTools.plotxy("minimirr.01",
                                  2,
                                  1,
                                  nbins=101,
                                  nolost=1,
                                  title="Mirror (Python)")
        Shadow.ShadowTools.plotxy("mirr.01",
                                  2,
                                  1,
                                  nbins=101,
                                  nolost=1,
                                  title="Mirror (SHADOW)")

        Shadow.ShadowTools.plotxy("ministar.01",
                                  1,
                                  3,
                                  nbins=101,
                                  nolost=1,
                                  title="Image (Python)")
        Shadow.ShadowTools.plotxy("star.01",
                                  1,
                                  3,
                                  nbins=101,
                                  nolost=1,
                                  title="Image (SHADOW)")

    if do_assert:
        print("Comparing files mirr.01 and minimirr.01")
        minimirr = Shadow.Beam()
        minimirr.load("minimirr.01")
        mirr = Shadow.Beam()
        mirr.load("mirr.01")
        assert_almost_equal(minimirr.rays[:, 0:6], mirr.rays[:, 0:6], 2)

        print("Comparing files star.01 and ministar.01")
        ministar = Shadow.Beam()
        ministar.load("ministar.01")
        star = Shadow.Beam()
        star.load("star.01")
        assert_almost_equal(ministar.rays[:, 0:6], star.rays[:, 0:6], 2)
    def create_empty_oe(cls):
        self = ShadowOpticalElement(oe=Shadow.OE())

        self._oe.FMIRR = 5
        self._oe.F_CRYSTAL = 0
        self._oe.F_REFRAC = 2
        self._oe.F_SCREEN = 0
        self._oe.N_SCREEN = 0

        return self
    def create_screen_slit(cls):
        self = ShadowOpticalElement(oe=Shadow.OE())

        self._oe.FMIRR = 5
        self._oe.F_CRYSTAL = 0
        self._oe.F_REFRAC = 2
        self._oe.F_SCREEN = 1
        self._oe.N_SCREEN = 1

        return self
    def create_hyperboloid_crystal(cls):
        self = ShadowOpticalElement(oe=Shadow.OE())

        self._oe.FMIRR = 7
        self._oe.F_CRYSTAL = 1
        self._oe.FILE_REFL = bytes("", 'utf-8')
        self._oe.F_REFLECT = 0
        self._oe.F_BRAGG_A = 0
        self._oe.A_BRAGG = 0.0
        self._oe.F_REFRAC = 0

        return self
    def create_conic_coefficients_crystal(cls):
        self = ShadowOpticalElement(oe=Shadow.OE())

        self._oe.FMIRR = 10
        self._oe.F_CRYSTAL = 1
        self._oe.FILE_REFL = bytes("", 'utf-8')
        self._oe.F_REFLECT = 0
        self._oe.F_BRAGG_A = 0
        self._oe.A_BRAGG = 0.0
        self._oe.F_REFRAC = 0

        return self
Exemple #16
0
    def duplicate(self, copy_rays=True, history=True):
        beam = Shadow.Beam()
        if copy_rays: beam.rays = copy.deepcopy(self._beam.rays)

        new_shadow_beam = ShadowBeam(self._oe_number, beam)
        new_shadow_beam.setScanningData(self.scanned_variable_data)

        if history:
            for historyItem in self.history:
                new_shadow_beam.history.append(historyItem)

        return new_shadow_beam
Exemple #17
0
def _calculate_shadow3_beam_using_preprocessors(jsn):

    os.system(
        "rm -f start.00 systemfile.dat begin.dat xshundul.plt xshundul.par xshundul.traj xshundul.info xshundul.sha"
    )

    # epath
    commands = "epath\n2\n%f \n%f \n%f \n%d \n1.\nxshundul.par\nxshundul.traj\n1\nxshundul.plt\nexit\n"% \
    (jsn["LAMBDAU"],jsn["K"],jsn["E_ENERGY"],101)
    _shadow3_commands(commands=commands, input_file="shadow3_epath.inp")

    # undul_set
    NG_E = jsn["_NG_E"]
    # TODO: is seems a bug in shadow3: undul_set must be _NG_E>1 (otherwise nosense)
    # but if emin=emaxthe  resulting uphot.nml has _NG_E=1
    if NG_E == 1: NG_E = 2

    commands = "undul_set\n0\n0\n%d \n%d \n%d \nxshundul.traj\n%d\n%f\n%f\n%f\n%f\n0\n1000\nexit\n"% \
        (NG_E,jsn["_NG_T"],jsn["_NG_P"],
         jsn["NPERIODS"],jsn["_EMIN"],jsn["_EMAX"],jsn["INTENSITY"],1e3*jsn["_MAXANGLE"])
    _shadow3_commands(commands=commands, input_file="shadow3_undul_set.inp")

    # undul_phot
    _shadow3_commands(commands="undul_phot\nexit\n",
                      input_file="shadow3_undul_phot.inp")
    _shadow3_commands(commands="undul_phot_dump\nexit\n",
                      input_file="shadow3_undul_phot_dump.inp")

    # undul_cdf
    _shadow3_commands(
        commands="undul_cdf\n0\n1\nxshundul.sha\nxshundul.info\nexit\n",
        input_file="shadow3_undul_cdf.inp")

    # input source
    if int(jsn["_FLAG_EMITTANCE(1)"]):
        commands = "input_source\n1\n0\n%d \n%d \n0 \n2 \nxshundul.sha\n%g\n%g\n%g\n%d\n%g\n%d\n%d\n%d\n%d\nexit\n"% \
        (jsn["NRAYS"],jsn["SEED"],jsn["SX"],jsn["SZ"],jsn["EX"],0,jsn["EZ"],0,3,1,1)
    else:
        commands = "input_source\n1\n0\n%d \n%d \n0 \n2 \nxshundul.sha\n%g\n%g\n%g\n%d\n%g\n%d\n%d\n%d\n%d\nexit\n"% \
        (jsn["NRAYS"],jsn["SEED"],0,0,0,0,0,0,3,1,1)

    _shadow3_commands(commands=commands, input_file="shadow3_input_source.inp")

    # run source
    commands = "source\nsystemfile\nexit\n"
    _shadow3_commands(commands=commands, input_file="shadow3_source.inp")

    # return shadow3 beam
    beam = Shadow.Beam()
    beam.load("begin.dat")
    return beam
Exemple #18
0
def run_source(oe0, iwrite=False):
    # iwrite (1) or not (0) SHADOW files start.xx end.xx star.xx

    #Run SHADOW to create the source

    if iwrite:
        oe0.write("start.00")

    beam = Shadow.Beam()
    beam.genSource(oe0)

    if iwrite:
        oe0.write("end.00")
        beam.write("begin.dat")

    return beam
Exemple #19
0
def define_beamline():
    # initialize elements
    oe_list = []

    oe1 = Shadow.OE()
    oe_list.append(oe1)

    # Define variables. See https://raw.githubusercontent.com/oasys-kit/shadow3/master/docs/oe.nml

    oe1.DUMMY = 100.0
    oe1.FMIRR = 3
    oe1.FWRITE = 1
    oe1.T_IMAGE = 6.0
    oe1.T_INCIDENCE = 88.8
    oe1.T_REFLECTION = 88.8

    return oe_list
Exemple #20
0
def do_something():
    global last_power
    try:
        state = connection.poll()
        if state['Power'] != last_power:
            logger.warn('Power state changed, sending ' + json.dumps(state))
            # not really a warning, but INFO & Debug is too noisy
            last_power = state['Power']

            # mqtttc.publish(topicName, json.dumps(state), 0)
            deviceShadowHandler.shadowUpdate(
                Shadow.makeStatePayload("reported", state),
                customShadowCallback_Update, 5)

    except Exception as e:
        logger.info(e)
        pass
Exemple #21
0
def shadow_drift_trace(beam, length=900.0):
    """
    This function propagates an input
    beam object through a drift.
    beam: shadow beam object
    length: drift length [cm]
    """

    oe = Shadow.OE()
    oe.DUMMY = 1.0
    #oe.set_empty()
    oe.FWRITE = 3
    oe.T_IMAGE = 0.0
    oe.T_SOURCE = length
    beam.traceOE(oe, 2)

    return beam
Exemple #22
0
    def _calculateDataSourceGaussian(self, source_gaussian, in_data):
        """
        Calculates output data from input data for a Gaussian source.
        """
        adapter = ShadowAdapter()

        source = adapter.shadowSourceFromSourceGaussian(source_gaussian)

        # TODO: FIX!!!
        source.NPOINT = source_gaussian._optical_element.driverSettings(
        ).valueByName("Number of rays")

        beam = Shadow.Beam()
        beam.genSource(source)

        out_data = self.createData()
        out_data.setBeam(beam)
        return out_data
Exemple #23
0
def run_shadow_spherical_mirror(beam):
    #
    # Python script to run shadow3. Created automatically with ShadowTools.make_python_script_from_list().
    #
    import Shadow
    import numpy

    # write (1) or not (0) SHADOW files start.xx end.xx star.xx
    iwrite = 0

    #
    # initialize shadow3 source (oe0) and beam
    #

    oe1 = Shadow.OE()

    #
    # Define variables. See meaning of variables in:
    #  https://raw.githubusercontent.com/srio/shadow3/master/docs/source.nml
    #  https://raw.githubusercontent.com/srio/shadow3/master/docs/oe.nml
    #


    oe1.DUMMY = 100.0
    oe1.FMIRR = 1
    oe1.FWRITE = 1
    oe1.T_IMAGE = 1.0
    oe1.T_INCIDENCE = 41.0
    oe1.T_REFLECTION = 41.0
    oe1.T_SOURCE = 2.0


    #
    # run optical element 1
    #
    print("    Running optical element: %d" % (1))
    if iwrite:
        oe1.write("start.01")
    beam.traceOE(oe1, 1)
    if iwrite:
        oe1.write("end.01")
        beam.write("star.01")

    return beam
Exemple #24
0
 def setLighting(self):
     
     viz.MainView.getHeadLight().disable()
     #viz.MainView.get
     self.lightSource = viz.addLight() 
     self.lightSource.enable() 
     self.lightSource.position(0, self.ceilingHeight, 0) 
     self.lightSource.spread(180) 
     self.lightSource.intensity(2)
 
     
     ### ADD A SHADOW
     #SHADOW_RES = 256*10
     SHADOW_RES = 100*10
     SHADOW_PROJ_POS = (0, self.ceilingHeight, 0)
     SHADOW_AREA = (self.roomWidth,self.roomLength)
     
     #Create shadow projector
     self.shadowSource = Shadow.ShadowProjector(size=SHADOW_RES,pos=SHADOW_PROJ_POS,area=SHADOW_AREA)
Exemple #25
0
def compare_rays_with_shadow3_beam(raysnew,beam,user_unit_to_m=1.0,do_plot=True,do_assert=False):

    import Shadow
    from srxraylib.plot.gol import plot_scatter

    rays = beam.rays

    if do_plot:
        plot_scatter(rays[:,1],rays[:,0],title="Trajectory shadow3",show=False)
        plot_scatter(raysnew[:,1],raysnew[:,0],title="Trajectory new")


        plot_scatter(rays[:,3],rays[:,5],title="Divergences shadow3",show=False)
        plot_scatter(raysnew[:,3],raysnew[:,5],title="Divergences new")

        plot_scatter(rays[:,0],rays[:,2],title="Real Space shadow3",show=False)
        plot_scatter(raysnew[:,0],raysnew[:,2],title="Real Space new")

        b = Shadow.Beam()
        b.rays = raysnew
        Shadow.ShadowTools.histo1(beam,11,ref=23,nolost=1)
        Shadow.ShadowTools.histo1(b,11,ref=23,nolost=1)


    print("Comparing...")
    for i in range(6):
        if i <= 2:
            fact = 1.0 / user_unit_to_m
        else:
            fact = 1.0
        m0 = (raysnew[:,i]*fact).mean()
        m1 = beam.rays[:,i].mean()
        print("\ncol %i, mean (new,old,diff/old): "%(i+1),m0,m1,numpy.abs(m0-m1)/numpy.abs(m1))
        std0 = (raysnew[:,i]*fact).std()
        std1 = beam.rays[:,i].std()
        print("col %i, std (new,old,diff/old): "%(i+1),std0,std1,numpy.abs(std0-std1)/numpy.abs(std1))

        if do_assert:
            if True: # i != 5:  # TODO check why it fails!!!
                assert((numpy.abs(numpy.abs(m0)   -numpy.abs(m1) )    /numpy.abs(m1)) < 15.0)
            assert((numpy.abs(numpy.abs(std0) -numpy.abs(std1))  /numpy.abs(std1)) < 0.075)
Exemple #26
0
    def shadowSourceFromSourceGaussian(self, source_gaussian):
        source = Shadow.Source()

        # TODO: FIX!!!
        source.FDISTR = 3
        source.HDIV1 = 1.0
        source.HDIV2 = 1.0
        source.VDIV1 = 1.0
        source.VDIV2 = 1.0
        source.F_PHOT = 0

        source.NPOINT = source_gaussian._optical_element.driverSettings(
        ).valueByName("Number of rays")

        source.SIGMAX = source_gaussian.sigmaX()
        source.SIGMAZ = source_gaussian.sigmaY()
        source.SIGDIX = source_gaussian.sigmaXPrime()
        source.SIGDIZ = source_gaussian.sigmaYPrime()
        source.PH1 = source_gaussian.energy()

        return source
Exemple #27
0
def define_source():
    #
    # initialize shadow3 source (oe0) and beam
    #
    oe0 = Shadow.Source()

    # Define variables. See https://raw.githubusercontent.com/oasys-kit/shadow3/master/docs/source.nml

    oe0.BENER = 6.04
    oe0.EPSI_X = 3.8e-07
    oe0.EPSI_Z = 3.8e-09
    oe0.FDISTR = 4
    oe0.FSOURCE_DEPTH = 4
    oe0.F_COLOR = 3
    oe0.F_PHOT = 0
    oe0.HDIV1 = 0.0005
    oe0.HDIV2 = 0.0005
    oe0.ISTAR1 = 5676561
    oe0.NCOL = 0
    oe0.NPOINT = 50000
    oe0.N_COLOR = 0
    oe0.PH1 = 5000.0
    oe0.PH2 = 100000.0
    oe0.POL_DEG = 0.0
    oe0.R_ALADDIN = 25.1772
    oe0.R_MAGNET = 25.1772
    oe0.SIGDIX = 0.0
    oe0.SIGDIZ = 0.0
    oe0.SIGMAX = 0.0078
    oe0.SIGMAY = 0.0
    oe0.SIGMAZ = 0.0036
    oe0.VDIV1 = 1.0
    oe0.VDIV2 = 1.0
    oe0.WXSOU = 0.0
    oe0.WYSOU = 0.0
    oe0.WZSOU = 0.0

    return oe0
Exemple #28
0
def compare_rays_with_shadow3_beam(raysnew,beam,do_plot=True,do_assert=False):

    import Shadow

    rays = beam.rays

    if do_plot:
        plot_scatter(rays[:,1],rays[:,0],title="Trajectory shadow3",show=False)
        plot_scatter(raysnew[:,1],raysnew[:,0],title="Trajectory new")


        plot_scatter(rays[:,3],rays[:,5],title="Divergences shadow3",show=False)
        plot_scatter(raysnew[:,3],raysnew[:,5],title="Divergences new")

        plot_scatter(rays[:,0],rays[:,2],title="Real Space shadow3",show=False)
        plot_scatter(raysnew[:,0],raysnew[:,2],title="Real Space new")

        b = Shadow.Beam()
        b.rays = raysnew
        Shadow.ShadowTools.histo1(beam_shadow3,11,ref=23,nolost=1)
        Shadow.ShadowTools.histo1(b,11,ref=23,nolost=1)

    if do_assert:
        print("Comparing...")
        for i in range(6):
            if i <= 2:
                fact = 100
            else:
                fact = 1.0
            m0 = (raysnew[:,i]*fact).mean()
            m1 = beam.rays[:,i].mean()
            print("\ncol %d, mean: "%(i+1),m0,m1,numpy.abs(m0-m1)/numpy.abs(m1))
            std0 = (raysnew[:,i]*fact).std()
            std1 = beam.rays[:,i].std()
            print("col %d, std: "%(i+1),std0,std1,numpy.abs(std0-std1)/numpy.abs(std1))

            assert((numpy.abs(m0-m1)/numpy.abs(m1)) < 15.0)
            assert((numpy.abs(std0-std1)/numpy.abs(std1)) < 0.05)
Exemple #29
0
def define_beamline():
    # initialize elements
    oe_list = []

    oe1 = Shadow.OE()
    oe_list.append(oe1)

    # Define variables. See https://raw.githubusercontent.com/oasys-kit/shadow3/master/docs/oe.nml

    oe1.DUMMY = 100.0
    oe1.FHIT_C = 1
    oe1.FILE_REFL = b'/users/srio/OASYS1.2/shadow4tests/shadow4tests/oasys_workspaces/SiC.dat'
    oe1.FWRITE = 1
    oe1.F_REFLEC = 1
    oe1.RLEN1 = 5e-05
    oe1.RLEN2 = 5e-05
    oe1.RWIDX1 = 2e-05
    oe1.RWIDX2 = 2e-05
    oe1.T_IMAGE = 6.0
    oe1.T_INCIDENCE = 88.8
    oe1.T_REFLECTION = 88.8

    return oe_list
Exemple #30
0
 def __init__(self, passwd):
     self.data = Shadow(passwd)
Exemple #31
0
def trace_shadow(beam):
    #
    # Python script to run shadow3. Created automatically with ShadowTools.make_python_script_from_list().
    #
    import Shadow
    import numpy

    # write (1) or not (0) SHADOW files start.xx end.xx star.xx
    iwrite = 0

    #

    oe1 = Shadow.OE()
    oe2 = Shadow.OE()


    oe1.DUMMY = 100.0
    oe1.FHIT_C = 1
    oe1.FWRITE = 1
    oe1.RLEN1 = 0.05
    oe1.RLEN2 = 0.05
    oe1.RWIDX1 = 0.005
    oe1.RWIDX2 = 0.005
    oe1.T_IMAGE = 1.0
    oe1.T_INCIDENCE = 65.0
    oe1.T_REFLECTION = 65.0
    oe1.T_SOURCE = 2.0

    oe2.ALPHA = 90
    oe2.DUMMY = 100.0
    oe2.FHIT_C = 1
    oe2.FMIRR = 4
    oe2.FWRITE = 1
    oe2.RLEN1 = 0.1
    oe2.RLEN2 = 0.1
    oe2.RWIDX1 = 0.01
    oe2.RWIDX2 = 0.01
    oe2.T_IMAGE = 2.0
    oe2.T_INCIDENCE = 28.0
    oe2.T_REFLECTION = 28.0
    oe2.T_SOURCE = 5.0

    #
    # run optical element 1
    #
    print("    Running optical element: %d" % (1))
    if iwrite:
        oe1.write("start.01")
    beam.traceOE(oe1, 1)
    if iwrite:
        oe1.write("end.01")
        beam.write("star.01")

    #
    # run optical element 2
    #
    print("    Running optical element: %d" % (2))
    if iwrite:
        oe2.write("start.02")
    beam.traceOE(oe2, 2)
    if iwrite:
        oe2.write("end.02")
        beam.write("star.02")

    return beam
Exemple #32
0
class Password():
    def __init__(self, passwd):
        self.data = Shadow(passwd)

    def list(self):
        info = self.data.getInfo()
        for row in info:
            #print row['id'] ,row['name'],row['user'],row['password']
            print row['name']

    def imp(self):
        path = raw_input("Enter the path to database (/home/xpto/chrome_db.sql)> ")
        self.data.importDb(path)
        print 'DB imported with success!'

    def ins(self):
        name = raw_input("Enter the site or name> ")
        user = raw_input("Enter the username> ")
        passwd = getpass.getpass("Enter the password> ")
        passwd1 = getpass.getpass("ReEnter the password> ")

        if passwd == passwd1:
            get = self.data.addInfo(name, user, passwd)
            print get
            print '___________________________________'
            print 'Insert with success'
            print '___________________________________'
        else:
            print '___________________________________'
            print 'Password miss match \n'
            print '___________________________________'
            self.ins()

    def search(self):
        name = raw_input("Enter the name to search> ")
        get = self.data.searchInfo(name)
        print "id \t site \t\t\t\t\t\t\t\t\t user"
        for row in get:
            #print row['id'], row['name'], row['user'], row['password']
            print "%i \t %s \t\t\t\t\t\t\t\t\t %s " % (row['id'], row['name'], row['user'])
            #print row['name']

    def options(self):
            print '___________________________________'
            print '1 - Import Chrome database'
            print '2 - List all information'
            print '3 - Insert new information'
            print '4 - Search information'
            print '5 - Exit'
            print '___________________________________'

    def Menu(self):
            os.system('clear')
            while True:
                self.options()
                value = raw_input("Make a selection> ")
                if '1' in value:
                    self.imp()
                    #self.runSetMenu()
                    #os.system('clear')
                    os.ch
                elif '2' in value:
                    self.list()
                    #os.system('clear')
                elif '3' in value:
                    self.ins()
                    #self.deleteSetMenu()
                    #os.system('clear')
                elif '4' in value:
                    #self.createSetMenu()
                    self.search()
                    #os.system('clear')
                elif '5' in value:
                    print 'Good-bye'
                    quit()
                else:
                    os.system('clear')
                    print 'Invalid menu choice.'

    def run(self):
        print 'Initializing'
        self.Menu()