]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSvBeamTestITS04.h
New detector numbering scheme (common for DAQ/HLT/Offline). All the subdetectors...
[u/mrichter/AliRoot.git] / ITS / AliITSvBeamTestITS04.h
1 #ifndef ALIITSVBEAMTESTITS04_H
2 #define ALIITSVBEAMTESTITS04_H
3
4 ////////////////////////////////////////////////
5 // ITS geometry class and step manager for the//
6 //   integrated ITS test beam of Nov. 04      //
7 ////////////////////////////////////////////////
8
9 #include "AliITS.h"
10
11 class TGeoVolume;
12
13 class AliITSvBeamTestITS04 : public AliITS {
14  
15  public:
16
17
18   AliITSvBeamTestITS04();
19   AliITSvBeamTestITS04(const char* name,const char *title);
20   AliITSvBeamTestITS04(const AliITSvBeamTestITS04 &source); // Copy constructor
21   AliITSvBeamTestITS04& operator=(const AliITSvBeamTestITS04 &source); // = operator
22   virtual ~AliITSvBeamTestITS04();
23
24   virtual void SetNumberOfSPD(Int_t nSPD) {fNspd=nSPD;}
25   virtual void SetNumberOfSDD(Int_t nSDD) {fNsdd=nSDD;}
26   virtual void SetNumberOfSSD(Int_t nSSD) {fNssd=nSSD;}
27
28   Int_t GetNSPD() const {return fNspd;}
29   Int_t GetNSDD() const {return fNsdd;}
30   Int_t GetNSSD() const {return fNssd;}
31
32   Int_t GetNumberOfSubDet(const TString& det) const;
33
34   virtual void CreateGeometry();
35   virtual void CreateMaterials();
36   virtual void InitAliITSgeom();
37   virtual void Init();
38   virtual void SetDefaults();
39   virtual void StepManager();
40   
41   //for writing out geometry
42    virtual void   SetWriteDet(Bool_t det=kTRUE){fGeomDetOut = det;}// set .det write 
43    virtual void   SetWriteDet(const char *f){strncpy(fWrite,f,60);fGeomDetOut = kTRUE;}// set write file 
44
45
46    //for reading geometry (JC)
47     
48   virtual void   SetReadDet(Bool_t det=kTRUE){fGeomDetIn = det;}//set .det read
49   virtual void   SetReadDet(const char *f){strncpy(fRead,f,60);fGeomDetIn = kTRUE;} // set read file
50                                     
51   
52  protected:
53   void AddSPDGeometry(TGeoVolume *moth) const;
54   void AddSDDGeometry(TGeoVolume *moth) const;
55   void AddSSDGeometry(TGeoVolume *moth) const;
56   Int_t GetCurrentLayLaddDet(Int_t &lay,Int_t &ladd, Int_t &det) const;
57
58   TGeoVolume *fITSmotherVolume;            //! ITS mother volume
59   static const Int_t fgkNumberOfSPD;       //number of SPD
60   static const Int_t fgkNumberOfSDD;       //number of SDD
61   static const Int_t fgkNumberOfSSD;       //number of SSD
62
63   static const char*    fgSPDsensitiveVolName;  //SPD volume name
64   static const Double_t fgkSPDthickness;        //SPD thickness
65   static const Double_t fgkSPDwidth;            //SPD width
66   static const Double_t fgkSPDlength;           //SPD length
67   static const Double_t fgkSPDthickSens;        //SPD sensitive thickness
68   static const Double_t fgkSPDwidthSens;        //SPD sensitive width
69   static const Double_t fgkSPDlengthSens;       //SPD sensitive length
70   static const Double_t fgkSPD0y;               //SPD position
71   static const Double_t fgkSPD1y;               //SPD position
72
73   static const char*    fgSDDsensitiveVolName;  //SDD volume name
74   static const Double_t fgkSDDthickness;        //SDD thickness
75   static const Double_t fgkSDDwidth;            //SDD width
76   static const Double_t fgkSDDlength;           //SDD length
77   static const Double_t fgkSDDthickSens;        //SDD sensitive thickness
78   static const Double_t fgkSDDwidthSens;        //SDD sensitive width
79   static const Double_t fgkSDDlengthSens;       //SDD sensitive length
80   static const Double_t fgkSDD0y;               //SDD position
81   static const Double_t fgkSDD1y;               //SDD position
82   
83   static const char*    fgSSDsensitiveVolName;   //SSD volume name
84   static const Double_t fgkSSDthickness;         //SSD thickness
85   static const Double_t fgkSSDwidth;             //SSD width
86   static const Double_t fgkSSDlength;            //SSD length
87   static const Double_t fgkSSDthickSens;         //SSD sensitive thickness
88   static const Double_t fgkSSDwidthSens;         //SSD sensitive width
89   static const Double_t fgkSSDlengthSens;        //SSD sensitive length
90   static const Double_t fgkSSD0y;                //SSD position
91   static const Double_t fgkSSD1y;                //SSD position
92
93   Int_t     fNspd;                    //Number of SPD modules
94   Int_t     fNsdd;                    //Number of SDD modules
95   Int_t     fNssd;                    //Number of SSD modules
96
97   //for writing out geometry
98    Bool_t fGeomDetOut;       // Flag to write .det file out 
99    Bool_t fGeomDetIn;        // Flag to read geometry file (JC)
100    char   fWrite[60];        //! file name to write .det file 
101    char   fRead[60];         // file name to read .det file (JC)
102    
103    ClassDef(AliITSvBeamTestITS04,2) 
104
105  };
106
107 #endif
108
109