All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
G3Volume.h
Go to the documentation of this file.
1 #ifndef G3VOLUME_H
2 #define G3VOLUME_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 
7 #include <TGListTree.h>
8 #include "TROOT.h"
9 
11 #include "TArrayF.h"
12 #include "TNamed.h"
13 #include "TList.h"
14 
15 class TShape;
16 class TMaterial;
17 
18 class G3Volume : public TNamed
19 {
20 public:
21  G3Volume() {;}
22  G3Volume(const char* name);
23  virtual ~G3Volume(){;}
24  // G3 the volume
25  virtual void Draw(Option_t * option =0);
26  // G3 volume specs
27  virtual void DrawSpec();
28  // Set volume parameter i
29  virtual void SetParam(Int_t i, Float_t param);
30  // Get volume parameters i
31  virtual Float_t GetParam(Int_t i);
32  // Set volume id
33  virtual void SetIdVolume(Int_t id) {fIdVolume = id;}
34  // Set volume copy number
35  virtual void SetIdCopy(Int_t id) {fIdCopy = id;}
36  // Set volume medium number
37  virtual void SetIdMedium(Int_t id) {fIdMedium = id;}
38  // Set volume material number
39  virtual void SetIdMaterial(Int_t id) {fIdMaterial = id;}
40  // Get volume id
41  virtual Int_t GetIdVolume() const {return fIdVolume;}
42  // Get copy number
43  virtual Int_t GetIdCopy() const {return fIdCopy;}
44  // Get medium number
45  virtual Int_t Medium() const {return fIdMedium;}
46  // Get material number
47  virtual Int_t Material() const {return fIdMaterial;}
48  // Increase copy number by one
49  virtual void AddCopy() {fIdCopy ++;}
50  // Set link to ListTree Item
51  virtual void SetItem(TObject *item) {fItem = item;}
52  // Get link to ListTree Item
53  virtual void SetPosition(Float_t x, Float_t y, Float_t z);
54  virtual TArrayF Position(Int_t i) const;
55 
56  virtual void SetRotMatrix(Int_t irot) {fRotMatrix = irot;}
57  virtual Int_t RotMatrix() const {return fRotMatrix;}
58  virtual void SetShape(Int_t shape) {fShape = shape;}
59  virtual Int_t Shape() const {return fShape;}
60  virtual void SetParameters(Int_t np, Float_t* param);
61  virtual Int_t NParam() const {return fNParam;}
62  virtual void Parameters(Int_t i, TArrayF& param) const;
63  virtual TList* Copies() const {return fCopies;}
64  virtual void AddCopy(G3Volume* volume);
65  virtual G3Volume* MakeCopy(Int_t i);
66 
67  virtual Int_t NCopies() const {return fNCopies;}
68  virtual Bool_t Posp() const {return fPosp;}
69  virtual void SetPosp(Bool_t flag) {fPosp = flag;}
70  virtual void CreateTShape(char* nameV, TMaterial* mat);
71  virtual void SetDivision(Int_t ndiv, Int_t axis, Float_t start, Float_t step);
72  virtual void Division(Int_t& ndiv, Int_t& axis, Float_t& start, Float_t& step) const;
73  virtual Int_t Axis() {return fAxis;}
74  virtual Int_t Ndiv() {return fNdiv;}
75  virtual Float_t Step() {return fStep;}
76  virtual Float_t StartC() {return fStartC;}
77 
78 
79 
80  virtual TObject* GetItem() {return fItem;}
81 
82  G3Volume(const G3Volume&);
83 
84 
85 private:
86 
87  TArrayF fPosition; // position with respect to mother volume
88  TArrayF fParameters; // volume parameters
89  TList* fCopies; // volume copies
90  Bool_t fPosp; // flag for G3 POSP
91  Int_t fNCopies; // number of copies
92  Int_t fRotMatrix; // rotation with respect to mother volume
93  Int_t fNParam; // number of volume parameters
94  Int_t fAxis; // division axis
95  Int_t fNdiv; // number of divisions
96  Float_t fStep; // number of steps
97  Float_t fStartC; // start coordinate
98  Int_t fShape; // G3 volume shape
99  Float_t fTheta; // theta-angle for drawing
100  Float_t fPhi; // phi-angle for drawing
101  Float_t fPsi; // psi-angle for drawing
102  Float_t fU; // u-position
103  Float_t fV; // v-position
104  Float_t fUscale; // u-scaling factor
105  Float_t fVscale; // v-scaling factor
106  Bool_t fHide; // hide flag
107  Bool_t fShadow; // shadow flag
108  Int_t fFill; // fill option 1-6
109  Int_t fSeen; // seen option -2 - 1
110  Bool_t fClip; // clipping flag
111  Float_t fClipXmin; // clip box range xmin
112  Float_t fClipXmax; // clip box range xmax
113  Float_t fClipYmin; // clip box range ymin
114  Float_t fClipYmax; // clip box range ymax
115  Float_t fClipZmin; // clip box range zmin
116  Float_t fClipZmax; // clip box range zmax
117  Int_t fIdVolume; // geant volume id
118  Int_t fIdMedium; // geant medium id
119  Int_t fIdMaterial; // geant material id
120  Int_t fIdCopy; // copy flag
121  TObject* fItem; //!current item
122  G3Volume & operator=(const G3Volume&) {return *this;}
123 
124  ClassDef(G3Volume,1) // G3 Volume for G3 GUI
125 };
126 
127 //
128 // Drawing parameter tags
133  kU,
134  kV,
148 };
149 
150 
151 #endif
virtual void SetItem(TObject *item)
Definition: G3Volume.h:51
virtual Int_t Ndiv()
Definition: G3Volume.h:74
virtual void SetIdMaterial(Int_t id)
Definition: G3Volume.h:39
virtual Int_t Shape() const
Definition: G3Volume.h:59
virtual Int_t NParam() const
Definition: G3Volume.h:61
virtual Int_t Axis()
Definition: G3Volume.h:73
Int_t fSeen
Definition: G3Volume.h:109
virtual void SetParam(Int_t i, Float_t param)
Definition: G3Volume.cxx:200
Float_t fClipXmin
Definition: G3Volume.h:111
virtual void CreateTShape(char *nameV, TMaterial *mat)
Definition: G3Volume.cxx:373
Int_t fRotMatrix
Definition: G3Volume.h:92
virtual void SetIdMedium(Int_t id)
Definition: G3Volume.h:37
Bool_t fPosp
Definition: G3Volume.h:90
Int_t fShape
Definition: G3Volume.h:98
virtual Bool_t Posp() const
Definition: G3Volume.h:68
Definition: G3Volume.h:131
Int_t fIdCopy
Definition: G3Volume.h:120
virtual G3Volume * MakeCopy(Int_t i)
Definition: G3Volume.cxx:314
virtual Int_t Medium() const
Definition: G3Volume.h:45
Float_t fClipXmax
Definition: G3Volume.h:112
G3Volume()
Definition: G3Volume.h:21
virtual void Draw(Option_t *option=0)
Definition: G3Volume.cxx:141
static const std::string volume[nvol]
Int_t fIdMaterial
Definition: G3Volume.h:119
virtual void SetIdVolume(Int_t id)
Definition: G3Volume.h:33
virtual Float_t StartC()
Definition: G3Volume.h:76
TObject * fItem
Definition: G3Volume.h:121
Float_t fClipYmax
Definition: G3Volume.h:114
virtual void SetPosp(Bool_t flag)
Definition: G3Volume.h:69
Float_t fStep
Definition: G3Volume.h:96
Int_t fIdMedium
Definition: G3Volume.h:118
virtual Int_t GetIdVolume() const
Definition: G3Volume.h:41
virtual void Parameters(Int_t i, TArrayF &param) const
Definition: G3Volume.cxx:354
virtual TArrayF Position(Int_t i) const
Definition: G3Volume.cxx:320
double y
virtual void SetParameters(Int_t np, Float_t *param)
Definition: G3Volume.cxx:343
Int_t fIdVolume
Definition: G3Volume.h:117
virtual ~G3Volume()
Definition: G3Volume.h:23
Int_t fNdiv
Definition: G3Volume.h:95
Float_t fUscale
Definition: G3Volume.h:104
virtual void SetPosition(Float_t x, Float_t y, Float_t z)
Definition: G3Volume.cxx:332
virtual void SetShape(Int_t shape)
Definition: G3Volume.h:58
Float_t fStartC
Definition: G3Volume.h:97
double z
virtual Float_t Step()
Definition: G3Volume.h:75
Definition: G3Volume.h:134
virtual Int_t NCopies() const
Definition: G3Volume.h:67
virtual TObject * GetItem()
Definition: G3Volume.h:80
Bool_t fShadow
Definition: G3Volume.h:107
virtual void AddCopy()
Definition: G3Volume.h:49
virtual void SetIdCopy(Int_t id)
Definition: G3Volume.h:35
Bool_t fHide
Definition: G3Volume.h:106
Int_t fNCopies
Definition: G3Volume.h:91
virtual Float_t GetParam(Int_t i)
Definition: G3Volume.cxx:261
Float_t fClipZmin
Definition: G3Volume.h:115
virtual void Division(Int_t &ndiv, Int_t &axis, Float_t &start, Float_t &step) const
Definition: G3Volume.cxx:539
Float_t fVscale
Definition: G3Volume.h:105
Int_t fNParam
Definition: G3Volume.h:93
Definition: G3Volume.h:133
virtual Int_t GetIdCopy() const
Definition: G3Volume.h:43
TList * fCopies
Definition: G3Volume.h:89
Int_t fAxis
Definition: G3Volume.h:94
Float_t fPhi
Definition: G3Volume.h:100
Float_t fClipZmax
Definition: G3Volume.h:116
G3Volume & operator=(const G3Volume &)
current item
Definition: G3Volume.h:122
virtual void SetDivision(Int_t ndiv, Int_t axis, Float_t start, Float_t step)
Definition: G3Volume.cxx:531
G3DrawParamId
Definition: G3Volume.h:129
start
Definition: test.py:4
Float_t fV
Definition: G3Volume.h:103
list x
Definition: train.py:276
virtual void SetRotMatrix(Int_t irot)
Definition: G3Volume.h:56
Int_t fFill
Definition: G3Volume.h:108
Float_t fPsi
Definition: G3Volume.h:101
virtual Int_t Material() const
Definition: G3Volume.h:47
virtual TList * Copies() const
Definition: G3Volume.h:63
Float_t fU
Definition: G3Volume.h:102
virtual Int_t RotMatrix() const
Definition: G3Volume.h:57
TArrayF fPosition
Definition: G3Volume.h:87
Float_t fTheta
Definition: G3Volume.h:99
TArrayF fParameters
Definition: G3Volume.h:88
virtual void DrawSpec()
Definition: G3Volume.cxx:171
Bool_t fClip
Definition: G3Volume.h:110
Float_t fClipYmin
Definition: G3Volume.h:113
Definition: G3Volume.h:132