Skip to content

Commit 62b8b09

Browse files
committed
More fixes
1 parent 88909a1 commit 62b8b09

1 file changed

Lines changed: 20 additions & 16 deletions

File tree

PWGDQ/Tasks/muonGlobalAlignment.cxx

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,10 @@ using CompactMFTTrack = CompactMFTTracks;
129129
struct muonGlobalAlignment {
130130

131131
static constexpr int GlobalTrackTypeMax = 2;
132+
static constexpr int NMchChambers = 10;
133+
static constexpr int NMchDetElems = 156;
134+
static constexpr int ThetaAbsBoundaryDeg = 3;
135+
static constexpr double SlopeResolutionZ = 535.;
132136

133137
Produces<aod::CompactMFTTracks> mftTable;
134138
Configurable<bool> cfgProduceMFTTable{"cfgProduceMFTTable", false, "flag to produce MFTsa table"};
@@ -390,7 +394,7 @@ struct muonGlobalAlignment {
390394
} else {
391395
LOGF(fatal, "Reference aligned geometry object is not available in CCDB at timestamp=%llu", bc.timestamp());
392396
}
393-
for (int i = 0; i < 156; i++) {
397+
for (int i = 0; i < NMchDetElems; i++) {
394398
int iDEN = GetDetElemId(i);
395399
transformRef[iDEN] = transformation(iDEN);
396400
}
@@ -404,7 +408,7 @@ struct muonGlobalAlignment {
404408
} else {
405409
LOGF(fatal, "New aligned geometry object is not available in CCDB at timestamp=%llu", bc.timestamp());
406410
}
407-
for (int i = 0; i < 156; i++) {
411+
for (int i = 0; i < NMchDetElems; i++) {
408412
int iDEN = GetDetElemId(i);
409413
transformNew[iDEN] = transformation(iDEN);
410414
}
@@ -630,7 +634,7 @@ struct muonGlobalAlignment {
630634
// get chamber and element number in chamber
631635
int iCh = 0;
632636
int iDet = 0;
633-
for (int i = 1; i <= 10; i++) {
637+
for (int i = 1; i <= NMchChambers; i++) {
634638
if (iDetElemNumber < fgSNDetElemCh[i]) {
635639
iCh = i;
636640
iDet = iDetElemNumber - fgSNDetElemCh[i - 1];
@@ -639,7 +643,7 @@ struct muonGlobalAlignment {
639643
}
640644

641645
// make sure detector index is valid
642-
if (!(iCh > 0 && iCh <= 10 && iDet < fgNDetElemCh[iCh - 1])) {
646+
if (!(iCh > 0 && iCh <= NMchChambers && iDet < fgNDetElemCh[iCh - 1])) {
643647
LOGF(fatal, "Invalid detector element id: %d", 100 * iCh + iDet);
644648
}
645649

@@ -682,7 +686,7 @@ struct muonGlobalAlignment {
682686
{
683687
static int nDE = 0;
684688
if (nDE <= 0) {
685-
for (int c = 0; c < 10; c++) {
689+
for (int c = 0; c < NMchChambers; c++) {
686690
nDE += getNumDEinChamber(c);
687691
}
688692
}
@@ -937,7 +941,7 @@ struct muonGlobalAlignment {
937941
auto itNextToNextParam = (itNextParam == track.end()) ? itNextParam : std::next(itNextParam);
938942
itStartingParam = track.rbegin();
939943

940-
if (track.getNClusters() < 10) {
944+
if (track.getNClusters() < NMchChambers) {
941945
removeTrack = true;
942946
break;
943947
} else {
@@ -1000,10 +1004,10 @@ struct muonGlobalAlignment {
10001004
double p = mchTrackAtVertex.getP();
10011005

10021006
double pDCA = mchTrack.pDca();
1003-
double sigmaPDCA = (thetaAbs < 3) ? sigmaPDCA23 : sigmaPDCA310;
1007+
double sigmaPDCA = (thetaAbs < ThetaAbsBoundaryDeg) ? sigmaPDCA23 : sigmaPDCA310;
10041008
double nrp = nSigmaPDCA * relPRes * p;
10051009
double pResEffect = sigmaPDCA / (1. - nrp / (1. + nrp));
1006-
double slopeResEffect = 535. * slopeRes * p;
1010+
double slopeResEffect = SlopeResolutionZ * slopeRes * p;
10071011
double sigmaPDCAWithRes = TMath::Sqrt(pResEffect * pResEffect + slopeResEffect * slopeResEffect);
10081012
if (pDCA > nSigmaPDCA * sigmaPDCAWithRes) {
10091013
return false;
@@ -1021,7 +1025,7 @@ struct muonGlobalAlignment {
10211025
std::array<double, 2> rAbsCut,
10221026
double nSigmaPdcaCut)
10231027
{
1024-
auto const& mchTrack = (static_cast<int>(muonTrack.trackType()) <= 2) ? muonTrack.template matchMCHTrack_as<MyMuonsWithCov>() : muonTrack;
1028+
auto const& mchTrack = (static_cast<int>(muonTrack.trackType()) <= GlobalTrackTypeMax) ? muonTrack.template matchMCHTrack_as<MyMuonsWithCov>() : muonTrack;
10251029

10261030
// chi2 cut
10271031
if (mchTrack.chi2() > chi2Cut)
@@ -1252,7 +1256,7 @@ struct muonGlobalAlignment {
12521256
template <class TMFT>
12531257
o2::dataformats::GlobalFwdTrack PropagateMFT(const TMFT& mftTrack, float z)
12541258
{
1255-
static double Bz = -10001;
1259+
//static double Bz = -10001;
12561260
double chi2 = mftTrack.chi2();
12571261
SMatrix5 tpars = {mftTrack.x(), mftTrack.y(), mftTrack.phi(), mftTrack.tgl(), mftTrack.signed1Pt()};
12581262
std::vector<double> v1{0, 0, 0, 0, 0,
@@ -1270,12 +1274,12 @@ struct muonGlobalAlignment {
12701274
// double centerZ[3] = {mftTrack.x() + propVec[0] / 2.,
12711275
// mftTrack.y() + propVec[1] / 2.,
12721276
// mftTrack.z() + propVec[2] / 2.};
1273-
if (Bz < -10000) {
1274-
double centerZ[3] = {0, 0, (-45.f - 77.5f) / 2.f};
1275-
o2::field::MagneticField* field = static_cast<o2::field::MagneticField*>(TGeoGlobalMagField::Instance()->GetField());
1276-
Bz = field->getBz(centerZ);
1277-
}
1278-
fwdtrack.propagateToZ(z, Bz);
1277+
//if (Bz < -10000) {
1278+
// double centerZ[3] = {0, 0, (-45.f - 77.5f) / 2.f};
1279+
// o2::field::MagneticField* field = static_cast<o2::field::MagneticField*>(TGeoGlobalMagField::Instance()->GetField());
1280+
// Bz = field->getBz(centerZ);
1281+
//}
1282+
fwdtrack.propagateToZ(z, mBzAtMftCenter);
12791283

12801284
propmuon.setParameters(fwdtrack.getParameters());
12811285
propmuon.setZ(fwdtrack.getZ());

0 commit comments

Comments
 (0)