// Author: Andrew M. Rogers <mailto, NSCL 08/01/2008
//* Copyright (C) 2006-2008 Andrew M. Rogers

#ifndef  __TNUCLEUS_H
#define  __TNUCLEUS_H

#include <THashList.h>
#include <TNamed.h>
#include <TObject.h>

using namespace std;


class TNucleus : public TNamed{
 private:


  Int_t      fNZ;                   // N-Z
  Int_t      fN;                    // Number of neutrons.
  Int_t      fZ;                    // Number of protons.
  Int_t      fA;                    // Mass number = N+Z.
  Char_t    *fElement;              // Element name.
  Double_t   fMassEx;               // Mass excess [keV].
  Double_t   fMassExUnc;            // Mass excess uncertainty [keV].
  Double_t   fBE;                   // Binding Energy/A [keV].
  Double_t   fBEUnc;                // Binding Energy/A uncertainty [keV].
  Double_t   fBetaDE;               // Beta-decay energy [keV].
  Double_t   fBetaDEUnc;            // Beta-decay energy uncertainty [keV];
  Double_t   fAMass;                // Atomic mass [micro-u].
  Double_t   fAMassUnc;             // Atomic mass uncertainty [micro-u].

  THashList *fSep;                  // Separation energies and uncertainties [keV].
  THashList *fQVal;                 // Q-values and uncertainties [keV].
  //  THashList *fLevels;               // Nuclear level scheme.
  //  THashList *fGammas;               // Gammas.

 private:
  //  void      SetNucleus(Int_t Z, Int_t A);
  
 public:

  TNucleus(Int_t Z, Int_t A);                                      // Default ctor.
  TNucleus(const char *name, const char *title, Int_t Z, Int_t A); // 
  TNucleus(const TNucleus & );                                     // The copy ctor.
  ~TNucleus() {}

  void       Clear(Option_t *option="");
  void       Copy(TObject &nuc) const;                             // Copy method.

  Int_t      NZ()        {return fNZ;}
  Int_t      N()         {return fN;}              
  Int_t      A()         {return fA;}
  Char_t    *Element()   {return fElement;}
  Double_t   MassEx()    {return fMassEx;}
  Double_t   MassExUnc() {return fMassExUnc;}
  Double_t   BE()        {return fBE;}
  Double_t   BEUnc()     {return fBEUnc;}
  Double_t   BetaDE()    {return fBetaDE;}
  Double_t   BetaDEUnc() {return fBetaDEUnc;}
  Double_t   AMass()     {return fAMass;}
  Double_t   AMassUnc()  {return fAMassUnc;}

  Double_t   GetSepE(   Char_t *type);
  Double_t   GetSepEUnc(Char_t *type);
  Double_t   GetQVal(   Char_t *type);
  Double_t   GetQValUnc(Char_t *type);
  

  void       SetMassEx(   Double_t MassEx)    {fMassEx    = MassEx;}
  void       SetMassExUnc(Double_t MassExUnc) {fMassExUnc = MassExUnc;}
  void       SetBE(       Double_t BE)        {fBE        = BE;}
  void       SetBEUnc(    Double_t BEUnc)     {fBEUnc     = BEUnc;}
  void       SetBetaDE(   Double_t BetaDE)    {fBetaDE    = BetaDE;}
  void       SetBetaDEUnc(Double_t BetaDEUnc) {fBetaDEUnc = BetaDEUnc;}
  void       SetAMass(    Double_t AMass)     {fAMass     = AMass;}
  void       SetAMassUnc( Double_t AMassUnc)  {fAMassUnc  = AMassUnc;}

  void       Print(Option_t *option="");


  ClassDef(TNucleus,1)     // A nucleus of protons and neutrons.
};


#endif





Last change: Sun Dec 21 13:31:59 2008
Last generated: 2008-12-21 13:31

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.