]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONSegmentation.h
New class - container/manager of geometry segmentations;
[u/mrichter/AliRoot.git] / MUON / AliMUONSegmentation.h
CommitLineData
fb921a27 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3
4// $Id$
5
6/// \ingroup geometry
7/// \class AliMUONSegmentation
8/// \brief Container class for modules segmentations
9///
10/// Author: Ivana Hrivnacova, IPN Orsay
11
12#ifndef ALI_MUON_SEGMENTATION_H
13#define ALI_MUON_SEGMENTATION_H
14
15#include <TObject.h>
16#include <TGeoMatrix.h>
17
18class TObjArray;
19
20class AliMpVSegmentation;
21
22class AliMUONGeometrySegmentation;
23class AliMUONVGeometryDESegmentation;
24
25class AliMUONSegmentation : public TObject
26{
27 public:
28 AliMUONSegmentation(Int_t nofModules);
29 AliMUONSegmentation();
30 virtual ~AliMUONSegmentation();
31
32 // methods
33 void AddDESegmentation(AliMUONVGeometryDESegmentation* segmentation);
34
35 void AddModuleSegmentation(Int_t moduleId, Int_t cathod,
36 AliMUONGeometrySegmentation* segmentation);
37 void Init();
38
39 //
40 // get methods
41 //
42
43 // Geometry segmentations
44 //
45 AliMUONGeometrySegmentation* GetModuleSegmentation(
46 Int_t moduleId, Int_t cathod, Bool_t warn = true) const;
47
48 AliMUONGeometrySegmentation* GetModuleSegmentationByDEId(
49 Int_t detElemId, Int_t cathod, Bool_t warn = true) const;
50
51 // DE segmentations
52 //
53 const AliMUONVGeometryDESegmentation* GetDESegmentation(
54 Int_t detElemId, Int_t cathod, Bool_t warn = true) const;
55
56 // Mapping segmentations
57 //
58 const AliMpVSegmentation* GetMpSegmentation(
59 Int_t detElemId, Int_t cathod, Bool_t warn = true) const;
60
61 // DE properties
62 //
63 Bool_t HasDE(Int_t detElemId, Int_t cathod = 0) const;
64 TString GetDEName(Int_t detElemId, Int_t cathod = 0) const;
65
66 protected:
67 AliMUONSegmentation(const AliMUONSegmentation& right);
68 AliMUONSegmentation& operator = (const AliMUONSegmentation& right);
69
70 private:
71 // data members
72 TObjArray* fDESegmentations; // array of DE segmentations
73 TObjArray* fModuleSegmentations[2]; // array of module segmentations
74 // for two cathods
75
76 ClassDef(AliMUONSegmentation,1) // Container class for module segmentations
77};
78
79#endif //ALI_MUON_SEGMENTATION_H
80
81
82
83
84
85
86