Skip to content

Commit 3e7d20d

Browse files
authored
Developments of data model and tasks for skimming and candidates creation in UD (#1021)
* [WIP] UD skimming developments * [WIP] Add UD tables for skimming * [WIP] UD skimming developments: do not dereference table pointers * [WIP] UD skimming developments: rework MC information processing in skimmer, rework dimuon analysis * [WIP] UD skimming developments: clang format * [WIP] UD skimming developments: add skimming of barrel tracks and semiforward candidates * [WIP] UD skimming developments: minor improvements of tables and analysis * [WIP] UD skimming developments: add more code comments * [WIP] UD skimming developments: switch to index columns for candidate IDs and add global BCs to tracks * [WIP] UD skimming developments: rename tables, switch to propagated tracks * [WIP] UD skimming developments: merge DGCandidates with UDTables and adapt DG tasks * [WIP] UD skimming developments: rename skimmer and creator tasks * UD skimming developments: fix typos, clang format * UD skimming developments: fix typos, naming, rework UPC candidate analyzer
1 parent 9ac213e commit 3e7d20d

13 files changed

Lines changed: 1194 additions & 76 deletions

PWGUD/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,3 @@ add_subdirectory(Core)
1313
# add_subdirectory(DataModel)
1414
add_subdirectory(Tasks)
1515
add_subdirectory(TableProducer)
16-

PWGUD/Core/DGPIDSelector.cxx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ float particleMass(TDatabasePDG* pdg, int pid)
2424
};
2525

2626
// -----------------------------------------------------------------------------
27-
DGParticle::DGParticle(TDatabasePDG* pdg, DGAnaparHolder anaPars, aod::DGTracks const& dgtracks, std::vector<uint> comb)
27+
DGParticle::DGParticle(TDatabasePDG* pdg, DGAnaparHolder anaPars, UDTracksFull const& tracks, std::vector<uint> comb)
2828
{
2929
// compute invariant mass
3030
TLorentzVector lvtmp;
@@ -35,8 +35,8 @@ DGParticle::DGParticle(TDatabasePDG* pdg, DGAnaparHolder anaPars, aod::DGTracks
3535
auto cnt = -1;
3636
for (auto ind : comb) {
3737
cnt++;
38-
auto track = dgtracks.rawIteratorAt(ind);
39-
lvtmp.SetPtEtaPhiM(track.pt(), track.eta(), track.phi(), particleMass(pdg, pidinfo[cnt * 12]));
38+
auto track = tracks.rawIteratorAt(ind);
39+
lvtmp.SetXYZM(track.px(), track.py(), track.pz(), particleMass(pdg, pidinfo[cnt * 12]));
4040
mIVM += lvtmp;
4141
}
4242

@@ -60,7 +60,7 @@ DGPIDSelector::DGPIDSelector()
6060
}
6161

6262
// -----------------------------------------------------------------------------
63-
float DGPIDSelector::getTPCnSigma(aod::DGTrack track, int hypo)
63+
float DGPIDSelector::getTPCnSigma(UDTrackFull track, int hypo)
6464
{
6565
switch (hypo) {
6666
case 0:
@@ -79,7 +79,7 @@ float DGPIDSelector::getTPCnSigma(aod::DGTrack track, int hypo)
7979
}
8080

8181
// -----------------------------------------------------------------------------
82-
bool DGPIDSelector::isGoodTrack(aod::DGTrack track, int cnt)
82+
bool DGPIDSelector::isGoodTrack(UDTrackFull track, int cnt)
8383
{
8484
// extract PID information
8585
auto pidinfo = mAnaPars.TPCnSigmas();
@@ -121,30 +121,30 @@ bool DGPIDSelector::isGoodTrack(aod::DGTrack track, int cnt)
121121
}
122122

123123
// -----------------------------------------------------------------------------
124-
int DGPIDSelector::computeIVMs(int nCombine, aod::DGTracks const& dgtracks)
124+
int DGPIDSelector::computeIVMs(int nCombine, UDTracksFull const& tracks)
125125
{
126126
// reset
127127
mIVMs.clear();
128128

129129
// create combinations including permutations
130-
auto combs = combinations(nCombine, dgtracks.size());
130+
auto combs = combinations(nCombine, tracks.size());
131131

132132
// loop over combinations
133133
for (auto comb : combs) {
134-
// is dgtracks compatible with PID requirements?
134+
// is tracks compatible with PID requirements?
135135
bool isGoodComb = true;
136136
auto cnt = -1;
137137
for (auto ind : comb) {
138138
cnt++;
139-
if (!isGoodTrack(dgtracks.rawIteratorAt(ind), cnt)) {
139+
if (!isGoodTrack(tracks.rawIteratorAt(ind), cnt)) {
140140
isGoodComb = false;
141141
break;
142142
}
143143
}
144144

145145
// update list of IVMs
146146
if (isGoodComb) {
147-
DGParticle IVM(fPDG, mAnaPars, dgtracks, comb);
147+
DGParticle IVM(fPDG, mAnaPars, tracks, comb);
148148
mIVMs.push_back(IVM);
149149
}
150150
}

PWGUD/Core/DGPIDSelector.h

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,19 +15,22 @@
1515
#include <gandiva/projector.h>
1616
#include "TDatabasePDG.h"
1717
#include "TLorentzVector.h"
18-
#include "PWGUD/DataModel/DGCandidates.h"
18+
#include "PWGUD/DataModel/UDTables.h"
1919
#include "DGAnaparHolder.h"
2020

2121
using namespace o2;
2222

23+
using UDTracksFull = soa::Join<aod::UDTracks, aod::UDTrackCollisionIDs, aod::UDTracksPID>;
24+
using UDTrackFull = soa::Join<aod::UDTracks, aod::UDTrackCollisionIDs, aod::UDTracksPID>::iterator;
25+
2326
float particleMass(TDatabasePDG* pdg, int pid);
2427

2528
// -----------------------------------------------------------------------------
2629
// a structure which holds the indices of tracks and their invariant mass
2730
struct DGParticle {
2831
public:
2932
DGParticle() = default;
30-
DGParticle(TDatabasePDG* pdg, DGAnaparHolder anaPars, aod::DGTracks const& dgtracks, std::vector<uint> comb);
33+
DGParticle(TDatabasePDG* pdg, DGAnaparHolder anaPars, UDTracksFull const& tracks, std::vector<uint> comb);
3134

3235
// getter
3336
std::vector<uint> trkinds() { return mtrkinds; }
@@ -60,9 +63,9 @@ struct DGPIDSelector {
6063

6164
// getters
6265
std::vector<DGParticle> IVMs() { return mIVMs; }
63-
float getTPCnSigma(aod::DGTrack track, int hypo);
64-
bool isGoodTrack(aod::DGTrack track, int cnt);
65-
int computeIVMs(int nCombine, aod::DGTracks const& dgtracks);
66+
float getTPCnSigma(UDTrackFull track, int hypo);
67+
bool isGoodTrack(UDTrackFull track, int cnt);
68+
int computeIVMs(int nCombine, UDTracksFull const& tracks);
6669

6770
private:
6871
// analysis parameters

PWGUD/DataModel/DGCandidates.h

Lines changed: 0 additions & 51 deletions
This file was deleted.

0 commit comments

Comments
 (0)