1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
5 // $MpId: AliMpSectorReader.h,v 1.7 2006/05/24 13:58:21 ivana Exp $
8 /// \class AliMpSectorReader
9 /// \brief Class that takes care of reading the sector data.
11 /// \author David Guez, Ivana Hrivnacova; IPN Orsay
13 #ifndef ALI_MP_SECTOR_READER_H
14 #define ALI_MP_SECTOR_READER_H
18 #include "AliMpStation12Type.h"
19 #include "AliMpPlaneType.h"
20 #include "AliMpXDirection.h"
30 class AliMpVRowSegmentSpecial;
31 class AliMpMotifReader;
33 class AliMpMotifSpecial;
35 class AliMpDataStreams;
39 class AliMpSectorReader : public TObject
42 AliMpSectorReader(AliMq::Station12Type station, AliMp::PlaneType plane);
43 virtual ~AliMpSectorReader();
46 AliMpSector* BuildSector(const AliMpDataStreams& dataStreams);
52 AliMpSectorReader(const AliMpSectorReader& right);
54 AliMpSectorReader& operator = (const AliMpSectorReader& right);
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();
68 void ReadSectorData(const AliMpDataStreams& dataStreams,
70 void ReadZoneData(const AliMpDataStreams& dataStreams,
72 void ReadSubZoneData(const AliMpDataStreams& dataStreams,
73 istream& in, AliMpZone* zone);
74 void ReadRowSegmentsData(const AliMpDataStreams& dataStreams,
76 AliMpZone* zone, AliMpSubZone* subZone);
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,
84 void ReadRowSpecialData(const AliMpDataStreams& dataStreams,
85 istream& in, AliMp::XDirection direction);
86 void ReadRowSegmentSpecialData(const AliMpDataStreams& dataStreams,
88 AliMpVRowSegmentSpecial* segment,
89 AliMp::XDirection direction);
92 AliMq::Station12Type fStationType; ///< station type
93 AliMp::PlaneType fPlaneType; ///< plane type
94 AliMpSector* fSector; ///< sector
95 AliMpMotifReader* fMotifReader; ///< motif reader
97 ClassDef(AliMpSectorReader,0) // Data reader
100 #endif //ALI_MP_READER_H