Skip to content

Commit 0982875

Browse files
committed
use concepts for V0- and Casc-argument functions
1 parent d7e453d commit 0982875

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

DPG/Tasks/TPC/tpcSkimsTableCreator.cxx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,9 @@
4747
#include <TRandom3.h>
4848

4949
#include <cmath>
50+
#include <concepts>
5051
#include <string>
52+
#include <type_traits>
5153
#include <utility>
5254
#include <vector>
5355

@@ -59,6 +61,12 @@ using namespace o2::track;
5961
using namespace o2::dataformats;
6062
using namespace o2::dpg_tpcskimstablecreator;
6163

64+
using V0sWithID = soa::Join<aod::V0Datas, aod::V0MapID, aod::V0TOFNSigmas>;
65+
using CascsWithID = soa::Join<aod::CascDatas, aod::CascMapID, aod::CascTOFNSigmas>;
66+
67+
template <typename T>
68+
concept V0OrCasc = std::same_as<T, V0sWithID::iterator> || std::same_as<T, CascsWithID::iterator>;
69+
6270
struct TreeWriterTpcV0 {
6371

6472
Produces<o2::aod::SkimmedTPCV0Tree> rowTPCTree;
@@ -144,8 +152,6 @@ struct TreeWriterTpcV0 {
144152
using TrksWithDEdxCorrection = soa::Join<Trks, aod::DEdxsCorrected>;
145153
using Colls = soa::Join<aod::Collisions, aod::Mults, aod::EvSels>;
146154
using MyBCTable = soa::Join<aod::BCsWithTimestamps, aod::BCTFinfoTable>;
147-
using V0sWithID = soa::Join<aod::V0Datas, aod::V0MapID, aod::V0TOFNSigmas>;
148-
using CascsWithID = soa::Join<aod::CascDatas, aod::CascMapID, aod::CascTOFNSigmas>;
149155
using TrksTmo = soa::Join<Trks, aod::TrackToTmo>;
150156
using TrksTmoWithDEdxCorrection = soa::Join<Trks, aod::DEdxsCorrected, aod::TrackToTmo>;
151157

@@ -379,35 +385,29 @@ struct TreeWriterTpcV0 {
379385
} /// fillSkimmedV0Table
380386

381387
/// Evaluate cosPA of v0 or casc
382-
template <typename V0Casc, typename CollisionType>
388+
template <V0OrCasc V0Casc, typename CollisionType>
383389
double getCosPA(V0Casc const& v0casc, CollisionType const& collision)
384390
{
385-
static_assert(std::is_same_v<V0Casc, V0sWithID::iterator> || std::is_same_v<V0Casc, CascsWithID::iterator>,
386-
"getCosPA() v0casc's type must be either V0sWithID::iterator or CascsWithID::iterator");
387391
if constexpr (std::is_same_v<V0Casc, V0sWithID::iterator>)
388392
return v0casc.v0cosPA();
389393
else
390394
return v0casc.casccosPA(collision.posX(), collision.posY(), collision.posZ());
391395
}
392396

393397
/// Evaluate radius of v0 or casc
394-
template <typename V0Casc>
398+
template <V0OrCasc V0Casc>
395399
double getRadius(V0Casc const& v0casc)
396400
{
397-
static_assert(std::is_same_v<V0Casc, V0sWithID::iterator> || std::is_same_v<V0Casc, CascsWithID::iterator>,
398-
"getRadius() v0casc's type must be either V0sWithID::iterator or CascsWithID::iterator");
399401
if constexpr (std::is_same_v<V0Casc, V0sWithID::iterator>)
400402
return v0casc.v0radius();
401403
else
402404
return v0casc.cascradius();
403405
}
404406

405407
/// Evaluate add id of v0 or casc
406-
template <typename V0Casc>
408+
template <V0OrCasc V0Casc>
407409
int getAddId(V0Casc const& v0casc)
408410
{
409-
static_assert(std::is_same_v<V0Casc, V0sWithID::iterator> || std::is_same_v<V0Casc, CascsWithID::iterator>,
410-
"getAddId() v0casc's type must be either V0sWithID::iterator or CascsWithID::iterator");
411411
if constexpr (std::is_same_v<V0Casc, V0sWithID::iterator>)
412412
return v0casc.v0addid();
413413
else

0 commit comments

Comments
 (0)