Skip to content

Commit c1ea215

Browse files
authored
Merge branch 'AliceO2Group:master' into master
2 parents 650d338 + ea67991 commit c1ea215

5 files changed

Lines changed: 407 additions & 319 deletions

File tree

PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackCascadeExtended.cxx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
211211

212212
void init(InitContext const&)
213213
{
214+
std::vector<double> multBinning = {0.0, 5.0, 10.0, 20.0, 30.0f, 40.0, 50.0, 60.0f, 70.0, 80.0, 100.0, 200.0, 99999.0};
214215
// Axes
215216
AxisSpec aXiMassAxis = {200, 1.28f, 1.36f, "#it{M}_{inv} [GeV/#it{c}^{2}]"};
216217
AxisSpec ptAxis = {100, 0.0f, 10.0f, "#it{p}_{T} (GeV/#it{c})"};
@@ -220,6 +221,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
220221
AxisSpec aCPAAxis = {1000, 0.95f, 1.0f, "#it{cos #theta_{p}}"};
221222
AxisSpec tranRadAxis = {1000, 0.0f, 100.0f, "#it{r}_{xy} (cm)"};
222223
AxisSpec aDCAToPVAxis = {1000, -10.0f, 10.0f, "DCA to PV (cm)"};
224+
AxisSpec multAxis = {multBinning, "Multiplicity"};
223225

224226
// Histograms
225227
rXiQA.add("hMassXi", "hMassXi", {HistType::kTH1F, {aXiMassAxis}});
@@ -238,6 +240,7 @@ struct femtoUniversePairTaskTrackCascadeExtended {
238240
rXiQA.add("hDcaBachtoPV", "hDcaBachtoPV", {HistType::kTH1F, {aDCAToPVAxis}});
239241
rXiQA.add("hDcaV0toPV", "hDcaV0toPV", {HistType::kTH1F, {aDCAToPVAxis}});
240242
rXiQA.add("hInvMpT", "hInvMpT", kTH2F, {{ptAxis}, {aXiMassAxis}});
243+
rXiQA.add("hInvMpTmult", "hInvMpTmult", kTH3F, {{ptAxis}, {aXiMassAxis}, {multAxis}});
241244

242245
eventHisto.init(&qaRegistry);
243246
qaRegistry.add("Tracks_pos/nSigmaTPC", "; #it{p} (GeV/#it{c}); n#sigma_{TPC}", kTH2F, {{100, 0, 10}, {200, -4.975, 5.025}});
@@ -377,6 +380,8 @@ struct femtoUniversePairTaskTrackCascadeExtended {
377380
posChildHistos.fillQA<false, true>(posChild);
378381
negChildHistos.fillQA<false, true>(negChild);
379382
bachHistos.fillQABase<false, true>(bachelor, HIST("hBachelor"));
383+
384+
rXiQA.fill(HIST("hInvMpTmult"), part.pt(), part.mLambda(), multCol);
380385
}
381386

382387
for (const auto& part : groupPartsOne) {

PWGDQ/TableProducer/tableMaker_withAssoc.cxx

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@ using MyBarrelTracksWithCov = soa::Join<aod::Tracks, aod::TracksExtra, aod::Trac
8383
aod::pidTPCFullKa, aod::pidTPCFullPr,
8484
aod::pidTOFFullEl, aod::pidTOFFullMu, aod::pidTOFFullPi,
8585
aod::pidTOFFullKa, aod::pidTOFFullPr, aod::pidTOFbeta>;
86+
using MyBarrelTracksWithCovNoTOF = soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksCov, aod::TracksDCA,
87+
aod::pidTPCFullEl, aod::pidTPCFullPi,
88+
aod::pidTPCFullKa, aod::pidTPCFullPr>;
8689
using MyBarrelTracksWithV0Bits = soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksCov, aod::TracksDCA,
8790
aod::pidTPCFullEl, aod::pidTPCFullMu, aod::pidTPCFullPi,
8891
aod::pidTPCFullKa, aod::pidTPCFullPr,
@@ -129,6 +132,7 @@ constexpr static uint32_t gkEventFillMapWithMultsExtra = VarManager::ObjTypes::B
129132
constexpr static uint32_t gkTrackFillMapWithCov = VarManager::ObjTypes::Track | VarManager::ObjTypes::TrackExtra | VarManager::ObjTypes::TrackDCA | VarManager::ObjTypes::TrackCov | VarManager::ObjTypes::TrackPID | VarManager::ObjTypes::TrackPIDExtra;
130133
constexpr static uint32_t gkTrackFillMapWithV0Bits = gkTrackFillMapWithCov | VarManager::ObjTypes::TrackV0Bits;
131134
constexpr static uint32_t gkTrackFillMapWithV0BitsNoTOF = VarManager::ObjTypes::Track | VarManager::ObjTypes::TrackExtra | VarManager::ObjTypes::TrackDCA | VarManager::ObjTypes::TrackV0Bits | VarManager::ObjTypes::TrackTPCPID;
135+
constexpr static uint32_t gkTrackFillMapNoTOF = VarManager::ObjTypes::Track | VarManager::ObjTypes::TrackExtra | VarManager::ObjTypes::TrackDCA | VarManager::ObjTypes::TrackTPCPID;
132136
// constexpr static uint32_t gkTrackFillMapWithDalitzBits = gkTrackFillMap | VarManager::ObjTypes::DalitzBits;
133137
// constexpr static uint32_t gkMuonFillMap = VarManager::ObjTypes::Muon;
134138
constexpr static uint32_t gkMuonFillMapWithCov = VarManager::ObjTypes::Muon | VarManager::ObjTypes::MuonCov;
@@ -301,6 +305,10 @@ struct TableMaker {
301305
Partition<MyBarrelTracksWithV0BitsNoTOF> tracksPosNoTOF = (((aod::track::flags & static_cast<uint32_t>(o2::aod::track::PVContributor)) == static_cast<uint32_t>(o2::aod::track::PVContributor)) && (aod::track::tgl > static_cast<float>(0.05)));
302306
Partition<MyBarrelTracksWithV0BitsNoTOF> tracksNegNoTOF = (((aod::track::flags & static_cast<uint32_t>(o2::aod::track::PVContributor)) == static_cast<uint32_t>(o2::aod::track::PVContributor)) && (aod::track::tgl < static_cast<float>(-0.05)));
303307

308+
Preslice<MyBarrelTracksWithCovNoTOF> presliceWithCovNoTOF = aod::track::collisionId;
309+
Partition<MyBarrelTracksWithCovNoTOF> tracksPosWithCovNoTOF = (((aod::track::flags & static_cast<uint32_t>(o2::aod::track::PVContributor)) == static_cast<uint32_t>(o2::aod::track::PVContributor)) && (aod::track::tgl > static_cast<float>(0.05)));
310+
Partition<MyBarrelTracksWithCovNoTOF> tracksNegWithCovNoTOF = (((aod::track::flags & static_cast<uint32_t>(o2::aod::track::PVContributor)) == static_cast<uint32_t>(o2::aod::track::PVContributor)) && (aod::track::tgl < static_cast<float>(-0.05)));
311+
304312
struct {
305313
std::map<int32_t, float> oMeanTimeShortA;
306314
std::map<int32_t, float> oMeanTimeShortC;
@@ -363,7 +371,7 @@ struct TableMaker {
363371
// Check whether we have to define barrel or muon histograms
364372
bool enableBarrelHistos = (context.mOptions.get<bool>("processPPWithFilter") || context.mOptions.get<bool>("processPPWithFilterBarrelOnly") || context.mOptions.get<bool>("processPPBarrelOnly") ||
365373
context.mOptions.get<bool>("processPbPb") || context.mOptions.get<bool>("processPbPbBarrelOnly") || context.mOptions.get<bool>("processPbPbBarrelOnlyWithV0Bits") || context.mOptions.get<bool>("processPbPbBarrelOnlyWithV0BitsNoTOF")) ||
366-
context.mOptions.get<bool>("processPbPbWithFilterBarrelOnly") || context.mOptions.get<bool>("processPPBarrelOnlyWithV0s");
374+
context.mOptions.get<bool>("processPbPbWithFilterBarrelOnly") || context.mOptions.get<bool>("processPPBarrelOnlyWithV0s") || context.mOptions.get<bool>("processPbPbBarrelOnlyNoTOF");
367375

368376
bool enableMuonHistos = (context.mOptions.get<bool>("processPPWithFilter") || context.mOptions.get<bool>("processPPWithFilterMuonOnly") || context.mOptions.get<bool>("processPPWithFilterMuonMFT") || context.mOptions.get<bool>("processPPMuonOnly") || context.mOptions.get<bool>("processPPRealignedMuonOnly") || context.mOptions.get<bool>("processPPMuonMFT") || context.mOptions.get<bool>("processPPMuonMFTWithMultsExtra") ||
369377
context.mOptions.get<bool>("processPbPb") || context.mOptions.get<bool>("processPbPbMuonOnly") || context.mOptions.get<bool>("processPbPbRealignedMuonOnly") || context.mOptions.get<bool>("processPbPbMuonMFT"));
@@ -1526,6 +1534,15 @@ struct TableMaker {
15261534
fullSkimming<gkEventFillMapWithCentAndMults, gkTrackFillMapWithCov, 0u, 0u, 0u>(collisions, bcs, nullptr, tracksBarrel, nullptr, nullptr, nullptr, trackAssocs, nullptr, nullptr);
15271535
}
15281536

1537+
// produce the barrel only DQ skimmed data model typically for Pb-Pb (with centrality), no TOF
1538+
void processPbPbBarrelOnlyNoTOF(MyEventsWithCentAndMults const& collisions, BCsWithTimestamps const& bcs,
1539+
MyBarrelTracksWithCovNoTOF const& tracksBarrel,
1540+
TrackAssoc const& trackAssocs)
1541+
{
1542+
computeOccupancyEstimators(collisions, tracksPosWithCovNoTOF, tracksNegWithCovNoTOF, presliceWithCovNoTOF, bcs);
1543+
fullSkimming<gkEventFillMapWithCentAndMults, gkTrackFillMapNoTOF, 0u, 0u, 0u>(collisions, bcs, nullptr, tracksBarrel, nullptr, nullptr, nullptr, trackAssocs, nullptr, nullptr);
1544+
}
1545+
15291546
// produce the barrel-only DQ skimmed data model typically for UPC Pb-Pb (no centrality), subscribe to the DQ rapidity gap event filter (filter-PbPb)
15301547
void processPbPbWithFilterBarrelOnly(MyEventsWithMultsAndRapidityGapFilter const& collisions, MyBCs const& bcs, aod::Zdcs& zdcs,
15311548
MyBarrelTracksWithCov const& tracksBarrel,
@@ -1597,6 +1614,7 @@ struct TableMaker {
15971614
PROCESS_SWITCH(TableMaker, processPPMuonMFTWithMultsExtra, "Build muon + mft DQ skimmed data model typically for pp/p-Pb and UPC Pb-Pb", false);
15981615
PROCESS_SWITCH(TableMaker, processPbPb, "Build full DQ skimmed data model typically for Pb-Pb, w/o event filtering", false);
15991616
PROCESS_SWITCH(TableMaker, processPbPbBarrelOnly, "Build barrel only DQ skimmed data model typically for Pb-Pb, w/o event filtering", false);
1617+
PROCESS_SWITCH(TableMaker, processPbPbBarrelOnlyNoTOF, "Build barrel only DQ skimmed data model typically for Pb-Pb, w/o event filtering, no TOF", false);
16001618
PROCESS_SWITCH(TableMaker, processPbPbWithFilterBarrelOnly, "Build barrel only DQ skimmed data model typically for UPC Pb-Pb, w/ event filtering", false);
16011619
PROCESS_SWITCH(TableMaker, processPbPbBarrelOnlyWithV0Bits, "Build barrel only DQ skimmed data model typically for Pb-Pb, w/ V0 bits, w/o event filtering", false);
16021620
PROCESS_SWITCH(TableMaker, processPbPbBarrelOnlyWithV0BitsNoTOF, "Build barrel only DQ skimmed data model typically for Pb-Pb, w/ V0 bits, no TOF, w/o event filtering", false);

PWGDQ/Tasks/dqFlow.cxx

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,6 @@ struct DQEventQvector {
108108
Produces<ReducedEventsQvectorCentrExtra> eventQvectorCentrExtra;
109109
Produces<ReducedEventsRefFlow> eventRefFlow;
110110
Produces<ReducedEventsQvectorZN> eventQvectorZN;
111-
Produces<ReducedZdc> eventReducedZdc;
112-
Produces<ReducedZdcExtra> eventReducedZdcExtra;
113111

114112
Configurable<std::string> fConfigEventCuts{"cfgEventCuts", "eventStandard", "Event selection"};
115113
Configurable<bool> fConfigQA{"cfgQA", true, "If true, fill QA histograms"};
@@ -537,14 +535,8 @@ struct DQEventQvector {
537535
eventQvectorCentrExtra(collision.qvecTPCallRe(), collision.qvecTPCallIm(), collision.nTrkTPCall());
538536
if (bc.has_zdc()) {
539537
eventQvectorZN(VarManager::fgValues[VarManager::kQ1ZNAX], VarManager::fgValues[VarManager::kQ1ZNAY], VarManager::fgValues[VarManager::kQ1ZNCX], VarManager::fgValues[VarManager::kQ1ZNCY]);
540-
eventReducedZdc(VarManager::fgValues[VarManager::kEnergyCommonZNA], VarManager::fgValues[VarManager::kEnergyCommonZNC], VarManager::fgValues[VarManager::kEnergyCommonZPA], VarManager::fgValues[VarManager::kEnergyCommonZPC],
541-
VarManager::fgValues[VarManager::kTimeZNA], VarManager::fgValues[VarManager::kTimeZNC], VarManager::fgValues[VarManager::kTimeZPA], VarManager::fgValues[VarManager::kTimeZPC]);
542-
eventReducedZdcExtra(VarManager::fgValues[VarManager::kEnergyZNA1], VarManager::fgValues[VarManager::kEnergyZNA2], VarManager::fgValues[VarManager::kEnergyZNA3], VarManager::fgValues[VarManager::kEnergyZNA4],
543-
VarManager::fgValues[VarManager::kEnergyZNC1], VarManager::fgValues[VarManager::kEnergyZNC2], VarManager::fgValues[VarManager::kEnergyZNC3], VarManager::fgValues[VarManager::kEnergyZNC4]);
544538
} else {
545539
eventQvectorZN(-999, -999, -999, -999);
546-
eventReducedZdc(-999, -999, -999, -999, -999, -999, -999, -999);
547-
eventReducedZdcExtra(-999, -999, -999, -999, -999, -999, -999, -999);
548540
}
549541
}
550542
}

PWGLF/TableProducer/Common/spvector.cxx

Lines changed: 27 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include <TMath.h>
2222
#include <array>
2323
#include <cmath>
24+
#include <iostream>
2425
#include "Math/Vector4D.h"
2526
#include "TRandom3.h"
2627
#include "TF1.h"
@@ -305,11 +306,11 @@ struct spvector {
305306
TAxis* channelAxis = hrecentereSp->GetAxis(4); // Axis 4: channel
306307

307308
// Find bin indices for centrality, vx, vy, vz, and channel (for meanxA, 0.5)
308-
binCoords[0] = centralityAxis->FindBin(centrality); // Centrality
309-
binCoords[1] = vxAxis->FindBin(vx); // vx
310-
binCoords[2] = vyAxis->FindBin(vy); // vy
311-
binCoords[3] = vzAxis->FindBin(vz); // vz
312-
binCoords[4] = channelAxis->FindBin(0.5); // Channel for meanxA
309+
binCoords[0] = centralityAxis->FindBin(centrality + 0.00001); // Centrality
310+
binCoords[1] = vxAxis->FindBin(vx + 0.00001); // vx
311+
binCoords[2] = vyAxis->FindBin(vy + 0.00001); // vy
312+
binCoords[3] = vzAxis->FindBin(vz + 0.00001); // vz
313+
binCoords[4] = channelAxis->FindBin(0.5); // Channel for meanxA
313314

314315
// Get the global bin for meanxA
315316
int globalBinMeanxA = hrecentereSp->GetBin(binCoords);
@@ -353,25 +354,25 @@ struct spvector {
353354
hrecenterevzSp = ccdb->getForTimeStamp<TH2F>(ConfRecenterevzSpp.value, ts);
354355
}*/
355356

356-
double meanxAcent = hrecenterecentSp->GetBinContent(hrecenterecentSp->FindBin(centrality, 0.5));
357-
double meanyAcent = hrecenterecentSp->GetBinContent(hrecenterecentSp->FindBin(centrality, 1.5));
358-
double meanxCcent = hrecenterecentSp->GetBinContent(hrecenterecentSp->FindBin(centrality, 2.5));
359-
double meanyCcent = hrecenterecentSp->GetBinContent(hrecenterecentSp->FindBin(centrality, 3.5));
357+
double meanxAcent = hrecenterecentSp->GetBinContent(hrecenterecentSp->FindBin(centrality + 0.00001, 0.5));
358+
double meanyAcent = hrecenterecentSp->GetBinContent(hrecenterecentSp->FindBin(centrality + 0.00001, 1.5));
359+
double meanxCcent = hrecenterecentSp->GetBinContent(hrecenterecentSp->FindBin(centrality + 0.00001, 2.5));
360+
double meanyCcent = hrecenterecentSp->GetBinContent(hrecenterecentSp->FindBin(centrality + 0.00001, 3.5));
360361

361-
double meanxAvx = hrecenterevxSp->GetBinContent(hrecenterevxSp->FindBin(vx, 0.5));
362-
double meanyAvx = hrecenterevxSp->GetBinContent(hrecenterevxSp->FindBin(vx, 1.5));
363-
double meanxCvx = hrecenterevxSp->GetBinContent(hrecenterevxSp->FindBin(vx, 2.5));
364-
double meanyCvx = hrecenterevxSp->GetBinContent(hrecenterevxSp->FindBin(vx, 3.5));
362+
double meanxAvx = hrecenterevxSp->GetBinContent(hrecenterevxSp->FindBin(vx + 0.00001, 0.5));
363+
double meanyAvx = hrecenterevxSp->GetBinContent(hrecenterevxSp->FindBin(vx + 0.00001, 1.5));
364+
double meanxCvx = hrecenterevxSp->GetBinContent(hrecenterevxSp->FindBin(vx + 0.00001, 2.5));
365+
double meanyCvx = hrecenterevxSp->GetBinContent(hrecenterevxSp->FindBin(vx + 0.00001, 3.5));
365366

366-
double meanxAvy = hrecenterevySp->GetBinContent(hrecenterevySp->FindBin(vy, 0.5));
367-
double meanyAvy = hrecenterevySp->GetBinContent(hrecenterevySp->FindBin(vy, 1.5));
368-
double meanxCvy = hrecenterevySp->GetBinContent(hrecenterevySp->FindBin(vy, 2.5));
369-
double meanyCvy = hrecenterevySp->GetBinContent(hrecenterevySp->FindBin(vy, 3.5));
367+
double meanxAvy = hrecenterevySp->GetBinContent(hrecenterevySp->FindBin(vy + 0.00001, 0.5));
368+
double meanyAvy = hrecenterevySp->GetBinContent(hrecenterevySp->FindBin(vy + 0.00001, 1.5));
369+
double meanxCvy = hrecenterevySp->GetBinContent(hrecenterevySp->FindBin(vy + 0.00001, 2.5));
370+
double meanyCvy = hrecenterevySp->GetBinContent(hrecenterevySp->FindBin(vy + 0.00001, 3.5));
370371

371-
double meanxAvz = hrecenterevzSp->GetBinContent(hrecenterevzSp->FindBin(vz, 0.5));
372-
double meanyAvz = hrecenterevzSp->GetBinContent(hrecenterevzSp->FindBin(vz, 1.5));
373-
double meanxCvz = hrecenterevzSp->GetBinContent(hrecenterevzSp->FindBin(vz, 2.5));
374-
double meanyCvz = hrecenterevzSp->GetBinContent(hrecenterevzSp->FindBin(vz, 3.5));
372+
double meanxAvz = hrecenterevzSp->GetBinContent(hrecenterevzSp->FindBin(vz + 0.00001, 0.5));
373+
double meanyAvz = hrecenterevzSp->GetBinContent(hrecenterevzSp->FindBin(vz + 0.00001, 1.5));
374+
double meanxCvz = hrecenterevzSp->GetBinContent(hrecenterevzSp->FindBin(vz + 0.00001, 2.5));
375+
double meanyCvz = hrecenterevzSp->GetBinContent(hrecenterevzSp->FindBin(vz + 0.00001, 3.5));
375376

376377
qxZDCA = qxZDCA - meanxAcent - meanxAvx - meanxAvy - meanxAvz;
377378
qyZDCA = qyZDCA - meanyAcent - meanyAvx - meanyAvy - meanyAvz;
@@ -440,7 +441,7 @@ struct spvector {
440441
}
441442

442443
// if (collision.sel8() && centrality > cfgCutCentralityMin && centrality < cfgCutCentralityMax && TMath::Abs(vz) < cfgCutVertex && collision.has_foundFT0() && eventSelected(collision, centrality) && collision.selection_bit(aod::evsel::kNoTimeFrameBorder) && collision.selection_bit(aod::evsel::kNoITSROFrameBorder)) {
443-
if (collision.sel8() && centrality > cfgCutCentralityMin && centrality < cfgCutCentralityMax && TMath::Abs(vz) < cfgCutVertex && collision.has_foundFT0() && collision.selection_bit(aod::evsel::kNoTimeFrameBorder) && collision.selection_bit(aod::evsel::kNoITSROFrameBorder)) {
444+
if (collision.sel8() && centrality > cfgCutCentralityMin && centrality < cfgCutCentralityMax && TMath::Abs(vz) < cfgCutVertex && collision.has_foundFT0() && collision.selection_bit(aod::evsel::kNoTimeFrameBorder) && collision.selection_bit(aod::evsel::kNoITSROFrameBorder) && collision.selection_bit(aod::evsel::kIsGoodZvtxFT0vsPV)) {
444445
triggerevent = true;
445446
if (useGainCallib && (currentRunNumber != lastRunNumber)) {
446447
gainprofile = ccdb->getForTimeStamp<TH2D>(ConfGainPath.value, bc.timestamp());
@@ -457,7 +458,7 @@ struct spvector {
457458
for (std::size_t iChA = 0; iChA < 8; iChA++) {
458459
auto chanelid = iChA;
459460
if (useGainCallib && gainprofile) {
460-
gainequal = gainprofile->GetBinContent(gainprofile->FindBin(vz, chanelid + 0.5));
461+
gainequal = gainprofile->GetBinContent(gainprofile->FindBin(vz + 0.00001, chanelid + 0.5));
461462
}
462463

463464
if (iChA < 4) {
@@ -530,6 +531,7 @@ struct spvector {
530531

531532
Bool_t res = 0;
532533
Bool_t resfine = 0;
534+
Int_t check = 1;
533535

534536
if (coarse1) {
535537
if (useRecentereSp && (currentRunNumber != lastRunNumber)) {
@@ -624,7 +626,8 @@ struct spvector {
624626
res = Correctcoarse(hrecentereSpA[5], centrality, vx, vy, vz, qxZDCA, qyZDCA, qxZDCC, qyZDCC);
625627
}
626628

627-
if (res == 0 || resfine == 0) {
629+
if (res == 0 && resfine == 0 && check == 0) {
630+
LOG(info) << "Histograms are null";
628631
}
629632
psiZDCC = 1.0 * TMath::ATan2(qyZDCC, qxZDCC);
630633
psiZDCA = 1.0 * TMath::ATan2(qyZDCA, qxZDCA);

0 commit comments

Comments
 (0)