source: ZHANGProjects/ICOSIM/CPP/trunk/source/StandardCollimator.h @ 2

Last change on this file since 2 was 2, checked in by zhangj, 10 years ago

Initial import

File size: 2.6 KB
Line 
1#ifndef STANDARDCOLLIMATOR_H
2#define STANDARDCOLLIMATOR_H
3#include <iostream>
4#include <vector>
5#include <string>
6#include <cmath>
7#include "Collimator.h"
8using namespace std;
9
10
11/*
12#############################################################################################################
13
14This class describes all standard collimators in the accelerator lattice.
15
16#############################################################################################################
17*/
18
19
20class StandardCollimator : public Collimator
21{
22
23public:
24
25    //=================================================Constructors, destructor=======================================
26
27    StandardCollimator(const double& ALFX, const double& ALFY, const double& APER_1, const double& APER_2, const double& APER_3, const double& APER_4, const string& APERTYPE, const double& BETX, const double& BETY, const double& DPX, const double& DPY, const double& DX, const double& DY, const string& KEYWORD, const double& L, const double& MUX, const double& MUY, const string& NAME, const double& PTC, const double& PXC, const double& PYC, const double& S, const double& TC, const double& XC, const double& YC, const double& K0L, const double& K0SL, const double& K1L, const double& K1SL, const double& K2L, const double& K2SL, const string& PARENT, const string& meth, const long double& hgap, const long double& hgap2, const double& collang, const long double& pdepth, const long double& pdepth2, const double& tcang, const double& nsig);
28
29    StandardCollimator(Element elt, const double& tcang, const double& nsig, const string& meth, const string& material);
30
31    StandardCollimator(const StandardCollimator& obj);
32
33    virtual ~StandardCollimator() {};
34
35
36    //describes the passage of a particle through the collimator
37
38    void collipass(Particle& p1, double& dpopeff, const double& scaleorbit, const double& R11X, const double& R12X, const double& R21X, const double& R22X, const double& R11Y, const double& R12Y, const double& R21Y, const double& R22Y, const double& dx1, const double& dpx1, const double& dy1, const double& dpy1, const double& delta_s, const double& Apr, const double& Zpr, const double& betgam);
39
40
41    //the following methodes are only used in the class FlukaCollimator/CrystalCollimator
42#if defined(FLUKA)
43    void collipassfluka(vector <Particle>& bunchstart, vector <Particle>& bunchend, flukaio_connection_t* connection, const int& turn, const double& momentum) {};
44
45    void collipassCrystal(vector <Particle>& bunch, const double& betgam, const int& pas, string outputpath) {};
46#endif
47
48
49    //displays the parameters of the collimator
50
51    void affiche();
52
53
54};
55
56#endif
Note: See TracBrowser for help on using the repository browser.