-
Notifications
You must be signed in to change notification settings - Fork 660
PWGHF: First version of the Bs creator, selector, task #312
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
1892bca
4c26bce
48ffc4f
e26f761
1614289
0ff45a2
f7ea2c4
ceddbaf
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -643,6 +643,18 @@ auto InvMassDPlus(const T& candidate) | |||||||||||
| return candidate.m(array{RecoDecay::getMassPDG(kPiPlus), RecoDecay::getMassPDG(kKPlus), RecoDecay::getMassPDG(kPiPlus)}); | ||||||||||||
| } | ||||||||||||
|
|
||||||||||||
| template <typename T> | ||||||||||||
| auto InvMassDsKKpi(const T& candidate) | ||||||||||||
| { | ||||||||||||
| return candidate.m(array{RecoDecay::getMassPDG(kKPlus), RecoDecay::getMassPDG(kKMinus), RecoDecay::getMassPDG(kPiPlus)}); | ||||||||||||
| } | ||||||||||||
|
|
||||||||||||
| template <typename T> | ||||||||||||
| auto InvMassDspiKK(const T& candidate) | ||||||||||||
| { | ||||||||||||
| return candidate.m(array{RecoDecay::getMassPDG(kPiPlus), RecoDecay::getMassPDG(kKMinus), RecoDecay::getMassPDG(kKPlus)}); | ||||||||||||
| } | ||||||||||||
|
|
||||||||||||
| // Λc± → p± K∓ π± | ||||||||||||
|
|
||||||||||||
| template <typename T> | ||||||||||||
|
|
@@ -1205,6 +1217,95 @@ DECLARE_SOA_TABLE(HfCandLbMCRec, "AOD", "HFCANDLBMCREC", //! | |||||||||||
| DECLARE_SOA_TABLE(HfCandLbMCGen, "AOD", "HFCANDLBMCGEN", //! | ||||||||||||
| hf_cand_lb::FlagMCMatchGen, | ||||||||||||
| hf_cand_lb::OriginMCGen); | ||||||||||||
|
|
||||||||||||
| // specific Bs candidate properties | ||||||||||||
| namespace hf_cand_bs | ||||||||||||
| { | ||||||||||||
| DECLARE_SOA_INDEX_COLUMN_FULL(Index0, index0, int, HfCandProng3, "_0"); // Bs index | ||||||||||||
| // MC matching result: | ||||||||||||
| DECLARE_SOA_COLUMN(FlagMCMatchRec, flagMCMatchRec, int8_t); // reconstruction level | ||||||||||||
| DECLARE_SOA_COLUMN(FlagMCMatchGen, flagMCMatchGen, int8_t); // generator level | ||||||||||||
| DECLARE_SOA_COLUMN(OriginMCRec, originMCRec, int8_t); // particle origin, reconstruction level | ||||||||||||
| DECLARE_SOA_COLUMN(OriginMCGen, originMCGen, int8_t); // particle origin, generator level | ||||||||||||
|
Comment on lines
+1228
to
+1229
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Are these needed? |
||||||||||||
| DECLARE_SOA_COLUMN(DebugMCRec, debugMCRec, int8_t); // debug flag for mis-association reconstruction level | ||||||||||||
| // mapping of decay types | ||||||||||||
| enum DecayType { BsToDsPi }; // move this to a dedicated cascade namespace in the future? | ||||||||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||
|
|
||||||||||||
| // Bs → Ds+ π- → K+ K- π+ π- | ||||||||||||
| // float massBs = RecoDecay::getMassPDG(pdg::Code::kBs); | ||||||||||||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||
| template <typename T> | ||||||||||||
| auto CtBs(const T& candidate) | ||||||||||||
| { | ||||||||||||
| return candidate.ct(RecoDecay::getMassPDG(pdg::Code::kBs)); | ||||||||||||
| } | ||||||||||||
|
|
||||||||||||
| template <typename T> | ||||||||||||
| auto YBs(const T& candidate) | ||||||||||||
| { | ||||||||||||
| return candidate.y(RecoDecay::getMassPDG(pdg::Code::kBs)); | ||||||||||||
| } | ||||||||||||
|
|
||||||||||||
| template <typename T> | ||||||||||||
| auto EBs(const T& candidate) | ||||||||||||
| { | ||||||||||||
| return candidate.e(RecoDecay::getMassPDG(pdg::Code::kBs)); | ||||||||||||
| } | ||||||||||||
| template <typename T> | ||||||||||||
|
Comment on lines
+1252
to
+1253
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||||||||
| auto InvMassBsToDsPi(const T& candidate) | ||||||||||||
| { | ||||||||||||
| return candidate.m(array{RecoDecay::getMassPDG(pdg::Code::kDs), RecoDecay::getMassPDG(kPiMinus)}); | ||||||||||||
| } | ||||||||||||
| } // namespace hf_cand_bs | ||||||||||||
|
|
||||||||||||
| // declare dedicated Bs candidate table | ||||||||||||
| DECLARE_SOA_TABLE(HfCandBsBase, "AOD", "HFCANDBSBASE", | ||||||||||||
| // general columns | ||||||||||||
| HFCAND_COLUMNS, | ||||||||||||
| // 3-prong specific columns | ||||||||||||
| hf_cand::PxProng0, hf_cand::PyProng0, hf_cand::PzProng0, | ||||||||||||
| hf_cand::PxProng1, hf_cand::PyProng1, hf_cand::PzProng1, | ||||||||||||
| hf_cand::ImpactParameter0, hf_cand::ImpactParameter1, | ||||||||||||
| hf_cand::ErrorImpactParameter0, hf_cand::ErrorImpactParameter1, | ||||||||||||
| hf_cand_bs::Index0Id, hf_track_index::Index1Id, | ||||||||||||
| hf_track_index::HFflag, | ||||||||||||
| /* dynamic columns */ | ||||||||||||
| hf_cand_prong2::M<hf_cand::PxProng0, hf_cand::PyProng0, hf_cand::PzProng0, hf_cand::PxProng1, hf_cand::PyProng1, hf_cand::PzProng1>, | ||||||||||||
| hf_cand_prong2::M2<hf_cand::PxProng0, hf_cand::PyProng0, hf_cand::PzProng0, hf_cand::PxProng1, hf_cand::PyProng1, hf_cand::PzProng1>, | ||||||||||||
| hf_cand_prong2::ImpactParameterProduct<hf_cand::ImpactParameter0, hf_cand::ImpactParameter1>, | ||||||||||||
| /* dynamic columns that use candidate momentum components */ | ||||||||||||
| hf_cand::Pt<hf_cand_prong2::Px, hf_cand_prong2::Py>, | ||||||||||||
| hf_cand::Pt2<hf_cand_prong2::Px, hf_cand_prong2::Py>, | ||||||||||||
| hf_cand::P<hf_cand_prong2::Px, hf_cand_prong2::Py, hf_cand_prong2::Pz>, | ||||||||||||
| hf_cand::P2<hf_cand_prong2::Px, hf_cand_prong2::Py, hf_cand_prong2::Pz>, | ||||||||||||
| hf_cand::PVector<hf_cand_prong2::Px, hf_cand_prong2::Py, hf_cand_prong2::Pz>, | ||||||||||||
| hf_cand::CPA<collision::PosX, collision::PosY, collision::PosZ, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex, hf_cand_prong2::Px, hf_cand_prong2::Py, hf_cand_prong2::Pz>, | ||||||||||||
| hf_cand::CPAXY<collision::PosX, collision::PosY, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand_prong2::Px, hf_cand_prong2::Py>, | ||||||||||||
| hf_cand::Ct<collision::PosX, collision::PosY, collision::PosZ, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex, hf_cand_prong2::Px, hf_cand_prong2::Py, hf_cand_prong2::Pz>, | ||||||||||||
| hf_cand::ImpactParameterXY<collision::PosX, collision::PosY, collision::PosZ, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ZSecondaryVertex, hf_cand_prong2::Px, hf_cand_prong2::Py, hf_cand_prong2::Pz>, | ||||||||||||
| hf_cand_prong2::MaxNormalisedDeltaIP<collision::PosX, collision::PosY, hf_cand::XSecondaryVertex, hf_cand::YSecondaryVertex, hf_cand::ErrorDecayLengthXY, hf_cand_prong2::Px, hf_cand_prong2::Py, hf_cand::ImpactParameter0, hf_cand::ErrorImpactParameter0, hf_cand::ImpactParameter1, hf_cand::ErrorImpactParameter1, hf_cand::PxProng0, hf_cand::PyProng0, hf_cand::PxProng1, hf_cand::PyProng1>, | ||||||||||||
| hf_cand::Eta<hf_cand_prong2::Px, hf_cand_prong2::Py, hf_cand_prong2::Pz>, | ||||||||||||
| hf_cand::Phi<hf_cand_prong2::Px, hf_cand_prong2::Py>, | ||||||||||||
| hf_cand::Y<hf_cand_prong2::Px, hf_cand_prong2::Py, hf_cand_prong2::Pz>, | ||||||||||||
| hf_cand::E<hf_cand_prong2::Px, hf_cand_prong2::Py, hf_cand_prong2::Pz>, | ||||||||||||
| hf_cand::E2<hf_cand_prong2::Px, hf_cand_prong2::Py, hf_cand_prong2::Pz>); | ||||||||||||
|
|
||||||||||||
| // extended table with expression columns that can be used as arguments of dynamic columns | ||||||||||||
| DECLARE_SOA_EXTENDED_TABLE_USER(HfCandBsExt, HfCandBsBase, "HFCANDBSEXT", | ||||||||||||
| hf_cand_prong2::Px, hf_cand_prong2::Py, hf_cand_prong2::Pz); | ||||||||||||
|
|
||||||||||||
| using HfCandBs = HfCandBsExt; | ||||||||||||
|
|
||||||||||||
| // table with results of reconstruction level MC matching | ||||||||||||
| DECLARE_SOA_TABLE(HfCandBsMCRec, "AOD", "HFCANDBSMCREC", //! | ||||||||||||
| hf_cand_bs::FlagMCMatchRec, | ||||||||||||
| hf_cand_bs::OriginMCRec, | ||||||||||||
| hf_cand_bs::DebugMCRec); | ||||||||||||
|
|
||||||||||||
| // table with results of generator level MC matching | ||||||||||||
| DECLARE_SOA_TABLE(HfCandBsMCGen, "AOD", "HFCANDBSMCGEN", //! | ||||||||||||
| hf_cand_bs::FlagMCMatchGen, | ||||||||||||
| hf_cand_bs::OriginMCGen); | ||||||||||||
|
|
||||||||||||
| } // namespace o2::aod | ||||||||||||
|
|
||||||||||||
| #endif // O2_ANALYSIS_HFSECONDARYVERTEX_H_ | ||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.