]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/mapping/AliMpSegmentation.h
Fix for the problem during PbPb run of Nov 2010 (Indra)
[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
f3ed9a44 15/// AliMpVSegmentation interface and to segmentations underlying
16/// detectors (sector, slat, trigger). \n
69417637 17/// Mapping segmentations for all detection elements
18/// are created at the first call to AliMpSegmentation::Instance().
19/// The class is a singleton, it has all constructors
20/// private, except for the special constructor for Root I/O.
21///
22/// \author Ivana Hrivnacova, IPN Orsay; Laurent Aphecetche, SUBATECH
23
24#ifndef ROOT_TObject
25# include <TObject.h>
26#endif
27
28#ifndef ALI_MP_STRING_OBJ_MAP_H
29# include "AliMpStringObjMap.h"
30#endif
31
32#ifndef ALI_MP_EX_MAP_H
33# include "AliMpExMap.h"
34#endif
35
cddd101e 36#ifndef ALI_MP_CATHOD_TYPE_H
37# include "AliMpCathodType.h"
38#endif
39
24f9bd97 40class AliMpDEStore;
69417637 41class AliMpSegmentation;
50ba5978 42class AliMpVSegmentation;
dede1525 43class AliMpSlatMotifMap;
ab167304 44class AliMpDataStreams;
f3ed9a44 45class AliMpSector;
46class AliMpSlat;
47class AliMpTrigger;
69417637 48class TRootIOCtor;
49
50class AliMpSegmentation : public TObject {
51
52 public:
7d5d0cc5 53 AliMpSegmentation(TRootIOCtor* ioCtor);
69417637 54 virtual ~AliMpSegmentation();
55
56 // static methods
5f377a9a 57 static AliMpSegmentation* Instance(Bool_t warn = true);
ab167304 58 static AliMpSegmentation* ReadData(const AliMpDataStreams& dataStreams,
d2d10ee1 59 Bool_t warn = true);
69417637 60
61 // methods
f3ed9a44 62
63 //
64 // Access to segmentations
65 //
66
69417637 67 const AliMpVSegmentation* GetMpSegmentation(
cddd101e 68 Int_t detElemId, AliMp::CathodType cath,
69417637 69 Bool_t warn = true) const;
70
71 const AliMpVSegmentation* GetMpSegmentationByElectronics(
72 Int_t detElemId, Int_t elCardID,
73 Bool_t warn = true) const;
f3ed9a44 74 //
75 // Access to sectors, slats, triggers
76 //
77
78 const AliMpSector* GetSector(const AliMpVSegmentation* kSegmentation,
79 Bool_t warn = true) const;
80 const AliMpSector* GetSector(Int_t detElemId, AliMp::CathodType cath,
81 Bool_t warn = true) const;
82 const AliMpSector* GetSectorByElectronics(Int_t detElemId, Int_t elCardID,
83 Bool_t warn = true) const;
84
85 const AliMpSlat* GetSlat(const AliMpVSegmentation* kSegmentation,
86 Bool_t warn = true) const;
87 const AliMpSlat* GetSlat(Int_t detElemId, AliMp::CathodType cath,
88 Bool_t warn = true) const;
89 const AliMpSlat* GetSlatByElectronics(Int_t detElemId, Int_t elCardID,
90 Bool_t warn = true) const;
91
92 const AliMpTrigger* GetTrigger(const AliMpVSegmentation* kSegmentation,
93 Bool_t warn = true) const;
94 const AliMpTrigger* GetTrigger(Int_t detElemId, AliMp::CathodType cath,
95 Bool_t warn = true) const;
96 const AliMpTrigger* GetTriggerByElectronics(Int_t detElemId, Int_t elCardID,
97 Bool_t warn = true) const;
98
69417637 99 private:
ab167304 100 AliMpSegmentation(const AliMpDataStreams& dataStreams);
f5671fc3 101 /// Not implemented
69417637 102 AliMpSegmentation(const AliMpSegmentation& rhs);
f5671fc3 103 /// Not implemented
69417637 104 AliMpSegmentation& operator=(const AliMpSegmentation& rhs);
105
106 AliMpVSegmentation* CreateMpSegmentation(
cddd101e 107 Int_t detElemId, AliMp::CathodType cath);
f3ed9a44 108
69417637 109
110 AliMpExMap* FillElCardsMap(Int_t detElemId);
111
112 // static data members
113 static AliMpSegmentation* fgInstance; ///< Singleton instance
114
115 // data members
7d5d0cc5 116 const AliMpDataStreams& fkDataStreams; //!< Data streams
24f9bd97 117 AliMpDEStore* fDetElements; ///< Detection element store
ae505e9f 118 AliMpStringObjMap fMpSegmentations;///< Map of mapping segmentations to DE seg names
69417637 119 AliMpExMap fElCardsMap; ///< Map of el. cards IDs to segmentations
ab167304 120 AliMpSlatMotifMap* fSlatMotifMap; ///< Map of motif, motifTypes to avoid duplications and allow proper deletion
69417637 121
183279c1 122 ClassDef(AliMpSegmentation,3) // The factory for building mapping segmentations
69417637 123};
124
125#endif //ALI_MP_SEGMENTATION_H
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140