Correct use of ROOT_INCLUDE_DIR
[u/mrichter/AliRoot.git] / MUON / MUONmapping / AliMpTriggerReader.h
CommitLineData
1d9e7bed 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3
4// $Id$
13985652 5// $MpId: AliMpTriggerReader.h,v 1.5 2006/05/24 13:58:27 ivana Exp $
1d9e7bed 6
cffcff29 7/// \ingroup mptrigger
1d9e7bed 8/// \class AliMpTriggerReader
9/// \brief Read trigger slat ASCII files
13985652 10///
11// Author: Laurent Aphecetche
1d9e7bed 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
cf25b4e1 32class AliMpSlatMotifMap;
1d9e7bed 33class AliMpSlat;
34class AliMpTrigger;
35class AliMpPCB;
ab167304 36class AliMpDataStreams;
657b96e3 37
1d9e7bed 38class TList;
39
40class AliMpTriggerReader : public TObject
41{
42 public:
21027e5a 43 AliMpTriggerReader(AliMpSlatMotifMap* motifMap);
1d9e7bed 44 virtual ~AliMpTriggerReader();
45
21027e5a 46 AliMpTrigger* ReadSlat(const AliMpDataStreams& dataStreams,
47 const char* slatType, AliMp::PlaneType planeType);
1d9e7bed 48
21027e5a 49 AliMpPCB* ReadPCB(const AliMpDataStreams& dataStreams, const char* pcbType);
1d9e7bed 50
85fec35d 51private:
1d9e7bed 52
21027e5a 53 AliMpSlat* BuildSlat(const AliMpDataStreams& dataStreams,
54 const char* slatName,
cddd101e 55 AliMp::PlaneType planeType,
1d9e7bed 56 const TList& descriptionLines,
57 Double_t scale=1.0);
58
cf25b4e1 59 Int_t DecodeFlipLine(const TString& sline,
1d9e7bed 60 TString& slatType2,
61 Bool_t& flipX, Bool_t& flipY);
62
cf25b4e1 63 Int_t DecodeScaleLine(const TString& sline,
1d9e7bed 64 Double_t& scale, TString& slatType);
65
21027e5a 66 void FlipLines(const AliMpDataStreams& dataStreams,
67 TList& lines, Bool_t flipX, Bool_t flipY,
1d9e7bed 68 Int_t srcLine, Int_t destLine);
69
cf25b4e1 70 TString GetBoardNameFromPCBLine(const TString& sline);
1d9e7bed 71
cf25b4e1 72 Int_t GetLine(const TString& slatType);
1d9e7bed 73
9ee1d6ff 74 Int_t IsLayerLine(const TString& sline) const;
1d9e7bed 75
21027e5a 76 int LocalBoardNumber(const AliMpDataStreams& dataStreams,
77 const char* localBoardName);
1d9e7bed 78
71a2d3aa 79 // AliMpPCB* PCB(const char* pcbType);
1d9e7bed 80
21027e5a 81 void ReadLines(const AliMpDataStreams& dataStreams,
82 const char* slatType,
cddd101e 83 AliMp::PlaneType planeType,
1d9e7bed 84 TList& lines,
85 Double_t& scale, Bool_t& flipX, Bool_t& flipY,
86 Int_t& srcLine, Int_t& destLine);
87
21027e5a 88 void ReadLocalBoardMapping(const AliMpDataStreams& dataStreams);
1d9e7bed 89
90private:
657b96e3 91 /// Not implemented
92 AliMpTriggerReader(const AliMpTriggerReader& rhs);
93 /// Not implemented
94 AliMpTriggerReader& operator=(const AliMpTriggerReader& rhs);
1d9e7bed 95
31edb2d7 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
657b96e3 104 AliMpSlatMotifMap* fMotifMap; //!< storage for motifTypes and motifs...
1d9e7bed 105
cf25b4e1 106 TMap fLocalBoardMap; //!< map of TObjString to TObjString
85fec35d 107
cf25b4e1 108 ClassDef(AliMpTriggerReader,0) // Reader for trigger slats mapping files
1d9e7bed 109};
110
111#endif