ROOT logo
/****************************************************
 AliACORDEDataDCS class
 	Pointer to the DCS objects
 Author: Pedro Gonzalez (CIEMAT, Madrid)
 Last update: June 13th 2014 from Mario Rodríguez Cahuantzi (CINVESTAV, mrodriguez@fis.cinvestav.mx)
	==> wrong ACORDE aliases for AMANDA fixed (https://alice.its.cern.ch/jira/browse/ALIROOT-5479)
		-- old alias: ACO_HV_MODULE[0..59]_VMON
		-- new alias: ACO_HV_MODULE[0..59]_INSIDE_VMON ()/ ACO_HV_MODULE[0..59]_OUTSIDE_VMON
 Last updated: March 21 th 2010
	Fixing coding violatgion
	Mario Rodriguez (FCFM-BUAP, Puebla MX)

*****************************************************/
#ifndef AliACORDEDATADCS_H
#define AliACORDEDATADCS_H

#include <TClonesArray.h>
#include <TGraph.h>
#include <TMap.h>
class AliACORDEDataDCS : public TObject {
public:
	enum {kNAliases=120, kNHistos=120, kNGraphs=120, kNFunctions=2};
	enum {kHvMin=0, kHvMax=20};

	AliACORDEDataDCS();
	AliACORDEDataDCS(Int_t nRun, UInt_t startTime, UInt_t endTime);
        AliACORDEDataDCS(const AliACORDEDataDCS & data);
        AliACORDEDataDCS& operator=(const AliACORDEDataDCS & data);

	~AliACORDEDataDCS();

	void SetRun(Int_t run) {fRun = run;} 
	void SetStartTime(Int_t startTime) {fStartTime = startTime;}
	void SetEndTime(Int_t endTime) {fEndTime = endTime;}
	Int_t GetRun() const {return fRun;}
	Int_t GetStartTime() const {return fStartTime;}
	Int_t GetEndTime() const {return fEndTime;}

	void ProcessData(TMap& aliasMap);

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

	Float_t GetMean(UInt_t pos) const {return pos<kNHistos ? fMean[pos] : 0;}
	Float_t GetWidth(UInt_t pos) const {return pos<kNHistos ? fWidth[pos] : 0;}

	const TGraph* GetGraph(UInt_t pos) {return pos<kNGraphs ? ((TGraph*) fGraphs.UncheckedAt(pos)) : 0;}

	const TF1* GetFunction() const {return fFunc;}

	Double_t Eval(int pos, Double_t time)
			{return pos<kNGraphs ? ((TGraph*) fGraphs.UncheckedAt(pos))->Eval(time) : -1;}

	void Draw(const Option_t* option);


private:
	void Init();
	void Introduce(UInt_t numAlias, const TObjArray* aliasArr);
	void CreateGraph(int i, int dim, const Double_t *x, const Double_t *y);

	Int_t fRun; // # of Run
	UInt_t fStartTime; // Start time of the Run
	UInt_t fEndTime; // End time of the Run

	Float_t fMean[kNHistos]; // Mean of hits distribution for ACORDE
	Float_t fWidth[kNHistos]; // Width of the hits dist. for ACORDE

	TString fAliasNames[kNAliases]; // Alias names for ACORDE Data Points
	TH1F *fHv[kNHistos]; // High Voltage values
	TClonesArray fGraphs; // Clones of plots for ACORDE
	TF1 *fFunc; // Funtion for ACORDE DP

	Bool_t fIsProcessed; // Boolean flag to know if the vent was processed

	ClassDef(AliACORDEDataDCS, 1);
};

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