Separating run-dependent mapping data from data, which are not
[u/mrichter/AliRoot.git] / MUON / mapping / 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
4139354b 18#include "AliMpStationType.h"
5f91c9e8 19#include "AliMpPlaneType.h"
4139354b 20#include "AliMpXDirection.h"
f79c58a5 21#include "AliMpIntPair.h"
5f91c9e8 22
2a7ea2e6 23#include <TString.h>
24
25#include <fstream>
26
5f91c9e8 27class AliMpSector;
28class AliMpZone;
29class AliMpSubZone;
30class AliMpRow;
4139354b 31class AliMpVRowSegmentSpecial;
197883c2 32class AliMpMotifReader;
5f91c9e8 33class AliMpVMotif;
34class AliMpMotifSpecial;
35class AliMpMotifType;
ab167304 36class AliMpDataStreams;
5f91c9e8 37
197883c2 38class AliMpSectorReader : public TObject
5f91c9e8 39{
40 public:
ab167304 41 AliMpSectorReader(const AliMpDataStreams& dataStreams,
42 AliMp::StationType station, AliMp::PlaneType plane);
197883c2 43 virtual ~AliMpSectorReader();
5f91c9e8 44
45 // methods
197883c2 46 AliMpSector* BuildSector();
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
5f91c9e8 56 // methods
228fd720 57 void ReadSectorData(istream& in);
58 void ReadZoneData(istream& in);
59 void ReadSubZoneData(istream& in, AliMpZone* zone);
60 void ReadRowSegmentsData(istream& in,
5f91c9e8 61 AliMpZone* zone, AliMpSubZone* subZone);
228fd720 62 AliMpVMotif* ReadMotifData(istream& in, AliMpZone* zone);
63 void ReadSectorSpecialData(istream& in, AliMp::XDirection direction);
64 void ReadMotifsSpecialData(istream& in);
65 void ReadRowSpecialData(istream& in, AliMp::XDirection direction);
66 void ReadRowSegmentSpecialData(istream& in,
4139354b 67 AliMpVRowSegmentSpecial* segment,
cddd101e 68 AliMp::XDirection direction);
5f91c9e8 69
70 // static data members
829425a5 71 static const TString fgkSectorKeyword; ///< sector keyword
72 static const TString fgkZoneKeyword; ///< zone keyword
73 static const TString fgkSubZoneKeyword; ///< subzone keyword
74 static const TString fgkRowKeyword; ///< row keyword
75 static const TString fgkEofKeyword; ///< eof keyword
76 static const TString fgkSectorSpecialKeyword; ///< sector special keyword
77 static const TString fgkMotifKeyword; ///< motif keyword
78 static const TString fgkRowSpecialKeyword; ///< row special keyword
79 static const TString fgkPadRowsKeyword; ///< pad rows keyword
80 static const TString fgkPadRowSegmentKeyword; ///< pad row segment keyword
5f91c9e8 81
4139354b 82 // data members
ab167304 83 const AliMpDataStreams& fDataStreams; ///< data streams
cddd101e 84 AliMp::StationType fStationType; ///< station type
85 AliMp::PlaneType fPlaneType; ///< plane type
86 AliMpSector* fSector; ///< sector
87 AliMpMotifReader* fMotifReader; ///< motif reader
5f91c9e8 88
228fd720 89 ClassDef(AliMpSectorReader,0) // Data reader
5f91c9e8 90};
91
92#endif //ALI_MP_READER_H