PandaRoot
PndCAMCPoint.h
Go to the documentation of this file.
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 #ifdef DO_TPCCATRACKER_EFF_PERFORMANCE
9 
10 #ifndef PNDCAMCPOINT_H
11 #define PNDCAMCPOINT_H
12 
13 #include "PndCADef.h"
14 #include <vector>
15 
16 #include <iostream>
17 using std::istream;
18 using std::ostream;
19 
24 class PndCAMCPoint {
25  public:
26  PndCAMCPoint();
27 
28  float X() const { return fX; }
29  float Y() const { return fY; }
30  float Z() const { return fZ; }
31  float Sx() const { return fSx; }
32  float Sy() const { return fSy; }
33  float Sz() const { return fSz; }
34  float Time() const { return fTime; }
35  int ISlice() const { return fISlice; }
36  int TrackID() const { return fTrackID; }
37 
38  void SetX(float v) { fX = v; }
39  void SetY(float v) { fY = v; }
40  void SetZ(float v) { fZ = v; }
41  void SetSx(float v) { fSx = v; }
42  void SetSy(float v) { fSy = v; }
43  void SetSz(float v) { fSz = v; }
44  void SetTime(float v) { fTime = v; }
45  void SetISlice(int v) { fISlice = v; }
46  void SetTrackID(int v) { fTrackID = v; }
47 
48  static bool Compare(const PndCAMCPoint &p1, const PndCAMCPoint &p2) { return (p1.fTrackID < p2.fTrackID); }
49 
50  protected:
51  float fX; //* global X position
52  float fY; //* global Y position
53  float fZ; //* global Z position
54  float fSx; //* slice X position
55  float fSy; //* slice Y position
56  float fSz; //* slice Z position
57  float fTime; //* time
58  int fISlice; //* slice number
59  int fTrackID; //* mc track number
60 };
61 
66 class PndCALocalMCPoint {
67  public:
68  PndCALocalMCPoint(){};
69  ~PndCALocalMCPoint(){};
70 
71  float X() const { return fX; } // global coordinates
72  float Y() const { return fY; }
73  float Z() const { return fZ; }
74  float Px() const { return fPx; }
75  float Py() const { return fPy; }
76  float Pz() const { return fPz; }
77  float QP() const { return fQP; }
78  int ISlice() const { return fISlice; }
79  int IRow() const { return fIRow; }
80  int TrackI() const { return fTrackI; }
81  int TrackID() const { return fTrackID; }
82 
83  void SetX(float v) { fX = v; }
84  void SetY(float v) { fY = v; }
85  void SetZ(float v) { fZ = v; }
86  void SetPx(float v) { fPx = v; }
87  void SetPy(float v) { fPy = v; }
88  void SetPz(float v) { fPz = v; }
89  void SetQP(float v) { fQP = v; }
90  void SetISlice(int v) { fISlice = v; }
91  void SetIRow(int v) { fIRow = v; }
92  void SetTrackI(int v) { fTrackI = v; }
93  void SetTrackID(int v) { fTrackID = v; }
94 
95  void RotateXY(float alpha);
96 
97  static bool Compare(const PndCALocalMCPoint &p1, const PndCALocalMCPoint &p2) { return (p1.fTrackID < p2.fTrackID); }
98 
99  friend ostream &operator<<(ostream &out, const PndCALocalMCPoint &a);
100  friend istream &operator>>(istream &in, PndCALocalMCPoint &a);
101 
102  protected:
103  float fX; //* local X position
104  float fY; //* local Y position
105  float fZ; //* local Z position
106  float fPx; //* local momentum projection - Px
107  float fPy;
108  float fPz;
109  float fQP; //* Q/P
110 
111  float fAngle; // angle of the module
112  float fErr2Z, fErr2Y; // errors for correspondent measurement
113  int fISlice; //* slice number
114  int fIRow;
115  int fTrackI; //* mc track index
116  int fTrackID; //* mc track simulation ID
117  public:
118  std::vector<int> fHits;
119 };
120 
121 #endif
122 
123 #endif
basic_istream< char, char_traits< char > > istream
std::ostream & operator<<(std::ostream &o, const PndEventInfo &)
__m128 v
Definition: P4_F32vec4.h:3
std::istream & operator>>(std::istream &stream, RhoVector3Err &verr)
basic_ostream< char, char_traits< char > > ostream
double alpha
Definition: f_Init.h:7