Introduce DCS FXS data into preprocessor (Frederick)
[u/mrichter/AliRoot.git] / TRD / AliTRDSaxHandler.h
1 #ifndef AliTRDSaxHandler_H
2 #define AliTRDSaxHandler_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * * See cxx source for full Copyright notice */
6 /* $Id$ */
7
8
9 #include "TObject.h"
10 #include "Cal/AliTRDCalDCS.h"
11 #include "Cal/AliTRDCalDCSFEE.h"
12 #include "Cal/AliTRDCalDCSPTR.h"
13 #include "Cal/AliTRDCalDCSGTU.h"
14 #include <TObjArray.h>
15 #include <TList.h>
16
17
18 class AliTRDSaxHandler : public TObject {
19 public:
20   enum { kInsideFEE = 1, kInsidePTR = 2, kInsideGTU = 3 };
21
22   AliTRDSaxHandler();
23   AliTRDSaxHandler(const AliTRDSaxHandler &sh);
24   virtual ~AliTRDSaxHandler();
25   AliTRDSaxHandler &operator=(const AliTRDSaxHandler &sh);
26
27   TObjArray*    GetDCSFEEDataArray()  { return fFEEArr;        }
28   TObjArray*    GetDCSPTRDataArray()  { return fPTRArr;        }
29   TObjArray*    GetDCSGTUDataArray()  { return fGTUArr;        }
30   AliTRDCalDCS* GetCalDCSObj(); // to be called by the preprocessor
31
32   Int_t         GetHandlerStatus() const { return fHandlerStatus; }
33
34   // functions for all possible events
35   void          OnStartDocument();
36   void          OnEndDocument();
37   void          OnStartElement(const char *name, const TList *attributes);
38   void          OnEndElement(const char *name);
39   void          OnCharacters(const char *name);
40   void          OnComment(const char *name);
41   void          OnWarning(const char *name);
42   void          OnError(const char *name);
43   void          OnFatalError(const char *name);
44   void          OnCdataBlock(const char *name, Int_t len);
45
46 private:
47
48   Int_t            fHandlerStatus; // 0: everything OK, >0: error
49   Int_t            fNDCSPTR;       // number of current PTR unit (to be abandonned soon)
50   Int_t            fNDCSGTU;       // number of current GTU unit (to be abandonned soon)
51   TObjArray*       fFEEArr;        // array of AliTRDCalDCSFEE objects
52   TObjArray*       fPTRArr;        // array of AliTRDCalDCSPTR objects
53   TObjArray*       fGTUArr;        // array of AliTRDCalDCSGTU objects
54   Int_t            fSystem;        // current system (FEE/PTR/GTU)
55   Int_t            fCurrentSM;     // current supermodule
56   Int_t            fCurrentStack;  // current stack
57   TString          fContent;       // content of the xml element (text) 
58   AliTRDCalDCSFEE* fDCSFEEObj;     // the calib object for one FEE DCS board
59   AliTRDCalDCSPTR* fDCSPTRObj;     // the calib object for one PTR DCS board
60   AliTRDCalDCSGTU* fDCSGTUObj;     // the calib object for one GTU DCS board
61   AliTRDCalDCS*    fCalDCSObj;     // the complete calib obj containing all inform.
62
63   ClassDef(AliTRDSaxHandler,1);
64 };
65 #endif