Skip to content

Commit 248931f

Browse files
authored
[PWGCF] Update femto framework (#13568)
1 parent 0fb1d55 commit 248931f

30 files changed

+1364
-751
lines changed

PWGCF/Femto/Core/baseSelection.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class BaseSelection
4747
{
4848
public:
4949
/// \brief Default constructor.
50-
BaseSelection() {}
50+
BaseSelection() = default;
5151

5252
/// \brief Destructor
5353
virtual ~BaseSelection() = default;

PWGCF/Femto/Core/cascadeBuilder.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,8 +171,8 @@ template <modes::Cascade cascadeType>
171171
class CascadeSelection : public BaseSelection<float, o2::aod::femtodatatypes::CascadeMaskType, kCascadeSelsMax>
172172
{
173173
public:
174-
CascadeSelection() {}
175-
virtual ~CascadeSelection() = default;
174+
CascadeSelection() = default;
175+
~CascadeSelection() = default;
176176

177177
template <typename T1, typename T2>
178178
void configure(T1 const& config, T2 const& filter)
@@ -331,8 +331,8 @@ template <modes::Cascade cascadeType>
331331
class CascadeBuilder
332332
{
333333
public:
334-
CascadeBuilder() {}
335-
virtual ~CascadeBuilder() = default;
334+
CascadeBuilder() = default;
335+
~CascadeBuilder() = default;
336336

337337
template <typename T1, typename T2, typename T3, typename T4>
338338
void init(T1& config, T2& filter, T3& table, T4& initContext)

PWGCF/Femto/Core/cascadeHistManager.h

Lines changed: 100 additions & 53 deletions
Large diffs are not rendered by default.

PWGCF/Femto/Core/closePairRejection.h

Lines changed: 278 additions & 87 deletions
Large diffs are not rendered by default.

PWGCF/Femto/Core/collisionBuilder.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ class CollisionSelection : public BaseSelection<float, o2::aod::femtodatatypes::
166166
{
167167
public:
168168
CollisionSelection() = default;
169-
virtual ~CollisionSelection() = default;
169+
~CollisionSelection() = default;
170170

171171
template <typename T1, typename T2>
172172
void configure(T1 const& filter, T2 const& config)
@@ -348,8 +348,8 @@ struct ConfCollisionTables : o2::framework::ConfigurableGroup {
348348
class CollisionBuilder
349349
{
350350
public:
351-
CollisionBuilder() {}
352-
virtual ~CollisionBuilder() = default;
351+
CollisionBuilder() = default;
352+
~CollisionBuilder() = default;
353353

354354
template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
355355
void init(T1& confFilter, T2& confBits, T3& confRct, T4& confCcdb, T5& confTable, T6& initContext)
@@ -505,7 +505,7 @@ class CollisionBuilderDerivedToDerived
505505
{
506506
public:
507507
CollisionBuilderDerivedToDerived() = default;
508-
virtual ~CollisionBuilderDerivedToDerived() = default;
508+
~CollisionBuilderDerivedToDerived() = default;
509509

510510
template <typename T1, typename T2>
511511
void processCollision(T1& col, T2& newCollisionTable)

PWGCF/Femto/Core/collisionHistManager.h

Lines changed: 70 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ struct ConfCollisionBinning : o2::framework::ConfigurableGroup {
115115

116116
struct ConfCollisionQaBinning : o2::framework::ConfigurableGroup {
117117
std::string prefix = std::string("CollisionQaBinning");
118+
o2::framework::Configurable<bool> plot2d{"plot2d", true, "Enable 2d QA histograms"};
118119
o2::framework::ConfigurableAxis vtx{"vtx", {120, 0.f, 12.f}, "Vertex position binning"};
119120
o2::framework::ConfigurableAxis vtxXY{"vtxXY", {100, -1.f, 1.f}, "Vertex X/Y binning"};
120121
o2::framework::ConfigurableAxis sphericity{"sphericity", {100, 0.f, 1.f}, "Spericity Binning"};
@@ -126,52 +127,89 @@ class CollisionHistManager
126127
{
127128
public:
128129
CollisionHistManager() = default;
129-
virtual ~CollisionHistManager() = default;
130+
~CollisionHistManager() = default;
130131
/// Initializes histograms for the task
131132
/// \param registry Histogram registry to be passed
132-
void init(o2::framework::HistogramRegistry* registry, std::map<ColHist, std::vector<o2::framework::AxisSpec>> Specs)
133+
void init(o2::framework::HistogramRegistry* registry, std::map<ColHist, std::vector<o2::framework::AxisSpec>> const& Specs)
133134
{
134135
mHistogramRegistry = registry;
135136
if constexpr (isFlagSet(mode, modes::Mode::kAnalysis)) {
136-
std::string analysisDir = std::string(ColAnalysisDir);
137-
mHistogramRegistry->add(analysisDir + getHistNameV2(kPosZ, HistTable), getHistDesc(kPosZ, HistTable), getHistType(kPosZ, HistTable), {Specs[kPosZ]});
138-
mHistogramRegistry->add(analysisDir + getHistNameV2(kMult, HistTable), getHistDesc(kMult, HistTable), getHistType(kMult, HistTable), {Specs[kMult]});
139-
mHistogramRegistry->add(analysisDir + getHistNameV2(kCent, HistTable), getHistDesc(kCent, HistTable), getHistType(kCent, HistTable), {Specs[kCent]});
140-
mHistogramRegistry->add(analysisDir + getHistNameV2(kMagField, HistTable), getHistDesc(kMagField, HistTable), getHistType(kMagField, HistTable), {Specs[kMagField]});
137+
initAnalysis(Specs);
141138
}
142-
143139
if constexpr (isFlagSet(mode, modes::Mode::kQa)) {
144-
std::string qaDir = std::string(ColQaDir);
145-
146-
mHistogramRegistry->add(qaDir + getHistNameV2(kPosX, HistTable), getHistDesc(kPosX, HistTable), getHistType(kPosX, HistTable), {Specs[kPosX]});
147-
mHistogramRegistry->add(qaDir + getHistNameV2(kPosY, HistTable), getHistDesc(kPosY, HistTable), getHistType(kPosY, HistTable), {Specs[kPosY]});
148-
mHistogramRegistry->add(qaDir + getHistNameV2(kPos, HistTable), getHistDesc(kPos, HistTable), getHistType(kPos, HistTable), {Specs[kPos]});
149-
mHistogramRegistry->add(qaDir + getHistNameV2(kSphericity, HistTable), getHistDesc(kSphericity, HistTable), getHistType(kSphericity, HistTable), {Specs[kSphericity]});
150-
mHistogramRegistry->add(qaDir + getHistNameV2(kOccupancy, HistTable), getHistDesc(kOccupancy, HistTable), getHistType(kOccupancy, HistTable), {Specs[kOccupancy]});
151-
mHistogramRegistry->add(qaDir + getHistNameV2(kPoszVsMult, HistTable), getHistDesc(kPoszVsMult, HistTable), getHistType(kPoszVsMult, HistTable), {Specs[kPoszVsMult]});
152-
mHistogramRegistry->add(qaDir + getHistNameV2(kPoszVsCent, HistTable), getHistDesc(kPoszVsCent, HistTable), getHistType(kPoszVsCent, HistTable), {Specs[kPoszVsCent]});
153-
mHistogramRegistry->add(qaDir + getHistNameV2(kCentVsMult, HistTable), getHistDesc(kCentVsMult, HistTable), getHistType(kCentVsMult, HistTable), {Specs[kCentVsMult]});
154-
mHistogramRegistry->add(qaDir + getHistNameV2(kMultVsSphericity, HistTable), getHistDesc(kMultVsSphericity, HistTable), getHistType(kMultVsSphericity, HistTable), {Specs[kMultVsSphericity]});
155-
mHistogramRegistry->add(qaDir + getHistNameV2(kCentVsSphericity, HistTable), getHistDesc(kCentVsSphericity, HistTable), getHistType(kCentVsSphericity, HistTable), {Specs[kCentVsSphericity]});
140+
initQa(Specs);
156141
}
157-
} // namespace o2::analysis::femtounited
142+
}
143+
144+
template <typename T>
145+
void enableOptionalHistograms(T const& ConfBinningQa)
146+
{
147+
mPlot2d = ConfBinningQa.plot2d.value;
148+
}
149+
150+
template <typename T>
151+
void init(o2::framework::HistogramRegistry* registry, std::map<ColHist, std::vector<o2::framework::AxisSpec>> const& Specs, T const& ConfBinningQa)
152+
{
153+
enableOptionalHistograms(ConfBinningQa);
154+
init(registry, Specs);
155+
}
158156

159157
template <typename T>
160158
void fill(T const& col)
161159
{
162160
if constexpr (isFlagSet(mode, modes::Mode::kAnalysis)) {
163-
mHistogramRegistry->fill(HIST(ColAnalysisDir) + HIST(getHistName(kPosZ, HistTable)), col.posZ());
164-
mHistogramRegistry->fill(HIST(ColAnalysisDir) + HIST(getHistName(kMult, HistTable)), col.mult());
165-
mHistogramRegistry->fill(HIST(ColAnalysisDir) + HIST(getHistName(kCent, HistTable)), col.cent());
166-
mHistogramRegistry->fill(HIST(ColAnalysisDir) + HIST(getHistName(kMagField, HistTable)), col.magField());
161+
fillAnalysis(col);
167162
}
168-
169163
if constexpr (isFlagSet(mode, modes::Mode::kQa)) {
170-
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kPosX, HistTable)), col.posX());
171-
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kPosY, HistTable)), col.posY());
172-
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kPos, HistTable)), std::hypot(col.posX(), col.posY(), col.posZ()));
173-
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kSphericity, HistTable)), col.sphericity());
174-
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kOccupancy, HistTable)), col.trackOccupancyInTimeRange());
164+
fillQa(col);
165+
}
166+
}
167+
168+
private:
169+
void initAnalysis(std::map<ColHist, std::vector<o2::framework::AxisSpec>> const& Specs)
170+
{
171+
std::string analysisDir = std::string(ColAnalysisDir);
172+
mHistogramRegistry->add(analysisDir + getHistNameV2(kPosZ, HistTable), getHistDesc(kPosZ, HistTable), getHistType(kPosZ, HistTable), {Specs.at(kPosZ)});
173+
mHistogramRegistry->add(analysisDir + getHistNameV2(kMult, HistTable), getHistDesc(kMult, HistTable), getHistType(kMult, HistTable), {Specs.at(kMult)});
174+
mHistogramRegistry->add(analysisDir + getHistNameV2(kCent, HistTable), getHistDesc(kCent, HistTable), getHistType(kCent, HistTable), {Specs.at(kCent)});
175+
mHistogramRegistry->add(analysisDir + getHistNameV2(kMagField, HistTable), getHistDesc(kMagField, HistTable), getHistType(kMagField, HistTable), {Specs.at(kMagField)});
176+
}
177+
178+
void initQa(std::map<ColHist, std::vector<o2::framework::AxisSpec>> const& Specs)
179+
{
180+
std::string qaDir = std::string(ColQaDir);
181+
mHistogramRegistry->add(qaDir + getHistNameV2(kPosX, HistTable), getHistDesc(kPosX, HistTable), getHistType(kPosX, HistTable), {Specs.at(kPosX)});
182+
mHistogramRegistry->add(qaDir + getHistNameV2(kPosY, HistTable), getHistDesc(kPosY, HistTable), getHistType(kPosY, HistTable), {Specs.at(kPosY)});
183+
mHistogramRegistry->add(qaDir + getHistNameV2(kPos, HistTable), getHistDesc(kPos, HistTable), getHistType(kPos, HistTable), {Specs.at(kPos)});
184+
mHistogramRegistry->add(qaDir + getHistNameV2(kSphericity, HistTable), getHistDesc(kSphericity, HistTable), getHistType(kSphericity, HistTable), {Specs.at(kSphericity)});
185+
mHistogramRegistry->add(qaDir + getHistNameV2(kOccupancy, HistTable), getHistDesc(kOccupancy, HistTable), getHistType(kOccupancy, HistTable), {Specs.at(kOccupancy)});
186+
if (mPlot2d) {
187+
mHistogramRegistry->add(qaDir + getHistNameV2(kPoszVsMult, HistTable), getHistDesc(kPoszVsMult, HistTable), getHistType(kPoszVsMult, HistTable), {Specs.at(kPoszVsMult)});
188+
mHistogramRegistry->add(qaDir + getHistNameV2(kPoszVsCent, HistTable), getHistDesc(kPoszVsCent, HistTable), getHistType(kPoszVsCent, HistTable), {Specs.at(kPoszVsCent)});
189+
mHistogramRegistry->add(qaDir + getHistNameV2(kCentVsMult, HistTable), getHistDesc(kCentVsMult, HistTable), getHistType(kCentVsMult, HistTable), {Specs.at(kCentVsMult)});
190+
mHistogramRegistry->add(qaDir + getHistNameV2(kMultVsSphericity, HistTable), getHistDesc(kMultVsSphericity, HistTable), getHistType(kMultVsSphericity, HistTable), {Specs.at(kMultVsSphericity)});
191+
mHistogramRegistry->add(qaDir + getHistNameV2(kCentVsSphericity, HistTable), getHistDesc(kCentVsSphericity, HistTable), getHistType(kCentVsSphericity, HistTable), {Specs.at(kCentVsSphericity)});
192+
}
193+
}
194+
195+
template <typename T>
196+
void fillAnalysis(T const& col)
197+
{
198+
mHistogramRegistry->fill(HIST(ColAnalysisDir) + HIST(getHistName(kPosZ, HistTable)), col.posZ());
199+
mHistogramRegistry->fill(HIST(ColAnalysisDir) + HIST(getHistName(kMult, HistTable)), col.mult());
200+
mHistogramRegistry->fill(HIST(ColAnalysisDir) + HIST(getHistName(kCent, HistTable)), col.cent());
201+
mHistogramRegistry->fill(HIST(ColAnalysisDir) + HIST(getHistName(kMagField, HistTable)), col.magField());
202+
}
203+
204+
template <typename T>
205+
void fillQa(T const& col)
206+
{
207+
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kPosX, HistTable)), col.posX());
208+
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kPosY, HistTable)), col.posY());
209+
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kPos, HistTable)), std::hypot(col.posX(), col.posY(), col.posZ()));
210+
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kSphericity, HistTable)), col.sphericity());
211+
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kOccupancy, HistTable)), col.trackOccupancyInTimeRange());
212+
if (mPlot2d) {
175213
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kPoszVsMult, HistTable)), col.posZ(), col.mult());
176214
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kPoszVsCent, HistTable)), col.posZ(), col.cent());
177215
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kCentVsMult, HistTable)), col.cent(), col.mult());
@@ -180,8 +218,8 @@ class CollisionHistManager
180218
}
181219
}
182220

183-
private:
184221
o2::framework::HistogramRegistry* mHistogramRegistry = nullptr;
222+
bool mPlot2d = true;
185223
}; // namespace femtounitedcolhistmanager
186224
}; // namespace colhistmanager
187225
}; // namespace o2::analysis::femto

PWGCF/Femto/Core/dataTypes.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ using CollisionTagType = uint64_t;
2929
using CollisionMaskType = uint16_t;
3030

3131
// datatypes for tracks
32-
using MomentumType = uint16_t;
32+
using MomentumType = uint8_t;
3333
using TrackMaskType = uint64_t;
3434
using TrackType = uint16_t;
3535

PWGCF/Femto/Core/kinkBuilder.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -148,8 +148,8 @@ template <modes::Kink kinkType>
148148
class KinkSelection : public BaseSelection<float, o2::aod::femtodatatypes::KinkMaskType, kKinkSelsMax>
149149
{
150150
public:
151-
KinkSelection() {}
152-
virtual ~KinkSelection() = default;
151+
KinkSelection() = default;
152+
~KinkSelection() = default;
153153

154154
template <typename T1, typename T2>
155155
void configure(T1& config, T2& filter)
@@ -304,8 +304,8 @@ template <modes::Kink kinkType>
304304
class KinkBuilder
305305
{
306306
public:
307-
KinkBuilder() {}
308-
virtual ~KinkBuilder() = default;
307+
KinkBuilder() = default;
308+
~KinkBuilder() = default;
309309

310310
template <typename T1, typename T2, typename T3, typename T4>
311311
void init(T1& config, T2& filter, T3& table, T4& initContext)

0 commit comments

Comments
 (0)