Changeset 3792 in Sophya for trunk/Cosmo/RadioBeam/pknoise.cc
- Timestamp:
- Jun 28, 2010, 6:06:00 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Cosmo/RadioBeam/pknoise.cc
r3769 r3792 9 9 #include "mdish.h" 10 10 #include "specpk.h" 11 #include "interfconfigs.h" 12 11 13 #include "histinit.h" 12 14 // #include "fiosinit.h" … … 55 57 }; 56 58 57 //-----------------------------------------------------------------------------------58 // Fonctions de creation de configuration d'interfero avec des dishs59 //-----------------------------------------------------------------------------------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);71 59 72 60 … … 352 340 353 341 354 //-----------------------------------------------------------------------------------355 //-----------------------------------------------------------------------------------356 // Fonctions de creation de configuration d'interfero avec des dishs357 //-----------------------------------------------------------------------------------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.