Skip to content

Commit

Permalink
Merge pull request cms-sw#272 from areinsvo/betterChargeFlipFix
Browse files Browse the repository at this point in the history
Update charge param if ipt is negative
  • Loading branch information
areinsvo committed Dec 16, 2020
2 parents fa403b9 + cdb411e commit 1461f85
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 7 deletions.
24 changes: 20 additions & 4 deletions mkFit/KalmanUtilsMPlex.cc
Expand Up @@ -468,7 +468,7 @@ void kalmanUpdate(const MPlexLS &psErr, const MPlexLV& psPar,
outErr, outPar, dummy_chi2, N_proc);
}

void kalmanPropagateAndUpdate(const MPlexLS &psErr, const MPlexLV& psPar, const MPlexQI &inChg,
void kalmanPropagateAndUpdate(const MPlexLS &psErr, const MPlexLV& psPar, MPlexQI &Chg,
const MPlexHS &msErr, const MPlexHV& msPar,
MPlexLS &outErr, MPlexLV& outPar,
const int N_proc, const PropagationFlags propFlags)
Expand All @@ -484,7 +484,7 @@ void kalmanPropagateAndUpdate(const MPlexLS &psErr, const MPlexLV& psPar, const
msRad.At(n, 0, 0) = std::hypot(msPar.ConstAt(n, 0, 0), msPar.ConstAt(n, 1, 0));
}

propagateHelixToRMPlex(psErr, psPar, inChg, msRad, propErr, propPar, N_proc, propFlags);
propagateHelixToRMPlex(psErr, psPar, Chg, msRad, propErr, propPar, N_proc, propFlags);

kalmanOperation(KFO_Update_Params, propErr, propPar, msErr, msPar,
outErr, outPar, dummy_chi2, N_proc);
Expand All @@ -494,6 +494,14 @@ void kalmanPropagateAndUpdate(const MPlexLS &psErr, const MPlexLV& psPar, const
kalmanOperation(KFO_Update_Params, psErr, psPar, msErr, msPar,
outErr, outPar, dummy_chi2, N_proc);
}
for (int n = 0; n < NN; ++n)
{
if (outPar.At(n,3,0) < 0)
{
Chg.At(n, 0, 0) = -1.0*Chg.ConstAt(n, 0, 0);
outPar.At(n,3,0) = std::abs(outPar.At(n,3,0));
}
}
}

//------------------------------------------------------------------------------
Expand Down Expand Up @@ -686,7 +694,7 @@ void kalmanUpdateEndcap(const MPlexLS &psErr, const MPlexLV& psPar,
outErr, outPar, dummy_chi2, N_proc);
}

void kalmanPropagateAndUpdateEndcap(const MPlexLS &psErr, const MPlexLV& psPar, const MPlexQI &inChg,
void kalmanPropagateAndUpdateEndcap(const MPlexLS &psErr, const MPlexLV& psPar, MPlexQI &Chg,
const MPlexHS &msErr, const MPlexHV& msPar,
MPlexLS &outErr, MPlexLV& outPar,
const int N_proc, const PropagationFlags propFlags)
Expand All @@ -702,7 +710,7 @@ void kalmanPropagateAndUpdateEndcap(const MPlexLS &psErr, const MPlexLV& psPar,
msZ.At(n, 0, 0) = msPar.ConstAt(n, 2, 0);
}

propagateHelixToZMPlex(psErr, psPar, inChg, msZ, propErr, propPar, N_proc, propFlags);
propagateHelixToZMPlex(psErr, psPar, Chg, msZ, propErr, propPar, N_proc, propFlags);

kalmanOperationEndcap(KFO_Update_Params, propErr, propPar, msErr, msPar,
outErr, outPar, dummy_chi2, N_proc);
Expand All @@ -712,6 +720,14 @@ void kalmanPropagateAndUpdateEndcap(const MPlexLS &psErr, const MPlexLV& psPar,
kalmanOperationEndcap(KFO_Update_Params, psErr, psPar, msErr, msPar,
outErr, outPar, dummy_chi2, N_proc);
}
for (int n = 0; n < NN; ++n)
{
if (outPar.At(n,3,0) < 0)
{
Chg.At(n, 0, 0) = -1.0*Chg.ConstAt(n, 0, 0);
outPar.At(n,3,0) = std::abs(outPar.At(n,3,0));
}
}
}

//------------------------------------------------------------------------------
Expand Down
4 changes: 2 additions & 2 deletions mkFit/KalmanUtilsMPlex.h
Expand Up @@ -22,7 +22,7 @@ void kalmanUpdate(const MPlexLS &psErr, const MPlexLV& psPar,
MPlexLS &outErr, MPlexLV& outPar,
const int N_proc);

void kalmanPropagateAndUpdate(const MPlexLS &psErr, const MPlexLV& psPar, const MPlexQI &inChg,
void kalmanPropagateAndUpdate(const MPlexLS &psErr, const MPlexLV& psPar, MPlexQI &Chg,
const MPlexHS &msErr, const MPlexHV& msPar,
MPlexLS &outErr, MPlexLV& outPar,
const int N_proc, const PropagationFlags propFlags);
Expand Down Expand Up @@ -53,7 +53,7 @@ void kalmanUpdateEndcap(const MPlexLS &psErr, const MPlexLV& psPar,
MPlexLS &outErr, MPlexLV& outPar,
const int N_proc);

void kalmanPropagateAndUpdateEndcap(const MPlexLS &psErr, const MPlexLV& psPar, const MPlexQI &inChg,
void kalmanPropagateAndUpdateEndcap(const MPlexLS &psErr, const MPlexLV& psPar, MPlexQI &Chg,
const MPlexHS &msErr, const MPlexHV& msPar,
MPlexLS &outErr, MPlexLV& outPar,
const int N_proc, const PropagationFlags propFlags);
Expand Down
1 change: 1 addition & 0 deletions mkFit/MkFinder.cc
Expand Up @@ -841,6 +841,7 @@ void MkFinder::CopyOutParErr(std::vector<CombCandidate>& seed_cand_vec,
// Set the track state to the updated parameters
Err[iO].CopyOut(i, cand.errors_nc().Array());
Par[iO].CopyOut(i, cand.parameters_nc().Array());
cand.setCharge(Chg(i,0,0));

dprint((outputProp?"propagated":"updated") << " track parameters x=" << cand.parameters()[0]
<< " y=" << cand.parameters()[1]
Expand Down
2 changes: 1 addition & 1 deletion mkFit/SteeringParams.h
Expand Up @@ -15,7 +15,7 @@ class MkFinder;
const MPlexHS &, const MPlexHV &, \
MPlexQF &, const int, const PropagationFlags

#define UPDATE_PARAM_ARGS const MPlexLS &, const MPlexLV &, const MPlexQI &, \
#define UPDATE_PARAM_ARGS const MPlexLS &, const MPlexLV &, MPlexQI &, \
const MPlexHS &, const MPlexHV &, \
MPlexLS &, MPlexLV &, const int, const PropagationFlags

Expand Down

0 comments on commit 1461f85

Please sign in to comment.