Changeset 914 in Sophya for trunk/SophyaLib/NTools/generaldata.h
- Timestamp:
- Apr 13, 2000, 6:04:50 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/NTools/generaldata.h
r552 r914 19 19 //================================================================ 20 20 21 /*! 22 Classe de stoquage de donnees a plusieurs variables avec erreur 23 sur l'ordonnee et sur les abscisses (options) : 24 25 \f$ {x0(i),Ex0(i), x1(i),Ex1(i), x2(i),Ex2(i) ... ; Y(i),EY(i)} \f$ 26 \verbatim 27 Pour memoire, structure du rangement (n=mNVar): 28 - Valeur des abscisses mXP (idem pour mErrXP): 29 x0,x1,x2,...,xn x0,x1,x2,...,xn .... x0,x1,x2,....,xn 30 | 1er point | | 2sd point | .... | point mNData | 31 Donc abscisse J=[0,mNVar[ du point numero I=[0,mNData[: mXP[I*mNVar+J] 32 - Valeur de l'ordonnee mF (idem pour mErr et mOK): 33 f f f 34 | 1er point | | 2sd point | .... | point mNData | 35 Donc point numero I [0,mNData[ : mF[i] 36 \endverbatim 37 */ 38 21 39 class GeneralFitData : public AnyDataObj , public NTupleInterface { 22 40 friend class GeneralFit; 23 41 friend class ObjFileIO<GeneralFitData>; 24 42 public: 25 enum {Def_ErrF = 1, Def_ErrX = 0}; 43 //! Valeurs par defaut pour l'utilisation des erreurs 44 enum { 45 Def_ErrF = 1, //!< erreurs sur F par defaut 46 Def_ErrX = 0 //!< pas d'erreurs sur les variables X,Y,... par defaut 47 }; 26 48 27 49 GeneralFitData(unsigned int nVar, unsigned int nDataAlloc, uint_2 errx=0); … … 67 89 inline void Show() const {Show(cout);} 68 90 91 //! Retourne la place restante dans la structure (nombre de donnees que l'on peut encore stoquer). 69 92 inline int GetSpaceFree() const { return mNDataAlloc - mNData; } 93 //! Retourne le nombre de variables Xi 70 94 inline int NVar() const {return mNVar;} 95 //! Retourne le nombre de donnees 71 96 inline int NData() const {return mNData;} 97 //! Retourne le nombre de bonnes donnees (utilisees pour le fit) 72 98 inline int NDataGood() const {return mNDataGood;} 99 //! Retourne la place maximale allouee pour les donnees 73 100 inline int NDataAlloc() const {return mNDataAlloc;} 74 101 102 //! Retourne 1 si point valide, sinon 0 75 103 inline unsigned short int IsValid(int i) const 76 104 {if(i>=0 && i<mNData) return mOK[i]; else return 0;} 105 //! Retourne ``true'' si il y a des erreurs sur les variables d'abscisse, ``false'' sinon. 77 106 inline bool HasXErrors() {if(mErrXP) return true; else return false;} 78 107 108 //! Retourne l'abscisse pour 1 dimension (y=f(x)) donnee I 79 109 inline double X1(int i) const 80 110 {if(i>=0 && i<mNData) return mXP[i]; else return 0.;} 111 //! Retourne la 1er abscisse (X) pour (v=f(x,y,z,...)) donnee I 81 112 inline double X(int i) const 82 113 {if(i>=0 && i<mNData) return mXP[i*mNVar]; else return 0.;} 114 //! Retourne la 2sd abscisse (Y) pour (v=f(x,y,z,...)) donnee I 83 115 inline double Y(int i) const 84 116 {if(i>=0 && i<mNData && 1<mNVar) return mXP[i*mNVar+1]; else return 0.;} 117 //! etourne la 3ieme abscisse (Z) pour (v=f(x,y,z,...)) donnee I 85 118 inline double Z(int i) const 86 119 {if(i>=0 && i<mNData && 2<mNVar) return mXP[i*mNVar+2]; else return 0.;} 120 //! Retourne la Jieme abscisse (Xj) pour (v=f(x0,x1,x2,...)) donnee I 87 121 inline double Absc(int j,int i) const 88 122 {if(i>=0 && i<mNData && j<mNVar)return mXP[i*mNVar+j]; else return 0.;} 123 //! Retourne la valeur de la Ieme donnee 89 124 inline double Val(int i) const 90 125 {if(i>=0 && i<mNData) return mF[i]; else return 0.;} 91 126 127 //! Retourne l'erreur (dx) sur l'abscisse pour 1 dimension (y=f(x)) donnee I 92 128 inline double EX1(int i) const 93 129 {if(mErrXP && i>=0 && i<mNData) return mErrXP[i]; else return 0.;} 130 //! Retourne l'erreur (dx) sur la 1er abscisse (X) pour (v=f(x,y,z,...)) donnee I 94 131 inline double EX(int i) const 95 132 {if(mErrXP && i>=0 && i<mNData) return mErrXP[i*mNVar]; else return 0.;} 133 //! Retourne l'erreur (dy) sur la 2sd abscisse (Y) pour (v=f(x,y,z,...)) donnee I 96 134 inline double EY(int i) const 97 135 {if(mErrXP && i>=0 && i<mNData && 1<mNVar) return mErrXP[i*mNVar+1]; 98 136 else return 0.;} 137 //! Retourne l'erreur (dz) sur la 3ieme abscisse (Z) pour (v=f(x,y,z,...)) donnee I 99 138 inline double EZ(int i) const 100 139 {if(mErrXP && i>=0 && i<mNData && 2<mNVar) return mErrXP[i*mNVar+2]; 101 140 else return 0.;} 141 //! Retourne l'erreur (dxj) sur la Jieme abscisse (Xj) pour (v=f(x0,x1,x2,...)) donnee I 102 142 inline double EAbsc(int j,int i) const 103 143 {if(mErrXP && i>=0 && i<mNData && j<mNVar) return mErrXP[i*mNVar+j]; 104 144 else return 0.;} 145 //! Retourne l'erreur de la Ieme donnee 105 146 inline double EVal(int i) const 106 147 {if(i>=0 && i<mNData) return mErr[i]; else return 0.;} … … 139 180 int_4 mNDataGood; 140 181 uint_2 mOk_EXP; 141 r_8* mXP; // x0 y0 z0, x1 y1 z1, ..., xn yn zn142 r_8* mErrXP; // Ex0 Ey0 Ez0, Ex1 Ey1 Ez1, ..., Exn Eyn Ezn143 r_8* mF; // F0, F1, ...., Fn144 r_8* mErr; // EF0, EF1, ...., EFn145 uint_2* mOK; //1 si pt valid, 0 sinon182 r_8* mXP; //!< x0 y0 z0, x1 y1 z1, ..., xn yn zn 183 r_8* mErrXP; //!< Ex0 Ey0 Ez0, Ex1 Ey1 Ez1, ..., Exn Eyn Ezn 184 r_8* mF; //!< F0, F1, ...., Fn 185 r_8* mErr; //!< EF0, EF1, ...., EFn 186 uint_2* mOK; //!< 1 si pt valid, 0 sinon 146 187 r_8* BuffVar; 147 188 r_4* BuffVarR4;
Note:
See TracChangeset
for help on using the changeset viewer.