source: TRACY3/trunk/tracy/tracy/inc/read_script.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.7 KB
Line 
1/* class to read the parameters of the bool flags in the user input script */
2 class UserCommand
3 {
4   public:
5   char  CommandStr[max_str];   // bool flag name
6   
7 /***** parameters *******/
8 
9    //RFVoltFlag
10   double RFvolt;   // RF voltage
11   
12   //chamber file
13   char chamber_file[max_str];
14   
15    // misalignment error file
16   char    ae_file[max_str];
17   
18   // field error file
19   char    fe_file[max_str]; 
20   
21    // FitTuneFlag ;
22   char qf[max_str],qd[max_str]; 
23   double targetnux, targetnuz;
24   // FitTune4Flag  ;
25    char qf1[max_str],qf2[max_str],qd1[max_str],qd2[max_str]; 
26 // FitChromFlag ;
27   char sxm1[max_str],sxm2[max_str]; 
28   double targetksix, targetksiz ;
29  //add coupling error to full/half quadrupoles
30   long err_seed; 
31   double err_rms;
32   
33    //start track particle coordinates; PrintTrackFlag
34   char _PrintTrack_track_file[max_str];
35   double _PrintTrack_x, _PrintTrack_px, _PrintTrack_y, 
36          _PrintTrack_py, _PrintTrack_delta, _PrintTrack_ctau;
37   long  _PrintTrack_nmax; 
38   
39   //start track particle coordinates; PrintTrackFlag
40   char _PrintTrackElem_track_file[max_str];
41   double _PrintTrackElem_x, _PrintTrackElem_px, _PrintTrackElem_y, 
42          _PrintTrackElem_py, _PrintTrackElem_delta, _PrintTrackElem_ctau;
43   long  _PrintTrackElem_nelem1, _PrintTrackElem_nelem2; 
44   
45   
46   //twiss file
47   char _PrintTwiss_twiss_file[max_str];
48   
49   char _PrintCOD_cod_file[max_str];
50 
51  //AmplitudeTuneShiftFlag;
52   char _AmplitudeTuneShift_nudx_file[max_str];
53   char _AmplitudeTuneShift_nudz_file[max_str];
54   long _AmplitudeTuneShift_nxpoint, _AmplitudeTuneShift_nypoint;
55   long _AmplitudeTuneShift_nturn;
56   double _AmplitudeTuneShift_xmax, _AmplitudeTuneShift_ymax, _AmplitudeTuneShift_delta;
57 
58 //EnergyTuneShiftFlag;
59   char _EnergyTuneShift_nudp_file[max_str];
60   long _EnergyTuneShift_npoint, _EnergyTuneShift_nturn;
61   double _EnergyTuneShift_deltamax;
62 
63 //extern bool FmapFlag;
64   char _FmapFlag_fmap_file[max_str];
65   long _FmapFlag_nxpoint, _FmapFlag_nypoint, _FmapFlag_nturn;
66   double _FmapFlag_xmax, _FmapFlag_ymax, _FmapFlag_delta;
67   bool _FmapFlag_diffusion;
68   bool _FmapFlag_printloss;
69   
70 
71 //extern bool FmapdpFlag;
72   char _FmapdpFlag_fmapdp_file[max_str];
73   long _FmapdpFlag_nxpoint, _FmapdpFlag_nepoint, _FmapdpFlag_nturn;
74   double _FmapdpFlag_xmax, _FmapdpFlag_emax, _FmapdpFlag_z;
75   bool _FmapdpFlag_diffusion;
76   bool _FmapdpFlag_printloss;
77
78   
79  //MomentumAccFlag;
80   char _MomentumAccFlag_momacc_file[max_str];  //  file to save tracked momentum accpetance
81   char _MomentumAccFlag_TrackDim[3];
82   long  _MomentumAccFlag_istart, _MomentumAccFlag_istop,
83         _MomentumAccFlag_nstepn, _MomentumAccFlag_nstepp,
84         _MomentumAccFlag_nturn;
85   double _MomentumAccFlag_deltaminn, _MomentumAccFlag_deltamaxn;
86   double _MomentumAccFlag_deltaminp, _MomentumAccFlag_deltamaxp;
87   double  _MomentumAccFlag_zmax;
88   
89  // /* Phase space */
90   //char *_Phase_phase_file;
91   char _Phase_phase_file[max_str];
92   char _Phase_Dim[3];
93   double _Phase_X, _Phase_Px, _Phase_Y, _Phase_Py,_Phase_delta, _Phase_ctau;
94   long _Phase_nturn;
95   bool _Phase_Damping;
96 
97   //Touschek lifetime
98   bool TouschekFlag, IBSFlag, TousTrackFlag;
99   
100   // ID correction
101   bool IDCorrFlag;
102     
103  //set default values
104  UserCommand(void)   //constructor
105 { 
106   /* start tracking coordinates */
107    strcpy(_PrintTrack_track_file,"track.out");
108    _PrintTrack_x = 0.001, _PrintTrack_px=0.0, _PrintTrack_y=0.0, 
109    _PrintTrack_py=0.0, _PrintTrack_delta=0.0, _PrintTrack_ctau=0.0;
110    _PrintTrack_nmax=50L; 
111   
112    /* twiss file */
113    strcpy(_PrintTwiss_twiss_file,"twiss.out");
114   
115    /*COD file*/
116    strcpy(_PrintCOD_cod_file,"printcod.out");
117 
118  // /* fmap for on momentum particle*/
119   strcpy(_FmapFlag_fmap_file,"fmap.out");
120   _FmapFlag_nxpoint=31L, _FmapFlag_nypoint=21L, _FmapFlag_nturn=516L;
121   _FmapFlag_xmax=0.025, _FmapFlag_ymax=0.005, _FmapFlag_delta=0.0;
122   _FmapFlag_diffusion = true, _FmapFlag_printloss = false;
123
124/*fmap for off momentum particle*/
125strcpy(_FmapdpFlag_fmapdp_file,"fmapdp.out");
126 _FmapdpFlag_nxpoint=31L, _FmapdpFlag_nepoint=21L, _FmapdpFlag_nturn=516L;
127 _FmapdpFlag_xmax=0.025, _FmapdpFlag_emax=0.005, _FmapdpFlag_z=0.0;
128 _FmapdpFlag_diffusion = true, _FmapdpFlag_printloss = false;
129 
130/* tune shift with amplitude*/
131 strcpy(_AmplitudeTuneShift_nudx_file,"nudx.out");
132 strcpy(_AmplitudeTuneShift_nudz_file,"nudz.out");
133 _AmplitudeTuneShift_nxpoint=31L;  _AmplitudeTuneShift_nypoint=21L;
134 _AmplitudeTuneShift_nturn=516L;   _AmplitudeTuneShift_xmax=0.025;
135 _AmplitudeTuneShift_ymax=0.005,   _AmplitudeTuneShift_delta=0.0;
136
137/* tune shift with energy*/
138strcpy(_EnergyTuneShift_nudp_file,"nudp.out");
139 _EnergyTuneShift_npoint=31L;  _EnergyTuneShift_nturn=516L;
140 _EnergyTuneShift_deltamax=0.06;
141
142/* random rotation coupling error*/
143 err_seed=0L;  err_rms=0.0; 
144
145/* momentum acceptance */
146 strcpy(_MomentumAccFlag_momacc_file,"momentumacceptance.out");//default file name
147 strcpy(_MomentumAccFlag_TrackDim,"6D"); //default track dimension
148 _MomentumAccFlag_istart=1L, _MomentumAccFlag_istop=108L,
149 _MomentumAccFlag_nstepn=100L, _MomentumAccFlag_nstepp=100L;
150 _MomentumAccFlag_deltaminn=-0.01, _MomentumAccFlag_deltamaxn=-0.05;
151 _MomentumAccFlag_deltaminp=0.01, _MomentumAccFlag_deltamaxp=0.05;
152 _MomentumAccFlag_nturn = 1026;
153 _MomentumAccFlag_zmax = 0.0003; //[m]
154
155/* Phase space */
156 strcpy(_Phase_phase_file,"phase.out");  //default phase file
157 strcpy( _Phase_Dim,"4D"); //default phase dimension
158 _Phase_X=0.0, _Phase_Px=0.0, _Phase_Y=0.0, _Phase_Py=0.0,
159 _Phase_delta=0.0, _Phase_ctau=0.0;
160 _Phase_nturn=512L;
161 _Phase_Damping = false;
162 
163/* fit tunes for full quadrupole*/
164 targetnux = 0.0, targetnuz = 0.0;
165
166/* fit chromaticities*/
167 targetksix = 0.0, targetksiz = 0.0;
168
169}; 
170 
171 };
172
173/***** file names************/
174extern char    lat_file[max_str];
175
176//files with multipole errors; for soleil lattice
177 extern char fic_hcorr[max_str],fic_vcorr[max_str], fic_skew[max_str];
178 extern char multipole_file[max_str];
179 //file of source of coupling; for soleil lattice
180 extern char virtualskewquad_file[max_str];
181 
182 extern char track_file[max_str];
183 extern char twiss_file[max_str];
184 extern char cod_file[max_str];
185 extern char girder_file[max_str];
186 
187 //files with the status of hcorr/vcorr status, to choose which correctors are used for orbit correction
188 extern char    hcorr_file[max_str], vcorr_file[max_str];
189// extern char    fe_file[max_str]; //the same as multipole_file[max_str]?????
190
191//COD correction
192 extern int nwh, nwv; 
193
194// ID correction
195extern char   IDCq_name[max_str][11];
196
197
198extern char hcorr_name[max_str], vcorr_name[max_str];
199extern char skew_quad_name[max_str], bpm_name[max_str];
200extern char gs_name[max_str], ge_name[max_str];
201
202// function
203 void read_script(const char *param_file_name, bool rd_lat,long& CommNo, UserCommand UserCommandFlag[]);
Note: See TracBrowser for help on using the repository browser.