1 #ifndef ALITRACKCOMPARISON_H
2 #define ALITRACKCOMPARISON_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6 //-------------------------------------------------------------------
7 // Base class to test the extrapolation performance from TPC to outer
8 // detectors. Several member functions AddTracks() with different
9 // arguments can be called to execute extrapolation and several
10 // THnSparse are filled with residuls and basic track information
12 // Anthor: R.Ma, M.Ivanov 02/04/2011
13 //--------------------------------------------------------------------
16 #include "TMatrixDfwd.h"
19 class AliExternalTrackParam;
20 class AliTrackPointArray;
23 class AliTrackReference;
25 class TTreeSRedirector;
27 class AliTrackComparison:public TNamed {
30 AliTrackComparison(const Text_t *name, const Text_t *title);
31 AliTrackComparison(const AliTrackComparison& comp);
32 AliTrackComparison& operator=(const AliTrackComparison& comp);
33 virtual ~AliTrackComparison();
37 //Main process functions
38 Int_t AddTracks(AliExternalTrackParam *param0, AliExternalTrackParam *param1, Double_t mass);
39 Int_t AddTracks(AliTrackReference *ref0, AliTrackReference *ref1, Double_t mass, Int_t charge);
40 Int_t AddTracks(AliExternalTrackParam *param0, AliTrackPoint *point1, Double_t mass, Double_t energy, Double_t *vxyz);
41 AliExternalTrackParam *MakeTrack(const AliTrackReference *ref, Int_t charge);
42 Bool_t PropagateToPoint(AliExternalTrackParam *param0,AliExternalTrackParam *param1, Double_t mass);
44 //Set the step used in extrapolatoin
45 void SetStep(Double_t step){fStep=step;}
47 //Set the range of the first bins of the THnSparse
48 void SetRangeDY(Double_t lowBinDY, Double_t upBinDY) {fLowBinDY=lowBinDY,fUpBinDY=upBinDY;}
49 void SetRangeDZ(Double_t lowBinDZ, Double_t upBinDZ) {fLowBinDZ=lowBinDZ,fUpBinDZ=upBinDZ;}
50 void SetRangeDSnp(Double_t lowBinDSnp, Double_t upBinDSnp){fLowBinDSnp=lowBinDSnp;fUpBinDSnp=upBinDSnp;}
51 void SetRangeDTheta(Double_t lowBinDTheta, Double_t upBinDTheta) {fLowBinDTheta=lowBinDTheta;fUpBinDTheta=upBinDTheta;}
52 void SetRange1Pt(Double_t lowBin1Pt, Double_t upBin1Pt) {fLowBin1Pt=lowBin1Pt;fUpBin1Pt=upBin1Pt;}
53 void SetRange1PtLoss(Double_t lowBin1PtLoss, Double_t upBin1PtLoss) {fLowBin1PtLoss=lowBin1PtLoss;fUpBin1PtLoss=upBin1PtLoss;}
57 void SetNBins(Int_t nBinsDY, Int_t nBinsDZ, Int_t nBinsDSnp, Int_t nBinsDTheta, Int_t nBins1Pt, Int_t nBins1PtLoss)
62 fNBinsDTheta=nBinsDTheta;
64 fNBins1PtLoss=nBins1PtLoss;
68 //Set the layer ID of the detectors. Refer to AliGeomManager.h
69 void SetLayerID(Double_t layerID) {fLayerID=layerID;}
71 //Set the flag to fill all the THnSparse's. By default it is kTURE
72 void SetFillAll(Bool_t fillAll) {fFillAll=fillAll;}
75 void FillHistos(AliExternalTrackParam *param0, AliExternalTrackParam *param1, Double_t tr1Pt);
78 THnSparse *GetHnSparse(Int_t index) {return fResolHisto[index];}
80 //Used to redirect the output THnSparse into TTreeSRedirector
81 void MakeDistortionMap(Double_t refX, Int_t type);
83 //Set number of bins used to combine statistics
84 void SetNCombineBin(Int_t nCombineBin) {fNCombineBin=nCombineBin;}
86 virtual Long64_t Merge(TCollection *const li);
87 virtual void Add(AliTrackComparison *const comp);
88 void Analyze(); //Not implemented
91 void MakeHistos(); //Initialize all the THnSparse
92 Double_t fStep; //Step used in extrapolation
93 Double_t fLowBinDY; //First bin of residual in Y
94 Double_t fUpBinDY; //Last bin of residual in Y
95 Double_t fLowBinDZ; //First bin of residual in Z
96 Double_t fUpBinDZ; //Last bin of residual in Z
97 Double_t fLowBinDSnp; //First bin of residual in sin(phi)
98 Double_t fUpBinDSnp; //Last bin of residual in sin(phi)
99 Double_t fLowBinDTheta; //First bin of residual in Theta
100 Double_t fUpBinDTheta; //Last bin of residual in Theta
101 Double_t fLowBin1Pt; //First bin of residual in 1/pT
102 Double_t fUpBin1Pt; //Last bin of residual in 1/pT
103 Double_t fLowBin1PtLoss; //First bin of corrected energy loss
104 Double_t fUpBin1PtLoss; //Last bin of corrected energy loss
105 Int_t fNBinsDY; //NBins of residual in Y
106 Int_t fNBinsDZ; //NBins of residual in Z
107 Int_t fNBinsDSnp; //NBins of residual in sin(phi)
108 Int_t fNBinsDTheta; //NBins of residual in Theta
109 Int_t fNBins1Pt; //NBins of residual in 1/pT
110 Int_t fNBins1PtLoss; //NBins of corrected energy loss
111 Double_t fLayerID; //Detector layer ID
112 Bool_t fFillAll; //Flag to fill all the THnSparse
113 Int_t fNCombineBin; //Number of bins used to combine statistics in MakeDistortionMap()
115 THnSparse *fResolHisto[6];//Output THnSparse
117 ClassDef(AliTrackComparison, 4);