#ifndef ALITRDCALDCSFEEV2_H
#define ALITRDCALDCSFEEV2_H
#include "TObject.h"
#include "TString.h"
class AliTRDCalDCSFEEv2 : public TObject {
public:
AliTRDCalDCSFEEv2();
AliTRDCalDCSFEEv2(const AliTRDCalDCSFEEv2 &c);
virtual ~AliTRDCalDCSFEEv2() { };
AliTRDCalDCSFEEv2 &operator=(const AliTRDCalDCSFEEv2 &c);
void SetStatusBit(Int_t stbit) { fStatusBit = (Char_t)stbit; }
void SetDCSid(Int_t dcsid) { fDCSID = (Short_t)dcsid; }
void SetSM(Int_t smid) { fSM = (Char_t)smid; }
void SetStack(Int_t stid) { fStack = (Char_t)stid; }
void SetLayer(Int_t lyid) { fLayer = (Char_t)lyid; }
void SetNumberOfTimeBins(Int_t value) { fNumberOfTimeBins = (Short_t)value; }
void SetConfigTag(Int_t cfgt) { fConfigTag = (Short_t)cfgt; }
void SetSingleHitThres(Int_t sht) { fSingleHitThres = (Short_t)sht; }
void SetThreePadClustThres(Int_t tpct) { fThrPdClsThres = (Short_t)tpct; }
void SetSelectiveNoZS(Int_t snzs) { fSelNoZS = (Short_t)snzs; }
void SetFastStatNoise(Int_t fstn) { fFastStatNoise = (Short_t)fstn; }
void SetTCFilterWeight(Int_t tcfw) { fTCFilterWeight = (Short_t)tcfw; }
void SetTCFilterShortDecPar(Int_t sdp) { fTCFilterShortDecPar = (Short_t)sdp; }
void SetTCFilterLongDecPar(Int_t ldp) { fTCFilterLongDecPar = (Short_t)ldp; }
void SetGainTableRocSerial(Int_t gts) { fGainTableRocSerial = (UChar_t)gts; }
void SetFilterType(TString fity) { fFilterType = fity; }
void SetReadoutParam(TString rpar) { fReadoutParam = rpar; }
void SetTestPattern(TString tpat) { fTestPattern = tpat; }
void SetTrackletMode(TString tmde) { fTrackletMode = tmde; }
void SetTrackletDef(TString tdef) { fTrackletDef = tdef; }
void SetTriggerSetup(TString trse) { fTriggerSetup = trse; }
void SetAddOptions(TString adop) { fAddOptions = adop; }
void SetConfigName(TString cfgn) { fConfigName = cfgn; }
void SetConfigVersion(TString cfgv) { fConfigVersion = cfgv; }
void SetGainTableName(TString gt) { fGainTableName = gt; }
void SetGainTableDesc(TString gd) { fGainTableDesc = gd; }
void SetGainTableRocType(TString gr) { fGainTableRocType = gr; }
void SetMCMGlobalState(Int_t r,Int_t m,Int_t g) { fRStateGSM[r][m] = (Char_t)g; }
void SetMCMStateNI(Int_t r,Int_t m,Int_t v) { fRStateNI[r][m] = (Char_t)v; }
void SetMCMEventCnt(Int_t r,Int_t m,Int_t v) { fRStateEV[r][m] = v; }
void SetMCMPtCnt(Int_t r,Int_t m,Int_t v) { fRStatePTRG[r][m] = v; }
void SetGainTableAdcdac(Int_t r,Int_t m,Int_t v){ fGainTableAdcdac[r][m] = (Char_t)v; }
void SetGainTableFgfn(Int_t r,Int_t m,Int_t a,Int_t v) { fGainTableFgfn[r][m][a] = (Short_t)v; }
void SetGainTableFgan(Int_t r,Int_t m,Int_t a,Int_t v) { fGainTableFgan[r][m][a] = (Char_t)v; }
Int_t GetStatusBit() const { return (Int_t)fStatusBit; }
Int_t GetDCSid() const { return (Int_t)fDCSID; }
Int_t GetSM() const { return (Int_t)fSM; }
Int_t GetStack() const { return (Int_t)fStack; }
Int_t GetLayer() const { return (Int_t)fLayer; }
Int_t GetNumberOfTimeBins() const { return (Int_t)fNumberOfTimeBins; }
Int_t GetConfigTag() const { return (Int_t)fConfigTag; }
Int_t GetSingleHitThres() const { return (Int_t)fSingleHitThres; }
Int_t GetThreePadClustThres() const { return (Int_t)fThrPdClsThres; }
Int_t GetSelectiveNoZS() const { return (Int_t)fSelNoZS; }
Int_t GetTCFilterWeight() const { return (Int_t)fTCFilterWeight; }
Int_t GetTCFilterShortDecPar() const { return (Int_t)fTCFilterShortDecPar; }
Int_t GetTCFilterLongDecPar() const { return (Int_t)fTCFilterLongDecPar; }
Int_t GetFastStatNoise() const { return (Int_t)fFastStatNoise; }
Int_t GetGainTableRocSerial() const { return (Int_t)fGainTableRocSerial; }
TString GetFilterType() const { return fFilterType; }
TString GetReadoutParam() const { return fReadoutParam; }
TString GetTestPattern() const { return fTestPattern; }
TString GetTrackletMode() const { return fTrackletMode; }
TString GetTrackletDef() const { return fTrackletDef; }
TString GetTriggerSetup() const { return fTriggerSetup; }
TString GetAddOptions() const { return fAddOptions; }
TString GetConfigName() const { return fConfigName; }
TString GetConfigVersion() const { return fConfigVersion; }
TString GetGainTableName() const { return fGainTableName; }
TString GetGainTableDesc() const { return fGainTableDesc; }
TString GetGainTableRocType() const { return fGainTableRocType; }
Int_t GetMCMGlobalState(Int_t r,Int_t m) const { return (Char_t)fRStateGSM[r][m]; }
Int_t GetMCMStateNI(Int_t r,Int_t m) const { return (Char_t)fRStateNI[r][m]; }
Int_t GetMCMEventCnt(Int_t r,Int_t m) const { return fRStateEV[r][m]; }
Int_t GetMCMPtCnt(Int_t r,Int_t m) const { return fRStatePTRG[r][m]; }
Int_t GetGainTableAdcdac(Int_t r,Int_t m) const { return (Int_t)fGainTableAdcdac[r][m]; }
Int_t GetGainTableFgfn(Int_t r,Int_t m,Int_t a) const { return (Int_t)fGainTableFgfn[r][m][a]; }
Int_t GetGainTableFgan(Int_t r,Int_t m,Int_t a) const { return (Int_t)fGainTableFgan[r][m][a]; }
protected:
static const Char_t fgkROB = 8;
static const Char_t fgkMCM = 18;
static const Char_t fgkADC = 21;
Char_t fStatusBit;
Char_t fSM;
Char_t fStack;
Char_t fLayer;
Char_t fGainTableFgan[(Int_t)fgkROB][(Int_t)fgkMCM][(Int_t)fgkADC];
Char_t fGainTableAdcdac[(Int_t)fgkROB][(Int_t)fgkMCM];
Char_t fRStateGSM[(Int_t)fgkROB][(Int_t)fgkMCM];
Char_t fRStateNI[(Int_t)fgkROB][(Int_t)fgkMCM];
UChar_t fGainTableRocSerial;
Short_t fDCSID;
Short_t fNumberOfTimeBins;
Short_t fConfigTag;
Short_t fSingleHitThres;
Short_t fThrPdClsThres;
Short_t fSelNoZS;
Short_t fTCFilterWeight;
Short_t fTCFilterShortDecPar;
Short_t fTCFilterLongDecPar;
Short_t fFastStatNoise;
Short_t fGainTableFgfn[(Int_t)fgkROB][(Int_t)fgkMCM][(Int_t)fgkADC];
Int_t fRStateEV[(Int_t)fgkROB][(Int_t)fgkMCM];
Int_t fRStatePTRG[(Int_t)fgkROB][(Int_t)fgkMCM];
TString fGainTableRocType;
TString fFilterType;
TString fReadoutParam;
TString fTestPattern;
TString fTrackletMode;
TString fTrackletDef;
TString fTriggerSetup;
TString fAddOptions;
TString fConfigName;
TString fConfigVersion;
TString fGainTableName;
TString fGainTableDesc;
ClassDef(AliTRDCalDCSFEEv2,2)
};
#endif