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 {