@@ -58,13 +58,16 @@ namespace o2::aod
5858/*
5959// Jet-related quantities
6060*/
61+
6162DECLARE_SOA_COLUMN (ExpJetHfDist, expJetHfDist, float );
6263DECLARE_SOA_COLUMN (ExpJetPt, expJetPt, float );
6364DECLARE_SOA_COLUMN (ExpJetEta, expJetEta, float );
6465DECLARE_SOA_COLUMN (ExpJetPhi, expJetPhi, float );
6566DECLARE_SOA_COLUMN (ExpJetNConst, expJetNConst, int );
6667DECLARE_SOA_COLUMN (ExpJetAng, expJetAng, float );
6768// D0 candidate quantities
69+ DECLARE_SOA_COLUMN (ExpHfZParallel, expHfZParallel, float );
70+
6871DECLARE_SOA_COLUMN (ExpHfPt, expHfPt, float );
6972DECLARE_SOA_COLUMN (ExpHfEta, expHfEta, float );
7073DECLARE_SOA_COLUMN (ExpHfPhi, expHfPhi, float );
@@ -86,6 +89,8 @@ DECLARE_SOA_COLUMN(McpJetPhi, mcpJetPhi, float);
8689DECLARE_SOA_COLUMN (McpJetNConst, mcpJetNConst, float );
8790DECLARE_SOA_COLUMN (McpJetAng, mcpJetAng, float );
8891// D0 candidates (Heavy Flavour)
92+ DECLARE_SOA_COLUMN (McpHfZParallel, mcpHfZParallel, float );
93+
8994DECLARE_SOA_COLUMN (McpHfPt, mcpHfPt, float );
9095DECLARE_SOA_COLUMN (McpHfEta, mcpHfEta, float );
9196DECLARE_SOA_COLUMN (McpHfPhi, mcpHfPhi, float );
@@ -105,6 +110,8 @@ DECLARE_SOA_COLUMN(McdJetPhi, mcdJetPhi, float);
105110DECLARE_SOA_COLUMN (McdJetNConst, mcdJetNConst, float );
106111DECLARE_SOA_COLUMN (McdJetAng, mcdJetAng, float );
107112// D0 candidates (Heavy Flavour)
113+ DECLARE_SOA_COLUMN (McdHfZParallel, mcdHfZParallel, float );
114+
108115DECLARE_SOA_COLUMN (McdHfPt, mcdHfPt, float );
109116DECLARE_SOA_COLUMN (McdHfEta, mcdHfEta, float );
110117DECLARE_SOA_COLUMN (McdHfPhi, mcdHfPhi, float );
@@ -130,6 +137,7 @@ DECLARE_SOA_TABLE(EXPJetObjTable, "AOD", "EXPJETOBJTABLE",
130137 ExpJetPhi,
131138 ExpJetNConst,
132139 ExpJetAng,
140+ ExpHfZParallel,
133141 ExpHfPt,
134142 ExpHfEta,
135143 ExpHfPhi,
@@ -145,6 +153,7 @@ DECLARE_SOA_TABLE(MCPJetObjTable, "AOD", "MCPJETOBJTABLE",
145153 McpJetPhi,
146154 McpJetNConst,
147155 McpJetAng,
156+ McpHfZParallel,
148157 McpHfPt,
149158 McpHfEta,
150159 McpHfPhi,
@@ -158,6 +167,7 @@ DECLARE_SOA_TABLE(MCDJetObjTable, "AOD", "MCDJETOBJTABLE",
158167 McdJetPhi,
159168 McdJetNConst,
160169 McdJetAng,
170+ McdHfZParallel,
161171 McdHfPt,
162172 McdHfEta,
163173 McdHfPhi,
@@ -177,6 +187,7 @@ DECLARE_SOA_TABLE(MatchJetDistanceTable, "AOD", "MATCHTABLE",
177187 McpJetPhi,
178188 McpJetNConst,
179189 McpJetAng,
190+ McpHfZParallel,
180191 McpHfPt,
181192 McpHfEta,
182193 McpHfPhi,
@@ -188,6 +199,7 @@ DECLARE_SOA_TABLE(MatchJetDistanceTable, "AOD", "MATCHTABLE",
188199 McdJetPhi,
189200 McdJetNConst,
190201 McdJetAng,
202+ McdHfZParallel,
191203 McdHfPt,
192204 McdHfEta,
193205 McdHfPhi,
@@ -500,11 +512,21 @@ struct JetD0AngSubstructure {
500512 registry.fill (HIST (histnames::ex_hfl_phi), d0Candidate.phi ()); // add more axis
501513
502514 // filling table
503- objJetTable (axisDistance, jet.pt (), jet.eta (), jet.phi (),
504- jet.template tracks_as <aod::JetTracks>().size (), angularity,
505- d0Candidate.pt (), d0Candidate.eta (), d0Candidate.phi (),
506- d0Candidate.m (), d0Candidate.y (), d0Candidate.mlScores ()[0 ],
507- d0Candidate.mlScores ()[1 ], d0Candidate.mlScores ()[2 ]);
515+ objJetTable (axisDistance,
516+ jet.pt (),
517+ jet.eta (),
518+ jet.phi (),
519+ jet.template tracks_as <aod::JetTracks>().size (),
520+ angularity,
521+ zParallel,
522+ d0Candidate.pt (),
523+ d0Candidate.eta (),
524+ d0Candidate.phi (),
525+ d0Candidate.m (),
526+ d0Candidate.y (),
527+ d0Candidate.mlScores ()[0 ],
528+ d0Candidate.mlScores ()[1 ],
529+ d0Candidate.mlScores ()[2 ]);
508530
509531 break ; // get out of candidates' loop after first HF particle is found
510532 // in jet
@@ -585,6 +607,11 @@ struct JetD0AngSubstructure {
585607 selectedAs = -1 ;
586608 }
587609
610+ TVector3 mcdjetvector (mcdjet.px (), mcdjet.py (), mcdjet.pz ());
611+ TVector3 mcdcandvector (mcdd0cand.px (), mcdd0cand.py (), mcdd0cand.pz ());
612+
613+ float mcdzparallel = (mcdjetvector * mcdcandvector) / (mcdjetvector * mcdjetvector);
614+
588615 float angularity = jetCalculateAngularityMCD (mcdjet, tracks);
589616 registry.fill (HIST (histnames::mc_eff_det_jet_pt), mcdjet.pt ());
590617 registry.fill (HIST (histnames::mc_eff_det_jet_eta), mcdjet.eta ());
@@ -603,6 +630,7 @@ struct JetD0AngSubstructure {
603630 mcdjet.phi (),
604631 mcdjet.template tracks_as <aod::JetTracks>().size (), // detector level jet
605632 angularity,
633+ mcdzparallel,
606634 mcdd0cand.pt (),
607635 mcdd0cand.eta (), mcdd0cand.phi (),
608636 mcdd0cand.m (), mcdd0cand.y (),
@@ -630,6 +658,11 @@ struct JetD0AngSubstructure {
630658 if (mcpjet.has_matchedJetCand ()) {
631659 registry.fill (HIST (histnames::mc_eff_jet), getValFromBin (BIN_MC_JETCNTR::ParticleLevelJetWithMatchedCandidate));
632660 }
661+ TVector3 mcpjetvector (mcpjet.px (), mcpjet.py (), mcpjet.pz ());
662+ TVector3 mcpcandvector (mcpd0cand.px (), mcpd0cand.py (), mcpd0cand.pz ());
663+
664+ float mcpzparallel = (mcpjetvector * mcpcandvector) / (mcpjetvector * mcpjetvector);
665+
633666 float angularity = jetCalculateAngularityMCP (mcpjet, particles);
634667
635668 registry.fill (HIST (histnames::mc_eff_par_jet_pt), mcpjet.pt ());
@@ -649,6 +682,7 @@ struct JetD0AngSubstructure {
649682 mcpjet.phi (),
650683 mcpjet.template tracks_as <aod::JetParticles>().size (), // particle level jet
651684 angularity,
685+ mcpzparallel,
652686 mcpd0cand.pt (),
653687 mcpd0cand.eta (),
654688 mcpd0cand.phi (),
@@ -693,6 +727,10 @@ struct JetD0AngSubstructure {
693727 // obtain leading HF particle in jet
694728 auto mcpcand = mcpjet.template candidates_first_as <CandidatesMCP>();
695729
730+ TVector3 mcpjetvector (mcpjet.px (), mcpjet.py (), mcpjet.pz ());
731+ TVector3 mcpcandvector (mcpcand.px (), mcpcand.py (), mcpcand.pz ());
732+ float mcpzparallel = (mcpjetvector * mcpcandvector) / (mcpjetvector * mcpjetvector);
733+
696734 if (mcpjet.has_matchedJetCand ()) {
697735 registry.fill (HIST (histnames::mc_jet), getValFromBin (BIN_MC_JETCNTR::ParticleLevelJetWithMatchedCandidate));
698736
@@ -736,6 +774,11 @@ struct JetD0AngSubstructure {
736774 selectedAs = -1 ;
737775 }
738776
777+ TVector3 mcdjetvector (mcdjet.px (), mcdjet.py (), mcdjet.pz ());
778+ TVector3 mcdcandvector (mcdcand.px (), mcdcand.py (), mcdcand.pz ());
779+
780+ float mcdzparallel = (mcdjetvector * mcdcandvector) / (mcdjetvector * mcdjetvector);
781+
739782 float mcpAngularity = jetCalculateAngularityMCP (mcpjet, jetparticles);
740783 float mcdAngularity = jetCalculateAngularityMCD (mcdjet, jettracks);
741784
@@ -769,6 +812,7 @@ struct JetD0AngSubstructure {
769812 mcpjet.phi (),
770813 mcpjet.template tracks_as <aod::JetParticles>().size (), // particle level jet
771814 mcpAngularity,
815+ mcpzparallel,
772816 mcpcand.pt (),
773817 mcpcand.eta (),
774818 mcpcand.phi (),
@@ -780,6 +824,7 @@ struct JetD0AngSubstructure {
780824 mcdjet.phi (),
781825 mcdjet.template tracks_as <aod::JetTracks>().size (), // detector level jet
782826 mcdAngularity,
827+ mcdzparallel,
783828 mcdcand.pt (),
784829 mcdcand.eta (),
785830 mcdcand.phi (),
@@ -803,6 +848,7 @@ struct JetD0AngSubstructure {
803848 mcpjet.phi (),
804849 mcpjet.template tracks_as <aod::JetParticles>().size (), // particle level jet
805850 mcpAngularity,
851+ mcpzparallel,
806852 mcpcand.pt (),
807853 mcpcand.eta (),
808854 mcpcand.phi (),
@@ -812,6 +858,7 @@ struct JetD0AngSubstructure {
812858 -2 ,
813859 -2 ,
814860 -2 ,
861+ -2 ,
815862 -2 , // detector level jet
816863 -2 ,
817864 -2 ,
0 commit comments