ROOT logo
#ifndef AliADDataDCS_H
#define AliADDataDCS_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

#include <TObject.h> 
#include <TClonesArray.h>

class TMap;
class TH2F;
class TGraph;
class TF1;
class TString;
class TH1F;

// AliADDataDCS class
// main aim is to process DCS data
// in order to obtain the data to be stored in the OCDB

class AliADDataDCS : public TObject {
public:
  enum {kNAliases=60,kNGraphs=16,kNHvChannel=16,kNLvChannel=4,kNCIUBoards = 2};
  enum {kHvMin=0, kHvMax=3000};
  
  AliADDataDCS();
  AliADDataDCS(Int_t nRun, UInt_t timeCreated, UInt_t timeCompleted, UInt_t daqStart, UInt_t daqEnd, UInt_t ctpStart, UInt_t ctpEnd);
  ~AliADDataDCS();
  
  void SetRun(Int_t run) {fRun = run;}
  void SetStartTime(Int_t startTime) {fStartTime = startTime;}
  void SetEndTime(Int_t endTime) {fEndTime = endTime;}
  void SetDaqStartTime(Int_t startTime) {fDaqStartTime = startTime;}
  void SetDaqEndTime(Int_t endTime) {fDaqEndTime = endTime;}
  Int_t GetRun() const {return fRun;}
  Int_t GetStartTime() const {return fStartTime;}
  Int_t GetEndTime() const {return fEndTime;}
  Int_t GetDaqStartTime() const {return fDaqStartTime;}
  Int_t GetDaqEndTime() const {return fDaqEndTime;}
  
  Bool_t ProcessData(TMap& aliasMap);
  
  const char* GetAliasName(Int_t pos) const 
    {return pos<kNAliases ? fAliasNames[pos].Data() : 0;}
  
  void Draw(const Option_t* option);
  
  Float_t* GetMeanHV()    const {return (float*)fMeanHV;}
  Float_t* GetWidthHV()   const {return (float*)fWidthHV;}
  Bool_t * GetDeadMap()   const {return (bool*)fDeadChannel;}
  TMap * GetFEEParameters() const {return fFEEParameters;};
  
// Getter of Offline Channel number as used in aliroot (defined by aliroot 
// numbering convention) from DCS Channel number

    Int_t      GetOfflineChannel(Int_t channel)  const
      { Int_t  fOfflineChannel[16] = {0,  1,  2,  3,  4,  5,  6,  7, 
			              8,  9, 10, 11, 12, 13, 14, 15};
               return fOfflineChannel[channel]; }

private:
  AliADDataDCS(const AliADDataDCS&); // Not implemented
  AliADDataDCS& operator=(const AliADDataDCS&); // Not implemented

  void Init();
  void Introduce(UInt_t numAlias, const TObjArray* aliasArr) const;
  void CreateGraph(int i, int dim, const Double_t *x, const Double_t *y);
    
  Int_t fRun;       // Run number
  Int_t fStartTime; // start time (time created)
  Int_t fEndTime;   // end time (time completed)
  UInt_t fDaqStartTime; // DAQ start time
  UInt_t fDaqEndTime;   // DAQ end time
  UInt_t fCtpStartTime; // CTP start time
  UInt_t fCtpEndTime;   // CTP end time
  
  TString fAliasNames[kNAliases];        // aliases for DCS data
  TClonesArray fGraphs;		         // Array containing  graphics
  TH1F *fHv[kNHvChannel];                  // High Voltage histograms
  Float_t fMeanHV[kNHvChannel];            // High Voltage mean values
  Float_t fWidthHV[kNHvChannel];           // High Voltage widths
  Bool_t  fDeadChannel[kNHvChannel];       // Dead Map 
  TMap * fFEEParameters;  // TMap holding the FEE parameters of Time Resolution
    
  Bool_t fIsProcessed;                   // bool to know processing status
  
  ClassDef(AliADDataDCS, 7);
};

#endif
 AliADDataDCS.h:1
 AliADDataDCS.h:2
 AliADDataDCS.h:3
 AliADDataDCS.h:4
 AliADDataDCS.h:5
 AliADDataDCS.h:6
 AliADDataDCS.h:7
 AliADDataDCS.h:8
 AliADDataDCS.h:9
 AliADDataDCS.h:10
 AliADDataDCS.h:11
 AliADDataDCS.h:12
 AliADDataDCS.h:13
 AliADDataDCS.h:14
 AliADDataDCS.h:15
 AliADDataDCS.h:16
 AliADDataDCS.h:17
 AliADDataDCS.h:18
 AliADDataDCS.h:19
 AliADDataDCS.h:20
 AliADDataDCS.h:21
 AliADDataDCS.h:22
 AliADDataDCS.h:23
 AliADDataDCS.h:24
 AliADDataDCS.h:25
 AliADDataDCS.h:26
 AliADDataDCS.h:27
 AliADDataDCS.h:28
 AliADDataDCS.h:29
 AliADDataDCS.h:30
 AliADDataDCS.h:31
 AliADDataDCS.h:32
 AliADDataDCS.h:33
 AliADDataDCS.h:34
 AliADDataDCS.h:35
 AliADDataDCS.h:36
 AliADDataDCS.h:37
 AliADDataDCS.h:38
 AliADDataDCS.h:39
 AliADDataDCS.h:40
 AliADDataDCS.h:41
 AliADDataDCS.h:42
 AliADDataDCS.h:43
 AliADDataDCS.h:44
 AliADDataDCS.h:45
 AliADDataDCS.h:46
 AliADDataDCS.h:47
 AliADDataDCS.h:48
 AliADDataDCS.h:49
 AliADDataDCS.h:50
 AliADDataDCS.h:51
 AliADDataDCS.h:52
 AliADDataDCS.h:53
 AliADDataDCS.h:54
 AliADDataDCS.h:55
 AliADDataDCS.h:56
 AliADDataDCS.h:57
 AliADDataDCS.h:58
 AliADDataDCS.h:59
 AliADDataDCS.h:60
 AliADDataDCS.h:61
 AliADDataDCS.h:62
 AliADDataDCS.h:63
 AliADDataDCS.h:64
 AliADDataDCS.h:65
 AliADDataDCS.h:66
 AliADDataDCS.h:67
 AliADDataDCS.h:68
 AliADDataDCS.h:69
 AliADDataDCS.h:70
 AliADDataDCS.h:71
 AliADDataDCS.h:72
 AliADDataDCS.h:73
 AliADDataDCS.h:74
 AliADDataDCS.h:75
 AliADDataDCS.h:76
 AliADDataDCS.h:77
 AliADDataDCS.h:78
 AliADDataDCS.h:79
 AliADDataDCS.h:80
 AliADDataDCS.h:81
 AliADDataDCS.h:82
 AliADDataDCS.h:83
 AliADDataDCS.h:84
 AliADDataDCS.h:85
 AliADDataDCS.h:86
 AliADDataDCS.h:87
 AliADDataDCS.h:88
 AliADDataDCS.h:89
 AliADDataDCS.h:90