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 */
6 /* $Id: AliTRDSaxHandler.h 26327 2008-06-02 15:36:18Z cblume $ */
8 ////////////////////////////////////////////////////////////////////////////
10 // The SAX XML file handler used in the preprocessor //
13 // Frederick Kramer (kramer@ikf.uni-frankfurt.de) //
15 ////////////////////////////////////////////////////////////////////////////
19 #include "Cal/AliTRDCalDCSGTUCtpOpc.h"
20 #include "Cal/AliTRDCalDCSGTUBoardInfo.h"
21 #include "Cal/AliTRDCalDCSGTUSegment.h"
22 #include "Cal/AliTRDCalDCSGTUTmu.h"
26 class AliTRDCalDCSFEEv2;
27 class AliTRDCalDCSPTR;
28 class AliTRDCalDCSGTU;
31 class AliTRDSaxHandler : public TObject {
44 }; // The level under system (1)
48 }; // The level under that (2)
51 AliTRDSaxHandler(const AliTRDSaxHandler &sh);
52 virtual ~AliTRDSaxHandler();
53 AliTRDSaxHandler &operator=(const AliTRDSaxHandler &sh);
55 TObjArray* GetDCSFEEDataArray() const { return fFEEArr; }
56 TObjArray* GetDCSPTRDataArray() const { return fPTRArr; }
57 AliTRDCalDCSv2* GetCalDCSObj(); // to be called by the preprocessor
58 void ParseConfigName(TString cfgname) const;
61 Int_t GetHandlerStatus() const { return fHandlerStatus; }
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;
77 bool CompareString(TString str, const char *str2);
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)
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
106 ClassDef(AliTRDSaxHandler,3); // The XML file handler for the preprocessor