]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGUD/UPC/AliUPCTrack.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGUD / UPC / AliUPCTrack.h
CommitLineData
05e1b6ea 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
11class TLorentzVector;
12
13class AliUPCTrack : public TObject
14{
15public:
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
73protected:
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