some more updates
[u/mrichter/AliRoot.git] / PWGPP / AliTrackComparison.h
CommitLineData
bdf94dc3 1#ifndef ALITRACKCOMPARISON_H
2#define ALITRACKCOMPARISON_H
3
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
11//
12// Anthor: R.Ma, M.Ivanov 02/04/2011
13//--------------------------------------------------------------------
14
15#include "TNamed.h"
16#include "TMatrixDfwd.h"
17class THnSparse;
18class TCollection;
19class AliExternalTrackParam;
20class AliTrackPointArray;
21class AliTrackPoint;
22class TParticle;
23class AliTrackReference;
24class TObjArray;
25class TTreeSRedirector;
26
27class AliTrackComparison:public TNamed {
28public:
29 AliTrackComparison();
30 AliTrackComparison(const Text_t *name, const Text_t *title);
31 AliTrackComparison(const AliTrackComparison& comp);
32 AliTrackComparison& operator=(const AliTrackComparison& comp);
33 virtual ~AliTrackComparison();
34 //Make histograms
35 void Init();
36
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);
43
44 //Set the step used in extrapolatoin
45 void SetStep(Double_t step){fStep=step;}
46
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;}
54
55
56 //Set number of bins
57 void SetNBins(Int_t nBinsDY, Int_t nBinsDZ, Int_t nBinsDSnp, Int_t nBinsDTheta, Int_t nBins1Pt, Int_t nBins1PtLoss)
58 {
59 fNBinsDY=nBinsDY;
60 fNBinsDZ=nBinsDZ;
61 fNBinsDSnp=nBinsDSnp;
62 fNBinsDTheta=nBinsDTheta;
63 fNBins1Pt=nBins1Pt;
64 fNBins1PtLoss=nBins1PtLoss;
65 }
66
67
68 //Set the layer ID of the detectors. Refer to AliGeomManager.h
69 void SetLayerID(Double_t layerID) {fLayerID=layerID;}
70
71 //Set the flag to fill all the THnSparse's. By default it is kTURE
72 void SetFillAll(Bool_t fillAll) {fFillAll=fillAll;}
73
74 //Fill the THnSparse
75 void FillHistos(AliExternalTrackParam *param0, AliExternalTrackParam *param1, Double_t tr1Pt);
76
77 //Getter
78 THnSparse *GetHnSparse(Int_t index) {return fResolHisto[index];}
79
80 //Used to redirect the output THnSparse into TTreeSRedirector
81 void MakeDistortionMap(Double_t refX, Int_t type);
82
83 //Set number of bins used to combine statistics
84 void SetNCombineBin(Int_t nCombineBin) {fNCombineBin=nCombineBin;}
85
86 virtual Long64_t Merge(TCollection *const li);
87 virtual void Add(AliTrackComparison *const comp);
88 void Analyze(); //Not implemented
89
90protected:
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()
114
115 THnSparse *fResolHisto[6];//Output THnSparse
116
117 ClassDef(AliTrackComparison, 4);
118};
119
120#endif
121
122