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