#ifndef ALITRDSAXHANDLER_H
#define ALITRDSAXHANDLER_H
#include <TObject.h>
#include "Cal/AliTRDCalDCSGTUCtpOpc.h"
#include "Cal/AliTRDCalDCSGTUBoardInfo.h"
#include "Cal/AliTRDCalDCSGTUSegment.h"
#include "Cal/AliTRDCalDCSGTUTmu.h"
class TObjArray;
class AliTRDCalDCSv2;
class AliTRDCalDCSFEEv2;
class AliTRDCalDCSPTR;
class AliTRDCalDCSGTU;
class AliTRDSaxHandler : public TObject {
public:
enum {
kInsideFEE = 1,
kInsidePTR = 2,
kInsideGTU = 3
};
enum {
kInsideTgu = -1,
kInsideNone = -2,
kInsideSegment = -3,
kInsideGainTable = -4
};
enum {
kInsideTmu = 10,
kInsideSmu = 11
};
AliTRDSaxHandler();
AliTRDSaxHandler(const AliTRDSaxHandler &sh);
virtual ~AliTRDSaxHandler();
AliTRDSaxHandler &operator=(const AliTRDSaxHandler &sh);
TObjArray* GetDCSFEEDataArray() const { return fFEEArr; }
TObjArray* GetDCSPTRDataArray() const { return fPTRArr; }
AliTRDCalDCSv2* GetCalDCSObj();
void ParseConfigName(TString cfgname) const;
Int_t GetHandlerStatus() const { return fHandlerStatus; }
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) const;
void OnWarning(const char *name);
void OnError(const char *name);
void OnFatalError(const char *name);
void OnCdataBlock(const char *name, Int_t len) const;
private:
bool CompareString(TString str, const char *str2);
Int_t fHandlerStatus;
Int_t fNDCSPTR;
Int_t fNDCSGTU;
TObjArray* fFEEArr;
TObjArray* fPTRArr;
Int_t fSystem;
Int_t fInsideRstate;
Int_t fCurrentSM;
Int_t fCurrentStack;
Int_t fCurrentROB;
Int_t fCurrentMCM;
Int_t fCurrentADC;
TString fContent;
AliTRDCalDCSFEEv2* fDCSFEEObj;
AliTRDCalDCSPTR* fDCSPTRObj;
AliTRDCalDCSGTU* fDCSGTUObj;
AliTRDCalDCSv2* fCalDCSObj;
Int_t fLevel1Tag;
Int_t fLevel2Tag;
Bool_t fInsideBoardInfo;
AliTRDCalDCSGTUTmu* fTmu;
AliTRDCalDCSGTUCtpOpc* fCtpOpc;
AliTRDCalDCSGTUSegment* fSegment;
AliTRDCalDCSGTUBoardInfo* fBoardInfo;
ClassDef(AliTRDSaxHandler,3);
};
#endif