Logo ROOT  
Reference Guide
 
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Loading...
Searching...
No Matches
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
28class TGeoIsotope;
29
30// a chemical element
31class TGeoElement : public TNamed {
32protected:
34
35 Int_t fZ; // Z of element
36 Int_t fN; // Number of nucleons
37 Int_t fNisotopes; // Number of isotopes for the element
38 Double_t fA; // A of element
39 TObjArray *fIsotopes; // List of isotopes
40 Double_t *fAbundances; //[fNisotopes] Array of relative isotope abundances
41 Double_t fCoulomb; // Coulomb correction factor
42 Double_t fRadTsai; // Tsai formula for the radiation length
43
44private:
45 TGeoElement(const TGeoElement &other) = delete;
47
48 // Compute the Coulomb correction factor
50 // Compute the Tsai formula for the radiation length
52
53public:
54 // constructors
56 TGeoElement(const char *name, const char *title, Int_t z, Double_t a);
57 TGeoElement(const char *name, const char *title, Int_t nisotopes);
58 TGeoElement(const char *name, const char *title, Int_t z, Int_t n, Double_t a);
59 // destructor
60 ~TGeoElement() override;
61 // methods
62 virtual Int_t ENDFCode() const { return 0; }
63 Int_t Z() const { return fZ; }
64 Int_t N() const { return fN; }
65 Double_t Neff() const;
66 Double_t A() const { return fA; }
68 Int_t GetNisotopes() const { return fNisotopes; }
71 // Calculate properties for an atomic number
73 // Specific activity (in Bq/gram)
74 virtual Double_t GetSpecificActivity() const { return 0.; }
75 Bool_t HasIsotopes() const { return (fNisotopes == 0) ? kFALSE : kTRUE; }
77 virtual Bool_t IsRadioNuclide() const { return kFALSE; }
79 void Print(Option_t *option = "") const override;
83 // Coulomb correction factor
84 inline Double_t GetfCoulomb() const { return fCoulomb; }
85 // Tsai formula for the radiation length
86 inline Double_t GetfRadTsai() const { return fRadTsai; }
87
88 ClassDefOverride(TGeoElement, 3) // base element class
89};
90
91/// an isotope defined by the atomic number, number of nucleons and atomic weight (g/mole)
92class TGeoIsotope : public TNamed {
93protected:
94 Int_t fZ; // atomic number
95 Int_t fN; // number of nucleons
96 Double_t fA; // atomic mass (g/mole)
97
98public:
100 TGeoIsotope(const char *name, Int_t z, Int_t n, Double_t a);
101 ~TGeoIsotope() override {}
102
103 Int_t GetZ() const { return fZ; }
104 Int_t GetN() const { return fN; }
105 Double_t GetA() const { return fA; }
106 static TGeoIsotope *FindIsotope(const char *name);
107 void Print(Option_t *option = "") const override;
108
109 ClassDefOverride(TGeoIsotope, 1) // Isotope class defined by Z,N,A
110};
111
112class TGeoDecayChannel;
113class TGeoBatemanSol;
114
115/// a radionuclide
117protected:
118 Int_t fENDFcode; // ENDF element code
119 Int_t fIso; // Isomer number
120 Double_t fLevel; // Isomeric level
121 Double_t fDeltaM; // Mass excess
122 Double_t fHalfLife; // Half life
123 Double_t fNatAbun; // Natural Abundance
124 // char fJP[11]; // Spin-parity
125 Double_t fTH_F; // Hynalation toxicity
126 Double_t fTG_F; // Ingestion toxicity
127 Double_t fTH_S; // Hynalation toxicity
128 Double_t fTG_S; // Ingestion toxicity
129 Int_t fStatus; // Status code
130 TGeoBatemanSol *fRatio; // Time evolution of proportion by number
131
132 TObjArray *fDecays; // List of decay modes
133
134 void MakeName(Int_t a, Int_t z, Int_t iso);
135
136private:
139
140public:
144 ~TGeoElementRN() override;
145
148 void AddRatio(TGeoBatemanSol &ratio);
149 void ResetRatio();
150 static Int_t ENDF(Int_t a, Int_t z, Int_t iso) { return 10000 * z + 10 * a + iso; }
151
152 // Getters
153 Int_t ENDFCode() const override { return fENDFcode; }
154 Double_t GetSpecificActivity() const override;
155 Bool_t IsRadioNuclide() const override { return kTRUE; }
156 Int_t MassNo() const { return (Int_t)fA; }
157 Int_t AtomicNo() const { return fZ; }
158 Int_t IsoNo() const { return fIso; }
159 Double_t Level() const { return fLevel; }
160 Double_t MassEx() const { return fDeltaM; }
161 Double_t HalfLife() const { return fHalfLife; }
162 Double_t NatAbun() const { return fNatAbun; }
163 const char *PJ() const { return fTitle.Data(); }
164 Double_t TH_F() const { return fTH_F; }
165 Double_t TG_F() const { return fTG_F; }
166 Double_t TH_S() const { return fTH_S; }
167 Double_t TG_S() const { return fTG_S; }
168 Double_t Status() const { return fStatus; }
169 Bool_t Stable() const { return !fDecays; }
170 TObjArray *Decays() const { return fDecays; }
171 Int_t GetNdecays() const;
172 TGeoBatemanSol *Ratio() const { return fRatio; }
173
174 // Utilities
175 Bool_t CheckDecays() const;
177 void FillPopulation(TObjArray *population, Double_t precision = 0.001, Double_t factor = 1.);
178 void Print(Option_t *option = "") const override;
179 static TGeoElementRN *ReadElementRN(const char *record, Int_t &ndecays);
180 void SavePrimitive(std::ostream &out, Option_t *option = "") override;
181
182 ClassDefOverride(TGeoElementRN, 2) // radionuclides class
183};
184
185/// decay channel utility class.
186class TGeoDecayChannel : public TObject {
187private:
188 UInt_t fDecay; // Decay mode
189 Int_t fDiso; // Delta isomeric number
190 Double_t fBranchingRatio; // Branching Ratio
191 Double_t fQvalue; // Qvalue in GeV
192 TGeoElementRN *fParent; // Parent element
193 TGeoElementRN *fDaughter; // Daughter element
194public:
213 TGeoDecayChannel() : fDecay(0), fDiso(0), fBranchingRatio(0), fQvalue(0), fParent(nullptr), fDaughter(nullptr) {}
233 ~TGeoDecayChannel() override {}
234
236
237 // Getters
238 Int_t GetIndex() const;
239 const char *GetName() const override;
240 UInt_t Decay() const { return fDecay; }
242 Double_t Qvalue() const { return fQvalue; }
243 Int_t DeltaIso() const { return fDiso; }
244 TGeoElementRN *Daughter() const { return fDaughter; }
245 TGeoElementRN *Parent() const { return fParent; }
246 static void DecayName(UInt_t decay, TString &name);
247 // Setters
248 void SetParent(TGeoElementRN *parent) { fParent = parent; }
250 // Services
251 void Print(Option_t *opt = " ") const override;
252 static TGeoDecayChannel *ReadDecay(const char *record);
253 void SavePrimitive(std::ostream &out, Option_t *option = "") override;
254 virtual void DecayShift(Int_t &dA, Int_t &dZ, Int_t &dI) const;
255
256 ClassDefOverride(TGeoDecayChannel, 1) // Decay channel for Elements
257};
258
259/// Class representing the Bateman solution for a decay branch
260class TGeoBatemanSol : public TObject, public TAttLine, public TAttFill, public TAttMarker {
261private:
262 typedef struct {
263 Double_t cn; // Concentration for element 'i': Ni/Ntop
264 Double_t lambda; // Decay coef. for element 'i'
265 } BtCoef_t;
266 TGeoElementRN *fElem; // Referred RN element
267 TGeoElementRN *fElemTop; // Top RN element
268 Int_t fCsize; // Size of the array of coefficients
269 Int_t fNcoeff; // Number of coefficients
270 Double_t fFactor; // Constant factor that applies to all coefficients
271 Double_t fTmin; // Minimum value of the time interval
272 Double_t fTmax; // Maximum value of the time interval
273 BtCoef_t *fCoeff; //[fNcoeff] Array of coefficients
274public:
276 : TObject(),
277 TAttLine(),
278 TAttFill(),
279 TAttMarker(),
280 fElem(nullptr),
281 fElemTop(nullptr),
282 fCsize(0),
283 fNcoeff(0),
284 fFactor(1.),
285 fTmin(0.),
286 fTmax(0),
287 fCoeff(nullptr)
288 {
289 }
293 ~TGeoBatemanSol() override;
294
297
298 Double_t Concentration(Double_t time) const;
299 void Draw(Option_t *option = "") override;
300 void GetCoeff(Int_t i, Double_t &cn, Double_t &lambda) const
301 {
302 cn = fCoeff[i].cn;
303 lambda = fCoeff[i].lambda;
304 }
305 void GetRange(Double_t &tmin, Double_t &tmax) const
306 {
307 tmin = fTmin;
308 tmax = fTmax;
309 }
310 TGeoElementRN *GetElement() const { return fElem; }
312 Int_t GetNcoeff() const { return fNcoeff; }
313 void Print(Option_t *option = "") const override;
314 void SetRange(Double_t tmin = 0., Double_t tmax = 0.)
315 {
316 fTmin = tmin;
317 fTmax = tmax;
318 }
319 void SetFactor(Double_t factor) { fFactor = factor; }
320 void FindSolution(const TObjArray *array);
321 void Normalize(Double_t factor);
322
323 ClassDefOverride(TGeoBatemanSol, 1) // Solution for the Bateman equation
324};
325
326/// iterator for decay chains.
328private:
329 const TGeoElementRN *fTop; // Top element of the iteration
330 const TGeoElementRN *fElem; // Current element
331 TObjArray *fBranch; // Current branch
332 Int_t fLevel; // Current level
333 Double_t fLimitRatio; // Minimum cumulative branching ratio
334 Double_t fRatio; // Current ratio
335
336protected:
337 TGeoElemIter() : fTop(nullptr), fElem(nullptr), fBranch(nullptr), fLevel(0), fLimitRatio(0), fRatio(0) {}
339 TGeoElementRN *Up();
340
341public:
342 TGeoElemIter(TGeoElementRN *top, Double_t limit = 1.e-4);
343 TGeoElemIter(const TGeoElemIter &iter);
344 virtual ~TGeoElemIter();
345
346 TGeoElemIter &operator=(const TGeoElemIter &iter);
349
350 TObjArray *GetBranch() const { return fBranch; }
351 const TGeoElementRN *GetTop() const { return fTop; }
352 const TGeoElementRN *GetElement() const { return fElem; }
353 Int_t GetLevel() const { return fLevel; }
354 Double_t GetRatio() const { return fRatio; }
355 virtual void Print(Option_t *option = "") const;
356 void SetLimitRatio(Double_t limit) { fLimitRatio = limit; }
357
358 ClassDef(TGeoElemIter, 0) // Iterator for radionuclide chains.
359};
360
361/// table of elements
362class TGeoElementTable : public TObject {
363private:
364 // data members
365 Int_t fNelements; // number of elements
366 Int_t fNelementsRN; // number of RN elements
367 Int_t fNisotopes; // number of isotopes
368 TObjArray *fList; // list of elements
369 TObjArray *fListRN; // list of RN elements
370 TObjArray *fIsotopes; // list of user-defined isotopes
371 // Map of radionuclides
372 typedef std::map<Int_t, TGeoElementRN *> ElementRNMap_t;
373 typedef ElementRNMap_t::iterator ElementRNMapIt_t;
374 ElementRNMap_t fElementsRN; //! map of RN elements with ENDF key
375
376protected:
379
380public:
381 // constructors
384 // destructor
385 ~TGeoElementTable() override;
386 // methods
387
389 void AddElement(const char *name, const char *title, Int_t z, Double_t a);
390 void AddElement(const char *name, const char *title, Int_t z, Int_t n, Double_t a);
395 void ImportElementsRN();
396 Bool_t CheckTable() const;
397 TGeoElement *FindElement(const char *name) const;
398 TGeoIsotope *FindIsotope(const char *name) const;
402 TObjArray *GetElementsRN() const { return fListRN; }
405
406 Int_t GetNelements() const { return fNelements; }
408 void ExportElementsRN(const char *filename = "");
409 void Print(Option_t *option = "") const override;
410
411 ClassDefOverride(TGeoElementTable, 4) // table of elements
412};
413
414#endif
#define a(i)
Definition RSha256.hxx:99
bool Bool_t
Definition RtypesCore.h:63
int Int_t
Definition RtypesCore.h:45
unsigned int UInt_t
Definition RtypesCore.h:46
constexpr Bool_t kFALSE
Definition RtypesCore.h:94
double Double_t
Definition RtypesCore.h:59
constexpr Bool_t kTRUE
Definition RtypesCore.h:93
const char Option_t
Definition RtypesCore.h:66
#define ClassDef(name, id)
Definition Rtypes.h:342
#define BIT(n)
Definition Rtypes.h:90
#define ClassDefOverride(name, id)
Definition Rtypes.h:346
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
Option_t Option_t option
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
char name[80]
Definition TGX11.cxx:110
Fill Area Attributes class.
Definition TAttFill.h:20
Line Attributes class.
Definition TAttLine.h:20
Marker Attributes class.
Definition TAttMarker.h:20
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.
Int_t GetNcoeff() const
Double_t fFactor
BtCoef_t * fCoeff
void GetCoeff(Int_t i, Double_t &cn, Double_t &lambda) const
~TGeoBatemanSol() override
Destructor.
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...
TGeoElementRN * fElem
TGeoElementRN * fElemTop
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.
void Print(Option_t *option="") const override
Print concentration evolution.
decay channel utility class.
~TGeoDecayChannel() override
void SetParent(TGeoElementRN *parent)
Int_t DeltaIso() const
TGeoElementRN * fParent
Double_t Qvalue() const
TGeoElementRN * Daughter() const
UInt_t Decay() const
TGeoDecayChannel(Int_t decay, Int_t diso, Double_t branchingRatio, Double_t qValue)
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save primitive for decays.
static TGeoDecayChannel * ReadDecay(const char *record)
Create element from line record.
TGeoElementRN * Parent() const
void Print(Option_t *opt=" ") const override
Prints decay info.
const char * GetName() const override
Returns name of decay.
TGeoElementRN * fDaughter
Double_t BranchingRatio() const
Double_t fBranchingRatio
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.
iterator for decay chains.
virtual void Print(Option_t *option="") const
Print info about the current decay branch.
Double_t fRatio
void SetLimitRatio(Double_t limit)
TObjArray * GetBranch() const
Double_t GetRatio() const
const TGeoElementRN * fElem
TObjArray * fBranch
TGeoElementRN * Next()
Return next element.
TGeoElemIter & operator=(const TGeoElemIter &iter)
Assignment.
virtual ~TGeoElemIter()
Destructor.
TGeoElementRN * operator()()
() operator.
const TGeoElementRN * fTop
Double_t fLimitRatio
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
Int_t GetLevel() const
a radionuclide
Double_t fNatAbun
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
Double_t TG_S() const
void AddDecay(Int_t decay, Int_t diso, Double_t branchingRatio, Double_t qValue)
Adds a decay mode for this element.
Double_t fHalfLife
TObjArray * fDecays
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;.
Double_t TG_F() const
Double_t Level() const
void SavePrimitive(std::ostream &out, Option_t *option="") override
Save primitive for RN elements.
Int_t AtomicNo() const
Double_t fTH_S
const char * PJ() const
Int_t MassNo() const
Double_t fLevel
Int_t IsoNo() const
TGeoBatemanSol * fRatio
Double_t HalfLife() const
Double_t fDeltaM
Int_t DecayResult(TGeoDecayChannel *dc) const
Returns ENDF code of decay result.
TGeoBatemanSol * Ratio() const
Double_t MassEx() const
TObjArray * Decays() const
Bool_t Stable() 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 IsRadioNuclide() const override
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.
Double_t TH_S() const
Double_t TH_F() const
~TGeoElementRN() override
Destructor.
Double_t fTG_F
Double_t Status() const
Double_t fTH_F
static Int_t ENDF(Int_t a, Int_t z, Int_t iso)
void ResetRatio()
Clears the existing ratio.
Double_t fTG_S
Double_t NatAbun() const
Int_t ENDFCode() const override
table of elements
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.
TObjArray * fListRN
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
TObjArray * fList
TObjArray * fIsotopes
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.
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
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.
Definition TGeoElement.h:31
Double_t fA
Definition TGeoElement.h:38
Int_t N() const
Definition TGeoElement.h:64
virtual Double_t GetSpecificActivity() const
Definition TGeoElement.h:74
Int_t fNisotopes
Definition TGeoElement.h:37
Double_t fRadTsai
Definition TGeoElement.h:42
Bool_t IsDefined() const
Definition TGeoElement.h:76
TGeoElement()
Default constructor.
Double_t A() const
Definition TGeoElement.h:66
void SetDefined(Bool_t flag=kTRUE)
Definition TGeoElement.h:80
virtual Bool_t IsRadioNuclide() const
Definition TGeoElement.h:77
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.
Int_t Z() const
Definition TGeoElement.h:63
TGeoElement & operator=(const TGeoElement &other)=delete
void ComputeCoulombFactor()
Compute Coulomb correction factor (Phys Rev. D50 3-1 (1994) page 1254)
Double_t fCoulomb
Definition TGeoElement.h:41
virtual Int_t ENDFCode() const
Definition TGeoElement.h:62
void AddIsotope(TGeoIsotope *isotope, Double_t relativeAbundance)
Add an isotope for this element. All isotopes have to be isotopes of the same element.
TObjArray * fIsotopes
Definition TGeoElement.h:39
TGeoElement(const TGeoElement &other)=delete
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
Definition TGeoElement.h:84
Int_t GetNisotopes() const
Definition TGeoElement.h:68
Double_t * fAbundances
Definition TGeoElement.h:40
Double_t GetfRadTsai() const
Definition TGeoElement.h:86
Bool_t HasIsotopes() const
Definition TGeoElement.h:75
Double_t GetRelativeAbundance(Int_t i) const
Return relative abundance of i-th isotope in this element.
void SetUsed(Bool_t flag=kTRUE)
Definition TGeoElement.h:81
TGeoIsotope * GetIsotope(Int_t i) const
Return i-th isotope in the element.
Bool_t IsUsed() const
Definition TGeoElement.h:78
~TGeoElement() override
destructor
an isotope defined by the atomic number, number of nucleons and atomic weight (g/mole)
Definition TGeoElement.h:92
Double_t fA
Definition TGeoElement.h:96
~TGeoIsotope() override
TGeoIsotope()
Dummy I/O constructor.
Int_t GetZ() const
Int_t GetN() const
Double_t GetA() const
static TGeoIsotope * FindIsotope(const char *name)
Find existing isotope by name.
void Print(Option_t *option="") const override
Print this isotope.
The TNamed class is the base class for all named ROOT classes.
Definition TNamed.h:29
TString fTitle
Definition TNamed.h:33
An array of TObjects.
Definition TObjArray.h:31
TObject * At(Int_t idx) const override
Definition TObjArray.h:164
Mother of all ROOT objects.
Definition TObject.h:41
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
Definition TObject.h:205
void SetBit(UInt_t f, Bool_t set)
Set or unset the user status bits as specified in f.
Definition TObject.cxx:864
Basic string class.
Definition TString.h:139
const char * Data() const
Definition TString.h:376
const Int_t n
Definition legend1.C:16
th1 Draw()