Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
c258c79
update calibrator
osbornjd Jan 19, 2026
3b875db
call wrapper tgeo builder
osbornjd Jan 19, 2026
9646765
preserve makefile while testing
osbornjd Jan 19, 2026
e219ff4
use helper functions
osbornjd Jan 19, 2026
1f11a69
abolished measurement object
osbornjd Jan 19, 2026
707c3b1
update gsf apis
osbornjd Jan 19, 2026
bbdeda0
trackbase compiles
osbornjd Feb 23, 2026
6d1c301
Merge branch 'master' of github.com:sPHENIX-Collaboration/coresoftwar…
osbornjd Feb 23, 2026
0c9988a
update alignment states
osbornjd Feb 24, 2026
b7c4989
fix acts propagator
osbornjd Feb 25, 2026
67f930d
fix geometry building API
osbornjd Feb 26, 2026
e6240d3
fix acts evaluator
osbornjd Feb 26, 2026
9ea65df
geometry builder compiles
osbornjd Feb 26, 2026
a419369
makesourcelinks compiles
osbornjd Feb 26, 2026
a1b48d8
gsf compiles
osbornjd Feb 26, 2026
8a4c141
fix include
osbornjd Feb 27, 2026
c547c80
add fwd decl
osbornjd Feb 27, 2026
d2e9a1c
add some updates for compilation
osbornjd Feb 27, 2026
3804288
go back to regular makefile
osbornjd Feb 27, 2026
567fda4
Return other lines from makefile to normal
osbornjd Feb 27, 2026
df117a7
add missing fstream include
osbornjd Mar 2, 2026
100fa26
Readd mag field options
osbornjd Mar 2, 2026
aabd8ae
fix field map reading
osbornjd Mar 2, 2026
fbfe26e
add in field options
osbornjd Mar 2, 2026
5e88868
add fwd decl
osbornjd Mar 3, 2026
3dedddb
Get kd seeder to compile locally
osbornjd Mar 3, 2026
603c32a
working through silicon seeding API changes
osbornjd Mar 4, 2026
a0f0087
finally get all templated changes sorted out
osbornjd Mar 4, 2026
c21d9d5
track fitters compile
osbornjd Mar 4, 2026
2df35fc
remove deprecated library names
osbornjd Mar 4, 2026
d303120
remove missing include
osbornjd Mar 4, 2026
3167d91
make single typename definition for new acts propagator options
osbornjd Mar 4, 2026
c4220c8
Merge branch 'master' of github.com:sPHENIX-Collaboration/coresoftwar…
osbornjd Mar 4, 2026
b2b2ba9
fix func signature
osbornjd Mar 4, 2026
97a7f52
Remove acts dependency which is unneccessary
osbornjd Mar 4, 2026
abfd54b
Merge branch 'master' of github.com:sPHENIX-Collaboration/coresoftwar…
osbornjd Mar 5, 2026
d91092f
remove finalize method
osbornjd Mar 5, 2026
e58e15f
Remove finalize
osbornjd Mar 6, 2026
f5a5135
Merge branch 'master' of github.com:sPHENIX-Collaboration/coresoftwar…
osbornjd Mar 10, 2026
108c24b
make sure detector does not leave scope
osbornjd Apr 10, 2026
a1aae44
clean up
osbornjd Apr 10, 2026
bd1e06b
remove deadweight
osbornjd Apr 10, 2026
f0a6e98
Merge branch 'master' of github.com:sPHENIX-Collaboration/coresoftwar…
osbornjd Apr 18, 2026
3891538
call directed fitter constructor with proper logger
osbornjd May 10, 2026
1e3c48c
geometry/alignment code updated
osbornjd May 16, 2026
ac93f35
update outlier finder
osbornjd May 16, 2026
c8a3b43
remove gsf from build for now, too volatile
osbornjd May 16, 2026
0011ffa
update to v45
osbornjd May 16, 2026
036ba65
update transform calls
osbornjd May 16, 2026
99b9c2d
improve makefile
osbornjd May 16, 2026
35a64f8
remove gsf from build for now
osbornjd May 17, 2026
bc93a21
update apis for several modules
osbornjd May 17, 2026
6bc9101
update remaining apis
osbornjd May 17, 2026
40e8aa1
update transform call
osbornjd May 18, 2026
3364377
Merge branch 'master' of github.com:sPHENIX-Collaboration/coresoftwar…
osbornjd May 20, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions calibrations/tpc/TpcDVCalib/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,6 @@ libTpcDVCalib_la_LDFLAGS = \
-L$(OFFLINE_MAIN)/lib

libTpcDVCalib_la_LIBADD = \
-lActsCore \
-lActsPluginTGeo \
-lActsExamplesDetectorTGeo \
-lActsExamplesFramework \
-lSubsysReco \
-ltrackbase_historic_io \
-ltrack_io \
Expand Down
9 changes: 1 addition & 8 deletions calibrations/tpc/TpcDVCalib/TrackToCalo.cc
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,7 @@
#include <trackbase_historic/TrackSeedContainer.h>
#include <trackbase_historic/TrackSeed.h>
#include <trackbase_historic/TrackAnalysisUtils.h>
#include <trackreco/ActsPropagator.h>

#include <Acts/Geometry/GeometryIdentifier.hpp>
#include <Acts/MagneticField/ConstantBField.hpp>
#include <Acts/MagneticField/MagneticFieldProvider.hpp>
#include <Acts/Surfaces/CylinderSurface.hpp>
#include <Acts/Surfaces/PerigeeSurface.hpp>
#include <Acts/Geometry/TrackingGeometry.hpp>


#include <CLHEP/Vector/ThreeVector.h>
#include <cmath>
Expand Down
4 changes: 2 additions & 2 deletions offline/QA/Tracking/CosmicTrackQA.cc
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ int CosmicTrackQA::process_event(PHCompositeNode *topNode)
}
else
{
Acts::Vector3 loc = surf->transform(geometry->geometry().getGeoContext()).inverse() * (intersection * Acts::UnitConstants::cm);
Acts::Vector3 loc = surf->localToGlobalTransform(geometry->geometry().getGeoContext()).inverse() * (intersection * Acts::UnitConstants::cm);
loc /= Acts::UnitConstants::cm;
statelx = loc(0);
statelz = loc(1);
Expand Down Expand Up @@ -191,7 +191,7 @@ int CosmicTrackQA::process_event(PHCompositeNode *topNode)
}
else
{
Acts::Vector3 loc = surf->transform(geometry->geometry().getGeoContext()).inverse() * (stateglob * Acts::UnitConstants::cm);
Acts::Vector3 loc = surf->localToGlobalTransform(geometry->geometry().getGeoContext()).inverse() * (stateglob * Acts::UnitConstants::cm);
loc /= Acts::UnitConstants::cm;
statelx = loc(0);
statelz = loc(1);
Expand Down
16 changes: 8 additions & 8 deletions offline/packages/TrackerMillepedeAlignment/HelicalFitter.cc
Original file line number Diff line number Diff line change
Expand Up @@ -594,8 +594,8 @@ int HelicalFitter::process_event(PHCompositeNode* /*unused*/)

// fitpoint is the point where the helical fit intersects the plane of the surface
// Now transform the helix fitpoint to local coordinates to compare with cluster local coordinates
Acts::Vector3 fitpoint_local = surf->transform(_tGeometry->geometry().getGeoContext()).inverse() * (fitpoint * Acts::UnitConstants::cm);
Acts::Vector3 fitpoint_mvtx_half_local = surf->transform(_tGeometry->geometry().getGeoContext()).inverse() * (fitpoint_mvtx_half * Acts::UnitConstants::cm);
Acts::Vector3 fitpoint_local = surf->localToGlobalTransform(_tGeometry->geometry().getGeoContext()).inverse() * (fitpoint * Acts::UnitConstants::cm);
Acts::Vector3 fitpoint_mvtx_half_local = surf->localToGlobalTransform(_tGeometry->geometry().getGeoContext()).inverse() * (fitpoint_mvtx_half * Acts::UnitConstants::cm);
Comment on lines +597 to +598
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Guard fitpoint_mvtx_half_local behind straight_line_fit.

fitpoint_mvtx_half is only assigned in the straight-line branch, but Lines 597-598 always transform it. On the helical-fit path this is an uninitialized read and undefined behavior.

🐛 Proposed fix
 Acts::Vector3 fitpoint_local = surf->localToGlobalTransform(_tGeometry->geometry().getGeoContext()).inverse() * (fitpoint * Acts::UnitConstants::cm);
-Acts::Vector3 fitpoint_mvtx_half_local = surf->localToGlobalTransform(_tGeometry->geometry().getGeoContext()).inverse() * (fitpoint_mvtx_half * Acts::UnitConstants::cm);
 
 fitpoint_local /= Acts::UnitConstants::cm;
-fitpoint_mvtx_half_local /= Acts::UnitConstants::cm;
+Acts::Vector3 fitpoint_mvtx_half_local = fitpoint_local;
+if (straight_line_fit)
+{
+  fitpoint_mvtx_half_local =
+      surf->localToGlobalTransform(_tGeometry->geometry().getGeoContext()).inverse() *
+      (fitpoint_mvtx_half * Acts::UnitConstants::cm);
+  fitpoint_mvtx_half_local /= Acts::UnitConstants::cm;
+}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Acts::Vector3 fitpoint_local = surf->localToGlobalTransform(_tGeometry->geometry().getGeoContext()).inverse() * (fitpoint * Acts::UnitConstants::cm);
Acts::Vector3 fitpoint_mvtx_half_local = surf->localToGlobalTransform(_tGeometry->geometry().getGeoContext()).inverse() * (fitpoint_mvtx_half * Acts::UnitConstants::cm);
Acts::Vector3 fitpoint_local = surf->localToGlobalTransform(_tGeometry->geometry().getGeoContext()).inverse() * (fitpoint * Acts::UnitConstants::cm);
fitpoint_local /= Acts::UnitConstants::cm;
Acts::Vector3 fitpoint_mvtx_half_local = fitpoint_local;
if (straight_line_fit)
{
fitpoint_mvtx_half_local =
surf->localToGlobalTransform(_tGeometry->geometry().getGeoContext()).inverse() *
(fitpoint_mvtx_half * Acts::UnitConstants::cm);
fitpoint_mvtx_half_local /= Acts::UnitConstants::cm;
}


fitpoint_local /= Acts::UnitConstants::cm;
fitpoint_mvtx_half_local /= Acts::UnitConstants::cm;
Expand Down Expand Up @@ -634,7 +634,7 @@ int HelicalFitter::process_event(PHCompositeNode* /*unused*/)

if (Verbosity() > 1)
{
Acts::Vector3 loc_check = surf->transform(_tGeometry->geometry().getGeoContext()).inverse() * (global * Acts::UnitConstants::cm);
Acts::Vector3 loc_check = surf->localToGlobalTransform(_tGeometry->geometry().getGeoContext()).inverse() * (global * Acts::UnitConstants::cm);
loc_check /= Acts::UnitConstants::cm;
std::cout << " layer " << layer << std::endl
<< " cluster global " << global(0) << " " << global(1) << " " << global(2) << std::endl
Expand All @@ -647,10 +647,10 @@ int HelicalFitter::process_event(PHCompositeNode* /*unused*/)

if (Verbosity() > 1)
{
Acts::Transform3 transform = surf->transform(_tGeometry->geometry().getGeoContext());
Acts::Transform3 transform = surf->localToGlobalTransform(_tGeometry->geometry().getGeoContext());
std::cout << "Transform is:" << std::endl;
std::cout << transform.matrix() << std::endl;
Acts::Vector3 loc_check = surf->transform(_tGeometry->geometry().getGeoContext()).inverse() * (global * Acts::UnitConstants::cm);
Acts::Vector3 loc_check = surf->localToGlobalTransform(_tGeometry->geometry().getGeoContext()).inverse() * (global * Acts::UnitConstants::cm);
loc_check /= Acts::UnitConstants::cm;
unsigned int const sector = TpcDefs::getSectorId(cluskey_vec[ivec]);
unsigned int const side = TpcDefs::getSide(cluskey_vec[ivec]);
Expand Down Expand Up @@ -779,7 +779,7 @@ int HelicalFitter::process_event(PHCompositeNode* /*unused*/)
Acts::Vector3 ideal_center = surf->center(_tGeometry->geometry().getGeoContext()) * 0.1;
Acts::Vector3 ideal_norm = -surf->normal(_tGeometry->geometry().getGeoContext(),Acts::Vector3(1,1,1), Acts::Vector3(1,1,1));
Acts::Vector3 const ideal_local(xloc, zloc, 0.0); // cm
Acts::Vector3 ideal_glob = surf->transform(_tGeometry->geometry().getGeoContext()) * (ideal_local * Acts::UnitConstants::cm);
Acts::Vector3 ideal_glob = surf->localToGlobalTransform(_tGeometry->geometry().getGeoContext()) * (ideal_local * Acts::UnitConstants::cm);
ideal_glob /= Acts::UnitConstants::cm;
alignmentTransformationContainer::use_alignment = true;

Expand Down Expand Up @@ -1953,10 +1953,10 @@ void HelicalFitter::get_projectionXY(const Surface& surf, const std::pair<Acts::
// get surface X and Y unit vectors in global frame
// transform Xlocal = 1.0 to global, subtract the surface center, normalize to 1
Acts::Vector3 const xloc(1.0, 0.0, 0.0); // local coord unit vector in x
Acts::Vector3 xglob = surf->transform(_tGeometry->geometry().getGeoContext()) * (xloc * Acts::UnitConstants::cm);
Acts::Vector3 xglob = surf->localToGlobalTransform(_tGeometry->geometry().getGeoContext()) * (xloc * Acts::UnitConstants::cm);
xglob /= Acts::UnitConstants::cm;
Acts::Vector3 const yloc(0.0, 1.0, 0.0);
Acts::Vector3 yglob = surf->transform(_tGeometry->geometry().getGeoContext()) * (yloc * Acts::UnitConstants::cm);
Acts::Vector3 yglob = surf->localToGlobalTransform(_tGeometry->geometry().getGeoContext()) * (yloc * Acts::UnitConstants::cm);
yglob /= Acts::UnitConstants::cm;
// These are the local frame unit vectors transformed to the global frame
Acts::Vector3 const X = (xglob - sensorCenter) / (xglob - sensorCenter).norm();
Expand Down
6 changes: 3 additions & 3 deletions offline/packages/TrackerMillepedeAlignment/MakeMilleFiles.cc
Original file line number Diff line number Diff line change
Expand Up @@ -309,9 +309,9 @@ bool MakeMilleFiles::getLocalVtxDerivativesXY(SvtxTrack* track,
auto param = propagator.makeTrackParams(firststate, track->get_charge(), surf).value();
auto perigee = propagator.makeVertexSurface(vertex);
auto actspropagator = propagator.makePropagator();

Acts::PropagatorOptions<> options(_tGeometry->geometry().getGeoContext(),
_tGeometry->geometry().magFieldContext);
ActsPropagator::SphenixPropagatorOptions
options(_tGeometry->geometry().getGeoContext(),
_tGeometry->geometry().magFieldContext);

auto result = actspropagator.propagate(param, *perigee, options);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@

#include <ActsExamples/EventData/Trajectories.hpp>

#include <fstream>
#include <string>
#include <vector>

Expand Down
22 changes: 11 additions & 11 deletions offline/packages/TrackingDiagnostics/TrackResiduals.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1128,7 +1128,7 @@ void TrackResiduals::fillClusterBranchesKF(TrkrDefs::cluskey ckey, SvtxTrack* tr
{
// otherwise take the manual calculation for the TPC
// doing it this way just avoids the bounds check that occurs in the surface class method
Acts::Vector3 loct = surf->transform(geometry->geometry().getGeoContext()).inverse() * clusglob_moved; // global is in mm
Acts::Vector3 loct = surf->localToGlobalTransform(geometry->geometry().getGeoContext()).inverse() * clusglob_moved; // global is in mm
loct /= Acts::UnitConstants::cm;

loc(0) = loct(0);
Expand Down Expand Up @@ -1166,7 +1166,7 @@ void TrackResiduals::fillClusterBranchesKF(TrkrDefs::cluskey ckey, SvtxTrack* tr

auto misaligncenter = surf->center(geometry->geometry().getGeoContext());
auto misalignnorm = -1 * surf->normal(geometry->geometry().getGeoContext(), Acts::Vector3(1, 1, 1), Acts::Vector3(1, 1, 1));
auto misrot = surf->transform(geometry->geometry().getGeoContext()).rotation();
auto misrot = surf->localToGlobalTransform(geometry->geometry().getGeoContext()).rotation();

float mgamma = atan2(-misrot(1, 0), misrot(0, 0));
float mbeta = -asin(misrot(0, 1));
Expand All @@ -1183,11 +1183,11 @@ void TrackResiduals::fillClusterBranchesKF(TrkrDefs::cluskey ckey, SvtxTrack* tr
std::cout << "resids: layer " << layer << " ideal center z " << idealcenter.z() << " mm " << std::endl;
std::cout << " surface bounds " << surfbounds[0] << " " << surfbounds[1] << " mm " << std::endl;
alignmentTransformationContainer::use_alignment = false;
Acts::Transform3 transform = surf_ideal->transform(geometry->geometry().getGeoContext());
Acts::Transform3 transform = surf_ideal->localToGlobalTransform(geometry->geometry().getGeoContext());
std::cout << "Ideal transform is:" << std::endl;
std::cout << transform.matrix() << std::endl;
alignmentTransformationContainer::use_alignment = true;
Acts::Transform3 transform1 = surf_ideal->transform(geometry->geometry().getGeoContext());
Acts::Transform3 transform1 = surf_ideal->localToGlobalTransform(geometry->geometry().getGeoContext());
std::cout << "Alignment transform is:" << std::endl;
std::cout << transform1.matrix() << std::endl;

Expand All @@ -1199,8 +1199,8 @@ void TrackResiduals::fillClusterBranchesKF(TrkrDefs::cluskey ckey, SvtxTrack* tr
// Acts::Vector3 ideal_local(loc.x(), loc.y(), 0.0);
auto nominal_loc = geometry->getLocalCoords(ckey, cluster);
Acts::Vector3 ideal_local(nominal_loc.x(), nominal_loc.y(), 0.0);
Acts::Vector3 ideal_glob = surf_ideal->transform(geometry->geometry().getGeoContext()) * (ideal_local * Acts::UnitConstants::cm);
auto idealrot = surf_ideal->transform(geometry->geometry().getGeoContext()).rotation();
Acts::Vector3 ideal_glob = surf_ideal->localToGlobalTransform(geometry->geometry().getGeoContext()) * (ideal_local * Acts::UnitConstants::cm);
auto idealrot = surf_ideal->localToGlobalTransform(geometry->geometry().getGeoContext()).rotation();

//! These calculations are taken from the wikipedia page for Euler angles,
//! under the Tait-Bryan angle explanation. Formulas for the angles
Expand Down Expand Up @@ -1453,7 +1453,7 @@ void TrackResiduals::fillClusterBranchesSeeds(TrkrDefs::cluskey ckey, // SvtxTr

auto misaligncenter = surf->center(geometry->geometry().getGeoContext());
auto misalignnorm = -1 * surf->normal(geometry->geometry().getGeoContext(), Acts::Vector3(1, 1, 1), Acts::Vector3(1, 1, 1));
auto misrot = surf->transform(geometry->geometry().getGeoContext()).rotation();
auto misrot = surf->localToGlobalTransform(geometry->geometry().getGeoContext()).rotation();

float mgamma = atan2(-misrot(1, 0), misrot(0, 0));
float mbeta = -asin(misrot(0, 1));
Expand All @@ -1464,8 +1464,8 @@ void TrackResiduals::fillClusterBranchesSeeds(TrkrDefs::cluskey ckey, // SvtxTr
auto idealcenter = surf->center(geometry->geometry().getGeoContext());
auto idealnorm = -1 * surf->normal(geometry->geometry().getGeoContext(), Acts::Vector3(1, 1, 1), Acts::Vector3(1, 1, 1));
Acts::Vector3 ideal_local(loc.x(), loc.y(), 0.0);
Acts::Vector3 ideal_glob = surf->transform(geometry->geometry().getGeoContext()) * (ideal_local * Acts::UnitConstants::cm);
auto idealrot = surf->transform(geometry->geometry().getGeoContext()).rotation();
Acts::Vector3 ideal_glob = surf->localToGlobalTransform(geometry->geometry().getGeoContext()) * (ideal_local * Acts::UnitConstants::cm);
auto idealrot = surf->localToGlobalTransform(geometry->geometry().getGeoContext()).rotation();

//! These calculations are taken from the wikipedia page for Euler angles,
//! under the Tait-Bryan angle explanation. Formulas for the angles
Expand Down Expand Up @@ -1552,7 +1552,7 @@ void TrackResiduals::fillStatesWithCircleFit(const TrkrDefs::cluskey& key,
}
else
{
auto local = (surf->transform(geometry->geometry().getGeoContext())).inverse() * (intersection * Acts::UnitConstants::cm);
auto local = (surf->localToGlobalTransform(geometry->geometry().getGeoContext())).inverse() * (intersection * Acts::UnitConstants::cm);
local /= Acts::UnitConstants::cm;
m_statelx.push_back(local.x());
m_statelz.push_back(local.y());
Expand All @@ -1579,7 +1579,7 @@ void TrackResiduals::fillStatesWithLineFit(const TrkrDefs::cluskey& key,
}
else
{
Acts::Vector3 loct = surf->transform(geometry->geometry().getGeoContext()).inverse() * (intersection * Acts::UnitConstants::cm);
Acts::Vector3 loct = surf->localToGlobalTransform(geometry->geometry().getGeoContext()).inverse() * (intersection * Acts::UnitConstants::cm);
loct /= Acts::UnitConstants::cm;
m_statelx.push_back(loct(0));
m_statelz.push_back(loct(1));
Expand Down
4 changes: 2 additions & 2 deletions offline/packages/intt/CylinderGeomInttHelper.cc
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ TVector3 CylinderGeomInttHelper::get_world_from_local_coords(const Surface& surf
Acts::Vector3 loc(local.x(), local.y(), local.z());
loc *= Acts::UnitConstants::cm;

Acts::Vector3 glob = surface->transform(tGeometry->geometry().getGeoContext()) * loc;
Acts::Vector3 glob = surface->localToGlobalTransform(tGeometry->geometry().getGeoContext()) * loc;
glob /= Acts::UnitConstants::cm;
return TVector3(glob(0), glob(1), glob(2));
}
Expand Down Expand Up @@ -53,7 +53,7 @@ TVector3 CylinderGeomInttHelper::get_local_from_world_coords(const Surface& surf
global(2) = world[2];
global *= Acts::UnitConstants::cm;

Acts::Vector3 local = surface->transform(tGeometry->geometry().getGeoContext()).inverse() * global;
Acts::Vector3 local = surface->localToGlobalTransform(tGeometry->geometry().getGeoContext()).inverse() * global;

local /= Acts::UnitConstants::cm;

Expand Down
4 changes: 2 additions & 2 deletions offline/packages/micromegas/CylinderGeomMicromegas.cc
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ TVector3 CylinderGeomMicromegas::get_local_from_world_coords( uint tileid, ActsG

// convert to local
/* this is equivalent to calling surface->globalToLocal but without the "on surface" check, and while returning a full Acts::Vector3 */
const auto local = surface->transform(geometry->geometry().getGeoContext()).inverse()*global;
const auto local = surface->localToGlobalTransform(geometry->geometry().getGeoContext()).inverse()*global;
return TVector3(
local.x()/Acts::UnitConstants::cm,
local.y()/Acts::UnitConstants::cm,
Expand Down Expand Up @@ -109,7 +109,7 @@ TVector3 CylinderGeomMicromegas::get_world_from_local_coords( uint tileid, ActsG

// convert to global
/* this is equivalent to calling surface->localToGlobal but without assuming that the local point is on surface */
const auto global = surface->transform(geometry->geometry().getGeoContext())*local;
const auto global = surface->localToGlobalTransform(geometry->geometry().getGeoContext())*local;
return TVector3(
global.x()/Acts::UnitConstants::cm,
global.y()/Acts::UnitConstants::cm,
Expand Down
4 changes: 2 additions & 2 deletions offline/packages/mvtx/CylinderGeom_MvtxHelper.cc
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ CylinderGeom_MvtxHelper::get_local_from_world_coords (

global *= Acts::UnitConstants::cm;

Acts::Vector3 local = surface->transform(tGeometry->geometry().getGeoContext()).inverse() * global;
Acts::Vector3 local = surface->localToGlobalTransform(tGeometry->geometry().getGeoContext()).inverse() * global;
local /= Acts::UnitConstants::cm;

/// The Acts transform swaps a few of the coordinates
Expand Down Expand Up @@ -67,7 +67,7 @@ CylinderGeom_MvtxHelper::get_world_from_local_coords (
Acts::Vector3 loc(local.x(), local.y(), local.z());
loc *= Acts::UnitConstants::cm;

Acts::Vector3 glob = surface->transform(tGeometry->geometry().getGeoContext()) * loc;
Acts::Vector3 glob = surface->localToGlobalTransform(tGeometry->geometry().getGeoContext()) * loc;
glob /= Acts::UnitConstants::cm;

return TVector3(glob(0), glob(1), glob(2));
Expand Down
4 changes: 2 additions & 2 deletions offline/packages/tpc/LaserClusterizer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -872,12 +872,12 @@ namespace
}

// Convert from ideal TPC coordinates to surface coordinates
Acts::Vector3 local = surface->transform(my_data.tGeometry->geometry().getGeoContext()).inverse() * (ideal * Acts::UnitConstants::cm);
Acts::Vector3 local = surface->localToGlobalTransform(my_data.tGeometry->geometry().getGeoContext()).inverse() * (ideal * Acts::UnitConstants::cm);
local /= Acts::UnitConstants::cm;

// Convert back to TPC coordinates with alignment applied
alignmentTransformationContainer::use_alignment = true;
Acts::Vector3 global = surface->transform(my_data.tGeometry->geometry().getGeoContext()) * (local * Acts::UnitConstants::cm);
Acts::Vector3 global = surface->localToGlobalTransform(my_data.tGeometry->geometry().getGeoContext()) * (local * Acts::UnitConstants::cm);
global /= Acts::UnitConstants::cm;
clus->setX(global(0));
clus->setY(global(1));
Expand Down
4 changes: 2 additions & 2 deletions offline/packages/tpc/TpcClusterizer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -714,7 +714,7 @@ namespace
/// convert to Acts units
global *= Acts::UnitConstants::cm;
// std::cout << "transform" << std::endl;
Acts::Vector3 local = surface->transform(my_data.tGeometry->geometry().getGeoContext()).inverse() * global;
Acts::Vector3 local = surface->localToGlobalTransform(my_data.tGeometry->geometry().getGeoContext()).inverse() * global;
local /= Acts::UnitConstants::cm;
// std::cout << "done transform" << std::endl;
// we need the cluster key and all associated hit keys (note: the cluster key includes the hitset key)
Expand Down Expand Up @@ -763,7 +763,7 @@ namespace
double nn_y = radius * std::sin(nn_phi);
Acts::Vector3 nn_global(nn_x, nn_y, nn_z);
nn_global *= Acts::UnitConstants::cm;
Acts::Vector3 nn_local = surface->transform(my_data.tGeometry->geometry().geoContext).inverse() * nn_global;
Acts::Vector3 nn_local = surface->localToGlobalTransform(my_data.tGeometry->geometry().geoContext).inverse() * nn_global;
nn_local /= Acts::UnitConstants::cm;
double nn_t = my_data.m_tdriftmax - std::fabs(nn_z) / my_data.tGeometry->get_drift_velocity();
clus_base->setLocalX(nn_local(0));
Expand Down
1 change: 0 additions & 1 deletion offline/packages/trackbase/ActsGeometry.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ class TrkrCluster;
class ActsGeometry
{
public:
ActsGeometry() = default;
~ActsGeometry() = default;

void setGeometry(const ActsTrackingGeometry& tGeometry)
Expand Down
26 changes: 14 additions & 12 deletions offline/packages/trackbase/ActsGsfTrackFittingAlgorithm.h
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ namespace
MixtureReductionAlgorithm::KLDistance;
Acts::ComponentMergeMethod mergeMethod =
Acts::ComponentMergeMethod::eMaxWeight;

double reverseFilteringCovarianceScaling = 100.;
ActsSourceLink::SurfaceAccessor m_slSurfaceAccessor;

GsfFitterFunctionImpl(Fitter&& f,
Expand All @@ -83,17 +83,18 @@ namespace
extensions.updater.connect<&Acts::GainMatrixUpdater::operator()<Acts::VectorMultiTrajectory>>(&updater);

Acts::GsfOptions<Acts::VectorMultiTrajectory> gsfOptions{
options.geoContext,
options.magFieldContext,
options.calibrationContext,
extensions,
options.propOptions,
&(*options.referenceSurface),
maxComponents,
weightCutoff,
abortOnError,
disableAllMaterialHandling};
options.geoContext, options.magFieldContext,
options.calibrationContext};
gsfOptions.extensions = extensions;
gsfOptions.propagatorPlainOptions = options.propOptions;
gsfOptions.referenceSurface = options.referenceSurface;
gsfOptions.maxComponents = maxComponents;
gsfOptions.weightCutoff = weightCutoff;
gsfOptions.abortOnError = abortOnError;
gsfOptions.disableAllMaterialHandling = disableAllMaterialHandling;
gsfOptions.componentMergeMethod = mergeMethod;
gsfOptions.reverseFilteringCovarianceScaling =
reverseFilteringCovarianceScaling;
gsfOptions.extensions.calibrator.connect<&calibrator_t::calibrate>(
&calibrator);
gsfOptions.extensions.surfaceAccessor.connect<&ActsSourceLink::SurfaceAccessor::operator()>(&m_slSurfaceAccessor);
Expand Down Expand Up @@ -152,5 +153,6 @@ class ActsGsfTrackFittingAlgorithm
BetheHeitlerApprox betheHeitlerApprox, std::size_t maxComponents,
double weightCutoff,
MixtureReductionAlgorithm finalReductionMethod, bool abortOnError,
bool disableAllMaterialHandling, const Acts::Logger& logger = *Acts::getDefaultLogger("GSF", Acts::Logging::FATAL));
bool disableAllMaterialHandling, double reverseFilteringCovarianceScaling,
const Acts::Logger& logger = *Acts::getDefaultLogger("GSF", Acts::Logging::FATAL));
};
Loading