]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/rec/AliHLTOnlineESDtrack.h
Additional libraries to link hltdimserver
[u/mrichter/AliRoot.git] / HLT / rec / AliHLTOnlineESDtrack.h
CommitLineData
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 */
27class 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
91private:
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