Adding AliALIFE in the Makefile
[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     virtual ~AliALIFE() {}
16     void Cylinder(Float_t rmin, Float_t rmax,
17                   Float_t zmin, Float_t zmax,
18                   Float_t pos[3],
19                   char* Material, char* Field="MF", char* Cuts="$UNSHIELDED");
20     void OnionCylinder(Float_t* r, Int_t nr, Float_t zmin, Float_t zmax,
21                        Float_t pos[3],
22                        char** Materials, char** Fields=0, char** Cuts=0);
23     
24     void Cone(Float_t rmin1, Float_t rmin2,
25               Float_t rmax1, Float_t rmax2,
26               Float_t zmin, Float_t zmax,
27               Float_t pos[3],
28               char* Material, char* Field="MF", char* Cuts="$UNSHIELDED");
29     
30     void OnionCone(Float_t* r1, Float_t* r2, Int_t nr,
31                    Float_t zmin, Float_t zmax,
32                    Float_t pos[3],
33                    char** Materials, char** Fields=0, char** Cuts=0);
34
35     void PolyCone(Float_t* rmin, Float_t* rmax, Float_t* z, Int_t nz,
36                   Float_t pos[3], 
37                   char* Material, char* Field="MF", char* Cuts="$UNSHIELDED");
38
39     void OnionPolyCone(Float_t** r , Float_t* z, Int_t nr, Int_t nz,
40                        Float_t pos[3], 
41                        char** Materials, char** Fields=0, char** Cuts=0);
42     
43     void Comment(char* Comment);
44
45     void Finish();
46
47     void SetDefaultVolume(TString vol1, TString vol2) 
48         {fDefaultVolume1=vol1; fDefaultVolume2=vol2;}
49     
50     void SetDefaultVolume(TString vol) 
51         {fDefaultVolume1=vol;}
52
53  protected:
54     Int_t        fNBodies;          // current number of bodies
55     Int_t        fNVolumes;         // current number of volumes
56     TString       fBodyFile;        // File for Fluka bodies
57     TString       fVolumeFile;      // File for Fluka volumes
58     FILE         *fFile1;           // ! output file for fluka geometry in ALIFE format  
59     FILE         *fFile2;           // ! scratch file
60     TString      fDefaultVolume1;   // default external volume 1 
61     TString      fDefaultVolume2;   // default external volume 2   
62  private:
63     void BodyHeader();
64     void VolumeHeader();
65     
66
67    ClassDef(AliALIFE,1)
68 };
69 #endif
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84