source: Sophya/trunk/SophyaPI/PIext/pipodrw.cc@ 3559

Last change on this file since 3559 was 3145, checked in by ansari, 19 years ago

1/ Petites modifs ds PIHisto et le P1DHistoWrapper - en particulier decodage des options et choix renvoi BinContent/Error/NEntries
2/ Codage Wrapper pour Histo-2D et modifs PIHisto2D
3/ Suppression des adaptateurs de tableaux PI des Histos2D ds pipodrw.h .cc, les
Wrappers d'histos heritant de P1D,P2DArrayAdapter
4/ Mise a jour Makefile et smakefile

Reza , 18/01/2007

File size: 2.4 KB
Line 
1// Adaptateurs et Drawers divers pour Outils PEIDA++
2// R. Ansari 06-08/98
3// LAL (Orsay) / IN2P3-CNRS DAPNIA/SPP (Saclay) / CEA
4
5#include "sopnamsp.h"
6#include "pipodrw.h"
7#include "generalfit.h"
8
9
10//================================================================
11// PIGFFDrawer
12//================================================================
13
14PIGFFDrawer::PIGFFDrawer(GeneralFunction* f)
15: mFunc(f), mNParms(f->NPar()), mParms(new double[mNParms])
16{
17 ASSERT(f->NVar() == 1);
18}
19
20PIGFFDrawer::~PIGFFDrawer()
21{
22 delete[] mParms;
23}
24
25void
26PIGFFDrawer::SetParms(double const* p)
27{
28 for (int i=0; i<mNParms; i++)
29 mParms[i] = p[i];
30}
31
32
33void
34PIGFFDrawer::Draw(PIGraphicUC* g, double /*xmin*/, double/*ymin*/, double/*xmax*/, double/*ymax*/)
35{
36 PIGrCoord x1, x2, y1, y2;
37 g->GetGrSpace(x1, x2, y1, y2);
38 double xMax = x2;
39 double xMin = x1;
40 double yMax = y2;
41 double yMin = y1;
42 double xStep = (xMax - xMin)/100;
43 double xOld = xMin;
44 double yOld = 0;
45// double yOld = f->Value(&xMin, mParms);
46 for (double x = xMin+xStep; x<xMax; x+=xStep) {
47 double y = 0; // $CHECK$
48// double y = f->Value(&x, mParms);
49 if (y>yMin && yOld>yMin &&
50 y<yMax && yOld<yMax)
51 g->DrawLine(xOld, yOld, x, y);
52 xOld = x;
53 yOld = y;
54 }
55}
56
57
58#ifdef SANS_EVOLPLANCK
59
60// ----------------------------------------------------------
61// Adaptateur de vecteurs Peida++ a P1DArrayAdapter
62// ----------------------------------------------------------
63
64/* --Methode-- */
65POVectorAdapter::POVectorAdapter(Vector* v, bool ad)
66 : P1DArrayAdapter(v->NElts())
67{
68aDel = ad; mVec = v;
69}
70
71/* --Methode-- */
72POVectorAdapter::~POVectorAdapter()
73{
74if (aDel) delete mVec;
75}
76
77/* --Methode-- */
78double POVectorAdapter::Value(int i)
79{
80return((*mVec)(i));
81}
82
83------- FIN SUPPRESSION */
84
85// ----------------------------------------------------------
86// Adaptateur de matrice Peida++ a P2DArrayAdapter
87// Attention Y: Lignes (rows) X: Colonnes
88// ----------------------------------------------------------
89
90/* --Methode-- */
91POMatrixAdapter::POMatrixAdapter(Matrix* mtx, bool ad)
92 : P2DArrayAdapter(mtx->NCol(), mtx->NRows())
93{
94aDel = ad; mMtx = mtx;
95}
96
97/* --Methode-- */
98POMatrixAdapter::~POMatrixAdapter()
99{
100if (aDel) delete mMtx;
101}
102
103/* --Methode-- */
104double POMatrixAdapter::Value(int ix, int iy)
105{
106// Attention MatrixAdapter(X=Colonne, Y= Row) = Matrix(row, col)
107return((*mMtx)(iy, ix));
108}
109
110#endif // SANS_EVOLPLANCK
111
Note: See TracBrowser for help on using the repository browser.