Introduce smaller AliTRDCalDCSFEEv2 object (Frederick)
[u/mrichter/AliRoot.git] / TRD / AliTRDSaxHandler.h
index af27018b359f6dad5d1622cea418179e90b261e8..deef0623fdf358bd9198860493aafa19d6e9e2b7 100644 (file)
@@ -1,5 +1,5 @@
-#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 */
 
 //                                                                        //
 ////////////////////////////////////////////////////////////////////////////
 
+
 #include "TObject.h"
+#include "Cal/AliTRDCalDCSGTUCtpOpc.h"
+#include "Cal/AliTRDCalDCSGTUBoardInfo.h"
+#include "Cal/AliTRDCalDCSGTUSegment.h"
+#include "Cal/AliTRDCalDCSGTUTmu.h" 
 
 class TObjArray;
-
-class AliTRDCalDCS;
-class AliTRDCalDCSFEE;
+class AliTRDCalDCSv2;
+class AliTRDCalDCSFEEv2;
 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;        }
-  AliTRDCalDCS* GetCalDCSObj(); // to be called by the preprocessor
+  TObjArray*         GetDCSFEEDataArray() const { return fFEEArr;        }
+  TObjArray*         GetDCSPTRDataArray() const { return fPTRArr;        }
+  AliTRDCalDCSv2*    GetCalDCSObj(); // to be called by the preprocessor
 
-  Int_t         GetHandlerStatus() const { return fHandlerStatus; }
+  Int_t              GetHandlerStatus() const { return fHandlerStatus; }
 
   // functions for all possible events
-  void          OnStartDocument();
-  void          OnEndDocument();
-  void          OnStartElement(const char *name, const TList *attributes);
-  void          OnEndElement(const char *name);
-  void          OnCharacters(const char *name);
-  void          OnComment(const char *name);
-  void          OnWarning(const char *name);
-  void          OnError(const char *name);
-  void          OnFatalError(const char *name);
-  void          OnCdataBlock(const char *name, Int_t len);
+  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:
 
-  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);    // The XML file handler for the preprocessor
+  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 AliTRDCalDCSFEEv2 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)
+  AliTRDCalDCSFEEv2* 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
+  AliTRDCalDCSv2*    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,3);         // The XML file handler for the preprocessor
 };
 #endif
+