48#include "RConfigure.h" 
   69   "H ", 
"He", 
"Li", 
"Be", 
"B ", 
"C ", 
"N ", 
"O ", 
"F ", 
"Ne", 
"Na", 
"Mg", 
"Al", 
"Si", 
"P ", 
"S ", 
"Cl", 
"Ar", 
"K ",
 
   70   "Ca", 
"Sc", 
"Ti", 
"V ", 
"Cr", 
"Mn", 
"Fe", 
"Co", 
"Ni", 
"Cu", 
"Zn", 
"Ga", 
"Ge", 
"As", 
"Se", 
"Br", 
"Kr", 
"Rb", 
"Sr",
 
   71   "Y ", 
"Zr", 
"Nb", 
"Mo", 
"Tc", 
"Ru", 
"Rh", 
"Pd", 
"Ag", 
"Cd", 
"In", 
"Sn", 
"Sb", 
"Te", 
"I ", 
"Xe", 
"Cs", 
"Ba", 
"La",
 
   72   "Ce", 
"Pr", 
"Nd", 
"Pm", 
"Sm", 
"Eu", 
"Gd", 
"Tb", 
"Dy", 
"Ho", 
"Er", 
"Tm", 
"Yb", 
"Lu", 
"Hf", 
"Ta", 
"W ", 
"Re", 
"Os",
 
   73   "Ir", 
"Pt", 
"Au", 
"Hg", 
"Tl", 
"Pb", 
"Bi", 
"Po", 
"At", 
"Rn", 
"Fr", 
"Ra", 
"Ac", 
"Th", 
"Pa", 
"U ", 
"Np", 
"Pu", 
"Am",
 
   74   "Cm", 
"Bk", 
"Cf", 
"Es", 
"Fm", 
"Md", 
"No", 
"Lr", 
"Rf", 
"Db", 
"Sg", 
"Bh", 
"Hs", 
"Mt", 
"Ds"};
 
 
   77   "2BetaMinus", 
"BetaMinus", 
"NeutronEm", 
"ProtonEm",   
"Alpha",  
"ECF",      
"ElecCapt", 
"IsoTrans",
 
   78   "I",          
"SpontFiss", 
"2ProtonEm", 
"2NeutronEm", 
"2Alpha", 
"Carbon12", 
"Carbon14", 
"Stable"};
 
 
   80static const Int_t gDecayDeltaA[
gMaxDecay] = {0, 0, -1, -1, -4, -99, 0, 0, -99, -99, -2, -2, -8, -12, -14};
 
   82static const Int_t gDecayDeltaZ[
gMaxDecay] = {2, 1, 0, -1, -2, -99, -1, 0, -99, -99, -2, 0, -4, -6, -6};
 
  176   static constexpr Double_t k1 = 0.0083, 
k2 = 0.20206, 
k3 = 0.0020, 
k4 = 0.0369;
 
 
  234      ::Error(
"TGeoElementTable::GetElementTable", 
"Create a geometry manager first");
 
 
  265      Fatal(
"AddIsotope", 
"Trying to add isotope %s with different Z to the same element %s", 
isotope->GetName(),
 
 
  344      Fatal(
"ctor", 
"Not allowed Z=%d (<1) for isotope: %s", z, 
name);
 
  346      Fatal(
"ctor", 
"Not allowed Z=%d < N=%d for isotope: %s", z, 
n, 
name);
 
 
  497      Error(
"CheckDecays", 
"Element table not present");
 
  509      br += 
dc->BranchingRatio();
 
 
  537   if (
da == -99 || 
dz == -99)
 
 
  559   while ((
elem = next())) {
 
  561      ratio.Normalize(factor);
 
  562      elem->AddRatio(ratio);
 
 
  574   if (z == 0 && 
a == 1) {
 
  582   if (
a >= 1 && 
a <= 999)
 
 
  630   sscanf(&
line[0], 
"%s%d%d%d%lg%lg%lg%s%lg%lg%lg%lg%lg%d%d", 
name, &
a, &z, &
iso, &level, &
deltaM, &
halfLife, 
jp,
 
  633      new TGeoElementRN(
a, z, 
iso, level, 
deltaM, 
halfLife, 
jp, 
natAbun, 
th_f, 
tg_f, 
th_s, 
tg_s, status);
 
 
  644      out << 
"#========================================================================================================" 
  645             "============================" 
  647      out << 
"#   Name      A    Z   ISO    LEV[MeV]  DM[MeV]   T1/2[s]        J/P     ABUND[%]    HTOX      ITOX      " 
  648             "HTOX      ITOX    STAT NDCY" 
  650      out << 
"#========================================================================================================" 
  651             "============================" 
  655   out << std::setw(5) << (
Int_t)
fA;
 
  656   out << std::setw(5) << 
fZ;
 
  657   out << std::setw(5) << 
fIso;
 
  658   out << std::setw(10) << std::setiosflags(std::ios::fixed) << std::setprecision(5) << 
fLevel;
 
  659   out << std::setw(10) << std::setiosflags(std::ios::fixed) << std::setprecision(5) << 
fDeltaM;
 
  660   out << std::setw(10) << std::setiosflags(std::ios::scientific) << std::setprecision(3) << 
fHalfLife;
 
  662   out << std::setw(10) << std::setiosflags(std::ios::fixed) << std::setprecision(5) << 
fNatAbun;
 
  663   out << std::setw(10) << std::setiosflags(std::ios::fixed) << std::setprecision(5) << 
fTH_F;
 
  664   out << std::setw(10) << std::setiosflags(std::ios::fixed) << std::setprecision(5) << 
fTG_F;
 
  665   out << std::setw(10) << std::setiosflags(std::ios::fixed) << std::setprecision(5) << 
fTH_S;
 
  666   out << std::setw(10) << std::setiosflags(std::ios::fixed) << std::setprecision(5) << 
fTG_S;
 
  667   out << std::setw(5) << 
fStatus;
 
  671   out << std::setw(5) << 
ndecays;
 
  677         dc->SavePrimitive(out);
 
 
  753      if (1 << i & 
decay) {
 
 
  799   out << std::setw(50) << 
decayName.Data();
 
  800   out << std::setw(10) << 
fDecay;
 
  801   out << std::setw(10) << 
fDiso;
 
  802   out << std::setw(12) << std::setiosflags(std::ios::fixed) << std::setprecision(6) << 
fBranchingRatio;
 
  803   out << std::setw(12) << std::setiosflags(std::ios::fixed) << std::setprecision(6) << 
fQvalue;
 
 
  832   : fTop(top), fElem(top), fBranch(nullptr), fLevel(0), fLimitRatio(limit), fRatio(1.)
 
 
  845     fLimitRatio(iter.fLimitRatio),
 
 
  902      ind = 
dc->GetIndex();
 
  903      nd = 
dc->Parent()->GetNdecays();
 
  904      fRatio /= 0.01 * 
dc->BranchingRatio();
 
 
  947   for (
Int_t i = 0; i < nd; i++)
 
 
  965      printf(
"%s%s (%g%% %s) T1/2=%g\n", 
indent.Data(), 
elem->GetName(), 
dc->BranchingRatio(), 
dc->GetName(),
 
 
 1010     fNelements(get.fNelements),
 
 1011     fNelementsRN(get.fNelementsRN),
 
 1012     fNisotopes(get.fNisotopes),
 
 1014     fListRN(get.fListRN),
 
 
 1084      Error(
"AddElement", 
"Found element with same name: %s (%s). Cannot add to table.", 
orig->GetName(),
 
 
 1112      Error(
"AddIsotope", 
"Isotope with the same name: %s already in table. Not adding.", 
isotope->GetName());
 
 
 1131   AddElement(
"BE", 
"BERYLLIUM", 4, 9, 9.01218);
 
 1134   AddElement(
"N", 
"NITROGEN", 7, 14, 14.00674);
 
 1136   AddElement(
"F", 
"FLUORINE", 9, 19, 18.9984032);
 
 1138   AddElement(
"NA", 
"SODIUM", 11, 23, 22.989770);
 
 1139   AddElement(
"MG", 
"MAGNESIUM", 12, 24, 24.3050);
 
 1140   AddElement(
"AL", 
"ALUMINIUM", 13, 27, 26.981538);
 
 1141   AddElement(
"SI", 
"SILICON", 14, 28, 28.0855);
 
 1142   AddElement(
"P", 
"PHOSPHORUS", 15, 31, 30.973761);
 
 1144   AddElement(
"CL", 
"CHLORINE", 17, 35, 35.4527);
 
 1146   AddElement(
"K", 
"POTASSIUM", 19, 39, 39.0983);
 
 1148   AddElement(
"SC", 
"SCANDIUM", 21, 45, 44.955910);
 
 1149   AddElement(
"TI", 
"TITANIUM", 22, 48, 47.867);
 
 1150   AddElement(
"V", 
"VANADIUM", 23, 51, 50.9415);
 
 1151   AddElement(
"CR", 
"CHROMIUM", 24, 52, 51.9961);
 
 1152   AddElement(
"MN", 
"MANGANESE", 25, 55, 54.938049);
 
 1154   AddElement(
"CO", 
"COBALT", 27, 59, 58.933200);
 
 1159   AddElement(
"GE", 
"GERMANIUM", 32, 73, 72.61);
 
 1160   AddElement(
"AS", 
"ARSENIC", 33, 75, 74.92160);
 
 1164   AddElement(
"RB", 
"RUBIDIUM", 37, 85, 85.4678);
 
 1165   AddElement(
"SR", 
"STRONTIUM", 38, 88, 87.62);
 
 1166   AddElement(
"Y", 
"YTTRIUM", 39, 89, 88.90585);
 
 1167   AddElement(
"ZR", 
"ZIRCONIUM", 40, 91, 91.224);
 
 1168   AddElement(
"NB", 
"NIOBIUM", 41, 93, 92.90638);
 
 1169   AddElement(
"MO", 
"MOLYBDENUM", 42, 96, 95.94);
 
 1170   AddElement(
"TC", 
"TECHNETIUM", 43, 98, 98.0);
 
 1171   AddElement(
"RU", 
"RUTHENIUM", 44, 101, 101.07);
 
 1172   AddElement(
"RH", 
"RHODIUM", 45, 103, 102.90550);
 
 1173   AddElement(
"PD", 
"PALLADIUM", 46, 106, 106.42);
 
 1174   AddElement(
"AG", 
"SILVER", 47, 108, 107.8682);
 
 1175   AddElement(
"CD", 
"CADMIUM", 48, 112, 112.411);
 
 1176   AddElement(
"IN", 
"INDIUM", 49, 115, 114.818);
 
 1178   AddElement(
"SB", 
"ANTIMONY", 51, 122, 121.760);
 
 1179   AddElement(
"TE", 
"TELLURIUM", 52, 128, 127.60);
 
 1180   AddElement(
"I", 
"IODINE", 53, 127, 126.90447);
 
 1182   AddElement(
"CS", 
"CESIUM", 55, 133, 132.90545);
 
 1183   AddElement(
"BA", 
"BARIUM", 56, 137, 137.327);
 
 1184   AddElement(
"LA", 
"LANTHANUM", 57, 139, 138.9055);
 
 1185   AddElement(
"CE", 
"CERIUM", 58, 140, 140.116);
 
 1186   AddElement(
"PR", 
"PRASEODYMIUM", 59, 141, 140.90765);
 
 1187   AddElement(
"ND", 
"NEODYMIUM", 60, 144, 144.24);
 
 1188   AddElement(
"PM", 
"PROMETHIUM", 61, 145, 145.0);
 
 1189   AddElement(
"SM", 
"SAMARIUM", 62, 150, 150.36);
 
 1190   AddElement(
"EU", 
"EUROPIUM", 63, 152, 151.964);
 
 1191   AddElement(
"GD", 
"GADOLINIUM", 64, 157, 157.25);
 
 1192   AddElement(
"TB", 
"TERBIUM", 65, 159, 158.92534);
 
 1193   AddElement(
"DY", 
"DYSPROSIUM", 66, 162, 162.50);
 
 1194   AddElement(
"HO", 
"HOLMIUM", 67, 165, 164.93032);
 
 1196   AddElement(
"TM", 
"THULIUM", 69, 169, 168.93421);
 
 1197   AddElement(
"YB", 
"YTTERBIUM", 70, 173, 173.04);
 
 1198   AddElement(
"LU", 
"LUTETIUM", 71, 175, 174.967);
 
 1199   AddElement(
"HF", 
"HAFNIUM", 72, 178, 178.49);
 
 1200   AddElement(
"TA", 
"TANTALUM", 73, 181, 180.9479);
 
 1201   AddElement(
"W", 
"TUNGSTEN", 74, 184, 183.84);
 
 1202   AddElement(
"RE", 
"RHENIUM", 75, 186, 186.207);
 
 1204   AddElement(
"IR", 
"IRIDIUM", 77, 192, 192.217);
 
 1205   AddElement(
"PT", 
"PLATINUM", 78, 195, 195.078);
 
 1206   AddElement(
"AU", 
"GOLD", 79, 197, 196.96655);
 
 1207   AddElement(
"HG", 
"MERCURY", 80, 200, 200.59);
 
 1208   AddElement(
"TL", 
"THALLIUM", 81, 204, 204.3833);
 
 1210   AddElement(
"BI", 
"BISMUTH", 83, 209, 208.98038);
 
 1211   AddElement(
"PO", 
"POLONIUM", 84, 209, 209.0);
 
 1212   AddElement(
"AT", 
"ASTATINE", 85, 210, 210.0);
 
 1214   AddElement(
"FR", 
"FRANCIUM", 87, 223, 223.0);
 
 1216   AddElement(
"AC", 
"ACTINIUM", 89, 227, 227.0);
 
 1217   AddElement(
"TH", 
"THORIUM", 90, 232, 232.0381);
 
 1218   AddElement(
"PA", 
"PROTACTINIUM", 91, 231, 231.03588);
 
 1219   AddElement(
"U", 
"URANIUM", 92, 238, 238.0289);
 
 1220   AddElement(
"NP", 
"NEPTUNIUM", 93, 237, 237.0);
 
 1221   AddElement(
"PU", 
"PLUTONIUM", 94, 244, 244.0);
 
 1222   AddElement(
"AM", 
"AMERICIUM", 95, 243, 243.0);
 
 1224   AddElement(
"BK", 
"BERKELIUM", 97, 247, 247.0);
 
 1225   AddElement(
"CF", 
"CALIFORNIUM", 98, 251, 251.0);
 
 1226   AddElement(
"ES", 
"EINSTEINIUM", 99, 252, 252.0);
 
 1227   AddElement(
"FM", 
"FERMIUM", 100, 257, 257.0);
 
 1228   AddElement(
"MD", 
"MENDELEVIUM", 101, 258, 258.0);
 
 1229   AddElement(
"NO", 
"NOBELIUM", 102, 259, 259.0);
 
 1230   AddElement(
"LR", 
"LAWRENCIUM", 103, 262, 262.0);
 
 1231   AddElement(
"RF", 
"RUTHERFORDIUM", 104, 261, 261.0);
 
 1232   AddElement(
"DB", 
"DUBNIUM", 105, 262, 262.0);
 
 1233   AddElement(
"SG", 
"SEABORGIUM", 106, 263, 263.0);
 
 1234   AddElement(
"BH", 
"BOHRIUM", 107, 262, 262.0);
 
 1235   AddElement(
"HS", 
"HASSIUM", 108, 265, 265.0);
 
 1236   AddElement(
"MT", 
"MEITNERIUM", 109, 266, 266.0);
 
 1237   AddElement(
"UUN", 
"UNUNNILIUM", 110, 269, 269.0);
 
 1238   AddElement(
"UUU", 
"UNUNUNIUM", 111, 272, 272.0);
 
 1239   AddElement(
"UUB", 
"UNUNBIUM", 112, 277, 277.0);
 
 
 1256      Error(
"ImportElementsRN", 
"File RadioNuclides.txt not found");
 
 1266      for (i = 0; i < 
ndecays; i++) {
 
 1268            Error(
"ImportElementsRN", 
"Error parsing RadioNuclides.txt file");
 
 
 1294      if (!
elem->CheckDecays())
 
 
 1308   if (!
sname.Length())
 
 1309      sname = 
"RadioNuclides.txt";
 
 1311   out.open(
sname.Data(), std::ios::out);
 
 1313      Error(
"ExportElementsRN", 
"Cannot open file %s", 
sname.Data());
 
 1322         elem->SavePrimitive(out, 
"h");
 
 1324         elem->SavePrimitive(out);
 
 
 1349      if (s == 
elem->GetTitle())
 
 
 1404   if (opt == 
"" || opt == 
"D") {
 
 1406         printf(
"================\nDefault elements\n================\n");
 
 1411   if (opt == 
"" || opt == 
"I") {
 
 1413         printf(
"================\nIsotopes\n================\n");
 
 1418   if (opt == 
"" || opt == 
"R") {
 
 1420         printf(
"================\nRadio-nuclides\n================\n");
 
 1425   if (opt == 
"" || opt == 
"U") {
 
 1427         printf(
"================\nUser elements\n================\n");
 
 
 1502     fElemTop(
other.fElemTop),
 
 1503     fCsize(
other.fCsize),
 
 1504     fNcoeff(
other.fNcoeff),
 
 1505     fFactor(
other.fFactor),
 
 
 1536   TAttLine::operator=(
other);
 
 1537   TAttFill::operator=(
other);
 
 1538   TAttMarker::operator=(
other);
 
 
 1565      Error(
"operator+=", 
"Cannot add 2 solutions for different elements");
 
 1574      for (i = 0; i < 
fNcoeff; i++) {
 
 1582   for (
j = 0; 
j < 
other.fNcoeff; 
j++) {
 
 1583      for (i = 0; i < 
fNcoeff; i++) {
 
 
 1639      Error(
"FindSolution", 
"Last element in the list must be %s\n", 
fElem->
GetName());
 
 1657   for (i = 0; i < 
n; i++) {
 
 1660      br[i] = 0.01 * 
dc->BranchingRatio();
 
 1680   for (i = 0; i < order - 1; i++) {
 
 1681      for (
j = i + 1; 
j < order; 
j++) {
 
 1682         if (lambda[
j] == lambda[i])
 
 1683            lambda[
j] += 0.001 * lambda[
j];
 
 1688   for (
j = 0; 
j < 
n; 
j++)
 
 1690   for (i = 0; i < order; i++) {
 
 1692      for (
j = 0; 
j < 
n + 1; 
j++) {
 
 1698         Error(
"FindSolution", 
"pdlambda=0 !!!");
 
 
static void indent(ostringstream &buf, int indent_level)
 
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
 
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
 
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 result
 
static const char gLevName[gMaxLevel]
 
static const Int_t gDecayDeltaZ[gMaxDecay]
 
static const Int_t gMaxDecay
 
static const char * gDecayName[gMaxDecay+1]
 
static const Int_t gDecayDeltaA[gMaxDecay]
 
static const char gElName[gMaxElem][3]
 
static const Int_t gMaxLevel
 
static const Int_t gMaxElem
 
R__EXTERN TGeoManager * gGeoManager
 
R__EXTERN TSystem * gSystem
 
Fill Area Attributes class.
 
void Print(Option_t *option="") const override
Default print for collections, calls Print(option, 1).
 
Class representing the Bateman solution for a decay branch.
 
Double_t Concentration(Double_t time) const
Find concentration of the element at a given time.
 
~TGeoBatemanSol() override
Destructor.
 
void FindSolution(const TObjArray *array)
Find the solution for the Bateman equations corresponding to the decay chain described by an array en...
 
void Draw(Option_t *option="") override
Draw the solution of Bateman equation versus time.
 
TGeoBatemanSol & operator=(const TGeoBatemanSol &other)
Assignment.
 
void Normalize(Double_t factor)
Normalize all coefficients with a given factor.
 
TGeoBatemanSol & operator+=(const TGeoBatemanSol &other)
Addition of other solution.
 
void Print(Option_t *option="") const override
Print concentration evolution.
 
decay channel utility class.
 
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save primitive for decays.
 
static TGeoDecayChannel * ReadDecay(const char *record)
Create element from line record.
 
void Print(Option_t *opt=" ") const override
Prints decay info.
 
const char * GetName() const override
Returns name of decay.
 
TGeoElementRN * fDaughter
 
TGeoDecayChannel & operator=(const TGeoDecayChannel &dc)
Assignment.
 
static void DecayName(UInt_t decay, TString &name)
Returns decay name.
 
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.
 
iterator for decay chains.
 
virtual void Print(Option_t *option="") const
Print info about the current decay branch.
 
TObjArray * GetBranch() 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.
 
TGeoElementRN * Down(Int_t ibranch)
Go downwards from current level via ibranch as low in the tree as possible.
 
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.
 
void AddDecay(Int_t decay, Int_t diso, Double_t branchingRatio, Double_t qValue)
Adds a decay mode for this element.
 
Double_t GetSpecificActivity() const override
Get the activity in Bq of a gram of material made from this element.
 
void Print(Option_t *option="") const override
Print info about the element;.
 
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save primitive for RN elements.
 
Int_t DecayResult(TGeoDecayChannel *dc) const
Returns ENDF code of decay result.
 
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.
 
~TGeoElementRN() override
Destructor.
 
static Int_t ENDF(Int_t a, Int_t z, Int_t iso)
 
void ResetRatio()
Clears the existing ratio.
 
TGeoElementTable & operator=(const TGeoElementTable &)
assignment operator
 
Bool_t HasRNElements() const
 
void ExportElementsRN(const char *filename="")
Export radionuclides in a file.
 
void AddIsotope(TGeoIsotope *isotope)
Add isotope to the table.
 
ElementRNMap_t fElementsRN
 
TGeoElementRN * GetElementRN(Int_t ENDFcode) const
Retrieve a radionuclide by ENDF code.
 
~TGeoElementTable() override
destructor
 
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 Print(Option_t *option="") const override
Print table of elements.
 
void ImportElementsRN()
Creates the list of radionuclides.
 
void AddElement(const char *name, const char *title, Int_t z, Double_t a)
Add an element to the table. Obsolete.
 
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.
 
TGeoElementTable()
default constructor
 
TGeoElement * FindElement(const char *name) const
Search an element by symbol or full name Exact matching.
 
Base class for chemical elements.
 
TGeoElement()
Default constructor.
 
void SetDefined(Bool_t flag=kTRUE)
 
void ComputeDerivedQuantities()
Calculate properties for an atomic number.
 
void Print(Option_t *option="") const override
Print this isotope.
 
Double_t Neff() const
Returns effective number of nucleons.
 
void ComputeCoulombFactor()
Compute Coulomb correction factor (Phys Rev. D50 3-1 (1994) page 1254)
 
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.
 
void ComputeLradTsaiFactor()
Compute Tsai's Expression for the Radiation Length (Phys Rev. D50 3-1 (1994) page 1254)
 
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.
 
~TGeoElement() override
destructor
 
an isotope defined by the atomic number, number of nucleons and atomic weight (g/mole)
 
TGeoIsotope()
Dummy I/O constructor.
 
static TGeoIsotope * FindIsotope(const char *name)
Find existing isotope by name.
 
void Print(Option_t *option="") const override
Print this isotope.
 
static EDefaultUnits GetDefaultUnits()
 
TGeoElementTable * GetElementTable()
Returns material table. Creates it if not existing.
 
TVirtualGeoPainter * GetGeomPainter()
Make a default painter if none present. Returns pointer to it.
 
static void SetDefaultUnits(EDefaultUnits new_value)
 
The TNamed class is the base class for all named ROOT classes.
 
const char * GetName() const override
Returns name of object.
 
Int_t GetEntriesFast() const
 
Int_t IndexOf(const TObject *obj) const override
 
virtual void AddAtAndExpand(TObject *obj, Int_t idx)
Add object at position idx.
 
Int_t GetEntries() const override
Return the number of objects in array (i.e.
 
void Delete(Option_t *option="") override
Remove all objects from the array AND delete all heap based objects.
 
TObject * At(Int_t idx) const override
 
TObject * RemoveAt(Int_t idx) override
Remove object at index idx.
 
TObject * FindObject(const char *name) const override
Find an object in this collection using its name.
 
void Add(TObject *obj) override
 
Mother of all ROOT objects.
 
TObject & operator=(const TObject &rhs)
TObject assignment operator.
 
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
 
virtual void Warning(const char *method, const char *msgfmt,...) const
Issue warning message.
 
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
 
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
 
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
 
virtual void Print(Option_t *option="") const
This method must be overridden when a class wants to print itself.
 
static const TString & GetEtcDir()
Get the sysconfig directory in the installation. Static utility function.
 
const char * Data() const
 
TString & ReplaceAll(const TString &s1, const TString &s2)
 
void ToUpper()
Change string to upper case.
 
static TString Format(const char *fmt,...)
Static method which formats a string using a printf style format descriptor and return a TString.
 
void Form(const char *fmt,...)
Formats a string using a printf style format descriptor.
 
virtual const char * PrependPathName(const char *dir, TString &name)
Concatenate a directory and a file name.
 
virtual void DrawBatemanSol(TGeoBatemanSol *sol, Option_t *option="")=0
 
static constexpr double alpha_rcl2
 
static constexpr double fine_structure_const
 
static constexpr double fine_structure_const
 
static constexpr double alpha_rcl2
 
Double_t Exp(Double_t x)
Returns the base-e exponential function of x, which is e raised to the power x.
 
Double_t Log(Double_t x)
Returns the natural logarithm of x.
 
constexpr Double_t Na()
Avogadro constant (Avogadro's Number) in .
 
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.