Index: /trunk/Cosmo/RadioBeam/pknoise.cc
===================================================================
--- /trunk/Cosmo/RadioBeam/pknoise.cc	(revision 3947)
+++ /trunk/Cosmo/RadioBeam/pknoise.cc	(revision 3948)
@@ -43,8 +43,9 @@
        << "    -noise NoiseLevel (default=1.) \n"
        << "    -renmax MaxValue (default : Do NOT renormalize 2D response value \n"   
-       << "    -scut SCutValue (default=100.) \n"
        << "    -ngen NGen (default=0) number of noise fourier amp generations \n"
        << "       NGen=0 -> Call ComputeNoisePk(), else generate Fourier Amplitudes (random) \n"
        << "    -z redshift (default=0.7) \n"
+       << "    -scut SCutValue (default= -100.) \n"
+       << "       if SCutValue<0. ==> SCut=MinNoisePower*(-SCutValue) \n"
        << "    -prt PrtLev,PrtModulo (default=0,10) " << endl;
   return;
@@ -76,5 +77,7 @@
   double rmax=1.;
   int NMAX = 0;
-  double SCut=0.;
+  double SCut=-100.;
+  bool fgautoscut=true;
+  double FacSCut=-SCut;
   double z_Redshift=0.7 ;  // 21 cm at z=0.7 -> 0.357 m  
   int prtlev=0;
@@ -92,4 +95,5 @@
     else if (strcmp(arg[ka],"-scut")==0) {
       SCut=atof(arg[ka+1]);    ka+=2; 
+      if (SCut<0.) { FacSCut=-SCut;  fgautoscut=true; }
     }
     else if (strcmp(arg[ka],"-ngen")==0) {
@@ -154,5 +158,12 @@
     else cout << " pknoise[1]: Four2DResponse ( Diameter=" << DIAMETRE << " Lambda= " << lambda
 	      << " DoL=" << DIAMETRE/lambda << " ) " << endl;
-
+    Histo2D h2drep = arep_p->GetResponse();
+    double repmax= h2drep.VMax();
+    if (fgautoscut) {
+      SCut = FacSCut/repmax;
+      cout << " pknoise[1.b]: Four2DResponse.RepMax=" << repmax << " --> SCut=" << FacSCut << "/repmax=" 
+	   << SCut << endl;
+    }
+    else cout << " pknoise[1.b]: Four2DResponse.RepMax=" << repmax << " , SCut=" << SCut << endl;
     
     cout << " pknoise[2]: Instanciating object type Four3DPk  " << endl;
@@ -167,4 +178,5 @@
       pkn.SetPrtLevel(prtlev,prtmod);
       HProf hpn = pkn.Compute();
+      cout << " pknoise[3.b]: writing hpn noise profile to " << outfile << endl;
       po << hpn;
     }
@@ -173,14 +185,13 @@
       DataTable dtnoise;
       HProf hpn = m3d.ComputeNoisePk(*(arep_p),fracmodok,dtnoise,SCut);
-      po << hpn;
-      string outfile2 = "x"+outfile;
-      POutPersist po2(outfile2);
       HProf h1dnoise=arep_p->GetProjNoiseLevel();
       HProf h1drep=arep_p->GetProjResponse();
-      po2 << PPFNameTag("dtnoise") << dtnoise;
-      po2 << PPFNameTag("hpnoise") << hpn;
-      po2 << PPFNameTag("fracmodok") << fracmodok;
-      po2 << PPFNameTag("h1dnoise") << h1dnoise;
-      po2 << PPFNameTag("h1drep") << h1drep;
+      cout << " pknoise[3.b]: writing dtnoise,hpn,h2rep... with tags to " << outfile << endl;
+      po << PPFNameTag("dtnoise") << dtnoise;
+      po << PPFNameTag("hpnoise") << hpn;
+      po << PPFNameTag("fracmodok") << fracmodok;
+      po << PPFNameTag("h1dnoise") << h1dnoise;
+      po << PPFNameTag("h1drep") << h1drep;
+      po << PPFNameTag("h2drep") << h2drep;
     }
     rc = 0;
Index: /trunk/Cosmo/RadioBeam/repicon.cc
===================================================================
--- /trunk/Cosmo/RadioBeam/repicon.cc	(revision 3947)
+++ /trunk/Cosmo/RadioBeam/repicon.cc	(revision 3948)
@@ -43,10 +43,10 @@
   cout << " Usage: repicon [-parname Value] configId OutPPFName \n" 
        << " configIds: f4x4,f8x8,f11x11,f20x20, confA,confB,confC,confD, hex12,cross11, \n" 
-       <<  "           f3cyl,f8cyl,f3cylp,f8cylp, nan12,nan24,nan36,nan40,nan128 \n"
+       <<  "           f4cyl,f8cyl,f4cylp,f4cylp, nan12,nan24,nan36,nan40,nan128 \n"
        << "   f4x4 , f8x8 , f11x11 , f20x20 Filled array of nxn dishes  \n" 
        << "   confA , confB, confC, confD : semi-filled array of dishes \n"
        << "   hex12,cross11 : ASKAP like double hexagonal (12xD=12m), cross config (11xD=12m) \n"
        << "   nan12,nan24,nan36,nan40,nan128: 3,4,6,5,8 cylinder like configurations with 12,24,36,40,128 dishes\n"
-       << "   f3cyl, f8cyl , f3cylp, f8cylp : filled array of non perfect/perfect of n cylinders \n"
+       << "   f4cyl, f8cyl , f4cylp, f8cylp : filled array of non perfect/perfect of n cylinders \n"
        << "   f4cylw : filled array of 4 perfect of wide cylinders \n"
        << "   pit2cyl,pit2cylw : 2 cylinders 15mx7m, 20mx10 for z=0.3 at Pittsburg (perfect) \n"
@@ -159,6 +159,6 @@
     double cylW=12.;   // Largeur des cylindres 
     double cylRL=2*LAMBDA;  // Longeur des elements de reception le long du cylindre
-    double etaW=0.95;   // Efficacite de couverture en largeur
-    double etaRL=0.9;   // Efficacite de couverture le long du cylindre
+    double etaW=0.9;   // Efficacite de couverture en largeur
+    double etaRL=0.8;   // Efficacite de couverture le long du cylindre
 
     vector<Dish> vdishes;
@@ -178,11 +178,11 @@
       vdishes=CreateFilledSqConfig(20,Ddish, Eta);
     }
-    else if (config=="f3cyl") {
-      cylW=10.;   cylRL=2*LAMBDA; 
-      vdishes=CreateFilledCylConfig(3, 92, cylW, cylRL, etaW, etaRL, true);
-    }
-    else if (config=="f3cylp") {
-      cylW=10.;   cylRL=2*LAMBDA; 
-      vdishes=CreateFilledCylConfig(3, 92, cylW, cylRL, etaW, etaRL, false);
+    else if (config=="f4cyl") {
+      cylW=12.;   cylRL=2*LAMBDA; 
+      vdishes=CreateFilledCylConfig(4, 100, cylW, cylRL, etaW, etaRL, true);
+    }
+    else if (config=="f4cylp") {
+      cylW=12.;   cylRL=2*LAMBDA; 
+      vdishes=CreateFilledCylConfig(4, 100, cylW, cylRL, etaW, etaRL, false);
     }
     else if (config=="f4cylw") {
@@ -207,9 +207,9 @@
     else if (config=="f8cyl") {
       cylW=12.;   cylRL=2*LAMBDA; 
-      vdishes=CreateFilledCylConfig(8, 160, cylW, cylRL, etaW, etaRL, true);
+      vdishes=CreateFilledCylConfig(8, 120, cylW, cylRL, etaW, etaRL, true);
     }
     else if (config=="f8cylp") {
       cylW=12.;   cylRL=2*LAMBDA; 
-      vdishes=CreateFilledCylConfig(8, 160, cylW, cylRL, etaW, etaRL, false);
+      vdishes=CreateFilledCylConfig(8, 120, cylW, cylRL, etaW, etaRL, false);
     }
     else if (config=="confA") {
