ROOT logo
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

// $Id$
// $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.
///
/// \author David Guez, Ivana Hrivnacova; IPN Orsay

#ifndef ALI_MP_SECTOR_READER_H
#define ALI_MP_SECTOR_READER_H

#include <TObject.h>

#include "AliMpStation12Type.h"
#include "AliMpPlaneType.h"
#include "AliMpXDirection.h"

#include <TString.h>

#include <fstream>

class AliMpSector;
class AliMpZone;
class AliMpSubZone;
class AliMpRow;
class AliMpVRowSegmentSpecial;
class AliMpMotifReader;
class AliMpVMotif;
class AliMpMotifSpecial;
class AliMpMotifType;
class AliMpDataStreams;

using std::istream;

class AliMpSectorReader : public TObject
{
  public:
    AliMpSectorReader(AliMq::Station12Type station, AliMp::PlaneType plane);
    virtual ~AliMpSectorReader();
  
    // methods   
    AliMpSector*  BuildSector(const AliMpDataStreams& dataStreams);
    
  private:  
    /// Not implemented
    AliMpSectorReader();
    /// Not implemented
    AliMpSectorReader(const AliMpSectorReader& right);
    /// Not implemented
    AliMpSectorReader& operator = (const AliMpSectorReader& right);

     // 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  
    AliMq::Station12Type  fStationType; ///< station type 
    AliMp::PlaneType      fPlaneType;   ///< plane type 
    AliMpSector*          fSector;      ///< sector
    AliMpMotifReader*     fMotifReader; ///< motif reader

  ClassDef(AliMpSectorReader,0)  // Data reader
};

#endif //ALI_MP_READER_H
 AliMpSectorReader.h:1
 AliMpSectorReader.h:2
 AliMpSectorReader.h:3
 AliMpSectorReader.h:4
 AliMpSectorReader.h:5
 AliMpSectorReader.h:6
 AliMpSectorReader.h:7
 AliMpSectorReader.h:8
 AliMpSectorReader.h:9
 AliMpSectorReader.h:10
 AliMpSectorReader.h:11
 AliMpSectorReader.h:12
 AliMpSectorReader.h:13
 AliMpSectorReader.h:14
 AliMpSectorReader.h:15
 AliMpSectorReader.h:16
 AliMpSectorReader.h:17
 AliMpSectorReader.h:18
 AliMpSectorReader.h:19
 AliMpSectorReader.h:20
 AliMpSectorReader.h:21
 AliMpSectorReader.h:22
 AliMpSectorReader.h:23
 AliMpSectorReader.h:24
 AliMpSectorReader.h:25
 AliMpSectorReader.h:26
 AliMpSectorReader.h:27
 AliMpSectorReader.h:28
 AliMpSectorReader.h:29
 AliMpSectorReader.h:30
 AliMpSectorReader.h:31
 AliMpSectorReader.h:32
 AliMpSectorReader.h:33
 AliMpSectorReader.h:34
 AliMpSectorReader.h:35
 AliMpSectorReader.h:36
 AliMpSectorReader.h:37
 AliMpSectorReader.h:38
 AliMpSectorReader.h:39
 AliMpSectorReader.h:40
 AliMpSectorReader.h:41
 AliMpSectorReader.h:42
 AliMpSectorReader.h:43
 AliMpSectorReader.h:44
 AliMpSectorReader.h:45
 AliMpSectorReader.h:46
 AliMpSectorReader.h:47
 AliMpSectorReader.h:48
 AliMpSectorReader.h:49
 AliMpSectorReader.h:50
 AliMpSectorReader.h:51
 AliMpSectorReader.h:52
 AliMpSectorReader.h:53
 AliMpSectorReader.h:54
 AliMpSectorReader.h:55
 AliMpSectorReader.h:56
 AliMpSectorReader.h:57
 AliMpSectorReader.h:58
 AliMpSectorReader.h:59
 AliMpSectorReader.h:60
 AliMpSectorReader.h:61
 AliMpSectorReader.h:62
 AliMpSectorReader.h:63
 AliMpSectorReader.h:64
 AliMpSectorReader.h:65
 AliMpSectorReader.h:66
 AliMpSectorReader.h:67
 AliMpSectorReader.h:68
 AliMpSectorReader.h:69
 AliMpSectorReader.h:70
 AliMpSectorReader.h:71
 AliMpSectorReader.h:72
 AliMpSectorReader.h:73
 AliMpSectorReader.h:74
 AliMpSectorReader.h:75
 AliMpSectorReader.h:76
 AliMpSectorReader.h:77
 AliMpSectorReader.h:78
 AliMpSectorReader.h:79
 AliMpSectorReader.h:80
 AliMpSectorReader.h:81
 AliMpSectorReader.h:82
 AliMpSectorReader.h:83
 AliMpSectorReader.h:84
 AliMpSectorReader.h:85
 AliMpSectorReader.h:86
 AliMpSectorReader.h:87
 AliMpSectorReader.h:88
 AliMpSectorReader.h:89
 AliMpSectorReader.h:90
 AliMpSectorReader.h:91
 AliMpSectorReader.h:92
 AliMpSectorReader.h:93
 AliMpSectorReader.h:94
 AliMpSectorReader.h:95
 AliMpSectorReader.h:96
 AliMpSectorReader.h:97
 AliMpSectorReader.h:98
 AliMpSectorReader.h:99
 AliMpSectorReader.h:100