12 #ifndef ROOT_TGeoElement
13 #define ROOT_TGeoElement
27 #ifndef ROOT_TAttMarker
31 #ifndef ROOT_TObjArray
242 TGeoDecayChannel() : fDecay(0), fDiso(0), fBranchingRatio(0), fQvalue(0), fParent(0), fDaughter(0) {}
244 : fDecay(decay), fDiso(diso), fBranchingRatio(branchingRatio), fQvalue(qValue), fParent(0), fDaughter(0) {}
246 fQvalue(dc.fQvalue),fParent(dc.fParent),fDaughter(dc.fDaughter) {}
253 virtual const char *
GetName()
const;
295 TGeoBatemanSol() :
TObject(),
TAttLine(),
TAttFill(),
TAttMarker(), fElem(
NULL), fElemTop(
NULL), fCsize(0), fNcoeff(0), fFactor(1.), fTmin(0.), fTmax(0), fCoeff(
NULL) {}
337 TGeoElemIter() : fTop(0), fElem(0), fBranch(0), fLevel(0), fLimitRatio(0), fRatio(0) {}
static void DecayName(UInt_t decay, TString &name)
Returns decay name.
virtual Int_t ENDFCode() const
TGeoElement * FindElement(const char *name) const
Search an element by symbol or full name Exact matching.
void FillPopulation(TObjArray *population, Double_t precision=0.001, Double_t factor=1.)
Fills the input array with the set of RN elements resulting from the decay of this one...
static TGeoElementRN * ReadElementRN(const char *record, Int_t &ndecays)
Create element from line record.
void Normalize(Double_t factor)
Normalize all coefficients with a given factor.
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save primitive for RN elements.
static TGeoDecayChannel * ReadDecay(const char *record)
Create element from line record.
void AddDecay(Int_t decay, Int_t diso, Double_t branchingRatio, Double_t qValue)
Adds a decay mode for this element.
virtual void Draw(Option_t *option="")
Draw the solution of Bateman equation versus time.
~TGeoBatemanSol()
Destructor.
Double_t Concentration(Double_t time) const
Find concentration of the element at a given time.
TObjArray * Decays() const
TGeoElementRN * operator()()
() operator.
Bool_t HasIsotopes() const
static const char * filename()
virtual const char * GetName() const
Returns name of decay.
void AddRatio(TGeoBatemanSol &ratio)
Adds a proportion ratio to the existing one.
TGeoElementTable & operator=(const TGeoElementTable &)
assignment operator
void SetLimitRatio(Double_t limit)
virtual ~TGeoElementRN()
Destructor.
Int_t GetIndex() const
Get index of this channel in the list of decays of the parent nuclide.
void AddIsotope(TGeoIsotope *isotope)
Add isotope to the table.
TGeoIsotope * FindIsotope(const char *name) const
Find existing isotope by name. Not optimized for a big number of isotopes.
virtual Double_t GetSpecificActivity() const
Get the activity in Bq of a gram of material made from this element.
TGeoElementRN * GetElementRN(Int_t ENDFcode) const
Retreive a radionuclide by ENDF code.
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
Int_t GetNelementsRN() const
const TGeoElementRN * fTop
Int_t GetNdecays() const
Get number of decay chanels of this element.
virtual void Print(Option_t *option="") const
Print this isotope.
const char * Data() const
static TGeoIsotope * FindIsotope(const char *name)
Find existing isotope by name.
const TGeoElementRN * GetTop() const
Int_t GetNisotopes() const
virtual ~TGeoElementTable()
destructor
TGeoBatemanSol & operator=(const TGeoBatemanSol &other)
Assignment.
Fill Area Attributes class.
TGeoBatemanSol * Ratio() const
#define ClassDef(name, id)
void MakeName(Int_t a, Int_t z, Int_t iso)
Generate a default name for the element.
Bool_t CheckTable() const
Checks status of element table.
TGeoElementRN * Parent() const
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save primitive for decays.
The TNamed class is the base class for all named ROOT classes.
virtual void Print(Option_t *option="") const
Print info about the current decay branch.
std::map< std::string, std::string >::const_iterator iter
void AddIsotope(TGeoIsotope *isotope, Double_t relativeAbundance)
Add an isotope for this element. All isotopes have to be isotopes of the same element.
static TGeoElementTable * GetElementTable()
Returns pointer to the table.
Double_t Neff() const
Returns effective number of nucleons.
Bool_t HasDefaultElements() const
TGeoElementRN * Down(Int_t ibranch)
Go downwards from current level via ibranch as low in the tree as possible.
virtual Bool_t IsRadioNuclide() const
void SetFactor(Double_t factor)
virtual Double_t GetSpecificActivity() const
TObjArray * GetBranch() const
virtual void Print(Option_t *option="") const
Print concentration evolution.
void SetDaughter(TGeoElementRN *daughter)
void GetCoeff(Int_t i, Double_t &cn, Double_t &lambda) const
std::map< Int_t, TGeoElementRN * > ElementRNMap_t
TGeoElement & operator=(const TGeoElement &other)
void FindSolution(const TObjArray *array)
Find the solution for the Bateman equations corresponding to the decay chain described by an array en...
virtual ~TGeoDecayChannel()
const TGeoElementRN * fElem
Double_t HalfLife() const
Bool_t TestBit(UInt_t f) const
void AddElementRN(TGeoElementRN *elem)
Add a radionuclide to the table and map it.
const TGeoElementRN * GetElement() const
virtual void Print(Option_t *option="") const
Print this isotope.
void AddElement(const char *name, const char *title, Int_t z, Double_t a)
Add an element to the table. Obsolete.
virtual void DecayShift(Int_t &dA, Int_t &dZ, Int_t &dI) const
Returns variation in A, Z and Iso after decay.
Double_t GetRelativeAbundance(Int_t i) const
Return relative abundance of i-th isotope in this element.
TGeoElementRN * GetTopElement() const
TGeoBatemanSol & operator+=(const TGeoBatemanSol &other)
Addition of other solution.
TGeoDecayChannel(Int_t decay, Int_t diso, Double_t branchingRatio, Double_t qValue)
TGeoDecayChannel(const TGeoDecayChannel &dc)
virtual void Print(Option_t *opt=" ") const
Prints decay info.
TObjArray * GetElementsRN() const
void SetUsed(Bool_t flag=kTRUE)
ElementRNMap_t fElementsRN
TGeoElementRN * Next()
Return next element.
virtual void Print(Option_t *option="") const
Print table of elements.
virtual Bool_t IsRadioNuclide() const
virtual ~TGeoElemIter()
Destructor.
void SetParent(TGeoElementRN *parent)
ElementRNMap_t::iterator ElementRNMapIt_t
virtual void Print(Option_t *option="") const
Print info about the element;.
void SetDefined(Bool_t flag=kTRUE)
TGeoElementRN * GetElement() const
Mother of all ROOT objects.
TGeoElementRN * Up()
Go upwards from the current location until the next branching, then down.
void ImportElementsRN()
Creates the list of radionuclides.
Int_t DecayResult(TGeoDecayChannel *dc) const
Returns ENDF code of decay result.
TGeoElementRN * fDaughter
Bool_t CheckDecays() const
Check if all decay chain of the element is OK.
void BuildDefaultElements()
Creates the default element table.
TGeoElementRN & operator=(const TGeoElementRN &elem)
static Int_t ENDF(Int_t a, Int_t z, Int_t iso)
Int_t GetNelements() const
Double_t GetRatio() const
Double_t BranchingRatio() const
TGeoElement * GetElement(Int_t z)
TObject * At(Int_t idx) const
void GetRange(Double_t &tmin, Double_t &tmax) const
std::complex< float_v > Z
virtual Int_t ENDFCode() const
Bool_t HasRNElements() const
void SetRange(Double_t tmin=0., Double_t tmax=0.)
TGeoElementRN * Daughter() const
TGeoIsotope * GetIsotope(Int_t i) const
Return i-th isotope in the element.
TGeoDecayChannel & operator=(const TGeoDecayChannel &dc)
void ResetRatio()
Clears the existing ratio.
void ExportElementsRN(const char *filename="")
Export radionuclides in a file.
TGeoElemIter & operator=(const TGeoElemIter &iter)
Assignment.