Fork me on GitHub

source: svn/trunk/external/Hector/H_Dipole.h@ 1360

Last change on this file since 1360 was 1360, checked in by Pavel Demin, 10 years ago

add Hector module

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id Revision Date
File size: 2.0 KB
Line 
1/// \file H_Dipole.h
2/// \brief Class aiming at simulating LHC beam dipoles.
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#ifndef _H_Dipole_
23#define _H_Dipole_
24
25#include "H_OpticalElement.h"
26
27/// Abstract class aiming at simulating dipoles.
28class H_Dipole : public H_OpticalElement {
29
30 public:
31 /// Constructors and destructor
32 //@{
33 H_Dipole():H_OpticalElement() {}
34 H_Dipole(const int dtype, const double s, const double k, const double l):H_OpticalElement(dtype,s,k,l){}
35 H_Dipole(const string& nameE, const int dtype, const double s, const double k, const double l):H_OpticalElement(nameE,dtype,s,k,l){}
36 virtual ~H_Dipole() {};
37 //@}
38 /// Prints the properties of the element
39 virtual void printProperties() const { cout << *this; return;};
40 virtual H_Dipole* clone() const =0;
41 void init();
42
43 protected:
44 virtual void setTypeString() =0;
45 virtual void setMatrix(const float, const float, const float) = 0;
46
47 friend std::ostream& operator<< (std::ostream& os, const H_Dipole& el);
48};
49
50#endif
Note: See TracBrowser for help on using the repository browser.