Changeset 3572 in Sophya for trunk/SophyaLib/HiStats/ntuple.cc
- Timestamp:
- Feb 7, 2009, 10:50:34 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/HiStats/ntuple.cc
r3392 r3572 26 26 #include "ntuple.h" 27 27 // ... 28 c har * names[3] = {"XPos", "YPos", "Val"};28 const char * names[3] = {"XPos", "YPos", "Val"}; 29 29 // NTuple (Table) creation with 3 columns (double precision) 30 30 NTuple nt(3, names); … … 73 73 74 74 75 //! Constructor with specification of number of columns and column name 75 //! Constructor with specification of number of columns and column names 76 76 /*! 77 77 \param nvar : Number of columns in the table 78 \param noms : Array of column names (length(name) < 8 characters)78 \param noms : Array of column names 79 79 \param blk : Optional argument specifying number of table lines 80 80 in a given data block … … 90 90 //-- 91 91 { 92 mNVar = mNEnt = mBlk = mNBlk = 0; 93 mVar = NULL; 94 mVarD = NULL; 95 mInfo = NULL; 96 mThS = NULL; 97 if (nvar <= 0) throw ParmError("NTuple::NTuple(nvar<=0) "); 98 mNVar = nvar; 99 mVar = new r_4[nvar]; 100 mVarD = new r_8[nvar]; 101 if (blk < 10) blk = 10; 102 mBlk = blk; 103 104 if (fgdouble) { 105 r_8* pt = new r_8[nvar*blk]; 106 mNBlk = 1; 107 mPtrD.push_back(pt); 108 mFgDouble = true; 109 } 110 else { 111 r_4* pt = new r_4[nvar*blk]; 112 mNBlk = 1; 113 mPtr.push_back(pt); 114 mFgDouble = false; 115 } 92 if (nvar <= 0) throw ParmError("NTuple::NTuple(nvar<=0) with char** noms"); 93 Initialize(nvar,blk,fgdouble); 116 94 for(int i=0; i<nvar; i++) mNames.push_back(noms[i]); 117 95 return; 118 96 } 119 97 120 //! Constructor with specification of number of columns and column name 98 99 //! Constructor with specification of number of columns and column names 100 /*! 101 \param nvar : Number of columns in the table 102 \param noms : Array of column names 103 \param blk : Optional argument specifying number of table lines 104 in a given data block 105 \param fgdouble : if \b true: internal data kept as double precision values (r_8), 106 simple precision (r_4) otherwise 107 */ 108 //++ 109 NTuple::NTuple(int nvar, const char** noms, int blk, bool fgdouble) 110 // 111 // Createur d'un ntuple de `nvar' variables dont les 112 // noms sont dans le tableau de chaines de caracteres `noms' 113 // avec `blk' d'evenements par blocks. 114 //-- 115 { 116 if (nvar <= 0) throw ParmError("NTuple::NTuple(nvar<=0) with const char** noms"); 117 Initialize(nvar,blk,fgdouble); 118 for(int i=0; i<nvar; i++) mNames.push_back(noms[i]); 119 return; 120 } 121 122 //! Constructor with specification of number of columns and column names as a string vector 121 123 /*! 122 124 \param noms : Array of column names (length(name) < 8 characters) … … 128 130 NTuple::NTuple(vector<string>& noms, int blk, bool fgdouble) 129 131 { 132 int nvar = noms.size(); 133 if (nvar <= 0) throw ParmError("NTuple::NTuple(nvar<=0) with vector<string>& noms"); 134 Initialize(nvar,blk,fgdouble); 135 for(int i=0; i<nvar; i++) mNames.push_back(noms[i]); 136 return; 137 } 138 139 140 /* --Methode-- */ 141 /* Initialisation pour Createurs (fonction privee) */ 142 void NTuple::Initialize(int nvar, int blk, bool fgdouble) 143 { 130 144 mNVar = mNEnt = mBlk = mNBlk = 0; 131 145 mVar = NULL; … … 133 147 mInfo = NULL; 134 148 mThS = NULL; 135 int nvar = noms.size();136 if (nvar <= 0) throw ParmError("NTuple::NTuple(nvar<=0) ");137 149 mNVar = nvar; 138 150 mVar = new r_4[nvar]; … … 153 165 mFgDouble = false; 154 166 } 155 for(int i=0; i<nvar; i++) mNames.push_back(noms[i]); 167 156 168 return; 157 169 } … … 206 218 Clean(); 207 219 } 220 208 221 /* --Methode-- */ 209 222 /*! … … 494 507 //-- 495 508 { 496 c har * tt = "float";509 const char * tt = "float"; 497 510 if (mFgDouble) tt = "double"; 498 511 os << "NTuple T=" << tt << " : NVar= " << mNVar << " NEnt=" << mNEnt
Note:
See TracChangeset
for help on using the changeset viewer.