Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #ifndef TPCCALIB_TPCSPACECHARGEMATRIXCONTAINER_H
0002 #define TPCCALIB_TPCSPACECHARGEMATRIXCONTAINER_H
0003 
0004 /**
0005  * @file tpccalib/TpcSpaceChargeMatrixContainer.h
0006  * @author Hugo Pereira Da Costa
0007  * @date June 2018
0008  * @brief Contains matrices needed for space charge trackbase reconstruction
0009  */
0010 
0011 #include <phool/PHObject.h>
0012 
0013 #include <array>
0014 
0015 /**
0016  * @brief Cluster container object
0017  */
0018 class TpcSpaceChargeMatrixContainer : public PHObject
0019 {
0020   public:
0021 
0022   /// constructor
0023   TpcSpaceChargeMatrixContainer()
0024   {}
0025 
0026   /// destructor
0027   ~TpcSpaceChargeMatrixContainer() override = default;
0028 
0029   ///@name accessors
0030   //@{
0031 
0032   /// identify object
0033   void identify(std::ostream &/*os*/ = std::cout) const override
0034   {}
0035 
0036   /// get grid dimensions
0037   virtual void get_grid_dimensions( int& /*phibins*/, int& /*rbins*/, int& /*zbins*/ ) const
0038   {}
0039 
0040   /// get total grid size
0041   virtual int get_grid_size() const
0042   { return 0; }
0043 
0044   /// get grid index for given sub-indexes
0045   virtual int get_cell_index( int /*iphibin*/, int /*irbin*/, int /*izbin*/ ) const
0046   { return -1; }
0047 
0048   /// get entries for a given cell
0049   virtual int get_entries( int /*cell_index*/ ) const
0050   { return 0; }
0051 
0052   /// get left hand side
0053   virtual float get_lhs( int /*cell_index*/, int /*i*/, int /*j*/ ) const
0054   { return 0; }
0055 
0056   /// get right hand side
0057   virtual float get_rhs( int /*cell_index*/, int /*i*/ ) const
0058   { return 0; }
0059 
0060   /// get reduced rphi left hand side
0061   virtual float get_lhs_rphi( int /*cell_index*/, int /*i*/, int /*j*/ ) const
0062   { return 0; }
0063 
0064   /// get reduced rphi right hand side
0065   virtual float get_rhs_rphi(int /*cell_index*/, int /*i*/ ) const
0066   { return 0; }
0067 
0068   /// get reduced z left hand side
0069   virtual float get_lhs_z( int /*cell_index*/, int /*i*/, int /*j*/ ) const
0070   { return 0; }
0071 
0072   /// get reduced z right hand side
0073   virtual float get_rhs_z(int /*cell_index*/, int /*i*/ ) const
0074   { return 0; }
0075 
0076   //@}
0077 
0078   ///@name modifiers
0079   //@{
0080 
0081   /// reset method
0082   void Reset() override
0083   {}
0084 
0085   /// set grid dimensions
0086   /**
0087   \param phibins the number of bins in the azimuth direction
0088   \param zbins the number of bins along z
0089   */
0090   virtual void set_grid_dimensions( int /*phibins*/, int /*rbins*/, int /*zbins*/ )
0091   {}
0092 
0093   /// increment cell entries
0094   virtual void add_to_entries( int /*cell_index*/ )
0095   {}
0096 
0097   /// increment cell entries
0098   virtual void add_to_entries( int /*cell_index*/, int /*value*/ )
0099   {}
0100 
0101   /// increment left hand side matrix
0102   virtual void add_to_lhs( int /*cell_index*/, int /*i*/, int /*j*/, float /*value*/ )
0103   {}
0104 
0105   /// increment right hand side column
0106   virtual void add_to_rhs( int /*cell_index*/, int /*i*/, float /*value*/ )
0107   {}
0108 
0109   /// increment left hand side reduced rphi matrix
0110   virtual void add_to_lhs_rphi( int /*cell_index*/, int /*i*/, int /*j*/, float /*value*/ )
0111   {}
0112 
0113   /// increment right hand side reduced rphi column
0114   virtual void add_to_rhs_rphi( int /*cell_index*/, int /*i*/, float /*value*/)
0115   {}
0116 
0117   /// increment left hand side reduced rphi matrix
0118   virtual void add_to_lhs_z( int /*cell_index*/, int /*i*/, int /*j*/, float /*value*/ )
0119   {}
0120 
0121   /// increment right hand side reduced rphi column
0122   virtual void add_to_rhs_z(int /*cell_index*/, int /*i*/, float /*value*/)
0123   {}
0124 
0125   /// add content from other container, returns true on success
0126   virtual bool add( const TpcSpaceChargeMatrixContainer& /*other*/ )
0127   { return false; }
0128 
0129   //@}
0130 
0131   private:
0132 
0133   ClassDefOverride(TpcSpaceChargeMatrixContainer, 1)
0134 
0135 };
0136 
0137 #endif