PatternOrClassMisalignmentConfiguration.java

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

package cern.accsoft.steering.jmad.domain.misalign;

/**
 * This class gives an access to multiple misalignment of the provided class/pattern with provided gauss distribution
 * for DX and DY ONLY!
 * 
 * @author agorzaws
 */
public class PatternOrClassMisalignmentConfiguration extends MisalignmentConfiguration {

    private final String classToMisalign;
    private final double gaussianDistribution;
    private final int seed;

    /**
     * Default constructor that provides 2.5sigma for gaussian distribution
     * 
     * @param pattern
     * @param classToMisalign
     * @param seed
     */
    public PatternOrClassMisalignmentConfiguration(String pattern, String classToMisalign, int seed) {
        super(pattern);
        this.classToMisalign = classToMisalign;
        this.gaussianDistribution = 2.5;
        this.seed = seed;
    }

    /**
     * @param pattern
     * @param classToMisalign
     * @param seed
     * @param gaussianDistribution
     */
    public PatternOrClassMisalignmentConfiguration(String pattern, String classToMisalign, int seed,
            double gaussianDistribution) {
        super(pattern);
        this.classToMisalign = classToMisalign;
        this.gaussianDistribution = gaussianDistribution;
        this.seed = seed;
    }

    public String getElementClass() {
        return classToMisalign;
    }

    public double getGaussianDistribution() {
        return gaussianDistribution;
    }

    public int getSeed() {
        return seed;
    }

    @Override
    public String toString() {
        return "[classToMisalign=" + classToMisalign + ", gaussianDistribution=" + gaussianDistribution + ", seed="
                + seed + ", getElementName()=" + getElementName() + "]";
    }

}