source: TRACY3/trunk/tracy/tracy/inc/soleillib.h @ 11

Last change on this file since 11 was 11, checked in by zhangj, 11 years ago
  • Property svn:executable set to *
File size: 6.8 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(const char *FmapFile, long Nbx, long Nbz, long Nbtour, double xmax, double zmax,
62          double energy, bool diffusion, bool printloss);       
63void fmap_p(const char *FmapFile, long Nbx, long Nbz, long Nbtour, double xmax, double zmax,
64          double energy, bool diffusion, bool printloss, int numprocs, int myid);         
65void fmapdp(const char *FmapdpFile, long Nbx, long Nbe, long Nbtour, double xmax, double emax,
66              double z, bool diffusion, bool printloss);
67void fmapdp_p(const char *FmapdpFile, long Nbx, long Nbe, long Nbtour, double xmax, double emax, 
68            double z, bool diffusion, bool printloss, int numprocs, int myid);
69void Nu_Naff(void);
70
71
72/* Vacuum chamber */
73void ReadCh(const char *AperFile);
74
75void Enveloppe(double x, double px, double y, double py,
76                      double dp, double nturn);
77
78
79/* Longitudinal Hamiltonian*/
80void PhaseLongitudinalHamiltonien(void);
81void PassA(double *phi, double delta0, double step);
82void PassB(double phi0, double *delta, double step);
83double Hsynchrotron(double phi, double delta);
84
85/* Miscelleneous */ 
86void Enveloppe2(double x, double px, double y, double py,
87                      double dp, double nturn);
88void Phase3(long pos, double x,double px,double y, double py,double energy,
89            double ctau, long Nbtour);
90double EnergySmall(double *X, double irho);
91double EnergyDrift(double *X);
92void getA4antidamping();
93void fmapfull(long Nbx, long Nbz, long Nbtour, double xmax, double zmax,
94              double energy, bool diffusion);
95void spectrum(long Nbx, long Nbz, long Nbtour, double xmax, double zmax,
96              double energy, bool diffusion);
97             
98/* coupling*/
99void Coupling_Edwards_Teng(void);
100
101/* get and set RF voltage */
102double get_RFVoltage(const int Fnum);
103
104void set_RFVoltage(const int Fnum, const double V_RF);
105
106/* close orbit correction */
107void CODCorrect(const char *hcorr_file,const char *vcorr_file,int n_orbit,int nwh,int nwv);
108
109/* Read multipole errors from a file for soleil*/
110void ReadFieldErr(const char *FieldErrorFile);
111
112void AddFieldErrors(const char *name,const char *keywrd, const double r0,
113                    const int n, const double Bn, const double An); 
114                   
115void AddFieldValues_type(const int N, const char *keywrd, const double r0,
116                         const int n, const double Bn, const double An);
117
118void AddFieldValues_fam(const int Fnum, const char *keywrd, const double r0,
119                        const int n, const double Bn, const double An);
120
121void Add_bnL_sys_elem(const int Fnum, const int Knum, const char *keywrd,
122                      const int n, const double bnL, const double anL);
123                                                                                                         
124void AddCorrQtErr_fam(char const *fic, const int Fnum, const double conv, const char *keywrd, const double r0,
125                        const int n, const double Bn, const double An);
126
127/* Read the setting of skew quadrupoles from a file; for soleil lattice */
128void ReadVirtualSkewQuad(const char *VirtualSkewQuadFile);
129                       
130/* fit tunes for soleil lattice, in which each quadrupole is cut into two parts*/                       
131void FitTune4(long qf1,long qf2, long qd1, long qd2, double nux, double nuy);                   
132//print the coordinates at lattice elements tracked for n turns
133void PrintTrack(const char *TrackFile, double x, double px,double y,double py, 
134                double delta, double ctau, long int nmax);
135//print the tracked coordinates after a lattice element
136void PrintTrackElem(const char *TrackFile, double x, double px,double y,double py, 
137                double delta, double ctau, long int nelem1,long int nelem2);
138
139
140             
Note: See TracBrowser for help on using the repository browser.