From bf53636928f04119f6a13c3a777bae09fbe5d01a Mon Sep 17 00:00:00 2001 From: zhang <zhang@9a6e40ed-f3a0-4838-9b4a-bf418f78e88d> Date: Tue, 11 Oct 2011 16:35:46 +0000 Subject: [PATCH] Add features to do ID correction. (Based on the functions in nsrl-ii_lib.cc) --- tracy/tracy/src/read_script.cc | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/tracy/tracy/src/read_script.cc b/tracy/tracy/src/read_script.cc index df01376..4893c44 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); -- GitLab