Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion PWGCF/Femto/Core/baseSelection.h
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ class BaseSelection
{
public:
/// \brief Default constructor.
BaseSelection() {}
BaseSelection() = default;

/// \brief Destructor
virtual ~BaseSelection() = default;
Expand Down
8 changes: 4 additions & 4 deletions PWGCF/Femto/Core/cascadeBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -171,8 +171,8 @@ template <modes::Cascade cascadeType>
class CascadeSelection : public BaseSelection<float, o2::aod::femtodatatypes::CascadeMaskType, kCascadeSelsMax>
{
public:
CascadeSelection() {}
virtual ~CascadeSelection() = default;
CascadeSelection() = default;
~CascadeSelection() = default;

template <typename T1, typename T2>
void configure(T1 const& config, T2 const& filter)
Expand Down Expand Up @@ -331,8 +331,8 @@ template <modes::Cascade cascadeType>
class CascadeBuilder
{
public:
CascadeBuilder() {}
virtual ~CascadeBuilder() = default;
CascadeBuilder() = default;
~CascadeBuilder() = default;

template <typename T1, typename T2, typename T3, typename T4>
void init(T1& config, T2& filter, T3& table, T4& initContext)
Expand Down
153 changes: 100 additions & 53 deletions PWGCF/Femto/Core/cascadeHistManager.h

Large diffs are not rendered by default.

365 changes: 278 additions & 87 deletions PWGCF/Femto/Core/closePairRejection.h

Large diffs are not rendered by default.

8 changes: 4 additions & 4 deletions PWGCF/Femto/Core/collisionBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ class CollisionSelection : public BaseSelection<float, o2::aod::femtodatatypes::
{
public:
CollisionSelection() = default;
virtual ~CollisionSelection() = default;
~CollisionSelection() = default;

template <typename T1, typename T2>
void configure(T1 const& filter, T2 const& config)
Expand Down Expand Up @@ -348,8 +348,8 @@ struct ConfCollisionTables : o2::framework::ConfigurableGroup {
class CollisionBuilder
{
public:
CollisionBuilder() {}
virtual ~CollisionBuilder() = default;
CollisionBuilder() = default;
~CollisionBuilder() = default;

template <typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
void init(T1& confFilter, T2& confBits, T3& confRct, T4& confCcdb, T5& confTable, T6& initContext)
Expand Down Expand Up @@ -505,7 +505,7 @@ class CollisionBuilderDerivedToDerived
{
public:
CollisionBuilderDerivedToDerived() = default;
virtual ~CollisionBuilderDerivedToDerived() = default;
~CollisionBuilderDerivedToDerived() = default;

template <typename T1, typename T2>
void processCollision(T1& col, T2& newCollisionTable)
Expand Down
102 changes: 70 additions & 32 deletions PWGCF/Femto/Core/collisionHistManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ struct ConfCollisionBinning : o2::framework::ConfigurableGroup {

struct ConfCollisionQaBinning : o2::framework::ConfigurableGroup {
std::string prefix = std::string("CollisionQaBinning");
o2::framework::Configurable<bool> plot2d{"plot2d", true, "Enable 2d QA histograms"};
o2::framework::ConfigurableAxis vtx{"vtx", {120, 0.f, 12.f}, "Vertex position binning"};
o2::framework::ConfigurableAxis vtxXY{"vtxXY", {100, -1.f, 1.f}, "Vertex X/Y binning"};
o2::framework::ConfigurableAxis sphericity{"sphericity", {100, 0.f, 1.f}, "Spericity Binning"};
Expand All @@ -126,52 +127,89 @@ class CollisionHistManager
{
public:
CollisionHistManager() = default;
virtual ~CollisionHistManager() = default;
~CollisionHistManager() = default;
/// Initializes histograms for the task
/// \param registry Histogram registry to be passed
void init(o2::framework::HistogramRegistry* registry, std::map<ColHist, std::vector<o2::framework::AxisSpec>> Specs)
void init(o2::framework::HistogramRegistry* registry, std::map<ColHist, std::vector<o2::framework::AxisSpec>> const& Specs)
{
mHistogramRegistry = registry;
if constexpr (isFlagSet(mode, modes::Mode::kAnalysis)) {
std::string analysisDir = std::string(ColAnalysisDir);
mHistogramRegistry->add(analysisDir + getHistNameV2(kPosZ, HistTable), getHistDesc(kPosZ, HistTable), getHistType(kPosZ, HistTable), {Specs[kPosZ]});
mHistogramRegistry->add(analysisDir + getHistNameV2(kMult, HistTable), getHistDesc(kMult, HistTable), getHistType(kMult, HistTable), {Specs[kMult]});
mHistogramRegistry->add(analysisDir + getHistNameV2(kCent, HistTable), getHistDesc(kCent, HistTable), getHistType(kCent, HistTable), {Specs[kCent]});
mHistogramRegistry->add(analysisDir + getHistNameV2(kMagField, HistTable), getHistDesc(kMagField, HistTable), getHistType(kMagField, HistTable), {Specs[kMagField]});
initAnalysis(Specs);
}

if constexpr (isFlagSet(mode, modes::Mode::kQa)) {
std::string qaDir = std::string(ColQaDir);

mHistogramRegistry->add(qaDir + getHistNameV2(kPosX, HistTable), getHistDesc(kPosX, HistTable), getHistType(kPosX, HistTable), {Specs[kPosX]});
mHistogramRegistry->add(qaDir + getHistNameV2(kPosY, HistTable), getHistDesc(kPosY, HistTable), getHistType(kPosY, HistTable), {Specs[kPosY]});
mHistogramRegistry->add(qaDir + getHistNameV2(kPos, HistTable), getHistDesc(kPos, HistTable), getHistType(kPos, HistTable), {Specs[kPos]});
mHistogramRegistry->add(qaDir + getHistNameV2(kSphericity, HistTable), getHistDesc(kSphericity, HistTable), getHistType(kSphericity, HistTable), {Specs[kSphericity]});
mHistogramRegistry->add(qaDir + getHistNameV2(kOccupancy, HistTable), getHistDesc(kOccupancy, HistTable), getHistType(kOccupancy, HistTable), {Specs[kOccupancy]});
mHistogramRegistry->add(qaDir + getHistNameV2(kPoszVsMult, HistTable), getHistDesc(kPoszVsMult, HistTable), getHistType(kPoszVsMult, HistTable), {Specs[kPoszVsMult]});
mHistogramRegistry->add(qaDir + getHistNameV2(kPoszVsCent, HistTable), getHistDesc(kPoszVsCent, HistTable), getHistType(kPoszVsCent, HistTable), {Specs[kPoszVsCent]});
mHistogramRegistry->add(qaDir + getHistNameV2(kCentVsMult, HistTable), getHistDesc(kCentVsMult, HistTable), getHistType(kCentVsMult, HistTable), {Specs[kCentVsMult]});
mHistogramRegistry->add(qaDir + getHistNameV2(kMultVsSphericity, HistTable), getHistDesc(kMultVsSphericity, HistTable), getHistType(kMultVsSphericity, HistTable), {Specs[kMultVsSphericity]});
mHistogramRegistry->add(qaDir + getHistNameV2(kCentVsSphericity, HistTable), getHistDesc(kCentVsSphericity, HistTable), getHistType(kCentVsSphericity, HistTable), {Specs[kCentVsSphericity]});
initQa(Specs);
}
} // namespace o2::analysis::femtounited
}

template <typename T>
void enableOptionalHistograms(T const& ConfBinningQa)
{
mPlot2d = ConfBinningQa.plot2d.value;
}

template <typename T>
void init(o2::framework::HistogramRegistry* registry, std::map<ColHist, std::vector<o2::framework::AxisSpec>> const& Specs, T const& ConfBinningQa)
{
enableOptionalHistograms(ConfBinningQa);
init(registry, Specs);
}

template <typename T>
void fill(T const& col)
{
if constexpr (isFlagSet(mode, modes::Mode::kAnalysis)) {
mHistogramRegistry->fill(HIST(ColAnalysisDir) + HIST(getHistName(kPosZ, HistTable)), col.posZ());
mHistogramRegistry->fill(HIST(ColAnalysisDir) + HIST(getHistName(kMult, HistTable)), col.mult());
mHistogramRegistry->fill(HIST(ColAnalysisDir) + HIST(getHistName(kCent, HistTable)), col.cent());
mHistogramRegistry->fill(HIST(ColAnalysisDir) + HIST(getHistName(kMagField, HistTable)), col.magField());
fillAnalysis(col);
}

if constexpr (isFlagSet(mode, modes::Mode::kQa)) {
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kPosX, HistTable)), col.posX());
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kPosY, HistTable)), col.posY());
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kPos, HistTable)), std::hypot(col.posX(), col.posY(), col.posZ()));
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kSphericity, HistTable)), col.sphericity());
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kOccupancy, HistTable)), col.trackOccupancyInTimeRange());
fillQa(col);
}
}

private:
void initAnalysis(std::map<ColHist, std::vector<o2::framework::AxisSpec>> const& Specs)
{
std::string analysisDir = std::string(ColAnalysisDir);
mHistogramRegistry->add(analysisDir + getHistNameV2(kPosZ, HistTable), getHistDesc(kPosZ, HistTable), getHistType(kPosZ, HistTable), {Specs.at(kPosZ)});
mHistogramRegistry->add(analysisDir + getHistNameV2(kMult, HistTable), getHistDesc(kMult, HistTable), getHistType(kMult, HistTable), {Specs.at(kMult)});
mHistogramRegistry->add(analysisDir + getHistNameV2(kCent, HistTable), getHistDesc(kCent, HistTable), getHistType(kCent, HistTable), {Specs.at(kCent)});
mHistogramRegistry->add(analysisDir + getHistNameV2(kMagField, HistTable), getHistDesc(kMagField, HistTable), getHistType(kMagField, HistTable), {Specs.at(kMagField)});
}

void initQa(std::map<ColHist, std::vector<o2::framework::AxisSpec>> const& Specs)
{
std::string qaDir = std::string(ColQaDir);
mHistogramRegistry->add(qaDir + getHistNameV2(kPosX, HistTable), getHistDesc(kPosX, HistTable), getHistType(kPosX, HistTable), {Specs.at(kPosX)});
mHistogramRegistry->add(qaDir + getHistNameV2(kPosY, HistTable), getHistDesc(kPosY, HistTable), getHistType(kPosY, HistTable), {Specs.at(kPosY)});
mHistogramRegistry->add(qaDir + getHistNameV2(kPos, HistTable), getHistDesc(kPos, HistTable), getHistType(kPos, HistTable), {Specs.at(kPos)});
mHistogramRegistry->add(qaDir + getHistNameV2(kSphericity, HistTable), getHistDesc(kSphericity, HistTable), getHistType(kSphericity, HistTable), {Specs.at(kSphericity)});
mHistogramRegistry->add(qaDir + getHistNameV2(kOccupancy, HistTable), getHistDesc(kOccupancy, HistTable), getHistType(kOccupancy, HistTable), {Specs.at(kOccupancy)});
if (mPlot2d) {
mHistogramRegistry->add(qaDir + getHistNameV2(kPoszVsMult, HistTable), getHistDesc(kPoszVsMult, HistTable), getHistType(kPoszVsMult, HistTable), {Specs.at(kPoszVsMult)});
mHistogramRegistry->add(qaDir + getHistNameV2(kPoszVsCent, HistTable), getHistDesc(kPoszVsCent, HistTable), getHistType(kPoszVsCent, HistTable), {Specs.at(kPoszVsCent)});
mHistogramRegistry->add(qaDir + getHistNameV2(kCentVsMult, HistTable), getHistDesc(kCentVsMult, HistTable), getHistType(kCentVsMult, HistTable), {Specs.at(kCentVsMult)});
mHistogramRegistry->add(qaDir + getHistNameV2(kMultVsSphericity, HistTable), getHistDesc(kMultVsSphericity, HistTable), getHistType(kMultVsSphericity, HistTable), {Specs.at(kMultVsSphericity)});
mHistogramRegistry->add(qaDir + getHistNameV2(kCentVsSphericity, HistTable), getHistDesc(kCentVsSphericity, HistTable), getHistType(kCentVsSphericity, HistTable), {Specs.at(kCentVsSphericity)});
}
}

template <typename T>
void fillAnalysis(T const& col)
{
mHistogramRegistry->fill(HIST(ColAnalysisDir) + HIST(getHistName(kPosZ, HistTable)), col.posZ());
mHistogramRegistry->fill(HIST(ColAnalysisDir) + HIST(getHistName(kMult, HistTable)), col.mult());
mHistogramRegistry->fill(HIST(ColAnalysisDir) + HIST(getHistName(kCent, HistTable)), col.cent());
mHistogramRegistry->fill(HIST(ColAnalysisDir) + HIST(getHistName(kMagField, HistTable)), col.magField());
}

template <typename T>
void fillQa(T const& col)
{
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kPosX, HistTable)), col.posX());
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kPosY, HistTable)), col.posY());
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kPos, HistTable)), std::hypot(col.posX(), col.posY(), col.posZ()));
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kSphericity, HistTable)), col.sphericity());
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kOccupancy, HistTable)), col.trackOccupancyInTimeRange());
if (mPlot2d) {
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kPoszVsMult, HistTable)), col.posZ(), col.mult());
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kPoszVsCent, HistTable)), col.posZ(), col.cent());
mHistogramRegistry->fill(HIST(ColQaDir) + HIST(getHistName(kCentVsMult, HistTable)), col.cent(), col.mult());
Expand All @@ -180,8 +218,8 @@ class CollisionHistManager
}
}

private:
o2::framework::HistogramRegistry* mHistogramRegistry = nullptr;
bool mPlot2d = true;
}; // namespace femtounitedcolhistmanager
}; // namespace colhistmanager
}; // namespace o2::analysis::femto
Expand Down
2 changes: 1 addition & 1 deletion PWGCF/Femto/Core/dataTypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ using CollisionTagType = uint64_t;
using CollisionMaskType = uint16_t;

// datatypes for tracks
using MomentumType = uint16_t;
using MomentumType = uint8_t;
using TrackMaskType = uint64_t;
using TrackType = uint16_t;

Expand Down
8 changes: 4 additions & 4 deletions PWGCF/Femto/Core/kinkBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -148,8 +148,8 @@ template <modes::Kink kinkType>
class KinkSelection : public BaseSelection<float, o2::aod::femtodatatypes::KinkMaskType, kKinkSelsMax>
{
public:
KinkSelection() {}
virtual ~KinkSelection() = default;
KinkSelection() = default;
~KinkSelection() = default;

template <typename T1, typename T2>
void configure(T1& config, T2& filter)
Expand Down Expand Up @@ -304,8 +304,8 @@ template <modes::Kink kinkType>
class KinkBuilder
{
public:
KinkBuilder() {}
virtual ~KinkBuilder() = default;
KinkBuilder() = default;
~KinkBuilder() = default;

template <typename T1, typename T2, typename T3, typename T4>
void init(T1& config, T2& filter, T3& table, T4& initContext)
Expand Down
Loading
Loading