Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 #ifndef TPC_TPCDISTORTIONCORRECTION_H
0002 #define TPC_TPCDISTORTIONCORRECTION_H
0003 
0004 /*!
0005  * \file TpcDistortionCorrection.h
0006  * \brief applies provided distortion corrections to a 3D point and returns corrected position
0007  * \author Hugo Pereira Da Costa <hugo.pereira-da-costa@cea.fr>
0008  */
0009 
0010 #include <Acts/Definitions/Algebra.hpp>
0011 
0012 class TpcDistortionCorrectionContainer;
0013 
0014 class TpcDistortionCorrection
0015 {
0016  public:
0017   //! constructor
0018   TpcDistortionCorrection() = default;
0019 
0020   enum DistortionType
0021   {
0022     StaticOnly = 0,
0023     BeamInducedAverage = 1,
0024     BeamInducedFluctuation = 2,
0025     ModuleEdge = 3
0026   };
0027 
0028   enum DistortionHandlingType
0029   {
0030     Volumetric = 0,
0031     PlanarInterpolateToZero= 1,
0032     PlanarFlat = 2
0033   };
0034 
0035   enum CoordMask
0036   {
0037     COORD_PHI = 1 << 0,
0038     COORD_R = 1 << 1,
0039     COORD_Z = 1 << 2,
0040     COORD_PHIZ = COORD_PHI | COORD_Z,
0041     COORD_ALL = COORD_PHI | COORD_R | COORD_Z
0042   };
0043 
0044   //! get cluster corrected 3D position using given DistortionCorrectionObject
0045   Acts::Vector3 get_corrected_position(const Acts::Vector3&, const TpcDistortionCorrectionContainer*,
0046                                        unsigned int mask = COORD_ALL) const;
0047 
0048 };
0049 
0050 #endif