Fork me on GitHub

source: svn/trunk/Utilities/Hector/include/H_BeamLine.h@ 822

Last change on this file since 822 was 281, checked in by Xavier Rouby, 16 years ago

new Hector version

File size: 2.5 KB
Line 
1#ifndef _H_BeamLine_
2#define _H_BeamLine_
3
4 /* * * * * * * * * * * * * * * * * * * * * * * * * * * *
5 * *
6* --<--<-- A fast simulator --<--<-- *
7* / --<--<-- of particle --<--<-- *
8* ----HECTOR----< *
9* \ -->-->-- transport through -->-->-- *
10* -->-->-- generic beamlines -->-->-- *
11* *
12* JINST 2:P09005 (2007) *
13* X Rouby, J de Favereau, K Piotrzkowski (CP3) *
14* http://www.fynu.ucl.ac.be/hector.html *
15* *
16* Center for Cosmology, Particle Physics and Phenomenology *
17* Universite catholique de Louvain *
18* Louvain-la-Neuve, Belgium *
19 * *
20 * * * * * * * * * * * * * * * * * * * * * * * * * * * */
21
22/// \file H_BeamLine.h
23/// \brief Class aiming at retrieving features of the real beam optical elements.
24
25// local #includes
26#include "H_AbstractBeamLine.h"
27
28// C++ #includes
29#include <string>
30using namespace std;
31
32// Caution : mad conventions for vertically(horizontally) focusing quadrupoles
33// are opposite to Wille's. See fill() for more details.
34
35/// Reads external files and retrieves features of the real beam optical elements.
36class H_BeamLine : public H_AbstractBeamLine {
37
38 public:
39 /// Constructors and destructor
40 //@{
41 H_BeamLine();
42 H_BeamLine(const H_BeamLine& );
43 H_BeamLine(const int, const float);
44 H_BeamLine& operator=(const H_BeamLine& );
45 ~H_BeamLine() {};
46 //@
47 /// Finds the IP position (s) from the MAD table. Should be "IP5" or "IP1".
48 void findIP(const string& filename, const string& ipname="IP5");
49 /// Reader for the external MAD table
50 void fill(const string& filename, const int dir=1, const string& ipname="IP5");
51 /// Returns the IP position (s)
52 double getIP() const {return ips;};
53 /// Returns positions and angles of beam at IP
54 double* getIPProperties();
55
56 private:
57 int direction; // to or from the IP.
58 double ips; // s-position of the IP [m]
59 double ipx; // x-position of the IP [µm]
60 double ipy; // y-position of the IP [µm]
61 double iptx; // x-angle of momentum at IP [µrad]
62 double ipty; // y-angle of momentum at IP [µrad]
63};
64
65#endif
66
Note: See TracBrowser for help on using the repository browser.