Updates concerning the geometry: versioning system, new V11hybrid version, bug fixes...
[u/mrichter/AliRoot.git] / ITS / AliITSv11.h
1 #ifndef ALIITSV11_H
2 #define ALIITSV11_H
3 /* Copyright(c) 2007-2008, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5 //************************************************************************
6 //
7 //                 Inner Traking System geometry v11
8 //
9 //  Based on ROOT geometrical modeler
10 //
11 // B. Nilsen, L. Gaudichet
12 //************************************************************************
13 #include "AliITSInitGeometry.h"
14 #include "AliITS.h"
15 class AliITSv11GeometrySPD;
16 class AliITSv11GeometrySDD;
17 class AliITSv11GeometrySupport;
18
19 class AliITSv11 : public AliITS {
20
21  public:
22     AliITSv11();
23     AliITSv11(const char *name, const char *title);
24     AliITSv11(Int_t debugITS, Int_t debugSPD = 0, Int_t debugSDD = 0,
25              Int_t debugSSD = 0, Int_t debugSUP = 0);
26     virtual       ~AliITSv11() ;
27     virtual void   BuildGeometry();
28     virtual void   CreateGeometry();
29     virtual void   CreateMaterials();
30     virtual void   Init(); 
31     virtual void   SetDefaults();
32     virtual void   DrawModule() const;
33     virtual void   StepManager();
34     //virtual AliITSv11GeometrySPD*     GetSPDGeometry(){return fSPDgeom;}
35     virtual AliITSv11GeometrySDD*    GetSDDGeometry(){return fSDDgeom;}
36     //virtual AliITSv11GeometrySupport* GetSupGeometry(){return fSupgeom;}
37     virtual Int_t  IsVersion() const { return kv11;}  // ITS version number 
38     virtual Int_t  GetMajorVersion() const {// return Major Version Number
39                     return fMajorVersion;}
40     virtual Int_t  GetMinorVersion() const {// return Major Version Number
41                     return fMinorVersion;}
42
43
44     virtual void   SetWriteDet(Bool_t det=kTRUE){ // set .det write
45                                                  fGeomDetOut = det;}
46     virtual void   SetWriteDet(const char *f){ // set write file
47                                      strncpy(fWrite,f,60);fGeomDetOut = kTRUE;}
48     virtual void   SetReadDet(Bool_t det=kTRUE){ //set .det read
49                                                 fGeomDetIn = det;}
50     virtual void   SetReadDet(const char *f){ // set read file
51                                        strncpy(fRead,f,60);fGeomDetIn = kTRUE;}
52     virtual void   SetEUCLIDFileName(const char *f){ // set write file
53                              fEuclidGeometry=f;fEuclidOut = kTRUE;}
54     virtual void   SetMinorVersion(Int_t v=0){ // Choose between existing minor versions
55                    fMinorVersion = v;}
56
57     virtual void SetDensityServicesByThickness(){// uses services density
58         // calculation based on the thickness of the services.
59         fByThick = kTRUE;}
60     virtual void SetDensityServicesByMass(){// uses services density
61         // calculation based on the Mass of the services.
62         fByThick = kFALSE;}
63     virtual Bool_t GetEUCLID() const {return fEuclidOut;}// returns value Euclid flag.
64     virtual const char  *GetEULIIDFileName() const{ // return .euc file name
65                                        return fEuclidGeometry.Data();}
66     virtual Bool_t GetWriteDet() const { // returns value GeomDetOut flag.
67                                   return fGeomDetOut;}
68     virtual Bool_t GetReadDet() const { // returns value GeomDetIn flag.
69                                  return fGeomDetIn;}
70     virtual char  *GetReadDetFileName(){ // return .det read file name
71                   if(fRead[0]!='\0') return fRead; else return fEuclidGeomDet;}
72     virtual char  *GetWriteDetFileName(){ // return .det write file name
73                 if(fWrite[0]!='\0') return fWrite; else return fEuclidGeomDet;}
74
75
76  private:
77     AliITSv11(const AliITSv11 &source);            // copy constructor
78     AliITSv11& operator=(const AliITSv11 &source); // assignment operator
79     //void InitAliITSgeom();
80
81     Bool_t fGeomDetOut;       // Flag to write .det file out
82     Bool_t fGeomDetIn;        // Flag to read .det file or directly from Geat.
83     Bool_t fByThick;          // Flag to use services materials by thickness
84                                 // ture, or mass false.
85     Int_t  fMajorVersion;     // Major version number == IsVersion
86     Int_t  fMinorVersion;     // Minor version number
87     char   fEuclidGeomDet[60];// file where detector transormation are define.
88     char   fRead[60];         //! file name to read .det file
89     char   fWrite[60];        //! file name to write .det file
90     //AliITSv11GeometrySPD *fSPDgeom;      //SPD Geometry
91     AliITSv11GeometrySDD *fSDDgeom;      //! SDD Geometry
92     //AliITSv11GeometrySupport /fSupgeom;  //Support Geometry
93     AliITSInitGeometry fIgm; //! Geometry initlization object
94
95     ClassDef(AliITSv11,1)  // ITS version 11 
96 };
97  
98 #endif