Line data Source code
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: AliMpTriggerReader.h,v 1.5 2006/05/24 13:58:27 ivana Exp $
6 :
7 : /// \ingroup mptrigger
8 : /// \class AliMpTriggerReader
9 : /// \brief Read trigger slat ASCII files
10 : ///
11 : // Author: Laurent Aphecetche
12 :
13 : #ifndef ALI_MP_TRIGGER_READER_H
14 : #define ALI_MP_TRIGGER_READER_H
15 :
16 : #ifndef ROOT_TObject
17 : # include "TObject.h"
18 : #endif
19 :
20 : #ifndef ROOT_TMap
21 : # include "TMap.h"
22 : #endif
23 :
24 : #ifndef ROOT_TString
25 : # include "TString.h"
26 : #endif
27 :
28 : #ifndef ALI_MP_PLANE_TYPE_H
29 : # include "AliMpPlaneType.h"
30 : #endif
31 :
32 : class AliMpSlatMotifMap;
33 : class AliMpSlat;
34 : class AliMpTrigger;
35 : class AliMpPCB;
36 : class AliMpDataStreams;
37 :
38 : class TList;
39 :
40 : class AliMpTriggerReader : public TObject
41 : {
42 : public:
43 : AliMpTriggerReader(AliMpSlatMotifMap* motifMap);
44 : virtual ~AliMpTriggerReader();
45 :
46 : AliMpTrigger* ReadSlat(const AliMpDataStreams& dataStreams,
47 : const char* slatType, AliMp::PlaneType planeType);
48 :
49 : AliMpPCB* ReadPCB(const AliMpDataStreams& dataStreams, const char* pcbType);
50 :
51 : private:
52 :
53 : AliMpSlat* BuildSlat(const AliMpDataStreams& dataStreams,
54 : const char* slatName,
55 : AliMp::PlaneType planeType,
56 : const TList& descriptionLines,
57 : Double_t scale=1.0);
58 :
59 : Int_t DecodeFlipLine(const TString& sline,
60 : TString& slatType2,
61 : Bool_t& flipX, Bool_t& flipY);
62 :
63 : Int_t DecodeScaleLine(const TString& sline,
64 : Double_t& scale, TString& slatType);
65 :
66 : void FlipLines(const AliMpDataStreams& dataStreams,
67 : TList& lines, Bool_t flipX, Bool_t flipY,
68 : Int_t srcLine, Int_t destLine);
69 :
70 : TString GetBoardNameFromPCBLine(const TString& sline);
71 :
72 : Int_t GetLine(const TString& slatType);
73 :
74 : Int_t IsLayerLine(const TString& sline) const;
75 :
76 : int LocalBoardNumber(const AliMpDataStreams& dataStreams,
77 : const char* localBoardName);
78 :
79 : // AliMpPCB* PCB(const char* pcbType);
80 :
81 : void ReadLines(const AliMpDataStreams& dataStreams,
82 : const char* slatType,
83 : AliMp::PlaneType planeType,
84 : TList& lines,
85 : Double_t& scale, Bool_t& flipX, Bool_t& flipY,
86 : Int_t& srcLine, Int_t& destLine);
87 :
88 : void ReadLocalBoardMapping(const AliMpDataStreams& dataStreams);
89 :
90 : private:
91 : /// Not implemented
92 : AliMpTriggerReader(const AliMpTriggerReader& rhs);
93 : /// Not implemented
94 : AliMpTriggerReader& operator=(const AliMpTriggerReader& rhs);
95 :
96 : // static methods
97 : static const TString& GetKeywordLayer();
98 : static const TString& GetKeywordScale();
99 : static const TString& GetKeywordPcb();
100 : static const TString& GetKeywordFlipX();
101 : static const TString& GetKeywordFlipY();
102 :
103 : // data members
104 : AliMpSlatMotifMap* fMotifMap; //!<! storage for motifTypes and motifs...
105 :
106 : TMap fLocalBoardMap; //!<! map of TObjString to TObjString
107 :
108 47130 : ClassDef(AliMpTriggerReader,0) // Reader for trigger slats mapping files
109 : };
110 :
111 : #endif
|