]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSv11GeometrySPD.h
New geometry: SDD, cables and update on V11 (L. Gaudichet)
[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   $Id$
8  */
9 #include <AliITSv11Geometry.h>
10 class TGeoVolume;
11
12 class AliITSv11GeometrySPD : public AliITSv11Geometry {
13   public:
14     AliITSv11GeometrySPD();
15     AliITSv11GeometrySPD(Int_t debug);
16     virtual ~AliITSv11GeometrySPD(){};
17     //
18     virtual TGeoVolume* CenteralSPD(TGeoVolume *moth);
19     //
20     // Create figures for the documentation of this class
21     virtual void CreateFigure0(const Char_t *filepath="",
22                                const Char_t *type="gif");
23     virtual void CreateFigureLadder(const Char_t*filepath="",
24                                     const Char_t* type="gif");
25     //
26     virtual const char* GetSensitivevolumeName() const{
27         //Get Sensitive volume name
28         return fSPDSensitiveVolumeName.Data();}
29     virtual void SetSensitivevolumeName(const Char_t 
30                 *n="ITSSPDDetectorSensitiveVolume"){//Set Sensitive volume name
31                 fSPDSensitiveVolumeName=n;}
32   private:
33     void SPDsectorShape(Int_t n,const Double_t *xc,const Double_t *yc,
34           const Double_t *r,const Double_t *ths,const Double_t *the,Int_t npr,
35                         Int_t &m,Double_t **xp,Double_t **yp);
36     const char* CreateSensitivevolumeName(const char* app) const{
37         //Get Sensitive volume name
38         char *a = new char[fSPDSensitiveVolumeName.Length()+strlen(app)+1]; 
39         strcpy(a,fSPDSensitiveVolumeName.Data());return strcat(a,app);}
40     //
41     TGeoVolume* CarbonFiberSector(TGeoVolume *moth);
42     TGeoVolume* CreateHalfStaveGroundFoil();
43     TGeoVolume* CreateSPDLadder();
44
45   private:
46     // Posible Variables
47     TString fSPDSensitiveVolumeName; // ITS SPD sensitive volume name
48     Double_t fThickDetector; // Detector thickness
49     Double_t fThickChip;     // Read out Chip thickness
50     // Stave
51     // Grounding Foil
52     const Double_t fkGrdFoilThick        ;//!  0.05*fgkmm;
53     const Double_t fkGrdFoilWidthA       ;//! 15.95*fgkmm;
54     const Double_t fkGrdFoilWidthC       ;//!  4.4*fgkmm;
55     const Double_t fkGrdFoilLngA         ;//!139.89*fgkmm;
56     const Double_t fkGrdFoilLngB         ;//! 11.55*fgkmm;
57     const Double_t fkGrdFoilLngC         ;//! 82.0*fgkmm;
58     const Int_t    fkGrdFoilNholesAB     ;//!5;
59     const Double_t fkGrdFoilHoleCenterAB ;//!  7.8*fgkmm;
60     const Double_t fkGrdFoilHoleLengthAB ;//! 12.0*fgkmm;
61     const Double_t fkGrdFoilHoleWidthAB  ;//!  7.5*fgkmm;
62     const Double_t fkGrdFoilHoleSpacingAB;//! 14.0*fgkmm;
63     const Double_t fkGrdFoilHoleStartA   ;//!  1.36*fgkmm;
64     const Double_t fkGrdFoilHoleStartB   ;//! 73.08*fgkmm;
65     // Ladder
66     const Int_t    fkLadNChips        ;//!5;
67     const Double_t fkLadChipWidth     ;//!15950.0*fgkmicron;
68     const Double_t fkLadChipHight     ;//!  150.0*fgkmicron;
69     const Double_t fkLadChipLength    ;//!13490.0*fgkmicron;
70     const Double_t fkLadGlue0Thick    ;//!    0.100*fgkmm;
71     const Double_t fkLadBumpBondThick ;//!   30.0*fgkmicron;
72     const Double_t fkLadDetectorWidth ;//!13700.0*fgkmicron;
73     const Double_t fkLadDetectorThick ;//!  200.0*fgkmicron;
74     const Double_t fkLadDetectorLength;//!70710.0*fgkmicron;
75     const Double_t fkLadSensDetWidth  ;//! 1280.0*fgkmicron;
76     const Double_t fkLadSensDetThick  ;//!  200.0*fgkmicron;
77     const Double_t fkLadSensDetLength ;//!69490.0*fgkmicron;
78     const Double_t fkLadChipSpacing0  ;//!  610.0*fgkmicron;
79     const Double_t fkLadChipSpacing1  ;//! (2.*fkLadChipSpacing0+
80     //    ((Double_t)fkLadNChips)*fkLadChipLength)/((Double_t)(fkLadNChips-1));
81     //
82
83     ClassDef(AliITSv11GeometrySPD,1) // ITS v11 Centeral SPD geometry
84 };
85
86 #endif