#ifndef ALITOFLVHVDATAPOINTS_H
#define ALITOFLVHVDATAPOINTS_H
#include "TObject.h"
class TMap;
class TClonesArray;
class TString;
class TH1C;
class AliTOFDCSmaps;
class AliTOFLvHvDataPoints : public TObject {
public:
enum {kNsectors=18, kNplates=5, kNddl=72, kNpads=18*91*96, kNmaxDataPoints=77777};
AliTOFLvHvDataPoints();
AliTOFLvHvDataPoints(Int_t nRun, UInt_t startTime, UInt_t endTime, UInt_t startTimeDCSQuery, UInt_t endTimeDCSQuery );
AliTOFLvHvDataPoints(const AliTOFLvHvDataPoints & data);
AliTOFLvHvDataPoints& operator=(const AliTOFLvHvDataPoints & data);
~AliTOFLvHvDataPoints();
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;}
void SetNSecondsBeforeEOR(Int_t nSecondsBeforeEOR) {fNSecondsBeforeEOR = nSecondsBeforeEOR;}
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;}
Int_t GetNSecondsBeforeEOR() const {return fNSecondsBeforeEOR;}
Bool_t ProcessData(TMap& aliasMap);
const char* GetAliasNameXLV(Int_t pos) const
{return pos<kNddl ? fAliasNamesXLVmap[pos].Data() : 0;}
const char* GetAliasNameXHV(Int_t pos1, Int_t pos2) const
{return pos1<kNsectors&&pos2<kNplates ? fAliasNamesXHVmap[pos1][pos2].Data() : 0;}
void Draw(const Option_t* );
void DrawHVandLVMap(Int_t index);
void DrawHVMap(Int_t index);
void DrawLVMap(Int_t index);
void SetFDRFlag(Bool_t flag) {fFDR = flag;}
Bool_t GetFDRFlag() const {return fFDR;}
Int_t GetNumberOfHVandLVmaps() const { return fNumberOfHVandLVmaps; };
AliTOFDCSmaps * GetHVandLVmapAtSOR() const { return fMap[0]; };
AliTOFDCSmaps * GetHVandLVmapAtEOR() ;
AliTOFDCSmaps * GetHVandLVmap(Int_t index) const { if (index>=fNumberOfHVandLVmaps) return 0x0; else return fMap[index]; };
Int_t GetNumberOfLVmaps() const { return fNumberOfLVdataPoints; };
AliTOFDCSmaps * GetLVmap(Int_t index) const { if (index>=fNumberOfLVdataPoints) return 0x0; else return fLVDataPoints[index]; };
Int_t GetNumberOfHVmaps() const { return fNumberOfHVdataPoints; };
AliTOFDCSmaps * GetHVmap(Int_t index) const { if (index>=fNumberOfHVdataPoints) return 0x0; else return fHVDataPoints[index]; };
private:
void Init();
void CreateHisto(int nbin);
void FillHVarrayPerDataPoint(Int_t sector, Int_t plate, UInt_t baseWord, Short_t *array) const;
void FillLVarrayPerDataPoint(Int_t nDDL, UInt_t baseWord, Short_t *array) const;
void GetStripsConnectedToFEAC(Int_t nDDL, Int_t nFEAC, Int_t *iStrip, Int_t &firstPadX, Int_t &lastPadX) const;
Bool_t ReadHVDataPoints(TMap& aliasMap);
Bool_t ReadLVDataPoints(TMap& aliasMap);
Bool_t MergeMaps();
Bool_t MergeHVmap();
Bool_t MergeLVmap();
Int_t InsertHVDataPoint(AliTOFDCSmaps *object);
Int_t FindHVdpIndex(Int_t z) const;
Int_t InsertLVDataPoint(AliTOFDCSmaps *object);
Int_t FindLVdpIndex(Int_t z) const;
Int_t fRun;
Int_t fStartTime;
Int_t fEndTime;
Int_t fStartTimeDCSQuery;
Int_t fEndTimeDCSQuery;
Bool_t fIsProcessed;
Bool_t fFDR;
AliTOFDCSmaps *fLVDataPoints[kNmaxDataPoints];
AliTOFDCSmaps *fHVDataPoints[kNmaxDataPoints];
AliTOFDCSmaps *fMap[kNmaxDataPoints];
Int_t fNumberOfLVdataPoints;
Int_t fNumberOfHVdataPoints;
Int_t fNumberOfHVandLVmaps;
TString fAliasNamesXLVmap[kNddl];
TString fAliasNamesXHVmap[kNsectors][kNplates];
AliTOFDCSmaps *fStartingLVmap;
AliTOFDCSmaps *fStartingHVmap;
TH1C * fHisto;
Int_t fNSecondsBeforeEOR;
ClassDef(AliTOFLvHvDataPoints, 3);
};
#endif
AliTOFLvHvDataPoints.h:10 AliTOFLvHvDataPoints.h:11 AliTOFLvHvDataPoints.h:12 AliTOFLvHvDataPoints.h:13 AliTOFLvHvDataPoints.h:14 AliTOFLvHvDataPoints.h:15 AliTOFLvHvDataPoints.h:16 AliTOFLvHvDataPoints.h:17 AliTOFLvHvDataPoints.h:18 AliTOFLvHvDataPoints.h:19 AliTOFLvHvDataPoints.h:20 AliTOFLvHvDataPoints.h:21 AliTOFLvHvDataPoints.h:22 AliTOFLvHvDataPoints.h:23 AliTOFLvHvDataPoints.h:24 AliTOFLvHvDataPoints.h:25 AliTOFLvHvDataPoints.h:26 AliTOFLvHvDataPoints.h:27 AliTOFLvHvDataPoints.h:28 AliTOFLvHvDataPoints.h:29 AliTOFLvHvDataPoints.h:30 AliTOFLvHvDataPoints.h:31 AliTOFLvHvDataPoints.h:32 AliTOFLvHvDataPoints.h:33 AliTOFLvHvDataPoints.h:34 AliTOFLvHvDataPoints.h:35 AliTOFLvHvDataPoints.h:36 AliTOFLvHvDataPoints.h:37 AliTOFLvHvDataPoints.h:38 AliTOFLvHvDataPoints.h:39 AliTOFLvHvDataPoints.h:40 AliTOFLvHvDataPoints.h:41 AliTOFLvHvDataPoints.h:42 AliTOFLvHvDataPoints.h:43 AliTOFLvHvDataPoints.h:44 AliTOFLvHvDataPoints.h:45 AliTOFLvHvDataPoints.h:46 AliTOFLvHvDataPoints.h:47 AliTOFLvHvDataPoints.h:48 AliTOFLvHvDataPoints.h:49 AliTOFLvHvDataPoints.h:50 AliTOFLvHvDataPoints.h:51 AliTOFLvHvDataPoints.h:52 AliTOFLvHvDataPoints.h:53 AliTOFLvHvDataPoints.h:54 AliTOFLvHvDataPoints.h:55 AliTOFLvHvDataPoints.h:56 AliTOFLvHvDataPoints.h:57 AliTOFLvHvDataPoints.h:58 AliTOFLvHvDataPoints.h:59 AliTOFLvHvDataPoints.h:60 AliTOFLvHvDataPoints.h:61 AliTOFLvHvDataPoints.h:62 AliTOFLvHvDataPoints.h:63 AliTOFLvHvDataPoints.h:64 AliTOFLvHvDataPoints.h:65 AliTOFLvHvDataPoints.h:66 AliTOFLvHvDataPoints.h:67 AliTOFLvHvDataPoints.h:68 AliTOFLvHvDataPoints.h:69 AliTOFLvHvDataPoints.h:70 AliTOFLvHvDataPoints.h:71 AliTOFLvHvDataPoints.h:72 AliTOFLvHvDataPoints.h:73 AliTOFLvHvDataPoints.h:74 AliTOFLvHvDataPoints.h:75 AliTOFLvHvDataPoints.h:76 AliTOFLvHvDataPoints.h:77 AliTOFLvHvDataPoints.h:78 AliTOFLvHvDataPoints.h:79 AliTOFLvHvDataPoints.h:80 AliTOFLvHvDataPoints.h:81 AliTOFLvHvDataPoints.h:82 AliTOFLvHvDataPoints.h:83 AliTOFLvHvDataPoints.h:84 AliTOFLvHvDataPoints.h:85 AliTOFLvHvDataPoints.h:86 AliTOFLvHvDataPoints.h:87 AliTOFLvHvDataPoints.h:88 AliTOFLvHvDataPoints.h:89 AliTOFLvHvDataPoints.h:90 AliTOFLvHvDataPoints.h:91 AliTOFLvHvDataPoints.h:92 AliTOFLvHvDataPoints.h:93 AliTOFLvHvDataPoints.h:94 AliTOFLvHvDataPoints.h:95 AliTOFLvHvDataPoints.h:96 AliTOFLvHvDataPoints.h:97 AliTOFLvHvDataPoints.h:98 AliTOFLvHvDataPoints.h:99 AliTOFLvHvDataPoints.h:100 AliTOFLvHvDataPoints.h:101 AliTOFLvHvDataPoints.h:102 AliTOFLvHvDataPoints.h:103 AliTOFLvHvDataPoints.h:104 AliTOFLvHvDataPoints.h:105 AliTOFLvHvDataPoints.h:106 AliTOFLvHvDataPoints.h:107 AliTOFLvHvDataPoints.h:108 AliTOFLvHvDataPoints.h:109 AliTOFLvHvDataPoints.h:110 AliTOFLvHvDataPoints.h:111 AliTOFLvHvDataPoints.h:112 AliTOFLvHvDataPoints.h:113 AliTOFLvHvDataPoints.h:114 AliTOFLvHvDataPoints.h:115 AliTOFLvHvDataPoints.h:116 AliTOFLvHvDataPoints.h:117 AliTOFLvHvDataPoints.h:118 AliTOFLvHvDataPoints.h:119 AliTOFLvHvDataPoints.h:120 AliTOFLvHvDataPoints.h:121 AliTOFLvHvDataPoints.h:122 AliTOFLvHvDataPoints.h:123