Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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: 2 additions & 2 deletions PWGEM/Dilepton/Tasks/matchingMFT.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -145,8 +145,8 @@
hMuonType->GetXaxis()->SetBinLabel(5, "MCH standalone");

fRegistry.add("MFTMCHMID/primary/correct/hPt", "pT;p_{T} (GeV/c)", kTH1F, {{100, 0.0f, 10}}, false);
fRegistry.add("MFTMCHMID/primary/correct/hEtaPhi", "#eta vs. #varphi;#varphi (rad.);#eta", kTH2F, {{180, 0, 2 * M_PI}, {100, -6.f, -1.f}}, false);

Check warning on line 148 in PWGEM/Dilepton/Tasks/matchingMFT.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[pi-multiple-fraction]

Use multiples/fractions of PI defined in o2::constants::math.

Check warning on line 148 in PWGEM/Dilepton/Tasks/matchingMFT.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[external-pi]

Use the PI constant (and its multiples and fractions) defined in o2::constants::math.
fRegistry.add("MFTMCHMID/primary/correct/hEtaPhi_MatchedMCHMID", "#eta vs. #varphi;#varphi (rad.);#eta", kTH2F, {{180, 0, 2 * M_PI}, {100, -6.f, -1.f}}, false);

Check warning on line 149 in PWGEM/Dilepton/Tasks/matchingMFT.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[pi-multiple-fraction]

Use multiples/fractions of PI defined in o2::constants::math.

Check warning on line 149 in PWGEM/Dilepton/Tasks/matchingMFT.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[external-pi]

Use the PI constant (and its multiples and fractions) defined in o2::constants::math.
fRegistry.add("MFTMCHMID/primary/correct/hDiffCollId", "difference in collision index;collisionId_{TTCA} - collisionId_{MP}", kTH1F, {{41, -20.5, +20.5}}, false);
fRegistry.add("MFTMCHMID/primary/correct/hSign", "sign;sign", kTH1F, {{3, -1.5, +1.5}}, false);
fRegistry.add("MFTMCHMID/primary/correct/hNclusters", "Nclusters;Nclusters", kTH1F, {{21, -0.5f, 20.5}}, false);
Expand All @@ -173,7 +173,7 @@
fRegistry.addClone("MFTMCHMID/primary/correct/", "MFTMCHMID/primary/wrong/");
fRegistry.addClone("MFTMCHMID/primary/", "MFTMCHMID/secondary/");

fRegistry.add("Generated/primary/hs", "gen. info;p_{T} (GeV/c);#eta;#varphi (rad.)", kTHnSparseF, {{100, 0.0f, 10}, {60, -5, -2}, {90, 0, 2.f * M_PI}}, false);

Check warning on line 176 in PWGEM/Dilepton/Tasks/matchingMFT.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[pi-multiple-fraction]

Use multiples/fractions of PI defined in o2::constants::math.

Check warning on line 176 in PWGEM/Dilepton/Tasks/matchingMFT.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[external-pi]

Use the PI constant (and its multiples and fractions) defined in o2::constants::math.
}

bool isSelected(const float pt, const float eta, const float rAtAbsorberEnd, const float pDCA, const float chi2, const uint8_t trackType, const float dcaXY)
Expand Down Expand Up @@ -244,7 +244,7 @@
return;
}

if (std::abs(mcParticle_MCHMID.pdgCode()) != 13) { // select true muon

Check warning on line 247 in PWGEM/Dilepton/Tasks/matchingMFT.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.

Check warning on line 247 in PWGEM/Dilepton/Tasks/matchingMFT.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[pdg/explicit-code]

Avoid hard-coded PDG codes. Use named values from PDG_t or o2::constants::physics::Pdg instead.
return;
}

Expand Down Expand Up @@ -273,8 +273,8 @@
float dcaXY = std::sqrt(dcaX * dcaX + dcaY * dcaY);
float dcaZ = -dcaXY * std::sinh(eta);

float dFdx = 2.f * dcaX / dcaXY;
float dFdy = 2.f * dcaY / dcaXY;
float dFdx = dcaX / dcaXY;
float dFdy = dcaY / dcaXY;
float sigma_dcaXY = std::sqrt(cXXatDCA * dFdx * dFdx + cYYatDCA * dFdy * dFdy + 2.f * cXYatDCA * dFdx * dFdy);

o2::dataformats::GlobalFwdTrack propmuonAtPV_Matched = propagateMuon(mchtrack, collision, propagationPoint::kToVertex);
Expand Down Expand Up @@ -452,7 +452,7 @@
void runGen(TMCParticles const& mcParticles)
{
for (const auto& mcParticle : mcParticles) {
if (std::abs(mcParticle.pdgCode()) != 13) { // select true muon

Check warning on line 455 in PWGEM/Dilepton/Tasks/matchingMFT.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.

Check warning on line 455 in PWGEM/Dilepton/Tasks/matchingMFT.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[pdg/explicit-code]

Avoid hard-coded PDG codes. Use named values from PDG_t or o2::constants::physics::Pdg instead.
continue;
}
if (!(mcParticle.isPhysicalPrimary() || mcParticle.producedByGenerator())) {
Expand Down
70 changes: 31 additions & 39 deletions PWGEM/Dilepton/Utils/EMTrackUtilities.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,36 +25,29 @@ namespace o2::aod::pwgem::dilepton::utils::emtrackutil
{
//_______________________________________________________________________
template <typename T>
float sigmaDca3D(T const& track)
float dca3DinSigma(T const& track)
{
float cYY = track.cYY(); // in cm^2
float cZZ = track.cZZ(); // in cm^2
float cZY = track.cZY(); // in cm^2
float dcaXY = track.dcaXY(); // in cm
float dcaZ = track.dcaZ(); // in cm
float dca3d = std::sqrt(dcaXY * dcaXY + dcaZ * dcaZ); // in cm
float dFdxy = 2.f * dcaXY / dca3d;
float dFdz = 2.f * dcaZ / dca3d;
return std::sqrt(cYY * dFdxy * dFdxy + cZZ * dFdz * dFdz + 2.f * cZY * dFdxy * dFdz);
float cYY = track.cYY();
float cZZ = track.cZZ();
float cZY = track.cZY();
float dcaXY = track.dcaXY(); // in cm
float dcaZ = track.dcaZ(); // in cm

float det = cYY * cZZ - cZY * cZY; // determinant
if (det < 0) {
return 999.f;
} else {
return std::sqrt(std::fabs((dcaXY * dcaXY * cZZ + dcaZ * dcaZ * cYY - 2. * dcaXY * dcaZ * cZY) / det / 2.)); // dca 3d in sigma
}
}
//_______________________________________________________________________
template <typename T>
float dca3DinSigma(T const& track)
float sigmaDca3D(T const& track)
{
return std::sqrt(track.dcaXY() * track.dcaXY() + track.dcaZ() * track.dcaZ()) / sigmaDca3D(track);

// float cYY = track.cYY();
// float cZZ = track.cZZ();
// float cZY = track.cZY();
// float dcaXY = track.dcaXY(); // in cm
// float dcaZ = track.dcaZ(); // in cm

// float det = cYY * cZZ - cZY * cZY; // determinant
// if (det < 0) {
// return 999.f;
// } else {
// return std::sqrt(std::fabs((dcaXY * dcaXY * cZZ + dcaZ * dcaZ * cYY - 2. * dcaXY * dcaZ * cZY) / det / 2.)); // dca 3d in sigma
// }
float dcaXY = track.dcaXY(); // in cm
float dcaZ = track.dcaZ(); // in cm
float dca3d = std::sqrt(dcaXY * dcaXY + dcaZ * dcaZ); // in cm
return dca3d / dca3DinSigma(track);
}
//_______________________________________________________________________
template <typename T>
Expand All @@ -70,30 +63,29 @@ float dcaZinSigma(T const& track)
}
//_______________________________________________________________________
template <typename T>
float sigmaFwdDcaXY(T const& track)
float fwdDcaXYinSigma(T const& track)
{
float cXX = track.cXXatDCA(); // in cm^2
float cYY = track.cYYatDCA(); // in cm^2
float cXY = track.cXYatDCA(); // in cm^2
float dcaX = track.fwdDcaX(); // in cm
float dcaY = track.fwdDcaY(); // in cm
float dcaXY = std::sqrt(dcaX * dcaX + dcaY * dcaY); // in cm
float dFdx = 2.f * dcaX / dcaXY;
float dFdy = 2.f * dcaY / dcaXY;
return std::sqrt(cXX * dFdx * dFdx + cYY * dFdy * dFdy + 2.f * cXY * dFdx * dFdy);
float det = cXX * cYY - cXY * cXY; // determinant

if (det < 0) {
return 999.f;
} else {
return std::sqrt(std::fabs((dcaX * dcaX * cYY + dcaY * dcaY * cXX - 2. * dcaX * dcaY * cXY) / det / 2.)); // dca xy in sigma
}
}
//_______________________________________________________________________
template <typename T>
float fwdDcaXYinSigma(T const& track)
float sigmaFwdDcaXY(T const& track)
{
return std::sqrt(track.fwdDcaX() * track.fwdDcaX() + track.fwdDcaY() * track.fwdDcaY()) / sigmaFwdDcaXY(track);

// float det = cXX * cYY - cXY * cXY; // determinant
// if (det < 0) {
// return 999.f;
// } else {
// return std::sqrt(std::fabs((dcaX * dcaX * cYY + dcaY * dcaY * cXX - 2. * dcaX * dcaY * cXY) / det / 2.)); // dca xy in sigma
// }
float dcaX = track.fwdDcaX(); // in cm
float dcaY = track.fwdDcaY(); // in cm
float dcaXY = std::sqrt(dcaX * dcaX + dcaY * dcaY); // in cm
return dcaXY / fwdDcaXYinSigma(track);
}
//_______________________________________________________________________
template <bool is_wo_acc = false, typename TTrack, typename TCut, typename TTracks>
Expand Down
Loading