Line data Source code
1 : //-*- Mode: C++ -*-
2 : // ************************************************************************
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 : //*************************************************************************
8 :
9 : #ifndef ALIHLTTPCCAMCPOINT_H
10 : #define ALIHLTTPCCAMCPOINT_H
11 :
12 : #include "AliHLTTPCCADef.h"
13 :
14 :
15 : /**
16 : * @class AliHLTTPCCAMCPoint
17 : * store MC point information for AliHLTTPCCAPerformance
18 : */
19 : class AliHLTTPCCAMCPoint
20 : {
21 : public:
22 :
23 : AliHLTTPCCAMCPoint();
24 :
25 0 : float X() const { return fX; }
26 0 : float Y() const { return fY; }
27 0 : float Z() const { return fZ; }
28 0 : float Sx() const { return fSx; }
29 0 : float Sy() const { return fSy; }
30 0 : float Sz() const { return fSz; }
31 0 : float Time() const { return fTime; }
32 0 : int ISlice() const { return fISlice; }
33 0 : int TrackID() const { return fTrackID; }
34 :
35 0 : void SetX( float v ) { fX = v; }
36 0 : void SetY( float v ) { fY = v; }
37 0 : void SetZ( float v ) { fZ = v; }
38 0 : void SetSx( float v ) { fSx = v; }
39 0 : void SetSy( float v ) { fSy = v; }
40 0 : void SetSz( float v ) { fSz = v; }
41 0 : void SetTime( float v ) { fTime = v; }
42 0 : void SetISlice( int v ) { fISlice = v; }
43 0 : void SetTrackID( int v ) { fTrackID = v; }
44 :
45 : static bool Compare( const AliHLTTPCCAMCPoint &p1, const AliHLTTPCCAMCPoint &p2 ) {
46 0 : if ( p1.fTrackID != p2.fTrackID ) return ( p1.fTrackID < p2.fTrackID );
47 0 : if ( p1.fISlice != p2.fISlice ) return ( p1.fISlice < p2.fISlice );
48 0 : return ( p1.Sx() < p2.Sx() );
49 0 : }
50 :
51 : static bool CompareSlice( const AliHLTTPCCAMCPoint &p, int slice ) {
52 0 : return ( p.ISlice() < slice );
53 : }
54 :
55 : static bool CompareX( const AliHLTTPCCAMCPoint &p, float X ) {
56 0 : return ( p.Sx() < X );
57 : }
58 :
59 : protected:
60 :
61 : float fX; //* global X position
62 : float fY; //* global Y position
63 : float fZ; //* global Z position
64 : float fSx; //* slice X position
65 : float fSy; //* slice Y position
66 : float fSz; //* slice Z position
67 : float fTime; //* time
68 : int fISlice; //* slice number
69 : int fTrackID; //* mc track number
70 : };
71 :
72 : #endif //ALIHLTTPCCAMCPOINT_H
|