EMCAL in
[u/mrichter/AliRoot.git] / ITS / AliITSv3.h
1 #ifndef ALIITSV3_H
2 #define ALIITSV3_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 /////////////////////////////////////////////////////////
9 //  Manager and hits classes for set: ITS version 3    //
10 /////////////////////////////////////////////////////////
11  
12 #include "AliITS.h"
13
14 class AliITSv3 : public AliITS {
15
16  public:
17     AliITSv3();
18     AliITSv3(const char *name, const char *title);
19     AliITSv3(const AliITSv3 &source); // copy constructor
20     AliITSv3& operator=(const AliITSv3 &source); // assignment operator
21     virtual       ~AliITSv3() ;
22     virtual void   BuildGeometry();
23     virtual void   CreateGeometry();
24     virtual void   CreateMaterials();
25     virtual void   Init();   
26     virtual Int_t  IsVersion() const {
27       // returns the ITS version number 
28       return 3;
29     }
30     virtual void   StepManager();
31     virtual void   SetWriteDet(Bool_t det=kTRUE){ // set .det write
32                                                  fGeomDetOut = det;}
33     virtual void   SetWriteDet(const char *f){ // set write file
34                                      strncpy(fWrite,f,60);fGeomDetOut = kTRUE;}
35     virtual void   SetReadDet(Bool_t det=kTRUE){ //set .det read
36                                                 fGeomDetIn = det;}
37     virtual void   SetReadDet(const char *f){ // set read file
38                                        strncpy(fRead,f,60);fGeomDetIn = kTRUE;}
39     virtual void   SetEUCLID(Bool_t euclid=kTRUE){ // set write Euclid file
40                                                   fEuclidOut = euclid;}
41     virtual void   SetEUCLIDFileName(const char *f){ // set write file
42                              fEuclidGeometry=f;fEuclidOut = kTRUE;}
43     virtual void   SetMinorVersion(Int_t v){ // Choose between existing minor versions
44         fMinorVersion = 1;
45         if(v==1) fMinorVersion = 1;
46         else if(v==2) fMinorVersion = 2;
47         else Warning("SetMinorVersion","Undefined Minor Version setting =1");}
48     virtual Bool_t GetEUCLID(){return fEuclidOut;}// returns value Euclid flag.
49     virtual const char  *GetEULIIDFileName() const{ // return .euc file name
50                                        return fEuclidGeometry.Data();}
51     virtual Bool_t GetWriteDet() { // returns value GeomDetOut flag.
52                                   return fGeomDetOut;}
53     virtual Bool_t GetReadDet() { // returns value GeomDetIn flag.
54                                  return fGeomDetIn;}
55     virtual char  *GetReadDetFileName(){ // return .det read file name
56                   if(fRead[0]!='\0') return fRead; else return fEuclidGeomDet;}
57     virtual char  *GetWriteDetFileName(){ // return .det write file name
58                 if(fWrite[0]!='\0') return fWrite; else return fEuclidGeomDet;}
59     virtual Int_t GetMajorVersion(){// return Major Version Number
60         return fMajorVersion;}
61     virtual Int_t GetMinorVersion(){// return Major Version Number
62         return fMinorVersion;}
63
64  private:
65     void InitAliITSgeom();
66
67     // TString fEuclidGeomtery,fEuclidMaterial defined in AliModule.
68     Bool_t fEuclidOut;        // Flag to write geometry in euclid format
69     Bool_t fGeomDetOut;       // Flag to write .det file out
70     Bool_t fGeomDetIn;        // Flag to read .det file or directly from Geat.
71     Int_t  fMajorVersion;     // Major version number == IsVersion
72     Int_t  fMinorVersion;     // Minor version number
73     char   fEuclidGeomDet[60];// file where detector transormation are define.
74     char   fRead[60];         //! file name to read .det file
75     char   fWrite[60];        //! file name to write .det file
76    
77     ClassDef(AliITSv3,1)//Hits manager for set:ITS version 3, TP detailed geometry
78 };
79  
80 #endif
81