Skip to content

Commit 8333115

Browse files
authored
[PWGDQ] Updates for X(3872) analysis (#8898)
1 parent d0ea950 commit 8333115

File tree

7 files changed

+628
-165
lines changed

7 files changed

+628
-165
lines changed

PWGDQ/Core/CutsLibrary.cxx

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -907,7 +907,7 @@ AnalysisCompositeCut* o2::aod::dqcuts::GetCompositeCut(const char* cutName)
907907
}
908908

909909
if (!nameStr.compare("Jpsi_TPCPost_calib_debug8")) {
910-
cut->AddCut(GetAnalysisCut("jpsi_trackCut_debug3"));
910+
cut->AddCut(GetAnalysisCut("jpsi_trackCut_debug5"));
911911
cut->AddCut(GetAnalysisCut("jpsi_TPCPID_debug8"));
912912
return cut;
913913
}
@@ -3897,6 +3897,14 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)
38973897
return cut;
38983898
}
38993899

3900+
if (!nameStr.compare("jpsi_trackCut_debug5")) {
3901+
cut->AddCut(VarManager::kEta, -0.9, 0.9);
3902+
cut->AddCut(VarManager::kTPCchi2, 0.0, 4.0);
3903+
cut->AddCut(VarManager::kTPCncls, 70., 159);
3904+
cut->AddCut(VarManager::kIsITSibAny, 0.5, 1.5);
3905+
return cut;
3906+
}
3907+
39003908
if (!nameStr.compare("lmee_trackCut_debug")) {
39013909
cut->AddCut(VarManager::kEta, -0.9, 0.9);
39023910
cut->AddCut(VarManager::kTPCchi2, 0.0, 4.0);
@@ -4155,9 +4163,7 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)
41554163
if (!nameStr.compare("pionQualityCut1")) {
41564164
cut->AddCut(VarManager::kPt, 0.15, 1000.0);
41574165
cut->AddCut(VarManager::kIsITSibAny, 0.5, 1.5);
4158-
cut->AddCut(VarManager::kTPCncls, 100, 161);
4159-
cut->AddCut(VarManager::kTrackDCAxy, -0.05, 0.05);
4160-
cut->AddCut(VarManager::kTrackDCAz, -0.1, 0.1);
4166+
cut->AddCut(VarManager::kTPCncls, 70, 161);
41614167
return cut;
41624168
}
41634169

@@ -4431,10 +4437,11 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)
44314437
}
44324438

44334439
if (!nameStr.compare("jpsi_TPCPID_debug8")) {
4434-
cut->AddCut(VarManager::kTOFbeta, 0.975, 1.025, false, VarManager::kPin, 0.0, 3.0);
4435-
cut->AddCut(VarManager::kTPCnSigmaEl, -3.0, 4.0);
4436-
cut->AddCut(VarManager::kTPCnSigmaPi, 2.0, 999, false, VarManager::kPin, 3.0, 999.0);
4437-
cut->AddCut(VarManager::kTPCnSigmaPr, 2.0, 999, false, VarManager::kPin, 3.0, 999.0);
4440+
cut->AddCut(VarManager::kTPCnSigmaEl, -2.0, 3.0, false, VarManager::kPin, 0.0, 3.0);
4441+
cut->AddCut(VarManager::kTPCnSigmaEl, -3.0, 3.0, false, VarManager::kPin, 3.0, 999.0);
4442+
cut->AddCut(VarManager::kTPCnSigmaPi, 3.0, 999, false, VarManager::kPin, 0.0, 3.0);
4443+
cut->AddCut(VarManager::kTPCnSigmaPi, 2.0, 999, false, VarManager::kPin, 5.0, 999.0);
4444+
cut->AddCut(VarManager::kTPCnSigmaPr, 3.0, 999, false, VarManager::kPin, 3.0, 999.0);
44384445
return cut;
44394446
}
44404447

@@ -5864,7 +5871,7 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)
58645871
}
58655872

58665873
if (!nameStr.compare("pairX3872")) {
5867-
cut->AddCut(VarManager::kCosthetaDileptonDitrack, 0.98, 1);
5874+
cut->AddCut(VarManager::kQ, 0.0, 0.3);
58685875
return cut;
58695876
}
58705877

PWGDQ/Core/HistogramsLibrary.cxx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -854,6 +854,17 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h
854854
hm->AddHistogram(histClass, "Eta_Pt", "", false, 40, -2.0, 2.0, VarManager::kEta, 200, 0.0, 20.0, VarManager::kPt);
855855
hm->AddHistogram(histClass, "Phi_Eta", "#phi vs #eta distribution", false, 200, -5.0, 5.0, VarManager::kEta, 200, -2. * o2::constants::math::PI, 2. * o2::constants::math::PI, VarManager::kPhi);
856856
}
857+
if (!groupStr.CompareTo("mctruth_quad")) {
858+
hm->AddHistogram(histClass, "hMass_defaultDileptonMass", "", false, 1000, 3.0, 5.0, VarManager::kQuadDefaultDileptonMass);
859+
hm->AddHistogram(histClass, "hPt", "", false, 150, 0.0, 15.0, VarManager::kQuadPt);
860+
hm->AddHistogram(histClass, "hMass_defaultDileptonMass_Pt", "", false, 100, 3.0, 5.0, VarManager::kQuadDefaultDileptonMass, 150, 0.0, 15.0, VarManager::kQuadPt);
861+
hm->AddHistogram(histClass, "hQ", "", false, 150, 0.0, 3.0, VarManager::kQ);
862+
hm->AddHistogram(histClass, "hDeltaR1", "", false, 100, 0.0, 10.0, VarManager::kDeltaR1);
863+
hm->AddHistogram(histClass, "hDeltaR2", "", false, 100, 0.0, 10.0, VarManager::kDeltaR2);
864+
hm->AddHistogram(histClass, "hDiTrackMass", "", false, 300, 0.0, 3.0, VarManager::kDitrackMass);
865+
hm->AddHistogram(histClass, "hMCPt_MCRap", "", false, 200, 0.0, 20.0, VarManager::kMCPt, 100, -2.0, 2.0, VarManager::kMCY);
866+
hm->AddHistogram(histClass, "hMCPhi", "", false, 100, -TMath::Pi(), TMath::Pi(), VarManager::kMCPhi);
867+
}
857868
if (!groupStr.CompareTo("mctruth_track")) {
858869
hm->AddHistogram(histClass, "PtMC", "MC pT", false, 200, 0.0, 20.0, VarManager::kMCPt);
859870
hm->AddHistogram(histClass, "EtaMC", "MC #eta", false, 50, -5.0, 5.0, VarManager::kMCEta);

PWGDQ/Core/MCSignalLibrary.cxx

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1325,5 +1325,83 @@ MCSignal* o2::aod::dqmcsignals::GetMCSignal(const char* name)
13251325
signal = new MCSignal(name, "Photon and electron pair from Pi0", {pronge, pronge, prongPhoton}, {1, 1, 1});
13261326
return signal;
13271327
}
1328+
1329+
//--------------------------------------------------------------------------------
1330+
1331+
if (!nameStr.compare("JpsiFromX3872")) {
1332+
MCProng prong(1, {443}, {true}, {false}, {0}, {0}, {false}, false, {9920443}, {false});
1333+
signal = new MCSignal(name, "Jpsi from X3872", {prong}, {-1});
1334+
return signal;
1335+
}
1336+
1337+
if (!nameStr.compare("eFromX3872")) {
1338+
MCProng prong(3, {11, 443, 9920443}, {true, true, true}, {false, false, false}, {0, 0, 0}, {0, 0, 0}, {false, false, false});
1339+
signal = new MCSignal(name, "Electron from Jpsi from X3872", {prong}, {1});
1340+
return signal;
1341+
}
1342+
1343+
if (!nameStr.compare("PionFromX3872")) {
1344+
MCProng prong(1, {211}, {true}, {false}, {0}, {0}, {false}, false, {9920443}, {false});
1345+
signal = new MCSignal(name, "Pion from Jpsi from X3872", {prong}, {-1});
1346+
return signal;
1347+
}
1348+
1349+
if (!nameStr.compare("JpsiFromPsi2S")) {
1350+
MCProng prong(1, {443}, {true}, {false}, {0}, {0}, {false}, false, {100443}, {false});
1351+
signal = new MCSignal(name, "Jpsi from Psi2S", {prong}, {-1});
1352+
return signal;
1353+
}
1354+
1355+
if (!nameStr.compare("eFromPsi2S")) {
1356+
MCProng prong(3, {11, 443, 100443}, {true, true, true}, {false, false, false}, {0, 0, 0}, {0, 0, 0}, {false, false, false});
1357+
signal = new MCSignal(name, "Electron from Jpsi from Psi2S", {prong}, {1});
1358+
return signal;
1359+
}
1360+
1361+
if (!nameStr.compare("PionFromPsi2S")) {
1362+
MCProng prong(1, {211}, {true}, {false}, {0}, {0}, {false}, false, {100443}, {false});
1363+
signal = new MCSignal(name, "Pion from Jpsi from Psi2S", {prong}, {-1});
1364+
return signal;
1365+
}
1366+
1367+
if (!nameStr.compare("eeFromJpsiFromX3872")) {
1368+
MCProng prong(2, {11, 443}, {true, true}, {false, false}, {0, 0}, {0, 0}, {false, false}, false, {9920443}, {false});
1369+
signal = new MCSignal(name, "Electron pair from Jpsi from X3872", {prong, prong}, {1, 1});
1370+
return signal;
1371+
}
1372+
1373+
if (!nameStr.compare("JpsiPiPiFromX3872")) {
1374+
MCProng prongJpsi(2, {443, 9920443}, {true, true}, {false, false}, {0, 0}, {0, 0}, {false, false});
1375+
MCProng prongPi(2, {211, 9920443}, {true, true}, {false, false}, {0, 0}, {0, 0}, {false, false});
1376+
signal = new MCSignal(name, "Jpsi and pion pair from X3872", {prongJpsi, prongPi, prongPi}, {1, 1, 1});
1377+
return signal;
1378+
}
1379+
1380+
if (!nameStr.compare("eePiPiFromX3872")) {
1381+
MCProng pronge(3, {11, 443, 9920443}, {true, true, true}, {false, false, false}, {0, 0, 0}, {0, 0, 0}, {false, false, false});
1382+
MCProng prongPi(2, {211, 9920443}, {true, true}, {false, false}, {0, 0}, {0, 0}, {false, false});
1383+
signal = new MCSignal(name, "Electron pair and pion pair from X3872", {pronge, pronge, prongPi, prongPi}, {2, 2, 1, 1});
1384+
return signal;
1385+
}
1386+
1387+
if (!nameStr.compare("eeFromJpsiFromPsi2S")) {
1388+
MCProng prong(2, {11, 443}, {true, true}, {false, false}, {0, 0}, {0, 0}, {false, false}, false, {100443}, {false});
1389+
signal = new MCSignal(name, "Electron pair from Jpsi from Psi2S", {prong, prong}, {1, 1});
1390+
return signal;
1391+
}
1392+
1393+
if (!nameStr.compare("JpsiPiPiFromPsi2S")) {
1394+
MCProng prongJpsi(2, {443, 100443}, {true, true}, {false, false}, {0, 0}, {0, 0}, {false, false});
1395+
MCProng prongPi(2, {211, 100443}, {true, true}, {false, false}, {0, 0}, {0, 0}, {false, false});
1396+
signal = new MCSignal(name, "Jpsi and pion pair from Psi2S", {prongJpsi, prongPi, prongPi}, {1, 1, 1});
1397+
return signal;
1398+
}
1399+
1400+
if (!nameStr.compare("eePiPiFromPsi2S")) {
1401+
MCProng pronge(3, {11, 443, 100443}, {true, true, true}, {false, false, false}, {0, 0, 0}, {0, 0, 0}, {false, false, false});
1402+
MCProng prongPi(2, {211, 100443}, {true, true}, {false, false}, {0, 0}, {0, 0}, {false, false});
1403+
signal = new MCSignal(name, "Electron pair and pion pair from Psi2S", {pronge, pronge, prongPi, prongPi}, {2, 2, 1, 1});
1404+
return signal;
1405+
}
13281406
return nullptr;
13291407
}

PWGDQ/Core/VarManager.h

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -989,6 +989,8 @@ class VarManager : public TObject
989989
static void FillPairMC(T1 const& t1, T2 const& t2, float* values = nullptr, PairCandidateType pairType = kDecayToEE);
990990
template <typename T1, typename T2, typename T3>
991991
static void FillTripleMC(T1 const& t1, T2 const& t2, T3 const& t3, float* values = nullptr, PairCandidateType pairType = kTripleCandidateToEEPhoton);
992+
template <int candidateType, typename T1, typename T2>
993+
static void FillQaudMC(T1 const& t1, T2 const& t2, T2 const& t3, float* values = nullptr);
992994
template <int pairType, uint32_t collFillMap, uint32_t fillMap, typename C, typename T>
993995
static void FillPairVertexing(C const& collision, T const& t1, T const& t2, bool propToSV = false, float* values = nullptr);
994996
template <uint32_t collFillMap, uint32_t fillMap, typename C, typename T>
@@ -4556,6 +4558,40 @@ void VarManager::FillDileptonTrackTrack(T1 const& dilepton, T2 const& hadron1, T
45564558
}
45574559
}
45584560

4561+
//__________________________________________________________________
4562+
template <int candidateType, typename T1, typename T2>
4563+
void VarManager::FillQaudMC(T1 const& dilepton, T2 const& track1, T2 const& track2, float* values)
4564+
{
4565+
if (!values) {
4566+
values = fgValues;
4567+
}
4568+
4569+
double defaultDileptonMass = 3.096;
4570+
double hadronMass1 = o2::constants::physics::MassPionCharged;
4571+
double hadronMass2 = o2::constants::physics::MassPionCharged;
4572+
if (candidateType == kXtoJpsiPiPi) {
4573+
defaultDileptonMass = 3.096;
4574+
hadronMass1 = o2::constants::physics::MassPionCharged;
4575+
hadronMass2 = o2::constants::physics::MassPionCharged;
4576+
}
4577+
4578+
ROOT::Math::PtEtaPhiMVector v1(dilepton.pt(), dilepton.eta(), dilepton.phi(), defaultDileptonMass);
4579+
ROOT::Math::PtEtaPhiMVector v2(track1.pt(), track1.eta(), track1.phi(), hadronMass1);
4580+
ROOT::Math::PtEtaPhiMVector v3(track2.pt(), track2.eta(), track2.phi(), hadronMass2);
4581+
ROOT::Math::PtEtaPhiMVector v123 = v1 + v2 + v3;
4582+
ROOT::Math::PtEtaPhiMVector v23 = v2 + v3;
4583+
values[kQuadMass] = v123.M();
4584+
values[kQuadDefaultDileptonMass] = v123.M();
4585+
values[kQuadPt] = v123.Pt();
4586+
values[kQuadEta] = v123.Eta();
4587+
values[kQuadPhi] = v123.Phi();
4588+
values[kQ] = v123.M() - defaultDileptonMass - v23.M();
4589+
values[kDeltaR1] = sqrt(pow(v1.Eta() - v2.Eta(), 2) + pow(v1.Phi() - v2.Phi(), 2));
4590+
values[kDeltaR2] = sqrt(pow(v1.Eta() - v3.Eta(), 2) + pow(v1.Phi() - v3.Phi(), 2));
4591+
values[kDitrackMass] = v23.M();
4592+
values[kDitrackPt] = v23.Pt();
4593+
}
4594+
45594595
//__________________________________________________________________
45604596
template <int pairType, typename T1, typename T2>
45614597
float VarManager::calculatePhiV(T1 const& t1, T2 const& t2)

PWGDQ/DataModel/ReducedInfoTables.h

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -893,6 +893,62 @@ DECLARE_SOA_TABLE(DileptonTrackCandidates, "AOD", "RTDILEPTONTRACK", //!
893893

894894
using DileptonTrackCandidate = DileptonTrackCandidates::iterator;
895895

896+
// candidate information
897+
namespace dileptonTrackTrackCandidate
898+
{
899+
// infotmation about the dilepton-track-track
900+
DECLARE_SOA_COLUMN(Mass, mass, float); //!
901+
DECLARE_SOA_COLUMN(Pt, pt, float); //!
902+
DECLARE_SOA_COLUMN(Eta, eta, float); //!
903+
DECLARE_SOA_COLUMN(Phi, phi, float); //!
904+
DECLARE_SOA_COLUMN(Rap, rap, float); //!
905+
DECLARE_SOA_COLUMN(DeltaQ, deltaQ, float); //!
906+
DECLARE_SOA_COLUMN(R1, r1, float); //! distance between the dilepton and the track1 in theta-phi plane
907+
DECLARE_SOA_COLUMN(R2, r2, float); //! distance between the dilepton and the track2 in theta-phi plane
908+
DECLARE_SOA_COLUMN(DileptonMass, dileptonMass, float); //!
909+
DECLARE_SOA_COLUMN(DileptonPt, dileptonPt, float); //!
910+
DECLARE_SOA_COLUMN(DileptonEta, dileptonEta, float); //!
911+
DECLARE_SOA_COLUMN(DileptonPhi, dileptonPhi, float); //!
912+
DECLARE_SOA_COLUMN(DileptonSign, dileptonSign, int); //!
913+
DECLARE_SOA_COLUMN(DiTracksMass, diTracksMass, float); //!
914+
DECLARE_SOA_COLUMN(DiTracksPt, diTracksPt, float); //!
915+
DECLARE_SOA_COLUMN(TrackPt1, trackPt1, float); //!
916+
DECLARE_SOA_COLUMN(TrackPt2, trackPt2, float); //!
917+
DECLARE_SOA_COLUMN(TrackEta1, trackEta1, float); //!
918+
DECLARE_SOA_COLUMN(TrackEta2, trackEta2, float); //!
919+
DECLARE_SOA_COLUMN(TrackPhi1, trackPhi1, float); //!
920+
DECLARE_SOA_COLUMN(TrackPhi2, trackPhi2, float); //!
921+
DECLARE_SOA_COLUMN(TrackSign1, trackSign1, int); //!
922+
DECLARE_SOA_COLUMN(TrackSign2, trackSign2, int); //!
923+
} // namespace dileptonTrackTrackCandidate
924+
925+
DECLARE_SOA_TABLE(DileptonTrackTrackCandidates, "AOD", "RTDQUADPLET", //!
926+
dileptonTrackTrackCandidate::Mass,
927+
dileptonTrackTrackCandidate::Pt,
928+
dileptonTrackTrackCandidate::Eta,
929+
dileptonTrackTrackCandidate::Phi,
930+
dileptonTrackTrackCandidate::Rap,
931+
dileptonTrackTrackCandidate::DeltaQ,
932+
dileptonTrackTrackCandidate::R1,
933+
dileptonTrackTrackCandidate::R2,
934+
dileptonTrackTrackCandidate::DileptonMass,
935+
dileptonTrackTrackCandidate::DileptonPt,
936+
dileptonTrackTrackCandidate::DileptonEta,
937+
dileptonTrackTrackCandidate::DileptonPhi,
938+
dileptonTrackTrackCandidate::DileptonSign,
939+
dileptonTrackTrackCandidate::DiTracksMass,
940+
dileptonTrackTrackCandidate::DiTracksPt,
941+
dileptonTrackTrackCandidate::TrackPt1,
942+
dileptonTrackTrackCandidate::TrackPt2,
943+
dileptonTrackTrackCandidate::TrackEta1,
944+
dileptonTrackTrackCandidate::TrackEta2,
945+
dileptonTrackTrackCandidate::TrackPhi1,
946+
dileptonTrackTrackCandidate::TrackPhi2,
947+
dileptonTrackTrackCandidate::TrackSign1,
948+
dileptonTrackTrackCandidate::TrackSign2);
949+
950+
using DileptonTrackTrackCandidate = DileptonTrackTrackCandidates::iterator;
951+
896952
namespace v0bits
897953
{
898954
DECLARE_SOA_COLUMN(PIDBit, pidbit, uint8_t); //!

0 commit comments

Comments
 (0)