source: TRACY3/branches/tracy3-3.10.1b/tracy/tracy/inc/soleillib.h @ 23

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

Clean version of Tracy: SoleilVersion at the end of 2011.Use this clean version to find the correct dipole fringe field to have the correct FMAP and FMAPDP of ThomX. Modified files: tpsa_lin.cc, soleillib.cc, prtmfile.cc, rdmfile.cc, read_script.cc, physlib.cc, tracy.cc, t2lat.cc, t2elem.cc, naffutils.cc in /tracy/tracy/src folder; naffutils.h, tracy_global.h, physlib.h, tracy.h, read_script.h, solielilib.h, t2elem.h in /tracy/tracy.inc folder; soltracy.cc in tracy/tools folder

  • Property svn:executable set to *
File size: 6.3 KB
Line 
1/* Tracy-2
2
3   J. Bengtsson, CBP, LBL      1990 - 1994   Pascal version
4                 SLS, PSI      1995 - 1997
5   M. Boege      SLS, PSI      1998          C translation
6   L. Nadolski   SOLEIL        2002          Link to NAFF, Radia field maps
7   J. Bengtsson  NSLS-II, BNL  2004 -       
8   J. Zhang      SOLEIL        2010         ADD SOLEIL PARTS IN TRACY 2.7
9*/
10
11 /**** Protypes ****/
12void SetErr2(long seed,double fac);  //set error for lattice with two half quadrupoles
13void SetErr(long seed,double fac);   //set error for lattice with one full quadrupoles
14void InducedAmplitude(long spos);
15void Hfonction(long pos, double dP);
16//void Hcofonction(long pos, double dP,Vector2 H);
17void Hcofonction(long pos, double dP);
18void Get_Disp_dp(void);
19void read_corrh(void);
20void set_vectorcod(Vector codvector[], double dP);
21void SetDecapole(void);
22
23/* Tracking */
24void Phase(const char *phasefile,double x,double xp,double y, double yp,double energy, double ctau, long Nbtour);
25void Phase2(long pos, double x,double xp,double y, double yp,double energy, double ctau,
26            long Nbtour);
27void PhasePoly(long pos, double x0,double px0, double z0, double pz0, double delta0,
28               double ctau0, long Nbtour);
29void Check_Trac(double x, double px, double y, double py, double dp);
30void PhasePortrait(double x0,double px0,double z0, double pz0, double delta0, double ctau,
31                          double end, long Nb, long Nbtour, int num);
32void PhasePortrait2(long pos,double x0,double px0,double z0, double pz0, double delta0, double ctau,
33                          double end, long Nb, long Nbtour, int num);
34void Multipole_thicksext(const char *fic_hcorr, const char *fic_vcorr, const char *fic_skew);
35void Multipole_thinsext(const char  *fic_hcorr, const char *fic_vcorr, const char *fic_skew);
36void MomentumAcceptance(char *MomAccFile,long deb, long fin, double ep_min, 
37                        double ep_max, long nstepp, double em_min, double em_max, 
38                        long nstepm, long nturn, double  zmax);
39void MomentumAcceptance_p(char *MomAccFile,long deb, long fin, double ep_min, 
40                        double ep_max, long nstepp, double em_min, double em_max, 
41                          long nstepm, long nturn, double  zmax, int numprocs, int myid);
42
43void Trac_Tab(double x, double px, double y, double py, double dp,
44            long nmax, long pos, long *lastn, long *lastpos, FILE *outf1, double Tx[][NTURN]);
45void SetSkewQuad(void);
46void TracCO(double x, double px, double y, double py, double dp, double ctau,
47                 long nmax, long pos, long *lastn, long *lastpos, FILE *outf1);
48void Dyna(long Nbx, long Nbz, long Nbtour, double xmax, double zmax,
49               double energy, bool diffusion);
50                           
51/* Frequency map analysis */
52void TunesShiftWithAmplitude(const char *NudxFile, const char *NudzFile, long Nbx, 
53                             long Nbz, long Nbtour, double xmax, double zmax, double energy);
54void TunesShiftWithEnergy(const char *NudpFile,long Nb, long Nbtour, double emax);
55//void fmap(long Nbx, long Nbz, long Nbtour, double xmax, double zmax,
56//                 double energy, bool diffusion, bool matlab);
57//void fmapdp(long Nbx, long Nbe, long Nbtour, double xmax, double emax,
58//              double z, bool diffusion, bool matlab);
59void fmap(const char *FmapFile, long Nbx, long Nbz, long Nbtour, double xmax, double zmax,
60          double energy, bool diffusion);         
61void fmap_p(const char *FmapFile, long Nbx, long Nbz, long Nbtour, double xmax, double zmax,
62          double energy, bool diffusion, int numprocs, int myid);         
63void fmapdp(const char *FmapdpFile, long Nbx, long Nbe, long Nbtour, double xmax, double emax,
64              double z, bool diffusion);
65void fmapdp_p(const char *FmapdpFile, long Nbx, long Nbe, long Nbtour, double xmax, double emax, 
66            double z, bool diffusion, int numprocs, int myid);
67void Nu_Naff(void);
68
69
70/* Vacuum chamber */
71void ReadCh(const char *AperFile);
72
73void Enveloppe(double x, double px, double y, double py,
74                      double dp, double nturn);
75
76
77/* Longitudinal Hamiltonian*/
78void PhaseLongitudinalHamiltonien(void);
79void PassA(double *phi, double delta0, double step);
80void PassB(double phi0, double *delta, double step);
81double Hsynchrotron(double phi, double delta);
82
83/* Miscelleneous */ 
84void Enveloppe2(double x, double px, double y, double py,
85                      double dp, double nturn);
86void Phase3(long pos, double x,double px,double y, double py,double energy,
87            double ctau, long Nbtour);
88double EnergySmall(double *X, double irho);
89double EnergyDrift(double *X);
90void getA4antidamping();
91void fmapfull(long Nbx, long Nbz, long Nbtour, double xmax, double zmax,
92              double energy, bool diffusion);
93void spectrum(long Nbx, long Nbz, long Nbtour, double xmax, double zmax,
94              double energy, bool diffusion);
95             
96/* coupling*/
97void Coupling_Edwards_Teng(void);
98
99/* get and set RF voltage */
100double get_RFVoltage(const int Fnum);
101
102void set_RFVoltage(const int Fnum, const double V_RF);
103
104/* close orbit correction */
105void CODCorrect(const char *hcorr_file,const char *vcorr_file,int n_orbit,int nwh,int nwv);
106
107/* Read multipole errors from a file for soleil*/
108void ReadFieldErr(const char *FieldErrorFile);
109
110void AddFieldErrors(const char *name,const char *keywrd, const double r0,
111                    const int n, const double Bn, const double An); 
112                   
113void AddFieldValues_type(const int N, const char *keywrd, const double r0,
114                         const int n, const double Bn, const double An);
115
116void AddFieldValues_fam(const int Fnum, const char *keywrd, const double r0,
117                        const int n, const double Bn, const double An);
118
119void Add_bnL_sys_elem(const int Fnum, const int Knum, const char *keywrd,
120                      const int n, const double bnL, const double anL);
121                                                                                                         
122void AddCorrQtErr_fam(char const *fic, const int Fnum, const double conv, const char *keywrd, const double r0,
123                        const int n, const double Bn, const double An);
124
125/* Read the setting of skew quadrupoles from a file; for soleil lattice */
126void ReadVirtualSkewQuad(const char *VirtualSkewQuadFile);
127                       
128/* fit tunes for soleil lattice, in which each quadrupole is cut into two parts*/                       
129void FitTune4(long qf1,long qf2, long qd1, long qd2, double nux, double nuy);                   
130//print the coordinates at lattice elements
131void PrintTrack(const char *TrackFile, double x, double px,double y,double py, 
132                double delta, double ctau, long int nmax);
133               
134
135
136             
Note: See TracBrowser for help on using the repository browser.