AliMpReader splitted into AliMpMotifReader and AliMpSectorReader
[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$
197883c2 5// $MpId: AliMpSectorReader.h,v 1.3 2005/08/26 15:43:36 ivana Exp $
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
16#include <fstream>
17
18#include <TObject.h>
19#include <TString.h>
5f91c9e8 20
f79c58a5 21#include "AliMpSectorTypes.h"
4139354b 22#include "AliMpStationType.h"
5f91c9e8 23#include "AliMpPlaneType.h"
4139354b 24#include "AliMpXDirection.h"
f79c58a5 25#include "AliMpIntPair.h"
5f91c9e8 26
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
47 // set methods
48 void SetVerboseLevel(Int_t verboseLevel);
49
fb1bf5c0 50 protected:
197883c2 51 AliMpSectorReader(const AliMpSectorReader& right);
52 AliMpSectorReader& operator = (const AliMpSectorReader& right);
fb1bf5c0 53
197883c2 54 private:
5f91c9e8 55 // methods
56 void ReadSectorData(ifstream& in);
57 void ReadZoneData(ifstream& in);
58 void ReadSubZoneData(ifstream& in, AliMpZone* zone);
59 void ReadRowSegmentsData(ifstream& in,
60 AliMpZone* zone, AliMpSubZone* subZone);
61 AliMpVMotif* ReadMotifData(ifstream& in, AliMpZone* zone);
4139354b 62 void ReadSectorSpecialData(ifstream& in, AliMpXDirection direction);
5f91c9e8 63 void ReadMotifsSpecialData(ifstream& in);
4139354b 64 void ReadRowSpecialData(ifstream& in, AliMpXDirection direction);
5f91c9e8 65 void ReadRowSegmentSpecialData(ifstream& in,
4139354b 66 AliMpVRowSegmentSpecial* segment,
67 AliMpXDirection direction);
5f91c9e8 68
69 // static data members
4139354b 70 static const TString fgkSectorKeyword; // sector keyword
71 static const TString fgkZoneKeyword; // zone keyword
72 static const TString fgkSubZoneKeyword; // subzone keyword
73 static const TString fgkRowKeyword; // row keyword
74 static const TString fgkEofKeyword; // eof keyword
75 static const TString fgkSectorSpecialKeyword; // sector special keyword
76 static const TString fgkMotifKeyword; // motif keyword
77 static const TString fgkRowSpecialKeyword; // row special keyword
78 static const TString fgkPadRowsKeyword; // pad rows keyword
79 static const TString fgkPadRowSegmentKeyword; // pad row segment keyword
5f91c9e8 80
4139354b 81 // data members
82 AliMpStationType fStationType; // station type
83 AliMpPlaneType fPlaneType; // plane type
84 AliMpSector* fSector; // sector
197883c2 85 AliMpMotifReader* fMotifReader; // motif reader
4139354b 86 Int_t fVerboseLevel;// verbose level
5f91c9e8 87
197883c2 88 ClassDef(AliMpSectorReader,1) // Data reader
5f91c9e8 89};
90
91#endif //ALI_MP_READER_H