Skip to content

Commit 535214d

Browse files
pbuehlerchengtt0406
authored andcommitted
PWG-UD: correct error in DGCandProducer (AliceO2Group#3431)
* Added production of tables UDCollsLabels and UDTracksLabels * Removed all relations to Mc tables in DGCandProducer * Adapted histogram definitions in DGCandAnalyzer
1 parent 802a0f5 commit 535214d

File tree

3 files changed

+17
-30
lines changed

3 files changed

+17
-30
lines changed

PWGUD/TableProducer/DGBCCandProducer.cxx

+11-6
Original file line numberDiff line numberDiff line change
@@ -221,13 +221,15 @@ struct DGBCCandProducer {
221221
// data tables
222222
Produces<aod::UDCollisions> outputCollisions;
223223
Produces<aod::UDCollisionsSels> outputCollisionsSels;
224+
Produces<aod::UDCollsLabels> outputCollsLabels;
224225
Produces<aod::UDZdcs> outputZdcs;
225226
Produces<aod::UDTracks> outputTracks;
226227
Produces<aod::UDTracksCov> outputTracksCov;
227228
Produces<aod::UDTracksDCA> outputTracksDCA;
228229
Produces<aod::UDTracksPID> outputTracksPID;
229230
Produces<aod::UDTracksExtra> outputTracksExtra;
230231
Produces<aod::UDTracksFlags> outputTracksFlag;
232+
Produces<aod::UDTracksLabels> outputTracksLabel;
231233

232234
// get a DGCutparHolder
233235
DGCutparHolder diffCuts = DGCutparHolder();
@@ -258,7 +260,7 @@ struct DGBCCandProducer {
258260

259261
// update UDTables
260262
template <typename TTracks>
261-
void updateUDTables(bool onlyPV, uint64_t bcnum, int rnum, float vx, float vy, float vz,
263+
void updateUDTables(bool onlyPV, int64_t colID, uint64_t bcnum, int rnum, float vx, float vy, float vz,
262264
uint16_t const& ntrks, int8_t const& ncharge, float const& rtrwTOF,
263265
TTracks const& tracks, upchelpers::FITInfo const& fitInfo)
264266
{
@@ -271,6 +273,7 @@ struct DGBCCandProducer {
271273
fitInfo.BBFT0Apf, fitInfo.BBFT0Cpf, fitInfo.BGFT0Apf, fitInfo.BGFT0Cpf,
272274
fitInfo.BBFV0Apf, fitInfo.BGFV0Apf,
273275
fitInfo.BBFDDApf, fitInfo.BBFDDCpf, fitInfo.BGFDDApf, fitInfo.BGFDDCpf);
276+
outputCollsLabels(colID);
274277

275278
// update DGTracks tables
276279
for (auto const& track : tracks) {
@@ -327,6 +330,7 @@ struct DGBCCandProducer {
327330
track.detectorMap());
328331
outputTracksFlag(track.has_collision(),
329332
track.isPVContributor());
333+
outputTracksLabel(track.globalIndex());
330334
}
331335

332336
void init(InitContext& context)
@@ -393,7 +397,7 @@ struct DGBCCandProducer {
393397
rtrwTOF = udhelpers::rPVtrwTOF<true>(colTracks, col.numContrib());
394398
nCharge = udhelpers::netCharge<true>(colTracks);
395399

396-
updateUDTables(false, bc.globalBC(), bc.runNumber(), col.posX(), col.posY(), col.posZ(),
400+
updateUDTables(false, col.globalIndex(), bc.globalBC(), bc.runNumber(), col.posX(), col.posY(), col.posZ(),
397401
col.numContrib(), nCharge, rtrwTOF, colTracks, fitInfo);
398402
}
399403
} else {
@@ -425,7 +429,7 @@ struct DGBCCandProducer {
425429
rtrwTOF = udhelpers::rPVtrwTOF<false>(tracksArray, tracksArray.size());
426430
nCharge = udhelpers::netCharge<false>(tracksArray);
427431

428-
updateUDTables(false, bc.globalBC(), bc.runNumber(), -2., 2., -2,
432+
updateUDTables(false, -1, bc.globalBC(), bc.runNumber(), -2., 2., -2,
429433
tracksArray.size(), nCharge, rtrwTOF, tracksArray, fitInfo);
430434
}
431435
}
@@ -471,7 +475,7 @@ struct DGBCCandProducer {
471475
rtrwTOF = udhelpers::rPVtrwTOF<false>(tracksArray, tracksArray.size());
472476
nCharge = udhelpers::netCharge<false>(tracksArray);
473477

474-
updateUDTables(false, bcnum, tibc.runNumber(), -3., 3., -3,
478+
updateUDTables(false, -1, bcnum, tibc.runNumber(), -3., 3., -3,
475479
tracksArray.size(), nCharge, rtrwTOF, tracksArray, fitInfo);
476480
}
477481
}
@@ -588,7 +592,7 @@ struct DGBCCandProducer {
588592
auto rtrwTOF = udhelpers::rPVtrwTOF<true>(colTracks, col.numContrib());
589593
auto nCharge = udhelpers::netCharge<true>(colTracks);
590594
udhelpers::getFITinfo(fitInfo, bcnum, bcs, ft0s, fv0as, fdds);
591-
updateUDTables(false, bcnum, bc.runNumber(), col.posX(), col.posY(), col.posZ(),
595+
updateUDTables(false, col.globalIndex(), bcnum, bc.runNumber(), col.posX(), col.posY(), col.posZ(),
592596
col.numContrib(), nCharge, rtrwTOF, colTracks, fitInfo);
593597
// fill UDZdcs
594598
if (bc.has_zdc()) {
@@ -656,7 +660,8 @@ struct DGBCCandProducer {
656660
vpos[2] = -3.;
657661
}
658662

659-
updateUDTables(false, bcnum, tibc.runNumber(), vpos[0], vpos[1], vpos[2],
663+
int64_t colID = withCollision ? col.globalIndex() : -1;
664+
updateUDTables(false, colID, bcnum, tibc.runNumber(), vpos[0], vpos[1], vpos[2],
660665
tracksArray.size(), nCharge, rtrwTOF, tracksArray, fitInfo);
661666
// fill UDZdcs
662667
if (bc.globalBC() == bcnum) {

PWGUD/TableProducer/DGCandProducer.cxx

-18
Original file line numberDiff line numberDiff line change
@@ -62,16 +62,6 @@ struct DGCandProducer {
6262
aod::pidTOFFullEl, aod::pidTOFFullMu, aod::pidTOFFullPi, aod::pidTOFFullKa, aod::pidTOFFullPr>;
6363
using FWs = aod::FwdTracks;
6464

65-
// MC inputs
66-
using MCCCs = soa::Join<aod::Collisions, aod::EvSels, aod::McCollisionLabels>;
67-
using MCCC = MCCCs::iterator;
68-
using MCTCs = soa::Join<aod::Tracks, aod::TracksExtra, /*aod::TracksCov,*/ aod::TracksDCA, aod::TrackSelection,
69-
aod::McTrackLabels,
70-
aod::pidTPCFullEl, aod::pidTPCFullMu, aod::pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullPr,
71-
aod::TOFSignal, aod::pidTOFbeta,
72-
aod::pidTOFFullEl, aod::pidTOFFullMu, aod::pidTOFFullPi, aod::pidTOFFullKa, aod::pidTOFFullPr>;
73-
using MCTC = MCTCs::iterator;
74-
7565
// function to update UDFwdTracks, UDFwdTracksExtra
7666
template <typename TFwdTrack>
7767
void updateUDFwdTrackTables(TFwdTrack const& fwdtrack, uint64_t const& bcnum)
@@ -139,12 +129,6 @@ struct DGCandProducer {
139129
outputTracksLabel(track.globalIndex());
140130
}
141131

142-
SliceCache cache;
143-
PresliceUnsorted<aod::McParticles> mcPartsPerMcCollision = aod::mcparticle::mcCollisionId;
144-
PresliceUnsorted<MCCCs> collisionsPerMcCollision = aod::mccollisionlabel::mcCollisionId;
145-
Preslice<MCTCs> tracksPerCollision = aod::track::collisionId;
146-
Preslice<FWs> fwdTracksPerCollision = aod::fwdtrack::collisionId;
147-
148132
void init(InitContext&)
149133
{
150134
diffCuts = (DGCutparHolder)DGCuts;
@@ -270,8 +254,6 @@ struct McDGCandProducer {
270254
// prepare slices
271255
SliceCache cache;
272256
PresliceUnsorted<aod::McParticles> mcPartsPerMcCollision = aod::mcparticle::mcCollisionId;
273-
PresliceUnsorted<CCs> collisionsPerMcCollision = aod::mccollisionlabel::mcCollisionId;
274-
Preslice<UDCCs> dgcandperCollision = aod::udcollision::collisionId;
275257
Preslice<UDTCs> udtracksPerUDCollision = aod::udtrack::udCollisionId;
276258

277259
// initialize histogram registry

PWGUD/Tasks/DGCandAnalyzer.cxx

+6-6
Original file line numberDiff line numberDiff line change
@@ -159,12 +159,12 @@ struct DGCandAnalyzer {
159159
registry.add("tracks/nSigmaTOFPPr", "nSigma TOF for protons versus pT", {HistType::kTH2F, {axispt, axisnsTOF}});
160160

161161
registry.add("tracks/trackHits", "Track hits in various detectors", {HistType::kTH1F, {{5, -0.5, 4.5}}});
162-
registry.add("tracks/dcaXYDG", "dcaXY in DG candidates", {HistType::kTH1F, {{400, -2., 2.}}});
163-
registry.add("tracks/dcaZDG", "dcaZ in DG candidates", {HistType::kTH1F, {{800, -20., 20.}}});
162+
registry.add("tracks/dcaXYDG", "dcaXY in DG candidates", {HistType::kTH1F, {{200, -0.5, 0.5}}});
163+
registry.add("tracks/dcaZDG", "dcaZ in DG candidates", {HistType::kTH1F, {{400, -2., 2.}}});
164164
registry.add("tracks/TPCNCl", "Number of found TPC clusters", {HistType::kTH1F, {{200, 0., 200.}}});
165165
registry.add("tracks/TPCChi2NCl", "TPC chi2 per cluster of tracks", {HistType::kTH1F, {{200, 0., 50.}}});
166-
registry.add("tracks/ptTrkdcaXYDG", "dcaXY versus track pT in DG candidates", {HistType::kTH2F, {axispt, {80, -2., 2.}}});
167-
registry.add("tracks/ptTrkdcaZDG", "dcaZ versus track pT in DG candidates", {HistType::kTH2F, {axispt, {400, -20., 20.}}});
166+
registry.add("tracks/ptTrkdcaXYDG", "dcaXY versus track pT in DG candidates", {HistType::kTH2F, {axispt, {100, -0.5, 0.5}}});
167+
registry.add("tracks/ptTrkdcaZDG", "dcaZ versus track pT in DG candidates", {HistType::kTH2F, {axispt, {200, -2., 2.}}});
168168

169169
registry.add("system/nUnlikeIVMs", "Number of IVMs per DG collision", {HistType::kTH1F, {{36, -0.5, 35.5}}});
170170
registry.add("system/unlikeIVMptSysDG", "Invariant mass versus system pT in DG candidates", {HistType::kTH2F, {axisIVM, axispt}});
@@ -193,7 +193,7 @@ struct DGCandAnalyzer {
193193
registry.add("2Prong/TPCChi2NCl2", "TPC chi2 of track 2", {HistType::kTH1F, {{1000, 0., 10.}}});
194194
registry.add("2Prong/TPCsignal1", "TPC signal of track 1", {HistType::kTH2F, {{1000, 0., 10.}, {5000, 0., 500.}}});
195195
registry.add("2Prong/TPCsignal2", "TPC signal of track 2", {HistType::kTH2F, {{1000, 0., 10.}, {5000, 0., 500.}}});
196-
registry.add("2Prong/sig1VsSig2TPC", "TPC signals of track 1 versus track 2", {HistType::kTH2F, {{300, 0., 300.}, {300, 0., 300.}}});
196+
registry.add("2Prong/sig1VsSig2TPC", "TPC signals of track 1 versus track 2", {HistType::kTH2F, {{300, 0., 150.}, {300, 0., 150.}}});
197197
registry.add("2Prong/TOFsignal1", "TOF signal of track 1", {HistType::kTH2F, {{1000, 0., 10.}, {2000, -5., 5.}}});
198198
registry.add("2Prong/TOFsignal2", "TOF signal of track 2", {HistType::kTH2F, {{1000, 0., 10.}, {2000, -5., 5.}}});
199199
registry.add("2Prong/sig1VsSig2TOF", "TOF signals of track 1 versus track 2", {HistType::kTH2F, {{1000, -5., 5.}, {1000, -5., 5.}}});
@@ -336,7 +336,7 @@ struct DGCandAnalyzer {
336336

337337
// check bcnum
338338
if (bcnums.find(bcnum) != bcnums.end()) {
339-
LOGF(info, "candCase %i bcnum %i allready found! ", candCase, bcnum);
339+
LOGF(info, "candCase %d bcnum %d allready found! ", candCase, bcnum);
340340
registry.fill(HIST("stat/candCaseSel"), 4, 1.);
341341
} else {
342342
bcnums.insert(bcnum);

0 commit comments

Comments
 (0)