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
12 changes: 6 additions & 6 deletions PWGEM/PhotonMeson/Core/HistogramsLibrary.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -502,13 +502,13 @@ void o2::aod::emphotonhistograms::DefineHistograms(THashList* list, const char*
const int nm_hbt = 6;
double m_hbt[nm_hbt] = {0.0, 0.14, 0.5, 1.1, 2.0, 2.7};

const int ndim = 9; // m1, m2, kt, qinv, qlong_cms, qout_cms, qside_cms, qt_cms, qlong_lcms
const int nbins[ndim] = {nm_hbt - 1, nm_hbt - 1, 10, 40, 80, 80, 80, 40, 80};
const double xmin[ndim] = {0.0, 0.0, 0.0, 0.0, -0.4, -0.4, -0.4, 0.0, -0.4};
const double xmax[ndim] = {2.7, 2.7, 1.0, 0.4, +0.4, +0.4, +0.4, +0.4, +0.4};
const int ndim = 8; // m1, m2, kt, qinv, qlong_cms, qout_cms, qside_cms, qlong_lcms
const int nbins[ndim] = {nm_hbt - 1, nm_hbt - 1, 10, 40, 80, 80, 80, 80};
const double xmin[ndim] = {0.0, 0.0, 0.0, 0.0, -0.4, -0.4, -0.4, -0.4};
const double xmax[ndim] = {2.7, 2.7, 1.0, 0.4, +0.4, +0.4, +0.4, +0.4};

THnSparseF* hs_q_same = new THnSparseF("hs_q_same", "hs_q_same;m_{1} (GeV/c^{2});m_{2} (GeV/c^{2});k_{T} (GeV/c);q_{inv} (GeV/c);q_{long}^{CMS} (GeV/c);q_{out}^{CMS} (GeV/c);q_{side}^{CMS} (GeV/c);q_{T}^{CMS} (GeV/c);q_{long}^{LCMS} (GeV/c);", ndim, nbins, xmin, xmax);
THnSparseF* hs_q_mix = new THnSparseF("hs_q_mix", "hs_q_mix;m_{1} (GeV/c^{2});m_{2} (GeV/c^{2});k_{T} (GeV/c);q_{inv} (GeV/c);q_{long}^{CMS} (GeV/c);q_{out}^{CMS} (GeV/c);q_{side}^{CMS} (GeV/c);q_{T}^{CMS} (GeV/c);q_{long}^{LCMS} (GeV/c);", ndim, nbins, xmin, xmax);
THnSparseF* hs_q_same = new THnSparseF("hs_q_same", "hs_q_same;m_{1} (GeV/c^{2});m_{2} (GeV/c^{2});k_{T} (GeV/c);q_{inv} (GeV/c);q_{long}^{CMS} (GeV/c);q_{out}^{CMS} (GeV/c);q_{side}^{CMS} (GeV/c);q_{long}^{LCMS} (GeV/c);", ndim, nbins, xmin, xmax);
THnSparseF* hs_q_mix = new THnSparseF("hs_q_mix", "hs_q_mix;m_{1} (GeV/c^{2});m_{2} (GeV/c^{2});k_{T} (GeV/c);q_{inv} (GeV/c);q_{long}^{CMS} (GeV/c);q_{out}^{CMS} (GeV/c);q_{side}^{CMS} (GeV/c);q_{long}^{LCMS} (GeV/c);", ndim, nbins, xmin, xmax);
hs_q_same->Sumw2();
hs_q_mix->Sumw2();
hs_q_same->SetBinEdges(0, m_hbt);
Expand Down
35 changes: 28 additions & 7 deletions PWGEM/PhotonMeson/TableProducer/photonconversionbuilder.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,11 @@ struct PhotonConversionBuilder {
Configurable<float> maxX{"maxX", 83.1, "max X for track IU"};

// v0 cuts
Configurable<float> min_v0cospa{"min_v0cospa", 0.95, "V0 CosPA"}; // double -> N.B. dcos(x)/dx = 0 at x=0)
Configurable<float> max_dcav0dau{"max_dcav0dau", 3.0, "max distance btween 2 legs"};
Configurable<float> min_v0cospa_tpconly{"min_v0cospa_tpconly", 0.95, "min V0 CosPA to V0s with TPConly tracks"}; // double -> N.B. dcos(x)/dx = 0 at x=0)
Configurable<float> min_v0cospa_its{"min_v0cospa_its", 0.99, "min V0 CosPA to V0s with ITs hits"}; // double -> N.B. dcos(x)/dx = 0 at x=0)
Configurable<float> max_dcav0dau_tpconly{"max_dcav0dau_tpconly", 3.0, "max distance btween 2 legs to V0s with TPConly tracks"};
Configurable<float> max_dcav0dau_its{"max_dcav0dau_its", 0.5, "max distance btween 2 legs to V0s with ITS hits"};
Configurable<float> max_dcav0dau_itsibss{"max_dcav0dau_itsibss", 1.0, "max distance btween 2 legs to V0s with ITS hits on ITSib SS"};
Configurable<float> min_v0radius{"min_v0radius", 1.0, "min v0 radius"};
Configurable<float> margin_r_its{"margin_r_its", 3.0, "margin for r cut in cm"};
Configurable<float> margin_r_tpconly{"margin_r_tpconly", 7.0, "margin for r cut in cm"};
Expand All @@ -103,7 +106,7 @@ struct PhotonConversionBuilder {
Configurable<float> max_eta_v0{"max_eta_v0", 0.9, "max eta for v0 photons at SV"};
Configurable<float> kfMassConstrain{"kfMassConstrain", -1.f, "mass constrain for the KFParticle mother particle"};
Configurable<float> max_r_req_its{"max_r_req_its", 16.0, "max Rxy for V0 with ITS hits"};
Configurable<float> min_r_tpconly{"min_r_tpconly", 32.0, "min Rxy for V0 with TPConly tracks"};
Configurable<float> min_r_tpconly{"min_r_tpconly", 36.0, "min Rxy for V0 with TPConly tracks"};
Configurable<float> max_dcatopv_xy_v0{"max_dcatopv_xy_v0", +1e+10, "max. DCAxy to PV for V0"};
Configurable<float> max_dcatopv_z_v0{"max_dcatopv_z_v0", +1e+10, "max. DCAz to PV for V0"};

Expand Down Expand Up @@ -357,8 +360,14 @@ struct PhotonConversionBuilder {
gammaKF_DecayVtx.TransportToPoint(xyz);

float cospa_kf = cpaFromKF(gammaKF_DecayVtx, KFPV);
if (cospa_kf < min_v0cospa) {
return;
if (!ele.hasITS() && !pos.hasITS()) {
if (cospa_kf < min_v0cospa_tpconly) {
return;
}
} else {
if (cospa_kf < min_v0cospa_its) {
return;
}
}

float rxy = RecoDecay::sqrtSumOfSquares(gammaKF_DecayVtx.GetX(), gammaKF_DecayVtx.GetY());
Expand Down Expand Up @@ -424,8 +433,20 @@ struct PhotonConversionBuilder {
kfp_ele_DecayVtx.TransportToPoint(xyz); // Don't set Primary Vertex

float pca_kf = kfp_pos_DecayVtx.GetDistanceFromParticle(kfp_ele_DecayVtx);
if (pca_kf > max_dcav0dau) {
return;
if (!ele.hasITS() && !pos.hasITS()) {
if (pca_kf > max_dcav0dau_tpconly) {
return;
}
} else {
if (rxy < max_r_req_its) {
if (pca_kf > max_dcav0dau_itsibss) {
return;
}
} else if (rxy < min_r_tpconly) {
if (pca_kf > max_dcav0dau_its) {
return;
}
}
}

float pos_pt = RecoDecay::sqrtSumOfSquares(kfp_pos_DecayVtx.GetPx(), kfp_pos_DecayVtx.GetPy());
Expand Down
15 changes: 6 additions & 9 deletions PWGEM/PhotonMeson/Tasks/PhotonHBT.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -299,7 +299,7 @@ struct PhotonHBT {
ROOT::Math::PtEtaPhiMVector k12 = 0.5 * (v1 + v2);
float qinv = -q12.M();
float kt = k12.Pt();
float qt = q12.Pt();
// float qt = q12.Pt();
float qlong_cms = q12.Pz();

ROOT::Math::XYZVector q_3d = q12.Vect(); // 3D q vector
Expand Down Expand Up @@ -331,8 +331,7 @@ struct PhotonHBT {
values[4] = qlong_cms;
values[5] = qout_cms;
values[6] = qside_cms;
values[7] = qt;
values[8] = qlong_lcms;
values[7] = qlong_lcms;
reinterpret_cast<THnSparseF*>(list_pair_ss->FindObject(Form("%s_%s", cut.GetName(), cut.GetName()))->FindObject(paircut.GetName())->FindObject("hs_q_same"))->Fill(values);
} // end of combination
} // end of pair cut loop
Expand Down Expand Up @@ -369,7 +368,7 @@ struct PhotonHBT {
ROOT::Math::PtEtaPhiMVector k12 = 0.5 * (v1 + v2);
float qinv = -q12.M();
float kt = k12.Pt();
float qt = q12.Pt();
// float qt = q12.Pt();
float qlong_cms = q12.Pz();

ROOT::Math::XYZVector q_3d = q12.Vect(); // 3D q vector
Expand All @@ -393,8 +392,7 @@ struct PhotonHBT {
values[4] = qlong_cms;
values[5] = qout_cms;
values[6] = qside_cms;
values[7] = qt;
values[8] = qlong_lcms;
values[7] = qlong_lcms;
reinterpret_cast<THnSparseF*>(list_pair_ss->FindObject(Form("%s_%s", cut1.GetName(), cut2.GetName()))->FindObject(paircut.GetName())->FindObject("hs_q_same"))->Fill(values);
} // end of combination
} // end of pair cut loop
Expand Down Expand Up @@ -454,7 +452,7 @@ struct PhotonHBT {
ROOT::Math::PtEtaPhiMVector k12 = 0.5 * (v1 + v2);
float qinv = -q12.M();
float kt = k12.Pt();
float qt = q12.Pt();
// float qt = q12.Pt();
float qlong_cms = q12.Pz();

ROOT::Math::XYZVector q_3d = q12.Vect(); // 3D q vector
Expand All @@ -478,8 +476,7 @@ struct PhotonHBT {
values[4] = qlong_cms;
values[5] = qout_cms;
values[6] = qside_cms;
values[7] = qt;
values[8] = qlong_lcms;
values[7] = qlong_lcms;
reinterpret_cast<THnSparseF*>(list_pair_ss->FindObject(Form("%s_%s", cut1.GetName(), cut2.GetName()))->FindObject(paircut.GetName())->FindObject("hs_q_mix"))->Fill(values);
} // end of different photon combinations
} // end of pair cut loop
Expand Down
12 changes: 6 additions & 6 deletions PWGEM/PhotonMeson/Tasks/TaggingPi0.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,8 @@ struct TaggingPi0 {
if (context.mOptions.get<bool>("processPCMPCMibw")) {
fPairNames.push_back("PCMPCMibw");
}
if (context.mOptions.get<bool>("processPCMDalitz")) {
fPairNames.push_back("PCMDalitz");
if (context.mOptions.get<bool>("processPCMDalitzEE")) {
fPairNames.push_back("PCMDalitzEE");
}
if (context.mOptions.get<bool>("processPCMPHOS")) {
fPairNames.push_back("PCMPHOS");
Expand Down Expand Up @@ -140,7 +140,7 @@ struct TaggingPi0 {
} // end of cut1 loop
}

static constexpr std::string_view pairnames[8] = {"PCMPCM", "PHOSPHOS", "EMCEMC", "PCMPHOS", "PCMEMC", "PCMDalitz", "PHOSEMC", "PCMPCMibw"};
static constexpr std::string_view pairnames[8] = {"PCMPCM", "PHOSPHOS", "EMCEMC", "PCMPHOS", "PCMEMC", "PCMDalitzEE", "PCMDalitzMuMu", "PHOSEMC"};
void addhistograms()
{
fMainList->SetOwner(true);
Expand Down Expand Up @@ -171,7 +171,7 @@ struct TaggingPi0 {
if (pairname == "PCMEMC") {
add_pair_histograms(list_pair, pairname, fPCMCuts, fEMCCuts, fPairCuts);
}
if (pairname == "PCMDalitz") {
if (pairname == "PCMDalitzEE") {
add_pair_histograms(list_pair, pairname, fPCMCuts, fDalitzEECuts, fPairCuts);
}

Expand Down Expand Up @@ -467,7 +467,7 @@ struct TaggingPi0 {
SameEventPairing<PairType::kPCMPCMibw>(collisions, v0photons, v0photons, perCollision_pcm, perCollision_pcm, fPCMCuts, fPCMibwCuts, fPairCuts, legs, nullptr);
MixedEventPairing<PairType::kPCMPCMibw>(filtered_collisions, v0photons, v0photons, perCollision_pcm, perCollision_pcm, fPCMCuts, fPCMibwCuts, fPairCuts, legs, nullptr);
}
void processPCMDalitz(MyCollisions const& collisions, MyFilteredCollisions const& filtered_collisions, MyV0Photons const& v0photons, aod::V0Legs const& legs, MyFilteredDalitzEEs const& dielectrons, MyPrimaryElectrons const& emprimaryelectrons)
void processPCMDalitzEE(MyCollisions const& collisions, MyFilteredCollisions const& filtered_collisions, MyV0Photons const& v0photons, aod::V0Legs const& legs, MyFilteredDalitzEEs const& dielectrons, MyPrimaryElectrons const& emprimaryelectrons)
{
SameEventPairing<PairType::kPCMDalitzEE>(collisions, v0photons, dielectrons, perCollision_pcm, perCollision_dalitz, fPCMCuts, fDalitzEECuts, fPairCuts, legs, emprimaryelectrons);
MixedEventPairing<PairType::kPCMDalitzEE>(filtered_collisions, v0photons, dielectrons, perCollision_pcm, perCollision_dalitz, fPCMCuts, fDalitzEECuts, fPairCuts, legs, emprimaryelectrons);
Expand All @@ -491,7 +491,7 @@ struct TaggingPi0 {
}

PROCESS_SWITCH(TaggingPi0, processPCMPCMibw, "pairing PCM-PCMibw", false);
PROCESS_SWITCH(TaggingPi0, processPCMDalitz, "pairing PCM-Dalitz", false);
PROCESS_SWITCH(TaggingPi0, processPCMDalitzEE, "pairing PCM-Dalitz", false);
PROCESS_SWITCH(TaggingPi0, processPCMPHOS, "pairing PCM-PHOS", false);
PROCESS_SWITCH(TaggingPi0, processPCMEMC, "pairing PCM-EMCal", false);
PROCESS_SWITCH(TaggingPi0, processDummy, "Dummy function", true);
Expand Down
12 changes: 6 additions & 6 deletions PWGEM/PhotonMeson/Tasks/TaggingPi0MC.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,8 @@ struct TaggingPi0MC {
if (context.mOptions.get<bool>("processPCMPCMibw")) {
fPairNames.push_back("PCMPCMibw");
}
if (context.mOptions.get<bool>("processPCMDalitz")) {
fPairNames.push_back("PCMDalitz");
if (context.mOptions.get<bool>("processPCMDalitzEE")) {
fPairNames.push_back("PCMDalitzEE");
}
if (context.mOptions.get<bool>("processPCMPHOS")) {
fPairNames.push_back("PCMPHOS");
Expand Down Expand Up @@ -144,7 +144,7 @@ struct TaggingPi0MC {
} // end of cut1 loop
}

static constexpr std::string_view pairnames[8] = {"PCMPCM", "PHOSPHOS", "EMCEMC", "PCMPHOS", "PCMEMC", "PCMDalitz", "PHOSEMC", "PCMPCMibw"};
static constexpr std::string_view pairnames[8] = {"PCMPCM", "PHOSPHOS", "EMCEMC", "PCMPHOS", "PCMEMC", "PCMDalitzEE", "PCMDalitzMuMu", "PHOSEMC"};
void addhistograms()
{
fMainList->SetOwner(true);
Expand Down Expand Up @@ -176,7 +176,7 @@ struct TaggingPi0MC {
if (pairname == "PCMPCMibw") {
add_pair_histograms(list_pair, pairname, fPCMCuts, fPCMibwCuts, fPairCuts);
}
if (pairname == "PCMDalitz") {
if (pairname == "PCMDalitzEE") {
add_pair_histograms(list_pair, pairname, fPCMCuts, fDalitzEECuts, fPairCuts);
}
if (pairname == "PCMPHOS") {
Expand Down Expand Up @@ -500,7 +500,7 @@ struct TaggingPi0MC {
{
TruePairing<PairType::kPCMPCMibw>(collisions, v0photons, v0photons, perCollision_pcm, perCollision_pcm, fPCMCuts, fPCMibwCuts, fPairCuts, legs, nullptr, mcparticles, mccollisions);
}
void processPCMDalitz(MyCollisions const& collisions, MyV0Photons const& v0photons, MyMCV0Legs const& legs, MyFilteredDalitzEEs const& dielectrons, MyMCTracks const& emprimaryelectrons, aod::EMMCParticles const& mcparticles, aod::EMReducedMCEvents const& mccollisions)
void processPCMDalitzEE(MyCollisions const& collisions, MyV0Photons const& v0photons, MyMCV0Legs const& legs, MyFilteredDalitzEEs const& dielectrons, MyMCTracks const& emprimaryelectrons, aod::EMMCParticles const& mcparticles, aod::EMReducedMCEvents const& mccollisions)
{
TruePairing<PairType::kPCMDalitzEE>(collisions, v0photons, dielectrons, perCollision_pcm, perCollision_dalitz, fPCMCuts, fDalitzEECuts, fPairCuts, legs, emprimaryelectrons, mcparticles, mccollisions);
}
Expand All @@ -518,7 +518,7 @@ struct TaggingPi0MC {
void processDummy(MyCollisions const& collision) {}

PROCESS_SWITCH(TaggingPi0MC, processPCMPCMibw, "pairing PCM-PCMibw", false);
PROCESS_SWITCH(TaggingPi0MC, processPCMDalitz, "pairing PCM-Dalitz", false);
PROCESS_SWITCH(TaggingPi0MC, processPCMDalitzEE, "pairing PCM-Dalitz", false);
PROCESS_SWITCH(TaggingPi0MC, processPCMPHOS, "pairing PCM-PHOS", false);
PROCESS_SWITCH(TaggingPi0MC, processPCMEMC, "pairing PCM-EMCal", false);
PROCESS_SWITCH(TaggingPi0MC, processDummy, "Dummy function", true);
Expand Down
4 changes: 2 additions & 2 deletions PWGEM/PhotonMeson/Tasks/dalitzEEQC.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ struct DalitzEEQC {
std::vector<DalitzEECut> fDalitzEECuts;

Configurable<int> cfgCentEstimator{"cfgCentEstimator", 2, "FT0M:0, FT0A:1, FT0C:2"};
Configurable<std::vector<float>> cfgArrCentMin{"cfgArrCentMin", {0.0f, 10.0f, 20.0f, 40.0f, 60.0f, 80.0f}, "cent min array"}; // overlap (e.g. 0, 0) is not allowed.
Configurable<std::vector<float>> cfgArrCentMax{"cfgArrCentMax", {10.0f, 20.0f, 40.0f, 60.0f, 80.0f, 999.f}, "cent max array"}; // overlap (e.g. 10, 20) is not allowed.
Configurable<std::vector<float>> cfgArrCentMin{"cfgArrCentMin", {0.0f, 10.0f, 20.0f, 40.0f, 60.0f, 80.0f}, "cent min array"};
Configurable<std::vector<float>> cfgArrCentMax{"cfgArrCentMax", {10.0f, 20.0f, 40.0f, 60.0f, 80.0f, 999.f}, "cent max array"};
std::vector<float> vec_cent_min;
std::vector<float> vec_cent_max;

Expand Down