Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
TrkrClusterv4.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file TrkrClusterv4.h
1 
7 #ifndef TRACKBASE_TRKRCLUSTERV4_H
8 #define TRACKBASE_TRKRCLUSTERV4_H
9 
10 #include "TrkrCluster.h"
11 #include "TrkrDefs.h"
12 #include <iostream>
13 
14 class PHObject;
15 
22 class TrkrClusterv4 : public TrkrCluster
23 {
24  public:
25 
27  TrkrClusterv4();
28 
30  ~TrkrClusterv4() override = default;
31 
32  // PHObject virtual overloads
33 
34  void identify(std::ostream& os = std::cout) const override;
35  void Reset() override {}
36  int isValid() const override;
37  PHObject* CloneMe() const override { return new TrkrClusterv4(*this); }
38 
40  using PHObject::CopyFrom;
41 
43  void CopyFrom( const TrkrCluster& ) override;
44 
46  void CopyFrom( TrkrCluster* source ) override
47  { CopyFrom( *source ); }
48 
49  //
50  // cluster position
51  //
52  float getPosition(int coor) const override { return m_local[coor]; }
53  void setPosition(int coor, float xi) override { m_local[coor] = xi; }
54  float getLocalX() const override { return m_local[0]; }
55  void setLocalX(float loc0) override { m_local[0] = loc0; }
56  float getLocalY() const override { return m_local[1]; }
57  void setLocalY(float loc1) override { m_local[1] = loc1; }
58 
59  TrkrDefs::subsurfkey getSubSurfKey() const override { return m_subsurfkey; }
61 
62  //
63  // cluster info
64  //
65  unsigned int getAdc() const override {
66  uint8_t tmp = m_adc;
67  return tmp ;
68 
69  }
70 
71  void setAdc(unsigned int adc) override {
72  uint16_t tmp =0;
73  if(adc>0xff)
74  tmp=0xff;
75  else
76  tmp = adc;
77  m_adc |= tmp;
78  }
79 
80  unsigned int getMaxAdc() const override {
81  uint8_t tmp = (m_adc >> 8);
82  unsigned int out = 0;
83  out |= tmp;
84  return out;
85  }
86 
87  void setMaxAdc(uint16_t maxadc) override {
88  if(maxadc>0xff)maxadc=0xff;
89  uint16_t tmp = (maxadc << 8);
90  m_adc |= tmp;
91  }
92 
93  //
94  // convenience interface
95  //
96  float getRPhiError() const override
97  { std::cout << "Deprecated getRPhiError trkrcluster function!"<<std::endl; return NAN;}
98  float getZError() const override
99  { std::cout << "Deprecated getZError trkrcluster function!"<<std::endl; return NAN;}
100 
102  float getX() const override
103  { std::cout << "Deprecated getx trkrcluster function!"<<std::endl; return NAN;}
104  float getY() const override
105  { std::cout << "Deprecated gety trkrcluster function!"<<std::endl; return NAN;}
106  float getZ() const override
107  { std::cout << "Deprecated getz trkrcluster function!"<<std::endl; return NAN;}
108  void setX(float) override
109  { std::cout << "Deprecated setx trkrcluster function!"<<std::endl;}
110  void setY(float) override
111  { std::cout << "Deprecated sety trkrcluster function!"<<std::endl;}
112  void setZ(float) override
113  { std::cout << "Deprecated setz trkrcluster function!"<<std::endl;}
114  float getSize(unsigned int, unsigned int) const override
115  {std::cout << "Deprecated getsize trkrcluster function!" << std::endl; return NAN;}
116  void setSize(unsigned int, unsigned int, float) override
117  {std::cout << "Deprecated setsize trkrcluster function!" << std::endl;}
118  float getError(unsigned int, unsigned int) const override
119  {std::cout << "Deprecated geterr trkrcluster function!" << std::endl; return NAN;}
120  void setError(unsigned int, unsigned int, float) override
121  { std::cout << "Deprecated seterr trkrcluster function!" << std::endl; }
122 
123  char getSize() const override { return m_phisize * m_zsize; }
124  // void setSize(char size) { m_size = size; }
125 
126  float getPhiSize() const override { return (float) m_phisize; }
128 
129  float getZSize() const override { return (float) m_zsize; }
130  void setZSize(char zsize) { m_zsize = zsize; }
131 
132  char getOverlap() const override { return m_overlap; }
133  void setOverlap(char overlap) override { m_overlap = overlap; }
134 
135  char getEdge() const override { return m_edge; }
136  void setEdge(char edge) override { m_edge = edge; }
137 
138  //float getPhiSize() const override
139  //{ std::cout << "Deprecated size function"<< std::endl; return NAN;}
140  //float getZSize() const override
141  //{std::cout << "Deprecated size function" << std::endl; return NAN;}
142  //float getPhiError() const override
143  //{ std::cout << "Deprecated getPhiError function"<< std::endl; return NAN;}
144 
145  protected:
146 
147  float m_local[2]; //< 2D local position [cm] 2 * 32 64bit - cumul 1*64
148  TrkrDefs::subsurfkey m_subsurfkey; //< unique identifier for hitsetkey-surface maps 16 bit
149  unsigned short int m_adc; //< cluster sum adc 16
150  char m_phisize; // 8bit
151  char m_zsize; // 8bit
152  char m_overlap; // 8bit
153  char m_edge; // 8bit - cumul 2*64
154 
155  ClassDefOverride(TrkrClusterv4, 2)
156 };
157 
158 #endif //TRACKBASE_TRKRCLUSTERV4_H