]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONVGeometryBuilder.h
Calculation of new variables needed for Non-id HBT added. (Z. Chajecki)
[u/mrichter/AliRoot.git] / MUON / AliMUONVGeometryBuilder.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 // $Id$
5 // Revision of includes 07/05/2004
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);
35     AliMUONVGeometryBuilder();
36     virtual ~AliMUONVGeometryBuilder();
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:
65     AliMUONVGeometryBuilder(const AliMUONVGeometryBuilder& rhs);
66
67     // operators  
68     AliMUONVGeometryBuilder& operator = (const AliMUONVGeometryBuilder& rhs);
69
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