EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SvtxTrackState_v1.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file SvtxTrackState_v1.h
1 #ifndef TRACKBASEHISTORIC_SVTXTRACKSTATEV1_H
2 #define TRACKBASEHISTORIC_SVTXTRACKSTATEV1_H
3 
4 #include "SvtxTrackState.h"
5 
6 #include <cmath>
7 #include <iostream>
8 #include <string> // for string, basic_string
9 
10 class PHObject;
11 
13 {
14  public:
15  SvtxTrackState_v1(float pathlength = 0.0);
16  ~SvtxTrackState_v1() override {}
17 
18  // The "standard PHObject response" functions...
19  void identify(std::ostream &os = std::cout) const override;
20  void Reset() override { *this = SvtxTrackState_v1(0.0); }
21  int isValid() const override { return 1; }
22  PHObject *CloneMe() const override { return new SvtxTrackState_v1(*this); }
23 
24  float get_pathlength() const override { return _pathlength; }
25 
26  float get_x() const override { return _pos[0]; }
27  void set_x(float x) override { _pos[0] = x; }
28 
29  float get_y() const override { return _pos[1]; }
30  void set_y(float y) override { _pos[1] = y; }
31 
32  float get_z() const override { return _pos[2]; }
33  void set_z(float z) override { _pos[2] = z; }
34 
35  float get_pos(unsigned int i) const override { return _pos[i]; }
36 
37  float get_px() const override { return _mom[0]; }
38  void set_px(float px) override { _mom[0] = px; }
39 
40  float get_py() const override { return _mom[1]; }
41  void set_py(float py) override { _mom[1] = py; }
42 
43  float get_pz() const override { return _mom[2]; }
44  void set_pz(float pz) override { _mom[2] = pz; }
45 
46  float get_mom(unsigned int i) const override { return _mom[i]; }
47 
48  float get_p() const override { return sqrt(pow(get_px(), 2) + pow(get_py(), 2) + pow(get_pz(), 2)); }
49  float get_pt() const override { return sqrt(pow(get_px(), 2) + pow(get_py(), 2)); }
50  float get_eta() const override { return asinh(get_pz() / get_pt()); }
51  float get_phi() const override { return atan2(get_py(), get_px()); }
52 
53  float get_error(unsigned int i, unsigned int j) const override;
54  void set_error(unsigned int i, unsigned int j, float value) override;
55 
56  std::string get_name() const override { return state_name; }
57  void set_name(const std::string &name) override { state_name = name; }
58 
59  float get_rphi_error() const override;
60  float get_phi_error() const override;
61  float get_z_error() const override;
62 
64 
65  private:
66  float _pathlength;
67  float _pos[3];
68  float _mom[3];
69  float _covar[21]; // 6x6 triangular packed storage
70 
71  std::string state_name;
72 
74 };
75 
76 #endif