Skip to content

Commit 2eff73e

Browse files
ginnocenGian Michele Innocenti
andauthored
Add muon channel in the skim (#6342)
* Add Muon channel in the HF skim * Clang Fix * add space back Co-authored-by: Gian Michele Innocenti <ginnocen@alicecerno2.cern.ch>
1 parent a37b9cb commit 2eff73e

3 files changed

Lines changed: 36 additions & 5 deletions

File tree

Analysis/Core/include/AnalysisCore/HFConfigurables.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,12 @@ class HFTrackIndexSkimsCreatorConfigs
3838
double mInvMassJpsiToEEMax = 4.1;
3939
double mCPAJpsiToEEMin = -2;
4040
double mImpParProductJpsiToEEMax = 1000.;
41+
// JpsiToMuMu
42+
double mPtJpsiToMuMuMin = 4.; //original value 0.
43+
double mInvMassJpsiToMuMuMin = 2.5;
44+
double mInvMassJpsiToMuMuMax = 4.1;
45+
double mCPAJpsiToMuMuMin = -2;
46+
double mImpParProductJpsiToMuMuMax = 1000.;
4147

4248
// 3-prong cuts
4349

Analysis/DataModel/include/AnalysisDataModel/HFSecondaryVertex.h

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,9 @@ DECLARE_SOA_INDEX_COLUMN_FULL(Index3, index3, int, Tracks, "_3"); //!
5656
DECLARE_SOA_INDEX_COLUMN_FULL(IndexV0, indexV0, int, aod::V0Datas, "_V0"); //!
5757
DECLARE_SOA_COLUMN(HFflag, hfflag, uint8_t); //!
5858

59-
DECLARE_SOA_COLUMN(D0ToKPiFlag, d0ToKPiFlag, uint8_t); //!
60-
DECLARE_SOA_COLUMN(JpsiToEEFlag, jpsiToEEFlag, uint8_t); //!
59+
DECLARE_SOA_COLUMN(D0ToKPiFlag, d0ToKPiFlag, uint8_t); //!
60+
DECLARE_SOA_COLUMN(JpsiToEEFlag, jpsiToEEFlag, uint8_t); //!
61+
DECLARE_SOA_COLUMN(JpsiToMuMuFlag, jpsiToMuMuFlag, uint8_t); //!
6162

6263
DECLARE_SOA_COLUMN(DPlusPiKPiFlag, dPlusPiKPiFlag, uint8_t); //!
6364
DECLARE_SOA_COLUMN(LcPKPiFlag, lcPKPiFlag, uint8_t); //!
@@ -77,7 +78,8 @@ DECLARE_SOA_TABLE(HfTrackIndexCasc, "AOD", "HFTRACKIDXCASC", //!
7778

7879
DECLARE_SOA_TABLE(HfCutStatusProng2, "AOD", "HFCUTSTATUSP2", //!
7980
hf_track_index::D0ToKPiFlag,
80-
hf_track_index::JpsiToEEFlag);
81+
hf_track_index::JpsiToEEFlag,
82+
hf_track_index::JpsiToMuMuFlag);
8183

8284
DECLARE_SOA_TABLE(HfTrackIndexProng3, "AOD", "HFTRACKIDXP3", //!
8385
hf_track_index::Index0Id,
@@ -267,7 +269,7 @@ auto CosThetaStarD0bar(const T& candidate)
267269
return candidate.cosThetaStar(array{RecoDecay::getMassPDG(kKPlus), RecoDecay::getMassPDG(kPiPlus)}, RecoDecay::getMassPDG(pdg::Code::kD0), 0);
268270
}
269271

270-
// J/ψ → e+ e−
272+
// J/ψ
271273

272274
template <typename T>
273275
auto CtJpsi(const T& candidate)
@@ -287,11 +289,21 @@ auto EJpsi(const T& candidate)
287289
return candidate.e(RecoDecay::getMassPDG(pdg::Code::kJpsi));
288290
}
289291

292+
// J/ψ → e+ e−
293+
290294
template <typename T>
291295
auto InvMassJpsiToEE(const T& candidate)
292296
{
293297
return candidate.m(array{RecoDecay::getMassPDG(kElectron), RecoDecay::getMassPDG(kElectron)});
294298
}
299+
300+
// J/ψ → µ+ µ−
301+
302+
template <typename T>
303+
auto InvMassJpsiToMuMu(const T& candidate)
304+
{
305+
return candidate.m(array{RecoDecay::getMassPDG(kMuonPlus), RecoDecay::getMassPDG(kMuonMinus)});
306+
}
295307
} // namespace hf_cand_prong2
296308

297309
// general columns

Analysis/Tasks/PWGHF/HFTrackIndexSkimsCreator.cxx

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,6 +297,7 @@ struct HFTrackIndexSkimsCreator {
297297
{"hNCand2ProngVsNTracks", "2-prong candidates preselected;# of selected tracks;# of candidates;entries", {HistType::kTH2F, {{2500, 0., 25000.}, {2000, 0., 200000.}}}},
298298
{"hmassD0ToPiK", "D^{0} candidates;inv. mass (#pi K) (GeV/#it{c}^{2});entries", {HistType::kTH1F, {{500, 0., 5.}}}},
299299
{"hmassJpsiToEE", "J/#psi candidates;inv. mass (e^{#plus} e^{#minus}) (GeV/#it{c}^{2});entries", {HistType::kTH1F, {{500, 0., 5.}}}},
300+
{"hmassJpsiToMuMu", "J/#psi candidates;inv. mass (#mu^{#plus} #mu^{#minus}) (GeV/#it{c}^{2});entries", {HistType::kTH1F, {{500, 0., 5.}}}},
300301
// 3-prong histograms
301302
{"hvtx3_x", "3-prong candidates;#it{x}_{sec. vtx.} (cm);entries", {HistType::kTH1F, {{1000, -2., 2.}}}},
302303
{"hvtx3_y", "3-prong candidates;#it{y}_{sec. vtx.} (cm);entries", {HistType::kTH1F, {{1000, -2., 2.}}}},
@@ -319,6 +320,7 @@ struct HFTrackIndexSkimsCreator {
319320
double massK = RecoDecay::getMassPDG(kKPlus);
320321
double massProton = RecoDecay::getMassPDG(kProton);
321322
double massElectron = RecoDecay::getMassPDG(kElectron);
323+
double massMuon = RecoDecay::getMassPDG(kMuonMinus);
322324

323325
// int nColls{0}; //can be added to run over limited collisions per file - for tesing purposes
324326

@@ -376,6 +378,12 @@ struct HFTrackIndexSkimsCreator {
376378
cut2ProngCPACandMin[hf_cand_prong2::DecayType::JpsiToEE] = configs->mCPAJpsiToEEMin;
377379
cut2ProngImpParProductCandMax[hf_cand_prong2::DecayType::JpsiToEE] = configs->mImpParProductJpsiToEEMax;
378380

381+
cut2ProngPtCandMin[hf_cand_prong2::DecayType::JpsiToMuMu] = configs->mPtJpsiToMuMuMin;
382+
cut2ProngInvMassCandMin[hf_cand_prong2::DecayType::JpsiToMuMu] = configs->mInvMassJpsiToMuMuMin;
383+
cut2ProngInvMassCandMax[hf_cand_prong2::DecayType::JpsiToMuMu] = configs->mInvMassJpsiToMuMuMax;
384+
cut2ProngCPACandMin[hf_cand_prong2::DecayType::JpsiToMuMu] = configs->mCPAJpsiToMuMuMin;
385+
cut2ProngImpParProductCandMax[hf_cand_prong2::DecayType::JpsiToMuMu] = configs->mImpParProductJpsiToMuMuMax;
386+
379387
const int nCuts3Prong = 4; // how many different selections are made on 3-prongs
380388
double cut3ProngPtCandMin[n3ProngDecays];
381389
double cut3ProngInvMassCandMin[n3ProngDecays];
@@ -415,10 +423,12 @@ struct HFTrackIndexSkimsCreator {
415423
array<array<double, 2>, n2ProngDecays> arr2Mass1;
416424
arr2Mass1[hf_cand_prong2::DecayType::D0ToPiK] = array{massPi, massK};
417425
arr2Mass1[hf_cand_prong2::DecayType::JpsiToEE] = array{massElectron, massElectron};
426+
arr2Mass1[hf_cand_prong2::DecayType::JpsiToMuMu] = array{massMuon, massMuon};
418427

419428
array<array<double, 2>, n2ProngDecays> arr2Mass2;
420429
arr2Mass2[hf_cand_prong2::DecayType::D0ToPiK] = array{massK, massPi};
421430
arr2Mass2[hf_cand_prong2::DecayType::JpsiToEE] = array{massElectron, massElectron};
431+
arr2Mass2[hf_cand_prong2::DecayType::JpsiToMuMu] = array{massMuon, massMuon};
422432

423433
array<array<double, 3>, n3ProngDecays> arr3Mass1;
424434
arr3Mass1[hf_cand_prong3::DecayType::DPlusToPiKPi] = array{massPi, massK, massPi};
@@ -591,7 +601,7 @@ struct HFTrackIndexSkimsCreator {
591601
}
592602
}
593603
}
594-
rowProng2CutStatus(Prong2CutStatus[0], Prong2CutStatus[1]); //FIXME when we can do this by looping over n2ProngDecays
604+
rowProng2CutStatus(Prong2CutStatus[0], Prong2CutStatus[1], Prong2CutStatus[2]); //FIXME when we can do this by looping over n2ProngDecays
595605
}
596606

597607
// fill histograms
@@ -611,6 +621,9 @@ struct HFTrackIndexSkimsCreator {
611621
if (n2 == hf_cand_prong2::DecayType::JpsiToEE) {
612622
registry.get<TH1>(HIST("hmassJpsiToEE"))->Fill(mass2ProngHypo1[n2]);
613623
}
624+
if (n2 == hf_cand_prong2::DecayType::JpsiToMuMu) {
625+
registry.get<TH1>(HIST("hmassJpsiToMuMu"))->Fill(mass2ProngHypo1[n2]);
626+
}
614627
}
615628
if ((cut2ProngInvMassCandMin[n2] < 0. && cut2ProngInvMassCandMax[n2] <= 0.) || (mass2ProngHypo2[n2] >= cut2ProngInvMassCandMin[n2] && mass2ProngHypo2[n2] < cut2ProngInvMassCandMax[n2])) {
616629
mass2ProngHypo2[n2] = RecoDecay::M(arrMom, arr2Mass2[n2]);

0 commit comments

Comments
 (0)