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


Ignore:
Timestamp:
May 7, 2010, 6:44:43 PM (15 years ago)
Author:
ansari
Message:

Corrections/amelioration du programme de calcul de la sensibilite interfero, Reza 07/05/2010

File:
1 edited

Legend:

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

    r3756 r3769  
    5555};
    5656
     57//-----------------------------------------------------------------------------------
     58//  Fonctions de creation de configuration d'interfero avec des dishs
     59//-----------------------------------------------------------------------------------
     60
     61vector<Dish> CreateFilledSqConfig(int nd, double Ddish=5., double Eta=0.9);
     62vector<Dish> CreateSemiFilledSqConfig(int nd, double Ddish=5., double Eta=0.9);
     63vector<Dish> CreateConfigA(double Ddish=5., double Eta=0.9);
     64vector<Dish> CreateConfigB(double Ddish=5., double Eta=0.9);
     65vector<Dish> CreateConfigC(double Ddish=5., double Eta=0.9);
     66vector<Dish> CreateConfigD(double Ddish=5., double Eta=0.9);
     67
     68
     69vector<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);
     71
     72
     73//-------------------------------------------------------------------------
     74//      ------------------ MAIN PROGRAM ------------------------------
     75//-------------------------------------------------------------------------
    5776int main(int narg, const char* arg[])
    5877{
     
    115134    double Eta=0.95;
    116135    int cnt=0;
    117     vector<Dish> vdplein;
    118     for(int i=0; i<20; i++)
    119       for(int j=0; j<20; j++) {
    120         cnt++;
    121         vdplein.push_back(Dish(i*20+j+1, i*Ddish, j*Ddish, Eta*Ddish));
    122       }
    123     vector<Dish> vdsparse;
    124     vector<Dish> vdsparseD7;
    125 
    126     cnt=0;
    127     for(int i=0; i<=18; i++) {
    128       cnt++; vdsparse.push_back(Dish(cnt, i*Ddish,0.,Eta*Ddish));
    129       vdsparseD7.push_back(Dish(cnt, i*Ddish2,0.,Eta*Ddish2));
    130     }
    131     for(int i=-18; i<=18; i++) {
    132       if (i==0)  continue;
    133       cnt++; vdsparse.push_back(Dish(cnt, 0.,i*Ddish,Eta*Ddish));
    134       vdsparseD7.push_back(Dish(cnt, 0.,i*Ddish2,Eta*Ddish2));
    135     }
    136     for(int i=0; i<4; i++) {
    137         cnt++;  vdsparse.push_back(Dish(cnt, (3+2*i)*Ddish,(3+2*i)*Ddish,Eta*Ddish));
    138         vdsparseD7.push_back(Dish(cnt, (3+2*i)*Ddish2,(3+2*i)*Ddish2,Eta*Ddish2));
    139         cnt++;  vdsparse.push_back(Dish(cnt, (3+2*i)*Ddish,-(3+2*i)*Ddish,Eta*Ddish));
    140         vdsparseD7.push_back(Dish(cnt, (3+2*i)*Ddish2,-(3+2*i)*Ddish2,Eta*Ddish2));
    141         /*
    142         if ((i>0)||(j>0)) {
    143           cnt++;  vdsparse.push_back(Dish(cnt, (5+3*i)*Ddish,(3+2*j)*Ddish,Eta*Ddish));
    144           cnt++;  vdsparse.push_back(Dish(cnt, (5+3*i)*Ddish,-(3+2*j)*Ddish,Eta*Ddish));
    145         }
    146         */
    147       }
    148 
    149 
    150     vector<Dish> vcylplein, vcylplP;
    151     cnt=0;
     136    vector<Dish> vdplein = CreateFilledSqConfig(20, Ddish, Eta);
     137    vector<Dish> vdpl64 = CreateFilledSqConfig(8, Ddish, Eta);
     138
     139    vector<Dish> vdsparse = CreateConfigA(Ddish, Eta);
     140    vector<Dish> vdsparseD7 = CreateConfigA(Ddish2, Eta);
     141    //    vector<Dish> vdsparseB = CreateConfigB(Ddish, Eta);
     142    vector<Dish> vdsparseB = CreateConfigB(Ddish, Eta);
     143    vector<Dish> vdsparseC = CreateConfigC(Ddish, Eta);
     144
     145
    152146    double cylW=12.;   // Largeur des cylindres
    153147    double cylRL=0.5;  // Longeur des elements de reception le long du cylindre
    154     for(int i=0; i<8; i++)
    155       for(int j=0; j<192; j++) {
    156         vcylplein.push_back(Dish(i+1, i*cylW, j*cylRL, 0.9*cylW, 0.9*cylRL));
    157         cnt++; vcylplP.push_back(Dish(cnt, i*cylW, j*cylRL, 1.*cylW, 1.*cylRL));
    158       }
    159     vector<Dish> v2cyl, v2cylP;
    160     cnt=0;
    161     for(int i=0; i<2; i++)
    162       for(int j=0; j<32; j++) {
    163         v2cyl.push_back(Dish(i+1, i*25, j*cylRL, 0.9*9., 0.9*cylRL));
    164         cnt++; v2cylP.push_back(Dish(cnt, i*25, j*cylRL, 0.9*9., 1.*cylRL));
    165       }
     148    double etaW=0.95;   // Efficacite de couverture en largeur
     149    double etaRL=0.9;   // Efficacite de couverture le long du cylindre
     150    vector<Dish> vcylplein = CreateFilledCylConfig(8, 192, cylW, cylRL, etaW, etaRL, true);
     151    vector<Dish> vcylplP = CreateFilledCylConfig(8, 192, cylW, cylRL, etaW, etaRL, false);
     152
     153    cylW=10.;
     154    cylRL=0.5;
     155    vector<Dish> v3cyl = CreateFilledCylConfig(3, 128, cylW, cylRL, etaW, etaRL, true);
     156    vector<Dish> v3cylP = CreateFilledCylConfig(3, 128, cylW, cylRL, etaW, etaRL, false);
     157    cylW=25.;
     158    cylRL=0.5;
     159    etaW=0.3;
     160    etaRL=0.9;
     161    vector<Dish> v2cyl = CreateFilledCylConfig(2, 32, cylW, cylRL, etaW, etaRL, true);
     162    vector<Dish> v2cylP = CreateFilledCylConfig(2, 32, cylW, cylRL, etaW, etaRL, false);
     163
    166164    double LMAX = D;
    167165    bool fgnoauto = true;
    168     int NRX=160;
    169     int NRY=160;
     166    int NRX=100;
     167    int NRY=100;
    170168
    171169    MultiDish mdfill(lambda, LMAX, vdplein, fgnoauto);
     
    174172    PrtTim("Apres mdfill.GetResponse()");
    175173
     174    MultiDish mdfill64(lambda, LMAX, vdpl64, fgnoauto);
     175    mdfill64.SetRespHisNBins(NRX,NRY);   
     176    {
     177      Histo2D hpos=mdfill64.PosDist(10,10,10.*Ddish);
     178      po << PPFNameTag("posf64") << hpos;
     179    }
     180    Histo2D hrf64 = mdfill64.GetResponse();
     181    PrtTim("Apres mdfill64.GetResponse()");
     182
    176183    MultiDish mdsparse(lambda, LMAX, vdsparse, fgnoauto);
    177     mdsparse.SetThetaPhiRange(M_PI/4.,16, M_PI/4., 16);
     184    mdsparse.SetThetaPhiRange(M_PI/6.,12, M_PI/6., 12);
    178185    mdsparse.SetRespHisNBins(NRX,NRY);
     186    {
     187      Histo2D hpos=mdsparse.PosDist(22,22,22.*Ddish);;
     188      po << PPFNameTag("posspA") << hpos;
     189    }
    179190    Histo2D hrsp = mdsparse.GetResponse();
    180191    PrtTim("Apres mdsparse.GetResponse()");
    181192
    182     MultiDish mdsparsefp(lambda, LMAX, vdsparse, fgnoauto);
    183     mdsparsefp.SetRespHisNBins(NRX,NRY);
    184     Histo2D hrspfp = mdsparsefp.GetResponse();
    185     PrtTim("Apres mdsparsefp.GetResponse()");
    186 
     193    /*
    187194    MultiDish mdsparseD7(lambda, LMAX, vdsparseD7, fgnoauto);
    188195    mdsparseD7.SetThetaPhiRange(M_PI/4.,16, M_PI/4., 16);
     
    190197    Histo2D hrspd7 = mdsparseD7.GetResponse();
    191198    PrtTim("Apres mdsparseD7.GetResponse()");
    192                              
     199    */
     200    MultiDish mdsparseB(lambda, LMAX, vdsparseB, fgnoauto);
     201    mdsparseB.SetThetaPhiRange(M_PI/6.,12, M_PI/6., 12);
     202    mdsparseB.SetRespHisNBins(NRX,NRY);
     203    {
     204      Histo2D hpos=mdsparseB.PosDist(15,15,15.*Ddish);
     205      po << PPFNameTag("posspB") << hpos;
     206    }
     207    Histo2D hrspB = mdsparseB.GetResponse();
     208    PrtTim("Apres mdsparseB.GetResponse()");                       
     209
     210    MultiDish mdsparseC(lambda, LMAX, vdsparseC, fgnoauto);
     211    mdsparseC.SetThetaPhiRange(M_PI/6.,12, M_PI/6., 12);
     212    mdsparseC.SetRespHisNBins(NRX,NRY);
     213    {
     214      Histo2D hpos=mdsparseC.PosDist(20,20,20.*Ddish);
     215      po << PPFNameTag("posspC") << hpos;
     216    }
     217    Histo2D hrspC = mdsparseC.GetResponse();
     218    PrtTim("Apres mdsparseC.GetResponse()");                       
     219
     220    MultiDish mdsparseBfp(lambda, LMAX, vdsparseB, fgnoauto);
     221    mdsparseBfp.SetRespHisNBins(NRX,NRY);
     222    Histo2D hrspBfp = mdsparseBfp.GetResponse();
     223    PrtTim("Apres mdsparseBfp.GetResponse()");                     
     224
     225
    193226    MultiDish mcylfill(lambda, LMAX, vcylplein, fgnoauto);
    194227    mcylfill.SetRespHisNBins(NRX,NRY);
     
    198231    mcylfillP.SetRespHisNBins(NRX,NRY);
    199232    Histo2D hfcylP = mcylfillP.GetResponse();
     233    PrtTim("Apres mcylfillP.GetResponse()");
     234
     235    MultiDish md3cyl(lambda, LMAX, v3cyl, fgnoauto);
     236    md3cyl.SetRespHisNBins(NRX,NRY);
     237    Histo2D h3cyl = md3cyl.GetResponse();
     238    PrtTim("Apres md3cyl.GetResponse()");
     239    MultiDish md3cylP(lambda, LMAX, v3cylP, fgnoauto);
     240    md3cylP.SetRespHisNBins(NRX,NRY);
     241    Histo2D h3cylP = md3cylP.GetResponse();
     242    PrtTim("Apres md3cylP.GetResponse()");
    200243
    201244    MultiDish md2cyl(lambda, LMAX, v2cyl, fgnoauto);
    202245    md2cyl.SetRespHisNBins(NRX,NRY);
    203246    Histo2D h2cyl = md2cyl.GetResponse();
     247    PrtTim("Apres md2cyl.GetResponse()");
    204248    MultiDish md2cylP(lambda, LMAX, v2cylP, fgnoauto);
    205249    md2cylP.SetRespHisNBins(NRX,NRY);
    206250    Histo2D h2cylP = md2cylP.GetResponse();
     251    PrtTim("Apres md2cylP.GetResponse()");
    207252
    208253    po << PPFNameTag("mfill") << hrfill;
     254    po << PPFNameTag("mfill64") << hrf64;
    209255    po << PPFNameTag("mspars") << hrsp;
    210     po << PPFNameTag("msparsfp") << hrspfp;
    211     po << PPFNameTag("msparsd7") << hrspd7;
     256    //    po << PPFNameTag("msparsd7") << hrspd7;
     257    po << PPFNameTag("msparsB") << hrspB;
     258    po << PPFNameTag("msparsC") << hrspC;
     259    po << PPFNameTag("msparsBfp") << hrspBfp;
    212260    po << PPFNameTag("mcylf") << hfcyl;
     261    po << PPFNameTag("m3cyl") << h3cyl;
    213262    po << PPFNameTag("m2cyl") << h2cyl;
    214263    po << PPFNameTag("mcylfP") << hfcylP;
     264    po << PPFNameTag("m3cylP") << h3cylP;
    215265    po << PPFNameTag("m2cylP") << h2cylP;
    216266
     
    219269
    220270    Four2DRespTable mdf(hrfill, Dol);
     271    Four2DRespTable mdf64(hrf64, Dol);
    221272    Four2DRespTable mds(hrsp,   Dol);
    222     Four2DRespTable mdsfp(hrspfp,   Dol);
    223     Four2DRespTable mdsd7(hrspd7,   Dol);
     273    // Four2DRespTable mdsfp(hrspfp,   Dol);
     274    //    Four2DRespTable mdsd7(hrspd7,   Dol);
     275    Four2DRespTable mdsB(hrspB,   Dol);
     276    Four2DRespTable mdsC(hrspC,   Dol);
     277    Four2DRespTable mdsBfp(hrspBfp,   Dol);
    224278
    225279    Four2DRespTable mcylf(hfcyl, Dol);
     280    Four2DRespTable m3cyl(h3cyl, Dol);
    226281    Four2DRespTable m2cyl(h2cyl, Dol);
    227282    Four2DRespTable mcylfP(hfcylP, Dol);
     283    Four2DRespTable m3cylP(h3cylP, Dol);
    228284    Four2DRespTable m2cylP(h2cylP, Dol);
    229285
     
    244300
    245301    cout << " 4/ Computing Noise P(k) using PkNoiseCalculator ..." << endl;
    246 #define NCONFIG 10
    247     Four2DResponse* f2rep[NCONFIG]={&dish, &dish2, &mdf, &mds, &mdsfp, &mdsd7, &mcylf, &mcylfP, &m2cyl, &m2cylP};
    248     const char* tits[NCONFIG]={"Dish100m", "Dish200m","F20x20Dish5m","S63Dish5m","S63Dish5mFP","S63Dish7m",
    249                                "F8Cyl","F8CylP","BiCyl","BiCylP"};
    250     const char* tags[NCONFIG]={"noiseD", "noiseD2","noisemdf","noisemds","noisemdsfp","noisemdsd7",
    251                                "noisefcyl","noisefcylP","noise2cyl","noise2cylP"};
     302#define NCONFIG 14
     303    Four2DResponse* f2rep[NCONFIG]={&dish, &dish2, &mdf, &mdf64, &mds, &mdsB, &mdsC, &mdsBfp,
     304                                    &mcylf, &mcylfP, &m3cyl, &m3cylP, &m2cyl, &m2cylP};
     305    const char* tits[NCONFIG]={"Dish100m", "Dish200m","F20x20Dish5m","F8x8Dish5m",
     306                               "S68Dish5m","S72Dish5m","S129CDish5m","S72BDish5mFP",
     307                               "F8Cyl","F8CylP","F3Cyl","F3CylP","BiCyl","BiCylP"};
     308    const char* tags[NCONFIG]={"noiseD", "noiseD2","noisemdf","noisemdf64","noisemds",
     309                               "noisemdsB","noisemdsC","noisemdsBfp",
     310                               "noisefcyl","noisefcylP","noise3cyl","noise3cylP", "noise2cyl","noise2cylP"};
    252311    vector<int> nbdishes;
    253312    nbdishes.push_back(1);
    254313    nbdishes.push_back(1);
    255314    nbdishes.push_back(vdplein.size());
     315    nbdishes.push_back(vdpl64.size());
    256316    nbdishes.push_back(vdsparse.size());
    257     nbdishes.push_back(vdsparse.size());
    258     nbdishes.push_back(vdsparseD7.size());
     317    // nbdishes.push_back(vdsparse.size());
     318    nbdishes.push_back(vdsparseB.size());
     319    nbdishes.push_back(vdsparseC.size());
     320    nbdishes.push_back(vdsparseB.size());
    259321    nbdishes.push_back(vcylplein.size());
    260322    nbdishes.push_back(vcylplP.size());
     323    nbdishes.push_back(v3cyl.size());
     324    nbdishes.push_back(v3cylP.size());
    261325    nbdishes.push_back(v2cyl.size());
    262326    nbdishes.push_back(v2cylP.size());
     
    288352
    289353
     354//-----------------------------------------------------------------------------------
     355//-----------------------------------------------------------------------------------
     356//  Fonctions de creation de configuration d'interfero avec des dishs
     357//-----------------------------------------------------------------------------------
     358/* --Fonction -- */
     359vector<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 -- */
     374vector<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 -- */
     393vector<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 -- */
     410vector<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 -- */
     464vector<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 -- */
     523vector<Dish> CreateConfigD(double Ddish, double Eta)
     524{
     525EnumeratedSequence es;
     526es = 0,1,3,4,6,8,10,12,14,16,18,20,22,24,25,27,28;
     527vector<int_4> lesx, lesy;
     528for(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}
     532for(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}
     536for(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
     552for(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
     560lesx.push_back(14); lesy.push_back(14);
     561
     562EnumeratedSequence esx,esy;
     563esx = 1,2,4;
     564esy = 12,11,13;
     565
     566for(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 } 
     579for(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 -- */
     600vector<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.