Changeset 3112 in Sophya for trunk/SophyaLib/HiStats


Ignore:
Timestamp:
Dec 1, 2006, 10:06:37 AM (19 years ago)
Author:
cmv
Message:

ajout constructeur NTuple avec vector<string> cmv 01/12/2006

Location:
trunk/SophyaLib/HiStats
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaLib/HiStats/ntuple.cc

    r2868 r3112  
    8181//
    8282//      Createur d'un ntuple de `nvar' variables dont les
    83 //      noms sont dans le tableau de cahines de caracteres `noms'
     83//      noms sont dans le tableau de chaines de caracteres `noms'
    8484//      avec `blk' d'evenements par blocks.
    8585//--
     
    8989mVarD = NULL;
    9090mInfo = NULL;
     91if (nvar <= 0)  throw ParmError("NTuple::NTuple(nvar<=0) ");
     92mNVar = nvar;
     93mVar = new r_4[nvar];
     94mVarD = new r_8[nvar];
     95if (blk < 10) blk = 10;
     96mBlk = blk;
     97
     98if (fgdouble) {
     99  r_8* pt = new r_8[nvar*blk];
     100  mNBlk = 1;
     101  mPtrD.push_back(pt);
     102  mFgDouble = true;
     103}
     104else {
     105  r_4* pt = new r_4[nvar*blk];
     106  mNBlk = 1;
     107  mPtr.push_back(pt);
     108  mFgDouble = false;
     109}
     110for(int i=0; i<nvar; i++) mNames.push_back(noms[i]);
     111return;
     112}
     113
     114//! Constructor with specification of number of columns and column name
     115/*!
     116  \param noms : Array of column names (length(name) < 8 characters)
     117  \param blk : Optional argument specifying number of table lines
     118  in a given data block
     119  \param fgdouble : if \b true: internal data kept as double precision values (r_8),
     120  simple precision (r_4) otherwise
     121 */
     122NTuple::NTuple(vector<string>& noms, int blk, bool fgdouble)
     123{
     124mNVar = mNEnt = mBlk = mNBlk = 0;
     125mVar = NULL;
     126mVarD = NULL;
     127mInfo = NULL;
     128int nvar = noms.size();
    91129if (nvar <= 0)  throw ParmError("NTuple::NTuple(nvar<=0) ");
    92130mNVar = nvar;
  • trunk/SophyaLib/HiStats/ntuple.h

    r2808 r3112  
    2626
    2727public:
    28                     NTuple();
    29                     NTuple(int nvar, char** noms, int blk=512, bool fgdouble=true);
    30                     NTuple(const NTuple& NT);
    31   virtual           ~NTuple();
     28  NTuple();
     29  NTuple(int nvar, char** noms, int blk=512, bool fgdouble=true);
     30  NTuple(vector<string>& noms, int blk=512, bool fgdouble=true);
     31  NTuple(const NTuple& NT);
     32  virtual ~NTuple();
    3233
    33   NTuple&           operator = (const NTuple& NT);
     34  NTuple& operator = (const NTuple& NT);
    3435 
    3536  void              Fill(r_4* x);
Note: See TracChangeset for help on using the changeset viewer.