#ifndef TPCParamSR_H
#define TPCParamSR_H
#include "AliTPCParam.h"
class AliTPCRF1D;
class AliTPCPRF2D;
class AliTPCParamSR : public AliTPCParam {
public:
AliTPCParamSR();
virtual ~AliTPCParamSR();
Int_t CalcResponse(Float_t* x, Int_t * index, Int_t row);
Int_t CalcResponseFast(Float_t* x, Int_t * index, Int_t row,Float_t phase);
void XYZtoCRXYZ(Float_t *xyz,
Int_t §or, Int_t &padrow, Int_t option=3) const;
void CRXYZtoXYZ(Float_t *xyz,
const Int_t §or, const Int_t & padrow, Int_t option=3) const;
void TransformTo8(Float_t *xyz, Int_t *index) const;
void TransformTo2(Float_t *xyz, Int_t *index) const;
Bool_t Update();
void SetDefault();
void SetInnerPRF(AliTPCPRF2D * prf) {fInnerPRF = prf;}
void SetOuter1PRF(AliTPCPRF2D * prf) {fOuter1PRF = prf;}
void SetOuter2PRF(AliTPCPRF2D * prf) {fOuter2PRF = prf;}
void SetTimeRF(AliTPCRF1D * timerf) {fTimeRF = timerf;}
AliTPCPRF2D * GetInnerPRF() const {return fInnerPRF;}
AliTPCPRF2D * GetOuter1PRF() const {return fOuter1PRF;}
AliTPCPRF2D * GetOuter2PRF() const {return fOuter2PRF;}
AliTPCRF1D * GetTimeRF() const {return fTimeRF;}
void SetFacSigmaPadRow(Float_t fac=3.) {fFacSigmaPadRow=fac;}
void SetFacSigmaPad(Float_t fac=3.) {fFacSigmaPad=fac;}
void SetFacSigmaTime(Float_t fac=3.) {fFacSigmaTime=fac;}
Float_t GetYInner(Int_t irow) const;
Float_t GetYOuter(Int_t irow) const;
virtual Float_t GetPrimaryLoss(Float_t *x, Int_t *index, Float_t *angle);
virtual Float_t GetTotalLoss(Float_t *x, Int_t *index, Float_t *angle);
virtual void GetClusterSize(Float_t *x, Int_t *index, Float_t *angle, Int_t mode, Float_t *sigma);
virtual void GetSpaceResolution(Float_t *x, Int_t *index, Float_t *angle, Float_t amplitude, Int_t mode,Float_t *sigma);
virtual Float_t GetAmp(Float_t *x, Int_t *index, Float_t *angle);
virtual Float_t * GetAnglesAccMomentum(Float_t *x, Int_t * index, Float_t* momentum, Float_t *angle);
protected:
AliTPCPRF2D * fInnerPRF;
AliTPCPRF2D * fOuter1PRF;
AliTPCPRF2D * fOuter2PRF;
AliTPCRF1D * fTimeRF;
Float_t fFacSigmaPadRow;
Float_t fFacSigmaPad;
Float_t fFacSigmaTime;
private:
AliTPCParamSR(const AliTPCParamSR ¶m);
AliTPCParamSR &operator = (const AliTPCParamSR & param);
ClassDef(AliTPCParamSR,2)
};
#endif