]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TGeant3/AliDrawVolume.h
Mainly coding conventions + some small bug fixes
[u/mrichter/AliRoot.git] / TGeant3 / AliDrawVolume.h
1 #ifndef ALIDRAWVOLUME_H
2 #define ALIDRAWVOLUME_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 #include <TGListTree.h>
9 #include "TROOT.h"
10
11 #include "THIGZ.h"
12 #include "TGeant3.h"
13
14 class AliDrawVolume : public TObject 
15 {
16 public:
17     AliDrawVolume(char* name);
18     virtual ~AliDrawVolume(){;}
19     // Draw the volume
20     virtual void    Draw(Option_t * option =0);
21     // Draw volume specs
22     virtual void    DrawSpec();
23     // Return volume name
24     virtual char*   Name();
25     // Set volume parameter i
26     virtual void    SetParam(Int_t i, Float_t param);
27     // Get volume parameters i
28     virtual Float_t GetParam(Int_t i);
29     // Set volume id
30     virtual void  SetIdVolume(Int_t id) {fIdVolume = id;}
31     // Set volume copy number
32     virtual void  SetIdCopy(Int_t id)   {fIdCopy = id;}
33     // Set volume medium number
34     virtual void  SetIdMedium(Int_t id)   {fIdMedium = id;}
35     // Set volume material number
36     virtual void  SetIdMaterial(Int_t id) {fIdMaterial = id;}
37     // Get volume id
38     virtual Int_t GetIdVolume()         {return fIdVolume;}
39     // Get copy number
40     virtual Int_t GetIdCopy()           {return fIdCopy;}
41     // Get medium number
42     virtual Int_t Medium()   {return fIdMedium;}
43     // Get material number
44     virtual Int_t Material() {return fIdMaterial;}
45     // Increase copy number by one
46     virtual void  AddCopy()             {fIdCopy ++;}
47     // Set link to ListTree Item 
48     virtual void  SetItem(TGListTreeItem *item) {fItem = item;}
49     // Get link to ListTree Item
50     virtual TGListTreeItem* GetItem() {return fItem;}
51             
52 private:
53     char*   fName;        // name of the volume 
54     Float_t fTheta;       // theta-angle for drawing
55     Float_t fPhi;         // phi-angle   for drawing
56     Float_t fPsi;         // psi-angle   for drawing 
57     Float_t fU;           // u-position
58     Float_t fV;           // v-position
59     Float_t fUscale;      // u-scaling factor
60     Float_t fVscale;      // v-scaling factor
61     Bool_t  fHide;        // hide flag
62     Bool_t  fShadow;      // shadow flag
63     Int_t   fFill;        // fill option 1-6
64     Int_t   fSeen;        // seen option -2 - 1
65     Bool_t  fClip;        // clipping flag
66     Float_t fClipXmin;    // clip box range xmin
67     Float_t fClipXmax;    // clip box range xmax
68     Float_t fClipYmin;    // clip box range ymin
69     Float_t fClipYmax;    // clip box range ymax
70     Float_t fClipZmin;    // clip box range zmin
71     Float_t fClipZmax;    // clip box range zmax
72     Int_t   fIdVolume;    // geant volume id
73     Int_t   fIdMedium;    // geant medium id
74     Int_t   fIdMaterial;  // geant material id    
75     Int_t   fIdCopy;      // copy flag
76     TGListTreeItem        *fItem; // current item
77
78   AliDrawVolume(const AliDrawVolume&) {}
79   AliDrawVolume & operator=(const AliDrawVolume&) {return *this;}
80
81     ClassDef(AliDrawVolume,1) // Volume Object for Drawing 
82 };
83
84 //
85 // Drawing parameter tags
86 enum AliDrawParamId {
87    kTheta,
88    kPhi,
89    kPsi,
90    kU,
91    kV,
92    kUscale,
93    kVscale,
94    kShadow,
95    kHide,
96    kFill,
97    kSeen,
98    kClip,
99    kClipXmin,
100    kClipXmax,
101    kClipYmin,
102    kClipYmax,
103    kClipZmin,
104    kClipZmax
105 };
106
107
108 #endif