Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TrkrClusterv2.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file TrkrClusterv2.h
1 
7 #ifndef TRACKBASE_TRKRCLUSTERV2_H
8 #define TRACKBASE_TRKRCLUSTERV2_H
9 
10 #include "TrkrCluster.h"
11 #include "TrkrDefs.h"
12 #include <iostream>
13 
14 class PHObject;
15 
22 class TrkrClusterv2 : public TrkrCluster
23 {
24  public:
25 
27  TrkrClusterv2();
28 
30  ~TrkrClusterv2() override = default;
31 
32  // PHObject virtual overloads
33  void identify(std::ostream& os = std::cout) const override;
34  void Reset() override {}
35  int isValid() const override;
36  PHObject* CloneMe() const override { return new TrkrClusterv2(*this); }
37 
39  void CopyFrom( const TrkrCluster& ) override;
40 
42  void CopyFrom( TrkrCluster* source ) override
43  { CopyFrom( *source ); }
44 
45 
46  //
47  // cluster position
48  //
49  float getX() const override { return m_pos[0]; }
50  void setX(float x) override { m_pos[0] = x; }
51  float getY() const override { return m_pos[1]; }
52  void setY(float y) override { m_pos[1] = y; }
53  float getZ() const override { return m_pos[2]; }
54  void setZ(float z) override { m_pos[2] = z; }
55  float getPosition(int coor) const override { return m_pos[coor]; }
56  void setPosition(int coor, float xi) override { m_pos[coor] = xi; }
57  void setGlobal() override { m_isGlobal = true; }
58  void setLocal() override { m_isGlobal = false; }
59  bool isGlobal() const override { return m_isGlobal; }
60 
61  float getLocalX() const override { return m_local[0]; }
62  void setLocalX(float loc0) override { m_local[0] = loc0; }
63  float getLocalY() const override { return m_local[1]; }
64  void setLocalY(float loc1) override { m_local[1] = loc1; }
65 
67  void setActsLocalError(unsigned int i, unsigned int j, float value) override;
68  float getActsLocalError(unsigned int i, unsigned int j) const override { return m_actsLocalErr[i][j]; }
69  TrkrDefs::subsurfkey getSubSurfKey() const override { return m_subsurfkey; }
71 
72  //
73  // cluster info
74  //
75  unsigned int getAdc() const override { return m_adc; }
76  void setAdc(unsigned int adc) override { m_adc = adc; }
77  float getSize(unsigned int i, unsigned int j) const override; //< get cluster dimension covar
78  void setSize(unsigned int i, unsigned int j, float value) override; //< set cluster dimension covar
79 
80  float getError(unsigned int i, unsigned int j) const override; //< get cluster error covar
81  void setError(unsigned int i, unsigned int j, float value) override; //< set cluster error covar
82 
83  //
84  // convenience interface
85  //
86  float getPhiSize() const override;
87  float getZSize() const override;
88 
89  float getRPhiError() const override;
90  float getPhiError() const override;
91  float getZError() const override;
92 
93  protected:
94 
95  TrkrDefs::cluskey m_cluskey; //< unique identifier within container
96  TrkrDefs::subsurfkey m_subsurfkey; //< unique identifier for hitsetkey-surface maps
97  float m_pos[3]; //< mean position x,y,z
98  bool m_isGlobal; //< flag for coord sys (true = global)
99  unsigned int m_adc; //< cluster sum adc (D. McGlinchey - Do we need this?)
100  float m_size[6]; //< size covariance matrix (packed storage) (+/- cm^2)
101  float m_err[6]; //< covariance matrix: rad, arc and z
102 
103  float m_local[2]; //< 2D local position [cm]
104  float m_actsLocalErr[2][2]; //< 2D local error for Acts [cm]
105 
106  ClassDefOverride(TrkrClusterv2, 2)
107 };
108 
109 #endif //TRACKBASE_TRKRCLUSTERV2_H