16#ifndef ALICEO2_SVERTEX_HYPOTHESIS_H
17#define ALICEO2_SVERTEX_HYPOTHESIS_H
45 void set(
PID v0,
PID ppos,
PID pneg,
float sig,
float nSig,
float margin,
float nSigTight,
float marginTight,
float cpt,
float cpt1,
float cpt2,
float cpt3,
float bz = 0.f,
float maxSigma = 0.01);
52 float calcMass2(
float p2Pos,
float p2Neg,
float p2V0)
const
55 float ePos = std::sqrt(p2Pos + getMass2PosProng()), eNeg = std::sqrt(p2Neg + getMass2NegProng()), eV0 = ePos + eNeg;
56 return eV0 * eV0 - p2V0;
59 float calcMass(
float p2Pos,
float p2Neg,
float p2V0)
const {
return std::sqrt(
calcMass2(p2Pos, p2Neg, p2V0)); }
61 bool check(
float p2Pos,
float p2Neg,
float p2V0,
float ptV0)
const
65 bool check(
float mass,
float pt)
const
70 bool checkTight(
float p2Pos,
float p2Neg,
float p2V0,
float ptV0)
const
94 return mPars[idxNsigma] * sigmaV0Cascade +
mPars[idxMargin];
105 float getMass2PosProng()
const {
return PID::getMass2(mPIDPosProng); }
106 float getMass2NegProng()
const {
return PID::getMass2(mPIDNegProng); }
113 std::array<float, NPIDParams>
mPars{};
131 void set(
PID v0,
PID ppos,
PID pneg,
PID pbach,
float sig,
float nSig,
float margin,
float cpt,
float bz = 0.f);
143 float calcMass2(
float p2Pos,
float p2Neg,
float p2Bach,
float p2Tot)
const
146 float ePos = std::sqrt(p2Pos + getMass2PosProng()), eNeg = std::sqrt(p2Neg + getMass2NegProng()), eBach = std::sqrt(p2Bach + getMass2BachProng()), eVtx = ePos + eNeg + eBach;
147 return eVtx * eVtx - p2Tot;
150 float calcMass(
float p2Pos,
float p2Neg,
float p2Bach,
float p2Tot)
const {
return std::sqrt(
calcMass2(p2Pos, p2Neg, p2Bach, p2Tot)); }
152 bool check(
float p2Pos,
float p2Neg,
float p2Bach,
float p2Tot,
float ptV0)
const
157 bool check(
float mass,
float pt)
const
166 float getMass2PosProng()
const {
return PID::getMass2(mPIDPosProng); }
167 float getMass2NegProng()
const {
return PID::getMass2(mPIDNegProng); }
168 float getMass2BachProng()
const {
return PID::getMass2(mPIDBachProng); }
176 std::array<float, NPIDParams>
mPars{};
static constexpr ID HyperTriton
static constexpr ID Lambda
static constexpr ID Deuteron
static constexpr ID OmegaMinus
static constexpr ID Proton
static constexpr ID XiMinus
float getChargeNegProng() const
float getMassNegProng() const
float getMargin(float pt) const
float calcMass(float p2Pos, float p2Neg, float p2Bach, float p2Tot) const
std::array< float, NPIDParams > mPars
static constexpr int NPIDParams
void set(PID v0, PID ppos, PID pneg, PID pbach, float sig, float nSig, float margin, float cpt, float bz=0.f)
float getMassBachProng() const
bool check(float p2Pos, float p2Neg, float p2Bach, float p2Tot, float ptV0) const
float getChargeBachProng() const
bool check(float mass, float pt) const
ClassDefNV(SVertex3Hypothesis, 1)
float getChargePosProng() const
float calcMass2(float p2Pos, float p2Neg, float p2Bach, float p2Tot) const
float getMassV0Hyp() const
float getSigma(float pt) const
float getMassPosProng() const
bool check(float p2Pos, float p2Neg, float p2V0, float ptV0) const
float getMarginTight(float pt) const
void set(PID v0, PID ppos, PID pneg, float sig, float nSig, float margin, float nSigTight, float marginTight, float cpt, float cpt1, float cpt2, float cpt3, float bz=0.f, float maxSigma=0.01)
float calcMass(float p2Pos, float p2Neg, float p2V0) const
static constexpr int NPIDParams
std::array< float, NPIDParams > mPars
float getMassPosProng() const
bool checkTight(float p2Pos, float p2Neg, float p2V0, float ptV0) const
bool checkTight(float mass, float pt) const
float getSigma(float pt) const
ClassDefNV(SVertexHypothesis, 2)
float getMassNegProng() const
bool check(float mass, float pt) const
float getSigmaV0Cascade(float pt) const
float getMargin(float pt, bool tight=false) const
float calcMass2(float p2Pos, float p2Neg, float p2V0) const
float getMassV0Hyp() const
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...