1c2ff1402d430828bfbdd02a1595f940253b9e0e
[u/mrichter/AliRoot.git] / ITS / AliITSv11.h
1 #ifndef ALIITSV11_H
2 #define ALIITSV11_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 "AliITS.h"
8 class AliITSv11GeometrySPD;
9 class AliITSv11GeometrySDD;
10 class AliITSv11GeometrySupport;
11
12 class AliITSv11 : public AliITS {
13
14  public:
15     AliITSv11();
16     AliITSv11(Int_t debugITS, Int_t debugSPD = 0, Int_t debugSDD = 0,
17              Int_t debugSSD = 0, Int_t debugSUP = 0);
18     AliITSv11(const AliITSv11 &source);            // copy constructor
19     AliITSv11& operator=(const AliITSv11 &source); // assignment operator
20     virtual       ~AliITSv11() ;
21     virtual void   BuildGeometry();
22     virtual void   CreateGeometry();
23     virtual void   CreateMaterials();
24     virtual void   Init(); 
25     virtual void   SetDefaults();
26     virtual void   DrawModule() const;
27     virtual void   StepManager();
28     //virtual AliITSv11GeometrySPD*     GetSPDGeometry(){return fSPDgeom;}
29     virtual AliITSv11GeometrySDD*    GetSDDGeometry(){return fSDDgeom;}
30     //virtual AliITSv11GeometrySupport* GetSupGeometry(){return fSupgeom;}
31     virtual Int_t  IsVersion() const { return fMajorVersion;}  // ITS version number 
32     virtual Int_t  GetMajorVersion() const {// return Major Version Number
33                     return fMajorVersion;}
34     virtual Int_t  GetMinorVersion() const {// return Major Version Number
35                     return fMinorVersion;}
36
37
38     virtual void   SetWriteDet(Bool_t det=kTRUE){ // set .det write
39                                                  fGeomDetOut = det;}
40     virtual void   SetWriteDet(const char *f){ // set write file
41                                      strncpy(fWrite,f,60);fGeomDetOut = kTRUE;}
42     virtual void   SetReadDet(Bool_t det=kTRUE){ //set .det read
43                                                 fGeomDetIn = det;}
44     virtual void   SetReadDet(const char *f){ // set read file
45                                        strncpy(fRead,f,60);fGeomDetIn = kTRUE;}
46     virtual void   SetEUCLIDFileName(const char *f){ // set write file
47                              fEuclidGeometry=f;fEuclidOut = kTRUE;}
48     virtual void   SetMinorVersion(Int_t v=0){ // Choose between existing minor versions
49                    fMinorVersion = v;}
50
51     virtual void SetDensityServicesByThickness(){// uses services density
52         // calculation based on the thickness of the services.
53         fByThick = kTRUE;}
54     virtual void SetDensityServicesByMass(){// uses services density
55         // calculation based on the Mass of the services.
56         fByThick = kFALSE;}
57     virtual Bool_t GetEUCLID() const {return fEuclidOut;}// returns value Euclid flag.
58     virtual const char  *GetEULIIDFileName() const{ // return .euc file name
59                                        return fEuclidGeometry.Data();}
60     virtual Bool_t GetWriteDet() const { // returns value GeomDetOut flag.
61                                   return fGeomDetOut;}
62     virtual Bool_t GetReadDet() const { // returns value GeomDetIn flag.
63                                  return fGeomDetIn;}
64     virtual char  *GetReadDetFileName(){ // return .det read file name
65                   if(fRead[0]!='\0') return fRead; else return fEuclidGeomDet;}
66     virtual char  *GetWriteDetFileName(){ // return .det write file name
67                 if(fWrite[0]!='\0') return fWrite; else return fEuclidGeomDet;}
68
69
70  private:
71     void InitAliITSgeom();
72
73     Bool_t   fGeomDetOut;       // Flag to write .det file out
74     Bool_t   fGeomDetIn;        // Flag to read .det file or directly from Geat.
75     Bool_t   fByThick;          // Flag to use services materials by thickness
76                                 // ture, or mass false.
77     Int_t    fMajorVersion;     // Major version number == IsVersion
78     Int_t    fMinorVersion;     // Minor version number
79     char     fEuclidGeomDet[60];// file where detector transormation are define.
80     char     fRead[60];         //! file name to read .det file
81     char     fWrite[60];        //! file name to write .det file
82
83
84     //AliITSv11GeometrySPD *fSPDgeom;      //SPD Geometry
85     AliITSv11GeometrySDD *fSDDgeom;      //SDD Geometry
86     //AliITSv11GeometrySupport /fSupgeom;  //Support Geometry
87
88     ClassDef(AliITSv11,1)  // ITS version 11 
89 };
90  
91 #endif