Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-06 08:18:12

0001 /**
0002  * @file trackbase/TrkrClusterv5.h
0003  * @author C. Roland
0004  * @date March 2023
0005  * @brief Version 5 of TrkrCluster
0006  */
0007 #ifndef TRACKBASE_TRKRCLUSTERV5_H
0008 #define TRACKBASE_TRKRCLUSTERV5_H
0009 
0010 #include <iostream>
0011 #include "TrkrCluster.h"
0012 #include "TrkrDefs.h"
0013 
0014 class PHObject;
0015 
0016 /**
0017  * @brief Version 5 of TrkrCluster
0018  *
0019  * This version of TrkrCluster is blown up to contain a maximum of information
0020  */
0021 
0022 class TrkrClusterv5 : public TrkrCluster
0023 {
0024  public:
0025   //! ctor
0026   TrkrClusterv5();
0027 
0028   //! dtor
0029   ~TrkrClusterv5() override = default;
0030 
0031   // PHObject virtual overloads
0032 
0033   void identify(std::ostream& os = std::cout) const override;
0034   void Reset() override {}
0035   int isValid() const override;
0036   PHObject* CloneMe() const override { return new TrkrClusterv5(*this); }
0037 
0038   //! import PHObject CopyFrom, in order to avoid clang warning
0039   using PHObject::CopyFrom;
0040 
0041   //! copy content from base class
0042   void CopyFrom(const TrkrCluster&) override;
0043 
0044   //! copy content from base class
0045   void CopyFrom(TrkrCluster* source) override
0046   {
0047     CopyFrom(*source);
0048   }
0049 
0050   //
0051   // cluster position
0052   //
0053   float getPosition(int coor) const override { return m_local[coor]; }
0054   void setPosition(int coor, float xi) override { m_local[coor] = xi; }
0055   float getLocalX() const override { return m_local[0]; }
0056   void setLocalX(float loc0) override { m_local[0] = loc0; }
0057   float getLocalY() const override { return m_local[1]; }
0058   void setLocalY(float loc1) override { m_local[1] = loc1; }
0059 
0060   TrkrDefs::subsurfkey getSubSurfKey() const override { return m_subsurfkey; }
0061   void setSubSurfKey(TrkrDefs::subsurfkey id) override { m_subsurfkey = id; }
0062 
0063   //
0064   // cluster info
0065   //
0066   unsigned int getAdc() const override
0067   {
0068     return m_adc;
0069   }
0070 
0071   void setAdc(unsigned int adc) override
0072   {
0073     m_adc = adc;
0074   }
0075 
0076   unsigned int getMaxAdc() const override
0077   {
0078     return m_maxadc;
0079   }
0080 
0081   void setMaxAdc(uint16_t maxadc) override
0082   {
0083     m_maxadc = maxadc;
0084   }
0085 
0086   //
0087   // convenience interface
0088   //
0089   float getRPhiError() const override
0090   {
0091     return m_phierr;
0092   }
0093   float getZError() const override
0094   {
0095     return m_zerr;
0096   }
0097 
0098   void setPhiError(float phierror)
0099   {
0100     m_phierr = phierror;
0101   }
0102   void setZError(float zerror)
0103   {
0104     m_zerr = zerror;
0105   }
0106 
0107   /// deprecated global funtions with a warning
0108   float getX() const override
0109   {
0110     std::cout << "Deprecated getx trkrcluster function!" << std::endl;
0111     return NAN;
0112   }
0113   float getY() const override
0114   {
0115     std::cout << "Deprecated gety trkrcluster function!" << std::endl;
0116     return NAN;
0117   }
0118   float getZ() const override
0119   {
0120     std::cout << "Deprecated getz trkrcluster function!" << std::endl;
0121     return NAN;
0122   }
0123   void setX(float) override
0124   {
0125     std::cout << "Deprecated setx trkrcluster function!" << std::endl;
0126   }
0127   void setY(float) override
0128   {
0129     std::cout << "Deprecated sety trkrcluster function!" << std::endl;
0130   }
0131   void setZ(float) override
0132   {
0133     std::cout << "Deprecated setz trkrcluster function!" << std::endl;
0134   }
0135   float getSize(unsigned int, unsigned int) const override
0136   {
0137     std::cout << "Deprecated getsize trkrcluster function!" << std::endl;
0138     return NAN;
0139   }
0140   void setSize(unsigned int, unsigned int, float) override
0141   {
0142     std::cout << "Deprecated setsize trkrcluster function!" << std::endl;
0143   }
0144   float getError(unsigned int, unsigned int) const override
0145   {
0146     std::cout << "Deprecated geterr trkrcluster function!" << std::endl;
0147     return NAN;
0148   }
0149   void setError(unsigned int, unsigned int, float) override
0150   {
0151     std::cout << "Deprecated seterr trkrcluster function!" << std::endl;
0152   }
0153 
0154   char getSize() const override { return m_phisize * m_zsize; }
0155   //   void setSize(char size) { m_size = size; }
0156 
0157   float getPhiSize() const override { return (float) m_phisize; }
0158   void setPhiSize(char phisize) { m_phisize = phisize; }
0159 
0160   float getZSize() const override { return (float) m_zsize; }
0161   void setZSize(char zsize) { m_zsize = zsize; }
0162 
0163   char getOverlap() const override { return m_overlap; }
0164   void setOverlap(char overlap) override { m_overlap = overlap; }
0165 
0166   char getEdge() const override { return m_edge; }
0167   void setEdge(char edge) override { m_edge = edge; }
0168 
0169   // float getPhiSize() const override
0170   //{ std::cout << "Deprecated size function"<< std::endl; return NAN;}
0171   // float getZSize() const override
0172   //{std::cout << "Deprecated size function" << std::endl; return NAN;}
0173   // float getPhiError() const override
0174   //{ std::cout << "Deprecated getPhiError function"<< std::endl; return NAN;}
0175 
0176  protected:
0177   float m_local[2]{};                 //< 2D local position [cm] 2 * 32 64bit  - cumul 1*64
0178   TrkrDefs::subsurfkey m_subsurfkey;  //< unique identifier for hitsetkey-surface maps 16 bit
0179   float m_phierr;
0180   float m_zerr;
0181   unsigned short int m_adc;     //< cluster sum adc 16
0182   unsigned short int m_maxadc;  //< cluster sum adc 16
0183   char m_phisize;               // 8bit
0184   char m_zsize;                 // 8bit
0185   char m_overlap;               // 8bit
0186   char m_edge;                  // 8bit - cumul 2*64
0187 
0188   ClassDefOverride(TrkrClusterv5, 2)
0189 };
0190 
0191 #endif  // TRACKBASE_TRKRCLUSTERV5_H