CLASS  1.1
include/IsotopicVector.hxx
Aller à la documentation de ce fichier.
00001 #ifndef __ISOTOPICVECTOR_HXX__
00002 #define __ISOTOPICVECTOR_HXX__
00003 
00004 
00013 #include "ZAI.hxx"
00014 
00015 #include "TObject.h"
00016 #include <string>
00017 #include <map>
00018 
00019 using namespace std;
00020 class IsotopicVector;
00021 
00022 IsotopicVector operator/(IsotopicVector const& IVA, double F);
00023 IsotopicVector operator/(ZAI const& zai, double F);
00024 IsotopicVector operator*(IsotopicVector const& IVA, double F);
00025 IsotopicVector operator*(ZAI const& zai, double F);
00026 IsotopicVector operator+(IsotopicVector const& IVa, IsotopicVector const& IVb);
00027 IsotopicVector operator-(IsotopicVector const& IVa, IsotopicVector const& IVb);
00028 
00029 double  Distance(IsotopicVector IV1, IsotopicVector IV2 );
00030 double  Norme(IsotopicVector IV1);
00031 
00032 class IsotopicVector : public TObject
00033 {
00034 public :
00035 
00036 //********* Constructor/Destructor Method *********//
00037         
00038         IsotopicVector();       
00039         ~IsotopicVector();       
00040 
00041         
00042 //********* Get Method *********//
00043 
00044         map<ZAI ,double>        GetIsotopicQuantity() const {return fIsotopicQuantity;}                 
00045         map<ZAI ,double>        GetIsotopicQuantityNeeded() const {return fIsotopicQuantityNeeded;}     
00046         IsotopicVector          GetAtomicComposition(int z) const;                                      
00047         vector<int>             GetAtomicSpecies() const;                                               
00048 
00049         
00050 //********* Modification Method *********//
00051         void    Clear();                                        
00052         void    ClearNeed();                                    
00053 
00054         void    Add(const ZAI& zai, double quantity);           
00055         void    Add(const IsotopicVector& isotopicvector);      
00056         void    Add(const map<ZAI ,double>& quantity);          
00057 
00058         void    Need(const ZAI& zai, double quantity);          
00059         void    Need(const IsotopicVector& isotopicvector);     
00060         void    Need(const map<ZAI ,double>& quantityneeded) {fIsotopicQuantityNeeded = quantityneeded;}        
00062 
00063         void    Remove(const ZAI& zai, double quantity);        
00064         void    Remove(const IsotopicVector& isotopicvector);   
00065 
00066         void    Multiply(double factor);                        
00067         
00068         void    Write(string filename, long int time ) const;   
00069 
00070         void    Print(string o =" ") const ;                    
00071         
00072         double  GetZAIIsotopicQuantity(const ZAI& zai) const;                                           
00073         double  GetZAIIsotopicQuantity(const int z, const int a, const int i) const;                    
00074 
00075         
00076         
00077 //******* Set Operator between IsotopicVector *******//
00078 
00079         IsotopicVector& operator+=(IsotopicVector const& IVb);  
00080         IsotopicVector& operator-=(IsotopicVector const& IVb);  
00081 
00082 //***************************************************///< 
00083 
00084         
00085         protected :
00086 
00087         map<ZAI ,double>        fIsotopicQuantity;              
00088         map<ZAI ,double>        fIsotopicQuantityNeeded;        
00089 
00090         ClassDef(IsotopicVector,2);
00091 };
00092 
00093 
00094 
00095 
00096 
00097 #endif
 Tout Classes Fichiers Fonctions Variables Macros