]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/MUONmapping/AliMpSectorReader.h
MUON + CheckCompiler
[u/mrichter/AliRoot.git] / MUON / MUONmapping / AliMpSectorReader.h
diff --git a/MUON/MUONmapping/AliMpSectorReader.h b/MUON/MUONmapping/AliMpSectorReader.h
new file mode 100755 (executable)
index 0000000..2a06bda
--- /dev/null
@@ -0,0 +1,100 @@
+/* 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