Skip to content

Commit 816ec45

Browse files
committed
Add skimming data model header
1 parent 79ee119 commit 816ec45

File tree

1 file changed

+264
-0
lines changed

1 file changed

+264
-0
lines changed
Lines changed: 264 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,264 @@
1+
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
4+
//
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7+
//
8+
// In applying this license CERN does not waive the privileges and immunities
9+
// granted to it by virtue of its status as an Intergovernmental Organization
10+
// or submit itself to any jurisdiction.
11+
12+
/// \file CandidateReconstructionTables.h
13+
/// \brief Definitions of tables produced by candidate reconstruction workflows
14+
///
15+
/// \author Gian Michele Innocenti <gian.michele.innocenti@cern.ch>, CERN
16+
/// \author Vít Kučera <vit.kucera@cern.ch>, CERN
17+
18+
#ifndef PWGHF_DATAMODEL_CANDIDATESKIMMINGTABLES_H_
19+
#define PWGHF_DATAMODEL_CANDIDATESKIMMINGTABLES_H_
20+
21+
#include "PWGHF/Utils/utilsEvSelHf.h"
22+
23+
#include <Framework/ASoA.h>
24+
#include <Framework/AnalysisDataModel.h>
25+
26+
#include <cstdint>
27+
#include <vector>
28+
29+
namespace o2::aod
30+
{
31+
namespace hf_sel_collision
32+
{
33+
DECLARE_SOA_COLUMN(WhyRejectColl, whyRejectColl, o2::hf_evsel::HfCollisionRejectionMask); //!
34+
} // namespace hf_sel_collision
35+
36+
DECLARE_SOA_TABLE(HfSelCollision, "AOD", "HFSELCOLLISION", //!
37+
hf_sel_collision::WhyRejectColl);
38+
39+
namespace hf_sel_track
40+
{
41+
DECLARE_SOA_COLUMN(IsSelProng, isSelProng, uint32_t); //!
42+
DECLARE_SOA_COLUMN(IsIdentifiedPid, isIdentifiedPid, uint32_t); //!
43+
DECLARE_SOA_COLUMN(IsPositive, isPositive, bool); //!
44+
} // namespace hf_sel_track
45+
46+
DECLARE_SOA_TABLE(HfSelTrack, "AOD", "HFSELTRACK", //!
47+
hf_sel_track::IsSelProng,
48+
hf_sel_track::IsIdentifiedPid,
49+
hf_sel_track::IsPositive);
50+
51+
namespace hf_pv_refit_track
52+
{
53+
DECLARE_SOA_COLUMN(PvRefitX, pvRefitX, float); //!
54+
DECLARE_SOA_COLUMN(PvRefitY, pvRefitY, float); //!
55+
DECLARE_SOA_COLUMN(PvRefitZ, pvRefitZ, float); //!
56+
DECLARE_SOA_COLUMN(PvRefitSigmaX2, pvRefitSigmaX2, float); //!
57+
DECLARE_SOA_COLUMN(PvRefitSigmaXY, pvRefitSigmaXY, float); //!
58+
DECLARE_SOA_COLUMN(PvRefitSigmaY2, pvRefitSigmaY2, float); //!
59+
DECLARE_SOA_COLUMN(PvRefitSigmaXZ, pvRefitSigmaXZ, float); //!
60+
DECLARE_SOA_COLUMN(PvRefitSigmaYZ, pvRefitSigmaYZ, float); //!
61+
DECLARE_SOA_COLUMN(PvRefitSigmaZ2, pvRefitSigmaZ2, float); //!
62+
DECLARE_SOA_COLUMN(PvRefitDcaXY, pvRefitDcaXY, float); //!
63+
DECLARE_SOA_COLUMN(PvRefitDcaZ, pvRefitDcaZ, float); //!
64+
} // namespace hf_pv_refit_track
65+
66+
DECLARE_SOA_TABLE(HfPvRefitTrack, "AOD", "HFPVREFITTRACK", //!
67+
hf_pv_refit_track::PvRefitX,
68+
hf_pv_refit_track::PvRefitY,
69+
hf_pv_refit_track::PvRefitZ,
70+
hf_pv_refit_track::PvRefitSigmaX2,
71+
hf_pv_refit_track::PvRefitSigmaXY,
72+
hf_pv_refit_track::PvRefitSigmaY2,
73+
hf_pv_refit_track::PvRefitSigmaXZ,
74+
hf_pv_refit_track::PvRefitSigmaYZ,
75+
hf_pv_refit_track::PvRefitSigmaZ2,
76+
hf_pv_refit_track::PvRefitDcaXY,
77+
hf_pv_refit_track::PvRefitDcaZ);
78+
79+
namespace hf_track_index
80+
{
81+
DECLARE_SOA_INDEX_COLUMN(Collision, collision); //! Collision index
82+
DECLARE_SOA_INDEX_COLUMN_FULL(Prong0, prong0, int, Tracks, "_0"); //! Index to first prong
83+
DECLARE_SOA_INDEX_COLUMN_FULL(Prong1, prong1, int, Tracks, "_1"); //! Index to second prong
84+
DECLARE_SOA_INDEX_COLUMN_FULL(Prong2, prong2, int, Tracks, "_2"); //! Index to third prong
85+
DECLARE_SOA_INDEX_COLUMN_FULL(Prong3, prong3, int, Tracks, "_3"); //! Index to fourth prong
86+
DECLARE_SOA_INDEX_COLUMN_FULL(Prong4, prong4, int, Tracks, "_4"); //! Index to fifth prong
87+
DECLARE_SOA_INDEX_COLUMN(V0, v0); //! Index to V0 prong
88+
DECLARE_SOA_INDEX_COLUMN(Cascade, cascade); //! Index to cascade prong
89+
DECLARE_SOA_COLUMN(HFflag, hfflag, uint8_t); //! Bitmap to store selection results, o2-linter: disable=name/o2-column (written to disk)
90+
91+
DECLARE_SOA_COLUMN(FlagD0ToKPi, flagD0ToKPi, uint8_t); //!
92+
DECLARE_SOA_COLUMN(FlagJpsiToEE, flagJpsiToEE, uint8_t); //!
93+
DECLARE_SOA_COLUMN(FlagJpsiToMuMu, flagJpsiToMuMu, uint8_t); //!
94+
95+
DECLARE_SOA_COLUMN(FlagDplusToPiKPi, flagDplusToPiKPi, uint8_t); //!
96+
DECLARE_SOA_COLUMN(FlagLcToPKPi, flagLcToPKPi, uint8_t); //!
97+
DECLARE_SOA_COLUMN(FlagDsToKKPi, flagDsToKKPi, uint8_t); //!
98+
DECLARE_SOA_COLUMN(FlagXicToPKPi, flagXicToPKPi, uint8_t); //!
99+
100+
DECLARE_SOA_COLUMN(FlagDstarToD0Pi, flagDstarToD0Pi, uint8_t); //!
101+
102+
DECLARE_SOA_COLUMN(MlProbSkimD0ToKPi, mlProbSkimD0ToKPi, std::vector<float>); //! ML probabilities (background, prompt, non-prompt) for D0->Kpi
103+
DECLARE_SOA_COLUMN(MlProbSkimDplusToPiKPi, mlProbSkimDplusToPiKPi, std::vector<float>); //! ML probabilities (background, prompt, non-prompt) for D+->Kpipi
104+
DECLARE_SOA_COLUMN(MlProbSkimDsToKKPi, mlProbSkimDsToKKPi, std::vector<float>); //! ML probabilities (background, prompt, non-prompt) for Ds->KKpi
105+
DECLARE_SOA_COLUMN(MlProbSkimLcToPKPi, mlProbSkimLcToPKPi, std::vector<float>); //! ML probabilities (background, prompt, non-prompt) for Lc->pKpi
106+
DECLARE_SOA_COLUMN(MlProbSkimXicToPKPi, mlProbSkimXicToPKPi, std::vector<float>); //! ML probabilities (background, prompt, non-prompt) for Xic->pKpi
107+
} // namespace hf_track_index
108+
109+
DECLARE_SOA_TABLE(Hf2Prongs_000, "AOD", "HF2PRONG", //! Table for HF 2 prong candidates (Run 2 converted format)
110+
o2::soa::Index<>,
111+
hf_track_index::Prong0Id,
112+
hf_track_index::Prong1Id,
113+
hf_track_index::HFflag);
114+
115+
DECLARE_SOA_TABLE_VERSIONED(Hf2Prongs_001, "AOD", "HF2PRONG", 1, //! Table for HF 2 prong candidates (Run 3 format)
116+
o2::soa::Index<>,
117+
hf_track_index::CollisionId,
118+
hf_track_index::Prong0Id,
119+
hf_track_index::Prong1Id,
120+
hf_track_index::HFflag);
121+
122+
using Hf2Prongs = Hf2Prongs_001;
123+
using Hf2Prong = Hf2Prongs::iterator;
124+
125+
DECLARE_SOA_TABLE(HfCascades_000, "AOD", "HFCASCADE", //! Table for HF candidates with a V0 (Run 2 converted format)
126+
o2::soa::Index<>,
127+
hf_track_index::Prong0Id,
128+
hf_track_index::V0Id);
129+
130+
DECLARE_SOA_TABLE_VERSIONED(HfCascades_001, "AOD", "HFCASCADE", 1, //! Table for HF candidates with a V0 (Run 3 format)
131+
o2::soa::Index<>,
132+
hf_track_index::CollisionId,
133+
hf_track_index::Prong0Id,
134+
hf_track_index::V0Id);
135+
136+
using HfCascades = HfCascades_001;
137+
using HfCascade = HfCascades::iterator;
138+
139+
DECLARE_SOA_TABLE(Hf3Prongs_000, "AOD", "HF3PRONG", //! Table for HF 3 prong candidates (Run 2 converted format)
140+
o2::soa::Index<>,
141+
hf_track_index::Prong0Id,
142+
hf_track_index::Prong1Id,
143+
hf_track_index::Prong2Id,
144+
hf_track_index::HFflag);
145+
146+
DECLARE_SOA_TABLE_VERSIONED(Hf3Prongs_001, "AOD", "HF3PRONG", 1, //! Table for HF 3 prong candidates (Run 3 format)
147+
o2::soa::Index<>,
148+
hf_track_index::CollisionId,
149+
hf_track_index::Prong0Id,
150+
hf_track_index::Prong1Id,
151+
hf_track_index::Prong2Id,
152+
hf_track_index::HFflag);
153+
154+
using Hf3Prongs = Hf3Prongs_001;
155+
using Hf3Prong = Hf3Prongs::iterator;
156+
157+
DECLARE_SOA_TABLE(HfCascLf2Prongs, "AOD", "HFCASCLF2PRONG", //! Table for HF 2 prong candidates with a Cascade
158+
o2::soa::Index<>,
159+
hf_track_index::CollisionId,
160+
hf_track_index::CascadeId,
161+
hf_track_index::Prong0Id,
162+
hf_track_index::HFflag);
163+
using HfCascLf2Prong = HfCascLf2Prongs::iterator;
164+
165+
DECLARE_SOA_TABLE(HfCascLf3Prongs, "AOD", "HFCASCLF3PRONG", //! Table for HF 3 prong candidates with a Cascade
166+
o2::soa::Index<>,
167+
hf_track_index::CollisionId,
168+
hf_track_index::CascadeId,
169+
hf_track_index::Prong0Id,
170+
hf_track_index::Prong1Id);
171+
using HfCascLf3Prong = HfCascLf3Prongs::iterator;
172+
173+
namespace hf_track_index
174+
{
175+
DECLARE_SOA_INDEX_COLUMN_FULL(ProngD0, prongD0, int, Hf2Prongs, ""); //! Index to a D0 prong
176+
} // namespace hf_track_index
177+
178+
DECLARE_SOA_TABLE(HfDstars_000, "AOD", "HFDSTAR", //! D* -> D0pi candidates (Run 2 converted format)
179+
o2::soa::Index<>,
180+
hf_track_index::Prong0Id,
181+
hf_track_index::ProngD0Id);
182+
183+
DECLARE_SOA_TABLE_VERSIONED(HfDstars_001, "AOD", "HFDSTAR", 1, //! D* -> D0pi candidates (Run 3 format)
184+
o2::soa::Index<>,
185+
hf_track_index::CollisionId,
186+
hf_track_index::Prong0Id,
187+
hf_track_index::ProngD0Id);
188+
189+
using HfDstars = HfDstars_001;
190+
using HfDstar = HfDstars::iterator;
191+
192+
DECLARE_SOA_TABLE(HfCutStatus2Prong, "AOD", "HFCUTSTATUS2P", //!
193+
hf_track_index::FlagD0ToKPi,
194+
hf_track_index::FlagJpsiToEE,
195+
hf_track_index::FlagJpsiToMuMu);
196+
197+
DECLARE_SOA_TABLE(HfCutStatus3Prong, "AOD", "HFCUTSTATUS3P", //!
198+
hf_track_index::FlagDplusToPiKPi,
199+
hf_track_index::FlagLcToPKPi,
200+
hf_track_index::FlagDsToKKPi,
201+
hf_track_index::FlagXicToPKPi);
202+
203+
DECLARE_SOA_TABLE(HfCutStatusDstar, "AOD", "HFCUTSTATUSDST", //!
204+
hf_track_index::FlagDstarToD0Pi);
205+
206+
DECLARE_SOA_TABLE(Hf2ProngMlProbs, "AOD", "HF2PRONGMLPROB", //! Table for ML scores of HF 2 prong candidates
207+
hf_track_index::MlProbSkimD0ToKPi);
208+
209+
DECLARE_SOA_TABLE(Hf3ProngMlProbs, "AOD", "HF3PRONGMLPROB", //! Table for ML scores of HF 3 prong candidates
210+
hf_track_index::MlProbSkimDplusToPiKPi,
211+
hf_track_index::MlProbSkimLcToPKPi,
212+
hf_track_index::MlProbSkimDsToKKPi,
213+
hf_track_index::MlProbSkimXicToPKPi);
214+
215+
namespace hf_pv_refit
216+
{
217+
DECLARE_SOA_COLUMN(PvRefitX, pvRefitX, float); //!
218+
DECLARE_SOA_COLUMN(PvRefitY, pvRefitY, float); //!
219+
DECLARE_SOA_COLUMN(PvRefitZ, pvRefitZ, float); //!
220+
DECLARE_SOA_COLUMN(PvRefitSigmaX2, pvRefitSigmaX2, float); //!
221+
DECLARE_SOA_COLUMN(PvRefitSigmaXY, pvRefitSigmaXY, float); //!
222+
DECLARE_SOA_COLUMN(PvRefitSigmaY2, pvRefitSigmaY2, float); //!
223+
DECLARE_SOA_COLUMN(PvRefitSigmaXZ, pvRefitSigmaXZ, float); //!
224+
DECLARE_SOA_COLUMN(PvRefitSigmaYZ, pvRefitSigmaYZ, float); //!
225+
DECLARE_SOA_COLUMN(PvRefitSigmaZ2, pvRefitSigmaZ2, float); //!
226+
} // namespace hf_pv_refit
227+
228+
DECLARE_SOA_TABLE(HfPvRefit2Prong, "AOD", "HFPVREFIT2PRONG", //!
229+
hf_pv_refit::PvRefitX,
230+
hf_pv_refit::PvRefitY,
231+
hf_pv_refit::PvRefitZ,
232+
hf_pv_refit::PvRefitSigmaX2,
233+
hf_pv_refit::PvRefitSigmaXY,
234+
hf_pv_refit::PvRefitSigmaY2,
235+
hf_pv_refit::PvRefitSigmaXZ,
236+
hf_pv_refit::PvRefitSigmaYZ,
237+
hf_pv_refit::PvRefitSigmaZ2);
238+
239+
DECLARE_SOA_TABLE(HfPvRefit3Prong, "AOD", "HFPVREFIT3PRONG", //!
240+
hf_pv_refit::PvRefitX,
241+
hf_pv_refit::PvRefitY,
242+
hf_pv_refit::PvRefitZ,
243+
hf_pv_refit::PvRefitSigmaX2,
244+
hf_pv_refit::PvRefitSigmaXY,
245+
hf_pv_refit::PvRefitSigmaY2,
246+
hf_pv_refit::PvRefitSigmaXZ,
247+
hf_pv_refit::PvRefitSigmaYZ,
248+
hf_pv_refit::PvRefitSigmaZ2,
249+
o2::soa::Marker<1>);
250+
251+
DECLARE_SOA_TABLE(HfPvRefitDstar, "AOD", "HFPVREFITDSTAR", //!
252+
hf_pv_refit::PvRefitX,
253+
hf_pv_refit::PvRefitY,
254+
hf_pv_refit::PvRefitZ,
255+
hf_pv_refit::PvRefitSigmaX2,
256+
hf_pv_refit::PvRefitSigmaXY,
257+
hf_pv_refit::PvRefitSigmaY2,
258+
hf_pv_refit::PvRefitSigmaXZ,
259+
hf_pv_refit::PvRefitSigmaYZ,
260+
hf_pv_refit::PvRefitSigmaZ2,
261+
o2::soa::Marker<2>);
262+
} // namespace o2::aod
263+
264+
#endif // PWGHF_DATAMODEL_CANDIDATESKIMMINGTABLES_H_

0 commit comments

Comments
 (0)