]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STRUCT/AliALIFE.h
Modified radius of compensator dipole.
[u/mrichter/AliRoot.git] / STRUCT / AliALIFE.h
1 #ifndef ALIALIFE_H
2 #define ALIALIFE_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 "TObject.h"
9 #include "TString.h"
10
11 class AliALIFE : public  TObject {
12  public:
13     AliALIFE(const char *name1, const char *name2);
14     AliALIFE();    
15     AliALIFE(const AliALIFE &rh) {
16       // copy ctor requested by coding convention but not needed
17       Fatal("Copy constructor","not implemented");
18     }
19     virtual ~AliALIFE() {}
20     void Cylinder(Float_t rmin, Float_t rmax,
21                   Float_t zmin, Float_t zmax,
22                   Float_t pos[3],
23                   char* Material, char* Field="MF", char* Cuts="$UNSHIELDED");
24     void OnionCylinder(Float_t* r, Int_t nr, Float_t zmin, Float_t zmax,
25                        Float_t pos[3],
26                        char** Materials, char** Fields=0, char** Cuts=0);
27     
28     void Cone(Float_t rmin1, Float_t rmin2,
29               Float_t rmax1, Float_t rmax2,
30               Float_t zmin, Float_t zmax,
31               Float_t pos[3],
32               char* Material, char* Field="MF", char* Cuts="$UNSHIELDED");
33     
34     void OnionCone(Float_t* r1, Float_t* r2, Int_t nr,
35                    Float_t zmin, Float_t zmax,
36                    Float_t pos[3],
37                    char** Materials, char** Fields=0, char** Cuts=0);
38
39     void PolyCone(Float_t* rmin, Float_t* rmax, Float_t* z, Int_t nz,
40                   Float_t pos[3], 
41                   char* Material, char* Field="MF", char* Cuts="$UNSHIELDED");
42
43     void OnionPolyCone(Float_t** r , Float_t* z, Int_t nr, Int_t nz,
44                        Float_t pos[3], 
45                        char** Materials, char** Fields=0, char** Cuts=0);
46     
47     void Comment(char* Comment);
48
49     void Finish();
50
51     void SetDefaultVolume(TString vol1, TString vol2) 
52         {fDefaultVolume1=vol1; fDefaultVolume2=vol2;}
53     
54     void SetDefaultVolume(TString vol) 
55         {fDefaultVolume1=vol;}
56
57  protected:
58     Int_t        fNBodies;          // current number of bodies
59     Int_t        fNVolumes;         // current number of volumes
60     TString       fBodyFile;        // File for Fluka bodies
61     TString       fVolumeFile;      // File for Fluka volumes
62     FILE         *fFile1;           // ! output file for fluka geometry in ALIFE format  
63     FILE         *fFile2;           // ! scratch file
64     TString      fDefaultVolume1;   // default external volume 1 
65     TString      fDefaultVolume2;   // default external volume 2   
66  private:
67     void BodyHeader();
68     void VolumeHeader();
69     AliALIFE & operator = (const AliALIFE &) {
70       // assignement operator requested by coding convention but not needed
71       return *this;
72     }
73     
74
75    ClassDef(AliALIFE,1)
76 };
77 #endif
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92