New macro to keep track of timing performances of the segmentation methods (Laurent)
[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 "AliMpStation12Type.h"
22 #include "AliMpPlaneType.h"
23 #include "AliMpIntPair.h"
24 #include "AliMpContainers.h"
25
26 #ifdef WITH_ROOT
27 #include <TExMap.h>
28 #endif    
29 #include <TString.h>
30 #include <TVector2.h>
31 #include <Riostream.h>
32
33 #include <fstream>
34 #ifdef WITH_STL
35 #include <map>
36 #endif    
37
38 class AliMpMotifMap;
39 class AliMpVMotif;
40 class AliMpMotifSpecial;
41 class AliMpMotifType;
42 class AliMpDataStreams;
43
44 class AliMpMotifReader : public TObject
45 {
46   public:
47 #ifdef WITH_STL
48     /// Map of int pair to string
49     typedef std::map<std::string, std::pair<Int_t,Int_t> > PadMapType;
50     /// Map of int pair to string iterator
51     typedef PadMapType::iterator PadMapTypeIterator;
52 #endif    
53 #ifdef WITH_ROOT
54     /// Map of int pair to string
55     typedef TExMap PadMapType;
56 #endif    
57
58   public:
59     AliMpMotifReader(const AliMpDataStreams& dataStreams,
60                      AliMp::StationType station, 
61                      AliMq::Station12Type station12,
62                      AliMp::PlaneType plane);
63     virtual ~AliMpMotifReader();
64   
65     // methods   
66     AliMpMotifType*     BuildMotifType(const TString& motifTypeId);
67     AliMpMotifSpecial*  BuildMotifSpecial(const TString& motifID,
68                                           AliMpMotifType* motifType,
69                                           Double_t scale=1.0);
70     TString MotifSpecialName(const TString& motifID, Double_t scale);
71     
72   private:
73     /// Not implemented
74     AliMpMotifReader();
75     /// Not implemented
76     AliMpMotifReader(const AliMpMotifReader& right);
77     /// Not implemented
78     AliMpMotifReader&  operator = (const AliMpMotifReader& right);
79
80     // data members  
81     const AliMpDataStreams& fkDataStreams;///< data streams
82     AliMp::StationType    fStationType;   ///< station type 
83     AliMq::Station12Type  fStation12Type; ///< station12 type 
84     AliMp::PlaneType      fPlaneType;     ///< plane type 
85
86   ClassDef(AliMpMotifReader,0)  // Data reader
87 };
88
89 #endif //ALI_MP_MOTIF_READER_H