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
39 changes: 21 additions & 18 deletions PWGHF/Core/SelectorCuts.h
Original file line number Diff line number Diff line change
Expand Up @@ -777,18 +777,18 @@ constexpr double BinsPt[NBinsPt + 1] = {
const auto vecBinsPt = std::vector<double>{BinsPt, BinsPt + NBinsPt + 1};

// default values for the cuts
constexpr double Cuts[NBinsPt][NCutVars] = {{0.2, 0.97, 0.97, 0.99, 0.99, 2.0, 0.2, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 0 < pt < 1 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 0.2, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 1 < pt < 2 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 0.2, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 2 < pt < 3 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 0.2, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 3 < pt < 4 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 0.2, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 4 < pt < 5 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 0.2, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 5 < pt < 6 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 0.2, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 6 < pt < 8 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 0.2, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 8 < pt < 10 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 0.2, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 10 < pt < 12 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 0.2, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 12 < pt < 16 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 0.2, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 16 < pt < 24 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 0.2, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}}; /* 24 < pt < 50 -> Implemented just for test*/
constexpr double Cuts[NBinsPt][NCutVars] = {{0.2, 0.97, 0.97, 0.99, 0.99, 2.0, 1.0, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 0 < pt < 1 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 1.0, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 1 < pt < 2 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 1.0, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 2 < pt < 3 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 1.0, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 3 < pt < 4 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 1.0, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 4 < pt < 5 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 1.0, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 5 < pt < 6 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 1.0, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 6 < pt < 8 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 1.0, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 8 < pt < 10 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 1.0, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 10 < pt < 12 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 1.0, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 12 < pt < 16 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 1.0, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}, /* 16 < pt < 24 */
{0.5, 0.97, 0.97, 0.99, 0.99, 2.0, 1.0, 1.0, 0.04, 0.06, 0.06, 0.05, 0.3, 70, 60, 100, 120, 250, 250, 0.4, 100, 300, 0., 0., 1.5, 0., 0., 0.4}}; /* 24 < pt < 50 -> Implemented just for test*/

// row labels
static const std::vector<std::string> labelsPt = {
Expand All @@ -806,12 +806,15 @@ static const std::vector<std::string> labelsPt = {
"pT bin 11"};

// column labels
static const std::vector<std::string> labelsCutVar = {"ptPiFromCharmBaryon", "cosPACasc", "cosPAV0", "cosPaCascToXic", "cosPaV0ToCasc",
"dcaCharmBaryonDau", "dcaCascDau", "dcaV0Dau", "dcaXYToPvCascDau", "dcaXYToPvV0Dau0",
"dcaXYToPvV0Dau1", "kfDcaXYPiFromXic", "kfDcaXYCascToPv", "chi2GeoXic", "chi2GeoCasc",
"chi2GeoV0", "chi2TopoXicToPv", "chi2TopoPiFromXicToPv", "chi2TopoCascToPv", "chi2TopoV0ToPv",
"chi2TopoV0ToCasc", "chi2TopoCascToXic", "cascldl", "v0ldl", "decayLenXYXic",
"decayLenXYCasc", "decayLenXYLambda", "cTauXic"};
static const std::vector<std::string> labelsCutVar = {"ptPiFromCharmBaryon",
"cosPACasc", "cosPAV0",
"cosPaCascToXic", "cosPaV0ToCasc",
"dcaCharmBaryonDau", "dcaCascDau", "dcaV0Dau",
"dcaXYToPvCascDau", "dcaXYToPvV0Dau0", "dcaXYToPvV0Dau1",
"kfDcaXYPiFromXic", "kfDcaXYCascToPv",
"chi2GeoXic", "chi2GeoCasc", "chi2GeoV0",
"chi2TopoXicToPv", "chi2TopoPiFromXicToPv", "chi2TopoCascToPv", "chi2TopoV0ToPv", "chi2TopoV0ToCasc", "chi2TopoCascToXic",
"cascldl", "v0ldl", "decayLenXYXic", "decayLenXYCasc", "decayLenXYLambda", "cTauXic"};
} // namespace hf_cuts_xic_to_xi_pi

namespace hf_cuts_xic_to_p_k_pi
Expand Down
13 changes: 7 additions & 6 deletions PWGHF/TableProducer/candidateCreatorXic0Omegac0Qa.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -104,8 +104,8 @@ struct HfCandidateCreatorXic0Omegac0Qa {
// ...Modified according to the configurable in core wagon
// ---------------------------------------------------------------------
Configurable<int> minCrossedRowsFromLF{"minCrossedRowsFromLF", 50, "minimun TPC crossed rows for daughter tracks. Used for internal V0 Building"};
Configurable<float> dcanegtopvFromLF{"dcanegtopvFromLF", .05, "DCV Neg to PV"};
Configurable<float> dcapostopvFromLF{"dcapostopvFromLF", .05, "DCV Pos To PV"};
Configurable<float> dcanegtopvFromLF{"dcanegtopvFromLF", .1, "DCV Neg to PV"};
Configurable<float> dcapostopvFromLF{"dcapostopvFromLF", .1, "DCV Pos To PV"};
Configurable<double> v0cospaFromLF{"v0cospaFromLF", 0.95, "V0 CosPA"};
Configurable<float> dcav0dauFromLF{"dcav0dauFromLF", 1.0, "DCA V0 Daughters"};
Configurable<float> v0radiusFromLF{"v0radiusFromLF", 0.9, "v0radius"};
Expand All @@ -126,10 +126,10 @@ struct HfCandidateCreatorXic0Omegac0Qa {
// --------------------------------------------------------------------
Configurable<bool> kfTuneForOmegaFromLF{"kfTuneForOmegaFromLF", false, "if enabled, take main cascade properties from omega fit instread of Xi fit(=default)"};
Configurable<int> kfConstructMethodFromLF{"kfConstructMethodFromLF", 2, "2 : Daughter particle masses stay fixed in construction process"};
Configurable<bool> kfUseV0MassConstraintFromLF{"kfUseV0MassConstraintFromLF", false, "KF : Use Lambda mass constraint"};
Configurable<bool> kfUseV0MassConstraintFromLF{"kfUseV0MassConstraintFromLF", true, "KF : Use Lambda mass constraint"};
Configurable<bool> kfUseCascadeMassConstraintFromLF{"kfUseCascadeMassConstraintFromLF", false, "KF : Use Cascade mass constraint - WARNING : Not adequate for inv mass analysis of Xi"};
Configurable<bool> kfDoDCAFitterPreMinimV0FromLF{"kfDoDCAFitterPreMinimV0FromLF", true, "KF : do DCAFitter pre-optimization before KF fit to include material correction for V0"};
Configurable<bool> kfDoDCAFitterPreMinimCascFromLF{"kfDoDCAFitterPreMinimCascFromLF", true, "KF : do DCAFitter pre-optimization before KF fit to include material correction for Xi"};
Configurable<bool> kfDoDCAFitterPreMinimCascFromLF{"kfDoDCAFitterPreMinimCascFromLF", false, "KF : do DCAFitter pre-optimization before KF fit to include material correction for Xi"};
} LFConfigs;

// For cascade building using LF strangeness builder
Expand Down Expand Up @@ -553,6 +553,7 @@ struct HfCandidateCreatorXic0Omegac0Qa {
initCCDB(bc, runNumber, ccdb, configs.isRun2 ? configs.ccdbPathGrp : configs.ccdbPathGrpMag, lut, configs.isRun2);
magneticField = o2::base::Propagator::Instance()->getNominalBz();
LOG(info) << ">>>>>>>>>> Magnetic field: " << magneticField;
runNumber = bc.runNumber();
}
straHelper.fitter.setBz(magneticField); // -> Magnetic field setting for internal cascade building
df.setBz(magneticField); // -> Magnetic field setting for charm baryon building
Expand Down Expand Up @@ -588,9 +589,9 @@ struct HfCandidateCreatorXic0Omegac0Qa {
//------------------------------Info of V0 and cascade------------------------------
// V0 quantities from LF strangeness builder
std::array<float, 3> vertexV0 = {straHelper.cascade.v0Position[0], straHelper.cascade.v0Position[1], straHelper.cascade.v0Position[2]};
std::array<float, 3> pVecV0 = {straHelper.cascade.v0Momentum[0], straHelper.cascade.v0Momentum[1], straHelper.cascade.v0Momentum[2]};
std::array<float, 3> pVecV0DauPos = {straHelper.cascade.positiveMomentum[0], straHelper.cascade.positiveMomentum[1], straHelper.cascade.positiveMomentum[2]};
std::array<float, 3> pVecV0DauNeg = {straHelper.cascade.negativeMomentum[0], straHelper.cascade.negativeMomentum[1], straHelper.cascade.negativeMomentum[2]};
std::array<float, 3> pVecV0 = {pVecV0DauPos[0] + pVecV0DauNeg[0], pVecV0DauPos[1] + pVecV0DauNeg[1], pVecV0DauPos[2] + pVecV0DauNeg[2]};

// pseudo rapidity - V0 daughters
// float pseudorapV0Dau0 = RecoDecay::eta(pVecV0DauPos);
Expand Down Expand Up @@ -686,7 +687,6 @@ struct HfCandidateCreatorXic0Omegac0Qa {
// float impactParCharmBachFromCharmBayonZ = impactParameterCharmBach.getZ();

// get v0 invariant mass - from LF Table
// float mLambda = straHelper.v0.massLambda; // from LF Table
float mLambda = RecoDecay::m(std::array{pVecV0DauPos, pVecV0DauNeg}, (straHelper.cascade.charge < 0) ? std::array{massOfV0DauPos, massOfV0DauNeg} : std::array{massOfV0DauNeg, massOfV0DauPos});

// get Casc mass - from LF Table
Expand Down Expand Up @@ -878,6 +878,7 @@ struct HfCandidateCreatorXic0Omegac0Qa {
initCCDB(bc, runNumber, ccdb, configs.isRun2 ? configs.ccdbPathGrp : configs.ccdbPathGrpMag, lut, configs.isRun2);
magneticField = o2::base::Propagator::Instance()->getNominalBz();
LOG(info) << ">>>>>>>>>> Magnetic field: " << magneticField;
runNumber = bc.runNumber();
}
// magnetic field setting for KFParticle
straHelper.fitter.setBz(magneticField); // -> Manetic field setting for internal cascade building
Expand Down
12 changes: 3 additions & 9 deletions PWGHF/TableProducer/candidateSelectorToXiPiQa.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,8 @@ struct HfCandidateSelectorToXiPiQa {
Configurable<double> etaTrackLFDauMax{"etaTrackLFDauMax", 1.0, "Max absolute value of eta for V0 and cascade daughters"};
Configurable<double> ptPiFromCascMin{"ptPiFromCascMin", 0.15, "Min pT pi <--Casc"};
Configurable<double> ptPiFromCharmBaryonMin{"ptPiFromCharmBaryonMin", 0.2, "Min pT pi <--Casc"};
Configurable<double> radiusCascMin{"radiusCascMin", 0.5, "Min Cascade radius"};
Configurable<double> radiusV0Min{"radiusV0Min", 1.1, "Min V0 radius"};
Configurable<double> radiusCascMin{"radiusCascMin", 0.6, "Min Cascade radius"};
Configurable<double> radiusV0Min{"radiusV0Min", 1.2, "Min V0 radius"};
Configurable<double> impactParXYPiFromCharmBaryonMin{"impactParXYPiFromCharmBaryonMin", 0., "Min dcaxy pi from charm baryon track to pV"};
Configurable<double> impactParXYPiFromCharmBaryonMax{"impactParXYPiFromCharmBaryonMax", 10., "Max dcaxy pi from charm baryon track to pV"};
Configurable<double> impactParXYCascMin{"impactParXYCascMin", 0., "Min dcaxy casc track to pV"};
Expand Down Expand Up @@ -130,7 +130,7 @@ struct HfCandidateSelectorToXiPiQa {
Configurable<double> nSigmaTofCombinedPiMax{"nSigmaTofCombinedPiMax", 0., "Nsigma cut on TOF combined with TPC for pion selection"};
Configurable<double> ptPrPidTofMin{"ptPrPidTofMin", -1, "Lower bound of track pT for TOF PID for proton selection"};
Configurable<double> ptPrPidTofMax{"ptPrPidTofMax", 9999.9, "Upper bound of track pT for TOF PID for proton selection"};
Configurable<double> nSigmaTofPrMax{"nSigmaTofPrMax", 5., "Nsigma cut on TOF only for proton selection"};
Configurable<double> nSigmaTofPrMax{"nSigmaTofPrMax", 3., "Nsigma cut on TOF only for proton selection"};
Configurable<double> nSigmaTofCombinedPrMax{"nSigmaTofCombinedPrMax", 0., "Nsigma cut on TOF combined with TPC for proton selection"};
// detector track quality selections
Configurable<int> nClustersTpcMin{"nClustersTpcMin", 70, "Minimum number of TPC clusters requirement"};
Expand Down Expand Up @@ -529,12 +529,6 @@ struct HfCandidateSelectorToXiPiQa {
bool resultSelections = true; // True if the candidate passes all the selections, False otherwise
outputMlXic0ToXiPi.clear();

#if 0
auto trackV0PosDau = candidate.template posTrack_as<TracksSel>();
auto trackV0NegDau = candidate.template negTrack_as<TracksSel>();
auto trackPiFromCasc = candidate.template bachelor_as<TracksSel>();
auto trackPiFromCharm = candidate.template bachelorFromCharmBaryon_as<TracksSel>();
#endif
auto trackV0PosDau = lfTracks.rawIteratorAt(candidate.posTrackId());
auto trackV0NegDau = lfTracks.rawIteratorAt(candidate.negTrackId());
auto trackPiFromCasc = lfTracks.rawIteratorAt(candidate.bachelorId());
Expand Down
Loading