]>
Commit | Line | Data |
---|---|---|
ba030c0e | 1 | #ifndef ALI_MUON_V2_H |
2 | #define ALI_MUON_V2_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 | // Authors: David Guez, Ivana Hrivnacova, Marion MacCormick; IPN Orsay | |
9 | // | |
10 | // Class AliMUONv2 | |
11 | // --------------- | |
12 | // Inherits from AliMUONv1 but with a more detailed | |
13 | // geometrical description of station 1 | |
14 | ||
15 | #include <map> | |
16 | ||
17 | #include "AliMUONv1.h" | |
18 | #include "AliMUONSt1SpecialMotif.h" | |
19 | ||
20 | #include <TVector2.h> | |
21 | #include <TVector3.h> | |
22 | ||
23 | typedef Float_t GReal_t; // for AliGeant3 | |
24 | //typedef Double_t GReal_t; // for VirtualMC | |
25 | ||
26 | class TTree; | |
27 | class MSector; | |
28 | using std::map; | |
29 | ||
30 | ||
31 | class AliMUONv2 : public AliMUONv1 { | |
32 | public: | |
33 | AliMUONv2(); | |
34 | AliMUONv2(const char* name, const char* title); | |
35 | AliMUONv2(const AliMUONv2& rMUON); | |
36 | virtual ~AliMUONv2(); | |
37 | ||
38 | virtual Int_t IsVersion() const; | |
39 | virtual void CreateGeometry(); | |
40 | virtual void CreateMaterials(); | |
41 | ||
42 | protected: | |
43 | // Copy Operator | |
44 | AliMUONv2& operator = (const AliMUONv2& rhs); | |
45 | ||
46 | private: | |
47 | ||
48 | typedef map< Int_t , AliMUONSt1SpecialMotif > TSpecialMap; | |
49 | static const GReal_t fgkHzPadPlane; // Pad plane | |
50 | static const GReal_t fgkHzFoam; // Foam of mechanicalplane | |
51 | static const GReal_t fgkHzFR4; // FR4 of mechanical plane | |
52 | static const GReal_t fgkHzSnPb; //Pad/Kapton connection (66 pt) | |
53 | static const GReal_t fgkHzKapton; //Kapton | |
54 | static const GReal_t fgkHzBergPlastic; //Berg connector | |
55 | static const GReal_t fgkHzBergCopper; //Berg connector (80 pt) | |
56 | static const GReal_t fgkHzDaughter; //Daughter board | |
57 | static const GReal_t fgkHzGas ; // ArCO2 Gas | |
58 | ||
59 | GReal_t totalHzPlane() const ; //Total mechanical plane half Size | |
60 | GReal_t totalHzDaughter() const ; //Total daughter plane half Size | |
61 | GReal_t totalHz() const ; //Total plane half Size | |
62 | ||
63 | static const GReal_t fgkHxHole; | |
64 | static const GReal_t fgkHyHole; | |
65 | static const GReal_t fgkHxBergPlastic; | |
66 | static const GReal_t fgkHyBergPlastic; | |
67 | static const GReal_t fgkHxBergCopper; | |
68 | static const GReal_t fgkHyBergCopper; | |
69 | static const GReal_t fgkHxKapton; | |
70 | static const GReal_t fgkHyKapton; | |
71 | static const GReal_t fgkHxDaughter; | |
72 | static const GReal_t fgkHyDaughter; | |
73 | static const GReal_t fgkOffsetX; | |
74 | static const GReal_t fgkOffsetY; | |
75 | static const GReal_t fgkDeltaFilleEtamX; | |
76 | static const GReal_t fgkDeltaFilleEtamY; | |
77 | static const GReal_t fgkHxQuadrant; | |
78 | static const GReal_t fgkHyQuadrant; | |
79 | static const GReal_t fgkMotherIR; | |
80 | static const GReal_t fgkMotherOR; | |
81 | static const GReal_t fgkMotherThick; | |
82 | static const GReal_t fgkMotherPhiL; | |
83 | static const GReal_t fgkMotherPhiU; | |
84 | ||
85 | static const char* fgkHoleName; | |
86 | static const char* fgkQuadrantName; | |
87 | static const char* fgkDaughterName; | |
88 | static const char fgkFoamLayerSuffix; | |
89 | ||
90 | ||
91 | void CreateHole(); | |
92 | void CreateDaughterBoard(); | |
93 | void CreateFrame(Int_t chamber); | |
94 | void CreateQuadrant(Int_t chamber); | |
95 | void CreatePlaneBox(const char* name,const TVector2& dimensions); | |
96 | void CreatePlaneSegment(const char* name,const TVector2& dimensions | |
97 | ,Int_t nofHoles); | |
98 | void CreateDaughterSegment(const char* name,const TVector2& dimensions | |
99 | ,Int_t nofHoles); | |
100 | void PlaceSector(MSector* sector,TSpecialMap specialMap | |
101 | ,const TVector3& where,Int_t chamber); | |
102 | TString QuadrantName(Int_t chamber); | |
103 | Int_t fIdSens; // Sensitive volume identifier | |
104 | ||
105 | ||
106 | ClassDef(AliMUONv2,1) // MUON Detector base class | |
107 | }; | |
108 | ||
109 | // inline functions | |
110 | ||
111 | inline Int_t AliMUONv2::IsVersion () const | |
112 | { return 2; } | |
113 | inline GReal_t AliMUONv2::totalHzPlane() const | |
114 | { return fgkHzPadPlane + fgkHzFoam + fgkHzFR4;} | |
115 | inline GReal_t AliMUONv2::totalHzDaughter() const | |
116 | { return fgkHzBergPlastic + fgkHzDaughter;} | |
117 | inline GReal_t AliMUONv2::totalHz() const | |
118 | { return totalHzPlane() + totalHzDaughter();} | |
119 | inline TString AliMUONv2::QuadrantName(Int_t chamber) | |
120 | {return Form("%s%d",fgkQuadrantName,chamber);} | |
121 | ||
122 | ||
123 | #endif //ALI_MUON_V2_H |