Separating run-dependent mapping data from data, which are not
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpMotifReader.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: AliMpMotifReader.h,v 1.9 2006/05/24 13:58:18 ivana Exp $
6
7 /// \ingroup motif
8 /// \class AliMpMotifReader
9 /// \brief Class that takes care of reading the motifs data.
10 ///
11 /// \author David Guez, Ivana Hrivnacova; IPN Orsay
12
13 #ifndef ALI_MP_MOTIF_READER_H
14 #define ALI_MP_MOTIF_READER_H
15
16 #include <TObject.h>
17
18 #include "AliMpContainers.h"
19
20 #include "AliMpStationType.h"
21 #include "AliMpPlaneType.h"
22 #include "AliMpIntPair.h"
23 #include "AliMpContainers.h"
24
25 #ifdef WITH_ROOT
26 #include <TExMap.h>
27 #endif    
28 #include <TString.h>
29 #include <TVector2.h>
30 #include <Riostream.h>
31
32 #include <fstream>
33 #ifdef WITH_STL
34 #include <map>
35 #endif    
36
37 class AliMpMotifMap;
38 class AliMpVMotif;
39 class AliMpMotifSpecial;
40 class AliMpMotifType;
41 class AliMpDataStreams;
42
43 class AliMpMotifReader : public TObject
44 {
45   public:
46 #ifdef WITH_STL
47     /// Map of int pair to string
48     typedef std::map<std::string, std::pair<Int_t,Int_t> > PadMapType;
49     /// Map of int pair to string iterator
50     typedef PadMapType::iterator PadMapTypeIterator;
51 #endif    
52 #ifdef WITH_ROOT
53     /// Map of int pair to string
54     typedef TExMap PadMapType;
55 #endif    
56
57   public:
58     AliMpMotifReader(const AliMpDataStreams& dataStreams,
59                      AliMp::StationType station, AliMp::PlaneType plane);
60     virtual ~AliMpMotifReader();
61   
62     // methods   
63     AliMpMotifType*     BuildMotifType(const TString& motifTypeId);
64     AliMpMotifSpecial*  BuildMotifSpecial(const TString& motifID,
65                                           AliMpMotifType* motifType,
66                                           Double_t scale=1.0);
67     TString MotifSpecialName(const TString& motifID, Double_t scale);
68     
69   private:
70     /// Not implemented
71     AliMpMotifReader();
72     /// Not implemented
73     AliMpMotifReader(const AliMpMotifReader& right);
74     /// Not implemented
75     AliMpMotifReader&  operator = (const AliMpMotifReader& right);
76
77     // data members  
78     const AliMpDataStreams& fDataStreams; ///< data streams
79     AliMp::StationType  fStationType; ///< station type 
80     AliMp::PlaneType    fPlaneType;   ///< plane type 
81
82   ClassDef(AliMpMotifReader,0)  // Data reader
83 };
84
85 #endif //ALI_MP_MOTIF_READER_H