Line data Source code
1 : #ifndef ALITOFV6T0_H
2 : #define ALITOFV6T0_H
3 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 :
6 : //_________________________________________________________________________//
7 : // //
8 : // Implementation version v6 of TOF Manager class //
9 : // FULL COVERAGE VERSION + OPTION FOR PHOS HOLES //
10 : // //
11 : // -- Authors: G. Cara Romeo, A. De Caro //
12 : // //
13 : //_________________________________________________________________________//
14 :
15 : #include "AliTOF.h"
16 :
17 :
18 : class AliTOFv6T0 : public AliTOF {
19 :
20 : public:
21 : AliTOFv6T0();
22 : AliTOFv6T0(const char *name, const char *title);
23 78 : virtual ~AliTOFv6T0() {};
24 : virtual void CreateGeometry();
25 : virtual void CreateMaterials();
26 : virtual void Init();
27 12 : virtual Int_t IsVersion() const {return 8;}
28 : virtual void AddAlignableVolumes() const;
29 : virtual void TOFpc(Float_t xtof, Float_t ytof, Float_t zlenA);
30 0 : virtual void TOFpc(Float_t, Float_t, Float_t, Float_t) {};
31 0 : virtual void TOFpc(Float_t, Float_t, Float_t, Float_t, Float_t, Float_t) {};
32 : virtual void StepManager();
33 :
34 : protected:
35 :
36 : void MaterialMixer(Float_t * p, const Float_t * const a,
37 : const Float_t * const m, Int_t n) const;
38 :
39 : private:
40 :
41 : void CreateModules(Float_t xtof, Float_t ytof, Float_t zlenA,
42 : Float_t xFLT, Float_t yFLT, Float_t zFLTA) const;
43 : void MakeStripsInModules(Float_t ytof, Float_t zlenA) const;
44 : void CreateModuleCovers(Float_t xtof, Float_t zlenA) const;
45 : void CreateBackZone(Float_t xtof, Float_t ytof, Float_t zlenA) const;
46 : void MakeFrontEndElectronics(Float_t xtof) const;
47 : void MakeFEACooling(Float_t xtof) const;
48 : void MakeNinoMask(Float_t xtof) const;
49 : void MakeSuperModuleCooling(Float_t xtof, Float_t ytof, Float_t zlenA) const;
50 : void MakeSuperModuleServices(Float_t xtof, Float_t ytof, Float_t zlenA) const;
51 : void MakeModulesInBTOFvolumes(Float_t ytof, Float_t zlenA) const;
52 : void MakeCoversInBTOFvolumes() const;
53 : void MakeBackInBTOFvolumes(Float_t ytof) const;
54 : void MakeReadoutCrates(Float_t ytof) const;
55 :
56 : Int_t fIdFTOA; // FTOA volume identifier (outer plate A)
57 : Int_t fIdFTOB; // FTOB volume identifier (outer plate B)
58 : Int_t fIdFTOC; // FTOC volume identifier (outer plate C)
59 : Int_t fIdFLTA; // FLTA volume identifier (inner plate A)
60 : Int_t fIdFLTB; // FLTB volume identifier (inner plate B)
61 : Int_t fIdFLTC; // FLTC volume identifier (inner plate C)
62 :
63 : //private:
64 :
65 : static const Bool_t fgkFEAwithMasks[18]; // Selecting TOF sectors containing FEA cooling masks
66 :
67 : static const Float_t fgkModuleWallThickness; // wall thickness (cm)
68 : static const Float_t fgkInterCentrModBorder1; // 1st distance of
69 : // border between
70 : // central and
71 : // intermediate
72 : // modules respect to
73 : // the central module
74 : // centre (cm)
75 : static const Float_t fgkInterCentrModBorder2; // 2nd distance of
76 : // border between the
77 : // central and
78 : // intermediate
79 : // modules respect to
80 : // the central module
81 : // centre (cm)
82 : static const Float_t fgkExterInterModBorder1; // 1st distance of
83 : // border between the
84 : // intermediate and
85 : // external modules
86 : // respect to the
87 : // central module
88 : // centre (cm)
89 : static const Float_t fgkExterInterModBorder2; // 2nd distance of
90 : // border between the
91 : // intermediate and
92 : // external
93 : // modules respect to
94 : // the central module
95 : // centre (cm)
96 : /*
97 : static const Float_t fgkLengthInCeModBorder; // height of border
98 : // between the central
99 : // and intermediate
100 : // modules (cm)
101 : */
102 : static const Float_t fgkLengthInCeModBorderU; // height of upper border
103 : // between the central
104 : // and intermediate
105 : // modules (cm)
106 : static const Float_t fgkLengthInCeModBorderD; // height of lower border
107 : // between the central
108 : // and intermediate
109 : // modules (cm)
110 : static const Float_t fgkLengthExInModBorder; // height of border
111 : // between the
112 : // intermediate and
113 : // external modules
114 : // (cm)
115 : static const Float_t fgkModuleCoverThickness; // thickness of cover
116 : // modules zone (cm)
117 : static const Float_t fgkFEAwidth1; // mother volume width of each of
118 : // two external FEA in a
119 : // supermodule (cm)
120 : static const Float_t fgkFEAwidth2; // mother volume width of two
121 : // internal FEA in a supermodule
122 : // (cm)
123 : static const Float_t fgkSawThickness; // services alluminium wall
124 : // thickness (cm)
125 : static const Float_t fgkCBLw; // cables&tubes block width (cm)
126 : static const Float_t fgkCBLh1; // min. height of cables&tubes block
127 : // (cm)
128 : static const Float_t fgkCBLh2; // max. height of cables&tubes block
129 : // (cm)
130 : static const Float_t fgkBetweenLandMask; // distance between the L
131 : // element and the Nino
132 : // mask (cm)
133 : static const Float_t fgkAl1parameters[3]; // (cm)
134 : static const Float_t fgkAl2parameters[3]; // (cm)
135 : static const Float_t fgkAl3parameters[3]; // (cm)
136 : static const Float_t fgkRoof1parameters[3]; // (cm)
137 : static const Float_t fgkRoof2parameters[3]; // (cm)
138 : static const Float_t fgkFEAparameters[3]; // (cm)
139 : //static const Float_t fgkFCAparameters[3]; // (cm)
140 : static const Float_t fgkBar[3]; // (cm)
141 : static const Float_t fgkBar1[3]; // (cm)
142 : static const Float_t fgkBar2[3]; // (cm)
143 : static const Float_t fgkBarS[3]; // (cm)
144 : static const Float_t fgkBarS1[3]; // (cm)
145 : static const Float_t fgkBarS2[3]; // (cm)
146 :
147 16534 : ClassDef(AliTOFv6T0,1) //Time Of Flight version 6
148 : };
149 :
150 : #endif /* ALITOFV6T0_H */
|