diff --git a/tracy/tracy/inc/read_script.h b/tracy/tracy/inc/read_script.h index 202a66befae38b8cbe68a2a10bef9daecd188e37..e0a90e8aac83f50c06a3d4819c04519fbf1591f2 100644 --- a/tracy/tracy/inc/read_script.h +++ b/tracy/tracy/inc/read_script.h @@ -5,9 +5,7 @@ char CommandStr[max_str]; // bool flag name /***** parameters *******/ - //particle coordinates - double _x, _px, _y, _py, _delta, _ctau; - long _nmax; + //RFVoltFlag double RFvolt; // RF voltage @@ -31,6 +29,18 @@ //add coupling error to full/half quadrupoles long err_seed; double err_rms; + + //start track particle coordinates; PrintTrackFlag + char _PrintTrack_track_file[max_str]; + double _PrintTrack_x, _PrintTrack_px, _PrintTrack_y, + _PrintTrack_py, _PrintTrack_delta, _PrintTrack_ctau; + long _PrintTrack_nmax; + + //twiss file + char _PrintTwiss_twiss_file[max_str]; + + char _PrintCOD_cod_file[max_str]; + //AmplitudeTuneShiftFlag; char _AmplitudeTuneShift_nudx_file[max_str]; char _AmplitudeTuneShift_nudz_file[max_str]; @@ -80,6 +90,17 @@ //set default values UserCommand(void) //constructor { + /* start tracking coordinates */ + strcpy(_PrintTrack_track_file,"track.out"); + _PrintTrack_x = 0.001, _PrintTrack_px=0.0, _PrintTrack_y=0.0, + _PrintTrack_py=0.0, _PrintTrack_delta=0.0, _PrintTrack_ctau=0.0; + _PrintTrack_nmax=50L; + + /* twiss file */ + strcpy(_PrintTwiss_twiss_file,"twiss.out"); + + /*COD file*/ + strcpy(_PrintCOD_cod_file,"printcod.out"); // /* fmap for on momentum particle*/ strcpy(_FmapFlag_fmap_file,"fmap.out"); diff --git a/tracy/tracy/src/read_script.cc b/tracy/tracy/src/read_script.cc index d30d5ccd341ccb73b91935bf755aca37caf8a19c..86b659a29463356e6db68984b50c6c0d5e8c5329 100644 --- a/tracy/tracy/src/read_script.cc +++ b/tracy/tracy/src/read_script.cc @@ -28,12 +28,7 @@ ****************************************************************************/ /* files */ - //file with coordinates obtained by tracking -char track_file[max_str]; - //twiss file -char twiss_file[max_str]; - // cod file -char cod_file[max_str]; + // girder file char girder_file[max_str]; @@ -209,25 +204,36 @@ void read_script(const char *param_file_name, bool rd_lat, long& CommNo, UserCom } //print twiss parameters flag else if (strcmp("PrintTwissFlag", name) == 0){ - sscanf(line, "%*s %s", twiss_file); + sscanf(line, "%*s %s",nextpara); + + if(strcmp(nextpara,"voidpara")!=0) + sscanf(line, "%*s %s", UserCommandFlag[CommNo]._PrintTwiss_twiss_file); + strcpy(UserCommandFlag[CommNo].CommandStr,name); } //print close orbit(COD) flag else if (strcmp("PrintCODFlag", name) == 0){ - sscanf(line, "%*s %s", cod_file); - strcpy(UserCommandFlag[CommNo].CommandStr,name); + sscanf(line, "%*s %s",nextpara); + + if(strcmp(nextpara,"voidpara")!=0) + sscanf(line, "%*s %s", UserCommandFlag[CommNo]._PrintCOD_cod_file); + + strcpy(UserCommandFlag[CommNo].CommandStr,name); } //print the cooridinates using tracking at each element else if (strcmp("PrintTrackFlag", name) == 0){ - sscanf(line, "%*s %s", track_file); - sscanf(line, "%*s %*s %lf %lf %lf %lf %lf %lf %ld", - &(UserCommandFlag[CommNo]._x), - &(UserCommandFlag[CommNo]._px), - &(UserCommandFlag[CommNo]._y), - &(UserCommandFlag[CommNo]._py), - &(UserCommandFlag[CommNo]._delta), - &(UserCommandFlag[CommNo]._ctau), - &(UserCommandFlag[CommNo]._nmax)); + sscanf(line, "%*s %s",nextpara); + + if(strcmp(nextpara,"voidpara")!=0) + sscanf(line, "%*s %s %lf %lf %lf %lf %lf %lf %ld", + UserCommandFlag[CommNo]._PrintTrack_track_file, + &(UserCommandFlag[CommNo]._PrintTrack_x), + &(UserCommandFlag[CommNo]._PrintTrack_px), + &(UserCommandFlag[CommNo]._PrintTrack_y), + &(UserCommandFlag[CommNo]._PrintTrack_py), + &(UserCommandFlag[CommNo]._PrintTrack_delta), + &(UserCommandFlag[CommNo]._PrintTrack_ctau), + &(UserCommandFlag[CommNo]._PrintTrack_nmax)); strcpy(UserCommandFlag[CommNo].CommandStr,name); } //print close orbit(COD) flag