Changeset 3783 in Sophya for trunk/Cosmo/RadioBeam/mdish.cc


Ignore:
Timestamp:
Jun 16, 2010, 12:23:38 AM (15 years ago)
Author:
ansari
Message:

Ajout des programmes calcpk.cc calcpk2.cc syncube.cc tjyk.cc (voir fichier README) Reza 15/06/2010

File:
1 edited

Legend:

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

    r3769 r3783  
    102102};
    103103
    104 // -----------------------------------
    105 // -- Classe ressemblant a un histo 2D
    106 // -----------------------------------
    107 QHis2D::QHis2D()
    108   : nx(0),ny(0),xmin(0),xmax(0),ymin(0),ymax(0),sumw0(0.)
    109 {
    110   ixb0 = jyb0 = 0;
    111 }
    112 QHis2D::QHis2D(r_8 xMin,r_8 xMax,int_4 nxb,r_8 yMin,r_8 yMax,int_4 nyb)
    113   : nx(0),ny(0),xmin(0),xmax(0),ymin(0),ymax(0),sumw0(0.)
    114 {
    115   Define(xMin, xMax, nxb, yMin, yMax, nyb);
    116 }
    117 void QHis2D::Define(r_8 xMin,r_8 xMax,int_4 nxb,r_8 yMin,r_8 yMax,int_4 nyb)
    118 {
    119   nx=nxb; ny=nyb;
    120   xmin=xMin;  xmax=xMax; 
    121   ymin=yMin;  ymax=yMax; 
    122   dxb=(xmax-xmin)/(double)nx;
    123   dyb=(ymax-ymin)/(double)ny;
    124   sa_size_t sz[5];  sz[0]=nx;  sz[1]=ny;
    125   aw.ReSize(2,sz);
    126   SetZeroBin();
    127   sumw0=0.;
    128   return;
    129 }
    130 double QHis2D::Add(r_8 x, r_8 y, r_8 w, bool fgfh)
    131 {
    132   sa_size_t ix = (sa_size_t)((x-xmin)/dxb);
    133   sa_size_t jy = (sa_size_t)((y-ymin)/dyb);
    134   if ((ix<0)||(ix>=nx)||(jy<0)||(jy>=ny))  return 0.;
    135   double rw = ((ix==ixb0)&&(jy==jyb0)) ? w : 0.;
    136   sumw0 += rw;
    137   if (fgfh) aw(ix,jy) += w;
    138   return rw;
    139 }
    140 void QHis2D::SetZeroBin(r_8 x, r_8 y)
    141 {
    142   ixb0 = (sa_size_t)((x-xmin)/dxb);
    143   jyb0 = (sa_size_t)((y-ymin)/dyb);
    144 }
    145 Histo2D QHis2D::Convert()
    146 {
    147   int_4 imn,jmn,imx,jmx;
    148   r_8 min = aw(0,0);
    149   r_8 max = aw(0,0);
    150   imn=jmn=imx=jmx=0;
    151   Histo2D h2(xmin,xmax,nx,ymin,ymax,ny);
    152   for(int_4 j=0; j<ny; j++)
    153     for(int_4 i=0; i<nx; i++) {
    154       h2(i,j) = aw(i,j);
    155       if (aw(i,j)>max) {
    156         imx=i;  jmx=j;  max=aw(i,j);
    157       }
    158       if (aw(i,j)<min) {
    159         imn=i;  jmn=j;  min=aw(i,j);
    160       }
    161     }
    162   cout << "QHis2D::Convert()/Info: Nx,Ny=" << nx << "," << ny << " SumW=" << sumw0
    163        << "\n ... Max:" << imx << "," << jmx << " ->" << max
    164        << " @" << imx*dxb+xmin << "," << jmx*dyb+ymin
    165        << "\n ...Min:" << imn << "," << jmn << " ->" << min
    166        << " @" << imn*dxb+xmin << "," << jmn*dyb+ymin << endl;
    167   return h2;
    168 }
    169104
    170105//----------------------------------------------------------------------
Note: See TracChangeset for help on using the changeset viewer.