Skip to content

Commit c4a49c9

Browse files
author
Maurice Coquet
committed
Bug fixes
1 parent 31ef720 commit c4a49c9

1 file changed

Lines changed: 18 additions & 13 deletions

File tree

PWGDQ/Tasks/mftMchMatcher.cxx

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,6 @@ struct mftMchMatcher {
228228
Configurable<float> fPtMFTLow{"cfgPtMFTLow", 0.1f, ""};
229229

230230
//// Variables for matching configuration
231-
Configurable<float> fMatchingPlaneZ{"cfgMatchingPlaneZ", -77.5f, ""};
232231
Configurable<int> fMaxCandidates{"cfgMaxCandidates", 0, ""};
233232

234233
Configurable<bool> fKeepBestMatch{"cfgKeepBestMatch", false, "Keep only the best match global muons in the skimming"};
@@ -268,7 +267,12 @@ struct mftMchMatcher {
268267
double thetaAbs = TMath::ATan(mchTrack.rAtAbsorberEnd() / 505.) * TMath::RadToDeg();
269268

270269
// propagate muon track to vertex
271-
auto mchTrackAtVertex = mMatching.FwdtoMCH(VarManager::FwdToTrackPar(mchTrack, mchTrack));
270+
auto trackConv = VarManager::FwdToTrackPar(mchTrack, mchTrack);
271+
o2::dataformats::GlobalFwdTrack track;
272+
track.setParameters(trackConv.getParameters());
273+
track.setZ(trackConv.getZ());
274+
track.setCovariances(trackConv.getCovariances());
275+
auto mchTrackAtVertex = mMatching.FwdtoMCH(track);
272276
o2::mch::TrackExtrap::extrapToVertex(mchTrackAtVertex, collision.posX(), collision.posY(), collision.posZ(), collision.covXX(), collision.covYY());
273277

274278
// double pUncorr = mchTrack.p();
@@ -361,18 +365,14 @@ struct mftMchMatcher {
361365
if (mRunNumber == bc.runNumber())
362366
return;
363367

364-
mRunNumber = bc.runNumber();
365-
std::map<std::string, std::string> metadata;
366-
auto soreor = o2::ccdb::BasicCCDBManager::getRunDuration(fCCDBApi, mRunNumber);
367-
auto ts = soreor.first;
368-
fGrpMag = fCCDBApi.retrieveFromTFileAny<o2::parameters::GRPMagField>(grpmagPath, metadata, ts);
368+
fGrpMag = ccdbManager->getForTimeStamp<o2::parameters::GRPMagField>(grpmagPath, bc.timestamp());
369369

370370
if (fGrpMag != nullptr) {
371371
o2::base::Propagator::initFieldFromGRP(fGrpMag);
372372
VarManager::SetMagneticField(fGrpMag->getNominalL3Field());
373373
VarManager::SetupMuonMagField();
374374
}
375-
375+
mRunNumber = bc.runNumber();
376376
}
377377

378378
void init(o2::framework::InitContext&)
@@ -419,9 +419,14 @@ struct mftMchMatcher {
419419
MyMFTCovariances const& mftCovs,
420420
aod::McParticles const& /*mcParticles*/)
421421
{
422-
auto bc = bcs.begin();
423-
initCCDB(bc);
424-
VarManager::SetMatchingPlane(fzMatching.value);
422+
if (bcs.size() > 0) {
423+
auto bc = bcs.begin();
424+
initCCDB(bc);
425+
VarManager::SetMatchingPlane(fzMatching.value);
426+
}
427+
if (fKeepBestMatch) {
428+
skimBestMuonMatches(muonTracks);
429+
}
425430

426431
mftCovIndexes.clear();
427432
for (auto& mftTrackCov : mftCovs) {
@@ -432,7 +437,7 @@ struct mftMchMatcher {
432437

433438
for (auto muon : muonTracks) {
434439
// only consider global MFT-MCH-MID matches
435-
if (static_cast<int>(muon.trackType()) >= 2) {
440+
if (static_cast<int>(muon.trackType()) != 0) {
436441
continue;
437442
}
438443

@@ -457,7 +462,7 @@ struct mftMchMatcher {
457462
auto mftTime = mfttrack.trackTime() + bc_coll.globalBC()*o2::constants::lhc::LHCBunchSpacingNS;
458463

459464
o2::track::TrackParCovFwd mftprop = VarManager::FwdToTrackPar(mfttrack, mfttrackcov);
460-
o2::dataformats::GlobalFwdTrack muonprop = VarManager::FwdToTrackPar(muontrack, muontrack);
465+
o2::track::TrackParCovFwd muonprop = VarManager::FwdToTrackPar(muontrack, muontrack);
461466
if (fzMatching.value < 0.) {
462467
mftprop = VarManager::PropagateFwd(mfttrack, mfttrackcov, fzMatching.value);
463468
muonprop = VarManager::PropagateMuon(muontrack, collision, VarManager::kToMatching);

0 commit comments

Comments
 (0)