]>
Commit | Line | Data |
---|---|---|
3e6a7541 | 1 | //-*- Mode: C++ -*- |
2 | // $Id$ | |
3 | ||
4 | #ifndef ALIHLTONLINEESDTRACK_H | |
5 | #define ALIHLTONLINEESDTRACK_H | |
6 | //* This file is property of and copyright by the ALICE HLT Project * | |
7 | //* ALICE Experiment at CERN, All rights reserved. * | |
8 | //* See cxx source for full Copyright notice * | |
9 | ||
10 | /// @file AliHLTOnlineESDtrack.h | |
11 | /// @author Matthias Richter | |
12 | /// @date 2010-10-29 | |
13 | /// @brief A streamlined container class for AliESDtrack. | |
14 | /// @note | |
15 | ||
16 | #include "AliExternalTrackParam.h" | |
17 | #include "AliESDtrack.h" | |
18 | ||
19 | /** | |
20 | * @class AliHLTOnlineESDtrack | |
21 | * @brief Container for AliESDtrack information relevant for HLT. | |
22 | * | |
23 | * The class implements a reduced set of member variables of AliESDtrack | |
24 | * and corresponding transformation functions and operators. | |
25 | * It is used by the custom streamer of AliHLTESDEvent. | |
26 | */ | |
27 | class AliHLTOnlineESDtrack : public AliExternalTrackParam { | |
28 | public: | |
29 | /// standard constructor | |
30 | AliHLTOnlineESDtrack(); | |
31 | /// copy constructor | |
32 | AliHLTOnlineESDtrack(const AliHLTOnlineESDtrack& t); | |
33 | /// destructor | |
34 | virtual ~AliHLTOnlineESDtrack(); | |
35 | ||
36 | AliHLTOnlineESDtrack& operator=(const AliHLTOnlineESDtrack& t); | |
37 | AliHLTOnlineESDtrack& operator=(const AliESDtrack& t); | |
38 | ||
39 | /// overloaded from TObject, print info | |
40 | virtual void Print(const char* options) const; | |
41 | ||
42 | /// overloaded from TObject, more crude data dump | |
43 | virtual void Dump() const; | |
44 | ||
45 | /// overloaded from TObject, clear object | |
46 | virtual void Clear(Option_t * option=""); | |
47 | ||
48 | /// overloaded from TObject, clone object | |
49 | virtual TObject *Clone(const char *newname="") const; | |
50 | ||
51 | /// overloaded from TObject, copy object | |
52 | virtual void Copy(TObject &object) const; | |
53 | ||
54 | static void CopyInternalParam(AliExternalTrackParam* &internalParam, const AliExternalTrackParam* pSrc); | |
55 | ||
56 | /////////////////////////////////////////////////////////////////////////// | |
57 | // access methods as in AliESDtrack | |
58 | // | |
59 | const AliExternalTrackParam * GetConstrainedParam() const {return fCp;} | |
60 | const AliExternalTrackParam * GetInnerParam() const { return fIp;} | |
61 | const AliExternalTrackParam * GetTPCInnerParam() const {return fTPCInner;} | |
62 | const AliExternalTrackParam * GetOuterParam() const { return fOp;} | |
63 | ||
64 | ULong_t GetStatus() const {return fFlags;} | |
65 | Int_t GetID() const { return fID;} | |
66 | Int_t GetLabel() const {return fLabel;} | |
67 | Int_t GetTPCLabel() const {return fTPCLabel;} | |
68 | Int_t GetITSLabel() const {return fITSLabel;} | |
69 | Int_t GetTRDLabel() const {return fTRDLabel;} | |
70 | Float_t GetIntegratedLength() const {return fTrackLength;} | |
71 | void GetImpactParametersTPC(Float_t p[2], Float_t cov[3]) const { | |
72 | p[0]=fdTPC; p[1]=fzTPC; cov[0]=fCddTPC; cov[1]=fCdzTPC; cov[2]=fCzzTPC; | |
73 | } | |
74 | Float_t GetConstrainedChi2TPC() const {return fCchi2TPC;} | |
75 | void GetImpactParameters(Float_t p[2], Float_t cov[3]) const { | |
76 | p[0]=fD; p[1]=fZ; cov[0]=fCdd; cov[1]=fCdz; cov[2]=fCzz; | |
77 | } | |
78 | Float_t GetConstrainedChi2() const {return fCchi2;} | |
79 | ||
80 | Float_t GetITSchi2() const {return fITSchi2;} | |
81 | Float_t GetTPCchi2() const {return fTPCchi2;} | |
82 | Float_t GetTPCchi2Iter1() const {return fTPCchi2Iter1;} | |
83 | UShort_t GetTPCNcls() const { return fTPCncls;} | |
84 | UShort_t GetTPCNclsF() const { return fTPCnclsF;} | |
85 | UShort_t GetTPCNclsIter1() const { return fTPCnclsIter1;} | |
86 | UShort_t GetTPCNclsFIter1() const { return fTPCnclsFIter1;} | |
87 | UShort_t GetITSNcls() const { return fITSncls;} | |
88 | UChar_t GetTRDncls() const {return fTRDncls;} | |
89 | UChar_t GetTRDncls0() const {return fTRDncls0;} | |
90 | ||
91 | private: | |
92 | // reduced set of parameters from AliESDtrack | |
93 | AliExternalTrackParam *fCp; // Track parameters constrained to the primary vertex | |
94 | AliExternalTrackParam *fIp; // Track parameters estimated at the inner wall of TPC | |
95 | AliExternalTrackParam *fTPCInner; // Track parameters estimated at the inner wall of TPC using the TPC stand-alone | |
96 | AliExternalTrackParam *fOp; // Track parameters estimated at the point of maximal radial coordinate reached during the tracking | |
97 | ||
98 | ULong_t fFlags; // Reconstruction status flags | |
99 | Int_t fID; // Unique ID of the track | |
100 | Int_t fLabel; // Track label | |
101 | Int_t fITSLabel; // label according ITS | |
102 | Int_t fTPCLabel; // label according TPC | |
103 | Int_t fTRDLabel; // label according TRD | |
104 | ||
105 | Float_t fTrackLength; // Track length | |
106 | ||
107 | Float_t fdTPC; // TPC-only impact parameter in XY plane | |
108 | Float_t fzTPC; // TPC-only impact parameter in Z | |
109 | Float_t fCddTPC,fCdzTPC,fCzzTPC; // Covariance matrix of the TPC-only impact parameters | |
110 | Float_t fCchi2TPC; // [0.,0.,8] TPC-only chi2 at the primary vertex | |
111 | ||
112 | Float_t fD; // Impact parameter in XY plane | |
113 | Float_t fZ; // Impact parameter in Z | |
114 | Float_t fCdd,fCdz,fCzz; // Covariance matrix of the impact parameters | |
115 | Float_t fCchi2; // [0.,0.,8] chi2 at the primary vertex | |
116 | ||
117 | Float_t fITSchi2; // [0.,0.,8] chi2 in the ITS | |
118 | Float_t fTPCchi2; // [0.,0.,8] chi2 in the TPC | |
119 | Float_t fTPCchi2Iter1; // [0.,0.,8] chi2 in the TPC | |
120 | ||
121 | UShort_t fTPCncls; // number of clusters assigned in the TPC | |
122 | UShort_t fTPCnclsF; // number of findable clusters in the TPC | |
123 | UShort_t fTPCnclsIter1; // number of clusters assigned in the TPC - iteration 1 | |
124 | UShort_t fTPCnclsFIter1; // number of findable clusters in the TPC - iteration 1 | |
125 | ||
126 | Char_t fITSncls; // number of clusters assigned in the ITS | |
127 | UChar_t fITSClusterMap; // map of clusters, one bit per a layer | |
128 | UChar_t fTRDncls; // number of clusters assigned in the TRD | |
129 | UChar_t fTRDncls0; // number of clusters assigned in the TRD before first material cross | |
130 | ||
131 | ClassDef(AliHLTOnlineESDtrack, 1); // AliESDtrack instance optimized for HLT | |
132 | }; | |
133 | ||
134 | #endif |