Line data Source code
1 : #ifndef ALITRDSAXHANDLER_H
2 : #define ALITRDSAXHANDLER_H
3 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 : * * See cxx source for full Copyright notice */
5 :
6 : /* $Id: AliTRDSaxHandler.h 26327 2008-06-02 15:36:18Z cblume $ */
7 :
8 : ////////////////////////////////////////////////////////////////////////////
9 : // //
10 : // The SAX XML file handler used in the preprocessor //
11 : // //
12 : // Author: //
13 : // Frederick Kramer (kramer@ikf.uni-frankfurt.de) //
14 : // //
15 : ////////////////////////////////////////////////////////////////////////////
16 :
17 :
18 : #include <TObject.h>
19 : #include "AliTRDCalDCSGTUCtpOpc.h"
20 : #include "AliTRDCalDCSGTUBoardInfo.h"
21 : #include "AliTRDCalDCSGTUSegment.h"
22 : #include "AliTRDCalDCSGTUTmu.h"
23 :
24 : class TObjArray;
25 : class AliTRDCalDCSv2;
26 : class AliTRDCalDCSFEEv2;
27 : class AliTRDCalDCSPTR;
28 : class AliTRDCalDCSGTU;
29 :
30 :
31 : class AliTRDSaxHandler : public TObject {
32 :
33 : public:
34 : enum {
35 : kInsideFEE = 1,
36 : kInsidePTR = 2,
37 : kInsideGTU = 3
38 : }; // System level
39 : enum {
40 : kInsideTgu = -1,
41 : kInsideNone = -2,
42 : kInsideSegment = -3,
43 : kInsideGainTable = -4
44 : }; // The level under system (1)
45 : enum {
46 : kInsideTmu = 10,
47 : kInsideSmu = 11
48 : }; // The level under that (2)
49 :
50 : AliTRDSaxHandler();
51 : AliTRDSaxHandler(const AliTRDSaxHandler &sh);
52 : virtual ~AliTRDSaxHandler();
53 : AliTRDSaxHandler &operator=(const AliTRDSaxHandler &sh);
54 :
55 0 : TObjArray* GetDCSFEEDataArray() const { return fFEEArr; }
56 0 : TObjArray* GetDCSPTRDataArray() const { return fPTRArr; }
57 : AliTRDCalDCSv2* GetCalDCSObj(); // to be called by the preprocessor
58 : void ParseConfigName(TString cfgname) const;
59 :
60 :
61 0 : Int_t GetHandlerStatus() const { return fHandlerStatus; }
62 :
63 : // functions for all possible events
64 : void OnStartDocument() const;
65 : void OnEndDocument() const;
66 : void OnStartElement(const char *name, const TList *attributes);
67 : void OnEndElement(const char *name);
68 : void OnCharacters(const char *name);
69 : void OnComment(const char *name) const;
70 : void OnWarning(const char *name);
71 : void OnError(const char *name);
72 : void OnFatalError(const char *name);
73 : void OnCdataBlock(const char *name, Int_t len) const;
74 :
75 : private:
76 :
77 : bool CompareString(TString str, const char *str2);
78 :
79 : Int_t fHandlerStatus; // 0: everything OK, >0: error
80 : Int_t fNDCSPTR; // number of current PTR unit (to be abandonned soon)
81 : Int_t fNDCSGTU; // number of current GTU unit (to be abandonned soon)
82 : TObjArray* fFEEArr; // array of AliTRDCalDCSFEEv2 objects
83 : TObjArray* fPTRArr; // array of AliTRDCalDCSPTR objects
84 : // TObjArray* fGTUArr; // array of AliTRDCalDCSGTU objects
85 : Int_t fSystem; // current system (FEE/PTR/GTU) (while parsing)
86 : Int_t fInsideRstate; // if we are inside rstate (while parsing)
87 : Int_t fCurrentSM; // current supermodule (while parsing)
88 : Int_t fCurrentStack; // current stack (while parsing)
89 : Int_t fCurrentROB; // current ROB (while parsing)
90 : Int_t fCurrentMCM; // current MCM (while parsing)
91 : Int_t fCurrentADC; // current ADC (while parsing)
92 : TString fContent; // content of the xml element (text)
93 : AliTRDCalDCSFEEv2* fDCSFEEObj; // the calib object for one FEE DCS board
94 : AliTRDCalDCSPTR* fDCSPTRObj; // the calib object for one PTR DCS board
95 : AliTRDCalDCSGTU* fDCSGTUObj; // the calib object for one GTU DCS board
96 : AliTRDCalDCSv2* fCalDCSObj; // the complete calib obj containing all info
97 : Int_t fLevel1Tag; // 1st level in XML (while parsing)
98 : Int_t fLevel2Tag; // 2nd level in XML (while parsing)
99 : Bool_t fInsideBoardInfo; // if we are inside BoardInfo (while parsing)
100 :
101 : AliTRDCalDCSGTUTmu* fTmu; // GTU calibration data: pattern generator
102 : AliTRDCalDCSGTUCtpOpc* fCtpOpc; // GTU calibration data: OPC
103 : AliTRDCalDCSGTUSegment* fSegment; // GTU calibration data: SMU tracklets/tracks/triggers
104 : AliTRDCalDCSGTUBoardInfo* fBoardInfo; // GTU calibration data: hard-/software and type
105 :
106 48 : ClassDef(AliTRDSaxHandler,3); // The XML file handler for the preprocessor
107 : };
108 : #endif
109 :
|