]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TOF/AliTOFv6T0.h
c1b15e5de12cf4f78003123a843f1f9182cddb0c
[u/mrichter/AliRoot.git] / TOF / AliTOFv6T0.h
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   virtual ~AliTOFv6T0() {};
24   virtual void   CreateGeometry();
25   virtual void   CreateMaterials();
26   virtual void   Init();
27   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   virtual void   TOFpc(Float_t, Float_t, Float_t, Float_t) {};
31   virtual void   TOFpc(Float_t, Float_t, Float_t, Float_t, Float_t, Float_t) {};
32   virtual void   StepManager();
33   virtual void   DrawModule() const;
34   virtual void   DrawDetectorModules() const;
35   virtual void   DrawDetectorStrips() const;
36  
37  protected:
38
39   void MaterialMixer(Float_t* p,Float_t* a,Float_t* m,Int_t n) const;
40
41 private:
42
43   void CreateModules(Float_t xtof, Float_t ytof, Float_t zlenA,
44                      Float_t xFLT, Float_t yFLT, Float_t zFLTA) const;
45   void MakeStripsInModules(Float_t ytof, Float_t zlenA) const;
46   void CreateModuleCovers(Float_t xtof, Float_t zlenA) const;
47   void CreateBackZone(Float_t xtof, Float_t ytof, Float_t zlenA) const;
48   void MakeFrontEndElectronics(Float_t xtof) const;
49   void MakeFEACooling(Float_t xtof) const;
50   void MakeNinoMask(Float_t xtof) const;
51   void MakeSuperModuleCooling(Float_t xtof, Float_t ytof, Float_t zlenA) const;
52   void MakeSuperModuleServices(Float_t xtof, Float_t ytof, Float_t zlenA) const;
53   void MakeModulesInBTOFvolumes(Float_t ytof, Float_t zlenA) const;
54   void MakeCoversInBTOFvolumes() const;
55   void MakeBackInBTOFvolumes(Float_t ytof) const;
56   void MakeReadoutCrates(Float_t ytof) const;
57
58   Int_t fIdFTOA; // FTOA volume identifier (outer plate A)
59   Int_t fIdFTOB; // FTOB volume identifier (outer plate B)
60   Int_t fIdFTOC; // FTOC volume identifier (outer plate C)
61   Int_t fIdFLTA; // FLTA volume identifier (inner plate A)
62   Int_t fIdFLTB; // FLTB volume identifier (inner plate B)
63   Int_t fIdFLTC; // FLTC volume identifier (inner plate C)
64
65   //private:
66
67   static const Bool_t fgkFEAwithMasks[18]; // Selecting TOF sectors containing FEA cooling masks
68
69   static const Float_t fgkModuleWallThickness;  // wall thickness (cm)
70   static const Float_t fgkInterCentrModBorder1; // 1st distance of
71                                                 // border between
72                                                 // central and
73                                                 // intermediate
74                                                 // modules respect to
75                                                 // the central module
76                                                 // centre (cm)
77   static const Float_t fgkInterCentrModBorder2; // 2nd distance of
78                                                 // border between the
79                                                 // central and
80                                                 // intermediate
81                                                 // modules respect to
82                                                 // the central module
83                                                 // centre (cm)
84   static const Float_t fgkExterInterModBorder1; // 1st distance of
85                                                 // border between the
86                                                 // intermediate and
87                                                 // external modules
88                                                 // respect to the
89                                                 // central module
90                                                 // centre (cm)
91   static const Float_t fgkExterInterModBorder2; // 2nd distance of
92                                                 // border between the
93                                                 // intermediate and
94                                                 // external
95                                                 // modules respect to
96                                                 // the central module
97                                                 // centre (cm)
98   /*
99   static const Float_t fgkLengthInCeModBorder;  // height of border
100                                                 // between the central
101                                                 // and intermediate
102                                                 // modules (cm)
103                                                 */
104   static const Float_t fgkLengthInCeModBorderU; // height of upper border
105                                                 // between the central
106                                                 // and intermediate
107                                                 // modules (cm)
108   static const Float_t fgkLengthInCeModBorderD; // height of lower border
109                                                 // between the central
110                                                 // and intermediate
111                                                 // modules (cm)
112   static const Float_t fgkLengthExInModBorder;  // height of border
113                                                 // between the
114                                                 // intermediate and
115                                                 // external modules
116                                                 // (cm)
117   static const Float_t fgkModuleCoverThickness; // thickness of cover
118                                                 // modules zone (cm)
119   static const Float_t fgkFEAwidth1; // mother volume width of each of
120                                      // two external FEA in a
121                                      // supermodule (cm)
122   static const Float_t fgkFEAwidth2; // mother volume width of two
123                                      // internal FEA in a supermodule
124                                      // (cm)
125   static const Float_t fgkSawThickness; // services alluminium wall
126                                         // thickness (cm)
127   static const Float_t fgkCBLw;  // cables&tubes block width (cm)
128   static const Float_t fgkCBLh1; // min. height of cables&tubes block
129                                  // (cm)
130   static const Float_t fgkCBLh2; // max. height of cables&tubes block
131                                  // (cm)
132   static const Float_t fgkBetweenLandMask; // distance between the L
133                                            // element and the Nino
134                                            // mask (cm)
135   static const Float_t fgkAl1parameters[3]; // (cm)
136   static const Float_t fgkAl2parameters[3]; // (cm)
137   static const Float_t fgkAl3parameters[3]; // (cm)
138   static const Float_t fgkRoof1parameters[3]; // (cm)
139   static const Float_t fgkRoof2parameters[3]; // (cm)
140   static const Float_t fgkFEAparameters[3]; // (cm)
141   //static const Float_t fgkFCAparameters[3]; // (cm)
142   static const Float_t fgkBar[3]; // (cm)
143   static const Float_t fgkBar1[3]; // (cm)
144   static const Float_t fgkBar2[3]; // (cm)
145   static const Float_t fgkBarS[3]; // (cm)
146   static const Float_t fgkBarS1[3]; // (cm)
147   static const Float_t fgkBarS2[3]; // (cm)
148
149   ClassDef(AliTOFv6T0,0)  //Time Of Flight version 6
150 };
151  
152 #endif /* ALITOFv6T0_H */