Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:20:32

0001 /**
0002  * @file trackbase/LaserCluster.h
0003  * @author Ben Kimelman
0004  * @date February 2024
0005  * @brief Base class for laser cluster object
0006  */
0007 #ifndef TRACKBASE_LASERCLUSTER_H
0008 #define TRACKBASE_LASERCLUSTER_H
0009 
0010 #include <phool/PHObject.h>
0011 
0012 #include <iostream>
0013 #include <limits>
0014 
0015 /**
0016  * @brief Base class for laser cluster object
0017  *
0018  * Virtual base class for TPC laser cluster object 
0019  */
0020 class LaserCluster : public PHObject
0021 {
0022  public:
0023   //! dtor
0024   ~LaserCluster() override {}
0025   // PHObject virtual overloads
0026   void identify(std::ostream& os = std::cout) const override
0027   {
0028     os << "LaserCluster base class" << std::endl;
0029   }
0030   void Reset() override {}
0031   int isValid() const override { return 0; }
0032 
0033   
0034   //! import PHObject CopyFrom, in order to avoid clang warning
0035   using PHObject::CopyFrom;
0036   
0037   //! copy content from base class
0038   virtual void CopyFrom( const LaserCluster& )  {}
0039 
0040   //! copy content from base class
0041   virtual void CopyFrom( LaserCluster* )  {}
0042  
0043   //
0044   // cluster position
0045   //
0046   virtual float getX() const { return std::numeric_limits<float>::quiet_NaN(); }
0047   virtual void setX(float) {}
0048   virtual float getY() const { return std::numeric_limits<float>::quiet_NaN(); }
0049   virtual void setY(float) {}
0050   virtual float getZ() const { return std::numeric_limits<float>::quiet_NaN(); }
0051   virtual void setZ(float) {}
0052 
0053   virtual bool getFitMode() const { return false; }
0054   virtual void setFitMode(bool) {}
0055 
0056   virtual float getLayer() const { return std::numeric_limits<float>::quiet_NaN(); }
0057   virtual void setLayer(float) {}
0058   virtual float getIPhi() const { return std::numeric_limits<float>::quiet_NaN(); }
0059   virtual void setIPhi(float) {}
0060   virtual float getIT() const { return std::numeric_limits<float>::quiet_NaN(); }
0061   virtual void setIT(float) {}
0062 
0063   //
0064   // cluster info
0065   //
0066   virtual void setAdc(unsigned int) {}
0067   virtual unsigned int getAdc() const { return std::numeric_limits<unsigned int>::max(); }
0068 
0069 
0070   virtual unsigned int getNhits() const {return std::numeric_limits<unsigned int>::max();}
0071   virtual void setNhits( unsigned int) {}
0072 
0073   virtual void setNLayers(unsigned int) {}
0074   virtual unsigned int getNLayers() const { return std::numeric_limits<unsigned int>::max();}
0075 
0076   virtual void setNIPhi(unsigned int) {}
0077   virtual unsigned int getNIPhi() const { return std::numeric_limits<unsigned int>::max();}
0078 
0079   virtual void setNIT(unsigned int) {}
0080   virtual unsigned int getNIT() const { return std::numeric_limits<unsigned int>::max();}
0081 
0082   virtual void setSDLayer(float) {}
0083   virtual float getSDLayer() const { return std::numeric_limits<float>::quiet_NaN(); }
0084 
0085   virtual void setSDIPhi(float) {}
0086   virtual float getSDIPhi() const { return std::numeric_limits<float>::quiet_NaN(); }
0087 
0088   virtual void setSDIT(float) {}
0089   virtual float getSDIT() const { return std::numeric_limits<float>::quiet_NaN(); }
0090 
0091   virtual void setSDWeightedLayer(float) {}
0092   virtual float getSDWeightedLayer() const { return std::numeric_limits<float>::quiet_NaN(); }
0093 
0094   virtual void setSDWeightedIPhi(float) {}
0095   virtual float getSDWeightedIPhi() const { return std::numeric_limits<float>::quiet_NaN(); }
0096 
0097   virtual void setSDWeightedIT(float) {}
0098   virtual float getSDWeightedIT() const { return std::numeric_limits<float>::quiet_NaN(); }
0099 
0100 
0101   virtual void addHit() {}
0102  
0103   virtual void setHitLayer(int, float) {}
0104   virtual float getHitLayer(int) const { return std::numeric_limits<float>::quiet_NaN(); }
0105 
0106   virtual void setHitIPhi(int, float) {}
0107   virtual float getHitIPhi(int) const { return std::numeric_limits<float>::quiet_NaN(); }
0108 
0109   virtual void setHitIT(int, float) {}
0110   virtual float getHitIT(int) const { return std::numeric_limits<float>::quiet_NaN(); }
0111 
0112   virtual void setHitX(int, float) {}
0113   virtual float getHitX(int) const { return std::numeric_limits<float>::quiet_NaN(); }
0114 
0115   virtual void setHitY(int, float) {}
0116   virtual float getHitY(int) const { return std::numeric_limits<float>::quiet_NaN(); }
0117 
0118   virtual void setHitZ(int, float) {}
0119   virtual float getHitZ(int) const { return std::numeric_limits<float>::quiet_NaN(); }
0120  
0121   virtual void setHitAdc(int, float) {}
0122   virtual float getHitAdc(int) const { return std::numeric_limits<float>::quiet_NaN(); }
0123 
0124 
0125  protected:
0126   LaserCluster() = default;
0127   ClassDefOverride(LaserCluster, 1)
0128 };
0129 
0130 #endif //TRACKBASE_LASERCLUSTER_H