ROOT logo
#ifndef TPCParamSR_H
#define TPCParamSR_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

////////////////////////////////////////////////
//  Manager class for TPC parameters          //
////////////////////////////////////////////////
#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);
  //calculate bin response as function of the input position -x 
  //return number of valid response bin

  
  void XYZtoCRXYZ(Float_t *xyz, 
		  Int_t &sector, Int_t &padrow, Int_t option=3) const;
  //transform global position to the position relative to the sector padrow
  //if option=0  X calculate absolute            calculate sector
  //if option=1  X           absolute            use input sector
  //if option=2  X           relative to pad row calculate sector
  //if option=3  X           relative            use input sector

  void CRXYZtoXYZ(Float_t *xyz,
	    const Int_t &sector, const Int_t & padrow, Int_t option=3) const;  
  //transform relative position  to the gloabal position
  void TransformTo8(Float_t *xyz, Int_t *index) const;
  void TransformTo2(Float_t *xyz, Int_t *index) const;
  Bool_t Update();            //recalculate and check geometric parameters 
  void SetDefault();          //set default parameters
  void   SetInnerPRF(AliTPCPRF2D * prf) {fInnerPRF = prf;}
  void   SetOuter1PRF(AliTPCPRF2D * prf) {fOuter1PRF = prf;} //e.k
  void   SetOuter2PRF(AliTPCPRF2D * prf) {fOuter2PRF = prf;} //e.k
  void   SetTimeRF(AliTPCRF1D * timerf) {fTimeRF = timerf;}

  AliTPCPRF2D * GetInnerPRF() const {return fInnerPRF;}
  AliTPCPRF2D * GetOuter1PRF() const {return fOuter1PRF;} //e.k
  AliTPCPRF2D * GetOuter2PRF() const {return fOuter2PRF;} //e.k
  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 GetPadRowRadiiLow(Int_t irow) const;
  //  Float_t GetPadRowRadiiUp(Int_t irow) const;
  Float_t GetYInner(Int_t irow) const; //e,k
  Float_t GetYOuter(Int_t irow) const; //e.k

  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;         //pad response function  for inner sector
  AliTPCPRF2D * fOuter1PRF;        //pad response function  for outer sector  
  AliTPCPRF2D * fOuter2PRF; 
  AliTPCRF1D  * fTimeRF;           //time response function object
  Float_t      fFacSigmaPadRow;    //factor-how many sigma of response I accept
  Float_t      fFacSigmaPad;       //factor-how many sigma of response I accept
  Float_t      fFacSigmaTime;      //factor-how many sigma of response I accept

private:
  AliTPCParamSR(const AliTPCParamSR &param); // copy constructor
  AliTPCParamSR &operator = (const AliTPCParamSR & param); //assignment operator

  ClassDef(AliTPCParamSR,2)  //parameter  object for set:TPC
};

#endif  






 AliTPCParamSR.h:1
 AliTPCParamSR.h:2
 AliTPCParamSR.h:3
 AliTPCParamSR.h:4
 AliTPCParamSR.h:5
 AliTPCParamSR.h:6
 AliTPCParamSR.h:7
 AliTPCParamSR.h:8
 AliTPCParamSR.h:9
 AliTPCParamSR.h:10
 AliTPCParamSR.h:11
 AliTPCParamSR.h:12
 AliTPCParamSR.h:13
 AliTPCParamSR.h:14
 AliTPCParamSR.h:15
 AliTPCParamSR.h:16
 AliTPCParamSR.h:17
 AliTPCParamSR.h:18
 AliTPCParamSR.h:19
 AliTPCParamSR.h:20
 AliTPCParamSR.h:21
 AliTPCParamSR.h:22
 AliTPCParamSR.h:23
 AliTPCParamSR.h:24
 AliTPCParamSR.h:25
 AliTPCParamSR.h:26
 AliTPCParamSR.h:27
 AliTPCParamSR.h:28
 AliTPCParamSR.h:29
 AliTPCParamSR.h:30
 AliTPCParamSR.h:31
 AliTPCParamSR.h:32
 AliTPCParamSR.h:33
 AliTPCParamSR.h:34
 AliTPCParamSR.h:35
 AliTPCParamSR.h:36
 AliTPCParamSR.h:37
 AliTPCParamSR.h:38
 AliTPCParamSR.h:39
 AliTPCParamSR.h:40
 AliTPCParamSR.h:41
 AliTPCParamSR.h:42
 AliTPCParamSR.h:43
 AliTPCParamSR.h:44
 AliTPCParamSR.h:45
 AliTPCParamSR.h:46
 AliTPCParamSR.h:47
 AliTPCParamSR.h:48
 AliTPCParamSR.h:49
 AliTPCParamSR.h:50
 AliTPCParamSR.h:51
 AliTPCParamSR.h:52
 AliTPCParamSR.h:53
 AliTPCParamSR.h:54
 AliTPCParamSR.h:55
 AliTPCParamSR.h:56
 AliTPCParamSR.h:57
 AliTPCParamSR.h:58
 AliTPCParamSR.h:59
 AliTPCParamSR.h:60
 AliTPCParamSR.h:61
 AliTPCParamSR.h:62
 AliTPCParamSR.h:63
 AliTPCParamSR.h:64
 AliTPCParamSR.h:65
 AliTPCParamSR.h:66
 AliTPCParamSR.h:67
 AliTPCParamSR.h:68
 AliTPCParamSR.h:69
 AliTPCParamSR.h:70
 AliTPCParamSR.h:71
 AliTPCParamSR.h:72
 AliTPCParamSR.h:73
 AliTPCParamSR.h:74
 AliTPCParamSR.h:75
 AliTPCParamSR.h:76
 AliTPCParamSR.h:77
 AliTPCParamSR.h:78
 AliTPCParamSR.h:79
 AliTPCParamSR.h:80
 AliTPCParamSR.h:81
 AliTPCParamSR.h:82
 AliTPCParamSR.h:83
 AliTPCParamSR.h:84
 AliTPCParamSR.h:85
 AliTPCParamSR.h:86
 AliTPCParamSR.h:87
 AliTPCParamSR.h:88
 AliTPCParamSR.h:89
 AliTPCParamSR.h:90