Skip to content

Commit d5c9bf9

Browse files
committed
Merge branch 'master' of github.com:miedema-11/O2Physics
2 parents 9c3c820 + 91561eb commit d5c9bf9

File tree

129 files changed

+6963
-3512
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

129 files changed

+6963
-3512
lines changed

ALICE3/Macros/drawFastTracker.C

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ void drawFastTracker(float magneticField = 5.f, // in units of kGauss
7575
fastTracker.AddLayer("B11", 100., 250, x0OB, xrhoOB, resRPhiOB, resZOB, eff, 1);
7676
} else {
7777
std::vector<float> pixelRes{0.025, 0.025, 0.01, 0.01};
78-
fastTracker.AddSiliconALICE3v4(pixelRes);
78+
// fastTracker.AddSiliconALICE3v4(pixelRes); // FIXME
7979
}
8080

8181
fastTracker.Print();

ALICE3/Macros/testFastTracker.C

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ void testFastTracker(std::string geometryFile = "a3geo.ini")
2727
// auto& ccdb = o2::ccdb::BasicCCDBManager::instance();
2828
// ccdb.setURL("http://alice-ccdb.cern.ch");
2929
o2::fastsim::FastTracker fastTracker;
30-
fastTracker.AddGenericDetector(geometryFile);
30+
// fastTracker.AddGenericDetector(geometryFile); // FIXME
3131
// fastTracker.AddGenericDetector(geometryFile, &ccdb);
3232
fastTracker.Print();
3333
}

ALICE3/TableProducer/alice3-decayfinder.cxx

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ using std::array;
6666
// #define bitcheck(var, nbit) ((var) & (static_cast<uint32_t>(1) << (nbit)))
6767

6868
// For MC association in pre-selection
69-
using Alice3TracksWPid = soa::Join<aod::Tracks, aod::TracksCov, aod::Alice3DecayMaps, aod::McTrackLabels, aod::TracksDCA, aod::UpgradeTrkPids, aod::UpgradeTofs, aod::UpgradeRichs>;
69+
using Alice3TracksWPid = soa::Join<aod::Tracks, aod::TracksCov, aod::Alice3DecayMaps, aod::McTrackLabels, aod::TracksDCA, aod::UpgradeTofs, aod::UpgradeRichs>;
70+
using Alice3TracksWTrkPid = soa::Join<Alice3TracksWPid, aod::UpgradeTrkPids>;
7071

7172
struct alice3decayFinder {
7273
SliceCache cache;
@@ -185,18 +186,17 @@ struct alice3decayFinder {
185186
((aod::a3DecayMap::decayMap & trackSelectionKaMinusFromD) == trackSelectionKaMinusFromD) && aod::track::signed1Pt < 0.0f && nabs(aod::track::dcaXY) > kaFromD_dcaXYconstant + kaFromD_dcaXYpTdep* nabs(aod::track::signed1Pt);
186187

187188
// partitions for Lc baryons
188-
Partition<Alice3TracksWPid> tracksPiPlusFromLc =
189+
Partition<Alice3TracksWTrkPid> tracksPiPlusFromLc =
189190
((aod::a3DecayMap::decayMap & trackSelectionPiPlusFromLc) == trackSelectionPiPlusFromLc) && aod::track::signed1Pt > 0.0f && nabs(aod::track::dcaXY) > piFromLc_dcaXYconstant + piFromLc_dcaXYpTdep* nabs(aod::track::signed1Pt);
190-
Partition<Alice3TracksWPid> tracksKaPlusFromLc =
191+
Partition<Alice3TracksWTrkPid> tracksKaPlusFromLc =
191192
((aod::a3DecayMap::decayMap & trackSelectionKaPlusFromLc) == trackSelectionKaPlusFromLc) && aod::track::signed1Pt > 0.0f && nabs(aod::track::dcaXY) > kaFromLc_dcaXYconstant + kaFromLc_dcaXYpTdep* nabs(aod::track::signed1Pt);
192-
Partition<Alice3TracksWPid> tracksPrPlusFromLc =
193+
Partition<Alice3TracksWTrkPid> tracksPrPlusFromLc =
193194
((aod::a3DecayMap::decayMap & trackSelectionPrPlusFromLc) == trackSelectionPrPlusFromLc) && aod::track::signed1Pt > 0.0f && nabs(aod::track::dcaXY) > prFromLc_dcaXYconstant + prFromLc_dcaXYpTdep* nabs(aod::track::signed1Pt);
194-
// partitions for Lc baryons
195-
Partition<Alice3TracksWPid> tracksPiMinusFromLc =
195+
Partition<Alice3TracksWTrkPid> tracksPiMinusFromLc =
196196
((aod::a3DecayMap::decayMap & trackSelectionPiMinusFromLc) == trackSelectionPiMinusFromLc) && aod::track::signed1Pt < 0.0f && nabs(aod::track::dcaXY) > piFromLc_dcaXYconstant + piFromLc_dcaXYpTdep* nabs(aod::track::signed1Pt);
197-
Partition<Alice3TracksWPid> tracksKaMinusFromLc =
197+
Partition<Alice3TracksWTrkPid> tracksKaMinusFromLc =
198198
((aod::a3DecayMap::decayMap & trackSelectionKaMinusFromLc) == trackSelectionKaMinusFromLc) && aod::track::signed1Pt < 0.0f && nabs(aod::track::dcaXY) > kaFromLc_dcaXYconstant + kaFromLc_dcaXYpTdep* nabs(aod::track::signed1Pt);
199-
Partition<Alice3TracksWPid> tracksPrMinusFromLc =
199+
Partition<Alice3TracksWTrkPid> tracksPrMinusFromLc =
200200
((aod::a3DecayMap::decayMap & trackSelectionPrMinusFromLc) == trackSelectionPrMinusFromLc) && aod::track::signed1Pt < 0.0f && nabs(aod::track::dcaXY) > prFromLc_dcaXYconstant + prFromLc_dcaXYpTdep* nabs(aod::track::signed1Pt);
201201

202202
// Helper struct to pass candidate information
@@ -1068,7 +1068,7 @@ struct alice3decayFinder {
10681068

10691069
void processFindLc(aod::Collision const& collision,
10701070
aod::McParticles const& mcParticles,
1071-
Alice3TracksWPid const& tracks)
1071+
Alice3TracksWTrkPid const& tracks)
10721072
{
10731073
LOG(debug) << "Processing Lc candidates for collision " << collision.globalIndex() << " with " << tracks.size() << " tracks";
10741074
for (auto const& track : tracks) {

CODEOWNERS

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,9 +50,9 @@
5050
/PWGCF/Tutorial @alibuild @ariedel-cern @victor-gonzalez @otonvd @shouqiye
5151

5252
/PWGDQ @alibuild @iarsene @mcoquet642 @lucamicheletti93 @XiaozhiBai
53-
/PWGEM @alibuild @feisenhu @dsekihat @ivorobye @jokonig
54-
/PWGEM/Dilepton @alibuild @mikesas @rbailhac @dsekihat @ivorobye @feisenhu @hscheid @jokonig
55-
/PWGEM/PhotonMeson @alibuild @mikesas @rbailhac @m-c-danisch @novitzky @mhemmer-cern @dsekihat @jokonig
53+
/PWGEM @alibuild @feisenhu @dsekihat @jokonig @hscheid
54+
/PWGEM/Dilepton @alibuild @mikesas @rbailhac @dsekihat @feisenhu @hscheid @jokonig
55+
/PWGEM/PhotonMeson @alibuild @mhemmer-cern @dsekihat @jokonig @hscheid @amaringarcia
5656
/PWGHF @alibuild @vkucera @fcolamar @fgrosa @fcatalan92 @mfaggin @mmazzilli @deepathoms @NicoleBastid @hahassan7 @jpxrk @apalasciano @zhangbiao-phy @gluparel @stefanopolitano @xinyepeng @singhra1994
5757
# PWG-LF
5858
/PWGLF @alibuild @omvazque @skundu692 @mpuccio

Common/DataModel/PIDResponseTOF.h

Lines changed: 126 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -57,33 +57,38 @@ template <class T>
5757
using hasTOFAl = decltype(std::declval<T&>().tofNSigmaAl());
5858

5959
// PID index as template argument
60-
#define perSpeciesWrapper(functionName) \
61-
template <o2::track::PID::ID index, typename TrackType> \
62-
auto functionName(const TrackType& track) \
63-
{ \
64-
if constexpr (index == o2::track::PID::Electron) { \
65-
return track.functionName##El(); \
66-
} else if constexpr (index == o2::track::PID::Muon) { \
67-
return track.functionName##Mu(); \
68-
} else if constexpr (index == o2::track::PID::Pion) { \
69-
return track.functionName##Pi(); \
70-
} else if constexpr (index == o2::track::PID::Kaon) { \
71-
return track.functionName##Ka(); \
72-
} else if constexpr (index == o2::track::PID::Proton) { \
73-
return track.functionName##Pr(); \
74-
} else if constexpr (index == o2::track::PID::Deuteron) { \
75-
return track.functionName##De(); \
76-
} else if constexpr (index == o2::track::PID::Triton) { \
77-
return track.functionName##Tr(); \
78-
} else if constexpr (index == o2::track::PID::Helium3) { \
79-
return track.functionName##He(); \
80-
} else if constexpr (index == o2::track::PID::Alpha) { \
81-
return track.functionName##Al(); \
82-
} \
60+
#define perSpeciesWrapper(functionName) \
61+
template <o2::track::PID::ID index, typename TrackType> \
62+
auto functionName(const TrackType& track) \
63+
{ \
64+
if constexpr (index == o2::track::PID::Electron) { \
65+
return track.functionName##El(); \
66+
} else if constexpr (index == o2::track::PID::Muon) { \
67+
return track.functionName##Mu(); \
68+
} else if constexpr (index == o2::track::PID::Pion) { \
69+
return track.functionName##Pi(); \
70+
} else if constexpr (index == o2::track::PID::Kaon) { \
71+
return track.functionName##Ka(); \
72+
} else if constexpr (index == o2::track::PID::Proton) { \
73+
return track.functionName##Pr(); \
74+
} else if constexpr (index == o2::track::PID::Deuteron) { \
75+
return track.functionName##De(); \
76+
} else if constexpr (index == o2::track::PID::Triton) { \
77+
return track.functionName##Tr(); \
78+
} else if constexpr (index == o2::track::PID::Helium3) { \
79+
return track.functionName##He(); \
80+
} else if constexpr (index == o2::track::PID::Alpha) { \
81+
return track.functionName##Al(); \
82+
} \
83+
LOGF(fatal, "%s %i (%s) is not available", #functionName, index, o2::track::PID::getName(index)); \
84+
return 0.f; \
8385
}
8486

8587
perSpeciesWrapper(tofNSigma);
8688
perSpeciesWrapper(tofExpSigma);
89+
perSpeciesWrapper(tofExpSignalDiff);
90+
#undef perSpeciesWrapper
91+
8792
template <o2::track::PID::ID index, typename TrackType>
8893
auto tofExpSignal(const TrackType& track)
8994
{
@@ -106,10 +111,35 @@ auto tofExpSignal(const TrackType& track)
106111
} else if constexpr (index == o2::track::PID::Alpha) {
107112
return track.tofExpSignalAl(track.tofSignal());
108113
}
114+
LOGF(fatal, "tofExpSignal %i (%s) is not available", index, o2::track::PID::getName(index));
115+
return 0.f;
109116
}
110-
perSpeciesWrapper(tofExpSignalDiff);
111117

112-
#undef perSpeciesWrapper
118+
template <o2::track::PID::ID index, typename TrackType>
119+
auto tofExpTime(const TrackType& track)
120+
{
121+
if constexpr (index == o2::track::PID::Electron) {
122+
return track.tofExpTimeEl();
123+
} else if constexpr (index == o2::track::PID::Muon) {
124+
return track.tofExpTimeMu();
125+
} else if constexpr (index == o2::track::PID::Pion) {
126+
return track.tofExpTimePi();
127+
} else if constexpr (index == o2::track::PID::Kaon) {
128+
return track.tofExpTimeKa();
129+
} else if constexpr (index == o2::track::PID::Proton) {
130+
return track.tofExpTimePr();
131+
} else if constexpr (index == o2::track::PID::Deuteron) {
132+
return track.tofExpTimeDe();
133+
} else if constexpr (index == o2::track::PID::Triton) {
134+
return track.tofExpTimeTr();
135+
} else if constexpr (index == o2::track::PID::Helium3) {
136+
return track.tofExpTimeHe();
137+
} else if constexpr (index == o2::track::PID::Alpha) {
138+
return track.tofExpTimeAl();
139+
}
140+
LOGF(fatal, "tofExpTime %i (%s) is not available", index, o2::track::PID::getName(index));
141+
return 0.f;
142+
}
113143

114144
// PID index as function argument for TOF
115145
#define perSpeciesWrapper(functionName) \
@@ -161,6 +191,9 @@ perSpeciesWrapper(tofExpSignalDiff);
161191

162192
perSpeciesWrapper(tofNSigma);
163193
perSpeciesWrapper(tofExpSigma);
194+
perSpeciesWrapper(tofExpSignalDiff);
195+
#undef perSpeciesWrapper
196+
164197
template <typename TrackType>
165198
auto tofExpSignal(const o2::track::PID::ID index, const TrackType& track)
166199
{
@@ -206,9 +239,6 @@ auto tofExpSignal(const o2::track::PID::ID index, const TrackType& track)
206239
return 0.f;
207240
}
208241
}
209-
perSpeciesWrapper(tofExpSignalDiff);
210-
211-
#undef perSpeciesWrapper
212242

213243
} // namespace pidutils
214244

@@ -364,6 +394,38 @@ PERSPECIES_TOF_SIGMA_COLUMN(He, o2::track::PID::Helium3);
364394
PERSPECIES_TOF_SIGMA_COLUMN(Al, o2::track::PID::Alpha);
365395
#undef PERSPECIES_TOF_SIGMA_COLUMN
366396

397+
DECLARE_SOA_DYNAMIC_COLUMN(TOFExpSigmaImp, tofExpSigmaDyn,
398+
[](float tofExpMom,
399+
float momentum,
400+
float eta,
401+
float tofSignal,
402+
float tofEvTimeErr,
403+
o2::track::PID::ID particleId) -> float {
404+
switch (particleId) {
405+
case o2::track::PID::Electron: // El
406+
return o2::pid::tof::TOFResponseImpl::expectedSigma<o2::track::PID::Electron>(tofSignal, tofExpMom, momentum, eta, tofEvTimeErr);
407+
case o2::track::PID::Muon: // Mu
408+
return o2::pid::tof::TOFResponseImpl::expectedSigma<o2::track::PID::Muon>(tofSignal, tofExpMom, momentum, eta, tofEvTimeErr);
409+
case o2::track::PID::Pion: // Pi
410+
return o2::pid::tof::TOFResponseImpl::expectedSigma<o2::track::PID::Pion>(tofSignal, tofExpMom, momentum, eta, tofEvTimeErr);
411+
case o2::track::PID::Kaon: // Ka
412+
return o2::pid::tof::TOFResponseImpl::expectedSigma<o2::track::PID::Kaon>(tofSignal, tofExpMom, momentum, eta, tofEvTimeErr);
413+
case o2::track::PID::Proton: // Pr
414+
return o2::pid::tof::TOFResponseImpl::expectedSigma<o2::track::PID::Proton>(tofSignal, tofExpMom, momentum, eta, tofEvTimeErr);
415+
case o2::track::PID::Deuteron: // De
416+
return o2::pid::tof::TOFResponseImpl::expectedSigma<o2::track::PID::Deuteron>(tofSignal, tofExpMom, momentum, eta, tofEvTimeErr);
417+
case o2::track::PID::Triton: // Tr
418+
return o2::pid::tof::TOFResponseImpl::expectedSigma<o2::track::PID::Triton>(tofSignal, tofExpMom, momentum, eta, tofEvTimeErr);
419+
case o2::track::PID::Helium3: // He3
420+
return o2::pid::tof::TOFResponseImpl::expectedSigma<o2::track::PID::Helium3>(tofSignal, tofExpMom, momentum, eta, tofEvTimeErr);
421+
case o2::track::PID::Alpha: // Al
422+
return o2::pid::tof::TOFResponseImpl::expectedSigma<o2::track::PID::Alpha>(tofSignal, tofExpMom, momentum, eta, tofEvTimeErr);
423+
default:
424+
LOGF(fatal, "TOFExpSigmaImp for PID index %i (%s) is not available", particleId, o2::track::PID::getName(particleId));
425+
return 0.f;
426+
}
427+
});
428+
367429
#define PERSPECIES_TOF_SEPARATION_COLUMN(name, id) \
368430
DECLARE_SOA_DYNAMIC_COLUMN(TOFNSigma##name##Imp, tofNSigmaDyn##name, \
369431
[](const float tofExpMom, \
@@ -393,8 +455,43 @@ PERSPECIES_TOF_SEPARATION_COLUMN(He, o2::track::PID::Helium3);
393455
PERSPECIES_TOF_SEPARATION_COLUMN(Al, o2::track::PID::Alpha);
394456
#undef PERSPECIES_TOF_SEPARATION_COLUMN
395457

458+
DECLARE_SOA_DYNAMIC_COLUMN(TOFNSigmaImp, tofNSigmaDyn,
459+
[](float tofExpMom,
460+
const float length,
461+
float momentum,
462+
float eta,
463+
float tofSignal,
464+
float tofEvTime,
465+
float tofEvTimeErr,
466+
o2::track::PID::ID particleId) -> float {
467+
switch (particleId) {
468+
case o2::track::PID::Electron: // El
469+
return o2::pid::tof::TOFResponseImpl::nSigma<o2::track::PID::Electron>(tofSignal, tofExpMom, length, momentum, eta, tofEvTime, tofEvTimeErr);
470+
case o2::track::PID::Muon: // Mu
471+
return o2::pid::tof::TOFResponseImpl::nSigma<o2::track::PID::Muon>(tofSignal, tofExpMom, length, momentum, eta, tofEvTime, tofEvTimeErr);
472+
case o2::track::PID::Pion: // Pi
473+
return o2::pid::tof::TOFResponseImpl::nSigma<o2::track::PID::Pion>(tofSignal, tofExpMom, length, momentum, eta, tofEvTime, tofEvTimeErr);
474+
case o2::track::PID::Kaon: // Ka
475+
return o2::pid::tof::TOFResponseImpl::nSigma<o2::track::PID::Kaon>(tofSignal, tofExpMom, length, momentum, eta, tofEvTime, tofEvTimeErr);
476+
case o2::track::PID::Proton: // Pr
477+
return o2::pid::tof::TOFResponseImpl::nSigma<o2::track::PID::Proton>(tofSignal, tofExpMom, length, momentum, eta, tofEvTime, tofEvTimeErr);
478+
case o2::track::PID::Deuteron: // De
479+
return o2::pid::tof::TOFResponseImpl::nSigma<o2::track::PID::Deuteron>(tofSignal, tofExpMom, length, momentum, eta, tofEvTime, tofEvTimeErr);
480+
case o2::track::PID::Triton: // Tr
481+
return o2::pid::tof::TOFResponseImpl::nSigma<o2::track::PID::Triton>(tofSignal, tofExpMom, length, momentum, eta, tofEvTime, tofEvTimeErr);
482+
case o2::track::PID::Helium3: // He3
483+
return o2::pid::tof::TOFResponseImpl::nSigma<o2::track::PID::Helium3>(tofSignal, tofExpMom, length, momentum, eta, tofEvTime, tofEvTimeErr);
484+
case o2::track::PID::Alpha: // Al
485+
return o2::pid::tof::TOFResponseImpl::nSigma<o2::track::PID::Alpha>(tofSignal, tofExpMom, length, momentum, eta, tofEvTime, tofEvTimeErr);
486+
default:
487+
LOGF(fatal, "TOFNSigmaImp for PID index %i (%s) is not available", particleId, o2::track::PID::getName(particleId));
488+
return 0.f;
489+
}
490+
});
491+
396492
} // namespace pidtof
397493

494+
using TOFExpSigmaDyn = pidtof::TOFExpSigmaImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTimeErr>;
398495
using TOFExpSigmaDynEl = pidtof::TOFExpSigmaElImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTimeErr>;
399496
using TOFExpSigmaDynMu = pidtof::TOFExpSigmaMuImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTimeErr>;
400497
using TOFExpSigmaDynPi = pidtof::TOFExpSigmaPiImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTimeErr>;
@@ -405,6 +502,7 @@ using TOFExpSigmaDynTr = pidtof::TOFExpSigmaTrImp<track::TOFExpMom, track::P, tr
405502
using TOFExpSigmaDynHe = pidtof::TOFExpSigmaHeImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTimeErr>;
406503
using TOFExpSigmaDynAl = pidtof::TOFExpSigmaAlImp<track::TOFExpMom, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTimeErr>;
407504

505+
using TOFNSigmaDyn = pidtof::TOFNSigmaImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
408506
using TOFNSigmaDynEl = pidtof::TOFNSigmaElImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
409507
using TOFNSigmaDynMu = pidtof::TOFNSigmaMuImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;
410508
using TOFNSigmaDynPi = pidtof::TOFNSigmaPiImp<track::TOFExpMom, track::Length, track::P, track::Eta, pidtofsignal::TOFSignal, pidtofevtime::TOFEvTime, pidtofevtime::TOFEvTimeErr>;

0 commit comments

Comments
 (0)