Skip to content

Commit 1c95091

Browse files
author
Qing
committed
Add occupancy column in hypertriton tables
1 parent 1903b07 commit 1c95091

3 files changed

Lines changed: 25 additions & 4 deletions

File tree

PWGLF/DataModel/LFHypernucleiTables.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,16 @@ namespace hyperrec
2828
DECLARE_SOA_COLUMN(CentralityFT0A, centralityFT0A, float); // centrality with FT0A estimator
2929
DECLARE_SOA_COLUMN(CentralityFT0C, centralityFT0C, float); // centrality with FT0C estimator
3030
DECLARE_SOA_COLUMN(CentralityFT0M, centralityFT0M, float); // centrality with FT0M estimator
31+
DECLARE_SOA_COLUMN(TrackOccupancyInTimeRange, trackOccupancyInTimeRange, int); // Track occupancy in the time range around the collision
32+
DECLARE_SOA_COLUMN(FT0COccupancyInTimeRange, ft0cOccupancyInTimeRange, float); // FT0C occupancy in the time range around the collision
3133
DECLARE_SOA_COLUMN(PsiFT0A, psiFT0A, float); // Psi with FT0A estimator
3234
DECLARE_SOA_COLUMN(MultFT0A, multFT0A, float); // Multiplicity with FT0A estimator
3335
DECLARE_SOA_COLUMN(PsiFT0C, psiFT0C, float); // Psi with FT0C estimator
3436
DECLARE_SOA_COLUMN(QFT0C, qFT0C, float); // Amplitude with FT0C estimator
3537
DECLARE_SOA_COLUMN(MultFT0C, multFT0C, float); // Multiplicity with FT0C estimator
3638
DECLARE_SOA_COLUMN(PsiTPC, psiTPC, float); // Psi with TPC estimator
3739
DECLARE_SOA_COLUMN(MultTPC, multTPC, float); // Multiplicity with TPC estimator
38-
DECLARE_SOA_COLUMN(CollisionId, collisionId, int64_t); // CollisionID
40+
DECLARE_SOA_INDEX_COLUMN(Collision, collision); // Collision index
3941

4042
DECLARE_SOA_COLUMN(RunNumber, runNumber, int32_t); // Run number
4143
DECLARE_SOA_COLUMN(IsMatter, isMatter, bool); // bool: true for matter
@@ -95,6 +97,7 @@ DECLARE_SOA_COLUMN(IsTwoBodyDecay, isTwoBodyDecay, bool); // bool: t
9597
DECLARE_SOA_TABLE(DataHypCands, "AOD", "HYPCANDS",
9698
o2::soa::Index<>,
9799
hyperrec::CentralityFT0A, hyperrec::CentralityFT0C, hyperrec::CentralityFT0M,
100+
hyperrec::TrackOccupancyInTimeRange, hyperrec::FT0COccupancyInTimeRange,
98101
hyperrec::XPrimVtx, hyperrec::YPrimVtx, hyperrec::ZPrimVtx,
99102

100103
hyperrec::RunNumber, hyperrec::IsMatter,
@@ -111,6 +114,7 @@ DECLARE_SOA_TABLE(DataHypCands, "AOD", "HYPCANDS",
111114
DECLARE_SOA_TABLE(DataHypCandsFlow, "AOD", "HYPCANDSFLOW",
112115
o2::soa::Index<>,
113116
hyperrec::CentralityFT0A, hyperrec::CentralityFT0C, hyperrec::CentralityFT0M,
117+
hyperrec::TrackOccupancyInTimeRange, hyperrec::FT0COccupancyInTimeRange,
114118
hyperrec::PsiFT0A, hyperrec::MultFT0A,
115119
hyperrec::PsiFT0C, hyperrec::MultFT0C, hyperrec::QFT0C,
116120
hyperrec::PsiTPC, hyperrec::MultTPC,
@@ -130,6 +134,7 @@ DECLARE_SOA_TABLE(DataHypCandsFlow, "AOD", "HYPCANDSFLOW",
130134
DECLARE_SOA_TABLE(MCHypCands, "AOD", "MCHYPCANDS",
131135
o2::soa::Index<>,
132136
hyperrec::CentralityFT0A, hyperrec::CentralityFT0C, hyperrec::CentralityFT0M,
137+
hyperrec::TrackOccupancyInTimeRange, hyperrec::FT0COccupancyInTimeRange,
133138
hyperrec::XPrimVtx, hyperrec::YPrimVtx, hyperrec::ZPrimVtx,
134139

135140
hyperrec::RunNumber, hyperrec::IsMatter,
@@ -159,6 +164,7 @@ DECLARE_SOA_TABLE(MCHypCands, "AOD", "MCHYPCANDS",
159164
DECLARE_SOA_TABLE(DataHypCandsWColl, "AOD", "HYPCANDSWCOLL",
160165
o2::soa::Index<>,
161166
hyperrec::CollisionId, hyperrec::CentralityFT0A, hyperrec::CentralityFT0C, hyperrec::CentralityFT0M,
167+
hyperrec::TrackOccupancyInTimeRange, hyperrec::FT0COccupancyInTimeRange,
162168
hyperrec::XPrimVtx, hyperrec::YPrimVtx, hyperrec::ZPrimVtx,
163169

164170
hyperrec::RunNumber, hyperrec::IsMatter,

PWGLF/TableProducer/Nuspex/hyperRecoTask.cxx

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -810,7 +810,7 @@ struct hyperRecoTask {
810810
hypCand.isSignal = true;
811811
hypCand.isFakeHeOnITSLayer = mcLabHe.mcMask() & 0x7F; // check if any of the first 7 bits is set
812812
hypCand.pdgCode = heMother.pdgCode();
813-
hypCand.isRecoMCCollision = recoCollisionIds[heMother.mcCollisionId()] > 0;
813+
hypCand.isRecoMCCollision = recoCollisionIds[heMother.mcCollisionId()] >= 0;
814814
hypCand.isSurvEvSelection = isSurvEvSelCollision[heMother.mcCollisionId()];
815815
filledMothers.push_back(heMother.globalIndex());
816816
}
@@ -844,6 +844,7 @@ struct hyperRecoTask {
844844
auto collision = collisions.rawIteratorAt(hypCand.collisionID);
845845
float trackedHypClSize = !trackedClSize.empty() ? trackedClSize[hypCand.v0ID] : 0;
846846
outputDataTable(collision.centFT0A(), collision.centFT0C(), collision.centFT0M(),
847+
collision.trackOccupancyInTimeRange(), collision.ft0cOccupancyInTimeRange(),
847848
collision.posX(), collision.posY(), collision.posZ(),
848849
mRunNumber, hypCand.isMatter,
849850
hypCand.recoPtHe3(), hypCand.recoPhiHe3(), hypCand.recoEtaHe3(),
@@ -877,6 +878,7 @@ struct hyperRecoTask {
877878
}
878879
float trackedHypClSize = !trackedClSize.empty() ? trackedClSize[hypCand.v0ID] : 0;
879880
outputDataTableWithFlow(collision.centFT0A(), collision.centFT0C(), collision.centFT0M(),
881+
collision.trackOccupancyInTimeRange(), collision.ft0cOccupancyInTimeRange(),
880882
collision.psiFT0A(), collision.multFT0A(),
881883
collision.psiFT0C(), collision.multFT0C(), collision.qFT0C(),
882884
collision.psiTPC(), collision.multTPC(),
@@ -909,6 +911,7 @@ struct hyperRecoTask {
909911
auto collision = collisions.rawIteratorAt(hypCand.collisionID);
910912
float trackedHypClSize = !trackedClSize.empty() ? trackedClSize[hypCand.v0ID] : 0;
911913
outputDataTableWithCollID(hypCand.collisionID, collision.centFT0A(), collision.centFT0C(), collision.centFT0M(),
914+
collision.trackOccupancyInTimeRange(), collision.ft0cOccupancyInTimeRange(),
912915
collision.posX(), collision.posY(), collision.posZ(),
913916
mRunNumber, hypCand.isMatter,
914917
hypCand.recoPtHe3(), hypCand.recoPhiHe3(), hypCand.recoEtaHe3(),
@@ -946,6 +949,7 @@ struct hyperRecoTask {
946949
int chargeFactor = -1 + 2 * (hypCand.pdgCode > 0);
947950
float trackedHypClSize = !trackedClSize.empty() ? trackedClSize[hypCand.v0ID] : 0;
948951
outputMCTable(collision.centFT0A(), collision.centFT0C(), collision.centFT0M(),
952+
collision.trackOccupancyInTimeRange(), collision.ft0cOccupancyInTimeRange(),
949953
collision.posX(), collision.posY(), collision.posZ(),
950954
mRunNumber, hypCand.isMatter,
951955
hypCand.recoPtHe3(), hypCand.recoPhiHe3(), hypCand.recoEtaHe3(),
@@ -1004,7 +1008,7 @@ struct hyperRecoTask {
10041008
}
10051009
hyperCandidate hypCand;
10061010
hypCand.pdgCode = mcPart.pdgCode();
1007-
hypCand.isRecoMCCollision = recoCollisionIds[mcPart.mcCollisionId()] > 0;
1011+
hypCand.isRecoMCCollision = recoCollisionIds[mcPart.mcCollisionId()] >= 0;
10081012
hypCand.isSurvEvSelection = isSurvEvSelCollision[mcPart.mcCollisionId()];
10091013
int chargeFactor = -1 + 2 * (hypCand.pdgCode > 0);
10101014
for (int i = 0; i < 3; i++) {
@@ -1017,15 +1021,20 @@ struct hyperRecoTask {
10171021
hypCand.isSignal = true;
10181022

10191023
float centFT0A = -1, centFT0C = -1, centFT0M = -1;
1024+
int trackOccupancyInTimeRange = -1;
1025+
float ft0cOccupancyInTimeRange = -1.f;
10201026
if (hypCand.isRecoMCCollision) {
10211027
auto recoCollision = collisions.rawIteratorAt(recoCollisionIds[mcPart.mcCollisionId()]);
10221028
centFT0A = recoCollision.centFT0A();
10231029
centFT0C = recoCollision.centFT0C();
10241030
centFT0M = recoCollision.centFT0M();
1031+
trackOccupancyInTimeRange = recoCollision.trackOccupancyInTimeRange();
1032+
ft0cOccupancyInTimeRange = recoCollision.ft0cOccupancyInTimeRange();
10251033
}
10261034

10271035
outputMCTable(centFT0A, centFT0C, centFT0M,
1028-
-1, -1, -1,
1036+
trackOccupancyInTimeRange, ft0cOccupancyInTimeRange,
1037+
primVtx[0], primVtx[1], primVtx[2],
10291038
mRunNumber, 0,
10301039
-1, -1, -1,
10311040
-1, -1, -1,

PWGLF/TableProducer/Nuspex/trackedHypertritonRecoTask.cxx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -744,6 +744,7 @@ struct TrackedHypertritonRecoTask {
744744
flags |= static_cast<uint8_t>(piTrack.pidForTracking() & 0xf);
745745

746746
fillCandidate(collision.centFT0A(), collision.centFT0C(), collision.centFT0M(),
747+
collision.trackOccupancyInTimeRange(), collision.ft0cOccupancyInTimeRange(),
747748
collision.posX(), collision.posY(), collision.posZ(),
748749
runNumber, heTrack.sign() > 0,
749750
std::hypot(v0.momHelium[0], v0.momHelium[1]), std::atan2(v0.momHelium[1], v0.momHelium[0]), RecoDecay::eta(v0.momHelium),
@@ -1137,6 +1138,8 @@ struct TrackedHypertritonRecoTask {
11371138
float centralityFT0A = -1.f;
11381139
float centralityFT0C = -1.f;
11391140
float centralityFT0M = -1.f;
1141+
int trackOccupancyInTimeRange = -1;
1142+
float ft0cOccupancyInTimeRange = -1.f;
11401143
float primaryVertexX = -1.f;
11411144
float primaryVertexY = -1.f;
11421145
float primaryVertexZ = -1.f;
@@ -1151,12 +1154,15 @@ struct TrackedHypertritonRecoTask {
11511154
centralityFT0A = collision.centFT0A();
11521155
centralityFT0C = collision.centFT0C();
11531156
centralityFT0M = collision.centFT0M();
1157+
trackOccupancyInTimeRange = collision.trackOccupancyInTimeRange();
1158+
ft0cOccupancyInTimeRange = collision.ft0cOccupancyInTimeRange();
11541159
primaryVertexX = collision.posX();
11551160
primaryVertexY = collision.posY();
11561161
primaryVertexZ = collision.posZ();
11571162
}
11581163
}
11591164
mcHypCands(centralityFT0A, centralityFT0C, centralityFT0M,
1165+
trackOccupancyInTimeRange, ft0cOccupancyInTimeRange,
11601166
primaryVertexX, primaryVertexY, primaryVertexZ,
11611167
runNumber, mother.pdgCode() > 0,
11621168
-1.f, -1.f, -1.f,

0 commit comments

Comments
 (0)