PandaRoot
PndCAMCPoint.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 //-*- Mode: C++ -*-
14 // ************************************************************************
15 // This file is property of and copyright by the ALICE HLT Project *
16 // ALICE Experiment at CERN, All rights reserved. *
17 // See cxx source for full Copyright notice *
18 // *
19 //*************************************************************************
20 #ifdef DO_TPCCATRACKER_EFF_PERFORMANCE
21 
22 #ifndef PNDCAMCPOINT_H
23 #define PNDCAMCPOINT_H
24 
25 #include "PndCADef.h"
26 #include <vector>
27 
28 #include <iostream>
29 using std::istream;
30 using std::ostream;
31 
36 class PndCAMCPoint {
37  public:
38  PndCAMCPoint();
39 
40  float X() const { return fX; }
41  float Y() const { return fY; }
42  float Z() const { return fZ; }
43  float Sx() const { return fSx; }
44  float Sy() const { return fSy; }
45  float Sz() const { return fSz; }
46  float Time() const { return fTime; }
47  int ISlice() const { return fISlice; }
48  int TrackID() const { return fTrackID; }
49 
50  void SetX(float v) { fX = v; }
51  void SetY(float v) { fY = v; }
52  void SetZ(float v) { fZ = v; }
53  void SetSx(float v) { fSx = v; }
54  void SetSy(float v) { fSy = v; }
55  void SetSz(float v) { fSz = v; }
56  void SetTime(float v) { fTime = v; }
57  void SetISlice(int v) { fISlice = v; }
58  void SetTrackID(int v) { fTrackID = v; }
59 
60  static bool Compare(const PndCAMCPoint &p1, const PndCAMCPoint &p2) { return (p1.fTrackID < p2.fTrackID); }
61 
62  protected:
63  float fX; //* global X position
64  float fY; //* global Y position
65  float fZ; //* global Z position
66  float fSx; //* slice X position
67  float fSy; //* slice Y position
68  float fSz; //* slice Z position
69  float fTime; //* time
70  int fISlice; //* slice number
71  int fTrackID; //* mc track number
72 };
73 
78 class PndCALocalMCPoint {
79  public:
80  PndCALocalMCPoint(){};
81  ~PndCALocalMCPoint(){};
82 
83  float X() const { return fX; } // global coordinates
84  float Y() const { return fY; }
85  float Z() const { return fZ; }
86  float Px() const { return fPx; }
87  float Py() const { return fPy; }
88  float Pz() const { return fPz; }
89  float QP() const { return fQP; }
90  int ISlice() const { return fISlice; }
91  int IRow() const { return fIRow; }
92  int TrackI() const { return fTrackI; }
93  int TrackID() const { return fTrackID; }
94 
95  void SetX(float v) { fX = v; }
96  void SetY(float v) { fY = v; }
97  void SetZ(float v) { fZ = v; }
98  void SetPx(float v) { fPx = v; }
99  void SetPy(float v) { fPy = v; }
100  void SetPz(float v) { fPz = v; }
101  void SetQP(float v) { fQP = v; }
102  void SetISlice(int v) { fISlice = v; }
103  void SetIRow(int v) { fIRow = v; }
104  void SetTrackI(int v) { fTrackI = v; }
105  void SetTrackID(int v) { fTrackID = v; }
106 
107  void RotateXY(float alpha);
108 
109  static bool Compare(const PndCALocalMCPoint &p1, const PndCALocalMCPoint &p2) { return (p1.fTrackID < p2.fTrackID); }
110 
111  friend ostream &operator<<(ostream &out, const PndCALocalMCPoint &a);
112  friend istream &operator>>(istream &in, PndCALocalMCPoint &a);
113 
114  protected:
115  float fX; //* local X position
116  float fY; //* local Y position
117  float fZ; //* local Z position
118  float fPx; //* local momentum projection - Px
119  float fPy;
120  float fPz;
121  float fQP; //* Q/P
122 
123  float fAngle; // angle of the module
124  float fErr2Z, fErr2Y; // errors for correspondent measurement
125  int fISlice; //* slice number
126  int fIRow;
127  int fTrackI; //* mc track index
128  int fTrackID; //* mc track simulation ID
129  public:
130  std::vector<int> fHits;
131 };
132 
133 #endif
134 
135 #endif
basic_istream< char, char_traits< char > > istream
std::ostream & operator<<(std::ostream &o, const PndEventInfo &)
__m128 v
Definition: P4_F32vec4.h:15
std::istream & operator>>(std::istream &stream, RhoVector3Err &verr)
basic_ostream< char, char_traits< char > > ostream
double alpha
Definition: f_Init.h:31