OPALX (Object Oriented Parallel Accelerator Library for Exascal)
master (dc2a29eed580)
OPALX
Loading...
Searching...
No Matches
SequenceMember.h
Go to the documentation of this file.
1
#ifndef OPAL_SequenceMember_HH
2
#define OPAL_SequenceMember_HH
3
4
// ------------------------------------------------------------------------
5
// $RCSfile: SequenceMember.h,v $
6
// ------------------------------------------------------------------------
7
// $Revision: 1.2 $
8
// ------------------------------------------------------------------------
9
// Copyright: see Copyright.readme
10
// ------------------------------------------------------------------------
11
//
12
// Class: SequenceMember
13
//
14
// ------------------------------------------------------------------------
15
//
16
// $Date: 2001/08/13 15:16:16 $
17
// $Author: jowett $
18
//
19
// ------------------------------------------------------------------------
20
21
#include <memory>
22
#include "
AbstractObjects/Element.h
"
23
#include "
Beamlines/FlaggedElmPtr.h
"
24
25
// Class SequenceMember
26
// ------------------------------------------------------------------------
28
29
class
SequenceMember
:
public
FlaggedElmPtr
{
30
public
:
31
// The code for different SequenceMember types.
32
enum
MemberType
{
UNKNOWN
= 0,
GLOBAL
= 1,
LOCAL
= 2,
GENERATED
= 3 };
33
34
// The code for different position types.
35
enum
PositionType
{
36
ABSOLUTE
= 0,
37
FROM
= 1,
38
PREVIOUS
= 2,
39
NEXT
= 3,
40
BEGIN
= 4,
41
END
= 5,
42
DRIFT
= 6,
43
IMMEDIATE
= 7
44
};
45
46
SequenceMember
();
47
SequenceMember
(
const
SequenceMember
&);
48
~SequenceMember
();
49
51
void
setLength
(
double
drift);
52
54
double
itsPosition
;
55
57
// Specific to the sequence parser, tells how the element is related
58
// to the preceding one.
59
PositionType
itsFlag
;
60
62
// Tells how the element is defined.
63
MemberType
itsType
;
64
65
// ada 4.5 2000 to speed up matching, add a pointer to
66
// opal elements in order to avoid searching the opal elements
67
std::shared_ptr<Element>
OpalElement
;
68
69
private
:
70
// Not implemented.
71
void
operator=
(
const
SequenceMember
&);
72
};
73
74
#endif
// OPAL_SequenceMember_HH
Element.h
FlaggedElmPtr.h
FlaggedElmPtr
A section of a beam line.
Definition
FlaggedElmPtr.h:35
SequenceMember
A member of a SEQUENCE.
Definition
SequenceMember.h:29
SequenceMember::SequenceMember
SequenceMember()
Definition
SequenceMember.cpp:25
SequenceMember::PositionType
PositionType
Definition
SequenceMember.h:35
SequenceMember::DRIFT
@ DRIFT
Definition
SequenceMember.h:42
SequenceMember::BEGIN
@ BEGIN
Definition
SequenceMember.h:40
SequenceMember::NEXT
@ NEXT
Definition
SequenceMember.h:39
SequenceMember::IMMEDIATE
@ IMMEDIATE
Definition
SequenceMember.h:43
SequenceMember::ABSOLUTE
@ ABSOLUTE
Definition
SequenceMember.h:36
SequenceMember::END
@ END
Definition
SequenceMember.h:41
SequenceMember::PREVIOUS
@ PREVIOUS
Definition
SequenceMember.h:38
SequenceMember::FROM
@ FROM
Definition
SequenceMember.h:37
SequenceMember::itsType
MemberType itsType
Type word.
Definition
SequenceMember.h:63
SequenceMember::MemberType
MemberType
Definition
SequenceMember.h:32
SequenceMember::GLOBAL
@ GLOBAL
Definition
SequenceMember.h:32
SequenceMember::GENERATED
@ GENERATED
Definition
SequenceMember.h:32
SequenceMember::UNKNOWN
@ UNKNOWN
Definition
SequenceMember.h:32
SequenceMember::LOCAL
@ LOCAL
Definition
SequenceMember.h:32
SequenceMember::~SequenceMember
~SequenceMember()
Definition
SequenceMember.cpp:35
SequenceMember::OpalElement
std::shared_ptr< Element > OpalElement
Definition
SequenceMember.h:67
SequenceMember::setLength
void setLength(double drift)
Store the drift length for a generated drift.
Definition
SequenceMember.cpp:37
SequenceMember::itsPosition
double itsPosition
The position attribute ("AT" or "DRIFT").
Definition
SequenceMember.h:54
SequenceMember::itsFlag
PositionType itsFlag
Flag word.
Definition
SequenceMember.h:59
SequenceMember::operator=
void operator=(const SequenceMember &)
src
Lines
SequenceMember.h
Generated on Mon Jun 1 2026 10:40:52 for OPALX (Object Oriented Parallel Accelerator Library for Exascal) by
1.9.8