-#ifndef AliTRDSaxHandler_H
-#define AliTRDSaxHandler_H
-
+#ifndef ALITRDSAXHANDLER_H
+#define ALITRDSAXHANDLER_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* * See cxx source for full Copyright notice */
-/* $Id$ */
+
+/* $Id: AliTRDSaxHandler.h 26327 2008-06-02 15:36:18Z cblume $ */
+
+////////////////////////////////////////////////////////////////////////////
+// //
+// The SAX XML file handler used in the preprocessor //
+// //
+// Author: //
+// Frederick Kramer (kramer@ikf.uni-frankfurt.de) //
+// //
+////////////////////////////////////////////////////////////////////////////
#include "TObject.h"
-#include "Cal/AliTRDCalDCS.h"
-#include "Cal/AliTRDCalDCSFEE.h"
-#include "Cal/AliTRDCalDCSPTR.h"
-#include "Cal/AliTRDCalDCSGTU.h"
-#include <TObjArray.h>
-#include <TList.h>
+#include "Cal/AliTRDCalDCSGTUCtpOpc.h"
+#include "Cal/AliTRDCalDCSGTUBoardInfo.h"
+#include "Cal/AliTRDCalDCSGTUSegment.h"
+#include "Cal/AliTRDCalDCSGTUTmu.h"
+
+class TObjArray;
+class AliTRDCalDCS;
+class AliTRDCalDCSFEE;
+class AliTRDCalDCSPTR;
+class AliTRDCalDCSGTU;
class AliTRDSaxHandler : public TObject {
+
public:
- enum { kInsideFEE = 1, kInsidePTR = 2, kInsideGTU = 3 };
+ enum {
+ kInsideFEE = 1,
+ kInsidePTR = 2,
+ kInsideGTU = 3
+ }; // System level
+ enum {
+ kInsideTgu = -1,
+ kInsideNone = -2,
+ kInsideSegment = -3,
+ kInsideGainTable = -4
+ }; // The level under system (1)
+ enum {
+ kInsideTmu = 10,
+ kInsideSmu = 11
+ }; // The level under that (2)
AliTRDSaxHandler();
AliTRDSaxHandler(const AliTRDSaxHandler &sh);
virtual ~AliTRDSaxHandler();
AliTRDSaxHandler &operator=(const AliTRDSaxHandler &sh);
- TObjArray* GetDCSFEEDataArray() { return fFEEArr; }
- TObjArray* GetDCSPTRDataArray() { return fPTRArr; }
- TObjArray* GetDCSGTUDataArray() { return fGTUArr; }
+ TObjArray* GetDCSFEEDataArray() const { return fFEEArr; }
+ TObjArray* GetDCSPTRDataArray() const { return fPTRArr; }
AliTRDCalDCS* GetCalDCSObj(); // to be called by the preprocessor
Int_t GetHandlerStatus() const { return fHandlerStatus; }
// functions for all possible events
- void OnStartDocument();
- void OnEndDocument();
+ void OnStartDocument() const;
+ void OnEndDocument() const;
void OnStartElement(const char *name, const TList *attributes);
void OnEndElement(const char *name);
void OnCharacters(const char *name);
- void OnComment(const char *name);
+ void OnComment(const char *name) const;
void OnWarning(const char *name);
void OnError(const char *name);
void OnFatalError(const char *name);
- void OnCdataBlock(const char *name, Int_t len);
-
-private:
-
- Int_t fHandlerStatus; // 0: everything OK, >0: error
- Int_t fNDCSPTR; // number of current PTR unit (to be abandonned soon)
- Int_t fNDCSGTU; // number of current GTU unit (to be abandonned soon)
- TObjArray* fFEEArr; // array of AliTRDCalDCSFEE objects
- TObjArray* fPTRArr; // array of AliTRDCalDCSPTR objects
- TObjArray* fGTUArr; // array of AliTRDCalDCSGTU objects
- Int_t fSystem; // current system (FEE/PTR/GTU)
- Int_t fCurrentSM; // current supermodule
- Int_t fCurrentStack; // current stack
- TString fContent; // content of the xml element (text)
- AliTRDCalDCSFEE* fDCSFEEObj; // the calib object for one FEE DCS board
- AliTRDCalDCSPTR* fDCSPTRObj; // the calib object for one PTR DCS board
- AliTRDCalDCSGTU* fDCSGTUObj; // the calib object for one GTU DCS board
- AliTRDCalDCS* fCalDCSObj; // the complete calib obj containing all inform.
-
- ClassDef(AliTRDSaxHandler,1);
+ void OnCdataBlock(const char *name, Int_t len) const;
+
+ private:
+
+ bool CompareString(TString str, const char *str2);
+
+ Int_t fHandlerStatus; // 0: everything OK, >0: error
+ Int_t fNDCSPTR; // number of current PTR unit (to be abandonned soon)
+ Int_t fNDCSGTU; // number of current GTU unit (to be abandonned soon)
+ TObjArray* fFEEArr; // array of AliTRDCalDCSFEE objects
+ TObjArray* fPTRArr; // array of AliTRDCalDCSPTR objects
+// TObjArray* fGTUArr; // array of AliTRDCalDCSGTU objects
+ Int_t fSystem; // current system (FEE/PTR/GTU) (while parsing)
+ Int_t fInsideRstate; // if we are inside rstate (while parsing)
+ Int_t fCurrentSM; // current supermodule (while parsing)
+ Int_t fCurrentStack; // current stack (while parsing)
+ Int_t fCurrentROB; // current ROB (while parsing)
+ Int_t fCurrentMCM; // current MCM (while parsing)
+ Int_t fCurrentADC; // current ADC (while parsing)
+ TString fContent; // content of the xml element (text)
+ AliTRDCalDCSFEE* fDCSFEEObj; // the calib object for one FEE DCS board
+ AliTRDCalDCSPTR* fDCSPTRObj; // the calib object for one PTR DCS board
+ AliTRDCalDCSGTU* fDCSGTUObj; // the calib object for one GTU DCS board
+ AliTRDCalDCS* fCalDCSObj; // the complete calib obj containing all info
+ Int_t fLevel1Tag; // 1st level in XML (while parsing)
+ Int_t fLevel2Tag; // 2nd level in XML (while parsing)
+ Bool_t fInsideBoardInfo; // if we are inside BoardInfo (while parsing)
+
+ AliTRDCalDCSGTUTmu* fTmu; // GTU calibration data: pattern generator
+ AliTRDCalDCSGTUCtpOpc* fCtpOpc; // GTU calibration data: OPC
+ AliTRDCalDCSGTUSegment* fSegment; // GTU calibration data: SMU tracklets/tracks/triggers
+ AliTRDCalDCSGTUBoardInfo* fBoardInfo; // GTU calibration data: hard-/software and type
+
+
+ ClassDef(AliTRDSaxHandler,2); // The XML file handler for the preprocessor
};
#endif
+