#ifndef ALITRACKCOMPARISON_H
#define ALITRACKCOMPARISON_H
#include "TNamed.h"
#include "TMatrixDfwd.h"
class THnSparse;
class TCollection;
class AliExternalTrackParam;
class AliTrackPointArray;
class AliTrackPoint;
class TParticle;
class AliTrackReference;
class TObjArray;
class TTreeSRedirector;
class AliTrackComparison:public TNamed {
public:
AliTrackComparison();
AliTrackComparison(const Text_t *name, const Text_t *title);
AliTrackComparison(const AliTrackComparison& comp);
AliTrackComparison& operator=(const AliTrackComparison& comp);
virtual ~AliTrackComparison();
void Init();
Int_t AddTracks(AliExternalTrackParam *param0, AliExternalTrackParam *param1, Double_t mass);
Int_t AddTracks(AliTrackReference *ref0, AliTrackReference *ref1, Double_t mass, Int_t charge);
Int_t AddTracks(AliExternalTrackParam *param0, AliTrackPoint *point1, Double_t mass, Double_t energy, Double_t *vxyz);
AliExternalTrackParam *MakeTrack(const AliTrackReference *ref, Int_t charge);
Bool_t PropagateToPoint(AliExternalTrackParam *param0,AliExternalTrackParam *param1, Double_t mass);
void SetStep(Double_t step){fStep=step;}
void SetRangeDY(Double_t lowBinDY, Double_t upBinDY) {fLowBinDY=lowBinDY,fUpBinDY=upBinDY;}
void SetRangeDZ(Double_t lowBinDZ, Double_t upBinDZ) {fLowBinDZ=lowBinDZ,fUpBinDZ=upBinDZ;}
void SetRangeDSnp(Double_t lowBinDSnp, Double_t upBinDSnp){fLowBinDSnp=lowBinDSnp;fUpBinDSnp=upBinDSnp;}
void SetRangeDTheta(Double_t lowBinDTheta, Double_t upBinDTheta) {fLowBinDTheta=lowBinDTheta;fUpBinDTheta=upBinDTheta;}
void SetRange1Pt(Double_t lowBin1Pt, Double_t upBin1Pt) {fLowBin1Pt=lowBin1Pt;fUpBin1Pt=upBin1Pt;}
void SetRange1PtLoss(Double_t lowBin1PtLoss, Double_t upBin1PtLoss) {fLowBin1PtLoss=lowBin1PtLoss;fUpBin1PtLoss=upBin1PtLoss;}
void SetNBins(Int_t nBinsDY, Int_t nBinsDZ, Int_t nBinsDSnp, Int_t nBinsDTheta, Int_t nBins1Pt, Int_t nBins1PtLoss)
{
fNBinsDY=nBinsDY;
fNBinsDZ=nBinsDZ;
fNBinsDSnp=nBinsDSnp;
fNBinsDTheta=nBinsDTheta;
fNBins1Pt=nBins1Pt;
fNBins1PtLoss=nBins1PtLoss;
}
void SetLayerID(Double_t layerID) {fLayerID=layerID;}
void SetFillAll(Bool_t fillAll) {fFillAll=fillAll;}
void FillHistos(AliExternalTrackParam *param0, AliExternalTrackParam *param1, Double_t tr1Pt);
THnSparse *GetHnSparse(Int_t index) {return fResolHisto[index];}
void MakeDistortionMap(Double_t refX, Int_t type);
void SetNCombineBin(Int_t nCombineBin) {fNCombineBin=nCombineBin;}
virtual Long64_t Merge(TCollection *const li);
virtual void Add(AliTrackComparison *const comp);
void Analyze();
protected:
void MakeHistos();
Double_t fStep;
Double_t fLowBinDY;
Double_t fUpBinDY;
Double_t fLowBinDZ;
Double_t fUpBinDZ;
Double_t fLowBinDSnp;
Double_t fUpBinDSnp;
Double_t fLowBinDTheta;
Double_t fUpBinDTheta;
Double_t fLowBin1Pt;
Double_t fUpBin1Pt;
Double_t fLowBin1PtLoss;
Double_t fUpBin1PtLoss;
Int_t fNBinsDY;
Int_t fNBinsDZ;
Int_t fNBinsDSnp;
Int_t fNBinsDTheta;
Int_t fNBins1Pt;
Int_t fNBins1PtLoss;
Double_t fLayerID;
Bool_t fFillAll;
Int_t fNCombineBin;
THnSparse *fResolHisto[6];
ClassDef(AliTrackComparison, 4);
};
#endif