Skip to content

Commit 5839735

Browse files
committed
add hadronic rate into derived table + skeleton process for resolution
1 parent 52372ca commit 5839735

File tree

1 file changed

+31
-2
lines changed

1 file changed

+31
-2
lines changed

PWGUD/Tasks/upcRhoAnalysis.cxx

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ DECLARE_SOA_COLUMN(RecoSetting, recoSetting, uint16_t);
5151
DECLARE_SOA_COLUMN(RunNumber, runNumber, int32_t);
5252
DECLARE_SOA_COLUMN(PosZ, posZ, float);
5353
DECLARE_SOA_COLUMN(OccupancyInTime, occupancyInTime, float);
54+
DECLARE_SOA_COLUMN(HadronicRate, hadronicRate, float);
5455
// FIT info
5556
DECLARE_SOA_COLUMN(TotalFT0AmplitudeA, totalFT0AmplitudeA, float);
5657
DECLARE_SOA_COLUMN(TotalFT0AmplitudeC, totalFT0AmplitudeC, float);
@@ -87,7 +88,7 @@ DECLARE_SOA_COLUMN(LeadingTrackPrPID, leadingTrackPrPID, float);
8788
DECLARE_SOA_COLUMN(SubleadingTrackPrPID, subleadingTrackPrPID, float);
8889
} // namespace reco_tree
8990
DECLARE_SOA_TABLE(RecoTree, "AOD", "RECOTREE",
90-
reco_tree::RecoSetting, reco_tree::RunNumber, reco_tree::PosZ, reco_tree::OccupancyInTime,
91+
reco_tree::RecoSetting, reco_tree::RunNumber, reco_tree::PosZ, reco_tree::OccupancyInTime, reco_tree::HadronicRate,
9192
reco_tree::TotalFT0AmplitudeA, reco_tree::TotalFT0AmplitudeC, reco_tree::TotalFV0AmplitudeA, reco_tree::TotalFDDAmplitudeA, reco_tree::TotalFDDAmplitudeC,
9293
reco_tree::TimeFT0A, reco_tree::TimeFT0C, reco_tree::TimeFV0A, reco_tree::TimeFDDA, reco_tree::TimeFDDC,
9394
reco_tree::EnergyCommonZNA, reco_tree::EnergyCommonZNC, reco_tree::TimeZNA, reco_tree::TimeZNC, reco_tree::NeutronClass,
@@ -192,6 +193,7 @@ struct UpcRhoAnalysis {
192193
HistogramRegistry rTracks{"rTracks", {}, OutputObjHandlingPolicy::AnalysisObject};
193194
HistogramRegistry rSystem{"rSystem", {}, OutputObjHandlingPolicy::AnalysisObject};
194195
HistogramRegistry rMC{"rMC", {}, OutputObjHandlingPolicy::AnalysisObject};
196+
HistogramRegistry rResolution{"rResolution", {}, OutputObjHandlingPolicy::AnalysisObject};
195197

196198
void init(o2::framework::InitContext& context)
197199
{
@@ -346,6 +348,14 @@ struct UpcRhoAnalysis {
346348
rMC.add("MC/system/hPhiChargeVsM", ";#it{m} (GeV/#it{c}^{2});#Delta#it{#phi} (rad);counts", kTH2D, {mAxis, deltaPhiAxis});
347349
rMC.addClone("MC/system/", "MC/system/selected/");
348350
}
351+
352+
if (context.mOptions.get<bool>("processResolution")) {
353+
rResolution.add("MC/resolution/collisions/hMatch", ";matched;counts", kTH1D, {{2, -0.5, 1.5}});
354+
rResolution.add("MC/resolution/tracks/hMatch", ";matched;counts", kTH1D, {{2, -0.5, 1.5}});
355+
rResolution.add("MC/resolution/tracks/hPt", ";#it{p}_{T, reco} - #it{p}_{T, true} (GeV/#it{c});counts", kTH1D, {{200, -1.0, 1.0}});
356+
rResolution.add("MC/resolution/tracks/hEta", ";#it{#eta}_{reco} - #it{#eta}_{true};counts", kTH1D, {{200, -0.2, 0.2}});
357+
rResolution.add("MC/resolution/tracks/hPhi", ";#it{#phi}_{reco} - #it{#phi}_{true} (rad);counts", kTH1D, {{200, -0.2, 0.2}});
358+
}
349359
}
350360

351361
static constexpr std::string_view AppliedSelections[3] = {"all/", "trackSelections/", "systemSelections/"};
@@ -800,7 +810,7 @@ struct UpcRhoAnalysis {
800810
return;
801811

802812
// fill recoTree
803-
recoTree(collision.flags(), collision.runNumber(), collision.posZ(), collision.occupancyInTime(),
813+
recoTree(collision.flags(), collision.runNumber(), collision.posZ(), collision.occupancyInTime(), collision.hadronicRate(),
804814
collision.totalFT0AmplitudeA(), collision.totalFT0AmplitudeC(), collision.totalFV0AmplitudeA(), collision.totalFDDAmplitudeA(), collision.totalFDDAmplitudeC(),
805815
collision.timeFT0A(), collision.timeFT0C(), collision.timeFV0A(), collision.timeFDDA(), collision.timeFDDC(),
806816
energyCommonZNA, energyCommonZNC, timeZNA, timeZNC, neutronClass,
@@ -1055,6 +1065,25 @@ struct UpcRhoAnalysis {
10551065
}
10561066
PROCESS_SWITCH(UpcRhoAnalysis, processMCdataWithBCs, "analyse MC data with BCs (only with on-the-fly skimming)", false);
10571067

1068+
void processResolution(soa::Join<aod::UDCollisions, aod::UDCollisionsSels, aod::UDMcCollsLabels>::iterator const& collision, soa::Join<aod::UDTracks, aod::UDTracksExtra, aod::UDTracksDCA, aod::UDTracksPID, aod::UDTracksFlags, aod::UDMcTrackLabels> const& tracks, aod::UDMcCollisions const&, aod::UDMcParticles const&)
1069+
{
1070+
rResolution.fill(HIST("MC/resolution/collisions/hMatch"), 0);
1071+
if (!collision.has_udMcCollision())
1072+
return;
1073+
rResolution.fill(HIST("MC/resolution/collisions/hMatch"), 1);
1074+
for (const auto& track : tracks) {
1075+
rResolution.fill(HIST("MC/resolution/tracks/hMatch"), 0);
1076+
if (!track.has_udMcParticle())
1077+
continue;
1078+
rResolution.fill(HIST("MC/resolution/tracks/hMatch"), 1);
1079+
auto mcParticle = track.udMcParticle();
1080+
rResolution.fill(HIST("MC/resolution/tracks/hPt"), pt(track.px(), track.py()) - pt(mcParticle.px(), mcParticle.py()));
1081+
rResolution.fill(HIST("MC/resolution/tracks/hEta"), eta(track.px(), track.py(), track.pz()) - eta(mcParticle.px(), mcParticle.py(), mcParticle.pz()));
1082+
rResolution.fill(HIST("MC/resolution/tracks/hPhi"), phi(track.px(), track.py()) - phi(mcParticle.px(), mcParticle.py()));
1083+
}
1084+
}
1085+
PROCESS_SWITCH(UpcRhoAnalysis, processResolution, "check resolution of kinematic variables", false);
1086+
10581087
void processCollisionRecoCheck(aod::UDMcCollision const& /* mcCollision */, soa::SmallGroups<soa::Join<aod::UDMcCollsLabels, aod::UDCollisions>> const& collisions)
10591088
{
10601089
checkNumberOfCollisionReconstructions(collisions);

0 commit comments

Comments
 (0)