ROOT logo
#ifndef AliZDCDataDCS_H
#define AliZDCDataDCS_H

////////////////////////////////////////////////
//  Class for ZDC DCS data                    //
////////////////////////////////////////////////


#include <TMap.h>

class AliZDCDataDCS : public TObject {
public:
    enum {kNAliases=28, kNAlignDet=4, kNHVChannels=24};

    AliZDCDataDCS();
    AliZDCDataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime, 
                  UInt_t startTimeDCSQuery, UInt_t endTimeDCSQuery);
    AliZDCDataDCS(const AliZDCDataDCS & data);
    AliZDCDataDCS& operator=(const AliZDCDataDCS & data);
    ~AliZDCDataDCS();

    void SetRun(Int_t run) {fRun = run;}
    void SetStartTime(Int_t startTime) {fStartTime = startTime;}
    void SetEndTime(Int_t endTime) {fEndTime = endTime;}
    void SetStartTimeDCSQuery(Int_t startTimeDCSQuery) {fStartTimeDCSQuery = startTimeDCSQuery;}
    void SetEndTimeDCSQuery(Int_t endTimeDCSQuery) {fEndTimeDCSQuery = endTimeDCSQuery;}
    //
    Int_t GetRun() const {return fRun;}
    Int_t GetStartTime() const {return fStartTime;}
    Int_t GetEndTime() const {return fEndTime;}
    Int_t GetStartTimeDCSQuery() const {return fStartTimeDCSQuery;}
    Int_t GetEndTimeDCSQuery() const {return fEndTimeDCSQuery;}
    Float_t GetAlignData(Int_t i) const {return fAlignData[i];}
//    Float_t* GetTimeStamp() const {return (float*)fTimeStamp;}
//    Float_t* GetHVData() const {return (float*)fHVData;}

    Bool_t ProcessData(TMap& aliasMap);

    const char* GetAliasName(UInt_t pos) const
    		{return pos<kNAliases ? fAliasNames[pos].Data() : 0;}

private:
    void Init();
    void Introduce(UInt_t numAlias, const TObjArray* aliasArr);

    Int_t  fRun; 	    // Run number
    UInt_t fStartTime;      // Start of run time
    UInt_t fEndTime;	    // End of run time
    Int_t  fStartTimeDCSQuery; // start time DCSQuery
    Int_t  fEndTimeDCSQuery;   // end time DCSQuery

    TString fAliasNames[kNAliases]; // Name of the aliases provided by the DCS
    Float_t fAlignData[kNAlignDet]; // Array containing alignment data
//    Float_t *fTimeStamp; 	    // Array containing time stamps
//    Float_t *fHVData;    	    // Array containing HV values

    Bool_t fIsProcessed;	    // Flag set when data are processed

    ClassDef(AliZDCDataDCS, 6);
};

#endif
 AliZDCDataDCS.h:1
 AliZDCDataDCS.h:2
 AliZDCDataDCS.h:3
 AliZDCDataDCS.h:4
 AliZDCDataDCS.h:5
 AliZDCDataDCS.h:6
 AliZDCDataDCS.h:7
 AliZDCDataDCS.h:8
 AliZDCDataDCS.h:9
 AliZDCDataDCS.h:10
 AliZDCDataDCS.h:11
 AliZDCDataDCS.h:12
 AliZDCDataDCS.h:13
 AliZDCDataDCS.h:14
 AliZDCDataDCS.h:15
 AliZDCDataDCS.h:16
 AliZDCDataDCS.h:17
 AliZDCDataDCS.h:18
 AliZDCDataDCS.h:19
 AliZDCDataDCS.h:20
 AliZDCDataDCS.h:21
 AliZDCDataDCS.h:22
 AliZDCDataDCS.h:23
 AliZDCDataDCS.h:24
 AliZDCDataDCS.h:25
 AliZDCDataDCS.h:26
 AliZDCDataDCS.h:27
 AliZDCDataDCS.h:28
 AliZDCDataDCS.h:29
 AliZDCDataDCS.h:30
 AliZDCDataDCS.h:31
 AliZDCDataDCS.h:32
 AliZDCDataDCS.h:33
 AliZDCDataDCS.h:34
 AliZDCDataDCS.h:35
 AliZDCDataDCS.h:36
 AliZDCDataDCS.h:37
 AliZDCDataDCS.h:38
 AliZDCDataDCS.h:39
 AliZDCDataDCS.h:40
 AliZDCDataDCS.h:41
 AliZDCDataDCS.h:42
 AliZDCDataDCS.h:43
 AliZDCDataDCS.h:44
 AliZDCDataDCS.h:45
 AliZDCDataDCS.h:46
 AliZDCDataDCS.h:47
 AliZDCDataDCS.h:48
 AliZDCDataDCS.h:49
 AliZDCDataDCS.h:50
 AliZDCDataDCS.h:51
 AliZDCDataDCS.h:52
 AliZDCDataDCS.h:53
 AliZDCDataDCS.h:54
 AliZDCDataDCS.h:55
 AliZDCDataDCS.h:56
 AliZDCDataDCS.h:57
 AliZDCDataDCS.h:58
 AliZDCDataDCS.h:59
 AliZDCDataDCS.h:60
 AliZDCDataDCS.h:61
 AliZDCDataDCS.h:62