PandaRoot
PndFTSCAMCPoint.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 
21 #ifndef PNDFTSCAMCPOINT_H
22 #define PNDFTSCAMCPOINT_H
23 
24 #include "PndFTSCADef.h"
25 #include <vector>
26 
27 #include <iostream>
28 using std::istream;
29 using std::ostream;
30 
31 class PndFtsPoint;
32 
38  public:
40 
41  float X() const { return fX; }
42  float Y() const { return fY; }
43  float Z() const { return fZ; }
44  float Sx() const { return fSx; }
45  float Sy() const { return fSy; }
46  float Sz() const { return fSz; }
47  float Time() const { return fTime; }
48  int ISlice() const { return fISlice; }
49  int TrackID() const { return fTrackID; }
50 
51  void SetX(float v) { fX = v; }
52  void SetY(float v) { fY = v; }
53  void SetZ(float v) { fZ = v; }
54  void SetSx(float v) { fSx = v; }
55  void SetSy(float v) { fSy = v; }
56  void SetSz(float v) { fSz = v; }
57  void SetTime(float v) { fTime = v; }
58  void SetISlice(int v) { fISlice = v; }
59  void SetTrackID(int v) { fTrackID = v; }
60 
61  static bool Compare(const PndFTSCAMCPoint &p1, const PndFTSCAMCPoint &p2) { return (p1.fTrackID < p2.fTrackID); }
62 
63  protected:
64  float fX; //* global X position
65  float fY; //* global Y position
66  float fZ; //* global Z position
67  float fSx; //* slice X position
68  float fSy; //* slice Y position
69  float fSz; //* slice Z position
70  float fTime; //* time
71  int fISlice; //* slice number
72  int fTrackID; //* mc track number
73 };
74 
80  public:
83 
84  void SetPoint(PndFtsPoint *ppp, Double_t qq);
85  PndFTSCALocalMCPoint &operator=(const PndFTSCALocalMCPoint &rhs);
86 
87  float X() const { return fX; } // global coordinates
88  float Y() const { return fY; }
89  float Z() const { return fZ; }
90  float Px() const { return fPx; }
91  float Py() const { return fPy; }
92  float Pz() const { return fPz; }
93  float QP() const { return fQP; }
94  int ISlice() const { return fISlice; }
95  int IRow() const { return fIRow; }
96  int TrackI() const { return fTrackI; }
97  int TrackID() const { return fTrackID; }
98 
99  float Angle() const { return fAngle; }
100  float Err2Z() const { return fErr2Z; }
101  float Err2Y() const { return fErr2Y; }
102 
103  void SetX(float v) { fX = v; }
104  void SetY(float v) { fY = v; }
105  void SetZ(float v) { fZ = v; }
106  void SetPx(float v) { fPx = v; }
107  void SetPy(float v) { fPy = v; }
108  void SetPz(float v) { fPz = v; }
109  void SetQP(float v) { fQP = v; }
110  void SetISlice(int v) { fISlice = v; }
111  void SetIRow(int v) { fIRow = v; }
112  void SetTrackI(int v) { fTrackI = v; }
113  void SetTrackID(int v) { fTrackID = v; }
114 
115  void SetAngle(float v) { fAngle = v; }
116  void SetErr2Z(float v) { fErr2Z = v; }
117  void SetErr2Y(float v) { fErr2Y = v; }
118 
119  void RotateXY(float alpha);
120 
121  static bool Compare(const PndFTSCALocalMCPoint &p1, const PndFTSCALocalMCPoint &p2) { return (p1.fTrackID < p2.fTrackID); }
122 
123  friend ostream &operator<<(ostream &out, const PndFTSCALocalMCPoint &a);
124  friend istream &operator>>(istream &in, PndFTSCALocalMCPoint &a);
125 
126  protected:
127  float fX; //* local X position
128  float fY; //* local Y position
129  float fZ; //* local Z position
130  float fPx; //* local momentum projection - Px
131  float fPy;
132  float fPz;
133  float fQP; //* Q/P
134 
135  float fAngle; // angle of the module
136  float fErr2Z, fErr2Y; // errors for correspondent measurement
137  int fISlice; //* slice number
138  int fIRow;
139  int fTrackI; //* mc track index
140  int fTrackID; //* mc track simulation ID
141  public:
142  std::vector<int> fHits;
143 };
144 
145 #endif
float Sx() const
void SetISlice(int v)
basic_istream< char, char_traits< char > > istream
int TrackID() const
void SetY(float v)
static bool Compare(const PndFTSCAMCPoint &p1, const PndFTSCAMCPoint &p2)
std::vector< int > fHits
float Y() const
void SetAngle(float v)
float Sz() const
void SetX(float v)
std::ostream & operator<<(std::ostream &o, const PndEventInfo &)
__m128 v
Definition: P4_F32vec4.h:15
void SetSx(float v)
void SetTrackID(int v)
void SetSz(float v)
void SetErr2Y(float v)
static bool Compare(const PndFTSCALocalMCPoint &p1, const PndFTSCALocalMCPoint &p2)
float Z() const
std::istream & operator>>(std::istream &stream, RhoVector3Err &verr)
void SetZ(float v)
void SetSy(float v)
int ISlice() const
void SetErr2Z(float v)
float X() const
void SetTime(float v)
basic_ostream< char, char_traits< char > > ostream
double alpha
Definition: f_Init.h:31
float Sy() const
float Time() const