]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGUD/UPC/AliUPCTrack.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGUD / UPC / AliUPCTrack.h
1 #ifndef ALIUPCTRACK_H
2 #define ALIUPCTRACK_H
3
4 //_____________________________________________________________________________
5 //    Class for UPC data
6 //    Author: Jaroslav Adam
7 //_____________________________________________________________________________
8
9 #include "TObject.h"
10
11 class TLorentzVector;
12
13 class AliUPCTrack : public TObject
14 {
15 public:
16   AliUPCTrack();
17
18   virtual ~AliUPCTrack() {};
19
20   void Clear(Option_t * /*option*/ ="");
21
22   //Setters
23   void SetPxPyPz(Double_t p[3]) {fP[0]=p[0]; fP[1]=p[1]; fP[2]=p[2];}
24   void SetCharge(Short_t charge) {fCharge=charge;}
25   void SetMaskMan(UChar_t mask) {fMaskMan=mask;}
26   void SetFilterMap(UInt_t map) {fFilterMap=map;}
27   void SetFilterBit(UInt_t ibit) {fFilterMap |= (1 << ibit);}
28   void SetChi2perNDF(Double_t chi2) {fChi2perNDF=chi2;}
29
30   void SetTPCmomentum(Double_t momentum) {fTPCmomentum=momentum;}
31   void SetTPCsignal(Double_t signal) {fTPCsignal=signal;}
32   void SetTPCNcls(UShort_t ncls) {fTPCncls=ncls;}
33   void SetTPCCrossedRows(Float_t nrows) {fTPCrows=nrows;}
34   void SetTPCNclsF(UShort_t ncls) {fTPCnclsF=ncls;}
35   void SetTPCNclsS(UShort_t ncls) {fTPCnclsS=ncls;}
36
37   void SetITSchi2perNDF(Double_t chi2) {fITSchi2perNDF=chi2;}
38   void SetITSClusterMap(UChar_t cmap) {fITSClusterMap=cmap;}
39
40   void SetImpactParameters(Float_t *p, Float_t *cov);
41   void SetImpactParametersSPD(Float_t *p, Float_t *cov);
42   void SetImpactParametersIP(Float_t *p, Float_t *cov);
43
44   //Getters
45   void GetPxPyPz(Double_t p[3]) const {p[0]=fP[0]; p[1]=fP[1]; p[2]=fP[2];}
46   void GetMomentum(TLorentzVector *v, Double_t mass) const;
47   Short_t GetCharge(void) const { return fCharge; }
48   UChar_t GetMaskMan(void) const { return fMaskMan; }
49   UInt_t GetFilterMap(void) const { return fFilterMap; }
50   Bool_t TestFilterBit(UInt_t filterBit) const {return (Bool_t) ((filterBit & fFilterMap) != 0);}
51   Double_t GetChi2perNDF(void) const { return fChi2perNDF; }
52
53   Double_t GetTPCmomentum(void) const { return fTPCmomentum; }
54   Double_t GetTPCsignal(void) const { return fTPCsignal; }
55   UShort_t GetTPCNcls() const { return fTPCncls; }
56   Float_t GetTPCCrossedRows() const { return fTPCrows; }
57   UShort_t GetTPCNclsF() const { return fTPCnclsF; }
58   UShort_t GetTPCNclsS() const { return fTPCnclsS; }
59
60   Double_t GetITSchi2perNDF(void) const { return fITSchi2perNDF; }
61   UChar_t GetITSClusterMap(void) const { return fITSClusterMap; }
62   Int_t GetITSNcls(void) const;
63
64   void GetImpactParameters(Double_t &xy, Double_t &z) const {xy = (Double_t) fDZ[0]; z = (Double_t) fDZ[1];}
65   void GetImpactParameters(Double_t *p, Double_t *cov) const;
66
67   void GetImpactParametersSPD(Double_t &xy, Double_t &z) const {xy = (Double_t) fdzSPD[0]; z = (Double_t) fdzSPD[1];}
68   void GetImpactParametersSPD(Double_t *p, Double_t *cov) const;
69
70   void GetImpactParametersIP(Double_t &xy, Double_t &z) const {xy = (Double_t) fdzIP[0]; z = (Double_t) fdzIP[1];}
71   void GetImpactParametersIP(Double_t *p, Double_t *cov) const;
72
73 protected:
74   AliUPCTrack(const AliUPCTrack &o);
75   AliUPCTrack &operator=(const AliUPCTrack &o);
76
77   Double_t fP[3]; // momentum px, py, pz
78   Short_t fCharge; // track charge
79   UChar_t fMaskMan; // 8-bit filter mask, manual fill
80   UInt_t fFilterMap; // // filter information, one bit per set of cuts, 32 bit
81   Double_t fChi2perNDF; // chi2/NDF of momentum fit
82   Double_t fTPCmomentum; // tpc momentum
83   Double_t fTPCsignal; // tpc dEdx signal
84   UShort_t fTPCncls; // number of clusters assigned in the TPC
85   Float_t fTPCrows; // number of of crossed raws in TPC
86   UShort_t fTPCnclsF; // number of findable clusters in the TPC
87   UShort_t fTPCnclsS; // number of shared clusters in the TPC
88   Double_t fITSchi2perNDF; // chi2 in ITS per cluster
89   UChar_t fITSClusterMap; // map of clusters, one bit per a layer
90   Float_t fDZ[2]; // impact parameters in XY and Z to default primary vertex
91   Float_t fCov[3]; // Covariance matrix of the impact parameters
92   Float_t fdzSPD[2]; // SPD impact parameters in XY and Z
93   Float_t fCovSPD[3]; // Covariance matrix of the impact parameters to the SPD vertex
94   Float_t fdzIP[2]; // impact parameters in XY and Z to nominal interaction point
95   Float_t fCovIP[3]; // Covariance matrix of the impact parameters to nominal interaction point
96
97   ClassDef(AliUPCTrack,1)
98 };
99
100 #endif
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119