Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:17:02

0001 /**
0002  * @file trackbase/TrkrCluster.h
0003  * @author D. McGlinchey
0004  * @date June 2018
0005  * @brief Base class for cluster object
0006  */
0007 #ifndef TRACKBASE_TRKRCLUSTER_H
0008 #define TRACKBASE_TRKRCLUSTER_H
0009 
0010 #include "TrkrDefs.h"
0011 
0012 #include <phool/PHObject.h>
0013 
0014 #include <climits>
0015 #include <cmath>
0016 #include <iostream>
0017 #include <memory>
0018 
0019 /**
0020  * @brief Base class for cluster object
0021  *
0022  * Virtual base class for cluster object used for all tracking subsystems
0023  */
0024 class TrkrCluster : public PHObject
0025 {
0026  public:
0027   //! dtor
0028   ~TrkrCluster() override = default;
0029 
0030   // PHObject virtual overloads
0031   void identify(std::ostream& os = std::cout) const override
0032   {
0033     os << "TrkrCluster base class" << std::endl;
0034   }
0035   void Reset() override {}
0036   int isValid() const override { return 0; }
0037 
0038   //! import PHObject CopyFrom, in order to avoid clang warning
0039   using PHObject::CopyFrom;
0040 
0041   //! copy content from base class
0042   virtual void CopyFrom(const TrkrCluster&)
0043   {
0044   }
0045 
0046   //! copy content from base class
0047   virtual void CopyFrom(TrkrCluster*)
0048   {
0049   }
0050 
0051   //
0052   // cluster position
0053   //
0054   virtual float getLocalX() const { return NAN; }
0055   virtual void setLocalX(float) {}
0056   virtual float getLocalY() const { return NAN; }
0057   virtual void setLocalY(float) {}
0058 
0059   //
0060   // cluster info
0061   //
0062   virtual void setAdc(unsigned int) {}
0063   virtual unsigned int getAdc() const { return UINT_MAX; }
0064   virtual void setMaxAdc(uint16_t) {}
0065   virtual unsigned int getMaxAdc() const { return UINT_MAX; }
0066   virtual char getOverlap() const { return std::numeric_limits<char>::max(); }
0067   virtual void setOverlap(char) {}
0068   virtual char getEdge() const { return std::numeric_limits<char>::max(); }
0069   virtual void setEdge(char) {}
0070   virtual void setTime(const float) {}
0071   virtual float getTime() const { return NAN; }
0072   virtual char getSize() const { return std::numeric_limits<char>::max(); }
0073 
0074   //
0075   // convenience interface
0076   //
0077   virtual float getPhiSize() const { return NAN; }
0078   virtual float getZSize() const { return NAN; }
0079   virtual float getPhiError() const { return NAN; }
0080   virtual float getRPhiError() const { return NAN; }
0081   virtual float getZError() const { return NAN; }
0082 
0083   /// Acts functions, for Acts modules use only
0084   virtual void setActsLocalError(unsigned int /*i*/, unsigned int /*j*/, float /*value*/) {}
0085   virtual float getActsLocalError(unsigned int /*i*/, unsigned int /*j*/) const { return NAN; }
0086   virtual TrkrDefs::subsurfkey getSubSurfKey() const { return TrkrDefs::SUBSURFKEYMAX; }
0087   virtual void setSubSurfKey(TrkrDefs::subsurfkey /*id*/) {}
0088 
0089   // Global coordinate functions are deprecated, use local
0090   // coordinate functions only
0091   virtual float getX() const { return NAN; }
0092   virtual void setX(float) {}
0093   virtual float getY() const { return NAN; }
0094   virtual void setY(float) {}
0095   virtual float getZ() const { return NAN; }
0096   virtual void setZ(float) {}
0097   virtual float getPosition(int /*coor*/) const { return NAN; }
0098   virtual void setPosition(int /*coor*/, float /*xi*/) {}
0099   virtual void setGlobal() {}
0100   virtual void setLocal() {}
0101   virtual bool isGlobal() const { return true; }
0102   virtual float getError(unsigned int /*i*/, unsigned int /*j*/) const { return NAN; }
0103   virtual void setError(unsigned int /*i*/, unsigned int /*j*/, float /*value*/) {}
0104   virtual float getSize(unsigned int /*i*/, unsigned int /*j*/) const { return NAN; }
0105   virtual void setSize(unsigned int /*i*/, unsigned int /*j*/, float /*value*/) {}
0106 
0107  protected:
0108   TrkrCluster() = default;
0109   ClassDefOverride(TrkrCluster, 1)
0110 };
0111 
0112 #endif  // TRACKBASE_TRKRCLUSTER_H