12#ifndef ROOT_TGeoElement
13#define ROOT_TGeoElement
255 virtual const char *
GetName()
const;
297 TGeoBatemanSol() :
TObject(),
TAttLine(),
TAttFill(),
TAttMarker(),
fElem(nullptr),
fElemTop(nullptr),
fCsize(0),
fNcoeff(0),
fFactor(1.),
fTmin(0.),
fTmax(0),
fCoeff(nullptr) {}
#define ClassDef(name, id)
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char filename
Fill Area Attributes class.
Double_t Concentration(Double_t time) const
Find concentration of the element at a given time.
~TGeoBatemanSol()
Destructor.
void GetCoeff(Int_t i, Double_t &cn, Double_t &lambda) const
void SetRange(Double_t tmin=0., Double_t tmax=0.)
void FindSolution(const TObjArray *array)
Find the solution for the Bateman equations corresponding to the decay chain described by an array en...
virtual void Print(Option_t *option="") const
Print concentration evolution.
void GetRange(Double_t &tmin, Double_t &tmax) const
TGeoBatemanSol & operator=(const TGeoBatemanSol &other)
Assignment.
void SetFactor(Double_t factor)
TGeoElementRN * GetTopElement() const
void Normalize(Double_t factor)
Normalize all coefficients with a given factor.
TGeoElementRN * GetElement() const
TGeoBatemanSol & operator+=(const TGeoBatemanSol &other)
Addition of other solution.
A decay channel for a radionuclide.
void SetParent(TGeoElementRN *parent)
virtual const char * GetName() const
Returns name of decay.
TGeoElementRN * Daughter() const
virtual void Print(Option_t *opt=" ") const
Prints decay info.
TGeoDecayChannel(Int_t decay, Int_t diso, Double_t branchingRatio, Double_t qValue)
static TGeoDecayChannel * ReadDecay(const char *record)
Create element from line record.
TGeoElementRN * Parent() const
virtual ~TGeoDecayChannel()
TGeoElementRN * fDaughter
Double_t BranchingRatio() const
void SetDaughter(TGeoElementRN *daughter)
TGeoDecayChannel & operator=(const TGeoDecayChannel &dc)
Assignment.
static void DecayName(UInt_t decay, TString &name)
Returns decay name.
TGeoDecayChannel(const TGeoDecayChannel &dc)
virtual void DecayShift(Int_t &dA, Int_t &dZ, Int_t &dI) const
Returns variation in A, Z and Iso after decay.
Int_t GetIndex() const
Get index of this channel in the list of decays of the parent nuclide.
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save primitive for decays.
Iterator for decay branches.
virtual void Print(Option_t *option="") const
Print info about the current decay branch.
void SetLimitRatio(Double_t limit)
TObjArray * GetBranch() const
Double_t GetRatio() const
const TGeoElementRN * fElem
TGeoElementRN * Next()
Return next element.
TGeoElemIter & operator=(const TGeoElemIter &iter)
Assignment.
virtual ~TGeoElemIter()
Destructor.
TGeoElementRN * operator()()
() operator.
const TGeoElementRN * fTop
TGeoElementRN * Up()
Go upwards from the current location until the next branching, then down.
const TGeoElementRN * GetElement() const
TGeoElementRN * Down(Int_t ibranch)
Go downwards from current level via ibranch as low in the tree as possible.
const TGeoElementRN * GetTop() const
Class representing a radionuclidevoid TGeoManager::SetDefaultRootUnits() { if ( fgDefaultUnits == kRo...
void AddRatio(TGeoBatemanSol &ratio)
Adds a proportion ratio to the existing one.
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.
TGeoElementRN & operator=(const TGeoElementRN &elem)=delete
TGeoElementRN(const TGeoElementRN &elem)=delete
void AddDecay(Int_t decay, Int_t diso, Double_t branchingRatio, Double_t qValue)
Adds a decay mode for this element.
virtual Bool_t IsRadioNuclide() const
virtual Int_t ENDFCode() const
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save primitive for RN elements.
Double_t HalfLife() const
virtual Double_t GetSpecificActivity() const
Get the activity in Bq of a gram of material made from this element.
Int_t DecayResult(TGeoDecayChannel *dc) const
Returns ENDF code of decay result.
TGeoBatemanSol * Ratio() const
TObjArray * Decays() const
Int_t GetNdecays() const
Get number of decay channels of this element.
void MakeName(Int_t a, Int_t z, Int_t iso)
Generate a default name for the element.
TGeoElementRN()
Default constructor.
Bool_t CheckDecays() const
Check if all decay chain of the element is OK.
static TGeoElementRN * ReadElementRN(const char *record, Int_t &ndecays)
Create element from line record.
virtual ~TGeoElementRN()
Destructor.
static Int_t ENDF(Int_t a, Int_t z, Int_t iso)
void ResetRatio()
Clears the existing ratio.
virtual void Print(Option_t *option="") const
Print info about the element;.
Int_t GetNelementsRN() const
TGeoElementTable & operator=(const TGeoElementTable &)
assignment operator
Bool_t HasRNElements() const
ElementRNMap_t::iterator ElementRNMapIt_t
void ExportElementsRN(const char *filename="")
Export radionuclides in a file.
virtual ~TGeoElementTable()
destructor
void AddIsotope(TGeoIsotope *isotope)
Add isotope to the table.
ElementRNMap_t fElementsRN
TGeoElementRN * GetElementRN(Int_t ENDFcode) const
Retrieve a radionuclide by ENDF code.
void AddElementRN(TGeoElementRN *elem)
Add a radionuclide to the table and map it.
Bool_t HasDefaultElements() const
Bool_t CheckTable() const
Checks status of element table.
void ImportElementsRN()
Creates the list of radionuclides.
std::map< Int_t, TGeoElementRN * > ElementRNMap_t
TGeoElement * GetElement(Int_t z)
void AddElement(const char *name, const char *title, Int_t z, Double_t a)
Add an element to the table. Obsolete.
TObjArray * GetElementsRN() const
virtual void Print(Option_t *option="") const
Print table of elements.
TGeoIsotope * FindIsotope(const char *name) const
Find existing isotope by name. Not optimized for a big number of isotopes.
void BuildDefaultElements()
Creates the default element table.
Int_t GetNelements() const
TGeoElementTable()
default constructor
TGeoElement * FindElement(const char *name) const
Search an element by symbol or full name Exact matching.
Base class for chemical elements.
virtual Double_t GetSpecificActivity() const
TGeoElement()
Default constructor.
void SetDefined(Bool_t flag=kTRUE)
virtual Bool_t IsRadioNuclide() const
void ComputeDerivedQuantities()
Calculate properties for an atomic number.
Double_t Neff() const
Returns effective number of nucleons.
TGeoElement & operator=(const TGeoElement &other)=delete
void ComputeCoulombFactor()
Compute Coulomb correction factor (Phys Rev. D50 3-1 (1994) page 1254)
virtual Int_t ENDFCode() const
void AddIsotope(TGeoIsotope *isotope, Double_t relativeAbundance)
Add an isotope for this element. All isotopes have to be isotopes of the same element.
TGeoElement(const TGeoElement &other)=delete
virtual void Print(Option_t *option="") const
Print this isotope.
static TGeoElementTable * GetElementTable()
Returns pointer to the table.
void ComputeLradTsaiFactor()
Compute Tsai's Expression for the Radiation Length (Phys Rev. D50 3-1 (1994) page 1254)
Double_t GetfCoulomb() const
Int_t GetNisotopes() const
Double_t GetfRadTsai() const
virtual ~TGeoElement()
destructor
Bool_t HasIsotopes() const
Double_t GetRelativeAbundance(Int_t i) const
Return relative abundance of i-th isotope in this element.
void SetUsed(Bool_t flag=kTRUE)
TGeoIsotope * GetIsotope(Int_t i) const
Return i-th isotope in the element.
TGeoIsotope()
Dummy I/O constructor.
virtual void Print(Option_t *option="") const
Print this isotope.
static TGeoIsotope * FindIsotope(const char *name)
Find existing isotope by name.
The TNamed class is the base class for all named ROOT classes.
TObject * At(Int_t idx) const override
Mother of all ROOT objects.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
const char * Data() const