OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
FlatWriter.h
Go to the documentation of this file.
1 #ifndef OPAL_FlatWriter_HH
2 #define OPAL_FlatWriter_HH 1
3 
4 // ------------------------------------------------------------------------
5 // $RCSfile: FlatWriter.h,v $
6 // ------------------------------------------------------------------------
7 // $Revision: 1.1.1.1 $
8 // ------------------------------------------------------------------------
9 // Copyright: see Copyright.readme
10 // ------------------------------------------------------------------------
11 //
12 // Class: FlatWriter
13 //
14 // ------------------------------------------------------------------------
15 //
16 // Revision History:
17 // $Date: 2000/03/27 09:33:43 $
18 // $Author: Andreas Adelmann $
19 //
20 // ------------------------------------------------------------------------
21 
23 #include "Lines/Sequence.h"
24 #include <iosfwd>
25 
26 class Beamline;
27 class Drift;
28 class ElementBase;
29 class FlaggedElmPtr;
30 
31 
32 // Class FlatWriter
33 // ------------------------------------------------------------------------
35 
36 class FlatWriter: public DefaultVisitor {
37 
38 public:
39 
40  FlatWriter(const Beamline &, Sequence::TLine &seq, std::ostream &os);
41  ~FlatWriter();
42 
44  const Sequence::TLine &getSequence() const;
45 
47  // Accumulate length, but do not save anything.
48  virtual void visitDrift(const Drift &);
49 
51  virtual void visitMapIntegrator(const MapIntegrator &);
52 
53 protected:
54 
56  // Add the element to the sequence list.
57  virtual void applyDefault(const ElementBase &);
58 
59 private:
60 
61  // The current longitudinal position.
62  double itsPosition;
63 
64  // The temporary flat sequence.
66 
67  // The output stream.
68  std::ostream &itsStream;
69 };
70 
71 #endif // OPAL_FlatWriter_HH
virtual void visitDrift(const Drift &)
Override drift operation.
Definition: FlatWriter.cpp:59
Write a line or sequence as a flat sequence in OPAL-8 format.
Definition: FlatWriter.h:36
Interface for basic beam line object.
Definition: ElementBase.h:128
FlatWriter(const Beamline &, Sequence::TLine &seq, std::ostream &os)
Definition: FlatWriter.cpp:43
double itsPosition
Definition: FlatWriter.h:62
std::ostream & itsStream
Definition: FlatWriter.h:68
Interface for drift space.
Definition: Drift.h:33
Default algorithms.
Template class for beam lines.
Definition: TBeamline.h:40
virtual void applyDefault(const ElementBase &)
Apply default.
Definition: FlatWriter.cpp:120
virtual void visitMapIntegrator(const MapIntegrator &)
Override beamline exit.
Definition: FlatWriter.cpp:65
An abstract sequence of beam line components.
Definition: Beamline.h:37
Sequence::TLine & itsSequence
Definition: FlatWriter.h:65
const Sequence::TLine & getSequence() const
Return the temporary sequence.
Definition: FlatWriter.cpp:54
Integrate a map.
Definition: MapIntegrator.h:41
A section of a beam line.
Definition: FlaggedElmPtr.h:36