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: AliMpSectorReader.h,v 1.7 2006/05/24 13:58:21 ivana Exp $
6 :
7 : /// \ingroup sector
8 : /// \class AliMpSectorReader
9 : /// \brief Class that takes care of reading the sector data.
10 : ///
11 : /// \author David Guez, Ivana Hrivnacova; IPN Orsay
12 :
13 : #ifndef ALI_MP_SECTOR_READER_H
14 : #define ALI_MP_SECTOR_READER_H
15 :
16 : #include <TObject.h>
17 :
18 : #include "AliMpStation12Type.h"
19 : #include "AliMpPlaneType.h"
20 : #include "AliMpXDirection.h"
21 :
22 : #include <TString.h>
23 :
24 : #include <fstream>
25 :
26 : class AliMpSector;
27 : class AliMpZone;
28 : class AliMpSubZone;
29 : class AliMpRow;
30 : class AliMpVRowSegmentSpecial;
31 : class AliMpMotifReader;
32 : class AliMpVMotif;
33 : class AliMpMotifSpecial;
34 : class AliMpMotifType;
35 : class AliMpDataStreams;
36 :
37 : using std::istream;
38 :
39 : class AliMpSectorReader : public TObject
40 : {
41 : public:
42 : AliMpSectorReader(AliMq::Station12Type station, AliMp::PlaneType plane);
43 : virtual ~AliMpSectorReader();
44 :
45 : // methods
46 : AliMpSector* BuildSector(const AliMpDataStreams& dataStreams);
47 :
48 : private:
49 : /// Not implemented
50 : AliMpSectorReader();
51 : /// Not implemented
52 : AliMpSectorReader(const AliMpSectorReader& right);
53 : /// Not implemented
54 : AliMpSectorReader& operator = (const AliMpSectorReader& right);
55 :
56 : // static methods
57 : static const TString& GetSectorKeyword();
58 : static const TString& GetZoneKeyword();
59 : static const TString& GetSubZoneKeyword();
60 : static const TString& GetRowKeyword();
61 : static const TString& GetSectorSpecialKeyword();
62 : static const TString& GetMotifKeyword();
63 : static const TString& GetRowSpecialKeyword();
64 : static const TString& GetPadRowsKeyword();
65 : static const TString& GetPadRowSegmentKeyword();
66 :
67 : // methods
68 : void ReadSectorData(const AliMpDataStreams& dataStreams,
69 : istream& in);
70 : void ReadZoneData(const AliMpDataStreams& dataStreams,
71 : istream& in);
72 : void ReadSubZoneData(const AliMpDataStreams& dataStreams,
73 : istream& in, AliMpZone* zone);
74 : void ReadRowSegmentsData(const AliMpDataStreams& dataStreams,
75 : istream& in,
76 : AliMpZone* zone, AliMpSubZone* subZone);
77 :
78 : AliMpVMotif* ReadMotifData(const AliMpDataStreams& dataStreams,
79 : istream& in, AliMpZone* zone);
80 : void ReadSectorSpecialData(const AliMpDataStreams& dataStreams,
81 : istream& in, AliMp::XDirection direction);
82 : void ReadMotifsSpecialData(const AliMpDataStreams& dataStreams,
83 : istream& in);
84 : void ReadRowSpecialData(const AliMpDataStreams& dataStreams,
85 : istream& in, AliMp::XDirection direction);
86 : void ReadRowSegmentSpecialData(const AliMpDataStreams& dataStreams,
87 : istream& in,
88 : AliMpVRowSegmentSpecial* segment,
89 : AliMp::XDirection direction);
90 :
91 : // data members
92 : AliMq::Station12Type fStationType; ///< station type
93 : AliMp::PlaneType fPlaneType; ///< plane type
94 : AliMpSector* fSector; ///< sector
95 : AliMpMotifReader* fMotifReader; ///< motif reader
96 :
97 8670 : ClassDef(AliMpSectorReader,0) // Data reader
98 : };
99 :
100 : #endif //ALI_MP_READER_H
|