Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-17 09:20:47

0001 #ifndef TRACKBASEHISTORIC_TRACKANALYSISUTILS_H
0002 #define TRACKBASEHISTORIC_TRACKANALYSISUTILS_H
0003 
0004 #include <trackbase/TrkrDefs.h>
0005 #include <Acts/Definitions/Algebra.hpp>
0006 
0007 #include <utility>
0008 
0009 class SvtxTrack;
0010 class TrackSeed;
0011 class ActsGeometry;
0012 class TrkrClusterContainer;
0013 class GlobalVertex;
0014 namespace TrackAnalysisUtils
0015 {
0016   /// Returns DCA as .first and uncertainty on DCA as .second
0017   using DCA = std::pair<float, float>;
0018   using DCAPair = std::pair<DCA, DCA>;
0019 
0020   DCAPair get_dca(SvtxTrack* track, Acts::Vector3& vertex);
0021   DCAPair get_dca(SvtxTrack* track, GlobalVertex* vertex);
0022   Acts::RotationMatrix3 rotationMatrixToLocal(const Acts::Vector3& mom);
0023   std::vector<TrkrDefs::cluskey> get_cluster_keys(SvtxTrack* track);
0024   std::vector<TrkrDefs::cluskey> get_cluster_keys(TrackSeed* seed);
0025   float calc_dedx_calib(SvtxTrack* track, TrkrClusterContainer* cluster_map,
0026                         ActsGeometry* tgeometry,
0027                         // this is the thickness from R1[0],R1[1],R2[2], and R4[3]. You need
0028                         // to pass these from the geometry object, which keeps the dependencies
0029                         // of this helper class minimal. This will also help us catch any changes
0030                         // when/if the tpc geometry changes in the future. This is to get us going
0031                         float thickness_per_region[4]);
0032   float calc_dedx(TrackSeed* tpcseed, TrkrClusterContainer* clustermap, ActsGeometry* tgeometry,
0033                   float thickness_per_region[4]);
0034 
0035 };  // namespace TrackAnalysisUtils
0036 
0037 #endif