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};
175 static constexpr Double_t k1 = 0.0083,
k2 = 0.20206,
k3 = 0.0020,
k4 = 0.0369;
233 ::Error(
"TGeoElementTable::GetElementTable",
"Create a geometry manager first");
264 Fatal(
"AddIsotope",
"Trying to add isotope %s with different Z to the same element %s",
isotope->GetName(),
342 Fatal(
"ctor",
"Not allowed Z=%d (<1) for isotope: %s", z,
name);
344 Fatal(
"ctor",
"Not allowed Z=%d < N=%d for isotope: %s", z,
n,
name);
494 Error(
"CheckDecays",
"Element table not present");
506 br +=
dc->BranchingRatio();
534 if (
da == -99 ||
dz == -99)
556 while ((
elem = next())) {
558 ratio.Normalize(factor);
559 elem->AddRatio(ratio);
571 if (z == 0 &&
a == 1) {
579 if (
a >= 1 &&
a <= 999)
627 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,
630 new TGeoElementRN(
a, z,
iso, level,
deltaM,
halfLife,
jp,
natAbun,
th_f,
tg_f,
th_s,
tg_s, status);
641 out <<
"#========================================================================================================"
642 "============================"
644 out <<
"# Name A Z ISO LEV[MeV] DM[MeV] T1/2[s] J/P ABUND[%] HTOX ITOX "
645 "HTOX ITOX STAT NDCY"
647 out <<
"#========================================================================================================"
648 "============================"
652 out << std::setw(5) << (
Int_t)
fA;
653 out << std::setw(5) <<
fZ;
654 out << std::setw(5) <<
fIso;
655 out << std::setw(10) << std::setiosflags(std::ios::fixed) << std::setprecision(5) <<
fLevel;
656 out << std::setw(10) << std::setiosflags(std::ios::fixed) << std::setprecision(5) <<
fDeltaM;
657 out << std::setw(10) << std::setiosflags(std::ios::scientific) << std::setprecision(3) <<
fHalfLife;
659 out << std::setw(10) << std::setiosflags(std::ios::fixed) << std::setprecision(5) <<
fNatAbun;
660 out << std::setw(10) << std::setiosflags(std::ios::fixed) << std::setprecision(5) <<
fTH_F;
661 out << std::setw(10) << std::setiosflags(std::ios::fixed) << std::setprecision(5) <<
fTG_F;
662 out << std::setw(10) << std::setiosflags(std::ios::fixed) << std::setprecision(5) <<
fTH_S;
663 out << std::setw(10) << std::setiosflags(std::ios::fixed) << std::setprecision(5) <<
fTG_S;
664 out << std::setw(5) <<
fStatus;
668 out << std::setw(5) <<
ndecays;
674 dc->SavePrimitive(out);
749 if (1 << i &
decay) {
795 out << std::setw(50) <<
decayName.Data();
796 out << std::setw(10) <<
fDecay;
797 out << std::setw(10) <<
fDiso;
798 out << std::setw(12) << std::setiosflags(std::ios::fixed) << std::setprecision(6) <<
fBranchingRatio;
799 out << std::setw(12) << std::setiosflags(std::ios::fixed) << std::setprecision(6) <<
fQvalue;
827 : fTop(top), fElem(top), fBranch(nullptr), fLevel(0), fLimitRatio(limit), fRatio(1.)
840 fLimitRatio(iter.fLimitRatio),
897 ind =
dc->GetIndex();
898 nd =
dc->Parent()->GetNdecays();
899 fRatio /= 0.01 *
dc->BranchingRatio();
942 for (
Int_t i = 0; i < nd; i++)
960 printf(
"%s%s (%g%% %s) T1/2=%g\n",
indent.Data(),
elem->GetName(),
dc->BranchingRatio(),
dc->GetName(),
1004 fNelements(get.fNelements),
1005 fNelementsRN(get.fNelementsRN),
1006 fNisotopes(get.fNisotopes),
1008 fListRN(get.fListRN),
1078 Error(
"AddElement",
"Found element with same name: %s (%s). Cannot add to table.",
orig->GetName(),
1106 Error(
"AddIsotope",
"Isotope with the same name: %s already in table. Not adding.",
isotope->GetName());
1125 AddElement(
"BE",
"BERYLLIUM", 4, 9, 9.01218);
1128 AddElement(
"N",
"NITROGEN", 7, 14, 14.00674);
1130 AddElement(
"F",
"FLUORINE", 9, 19, 18.9984032);
1132 AddElement(
"NA",
"SODIUM", 11, 23, 22.989770);
1133 AddElement(
"MG",
"MAGNESIUM", 12, 24, 24.3050);
1134 AddElement(
"AL",
"ALUMINIUM", 13, 27, 26.981538);
1135 AddElement(
"SI",
"SILICON", 14, 28, 28.0855);
1136 AddElement(
"P",
"PHOSPHORUS", 15, 31, 30.973761);
1138 AddElement(
"CL",
"CHLORINE", 17, 35, 35.4527);
1140 AddElement(
"K",
"POTASSIUM", 19, 39, 39.0983);
1142 AddElement(
"SC",
"SCANDIUM", 21, 45, 44.955910);
1143 AddElement(
"TI",
"TITANIUM", 22, 48, 47.867);
1144 AddElement(
"V",
"VANADIUM", 23, 51, 50.9415);
1145 AddElement(
"CR",
"CHROMIUM", 24, 52, 51.9961);
1146 AddElement(
"MN",
"MANGANESE", 25, 55, 54.938049);
1148 AddElement(
"CO",
"COBALT", 27, 59, 58.933200);
1153 AddElement(
"GE",
"GERMANIUM", 32, 73, 72.61);
1154 AddElement(
"AS",
"ARSENIC", 33, 75, 74.92160);
1158 AddElement(
"RB",
"RUBIDIUM", 37, 85, 85.4678);
1159 AddElement(
"SR",
"STRONTIUM", 38, 88, 87.62);
1160 AddElement(
"Y",
"YTTRIUM", 39, 89, 88.90585);
1161 AddElement(
"ZR",
"ZIRCONIUM", 40, 91, 91.224);
1162 AddElement(
"NB",
"NIOBIUM", 41, 93, 92.90638);
1163 AddElement(
"MO",
"MOLYBDENUM", 42, 96, 95.94);
1164 AddElement(
"TC",
"TECHNETIUM", 43, 98, 98.0);
1165 AddElement(
"RU",
"RUTHENIUM", 44, 101, 101.07);
1166 AddElement(
"RH",
"RHODIUM", 45, 103, 102.90550);
1167 AddElement(
"PD",
"PALLADIUM", 46, 106, 106.42);
1168 AddElement(
"AG",
"SILVER", 47, 108, 107.8682);
1169 AddElement(
"CD",
"CADMIUM", 48, 112, 112.411);
1170 AddElement(
"IN",
"INDIUM", 49, 115, 114.818);
1172 AddElement(
"SB",
"ANTIMONY", 51, 122, 121.760);
1173 AddElement(
"TE",
"TELLURIUM", 52, 128, 127.60);
1174 AddElement(
"I",
"IODINE", 53, 127, 126.90447);
1176 AddElement(
"CS",
"CESIUM", 55, 133, 132.90545);
1177 AddElement(
"BA",
"BARIUM", 56, 137, 137.327);
1178 AddElement(
"LA",
"LANTHANUM", 57, 139, 138.9055);
1179 AddElement(
"CE",
"CERIUM", 58, 140, 140.116);
1180 AddElement(
"PR",
"PRASEODYMIUM", 59, 141, 140.90765);
1181 AddElement(
"ND",
"NEODYMIUM", 60, 144, 144.24);
1182 AddElement(
"PM",
"PROMETHIUM", 61, 145, 145.0);
1183 AddElement(
"SM",
"SAMARIUM", 62, 150, 150.36);
1184 AddElement(
"EU",
"EUROPIUM", 63, 152, 151.964);
1185 AddElement(
"GD",
"GADOLINIUM", 64, 157, 157.25);
1186 AddElement(
"TB",
"TERBIUM", 65, 159, 158.92534);
1187 AddElement(
"DY",
"DYSPROSIUM", 66, 162, 162.50);
1188 AddElement(
"HO",
"HOLMIUM", 67, 165, 164.93032);
1190 AddElement(
"TM",
"THULIUM", 69, 169, 168.93421);
1191 AddElement(
"YB",
"YTTERBIUM", 70, 173, 173.04);
1192 AddElement(
"LU",
"LUTETIUM", 71, 175, 174.967);
1193 AddElement(
"HF",
"HAFNIUM", 72, 178, 178.49);
1194 AddElement(
"TA",
"TANTALUM", 73, 181, 180.9479);
1195 AddElement(
"W",
"TUNGSTEN", 74, 184, 183.84);
1196 AddElement(
"RE",
"RHENIUM", 75, 186, 186.207);
1198 AddElement(
"IR",
"IRIDIUM", 77, 192, 192.217);
1199 AddElement(
"PT",
"PLATINUM", 78, 195, 195.078);
1200 AddElement(
"AU",
"GOLD", 79, 197, 196.96655);
1201 AddElement(
"HG",
"MERCURY", 80, 200, 200.59);
1202 AddElement(
"TL",
"THALLIUM", 81, 204, 204.3833);
1204 AddElement(
"BI",
"BISMUTH", 83, 209, 208.98038);
1205 AddElement(
"PO",
"POLONIUM", 84, 209, 209.0);
1206 AddElement(
"AT",
"ASTATINE", 85, 210, 210.0);
1208 AddElement(
"FR",
"FRANCIUM", 87, 223, 223.0);
1210 AddElement(
"AC",
"ACTINIUM", 89, 227, 227.0);
1211 AddElement(
"TH",
"THORIUM", 90, 232, 232.0381);
1212 AddElement(
"PA",
"PROTACTINIUM", 91, 231, 231.03588);
1213 AddElement(
"U",
"URANIUM", 92, 238, 238.0289);
1214 AddElement(
"NP",
"NEPTUNIUM", 93, 237, 237.0);
1215 AddElement(
"PU",
"PLUTONIUM", 94, 244, 244.0);
1216 AddElement(
"AM",
"AMERICIUM", 95, 243, 243.0);
1218 AddElement(
"BK",
"BERKELIUM", 97, 247, 247.0);
1219 AddElement(
"CF",
"CALIFORNIUM", 98, 251, 251.0);
1220 AddElement(
"ES",
"EINSTEINIUM", 99, 252, 252.0);
1221 AddElement(
"FM",
"FERMIUM", 100, 257, 257.0);
1222 AddElement(
"MD",
"MENDELEVIUM", 101, 258, 258.0);
1223 AddElement(
"NO",
"NOBELIUM", 102, 259, 259.0);
1224 AddElement(
"LR",
"LAWRENCIUM", 103, 262, 262.0);
1225 AddElement(
"RF",
"RUTHERFORDIUM", 104, 261, 261.0);
1226 AddElement(
"DB",
"DUBNIUM", 105, 262, 262.0);
1227 AddElement(
"SG",
"SEABORGIUM", 106, 263, 263.0);
1228 AddElement(
"BH",
"BOHRIUM", 107, 262, 262.0);
1229 AddElement(
"HS",
"HASSIUM", 108, 265, 265.0);
1230 AddElement(
"MT",
"MEITNERIUM", 109, 266, 266.0);
1231 AddElement(
"UUN",
"UNUNNILIUM", 110, 269, 269.0);
1232 AddElement(
"UUU",
"UNUNUNIUM", 111, 272, 272.0);
1233 AddElement(
"UUB",
"UNUNBIUM", 112, 277, 277.0);
1250 Error(
"ImportElementsRN",
"File RadioNuclides.txt not found");
1260 for (i = 0; i <
ndecays; i++) {
1262 Error(
"ImportElementsRN",
"Error parsing RadioNuclides.txt file");
1288 if (!
elem->CheckDecays())
1302 if (!
sname.Length())
1303 sname =
"RadioNuclides.txt";
1305 out.open(
sname.Data(), std::ios::out);
1307 Error(
"ExportElementsRN",
"Cannot open file %s",
sname.Data());
1316 elem->SavePrimitive(out,
"h");
1318 elem->SavePrimitive(out);
1343 if (s ==
elem->GetTitle())
1398 if (opt ==
"" || opt ==
"D") {
1400 printf(
"================\nDefault elements\n================\n");
1405 if (opt ==
"" || opt ==
"I") {
1407 printf(
"================\nIsotopes\n================\n");
1412 if (opt ==
"" || opt ==
"R") {
1414 printf(
"================\nRadio-nuclides\n================\n");
1419 if (opt ==
"" || opt ==
"U") {
1421 printf(
"================\nUser elements\n================\n");
1480 fCsize = chain->GetEntriesFast() + 1;
1495 fElemTop(
other.fElemTop),
1496 fCsize(
other.fCsize),
1497 fNcoeff(
other.fNcoeff),
1498 fFactor(
other.fFactor),
1529 TAttLine::operator=(
other);
1530 TAttFill::operator=(
other);
1531 TAttMarker::operator=(
other);
1558 Error(
"operator+=",
"Cannot add 2 solutions for different elements");
1567 for (i = 0; i <
fNcoeff; i++) {
1575 for (
j = 0;
j <
other.fNcoeff;
j++) {
1576 for (i = 0; i <
fNcoeff; i++) {
1632 Error(
"FindSolution",
"Last element in the list must be %s\n",
fElem->
GetName());
1650 for (i = 0; i <
n; i++) {
1653 br[i] = 0.01 *
dc->BranchingRatio();
1673 for (i = 0; i < order - 1; i++) {
1674 for (
j = i + 1;
j < order;
j++) {
1675 if (lambda[
j] == lambda[i])
1676 lambda[
j] += 0.001 * lambda[
j];
1681 for (
j = 0;
j <
n;
j++)
1683 for (i = 0; i < order; i++) {
1685 for (
j = 0;
j <
n + 1;
j++) {
1691 Error(
"FindSolution",
"pdlambda=0 !!!");
int Int_t
Signed integer 4 bytes (int)
const char Option_t
Option string (const char)
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) noexcept
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.