Line data Source code
1 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 : * See cxx source for full Copyright notice */
3 :
4 : // $Id$
5 : // $MpId: AliMpDEStore.h,v 1.6 2006/05/24 13:58:16 ivana Exp $
6 :
7 : /// \ingroup management
8 : /// \class AliMpDEStore
9 : /// \brief The container class for detection element objects
10 : ///
11 : /// \author Ivana Hrivnacova, IPN Orsay;
12 : /// Laurent Aphecetche, Christian Finck, SUBATECH Nantes
13 :
14 : #ifndef ALI_MP_DE_STORE_H
15 : #define ALI_MP_DE_STORE_H
16 :
17 : #include <TObject.h>
18 : #include <TArrayI.h>
19 :
20 : #include "AliMpExMap.h"
21 : #include "AliMpPlaneType.h"
22 : #include "AliMpStationType.h"
23 : #include "AliMpStation12Type.h"
24 :
25 : class AliMpDetElement;
26 : class AliMpDataStreams;
27 : class TString;
28 :
29 : class AliMpDEStore : public TObject {
30 :
31 : friend class AliMpDEIterator;
32 :
33 : public:
34 : AliMpDEStore(TRootIOCtor* ioCtor);
35 : virtual ~AliMpDEStore();
36 :
37 : // static access method
38 : static AliMpDEStore* Instance(Bool_t warn = true);
39 : static AliMpDEStore* ReadData(const AliMpDataStreams& dataStreams,
40 : Bool_t warn = true);
41 :
42 : // methods
43 : AliMpDetElement* GetDetElement(Int_t detElemId, Bool_t warn = true) const;
44 : AliMpDetElement* GetDetElement(const TString& detName, Bool_t warn = true) const;
45 :
46 : private:
47 : AliMpDEStore(const AliMpDataStreams& dataStreams);
48 : /// Not implemented
49 : AliMpDEStore();
50 : /// Not implemented
51 : AliMpDEStore(const AliMpDEStore& rhs);
52 : /// Not implemented
53 : AliMpDEStore& operator=(const AliMpDEStore& rhs);
54 :
55 : // methods
56 : Bool_t IsPlaneType(const TString& planeTypeName);
57 :
58 : Bool_t ReadDENames(const AliMpDataStreams& dataStreams,
59 : AliMp::StationType stationType,
60 : AliMq::Station12Type station12Type = AliMq::kNotSt12);
61 : void FillDEs(const AliMpDataStreams& dataStreams);
62 :
63 : // static data members
64 : static AliMpDEStore* fgInstance; ///< Singleton instance
65 : static const char fgkCommentPrefix; ///< Comment prefix in DE names file
66 :
67 : // data members
68 : AliMpExMap fDetElements; ///< Map between DE Ids and DE objects
69 :
70 34 : ClassDef(AliMpDEStore,1) // The manager class for definition of detection element types
71 : };
72 :
73 : #endif //ALI_MP_MANAGER_H
74 :
75 :
76 :
77 :
78 :
79 :
80 :
81 :
82 :
83 :
84 :
85 :
86 :
87 :
88 :
|