]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/mapping/AliMpSectorReader.h
Go from pointer to ifstream to ifstream.
[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 "AliMpStation12Type.h"
19 #include "AliMpPlaneType.h"
20 #include "AliMpXDirection.h"
21
22 #include <TString.h>
23
24 #include <fstream>
25
26 class AliMpSector;
27 class AliMpZone;
28 class AliMpSubZone;
29 class AliMpRow;
30 class AliMpVRowSegmentSpecial;
31 class AliMpMotifReader;
32 class AliMpVMotif;
33 class AliMpMotifSpecial;
34 class AliMpMotifType;
35 class AliMpDataStreams;
36
37 using std::istream;
38
39 class AliMpSectorReader : public TObject
40 {
41   public:
42     AliMpSectorReader(const AliMpDataStreams& dataStreams,
43                       AliMq::Station12Type station, AliMp::PlaneType plane);
44     virtual ~AliMpSectorReader();
45   
46     // methods   
47     AliMpSector*  BuildSector();
48     
49   private:  
50     /// Not implemented
51     AliMpSectorReader();
52     /// Not implemented
53     AliMpSectorReader(const AliMpSectorReader& right);
54     /// Not implemented
55     AliMpSectorReader& operator = (const AliMpSectorReader& right);
56
57      // static methods
58     static const TString&  GetSectorKeyword();       
59     static const TString&  GetZoneKeyword();         
60     static const TString&  GetSubZoneKeyword();      
61     static const TString&  GetRowKeyword();          
62     static const TString&  GetSectorSpecialKeyword();
63     static const TString&  GetMotifKeyword();        
64     static const TString&  GetRowSpecialKeyword();   
65     static const TString&  GetPadRowsKeyword();      
66     static const TString&  GetPadRowSegmentKeyword();
67   
68    // methods
69     void  ReadSectorData(istream& in);
70     void  ReadZoneData(istream& in);
71     void  ReadSubZoneData(istream& in, AliMpZone* zone);
72     void  ReadRowSegmentsData(istream& in,
73                           AliMpZone* zone, AliMpSubZone* subZone);
74     AliMpVMotif*  ReadMotifData(istream& in, AliMpZone* zone);
75     void  ReadSectorSpecialData(istream& in, AliMp::XDirection direction);
76     void  ReadMotifsSpecialData(istream& in);
77     void  ReadRowSpecialData(istream& in, AliMp::XDirection direction);
78     void  ReadRowSegmentSpecialData(istream& in,
79                           AliMpVRowSegmentSpecial* segment,
80                           AliMp::XDirection direction);
81   
82     // data members  
83     const AliMpDataStreams&  fkDataStreams; ///< data streams
84     AliMq::Station12Type  fStationType; ///< station type 
85     AliMp::PlaneType      fPlaneType;   ///< plane type 
86     AliMpSector*          fSector;      ///< sector
87     AliMpMotifReader*     fMotifReader; ///< motif reader
88
89   ClassDef(AliMpSectorReader,0)  // Data reader
90 };
91
92 #endif //ALI_MP_READER_H