Reordering includes, forward declarations from most specific to more
[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$
2a7ea2e6 5// $MpId: AliMpSectorReader.h,v 1.5 2006/03/17 11:38:28 ivana Exp $
197883c2 6
7/// \ingroup sector
8/// \class AliMpSectorReader
9/// \brief Class that takes care of reading the sector data.
10///
11/// Authors: 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;
36
197883c2 37class AliMpSectorReader : public TObject
5f91c9e8 38{
39 public:
197883c2 40 AliMpSectorReader(AliMpStationType station, AliMpPlaneType plane);
41 AliMpSectorReader();
42 virtual ~AliMpSectorReader();
5f91c9e8 43
44 // methods
197883c2 45 AliMpSector* BuildSector();
5f91c9e8 46
fb1bf5c0 47 protected:
197883c2 48 AliMpSectorReader(const AliMpSectorReader& right);
49 AliMpSectorReader& operator = (const AliMpSectorReader& right);
fb1bf5c0 50
197883c2 51 private:
5f91c9e8 52 // methods
53 void ReadSectorData(ifstream& in);
54 void ReadZoneData(ifstream& in);
55 void ReadSubZoneData(ifstream& in, AliMpZone* zone);
56 void ReadRowSegmentsData(ifstream& in,
57 AliMpZone* zone, AliMpSubZone* subZone);
58 AliMpVMotif* ReadMotifData(ifstream& in, AliMpZone* zone);
4139354b 59 void ReadSectorSpecialData(ifstream& in, AliMpXDirection direction);
5f91c9e8 60 void ReadMotifsSpecialData(ifstream& in);
4139354b 61 void ReadRowSpecialData(ifstream& in, AliMpXDirection direction);
5f91c9e8 62 void ReadRowSegmentSpecialData(ifstream& in,
4139354b 63 AliMpVRowSegmentSpecial* segment,
64 AliMpXDirection direction);
5f91c9e8 65
66 // static data members
4139354b 67 static const TString fgkSectorKeyword; // sector keyword
68 static const TString fgkZoneKeyword; // zone keyword
69 static const TString fgkSubZoneKeyword; // subzone keyword
70 static const TString fgkRowKeyword; // row keyword
71 static const TString fgkEofKeyword; // eof keyword
72 static const TString fgkSectorSpecialKeyword; // sector special keyword
73 static const TString fgkMotifKeyword; // motif keyword
74 static const TString fgkRowSpecialKeyword; // row special keyword
75 static const TString fgkPadRowsKeyword; // pad rows keyword
76 static const TString fgkPadRowSegmentKeyword; // pad row segment keyword
5f91c9e8 77
4139354b 78 // data members
79 AliMpStationType fStationType; // station type
80 AliMpPlaneType fPlaneType; // plane type
81 AliMpSector* fSector; // sector
197883c2 82 AliMpMotifReader* fMotifReader; // motif reader
5f91c9e8 83
197883c2 84 ClassDef(AliMpSectorReader,1) // Data reader
5f91c9e8 85};
86
87#endif //ALI_MP_READER_H