#ifndef ALITRDLTUPARAM_H
#define ALITRDLTUPARAM_H
#include "TObject.h"
class AliTRDltuParam : public TObject
{
public:
AliTRDltuParam();
~AliTRDltuParam();
void SetPtMin(Int_t data) { fPtMin = Float_t(data) / 1000.; }
void SetMagField(Int_t data) { fMagField = Float_t(data) / 1000.; }
void SetOmegaTau(Int_t data) { fOmegaTau = Float_t(data) / 1.e6; }
void SetNtimebins(Int_t data) { fNtimebins = data; }
void SetScaleQ0(Int_t data) { fScaleQ0 = data; }
void SetScaleQ1(Int_t data) { fScaleQ1 = data; }
void SetLengthCorrectionEnable(Int_t data) { fPidTracklengthCorr = Bool_t (data); }
void SetTiltCorrectionEnable(Int_t data) { fTiltCorr = Bool_t (data); }
void SetPIDgainCorrectionEnable(Bool_t data) { fPidGainCorr = data; }
void SetRawPtMin(Float_t data) { fPtMin = data; }
void SetRawMagField(Float_t data) { fMagField = data; }
void SetRawOmegaTau(Float_t data) { fOmegaTau = data; }
void SetRawNtimebins(Int_t data) { fNtimebins = data; }
void SetRawScaleQ0(Int_t data) { fScaleQ0 = data; }
void SetRawScaleQ1(Int_t data) { fScaleQ1 = data; }
void SetRawLengthCorrectionEnable(Bool_t data) { fPidTracklengthCorr = data; }
void SetRawTiltCorrectionEnable(Bool_t data) { fTiltCorr = data; }
void SetRawPIDgainCorrectionEnable(Bool_t data) { fPidGainCorr = data; }
Int_t GetDyCorrection(Int_t det, Int_t rob, Int_t mcm) const;
void GetDyRange(Int_t det, Int_t rob, Int_t mcm, Int_t ch, Int_t &dyMinInt, Int_t &dyMaxInt) const;
void GetCorrectionFactors(Int_t det, Int_t rob, Int_t mcm, Int_t ch,
UInt_t &cor0, UInt_t &cor1, Float_t gain = 1.) const;
Int_t GetNtimebins() const;
Float_t GetX(Int_t det, Int_t rob, Int_t mcm) const;
Float_t GetLocalY(Int_t det, Int_t rob, Int_t mcm, Int_t ch) const;
Float_t GetLocalZ(Int_t det, Int_t rob, Int_t mcm) const;
Float_t GetDist(Int_t det, Int_t rob, Int_t mcm, Int_t ch) const;
Float_t GetElongation(Int_t det, Int_t rob, Int_t mcm, Int_t ) const;
Float_t GetPhi(Int_t det, Int_t rob, Int_t mcm, Int_t ch) const;
Float_t GetPerp(Int_t det, Int_t rob, Int_t mcm, Int_t ch) const;
protected:
static Float_t fgZrow[6][5];
static Float_t fgX[6];
static Float_t fgTiltingAngle[6];
static Float_t fgWidthPad[6];
static Float_t fgLengthInnerPadC0;
static Float_t fgLengthOuterPadC0;
static Float_t fgLengthInnerPadC1[6];
static Float_t fgLengthOuterPadC1[6];
static Float_t fgScalePad;
static Float_t fgDriftLength;
static Float_t fgBinDy;
static Int_t fgDyMax;
static Int_t fgDyMin;
Float_t fMagField;
Float_t fOmegaTau;
Float_t fPtMin;
Int_t fNtimebins;
UInt_t fScaleQ0;
UInt_t fScaleQ1;
Bool_t fPidTracklengthCorr;
Bool_t fTiltCorr;
Bool_t fPidGainCorr;
ClassDef(AliTRDltuParam, 1);
};
#endif