Skip to content

Commit d49c613

Browse files
Merge branch 'master' into deutInJets
2 parents 2555fa6 + c97275a commit d49c613

File tree

286 files changed

+27842
-11602
lines changed

Some content is hidden

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

286 files changed

+27842
-11602
lines changed

ALICE3/Core/ALICE3CoreLinkDef.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,5 @@
1414
#pragma link off all functions;
1515

1616
#pragma link C++ class o2::pid::tof::TOFResoALICE3 + ;
17+
#pragma link C++ class std::vector < std::vector < unsigned int>> + ;
18+
#pragma link C++ class std::vector < std::vector < std::uint32_t>> + ;

ALICE3/Core/FastTracker.cxx

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -288,7 +288,7 @@ float FastTracker::ProbGoodChiSqHit(float radius, float searchRadiusRPhi, float
288288

289289
// function to provide a reconstructed track from a perfect input track
290290
// returns number of intercepts (generic for now)
291-
int FastTracker::FastTrack(o2::track::TrackParCov inputTrack, o2::track::TrackParCov& outputTrack, const float nch)
291+
int FastTracker::FastTrack(o2::track::TrackParCov inputTrack, o2::track::TrackParCov& outputTrack, const float nch, const float maxRadius)
292292
{
293293
dNdEtaCent = nch; // set the number of charged particles per unit rapidity
294294
hits.clear();
@@ -335,6 +335,14 @@ int FastTracker::FastTrack(o2::track::TrackParCov inputTrack, o2::track::TrackPa
335335
continue; // this layer should not be attempted, but go ahead
336336
}
337337

338+
if (layers[il].getRadius() > maxRadius) {
339+
if (lastLayerReached == -1) {
340+
// This means that we didn't reach the first layer
341+
return -9;
342+
}
343+
break; // could not reach
344+
}
345+
338346
// check if layer is reached
339347
float targetX = 1e+3;
340348
inputTrack.getXatLabR(layers[il].getRadius(), targetX, magneticField);
@@ -367,6 +375,7 @@ int FastTracker::FastTrack(o2::track::TrackParCov inputTrack, o2::track::TrackPa
367375
break;
368376
}
369377
}
378+
370379
if (std::abs(inputTrack.getZ()) > layers[il].getZ() && mApplyZacceptance) {
371380
break; // out of acceptance bounds
372381
}
@@ -405,8 +414,9 @@ int FastTracker::FastTrack(o2::track::TrackParCov inputTrack, o2::track::TrackPa
405414
static constexpr float kLargeErr2Dir = 0.7 * 0.7;
406415
static constexpr float kLargeErr2PtI = 30.5 * 30.5;
407416
std::array<float, o2::track::kCovMatSize> largeCov = {0.};
408-
for (int ic = o2::track::kCovMatSize; ic--;)
417+
for (int ic = o2::track::kCovMatSize; ic--;) {
409418
largeCov[ic] = 0.;
419+
}
410420
largeCov[o2::track::CovLabels::kSigY2] = largeCov[o2::track::CovLabels::kSigZ2] = kLargeErr2Coord;
411421
largeCov[o2::track::CovLabels::kSigSnp2] = largeCov[o2::track::CovLabels::kSigTgl2] = kLargeErr2Dir;
412422
largeCov[o2::track::CovLabels::kSigQ2Pt2] = kLargeErr2PtI * trPars[o2::track::ParLabels::kQ2Pt] * trPars[o2::track::ParLabels::kQ2Pt];
@@ -442,8 +452,10 @@ int FastTracker::FastTrack(o2::track::TrackParCov inputTrack, o2::track::TrackPa
442452
std::cos(alpha) * spacePoint[0] + std::sin(alpha) * spacePoint[1],
443453
-std::sin(alpha) * spacePoint[0] + std::cos(alpha) * spacePoint[1],
444454
spacePoint[2]};
445-
if (!inwardTrack.propagateTo(xyz1[0], magneticField))
455+
456+
if (!inwardTrack.propagateTo(xyz1[0], magneticField)) {
446457
continue;
458+
}
447459

448460
if (!layers[il].isInert()) { // only update covm for tracker hits
449461
const o2::track::TrackParametrization<float>::dim2_t hitpoint = {
@@ -474,13 +486,14 @@ int FastTracker::FastTrack(o2::track::TrackParCov inputTrack, o2::track::TrackPa
474486
}
475487
}
476488

477-
if (layers[il].isSilicon())
489+
if (layers[il].isSilicon()) {
478490
nSiliconPoints++; // count silicon hits
479-
if (layers[il].isGas())
491+
}
492+
if (layers[il].isGas()) {
480493
nGasPoints++; // count TPC/gas hits
494+
}
481495

482496
hits.push_back(thisHit);
483-
484497
if (!layers[il].isInert()) { // good hit probability calculation
485498
float sigYCmb = o2::math_utils::sqrt(inwardTrack.getSigmaY2() + layers[il].getResolutionRPhi() * layers[il].getResolutionRPhi());
486499
float sigZCmb = o2::math_utils::sqrt(inwardTrack.getSigmaZ2() + layers[il].getResolutionZ() * layers[il].getResolutionZ());
@@ -502,30 +515,34 @@ int FastTracker::FastTrack(o2::track::TrackParCov inputTrack, o2::track::TrackPa
502515
}
503516

504517
// only attempt to continue if intercepts are at least four
505-
if (nIntercepts < 4)
518+
if (nIntercepts < 4) {
506519
return nIntercepts;
520+
}
507521

508522
// generate efficiency
509523
float eff = 1.;
510524
for (size_t i = 0; i < layers.size(); i++) {
511525
float iGoodHit = goodHitProbability[i];
512-
if (iGoodHit <= 0)
526+
if (iGoodHit <= 0) {
513527
continue;
528+
}
514529

515530
eff *= iGoodHit;
516531
}
517532
if (mApplyEffCorrection) {
518-
if (gRandom->Uniform() > eff)
533+
if (gRandom->Uniform() > eff) {
519534
return -8;
535+
}
520536
}
521537

522538
outputTrack.setCov(inwardTrack.getCov());
523539
outputTrack.checkCovariance();
524540

525541
// Use covariance matrix based smearing
526542
std::array<float, o2::track::kCovMatSize> covMat = {0.};
527-
for (int ii = 0; ii < o2::track::kCovMatSize; ii++)
543+
for (int ii = 0; ii < o2::track::kCovMatSize; ii++) {
528544
covMat[ii] = outputTrack.getCov()[ii];
545+
}
529546
TMatrixDSym m(5);
530547
double fcovm[5][5]; // double precision is needed for regularisation
531548

ALICE3/Core/FastTracker.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ class FastTracker
9292
* @param nch Charged particle multiplicity (used for hit density calculations).
9393
* @return int i.e. number of intercepts (implementation-defined).
9494
*/
95-
int FastTrack(o2::track::TrackParCov inputTrack, o2::track::TrackParCov& outputTrack, const float nch);
95+
int FastTrack(o2::track::TrackParCov inputTrack, o2::track::TrackParCov& outputTrack, const float nch, const float maxRadius = 100.f);
9696

9797
// For efficiency calculation
9898
float Dist(float z, float radius);

ALICE3/Core/GeometryContainer.cxx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,14 @@ void GeometryContainer::init(o2::framework::InitContext& initContext)
101101
}
102102
}
103103

104+
void GeometryContainer::addEntry(const std::string& filename)
105+
{
106+
if (!mCcdb) {
107+
LOG(fatal) << " --- ccdb is not set";
108+
}
109+
mEntries.emplace_back(filename, mCcdb);
110+
}
111+
104112
std::map<std::string, std::string> GeometryEntry::getConfiguration(const std::string& layerName) const
105113
{
106114
auto it = mConfigurations.find(layerName);

ALICE3/Core/GeometryContainer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ class GeometryContainer
9191
void init(o2::framework::InitContext& initContext);
9292

9393
// Add a geometry entry from a configuration file
94-
void addEntry(const std::string& filename) { mEntries.emplace_back(filename, mCcdb); }
94+
void addEntry(const std::string& filename);
9595
static void setLutCleanupSetting(const bool cleanLutWhenLoaded) { mCleanLutWhenLoaded = cleanLutWhenLoaded; }
9696
void setCcdbManager(o2::ccdb::BasicCCDBManager* mgr) { mCcdb = mgr; }
9797

ALICE3/DataModel/OTFMCParticle.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ DECLARE_SOA_COLUMN(IsPrimary, isPrimary, bool);
3737

3838
} // namespace otfmcparticle
3939

40-
DECLARE_SOA_TABLE_FULL(McParticlesWithDau, "McParticlesWithDau", "AOD", "MCPARTICLEWITHDAU",
40+
DECLARE_SOA_TABLE_FULL(McPartsWithDau, "McPartsWithDau", "AOD", "MCPARTSWITHDAU",
4141
o2::soa::Index<>,
4242
mcparticle::McCollisionId,
4343
mcparticle::PdgCode,
@@ -69,7 +69,7 @@ DECLARE_SOA_TABLE_FULL(McParticlesWithDau, "McParticlesWithDau", "AOD", "MCPARTI
6969
mcparticle::GetProcess<mcparticle::Flags, mcparticle::StatusCode>,
7070
mcparticle::IsPhysicalPrimary<mcparticle::Flags>);
7171

72-
using McParticleWithDau = McParticlesWithDau::iterator;
72+
using McPartWithDau = McPartsWithDau::iterator;
7373

7474
} // namespace o2::aod
7575

ALICE3/DataModel/OTFMulticharm.h

Lines changed: 0 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -75,31 +75,6 @@ DECLARE_SOA_COLUMN(XicProperLength, xicProperLength, float);
7575
DECLARE_SOA_COLUMN(XicDistanceFromPV, xicDistanceFromPV, float);
7676
DECLARE_SOA_COLUMN(XiccProperLength, xiccProperLength, float);
7777

78-
// PID
79-
DECLARE_SOA_COLUMN(Pi1cTofDeltaInner, pi1cTofDeltaInner, float);
80-
DECLARE_SOA_COLUMN(Pi1cTofNSigmaInner, pi1cTofNSigmaInner, float);
81-
DECLARE_SOA_COLUMN(Pi1cTofDeltaOuter, pi1cTofDeltaOuter, float);
82-
DECLARE_SOA_COLUMN(Pi1cTofNSigmaOuter, pi1cTofNSigmaOuter, float);
83-
DECLARE_SOA_COLUMN(Pi1cHasRichSignal, pi1cHasRichSignal, bool);
84-
DECLARE_SOA_COLUMN(Pi1cRichNSigma, pi1cRichNSigma, float);
85-
DECLARE_SOA_COLUMN(Pi1cPdgCode, pi1cPdgCode, int);
86-
87-
DECLARE_SOA_COLUMN(Pi2cTofDeltaInner, pi2cTofDeltaInner, float);
88-
DECLARE_SOA_COLUMN(Pi2cTofNSigmaInner, pi2cTofNSigmaInner, float);
89-
DECLARE_SOA_COLUMN(Pi2cTofDeltaOuter, pi2cTofDeltaOuter, float);
90-
DECLARE_SOA_COLUMN(Pi2cTofNSigmaOuter, pi2cTofNSigmaOuter, float);
91-
DECLARE_SOA_COLUMN(Pi2cHasRichSignal, pi2cHasRichSignal, bool);
92-
DECLARE_SOA_COLUMN(Pi2cRichNSigma, pi2cRichNSigma, float);
93-
DECLARE_SOA_COLUMN(Pi2cPdgCode, pi2cPdgCode, int);
94-
95-
DECLARE_SOA_COLUMN(PiccTofDeltaInner, piccTofDeltaInner, float);
96-
DECLARE_SOA_COLUMN(PiccTofNSigmaInner, piccTofNSigmaInner, float);
97-
DECLARE_SOA_COLUMN(PiccTofDeltaOuter, piccTofDeltaOuter, float);
98-
DECLARE_SOA_COLUMN(PiccTofNSigmaOuter, piccTofNSigmaOuter, float);
99-
DECLARE_SOA_COLUMN(PiccHasRichSignal, piccHasRichSignal, bool);
100-
DECLARE_SOA_COLUMN(PiccRichNSigma, piccRichNSigma, float);
101-
DECLARE_SOA_COLUMN(PiccPdgCode, piccPdgCode, int);
102-
10378
// Daughter info
10479
DECLARE_SOA_COLUMN(PosPt, posPt, float);
10580
DECLARE_SOA_COLUMN(PosEta, posEta, float);
@@ -159,31 +134,6 @@ DECLARE_SOA_TABLE(MCharmCores, "AOD", "MCharmCores",
159134
otfmulticharm::PiccPt,
160135
otfmulticharm::LUTConfigId);
161136

162-
DECLARE_SOA_TABLE(MCharmPID, "AOD", "MCharmPID",
163-
otfmulticharm::Pi1cTofDeltaInner,
164-
otfmulticharm::Pi1cTofNSigmaInner,
165-
otfmulticharm::Pi1cTofDeltaOuter,
166-
otfmulticharm::Pi1cTofNSigmaOuter,
167-
otfmulticharm::Pi1cHasRichSignal,
168-
otfmulticharm::Pi1cRichNSigma,
169-
otfmulticharm::Pi1cPdgCode,
170-
171-
otfmulticharm::Pi2cTofDeltaInner,
172-
otfmulticharm::Pi2cTofNSigmaInner,
173-
otfmulticharm::Pi2cTofDeltaOuter,
174-
otfmulticharm::Pi2cTofNSigmaOuter,
175-
otfmulticharm::Pi2cHasRichSignal,
176-
otfmulticharm::Pi2cRichNSigma,
177-
otfmulticharm::Pi2cPdgCode,
178-
179-
otfmulticharm::PiccTofDeltaInner,
180-
otfmulticharm::PiccTofNSigmaInner,
181-
otfmulticharm::PiccTofDeltaOuter,
182-
otfmulticharm::PiccTofNSigmaOuter,
183-
otfmulticharm::PiccHasRichSignal,
184-
otfmulticharm::PiccRichNSigma,
185-
otfmulticharm::PiccPdgCode);
186-
187137
DECLARE_SOA_TABLE(MCharmExtra, "AOD", "MCharmExtra",
188138
otfmulticharm::BachPt,
189139
otfmulticharm::BachEta,

ALICE3/DataModel/tracksAlice3.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
// O2 includes
2323
#include "Framework/AnalysisDataModel.h"
24+
#include <Framework/ASoA.h>
2425

2526
namespace o2::aod
2627
{
@@ -29,16 +30,30 @@ namespace track_alice3
2930
DECLARE_SOA_COLUMN(IsReconstructed, isReconstructed, bool); //! is reconstructed or not
3031
DECLARE_SOA_COLUMN(NSiliconHits, nSiliconHits, int); //! number of silicon hits
3132
DECLARE_SOA_COLUMN(NTPCHits, nTPCHits, int); //! number of tpc hits
33+
DECLARE_SOA_COLUMN(PdgCode, pdgCode, int); //! PDG code of the linked truth MC particle
3234
} // namespace track_alice3
3335
DECLARE_SOA_TABLE(TracksAlice3, "AOD", "TRACKSALICE3",
3436
track_alice3::IsReconstructed);
3537
using TrackAlice3 = TracksAlice3::iterator;
3638

39+
DECLARE_SOA_TABLE(TracksAlice3Pdg, "AOD", "TRACKSALICE3PDG",
40+
track_alice3::PdgCode);
41+
using TrackAlice3Pdg = TracksAlice3Pdg::iterator;
42+
3743
DECLARE_SOA_TABLE(TracksExtraA3, "AOD", "TracksExtraA3",
3844
track_alice3::NSiliconHits,
3945
track_alice3::NTPCHits);
4046
using TrackExtraA3 = TracksExtraA3::iterator;
4147

48+
namespace mcparticle_alice3
49+
{
50+
DECLARE_SOA_COLUMN(NHits, nHits, int); //! number of silicon hits
51+
DECLARE_SOA_COLUMN(Charge, charge, float); //! particle charge
52+
} // namespace mcparticle_alice3
53+
DECLARE_SOA_TABLE(MCParticlesExtraA3, "AOD", "MCParticlesExtraA3",
54+
mcparticle_alice3::NHits,
55+
mcparticle_alice3::Charge);
56+
using MCParticleExtraA3 = MCParticlesExtraA3::iterator;
4257
} // namespace o2::aod
4358

4459
#endif // ALICE3_DATAMODEL_TRACKSALICE3_H_

ALICE3/TableProducer/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ o2physics_add_dpl_workflow(alice3-hf-tree-creator-3prong
5858

5959
o2physics_add_dpl_workflow(alice3-tracking-translator
6060
SOURCES alice3TrackingTranslator.cxx
61-
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
61+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::ALICE3Core
6262
COMPONENT_NAME Analysis)
6363

6464
o2physics_add_dpl_workflow(alice3-dq-table-maker
@@ -68,5 +68,5 @@ o2physics_add_dpl_workflow(alice3-dq-table-maker
6868

6969
o2physics_add_dpl_workflow(alice3strangenessfinder
7070
SOURCES alice3strangenessFinder.cxx
71-
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
71+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::ALICE3Core
7272
COMPONENT_NAME Analysis)

0 commit comments

Comments
 (0)