BeamBlock.java

/**
 * Copyright (c) 2018 European Organisation for Nuclear Research (CERN), All Rights Reserved.
 */

package cern.accsoft.steering.jmad.tools.modeldefs.creating.lang;

import cern.accsoft.steering.jmad.domain.beam.Beam;
import cern.accsoft.steering.jmad.domain.beam.Beam.Direction;
import cern.accsoft.steering.jmad.domain.beam.Beam.Particle;

/**
 * This class contains all the possible methods to initialize the beam definition
 * A @Consumer  is used to add a beam definition to a sequence
 * 
 * @author delph
 */

public class BeamBlock {
    
    private final Beam beam;
    
    
    /**
     * @param beam the beam to create
     */
    public BeamBlock(Beam beam) {
        this.beam = beam;
    }

    public void particle(Particle particle) {
        beam.setParticle(particle);
    }

    public void particle(String particleName) {
        beam.setParticleName(particleName);
    }

    public void mass(Double mass) {
        beam.setMass(mass);
    }

    public void charge(Double charge) {
        beam.setCharge(charge);
    }

    public void energy(Double energy) {
        beam.setEnergy(energy);
    }

    public void pc(Double momentum) {
        beam.setMomentum(momentum);
    }

    public void gamma(Double gamma) {
        beam.setGamma(gamma);
    }

    public void ex(Double horizontalEmittance) {
        beam.setHorizontalEmittance(horizontalEmittance);
    }

    public void ey(Double verticalEmittance) {
        beam.setVerticalEmittance(verticalEmittance);
    }

    public void et(Double longitudinalEmittance) {
        beam.setLongitudinalEmittance(longitudinalEmittance);
    }

    public void exn(Double normalisedHorizontalEmittance) {
        beam.setNormalisedHorizontalEmittance(normalisedHorizontalEmittance);
    }

    public void eyn(Double normalisedVerticalEmittance) {
        beam.setNormalisedVerticalEmittance(normalisedVerticalEmittance);
    }

    public void sigt(Double bunchLength) {
        beam.setBunchLength(bunchLength);
    }

    public void sige(Double relativeEnergySpread) {
        beam.setRelativeEnergySpread(relativeEnergySpread);
    }

    public void kbunch(Integer bunchNumber) {
        beam.setBunchNumber(bunchNumber);
    }

    public void npart(Double particleNumber) {
        beam.setParticleNumber(particleNumber);
    }

    public void bcurrent(Double bunchCurrent) {
        beam.setBunchCurrent(bunchCurrent);
    }

    public void bunched(Boolean bunched) {
        beam.setBunched(bunched);
    }

    public void radiate(Boolean radiate) {
        beam.setRadiate(radiate);
    }

    public void direction(Direction direction) {
        beam.setDirection(direction);
    }

}