Correct use of ROOT_INCLUDE_DIR
[u/mrichter/AliRoot.git] / MUON / MUONmapping / AliMpSectorReader.h
CommitLineData
197883c2 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3
5f91c9e8 4// $Id$
13985652 5// $MpId: AliMpSectorReader.h,v 1.7 2006/05/24 13:58:21 ivana Exp $
197883c2 6
7/// \ingroup sector
8/// \class AliMpSectorReader
9/// \brief Class that takes care of reading the sector data.
10///
13985652 11/// \author David Guez, Ivana Hrivnacova; IPN Orsay
5f91c9e8 12
197883c2 13#ifndef ALI_MP_SECTOR_READER_H
14#define ALI_MP_SECTOR_READER_H
5f91c9e8 15
5f91c9e8 16#include <TObject.h>
5f91c9e8 17
4e51cfd2 18#include "AliMpStation12Type.h"
5f91c9e8 19#include "AliMpPlaneType.h"
4139354b 20#include "AliMpXDirection.h"
5f91c9e8 21
2a7ea2e6 22#include <TString.h>
23
24#include <fstream>
25
5f91c9e8 26class AliMpSector;
27class AliMpZone;
28class AliMpSubZone;
29class AliMpRow;
4139354b 30class AliMpVRowSegmentSpecial;
197883c2 31class AliMpMotifReader;
5f91c9e8 32class AliMpVMotif;
33class AliMpMotifSpecial;
34class AliMpMotifType;
ab167304 35class AliMpDataStreams;
5f91c9e8 36
b80faac0 37using std::istream;
38
197883c2 39class AliMpSectorReader : public TObject
5f91c9e8 40{
41 public:
21027e5a 42 AliMpSectorReader(AliMq::Station12Type station, AliMp::PlaneType plane);
197883c2 43 virtual ~AliMpSectorReader();
5f91c9e8 44
45 // methods
21027e5a 46 AliMpSector* BuildSector(const AliMpDataStreams& dataStreams);
5f91c9e8 47
13e7956b 48 private:
f5671fc3 49 /// Not implemented
ab167304 50 AliMpSectorReader();
51 /// Not implemented
197883c2 52 AliMpSectorReader(const AliMpSectorReader& right);
f5671fc3 53 /// Not implemented
54 AliMpSectorReader& operator = (const AliMpSectorReader& right);
fb1bf5c0 55
31edb2d7 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
21027e5a 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
4139354b 91 // data members
4e51cfd2 92 AliMq::Station12Type fStationType; ///< station type
93 AliMp::PlaneType fPlaneType; ///< plane type
94 AliMpSector* fSector; ///< sector
95 AliMpMotifReader* fMotifReader; ///< motif reader
5f91c9e8 96
228fd720 97 ClassDef(AliMpSectorReader,0) // Data reader
5f91c9e8 98};
99
100#endif //ALI_MP_READER_H