Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #ifndef TPC_TPCDISTORTIONCORRECTIONCONTAINER_H
0002 #define TPC_TPCDISTORTIONCORRECTIONCONTAINER_H
0003 
0004 /*!
0005  * \file TpcDistortionCorrectionContainer.h
0006  * \brief stores distortion correction histograms on the node tree
0007  * \author Hugo Pereira Da Costa <hugo.pereira-da-costa@cea.fr>
0008  */
0009 
0010 #include <array>
0011 
0012 class TH1;
0013 
0014 class TpcDistortionCorrectionContainer
0015 {
0016  public:
0017   //! constructor
0018   TpcDistortionCorrectionContainer() = default;
0019 
0020   //! flag to tell us whether to read z data or just 2d data
0021   int m_dimensions = 3;
0022 
0023   bool m_use_scalefactor = false;
0024   float m_scalefactor = 1.0;
0025 
0026   //! set the phi histogram to be interpreted as radians rather than mm
0027   bool m_phi_hist_in_radians = true;
0028   //! flag to tell us how to handle 2d corrections: interpolate to 0 at readout or assume the correction has no z dependence
0029   bool m_interpolate_z = true;
0030 
0031   //!@name space charge distortion histograms
0032   //@{
0033   std::array<TH1*, 2> m_hDRint = {{nullptr, nullptr}};
0034   std::array<TH1*, 2> m_hDPint = {{nullptr, nullptr}};
0035   std::array<TH1*, 2> m_hDZint = {{nullptr, nullptr}};
0036 
0037   /// keep track of number of entries in each bin
0038   /**
0039    * used temporarily  when building distortion corrections on the fly
0040    * it is not used to actually apply corrections to a given 3D point
0041    */
0042   std::array<TH1*, 2> m_hentries = {{nullptr, nullptr}};
0043   //@}
0044 };
0045 
0046 #endif