|
OPALX (Object Oriented Parallel Accelerator Library for Exascal) master (dc2a29eed580)
OPALX
|
#include <LaserRep.h>


Public Member Functions | |
| LaserRep (const std::string &name) | |
| LaserRep () | |
| LaserRep (const LaserRep &) | |
| ~LaserRep () override | |
| ElementBase * | clone () const override |
| Return clone. | |
| Channel * | getChannel (const std::string &aKey, bool create=false) override |
| Construct a read/write channel. | |
| NullField & | getField () override |
| Return field. | |
| const NullField & | getField () const override |
| Return field. | |
| StraightGeometry & | getGeometry () override |
| Get geometry. | |
| const StraightGeometry & | getGeometry () const override |
| Get geometry. | |
| void | accept (BeamlineVisitor &) const override |
| Accept a beamline visitor through the laser-specific interface. | |
| void | initialise (PartBunch_t *bunch, double &startField, double &endField) override |
| Initialize the element for a tracking pass. | |
| void | finalise () override |
| Finalize the element after a tracking pass. | |
| bool | bends () const override |
| Return false because the element has straight reference geometry. | |
| void | getFieldExtend (double &zBegin, double &zEnd) const override |
| Get the longitudinal element extent in the current lattice traversal. | |
| ElementType | getType () const override |
| Return the OPALX element type identifier. | |
| int | getRequiredNumberOfTimeSteps () const override |
| Return the minimum number of time steps required by this passive element. | |
| void | setWavelength (double wavelength) |
| Set the laser wavelength in m. | |
| double | getWavelength () const |
| Get the laser wavelength in m. | |
| void | setPulseEnergy (double pulseEnergy) |
| Set the total pulse energy in J. | |
| double | getPulseEnergy () const |
| Get the total pulse energy in J. | |
| void | setPulseLength (double pulseLength) |
| Set the pulse duration in s. | |
| double | getPulseLength () const |
| Get the pulse duration in s. | |
| void | setWaistX (double waistX) |
| Set the horizontal waist in m. | |
| double | getWaistX () const |
| Get the horizontal waist in m. | |
| void | setWaistY (double waistY) |
| Set the vertical waist in m. | |
| double | getWaistY () const |
| Get the vertical waist in m. | |
| void | setDirection (const Vector_t< double, 3 > &direction) |
| Set the laboratory-frame laser propagation direction. | |
| const Vector_t< double, 3 > & | getDirection () const |
| Get the laboratory-frame laser propagation direction. | |
| void | setStokes (const Vector_t< double, 3 > &stokes) |
| Set the normalized Stokes polarization vector. | |
| const Vector_t< double, 3 > & | getStokes () const |
| Get the normalized Stokes polarization vector. | |
| double | getPhotonEnergyGeV () const |
| Convert the stored laser wavelength to a single-photon energy. | |
| double | getLinearComptonInvariantX (double electronTotalEnergyGeV, const Vector_t< double, 3 > &beamDirection) const |
| Compute the linear Compton invariant x for a given beam direction. | |
| double | getLinearComptonForwardPhotonEnergyGeV (double electronTotalEnergyGeV, const Vector_t< double, 3 > &beamDirection) const |
| Compute the forward scattered photon energy for linear Compton scattering. | |
| EVector | Efield (const Point3D &P) const |
| Return the field in a point. | |
| EVector | Efield (const Point3D &P, double t) const |
| Return the field in a point. | |
| BVector | Bfield (const Point3D &P) const |
| Return the field in a point. | |
| BVector | Bfield (const Point3D &P, double t) const |
| Return the field in a point. | |
| EBVectors | EBfield (const Point3D &P) const |
| Return the field in a point. | |
| EBVectors | EBfield (const Point3D &P, double t) const |
| Return the field in a point. | |
| virtual bool | apply (const std::shared_ptr< ParticleContainer_t > &pc) |
| Apply to all particles. Kernel launch moved inside the function. | |
| virtual bool | apply (const size_t &i, const double &t, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B) |
| Apply to particle i. | |
| virtual bool | apply (const Vector_t< double, 3 > &R, const Vector_t< double, 3 > &P, const double &t, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B) |
| Apply to particle with position R and momentum P. | |
| virtual bool | applyToReferenceParticle (const Vector_t< double, 3 > &R, const Vector_t< double, 3 > &P, const double &t, Vector_t< double, 3 > &E, Vector_t< double, 3 > &B) |
| Apply to reference particle with position R and momemtum P. | |
| virtual bool | getPotential (const Vector_t< double, 3 > &, const double &, Vector_t< double, 3 > &, double &) |
| Calculate the four-potential at some position relative to the component. | |
| virtual double | getDesignEnergy () const |
| virtual void | setDesignEnergy (const double &energy, bool changeable=true) |
| virtual void | goOnline (const double &kineticEnergy) |
| virtual void | goOffline () |
| virtual bool | Online () |
| virtual const ElementBase & | getDesign () const |
| Return design element. | |
| virtual void | trackBunch (PartBunch_t &bunch, const PartData &, bool revBeam, bool revTrack) const |
| Track a borrowed particle bunch through a non-standard component. | |
| virtual void | trackMap (FVps< double, 6 > &map, const PartData &, bool revBeam, bool revTrack) const |
| Track a map. | |
| void | setExitFaceSlope (const double &) |
| virtual const std::string & | getName () const |
| Get element name. | |
| virtual void | setName (const std::string &name) |
| Set element name. | |
| std::string | getTypeString () const |
| virtual double | getArcLength () const |
| Get arc length. | |
| virtual double | getElementLength () const |
| Get design length. | |
| virtual void | setElementLength (double length) |
| Set design length. | |
| virtual void | getElementDimensions (double &begin, double &end) const |
| Return the nominal body extent of the element. | |
| virtual double | getOrigin () const |
| Get origin position. | |
| virtual double | getEntrance () const |
| Get entrance position. | |
| virtual double | getExit () const |
| Get exit position. | |
| virtual Euclid3D | getTransform (double fromS, double toS) const |
| Get transform. | |
| virtual Euclid3D | getTransform (double s) const |
| Get transform. | |
| virtual Euclid3D | getTotalTransform () const |
| Get transform. | |
| virtual Euclid3D | getEntranceFrame () const |
| Get transform. | |
| virtual Euclid3D | getExitFrame () const |
| Get transform. | |
| virtual Euclid3D | getEntrancePatch () const |
| Get patch. | |
| virtual Euclid3D | getExitPatch () const |
| Get patch. | |
| virtual double | getAttribute (const std::string &aKey) const |
| Get attribute value. | |
| virtual bool | hasAttribute (const std::string &aKey) const |
| Test for existence of an attribute. | |
| virtual void | removeAttribute (const std::string &aKey) |
| Remove an existing attribute. | |
| virtual void | setAttribute (const std::string &aKey, double val) |
| Set value of an attribute. | |
| virtual const ConstChannel * | getConstChannel (const std::string &aKey) const |
| Construct a read-only channel. | |
| virtual ElementBase * | copyStructure () |
| Make a structural copy. | |
| bool | isSharable () const |
| Test if the element can be shared. | |
| virtual void | makeSharable () |
| Set sharable flag. | |
| bool | update (const AttributeSet &) |
| Update element. | |
| virtual void | setBoundaryGeometry (BoundaryGeometry *geo) |
| virtual BoundaryGeometry * | getBoundaryGeometry () const |
| return the attached boundary geometrt object if there is any | |
| virtual bool | hasBoundaryGeometry () const |
| virtual void | setWake (WakeFunction *wf) |
| attach a wake field to the element | |
| virtual WakeFunction * | getWake () const |
| return the attached wake object if there is any | |
| virtual bool | hasWake () const |
| virtual void | setParticleMatterInteraction (ParticleMatterInteractionHandler *spys) |
| virtual ParticleMatterInteractionHandler * | getParticleMatterInteraction () const |
| virtual bool | hasParticleMatterInteraction () const |
| void | setCSTrafoGlobal2Local (const CoordinateSystemTrafo &ori) |
| CoordinateSystemTrafo | getCSTrafoGlobal2Local () const |
| void | releasePosition () |
| void | fixPosition () |
| bool | isPositioned () const |
| virtual CoordinateSystemTrafo | getEdgeToBegin () const |
| virtual CoordinateSystemTrafo | getEdgeToEnd () const |
| virtual Port | getEntryPort () const |
| Return the entrance port of the canonical local chart. | |
| virtual Port | getBodyPort () const |
| Return the body port of the canonical local chart. | |
| virtual Port | getExitPort () const |
| Return the exit port of the canonical local chart. | |
| PlacementPose | getPlacementPose () const |
| Return the nominal rigid placement transform of the element. | |
| void | setPlacementPose (const PlacementPose &pose) |
| Set the nominal rigid placement transform of the element. | |
| Misalignment | getPlacementMisalignment () const |
| Return the local nominal-to-actual correction stored for the element. | |
| ElementGeometry | getPlacementGeometry () const |
| Return the bridge geometry ports assembled from legacy edge state. | |
| SupportPlacement | getPlacementSupport () const |
| Return the support-frame bridge object. The default is the body frame. | |
| PlacedElement | getPlacedElement () const |
| Return a placed-element view assembled from the current bridge objects. | |
| void | setAperture (const ApertureType &type, const std::vector< double > &args) |
| std::pair< ApertureType, std::vector< double > > | getAperture () const |
| virtual bool | isInside (const Vector_t< double, 3 > &r) const |
| void | setMisalignment (const CoordinateSystemTrafo &cst) |
| void | getMisalignment (double &x, double &y, double &s) const |
| CoordinateSystemTrafo | getMisalignment () const |
| void | setActionRange (const std::queue< std::pair< double, double > > &range) |
| void | setCurrentSCoordinate (double s) |
| void | setRotationAboutZ (double rotation) |
| Set rotation about z axis in bend frame. | |
| double | getRotationAboutZ () const |
| virtual BoundingBox | getBoundingBoxInLabCoords () const |
| void | setOutputFN (std::string fn) |
| Set output filename. | |
| std::string | getOutputFN () const |
| Get output filename. | |
| void | setFlagDeleteOnTransverseExit (bool=true) |
| bool | getFlagDeleteOnTransverseExit () const |
| void | setElementPosition (double elemedge) |
| Access to ELEMEDGE attribute. | |
| double | getElementPosition () const |
| bool | isElementPositionSet () const |
Static Public Member Functions | |
| static std::string | getTypeString (ElementType type) |
Protected Member Functions | |
| bool | isInsideTransverse (const Vector_t< double, 3 > &r) const |
Protected Attributes | |
| double | exit_face_slope_m |
| PartBunch_t * | RefPartBunch_m |
| bool | online_m |
| bool | shareFlag |
| CoordinateSystemTrafo | csTrafoGlobal2Local_m |
| CoordinateSystemTrafo | misalignment_m |
| std::pair< ApertureType, std::vector< double > > | aperture_m |
| double | elementEdge_m |
| double | rotationZAxis_m |
Static Protected Attributes | |
| static const std::vector< double > | defaultAperture_m = std::vector<double>({1e6, 1e6, 1.0}) |
Private Attributes | |
| NullField | field_m |
| StraightGeometry | geometry_m |
| double | startField_m |
| double | wavelength_m |
| double | pulseEnergy_m |
| double | pulseLength_m |
| double | waistX_m |
| double | waistY_m |
| Vector_t< double, 3 > | direction_m |
| Vector_t< double, 3 > | stokes_m |
| std::string | elementID |
| AttributeSet | userAttribs |
| WakeFunction * | wake_m |
| BoundaryGeometry * | bgeometry_m |
| ParticleMatterInteractionHandler * | parmatint_m |
| bool | positionIsFixed |
| std::queue< std::pair< double, double > > | actionRange_m |
| std::string | outputfn_m |
| bool | deleteOnTransverseExit_m = true |
| double | elementPosition_m |
| ELEMEDGE attribute. | |
| bool | elemedgeSet_m |
Static Private Attributes | |
| static const std::map< ElementType, std::string > | elementTypeToString_s |
Definition at line 8 of file LaserRep.h.
|
explicit |
Definition at line 21 of file LaserRep.cpp.
| LaserRep::LaserRep | ( | ) |
Definition at line 17 of file LaserRep.cpp.
Referenced by clone().
| LaserRep::LaserRep | ( | const LaserRep & | right | ) |
Definition at line 19 of file LaserRep.cpp.
|
override |
Definition at line 23 of file LaserRep.cpp.
|
overridevirtualinherited |
Accept a beamline visitor through the laser-specific interface.
Implements ElementBase.
Definition at line 32 of file Laser.cpp.
References BeamlineVisitor::visitLaser().
Referenced by TEST().

|
virtualinherited |
Apply to particle i.
| i | Particle index |
| t | Time |
| E | Electric Field |
| B | Magnetic Field |
Reimplemented in Corrector, VerticalFFAMagnet, BendBase, ConstantEFieldCavity, Monitor, Multipole, MultipoleT, PluginElement, RFCavity, ScalingFFAMagnet, Solenoid, TravelingWave, VariableRFCavity, and Ring.
Definition at line 69 of file Component.cpp.
References gmsg.
|
virtualinherited |
Apply to all particles. Kernel launch moved inside the function.
Apply functions apply the components electromagnetic field to the particles. They are called inside ParalleTracker::computeExternalFields()
Reimplemented in VerticalFFAMagnet, BendBase, ConstantEFieldCavity, Monitor, Multipole, MultipoleT, PluginElement, RFCavity, Ring, ScalingFFAMagnet, Solenoid, TravelingWave, and VariableRFCavity.
Definition at line 57 of file Component.cpp.
Referenced by RingSection::getFieldValue().
|
virtualinherited |
Apply to particle with position R and momentum P.
| R | Position |
| P | Momentum |
| t | Time |
| E | Electric Field |
| B | Magnetic Field |
Reimplemented in Corrector, VerticalFFAMagnet, BendBase, ConstantEFieldCavity, Monitor, Multipole, MultipoleT, PluginElement, RFCavity, Ring, ScalingFFAMagnet, Solenoid, TravelingWave, and VariableRFCavity.
Definition at line 94 of file Component.cpp.
References ElementBase::getElementLength(), and ElementBase::isInsideTransverse().

|
virtualinherited |
Apply to reference particle with position R and momemtum P.
| R | Position |
| P | Momentum |
| t | Time |
| E | Electric Field |
| B | Magnetic Field |
Reimplemented in BendBase, ConstantEFieldCavity, Monitor, Multipole, PluginElement, RFCavity, Solenoid, TravelingWave, and VariableRFCavity.
Definition at line 114 of file Component.cpp.
References ElementBase::getElementLength(), and ElementBase::isInsideTransverse().

|
overridevirtualinherited |
Return the field in a point.
Definition at line 234 of file Component.h.
References EMField::Bfield(), and Component::getField().

Return the field in a point.
Definition at line 240 of file Component.h.
References EMField::Bfield(), and Component::getField().

|
overridevirtual |
Return clone.
Implements ElementBase.
Definition at line 25 of file LaserRep.cpp.
References LaserRep().

|
virtualinherited |
Make a structural copy.
Reimplemented in TBeamline< T >.
Definition at line 194 of file ElementBase.cpp.
References ElementBase::clone(), and ElementBase::isSharable().
Referenced by Sequence::copy(), Line::parse(), SequenceParser::parseMember(), and Replacer::visitFlaggedElmPtr().

Return the field in a point.
Definition at line 244 of file Component.h.
References EMField::EBfield(), and Component::getField().

Return the field in a point.
Definition at line 246 of file Component.h.
References EMField::EBfield(), and Component::getField().

Return the field in a point.
Definition at line 232 of file Component.h.
References EMField::Efield(), and Component::getField().

Return the field in a point.
Definition at line 236 of file Component.h.
References EMField::Efield(), and Component::getField().

|
overridevirtualinherited |
|
inlineinherited |
Definition at line 597 of file ElementBase.h.
References ElementBase::positionIsFixed.
Referenced by OpalElement::update(), OpalRBend::update(), and OpalSBend::update().
|
inlineinherited |
Definition at line 582 of file ElementBase.h.
References ElementBase::aperture_m.
Referenced by MeshGenerator::add(), Solenoid::getSupportEnvelope(), and MeshGenerator::getTransverseSupport().
|
inlinevirtualinherited |
Get arc length.
Reimplemented in MarkerRep, and TBeamline< T >.
Definition at line 479 of file ElementBase.h.
References BGeometryBase::getArcLength(), and ElementBase::getGeometry().
Referenced by BeamlineGeometry::getArcLength(), and TBeamline< T >::getTransform().

|
virtualinherited |
Get attribute value.
Definition at line 147 of file ElementBase.cpp.
References ElementBase::getConstChannel().

|
inlinevirtualinherited |
Return the body port of the canonical local chart.
The body port \(p_{i,\mathrm{body}}\) is the identity port of the element's canonical local chart. Its rigid transform is therefore the identity element of \(SE(3)\) in the first redesign stage.
Definition at line 547 of file ElementBase.h.
Referenced by ElementBase::getPlacementGeometry(), and TEST_F().
|
inlinevirtualinherited |
return the attached boundary geometrt object if there is any
Definition at line 513 of file ElementBase.h.
References ElementBase::bgeometry_m.
|
virtualinherited |
Definition at line 264 of file ElementBase.cpp.
References ElementBase::aperture_m, ElementBase::csTrafoGlobal2Local_m, BoundingBox::getBoundingBox(), ElementBase::getEdgeToBegin(), ElementBase::getEdgeToEnd(), and CoordinateSystemTrafo::transformFrom().

|
overridevirtual |
Construct a read/write channel.
Reimplemented from ElementBase.
Definition at line 27 of file LaserRep.cpp.
References ElementBase::getChannel().

|
virtualinherited |
Construct a read-only channel.
Definition at line 186 of file ElementBase.cpp.
References ElementBase::getChannel().
Referenced by ElementBase::getAttribute(), and ElementBase::hasAttribute().

|
inlineinherited |
Definition at line 529 of file ElementBase.h.
References ElementBase::csTrafoGlobal2Local_m.
Referenced by Monitor::driftToCorrectPositionAndSave(), ElementBase::getPlacementPose(), OpalRBend::update(), and OpalSBend::update().
|
virtualinherited |
Return design element.
Definition at line 33 of file Component.cpp.
|
inlinevirtualinherited |
Reimplemented in BendBase, and RFCavity.
Definition at line 254 of file Component.h.
|
inherited |
Get the laboratory-frame laser propagation direction.
Definition at line 73 of file Laser.cpp.
References Laser::direction_m.
|
inlinevirtualinherited |
Reimplemented in BendBase, RFCavity, Solenoid, and TravelingWave.
Definition at line 533 of file ElementBase.h.
Referenced by ElementBase::getBoundingBoxInLabCoords(), ElementBase::getEntryPort(), and ElementBase::isInsideTransverse().
|
inlinevirtualinherited |
Reimplemented in BendBase, RFCavity, Solenoid, and TravelingWave.
Definition at line 538 of file ElementBase.h.
References ElementBase::getElementLength().
Referenced by ElementBase::getBoundingBoxInLabCoords(), and ElementBase::getExitPort().

|
inlinevirtualinherited |
Return the nominal body extent of the element.
The first placement redesign stage distinguishes between the nominal body extent and the field-support extent. The body extent is the canonical longitudinal interval of the placed hardware, \([z_\mathrm{body}^{\mathrm{begin}}, z_\mathrm{body}^{\mathrm{end}}]\), and therefore drives ports, placement, and visualization. By default it coincides with the geometry length \([0, L]\) in the local chart.
Reimplemented in RFCavity, TravelingWave, and Solenoid.
Definition at line 178 of file ElementBase.h.
References ElementBase::getElementLength().
Referenced by MeshGenerator::add().

|
inlinevirtualinherited |
Get design length.
Reimplemented in MarkerRep, TBeamline< T >, and RFCavity.
Definition at line 481 of file ElementBase.h.
References BGeometryBase::getElementLength(), and ElementBase::getGeometry().
Referenced by MeshGenerator::add(), ConstantEFieldCavity::apply(), Multipole::apply(), VariableRFCavity::apply(), BendBase::apply(), ConstantEFieldCavity::apply(), Multipole::apply(), VariableRFCavity::apply(), Component::apply(), Corrector::apply(), ConstantEFieldCavity::apply(), Multipole::apply(), VariableRFCavity::apply(), Component::applyToReferenceParticle(), ConstantEFieldCavity::applyToReferenceParticle(), Multipole::applyToReferenceParticle(), ElementBase::getEdgeToEnd(), Solenoid::getEdgeToEnd(), ElementBase::getElementDimensions(), Solenoid::getElementDimensions(), BeamlineGeometry::getElementLength(), RFCavity::getElementLength(), Corrector::getFieldExtend(), BendBase::getFieldExtend(), ConstantEFieldCavity::getFieldExtend(), Drift::getFieldExtend(), Laser::getFieldExtend(), Multipole::getFieldExtend(), MultipoleT::getFieldExtend(), VariableRFCavity::getFieldExtend(), BendBase::getLength(), Corrector::initialise(), BendBase::initialise(), ConstantEFieldCavity::initialise(), Drift::initialise(), Laser::initialise(), Multipole::initialise(), ElementBase::isInside(), BendBase::isInside(), Monitor::isInside(), Multipole::isInside(), ElementBase::isInsideTransverse(), and TEST_F().

|
inlineinherited |
Definition at line 618 of file ElementBase.h.
References ElementBase::elemedgeSet_m, ElementBase::elementPosition_m, and ElementBase::getName().

|
inlinevirtualinherited |
Get entrance position.
Reimplemented in TBeamline< T >.
Definition at line 487 of file ElementBase.h.
References BGeometryBase::getEntrance(), and ElementBase::getGeometry().
Referenced by BendBase::getDesignPath(), and BeamlineGeometry::getEntrance().

|
inlinevirtualinherited |
Get transform.
Reimplemented in TBeamline< T >.
Definition at line 499 of file ElementBase.h.
References BGeometryBase::getEntranceFrame(), and ElementBase::getGeometry().
Referenced by BendBase::getChordLength(), BendBase::getEdgeToBegin(), and BeamlineGeometry::getEntranceFrame().

|
inlinevirtualinherited |
Get patch.
Definition at line 503 of file ElementBase.h.
References BGeometryBase::getEntrancePatch(), and ElementBase::getGeometry().

|
inlinevirtualinherited |
Return the entrance port of the canonical local chart.
In the placement-note language, this is the marked entrance port \(p_{i,\mathrm{entry}}\) of element \(i\). For straight elements in the bridge stage, the body-to-entry transform is taken from the legacy getEdgeToBegin() result.
Definition at line 545 of file ElementBase.h.
References ElementBase::getEdgeToBegin().
Referenced by ElementBase::getPlacementGeometry(), and TEST_F().

|
inlinevirtualinherited |
Get exit position.
Reimplemented in TBeamline< T >.
Definition at line 489 of file ElementBase.h.
References BGeometryBase::getExit(), and ElementBase::getGeometry().
Referenced by BendBase::getDesignPath(), and BeamlineGeometry::getExit().

|
inlinevirtualinherited |
Get transform.
Reimplemented in TBeamline< T >.
Definition at line 501 of file ElementBase.h.
References BGeometryBase::getExitFrame(), and ElementBase::getGeometry().
Referenced by BendBase::getChordLength(), BendBase::getEdgeToEnd(), and BeamlineGeometry::getExitFrame().

|
inlinevirtualinherited |
Get patch.
Definition at line 505 of file ElementBase.h.
References BGeometryBase::getExitPatch(), and ElementBase::getGeometry().

|
inlinevirtualinherited |
Return the exit port of the canonical local chart.
In the placement-note language, this is the marked exit port \(p_{i,\mathrm{exit}}\). For straight elements in the bridge stage, the body-to-exit transform is taken from the legacy getEdgeToEnd() result.
Definition at line 549 of file ElementBase.h.
References ElementBase::getEdgeToEnd().
Referenced by ElementBase::getPlacementGeometry(), and TEST_F().

|
overridevirtual |
|
overridevirtual |
|
overridevirtualinherited |
Get the longitudinal element extent in the current lattice traversal.
Implements Component.
Definition at line 44 of file Laser.cpp.
References ElementBase::getElementLength(), and Laser::startField_m.

|
inlineinherited |
Definition at line 634 of file ElementBase.h.
References ElementBase::deleteOnTransverseExit_m.
Referenced by BendBase::apply(), ConstantEFieldCavity::apply(), Multipole::apply(), Corrector::apply(), BendBase::apply(), ConstantEFieldCavity::apply(), Multipole::apply(), RFCavity::apply(), Solenoid::apply(), and TravelingWave::apply().
|
overridevirtual |
Get geometry.
Implements ElementBase.
Definition at line 43 of file LaserRep.cpp.
References geometry_m.
|
overridevirtual |
Get geometry.
Implements ElementBase.
Definition at line 41 of file LaserRep.cpp.
References geometry_m.
|
inherited |
Compute the forward scattered photon energy for linear Compton scattering.
The helper uses the same CAIN-inspired sequence as the first OPALX benchmark: boost the laser photon into the electron rest frame, apply the Compton recoil, and boost the forward photon back to the laboratory frame.
| electronTotalEnergyGeV | Electron total energy in GeV. |
| beamDirection | Laboratory-frame unit direction of the incoming electron beam. |
| OpalException | If the electron energy is below rest energy or if either direction vector is zero. |
Definition at line 87 of file Laser.cpp.
References Laser::direction_m, Laser::getPhotonEnergyGeV(), and Physics::LinearCompton::labForwardPhotonEnergyGeV().

|
inherited |
Compute the linear Compton invariant x for a given beam direction.
This follows the CAIN linear-Compton rest-frame mapping \(\omega_1 = \gamma \omega_L (1 - \beta \cos \alpha)\) and returns \(x = 2 \omega_1 / m_e\).
| electronTotalEnergyGeV | Electron total energy in GeV. |
| beamDirection | Laboratory-frame unit direction of the incoming electron beam. |
| OpalException | If the electron energy is below rest energy or if either direction vector is zero. |
Definition at line 81 of file Laser.cpp.
References Laser::direction_m, Laser::getPhotonEnergyGeV(), and Physics::LinearCompton::invariantX().

|
inlineinherited |
Definition at line 593 of file ElementBase.h.
References ElementBase::misalignment_m.
Referenced by ElementBase::getPlacementMisalignment().
|
inherited |
|
virtualinherited |
Get element name.
Definition at line 132 of file ElementBase.cpp.
References ElementBase::elementID.
Referenced by Ring::appendElement(), Probe::doGoOffline(), PlaceRep::enter(), ElementBase::getElementPosition(), RFCavity::getMomentaKick(), ElementBase::getOutputFN(), CavityAutophaser::getPhaseAtMaxEnergy(), Selector::handleElement(), Ring::initialise(), RFCavity::initialise(), Solenoid::initialise(), PlaceRep::leave(), VariableRFCavity::operator=(), Sequence::print(), TEST_F(), Component::trackBunch(), Component::trackMap(), OpalRBend::update(), OpalSBend::update(), Sequence::updateList(), ParallelTracker::updateRFElement(), and Replacer::visitFlaggedElmPtr().
|
inlinevirtualinherited |
Get origin position.
Reimplemented in TBeamline< T >.
Definition at line 485 of file ElementBase.h.
References ElementBase::getGeometry(), and BGeometryBase::getOrigin().
Referenced by BeamlineGeometry::getOrigin().

|
inherited |
Get output filename.
Definition at line 138 of file ElementBase.cpp.
References ElementBase::getName(), and ElementBase::outputfn_m.
Referenced by Probe::doInitialise(), PluginElement::initialise(), and Monitor::initialise().

|
inlinevirtualinherited |
Definition at line 517 of file ElementBase.h.
References ElementBase::parmatint_m.
|
inherited |
Convert the stored laser wavelength to a single-photon energy.
| OpalException | If the stored wavelength is non-positive. |
Definition at line 77 of file Laser.cpp.
References Physics::LinearCompton::photonEnergyFromWavelengthGeV(), and Laser::wavelength_m.
Referenced by Laser::getLinearComptonForwardPhotonEnergyGeV(), and Laser::getLinearComptonInvariantX().

|
inlineinherited |
Return a placed-element view assembled from the current bridge objects.
Definition at line 571 of file ElementBase.h.
References ElementBase::getPlacementGeometry(), ElementBase::getPlacementMisalignment(), ElementBase::getPlacementPose(), and ElementBase::getPlacementSupport().
Referenced by MeshGenerator::add(), and TEST_F().

|
inlineinherited |
Return the bridge geometry ports assembled from legacy edge state.
The first redesign stage defines a minimal explicit port contract with three named body-relative ports: \(p_{i,\mathrm{entry}}\), \(p_{i,\mathrm{body}}\), \(p_{i,\mathrm{exit}}\). The default bridge preserves current OPALX behavior by deriving those ports from getEntryPort(), getBodyPort(), and getExitPort(), whose straight-element implementations are backed by the legacy getEdgeToBegin() and getEdgeToEnd() methods.
Definition at line 563 of file ElementBase.h.
References ElementBase::getBodyPort(), ElementBase::getEntryPort(), and ElementBase::getExitPort().
Referenced by ElementBase::getPlacedElement().

|
inlineinherited |
Return the local nominal-to-actual correction stored for the element.
Definition at line 559 of file ElementBase.h.
References ElementBase::getMisalignment().
Referenced by ElementBase::getPlacedElement().

|
inlineinherited |
Return the nominal rigid placement transform of the element.
This is the bridge from the legacy stored CoordinateSystemTrafo to the new placement vocabulary. It preserves current nominal placement semantics and does not apply misalignment.
Definition at line 551 of file ElementBase.h.
References ElementBase::getCSTrafoGlobal2Local().
Referenced by ElementBase::getPlacedElement().

|
inlineinherited |
Return the support-frame bridge object. The default is the body frame.
Definition at line 567 of file ElementBase.h.
Referenced by ElementBase::getPlacedElement().
|
inlinevirtualinherited |
Calculate the four-potential at some position relative to the component.
| R | position in the local coordinate system of the component |
| t | time |
| A | filled with the calculated magnetic vector potential |
| phi | filled with the calculated electric potential Note that any existing values in A and phi may be overwritten by this method. |
Definition at line 155 of file Component.h.
|
inherited |
Get the total pulse energy in J.
Definition at line 57 of file Laser.cpp.
References Laser::pulseEnergy_m.
|
inherited |
Get the pulse duration in s.
Definition at line 61 of file Laser.cpp.
References Laser::pulseLength_m.
|
inlineoverridevirtualinherited |
Return the minimum number of time steps required by this passive element.
Reimplemented from ElementBase.
|
inlineinherited |
Definition at line 609 of file ElementBase.h.
References ElementBase::rotationZAxis_m.
Referenced by OpalBeamline::compileCompatibilityPlacement().
|
inherited |
Get the normalized Stokes polarization vector.
Definition at line 93 of file Laser.cpp.
References Laser::stokes_m.
|
inlinevirtualinherited |
Get transform.
Reimplemented in TBeamline< T >.
Definition at line 495 of file ElementBase.h.
References ElementBase::getGeometry(), and BGeometryBase::getTotalTransform().
Referenced by BeamlineGeometry::getTotalTransform().

|
inlinevirtualinherited |
Get transform.
Reimplemented in TBeamline< T >.
Definition at line 491 of file ElementBase.h.
References ElementBase::getGeometry(), and BGeometryBase::getTransform().
Referenced by BendBase::getDesignPath(), BeamlineGeometry::getTransform(), TBeamline< T >::getTransform(), and BeamlineGeometry::getTransform().

|
inlinevirtualinherited |
Get transform.
Reimplemented in TBeamline< T >.
Definition at line 497 of file ElementBase.h.
References ElementBase::getGeometry(), and BGeometryBase::getTransform().

|
overridevirtualinherited |
|
inlineinherited |
Definition at line 611 of file ElementBase.h.
References ElementBase::getType(), and ElementBase::getTypeString().
Referenced by ElementBase::getTypeString().

|
staticinherited |
Definition at line 192 of file ElementBase.cpp.
References ElementBase::elementTypeToString_s.
|
inherited |
|
inherited |
|
inlinevirtualinherited |
return the attached wake object if there is any
Definition at line 509 of file ElementBase.h.
References ElementBase::wake_m.
|
inherited |
Get the laser wavelength in m.
Definition at line 53 of file Laser.cpp.
References Laser::wavelength_m.
|
virtualinherited |
Reimplemented in PluginElement, Monitor, RFCavity, Solenoid, and TravelingWave.
Definition at line 45 of file Component.cpp.
References Component::online_m.
|
virtualinherited |
Reimplemented in Corrector, Monitor, RFCavity, Solenoid, and TravelingWave.
Definition at line 43 of file Component.cpp.
References Component::online_m.
Referenced by PluginElement::initialise().
|
virtualinherited |
Test for existence of an attribute.
Definition at line 159 of file ElementBase.cpp.
References ElementBase::getConstChannel().

|
inlinevirtualinherited |
Definition at line 515 of file ElementBase.h.
References ElementBase::bgeometry_m.
|
inlinevirtualinherited |
Definition at line 521 of file ElementBase.h.
References ElementBase::parmatint_m.
|
inlinevirtualinherited |
Definition at line 511 of file ElementBase.h.
References ElementBase::wake_m.
|
overridevirtualinherited |
Initialize the element for a tracking pass.
| bunch | Referenced bunch. |
| startField | Element entrance position in the current lattice traversal. |
| endField | Filled with the element exit position. |
Implements Component.
Definition at line 34 of file Laser.cpp.
References ElementBase::getElementLength(), Component::RefPartBunch_m, and Laser::startField_m.

|
inlineinherited |
Definition at line 626 of file ElementBase.h.
References ElementBase::elemedgeSet_m.
|
inlinevirtualinherited |
Reimplemented in BendBase, Monitor, Multipole, RFCavity, Solenoid, and TravelingWave.
Definition at line 586 of file ElementBase.h.
References ElementBase::getElementLength(), and ElementBase::isInsideTransverse().
Referenced by TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and TEST_F().

|
protectedinherited |
Definition at line 233 of file ElementBase.cpp.
References ElementBase::aperture_m, CONIC_ELLIPTICAL, CONIC_RECTANGULAR, ELLIPTICAL, ElementBase::getEdgeToBegin(), ElementBase::getElementLength(), RECTANGULAR, and CoordinateSystemTrafo::transformTo().
Referenced by BendBase::apply(), ConstantEFieldCavity::apply(), Multipole::apply(), Component::apply(), Corrector::apply(), BendBase::apply(), ConstantEFieldCavity::apply(), Multipole::apply(), Component::applyToReferenceParticle(), BendBase::applyToReferenceParticle(), ConstantEFieldCavity::applyToReferenceParticle(), Multipole::applyToReferenceParticle(), ElementBase::isInside(), BendBase::isInside(), Monitor::isInside(), Multipole::isInside(), RFCavity::isInside(), Solenoid::isInside(), and TravelingWave::isInside().

|
inlineinherited |
Definition at line 599 of file ElementBase.h.
References ElementBase::positionIsFixed.
Referenced by OpalRBend::update(), and OpalSBend::update().
|
inlineinherited |
Test if the element can be shared.
Definition at line 507 of file ElementBase.h.
References ElementBase::shareFlag.
Referenced by ElementBase::copyStructure(), and Sequence::updateList().
|
virtualinherited |
Set sharable flag.
Reimplemented in TBeamline< T >.
Definition at line 202 of file ElementBase.cpp.
References ElementBase::shareFlag.
Referenced by OpalMarker::OpalMarker().
|
virtualinherited |
Definition at line 47 of file Component.cpp.
References Component::online_m.
|
inlineinherited |
Definition at line 595 of file ElementBase.h.
References ElementBase::positionIsFixed.
Referenced by OpalRBend::update(), and OpalSBend::update().
|
virtualinherited |
Remove an existing attribute.
Definition at line 170 of file ElementBase.cpp.
References AttributeSet::removeAttribute(), and ElementBase::userAttribs.

|
inlineinherited |
Definition at line 601 of file ElementBase.h.
References ElementBase::actionRange_m, and ElementBase::elementEdge_m.
|
inlineinherited |
Definition at line 577 of file ElementBase.h.
References ElementBase::aperture_m.
Referenced by Component::Component(), TEST_F(), TEST_F(), TEST_F(), OpalElement::update(), OpalRBend::update(), and OpalSBend::update().
|
virtualinherited |
Set value of an attribute.
Definition at line 172 of file ElementBase.cpp.
References ElementBase::getChannel(), and Channel::isSettable().
Referenced by ElementBase::update(), and OpalElement::updateUnknown().

|
virtualinherited |
attach a boundary geometry field to the element
Definition at line 216 of file ElementBase.cpp.
References ElementBase::bgeometry_m.
|
inlineinherited |
Definition at line 523 of file ElementBase.h.
References ElementBase::csTrafoGlobal2Local_m, and ElementBase::positionIsFixed.
Referenced by ElementBase::setPlacementPose(), TEST_F(), OpalElement::update(), OpalRBend::update(), and OpalSBend::update().
|
inherited |
Definition at line 224 of file ElementBase.cpp.
References ElementBase::actionRange_m, and ElementBase::elementEdge_m.
|
inlinevirtualinherited |
Reimplemented in Corrector, RFCavity, and BendBase.
Definition at line 252 of file Component.h.
|
inherited |
Set the laboratory-frame laser propagation direction.
Definition at line 71 of file Laser.cpp.
References Laser::direction_m.
|
inlinevirtualinherited |
Set design length.
Reimplemented in MultipoleT, and ConstantEFieldCavityRep.
Definition at line 483 of file ElementBase.h.
References ElementBase::getGeometry(), and BGeometryBase::setElementLength().
Referenced by MultipoleT::setElementLength(), SequenceMember::setLength(), BendBase::setLength(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), OpalCavity::update(), OpalMonitor::update(), OpalMultipole::update(), OpalProbe::update(), OpalQuadrupole::update(), OpalSolenoid::update(), and OpalTravelingWave::update().

|
inlineinherited |
Access to ELEMEDGE attribute.
Definition at line 613 of file ElementBase.h.
References ElementBase::elemedgeSet_m, and ElementBase::elementPosition_m.
Referenced by TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), TEST_F(), and OpalElement::update().
|
inlineinherited |
Definition at line 250 of file Component.h.
References Component::exit_face_slope_m.
|
inlineinherited |
Definition at line 630 of file ElementBase.h.
References ElementBase::deleteOnTransverseExit_m.
Referenced by OpalElement::update().
|
inlineinherited |
Definition at line 591 of file ElementBase.h.
References ElementBase::misalignment_m.
Referenced by TEST_F(), and OpalElement::update().
|
virtualinherited |
Set element name.
Definition at line 134 of file ElementBase.cpp.
References ElementBase::elementID.
Referenced by Sequence::insertDrifts(), and VariableRFCavity::operator=().
|
inherited |
Set output filename.
Definition at line 136 of file ElementBase.cpp.
References ElementBase::outputfn_m.
Referenced by OpalMonitor::update(), and OpalProbe::update().
|
virtualinherited |
Definition at line 220 of file ElementBase.cpp.
References ElementBase::parmatint_m.
|
inlineinherited |
Set the nominal rigid placement transform of the element.
This bridge setter preserves the existing storage model by delegating to setCSTrafoGlobal2Local().
Definition at line 555 of file ElementBase.h.
References PlacementPose::getParentToNominal(), and ElementBase::setCSTrafoGlobal2Local().

|
inherited |
Set the total pulse energy in J.
Definition at line 55 of file Laser.cpp.
References Laser::pulseEnergy_m.
|
inherited |
Set the pulse duration in s.
Definition at line 59 of file Laser.cpp.
References Laser::pulseLength_m.
|
inlineinherited |
Set rotation about z axis in bend frame.
Definition at line 607 of file ElementBase.h.
References ElementBase::rotationZAxis_m.
Referenced by OpalElement::update().
|
inherited |
Set the normalized Stokes polarization vector.
Definition at line 75 of file Laser.cpp.
References Laser::stokes_m.
|
inherited |
|
inherited |
|
virtualinherited |
attach a wake field to the element
Definition at line 212 of file ElementBase.cpp.
References ElementBase::wake_m.
|
inherited |
Set the laser wavelength in m.
Definition at line 51 of file Laser.cpp.
References Laser::wavelength_m.
|
virtualinherited |
Track a borrowed particle bunch through a non-standard component.
The default implementation throws a LogicalError.
| bunch | Particle bunch to track. The component does not take ownership. |
Definition at line 35 of file Component.cpp.
References ElementBase::getName().
Referenced by Tracker::visitComponent().

|
virtualinherited |
Track a map.
Definition at line 39 of file Component.cpp.
References ElementBase::getName().

|
inherited |
Update element.
Definition at line 204 of file ElementBase.cpp.
References AttributeSet::begin(), AttributeSet::end(), and ElementBase::setAttribute().
Referenced by Monitor::driftToCorrectPositionAndSave().

|
privateinherited |
Definition at line 469 of file ElementBase.h.
Referenced by ElementBase::setActionRange(), and ElementBase::setCurrentSCoordinate().
|
protectedinherited |
Definition at line 440 of file ElementBase.h.
Referenced by ElementBase::getAperture(), ElementBase::getBoundingBoxInLabCoords(), ElementBase::isInsideTransverse(), and ElementBase::setAperture().
|
privateinherited |
Definition at line 460 of file ElementBase.h.
Referenced by ElementBase::getBoundaryGeometry(), ElementBase::hasBoundaryGeometry(), and ElementBase::setBoundaryGeometry().
|
protectedinherited |
Definition at line 437 of file ElementBase.h.
Referenced by Monitor::applyToReferenceParticle(), ElementBase::getBoundingBoxInLabCoords(), ElementBase::getCSTrafoGlobal2Local(), and ElementBase::setCSTrafoGlobal2Local().
|
staticprotectedinherited |
Definition at line 221 of file Component.h.
Referenced by Component::Component().
|
privateinherited |
Definition at line 473 of file ElementBase.h.
Referenced by ElementBase::getFlagDeleteOnTransverseExit(), and ElementBase::setFlagDeleteOnTransverseExit().
|
privateinherited |
Definition at line 153 of file Laser.h.
Referenced by Laser::getDirection(), Laser::getLinearComptonForwardPhotonEnergyGeV(), Laser::getLinearComptonInvariantX(), and Laser::setDirection().
|
privateinherited |
Definition at line 467 of file ElementBase.h.
Referenced by ElementBase::getElementPosition(), ElementBase::isElementPositionSet(), and ElementBase::setElementPosition().
|
protectedinherited |
Definition at line 442 of file ElementBase.h.
Referenced by ElementBase::setActionRange(), and ElementBase::setCurrentSCoordinate().
|
privateinherited |
Definition at line 451 of file ElementBase.h.
Referenced by ElementBase::getName(), and ElementBase::setName().
|
privateinherited |
ELEMEDGE attribute.
Definition at line 466 of file ElementBase.h.
Referenced by ElementBase::getElementPosition(), and ElementBase::setElementPosition().
|
staticprivateinherited |
Definition at line 73 of file ElementBase.h.
Referenced by ElementBase::getTypeString().
|
protectedinherited |
Definition at line 222 of file Component.h.
Referenced by Component::setExitFaceSlope().
|
private |
Definition at line 25 of file LaserRep.h.
Referenced by getField(), and getField().
|
private |
Definition at line 26 of file LaserRep.h.
Referenced by getGeometry(), and getGeometry().
|
protectedinherited |
Definition at line 438 of file ElementBase.h.
Referenced by ElementBase::getMisalignment(), and ElementBase::setMisalignment().
|
protectedinherited |
Definition at line 226 of file Component.h.
Referenced by Monitor::apply(), Monitor::apply(), Monitor::applyToReferenceParticle(), Probe::doGoOffline(), PluginElement::finalise(), BendBase::finalise(), Multipole::finalise(), Ring::finalise(), Component::goOffline(), PluginElement::goOffline(), RFCavity::goOffline(), Solenoid::goOffline(), Component::goOnline(), Corrector::goOnline(), Monitor::goOnline(), RFCavity::goOnline(), Solenoid::goOnline(), TravelingWave::goOnline(), Ring::initialise(), BendBase::initialise(), Multipole::initialise(), Component::Online(), and PluginElement::~PluginElement().
|
privateinherited |
The name of the outputfile
Definition at line 471 of file ElementBase.h.
Referenced by ElementBase::getOutputFN(), and ElementBase::setOutputFN().
|
privateinherited |
Definition at line 462 of file ElementBase.h.
Referenced by ElementBase::getParticleMatterInteraction(), ElementBase::hasParticleMatterInteraction(), and ElementBase::setParticleMatterInteraction().
|
privateinherited |
Definition at line 464 of file ElementBase.h.
Referenced by ElementBase::fixPosition(), ElementBase::isPositioned(), ElementBase::releasePosition(), and ElementBase::setCSTrafoGlobal2Local().
|
privateinherited |
Definition at line 149 of file Laser.h.
Referenced by Laser::getPulseEnergy(), and Laser::setPulseEnergy().
|
privateinherited |
Definition at line 150 of file Laser.h.
Referenced by Laser::getPulseLength(), and Laser::setPulseLength().
|
protectedinherited |
Definition at line 225 of file Component.h.
Referenced by Corrector::apply(), VerticalFFAMagnet::apply(), BendBase::apply(), ConstantEFieldCavity::apply(), Monitor::apply(), Multipole::apply(), MultipoleT::apply(), RFCavity::apply(), ScalingFFAMagnet::apply(), Solenoid::apply(), TravelingWave::apply(), VariableRFCavity::apply(), Ring::apply(), Monitor::apply(), MultipoleT::apply(), RFCavity::apply(), TravelingWave::apply(), VariableRFCavity::apply(), Corrector::apply(), Monitor::applyToReferenceParticle(), BendBase::calcDesignRadius(), BendBase::calcFieldAmplitude(), BendBase::calcGamma(), Monitor::driftToCorrectPositionAndSave(), VerticalFFAMagnet::finalise(), MultipoleT::finalise(), ScalingFFAMagnet::finalise(), VariableRFCavity::finalise(), Corrector::goOnline(), PluginElement::initialise(), Corrector::initialise(), VerticalFFAMagnet::initialise(), BendBase::initialise(), ConstantEFieldCavity::initialise(), Drift::initialise(), Laser::initialise(), Marker::initialise(), Monitor::initialise(), Multipole::initialise(), MultipoleT::initialise(), RFCavity::initialise(), ScalingFFAMagnet::initialise(), Solenoid::initialise(), TravelingWave::initialise(), VariableRFCavity::initialise(), RFCavity::initialise(), VariableRFCavity::initNull(), Multipole::isFocusing(), MultipoleT::MultipoleT(), ScalingFFAMagnet::ScalingFFAMagnet(), Corrector::setDesignEnergy(), Ring::setRefPartBunch(), RFCavity::trackOnAxisParticle(), and VerticalFFAMagnet::VerticalFFAMagnet().
|
protectedinherited |
Definition at line 444 of file ElementBase.h.
Referenced by ElementBase::getRotationAboutZ(), and ElementBase::setRotationAboutZ().
|
mutableprotectedinherited |
Definition at line 435 of file ElementBase.h.
Referenced by Beamline::Beamline(), Beamline::Beamline(), Beamline::Beamline(), ElementBase::isSharable(), and ElementBase::makeSharable().
|
privateinherited |
Definition at line 147 of file Laser.h.
Referenced by Laser::getFieldExtend(), and Laser::initialise().
|
privateinherited |
Definition at line 154 of file Laser.h.
Referenced by Laser::getStokes(), and Laser::setStokes().
|
privateinherited |
Definition at line 456 of file ElementBase.h.
Referenced by ElementBase::getChannel(), and ElementBase::removeAttribute().
|
privateinherited |
Definition at line 151 of file Laser.h.
Referenced by Laser::getWaistX(), and Laser::setWaistX().
|
privateinherited |
Definition at line 152 of file Laser.h.
Referenced by Laser::getWaistY(), and Laser::setWaistY().
|
privateinherited |
Definition at line 458 of file ElementBase.h.
Referenced by ElementBase::getWake(), ElementBase::hasWake(), and ElementBase::setWake().
|
privateinherited |
Definition at line 148 of file Laser.h.
Referenced by Laser::getPhotonEnergyGeV(), Laser::getWavelength(), and Laser::setWavelength().