* See cxx source for full Copyright notice */
// $Id$
-// $MpId: AliMpSectorReader.h,v 1.5 2006/03/17 11:38:28 ivana Exp $
+// $MpId: AliMpSectorReader.h,v 1.7 2006/05/24 13:58:21 ivana Exp $
/// \ingroup sector
/// \class AliMpSectorReader
/// \brief Class that takes care of reading the sector data.
///
-/// Authors: David Guez, Ivana Hrivnacova; IPN Orsay
+/// \author David Guez, Ivana Hrivnacova; IPN Orsay
#ifndef ALI_MP_SECTOR_READER_H
#define ALI_MP_SECTOR_READER_H
#include <TObject.h>
-#include "AliMpStationType.h"
+#include "AliMpStation12Type.h"
#include "AliMpPlaneType.h"
#include "AliMpXDirection.h"
-#include "AliMpIntPair.h"
#include <TString.h>
class AliMpVMotif;
class AliMpMotifSpecial;
class AliMpMotifType;
+class AliMpDataStreams;
+
+using std::istream;
class AliMpSectorReader : public TObject
{
public:
- AliMpSectorReader(AliMpStationType station, AliMpPlaneType plane);
- AliMpSectorReader();
+ AliMpSectorReader(AliMq::Station12Type station, AliMp::PlaneType plane);
virtual ~AliMpSectorReader();
// methods
- AliMpSector* BuildSector();
+ AliMpSector* BuildSector(const AliMpDataStreams& dataStreams);
- protected:
+ private:
+ /// Not implemented
+ AliMpSectorReader();
+ /// Not implemented
AliMpSectorReader(const AliMpSectorReader& right);
- AliMpSectorReader& operator = (const AliMpSectorReader& right);
+ /// Not implemented
+ AliMpSectorReader& operator = (const AliMpSectorReader& right);
- private:
- // methods
- void ReadSectorData(ifstream& in);
- void ReadZoneData(ifstream& in);
- void ReadSubZoneData(ifstream& in, AliMpZone* zone);
- void ReadRowSegmentsData(ifstream& in,
- AliMpZone* zone, AliMpSubZone* subZone);
- AliMpVMotif* ReadMotifData(ifstream& in, AliMpZone* zone);
- void ReadSectorSpecialData(ifstream& in, AliMpXDirection direction);
- void ReadMotifsSpecialData(ifstream& in);
- void ReadRowSpecialData(ifstream& in, AliMpXDirection direction);
- void ReadRowSegmentSpecialData(ifstream& in,
- AliMpVRowSegmentSpecial* segment,
- AliMpXDirection direction);
-
- // static data members
- static const TString fgkSectorKeyword; // sector keyword
- static const TString fgkZoneKeyword; // zone keyword
- static const TString fgkSubZoneKeyword; // subzone keyword
- static const TString fgkRowKeyword; // row keyword
- static const TString fgkEofKeyword; // eof keyword
- static const TString fgkSectorSpecialKeyword; // sector special keyword
- static const TString fgkMotifKeyword; // motif keyword
- static const TString fgkRowSpecialKeyword; // row special keyword
- static const TString fgkPadRowsKeyword; // pad rows keyword
- static const TString fgkPadRowSegmentKeyword; // pad row segment keyword
+ // static methods
+ static const TString& GetSectorKeyword();
+ static const TString& GetZoneKeyword();
+ static const TString& GetSubZoneKeyword();
+ static const TString& GetRowKeyword();
+ static const TString& GetSectorSpecialKeyword();
+ static const TString& GetMotifKeyword();
+ static const TString& GetRowSpecialKeyword();
+ static const TString& GetPadRowsKeyword();
+ static const TString& GetPadRowSegmentKeyword();
+ // methods
+ void ReadSectorData(const AliMpDataStreams& dataStreams,
+ istream& in);
+ void ReadZoneData(const AliMpDataStreams& dataStreams,
+ istream& in);
+ void ReadSubZoneData(const AliMpDataStreams& dataStreams,
+ istream& in, AliMpZone* zone);
+ void ReadRowSegmentsData(const AliMpDataStreams& dataStreams,
+ istream& in,
+ AliMpZone* zone, AliMpSubZone* subZone);
+
+ AliMpVMotif* ReadMotifData(const AliMpDataStreams& dataStreams,
+ istream& in, AliMpZone* zone);
+ void ReadSectorSpecialData(const AliMpDataStreams& dataStreams,
+ istream& in, AliMp::XDirection direction);
+ void ReadMotifsSpecialData(const AliMpDataStreams& dataStreams,
+ istream& in);
+ void ReadRowSpecialData(const AliMpDataStreams& dataStreams,
+ istream& in, AliMp::XDirection direction);
+ void ReadRowSegmentSpecialData(const AliMpDataStreams& dataStreams,
+ istream& in,
+ AliMpVRowSegmentSpecial* segment,
+ AliMp::XDirection direction);
+
// data members
- AliMpStationType fStationType; // station type
- AliMpPlaneType fPlaneType; // plane type
- AliMpSector* fSector; // sector
- AliMpMotifReader* fMotifReader; // motif reader
+ AliMq::Station12Type fStationType; ///< station type
+ AliMp::PlaneType fPlaneType; ///< plane type
+ AliMpSector* fSector; ///< sector
+ AliMpMotifReader* fMotifReader; ///< motif reader
- ClassDef(AliMpSectorReader,1) // Data reader
+ ClassDef(AliMpSectorReader,0) // Data reader
};
#endif //ALI_MP_READER_H