Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
TMaterial.cxx
Go to the documentation of this file.
1// @(#)root/g3d:$Id$
2// Author: Rene Brun 03/10/95
3
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#include "TMaterial.h"
13
14#include "TBuffer.h"
15#include "TGeometry.h"
16
17
18/** \class TMaterial
19\ingroup g3d
20Manages a detector material. See class TGeometry
21*/
22
23////////////////////////////////////////////////////////////////////////////////
24/// Material default constructor.
25
27{
28 fA = 0;
29 fDensity = 0;
30 fInterLength = 0;
31 fNumber = 0;
32 fRadLength = 0;
33 fZ = 0;
34}
35
36////////////////////////////////////////////////////////////////////////////////
37/// Material normal constructor.
38
39TMaterial::TMaterial(const char *name, const char *title, Float_t a, Float_t z, Float_t density)
40 :TNamed(name,title), TAttFill(0,1)
41{
42 if (!gGeometry) gGeometry = new TGeometry("Geometry","Default Geometry");
43 fA = a;
44 fZ = z;
47 fRadLength = 0;
48 fInterLength = 0;
50}
51
52////////////////////////////////////////////////////////////////////////////////
53/// Material normal constructor.
54
56 :TNamed(name,title), TAttFill(0,1)
57{
58 if (!gGeometry) gGeometry = new TGeometry("Geometry","Default Geometry");
59 fA = a;
60 fZ = z;
66}
67
68////////////////////////////////////////////////////////////////////////////////
69/// Material default destructor.
70
76
77////////////////////////////////////////////////////////////////////////////////
78/// Stream an object of class TMaterial.
79
81{
83 if (R__b.IsReading()) {
84 Version_t R__v = R__b.ReadVersion(&R__s, &R__c);
85 R__b.ClassBegin(TMaterial::IsA());
86 R__b.ClassMember("TNamed");
88 R__b.ClassMember("fNumber", "Int_t");
89 R__b >> fNumber;
90 R__b.ClassMember("fA", "Float_t");
91 R__b >> fA;
92 R__b.ClassMember("fZ", "Float_t");
93 R__b >> fZ;
94 R__b.ClassMember("fDensity", "Float_t");
95 R__b >> fDensity;
96 if (R__v > 2) {
97 R__b.ClassMember("TAttFill");
99 R__b.ClassMember("fRadLength", "Float_t");
100 R__b >> fRadLength;
101 R__b.ClassMember("fInterLength", "Float_t");
103 } else {
104 fRadLength = 0;
105 fInterLength = 0;
106 }
107 R__b.ClassEnd(TMaterial::IsA());
108 R__b.CheckByteCount(R__s, R__c, TMaterial::IsA());
109 } else {
110 R__c = R__b.WriteVersion(TMaterial::IsA(), kTRUE);
111 R__b.ClassBegin(TMaterial::IsA());
112 R__b.ClassMember("TNamed");
114 R__b.ClassMember("fNumber", "Int_t");
115 R__b << fNumber;
116 R__b.ClassMember("fA", "Float_t");
117 R__b << fA;
118 R__b.ClassMember("fZ", "Float_t");
119 R__b << fZ;
120 R__b.ClassMember("fDensity", "Float_t");
121 R__b << fDensity;
122 R__b.ClassMember("TAttFill");
124 R__b.ClassMember("fRadLength", "Float_t");
125 R__b << fRadLength;
126 R__b.ClassMember("fInterLength", "Float_t");
128 R__b.ClassEnd(TMaterial::IsA());
129 R__b.SetByteCount(R__c, kTRUE);
130 }
131}
#define a(i)
Definition RSha256.hxx:99
short Version_t
Class version identifier (short)
Definition RtypesCore.h:79
float Float_t
Float 4 bytes (float)
Definition RtypesCore.h:71
constexpr Bool_t kTRUE
Definition RtypesCore.h:107
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
char name[80]
Definition TGX11.cxx:110
R__EXTERN TGeometry * gGeometry
Definition TGeometry.h:158
Fill Area Attributes class.
Definition TAttFill.h:20
virtual void Streamer(TBuffer &)
Buffer base class used for serializing objects.
Definition TBuffer.h:43
virtual Int_t GetSize() const
Return the capacity of the collection, i.e.
TGeometry description.
Definition TGeometry.h:39
THashList * GetListOfMaterials() const
Definition TGeometry.h:77
TObject * Remove(TObject *obj) override
Remove object from the list.
void Add(TObject *obj) override
Definition TList.h:81
TMaterial()
Material default constructor.
Definition TMaterial.cxx:26
Float_t fZ
Definition TMaterial.h:32
Float_t fA
Definition TMaterial.h:31
Int_t fNumber
Definition TMaterial.h:30
void Streamer(TBuffer &) override
Stream an object of class TMaterial.
Definition TMaterial.cxx:80
Float_t fInterLength
Definition TMaterial.h:35
TClass * IsA() const override
Definition TMaterial.h:49
~TMaterial() override
Material default destructor.
Definition TMaterial.cxx:71
Float_t fDensity
Definition TMaterial.h:33
Float_t fRadLength
Definition TMaterial.h:34
The TNamed class is the base class for all named ROOT classes.
Definition TNamed.h:29
void Streamer(TBuffer &) override
Stream an object of class TObject.