diff --git a/tracy/tracy/src/read_script.cc b/tracy/tracy/src/read_script.cc index df01376dc386b1cb2f6bc33043d56c7fbc2f8dd1..4893c4464e32900828b1bf2a3c4fb6aa25ff0967 100644 --- a/tracy/tracy/src/read_script.cc +++ b/tracy/tracy/src/read_script.cc @@ -45,7 +45,11 @@ char fic_hcorr[max_str],fic_vcorr[max_str], fic_skew[max_str]; /* COD correction */ int nwh = 56, nwv = 56; //number of singular values for SVD correction -//correction +/* ID compensation */ +char IDCq_name[max_str][11]; + + +//multipole field error correction (SOLEIL based) char hcorr_file[max_str], vcorr_file[max_str]; //files with the status of hcorr/vcorr status, //to choose which correctors are used for orbit correction //default name of special elements in lattice @@ -491,6 +495,22 @@ void read_script(const char *param_file_name, bool rd_lat, long& CommNo, UserCom else if (strcmp("nwv", name) == 0){ sscanf(line, "%*s %d", &nwv); } + //ID correction + else if (strcmp("IDCorrFlag", name) == 0) + strcpy(UserCommandFlag[CommNo].CommandStr,name); + else if (strcmp("N_calls", name) == 0) // ID correction parameters + sscanf(line, "%*s %d", &N_calls); + else if (strcmp("N_steps", name) == 0) + sscanf(line, "%*s %d", &N_steps); + else if (strcmp("N_Fam", name) == 0) + sscanf(line, "%*s %d", &N_Fam); + else if (strcmp("IDCquads", name) == 0) { + sscanf(line, "%*s %s %s %s %s %s %s %s %s %s %s %s", + IDCq_name[0], IDCq_name[1], IDCq_name[2], IDCq_name[3], + IDCq_name[4], IDCq_name[5], IDCq_name[6], IDCq_name[7], + IDCq_name[8], IDCq_name[9], IDCq_name[10]); + } +// } else if (strcmp("scl_nu", name) == 0) else{ printf("bad line in file %s, line %ld \n", full_param_file_name, LineNum); exit_(1);