Skip to content

Commit 9741fc8

Browse files
authored
[PWGCF] Remove dynamic columns and checks of reassociated MFT tracks (#16464)
1 parent cf15f54 commit 9741fc8

3 files changed

Lines changed: 184 additions & 278 deletions

File tree

PWGCF/TwoParticleCorrelations/DataModel/LongRangeDerived.h

Lines changed: 49 additions & 184 deletions
Original file line numberDiff line numberDiff line change
@@ -142,90 +142,10 @@ using LRZdc = LRZdcs::iterator;
142142

143143
namespace lrcorrtrktable
144144
{
145-
146-
template <typename binningType>
147-
inline typename binningType::binned_t packInTable(const float& valueToBin)
148-
{
149-
if (valueToBin <= binningType::binned_min) {
150-
return binningType::underflowBin;
151-
} else if (valueToBin >= binningType::binned_max) {
152-
return binningType::overflowBin;
153-
} else {
154-
return static_cast<typename binningType::binned_t>((valueToBin - binningType::binned_min) / binningType::bin_width);
155-
}
156-
}
157-
158-
template <typename binningType>
159-
inline float unPack(const typename binningType::binned_t& b)
160-
{
161-
return binningType::bin_width * b + binningType::binned_min;
162-
}
163-
164-
template <typename binningType>
165-
inline typename binningType::binned_t packSymmetric(const float& valueToBin)
166-
{
167-
if (valueToBin <= binningType::binned_min) {
168-
return (binningType::underflowBin);
169-
} else if (valueToBin >= binningType::binned_max) {
170-
return (binningType::overflowBin);
171-
} else if (valueToBin >= 0) {
172-
return (static_cast<typename binningType::binned_t>((valueToBin * binningType::inv_bin_width) + 0.5f));
173-
} else {
174-
return (static_cast<typename binningType::binned_t>((valueToBin * binningType::inv_bin_width) - 0.5f));
175-
}
176-
}
177-
178-
template <typename binningType>
179-
inline float unPackSymmetric(const typename binningType::binned_t& b)
180-
{
181-
return binningType::bin_width * static_cast<float>(b);
182-
}
183-
184-
namespace binning
185-
{
186-
187-
template <std::pair<float, float> lim, typename binVariable = int8_t>
188-
struct binningParent {
189-
public:
190-
typedef binVariable binned_t;
191-
192-
// Reserve two bins: one for overflow and one for underflow
193-
static constexpr int nbins = (1 << (8 * sizeof(binned_t))) - 2;
194-
static constexpr binned_t overflowBin = nbins;
195-
static constexpr binned_t underflowBin = -1;
196-
static constexpr float binned_min = lim.first;
197-
static constexpr float binned_max = lim.second;
198-
static constexpr float binned_center = 0.5 * (binned_min + binned_max);
199-
static constexpr float bin_width = (binned_max - binned_min) / static_cast<float>(nbins);
200-
static constexpr float inv_bin_width = 1. / bin_width;
201-
static_assert(binned_min < binned_max, "Invalid binning range");
202-
static void print()
203-
{
204-
LOG(info) << "Binning: " << binned_min << " - " << binned_max << " with " << nbins << " bins, width = "
205-
<< bin_width << ". Overflow bin " << static_cast<int>(overflowBin) << " Underflow bin " << static_cast<int>(underflowBin);
206-
}
207-
};
208-
209-
using trkdca_v0 = binningParent<std::pair<float, float>(-2.0f, 2.0f), int8_t>;
210-
using trkphi_v0 = binningParent<std::pair<float, float>(0.0f, o2::constants::math::TwoPI), uint16_t>;
211-
using trkamp_v0 = binningParent<std::pair<float, float>(0.0f, 5000.0f), uint16_t>;
212-
using trkpt_v0 = binningParent<std::pair<float, float>(0.0f, 10.0f), uint8_t>;
213-
using trketa_v0 = binningParent<std::pair<float, float>(-5.0f, 5.0f), int16_t>;
214-
using trkchi2_v0 = binningParent<std::pair<float, float>(0.0f, 10.0f), int8_t>;
215-
216-
using trkdca = trkdca_v0;
217-
using trkchi2 = trkchi2_v0;
218-
using trkpt = trkpt_v0;
219-
using trketa = trketa_v0;
220-
using trkphi = trkphi_v0;
221-
using trkamp = trkamp_v0;
222-
223-
} // namespace binning
224-
225145
DECLARE_SOA_INDEX_COLUMN(LRCollision, lrCollision);
226146
DECLARE_SOA_INDEX_COLUMN(UpcLRCollision, upcLRCollision);
227147
DECLARE_SOA_COLUMN(ChannelID, channelID, uint8_t);
228-
DECLARE_SOA_COLUMN(AmplitudeStore, amplitudeStore, binning::trkamp::binned_t);
148+
DECLARE_SOA_COLUMN(Amplitude, amplitude, float);
229149
DECLARE_SOA_COLUMN(InvMass, invMass, float);
230150
DECLARE_SOA_COLUMN(IdPos, idPos, int64_t);
231151
DECLARE_SOA_COLUMN(IdNeg, idNeg, int64_t);
@@ -234,29 +154,12 @@ DECLARE_SOA_COLUMN(V0Type, v0Type, uint8_t);
234154
DECLARE_SOA_COLUMN(AmbDegree, ambDegree, uint8_t);
235155
DECLARE_SOA_COLUMN(TPCNClsFound, tpcNClsFound, uint8_t);
236156
DECLARE_SOA_COLUMN(TPCNClsCrossedRows, tpcNClsCrossedRows, uint8_t);
237-
DECLARE_SOA_COLUMN(TPCChi2NClStore, tpcChi2NClStore, binning::trkchi2::binned_t); //! Stored binned chi2
238-
DECLARE_SOA_COLUMN(DCAzStore, dcazStore, binning::trkdca::binned_t); //! Stored binned dcaz
239-
DECLARE_SOA_COLUMN(BestDCAxyStore, bestdcaxyStore, binning::trkdca::binned_t); //! Stored binned best dcaxy
240-
DECLARE_SOA_COLUMN(BestDCAzStore, bestdcazStore, binning::trkdca::binned_t); //! Stored binned best dcaz
241-
DECLARE_SOA_COLUMN(PtStore, ptStore, binning::trkpt::binned_t); //! Stored binned pt
242-
DECLARE_SOA_COLUMN(EtaStore, etaStore, binning::trketa::binned_t); //! Stored binned eta
243-
DECLARE_SOA_COLUMN(PhiStore, phiStore, binning::trkphi::binned_t); //! Stored binned phi
244-
DECLARE_SOA_DYNAMIC_COLUMN(TPCChi2NCl, tpcChi2NCl,
245-
[](binning::trkchi2::binned_t chi2_binned) -> float { return unPack<binning::trkchi2>(chi2_binned); });
246-
DECLARE_SOA_DYNAMIC_COLUMN(DCAz, dcaZ,
247-
[](binning::trkdca::binned_t dcaz_binned) -> float { return unPackSymmetric<binning::trkdca>(dcaz_binned); });
248-
DECLARE_SOA_DYNAMIC_COLUMN(Pt, pt,
249-
[](binning::trkpt::binned_t pt_binned) -> float { return unPack<binning::trkpt>(pt_binned); });
250-
DECLARE_SOA_DYNAMIC_COLUMN(Eta, eta,
251-
[](binning::trketa::binned_t eta_binned) -> float { return unPackSymmetric<binning::trketa>(eta_binned); });
252-
DECLARE_SOA_DYNAMIC_COLUMN(Phi, phi,
253-
[](binning::trkphi::binned_t phi_binned) -> float { return unPackSymmetric<binning::trkphi>(phi_binned); });
254-
DECLARE_SOA_DYNAMIC_COLUMN(BestDCAXY, bestDCAXY,
255-
[](binning::trkdca::binned_t bestdcaxy_binned) -> float { return unPackSymmetric<binning::trkdca>(bestdcaxy_binned); });
256-
DECLARE_SOA_DYNAMIC_COLUMN(BestDCAZ, bestDCAZ,
257-
[](binning::trkdca::binned_t bestdcaz_binned) -> float { return unPackSymmetric<binning::trkdca>(bestdcaz_binned); });
258-
DECLARE_SOA_DYNAMIC_COLUMN(Amplitude, amplitude,
259-
[](binning::trkamp::binned_t amp_binned) -> float { return unPack<binning::trkamp>(amp_binned); });
157+
DECLARE_SOA_COLUMN(TPCChi2NCl, tpcChi2NCl, float);
158+
DECLARE_SOA_COLUMN(DcaZ, dcaZ, float);
159+
DECLARE_SOA_COLUMN(Pt, pt, float);
160+
DECLARE_SOA_COLUMN(Eta, eta, float);
161+
DECLARE_SOA_COLUMN(Phi, phi, float);
162+
260163
enum TrackPid {
261164
kSpCharge,
262165
kSpPion,
@@ -276,147 +179,109 @@ DECLARE_SOA_TABLE(LRMidTracks, "AOD", "LRMIDTRACK",
276179
lrcorrtrktable::LRCollisionId,
277180
lrcorrtrktable::TPCNClsFound,
278181
lrcorrtrktable::TPCNClsCrossedRows,
279-
lrcorrtrktable::TPCChi2NClStore,
280-
lrcorrtrktable::PtStore,
281-
lrcorrtrktable::EtaStore,
282-
lrcorrtrktable::PhiStore,
283-
lrcorrtrktable::DCAzStore,
284-
lrcorrtrktable::TrackType,
285-
lrcorrtrktable::TPCChi2NCl<lrcorrtrktable::TPCChi2NClStore>,
286-
lrcorrtrktable::Pt<lrcorrtrktable::PtStore>,
287-
lrcorrtrktable::Eta<lrcorrtrktable::EtaStore>,
288-
lrcorrtrktable::Phi<lrcorrtrktable::PhiStore>,
289-
lrcorrtrktable::DCAz<lrcorrtrktable::DCAzStore>);
182+
lrcorrtrktable::TPCChi2NCl,
183+
lrcorrtrktable::Pt,
184+
lrcorrtrktable::Eta,
185+
lrcorrtrktable::Phi,
186+
lrcorrtrktable::DcaZ,
187+
lrcorrtrktable::TrackType);
290188
using LRMidTrack = LRMidTracks::iterator;
291189

292190
DECLARE_SOA_TABLE(LRFt0aTracks, "AOD", "LRFT0ATRACK",
293191
o2::soa::Index<>,
294192
lrcorrtrktable::LRCollisionId,
295193
lrcorrtrktable::ChannelID,
296-
lrcorrtrktable::AmplitudeStore,
297-
lrcorrtrktable::EtaStore,
298-
lrcorrtrktable::PhiStore,
299-
lrcorrtrktable::Amplitude<lrcorrtrktable::AmplitudeStore>,
300-
lrcorrtrktable::Eta<lrcorrtrktable::EtaStore>,
301-
lrcorrtrktable::Phi<lrcorrtrktable::PhiStore>);
194+
lrcorrtrktable::Amplitude,
195+
lrcorrtrktable::Eta,
196+
lrcorrtrktable::Phi);
302197
using LRFt0aTrack = LRFt0aTracks::iterator;
303198

304199
DECLARE_SOA_TABLE(LRFt0cTracks, "AOD", "LRFT0CTRACK",
305200
o2::soa::Index<>,
306201
lrcorrtrktable::LRCollisionId,
307202
lrcorrtrktable::ChannelID,
308-
lrcorrtrktable::AmplitudeStore,
309-
lrcorrtrktable::EtaStore,
310-
lrcorrtrktable::PhiStore,
311-
lrcorrtrktable::Amplitude<lrcorrtrktable::AmplitudeStore>,
312-
lrcorrtrktable::Eta<lrcorrtrktable::EtaStore>,
313-
lrcorrtrktable::Phi<lrcorrtrktable::PhiStore>);
203+
lrcorrtrktable::Amplitude,
204+
lrcorrtrktable::Eta,
205+
lrcorrtrktable::Phi);
314206
using LRFt0cTrack = LRFt0cTracks::iterator;
315207

316208
DECLARE_SOA_TABLE(LRV0Tracks, "AOD", "LRV0TRACK",
317209
o2::soa::Index<>,
318210
lrcorrtrktable::LRCollisionId,
319211
lrcorrtrktable::IdPos,
320212
lrcorrtrktable::IdNeg,
321-
lrcorrtrktable::PtStore,
322-
lrcorrtrktable::EtaStore,
323-
lrcorrtrktable::PhiStore,
213+
lrcorrtrktable::Pt,
214+
lrcorrtrktable::Eta,
215+
lrcorrtrktable::Phi,
324216
lrcorrtrktable::InvMass,
325-
lrcorrtrktable::V0Type,
326-
lrcorrtrktable::Pt<lrcorrtrktable::PtStore>,
327-
lrcorrtrktable::Eta<lrcorrtrktable::EtaStore>,
328-
lrcorrtrktable::Phi<lrcorrtrktable::PhiStore>);
217+
lrcorrtrktable::V0Type);
329218
using LRV0Track = LRV0Tracks::iterator;
330219

331220
DECLARE_SOA_TABLE(LRMftTracks, "AOD", "LRMFTTRACK",
332221
o2::soa::Index<>,
333222
lrcorrtrktable::LRCollisionId,
334223
lrcorrtrktable::AmbDegree,
335-
lrcorrtrktable::PtStore,
336-
lrcorrtrktable::EtaStore,
337-
lrcorrtrktable::PhiStore,
224+
lrcorrtrktable::Pt,
225+
lrcorrtrktable::Eta,
226+
lrcorrtrktable::Phi,
338227
fwdtrack::NClusters,
339-
lrcorrtrktable::BestDCAxyStore,
340-
lrcorrtrktable::BestDCAzStore,
341-
lrcorrtrktable::BestDCAXY<lrcorrtrktable::BestDCAxyStore>,
342-
lrcorrtrktable::BestDCAZ<lrcorrtrktable::BestDCAzStore>,
343-
lrcorrtrktable::Pt<lrcorrtrktable::PtStore>,
344-
lrcorrtrktable::Eta<lrcorrtrktable::EtaStore>,
345-
lrcorrtrktable::Phi<lrcorrtrktable::PhiStore>);
228+
fwdtrack::BestDCAXY,
229+
fwdtrack::BestDCAZ);
346230
using LRMftTrack = LRMftTracks::iterator;
347231

348232
DECLARE_SOA_TABLE(UpcLRMidTracks, "AOD", "UPCLRMIDTRACK",
349233
o2::soa::Index<>,
350234
lrcorrtrktable::UpcLRCollisionId,
351235
lrcorrtrktable::TPCNClsFound,
352236
lrcorrtrktable::TPCNClsCrossedRows,
353-
lrcorrtrktable::TPCChi2NClStore,
354-
lrcorrtrktable::PtStore,
355-
lrcorrtrktable::EtaStore,
356-
lrcorrtrktable::PhiStore,
357-
lrcorrtrktable::DCAzStore,
358-
lrcorrtrktable::TrackType,
359-
lrcorrtrktable::TPCChi2NCl<lrcorrtrktable::TPCChi2NClStore>,
360-
lrcorrtrktable::Pt<lrcorrtrktable::PtStore>,
361-
lrcorrtrktable::Eta<lrcorrtrktable::EtaStore>,
362-
lrcorrtrktable::Phi<lrcorrtrktable::PhiStore>,
363-
lrcorrtrktable::DCAz<lrcorrtrktable::DCAzStore>);
237+
lrcorrtrktable::TPCChi2NCl,
238+
lrcorrtrktable::Pt,
239+
lrcorrtrktable::Eta,
240+
lrcorrtrktable::Phi,
241+
lrcorrtrktable::DcaZ,
242+
lrcorrtrktable::TrackType);
364243
using UpcLRMidTrack = UpcLRMidTracks::iterator;
365244

366245
DECLARE_SOA_TABLE(UpcLRFt0aTracks, "AOD", "UPCLRFT0ATRACK",
367246
o2::soa::Index<>,
368247
lrcorrtrktable::UpcLRCollisionId,
369248
lrcorrtrktable::ChannelID,
370-
lrcorrtrktable::AmplitudeStore,
371-
lrcorrtrktable::EtaStore,
372-
lrcorrtrktable::PhiStore,
373-
lrcorrtrktable::Amplitude<lrcorrtrktable::AmplitudeStore>,
374-
lrcorrtrktable::Eta<lrcorrtrktable::EtaStore>,
375-
lrcorrtrktable::Phi<lrcorrtrktable::PhiStore>);
249+
lrcorrtrktable::Amplitude,
250+
lrcorrtrktable::Eta,
251+
lrcorrtrktable::Phi);
376252
using UpcLRFt0aTrack = UpcLRFt0aTracks::iterator;
377253

378254
DECLARE_SOA_TABLE(UpcLRFt0cTracks, "AOD", "UPCLRFT0CTRACK",
379255
o2::soa::Index<>,
380256
lrcorrtrktable::UpcLRCollisionId,
381257
lrcorrtrktable::ChannelID,
382-
lrcorrtrktable::AmplitudeStore,
383-
lrcorrtrktable::EtaStore,
384-
lrcorrtrktable::PhiStore,
385-
lrcorrtrktable::Amplitude<lrcorrtrktable::AmplitudeStore>,
386-
lrcorrtrktable::Eta<lrcorrtrktable::EtaStore>,
387-
lrcorrtrktable::Phi<lrcorrtrktable::PhiStore>);
258+
lrcorrtrktable::Amplitude,
259+
lrcorrtrktable::Eta,
260+
lrcorrtrktable::Phi);
388261
using UpcLRFt0cTrack = UpcLRFt0cTracks::iterator;
389262

390263
DECLARE_SOA_TABLE(UpcLRV0Tracks, "AOD", "UPCLRV0TRACK",
391264
o2::soa::Index<>,
392265
lrcorrtrktable::UpcLRCollisionId,
393266
lrcorrtrktable::IdPos,
394267
lrcorrtrktable::IdNeg,
395-
lrcorrtrktable::PtStore,
396-
lrcorrtrktable::EtaStore,
397-
lrcorrtrktable::PhiStore,
268+
lrcorrtrktable::Pt,
269+
lrcorrtrktable::Eta,
270+
lrcorrtrktable::Phi,
398271
lrcorrtrktable::InvMass,
399-
lrcorrtrktable::V0Type,
400-
lrcorrtrktable::Pt<lrcorrtrktable::PtStore>,
401-
lrcorrtrktable::Eta<lrcorrtrktable::EtaStore>,
402-
lrcorrtrktable::Phi<lrcorrtrktable::PhiStore>);
272+
lrcorrtrktable::V0Type);
403273
using UpcLRV0Track = UpcLRV0Tracks::iterator;
404274

405275
DECLARE_SOA_TABLE(UpcLRMftTracks, "AOD", "UPCLRMFTTRACK",
406276
o2::soa::Index<>,
407277
lrcorrtrktable::UpcLRCollisionId,
408278
lrcorrtrktable::AmbDegree,
409-
lrcorrtrktable::PtStore,
410-
lrcorrtrktable::EtaStore,
411-
lrcorrtrktable::PhiStore,
279+
lrcorrtrktable::Pt,
280+
lrcorrtrktable::Eta,
281+
lrcorrtrktable::Phi,
412282
fwdtrack::NClusters,
413-
lrcorrtrktable::BestDCAxyStore,
414-
lrcorrtrktable::BestDCAzStore,
415-
lrcorrtrktable::BestDCAXY<lrcorrtrktable::BestDCAxyStore>,
416-
lrcorrtrktable::BestDCAZ<lrcorrtrktable::BestDCAzStore>,
417-
lrcorrtrktable::Pt<lrcorrtrktable::PtStore>,
418-
lrcorrtrktable::Eta<lrcorrtrktable::EtaStore>,
419-
lrcorrtrktable::Phi<lrcorrtrktable::PhiStore>);
283+
fwdtrack::BestDCAXY,
284+
fwdtrack::BestDCAZ);
420285
using UpcLRMftTrack = UpcLRMftTracks::iterator;
421286
} // namespace o2::aod
422287

0 commit comments

Comments
 (0)