]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/MUON/AliHLTMUONTracksBlockStruct.h
Disable retireval of DCS data points from AliShuttle for SDD
[u/mrichter/AliRoot.git] / HLT / MUON / AliHLTMUONTracksBlockStruct.h
1 #ifndef ALIHLTMUONTRACKSBLOCKSTRUCT_H
2 #define ALIHLTMUONTRACKSBLOCKSTRUCT_H
3 /* This file is property of and copyright by the ALICE HLT Project        *
4  * ALICE Experiment at CERN, All rights reserved.                         *
5  * See cxx source for full Copyright notice                               */
6
7 // $Id: AliHLTMUONTracksBlockStruct.h 36627 2009-11-10 19:21:49Z aszostak $
8
9 ///
10 /// @file   AliHLTMUONTracksBlockStruct.h
11 /// @author Artur Szostak <artursz@iafrica.com>
12 /// @date   10 Feb 2010
13 /// @brief  Definition the internal dimuon HLT data block for full tracks.
14 ///
15 /// The tracks data block is an internal dimuon HLT data block structure generated
16 /// by the tracker component to store found tracks.
17 /// The structures are defined with C linkage since C generally gives us more
18 /// binary compatibility between compilers.
19 ///
20
21 #include "AliHLTMUONRecHitsBlockStruct.h"
22
23 extern "C"
24 {
25
26 /**
27  * Track structure containing information about a track found by the tracker.
28  */
29 struct AliHLTMUONTrackStruct
30 {
31         AliHLTInt32_t fId; /// Each track should have an ID number unique for a given event. -1 == invalid.
32
33         AliHLTInt32_t fTrigRec; /// The associated trigger record ID that was matched to the track.
34
35         // The flags word constains the following bit fields (bit 31 is most
36         // significant):
37         // bits:  [31][30][29 -- 16][  15   ][  14   ]...[  1   ][  0   ]
38         // field:  -   +   reserved  hst[15]  hst[14]     hst[1]  hst[0]
39         // Where fields hst[i] indicates if fHit[i] has been filled/set.
40         // Reserved bits should be set to zero.
41         // Particle sign: if '-' is set then particle has minus sign.
42         //                if '+' is set then particle has negative sign.
43         // Either '+' or '-' should be set and if neither then the particle
44         // sign is unknown.
45         AliHLTUInt32_t fFlags;  /// Bit fields for the track structure.
46
47         AliHLTFloat32_t fPx; /// Particle's momentum X component in GeV/c.
48         AliHLTFloat32_t fPy; /// Particle's momentum Y component in GeV/c.
49         AliHLTFloat32_t fPz; /// Particle's momentum Z component in GeV/c.
50         
51         AliHLTFloat32_t fInverseBendingMomentum; /// One over the momentum of the fitted track [GeV/c].
52         AliHLTFloat32_t fThetaX; /// The slope of the fitted track in the non-bending plane.
53         AliHLTFloat32_t fThetaY; /// The slope of the fitted track in the bending plane.
54         AliHLTFloat32_t fX; /// Non-bending plane coordinate for the distance of closest approach (DCA) [cm].
55         AliHLTFloat32_t fY; /// Bending plane coordinate for the DCA [cm].
56         AliHLTFloat32_t fZ; /// Z coordinate for the DCA [cm].
57         
58         // Chi squared of the track fit.
59         // If set to -1 then no fit was done and the momentum vector and DCA coordinate is invalid.
60         AliHLTFloat32_t fChi2; /// The chi squared of the fit of fHit points to the track model.
61
62         AliHLTMUONRecHitStruct fHit[16];  /// Particle hit coordinates found by the hit reconstruction stage.
63 };
64
65 /**
66  * AliHLTMUONTracksBlockStruct defines the format of the internal tracks data block.
67  */
68 struct AliHLTMUONTracksBlockStruct
69 {
70         AliHLTMUONDataBlockHeader fHeader; // Common data block header.
71
72         // Array of tracks.
73         //AliHLTMUONTrackStruct fTrack[/*fHeader.fNrecords*/];
74 };
75
76 } // extern "C"
77
78
79 /**
80  * Stream operator for usage with std::ostream classes which prints the track
81  * information in the following format:
82  *  {fId = xx, fTrigRec = yy, fFlags = 0xZZ, fPx = uu, fPy = vv, fPz = ww,
83  *   fInverseBendingMomentum = pp, fThetaX = nn, fThetaY = mm, fX = kk, fY = ll, fZ = hh,
84  *   fChi2 = ss, fHit[0] = {...}, fHit[1] = {...}, ... fHit[14] = {...}, fHit[15] = {...}}
85  */
86 std::ostream& operator << (
87                 std::ostream& stream, const AliHLTMUONTrackStruct& trigrec
88         );
89
90 /**
91  * Stream operator for usage with std::ostream classes which prints the
92  * AliHLTMUONTracksBlockStruct in the following format:
93  *   {fHeader = xx, fTrack[] = [{..}, {..}, ...]}
94  */
95 std::ostream& operator << (
96                 std::ostream& stream, const AliHLTMUONTracksBlockStruct& block
97         );
98
99
100 bool operator == (
101                 const AliHLTMUONTrackStruct& a,
102                 const AliHLTMUONTrackStruct& b
103         );
104
105 inline bool operator != (
106                 const AliHLTMUONTrackStruct& a,
107                 const AliHLTMUONTrackStruct& b
108         )
109 {
110         return not operator == (a, b);
111 }
112
113
114 bool operator == (
115                 const AliHLTMUONTracksBlockStruct& a,
116                 const AliHLTMUONTracksBlockStruct& b
117         );
118
119 inline bool operator != (
120                 const AliHLTMUONTracksBlockStruct& a,
121                 const AliHLTMUONTracksBlockStruct& b
122         )
123 {
124         return not operator == (a, b);
125 }
126
127 #endif // ALIHLTMUONTRACKSBLOCKSTRUCT_H