diff --git a/tracy/tools/soltracy.cc b/tracy/tools/soltracy.cc index f4d5db3b2dddecb6be31380dec7a5156cb44fcb9..3ef4445e76620d4062ecb3c9223906609451f71a 100644 --- a/tracy/tools/soltracy.cc +++ b/tracy/tools/soltracy.cc @@ -550,7 +550,8 @@ int main(int argc, char *argv[]) { UserCommandFlag[i]._MomentumAccFlag_deltaminn, UserCommandFlag[i]._MomentumAccFlag_deltamaxn, UserCommandFlag[i]._MomentumAccFlag_nstepn, - UserCommandFlag[i]._MomentumAccFlag_nturn); + UserCommandFlag[i]._MomentumAccFlag_nturn, + UserCommandFlag[i]._MomentumAccFlag_zmax); /* restore the initial values*/ globval.Cavity_on = cavityflag; diff --git a/tracy/tracy/doc/Soltracy3_UserManual_developer.docx b/tracy/tracy/doc/Soltracy3_UserManual_developer.docx index 50c2a775a9200eee3bb1d74e023a4ba07a78a103..5b3b9f915ad8723351286565b998f8d9a72f7944 100644 Binary files a/tracy/tracy/doc/Soltracy3_UserManual_developer.docx and b/tracy/tracy/doc/Soltracy3_UserManual_developer.docx differ diff --git a/tracy/tracy/inc/read_script.h b/tracy/tracy/inc/read_script.h index e0a90e8aac83f50c06a3d4819c04519fbf1591f2..06a1fe56908fb207343f57af09a6bc5266838ef1 100644 --- a/tracy/tracy/inc/read_script.h +++ b/tracy/tracy/inc/read_script.h @@ -74,7 +74,8 @@ _MomentumAccFlag_nturn; double _MomentumAccFlag_deltaminn, _MomentumAccFlag_deltamaxn; double _MomentumAccFlag_deltaminp, _MomentumAccFlag_deltamaxp; - + double _MomentumAccFlag_zmax; + // /* Phase space */ //char *_Phase_phase_file; char _Phase_phase_file[max_str]; @@ -137,6 +138,7 @@ strcpy(_EnergyTuneShift_nudp_file,"nudp.out"); _MomentumAccFlag_deltaminn=-0.01, _MomentumAccFlag_deltamaxn=-0.05; _MomentumAccFlag_deltaminp=0.01, _MomentumAccFlag_deltamaxp=0.05; _MomentumAccFlag_nturn = 1026; + _MomentumAccFlag_zmax = 0.0003; //[m] /* Phase space */ strcpy(_Phase_phase_file,"phase.out"); //default phase file diff --git a/tracy/tracy/inc/soleillib.h b/tracy/tracy/inc/soleillib.h index 28b28aa3dfdb526bb25a852024008670b79f86c2..3ad771b679d18042ca4c233a8057526fc46a0954 100644 --- a/tracy/tracy/inc/soleillib.h +++ b/tracy/tracy/inc/soleillib.h @@ -35,7 +35,7 @@ void Multipole_thicksext(const char *fic_hcorr, const char *fic_vcorr, const cha void Multipole_thinsext(const char *fic_hcorr, const char *fic_vcorr, const char *fic_skew); void MomentumAcceptance(char *MomAccFile,long deb, long fin, double ep_min, double ep_max, long nstepp, double em_min, double em_max, - long nstepm, long nturn); + long nstepm, long nturn, double zmax); void Trac_Tab(double x, double px, double y, double py, double dp, long nmax, long pos, long *lastn, long *lastpos, FILE *outf1, double Tx[][NTURN]); diff --git a/tracy/tracy/src/read_script.cc b/tracy/tracy/src/read_script.cc index 86b659a29463356e6db68984b50c6c0d5e8c5329..df01376dc386b1cb2f6bc33043d56c7fbc2f8dd1 100644 --- a/tracy/tracy/src/read_script.cc +++ b/tracy/tracy/src/read_script.cc @@ -345,7 +345,7 @@ void read_script(const char *param_file_name, bool rd_lat, long& CommNo, UserCom sscanf(line, "%*s %s",nextpara); if(strcmp(nextpara,"voidpara")!=0){ - sscanf(line, "%*s %s %s %ld %ld %lf %lf %ld %lf %lf %ld %ld", + sscanf(line, "%*s %s %s %ld %ld %lf %lf %ld %lf %lf %ld %ld %lf", UserCommandFlag[CommNo]._MomentumAccFlag_momacc_file, UserCommandFlag[CommNo]._MomentumAccFlag_TrackDim, &(UserCommandFlag[CommNo]._MomentumAccFlag_istart), @@ -356,7 +356,8 @@ void read_script(const char *param_file_name, bool rd_lat, long& CommNo, UserCom &(UserCommandFlag[CommNo]._MomentumAccFlag_deltaminn), &(UserCommandFlag[CommNo]._MomentumAccFlag_deltamaxn), &(UserCommandFlag[CommNo]._MomentumAccFlag_nstepn), - &(UserCommandFlag[CommNo]._MomentumAccFlag_nturn)); + &(UserCommandFlag[CommNo]._MomentumAccFlag_nturn), + &(UserCommandFlag[CommNo]._MomentumAccFlag_zmax)); } strcpy(UserCommandFlag[CommNo].CommandStr,name); } diff --git a/tracy/tracy/src/soleillib.cc b/tracy/tracy/src/soleillib.cc index bc39b53e800def075512dfda41eaa50086e8aa24..985973899e776cf370b9dee7f763ab058cf2f067 100644 --- a/tracy/tracy/src/soleillib.cc +++ b/tracy/tracy/src/soleillib.cc @@ -3009,11 +3009,13 @@ void SetSkewQuad(void) fix the bug in the vertical closed orbit when calling Trac( ). 19/07/11 add the interface to save calculated momentum compact factor in the user defined file. + add interface for user to define the start vertical amplitude at the + entrance lattice element which is used to find the 6D closed orbit. ****************************************************************************/ void MomentumAcceptance(char *MomAccFile, long deb, long fin, double ep_min, double ep_max, long nstepp, double em_min, - double em_max, long nstepm, long nturn) + double em_max, long nstepm, long nturn, double zmax) { double dP = 0.0, dp1 = 0.0, dp2 = 0.0; long lastpos = 0L,lastn = 0L; @@ -3022,8 +3024,7 @@ void MomentumAcceptance(char *MomAccFile, long deb, long fin, double x = 0.0, px = 0.0, z = 0.0, pz = 0.0, ctau0 = 0.0, delta = 0.0; Vector x0; FILE *outf2, *outf1; - // Nonzero vertical amplitude - const double zmax = 0.3e-3; // 0.3 mm at the ring entrance (element 1) + double **tabz0, **tabpz0; struct tm *newtime; // for time Vector codvector[Cell_nLocMax];