diff --git a/tracy/tracy/src/read_script.cc b/tracy/tracy/src/read_script.cc
index dbef6ac0a317d9c9e58c62dafe8870a2374d2862..73d3998846594bb6751c71a57a03bcd44cdb7c3f 100644
--- a/tracy/tracy/src/read_script.cc
+++ b/tracy/tracy/src/read_script.cc
@@ -27,14 +27,22 @@
****************************************************************************/
/* global flag, used in script_read() and main() for read the input from script*/
+
+bool RFvoltageFlag =false; double RFvolt =0.0;
+
bool TuneTracFlag = false;
bool ChromTracFlag = false;
-bool FmapFlag = false, ExperimentFMAFlag = false, DetailedFMAFlag = false;
+bool FmapFlag = false;
long _FmapFlag_nxpoint=31L, _FmapFlag_nypoint=21L, _FmapFlag_nturn=516L;
double _FmapFlag_xmax=0.025, _FmapFlag_ymax=0.005, _FmapFlag_delta=0.0;
bool _FmapFlag_diffusion = true;
+bool FmapdpFlag = false;
+long _FmapdpFlag_nxpoint=31L, _FmapdpFlag_nepoint=21L, _FmapdpFlag_nturn=516L;
+double _FmapdpFlag_xmax=0.025, _FmapdpFlag_emax=0.005, _FmapdpFlag_z=0.0;
+bool _FmapdpFlag_diffusion = true;
+
bool AmplitudeTuneShiftFlag = false;
long _AmplitudeTuneShift_nxpoint=31L; long _AmplitudeTuneShift_nypoint=21L;
long _AmplitudeTuneShift_nturn=516L; double _AmplitudeTuneShift_xmax=0.025;
@@ -44,7 +52,8 @@ bool EnergyTuneShiftFlag = false;
long _EnergyTuneShift_npoint=31L; long _EnergyTuneShift_nturn=516L;
double _EnergyTuneShift_deltamax=0.06;
-bool ErrorCouplingFlag = false; bool CouplingFlag = false;
+bool ErrorCouplingFlag = false; long err_seed=0L; double err_rms=0.0;
+bool CouplingFlag = false;
bool MomentumAccFlag = false;
long _MomentumAccFlag_istart=1L, _MomentumAccFlag_istop=108L,
@@ -52,12 +61,13 @@ long _MomentumAccFlag_istart=1L, _MomentumAccFlag_istop=108L,
double _MomentumAccFlag_deltaminn=0.01, _MomentumAccFlag_deltamaxn=0.05;
double _MomentumAccFlag_deltaminp=0.01, _MomentumAccFlag_deltamaxp=0.05;
+bool ReadMultipoleFlag = false;
bool MultipoleFlag = false, ThinsextFlag = false;
char fic_hcorr[max_str],fic_vcorr[max_str], fic_skew[max_str];
-bool FitTuneFlag = false; double targetnux = 0, targetnuz = 0;
-bool FitChromFlag = false; double targetksix = 0, targetksiz = 0;
+bool FitTuneFlag = false; char qm1[max_str],qm2[max_str]; double targetnux = 0.0, targetnuz = 0.0;
+bool FitChromFlag = false; char sxm1[max_str],sxm2[max_str]; double targetksix = 0.0, targetksiz = 0.0;
bool ChamberFlag = false, ChamberNoU20Flag = false, ReadChamberFlag = false;
bool GirderErrorFlag = false;
bool SigmaFlag = false;
@@ -69,7 +79,7 @@ bool PhaseSpaceFlag = false;
bool TouschekFlag = false, IBSFlag = false, TousTrackFlag = false;
char chamber_file[max_str];
-
+char multipole_file[max_str];
#define OLD_LATTICE
/* Read script */
@@ -105,7 +115,8 @@ void read_script(const char *param_file_name, bool rd_lat)
printf("cfg: %s",line);
LineNum++;
- if (strstr(line, "#") == NULL) {
+
+ if (strstr(line, "#") == NULL && strcmp(line,"\n") != 0) {
// get initial command token
sscanf(line, "%s", name);
@@ -139,6 +150,10 @@ void read_script(const char *param_file_name, bool rd_lat)
sscanf(line, "%*s %s", str);
sprintf(chamber_file,"%s%s", in_dir, str); /* add file directory of the chamber file*/
}
+ else if (strcmp("multipole_file", name) == 0){
+ sscanf(line, "%*s %s", str);
+ sprintf(multipole_file,"%s%s", in_dir, str); /* add file directory of the chamber file*/
+ }
/* read in bool flags */
else if (strcmp("ChamberFlag", name) == 0){
@@ -185,6 +200,20 @@ void read_script(const char *param_file_name, bool rd_lat)
exit_(1);
}
}
+
+ else if (strcmp("RFvoltageFlag", name) == 0){
+ sscanf(line, "%*s %s %lf", str,&RFvolt);
+ if(strcmp(str, "true") == 0)
+ RFvoltageFlag = true;
+ else if(strcmp(str, "false") == 0)
+ RFvoltageFlag = false;
+ else {
+ printf("set boolean flag true or false for RFvoltageFlag \n");
+ exit_(1);
+ }
+ }
+
+
else if (strcmp("TuneTracFlag", name) == 0){
sscanf(line, "%*s %s", str);
if(strcmp(str, "true") == 0)
@@ -209,28 +238,17 @@ void read_script(const char *param_file_name, bool rd_lat)
}
// FMA
else if (strcmp("FmapFlag", name) == 0){
- sscanf(line, "%*s %s", str);
- if(strcmp(str, "true") == 0)
- FmapFlag = true;
- else if(strcmp(str, "false") == 0)
- FmapFlag = false;
- else {
- printf("set boolean flag true or false for FmapFlag \n");
- exit_(1);
- }
- }
- else if (strcmp("ExperimentFMAFlag", name) == 0){
strcpy(dummy, "");
sscanf(line, "%*s %s %ld %ld %ld %lf %lf %lf %s", str,
&_FmapFlag_nxpoint, &_FmapFlag_nypoint,
&_FmapFlag_nturn, &_FmapFlag_xmax, &_FmapFlag_ymax,
&_FmapFlag_delta, dummy);
if(strcmp(str, "true") == 0)
- ExperimentFMAFlag = true;
+ FmapFlag = true;
else if(strcmp(str, "false") == 0)
- ExperimentFMAFlag= false;
+ FmapFlag= false;
else {
- printf("set boolean flag true or false for ExperimentFMAFlag \n");
+ printf("set boolean flag true or false for FMAFlag \n");
exit_(1);
}
if(strcmp(dummy, "true") == 0)
@@ -238,20 +256,33 @@ void read_script(const char *param_file_name, bool rd_lat)
else if(strcmp(dummy, "false") == 0)
_FmapFlag_diffusion = false;
else {
- printf("set boolean flag true or false for Diffusion (value is %s) \n", dummy);
+ printf("set boolean flag true or false for FMA Diffusion (value is %s) \n", dummy);
exit_(1);
}
}
- else if (strcmp("DetailedFMAFlag", name) == 0){
- sscanf(line, "%*s %s", str);
+ // FMA dp
+ else if (strcmp("FmapdpFlag", name) == 0){
+ strcpy(dummy, "");
+ sscanf(line, "%*s %s %ld %ld %ld %lf %lf %lf %s", str,
+ &_FmapdpFlag_nxpoint, &_FmapdpFlag_nepoint,
+ &_FmapdpFlag_nturn, &_FmapdpFlag_xmax, &_FmapdpFlag_emax,
+ &_FmapdpFlag_z, dummy);
if(strcmp(str, "true") == 0)
- DetailedFMAFlag = true;
+ FmapdpFlag = true;
else if(strcmp(str, "false") == 0)
- DetailedFMAFlag = false;
+ FmapdpFlag= false;
else {
- printf("set boolean flag true or false for DetailedFMAFlag \n");
+ printf("set boolean flag true or false for FMAdpFlag \n");
exit_(1);
}
+ if(strcmp(dummy, "true") == 0)
+ _FmapdpFlag_diffusion = true;
+ else if(strcmp(dummy, "false") == 0)
+ _FmapdpFlag_diffusion = false;
+ else {
+ printf("set boolean flag true or false for FMAdp Diffusion (value is %s) \n", dummy);
+ exit_(1);
+ }
}
else if (strcmp("AmplitudeTuneShiftFlag", name) == 0){
sscanf(line, "%*s %s %ld %ld %ld %lf %lf %lf", str, &_AmplitudeTuneShift_nxpoint,
@@ -280,7 +311,7 @@ void read_script(const char *param_file_name, bool rd_lat)
}
}
else if (strcmp("ErrorCouplingFlag", name) == 0){
- sscanf(line, "%*s %s", str);
+ sscanf(line, "%*s %s %ld %lf", str,&err_seed,&err_rms);
if(strcmp(str, "true") == 0)
ErrorCouplingFlag = true;
else if(strcmp(str, "false") == 0)
@@ -315,6 +346,17 @@ void read_script(const char *param_file_name, bool rd_lat)
printf("set boolean flag true or false for MomentumAccFlag \n");
exit_(1);
}
+ }
+ else if (strcmp("ReadMultipoleFlag", name) == 0){
+ sscanf(line, "%*s %s", str);
+ if(strcmp(str, "true") == 0)
+ ReadMultipoleFlag = true;
+ else if(strcmp(str, "false") == 0)
+ ReadMultipoleFlag = false;
+ else {
+ printf("set boolean flag true or false for ReadMultipoleFlag \n");
+ exit_(1);
+ }
}
else if (strcmp("MultipoleFlag", name) == 0){
sscanf(line, "%*s %s", str);
@@ -351,7 +393,7 @@ void read_script(const char *param_file_name, bool rd_lat)
sprintf(fic_skew,"%s%s", in_dir, str);
}
else if (strcmp("FitTuneFlag", name) == 0){
- sscanf(line, "%*s %s %lf %lf", str,&targetnux,&targetnuz);
+ sscanf(line, "%*s %s %s %s %lf %lf", str,qm1,qm2,&targetnux,&targetnuz);
if(strcmp(str, "true") == 0)
FitTuneFlag = true;
else if(strcmp(str, "false") == 0)
@@ -362,7 +404,7 @@ void read_script(const char *param_file_name, bool rd_lat)
}
}
else if (strcmp("FitChromFlag", name) == 0){
- sscanf(line, "%*s %s %lf %lf", str,&targetksix,&targetksiz);
+ sscanf(line, "%*s %s %s %s %lf %lf", str,sxm1,sxm2,&targetksix,&targetksiz);
if(strcmp(str, "true") == 0)
FitChromFlag = true;
else if(strcmp(str, "false") == 0)