1 #ifndef CLASSIC_ElementBase_HH
2 #define CLASSIC_ElementBase_HH 1
140 virtual const std::string &
getName()
const;
143 virtual void setName(
const std::string &name);
245 virtual double getExit()
const;
294 virtual double getAttribute(
const std::string &aKey)
const;
298 virtual bool hasAttribute(
const std::string &aKey)
const;
304 virtual void setAttribute(
const std::string &aKey,
double val);
442 std::pair<ElementBase::ApertureType, std::vector<double> >
getAperture()
const;
452 void setActionRange(
const std::queue<std::pair<double, double> > &range);
568 {
return wake_m != NULL; }
720 std::string(
"ELEMEDGE for \"") +
getName() +
"\" not set");
728 #endif // CLASSIC_ElementBase_HH
virtual BoundaryGeometry * getBoundaryGeometry() const
return the attached boundary geometrt object if there is any
virtual ElementBase * removeAlignWrapper()
Remove align wrapper.
CoordinateSystemTrafo getMisalignment() const
virtual ParticleMatterInteractionHandler * getParticleMatterInteraction() const
virtual double getArcLength() const
Get arc length.
PETE_TUTree< FnAbs, typename T::PETE_Expr_t > abs(const PETE_Expr< T > &l)
double elementPosition_m
ELEMEDGE attribute.
virtual bool hasBoundaryGeometry() const
CoordinateSystemTrafo misalignment_m
Interface for basic beam line object.
virtual Euclid3D getTransform(double fromS, double toS) const =0
Get transform.
virtual void removeAttribute(const std::string &aKey)
Remove an existing attribute.
virtual Euclid3D getTransform(double fromS, double toS) const
Get transform.
void setActionRange(const std::queue< std::pair< double, double > > &range)
virtual double getOrigin() const
Get origin position.
BoundaryGeometry * bgeometry_m
virtual Euclid3D getEntrancePatch() const
Get patch.
virtual CoordinateSystemTrafo getEdgeToEnd() const
Map of std::string versus double value.
virtual BGeometryBase & getGeometry()=0
Get geometry.
virtual Euclid3D getExitPatch() const
Get patch.
virtual void setName(const std::string &name)
Set element name.
virtual ElementBase * removeWrappers()
Return the design element.
void setRotationAboutZ(double rotation)
Set rotation about z axis in bend frame.
virtual bool hasParticleMatterInteraction() const
virtual void setElementLength(double length)
Set design length.
virtual Channel * getChannel(const std::string &aKey, bool create=false)
Construct a read/write channel.
CoordinateSystemTrafo csTrafoGlobal2Local_m
ElemType getElType() const
returns element type as enumeration needed in the envelope tracker
virtual void setAttribute(const std::string &aKey, double val)
Set value of an attribute.
virtual const std::string & getName() const
Get element name.
virtual WakeFunction * getWake() const
return the attached wake object if there is any
virtual ElementBase * removeFieldWrapper()
Remove field wrapper.
double getElementPosition() const
virtual double getEntrance() const
Get entrance position.
ParticleMatterInteractionHandler * parmatint_m
virtual Euclid3D getEntranceFrame() const
Get transform.
virtual double getOrigin() const
Get origin position.
virtual void setElementLength(double length)
Set geometry length.
virtual ElementType getType() const =0
Get element type std::string.
virtual double getExit() const
Get exit position.
virtual void makeSharable()
Set sharable flag.
virtual double getElementLength() const =0
Get geometry length.
virtual ElementBase * makeWrappers()
Allow errors.
virtual bool hasWake() const
Abstract base class for accelerator geometry classes.
Abstract interface for read-only access to variable.
virtual void setBoundaryGeometry(BoundaryGeometry *geo)
virtual bool isInside(const Vector_t &r) const
virtual double getExit() const
Get exit position.
void setMisalignment(double x, double y, double s)
void setElType(ElemType elt)
set the element type as enumeration needed in the envelope tracker
virtual void accept(BeamlineVisitor &visitor) const =0
Apply visitor.
virtual double getElementLength() const
Get design length.
virtual Euclid3D getEntranceFrame() const
Get transform.
virtual Euclid3D getExitFrame() const
Get transform.
virtual ElementImage * getImage() const
Construct an image.
virtual Euclid3D getTotalTransform() const
Get transform.
void operator=(const ElementBase &)
Abstract base class for reference counted objects.
Displacement and rotation in space.
std::string getTypeString() const
void setCSTrafoGlobal2Local(const CoordinateSystemTrafo &ori)
Tps< T > pow(const Tps< T > &x, int y)
Integer power.
Vektor< double, 3 > Vector_t
virtual ElementBase * copyStructure()
Make a structural copy.
virtual double getAttribute(const std::string &aKey) const
Get attribute value.
virtual ElementBase * clone() const =0
Return clone.
virtual void setParticleMatterInteraction(ParticleMatterInteractionHandler *spys)
virtual double getArcLength() const =0
Get arc length.
void setCurrentSCoordinate(double s)
Abstract interface for read/write access to variable.
double getRotationAboutZ() const
bool isPositioned() const
virtual const ConstChannel * getConstChannel(const std::string &aKey) const
Construct a read-only channel.
virtual CoordinateSystemTrafo getEdgeToBegin() const
bool isElementPositionSet() const
virtual ElementBase * makeAlignWrapper()
Allow misalignment.
void setAperture(const ApertureType &type, const std::vector< double > &args)
virtual Euclid3D getExitPatch() const
Get patch.
bool isSharable() const
Test if the element can be shared.
std::pair< ApertureType, std::vector< double > > aperture_m
void setElementPosition(double elemedge)
Access to ELEMEDGE attribute.
std::queue< std::pair< double, double > > actionRange_m
virtual bool hasAttribute(const std::string &aKey) const
Test for existence of an attribute.
bool isInsideTransverse(const Vector_t &r, double f=1) const
virtual Euclid3D getTotalTransform() const
Get transform.
std::pair< ElementBase::ApertureType, std::vector< double > > getAperture() const
virtual Euclid3D getEntrancePatch() const
Get patch.
virtual ElementBase * makeFieldWrapper()
Allow field errors.
virtual void setWake(WakeFunction *wf)
attach a wake field to the element
virtual void getElementDimensions(double &begin, double &end) const
virtual Euclid3D getExitFrame() const
Get transform.
bool update(const AttributeSet &)
Update element.
virtual double getEntrance() const
Get entrance position.
CoordinateSystemTrafo getCSTrafoGlobal2Local() const