Skip to content

Commit 2c659eb

Browse files
committed
More fixes
1 parent 68bfcdf commit 2c659eb

1 file changed

Lines changed: 18 additions & 13 deletions

File tree

PWGDQ/Tasks/muonGlobalAlignment.cxx

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
// granted to it by virtue of its status as an Intergovernmental Organization
1010
// or submit itself to any jurisdiction.
1111
//
12-
/// \file muonDCA.cxx
12+
/// \file muonGlobalAlignment.cxx // o2-linter: disable=name/file-cpp,name/workflow-file (legacy workflow executable name)
1313
/// \brief Task to compute and evaluate DCA quantities
1414
/// \author Nicolas Bizé <nicolas.bize@cern.ch>, SUBATECH
1515
//
@@ -151,6 +151,8 @@ struct muonGlobalAlignment {
151151
Configurable<int> cfgTrackNClustMftLow{"cfgTrackNClustMftLow", 7, ""};
152152
Configurable<float> cfgTrackChi2MftUp{"cfgTrackChi2MftUp", 999.f, ""};
153153

154+
Configurable<float> cfgMftDcaMatchChi2Up{"cfgMftDcaMatchChi2Up", 10.f, ""};
155+
154156
Configurable<float> cfgMftMchResidualsPLow{"cfgMftMchResidualsPLow", 30.f, ""};
155157
Configurable<float> cfgMftMchResidualsPtLow{"cfgMftMchResidualsPtLow", 4.f, ""};
156158

@@ -280,7 +282,7 @@ struct muonGlobalAlignment {
280282
std::map<uint64_t, CollisionInfo>& collisionInfos)
281283
{
282284
// fill collision information for global muon tracks (MFT-MCH-MID matches)
283-
for (auto muonTrack : muonTracks) {
285+
for (const auto& muonTrack : muonTracks) {
284286
if (!muonTrack.has_collision())
285287
continue;
286288

@@ -1526,11 +1528,13 @@ struct muonGlobalAlignment {
15261528
}
15271529

15281530
if (cfgEnableVertexShiftAnalysis) {
1529-
if (mftTrack.chi2() <= cfgTrackChi2MftUp && std::fabs(collision.posZ()) < 1.f && mftNclusters >= 6) {
1530-
float zshift[21] = {// in millimeters
1531+
static constexpr int nMftClustersMin = 6;
1532+
if (mftTrack.chi2() <= cfgTrackChi2MftUp && std::fabs(collision.posZ()) < 1.f && mftNclusters >= nMftClustersMin) {
1533+
static constexpr int nPoints = 21;
1534+
float zshift[nPoints] = {// in millimeters
15311535
-5.0, -4.5, -4.0, -3.5, -3.0, -2.5, -2.0, -1.5, -1.0, -0.5, 0.0,
15321536
0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0};
1533-
for (int zi = 0; zi < 21; zi++) {
1537+
for (int zi = 0; zi < nPoints; zi++) {
15341538
auto mftTrackAtDCAshifted = PropagateMFTToDCA(mftTrack, collision, zshift[zi] / 10.f);
15351539
double dcaxShifted = mftTrackAtDCAshifted.getX() - collision.posX();
15361540
double dcayShifted = mftTrackAtDCAshifted.getY() - collision.posY();
@@ -1557,15 +1561,15 @@ struct muonGlobalAlignment {
15571561
const auto& mchTrack = muonTrack.template matchMCHTrack_as<MyMuonsWithCov>();
15581562
const auto& mftTrack = muonTrack.template matchMFTTrack_as<MyMFTs>();
15591563

1560-
if (muonTrack.chi2MatchMCHMFT() < 50) {
1564+
if (muonTrack.chi2MatchMCHMFT() < cfgMftDcaMatchChi2Up.value) {
15611565
continue;
15621566
}
15631567

15641568
if (globalTracksVector.size() > 1) {
15651569
auto const& muonTrack2 = muonTracks.rawIteratorAt(globalTracksVector[1]);
15661570
double dchi2 = muonTrack2.chi2MatchMCHMFT() - muonTrack.chi2MatchMCHMFT();
15671571

1568-
if (dchi2 < 50) {
1572+
if (dchi2 < cfgMftDcaMatchChi2Up.value) {
15691573
continue;
15701574
}
15711575
}
@@ -1608,7 +1612,7 @@ struct muonGlobalAlignment {
16081612

16091613
int deId = cluster.deId();
16101614
int chamber = deId / 100 - 1;
1611-
if (chamber < 0 || chamber > 9) {
1615+
if (chamber < 0 || chamber >= NMchChambers) {
16121616
continue;
16131617
}
16141618

@@ -1707,8 +1711,8 @@ struct muonGlobalAlignment {
17071711
if (!isGoodMFT)
17081712
continue;
17091713

1710-
double matchChi2 = muonTrack.chi2MatchMCHMFT() / 5.f;
1711-
if (matchChi2 > 10.f)
1714+
double matchChi2 = muonTrack.chi2MatchMCHMFT();
1715+
if (matchChi2 > cfgMftDcaMatchChi2Up.value)
17121716
continue;
17131717

17141718
// refit MCH track if enabled
@@ -1731,7 +1735,7 @@ struct muonGlobalAlignment {
17311735
for (auto const& cluster : clustersSliced) {
17321736
int deId = cluster.deId();
17331737
int chamber = deId / 100 - 1;
1734-
if (chamber < 0 || chamber > 9)
1738+
if (chamber < 0 || chamber >= NMchChambers)
17351739
continue;
17361740
int deIndex = getDEindex(deId);
17371741

@@ -1827,15 +1831,16 @@ struct muonGlobalAlignment {
18271831

18281832
// MFT-MCH track residuals analysis
18291833
if (cfgEnableMftMchMatchingAnalysis && convertedTrackWithCorrOk) {
1830-
double refPlaneZ[2] = {cfgRefPlaneZMFT, cfgRefPlaneZMCH};
1834+
static constexpr int nRefPlanes = 2;
1835+
double refPlaneZ[nRefPlanes] = {cfgRefPlaneZMFT, cfgRefPlaneZMCH};
18311836

18321837
std::shared_ptr<THnSparse> dxPlots[2]{registry.get<THnSparse>(HIST("matching/dxAtMFT")), registry.get<THnSparse>(HIST("matching/dxAtMCH"))};
18331838
std::shared_ptr<THnSparse> dyPlots[2]{registry.get<THnSparse>(HIST("matching/dyAtMFT")), registry.get<THnSparse>(HIST("matching/dyAtMCH"))};
18341839
std::shared_ptr<THnSparse> dsxPlots[2]{registry.get<THnSparse>(HIST("matching/dsxAtMFT")), registry.get<THnSparse>(HIST("matching/dsxAtMCH"))};
18351840
std::shared_ptr<THnSparse> dsyPlots[2]{registry.get<THnSparse>(HIST("matching/dsyAtMFT")), registry.get<THnSparse>(HIST("matching/dsyAtMCH"))};
18361841
std::shared_ptr<THnSparse> dphiPlots[2]{registry.get<THnSparse>(HIST("matching/dphiAtMFT")), registry.get<THnSparse>(HIST("matching/dphiAtMCH"))};
18371842

1838-
for (int iRefPlane = 0; iRefPlane < 2; iRefPlane++) {
1843+
for (int iRefPlane = 0; iRefPlane < nRefPlanes; iRefPlane++) {
18391844
const auto mftTrackAtRefPlane = configRealign.cfgEnableMCHRealign ? PropagateMFTtoMCH(mftTrack, mch::TrackParam(convertedTrackWithCorr.first()), refPlaneZ[iRefPlane]) : PropagateMFTtoMCH(mftTrack, FwdtoMCH(FwdToTrackPar(mchTrack)), refPlaneZ[iRefPlane]);
18401845
const auto mchTrackAtRefPlane = configRealign.cfgEnableMCHRealign ? PropagateMCHRealigned(convertedTrackWithCorr, refPlaneZ[iRefPlane]) : PropagateMCH(mchTrack, refPlaneZ[iRefPlane]);
18411846
const auto& refTrackAtRefPlane = (iRefPlane == 0) ? mftTrackAtRefPlane : mchTrackAtRefPlane;

0 commit comments

Comments
 (0)