Skip to content

Commit 475e8e5

Browse files
author
Sofia Tomassini
committed
Adding task for multiplicity camculation in femto analysis
1 parent ab94ead commit 475e8e5

3 files changed

Lines changed: 387 additions & 7 deletions

File tree

‎PWGCF/Femto3D/DataModel/PIDutils.h‎

Lines changed: 59 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ namespace o2::aod::singletrackselector
3333
namespace pidutils
3434
{
3535

36-
//========================================== SFINAE checks ==========================================
36+
//========================================== SFINAE checks for TPC ==========================================
3737

3838
template <typename T, typename = void>
3939
struct hasTPCPi : std::false_type {
@@ -77,6 +77,8 @@ template <typename T>
7777
struct hasTPCHe<T, std::void_t<o2::aod::pidutils::hasTPCHe<T>>> : std::true_type {
7878
};
7979

80+
//========================================== SFINAE checks for TOF ==========================================
81+
8082
template <typename T, typename = void>
8183
struct hasTOFPi : std::false_type {
8284
};
@@ -119,6 +121,50 @@ template <typename T>
119121
struct hasTOFHe<T, std::void_t<o2::aod::pidutils::hasTOFHe<T>>> : std::true_type {
120122
};
121123

124+
//========================================== SFINAE checks for ITS ==========================================
125+
126+
template <typename T, typename = void>
127+
struct hasITSPi : std::false_type {
128+
};
129+
template <typename T>
130+
struct hasITSPi<T, std::void_t<decltype(std::declval<T&>().itsNSigmaPi())>> : std::true_type {
131+
};
132+
133+
template <typename T, typename = void>
134+
struct hasITSKa : std::false_type {
135+
};
136+
template <typename T>
137+
struct hasITSKa<T, std::void_t<decltype(std::declval<T&>().itsNSigmaKa())>> : std::true_type {
138+
};
139+
140+
template <typename T, typename = void>
141+
struct hasITSPr : std::false_type {
142+
};
143+
template <typename T>
144+
struct hasITSPr<T, std::void_t<decltype(std::declval<T&>().itsNSigmaPr())>> : std::true_type {
145+
};
146+
147+
template <typename T, typename = void>
148+
struct hasITSDe : std::false_type {
149+
};
150+
template <typename T>
151+
struct hasITSDe<T, std::void_t<decltype(std::declval<T&>().itsNSigmaDe())>> : std::true_type {
152+
};
153+
154+
template <typename T, typename = void>
155+
struct hasITSTr : std::false_type {
156+
};
157+
template <typename T>
158+
struct hasITSTr<T, std::void_t<decltype(std::declval<T&>().itsNSigmaTr())>> : std::true_type {
159+
};
160+
161+
template <typename T, typename = void>
162+
struct hasITSHe : std::false_type {
163+
};
164+
template <typename T>
165+
struct hasITSHe<T, std::void_t<decltype(std::declval<T&>().itsNSigmaHe())>> : std::true_type {
166+
};
167+
122168
} // namespace pidutils
123169

124170
//========================================== ITS PID ==========================================
@@ -128,17 +174,23 @@ inline float getITSNsigma(TrackType const& track, int const& PDG)
128174
{
129175
switch (PDG) {
130176
case 211:
131-
return track.itsNSigmaPi();
177+
if constexpr (o2::aod::singletrackselector::pidutils::hasITSPi<TrackType>::value)
178+
return track.itsNSigmaPi();
132179
case 321:
133-
return track.itsNSigmaKa();
180+
if constexpr (o2::aod::singletrackselector::pidutils::hasITSKa<TrackType>::value)
181+
return track.itsNSigmaKa();
134182
case 2212:
135-
return track.itsNSigmaPr();
183+
if constexpr (o2::aod::singletrackselector::pidutils::hasITSPr<TrackType>::value)
184+
return track.itsNSigmaPr();
136185
case 1000010020:
137-
return track.itsNSigmaDe();
186+
if constexpr (o2::aod::singletrackselector::pidutils::hasITSDe<TrackType>::value)
187+
return track.itsNSigmaDe();
138188
case 1000020030:
139-
return track.itsNSigmaHe();
189+
if constexpr (o2::aod::singletrackselector::pidutils::hasITSHe<TrackType>::value)
190+
return track.itsNSigmaHe();
140191
case 1000010030:
141-
return track.itsNSigmaTr();
192+
if constexpr (o2::aod::singletrackselector::pidutils::hasITSTr<TrackType>::value)
193+
return track.itsNSigmaTr();
142194
case 0:
143195
return -1000.0;
144196
default:

‎PWGCF/Femto3D/Tasks/CMakeLists.txt‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,3 +28,8 @@ o2physics_add_dpl_workflow(femto3d-pid-optimization
2828
SOURCES PIDoptimization.cxx
2929
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
3030
COMPONENT_NAME Analysis)
31+
32+
o2physics_add_dpl_workflow(femto3d-mult-estimator
33+
SOURCES multEstimator.cxx
34+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
35+
COMPONENT_NAME Analysis)

0 commit comments

Comments
 (0)