]>
Commit | Line | Data |
---|---|---|
1d9e7bed | 1 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
2 | * See cxx source for full Copyright notice */ | |
3 | ||
4 | // $Id$ | |
445693d9 | 5 | // $MpId: AliMpTriggerReader.h,v 1.2 2006/03/02 16:36:26 ivana Exp $ |
1d9e7bed | 6 | |
9b97f64e | 7 | /// \ingroup trigger |
1d9e7bed | 8 | /// \class AliMpTriggerReader |
9 | /// \brief Read trigger slat ASCII files | |
85fec35d | 10 | /// \author Laurent Aphecetche |
1d9e7bed | 11 | |
12 | #ifndef ALI_MP_TRIGGER_READER_H | |
13 | #define ALI_MP_TRIGGER_READER_H | |
14 | ||
15 | #ifndef ROOT_TObject | |
16 | # include "TObject.h" | |
17 | #endif | |
18 | ||
19 | #ifndef ROOT_TMap | |
20 | # include "TMap.h" | |
21 | #endif | |
22 | ||
23 | #ifndef ROOT_TString | |
24 | # include "TString.h" | |
25 | #endif | |
26 | ||
27 | #ifndef ALI_MP_PLANE_TYPE_H | |
28 | # include "AliMpPlaneType.h" | |
29 | #endif | |
30 | ||
31 | #ifndef ALI_MP_STATION_TYPE_H | |
32 | # include "AliMpStationType.h" | |
33 | #endif | |
34 | ||
35 | class AliMpSlat; | |
36 | class AliMpTrigger; | |
37 | class AliMpPCB; | |
38 | class TList; | |
39 | ||
40 | class AliMpTriggerReader : public TObject | |
41 | { | |
42 | public: | |
43 | AliMpTriggerReader(); | |
44 | virtual ~AliMpTriggerReader(); | |
45 | ||
46 | static AliMpTrigger* ReadSlat(const char* slatType, AliMpPlaneType planeType); | |
47 | ||
48 | static AliMpPCB* ReadPCB(const char* pcbType); | |
49 | ||
50 | static void Reset(); | |
51 | ||
85fec35d | 52 | private: |
1d9e7bed | 53 | |
54 | static AliMpSlat* BuildSlat(const char* slatName, | |
55 | AliMpPlaneType planeType, | |
56 | const TList& descriptionLines, | |
57 | Double_t scale=1.0); | |
58 | ||
59 | static Int_t DecodeFlipLine(const TString& sline, | |
60 | TString& slatType2, | |
61 | Bool_t& flipX, Bool_t& flipY); | |
62 | ||
63 | static Int_t DecodeScaleLine(const TString& sline, | |
64 | Double_t& scale, TString& slatType); | |
65 | ||
66 | static void FlipLines(TList& lines, Bool_t flipX, Bool_t flipY, | |
67 | Int_t srcLine, Int_t destLine); | |
68 | ||
85fec35d | 69 | static TString GetBoardNameFromPCBLine(const TString& sline); |
1d9e7bed | 70 | |
71 | static Int_t GetLine(const TString& slatType); | |
72 | ||
73 | static Int_t IsLayerLine(const TString& sline); | |
74 | ||
75 | static int LocalBoardNumber(const char* localBoardName); | |
76 | ||
77 | static AliMpPCB* PCB(const char* pcbType); | |
78 | ||
79 | static void ReadLines(const char* slatType, | |
80 | AliMpPlaneType planeType, | |
81 | TList& lines, | |
82 | Double_t& scale, Bool_t& flipX, Bool_t& flipY, | |
83 | Int_t& srcLine, Int_t& destLine); | |
84 | ||
85 | static void ReadLocalBoardMapping(); | |
86 | ||
87 | private: | |
88 | ||
89 | static TMap fgPCBMap; //! map of TObjString to AliMpPCB* | |
90 | ||
91 | static TMap fgLocalBoardMap; //! map of TObjString to TObjString | |
85fec35d | 92 | |
93 | static const TString fgkKeywordLayer; //! Keyword: LAYER | |
94 | static const TString fgkKeywordScale; //! Keyword: SCALE | |
95 | static const TString fgkKeywordPcb; //! Keyword : PCB | |
96 | static const TString fgkKeywordFlipX; //! Keyword : FLIPX | |
97 | static const TString fgkKeywordFlipY; //! Keyword : FLIPY | |
1d9e7bed | 98 | |
99 | ClassDef(AliMpTriggerReader,1) // Reader for trigger slats mapping files | |
100 | }; | |
101 | ||
102 | #endif |