]>
Commit | Line | Data |
---|---|---|
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 | ||
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 |