From 2f2c5497702bb5df7cde7dd2f6bdd91a50b290b8 Mon Sep 17 00:00:00 2001
From: zhang <zhang@9a6e40ed-f3a0-4838-9b4a-bf418f78e88d>
Date: Thu, 24 Feb 2011 11:21:03 +0000
Subject: [PATCH] 24/02/2011

1)  In Printlatt( ),user can define the file name to save twiss parameters.
---
 tracy/tools/soltracy.cc         | 17 ++++++++++++-----
 tracy/tracy/src/soleilcommon.cc |  2 +-
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/tracy/tools/soltracy.cc b/tracy/tools/soltracy.cc
index 892de98..9dd1ba6 100644
--- a/tracy/tools/soltracy.cc
+++ b/tracy/tools/soltracy.cc
@@ -80,8 +80,15 @@ int main(int argc, char *argv[]) {
    //assign user defined command
     strcpy(CommandStr,UserCommand[i]); 
     
+    //print the twiss paramters in a file defined by the name
+    if(strcmp(CommandStr,"PrintTwissFlag") == 0) {
+      cout << "\n";
+      cout << "print the twiss parameters to file: "<< twiss_file << "\n";
+      printlatt(twiss_file);  
+   }
+    
     //turn on flag for quadrupole fringe field
-    if(strcmp(CommandStr,"QuadFringeOnFlag") == 0) {
+   else if(strcmp(CommandStr,"QuadFringeOnFlag") == 0) {
       globval.quad_fringe = true;
       cout << "\n";
       cout << "globval.quad_fringe is " << globval.quad_fringe << "\n";
@@ -222,7 +229,7 @@ int main(int argc, char *argv[]) {
  // if (CouplingFlag == true) {
   else if(strcmp(CommandStr,"CouplingFlag") == 0) {
     Ring_GetTwiss(chroma = true, 0.0); /* Compute and get Twiss parameters */
-    printlatt(); /* dump linear lattice functions into "linlat.dat" */
+    printlatt("linlat_coupling.out"); /* dump linear lattice functions into "linlat.dat" */
    // GetEmittance(ElemIndex("cav"), true);  //only for test
     Coupling_Edwards_Teng();
     Ring_GetTwiss(chroma = true, 0.0); /* Compute and get Twiss parameters */
@@ -236,7 +243,7 @@ int main(int argc, char *argv[]) {
     SetErr(err_seed, err_rms);
     prtmfile("flat_file_errcoupling_full.dat"); //print the elements with rotation errors
     Ring_GetTwiss(chroma = true, 0.0); /* Compute and get Twiss parameters */
-    printlatt(); /* dump linear lattice functions into "linlat.dat" */
+    printlatt("linlat_errcoupling.out"); /* dump linear lattice functions into "linlat.dat" */
     Coupling_Edwards_Teng();
    // GetEmittance(ElemIndex("cav"), true); //only for test
     Ring_GetTwiss(chroma = true, 0.0); /* Compute and get Twiss parameters */
@@ -251,7 +258,7 @@ int main(int argc, char *argv[]) {
     SetErr2(err_seed, err_rms);
     prtmfile("flat_file_errcoupling_half.dat"); //print the elements with rotation errors
     Ring_GetTwiss(chroma = true, 0.0); /* Compute and get Twiss parameters */
-    printlatt(); /* dump linear lattice functions into "linlat.dat" */
+    printlatt("linlat_errcoupling2.out"); /* dump linear lattice functions into "linlat.dat" */
     Coupling_Edwards_Teng();
    // GetEmittance(ElemIndex("cav"), true);
    Ring_GetTwiss(chroma = true, 0.0); /* Compute and get Twiss parameters */
@@ -376,7 +383,7 @@ int main(int argc, char *argv[]) {
     for (int ii = 0; ii <= 40; ii++) {
       dP = -0.02 + 0.001 * ii;
       Ring_GetTwiss(chroma = false, dP); /* Compute and get Twiss parameters */
-      printlatt(); /* dump linear lattice functions into "linlat.dat" */
+      printlatt("linlat_eta.out"); /* dump linear lattice functions into "linlat.dat" */
       getcod(dP, lastpos);
       //     printcod();
       prt_cod("cod.out", globval.bpm, true);
diff --git a/tracy/tracy/src/soleilcommon.cc b/tracy/tracy/src/soleilcommon.cc
index 781f240..1701f0f 100644
--- a/tracy/tracy/src/soleilcommon.cc
+++ b/tracy/tracy/src/soleilcommon.cc
@@ -217,7 +217,7 @@ void Read_Lattice(char *fic)
     }
   } 
   /* SOLEIL print out lattice functions, with all the optical information for the lattice with design values */
-  printlatt();  
+  printlatt("linlat.out");  
   printglob();
 }
 
-- 
GitLab