Skip to content

Commit 030515c

Browse files
Update of FwdTrkExt task to improve memory consumption
1 parent 5c80dd9 commit 030515c

1 file changed

Lines changed: 29 additions & 27 deletions

File tree

Common/TableProducer/fwdtrackextension.cxx

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -82,34 +82,36 @@ 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 (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);
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+
}
92+
if (propInTheAbsorber) {
93+
LOGF(info, "Set field for muons");
94+
o2::mch::TrackExtrap::setField();
95+
}
96+
fCurrentRun = bc.runNumber();
9097
}
91-
if (propInTheAbsorber) {
92-
LOGF(info, "Set field for muons");
93-
o2::mch::TrackExtrap::setField();
94-
}
95-
fCurrentRun = bc.runNumber();
96-
}
97-
const float zField = grpmag->getNominalL3Field();
98+
const float zField = grpmag->getNominalL3Field();
9899

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)) {
110-
auto proptrack = o2::aod::fwdtrackutils::propagateTrackParCovFwd(fwdtrack, trackType, collision, o2::aod::fwdtrackutils::propagationPoint::kToDCA, 0.f, zField);
111-
dcaX = (proptrack.getX() - collision.posX());
112-
dcaY = (proptrack.getY() - collision.posY());
100+
o2::track::TrackParCovFwd fwdtrack = o2::aod::fwdtrackutils::getTrackParCovFwdShift(track, 0.0);
101+
if (refitGlobalMuon && (trackType == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalMuonTrack || trackType == o2::aod::fwdtrack::ForwardTrackTypeEnum::GlobalForwardTrack)) {
102+
auto muontrack = track.template matchMCHTrack_as<MuonsWithCov>();
103+
auto mfttrack = track.template matchMFTTrack_as<aod::MFTTracks>();
104+
o2::dataformats::GlobalFwdTrack propmuon = o2::aod::fwdtrackutils::propagateMuon(muontrack, muontrack, collision, o2::aod::fwdtrackutils::propagationPoint::kToVertex, 0.f, zField);
105+
SMatrix5 tpars(mfttrack.x(), mfttrack.y(), mfttrack.phi(), mfttrack.tgl(), mfttrack.signed1Pt());
106+
SMatrix55 tcovs{};
107+
o2::track::TrackParCovFwd mft{mfttrack.z(), tpars, tcovs, mfttrack.chi2()};
108+
fwdtrack = o2::aod::fwdtrackutils::refitGlobalMuonCov(propmuon, mft);
109+
}
110+
if (trackType == o2::aod::fwdtrack::ForwardTrackTypeEnum::MuonStandaloneTrack || trackType == o2::aod::fwdtrack::ForwardTrackTypeEnum::MCHStandaloneTrack) {
111+
auto proptrack = o2::aod::fwdtrackutils::propagateTrackParCovFwd(fwdtrack, trackType, collision, o2::aod::fwdtrackutils::propagationPoint::kToDCA, 0.f, zField);
112+
dcaX = (proptrack.getX() - collision.posX());
113+
dcaY = (proptrack.getY() - collision.posY());
114+
}
113115
} else {
114116
dcaX = track.pDca() / std::numbers::sqrt2 / track.p();
115117
dcaY = dcaX;
@@ -124,4 +126,4 @@ WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
124126
{
125127
WorkflowSpec workflow{adaptAnalysisTask<FwdTrackExtension>(cfgc)};
126128
return workflow;
127-
}
129+
}

0 commit comments

Comments
 (0)