1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
7 /// \class AliMUONSegmentation
8 /// \brief Container class for modules segmentations
10 /// It provides access to DE segmentations based on the
11 /// old AliSegmentation interface:
12 /// - DE segmentation (operating in local DE reference frame)
13 /// - module segmentation (operating in global reference frame)
15 /// As some detection elements are sharing the same objects
16 /// (AliMUONVGeometryDESegmentation),
17 /// all segmentations objects have to be always deleted
18 /// altogether via deleting this container object.
20 /// \author Ivana Hrivnacova, IPN Orsay
22 #ifndef ALI_MUON_SEGMENTATION_H
23 #define ALI_MUON_SEGMENTATION_H
26 #include <TGeoMatrix.h>
30 class AliMpVSegmentation;
32 class AliMUONGeometrySegmentation;
33 class AliMUONVGeometryDESegmentation;
35 class AliMUONSegmentation : public TObject
38 AliMUONSegmentation(Int_t nofModules);
39 AliMUONSegmentation();
40 virtual ~AliMUONSegmentation();
43 void AddDESegmentation(AliMUONVGeometryDESegmentation* segmentation);
45 void AddModuleSegmentation(Int_t moduleId, Int_t cathod,
46 AliMUONGeometrySegmentation* segmentation);
48 // This function should not be needed;
49 // the segmentations should be built in a valid state
56 // Geometry segmentations
59 AliMUONGeometrySegmentation* GetModuleSegmentationByDEId(
60 Int_t detElemId, Int_t cathod, Bool_t warn = true) const;
64 const AliMUONVGeometryDESegmentation* GetDESegmentation(
65 Int_t detElemId, Int_t cathod, Bool_t warn = true) const;
70 Bool_t HasDE(Int_t detElemId, Int_t cathod = 0) const;
71 TString GetDEName(Int_t detElemId, Int_t cathod = 0) const;
74 AliMUONSegmentation(const AliMUONSegmentation& right);
75 AliMUONSegmentation& operator = (const AliMUONSegmentation& right);
78 AliMUONGeometrySegmentation* GetModuleSegmentation(
79 Int_t moduleId, Int_t cathod, Bool_t warn = true) const;
82 TObjArray* fDESegmentations; ///< array of DE segmentations
83 TObjArray* fModuleSegmentations[2]; ///< \brief array of module segmentations
85 ClassDef(AliMUONSegmentation,2) // Container class for module segmentations
88 #endif //ALI_MUON_SEGMENTATION_H