Skip to content
Snippets Groups Projects

CA: bugfix in TOF matching for the tracking performance

Merged Sergei Zharko requested to merge s.zharko/cbmroot:mcbm-updates into master
4 files
+ 61
67
Compare changes
  • Side-by-side
  • Inline

Files

+ 29
12
@@ -40,6 +40,8 @@ OutputQa::OutputQa(int verbose, bool isMCUsed) : CbmQaTask("CbmCaOutputQa", verb
AddTrackType(ETrackType::kPrim);
AddTrackType(ETrackType::kPrimFast);
AddTrackType(ETrackType::kPrimLongFast);
AddTrackType(ETrackType::kPrimLong);
AddTrackType(ETrackType::kSec);
AddTrackType(ETrackType::kSecFast);
AddTrackType(ETrackType::kPrimE);
@@ -122,12 +124,11 @@ void OutputQa::FillHistograms()
if (isPrimary) {
FillRecoTrack(ETrackType::kPrim, iTrkReco);
if (mcTrk.GetP() > CbmL1Constants::MinFastMom) {
FillRecoTrack(ETrackType::kPrimFast, iTrkReco);
if (mcTrk.GetTotNofStationsWithHit() == fpParameters->GetNstationsActive()) {
FillRecoTrack(ETrackType::kPrimLongFast, iTrkReco);
}
}
bool bFast = mcTrk.GetP() > CbmL1Constants::MinFastMom;
bool bLong = mcTrk.GetTotNofStationsWithHit() == fpParameters->GetNstationsActive();
if (bFast) { FillRecoTrack(ETrackType::kPrimFast, iTrkReco); }
if (bLong) { FillRecoTrack(ETrackType::kPrimLong, iTrkReco); }
if (bLong && bFast) { FillRecoTrack(ETrackType::kPrimLongFast, iTrkReco); }
}
else {
FillRecoTrack(ETrackType::kSec, iTrkReco);
@@ -217,12 +218,11 @@ void OutputQa::FillHistograms()
FillMCTrack(ETrackType::kAll, iTrkMC);
if (isPrimary) {
FillMCTrack(ETrackType::kPrim, iTrkMC);
if (mcTrk.GetP() > CbmL1Constants::MinFastMom) {
FillMCTrack(ETrackType::kPrimFast, iTrkMC);
if (mcTrk.GetTotNofStationsWithHit() == fpParameters->GetNstationsActive()) {
FillMCTrack(ETrackType::kPrimLongFast, iTrkMC);
}
}
bool bFast = mcTrk.GetP() > CbmL1Constants::MinFastMom;
bool bLong = mcTrk.GetTotNofStationsWithHit() == fpParameters->GetNstationsActive();
if (bFast) { FillMCTrack(ETrackType::kPrimFast, iTrkMC); }
if (bLong) { FillMCTrack(ETrackType::kPrimLong, iTrkMC); }
if (bLong && bFast) { FillMCTrack(ETrackType::kPrimLongFast, iTrkMC); }
}
else {
FillMCTrack(ETrackType::kSec, iTrkMC);
@@ -509,9 +509,11 @@ InitStatus OutputQa::InitHistograms()
LOG(info) << i << ' ' << fvpTrackHistograms[i].get() << ' ' << fvbTrackTypeOn[i];
}
// TODO: Replace these parameters into the AddTrackType method!!!
RegisterTrackQa("all", "all", ETrackType::kAll);
if (IsMCUsed()) {
RegisterTrackQa("prim_long_fast", "primary long fast", ETrackType::kPrimLongFast);
RegisterTrackQa("prim_long", "primary long", ETrackType::kPrimLong);
RegisterTrackQa("ghost", "ghost", ETrackType::kGhost, true);
RegisterTrackQa("prim", "primary", ETrackType::kPrim);
RegisterTrackQa("prim_fast", "primary fast", ETrackType::kPrimFast);
@@ -554,6 +556,20 @@ InitStatus OutputQa::InitHistograms()
RegisterTrackQa("sec_pbar", "secondary #bar{p}", ETrackType::kSecPBAR);
}
// Init default track types for the summary table
if (!fmSummaryTableEntries.size()) {
// clang-format off
fmSummaryTableEntries = {
ETrackType::kPrimLongFast,
ETrackType::kPrimLong,
ETrackType::kPrimFast,
ETrackType::kAll,
ETrackType::kPrim,
ETrackType::kSec
};
// clang-format on
}
return kSUCCESS;
}
@@ -565,6 +581,7 @@ bool OutputQa::Check()
if (IsMCUsed()) {
fpMCModule->Finish();
// TODO: Add cuts on entries from fmSummaryTableEntries
int nRows = std::count_if(fvbTrackTypeOn.begin(), fvbTrackTypeOn.end(), [](const auto& f) { return f == true; });
CbmQaTable* aTable = MakeQaObject<CbmQaTable>("summary_table", "Tracking summary table", nRows + 1, 9);
int iRow = 0;
Loading