source: Sophya/trunk/SophyaPI/PIext/nomhistadapter.cc@ 3123

Last change on this file since 3123 was 3123, checked in by cmv, 19 years ago

modif HistoErr Histo2DErr cmv 10/01/07

File size: 17.4 KB
Line 
1#include "sopnamsp.h"
2#include "machdefs.h"
3#include <stdlib.h>
4#include <typeinfo>
5#include <iostream>
6#include <string>
7
8#include "nomhistadapter.h"
9#include "pihisto.h"
10#include "pihisto2d.h"
11#include "pipodrw.h"
12#include "servnobjm.h"
13
14#ifndef SANS_EVOLPLANCK
15#include "objfitter.h"
16// Pour les DataTable ( Depuis Avril 2005 )
17#include "datatable.h"
18#include "swppfdtable.h"
19#endif
20
21//-----------------------------------------------------------------------------
22// Class Adaptateur d'objet (Pour NamedObjMgr) d'objet Histo / HProf
23//-----------------------------------------------------------------------------
24
25/* --Methode-- */
26NOMAdapter_Histo::NOMAdapter_Histo(Histo* o)
27 : NObjMgrAdapter(o)
28{
29mHis = o;
30}
31
32/* --Methode-- */
33NOMAdapter_Histo::~NOMAdapter_Histo()
34{
35}
36
37/* --Methode-- */
38NObjMgrAdapter* NOMAdapter_Histo::Clone(AnyDataObj* o)
39{
40Histo* h = dynamic_cast<Histo *>(o);
41if (h) return ( new NOMAdapter_Histo(h) );
42return ( new NObjMgrAdapter(o) );
43}
44
45/* --Methode-- */
46string NOMAdapter_Histo::GetDataObjType()
47{
48HProf * hp = dynamic_cast<HProf *>(mHis);
49if(hp) return("HProf ");
50else return("Histo ");
51}
52
53/* --Methode-- */
54string NOMAdapter_Histo::GetInfoString(int lev)
55{
56 char buff[128];
57 string rs;
58 if (lev > 2) {
59 sprintf(buff, "Histo: NBin=%d XMin=%lg XMax=%lg\n", mHis->NBins(),
60 mHis->XMin(), mHis->XMax());
61 rs += buff;
62 }
63 sprintf(buff, "Entries= %llu \n",mHis->NEntries());
64 rs += buff;
65 if (lev > 0) {
66 sprintf(buff, "Overflow= %lg \n", mHis->NOver());
67 rs += buff;
68 sprintf(buff, "Underflow= %lg \n", mHis->NUnder());
69 rs += buff;
70 }
71 sprintf(buff, "Mean= %lg \n", mHis->Mean());
72 rs += buff;
73 sprintf(buff, "Sigma= %lg \n", mHis->Sigma());
74 rs += buff;
75 return rs;
76}
77
78/* --Methode-- */
79string NOMAdapter_Histo::GetInfoString(vector<string>& opts)
80{
81 string blabla = "Histo1D: nbin binw mean sigma over under nentries ndata";
82 blabla += " xmin xmax vmin vmax imin imax";
83
84 if(opts.size() == 0) return GetInfoString(3);
85
86 char buff[64];
87 if(opts[0] == "nbin") {
88 sprintf(buff, "%d",mHis->NBins());
89 } else if(opts[0] == "binw") {
90 sprintf(buff, "%lg",mHis->BinWidth());
91 } else if(opts[0] == "mean") {
92 sprintf(buff, "%lg",mHis->Mean());
93 } else if(opts[0] == "sigma") {
94 sprintf(buff, "%lg",mHis->Sigma());
95 } else if(opts[0] == "over") {
96 sprintf(buff, "%lg",mHis->NOver());
97 } else if(opts[0] == "under") {
98 sprintf(buff, "%lg",mHis->NUnder());
99 } else if(opts[0] == "nentries") {
100 sprintf(buff, "%llu",mHis->NEntries());
101 } else if(opts[0] == "ndata") {
102 sprintf(buff, "%lg",mHis->NData());
103 } else if(opts[0] == "xmin") {
104 sprintf(buff, "%lg",mHis->XMin());
105 } else if(opts[0] == "xmax") {
106 sprintf(buff, "%lg",mHis->XMax());
107 } else if(opts[0] == "vmin") {
108 sprintf(buff, "%lg",mHis->VMin());
109 } else if(opts[0] == "vmax") {
110 sprintf(buff, "%lg",mHis->VMax());
111 } else if(opts[0] == "imin") {
112 sprintf(buff, "%d",mHis->IMin());
113 } else if(opts[0] == "imax") {
114 sprintf(buff, "%d",mHis->IMax());
115 } else {
116 return blabla;
117 }
118 return string(buff);
119}
120
121/* --Methode-- */
122AnyDataObj* NOMAdapter_Histo::CloneDataObj(bool /*share*/)
123{
124mHis->UpdateHisto(); // pour le cas ou c'est un HProf
125HProf * hp = dynamic_cast<HProf *>(mHis);
126if(hp) return( new HProf(*hp) );
127else return( new Histo(*mHis) );
128}
129
130/* --Methode-- */
131void NOMAdapter_Histo::SavePPF(POutPersist& pos, string const & nom)
132{
133#ifdef SANS_EVOLPLANCK
134// PEIDA-EROS L'histo est lui-meme PPersist
135string tag = nom; // A cause de const
136mHis->Write(pos,0,tag);
137#else
138ObjFileIO<Histo> fio(mHis);
139fio.Write(pos, nom);
140#endif
141}
142
143/* --Methode-- */
144void NOMAdapter_Histo::Print(ostream& os, int lev)
145{
146mHis->Show(os);
147if (lev > 0) mHis->Print(60);
148}
149
150/* --Methode-- */
151PIDrawer* NOMAdapter_Histo::GetDrawer(string & dopt)
152{
153if (typeid(*mHis) == typeid(HProf)) dopt = "fcirclemarker5 " + dopt;
154else dopt = "thinline " + dopt;
155PIHisto * pih = new PIHisto(mHis, false);
156return( pih );
157}
158
159/* --Methode-- */
160NTupleInterface* NOMAdapter_Histo::GetNTupleInterface(bool& adel)
161{
162adel = true;
163return( new NTupInt_Histo(mHis) );
164}
165
166/* --Methode-- */
167GeneralFitData* NOMAdapter_Histo::GetGeneralFitData(bool& adel
168 ,GeneralFitData::FitErrType errtype,double errscale,double errmin
169 ,int i1,int i2,int j1,int j2)
170{
171adel = false;
172if(!mHis) return(NULL);
173
174int nx = mHis->NBins();
175if(nx<=0) return(NULL);
176
177i1 = (i1<0||i1>=nx)? 0: i1;
178i2 = (i2<0||i2>=nx||i2<i1)? nx-1: i2;
179
180GeneralFitData* mGData = new GeneralFitData(1,i2-i1+1,0);
181adel = true;
182
183for(int i=i1;i<=i2;i++) {
184 double x = mHis->BinCenter(i);
185 double f = (*mHis)(i);
186 double e = (mHis->HasErrors())? mHis->Error(i) : 1.;
187 e = GeneralFitData::ComputeError(f,e,errtype,errscale,errmin);
188 mGData->AddData1(x,f,e);
189}
190
191return mGData;
192}
193
194AnyDataObj* NOMAdapter_Histo::FitResidusObj(GeneralFit& mfit)
195{
196Histo* h = NULL;
197#ifdef SANS_EVOLPLANCK
198h = mHis->FitResidus(mfit);
199#else
200h = new Histo(ObjectFitter::FitResidus(*mHis,mfit));
201#endif
202return h;
203}
204
205AnyDataObj* NOMAdapter_Histo::FitFunctionObj(GeneralFit& mfit)
206{
207Histo* h = NULL;
208#ifdef SANS_EVOLPLANCK
209h = mHis->FitFunction(mfit);
210#else
211h = new Histo(ObjectFitter::FitFunction(*mHis,mfit));
212#endif
213return h;
214}
215
216// -------------------------------------------------------------
217
218/* --Methode-- */
219NTupInt_Histo::NTupInt_Histo(Histo* h)
220{
221mHis = h;
222mHpr = dynamic_cast<HProf *>(h);
223}
224
225/* --Methode-- */
226NTupInt_Histo::~NTupInt_Histo()
227{
228}
229
230/* --Methode-- */
231sa_size_t NTupInt_Histo::NbLines() const
232{
233return(mHis->NBins());
234}
235
236/* --Methode-- */
237sa_size_t NTupInt_Histo::NbColumns() const
238{
239return(5);
240}
241
242/* --Methode-- */
243r_8* NTupInt_Histo::GetLineD(sa_size_t k) const
244{
245int i;
246if ((k < 0) || (k >= mHis->NBins()))
247 for(i=0; i<5; i++) mRet[i] = 0.;
248else {
249 mRet[0] = k; mRet[1] = mHis->BinCenter(k);
250 mRet[2] = (*mHis)(k); mRet[3] = mHis->Error(k);
251 if(mHpr) mRet[4] = mHpr->SumW(k); else mRet[4] = 0.;
252 }
253return(mRet);
254}
255
256/* --Methode-- */
257string NTupInt_Histo::VarList_C(const char* nx) const
258{
259string nomx;
260if (nx) nomx = nx;
261else nomx = "_xh_";
262string vardec = "double i,x,val,err,nb; \n";
263vardec += "i = " + nomx + "[0]; x = " + nomx + "[1]; \n";
264vardec += "val = " + nomx + "[2]; err = " + nomx + "[3]; \n";
265vardec += "nb = " + nomx + "[4]; \n";
266return(vardec);
267}
268
269//-------------------------------------------------------------------------
270// Class Adaptateur d'objet (Pour NamedObjMgr) d'objet Histo2D
271//-------------------------------------------------------------------------
272
273
274/* --Methode-- */
275NOMAdapter_Histo2D::NOMAdapter_Histo2D(Histo2D* o)
276 : NObjMgrAdapter(o)
277{
278mHis = o;
279}
280
281/* --Methode-- */
282NOMAdapter_Histo2D::~NOMAdapter_Histo2D()
283{
284}
285
286/* --Methode-- */
287NObjMgrAdapter* NOMAdapter_Histo2D::Clone(AnyDataObj* o)
288{
289Histo2D* h = dynamic_cast<Histo2D *>(o);
290if (h) return ( new NOMAdapter_Histo2D(h) );
291return ( new NObjMgrAdapter(o) );
292}
293
294/* --Methode-- */
295string NOMAdapter_Histo2D::GetDataObjType()
296{
297return ("Histo2D ");
298}
299
300/* --Methode-- */
301AnyDataObj* NOMAdapter_Histo2D::CloneDataObj(bool /*share*/)
302{
303return ( new Histo2D(*mHis) );
304}
305
306/* --Methode-- */
307void NOMAdapter_Histo2D::SavePPF(POutPersist& pos, string const & nom)
308{
309#ifdef SANS_EVOLPLANCK
310// PEIDA-EROS L'histo est lui-meme PPersist
311string tag = nom; // A cause de const
312mHis->Write(pos,0,tag);
313#else
314ObjFileIO<Histo2D> fio(mHis);
315fio.Write(pos, nom);
316#endif
317}
318
319/* --Methode-- */
320void NOMAdapter_Histo2D::Print(ostream& os, int lev)
321{
322mHis->Show(os);
323if (lev > 0) mHis->Print();
324}
325
326/* --Methode-- */
327PIDrawer* NOMAdapter_Histo2D::GetDrawer(string & dopt)
328{
329dopt = "thinline " + dopt;
330return( new PIHisto2D(mHis, false) );
331}
332
333/* --Methode-- */
334P2DArrayAdapter* NOMAdapter_Histo2D::Get2DArray(string & dopt)
335{
336return (new POH2DAdapter(mHis, false) );
337}
338
339/* --Methode-- */
340NTupleInterface* NOMAdapter_Histo2D::GetNTupleInterface(bool& adel)
341{
342adel = true;
343return( new NTupInt_Histo2D(mHis) );
344}
345
346
347/* --Methode-- */
348GeneralFitData* NOMAdapter_Histo2D::GetGeneralFitData(bool& adel
349 ,GeneralFitData::FitErrType errtype,double errscale,double errmin
350 ,int i1,int i2,int j1,int j2)
351{
352adel = false;
353if(!mHis) return(NULL);
354
355int nx = mHis->NBinX();
356int ny = mHis->NBinY();
357if(nx<=0 || ny<=0) return(NULL);
358
359i1 = (i1<0||i1>=nx)? 0: i1;
360i2 = (i2<0||i2>=nx||i2<i1)? nx-1: i2;
361j1 = (j1<0||j1>=ny)? 0: j1;
362j2 = (j2<0||j2>=ny||j2<j1)? ny-1: j2;
363
364GeneralFitData* mGData = new GeneralFitData(2,(i2-i1+1)*(j2-j1+1),0);
365adel = true;
366
367for(int i=i1;i<=i2;i++) for(int j=j1;j<=j2;j++) {
368 double x,y; mHis->BinCenter(i,j,x,y);
369 double f = (*mHis)(i,j);
370 double e = (mHis->HasErrors())? mHis->Error(i,j) : 1.;
371 e = GeneralFitData::ComputeError(f,e,errtype,errscale,errmin);
372 mGData->AddData2(x,y,f,e);
373}
374
375return mGData;
376}
377
378AnyDataObj* NOMAdapter_Histo2D::FitResidusObj(GeneralFit& mfit)
379{
380Histo2D* h2 = NULL;
381#ifdef SANS_EVOLPLANCK
382h2 = mHis->FitFunction(mfit);
383#else
384h2 = new Histo2D(ObjectFitter::FitResidus(*mHis,mfit));
385#endif
386return h2;
387}
388
389AnyDataObj* NOMAdapter_Histo2D::FitFunctionObj(GeneralFit& mfit)
390{
391Histo2D* h2 = NULL;
392#ifdef SANS_EVOLPLANCK
393h2 = mHis->FitFunction(mfit);
394#else
395h2 = new Histo2D(ObjectFitter::FitFunction(*mHis,mfit));
396#endif
397return h2;
398}
399
400
401/* --Methode-- */
402string NOMAdapter_Histo2D::GetInfoString(vector<string>& opts)
403{
404 string blabla = "Histo2D: nbin binw nband nslice nentries ndata xmin xmax";
405 blabla += " ymin ymax vmin vmax ijmin ijmax";
406
407 if(opts.size() == 0) return blabla;
408
409 char buff[128];
410 if(opts[0] == "nbin") {
411 sprintf(buff, "%d %d",mHis->NBinX(),mHis->NBinY());
412 } else if(opts[0] == "binw") {
413 sprintf(buff, "%lg %lg",mHis->WBinX(),mHis->WBinY());
414 } else if(opts[0] == "nband") {
415 sprintf(buff, "%d %d",mHis->NBandX(),mHis->NBandY());
416 } else if(opts[0] == "nslice") {
417 sprintf(buff, "%d %d",mHis->NSliX(),mHis->NSliY());
418 } else if(opts[0] == "nentries") {
419 sprintf(buff, "%d",mHis->NEntries());
420 } else if(opts[0] == "ndata") {
421 sprintf(buff, "%lg",mHis->NData());
422 } else if(opts[0] == "xmin") {
423 sprintf(buff, "%lg",mHis->XMin());
424 } else if(opts[0] == "xmax") {
425 sprintf(buff, "%lg",mHis->XMax());
426 } else if(opts[0] == "ymin") {
427 sprintf(buff, "%lg",mHis->YMin());
428 } else if(opts[0] == "ymax") {
429 sprintf(buff, "%lg",mHis->YMax());
430 } else if(opts[0] == "vmin") {
431 sprintf(buff, "%lg",mHis->VMin());
432 } else if(opts[0] == "vmax") {
433 sprintf(buff, "%lg",mHis->VMax());
434 } else if(opts[0] == "ijmin") {
435 int_4 i,j;
436 mHis->IJMin(i,j);
437 sprintf(buff, "%d %d",i,j);
438 } else if(opts[0] == "ijmax") {
439 int_4 i,j;
440 mHis->IJMax(i,j);
441 sprintf(buff, "%d %d",i,j);
442 } else {
443 return blabla;
444 }
445 return string(buff);
446}
447
448// -------------------------------------------------------------
449
450/* --Methode-- */
451NTupInt_Histo2D::NTupInt_Histo2D(Histo2D* h)
452{
453mHis = h;
454}
455
456/* --Methode-- */
457NTupInt_Histo2D::~NTupInt_Histo2D()
458{
459}
460
461/* --Methode-- */
462sa_size_t NTupInt_Histo2D::NbLines() const
463{
464return(mHis->NBinX()*mHis->NBinY());
465}
466
467/* --Methode-- */
468sa_size_t NTupInt_Histo2D::NbColumns() const
469{
470return(6);
471}
472
473/* --Methode-- */
474r_8* NTupInt_Histo2D::GetLineD(sa_size_t n) const
475{
476int i,j;
477r_8 f2,f3;
478if ((n < 0) || (n >= mHis->NBinX()*mHis->NBinY()))
479 for(i=0; i<6; i++) mRet[i] = 0.;
480else {
481 i = n%mHis->NBinX(); j = n/mHis->NBinX();
482 mRet[0] = i; mRet[1] = j;
483 mHis->BinCenter(i,j,f2,f3);
484 mRet[2] = f2; mRet[3] = f3;
485 mRet[4] = (*mHis)(i,j); mRet[5] = mHis->Error(i, j);
486 }
487return(mRet);
488}
489
490/* --Methode-- */
491string NTupInt_Histo2D::VarList_C(const char* nx) const
492{
493string nomx;
494if (nx) nomx = nx;
495else nomx = "_xh_";
496string vardec = "double i,j,x,y,val,err; \n";
497vardec += "i = " + nomx + "[0]; j = " + nomx + "[1]; \n";
498vardec += "x = " + nomx + "[2]; y = " + nomx + "[3]; \n";
499vardec += "val = " + nomx + "[4]; err = " + nomx + "[5]; \n";
500return(vardec);
501}
502
503
504
505//-------------------------------------------------------------------------
506// Class Adaptateur d'objet (Pour NamedObjMgr) d'objet NTuple
507//-------------------------------------------------------------------------
508
509/* --Methode-- */
510NOMAdapter_NTuple::NOMAdapter_NTuple(NTuple* o)
511 : NObjMgrAdapter(o)
512{
513mNt = o;
514}
515
516/* --Methode-- */
517NOMAdapter_NTuple::~NOMAdapter_NTuple()
518{
519}
520
521/* --Methode-- */
522NObjMgrAdapter* NOMAdapter_NTuple::Clone(AnyDataObj* o)
523{
524NTuple* nt = dynamic_cast<NTuple *>(o);
525if (nt) return ( new NOMAdapter_NTuple(nt) );
526return ( new NObjMgrAdapter(o) );
527}
528
529
530/* --Methode-- */
531string NOMAdapter_NTuple::GetDataObjType()
532{
533return ("NTuple ");
534}
535
536/* --Methode-- */
537AnyDataObj* NOMAdapter_NTuple::CloneDataObj(bool /*share*/)
538{
539return ( new NTuple(*mNt) );
540}
541
542
543
544/* --Methode-- */
545void NOMAdapter_NTuple::SavePPF(POutPersist& pos, string const & nom)
546{
547#ifdef SANS_EVOLPLANCK
548// PEIDA-EROS L'histo est lui-meme PPersist
549string tag = nom; // A cause de const
550mNt->Write(pos,0,tag);
551#else
552ObjFileIO<NTuple> fio(mNt);
553fio.Write(pos, nom);
554#endif
555}
556
557/* --Methode-- */
558string NOMAdapter_NTuple::GetInfoString(vector<string>& opts)
559{
560if (opts.size() == 0) return NObjMgrAdapter::GetInfoString(opts);
561char buff[128];
562if (opts[0] == "sizes") {
563 sprintf(buff, "%ld %ld", mNt->NEntry(), mNt->NVar());
564 return string(buff);
565}
566else if ((opts[0] == "nlines") || (opts[0] == "nentry") || (opts[0] == "nrows")) {
567 sprintf(buff, "%ld", mNt->NEntry());
568 return string(buff);
569}
570else if ((opts[0] == "nvar") || (opts[0] == "ncols")) {
571 sprintf(buff, "%ld", mNt->NVar());
572 return string(buff);
573}
574else return "NTuple.Att: nlines/nentry/nrows nvar/ncols";
575}
576
577/* --Methode-- */
578void NOMAdapter_NTuple::Print(ostream& os, int lev)
579{
580mNt->Show(os);
581if (lev > 2) os << mNt->Info();
582if (lev > 0) mNt->Print(0, 10*lev);
583}
584
585
586/* --Methode-- */
587NTupleInterface* NOMAdapter_NTuple::GetNTupleInterface(bool& adel)
588{
589adel = false;
590return(mNt);
591// return( new NTupInt_NTuple(mNt) );
592}
593
594//-------------------------------------------------------------------------
595// Class Adaptateur d'objet (Pour NamedObjMgr) d'objet XNTuple
596//-------------------------------------------------------------------------
597
598/* --Methode-- */
599NOMAdapter_XNTuple::NOMAdapter_XNTuple(XNTuple* o)
600 : NObjMgrAdapter(o)
601{
602mNt = o;
603}
604
605/* --Methode-- */
606NOMAdapter_XNTuple::~NOMAdapter_XNTuple()
607{
608}
609
610/* --Methode-- */
611NObjMgrAdapter* NOMAdapter_XNTuple::Clone(AnyDataObj* o)
612{
613XNTuple* nt = dynamic_cast<XNTuple *>(o);
614if (nt) return ( new NOMAdapter_XNTuple(nt) );
615return ( new NObjMgrAdapter(o) );
616}
617
618/* --Methode-- */
619string NOMAdapter_XNTuple::GetDataObjType()
620{
621return ("XNTuple ");
622}
623
624/* --Methode-- */
625AnyDataObj* NOMAdapter_XNTuple::CloneDataObj(bool /*share*/)
626{
627return ( new XNTuple(*mNt) );
628}
629
630/* --Methode-- */
631void NOMAdapter_XNTuple::SavePPF(POutPersist& pos, string const & nom)
632{
633#ifdef SANS_EVOLPLANCK
634// PEIDA-EROS L'histo est lui-meme PPersist
635string tag = nom; // A cause de const
636mNt->Write(pos,0,tag);
637#else
638ObjFileIO<XNTuple> fio(mNt);
639fio.Write(pos, nom);
640#endif
641}
642
643/* --Methode-- */
644void NOMAdapter_XNTuple::Print(ostream& os, int lev)
645{
646// os << mNt->Info();
647mNt->Show(os);
648}
649
650
651/* --Methode-- */
652NTupleInterface* NOMAdapter_XNTuple::GetNTupleInterface(bool& adel)
653{
654adel = false;
655return(mNt);
656}
657
658
659//-------------------------------------------------------------------------
660// Class Adaptateur d'objet (Pour NamedObjMgr) d'objet BaseDataTable
661//-------------------------------------------------------------------------
662
663/* --Methode-- */
664NOMAdapter_DataTable::NOMAdapter_DataTable(BaseDataTable* o)
665 : NObjMgrAdapter(o)
666{
667mDT = o;
668}
669
670/* --Methode-- */
671NOMAdapter_DataTable::~NOMAdapter_DataTable()
672{
673}
674
675/* --Methode-- */
676NObjMgrAdapter* NOMAdapter_DataTable::Clone(AnyDataObj* o)
677{
678 BaseDataTable* dt = dynamic_cast<BaseDataTable *>(o);
679 if (dt) return ( new NOMAdapter_DataTable(dt) );
680 else return ( new NObjMgrAdapter(o) );
681}
682
683/* --Methode-- */
684string NOMAdapter_DataTable::GetDataObjType()
685{
686 DataTable* dt = dynamic_cast<DataTable *>(mDT);
687 if (dt) return ("DataTable ");
688 else {
689 SwPPFDataTable* swdt = dynamic_cast<SwPPFDataTable *>(mDT);
690 if (swdt) return ("SwPPFDataTable ");
691 return ("BaseDataTable ");
692 }
693}
694
695/* --Methode-- */
696AnyDataObj* NOMAdapter_DataTable::CloneDataObj(bool share)
697{
698 DataTable* dt = dynamic_cast<DataTable *>(mDT);
699 if (dt) return new DataTable(*dt, share);
700 else {
701 SwPPFDataTable* swdt = dynamic_cast<SwPPFDataTable *>(mDT);
702 if (swdt) cout << "NOMAdapter_DataTable::CloneDataObj() Object type SwPPFDataTable can not be cloned !" << endl;
703 return NULL;
704 }
705}
706
707
708/* --Methode-- */
709void NOMAdapter_DataTable::SavePPF(POutPersist& pos, string const & nom)
710{
711 DataTable* dt = dynamic_cast<DataTable *>(mDT);
712 SwPPFDataTable* swdt = dynamic_cast<SwPPFDataTable *>(mDT);
713 if (dt) {
714 ObjFileIO<BaseDataTable> fio(dt);
715 fio.Write(pos, nom);
716 }
717 else if (swdt) {
718 ObjFileIO<BaseDataTable> fio(swdt);
719 fio.Write(pos, nom);
720 }
721 else {
722 cerr << " NOMAdapter_DataTable::SavePPF() Objet pas de type DataTable/SwPPFDataTable (nom="
723 << nom << ")" << endl;
724 }
725}
726
727/* --Methode-- */
728string NOMAdapter_DataTable::GetInfoString(vector<string>& opts)
729{
730if (opts.size() == 0) return NObjMgrAdapter::GetInfoString(opts);
731char buff[128];
732if (opts[0] == "sizes") {
733 sprintf(buff, "%ld %ld", mDT->NEntry(), mDT->NVar());
734 return string(buff);
735}
736else if ((opts[0] == "nlines") || (opts[0] == "nentry") || (opts[0] == "nrows")) {
737 sprintf(buff, "%ld", mDT->NEntry());
738 return string(buff);
739}
740else if ((opts[0] == "nvar") || (opts[0] == "ncols")) {
741 sprintf(buff, "%ld", mDT->NVar());
742 return string(buff);
743}
744else return "BaseDataTable.Att: nlines/nentry/nrows nvar/ncols";
745}
746
747/* --Methode-- */
748void NOMAdapter_DataTable::Print(ostream& os, int lev)
749{
750mDT->Show(os);
751if (lev < 1) return;
752if (lev < 5) mDT->Print(os, 0, lev*10);
753else mDT->Print(os);
754}
755
756
757/* --Methode-- */
758NTupleInterface* NOMAdapter_DataTable::GetNTupleInterface(bool& adel)
759{
760adel = false;
761return(mDT);
762}
Note: See TracBrowser for help on using the repository browser.