BeamBlock.java

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

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

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

  8. /**
  9.  * This class contains all the possible methods to initialize the beam definition
  10.  * A @Consumer  is used to add a beam definition to a sequence
  11.  *
  12.  * @author delph
  13.  */

  14. public class BeamBlock {
  15.    
  16.     private final Beam beam;
  17.    
  18.    
  19.     /**
  20.      * @param beam the beam to create
  21.      */
  22.     public BeamBlock(Beam beam) {
  23.         this.beam = beam;
  24.     }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  85. }