Fixes to SPD and support geometry (B. Nilsen)
[u/mrichter/AliRoot.git] / ITS / AliITSv11GeometrySPD.h
1 #ifndef ALIITSV11GEOMETRYSPD_H
2 #define ALIITSV11GEOMETRYSPD_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /*
7   Class which defines the SPD v11 centeral geometry, defines the
8   materials/media used for this geometry and sets the related transport
9   parameters (GEANT3 types for the moment.
10  */
11
12 /*
13   $Id$
14  */
15 #include <TGeoManager.h>
16 #include <TVirtualMC.h>
17 #include <AliITSv11Geometry.h>
18
19 class TGeoVolume;
20
21 class AliITSv11GeometrySPD : public AliITSv11Geometry {
22   public:
23     // Default constructor
24     AliITSv11GeometrySPD():AliITSv11Geometry(){};
25     // Default constructor with debuging level switch
26     AliITSv11GeometrySPD(Int_t debug):AliITSv11Geometry(debug){};
27     // Destructor
28     virtual ~AliITSv11GeometrySPD(){};
29     // Creates SPD Sector geometry
30     virtual void SPDSector(TGeoVolume *moth,TGeoManager *mgr=gGeoManager);
31     // Creates SPD Carbon Fiber Sector only
32     virtual void CarbonFiberSector(TGeoVolume *moth,Double_t &xAAtubeCenter0,
33                                    Double_t &yAAtubeCenter0,
34                                    TGeoManager *mgr=gGeoManager);
35     // creates SPD Half Stave
36     virtual void HalfStave(TGeoVolume *moth,Double_t &thicknessAA,
37                            TGeoManager *mgr=gGeoManager);
38     //
39     // Creates standard figures for the documentation of this class
40     virtual void CreateFigure0(const Char_t *filepath="",
41                                const Char_t *type="gif",
42                                TGeoManager *mgr=gGeoManager);
43     // Defnes/creates SPD Centeral detector materials
44     virtual Int_t CreateSPDCenteralMaterials(Int_t &Medffset,Int_t &matOffset);
45     // Sets SPD Centeral, GEANT3 type, Tracking parameters
46     virtual void InitSPDCenteral(Int_t offset,TVirtualMC *mc=gMC);
47     //
48   private:
49     // Computes shape of the SPD Sector given specific inputs Internal use only
50     void SPDsectorShape(Int_t n,const Double_t *xc,const Double_t *yc,
51           const Double_t *r,const Double_t *ths,const Double_t *the,Int_t npr,
52                         Int_t &m,Double_t **xp,Double_t **yp);
53
54   private:
55     ClassDef(AliITSv11GeometrySPD,1) // ITS v11 Centeral SPD geometry
56 };
57
58 #endif