Skip to content
Closed
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
117 changes: 57 additions & 60 deletions PWGCF/FemtoDream/Core/femtoDreamCascadeSelection.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,11 @@
#ifndef PWGCF_FEMTODREAM_CORE_FEMTODREAMCASCADESELECTION_H_
#define PWGCF_FEMTODREAM_CORE_FEMTODREAMCASCADESELECTION_H_

#include <iostream>

Check warning on line 25 in PWGCF/FemtoDream/Core/femtoDreamCascadeSelection.h

View workflow job for this annotation

GitHub Actions / O2 linter

[include-iostream]

Including iostream is discouraged. Use O2 logging instead.
#include <string>
#include <vector>

#include <TDatabasePDG.h> // FIXME

Check warning on line 29 in PWGCF/FemtoDream/Core/femtoDreamCascadeSelection.h

View workflow job for this annotation

GitHub Actions / O2 linter

[pdg/database]

Direct use of TDatabasePDG is not allowed. Use o2::constants::physics::Mass... or Service<o2::framework::O2DatabasePDG>.

#include "PWGCF/FemtoDream/Core/femtoDreamObjectSelection.h"
#include "PWGCF/FemtoDream/Core/femtoDreamSelection.h"
Expand All @@ -36,7 +36,7 @@
#include "Framework/HistogramRegistry.h"
#include "ReconstructionDataFormats/PID.h"

using namespace o2::framework;

Check warning on line 39 in PWGCF/FemtoDream/Core/femtoDreamCascadeSelection.h

View workflow job for this annotation

GitHub Actions / O2 linter

[using-directive]

Using directives are not allowed in headers.

namespace o2::analysis::femtoDream
{
Expand All @@ -59,7 +59,7 @@
kCascadeV0TranRadMax,
kCascadeV0DCAtoPVMin,
kCascadeV0DCAtoPVMax

// kNcascadeSelection
// kCascadeV0MassMin,
// kCascadeV0MassMax
Expand Down Expand Up @@ -155,7 +155,7 @@
template <typename Col, typename Casc, typename Track>
bool isSelectedMinimal(Col const& col, Casc const& cascade, Track const& posTrack, Track const& negTrack, Track const& bachTrack);

template <int cutstage=0, o2::aod::femtodreamparticle::ParticleType part, typename Col, typename Casc, typename Track>
template <int cutstage = 0, o2::aod::femtodreamparticle::ParticleType part, typename Col, typename Casc, typename Track>
void fillQA(Col const& col, Casc const& cascade, Track const& posTrack, Track const& negTrack, Track const& bachTrack);

// template <typename cutContainerType, typename Col, typename Casc, typename V0, typename Track>
Expand Down Expand Up @@ -328,8 +328,8 @@
static constexpr int kNcascadeSelection = 16;

static constexpr std::string_view mSelectionNames[kNcascadeSelection] = {
"Sign", "PtMin", "PtMax", "EtaMax", "DCADaughMax", "CPAMin", "TranRadMin", "TranRadMax", "DecVtxMax", // Cascade Selections
"DCAv0daughMax", "v0CPAMin", "v0TranRadMin", "v0TranRadMax", "V0DCAToPVMin", "V0DCAToPVMax"}; // CascadeV0 selections
"Sign", "PtMin", "PtMax", "EtaMax", "DCADaughMax", "CPAMin", "TranRadMin", "TranRadMax", "DecVtxMax", // Cascade Selections
"DCAv0daughMax", "v0CPAMin", "v0TranRadMin", "v0TranRadMax", "V0DCAToPVMin", "V0DCAToPVMax"}; // CascadeV0 selections
//"kV0MassMin", "V0MassMax"}; //CascadeV0 selections
// "DCAPosToPV", "DCANegToPV", "DCABachToPV", //Cascade daughter track selections
// }; //<< Name of the different selections
Expand All @@ -351,7 +351,7 @@
femtoDreamSelection::kUpperLimit, // v0 tran rad max
femtoDreamSelection::kLowerLimit, // v0 minimum distance of decay vertex to PV
femtoDreamSelection::kUpperLimit // v0 maximum distance of decay vertex to PV

// femtoDreamSelection::kLowerLimit, // v0 mass min
// femtoDreamSelection::kUpperLimit // v0 mass max
}; ///< Map to match a variable with
Expand Down Expand Up @@ -379,7 +379,7 @@
"Maximum v0 transverse radius (cm)",
"Minimum distance of v0 from primary vertex",
"Maximum distance of v0 from primary vertex"

//"Minimum V0 mass",
//"Maximum V0 mass"
}; ///< Helper information for the
Expand Down Expand Up @@ -431,23 +431,23 @@
}

std::string folderName = static_cast<std::string>(o2::aod::femtodreamparticle::ParticleTypeName[part]);
for (int istage=0; istage<kNcutStages; istage++){
mQAHistogramRegistry->add((folderName + "/" +static_cast<std::string>(mCutStage[istage]) + "/hPt").c_str(), "; #it{p}_{T} (GeV/#it{c}); Entries", kTH1F, {{1000, 0, 10}});
mQAHistogramRegistry->add((folderName + "/" +static_cast<std::string>(mCutStage[istage]) + "/hEta").c_str(), "; #eta; Entries", kTH1F, {{1000, -1, 1}});
mQAHistogramRegistry->add((folderName + "/" +static_cast<std::string>(mCutStage[istage]) + "/hPhi").c_str(), "; #phi; Entries", kTH1F, {{1000, 0, 2. * M_PI}});
mQAHistogramRegistry->add((folderName + "/" +static_cast<std::string>(mCutStage[istage]) + "/hDCADaugh").c_str(), "; daughters DCA; Entries", kTH1F, {DCADaughAxis});
mQAHistogramRegistry->add((folderName + "/" +static_cast<std::string>(mCutStage[istage]) + "/hCPA").c_str(), "; Cos PA; Entries", kTH1F, {CPAAxis});
mQAHistogramRegistry->add((folderName + "/" +static_cast<std::string>(mCutStage[istage]) + "/hTranRad").c_str(), "; Transverse Radius; Entries", kTH1F, {tranRadAxis});
mQAHistogramRegistry->add((folderName + "/" +static_cast<std::string>(mCutStage[istage]) + "/hDecVtxX").c_str(), "; Decay vertex x position; Entries", kTH1F, {tranRadAxis});
mQAHistogramRegistry->add((folderName + "/" +static_cast<std::string>(mCutStage[istage]) + "/hDecVtxY").c_str(), "; Decay vertex y position; Entries", kTH1F, {tranRadAxis});
mQAHistogramRegistry->add((folderName + "/" +static_cast<std::string>(mCutStage[istage]) + "/hDecVtxZ").c_str(), "; Decay vertex z position; Entries", kTH1F, {tranRadAxis});
mQAHistogramRegistry->add((folderName + "/" +static_cast<std::string>(mCutStage[istage]) + "/hInvMass").c_str(), "; Invariant mass; Entries", kTH1F, {massAxisCascade});
mQAHistogramRegistry->add((folderName + "/" +static_cast<std::string>(mCutStage[istage]) + "/hV0DCADaugh").c_str(), "; V0-daughters DCA; Entries", kTH1F, {DCADaughAxis});
mQAHistogramRegistry->add((folderName + "/" +static_cast<std::string>(mCutStage[istage]) + "/hV0CPA").c_str(), "; V0 cos PA; Entries", kTH1F, {CPAAxis});
mQAHistogramRegistry->add((folderName + "/" +static_cast<std::string>(mCutStage[istage]) + "/hV0TranRad").c_str(), "; V0 transverse radius; Entries", kTH1F, {tranRadAxis});
mQAHistogramRegistry->add((folderName + "/" +static_cast<std::string>(mCutStage[istage]) + "/hV0DCAToPV").c_str(), "; DCA of the V0 to the PV; Entries", kTH1F, {DCAToPVAxis});
mQAHistogramRegistry->add((folderName + "/" +static_cast<std::string>(mCutStage[istage]) + "/hV0InvMass").c_str(), "; Invariant mass Cascade V0; Entries", kTH1F, {massAxisV0});
}
for (int istage = 0; istage < kNcutStages; istage++) {
mQAHistogramRegistry->add((folderName + "/" + static_cast<std::string>(mCutStage[istage]) + "/hPt").c_str(), "; #it{p}_{T} (GeV/#it{c}); Entries", kTH1F, {{1000, 0, 10}});
mQAHistogramRegistry->add((folderName + "/" + static_cast<std::string>(mCutStage[istage]) + "/hEta").c_str(), "; #eta; Entries", kTH1F, {{1000, -1, 1}});
mQAHistogramRegistry->add((folderName + "/" + static_cast<std::string>(mCutStage[istage]) + "/hPhi").c_str(), "; #phi; Entries", kTH1F, {{1000, 0, 2. * M_PI}});

Check warning on line 437 in PWGCF/FemtoDream/Core/femtoDreamCascadeSelection.h

View workflow job for this annotation

GitHub Actions / O2 linter

[external-pi]

Consider using the PI constant (and its multiples and fractions) defined in o2::constants::math.

Check warning on line 437 in PWGCF/FemtoDream/Core/femtoDreamCascadeSelection.h

View workflow job for this annotation

GitHub Actions / O2 linter

[pi-multiple-fraction]

Consider using multiples/fractions of PI defined in o2::constants::math.
mQAHistogramRegistry->add((folderName + "/" + static_cast<std::string>(mCutStage[istage]) + "/hDCADaugh").c_str(), "; daughters DCA; Entries", kTH1F, {DCADaughAxis});
mQAHistogramRegistry->add((folderName + "/" + static_cast<std::string>(mCutStage[istage]) + "/hCPA").c_str(), "; Cos PA; Entries", kTH1F, {CPAAxis});
mQAHistogramRegistry->add((folderName + "/" + static_cast<std::string>(mCutStage[istage]) + "/hTranRad").c_str(), "; Transverse Radius; Entries", kTH1F, {tranRadAxis});
mQAHistogramRegistry->add((folderName + "/" + static_cast<std::string>(mCutStage[istage]) + "/hDecVtxX").c_str(), "; Decay vertex x position; Entries", kTH1F, {tranRadAxis});
mQAHistogramRegistry->add((folderName + "/" + static_cast<std::string>(mCutStage[istage]) + "/hDecVtxY").c_str(), "; Decay vertex y position; Entries", kTH1F, {tranRadAxis});
mQAHistogramRegistry->add((folderName + "/" + static_cast<std::string>(mCutStage[istage]) + "/hDecVtxZ").c_str(), "; Decay vertex z position; Entries", kTH1F, {tranRadAxis});
mQAHistogramRegistry->add((folderName + "/" + static_cast<std::string>(mCutStage[istage]) + "/hInvMass").c_str(), "; Invariant mass; Entries", kTH1F, {massAxisCascade});
mQAHistogramRegistry->add((folderName + "/" + static_cast<std::string>(mCutStage[istage]) + "/hV0DCADaugh").c_str(), "; V0-daughters DCA; Entries", kTH1F, {DCADaughAxis});
mQAHistogramRegistry->add((folderName + "/" + static_cast<std::string>(mCutStage[istage]) + "/hV0CPA").c_str(), "; V0 cos PA; Entries", kTH1F, {CPAAxis});
mQAHistogramRegistry->add((folderName + "/" + static_cast<std::string>(mCutStage[istage]) + "/hV0TranRad").c_str(), "; V0 transverse radius; Entries", kTH1F, {tranRadAxis});
mQAHistogramRegistry->add((folderName + "/" + static_cast<std::string>(mCutStage[istage]) + "/hV0DCAToPV").c_str(), "; DCA of the V0 to the PV; Entries", kTH1F, {DCAToPVAxis});
mQAHistogramRegistry->add((folderName + "/" + static_cast<std::string>(mCutStage[istage]) + "/hV0InvMass").c_str(), "; Invariant mass Cascade V0; Entries", kTH1F, {massAxisV0});
}

PosDaughTrack.init<aod::femtodreamparticle::ParticleType::kCascadeV0Child,
aod::femtodreamparticle::TrackType::kPosChild,
Expand All @@ -458,8 +458,8 @@
aod::femtodreamparticle::cutContainerType>(mQAHistogramRegistry, mHistogramRegistry);

BachDaugTrack.init<aod::femtodreamparticle::ParticleType::kCascadeBachelor,
aod::femtodreamparticle::TrackType::kBachelor,
aod::femtodreamparticle::cutContainerType>(mQAHistogramRegistry, mHistogramRegistry);
aod::femtodreamparticle::TrackType::kBachelor,
aod::femtodreamparticle::cutContainerType>(mQAHistogramRegistry, mHistogramRegistry);
}

/// check whether the most open cuts are fulfilled - most of this should have
Expand All @@ -472,12 +472,12 @@
nCascadeTranRadMin = getNSelections(femtoDreamCascadeSelection::kCascadeTranRadMin);
nCascadeTranRadMax = getNSelections(femtoDreamCascadeSelection::kCascadeTranRadMax);
nCascadeDecVtxMax = getNSelections(femtoDreamCascadeSelection::kCascadeDecVtxMax);

nCascadeV0DCADaughMax = getNSelections(femtoDreamCascadeSelection::kCascadeV0DCADaughMax);
nCascadeV0CPAMin = getNSelections(femtoDreamCascadeSelection::kCascadeV0CPAMin);
nCascadeV0TranRadMin = getNSelections(femtoDreamCascadeSelection::kCascadeV0TranRadMin);
nCascadeV0TranRadMax = getNSelections(femtoDreamCascadeSelection::kCascadeV0TranRadMax);

nCascadeV0DCAToPVMin = getNSelections(femtoDreamCascadeSelection::kCascadeV0DCAtoPVMin);
nCascadeV0DCAToPVMax = getNSelections(femtoDreamCascadeSelection::kCascadeV0DCAtoPVMax);

Expand Down Expand Up @@ -551,8 +551,7 @@
const float v0dcatopv = cascade.dcav0topv(col.posX(), col.posY(), col.posZ());
const float invMassLambda = cascade.mLambda();
const float invMass = isCascOmega ? cascade.mOmega() : cascade.mXi();
//const float invMass = cascade.mXi();

// const float invMass = cascade.mXi();

if (invMassLambda < fV0InvMassLowLimit || invMassLambda > fV0InvMassUpLimit) {
return false;
Expand Down Expand Up @@ -618,7 +617,7 @@
if (nCascadeV0DCAToPVMax > 0 && std::fabs(v0dcatopv) > fCascadeV0DCAToPVMax) {
return false;
}

// Chech the selection criteria for the tracks as well
if (!PosDaughTrack.isSelectedMinimal(posTrack)) {
return false;
Expand All @@ -631,13 +630,13 @@
}

/*
if (nCascadeDCAPosToPV > 0 && abs(cascade.dcapostopv()) < fCascadeDCAPosToPV) {

Check warning on line 633 in PWGCF/FemtoDream/Core/femtoDreamCascadeSelection.h

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
return false;
}
if (nCascadeDCANegToPV > 0 && abs(cascade.dcanegtopv()) < fCascadeDCANegToPV) {

Check warning on line 636 in PWGCF/FemtoDream/Core/femtoDreamCascadeSelection.h

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
return false;
}
if (nCascadeDCABachToPV > 0 && abs(cascade.dcabachtopv()) < fCascadeDCABachToPV) {

Check warning on line 639 in PWGCF/FemtoDream/Core/femtoDreamCascadeSelection.h

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
return false;
}
*/
Expand Down Expand Up @@ -675,7 +674,7 @@

// negative charge: Antiparticle (Xi+)
// positive charge: Particle (Xi-)
if (abs(nSigmaPrNeg - nSigmaPIDOffsetTPC) < nSigmaPIDMax && abs(nSigmaPiPos - nSigmaPIDOffsetTPC) < nSigmaPIDMax) {

Check warning on line 677 in PWGCF/FemtoDream/Core/femtoDreamCascadeSelection.h

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
sign = -1.;
} else { // (abs(nSigmaPrPos - nSigmaPIDOffsetTPC) < nSigmaPIDMax && abs(nSigmaPiNeg - nSigmaPIDOffsetTPC) < nSigmaPIDMax) { //TODO
sign = 1.;
Expand All @@ -686,10 +685,9 @@
const auto cpav0 = casc.v0cosPA(col.posX(), col.posY(), col.posZ());
const auto v0dcatopv = casc.dcav0topv(col.posX(), col.posY(), col.posZ());


//LOGF(info, "GG producer: New dcatoPV: %f", dcav0topv);
// LOGF(info, "GG producer: New dcatoPV: %f", dcav0topv);
float observable = 0.;
for (auto& sel : mSelections) {

Check warning on line 690 in PWGCF/FemtoDream/Core/femtoDreamCascadeSelection.h

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.

const auto selVariable = sel.getSelectionVariable();
switch (selVariable) {
Expand Down Expand Up @@ -740,30 +738,30 @@
break;
case (femtoDreamCascadeSelection::kCascadeV0DCAtoPVMin):
observable = v0dcatopv;
//LOGF(info, "==> Now it is: %f", dcav0topv);
// LOGF(info, "==> Now it is: %f", dcav0topv);
break;
case (femtoDreamCascadeSelection::kCascadeV0DCAtoPVMax):
observable = v0dcatopv;
break;
/*
// case (femtoDreamCascadeSelection::kCascadeV0MassMin):
// observable = casc.mLambda();
// break;
// case (femtoDreamCascadeSelection::kCascadeV0MassMax):
// observable = casc.mLambda();
// break;
case (femtoDreamCascadeSelection::kCascadeDCAPosToPV):
observable = casc.dcapostopv();
break;
case (femtoDreamCascadeSelection::kCascadeDCANegToPV):
observable = casc.dcanegtopv();
break;
case (femtoDreamCascadeSelection::kCascadeDCABachToPV):
observable = casc.dcabachtopv();
break;
*/
/*
// case (femtoDreamCascadeSelection::kCascadeV0MassMin):
// observable = casc.mLambda();
// break;
// case (femtoDreamCascadeSelection::kCascadeV0MassMax):
// observable = casc.mLambda();
// break;


case (femtoDreamCascadeSelection::kCascadeDCAPosToPV):
observable = casc.dcapostopv();
break;
case (femtoDreamCascadeSelection::kCascadeDCANegToPV):
observable = casc.dcanegtopv();
break;
case (femtoDreamCascadeSelection::kCascadeDCABachToPV):
observable = casc.dcabachtopv();
break;
*/

} // switch
sel.checkSelectionSetBit(observable, output, counter, nullptr);
Expand Down Expand Up @@ -804,15 +802,14 @@
mQAHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[part]) + HIST("/") + HIST(mCutStage[cutstage]) + HIST("/hV0TranRad"), casc.v0radius());
mQAHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[part]) + HIST("/") + HIST(mCutStage[cutstage]) + HIST("/hV0DCAToPV"), v0dcatopv);
mQAHistogramRegistry->fill(HIST(o2::aod::femtodreamparticle::ParticleTypeName[part]) + HIST("/") + HIST(mCutStage[cutstage]) + HIST("/hV0InvMass"), casc.mLambda());

PosDaughTrack.fillQA<aod::femtodreamparticle::ParticleType::kCascadeV0Child,
aod::femtodreamparticle::TrackType::kPosChild, false, cutstage>(posTrack);
NegDaughTrack.fillQA<aod::femtodreamparticle::ParticleType::kCascadeV0Child,
aod::femtodreamparticle::TrackType::kNegChild, false, cutstage>(negTrack);
BachDaugTrack.fillQA<aod::femtodreamparticle::ParticleType::kCascadeBachelor,
aod::femtodreamparticle::TrackType::kBachelor, false, cutstage>(bachTrack);
}

PosDaughTrack.fillQA<aod::femtodreamparticle::ParticleType::kCascadeV0Child,
aod::femtodreamparticle::TrackType::kPosChild, false, cutstage>(posTrack);
NegDaughTrack.fillQA<aod::femtodreamparticle::ParticleType::kCascadeV0Child,
aod::femtodreamparticle::TrackType::kNegChild, false, cutstage>(negTrack);
BachDaugTrack.fillQA<aod::femtodreamparticle::ParticleType::kCascadeBachelor,
aod::femtodreamparticle::TrackType::kBachelor, false, cutstage>(bachTrack);
}
}

} // namespace o2::analysis::femtoDream
Expand Down
Loading
Loading