Skip to content

Commit 5a165f1

Browse files
authored
Merge branch 'AliceO2Group:master' into master
2 parents a37a06b + 52d7ad8 commit 5a165f1

File tree

157 files changed

+14537
-5664
lines changed

Some content is hidden

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

157 files changed

+14537
-5664
lines changed

ALICE3/TableProducer/OTF/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ o2physics_add_dpl_workflow(onthefly-tracker
1515
COMPONENT_NAME Analysis)
1616

1717
o2physics_add_dpl_workflow(onthefly-tofpid
18-
SOURCES onTheFlyTOFPID.cxx
18+
SOURCES onTheFlyTofPid.cxx
1919
PUBLIC_LINK_LIBRARIES O2::Framework O2::DetectorsBase O2Physics::AnalysisCore O2::ReconstructionDataFormats O2::DetectorsCommonDataFormats O2Physics::ALICE3Core
2020
COMPONENT_NAME Analysis)
2121

2222
o2physics_add_dpl_workflow(onthefly-richpid
23-
SOURCES onTheFlyRICHPID.cxx
23+
SOURCES onTheFlyRichPid.cxx
2424
PUBLIC_LINK_LIBRARIES O2::Framework O2::DetectorsBase O2Physics::AnalysisCore O2::ReconstructionDataFormats O2::DetectorsCommonDataFormats O2Physics::ALICE3Core
2525
COMPONENT_NAME Analysis)

ALICE3/TableProducer/OTF/onTheFlyRICHPID.cxx

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

ALICE3/TableProducer/OTF/onTheFlyRichPid.cxx

Lines changed: 943 additions & 0 deletions
Large diffs are not rendered by default.

ALICE3/TableProducer/OTF/onTheFlyTOFPID.cxx renamed to ALICE3/TableProducer/OTF/onTheFlyTofPid.cxx

Lines changed: 151 additions & 118 deletions
Large diffs are not rendered by default.

ALICE3/TableProducer/OTF/onTheFlyTracker.cxx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -870,6 +870,9 @@ struct OnTheFlyTracker {
870870
posClusterCandidate[2] = gRandom->Gaus(posClusterCandidate[2], currentTrackingLayer.resZ);
871871
}
872872

873+
if (std::isnan(phi))
874+
continue; // Catch when getXatLabR misses layer[i]
875+
873876
// towards adding cluster: move to track alpha
874877
double alpha = cascadeTrack.getAlpha();
875878
double xyz1[3]{

ALICE3/TableProducer/alice3-multicharm.cxx

Lines changed: 115 additions & 33 deletions
Large diffs are not rendered by default.

CODEOWNERS

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -38,21 +38,21 @@
3838
/PWGEM @alibuild @feisenhu @dsekihat @ivorobye
3939
/PWGEM/Dilepton @alibuild @mikesas @rbailhac @dsekihat @ivorobye @feisenhu
4040
/PWGEM/PhotonMeson @alibuild @mikesas @rbailhac @m-c-danisch @novitzky @mhemmer-cern @dsekihat
41-
/PWGHF @alibuild @vkucera @fcolamar @fgrosa @fcatalan92 @mfaggin @mmazzilli @deepathoms @NicoleBastid @hahassan7 @jpxrk @apalasciano @zhangbiao-phy
41+
/PWGHF @alibuild @vkucera @fcolamar @fgrosa @fcatalan92 @mfaggin @mmazzilli @deepathoms @NicoleBastid @hahassan7 @jpxrk @apalasciano @zhangbiao-phy @gluparel
4242
# PWG-LF
43-
/PWGLF @alibuild @njacazio @skundu692
44-
/PWGLF/Tasks/GlobalEventProperties @alibuild @njacazio @skundu692 @gbencedi @omvazque
45-
/PWGLF/TableProducer/GlobalEventProperties @alibuild @njacazio @skundu692 @gbencedi @omvazque
46-
/PWGLF/Tasks/Nuspex @alibuild @njacazio @skundu692 @fmazzasc @chiarapinto @maciacco
47-
/PWGLF/TableProducer/Nuspex @alibuild @njacazio @skundu692 @fmazzasc @chiarapinto @maciacco
48-
/PWGLF/Tasks/Resonances @alibuild @njacazio @skundu692 @dmallick2 @smaff92
49-
/PWGLF/TableProducer/Resonances @alibuild @njacazio @skundu692 @dmallick2 @smaff92
50-
/PWGLF/Tasks/Strangeness @alibuild @njacazio @skundu692 @ercolessi @ChiaraDeMartin95
51-
/PWGLF/TableProducer/Strangeness @alibuild @njacazio @skundu692 @ercolessi @ChiaraDeMartin95
43+
/PWGLF @alibuild @sustripathy @skundu692
44+
/PWGLF/Tasks/GlobalEventProperties @alibuild @sustripathy @skundu692 @gbencedi @abmodak
45+
/PWGLF/TableProducer/GlobalEventProperties @alibuild @sustripathy @skundu692 @gbencedi @abmodak
46+
/PWGLF/Tasks/Nuspex @alibuild @sustripathy @skundu692 @fmazzasc @chiarapinto @maciacco
47+
/PWGLF/TableProducer/Nuspex @alibuild @sustripathy @skundu692 @fmazzasc @chiarapinto @maciacco
48+
/PWGLF/Tasks/Resonances @alibuild @sustripathy @skundu692 @dmallick2 @smaff92
49+
/PWGLF/TableProducer/Resonances @alibuild @sustripathy @skundu692 @dmallick2 @smaff92
50+
/PWGLF/Tasks/Strangeness @alibuild @sustripathy @skundu692 @ercolessi @romainschotter
51+
/PWGLF/TableProducer/Strangeness @alibuild @sustripathy @skundu692 @ercolessi @romainschotter
5252

5353
# PWG-MM
54-
/PWGMM @alibuild @njacazio @skundu692 @aalkin
55-
/PWGMM/Mult @alibuild @njacazio @skundu692 @aalkin @aortizve @ddobrigk @gbencedi
54+
/PWGMM @alibuild @sustripathy @skundu692 @aalkin
55+
/PWGMM/Mult @alibuild @sustripathy @skundu692 @aalkin @aortizve @ddobrigk @gbencedi
5656
/PWGMM/Lumi @alibuild @aalkin
5757
/PWGMM/UE @alibuild @aalkin @aortizve
5858

@@ -63,8 +63,8 @@
6363
/Tutorials/PWGCF @alibuild @jgrosseo @saganatt @victor-gonzalez @zchochul
6464
/Tutorials/PWGDQ @alibuild @iarsene @dsekihat @feisenhu @lucamicheletti93
6565
/Tutorials/PWGEM @alibuild @mikesas @rbailhac @dsekihat @ivorobye @feisenhu
66-
/Tutorials/PWGHF @alibuild @vkucera @fcolamar @fgrosa
66+
/Tutorials/PWGHF @alibuild @vkucera @fcolamar @fgrosa @gluparel
6767
/Tutorials/PWGJE @alibuild @lhavener @maoyx @nzardosh @mfasDa @fjonasALICE
68-
/Tutorials/PWGLF @alibuild @alcaliva @lbariogl @chiarapinto @BongHwi @lbarnby @mbombara @iravasen @njacazio @ChiaraDeMartin95 @skundu692
68+
/Tutorials/PWGLF @alibuild @alcaliva @lbariogl @chiarapinto @BongHwi @lbarnby @ercolessi @iravasen @njacazio @romainschotter @skundu692
6969
/Tutorials/PWGMM @alibuild @aalkin @ddobrigk
7070
/Tutorials/PWGUD @alibuild @pbuehler

Common/CCDB/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,8 @@ o2physics_target_root_dictionary(AnalysisCCDB
1919
HEADERS EventSelectionParams.h
2020
HEADERS TriggerAliases.h
2121
HEADERS ctpRateFetcher.h
22+
HEADERS RCTSelectionFlags.h
2223
LINKDEF AnalysisCCDBLinkDef.h)
24+
25+
o2physics_add_header_only_library(RCTSelectionFlags
26+
HEADERS RCTSelectionFlags.h)

Common/DataModel/PIDResponseITS.h

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,9 @@ struct ITSResponse {
7373
// static constexpr float charge = static_cast<float>(o2::track::pid_constants::sCharges[id]);
7474
const float bg = momentum * inverseMass;
7575
if (id == o2::track::PID::Helium3 || id == o2::track::PID::Alpha) {
76-
return mResolutionParamsZ2[0] * std::erf((bg - mResolutionParamsZ2[1]) / mResolutionParamsZ2[2]);
76+
return mResolutionParamsZ2[1] > -999.0 ? mResolutionParamsZ2[0] * std::erf((bg - mResolutionParamsZ2[1]) / mResolutionParamsZ2[2]) : mResolutionParamsZ2[0];
7777
}
78-
return mResolutionParams[0] * std::erf((bg - mResolutionParams[1]) / mResolutionParams[2]);
78+
return mResolutionParams[1] > -999.0 ? mResolutionParams[0] * std::erf((bg - mResolutionParams[1]) / mResolutionParams[2]) : mResolutionParams[0];
7979
}
8080

8181
template <o2::track::PID::ID id>
@@ -117,6 +117,14 @@ struct ITSResponse {
117117
mResolutionParamsZ2[2] = p2_res_Z2;
118118
}
119119

120+
static void setMCDefaultParameters()
121+
{
122+
setParameters(1.63806, 1.58847, 2.52275,
123+
2.66505, 1.48405, 6.90453,
124+
1.40487e-01, -4.31078e-01, 1.50052,
125+
0.09, -999., -999.);
126+
}
127+
120128
private:
121129
static std::array<float, 3> mITSRespParams;
122130
static std::array<float, 3> mITSRespParamsZ2;
@@ -129,7 +137,7 @@ std::array<float, 3> ITSResponse::mITSRespParams = {1.18941, 1.53792, 1.69961};
129137
std::array<float, 3> ITSResponse::mITSRespParamsZ2 = {2.35117, 1.80347, 5.14355};
130138
// relative resolution is modelled with an erf function: [0]*TMath::Erf((x-[1])/[2])
131139
std::array<float, 3> ITSResponse::mResolutionParams = {1.94669e-01, -2.08616e-01, 1.30753};
132-
std::array<float, 3> ITSResponse::mResolutionParamsZ2 = {8.74371e-02, -1.82804, 5.06449e-01};
140+
std::array<float, 3> ITSResponse::mResolutionParamsZ2 = {0.09, -999., -999.};
133141
bool ITSResponse::mIsInitialized = false;
134142

135143
namespace pidits

Common/DataModel/PIDResponseTOF.h

Lines changed: 75 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include "Framework/AnalysisDataModel.h"
2828
#include "ReconstructionDataFormats/PID.h"
2929
#include "Framework/Logger.h"
30+
#include "Common/Core/PID/PIDTOF.h"
3031

3132
namespace o2::aod
3233
{
@@ -209,6 +210,65 @@ perSpeciesWrapper(tofExpSignalDiff);
209210

210211
} // namespace pidutils
211212

213+
// Extra tables
214+
namespace pidflags
215+
{
216+
217+
namespace enums
218+
{
219+
enum PIDFlags : uint8_t {
220+
EvTimeUndef = 0x0, // Event collision not set, corresponding to the LHC Fill event time
221+
EvTimeTOF = 0x1, // Event collision time from TOF
222+
EvTimeT0AC = 0x2, // Event collision time from the FT0AC
223+
EvTimeTOFT0AC = 0x4 // Event collision time from the TOF and FT0AC
224+
};
225+
}
226+
227+
DECLARE_SOA_COLUMN(GoodTOFMatch, goodTOFMatch, bool); //! Bool for the TOF PID information on the single track information
228+
DECLARE_SOA_COLUMN(TOFFlags, tofFlags, uint8_t); //! Flag for the complementary TOF PID information for the event time
229+
DECLARE_SOA_DYNAMIC_COLUMN(IsEvTimeDefined, isEvTimeDefined, //! True if the Event Time was computed with any method i.e. there is a usable event time
230+
[](uint8_t flags) -> bool { return (flags > 0); });
231+
DECLARE_SOA_DYNAMIC_COLUMN(IsEvTimeTOF, isEvTimeTOF, //! True if the Event Time was computed with the TOF
232+
[](uint8_t flags) -> bool { return (flags & enums::PIDFlags::EvTimeTOF) == enums::PIDFlags::EvTimeTOF; });
233+
DECLARE_SOA_DYNAMIC_COLUMN(IsEvTimeT0AC, isEvTimeT0AC, //! True if the Event Time was computed with the T0AC
234+
[](uint8_t flags) -> bool { return (flags & enums::PIDFlags::EvTimeT0AC) == enums::PIDFlags::EvTimeT0AC; });
235+
DECLARE_SOA_DYNAMIC_COLUMN(IsEvTimeTOFT0AC, isEvTimeTOFT0AC, //! True if the Event Time was computed with the TOF and T0AC
236+
[](uint8_t flags) -> bool { return (flags & enums::PIDFlags::EvTimeTOFT0AC) == enums::PIDFlags::EvTimeTOFT0AC; });
237+
238+
} // namespace pidflags
239+
240+
DECLARE_SOA_TABLE(pidTOFFlags, "AOD", "pidTOFFlags", //! Table of the flags for TOF signal quality on the track level
241+
pidflags::GoodTOFMatch);
242+
243+
DECLARE_SOA_TABLE(pidEvTimeFlags, "AOD", "pidEvTimeFlags", //! Table of the PID flags for the event time tables
244+
pidflags::TOFFlags,
245+
pidflags::IsEvTimeDefined<pidflags::TOFFlags>,
246+
pidflags::IsEvTimeTOF<pidflags::TOFFlags>,
247+
pidflags::IsEvTimeT0AC<pidflags::TOFFlags>,
248+
pidflags::IsEvTimeTOFT0AC<pidflags::TOFFlags>);
249+
250+
namespace pidtofsignal
251+
{
252+
DECLARE_SOA_COLUMN(TOFSignal, tofSignal, float); //! TOF signal from track time
253+
DECLARE_SOA_DYNAMIC_COLUMN(EventCollisionTime, eventCollisionTime, //! Event collision time used for the track. Needs the TOF
254+
[](float signal, float tMinusTexp, float texp) -> float { return texp + tMinusTexp - signal; });
255+
256+
} // namespace pidtofsignal
257+
258+
DECLARE_SOA_TABLE(TOFSignal, "AOD", "TOFSignal", //! Table of the TOF signal
259+
pidtofsignal::TOFSignal,
260+
pidtofsignal::EventCollisionTime<pidtofsignal::TOFSignal>);
261+
262+
namespace pidtofevtime
263+
{
264+
DECLARE_SOA_COLUMN(TOFEvTime, tofEvTime, float); //! event time for TOF signal. Can be obtained via a combination of detectors e.g. TOF, FT0A, FT0C
265+
DECLARE_SOA_COLUMN(TOFEvTimeErr, tofEvTimeErr, float); //! event time error for TOF. Can be obtained via a combination of detectors e.g. TOF, FT0A, FT0C
266+
} // namespace pidtofevtime
267+
268+
DECLARE_SOA_TABLE(TOFEvTime, "AOD", "TOFEvTime", //! Table of the TOF event time. One entry per track.
269+
pidtofevtime::TOFEvTime,
270+
pidtofevtime::TOFEvTimeErr);
271+
212272
namespace pidtof
213273
{
214274
// Expected signals
@@ -397,69 +457,15 @@ DECLARE_SOA_TABLE(pidTOFHe, "AOD", "pidTOFHe", //! Table of the TOF response wit
397457
DECLARE_SOA_TABLE(pidTOFAl, "AOD", "pidTOFAl", //! Table of the TOF response with binned Nsigma for alpha
398458
pidtof_tiny::TOFNSigmaStoreAl, pidtof_tiny::TOFNSigmaAl<pidtof_tiny::TOFNSigmaStoreAl>);
399459

400-
// Extra tables
401-
namespace pidflags
402-
{
403-
404-
namespace enums
405-
{
406-
enum PIDFlags : uint8_t {
407-
EvTimeUndef = 0x0, // Event collision not set, corresponding to the LHC Fill event time
408-
EvTimeTOF = 0x1, // Event collision time from TOF
409-
EvTimeT0AC = 0x2, // Event collision time from the FT0AC
410-
EvTimeTOFT0AC = 0x4 // Event collision time from the TOF and FT0AC
411-
};
412-
}
413-
414-
DECLARE_SOA_COLUMN(GoodTOFMatch, goodTOFMatch, bool); //! Bool for the TOF PID information on the single track information
415-
DECLARE_SOA_COLUMN(TOFFlags, tofFlags, uint8_t); //! Flag for the complementary TOF PID information for the event time
416-
DECLARE_SOA_DYNAMIC_COLUMN(IsEvTimeDefined, isEvTimeDefined, //! True if the Event Time was computed with any method i.e. there is a usable event time
417-
[](uint8_t flags) -> bool { return (flags > 0); });
418-
DECLARE_SOA_DYNAMIC_COLUMN(IsEvTimeTOF, isEvTimeTOF, //! True if the Event Time was computed with the TOF
419-
[](uint8_t flags) -> bool { return (flags & enums::PIDFlags::EvTimeTOF) == enums::PIDFlags::EvTimeTOF; });
420-
DECLARE_SOA_DYNAMIC_COLUMN(IsEvTimeT0AC, isEvTimeT0AC, //! True if the Event Time was computed with the T0AC
421-
[](uint8_t flags) -> bool { return (flags & enums::PIDFlags::EvTimeT0AC) == enums::PIDFlags::EvTimeT0AC; });
422-
DECLARE_SOA_DYNAMIC_COLUMN(IsEvTimeTOFT0AC, isEvTimeTOFT0AC, //! True if the Event Time was computed with the TOF and T0AC
423-
[](uint8_t flags) -> bool { return (flags & enums::PIDFlags::EvTimeTOFT0AC) == enums::PIDFlags::EvTimeTOFT0AC; });
424-
425-
} // namespace pidflags
426-
427-
DECLARE_SOA_TABLE(pidTOFFlags, "AOD", "pidTOFFlags", //! Table of the flags for TOF signal quality on the track level
428-
pidflags::GoodTOFMatch);
429-
430-
DECLARE_SOA_TABLE(pidEvTimeFlags, "AOD", "pidEvTimeFlags", //! Table of the PID flags for the event time tables
431-
pidflags::TOFFlags,
432-
pidflags::IsEvTimeDefined<pidflags::TOFFlags>,
433-
pidflags::IsEvTimeTOF<pidflags::TOFFlags>,
434-
pidflags::IsEvTimeT0AC<pidflags::TOFFlags>,
435-
pidflags::IsEvTimeTOFT0AC<pidflags::TOFFlags>);
436-
437-
namespace pidtofsignal
438-
{
439-
DECLARE_SOA_COLUMN(TOFSignal, tofSignal, float); //! TOF signal from track time
440-
DECLARE_SOA_DYNAMIC_COLUMN(EventCollisionTime, eventCollisionTime, //! Event collision time used for the track. Needs the TOF
441-
[](float signal, float tMinusTexp, float texp) -> float { return texp + tMinusTexp - signal; });
442-
443-
} // namespace pidtofsignal
444-
445-
DECLARE_SOA_TABLE(TOFSignal, "AOD", "TOFSignal", //! Table of the TOF signal
446-
pidtofsignal::TOFSignal,
447-
pidtofsignal::EventCollisionTime<pidtofsignal::TOFSignal>);
448-
449-
namespace pidtofevtime
450-
{
451-
DECLARE_SOA_COLUMN(TOFEvTime, tofEvTime, float); //! event time for TOF signal. Can be obtained via a combination of detectors e.g. TOF, FT0A, FT0C
452-
DECLARE_SOA_COLUMN(TOFEvTimeErr, tofEvTimeErr, float); //! event time error for TOF. Can be obtained via a combination of detectors e.g. TOF, FT0A, FT0C
453-
} // namespace pidtofevtime
454-
455-
DECLARE_SOA_TABLE(TOFEvTime, "AOD", "TOFEvTime", //! Table of the TOF event time. One entry per track.
456-
pidtofevtime::TOFEvTime,
457-
pidtofevtime::TOFEvTimeErr);
458-
459460
namespace pidtofbeta
460461
{
461462
DECLARE_SOA_COLUMN(Beta, beta, float); //! TOF beta
462463
DECLARE_SOA_COLUMN(BetaError, betaerror, float); //! Uncertainty on the TOF beta
464+
// Dynamic column, i.e. the future
465+
DECLARE_SOA_DYNAMIC_COLUMN(TOFBetaImp, tofBeta, //! TOF Beta value
466+
[](const float length, const float tofSignal, const float collisionTime) -> float {
467+
return o2::pid::tof::Beta::GetBeta(length, tofSignal, collisionTime);
468+
});
463469
//
464470
DECLARE_SOA_COLUMN(ExpBetaEl, expbetael, float); //! Expected beta of electron
465471
DECLARE_SOA_COLUMN(ExpBetaElError, expbetaelerror, float); //! Expected uncertainty on the beta of electron
@@ -469,14 +475,24 @@ DECLARE_SOA_DYNAMIC_COLUMN(DiffBetaEl, diffbetael, //! Difference be
469475
[](float beta, float expbetael) -> float { return beta - expbetael; });
470476
} // namespace pidtofbeta
471477

478+
using TOFBeta = pidtofbeta::TOFBetaImp<o2::aod::track::Length, o2::aod::pidtofsignal::TOFSignal, o2::aod::pidtofevtime::TOFEvTime>;
479+
472480
DECLARE_SOA_TABLE(pidTOFbeta, "AOD", "pidTOFbeta", //! Table of the TOF beta
473481
pidtofbeta::Beta, pidtofbeta::BetaError);
474482

475483
namespace pidtofmass
476484
{
477485
DECLARE_SOA_COLUMN(TOFMass, mass, float); //! TOF mass
486+
// Dynamic column, i.e. the future
487+
DECLARE_SOA_DYNAMIC_COLUMN(TOFMassImp, tofMass, //! TOF Mass value
488+
[](const float length, const float tofSignal, const float collisionTime, const float momentum) -> float {
489+
const float beta = o2::pid::tof::Beta::GetBeta(length, tofSignal, collisionTime);
490+
return o2::pid::tof::TOFMass::GetTOFMass(momentum, beta);
491+
});
478492
} // namespace pidtofmass
479493

494+
using TOFMass = pidtofmass::TOFMassImp<o2::aod::track::Length, o2::aod::pidtofsignal::TOFSignal, o2::aod::pidtofevtime::TOFEvTime, o2::aod::track::TOFExpMom>;
495+
480496
DECLARE_SOA_TABLE(pidTOFmass, "AOD", "pidTOFmass", //! Table of the TOF mass
481497
pidtofmass::TOFMass);
482498

0 commit comments

Comments
 (0)