MadxTwissVariable.java
- // @formatter:off
- /*******************************************************************************
- *
- * This file is part of JMad.
- *
- * Copyright (c) 2008-2011, CERN. All rights reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- ******************************************************************************/
- // @formatter:on
- package cern.accsoft.steering.jmad.domain.var.enums;
- import java.util.Set;
- import cern.accsoft.steering.jmad.domain.var.TwissVariable;
- import cern.accsoft.steering.jmad.domain.var.VariableUtil;
- import cern.accsoft.steering.jmad.util.MadxVarType;
- public enum MadxTwissVariable implements TwissVariable {
- // generic stuff
- NAME("name", MadxVarType.STRING), //
- KEYWORD("keyword", MadxVarType.STRING), //
- PARENT("parent", MadxVarType.STRING),
- // canonical variables
- X("x", "m"), PX("px", "rad"), Y("y", "m"), PY("py", "rad"), T("t"), PT("pt"), DELTAP("deltap"),
- // independent variable
- S("s", "m"), L("l", "m"),
- // normalized variables and other derived quantities
- XN("xn"), PXN("pxn"), WX("wx"), PHIX("phix"), YN("yn"), PYN("pyn"), WY("wy"), PHIY("phiy"), TN("tn"), PTN("ptn"), WT(
- "wt"), PHIT("phit"),
- // linear lattice functions
- BETX("betx", "m"), ALFX("alfx"), MUX("mux", "2pi"), DX("dx", "m"), DPX("dpx"), BETY("bety", "m"), ALFY("alfy"), MUY(
- "muy", "2pi"), DY("dy", "m"), DPY("dpy"),
- // additional for twiss table:
- GAMX("gamx"), GAMY("gamy"), SIGX("sigx"), SIGY("sigy"),
- // chromatic functions
- DMUX("dmux"), DDX("ddx"), DDPX("ddpx"), DMUY("dmuy"), DDY("ddy"), DDPY("ddpy"), DBX("dbx"), DBY("dby"),
- // k-values
- K0L("k0l"), // dipole
- K1L("k1l"), // quad
- K2L("k2l"), // sextupole
- K3L("k3l"), // ocupole
- K4L("k4l"), // decapole
- K5L("k5l"), // dodecapole
- // skew k-values
- K0SL("k0sl"), // dipole
- K1SL("k1sl"), // quad
- K2SL("k2sl"), // sextupole
- K3SL("k3sl"), // ocupole
- K4SL("k4sl"), // decapole
-
- ANGLE("angle"), //the angle = K0L
- HKICK("hkick"), VKICK("vkick"), // kickers...
- POLARITY("polarity"), // and the assigned polarity
- // 2x2 coupling matrix coefficients
- R11("r11"), R12("r12"), R21("r21"), R22("r22"),
- // if something wrong:
- UNKNOWN("jmad_unknown", MadxVarType.UNKNOWN);
- private String name;
- private String unit = null;
- private MadxVarType type;
- private MadxTwissVariable(String tag, MadxVarType type) {
- this.name = tag;
- this.type = type;
- }
- private MadxTwissVariable(String tag) {
- this(tag, MadxVarType.DOUBLE);
- }
- private MadxTwissVariable(String tag, String unit) {
- this(tag, MadxVarType.DOUBLE);
- this.unit = unit;
- }
- @Override
- public String getMadxName() {
- return name;
- }
- @Override
- public MadxVarType getVarType() {
- return type;
- }
- /**
- * Determine the correct Value of Variable for a given tag.
- *
- * @param madxName the tag for which to get the VarType - Value.
- * @return The VarType corresponding to the given tag.
- */
- public static final MadxTwissVariable fromMadxName(String madxName) {
- return VariableUtil.findFromMadxName(MadxTwissVariable.class, madxName, MadxTwissVariable.UNKNOWN);
- }
- /**
- * returns a set of variables of a given type.
- *
- * @param type which variables to retrieve
- * @return the variables.
- */
- public static final Set<MadxTwissVariable> allOfType(MadxVarType type) {
- return VariableUtil.findFromVarType(MadxTwissVariable.class, type);
- }
- @Override
- public boolean isApertureVariable() {
- return false;
- }
- @Override
- public String getUnit() {
- return this.unit;
- }
- @Override
- public String getName() {
- return getMadxName();
- }
- @Override
- public String toString() {
- return VariableUtil.toString(this);
- }
- @Override
- public Class<?> getValueClass() {
- return getVarType().getValueClass();
- }
- }