diff --git a/reco/L1/CbmL1Performance.cxx b/reco/L1/CbmL1Performance.cxx index 189ab0e57389762090fc203d49764eeea58e7fb6..6ecde1253eb9b8ebd751a3222baf873a306f09db 100644 --- a/reco/L1/CbmL1Performance.cxx +++ b/reco/L1/CbmL1Performance.cxx @@ -317,7 +317,6 @@ void CbmL1::EfficienciesPerformance() for (vector<CbmL1MCTrack>::iterator mtraIt = fvMCTracks.begin(); mtraIt != fvMCTracks.end(); mtraIt++) { CbmL1MCTrack& mtra = *(mtraIt); - // if( !( mtra.pdg == -11 && mtra.mother_ID == -1 ) ) continue; // electrons only if (!mtra.IsReconstructable() && !mtra.IsAdditional()) continue; @@ -454,8 +453,10 @@ void CbmL1::EfficienciesPerformance() cout << endl; cout << "L1 ACCUMULATED STAT : " << L1_NEVENTS << " EVENTS " << endl << endl; L1_NTRA.PrintEff(/*ifPrintTableToLog = */ true, false); - cout << "MC tracks/event found : " - << int(double(L1_NTRA.reco.counters[L1_NTRA.indices["total"]]) / double(L1_NEVENTS)) << endl; + cout << "Reconstructible MC tracks/event: " + << (double(L1_NTRA.mc.counters[L1_NTRA.indices["total"]]) / double(L1_NEVENTS)) << endl; + cout << "Reconsted MC tracks/event: " + << (double(L1_NTRA.reco.counters[L1_NTRA.indices["total"]]) / double(L1_NEVENTS)) << endl; cout << endl; cout << "CA Track Finder: " << L1_CATIME / L1_NEVENTS << (fLegacyEventMode ? " s/ev" : " s/time slice") << endl << endl; diff --git a/reco/L1/CbmL1ReadEvent.cxx b/reco/L1/CbmL1ReadEvent.cxx index 8be7cee15a07d6d128f56df5876dcd098bfc7dea..544bee882db412306fcb8f782472b16ffd1c80f4 100644 --- a/reco/L1/CbmL1ReadEvent.cxx +++ b/reco/L1/CbmL1ReadEvent.cxx @@ -56,7 +56,7 @@ using std::endl; using std::find; -static bool compareZ(const int& a, const int& b) +static bool compareMcPointZ(const int& a, const int& b) { // return (CbmL1::Instance()->fvMCPoints[a].z < CbmL1::Instance()->fvMCPoints[b].z); const CbmL1* l1 = CbmL1::Instance(); @@ -178,8 +178,8 @@ int CbmL1::MatchHitWithMc<L1DetectorID::kMvd>(int iHit) const int iHitExt = -(1 + iHit); // TODO: SZh 28.08.2022: this should be replaced with iHitExt = hit.extIdex const auto* hitMatch = dynamic_cast<CbmMatch*>(fpMvdHitMatches->At(iHitExt)); assert(hitMatch); - if (hitMatch->GetNofLinks() > 0 && hitMatch->GetLink(0).GetIndex() < fNpointsMvd) { - iPoint = hitMatch->GetLink(0).GetIndex(); + if (hitMatch->GetNofLinks() > 0 && hitMatch->GetMatchedLink().GetIndex() < fNpointsMvd) { + iPoint = hitMatch->GetMatchedLink().GetIndex(); } } return iPoint; @@ -244,8 +244,8 @@ int CbmL1::MatchHitWithMc<L1DetectorID::kMuch>(int iHit) const if (hitMatchMuch->GetLink(iLink).GetIndex() < fNpointsMuch) { int iMc = hitMatchMuch->GetLink(iLink).GetIndex(); int iIndex = iMc + fNpointsMvd + fNpointsSts; - int iFile = hitMatchMuch->GetLink(0).GetFile(); - int iEvent = hitMatchMuch->GetLink(0).GetEntry(); + int iFile = hitMatchMuch->GetMatchedLink().GetFile(); + int iEvent = hitMatchMuch->GetMatchedLink().GetEntry(); auto itPoint = fmMCPointsLinksMap.find(CbmL1LinkKey(iIndex, iEvent, iFile)); if (itPoint == fmMCPointsLinksMap.cend()) continue; @@ -266,7 +266,7 @@ int CbmL1::MatchHitWithMc<L1DetectorID::kTrd>(int iHit) const if (hitMatch) { int iMC = -1; if (hitMatch->GetNofLinks() > 0) { - iMC = hitMatch->GetLink(0).GetIndex(); + iMC = hitMatch->GetMatchedLink().GetIndex(); assert(iMC >= 0 && iMC < fNpointsTrd); iPoint = iMC + fNpointsMvd + fNpointsSts + fNpointsMuch; } @@ -607,7 +607,7 @@ void CbmL1::ReadEvent(float& TsStart, float& TsLength, float& /*TsOverlap*/, int for (unsigned int iTr = 0; iTr < fvMCTracks.size(); iTr++) { - sort(fvMCTracks[iTr].Points.begin(), fvMCTracks[iTr].Points.end(), compareZ); + sort(fvMCTracks[iTr].Points.begin(), fvMCTracks[iTr].Points.end(), compareMcPointZ); if (fvMCTracks[iTr].mother_ID >= 0) { auto iFile = fvMCTracks[iTr].iFile; @@ -885,8 +885,8 @@ void CbmL1::ReadEvent(float& TsStart, float& TsLength, float& /*TsOverlap*/, int // iMC = matchHitMatch->GetLink(iLink).GetIndex(); // Int_t iIndex = iMC + fNpointsMvd + fNpointsSts; - // Int_t iFile = matchHitMatch->GetLink(0).GetFile(); - // Int_t iEvent = matchHitMatch->GetLink(0).GetEntry(); + // Int_t iFile = matchHitMatch->GetMatchedLink().GetFile(); + // Int_t iEvent = matchHitMatch->GetMatchedLink().GetEntry(); // auto itPoint = fmMCPointsLinksMap.find(CbmL1LinkKey(iIndex, iEvent, iFile)); // if (itPoint == fmMCPointsLinksMap.cend()) continue; @@ -997,7 +997,7 @@ void CbmL1::ReadEvent(float& TsStart, float& TsLength, float& /*TsOverlap*/, int //if (fPerformance && fpTrdHitMatches) { // CbmMatch* trdHitMatch = L1_DYNAMIC_CAST<CbmMatch*>(fpTrdHitMatches->At(iHit)); // if (trdHitMatch->GetNofLinks() > 0) { - // iMcTrd = trdHitMatch->GetLink(0).GetIndex(); + // iMcTrd = trdHitMatch->GetMatchedLink().GetIndex(); // assert(iMcTrd >= 0 && iMcTrd < fNpointsTrd); // th.iMC = iMcTrd + fNpointsMvd + fNpointsSts + fNpointsMuch; // th.track = fvMCPoints[th.iMC].ID; diff --git a/reco/qa/CbmTrackingTrdQa.cxx b/reco/qa/CbmTrackingTrdQa.cxx index 1cb1fb88637554eda661bf1bcd4ade818f97669e..73b94fb4f4f20166b73cd6e1d44bdec11ec2d447 100644 --- a/reco/qa/CbmTrackingTrdQa.cxx +++ b/reco/qa/CbmTrackingTrdQa.cxx @@ -212,10 +212,10 @@ void CbmTrackingTrdQa::Exec(Option_t* /*opt*/) int nContStations = 0; // Number of continious stations { - int istaprev = -1; + int istaprev = -100; int len = 0; for (auto itSta = info.fHitMap.begin(); itSta != info.fHitMap.end(); itSta++) { - if (len == 0 || itSta->first == istaprev + 1) { len++; } + if (itSta->first == istaprev + 1) { len++; } else { len = 1; } @@ -810,7 +810,7 @@ void CbmTrackingTrdQa::FillHitMap() if ((int) hit->GetClassType() != 1) { // skip TRD-1D hit - //continue; + continue; } Int_t station = CbmTrdTrackingInterface::Instance()->GetTrackingStationIndex(hit); @@ -909,15 +909,19 @@ void CbmTrackingTrdQa::FillTrackMatchMap(Int_t& nRec, Int_t& nGhosts, Int_t& nCl // previous match is better, this track is a clone if ((quali < info.fQuali) || ((quali == info.fQuali) && (nTrue < info.fMatchedNHitsTrue))) { - fhNhClones->Fill(nHits); - nClones++; + if (info.fIsAccepted) { + fhNhClones->Fill(nHits); + nClones++; + } continue; } // this track is better than the old one if (info.fMatchedNHitsAll > 0) { - fhNhClones->Fill(info.fMatchedNHitsAll); - nClones++; + if (info.fIsAccepted) { + fhNhClones->Fill(info.fMatchedNHitsAll); + nClones++; + } } info.fGlobalTrackMatch = iGlobalTrack; info.fTrdTrackMatch = iTrdTrack;