1 #ifndef ALI_MP_SEGMENTATION_H
2 #define ALI_MP_SEGMENTATION_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
8 // $MpId: AliMpSegmentation.h,v 1.7 2006/05/24 13:58:16 ivana Exp $
10 /// \ingroup management
11 /// \class AliMpSegmentation
12 /// \brief Singleton container class for mapping segmentations
14 /// It provides access to mapping segmentations based on the
15 /// AliMpVSegmentation interface. \n
16 /// Mapping segmentations for all detection elements
17 /// are created at the first call to AliMpSegmentation::Instance().
18 /// The class is a singleton, it has all constructors
19 /// private, except for the special constructor for Root I/O.
21 /// \author Ivana Hrivnacova, IPN Orsay; Laurent Aphecetche, SUBATECH
27 #ifndef ALI_MP_STRING_OBJ_MAP_H
28 # include "AliMpStringObjMap.h"
31 #ifndef ALI_MP_EX_MAP_H
32 # include "AliMpExMap.h"
35 #ifndef ALI_MP_CATHOD_TYPE_H
36 # include "AliMpCathodType.h"
40 class AliMpVSegmentation;
41 class AliMpSegmentation;
42 class AliMpSlatMotifMap;
43 class AliMpDataStreams;
46 class AliMpSegmentation : public TObject {
49 AliMpSegmentation(TRootIOCtor* /*ioCtor*/);
50 virtual ~AliMpSegmentation();
53 static AliMpSegmentation* Instance(Bool_t warn = true);
54 static AliMpSegmentation* ReadData(const AliMpDataStreams& dataStreams,
58 const AliMpVSegmentation* GetMpSegmentation(
59 Int_t detElemId, AliMp::CathodType cath,
60 Bool_t warn = true) const;
62 const AliMpVSegmentation* GetMpSegmentationByElectronics(
63 Int_t detElemId, Int_t elCardID,
64 Bool_t warn = true) const;
67 AliMpSegmentation(const AliMpDataStreams& dataStreams);
69 AliMpSegmentation(const AliMpSegmentation& rhs);
71 AliMpSegmentation& operator=(const AliMpSegmentation& rhs);
73 AliMpVSegmentation* CreateMpSegmentation(
74 Int_t detElemId, AliMp::CathodType cath);
76 AliMpExMap* FillElCardsMap(Int_t detElemId);
78 // static data members
79 static AliMpSegmentation* fgInstance; ///< Singleton instance
82 const AliMpDataStreams& fDataStreams; //!< Data streams
83 AliMpDEStore* fDetElements; ///< Detection element store
84 AliMpStringObjMap fMpSegmentations;///< Map of mapping segmentations to DE seg names
85 AliMpExMap fElCardsMap; ///< Map of el. cards IDs to segmentations
86 AliMpSlatMotifMap* fSlatMotifMap; ///< Map of motif, motifTypes to avoid duplications and allow proper deletion
88 ClassDef(AliMpSegmentation,3) // The factory for building mapping segmentations
91 #endif //ALI_MP_SEGMENTATION_H