Skip to content

Commit c67d4e4

Browse files
committed
PWGUD: personal task modification
1 parent a721ddf commit c67d4e4

File tree

1 file changed

+125
-34
lines changed

1 file changed

+125
-34
lines changed

PWGUD/Tasks/upcJpsiCentralBarrelCorr.cxx

+125-34
Original file line numberDiff line numberDiff line change
@@ -786,18 +786,39 @@ struct UpcJpsiCentralBarrel {
786786

787787
// MC histograms
788788
MC.add("MC/hNumberOfMCCollisions", "hNumberOfCollisions", {HistType::kTH1F, {{10, 0, 10}}});
789-
MC.add("MC/hNumberOfMCTracks", "hNumberOfMCTracks", {HistType::kTH1F, {{10, 0, 10}}});
789+
MC.add("MC/hNumberOfRecoCollisions", "hNumberOfRecoCollisions", {HistType::kTH1F, {{10, 0, 10}}});
790+
MC.add("MC/Muon/hNumberOfMCTracks", "hNumberOfMCTracks", {HistType::kTH1F, {{10, 0, 10}}});
791+
MC.add("MC/Electron/hNumberOfMCTracks", "hNumberOfMCTracks", {HistType::kTH1F, {{10, 0, 10}}});
792+
MC.add("MC/Proton/hNumberOfMCTracks", "hNumberOfMCTracks", {HistType::kTH1F, {{10, 0, 10}}});
790793
MC.add("MC/hPosZ", "hPosZ", {HistType::kTH1F, {{60, -15, 15}}});
791-
MC.add("MC/hPDG", "hPDG", {HistType::kTH1F, {{900, -450, 450}}});
792-
MC.add("MC/hEta1", "hEta1", {HistType::kTH1F, {axisEta}});
793-
MC.add("MC/hEta2", "hEta2", {HistType::kTH1F, {axisEta}});
794-
MC.add("MC/hPhi1", "hPhi1", {HistType::kTH1F, {axisPhi}});
795-
MC.add("MC/hPhi2", "hPhi2", {HistType::kTH1F, {axisPhi}});
796-
MC.add("MC/hIVM", "hIVM", {HistType::kTH1F, {axisIVM}});
797-
MC.add("MC/hRapidity", "hRapidity", {HistType::kTH1F, {axisEta}});
798-
MC.add("MC/hPt1", "hPt1", {HistType::kTH1F, {axisPt}});
799-
MC.add("MC/hPt2", "hPt2", {HistType::kTH1F, {axisPt}});
800-
MC.add("MC/hPt", "hPt", {HistType::kTH1F, {axisPt}});
794+
MC.add("MC/hPDG", "hPDG", {HistType::kTH1F, {{200000, -100000, 100000}}});
795+
MC.add("MC/Electron/hEta1", "hEta1", {HistType::kTH1F, {axisEta}});
796+
MC.add("MC/Electron/hEta2", "hEta2", {HistType::kTH1F, {axisEta}});
797+
MC.add("MC/Electron/hPhi1", "hPhi1", {HistType::kTH1F, {axisPhi}});
798+
MC.add("MC/Electron/hPhi2", "hPhi2", {HistType::kTH1F, {axisPhi}});
799+
MC.add("MC/Electron/hIVM", "hIVM", {HistType::kTH1F, {axisIVM}});
800+
MC.add("MC/Electron/hRapidity", "hRapidity", {HistType::kTH1F, {axisEta}});
801+
MC.add("MC/Electron/hPt1", "hPt1", {HistType::kTH1F, {axisPt}});
802+
MC.add("MC/Electron/hPt2", "hPt2", {HistType::kTH1F, {axisPt}});
803+
MC.add("MC/Electron/hPt", "hPt", {HistType::kTH1F, {axisPt}});
804+
MC.add("MC/Muon/hEta1", "hEta1", {HistType::kTH1F, {axisEta}});
805+
MC.add("MC/Muon/hEta2", "hEta2", {HistType::kTH1F, {axisEta}});
806+
MC.add("MC/Muon/hPhi1", "hPhi1", {HistType::kTH1F, {axisPhi}});
807+
MC.add("MC/Muon/hPhi2", "hPhi2", {HistType::kTH1F, {axisPhi}});
808+
MC.add("MC/Muon/hIVM", "hIVM", {HistType::kTH1F, {axisIVM}});
809+
MC.add("MC/Muon/hRapidity", "hRapidity", {HistType::kTH1F, {axisEta}});
810+
MC.add("MC/Muon/hPt1", "hPt1", {HistType::kTH1F, {axisPt}});
811+
MC.add("MC/Muon/hPt2", "hPt2", {HistType::kTH1F, {axisPt}});
812+
MC.add("MC/Muon/hPt", "hPt", {HistType::kTH1F, {axisPt}});
813+
MC.add("MC/Proton/hEta1", "hEta1", {HistType::kTH1F, {axisEta}});
814+
MC.add("MC/Proton/hEta2", "hEta2", {HistType::kTH1F, {axisEta}});
815+
MC.add("MC/Proton/hPhi1", "hPhi1", {HistType::kTH1F, {axisPhi}});
816+
MC.add("MC/Proton/hPhi2", "hPhi2", {HistType::kTH1F, {axisPhi}});
817+
MC.add("MC/Proton/hIVM", "hIVM", {HistType::kTH1F, {axisIVM}});
818+
MC.add("MC/Proton/hRapidity", "hRapidity", {HistType::kTH1F, {axisEta}});
819+
MC.add("MC/Proton/hPt1", "hPt1", {HistType::kTH1F, {axisPt}});
820+
MC.add("MC/Proton/hPt2", "hPt2", {HistType::kTH1F, {axisPt}});
821+
MC.add("MC/Proton/hPt", "hPt", {HistType::kTH1F, {axisPt}});
801822
}
802823

803824
bool cutITSLayers(uint8_t itsClusterMap) const
@@ -1227,7 +1248,8 @@ struct UpcJpsiCentralBarrel {
12271248
} else if (OnOn) {
12281249
JPsiToEl.get<TH1>(HIST("JPsiToEl/NotCoherent/OnOn/hIVM"))->Fill(massJpsi);
12291250
}
1230-
} else {
1251+
}
1252+
if (RecoDecay::pt(mother) > 0.2f) {
12311253
JPsiToEl.get<TH1>(HIST("JPsiToEl/Incoherent/hIVM"))->Fill(massJpsi);
12321254
if (XnXn) {
12331255
JPsiToEl.get<TH1>(HIST("JPsiToEl/Incoherent/XnXn/hIVM"))->Fill(massJpsi);
@@ -1631,7 +1653,8 @@ struct UpcJpsiCentralBarrel {
16311653
} else if (OnOn) {
16321654
JPsiToMu.get<TH1>(HIST("JPsiToMu/NotCoherent/OnOn/hIVM"))->Fill(massJpsi);
16331655
}
1634-
} else {
1656+
}
1657+
if (RecoDecay::pt(mother) > 0.2f) {
16351658
JPsiToMu.get<TH1>(HIST("JPsiToMu/Incoherent/hIVM"))->Fill(massJpsi);
16361659
if (XnXn) {
16371660
JPsiToMu.get<TH1>(HIST("JPsiToMu/Incoherent/XnXn/hIVM"))->Fill(massJpsi);
@@ -2083,44 +2106,106 @@ struct UpcJpsiCentralBarrel {
20832106
MC.get<TH1>(HIST("MC/hNumberOfMCCollisions"))->Fill(1.);
20842107
MC.get<TH1>(HIST("MC/hPosZ"))->Fill(mcCollision.posZ());
20852108

2086-
std::array<float, 3> daughPart1;
2087-
std::array<float, 3> daughPart2;
2109+
std::array<float, 3> daughPart1Mu;
2110+
std::array<float, 3> daughPart2Mu;
2111+
std::array<float, 3> daughPart1El;
2112+
std::array<float, 3> daughPart2El;
2113+
std::array<float, 3> daughPart1Pr;
2114+
std::array<float, 3> daughPart2Pr;
20882115

20892116
// fill number of particles
20902117
for (auto const& mcParticle : mcParticles) {
2091-
MC.get<TH1>(HIST("MC/hNumberOfMCTracks"))->Fill(1.);
2118+
MC.get<TH1>(HIST("MC/Muon/hNumberOfMCTracks"))->Fill(1.);
2119+
MC.get<TH1>(HIST("MC/Electron/hNumberOfMCTracks"))->Fill(1.);
2120+
MC.get<TH1>(HIST("MC/Proton/hNumberOfMCTracks"))->Fill(1.);
20922121
MC.get<TH1>(HIST("MC/hPDG"))->Fill(mcParticle.pdgCode());
20932122

20942123
// check if only muons and physical primaries are present
20952124
if ((mcParticle.pdgCode() == 13) && mcParticle.isPhysicalPrimary()) {
2096-
daughPart1 = {mcParticle.px(), mcParticle.py(), mcParticle.pz()};
2125+
daughPart1Mu = {mcParticle.px(), mcParticle.py(), mcParticle.pz()};
20972126

2098-
MC.get<TH1>(HIST("MC/hNumberOfMCTracks"))->Fill(2.);
2127+
MC.get<TH1>(HIST("MC/Muon/hNumberOfMCTracks"))->Fill(2.);
20992128
}
21002129
if ((mcParticle.pdgCode() == -13) && mcParticle.isPhysicalPrimary()) {
2101-
daughPart2 = {mcParticle.px(), mcParticle.py(), mcParticle.pz()};
2130+
daughPart2Mu = {mcParticle.px(), mcParticle.py(), mcParticle.pz()};
2131+
2132+
MC.get<TH1>(HIST("MC/Muon/hNumberOfMCTracks"))->Fill(3.);
2133+
}
2134+
if ((mcParticle.pdgCode() == 11) && mcParticle.isPhysicalPrimary()) {
2135+
daughPart1El = {mcParticle.px(), mcParticle.py(), mcParticle.pz()};
2136+
2137+
MC.get<TH1>(HIST("MC/Electron/hNumberOfMCTracks"))->Fill(2.);
2138+
}
2139+
if ((mcParticle.pdgCode() == -11) && mcParticle.isPhysicalPrimary()) {
2140+
daughPart2El = {mcParticle.px(), mcParticle.py(), mcParticle.pz()};
2141+
2142+
MC.get<TH1>(HIST("MC/Electron/hNumberOfMCTracks"))->Fill(3.);
2143+
}
2144+
if ((mcParticle.pdgCode() == 2212) && mcParticle.isPhysicalPrimary()) {
2145+
daughPart1Pr = {mcParticle.px(), mcParticle.py(), mcParticle.pz()};
21022146

2103-
MC.get<TH1>(HIST("MC/hNumberOfMCTracks"))->Fill(3.);
2147+
MC.get<TH1>(HIST("MC/Proton/hNumberOfMCTracks"))->Fill(2.);
2148+
}
2149+
if ((mcParticle.pdgCode() == -2212) && mcParticle.isPhysicalPrimary()) {
2150+
daughPart2Pr = {mcParticle.px(), mcParticle.py(), mcParticle.pz()};
2151+
2152+
MC.get<TH1>(HIST("MC/Proton/hNumberOfMCTracks"))->Fill(3.);
21042153
}
21052154
}
21062155

21072156
// calculate J/psi system and needed distributions
2108-
std::array<double, 3> motherPart = {daughPart1[0] + daughPart2[0], daughPart1[1] + daughPart2[1], daughPart1[2] + daughPart2[2]};
2157+
std::array<double, 3> motherPartMu = {daughPart1Mu[0] + daughPart2Mu[0], daughPart1Mu[1] + daughPart2Mu[1], daughPart1Mu[2] + daughPart2Mu[2]};
2158+
std::array<double, 3> motherPartEl = {daughPart1El[0] + daughPart2El[0], daughPart1El[1] + daughPart2El[1], daughPart1El[2] + daughPart2El[2]};
2159+
std::array<double, 3> motherPartPr = {daughPart1Pr[0] + daughPart2Pr[0], daughPart1Pr[1] + daughPart2Pr[1], daughPart1Pr[2] + daughPart2Pr[2]};
21092160

2161+
float massEl = o2::constants::physics::MassElectron;
21102162
float massMu = o2::constants::physics::MassMuonMinus;
2111-
auto arrMom = std::array{daughPart1, daughPart2};
2112-
float massJpsi = RecoDecay::m(arrMom, std::array{massMu, massMu});
2113-
2114-
MC.get<TH1>(HIST("MC/hEta1"))->Fill(RecoDecay::eta(daughPart1));
2115-
MC.get<TH1>(HIST("MC/hEta2"))->Fill(RecoDecay::eta(daughPart2));
2116-
MC.get<TH1>(HIST("MC/hPhi1"))->Fill(RecoDecay::phi(daughPart1));
2117-
MC.get<TH1>(HIST("MC/hPhi2"))->Fill(RecoDecay::phi(daughPart2));
2118-
MC.get<TH1>(HIST("MC/hPt1"))->Fill(RecoDecay::pt(daughPart1));
2119-
MC.get<TH1>(HIST("MC/hPt2"))->Fill(RecoDecay::pt(daughPart2));
2120-
MC.get<TH1>(HIST("MC/hPt"))->Fill(RecoDecay::pt(motherPart));
2121-
MC.get<TH1>(HIST("MC/hIVM"))->Fill(massJpsi);
2122-
MC.get<TH1>(HIST("MC/hRapidity"))->Fill(RecoDecay::y(motherPart, massJpsi));
2123-
} // end MC process
2163+
float massPr = o2::constants::physics::MassProton;
2164+
2165+
auto arrMomMu = std::array{daughPart1Mu, daughPart2Mu};
2166+
float massJpsiMu = RecoDecay::m(arrMomMu, std::array{massMu, massMu});
2167+
auto arrMomEl = std::array{daughPart1El, daughPart2El};
2168+
float massJpsiEl = RecoDecay::m(arrMomEl, std::array{massEl, massEl});
2169+
auto arrMomPr = std::array{daughPart1Pr, daughPart2Pr};
2170+
float massJpsiPr = RecoDecay::m(arrMomPr, std::array{massPr, massPr});
2171+
2172+
MC.get<TH1>(HIST("MC/Muon/hEta1"))->Fill(RecoDecay::eta(daughPart1Mu));
2173+
MC.get<TH1>(HIST("MC/Muon/hEta2"))->Fill(RecoDecay::eta(daughPart2Mu));
2174+
MC.get<TH1>(HIST("MC/Muon/hPhi1"))->Fill(RecoDecay::phi(daughPart1Mu));
2175+
MC.get<TH1>(HIST("MC/Muon/hPhi2"))->Fill(RecoDecay::phi(daughPart2Mu));
2176+
MC.get<TH1>(HIST("MC/Muon/hPt1"))->Fill(RecoDecay::pt(daughPart1Mu));
2177+
MC.get<TH1>(HIST("MC/Muon/hPt2"))->Fill(RecoDecay::pt(daughPart2Mu));
2178+
MC.get<TH1>(HIST("MC/Muon/hPt"))->Fill(RecoDecay::pt(motherPartMu));
2179+
MC.get<TH1>(HIST("MC/Muon/hIVM"))->Fill(massJpsiMu);
2180+
MC.get<TH1>(HIST("MC/Muon/hRapidity"))->Fill(RecoDecay::y(motherPartMu, massJpsiMu));
2181+
2182+
MC.get<TH1>(HIST("MC/Electron/hEta1"))->Fill(RecoDecay::eta(daughPart1El));
2183+
MC.get<TH1>(HIST("MC/Electron/hEta2"))->Fill(RecoDecay::eta(daughPart2El));
2184+
MC.get<TH1>(HIST("MC/Electron/hPhi1"))->Fill(RecoDecay::phi(daughPart1El));
2185+
MC.get<TH1>(HIST("MC/Electron/hPhi2"))->Fill(RecoDecay::phi(daughPart2El));
2186+
MC.get<TH1>(HIST("MC/Electron/hPt1"))->Fill(RecoDecay::pt(daughPart1El));
2187+
MC.get<TH1>(HIST("MC/Electron/hPt2"))->Fill(RecoDecay::pt(daughPart2El));
2188+
MC.get<TH1>(HIST("MC/Electron/hPt"))->Fill(RecoDecay::pt(motherPartEl));
2189+
MC.get<TH1>(HIST("MC/Electron/hIVM"))->Fill(massJpsiEl);
2190+
MC.get<TH1>(HIST("MC/Electron/hRapidity"))->Fill(RecoDecay::y(motherPartEl, massJpsiEl));
2191+
2192+
MC.get<TH1>(HIST("MC/Proton/hEta1"))->Fill(RecoDecay::eta(daughPart1Pr));
2193+
MC.get<TH1>(HIST("MC/Proton/hEta2"))->Fill(RecoDecay::eta(daughPart2Pr));
2194+
MC.get<TH1>(HIST("MC/Proton/hPhi1"))->Fill(RecoDecay::phi(daughPart1Pr));
2195+
MC.get<TH1>(HIST("MC/Proton/hPhi2"))->Fill(RecoDecay::phi(daughPart2Pr));
2196+
MC.get<TH1>(HIST("MC/Proton/hPt1"))->Fill(RecoDecay::pt(daughPart1Pr));
2197+
MC.get<TH1>(HIST("MC/Proton/hPt2"))->Fill(RecoDecay::pt(daughPart2Pr));
2198+
MC.get<TH1>(HIST("MC/Proton/hPt"))->Fill(RecoDecay::pt(motherPartPr));
2199+
MC.get<TH1>(HIST("MC/Proton/hIVM"))->Fill(massJpsiPr);
2200+
MC.get<TH1>(HIST("MC/Proton/hRapidity"))->Fill(RecoDecay::y(motherPartPr, massJpsiPr));
2201+
2202+
} // end MC skimmed process
2203+
2204+
template <typename C>
2205+
void processMCU(C const& collisions)
2206+
{
2207+
MC.fill(HIST("MC/hNumberOfRecoCollisions"), collisions.size());
2208+
} // end MC unskimmed process
21242209

21252210
void processDGrecoLevel(UDCollisionFull const& collision, UDTracksFull const& tracks)
21262211
{
@@ -2146,9 +2231,15 @@ struct UpcJpsiCentralBarrel {
21462231
processMC(mcCollision, mcParticles);
21472232
}
21482233

2234+
void processMCUnskimmed(aod::McCollision const& mcCollision, soa::SmallGroups<soa::Join<aod::McCollisionLabels, aod::Collisions>> const& collisions /*, aod::McParticles const& mcParticles, aod::TracksIU const& tracks*/)
2235+
{
2236+
processMCU(collisions);
2237+
}
2238+
21492239
PROCESS_SWITCH(UpcJpsiCentralBarrel, processDGrecoLevel, "Iterate over DG skimmed data.", false);
21502240
PROCESS_SWITCH(UpcJpsiCentralBarrel, processSGrecoLevel, "Iterate over SG skimmed data.", false);
21512241
PROCESS_SWITCH(UpcJpsiCentralBarrel, processMCtruth, "Iterate of MC true data.", true);
2242+
PROCESS_SWITCH(UpcJpsiCentralBarrel, processMCUnskimmed, "Iterate over unskimmed data.", true);
21522243
}; // end struct
21532244

21542245
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)

0 commit comments

Comments
 (0)