#ifndef ALITRDCALIBVIEWER_H
#define ALITRDCALIBVIEWER_H
#include <TObject.h>
#include <TTree.h>
#include <TFile.h>
#include "TFriendElement.h"
#include "TVectorD.h"
#include "AliBaseCalibViewer.h"
class AliTRDCalDet;
class AliTRDCalPad;
class AliTRDCalibViewer : public AliBaseCalibViewer {
public:
AliTRDCalibViewer();
AliTRDCalibViewer(const AliTRDCalibViewer &c);
AliTRDCalibViewer(TTree* tree);
AliTRDCalibViewer(const char* fileName, const char* treeName = "TRDcalibDetails");
AliTRDCalibViewer &operator= (const AliTRDCalibViewer& param);
virtual ~AliTRDCalibViewer();
virtual TObjArray* GetListOfVariables(Bool_t printList = kFALSE);
virtual TObjArray* GetListOfNormalizationVariables(Bool_t printList = kFALSE) const;
Bool_t DumpOCDBtoTreeDetails(const Char_t* runListFilename, const Char_t* outFilename,
Int_t firstRun, Int_t lastRun, const Char_t* storage,
Int_t version = -1, Int_t subVersion = -1,
Bool_t getCalibs = kTRUE, Bool_t getDCS = kTRUE, Bool_t getAlign = kTRUE);
void DumpCalibToTree(const Char_t* inFilename, const Char_t* outFilename);
void ProcessTRDCalibArray(AliTRDCalDet* chamberCalib, AliTRDCalPad *padCalib,
TString parName,
Double_t &runValue, Double_t &runRMS,
TVectorD &chamberValues, TVectorD &chamberValuesRMS,
TVectorD &superModuleValues, TVectorD &superModuleValuesRMS);
void ProcessTRDCalibArray(AliTRDCalPad *padCalib,
TVectorD &superModuleValues, TVectorD &superModuleValuesRMS);
virtual const char* AddAbbreviations(char* c, Bool_t printDrawCommand = kFALSE);
void GetLayerSectorStack(TString trdString, Int_t& layerNo, Int_t& sectorNo, Int_t& stackNo) const;
virtual Int_t EasyDraw(const char* drawCommand, const char* sector, const char* cuts = 0,
const char* drawOptions = 0, Bool_t writeDrawCommand = kFALSE) const;
virtual Int_t EasyDraw(const char* drawCommand, Int_t sector, const char* cuts = 0,
const char* drawOptions = 0, Bool_t writeDrawCommand = kFALSE) const;
virtual Int_t EasyDraw1D(const char* drawCommand, const char* sector, const char* cuts = 0,
const char* drawOptions = 0, Bool_t writeDrawCommand = kFALSE) const;
virtual Int_t EasyDraw1D(const char* drawCommand, Int_t sector, const char* cuts = 0,
const char* drawOptions = 0, Bool_t writeDrawCommand = kFALSE) const;
ClassDef(AliTRDCalibViewer,1)
};
#endif