]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONVGeometryBuilder.h
In stand-allone mode, pass stack to entries.
[u/mrichter/AliRoot.git] / MUON / AliMUONVGeometryBuilder.h
CommitLineData
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
18class TGeoTranslation;
19class TGeoRotation;
20class TGeoCombiTrans;
21class TObjArray;
22
23class AliMUONChamber;
24class AliMUONChamberGeometry;
25
26class 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