@@ -50,7 +50,7 @@ struct FwdTrackExtension {
5050 Configurable<std::string> geoPath{" geoPath" , " GLO/Config/GeometryAligned" , " Path of the geometry file" };
5151 Configurable<std::string> grpmagPath{" grpmagPath" , " GLO/Config/GRPMagField" , " CCDB path of the GRPMagField object" };
5252 Configurable<std::string> configCcdbUrl{" configCcdbUrl" , " http://alice-ccdb.cern.ch" , " url of the ccdb repository" };
53- Configurable<bool > refitGlobalMuon{" refitGlobalMuon" , true , " Recompute parameters of global muons" };
53+ Configurable<bool > refitGlobalMuon{" refitGlobalMuon" , false , " Recompute parameters of global muons" };
5454
5555 Service<o2::ccdb::BasicCCDBManager> fCCDB ;
5656 o2::parameters::GRPMagField* grpmag = nullptr ; // for run 3, we access GRPMagField from GLO/Config/GRPMagField
@@ -69,8 +69,15 @@ struct FwdTrackExtension {
6969 }
7070 }
7171
72- void process (aod::Collisions::iterator const & collision, o2::aod::BCsWithTimestamps const & /* ...*/ , MuonsWithCov const & tracks, aod::MFTTracks const & /* ...*/ )
72+ // void process(aod::Collisions::iterator const& collision, o2::aod::BCsWithTimestamps const& /*...*/, MuonsWithCov const& tracks, aod::MFTTracks const& /*...*/)
73+ void process (aod::Collisions const & collisions, MuonsWithCov const & tracks, aod::MFTTracks const & /* ...*/ , o2::aod::BCsWithTimestamps const & /* ...*/ )
7374 {
75+ for (const auto & track : tracks) {
76+ const auto trackType = track.trackType ();
77+ float dcaX = -999 ;
78+ float dcaY = -999 ;
79+ if (track.has_collision ()) {
80+ auto const & collision = track.collision ();
7481 auto bc = collision.template bc_as <o2::aod::BCsWithTimestamps>();
7582 if (fCurrentRun != bc.runNumber ()) {
7683 grpmag = fCCDB ->getForTimeStamp <o2::parameters::GRPMagField>(grpmagPath, bc.timestamp ());
@@ -83,9 +90,8 @@ struct FwdTrackExtension {
8390 fCurrentRun = bc.runNumber ();
8491 }
8592 const float zField = grpmag->getNominalL3Field ();
86- for (const auto & track : tracks) {
87- const auto trackType = track.trackType ();
88- o2::dataformats::GlobalFwdTrack fwdtrack = o2::aod::fwdtrackutils::getTrackParCovFwd (track, track);
93+
94+ o2::track::TrackParCovFwd fwdtrack = o2::aod::fwdtrackutils::getTrackParCovFwdShift (track, 0.0 );
8995 if (refitGlobalMuon && (trackType == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack || trackType == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalForwardTrack)) {
9096 auto muontrack = track.template matchMCHTrack_as <MuonsWithCov>();
9197 auto mfttrack = track.template matchMFTTrack_as <aod::MFTTracks>();
@@ -95,9 +101,10 @@ struct FwdTrackExtension {
95101 o2::track::TrackParCovFwd mft{mfttrack.z (), tpars, tcovs, mfttrack.chi2 ()};
96102 fwdtrack = o2::aod::fwdtrackutils::refitGlobalMuonCov (propmuon, mft);
97103 }
98- const auto proptrack = o2::aod::fwdtrackutils::propagateTrackParCovFwd (fwdtrack, trackType, collision, o2::aod::fwdtrackutils::propagationPoint::kToDCA , 0 .f , zField);
99- const float dcaX = (proptrack.getX () - collision.posX ());
100- const float dcaY = (proptrack.getY () - collision.posY ());
104+ auto proptrack = o2::aod::fwdtrackutils::propagateTrackParCovFwd (fwdtrack, trackType, collision, o2::aod::fwdtrackutils::propagationPoint::kToDCA , 0 .f , zField);
105+ dcaX = (proptrack.getX () - collision.posX ());
106+ dcaY = (proptrack.getY () - collision.posY ());
107+ }
101108 fwdDCA (dcaX, dcaY);
102109 }
103110 }
0 commit comments