54  auto id = trkTrd.getRefGlobalTrackId();
 
   60  LOGF(
debug, 
"Got track with %i tracklets and ID %i", trkTrd.getNtracklets(), (
int)
id);
 
   64    qcStruct.
dEdxTotTPC = isTPCTRD ? mTracksTPC[
id].getdEdx().dEdxTotTPC : mTracksTPC[mTracksITSTPC[
id].getRefTPC()].getdEdx().dEdxTotTPC;
 
   67  for (
int iLayer = 0; iLayer < 
NLAYER; ++iLayer) {
 
   68    int trkltId = trkTrd.getTrackletIndex(iLayer);
 
   72    const auto& tracklet = mTrackletsRaw[trkltId];
 
   73    qcStruct.
trklt64[iLayer] = tracklet;
 
   74    qcStruct.
trkltCalib[iLayer] = mTrackletsCalib[trkltId];
 
   75    int trkltDet = tracklet.getDetector();
 
   79        LOGF(
debug, 
"Track could not be rotated in tracklet coordinate system");
 
   83    if (!propagator->PropagateToXBxByBz(trk, mTrackletsCalib[trkltId].getX(), mMaxSnp, mMaxStep, mMatCorr)) {
 
   84      LOGF(
debug, 
"Track propagation failed in layer %i (pt=%f, xTrk=%f, xToGo=%f)", iLayer, trk.getPt(), trk.getX(), mTrackletsCalib[trkltId].getX());
 
   88    float tilt = tan(TMath::DegToRad() * pad->getTiltingAngle()); 
 
   89    float tiltCorrUp = tilt * (mTrackletsCalib[trkltId].getZ() - trk.getZ());
 
   90    float zPosCorrUp = mTrackletsCalib[trkltId].getZ() + mRecoParam.
getZCorrCoeffNRC() * trk.getTgl();
 
   91    float padLength = pad->getRowSize(tracklet.getPadRow());
 
   92    if (!((trk.getSigmaZ2() < (padLength * padLength / 12.f)) && (std::fabs(mTrackletsCalib[trkltId].getZ() - trk.getZ()) < padLength))) {
 
   95    std::array<float, 2> trkltPosUp{mTrackletsCalib[trkltId].getY() - tiltCorrUp, zPosCorrUp};
 
   96    std::array<float, 3> trkltCovUp;
 
   97    mRecoParam.
recalcTrkltCov(tilt, trk.getSnp(), pad->getRowSize(tracklet.getPadRow()), trkltCovUp);
 
   98    auto chi2trklt = trk.getPredictedChi2(trkltPosUp, trkltCovUp);
 
  101    qcStruct.
trackletY[iLayer] = trkltPosUp[0];
 
  102    qcStruct.
trackletZ[iLayer] = trkltPosUp[1];
 
  109    auto tphi = trk.getSnp() / std::sqrt((1.f - trk.getSnp()) * (1.f + trk.getSnp()));
 
  110    auto trackletLength = std::sqrt(1.f + tphi * tphi + trk.getTgl() * trk.getTgl());
 
  111    auto cor = mLocalGain.
getValue(tracklet.getHCID() / 2, tracklet.getPadCol(mApplyShift), tracklet.getPadRow()) * trackletLength;
 
  112    float q0{tracklet.getQ0() / cor}, q1{tracklet.getQ1() / cor}, q2{tracklet.getQ2() / cor};
 
  115    if (trkTrd.getIsCrossingNeighbor(iLayer) && trkTrd.getHasNeighbor()) {
 
  116      for (
const auto& trklt : mTrackletsRaw) {
 
  117        if (tracklet.getTrackletWord() == trklt.getTrackletWord()) { 
 
  120        if (std::abs(tracklet.getPadCol(mApplyShift) - trklt.getPadCol(mApplyShift)) <= 1 && std::abs(tracklet.getPadRow() - trklt.getPadRow()) == 1) {
 
  122          auto cor = mLocalGain.
getValue(trklt.getHCID() / 2, trklt.getPadCol(mApplyShift), trklt.getPadRow()) * trackletLength;
 
  123          q0 += trklt.getQ0() / cor;
 
  124          q1 += trklt.getQ1() / cor;
 
  125          q2 += trklt.getQ2() / cor;
 
  133  mTrackQC.push_back(qcStruct);
 
 
void recalcTrkltCov(const float tilt, const float snp, const float rowSize, std::array< float, 3 > &cov) const
Recalculate tracklet covariance based on phi angle of related track.