]>
Commit | Line | Data |
---|---|---|
30178c30 | 1 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
2 | * See cxx source for full Copyright notice */ | |
3 | ||
d1cd2474 | 4 | // $Id$ |
30178c30 | 5 | // Revision of includes 07/05/2004 |
d1cd2474 | 6 | // |
7 | // Class AliMUONVGeometryBuilder | |
8 | // ----------------------------- | |
9 | // Abstract base class for geometry construction per chamber(s). | |
10 | // | |
11 | // Author: Ivana Hrivnacova, IPN Orsay | |
12 | ||
13 | #ifndef ALI_MUON_V_GEOMETRY_BUILDER_H | |
14 | #define ALI_MUON_V_GEOMETRY_BUILDER_H | |
15 | ||
16 | #include <TObject.h> | |
17 | ||
18 | class TGeoTranslation; | |
19 | class TGeoRotation; | |
20 | class TGeoCombiTrans; | |
21 | class TObjArray; | |
22 | ||
23 | class AliMUONChamber; | |
24 | class AliMUONChamberGeometry; | |
25 | ||
26 | class AliMUONVGeometryBuilder : public TObject | |
27 | { | |
28 | public: | |
29 | AliMUONVGeometryBuilder(AliMUONChamber* ch1, | |
30 | AliMUONChamber* ch2 = 0, | |
31 | AliMUONChamber* ch3 = 0, | |
32 | AliMUONChamber* ch4 = 0, | |
33 | AliMUONChamber* ch5 = 0, | |
34 | AliMUONChamber* ch6 = 0); | |
d1cd2474 | 35 | AliMUONVGeometryBuilder(); |
36 | virtual ~AliMUONVGeometryBuilder(); | |
d1cd2474 | 37 | |
38 | // methods | |
39 | virtual void CreateMaterials() {} // make = 0; ? | |
40 | // Function to be overriden in a concrete chamber/station | |
41 | // geometry builder class. | |
42 | // Only materials that are not defined in the common | |
43 | // functions should be defined here. | |
44 | virtual void CreateGeometry() = 0; | |
45 | // Function to be overriden in a concrete chamber/station | |
46 | // geometry builder class. | |
47 | // The geometry built there should not be placed | |
48 | // in ALIC; but all volumes going to ALIC | |
49 | // have to be added as envelopes to the chamber | |
50 | // geometries | |
51 | // (They will be then placed automatically | |
52 | // usind the provided transformation. | |
53 | virtual void SetTransformations() = 0; | |
54 | // Function to be overriden in a concrete chamber/station | |
55 | // geometry class. | |
56 | // The transformation of each chamber(s) wrt ALICE | |
57 | // should be defined and set to its geometry class. | |
58 | virtual void SetSensitiveVolumes() = 0; | |
59 | // Function to be overriden in a concrete chamber/station | |
60 | // geometry class. | |
61 | // The sensitive volumes Ids for each chamber | |
62 | // should be defined and set to its geometry class. | |
63 | ||
64 | protected: | |
30178c30 | 65 | AliMUONVGeometryBuilder(const AliMUONVGeometryBuilder& rhs); |
66 | ||
67 | // operators | |
68 | AliMUONVGeometryBuilder& operator = (const AliMUONVGeometryBuilder& rhs); | |
69 | ||
d1cd2474 | 70 | // methods |
71 | AliMUONChamber* GetChamber(Int_t chamberId) const; | |
72 | ||
73 | private: | |
74 | // data members | |
75 | TObjArray* fChambers; // the chambers which geometry will be built | |
76 | // by this builder | |
77 | ||
78 | ClassDef(AliMUONVGeometryBuilder,1) // MUON chamber geometry base class | |
79 | }; | |
80 | ||
81 | #endif //ALI_MUON_V_GEOMETRY_BUILDER_H |