Skip to content

Commit 4f2d29c

Browse files
committed
Add strangeness tof pid to a3 cascade finding
1 parent 9a9b82c commit 4f2d29c

5 files changed

Lines changed: 1330 additions & 2 deletions

File tree

ALICE3/DataModel/OTFStrangeness.h

Lines changed: 221 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,12 @@
2727
#include <array>
2828
#include <cmath>
2929

30+
namespace o2::upgrade::pid
31+
{
32+
static constexpr float NoPidSignal = -999.f;
33+
static constexpr float NoPidSignalThreshold = -990.f;
34+
} // namespace o2::upgrade::pid
35+
3036
namespace o2::aod
3137
{
3238
namespace otfcascade
@@ -75,6 +81,221 @@ using UpgradeCascade = UpgradeCascades::iterator;
7581
DECLARE_SOA_TABLE(A3CascadeMcLabels, "AOD", "A3CASCADEMCLABELS",
7682
o2::soa::Index<>, otfcascade::McParticleId);
7783

84+
namespace casc_pid
85+
{
86+
87+
// Xi
88+
DECLARE_SOA_COLUMN(NSigmaInnerTofXiBachPi, nSigmaInnerTofXiBachPi, float);
89+
DECLARE_SOA_COLUMN(NSigmaInnerTofXiPosPr, nSigmaInnerTofXiPosPr, float);
90+
DECLARE_SOA_COLUMN(NSigmaInnerTofXiPosPi, nSigmaInnerTofXiPosPi, float);
91+
DECLARE_SOA_COLUMN(NSigmaInnerTofXiNegPr, nSigmaInnerTofXiNegPr, float);
92+
DECLARE_SOA_COLUMN(NSigmaInnerTofXiNegPi, nSigmaInnerTofXiNegPi, float);
93+
DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofXiBachPi, hasInnerTofXiBachPi,
94+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
95+
DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofXiPosPr, hasInnerTofXiPosPr,
96+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
97+
DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofXiPosPi, hasInnerTofXiPosPi,
98+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
99+
DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofXiNegPr, hasInnerTofXiNegPr,
100+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
101+
DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofXiNegPi, hasInnerTofXiNegPi,
102+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
103+
104+
DECLARE_SOA_COLUMN(NSigmaOuterTofXiBachPi, nSigmaOuterTofXiBachPi, float);
105+
DECLARE_SOA_COLUMN(NSigmaOuterTofXiPosPr, nSigmaOuterTofXiPosPr, float);
106+
DECLARE_SOA_COLUMN(NSigmaOuterTofXiPosPi, nSigmaOuterTofXiPosPi, float);
107+
DECLARE_SOA_COLUMN(NSigmaOuterTofXiNegPr, nSigmaOuterTofXiNegPr, float);
108+
DECLARE_SOA_COLUMN(NSigmaOuterTofXiNegPi, nSigmaOuterTofXiNegPi, float);
109+
DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofXiBachPi, hasOuterTofXiBachPi,
110+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
111+
DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofXiPosPr, hasOuterTofXiPosPr,
112+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
113+
DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofXiPosPi, hasOuterTofXiPosPi,
114+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
115+
DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofXiNegPr, hasOuterTofXiNegPr,
116+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
117+
DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofXiNegPi, hasOuterTofXiNegPi,
118+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
119+
120+
DECLARE_SOA_COLUMN(ExpectedInnerTofXiBachPi, expectedInnerTofXiBachPi, float);
121+
DECLARE_SOA_COLUMN(ExpectedInnerTofXiPosPr, expectedInnerTofXiPosPr, float);
122+
DECLARE_SOA_COLUMN(ExpectedInnerTofXiPosPi, expectedInnerTofXiPosPi, float);
123+
DECLARE_SOA_COLUMN(ExpectedInnerTofXiNegPr, expectedInnerTofXiNegPr, float);
124+
DECLARE_SOA_COLUMN(ExpectedInnerTofXiNegPi, expectedInnerTofXiNegPi, float);
125+
126+
DECLARE_SOA_COLUMN(ExpectedOuterTofXiBachPi, expectedOuterTofXiBachPi, float);
127+
DECLARE_SOA_COLUMN(ExpectedOuterTofXiPosPr, expectedOuterTofXiPosPr, float);
128+
DECLARE_SOA_COLUMN(ExpectedOuterTofXiPosPi, expectedOuterTofXiPosPi, float);
129+
DECLARE_SOA_COLUMN(ExpectedOuterTofXiNegPr, expectedOuterTofXiNegPr, float);
130+
DECLARE_SOA_COLUMN(ExpectedOuterTofXiNegPi, expectedOuterTofXiNegPi, float);
131+
132+
DECLARE_SOA_COLUMN(MeasuredInnerTofXiBachPi, measuredInnerTofXiBachPi, float);
133+
DECLARE_SOA_COLUMN(MeasuredInnerTofXiPosPr, measuredInnerTofXiPosPr, float);
134+
DECLARE_SOA_COLUMN(MeasuredInnerTofXiPosPi, measuredInnerTofXiPosPi, float);
135+
DECLARE_SOA_COLUMN(MeasuredInnerTofXiNegPr, measuredInnerTofXiNegPr, float);
136+
DECLARE_SOA_COLUMN(MeasuredInnerTofXiNegPi, measuredInnerTofXiNegPi, float);
137+
138+
DECLARE_SOA_COLUMN(MeasuredOuterTofXiBachPi, measuredOuterTofXiBachPi, float);
139+
DECLARE_SOA_COLUMN(MeasuredOuterTofXiPosPr, measuredOuterTofXiPosPr, float);
140+
DECLARE_SOA_COLUMN(MeasuredOuterTofXiPosPi, measuredOuterTofXiPosPi, float);
141+
DECLARE_SOA_COLUMN(MeasuredOuterTofXiNegPr, measuredOuterTofXiNegPr, float);
142+
DECLARE_SOA_COLUMN(MeasuredOuterTofXiNegPi, measuredOuterTofXiNegPi, float);
143+
144+
// Omega
145+
DECLARE_SOA_COLUMN(NSigmaInnerTofOmegaBachKa, nSigmaInnerTofOmegaBachKa, float);
146+
DECLARE_SOA_COLUMN(NSigmaInnerTofOmegaPosPr, nSigmaInnerTofOmegaPosPr, float);
147+
DECLARE_SOA_COLUMN(NSigmaInnerTofOmegaPosPi, nSigmaInnerTofOmegaPosPi, float);
148+
DECLARE_SOA_COLUMN(NSigmaInnerTofOmegaNegPr, nSigmaInnerTofOmegaNegPr, float);
149+
DECLARE_SOA_COLUMN(NSigmaInnerTofOmegaNegPi, nSigmaInnerTofOmegaNegPi, float);
150+
DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofOmegaBachKa, hasInnerTofOmegaBachKa,
151+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
152+
DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofOmegaPosPr, hasInnerTofOmegaPosPr,
153+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
154+
DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofOmegaPosPi, hasInnerTofOmegaPosPi,
155+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
156+
DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofOmegaNegPr, hasInnerTofOmegaNegPr,
157+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
158+
DECLARE_SOA_DYNAMIC_COLUMN(HasInnerTofOmegaNegPi, hasInnerTofOmegaNegPi,
159+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
160+
161+
DECLARE_SOA_COLUMN(NSigmaOuterTofOmegaBachKa, nSigmaOuterTofOmegaBachKa, float);
162+
DECLARE_SOA_COLUMN(NSigmaOuterTofOmegaPosPr, nSigmaOuterTofOmegaPosPr, float);
163+
DECLARE_SOA_COLUMN(NSigmaOuterTofOmegaPosPi, nSigmaOuterTofOmegaPosPi, float);
164+
DECLARE_SOA_COLUMN(NSigmaOuterTofOmegaNegPr, nSigmaOuterTofOmegaNegPr, float);
165+
DECLARE_SOA_COLUMN(NSigmaOuterTofOmegaNegPi, nSigmaOuterTofOmegaNegPi, float);
166+
DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofOmegaBachKa, hasOuterTofOmegaBachKa,
167+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
168+
DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofOmegaPosPr, hasOuterTofOmegaPosPr,
169+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
170+
DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofOmegaPosPi, hasOuterTofOmegaPosPi,
171+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
172+
DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofOmegaNegPr, hasOuterTofOmegaNegPr,
173+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
174+
DECLARE_SOA_DYNAMIC_COLUMN(HasOuterTofOmegaNegPi, hasOuterTofOmegaNegPi,
175+
[](float nSigma) -> bool { return (nSigma > o2::upgrade::pid::NoPidSignalThreshold); });
176+
177+
DECLARE_SOA_COLUMN(ExpectedInnerTofOmegaBachKa, expectedInnerTofOmegaBachKa, float);
178+
DECLARE_SOA_COLUMN(ExpectedInnerTofOmegaPosPr, expectedInnerTofOmegaPosPr, float);
179+
DECLARE_SOA_COLUMN(ExpectedInnerTofOmegaPosPi, expectedInnerTofOmegaPosPi, float);
180+
DECLARE_SOA_COLUMN(ExpectedInnerTofOmegaNegPr, expectedInnerTofOmegaNegPr, float);
181+
DECLARE_SOA_COLUMN(ExpectedInnerTofOmegaNegPi, expectedInnerTofOmegaNegPi, float);
182+
183+
DECLARE_SOA_COLUMN(ExpectedOuterTofOmegaBachKa, expectedOuterTofOmegaBachKa, float);
184+
DECLARE_SOA_COLUMN(ExpectedOuterTofOmegaPosPr, expectedOuterTofOmegaPosPr, float);
185+
DECLARE_SOA_COLUMN(ExpectedOuterTofOmegaPosPi, expectedOuterTofOmegaPosPi, float);
186+
DECLARE_SOA_COLUMN(ExpectedOuterTofOmegaNegPr, expectedOuterTofOmegaNegPr, float);
187+
DECLARE_SOA_COLUMN(ExpectedOuterTofOmegaNegPi, expectedOuterTofOmegaNegPi, float);
188+
189+
DECLARE_SOA_COLUMN(MeasuredInnerTofOmegaBachKa, measuredInnerTofOmegaBachKa, float);
190+
DECLARE_SOA_COLUMN(MeasuredInnerTofOmegaPosPr, measuredInnerTofOmegaPosPr, float);
191+
DECLARE_SOA_COLUMN(MeasuredInnerTofOmegaPosPi, measuredInnerTofOmegaPosPi, float);
192+
DECLARE_SOA_COLUMN(MeasuredInnerTofOmegaNegPr, measuredInnerTofOmegaNegPr, float);
193+
DECLARE_SOA_COLUMN(MeasuredInnerTofOmegaNegPi, measuredInnerTofOmegaNegPi, float);
194+
195+
DECLARE_SOA_COLUMN(MeasuredOuterTofOmegaBachKa, measuredOuterTofOmegaBachKa, float);
196+
DECLARE_SOA_COLUMN(MeasuredOuterTofOmegaPosPr, measuredOuterTofOmegaPosPr, float);
197+
DECLARE_SOA_COLUMN(MeasuredOuterTofOmegaPosPi, measuredOuterTofOmegaPosPi, float);
198+
DECLARE_SOA_COLUMN(MeasuredOuterTofOmegaNegPr, measuredOuterTofOmegaNegPr, float);
199+
DECLARE_SOA_COLUMN(MeasuredOuterTofOmegaNegPi, measuredOuterTofOmegaNegPi, float);
200+
201+
} // namespace casc_pid
202+
203+
DECLARE_SOA_TABLE(A3XiInnerTofPid, "AOD", "A3XIITOFPID",
204+
casc_pid::NSigmaInnerTofXiBachPi,
205+
casc_pid::NSigmaInnerTofXiPosPr,
206+
casc_pid::NSigmaInnerTofXiPosPi,
207+
casc_pid::NSigmaInnerTofXiNegPr,
208+
casc_pid::NSigmaInnerTofXiNegPi,
209+
casc_pid::HasInnerTofXiBachPi<casc_pid::NSigmaInnerTofXiBachPi>,
210+
casc_pid::HasInnerTofXiPosPr<casc_pid::NSigmaInnerTofXiPosPr>,
211+
casc_pid::HasInnerTofXiPosPi<casc_pid::NSigmaInnerTofXiPosPi>,
212+
casc_pid::HasInnerTofXiNegPr<casc_pid::NSigmaInnerTofXiNegPr>,
213+
casc_pid::HasInnerTofXiNegPi<casc_pid::NSigmaInnerTofXiNegPi>);
214+
215+
DECLARE_SOA_TABLE(A3XiOuterTofPid, "AOD", "A3XIOTOFPID",
216+
casc_pid::NSigmaOuterTofXiBachPi,
217+
casc_pid::NSigmaOuterTofXiPosPr,
218+
casc_pid::NSigmaOuterTofXiPosPi,
219+
casc_pid::NSigmaOuterTofXiNegPr,
220+
casc_pid::NSigmaOuterTofXiNegPi,
221+
casc_pid::HasOuterTofXiBachPi<casc_pid::NSigmaOuterTofXiBachPi>,
222+
casc_pid::HasOuterTofXiPosPr<casc_pid::NSigmaOuterTofXiPosPr>,
223+
casc_pid::HasOuterTofXiPosPi<casc_pid::NSigmaOuterTofXiPosPi>,
224+
casc_pid::HasOuterTofXiNegPr<casc_pid::NSigmaOuterTofXiNegPr>,
225+
casc_pid::HasOuterTofXiNegPi<casc_pid::NSigmaOuterTofXiNegPi>);
226+
227+
DECLARE_SOA_TABLE(A3OmegaInnerTofPid, "AOD", "A3OMITOFPID",
228+
casc_pid::NSigmaInnerTofOmegaBachKa,
229+
casc_pid::NSigmaInnerTofOmegaPosPr,
230+
casc_pid::NSigmaInnerTofOmegaPosPi,
231+
casc_pid::NSigmaInnerTofOmegaNegPr,
232+
casc_pid::NSigmaInnerTofOmegaNegPi,
233+
casc_pid::HasInnerTofOmegaBachKa<casc_pid::NSigmaInnerTofOmegaBachKa>,
234+
casc_pid::HasInnerTofOmegaPosPr<casc_pid::NSigmaInnerTofOmegaPosPr>,
235+
casc_pid::HasInnerTofOmegaPosPi<casc_pid::NSigmaInnerTofOmegaPosPi>,
236+
casc_pid::HasInnerTofOmegaNegPr<casc_pid::NSigmaInnerTofOmegaNegPr>,
237+
casc_pid::HasInnerTofOmegaNegPi<casc_pid::NSigmaInnerTofOmegaNegPi>);
238+
239+
DECLARE_SOA_TABLE(A3OmegaOuterTofPid, "AOD", "A3OMOTOFPID",
240+
casc_pid::NSigmaOuterTofOmegaBachKa,
241+
casc_pid::NSigmaOuterTofOmegaPosPr,
242+
casc_pid::NSigmaOuterTofOmegaPosPi,
243+
casc_pid::NSigmaOuterTofOmegaNegPr,
244+
casc_pid::NSigmaOuterTofOmegaNegPi,
245+
casc_pid::HasOuterTofOmegaBachKa<casc_pid::NSigmaOuterTofOmegaBachKa>,
246+
casc_pid::HasOuterTofOmegaPosPr<casc_pid::NSigmaOuterTofOmegaPosPr>,
247+
casc_pid::HasOuterTofOmegaPosPi<casc_pid::NSigmaOuterTofOmegaPosPi>,
248+
casc_pid::HasOuterTofOmegaNegPr<casc_pid::NSigmaOuterTofOmegaNegPr>,
249+
casc_pid::HasOuterTofOmegaNegPi<casc_pid::NSigmaOuterTofOmegaNegPi>);
250+
251+
DECLARE_SOA_TABLE(A3XiExpectedInnerTimes, "AOD", "A3XIITIMES",
252+
casc_pid::ExpectedInnerTofXiBachPi,
253+
casc_pid::ExpectedInnerTofXiPosPr,
254+
casc_pid::ExpectedInnerTofXiPosPi,
255+
casc_pid::ExpectedInnerTofXiNegPr,
256+
casc_pid::ExpectedInnerTofXiNegPi,
257+
casc_pid::MeasuredInnerTofXiBachPi,
258+
casc_pid::MeasuredInnerTofXiPosPr,
259+
casc_pid::MeasuredInnerTofXiPosPi,
260+
casc_pid::MeasuredInnerTofXiNegPr,
261+
casc_pid::MeasuredInnerTofXiNegPi);
262+
263+
DECLARE_SOA_TABLE(A3XiExpectedOuterTimes, "AOD", "A3XIOTIMES",
264+
casc_pid::ExpectedOuterTofXiBachPi,
265+
casc_pid::ExpectedOuterTofXiPosPr,
266+
casc_pid::ExpectedOuterTofXiPosPi,
267+
casc_pid::ExpectedOuterTofXiNegPr,
268+
casc_pid::ExpectedOuterTofXiNegPi,
269+
casc_pid::MeasuredOuterTofXiBachPi,
270+
casc_pid::MeasuredOuterTofXiPosPr,
271+
casc_pid::MeasuredOuterTofXiPosPi,
272+
casc_pid::MeasuredOuterTofXiNegPr,
273+
casc_pid::MeasuredOuterTofXiNegPi);
274+
275+
DECLARE_SOA_TABLE(A3OmegaExpectedInnerTimes, "AOD", "A3OMITIMES",
276+
casc_pid::ExpectedInnerTofOmegaBachKa,
277+
casc_pid::ExpectedInnerTofOmegaPosPr,
278+
casc_pid::ExpectedInnerTofOmegaPosPi,
279+
casc_pid::ExpectedInnerTofOmegaNegPr,
280+
casc_pid::ExpectedInnerTofOmegaNegPi,
281+
casc_pid::MeasuredInnerTofOmegaBachKa,
282+
casc_pid::MeasuredInnerTofOmegaPosPr,
283+
casc_pid::MeasuredInnerTofOmegaPosPi,
284+
casc_pid::MeasuredInnerTofOmegaNegPr,
285+
casc_pid::MeasuredInnerTofOmegaNegPi);
286+
287+
DECLARE_SOA_TABLE(A3OmegaExpectedOuterTimes, "AOD", "A3OMOTIMES",
288+
casc_pid::ExpectedOuterTofOmegaBachKa,
289+
casc_pid::ExpectedOuterTofOmegaPosPr,
290+
casc_pid::ExpectedOuterTofOmegaPosPi,
291+
casc_pid::ExpectedOuterTofOmegaNegPr,
292+
casc_pid::ExpectedOuterTofOmegaNegPi,
293+
casc_pid::MeasuredOuterTofOmegaBachKa,
294+
casc_pid::MeasuredOuterTofOmegaPosPr,
295+
casc_pid::MeasuredOuterTofOmegaPosPi,
296+
casc_pid::MeasuredOuterTofOmegaNegPr,
297+
casc_pid::MeasuredOuterTofOmegaNegPi);
298+
78299
namespace otfv0
79300
{
80301
DECLARE_SOA_INDEX_COLUMN(Collision, collision); //!

ALICE3/TableProducer/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,3 +70,8 @@ o2physics_add_dpl_workflow(alice3strangenessfinder
7070
SOURCES alice3strangenessFinder.cxx
7171
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::ALICE3Core
7272
COMPONENT_NAME Analysis)
73+
74+
o2physics_add_dpl_workflow(alice3-strangeness-tof-pid
75+
SOURCES alice3StrangenessTofPid.cxx
76+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::ALICE3Core
77+
COMPONENT_NAME Analysis)

0 commit comments

Comments
 (0)