Logo ROOT   6.10/00
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
TGeoElement.h
Go to the documentation of this file.
1 // @(#)root/geom:$Id$
2 // Author: Andrei Gheata 17/06/04
3 // Added support for radionuclides: Mihaela Gheata 24/08/2006
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 #ifndef ROOT_TGeoElement
13 #define ROOT_TGeoElement
14 
15 #include "TNamed.h"
16 
17 #include "TAttLine.h"
18 
19 #include "TAttFill.h"
20 
21 #include "TAttMarker.h"
22 
23 #include "TObjArray.h"
24 
25 #include <map>
26 
27 class TGeoElementTable;
28 class TGeoIsotope;
29 
30 ////////////////////////////////////////////////////////////////////////////
31 // //
32 // TGeoElement - a chemical element //
33 // //
34 ////////////////////////////////////////////////////////////////////////////
35 
36 class TGeoElement : public TNamed
37 {
38 protected:
39  enum EGeoElement {
40  kElemUsed = BIT(17),
43  };
44 
45  Int_t fZ; // Z of element
46  Int_t fN; // Number of nucleons
47  Int_t fNisotopes; // Number of isotopes for the element
48  Double_t fA; // A of element
49  TObjArray *fIsotopes; // List of isotopes
50  Double_t *fAbundances; //[fNisotopes] Array of relative isotope abundances
51 
52 private:
53  TGeoElement(const TGeoElement &other);
54  TGeoElement &operator=(const TGeoElement &other);
55 
56 public:
57  // constructors
58  TGeoElement();
59  TGeoElement(const char *name, const char *title, Int_t z, Double_t a);
60  TGeoElement(const char *name, const char *title, Int_t nisotopes);
61  TGeoElement(const char *name, const char *title, Int_t z, Int_t n, Double_t a);
62  // destructor
63  virtual ~TGeoElement() {;}
64  // methods
65  virtual Int_t ENDFCode() const { return 0;}
66  Int_t Z() const {return fZ;}
67  Int_t N() const {return fN;}
68  Double_t Neff() const;
69  Double_t A() const {return fA;}
70  void AddIsotope(TGeoIsotope *isotope, Double_t relativeAbundance);
71  Int_t GetNisotopes() const {return fNisotopes;}
72  TGeoIsotope *GetIsotope(Int_t i) const;
74  // Specific activity (in Bq/gram)
75  virtual Double_t GetSpecificActivity() const {return 0.;}
76  Bool_t HasIsotopes() const {return (fNisotopes==0)?kFALSE:kTRUE;}
78  virtual Bool_t IsRadioNuclide() const {return kFALSE;}
80  virtual void Print(Option_t *option = "") const;
84 
85 
86  ClassDef(TGeoElement, 2) // base element class
87 };
88 
89 ////////////////////////////////////////////////////////////////////////////
90 // //
91 // TGeoIsotope - a isotope defined by the atomic number, number of //
92 // nucleons and atomic weight (g/mole) //
93 // //
94 ////////////////////////////////////////////////////////////////////////////
95 
96 class TGeoIsotope : public TNamed
97 {
98 protected:
99  Int_t fZ; // atomic number
100  Int_t fN; // number of nucleons
101  Double_t fA; // atomic mass (g/mole)
102 
103 public:
104  TGeoIsotope();
105  TGeoIsotope(const char *name, Int_t z, Int_t n, Double_t a);
106  virtual ~TGeoIsotope() {}
107 
108  Int_t GetZ() const {return fZ;}
109  Int_t GetN() const {return fN;}
110  Double_t GetA() const {return fA;}
111  static TGeoIsotope *FindIsotope(const char *name);
112  virtual void Print(Option_t *option = "") const;
113 
114  ClassDef(TGeoIsotope, 1) // Isotope class defined by Z,N,A
115 };
116 
117 ////////////////////////////////////////////////////////////////////////////
118 // //
119 // TGeoElementRN - a radionuclide. //
120 // //
121 ////////////////////////////////////////////////////////////////////////////
122 
123 class TGeoDecayChannel;
124 class TGeoBatemanSol;
125 
127 {
128 protected:
129  Int_t fENDFcode; // ENDF element code
130  Int_t fIso; // Isomer number
131  Double_t fLevel; // Isomeric level
132  Double_t fDeltaM; // Mass excess
133  Double_t fHalfLife; // Half life
134  Double_t fNatAbun; // Natural Abundance
135 // char fJP[11]; // Spin-parity
136  Double_t fTH_F; // Hynalation toxicity
137  Double_t fTG_F; // Ingestion toxicity
138  Double_t fTH_S; // Hynalation toxicity
139  Double_t fTG_S; // Ingestion toxicity
140  Int_t fStatus; // Status code
141  TGeoBatemanSol *fRatio; // Time evolution of proportion by number
142 
143  TObjArray *fDecays; // List of decay modes
144 
145  void MakeName(Int_t a, Int_t z, Int_t iso);
146 
147 private:
148  TGeoElementRN(const TGeoElementRN& elem);
149  TGeoElementRN& operator=(const TGeoElementRN& elem);
150 
151 public:
152  TGeoElementRN();
153  TGeoElementRN(Int_t A, Int_t Z, Int_t iso, Double_t level,
154  Double_t deltaM, Double_t halfLife, const char* JP,
155  Double_t natAbun, Double_t th_f, Double_t tg_f, Double_t th_s,
156  Double_t tg_s, Int_t status);
157  virtual ~TGeoElementRN();
158 
159  void AddDecay(Int_t decay, Int_t diso, Double_t branchingRatio, Double_t qValue);
160  void AddDecay(TGeoDecayChannel *dc);
161  void AddRatio(TGeoBatemanSol &ratio);
162  void ResetRatio();
163  static Int_t ENDF(Int_t a, Int_t z, Int_t iso) {return 10000*z+10*a+iso;}
164 
165  // Getters
166  virtual Int_t ENDFCode() const {return fENDFcode;}
167  virtual Double_t GetSpecificActivity() const;
168  virtual Bool_t IsRadioNuclide() const {return kTRUE;}
169  Int_t MassNo() const {return (Int_t)fA;}
170  Int_t AtomicNo() const {return fZ;}
171  Int_t IsoNo() const {return fIso;}
172  Double_t Level() const {return fLevel;}
173  Double_t MassEx() const {return fDeltaM;}
174  Double_t HalfLife() const {return fHalfLife;}
175  Double_t NatAbun() const {return fNatAbun;}
176  const char* PJ() const {return fTitle.Data();}
177  Double_t TH_F() const {return fTH_F;}
178  Double_t TG_F() const {return fTG_F;}
179  Double_t TH_S() const {return fTH_S;}
180  Double_t TG_S() const {return fTG_S;}
181  Double_t Status() const {return fStatus;}
182  Bool_t Stable() const {return !fDecays;}
183  TObjArray *Decays() const {return fDecays;}
184  Int_t GetNdecays() const;
185  TGeoBatemanSol *Ratio() const {return fRatio;}
186 
187  // Utilities
188  Bool_t CheckDecays() const;
190  void FillPopulation(TObjArray *population, Double_t precision=0.001, Double_t factor=1.);
191  virtual void Print(Option_t *option = "") const;
192  static TGeoElementRN *ReadElementRN(const char *record, Int_t &ndecays);
193  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
194 
195  ClassDef(TGeoElementRN, 2) // radionuclides class
196 };
197 
198 ////////////////////////////////////////////////////////////////////////////
199 // //
200 // TGeoDecayChannel - decay channel utility class. //
201 // //
202 ////////////////////////////////////////////////////////////////////////////
203 
204 class TGeoDecayChannel : public TObject
205 {
206 private:
207  UInt_t fDecay; // Decay mode
208  Int_t fDiso; // Delta isomeric number
209  Double_t fBranchingRatio; // Branching Ratio
210  Double_t fQvalue; // Qvalue in GeV
211  TGeoElementRN *fParent; // Parent element
212  TGeoElementRN *fDaughter; // Daughter element
213 public:
215  kBitMask32 = 0xffffffff,
220  kAlpha = BIT(4),
221  kECF = BIT(5),
224  kI = BIT(8),
226  k2P = BIT(10),
227  k2N = BIT(11),
228  k2A = BIT(12),
229  kCarbon12 = BIT(13),
231  };
233  TGeoDecayChannel(Int_t decay, Int_t diso, Double_t branchingRatio, Double_t qValue)
234  : fDecay(decay), fDiso(diso), fBranchingRatio(branchingRatio), fQvalue(qValue), fParent(0), fDaughter(0) {}
237  virtual ~TGeoDecayChannel() {}
238 
240 
241  // Getters
242  Int_t GetIndex() const;
243  virtual const char *GetName() const;
244  UInt_t Decay() const {return fDecay;}
246  Double_t Qvalue() const {return fQvalue;}
247  Int_t DeltaIso() const {return fDiso;}
248  TGeoElementRN *Daughter() const {return fDaughter;}
249  TGeoElementRN *Parent() const {return fParent;}
250  static void DecayName(UInt_t decay, TString &name);
251  // Setters
252  void SetParent(TGeoElementRN *parent) {fParent = parent;}
253  void SetDaughter(TGeoElementRN *daughter) {fDaughter = daughter;}
254  // Services
255  virtual void Print(Option_t *opt = " ") const;
256  static TGeoDecayChannel *ReadDecay(const char *record);
257  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
258  virtual void DecayShift(Int_t &dA, Int_t &dZ, Int_t &dI) const ;
259 
260  ClassDef(TGeoDecayChannel,1) // Decay channel for Elements
261 };
262 
263 ////////////////////////////////////////////////////////////////////////////////
264 // //
265 // TGeoBatemanSol -Class representing the Bateman solution for a decay branch //
266 // //
267 ////////////////////////////////////////////////////////////////////////////////
268 
269 class TGeoBatemanSol : public TObject, public TAttLine, public TAttFill, public TAttMarker
270 {
271 private:
272  typedef struct {
273  Double_t cn; // Concentration for element 'i': Ni/Ntop
274  Double_t lambda; // Decay coef. for element 'i'
275  } BtCoef_t;
276  TGeoElementRN *fElem; // Referred RN element
277  TGeoElementRN *fElemTop; // Top RN element
278  Int_t fCsize; // Size of the array of coefficients
279  Int_t fNcoeff; // Number of coefficients
280  Double_t fFactor; // Constant factor that applies to all coefficients
281  Double_t fTmin; // Minimum value of the time interval
282  Double_t fTmax; // Maximum value of the time interval
283  BtCoef_t *fCoeff; //[fNcoeff] Array of coefficients
284 public:
287  TGeoBatemanSol(const TObjArray *chain);
288  TGeoBatemanSol(const TGeoBatemanSol& other);
289  ~TGeoBatemanSol();
290 
291  TGeoBatemanSol& operator=(const TGeoBatemanSol& other);
293 
294  Double_t Concentration(Double_t time) const;
295  virtual void Draw(Option_t *option="");
296  void GetCoeff(Int_t i, Double_t &cn, Double_t &lambda) const {cn=fCoeff[i].cn; lambda=fCoeff[i].lambda;}
297  void GetRange(Double_t &tmin, Double_t &tmax) const {tmin=fTmin; tmax=fTmax;}
298  TGeoElementRN *GetElement() const {return fElem;}
300  Int_t GetNcoeff() const {return fNcoeff;}
301  virtual void Print(Option_t *option = "") const;
302  void SetRange(Double_t tmin=0., Double_t tmax=0.) {fTmin=tmin; fTmax=tmax;}
303  void SetFactor(Double_t factor) {fFactor = factor;}
304  void FindSolution(const TObjArray *array);
305  void Normalize(Double_t factor);
306 
307  ClassDef(TGeoBatemanSol,1) // Solution for the Bateman equation
308 };
309 
310 ////////////////////////////////////////////////////////////////////////////
311 // //
312 // TGeoElemIter - iterator for decay chains. //
313 // //
314 ////////////////////////////////////////////////////////////////////////////
315 
317 {
318 private:
319  const TGeoElementRN *fTop; // Top element of the iteration
320  const TGeoElementRN *fElem; // Current element
321  TObjArray *fBranch; // Current branch
322  Int_t fLevel; // Current level
323  Double_t fLimitRatio; // Minimum cumulative branching ratio
324  Double_t fRatio; // Current ratio
325 
326 protected:
327  TGeoElemIter() : fTop(0), fElem(0), fBranch(0), fLevel(0), fLimitRatio(0), fRatio(0) {}
328  TGeoElementRN *Down(Int_t ibranch);
329  TGeoElementRN *Up();
330 
331 public:
332  TGeoElemIter(TGeoElementRN *top, Double_t limit=1.e-4);
333  TGeoElemIter(const TGeoElemIter &iter);
334  virtual ~TGeoElemIter();
335 
336  TGeoElemIter &operator=(const TGeoElemIter &iter);
338  TGeoElementRN *Next();
339 
340  TObjArray *GetBranch() const {return fBranch;}
341  const TGeoElementRN *GetTop() const {return fTop;}
342  const TGeoElementRN *GetElement() const {return fElem;}
343  Int_t GetLevel() const {return fLevel;}
344  Double_t GetRatio() const {return fRatio;}
345  virtual void Print(Option_t *option="") const;
346  void SetLimitRatio(Double_t limit) {fLimitRatio = limit;}
347 
348  ClassDef(TGeoElemIter,0) // Iterator for radionuclide chains.
349 };
350 
351 ////////////////////////////////////////////////////////////////////////////
352 // //
353 // TGeoElementTable - table of elements //
354 // //
355 ////////////////////////////////////////////////////////////////////////////
356 
357 class TGeoElementTable : public TObject
358 {
359 private:
360 // data members
361  Int_t fNelements; // number of elements
362  Int_t fNelementsRN; // number of RN elements
363  Int_t fNisotopes; // number of isotopes
364  TObjArray *fList; // list of elements
365  TObjArray *fListRN; // list of RN elements
366  TObjArray *fIsotopes; // list of user-defined isotopes
367  // Map of radionuclides
368  typedef std::map<Int_t, TGeoElementRN *> ElementRNMap_t;
369  typedef ElementRNMap_t::iterator ElementRNMapIt_t;
370  ElementRNMap_t fElementsRN; //! map of RN elements with ENDF key
371 
372 protected:
375 
376 public:
377  // constructors
379  TGeoElementTable(Int_t nelements);
380  // destructor
381  virtual ~TGeoElementTable();
382  // methods
383 
387  };
388  void AddElement(const char *name, const char *title, Int_t z, Double_t a);
389  void AddElement(const char *name, const char *title, Int_t z, Int_t n, Double_t a);
390  void AddElement(TGeoElement *elem);
391  void AddElementRN(TGeoElementRN *elem);
392  void AddIsotope(TGeoIsotope *isotope);
393  void BuildDefaultElements();
394  void ImportElementsRN();
395  Bool_t CheckTable() const;
396  TGeoElement *FindElement(const char *name) const;
397  TGeoIsotope *FindIsotope(const char *name) const;
399  TGeoElementRN *GetElementRN(Int_t ENDFcode) const;
400  TGeoElementRN *GetElementRN(Int_t a, Int_t z, Int_t iso=0) const;
401  TObjArray *GetElementsRN() const {return fListRN;}
404 
405  Int_t GetNelements() const {return fNelements;}
407  void ExportElementsRN(const char *filename="");
408  virtual void Print(Option_t *option = "") const;
409 
410  ClassDef(TGeoElementTable,4) // table of elements
411 };
412 
413 #endif
414 
static void DecayName(UInt_t decay, TString &name)
Returns decay name.
TString fTitle
Definition: TNamed.h:33
Double_t MassEx() const
Definition: TGeoElement.h:173
virtual Int_t ENDFCode() const
Definition: TGeoElement.h:166
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.
An array of TObjects.
Definition: TObjArray.h:37
virtual void SavePrimitive(std::ostream &out, Option_t *option="")
Save primitive for RN elements.
virtual ~TGeoElement()
Definition: TGeoElement.h:63
Double_t NatAbun() const
Definition: TGeoElement.h:175
static TGeoDecayChannel * ReadDecay(const char *record)
Create element from line record.
Table of elements.
Definition: TGeoElement.h:357
Double_t fHalfLife
Definition: TGeoElement.h:133
void AddDecay(Int_t decay, Int_t diso, Double_t branchingRatio, Double_t qValue)
Adds a decay mode for this element.
Double_t fTmin
Definition: TGeoElement.h:281
virtual void Draw(Option_t *option="")
Draw the solution of Bateman equation versus time.
~TGeoBatemanSol()
Destructor.
Double_t Qvalue() const
Definition: TGeoElement.h:246
Double_t Concentration(Double_t time) const
Find concentration of the element at a given time.
const char Option_t
Definition: RtypesCore.h:62
TObjArray * fListRN
Definition: TGeoElement.h:365
Int_t Z() const
Definition: TGeoElement.h:66
TObjArray * Decays() const
Definition: TGeoElement.h:183
TGeoElement()
Default constructor.
Definition: TGeoElement.cxx:87
Int_t GetZ() const
Definition: TGeoElement.h:108
TGeoElementRN * operator()()
() operator.
#define BIT(n)
Definition: Rtypes.h:75
TGeoElementRN * fParent
Definition: TGeoElement.h:211
Bool_t HasIsotopes() const
Definition: TGeoElement.h:76
Double_t fFactor
Definition: TGeoElement.h:280
virtual const char * GetName() const
Returns name of decay.
void AddRatio(TGeoBatemanSol &ratio)
Adds a proportion ratio to the existing one.
Basic string class.
Definition: TString.h:129
int Int_t
Definition: RtypesCore.h:41
Int_t AtomicNo() const
Definition: TGeoElement.h:170
TGeoElementTable & operator=(const TGeoElementTable &)
assignment operator
bool Bool_t
Definition: RtypesCore.h:59
TArc * a
Definition: textangle.C:12
Double_t TH_S() const
Definition: TGeoElement.h:179
Int_t GetLevel() const
Definition: TGeoElement.h:343
void SetLimitRatio(Double_t limit)
Definition: TGeoElement.h:346
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.
#define NULL
Definition: RtypesCore.h:88
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
Retrieve a radionuclide by ENDF code.
Double_t fTH_F
Definition: TGeoElement.h:136
TObjArray * fIsotopes
Definition: TGeoElement.h:366
TObjArray * fDecays
Definition: TGeoElement.h:143
Double_t * fAbundances
Definition: TGeoElement.h:50
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
Definition: TObject.cxx:687
TGeoElementRN * fElemTop
Definition: TGeoElement.h:277
Int_t GetNelementsRN() const
Definition: TGeoElement.h:406
const TGeoElementRN * fTop
Definition: TGeoElement.h:319
Int_t GetNdecays() const
Get number of decay channels of this element.
TObjArray * fList
Definition: TGeoElement.h:364
Double_t TH_F() const
Definition: TGeoElement.h:177
virtual void Print(Option_t *option="") const
Print this isotope.
Marker Attributes class.
Definition: TAttMarker.h:19
const char * Data() const
Definition: TString.h:344
static TGeoIsotope * FindIsotope(const char *name)
Find existing isotope by name.
Double_t A() const
Definition: TGeoElement.h:69
const TGeoElementRN * GetTop() const
Definition: TGeoElement.h:341
Int_t GetNisotopes() const
Definition: TGeoElement.h:71
virtual ~TGeoElementTable()
destructor
TGeoBatemanSol & operator=(const TGeoBatemanSol &other)
Assignment.
Fill Area Attributes class.
Definition: TAttFill.h:19
TGeoBatemanSol * Ratio() const
Definition: TGeoElement.h:185
#define ClassDef(name, id)
Definition: Rtypes.h:297
void MakeName(Int_t a, Int_t z, Int_t iso)
Generate a default name for the element.
Double_t fA
Definition: TGeoElement.h:48
Bool_t CheckTable() const
Checks status of element table.
TGeoElementRN * Parent() const
Definition: TGeoElement.h:249
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.
Definition: TNamed.h:29
TObjArray * fBranch
Definition: TGeoElement.h:321
virtual void Print(Option_t *option="") const
Print info about the current decay branch.
void AddIsotope(TGeoIsotope *isotope, Double_t relativeAbundance)
Add an isotope for this element. All isotopes have to be isotopes of the same element.
Base class for chemical elements.
Definition: TGeoElement.h:36
static TGeoElementTable * GetElementTable()
Returns pointer to the table.
Double_t Neff() const
Returns effective number of nucleons.
Bool_t HasDefaultElements() const
Definition: TGeoElement.h:402
Double_t fTmax
Definition: TGeoElement.h:282
TGeoElementRN()
Default constructor.
TGeoElementRN * Down(Int_t ibranch)
Go downwards from current level via ibranch as low in the tree as possible.
Bool_t IsUsed() const
Definition: TGeoElement.h:79
Int_t IsoNo() const
Definition: TGeoElement.h:171
virtual Bool_t IsRadioNuclide() const
Definition: TGeoElement.h:168
BtCoef_t * fCoeff
Definition: TGeoElement.h:283
void SetFactor(Double_t factor)
Definition: TGeoElement.h:303
virtual Double_t GetSpecificActivity() const
Definition: TGeoElement.h:75
Double_t Level() const
Definition: TGeoElement.h:172
Int_t GetNcoeff() const
Definition: TGeoElement.h:300
TObjArray * GetBranch() const
Definition: TGeoElement.h:340
Bool_t IsDefined() const
Definition: TGeoElement.h:77
virtual void Print(Option_t *option="") const
Print concentration evolution.
void SetDaughter(TGeoElementRN *daughter)
Definition: TGeoElement.h:253
Double_t fLimitRatio
Definition: TGeoElement.h:323
void GetCoeff(Int_t i, Double_t &cn, Double_t &lambda) const
Definition: TGeoElement.h:296
Double_t GetA() const
Definition: TGeoElement.h:110
TObjArray * fIsotopes
Definition: TGeoElement.h:49
std::map< Int_t, TGeoElementRN * > ElementRNMap_t
Definition: TGeoElement.h:368
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()
Definition: TGeoElement.h:237
const TGeoElementRN * fElem
Definition: TGeoElement.h:320
Double_t fLevel
Definition: TGeoElement.h:131
Double_t fTG_F
Definition: TGeoElement.h:137
Double_t HalfLife() const
Definition: TGeoElement.h:174
Double_t fBranchingRatio
Definition: TGeoElement.h:209
unsigned int UInt_t
Definition: RtypesCore.h:42
Bool_t TestBit(UInt_t f) const
Definition: TObject.h:159
void AddElementRN(TGeoElementRN *elem)
Add a radionuclide to the table and map it.
const TGeoElementRN * GetElement() const
Definition: TGeoElement.h:342
TGeoDecayChannel & operator=(const TGeoDecayChannel &dc)
Assignment.
Iterator for decay branches.
Definition: TGeoElement.h:316
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.
Int_t DeltaIso() const
Definition: TGeoElement.h:247
Double_t GetRelativeAbundance(Int_t i) const
Return relative abundance of i-th isotope in this element.
TGeoElementRN * GetTopElement() const
Definition: TGeoElement.h:299
TGeoBatemanSol & operator+=(const TGeoBatemanSol &other)
Addition of other solution.
Double_t fDeltaM
Definition: TGeoElement.h:132
TGeoDecayChannel(Int_t decay, Int_t diso, Double_t branchingRatio, Double_t qValue)
Definition: TGeoElement.h:233
TGeoDecayChannel(const TGeoDecayChannel &dc)
Definition: TGeoElement.h:235
virtual void Print(Option_t *opt=" ") const
Prints decay info.
const char * PJ() const
Definition: TGeoElement.h:176
const Bool_t kFALSE
Definition: RtypesCore.h:92
Int_t GetN() const
Definition: TGeoElement.h:109
Int_t N() const
Definition: TGeoElement.h:67
Double_t fNatAbun
Definition: TGeoElement.h:134
TObjArray * GetElementsRN() const
Definition: TGeoElement.h:401
virtual ~TGeoIsotope()
Definition: TGeoElement.h:106
void SetUsed(Bool_t flag=kTRUE)
Definition: TGeoElement.h:82
ElementRNMap_t fElementsRN
Definition: TGeoElement.h:370
Double_t fQvalue
Definition: TGeoElement.h:210
double Double_t
Definition: RtypesCore.h:55
TGeoElementRN * Next()
Return next element.
Double_t fTH_S
Definition: TGeoElement.h:138
virtual void Print(Option_t *option="") const
Print table of elements.
Double_t TG_S() const
Definition: TGeoElement.h:180
virtual Bool_t IsRadioNuclide() const
Definition: TGeoElement.h:78
TGeoElementRN * fElem
Definition: TGeoElement.h:276
virtual ~TGeoElemIter()
Destructor.
void SetParent(TGeoElementRN *parent)
Definition: TGeoElement.h:252
ElementRNMap_t::iterator ElementRNMapIt_t
Definition: TGeoElement.h:369
you should not use this method at all Int_t Int_t Double_t Double_t Double_t e
Definition: TRolke.cxx:630
virtual void Print(Option_t *option="") const
Print info about the element;.
Int_t MassNo() const
Definition: TGeoElement.h:169
void SetDefined(Bool_t flag=kTRUE)
Definition: TGeoElement.h:81
TGeoElementRN * GetElement() const
Definition: TGeoElement.h:298
Int_t fNisotopes
Definition: TGeoElement.h:47
TGeoIsotope()
Dummy I/O constructor.
A decay channel for a radionuclide.
Definition: TGeoElement.h:204
Mother of all ROOT objects.
Definition: TObject.h:37
you should not use this method at all Int_t Int_t z
Definition: TRolke.cxx:630
Double_t fRatio
Definition: TGeoElement.h:324
TGeoElementRN * Up()
Go upwards from the current location until the next branching, then down.
void ImportElementsRN()
Creates the list of radionuclides.
UInt_t Decay() const
Definition: TGeoElement.h:244
Class representing a radionuclide.
Definition: TGeoElement.h:126
Int_t DecayResult(TGeoDecayChannel *dc) const
Returns ENDF code of decay result.
TGeoElementRN * fDaughter
Definition: TGeoElement.h:212
Bool_t CheckDecays() const
Check if all decay chain of the element is OK.
void BuildDefaultElements()
Creates the default element table.
TGeoElementTable()
default constructor
TGeoElementRN & operator=(const TGeoElementRN &elem)
static Int_t ENDF(Int_t a, Int_t z, Int_t iso)
Definition: TGeoElement.h:163
TGeoBatemanSol * fRatio
Definition: TGeoElement.h:141
Int_t GetNelements() const
Definition: TGeoElement.h:405
Double_t fTG_S
Definition: TGeoElement.h:139
Double_t GetRatio() const
Definition: TGeoElement.h:344
Bool_t Stable() const
Definition: TGeoElement.h:182
Double_t BranchingRatio() const
Definition: TGeoElement.h:245
TGeoElement * GetElement(Int_t z)
Definition: TGeoElement.h:398
TObject * At(Int_t idx) const
Definition: TObjArray.h:165
void GetRange(Double_t &tmin, Double_t &tmax) const
Definition: TGeoElement.h:297
virtual Int_t ENDFCode() const
Definition: TGeoElement.h:65
Bool_t HasRNElements() const
Definition: TGeoElement.h:403
const Bool_t kTRUE
Definition: RtypesCore.h:91
void SetRange(Double_t tmin=0., Double_t tmax=0.)
Definition: TGeoElement.h:302
TGeoElementRN * Daughter() const
Definition: TGeoElement.h:248
const Int_t n
Definition: legend1.C:16
Line Attributes class.
Definition: TAttLine.h:18
Double_t Status() const
Definition: TGeoElement.h:181
TGeoIsotope * GetIsotope(Int_t i) const
Return i-th isotope in the element.
char name[80]
Definition: TGX11.cxx:109
void ResetRatio()
Clears the existing ratio.
Double_t TG_F() const
Definition: TGeoElement.h:178
Double_t fA
Definition: TGeoElement.h:101
void ExportElementsRN(const char *filename="")
Export radionuclides in a file.
TGeoElemIter & operator=(const TGeoElemIter &iter)
Assignment.