Skip to content
Snippets Groups Projects
Commit 77f952fc authored by zhang's avatar zhang
Browse files

1) Add feature to read virtual source of coupling for soleil lattice

2) Add feature to turn off quadrupole fringe field.
3) Separate misalignment errors and COD correction.
parent 41e4b7af
No related branches found
No related tags found
No related merge requests found
......@@ -34,10 +34,12 @@ char girder_file[max_str];
// multipole files
// multipole files; for soleil lattice
char multipole_file[max_str];
// multipole file for soleil lattice
char fic_hcorr[max_str],fic_vcorr[max_str], fic_skew[max_str];
// files to set sources of coupling; for SOLEIL lattice
char virtualskewquad_file[max_str];
//errors
//char fe_file[max_str]; //the same as multipole_file[max_str]????
......@@ -161,11 +163,18 @@ void read_script(const char *param_file_name, bool rd_lat, long& CommNo, UserCom
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 multipole file*/
} //virtual skew quadrupole file; for soleil lattice
else if (strcmp("virtualskewquad_file", name) == 0){
sscanf(line, "%*s %s", str);
sprintf(virtualskewquad_file,"%s%s", in_dir, str); /* add file directory of the multipole file*/
}
/* read in bool flags */
else if (strcmp("QuadFringeOnFlag", name) == 0){
strcpy(UserCommandFlag[CommNo].CommandStr,name);
}
else if (strcmp("QuadFringeOffFlag", name) == 0){
strcpy(UserCommandFlag[CommNo].CommandStr,name);
}
else if (strcmp("RFvoltageFlag", name) == 0){
sscanf(line, "%*s %lf", &(UserCommandFlag[CommNo].RFvolt));
......@@ -190,12 +199,9 @@ void read_script(const char *param_file_name, bool rd_lat, long& CommNo, UserCom
sprintf(UserCommandFlag[CommNo].ae_file,"%s%s", in_dir, str);
strcpy(UserCommandFlag[CommNo].CommandStr,name);
}
//read multipole errors; specific for SOLEIL lattice
else if (strcmp("ReadMultipoleFlag", name) == 0){
strcpy(UserCommandFlag[CommNo].CommandStr,name);
}else if (strcmp("fic_hcorr", name) == 0){// read of h-correctors for multipoles
sscanf(line, "%*s %s", str);
sprintf(fic_hcorr,"%s%s", in_dir, str);
......@@ -205,6 +211,10 @@ void read_script(const char *param_file_name, bool rd_lat, long& CommNo, UserCom
}else if (strcmp("fic_skew", name) == 0){// read of skew quads for multipoles
sscanf(line, "%*s %s", str);
sprintf(fic_skew,"%s%s", in_dir, str);
}
// for soleil lattice
else if (strcmp("ReadVirtualSkewquadFlag", name) == 0){
strcpy(UserCommandFlag[CommNo].CommandStr,name);
}
//print twiss parameters flag
else if (strcmp("PrintTwissFlag", name) == 0){
......@@ -445,16 +455,7 @@ void read_script(const char *param_file_name, bool rd_lat, long& CommNo, UserCom
else if (strcmp("TousTrackFlag", name) == 0){
strcpy(UserCommandFlag[CommNo].CommandStr,name);
}
//correctors for COD correction
else if (strcmp("hcorr_file", name) == 0){
sscanf(line, "%*s %s", str);
sprintf(hcorr_file,"%s%s", in_dir, str); /* add file directory of the multipole file*/
}
else if (strcmp("vcorr_file", name) == 0){
sscanf(line, "%*s %s", str);
sprintf(vcorr_file,"%s%s", in_dir, str); /* add file directory of the multipole file*/
}
//bpms and h/v correctors used for orbit correction
else if (strcmp("bpm_name", name) == 0){
sscanf(line, "%*s %s", bpm_name); /* the name of bpm */
}
......@@ -473,27 +474,32 @@ void read_script(const char *param_file_name, bool rd_lat, long& CommNo, UserCom
else if (strcmp("ge", name) == 0){
sscanf(line, "%*s %s", ge_name); /* name of end of the girder */
}
else if (strcmp("normalcut", name) == 0){
sscanf(line, "%*s %d", &idummy);
fprintf(stdout,"User value for cutting at n sigma-s the normal distributions\n");
setrancut(idummy); /* set normal cut for computation: random data are n sigma-s*/
}
//flag to do orbit correction
else if (strcmp("CODCorrectFlag", name) == 0){
strcpy(UserCommandFlag[CommNo].CommandStr,name);
}
//set parameters for COD correction
else if (strcmp("n_orbit", name) == 0){
sscanf(line, "%*s %d", &n_orbit);
}
else if (strcmp("n_scale", name) == 0){
sscanf(line, "%*s %d", &n_scale);
}
else if (strcmp("n_stat", name) == 0){
sscanf(line, "%*s %d", &n_stat);
}
else if (strcmp("nwh", name) == 0){
sscanf(line, "%*s %d", &nwh);
}
else if (strcmp("nwv", name) == 0){
sscanf(line, "%*s %d", &nwv);
}
else if (strcmp("hcorr_file", name) == 0){
sscanf(line, "%*s %s", str);
sprintf(hcorr_file,"%s%s", in_dir, str); /* add file directory*/
}
else if (strcmp("vcorr_file", name) == 0){
sscanf(line, "%*s %s", str);
sprintf(vcorr_file,"%s%s", in_dir, str); /* add file directory*/
}
//ID correction
else if (strcmp("IDCorrFlag", name) == 0)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment