#ifndef AliHMPIDTracker_h
#define AliHMPIDTracker_h
#include <AliTracker.h>
#include "AliHMPID.h"
#include <AliRun.h>
#include <TF1.h> //field
#include <TObjArray.h> //field
class AliESDEvent;
class AliESDtrack;
class AliHMPIDtrack;
class AliHMPIDRecoParamV1;
class TTreeSRedirector;
class AliHMPIDTracker : public AliTracker
{
public:
AliHMPIDTracker();
virtual ~AliHMPIDTracker();
AliCluster *GetCluster (Int_t )const {return 0;}
Bool_t GetTrackPoint (Int_t idx,AliTrackPoint &pt)const;
Int_t Clusters2Tracks(AliESDEvent * ) {return 0;}
Int_t LoadClusters (TTree *pCluTr );
Int_t PropagateBack (AliESDEvent *pEsd );
Int_t RefitInward (AliESDEvent * ) {return 0;}
void UnloadClusters ( ) { }
void FillClusterArray(TObjArray* array) const;
static Int_t IntTrkCha (AliESDtrack *pTrk,Float_t &xPc,Float_t &yPc,Float_t &xRa,Float_t &yRa,Float_t &theta,Float_t &phi);
static Int_t IntTrkCha (Int_t ch,AliHMPIDtrack *pTrk,Float_t &xPc,Float_t &yPc,Float_t &xRa,Float_t &yRa,Float_t &theta,Float_t &phi);
Int_t Recon (AliESDEvent *pEsd,TObjArray *pClus,TObjArray *pNmean=0,TObjArray *pQthre=0);
Int_t ReconFromKin (AliESDEvent *pEsd,TObjArray *pClus,TObjArray *pNmean=0,TObjArray *pQthre=0);
Int_t ReconHiddenTrk(AliESDEvent *pEsd,TObjArray *pClus,TObjArray *pNmean=0,TObjArray *pQthre=0);
protected:
TObjArray *fClu;
TTreeSRedirector *fDebugStreamer;
private:
AliHMPIDTracker(const AliHMPIDTracker& r);
AliHMPIDTracker &operator=(const AliHMPIDTracker& r);
ClassDef(AliHMPIDTracker,0)
};
#endif//AliHMPIDTracker_h