@@ -33,7 +33,6 @@ using namespace o2::aod;
3333using namespace o2 ::framework;
3434using MyCollisions = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::EvSels>;
3535using McMuons = soa::Join<aod::FwdTracks, aod::McFwdTrackLabels, aod::FwdTracksDCA>;
36- using McMFTs = soa::Join<aod::MFTTracks, aod::McMFTTrackLabels>;
3736
3837namespace
3938{
@@ -56,8 +55,9 @@ namespace muon_source
5655DECLARE_SOA_COLUMN (Pt, pt, float );
5756DECLARE_SOA_COLUMN (DcaXY, dcaXY, float );
5857DECLARE_SOA_COLUMN (Source, source, uint8_t );
58+ DECLARE_SOA_COLUMN (DeltaPt, deltaPt, float );
5959} // namespace muon_source
60- DECLARE_SOA_TABLE (HfMuonSource, " AOD" , " MUONSOURCE" , muon_source::Pt, muon_source::DcaXY, muon_source::Source);
60+ DECLARE_SOA_TABLE (HfMuonSource, " AOD" , " MUONSOURCE" , muon_source::Pt, muon_source::DcaXY, muon_source::Source, muon_source::DeltaPt );
6161} // namespace o2::aod
6262
6363struct HfTaskSingleMuonSource {
@@ -87,8 +87,6 @@ struct HfTaskSingleMuonSource {
8787 " NonpromptCharmMu" ,
8888 " PromptCharmMu" ,
8989 " LightDecayMu" ,
90- " BeautyToLightDecayMu" ,
91- " CharmToLightDecayMu" ,
9290 " SecondaryMu" ,
9391 " Hadron" ,
9492 " Unidentified" };
@@ -98,18 +96,17 @@ struct HfTaskSingleMuonSource {
9896 AxisSpec axisChi2{500 , 0 ., 100 ., " #chi^{2} of MCH-MFT matching" };
9997 AxisSpec axisPt{200 , 0 ., 100 ., " #it{p}_{T,reco} (GeV/#it{c})" };
10098 AxisSpec axisDeltaPt{1000 , -50 ., 50 ., " #Delta #it{p}_{T} (GeV/#it{c})" };
101- AxisSpec axisMftNC{10 , 0 ., 11 ., " Number of clusters in MFT" };
10299
103100 HistogramConfigSpec h1Pt{HistType::kTH1F , {axisPt}};
104101 HistogramConfigSpec h2PtDCA{HistType::kTH2F , {axisPt, axisDCA}};
105102 HistogramConfigSpec h2PtChi2{HistType::kTH2F , {axisPt, axisChi2}};
106- HistogramConfigSpec h3PtDeltaPtMftNC {HistType::kTH3F , {axisPt, axisDeltaPt, axisMftNC }};
103+ HistogramConfigSpec h2PtDeltaPt {HistType::kTH2F , {axisPt, axisDeltaPt}};
107104
108105 for (const auto & src : muonSources) {
109106 registry.add (Form (" h1%sPt" , src.Data ()), " " , h1Pt);
110107 registry.add (Form (" h2%sPtDCA" , src.Data ()), " " , h2PtDCA);
111108 registry.add (Form (" h2%sPtChi2" , src.Data ()), " " , h2PtChi2);
112- registry.add (Form (" h3%sPtDeltaPtMftNC " , src.Data ()), " " , h3PtDeltaPtMftNC );
109+ registry.add (Form (" h2%sPtDeltaPt " , src.Data ()), " " , h2PtDeltaPt );
113110 }
114111 }
115112
@@ -216,19 +213,7 @@ struct HfTaskSingleMuonSource {
216213 // this muon comes from light flavor quark decay
217214 bool isLightDecayMu (const uint8_t & mask)
218215 {
219- return (isMuon (mask) && TESTBIT (mask, HasLightParent) && (!TESTBIT (mask, IsSecondary)) && (!TESTBIT (mask, HasQuarkoniumParent)) && (!TESTBIT (mask, HasBeautyParent)) && (!TESTBIT (mask, HasCharmParent)));
220- }
221-
222- // this muon comes from beauty to light flavor decay
223- bool isBeautyToLightDecayMu (const uint8_t & mask)
224- {
225- return (isMuon (mask) && TESTBIT (mask, HasLightParent) && (TESTBIT (mask, HasBeautyParent)) && (!TESTBIT (mask, IsSecondary)) && (!TESTBIT (mask, HasQuarkoniumParent)));
226- }
227-
228- // this muon comes from charm to light flavor decay
229- bool isCharmToLightDecayMu (const uint8_t & mask)
230- {
231- return (isMuon (mask) && TESTBIT (mask, HasLightParent) && (TESTBIT (mask, HasCharmParent)) && (!TESTBIT (mask, IsSecondary)) && (!TESTBIT (mask, HasQuarkoniumParent)));
216+ return (isMuon (mask) && TESTBIT (mask, HasLightParent) && (!TESTBIT (mask, IsSecondary)) && (!TESTBIT (mask, HasQuarkoniumParent)));
232217 }
233218
234219 // this muon comes from transport
@@ -263,50 +248,36 @@ struct HfTaskSingleMuonSource {
263248 const auto muonType3 = muon.matchMCHTrack_as <McMuons>();
264249 const auto deltaPt = muonType3.pt () - pt;
265250
266- if (!muon.has_matchMFTTrack ()) {
267- return ;
268- }
269- const auto mft = muon.matchMFTTrack_as <McMFTs>();
270- const auto mftNC = mft.nClusters ();
271-
272- singleMuonSource (pt, dca, mask);
251+ singleMuonSource (pt, dca, mask, deltaPt);
273252
274253 if (isBeautyDecayMu (mask)) {
275254 registry.fill (HIST (" h2BeautyDecayMuPtDCA" ), pt, dca);
276255 registry.fill (HIST (" h2BeautyDecayMuPtChi2" ), pt, chi2);
277- registry.fill (HIST (" h3BeautyDecayMuPtDeltaPtMftNC " ), pt, deltaPt, mftNC );
256+ registry.fill (HIST (" h2BeautyDecayMuPtDeltaPt " ), pt, deltaPt);
278257 } else if (isNonpromptCharmMu (mask)) {
279258 registry.fill (HIST (" h2NonpromptCharmMuPtDCA" ), pt, dca);
280259 registry.fill (HIST (" h2NonpromptCharmMuPtChi2" ), pt, chi2);
281- registry.fill (HIST (" h3NonpromptCharmMuPtDeltaPtMftNC " ), pt, deltaPt, mftNC );
260+ registry.fill (HIST (" h2NonpromptCharmMuPtDeltaPt " ), pt, deltaPt);
282261 } else if (isPromptCharmMu (mask)) {
283262 registry.fill (HIST (" h2PromptCharmMuPtDCA" ), pt, dca);
284263 registry.fill (HIST (" h2PromptCharmMuPtChi2" ), pt, chi2);
285- registry.fill (HIST (" h3PromptCharmMuPtDeltaPtMftNC " ), pt, deltaPt, mftNC );
264+ registry.fill (HIST (" h2PromptCharmMuPtDeltaPt " ), pt, deltaPt);
286265 } else if (isLightDecayMu (mask)) {
287266 registry.fill (HIST (" h2LightDecayMuPtDCA" ), pt, dca);
288267 registry.fill (HIST (" h2LightDecayMuPtChi2" ), pt, chi2);
289- registry.fill (HIST (" h3LightDecayMuPtDeltaPtMftNC" ), pt, deltaPt, mftNC);
290- } else if (isBeautyToLightDecayMu (mask)) {
291- registry.fill (HIST (" h2BeautyToLightDecayMuPtDCA" ), pt, dca);
292- registry.fill (HIST (" h2BeautyToLightDecayMuPtChi2" ), pt, chi2);
293- registry.fill (HIST (" h3BeautyToLightDecayMuPtDeltaPtMftNC" ), pt, deltaPt, mftNC);
294- } else if (isCharmToLightDecayMu (mask)) {
295- registry.fill (HIST (" h2CharmToLightDecayMuPtDCA" ), pt, dca);
296- registry.fill (HIST (" h2CharmToLightDecayMuPtChi2" ), pt, chi2);
297- registry.fill (HIST (" h3CharmToLightDecayMuPtDeltaPtMftNC" ), pt, deltaPt, mftNC);
268+ registry.fill (HIST (" h2LightDecayMuPtDeltaPt" ), pt, deltaPt);
298269 } else if (isSecondaryMu (mask)) {
299270 registry.fill (HIST (" h2SecondaryMuPtDCA" ), pt, dca);
300271 registry.fill (HIST (" h2SecondaryMuPtChi2" ), pt, chi2);
301- registry.fill (HIST (" h3SecondaryMuPtDeltaPtMftNC " ), pt, deltaPt, mftNC );
272+ registry.fill (HIST (" h2SecondaryMuPtDeltaPt " ), pt, deltaPt);
302273 } else if (isHadron (mask)) {
303274 registry.fill (HIST (" h2HadronPtDCA" ), pt, dca);
304275 registry.fill (HIST (" h2HadronPtChi2" ), pt, chi2);
305- registry.fill (HIST (" h3HadronPtDeltaPtMftNC " ), pt, deltaPt, mftNC );
276+ registry.fill (HIST (" h2HadronPtDeltaPt " ), pt, deltaPt);
306277 } else if (isUnidentified (mask)) {
307278 registry.fill (HIST (" h2UnidentifiedPtDCA" ), pt, dca);
308279 registry.fill (HIST (" h2UnidentifiedPtChi2" ), pt, chi2);
309- registry.fill (HIST (" h3UnidentifiedPtDeltaPtMftNC " ), pt, deltaPt, mftNC );
280+ registry.fill (HIST (" h2UnidentifiedPtDeltaPt " ), pt, deltaPt);
310281 }
311282 } else {
312283 if (isBeautyDecayMu (mask)) {
@@ -317,10 +288,6 @@ struct HfTaskSingleMuonSource {
317288 registry.fill (HIST (" h1PromptCharmMuPt" ), pt);
318289 } else if (isLightDecayMu (mask)) {
319290 registry.fill (HIST (" h1LightDecayMuPt" ), pt);
320- } else if (isBeautyToLightDecayMu (mask)) {
321- registry.fill (HIST (" h1BeautyToLightDecayMuPt" ), pt);
322- } else if (isCharmToLightDecayMu (mask)) {
323- registry.fill (HIST (" h1CharmToLightDecayMuPt" ), pt);
324291 } else if (isSecondaryMu (mask)) {
325292 registry.fill (HIST (" h1SecondaryMuPt" ), pt);
326293 } else if (isHadron (mask)) {
@@ -333,7 +300,6 @@ struct HfTaskSingleMuonSource {
333300
334301 void process (MyCollisions::iterator const & collision,
335302 McMuons const & muons,
336- McMFTs const &,
337303 aod::McParticles const &)
338304 {
339305 // event selections
0 commit comments