]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/mapping/AliMpSegmentation.h
Separating run-dependent mapping data from data, which are not
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpSegmentation.h
CommitLineData
69417637 1#ifndef ALI_MP_SEGMENTATION_H
2#define ALI_MP_SEGMENTATION_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7// $Id$
8// $MpId: AliMpSegmentation.h,v 1.7 2006/05/24 13:58:16 ivana Exp $
9
10/// \ingroup management
11/// \class AliMpSegmentation
12/// \brief Singleton container class for mapping segmentations
13///
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.
20///
21/// \author Ivana Hrivnacova, IPN Orsay; Laurent Aphecetche, SUBATECH
22
23#ifndef ROOT_TObject
24# include <TObject.h>
25#endif
26
27#ifndef ALI_MP_STRING_OBJ_MAP_H
28# include "AliMpStringObjMap.h"
29#endif
30
31#ifndef ALI_MP_EX_MAP_H
32# include "AliMpExMap.h"
33#endif
34
cddd101e 35#ifndef ALI_MP_CATHOD_TYPE_H
36# include "AliMpCathodType.h"
37#endif
38
24f9bd97 39class AliMpDEStore;
69417637 40class AliMpVSegmentation;
41class AliMpSegmentation;
dede1525 42class AliMpSlatMotifMap;
ab167304 43class AliMpDataStreams;
69417637 44class TRootIOCtor;
45
46class AliMpSegmentation : public TObject {
47
48 public:
49 AliMpSegmentation(TRootIOCtor* /*ioCtor*/);
50 virtual ~AliMpSegmentation();
51
52 // static methods
5f377a9a 53 static AliMpSegmentation* Instance(Bool_t warn = true);
ab167304 54 static AliMpSegmentation* ReadData(const AliMpDataStreams& dataStreams,
55 Bool_t warn = true);
69417637 56
57 // methods
58 const AliMpVSegmentation* GetMpSegmentation(
cddd101e 59 Int_t detElemId, AliMp::CathodType cath,
69417637 60 Bool_t warn = true) const;
61
62 const AliMpVSegmentation* GetMpSegmentationByElectronics(
63 Int_t detElemId, Int_t elCardID,
64 Bool_t warn = true) const;
65
66 private:
ab167304 67 AliMpSegmentation(const AliMpDataStreams& dataStreams);
f5671fc3 68 /// Not implemented
69417637 69 AliMpSegmentation(const AliMpSegmentation& rhs);
f5671fc3 70 /// Not implemented
69417637 71 AliMpSegmentation& operator=(const AliMpSegmentation& rhs);
72
73 AliMpVSegmentation* CreateMpSegmentation(
cddd101e 74 Int_t detElemId, AliMp::CathodType cath);
69417637 75
76 AliMpExMap* FillElCardsMap(Int_t detElemId);
77
78 // static data members
79 static AliMpSegmentation* fgInstance; ///< Singleton instance
80
81 // data members
ab167304 82 const AliMpDataStreams& fDataStreams; //!< Data streams
24f9bd97 83 AliMpDEStore* fDetElements; ///< Detection element store
ae505e9f 84 AliMpStringObjMap fMpSegmentations;///< Map of mapping segmentations to DE seg names
69417637 85 AliMpExMap fElCardsMap; ///< Map of el. cards IDs to segmentations
ab167304 86 AliMpSlatMotifMap* fSlatMotifMap; ///< Map of motif, motifTypes to avoid duplications and allow proper deletion
69417637 87
dede1525 88 ClassDef(AliMpSegmentation,2) // The factory for building mapping segmentations
69417637 89};
90
91#endif //ALI_MP_SEGMENTATION_H
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106