1212// / \file chargedJetHadron.cxx
1313// / \brief Charged-particle jet - hadron correlation task
1414// / \author Yongzhen Hou <yongzhen.hou@cern.ch>
15- // / \since 15/07/2025
1615
1716#include " PWGHF/DataModel/CandidateReconstructionTables.h"
1817#include " PWGHF/DataModel/CandidateSelectionTables.h"
@@ -116,13 +115,21 @@ struct ChargedJetHadron {
116115 using CorrChargedMCDJets = soa::Join<aod::ChargedMCDetectorLevelJets, aod::ChargedMCDetectorLevelJetConstituents>;
117116 using CorrChargedMCPJets = soa::Join<aod::ChargedMCParticleLevelJets, aod::ChargedMCParticleLevelJetConstituents>;
118117
119- /* using BinningType = ColumnBinningPolicy<aod::jcollision::PosZ, aod::jcollision::MultFT0C>;
118+ /*
119+ using BinningTypePP = ColumnBinningPolicy<aod::jcollision::PosZ, aod::jcollision::MultFT0M>;
120+ using BinningTypeMCPP = ColumnBinningPolicy<aod::jmccollision::PosZ, aod::jmccollision::MultFT0M>;
121+ using BinningType = ColumnBinningPolicy<aod::jcollision::PosZ, aod::jcollision::MultFT0C>;
120122 using BinningTypeMC = ColumnBinningPolicy<aod::jmccollision::PosZ, aod::jmccollision::MultFT0C>;
123+ BinningTypePP corrBinning{{binsZVtx, binsMultiplicity}, true};
124+ BinningTypeMCPP corrBinningMC{{binsZVtx, binsMultiplicityMc}, true};
121125 BinningType corrBinning{{binsZVtx, binsMultiplicity}, true};
122- BinningTypeMC corrBinningMC{{binsZVtx, binsMultiplicityMc}, true};*/
126+ BinningTypeMC corrBinningMC{{binsZVtx, binsMultiplicityMc}, true};
127+ */
123128
129+ using BinningTypePP = ColumnBinningPolicy<aod::jcollision::PosZ, aod::jcollision::CentFT0M>;
124130 using BinningType = ColumnBinningPolicy<aod::jcollision::PosZ, aod::jcollision::CentFT0C>;
125- using BinningTypeMC = ColumnBinningPolicy<aod::jmccollision::PosZ, aod::jmccollision::CentFT0C>;
131+ using BinningTypeMC = ColumnBinningPolicy<aod::jmccollision::PosZ, aod::jmccollision::CentFT0M>;
132+ BinningType corrBinningPP{{binsZVtx, binsCentrality}, true };
126133 BinningType corrBinning{{binsZVtx, binsCentrality}, true };
127134 BinningTypeMC corrBinningMC{{binsZVtx, binsCentrality}, true };
128135
@@ -164,23 +171,21 @@ struct ChargedJetHadron {
164171 AxisSpec drAxis = {200 , 0.0 , 5.0 , " #Delta#it{R}" };
165172 AxisSpec axisBdtScore = {100 , 0 ., 1 ., " Bdt score" };
166173
167- if (doprocessCollisionsQA || doprocessCollisionsQAWeighted ) {
174+ if (doprocessCollisionsQC || doprocessCollisionsQCWeighted ) {
168175 registry.add (" h_collisions" , " event status;event status; entries" , {HistType::kTH1F , {{4 , 0.0 , 4.0 }}});
169176 registry.add (" h_fakecollisions" , " event status;event status; entries" , {HistType::kTH1F , {{4 , 0.0 , 4.0 }}});
170177 registry.add (" h2_centrality_occupancy" , " centrality vs occupancy; centrality; occupancy" , {HistType::kTH2F , {centralityAxis, {60 , 0 , 30000 }}});
171178 registry.add (" h_collisions_Zvertex" , " position of collision; #it{Z} (cm)" , {HistType::kTH1F , {{300 , -15.0 , 15.0 }}});
172179 registry.add (" h_collisions_multFT0" , " multiplicity using multFT0; entries" , {HistType::kTH1F , {{3000 , 0 , 10000 }}});
173- if (doprocessCollisionsQAWeighted ) {
180+ if (doprocessCollisionsQCWeighted ) {
174181 registry.add (" h_collisions_weighted" , " event status;event status;entries" , {HistType::kTH1F , {{4 , 0.0 , 4.0 }}});
175182 }
176- // if (doprocessTracksQC || doprocessTracksQCWeighted) {
177183 registry.add (" h_track_pt" , " track #it{p}_{T}; #it{p}_{T,track} (GeV/#it{c})" , {HistType::kTH1F , {trackPtAxis}});
178184 registry.add (" h2_track_eta_track_phi" , " track #eta vs. track #phi; #eta; #phi; counts" , {HistType::kTH2F , {etaAxis, phiAxis}});
179185 registry.add (" h2_track_eta_pt" , " track #eta vs. track #it{p}_{T}; #eta; #it{p}_{T,track} (GeV/#it{c}; counts" , {HistType::kTH2F , {etaAxis, trackPtAxis}});
180186 registry.add (" h2_track_phi_pt" , " track #phi vs. track #it{p}_{T}; #phi; #it{p}_{T,track} (GeV/#it{c}; counts" , {HistType::kTH2F , {phiAxis, trackPtAxis}});
181187 }
182188
183-
184189 if (doprocessSpectraAreaSubData || doprocessSpectraAreaSubMCD || doprocessSpectraMCDWeighted) {
185190 if (doprocessSpectraMCDWeighted) {
186191 registry.add (" h_jet_phat" , " jet #hat{p};#hat{p} (GeV/#it{c});entries" , {HistType::kTH1F , {{1000 , 0 , 1000 }}});
@@ -431,7 +436,6 @@ struct ChargedJetHadron {
431436 registry.get <TH1>(HIST (" h_mixevent_stats_part" ))->GetXaxis ()->SetBinLabel (5 , " Total Lj-h pairs with cut" );
432437 }
433438 }
434-
435439 // ==========================================================
436440 // getcentrality getmultiplicity
437441 // ==========================================================
@@ -454,7 +458,6 @@ struct ChargedJetHadron {
454458 return coll.multFT0A ();
455459 return coll.multFT0C () + coll.multFT0A ();
456460 }
457-
458461 // ==========================================================
459462 // event selection, vertexZ, occupancy, centrality
460463 // ==========================================================
@@ -891,9 +894,6 @@ struct ChargedJetHadron {
891894 template <typename TCollisions, typename TJets, typename TTracks>
892895 void fillMixLeadingJetHadronHistograms (const TCollisions& collisions, const TJets& jets, const TTracks& tracks, float eventWeight = 1.0 )
893896 {
894- auto tracksTuple = std::make_tuple (jets, tracks);
895- Pair<TCollisions, TJets, TTracks, BinningType> pairData{corrBinning, numberEventsMixed, -1 , collisions, tracksTuple, &cache};
896-
897897 int totalmix = 0 ;
898898 int totaldijets = 0 ;
899899 int totaldijetscut = 0 ;
@@ -904,10 +904,13 @@ struct ChargedJetHadron {
904904 const double etaGapdw = 0.5 ;
905905 const double etaGapup = 1.0 ;
906906
907+ auto tracksTuple = std::make_tuple (jets, tracks);
908+ Pair<TCollisions, TJets, TTracks, BinningType> pairData{corrBinning, numberEventsMixed, -1 , collisions, tracksTuple, &cache};
909+
907910 for (const auto & [c1, jets1, c2, tracks2] : pairData) {
908911 totalmix++;
909912 registry.fill (HIST (" h_mix_event_stats" ), 1 );
910- int poolBin = corrBinning.getBin (std::make_tuple (c2.posZ (), getMultiplicity (c2)));
913+ int poolBin = corrBinning.getBin (std::make_tuple (c2.posZ (), getMultiplicity (c2)));;
911914 if (!isGoodCollision (c1, eventSelectionBits, skipMBGapEvents, trackOccupancyInTimeRangeMin, trackOccupancyInTimeRangeMax, centralityMin, centralityMax, vertexZCut)) {
912915 return ;
913916 }
@@ -1013,6 +1016,7 @@ struct ChargedJetHadron {
10131016 }
10141017 }
10151018 }
1019+
10161020 registry.fill (HIST (" h_mix_event_stats" ), 6 , totalmix);
10171021 registry.fill (HIST (" h_mix_event_stats" ), 7 , totaldijets);
10181022 registry.fill (HIST (" h_mix_event_stats" ), 8 , totaldijetscut);
@@ -1136,7 +1140,7 @@ struct ChargedJetHadron {
11361140
11371141 for (const auto & [c1, jets1, c2, particles2] : pairMCData) {
11381142 registry.fill (HIST (" h_mixevent_stats_part" ), 1 );
1139- int poolBin = corrBinning .getBin (std::make_tuple (c2.posZ (), getMultiplicity (c2)));
1143+ int poolBin = corrBinningMC .getBin (std::make_tuple (c2.posZ (), getMultiplicity (c2)));
11401144 if (std::abs (c1.posZ ()) > vertexZCut)
11411145 return ;
11421146 if (std::abs (c2.posZ ()) > vertexZCut)
@@ -1229,7 +1233,7 @@ struct ChargedJetHadron {
12291233 // ==========================================================
12301234 // .............process staring...............................
12311235 // ==========================================================
1232- void processCollisionsQA (soa::Filtered<aod::JetCollisions>::iterator const & collision,
1236+ void processCollisionsQC (soa::Filtered<aod::JetCollisions>::iterator const & collision,
12331237 FilterJetTracks const & tracks)
12341238 {
12351239 registry.fill (HIST (" h_collisions" ), 0.5 );
@@ -1252,9 +1256,9 @@ struct ChargedJetHadron {
12521256 fillTrackHistograms (track);
12531257 }
12541258 }
1255- PROCESS_SWITCH (ChargedJetHadron, processCollisionsQA , " collisions and tracks QC for Data and MCD" , true );
1259+ PROCESS_SWITCH (ChargedJetHadron, processCollisionsQC , " collisions and tracks QC for Data and MCD" , true );
12561260
1257- void processCollisionsWeighted (soa::Join<aod::JetCollisions, aod::JMcCollisionLbs>::iterator const & collision,
1261+ void processCollisionsQCWeighted (soa::Join<aod::JetCollisions, aod::JMcCollisionLbs>::iterator const & collision,
12581262 aod::JetMcCollisions const &,
12591263 FilterJetTracks const & tracks)
12601264 {
@@ -1286,26 +1290,7 @@ struct ChargedJetHadron {
12861290 }
12871291 }
12881292 PROCESS_SWITCH (ChargedJetHadron, processCollisionsQCWeighted, " weighted collisions and tracks for MCD" , false );
1289- /*
1290- void processSpectraData(soa::Filtered<aod::JetCollisions>::iterator const& collision,
1291- CorrChargedJets const& jets,
1292- aod::JetTracks const&)
1293- {
1294- if (!isGoodCollision(collision, eventSelectionBits, skipMBGapEvents, trackOccupancyInTimeRangeMin, trackOccupancyInTimeRangeMax, centralityMin, centralityMax, vertexZCut)) {
1295- return;
1296- }
1297- for (auto const& jet : jets) {
1298- if (!jetfindingutilities::isInEtaAcceptance(jet, jetEtaMin, jetEtaMax, trackEtaMin, trackEtaMax)) {
1299- continue;
1300- }
1301- if (!isAcceptedJet<aod::JetTracks>(jet)) {
1302- continue;
1303- }
1304- fillJetHistograms(jet);
1305- }
1306- }
1307- PROCESS_SWITCH(ChargedJetHadron, processSpectraData, "jet spectra for Data", false);
1308- */
1293+
13091294 void processSpectraAreaSubData (FilterCollision const & collision,
13101295 CorrChargedJets const & jets,
13111296 aod::JetTracks const &)
@@ -1409,8 +1394,6 @@ struct ChargedJetHadron {
14091394 }
14101395 for (const auto & candidate : candidates) {
14111396 // float ptD = candidate.ptD(); //from HFC D0-h
1412- // float bdtScorePromptD0 = candidate.mlScorePromptD0();
1413- // float bdtScoreBkgD0 = candidate.mlScoreBkgD0();
14141397 registry.fill (HIST (" h_d0_mass" ), candidate.m ());
14151398 registry.fill (HIST (" h_d0_pt" ), candidate.pt ());
14161399 registry.fill (HIST (" h_d0_eta" ), candidate.eta ());
@@ -1420,7 +1403,6 @@ struct ChargedJetHadron {
14201403 registry.fill(HIST("h_d0_bdtScoreBkg"), candidate.mlScoreBkgD0());
14211404 registry.fill(HIST("h_d0bar_bdtScorePrompt"), candidate.mlScorePromptD0bar());
14221405 registry.fill(HIST("h_d0bar_bdtScoreBkg"), candidate.mlScoreBkgD0bar());
1423- //registry.fill(HIST("h_d0_"), candidate.());
14241406 */
14251407 for (const auto & jet : jets) {
14261408 double deltaeta = candidate.eta () - jet.eta ();
@@ -1433,26 +1415,6 @@ struct ChargedJetHadron {
14331415 PROCESS_SWITCH (ChargedJetHadron, processHFJetCorrelation, " D0-jet for Data" , false );
14341416
14351417 // ........MCD.........................................................................
1436- /*
1437- void processSpectraMCD(soa::Filtered<aod::JetCollisions>::iterator const& collision,
1438- CorrChargedMCDJets const& jets,
1439- aod::JetTracks const&)
1440- {
1441- if (!isGoodCollision(collision, eventSelectionBits, skipMBGapEvents, trackOccupancyInTimeRangeMin, trackOccupancyInTimeRangeMax, centralityMin, centralityMax, vertexZCut)) {
1442- return;
1443- }
1444- for (auto const& jet : jets) {
1445- if (!jetfindingutilities::isInEtaAcceptance(jet, jetEtaMin, jetEtaMax, trackEtaMin, trackEtaMax)) {
1446- continue;
1447- }
1448- if (!isAcceptedJet<aod::JetTracks>(jet)) {
1449- continue;
1450- }
1451- fillJetHistograms(jet);
1452- }
1453- }
1454- PROCESS_SWITCH(ChargedJetHadron, processSpectraMCD, "jet spectra for MCD", false);
1455- */
14561418 void processSpectraAreaSubMCD (FilterCollision const & collision,
14571419 CorrChargedMCDJets const & jets,
14581420 aod::JetTracks const &)
@@ -1562,7 +1524,7 @@ struct ChargedJetHadron {
15621524 fillJetHistograms (jet, jetweight);
15631525 }
15641526 }
1565- PROCESS_SWITCH (ChargedJetHadron, processSpectraMCDWeighted, " jet finder QA mcd with weighted events" , false );
1527+ PROCESS_SWITCH (ChargedJetHadron, processSpectraMCDWeighted, " jet finder QC mcd with weighted events" , false );
15661528 // .............................
15671529
15681530 void processSpectraMCP (aod::JetMcCollision const & mccollision,
@@ -1688,7 +1650,7 @@ struct ChargedJetHadron {
16881650 registry.fill (HIST (" h_mcColl_mult" ), multiplicity);
16891651 // problem for mccollision' has no member named 'multFT0M'; did you mean 'multFT0A'? // return coll.multFT0M();
16901652
1691- // particle QA ...........
1653+ // particle QC ...........
16921654 for (auto const & particle : particles) {
16931655 fillParticleHistograms (particle);
16941656 }
0 commit comments