Line data Source code
1 : //-*- Mode: C++ -*-
2 : // $Id$
3 :
4 : #ifndef ALIHLTTRDTRACKLET_H
5 : #define ALIHLTTRDTRACKLET_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 : #include "AliTRDseedV1.h"
11 : #include "AliHLTDataTypes.h"
12 : #include "AliHLTLogging.h"
13 : #include "AliHLTTRDCluster.h"
14 :
15 : class AliHLTTRDTracklet
16 : {
17 : public:
18 : AliHLTTRDTracklet();
19 : AliHLTTRDTracklet(const AliTRDseedV1* const inTracklet);
20 :
21 : void CopyDataMembers(const AliTRDseedV1* const inTracklet);
22 : void ExportTRDTracklet(AliTRDseedV1* const outTracklet) const;
23 : AliHLTUInt8_t *GetEndPointer() const // Returns pointer to the end of the tracklet
24 0 : { return ((AliHLTUInt8_t *)this + fSize); };
25 0 : AliHLTUInt32_t GetSize() const { return fSize; };
26 : void Print(Bool_t printClusters = kTRUE) const;
27 : static AliHLTUInt32_t SaveAt(AliHLTUInt8_t *const block, const AliTRDseedV1* const inTracklet);
28 : static AliHLTUInt32_t LoadFrom(AliTRDseedV1 *const outTracklet, const AliHLTUInt8_t *const block);
29 :
30 : private:
31 : AliHLTTRDTracklet(const AliHLTTRDTracklet&);
32 : AliHLTTRDTracklet& operator=(const AliHLTTRDTracklet&);
33 : void InitArrays();
34 :
35 : /* Defenitely need */
36 : UInt_t fN; // number of clusters attached/used/shared
37 : Float_t fdX; // length of time bin
38 : Float_t fYref[2]; // Reference y
39 : Float_t fZref[2]; // Reference z
40 : Float_t fS2Y; // estimated resolution in the r-phi direction
41 : Float_t fPt; // Momentum estimate for tracklet [GeV/c]
42 :
43 : /* Probably need */
44 : Float_t fPad[3]; // local pad definition : length/width/tilt
45 : Float_t fX0; // X0 position
46 : Float_t fYfit[2]; // Y fit position +derivation
47 : Float_t fZfit[2]; // Z fit position
48 : Float_t fC[2]; // Curvature Rieman[0] Vertex[1]
49 : Float_t fChi2; // Global chi2
50 : Float_t fProb[AliPID::kSPECIES];// PID probabilities
51 :
52 : /* Not needed */
53 : // Float_t fExB; // tg(a_L) @ tracklet location
54 : // Float_t fVD; // drift velocity @ tracklet location
55 : // Float_t fT0; // time 0 @ tracklet location
56 : // Float_t fS2PRF; // sigma^2 PRF for xd->0 and phi=a_L
57 : // Float_t fDiffL; // longitudinal diffusion coefficient
58 : // Float_t fDiffT; // transversal diffusion coefficient
59 : // Float_t fX; // radial position of the tracklet
60 : // Float_t fY; // r-phi position of the tracklet
61 : // Float_t fZ; // z position of the tracklet
62 : // Float_t fS2Z; // estimated resolution in the z direction
63 : // Float_t fdEdx[AliTRDseedV1::kNslices]; // dE/dx measurements for tracklet
64 : // Float_t fRefCov[7]; // covariance matrix of the track in the yz plane + the rest of the diagonal elements
65 : // Float_t fCov[3]; // covariance matrix of the tracklet in the xy plane
66 :
67 : UChar_t fPos[AliTRDseedV1::kNclusters]; // position of the cluster in the original array
68 :
69 : Short_t fDet; // TRD detector
70 : UChar_t fBits; // Bits of the tracklet
71 : AliHLTUInt8_t fCount; // Number of clusters saved in the open array
72 : AliHLTUInt32_t fSize; // Size of the tracklet with clusters in the memory
73 :
74 : #if defined(__HP_aCC) || defined(__DECCXX) || defined(__SUNPRO_CC)
75 : AliHLTTRDExtCluster fClusters[1]; // Open array of clusters
76 : #else
77 : AliHLTTRDExtCluster fClusters[0]; // Open array of clusters
78 : #endif
79 :
80 : };
81 :
82 : #endif
|