@@ -142,90 +142,10 @@ using LRZdc = LRZdcs::iterator;
142142
143143namespace 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-
225145DECLARE_SOA_INDEX_COLUMN (LRCollision, lrCollision);
226146DECLARE_SOA_INDEX_COLUMN (UpcLRCollision, upcLRCollision);
227147DECLARE_SOA_COLUMN (ChannelID, channelID, uint8_t );
228- DECLARE_SOA_COLUMN (AmplitudeStore, amplitudeStore, binning::trkamp:: binned_t );
148+ DECLARE_SOA_COLUMN (Amplitude, amplitude, float );
229149DECLARE_SOA_COLUMN (InvMass, invMass, float );
230150DECLARE_SOA_COLUMN (IdPos, idPos, int64_t );
231151DECLARE_SOA_COLUMN (IdNeg, idNeg, int64_t );
@@ -234,29 +154,12 @@ DECLARE_SOA_COLUMN(V0Type, v0Type, uint8_t);
234154DECLARE_SOA_COLUMN (AmbDegree, ambDegree, uint8_t );
235155DECLARE_SOA_COLUMN (TPCNClsFound, tpcNClsFound, uint8_t );
236156DECLARE_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+
260163enum 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);
290188using LRMidTrack = LRMidTracks::iterator;
291189
292190DECLARE_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);
302197using LRFt0aTrack = LRFt0aTracks::iterator;
303198
304199DECLARE_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);
314206using LRFt0cTrack = LRFt0cTracks::iterator;
315207
316208DECLARE_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);
329218using LRV0Track = LRV0Tracks::iterator;
330219
331220DECLARE_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);
346230using LRMftTrack = LRMftTracks::iterator;
347231
348232DECLARE_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);
364243using UpcLRMidTrack = UpcLRMidTracks::iterator;
365244
366245DECLARE_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);
376252using UpcLRFt0aTrack = UpcLRFt0aTracks::iterator;
377253
378254DECLARE_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);
388261using UpcLRFt0cTrack = UpcLRFt0cTracks::iterator;
389262
390263DECLARE_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);
403273using UpcLRV0Track = UpcLRV0Tracks::iterator;
404274
405275DECLARE_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);
420285using UpcLRMftTrack = UpcLRMftTracks::iterator;
421286} // namespace o2::aod
422287
0 commit comments