diff --git a/tracy/tracy/inc/read_script.h b/tracy/tracy/inc/read_script.h index 2b5eed89e2ed065976a48f45b48aa319f0d27ae6..d1991ed3bbd42751320142e6336000b682f82fed 100644 --- a/tracy/tracy/inc/read_script.h +++ b/tracy/tracy/inc/read_script.h @@ -1,5 +1,8 @@ /* global flag, used in script_read() and main() for read the input from script*/ +extern bool CavityOnFlag; +extern bool QuadFringeOnFlag; + extern bool RFvoltageFlag; extern double RFvolt; extern bool TuneTracFlag; diff --git a/tracy/tracy/src/read_script.cc b/tracy/tracy/src/read_script.cc index ec444de1479c5c56f3164460cdcab3696029faf1..bc1b5b0040ea41d5a969ff65a7fa4db7cdc84aea 100644 --- a/tracy/tracy/src/read_script.cc +++ b/tracy/tracy/src/read_script.cc @@ -28,6 +28,9 @@ ****************************************************************************/ /* global flag, used in script_read() and main() for read the input from script*/ +bool CavityOnFlag = false; +bool QuadFringeOnFlag = false; + bool RFvoltageFlag =false; double RFvolt =0.0; bool TuneTracFlag = false; @@ -78,6 +81,7 @@ char fic_hcorr[max_str],fic_vcorr[max_str], fic_skew[max_str]; bool FitTuneFlag = false; char qf[max_str],qd[max_str]; double targetnux = 0.0, targetnuz = 0.0; /* specific for soleil lattice in which the quadrupole is cut into 2 parts*/ bool FitTune4Flag = false; char qf1[max_str],qf2[max_str],qd1[max_str],qd2[max_str]; + 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; @@ -168,100 +172,39 @@ void read_script(const char *param_file_name, bool rd_lat) /* read in bool flags */ else if (strcmp("ChamberFlag", name) == 0){ - sscanf(line, "%*s %s", str); - if(strcmp(str, "true") == 0) - ChamberFlag = true; - else if(strcmp(str, "false") == 0) - ChamberFlag = false; - else { - printf("set boolean flag true or false for ChamberFlag \n" ); - exit_(1); - } + ChamberFlag = true; } else if (strcmp("ChamberNoU20Flag", name) == 0){ - sscanf(line, "%*s %s", str); - if(strcmp(str, "true") == 0) ChamberNoU20Flag = true; - else if(strcmp(str, "false") == 0) - ChamberNoU20Flag = false; - else { - printf("set boolean flag true or false for ChamberNoU20Flag \n"); - exit_(1); - } } else if (strcmp("ReadChamberFlag", name) == 0){ - sscanf(line, "%*s %s", str); - if(strcmp(str, "true") == 0) ReadChamberFlag = true; - else if(strcmp(str, "false") == 0) - ReadChamberFlag = false; - else { - printf("set boolean flag true or false for ReadChamberFlag \n"); - exit_(1); - } } - else if (strcmp("globval.quad_fringe", name) == 0){ - sscanf(line, "%*s %s", str); - if(strcmp(str, "true") == 0) + else if (strcmp("QuadFringeOnFlag", name) == 0){ globval.quad_fringe = true; - else if(strcmp(str, "false") == 0) - globval.quad_fringe = false; - else { - printf("set boolean flag true or false for TuneTracFlag \n"); - 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) TuneTracFlag = true; - else if(strcmp(str, "false") == 0) - TuneTracFlag = false; - else { - printf("set boolean flag true or false for TuneTracFlag \n"); - exit_(1); - } } else if (strcmp("ChromTracFlag", name) == 0){ - sscanf(line, "%*s %s", str); - if(strcmp(str, "true") == 0) ChromTracFlag = true; - else if(strcmp(str, "false") == 0) - ChromTracFlag = false; - else { - printf("set boolean flag true or false for ChromTracFlag \n"); - exit_(1); - } } // FMA else if (strcmp("FmapFlag", name) == 0){ strcpy(dummy, ""); - sscanf(line, "%*s %s %ld %ld %ld %lf %lf %lf %s", str, + sscanf(line, "%*s %ld %ld %ld %lf %lf %lf %s", &_FmapFlag_nxpoint, &_FmapFlag_nypoint, &_FmapFlag_nturn, &_FmapFlag_xmax, &_FmapFlag_ymax, &_FmapFlag_delta, dummy); - if(strcmp(str, "true") == 0) + FmapFlag = true; - else if(strcmp(str, "false") == 0) - FmapFlag= false; - else { - printf("set boolean flag true or false for FMAFlag \n"); - exit_(1); - } + if(strcmp(dummy, "true") == 0) _FmapFlag_diffusion = true; else if(strcmp(dummy, "false") == 0) @@ -274,18 +217,13 @@ void read_script(const char *param_file_name, bool rd_lat) // FMA dp else if (strcmp("FmapdpFlag", name) == 0){ strcpy(dummy, ""); - sscanf(line, "%*s %s %ld %ld %ld %lf %lf %lf %s", str, + sscanf(line, "%*s %ld %ld %ld %lf %lf %lf %s", &_FmapdpFlag_nxpoint, &_FmapdpFlag_nepoint, &_FmapdpFlag_nturn, &_FmapdpFlag_xmax, &_FmapdpFlag_emax, &_FmapdpFlag_z, dummy); - if(strcmp(str, "true") == 0) + FmapdpFlag = true; - else if(strcmp(str, "false") == 0) - FmapdpFlag= false; - else { - 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) @@ -296,100 +234,56 @@ void read_script(const char *param_file_name, bool rd_lat) } } else if (strcmp("AmplitudeTuneShiftFlag", name) == 0){ - sscanf(line, "%*s %s %ld %ld %ld %lf %lf %lf", str, &_AmplitudeTuneShift_nxpoint, + sscanf(line, "%*s %ld %ld %ld %lf %lf %lf", &_AmplitudeTuneShift_nxpoint, &_AmplitudeTuneShift_nypoint, &_AmplitudeTuneShift_nturn, &_AmplitudeTuneShift_xmax, &_AmplitudeTuneShift_ymax, &_AmplitudeTuneShift_delta); - if(strcmp(str, "true") == 0) + AmplitudeTuneShiftFlag = true; - else if(strcmp(str, "false") == 0) - AmplitudeTuneShiftFlag = false; - else { - printf("set boolean flag true or false for AmplitudeTuneShiftFlag \n"); - exit_(1); - } + } else if (strcmp("EnergyTuneShiftFlag", name) == 0){ - sscanf(line, "%*s %s %ld %ld %lf", str, &_EnergyTuneShift_npoint, + sscanf(line, "%*s %ld %ld %lf", &_EnergyTuneShift_npoint, &_EnergyTuneShift_nturn, &_EnergyTuneShift_deltamax); - if(strcmp(str, "true") == 0) + EnergyTuneShiftFlag = true; - else if(strcmp(str, "false") == 0) - EnergyTuneShiftFlag = false; - else { - printf("set boolean flag true or false for EnergyTuneShiftFlag \n"); - exit_(1); - } + } else if (strcmp("ErrorCouplingFlag", name) == 0){ - sscanf(line, "%*s %s %ld %lf", str,&err_seed,&err_rms); - if(strcmp(str, "true") == 0) + sscanf(line, "%*s %ld %lf",&err_seed,&err_rms); + ErrorCouplingFlag = true; - else if(strcmp(str, "false") == 0) - ErrorCouplingFlag = false; - else { - printf("set boolean flag true or false for ErrorCouplingFlag \n"); - exit_(1); - } + } else if (strcmp("CouplingFlag", name) == 0){ - sscanf(line, "%*s %s", str); - if(strcmp(str, "true") == 0) + CouplingFlag = true; - else if(strcmp(str, "false") == 0) - CouplingFlag = false; - else { - printf("set boolean flag true or false for CouplingFlag \n"); - exit_(1); - } + } else if (strcmp("MomentumAccFlag", name) == 0){ - sscanf(line, "%*s %s %s %ld %ld %lf %lf %ld %lf %lf %ld", str,TrackDim, + sscanf(line, "%*s %s %ld %ld %lf %lf %ld %lf %lf %ld",TrackDim, &_MomentumAccFlag_istart, &_MomentumAccFlag_istop, &_MomentumAccFlag_deltaminp, &_MomentumAccFlag_deltamaxp, &_MomentumAccFlag_nstepp, &_MomentumAccFlag_deltaminn, &_MomentumAccFlag_deltamaxn, &_MomentumAccFlag_nstepn ); - if(strcmp(str, "true") == 0) + MomentumAccFlag = true; - else if(strcmp(str, "false") == 0) - MomentumAccFlag = false; - else { - 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); - if(strcmp(str, "true") == 0) + MultipoleFlag = true; - else if(strcmp(str, "false") == 0) - MultipoleFlag = false; - else { - printf("set boolean flag true or false for MultipoleFlag \n"); - exit_(1); - } + } else if (strcmp("ThinsextFlag", name) == 0){ - sscanf(line, "%*s %s", str); - if(strcmp(str, "true") == 0) + ThinsextFlag = true; - else if(strcmp(str, "false") == 0) - ThinsextFlag = false; - else { - printf("set boolean flag true or false for ThinsextFlag \n"); - exit_(1); - } + } else if (strcmp("fic_hcorr", name) == 0){// read of h-correctors for multipoles sscanf(line, "%*s %s", str); @@ -404,116 +298,59 @@ void read_script(const char *param_file_name, bool rd_lat) sprintf(fic_skew,"%s%s", in_dir, str); } // generic one, fit for 1 family of quadrupoles else if (strcmp("FitTuneFlag", name) == 0){ - sscanf(line, "%*s %s %s %s %lf %lf", str,qf,qd,&targetnux,&targetnuz); - if(strcmp(str, "true") == 0) + sscanf(line, "%*s %s %s %lf %lf",qf,qd,&targetnux,&targetnuz); + FitTuneFlag = true; - else if(strcmp(str, "false") == 0) - FitTuneFlag = false; - else { - printf("set boolean flag true or false for FitTuneFlag \n"); - exit_(1); - } + }// fit for 2 families,specific for the soleil lattice in which the quadrupole is cut into 2 parts else if (strcmp("FitTune4Flag", name) == 0){ - sscanf(line, "%*s %s %s %s %s %s %lf %lf", str,qf1,qf2,qd1,qd2,&targetnux,&targetnuz); - if(strcmp(str, "true") == 0) + sscanf(line, "%*s %s %s %s %s %lf %lf",qf1,qf2,qd1,qd2,&targetnux,&targetnuz); + FitTune4Flag = true; - else if(strcmp(str, "false") == 0) - FitTune4Flag = false; - else { - printf("set boolean flag true or false for FitTune4Flag \n"); - exit_(1); - } + } else if (strcmp("FitChromFlag", name) == 0){ - sscanf(line, "%*s %s %s %s %lf %lf", str,sxm1,sxm2,&targetksix,&targetksiz); - if(strcmp(str, "true") == 0) + sscanf(line, "%*s %s %s %lf %lf",sxm1,sxm2,&targetksix,&targetksiz); + FitChromFlag = true; - else if(strcmp(str, "false") == 0) - FitChromFlag = false; - else { - printf("set boolean flag true or false for FitChromFlag \n"); - exit_(1); - } + } else if (strcmp("GirderErrorFlag", name) == 0){ - sscanf(line, "%*s %s", str); - if(strcmp(str, "true") == 0) + GirderErrorFlag = true; - else if(strcmp(str, "false") == 0) - GirderErrorFlag = false; - else { - printf("set boolean flag true or false for GirderErrorFlag \n"); - exit_(1); - } + } else if (strcmp("SigmaFlag", name) == 0){ - sscanf(line, "%*s %s", str); - if(strcmp(str, "true") == 0) + SigmaFlag = true; - else if(strcmp(str, "false") == 0) - SigmaFlag = false; - else { - printf("set boolean flag true or false for SigmaFlag \n"); - exit_(1); - } + } else if (strcmp("PX2Flag", name) == 0){ - sscanf(line, "%*s %s", str); - if(strcmp(str, "true") == 0) + PX2Flag = true; - else if(strcmp(str, "false") == 0) - PX2Flag = false; - else { - printf("set boolean flag true or false for PX2Flag \n"); - exit_(1); - } + } else if (strcmp("InducedAmplitudeFlag", name) == 0){ - sscanf(line, "%*s %s", str); - if(strcmp(str, "true") == 0) + InducedAmplitudeFlag = true; - else if(strcmp(str, "false") == 0) - InducedAmplitudeFlag = false; - else { - printf("set boolean flag true or false for InducedAmplitudeFlag \n" ); - exit_(1); - } + } else if (strcmp("CodeComparaisonFlag", name) == 0){ - sscanf(line, "%*s %s", str); - if(strcmp(str, "true") == 0) + CodeComparaisonFlag = true; - else if(strcmp(str, "false") == 0) - CodeComparaisonFlag = false; - else { - printf("set boolean flag true or false for CodeComparaisonFlag \n" ); - exit_(1); - } + } else if (strcmp("EtaFlag", name) == 0){ - sscanf(line, "%*s %s", str); - if(strcmp(str, "true") == 0) + EtaFlag = true; - else if(strcmp(str, "false") == 0) - EtaFlag = false; - else { - printf("set boolean flag true or false for EtaFlag \n" ); - exit_(1); - } + } // include RF cavity and set 4/6 D tracking // true=6D, false=4D - else if (strcmp("globval.Cavity_on", name) == 0){ - sscanf(line, "%*s %s", str); - if(strcmp(str, "true") == 0) + else if (strcmp("CavityOnFlag", name) == 0){ + globval.Cavity_on = true; - else if(strcmp(str, "false") == 0) - globval.Cavity_on = false; - else { - printf("set boolean flag true or false for globval.Cavity_on \n" ); - exit_(1); - } + } else if (strcmp("PhaseSpaceFlag", name) == 0) { sscanf(line, "%*s %s %lf %lf %lf %lf %lf %lf %ld %s", _Phase_Dim, &_Phase_X, &_Phase_Px, &_Phase_Y, &_Phase_Py, &_Phase_delta, @@ -527,39 +364,22 @@ void read_script(const char *param_file_name, bool rd_lat) exit_(1); } PhaseSpaceFlag = true; - } else if (strcmp("TouschekFlag", name) == 0){ - sscanf(line, "%*s %s", str); - if(strcmp(str, "true") == 0) + } + //calculate Touschek lifetime + else if (strcmp("TouschekFlag", name) == 0){ + TouschekFlag = true; - else if(strcmp(str, "false") == 0) - TouschekFlag = false; - else { - printf("set boolean flag true or false for TouschekFlag \n" ); - exit_(1); - } - + } else if (strcmp("IBSFlag", name) == 0){ - sscanf(line, "%*s %s", str); - if(strcmp(str, "true") == 0) + IBSFlag = true; - else if(strcmp(str, "false") == 0) - IBSFlag = false; - else { - printf("set boolean flag true or false for IBSFlag \n" ); - exit_(1); - } + } else if (strcmp("TousTrackFlag", name) == 0){ - sscanf(line, "%*s %s", str); - if(strcmp(str, "true") == 0) + TousTrackFlag = true; - else if(strcmp(str, "false") == 0) - TousTrackFlag = false; - else { - printf("set boolean flag true or false for TousTrackFlag \n" ); - exit_(1); - } + } else {