Package xal.model

Interface IComponent

All Known Subinterfaces:
IComposite, IElement
All Known Implementing Classes:
ChargeExchangeFoil, Collimator, ElectromagnetSeq, Element, ElementSeq, IdealDrift, IdealEDipole, IdealEQuad, IdealHorMagSteeringDipole, IdealMagDipoleFace, IdealMagDipoleFace, IdealMagDipoleFace2, IdealMagFringeQuad, IdealMagFringeQuadFace, IdealMagOctupole, IdealMagQuad, IdealMagSectorDipole, IdealMagSectorDipole, IdealMagSectorDipole2, IdealMagSextupole, IdealMagSkewQuad, IdealMagSkewQuad3, IdealMagSolenoid, IdealMagSteeringDipole, IdealMagWedgeDipole, IdealMagWedgeDipole, IdealMagWedgeDipole2, IdealPermMagQuad, IdealRfCavity, IdealRfCavityDrift, IdealRfGap, IdealRfGap, IdealRfGapUpgraded, IdealVerMagSteeringDipole, Lattice, LineModel, Marker, RfqDummyModel, RingModel, Sector, SpectrumMapRfGap, ThickDipole, ThickElectromagnet, ThickElectrostatic, ThickElement, ThickMagFieldMap, ThickMatrix, ThickRfFieldMap, ThinElectromagnet, ThinElement, ThinLens, ThinMagFieldMap, ThinMatrix, ThinRfFieldMap

public interface IComponent
Base interface for any structural modeling object. Interfaces derived from this base interface are assumed to model some aspect of the accelerator hardware.
Author:
Christopher K. Allen
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Propagates the Probe object through this component.
    void
    backPropagate(IProbe probe, double d)
    Position dependent tracking within an IElement
    Get the string identifier of the hardware node being modeled by this element.
    Get the string identifier of the composite element
    double
    Return the (center) position of this component within the global lattice structure to which it belongs.
    double
    Return the total length of the composite element.
    Returns the composite structure (if any) that owns this component.
    double
    Return the center position of this component within the immediate parent composite element.
    Get the string type identifier for the composite element
    void
    Initializes the components parameters from the given hardware node proxy.
    void
    Propagates the Probe object through this component.
    void
    propagate(IProbe probe, double d)
    Position dependent tracking within an IElement
    void
    setParent(IComposite cpsParent)
    Sets the parent structure containing this component.
  • Method Details

    • initializeFrom

      void initializeFrom(LatticeElement latticeElement)

      Initializes the components parameters from the given hardware node proxy.

      CKA NOTES

      · Since we are expected to do this by accessing the SMF hardware node associated with the proxy, we are now coupled with the SMF component of Open XAL. The objective has been to move away from this condition.

      · This system must be refactored to decouple the online model and SMF.

      Parameters:
      latticeElement - the SMF node to convert
    • getType

      String getType()
      Get the string type identifier for the composite element
      Returns:
      type identifier for this element
    • getId

      String getId()
      Get the string identifier of the composite element
      Returns:
      string identifier
    • getHardwareNodeId

      String getHardwareNodeId()
      Get the string identifier of the hardware node being modeled by this element.
      Returns:
      SMF hardware node this element maps to
    • getLength

      double getLength()
      Return the total length of the composite element.
      Returns:
      length of the element (in meters)
    • getPosition

      double getPosition()

      Return the center position of this component within the immediate parent composite element. If there is no parent then this method should return zero.

      This value is typically a "hardware property," especially if this element models a hardware node. That is, the value is specified in the description of the hardware node and, thus, carries through to the modeling element. The situation is different than the property getLatticePosition() where the position is completely dependent upon where the modeling element lies within the overall lattice structure.

      Returns:
      center position of this element within the immediate parent container (meters)
      Since:
      Dec 3, 2015 by Christopher K. Allen
    • getLatticePosition

      double getLatticePosition()

      Return the (center) position of this component within the global lattice structure to which it belongs. Note the difference between this parameter and that returned by IComponentgetLength() which returns the position with respect to the direct parent.

      The returned value is not usually a design parameter, in particular if composites are pasted together or otherwise form a larger tree structure. It should be computed according to the current structure of the global composite structure. Thus, moving this element in the lattice should change this value.

      Returns:
      the center position of this component within the entire lattice containing this element (not just the parent)
      Since:
      Dec 3, 2015, Christopher K. Allen
    • getParent

      IComposite getParent()
      Returns the composite structure (if any) that owns this component.
      Returns:
      higher level composite structure built from this component
      Since:
      Jan 22, 2015 by Christopher K. Allen
    • setParent

      void setParent(IComposite cpsParent)
      Sets the parent structure containing this component. The parent is assumed to be a composite structure built from component elements.
      Parameters:
      cpsParent - the composite structure built from this component
      Since:
      Jan 22, 2015 by Christopher K. Allen
    • propagate

      void propagate(IProbe probe) throws ModelException
      Propagates the Probe object through this component.
      Parameters:
      probe - probe to be propagate - its state is advanced
      Throws:
      ModelException - error advancing the probe state
    • propagate

      void propagate(IProbe probe, double d) throws ModelException

      Position dependent tracking within an IElement

      Throws:
      ModelException
    • backPropagate

      void backPropagate(IProbe probe) throws ModelException

      Propagates the Probe object through this component.

      NOTES: CKA
      · Support for backward propagation February, 2009.

      Parameters:
      probe - probe to be propagate - its state is advanced
      Throws:
      ModelException - error advancing the probe state
    • backPropagate

      void backPropagate(IProbe probe, double d) throws ModelException

      Position dependent tracking within an IElement

      NOTES: CKA
      · Support for backward propagation February, 2009.

      Parameters:
      probe - probe to be propagate - its state is advanced
      d - position within element
      Throws:
      ModelException - error advancing the probe state
      Since:
      Feb 27, 2009