Changeset 3792 in Sophya for trunk/Cosmo/RadioBeam/pknoise.cc


Ignore:
Timestamp:
Jun 28, 2010, 6:06:00 PM (15 years ago)
Author:
ansari
Message:

Ajout du programme de calcul et sauvegarde reponse interfero, Reza 28/06/2010

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Cosmo/RadioBeam/pknoise.cc

    r3769 r3792  
    99#include "mdish.h"
    1010#include "specpk.h"
     11#include "interfconfigs.h"
     12
    1113#include "histinit.h"
    1214// #include "fiosinit.h"
     
    5557};
    5658
    57 //-----------------------------------------------------------------------------------
    58 //  Fonctions de creation de configuration d'interfero avec des dishs
    59 //-----------------------------------------------------------------------------------
    60 
    61 vector<Dish> CreateFilledSqConfig(int nd, double Ddish=5., double Eta=0.9);
    62 vector<Dish> CreateSemiFilledSqConfig(int nd, double Ddish=5., double Eta=0.9);
    63 vector<Dish> CreateConfigA(double Ddish=5., double Eta=0.9);
    64 vector<Dish> CreateConfigB(double Ddish=5., double Eta=0.9);
    65 vector<Dish> CreateConfigC(double Ddish=5., double Eta=0.9);
    66 vector<Dish> CreateConfigD(double Ddish=5., double Eta=0.9);
    67 
    68 
    69 vector<Dish> CreateFilledCylConfig(int ncyl,  int nRL, double cylW=10., double cylRL=0.5,
    70                                    double etaW=0.9, double etaRL=0.9, bool fgscid=true);
    7159
    7260
     
    352340
    353341
    354 //-----------------------------------------------------------------------------------
    355 //-----------------------------------------------------------------------------------
    356 //  Fonctions de creation de configuration d'interfero avec des dishs
    357 //-----------------------------------------------------------------------------------
    358 /* --Fonction -- */
    359 vector<Dish> CreateFilledSqConfig(int nd, double Ddish, double Eta)
    360 {
    361   vector<Dish>  vd;
    362   int cnt=0;
    363   for(int i=0; i<nd; i++)
    364     for(int j=0; j<nd; j++) {
    365       cnt++;
    366       vd.push_back(Dish(cnt, i*Ddish, j*Ddish, Eta*Ddish));
    367     }
    368   cout << ">>>CreateFilledSqConfig(" << nd << "," << Ddish << "," << Eta << ") ---> NDishes=" << vd.size() << endl;
    369  
    370   return vd;
    371 }
    372 
    373 /* --Fonction -- */
    374 vector<Dish> CreateSemiFilledSqConfig(int nd, double Ddish, double Eta)
    375 {
    376   vector<Dish>  vd;
    377   int cnt=0;
    378   int fgst=1;
    379   for(int i=0; i<nd; i++) {
    380     fgst = (fgst+1)%2;
    381     for(int j=0; j<nd; j++) {
    382       if (j%2==fgst)  continue;
    383       cnt++;
    384       vd.push_back(Dish(cnt, i*Ddish, j*Ddish, Eta*Ddish));
    385     }
    386   }
    387   cout << ">>>CreateSemiFilledSqConfig(" << nd << "," << Ddish << "," << Eta << ") ---> NDishes=" << vd.size() << endl;
    388  
    389   return vd;
    390 }
    391 
    392 /* --Fonction -- */
    393 vector<Dish> CreateConfigA(double Ddish, double Eta)
    394 {
    395   vector<Dish>  vd;
    396   int cnt=0;
    397   for(int i=0; i<18; i++) {
    398     cnt++; vd.push_back(Dish(cnt, i*Ddish,0.,Eta*Ddish));
    399     cnt++; vd.push_back(Dish(cnt, i*Ddish, 17.*Ddish,Eta*Ddish));
    400     if ((i>0)&&(i<17)) {
    401       cnt++; vd.push_back(Dish(cnt,0.,i*Ddish,Eta*Ddish));
    402       cnt++; vd.push_back(Dish(cnt,17.*Ddish,i*Ddish,Eta*Ddish));
    403     }
    404   }
    405   cout << ">>>CreateConfigA(" << Ddish << "," << Eta << ") ---> NDishes=" << vd.size() << endl;
    406   return vd;
    407 }
    408 
    409 /* --Fonction -- */
    410 vector<Dish> CreateConfigB(double Ddish, double Eta)
    411 {
    412   vector<Dish>  vd;
    413   int cnt=0;
    414   /*
    415   for(int i=0; i<13; i++) {
    416     cnt++; vd.push_back(Dish(cnt, i*Ddish,0.,Eta*Ddish));
    417     cnt++; vd.push_back(Dish(cnt, i*Ddish, 12.*Ddish,Eta*Ddish));
    418     if ((i>0)&&(i<12)) {
    419       cnt++; vd.push_back(Dish(cnt,0.,i*Ddish,Eta*Ddish));
    420       cnt++; vd.push_back(Dish(cnt,12.*Ddish,i*Ddish,Eta*Ddish));
    421     }
    422   }
    423   for(int i=0; i<5; i++) {
    424     cnt++; vd.push_back(Dish(cnt, (i+4)*Ddish,4.*Ddish,Eta*Ddish));
    425     cnt++; vd.push_back(Dish(cnt, (i+4)*Ddish, 8.*Ddish,Eta*Ddish));
    426     if ((i>0)&&(i<4)) {
    427       cnt++; vd.push_back(Dish(cnt,4.*Ddish,(i+4)*Ddish,Eta*Ddish));
    428       cnt++; vd.push_back(Dish(cnt,8.*Ddish,(i+4)*Ddish,Eta*Ddish));
    429     }
    430   }
    431   */
    432   for(int i=0; i<11; i++) {
    433     cnt++; vd.push_back(Dish(cnt, i*Ddish,0.,Eta*Ddish));
    434     cnt++; vd.push_back(Dish(cnt, i*Ddish, 10.*Ddish,Eta*Ddish));
    435     if ((i>0)&&(i<10)) {
    436       cnt++; vd.push_back(Dish(cnt,0.,i*Ddish,Eta*Ddish));
    437       cnt++; vd.push_back(Dish(cnt,10.*Ddish,i*Ddish,Eta*Ddish));
    438     }
    439   }
    440   for(int i=0; i<7; i++) {
    441     cnt++; vd.push_back(Dish(cnt, (i+2)*Ddish, 2.*Ddish,Eta*Ddish));
    442     cnt++; vd.push_back(Dish(cnt, (i+2)*Ddish, 8.*Ddish,Eta*Ddish));
    443     if ((i>0)&&(i<6)) {
    444       cnt++; vd.push_back(Dish(cnt,2.*Ddish,(i+2)*Ddish,Eta*Ddish));
    445       cnt++; vd.push_back(Dish(cnt,8.*Ddish,(i+2)*Ddish,Eta*Ddish));
    446     }
    447   }
    448   for(int i=0; i<3; i++) {
    449     cnt++; vd.push_back(Dish(cnt, (i+4)*Ddish, 4.*Ddish,Eta*Ddish));
    450     cnt++; vd.push_back(Dish(cnt, (i+4)*Ddish, 6.*Ddish,Eta*Ddish));
    451     if ((i>0)&&(i<2)) {
    452       cnt++; vd.push_back(Dish(cnt,4.*Ddish,(i+4)*Ddish,Eta*Ddish));
    453       cnt++; vd.push_back(Dish(cnt,6.*Ddish,(i+4)*Ddish,Eta*Ddish));
    454     }
    455   }
    456 
    457 
    458   cout << ">>>CreateConfigB(" << Ddish << "," << Eta << ") ---> NDishes=" << vd.size() << endl;
    459   return vd;
    460 }
    461 
    462 
    463 /* --Fonction -- */
    464 vector<Dish> CreateConfigC(double Ddish, double Eta)
    465 {
    466   vector<int_4> lesx, lesy;
    467  
    468   int max = 16;
    469   for(int i=0; i<4; i++)
    470     for(int j=0; j<4; j++) {
    471       lesx.push_back(i); lesy.push_back(j);
    472       lesx.push_back(max-i); lesy.push_back(max-j);
    473       lesx.push_back(i); lesy.push_back(max-j);
    474       lesx.push_back(max-i); lesy.push_back(j);
    475     }
    476  
    477   for(int i=5; i<12; i+=2) {
    478     lesx.push_back(i); lesy.push_back(0);
    479     lesx.push_back(i); lesy.push_back(max);
    480     lesx.push_back(0); lesy.push_back(i);
    481     lesx.push_back(max); lesy.push_back(i);
    482   }
    483  
    484   for(int i=4; i<=12; i+=2)
    485     for(int j=4; j<=12; j+=2) {
    486       lesx.push_back(i); lesy.push_back(j);
    487     }
    488  
    489   for(int i=5; i<=11; i+=2) {
    490     lesx.push_back(i); lesy.push_back(4);
    491     lesx.push_back(i); lesy.push_back(max-4);
    492     lesx.push_back(4); lesy.push_back(i);
    493     lesx.push_back(max-4); lesy.push_back(i);
    494   }
    495  
    496   EnumeratedSequence esx,esy;
    497   esx = 2,5;
    498   esy = 5,2;
    499  
    500   for(int k=0; k<esx.Size(); k++) {
    501     int_4 ix=esx.Value(k);
    502     int_4 iy=esy.Value(k);
    503    
    504     lesx.push_back(ix); lesy.push_back(iy);
    505     lesx.push_back(max-ix); lesy.push_back(iy);
    506     lesx.push_back(ix); lesy.push_back(max-iy);
    507     lesx.push_back(max-ix); lesy.push_back(max-iy);
    508   }
    509  cout << "CreateConfigC/Debug: -checkSize/lesx=" << lesx.size() << " -Check/lesy=" << lesy.size() << endl;
    510  
    511  vector<Dish> vd;
    512  int cnt=0;
    513  for(size_t i=0; i<lesx.size(); i++) {
    514    cnt++; vd.push_back(Dish(cnt, ((double)lesx[i])*Ddish,((double)lesy[i])*Ddish,Eta*Ddish));
    515  }
    516 
    517  cout << ">>>CreateConfigC(" << Ddish << "," << Eta << ") ---> NDishes=" << vd.size() << endl;
    518 
    519  return vd;
    520 
    521 }
    522 /* --Fonction -- */
    523 vector<Dish> CreateConfigD(double Ddish, double Eta)
    524 {
    525 EnumeratedSequence es;
    526 es = 0,1,3,4,6,8,10,12,14,16,18,20,22,24,25,27,28;
    527 vector<int_4> lesx, lesy;
    528 for(int k=0; k<es.Size(); k++) {
    529   lesx.push_back(es.Value(k));   lesy.push_back(0);
    530   lesx.push_back(es.Value(k));   lesy.push_back(28);
    531 }
    532 for(int k=1; k<es.Size()-1; k++) {
    533   lesy.push_back(es.Value(k));   lesx.push_back(0);
    534   lesy.push_back(es.Value(k));   lesx.push_back(28);
    535 }
    536 for(int k=1; k<=5; k++) {
    537   lesy.push_back(k);   lesx.push_back(5);
    538   lesy.push_back(28-k);   lesx.push_back(28-5);
    539   if (k!=5) {
    540     lesx.push_back(k);   lesy.push_back(5);
    541     lesx.push_back(28-k);   lesy.push_back(28-5);
    542   }
    543 
    544   lesy.push_back(k);   lesx.push_back(28-5);
    545   lesy.push_back(28-k);   lesx.push_back(5);
    546   if (k!=5) {
    547     lesx.push_back(28-k);   lesy.push_back(5);
    548     lesx.push_back(k);   lesy.push_back(28-5);
    549   }
    550 }
    551 
    552 for(int k=6; k<=13; k++) {
    553   lesy.push_back(k);   lesx.push_back(k);
    554   lesy.push_back(28-k);   lesx.push_back(28-k);
    555   lesy.push_back(k);   lesx.push_back(28-k);
    556   lesy.push_back(28-k);   lesx.push_back(k);
    557 }
    558 
    559 
    560 lesx.push_back(14); lesy.push_back(14);
    561 
    562 EnumeratedSequence esx,esy;
    563 esx = 1,2,4;
    564 esy = 12,11,13;
    565 
    566 for(int k=0; k<esx.Size(); k++) {
    567   int_4 ix=esx.Value(k);
    568   int_4 iy=esy.Value(k);
    569   lesx.push_back(ix); lesy.push_back(iy);
    570   lesx.push_back(28-ix); lesy.push_back(iy);
    571   lesx.push_back(ix); lesy.push_back(28-iy);
    572   lesx.push_back(28-ix); lesy.push_back(28-iy);
    573  
    574   lesy.push_back(ix); lesx.push_back(iy);
    575   lesy.push_back(28-ix); lesx.push_back(iy);
    576   lesy.push_back(ix); lesx.push_back(28-iy);
    577   lesy.push_back(28-ix); lesx.push_back(28-iy);
    578  } 
    579 for(int k=5; k<=13; k+=2) {
    580   lesy.push_back(k);   lesx.push_back(14);
    581   lesy.push_back(28-k);   lesx.push_back(14);
    582   lesy.push_back(14);   lesx.push_back(k);
    583   lesy.push_back(14);   lesx.push_back(28-k);
    584 }
    585 
    586  cout << "CreateConfigB/Debug: -checkSize/lesx=" << lesx.size() << " -Check/lesy=" << lesy.size() << endl;
    587  
    588  vector<Dish> vd;
    589  int cnt=0;
    590  for(size_t i=0; i<lesx.size(); i++) {
    591    cnt++; vd.push_back(Dish(cnt, ((double)lesx[i])*Ddish,((double)lesy[i])*Ddish,Eta*Ddish));
    592  }
    593 
    594  cout << ">>>CreateConfigD(" << Ddish << "," << Eta << ") ---> NDishes=" << vd.size() << endl;
    595 
    596  return vd;
    597 }
    598 
    599 /* --Fonction -- */
    600 vector<Dish> CreateFilledCylConfig(int ncyl,  int nRL, double cylW, double cylRL, double etaW, double etaRL, bool fgscid)
    601 {
    602   vector<Dish>  vd;
    603   int cnt=0;
    604 
    605   for(int i=0; i<ncyl; i++)
    606     for(int j=0; j<nRL; j++) {
    607       cnt++;
    608       int rid = (fgscid) ? i+1 : cnt;
    609       vd.push_back(Dish(rid, i*cylW, j*cylRL, etaW*cylW, etaRL*cylRL));
    610     }
    611   cout << ">>>CreateFilledCylConfig(" << ncyl << "," << nRL << "," << cylW << "," << cylRL << ","
    612        << etaW << "," << etaRL << "," << ((fgscid)?" RId=CylNum":"Cnt")
    613        << ") ---> NDishes=" << vd.size() << endl;
    614 
    615   return vd;
    616 }
Note: See TracChangeset for help on using the changeset viewer.