]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONSegmentation.h
Adding AliMUONGeometryMisAligner
[u/mrichter/AliRoot.git] / MUON / AliMUONSegmentation.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
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
18 class TObjArray;
19
20 class AliMpVSegmentation;
21
22 class AliMUONGeometrySegmentation;
23 class AliMUONVGeometryDESegmentation;
24
25 class 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