@@ -82,37 +82,37 @@ struct FwdTrackExtension {
8282 if (track.has_collision ()) {
8383 auto const & collision = track.collision ();
8484 auto bc = collision.template bc_as <o2::aod::BCsWithTimestamps>();
85- if (propInTheAbsorber ) {
86- if ( fCurrentRun != bc.runNumber ()) {
87- grpmag = fCCDB -> getForTimeStamp <o2::parameters::GRPMagField>(grpmagPath, bc. timestamp ());
88- if (grpmag != nullptr ) {
89- LOGF (info, " Init field from GRP " );
90- o2::base::Propagator::initFieldFromGRP (grpmag);
91- }
85+ if (fCurrentRun != bc. runNumber () ) {
86+ grpmag = fCCDB -> getForTimeStamp <o2::parameters::GRPMagField>(grpmagPath, bc.timestamp ());
87+ if ( grpmag != nullptr ) {
88+ LOGF (info, " Init field from GRP " );
89+ o2::base::Propagator::initFieldFromGRP (grpmag );
90+ }
91+ if (propInTheAbsorber) {
9292 LOGF (info, " Set field for muons" );
9393 o2::mch::TrackExtrap::setField ();
94- fCurrentRun = bc.runNumber ();
9594 }
96- const float zField = grpmag->getNominalL3Field ();
95+ fCurrentRun = bc.runNumber ();
96+ }
97+ const float zField = grpmag->getNominalL3Field ();
9798
98- o2::track::TrackParCovFwd fwdtrack = o2::aod::fwdtrackutils::getTrackParCovFwdShift (track, 0.0 );
99- if (refitGlobalMuon && (trackType == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack || trackType == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalForwardTrack)) {
100- auto muontrack = track.template matchMCHTrack_as <MuonsWithCov>();
101- auto mfttrack = track.template matchMFTTrack_as <aod::MFTTracks>();
102- o2::dataformats::GlobalFwdTrack propmuon = o2::aod::fwdtrackutils::propagateMuon (muontrack, muontrack, collision, o2::aod::fwdtrackutils::propagationPoint::kToVertex , 0 .f , zField);
103- SMatrix5 tpars (mfttrack.x (), mfttrack.y (), mfttrack.phi (), mfttrack.tgl (), mfttrack.signed1Pt ());
104- SMatrix55 tcovs{};
105- o2::track::TrackParCovFwd mft{mfttrack.z (), tpars, tcovs, mfttrack.chi2 ()};
106- fwdtrack = o2::aod::fwdtrackutils::refitGlobalMuonCov (propmuon, mft);
107- }
108- if (trackType == o2::aod::fwdtrack::ForwardTrackTypeEnum::MuonStandaloneTrack || trackType == o2::aod::fwdtrack::ForwardTrackTypeEnum::MCHStandaloneTrack) {
109- auto proptrack = o2::aod::fwdtrackutils::propagateTrackParCovFwd (fwdtrack, trackType, collision, o2::aod::fwdtrackutils::propagationPoint::kToDCA , 0 .f , zField);
110- dcaX = (proptrack.getX () - collision.posX ());
111- dcaY = (proptrack.getY () - collision.posY ());
112- }
113- } else {
99+ o2::track::TrackParCovFwd fwdtrack = o2::aod::fwdtrackutils::getTrackParCovFwdShift (track, 0.0 );
100+ if (refitGlobalMuon && (trackType == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack || trackType == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalForwardTrack)) {
101+ auto muontrack = track.template matchMCHTrack_as <MuonsWithCov>();
102+ auto mfttrack = track.template matchMFTTrack_as <aod::MFTTracks>();
103+ o2::dataformats::GlobalFwdTrack propmuon = o2::aod::fwdtrackutils::propagateMuon (muontrack, muontrack, collision, o2::aod::fwdtrackutils::propagationPoint::kToVertex , 0 .f , zField);
104+ SMatrix5 tpars (mfttrack.x (), mfttrack.y (), mfttrack.phi (), mfttrack.tgl (), mfttrack.signed1Pt ());
105+ SMatrix55 tcovs{};
106+ o2::track::TrackParCovFwd mft{mfttrack.z (), tpars, tcovs, mfttrack.chi2 ()};
107+ fwdtrack = o2::aod::fwdtrackutils::refitGlobalMuonCov (propmuon, mft);
108+ }
109+ if (!propInTheAbsorber && (trackType == o2::aod::fwdtrack::ForwardTrackTypeEnum::MuonStandaloneTrack || trackType == o2::aod::fwdtrack::ForwardTrackTypeEnum::MCHStandaloneTrack)) {
114110 dcaX = track.pDca () / std::numbers::sqrt2 / track.p ();
115111 dcaY = dcaX;
112+ } else {
113+ auto proptrack = o2::aod::fwdtrackutils::propagateTrackParCovFwd (fwdtrack, trackType, collision, o2::aod::fwdtrackutils::propagationPoint::kToDCA , 0 .f , zField);
114+ dcaX = (proptrack.getX () - collision.posX ());
115+ dcaY = (proptrack.getY () - collision.posY ());
116116 }
117117 }
118118 fwdDCA (dcaX, dcaY);
0 commit comments