Commenting out the infamous speed eater = StdoutToAliDebug until a better solution...
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpSectorReader.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2  * See cxx source for full Copyright notice                               */
3
4 // $Id$
5 // $MpId: AliMpSectorReader.h,v 1.7 2006/05/24 13:58:21 ivana Exp $
6
7 /// \ingroup sector
8 /// \class AliMpSectorReader
9 /// \brief Class that takes care of reading the sector data.
10 ///
11 /// \author David Guez, Ivana Hrivnacova; IPN Orsay
12
13 #ifndef ALI_MP_SECTOR_READER_H
14 #define ALI_MP_SECTOR_READER_H
15
16 #include <TObject.h>
17
18 #include "AliMpStationType.h"
19 #include "AliMpPlaneType.h"
20 #include "AliMpXDirection.h"
21 #include "AliMpIntPair.h"
22
23 #include <TString.h>
24
25 #include <fstream>
26
27 class AliMpSector;
28 class AliMpZone;
29 class AliMpSubZone;
30 class AliMpRow;
31 class AliMpVRowSegmentSpecial;
32 class AliMpMotifReader;
33 class AliMpVMotif;
34 class AliMpMotifSpecial;
35 class AliMpMotifType;
36
37 class AliMpSectorReader : public TObject
38 {
39   public:
40     AliMpSectorReader(AliMp::StationType station, AliMp::PlaneType plane);
41     AliMpSectorReader();
42     virtual ~AliMpSectorReader();
43   
44     // methods   
45     AliMpSector*  BuildSector();
46     
47   private:  
48     AliMpSectorReader(const AliMpSectorReader& right);
49     AliMpSectorReader&  operator = (const AliMpSectorReader& right);
50
51     // methods
52     void  ReadSectorData(ifstream& in);
53     void  ReadZoneData(ifstream& in);
54     void  ReadSubZoneData(ifstream& in, AliMpZone* zone);
55     void  ReadRowSegmentsData(ifstream& in,
56                           AliMpZone* zone, AliMpSubZone* subZone);
57     AliMpVMotif*  ReadMotifData(ifstream& in, AliMpZone* zone);
58     void  ReadSectorSpecialData(ifstream& in, AliMp::XDirection direction);
59     void  ReadMotifsSpecialData(ifstream& in);
60     void  ReadRowSpecialData(ifstream& in, AliMp::XDirection direction);
61     void  ReadRowSegmentSpecialData(ifstream& in,
62                           AliMpVRowSegmentSpecial* segment,
63                           AliMp::XDirection direction);
64     
65     // static data members
66     static const TString  fgkSectorKeyword;        ///< sector keyword
67     static const TString  fgkZoneKeyword;          ///< zone keyword
68     static const TString  fgkSubZoneKeyword;       ///< subzone keyword
69     static const TString  fgkRowKeyword;           ///< row keyword
70     static const TString  fgkEofKeyword;           ///< eof keyword
71     static const TString  fgkSectorSpecialKeyword; ///< sector special keyword
72     static const TString  fgkMotifKeyword;         ///< motif keyword
73     static const TString  fgkRowSpecialKeyword;    ///< row special keyword
74     static const TString  fgkPadRowsKeyword;       ///< pad rows keyword
75     static const TString  fgkPadRowSegmentKeyword; ///< pad row segment keyword
76   
77     // data members  
78     AliMp::StationType  fStationType; ///< station type 
79     AliMp::PlaneType    fPlaneType;   ///< plane type 
80     AliMpSector*        fSector;      ///< sector
81     AliMpMotifReader*   fMotifReader; ///< motif reader
82
83   ClassDef(AliMpSectorReader,1)  // Data reader
84 };
85
86 #endif //ALI_MP_READER_H