Put 0.1 as minimal value of the gas gain (Raphaelle)
[u/mrichter/AliRoot.git] / TRD / AliTRDSaxHandler.h
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 */
5
6 /* $Id: AliTRDSaxHandler.h 26327 2008-06-02 15:36:18Z cblume $ */
7
8 ////////////////////////////////////////////////////////////////////////////
9 //                                                                        //
10 //  The SAX XML file handler used in the preprocessor                     //
11 //                                                                        //
12 //  Author:                                                               //
13 //    Frederick Kramer (kramer@ikf.uni-frankfurt.de)                      //
14 //                                                                        //
15 ////////////////////////////////////////////////////////////////////////////
16
17
18 #include "TObject.h"
19 #include "Cal/AliTRDCalDCSGTUCtpOpc.h"
20 #include "Cal/AliTRDCalDCSGTUBoardInfo.h"
21 #include "Cal/AliTRDCalDCSGTUSegment.h"
22 #include "Cal/AliTRDCalDCSGTUTmu.h" 
23
24 class TObjArray;
25 class AliTRDCalDCSv2;
26 class AliTRDCalDCSFEEv2;
27 class AliTRDCalDCSPTR;
28 class AliTRDCalDCSGTU;
29
30
31 class AliTRDSaxHandler : public TObject {
32
33 public:
34   enum { 
35     kInsideFEE = 1, 
36     kInsidePTR = 2,
37     kInsideGTU = 3 
38   }; // System level
39   enum { 
40     kInsideTgu = -1,
41     kInsideNone = -2,
42     kInsideSegment = -3,
43     kInsideGainTable = -4 
44   }; // The level under system (1)
45   enum { 
46     kInsideTmu = 10,
47     kInsideSmu = 11 
48   }; // The level under that   (2)
49
50   AliTRDSaxHandler();
51   AliTRDSaxHandler(const AliTRDSaxHandler &sh);
52   virtual ~AliTRDSaxHandler();
53   AliTRDSaxHandler &operator=(const AliTRDSaxHandler &sh);
54
55   TObjArray*         GetDCSFEEDataArray() const { return fFEEArr;        }
56   TObjArray*         GetDCSPTRDataArray() const { return fPTRArr;        }
57   AliTRDCalDCSv2*    GetCalDCSObj(); // to be called by the preprocessor
58
59   Int_t              GetHandlerStatus() const { return fHandlerStatus; }
60
61   // functions for all possible events
62   void               OnStartDocument() const;
63   void               OnEndDocument() const;
64   void               OnStartElement(const char *name, const TList *attributes);
65   void               OnEndElement(const char *name);
66   void               OnCharacters(const char *name);
67   void               OnComment(const char *name) const;
68   void               OnWarning(const char *name);
69   void               OnError(const char *name);
70   void               OnFatalError(const char *name);
71   void               OnCdataBlock(const char *name, Int_t len) const;
72
73  private:
74
75   bool               CompareString(TString str, const char *str2); 
76
77   Int_t              fHandlerStatus;      // 0: everything OK, >0: error
78   Int_t              fNDCSPTR;            // number of current PTR unit (to be abandonned soon)
79   Int_t              fNDCSGTU;            // number of current GTU unit (to be abandonned soon)
80   TObjArray*         fFEEArr;             // array of AliTRDCalDCSFEEv2 objects
81   TObjArray*         fPTRArr;             // array of AliTRDCalDCSPTR objects
82   //   TObjArray*       fGTUArr;        // array of AliTRDCalDCSGTU objects
83   Int_t              fSystem;             // current system (FEE/PTR/GTU) (while parsing)
84   Int_t              fInsideRstate;       // if we are inside rstate (while parsing)
85   Int_t              fCurrentSM;          // current supermodule (while parsing)
86   Int_t              fCurrentStack;       // current stack (while parsing)
87   Int_t              fCurrentROB;         // current ROB (while parsing)
88   Int_t              fCurrentMCM;         // current MCM (while parsing)
89   Int_t              fCurrentADC;         // current ADC (while parsing)
90   TString            fContent;            // content of the xml element (text)
91   AliTRDCalDCSFEEv2* fDCSFEEObj;          // the calib object for one FEE DCS board
92   AliTRDCalDCSPTR*   fDCSPTRObj;          // the calib object for one PTR DCS board
93   AliTRDCalDCSGTU*   fDCSGTUObj;          // the calib object for one GTU DCS board
94   AliTRDCalDCSv2*    fCalDCSObj;          // the complete calib obj containing all info
95   Int_t              fLevel1Tag;          // 1st level in XML (while parsing)
96   Int_t              fLevel2Tag;          // 2nd level in XML (while parsing)
97   Bool_t             fInsideBoardInfo;    // if we are inside BoardInfo (while parsing)
98
99   AliTRDCalDCSGTUTmu*       fTmu;       // GTU calibration data: pattern generator
100   AliTRDCalDCSGTUCtpOpc*    fCtpOpc;    // GTU calibration data: OPC
101   AliTRDCalDCSGTUSegment*   fSegment;   // GTU calibration data: SMU tracklets/tracks/triggers
102   AliTRDCalDCSGTUBoardInfo* fBoardInfo; // GTU calibration data: hard-/software and type
103
104   ClassDef(AliTRDSaxHandler,3);         // The XML file handler for the preprocessor
105 };
106 #endif
107