Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:14:07

0001 #ifndef __TRACKPROJECTORPID_H_
0002 #define __TRACKPROJECTORPID_H_
0003 
0004 /* STL includes */
0005 #include <string>
0006 #include <memory>
0007 
0008 /* Forward declarations */
0009 class PHCompositeNode;
0010 class PHFieldUtility;
0011 class SvtxTrack;
0012 class SvtxTrackState;
0013 
0014 namespace PHGenFit{
0015   class Fitter;
0016 }
0017 
0018 namespace genfit{
0019   class MeasuredStateOnPlane;
0020 }
0021 
0022 /**
0023  * Class to project tracks to RICH volumes.
0024  * Based on clas coresoftware/simulation/g4simulation/g4hough/PHG4GenFitTrackProjection
0025  */
0026 class TrackProjectorPid {
0027 
0028 public:
0029 
0030   enum PROJECTION_SURFACE {SPHERE, CYLINDER, PLANEXY};
0031 
0032   TrackProjectorPid( PHCompositeNode* topNode );
0033 
0034   bool get_projected_position( SvtxTrack * track, double arr_pos[3], const PROJECTION_SURFACE surf, const float surface_par ); // Get mean track position
0035 
0036   bool get_projected_momentum( SvtxTrack * track, double arr_mom[3], const PROJECTION_SURFACE surf, const float surface_par ); // Get momentum of track
0037 
0038   SvtxTrackState* project_track( SvtxTrack * track, const PROJECTION_SURFACE surf, const float surface_par );
0039 
0040   bool is_in_RICH( double momv[3] ); // Check if track pass through RICH
0041 
0042 private:
0043 
0044   PHGenFit::Fitter * _fitter;
0045 };
0046 
0047 #endif