Skip to content

Commit 8081c8d

Browse files
committed
Modifications to create StraEvTimes for existing data
1 parent cf8a6a9 commit 8081c8d

File tree

1 file changed

+32
-4
lines changed

1 file changed

+32
-4
lines changed

PWGLF/TableProducer/Strangeness/Converters/stradautrackstofpidconverter2.cxx

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,40 @@ using namespace o2::framework;
2121
// converts DauTrackTOFPIDs_000 to _001
2222
struct stradautrackstofpidconverter2 {
2323
Produces<aod::DauTrackTOFPIDs_001> dautracktofpids;
24+
Produces<aod::StraEvTimes> straEvTimes;
2425

25-
void process(aod::DauTrackTOFPIDs_000 const& dauTrackTOFPIDs)
26+
void process(aod::StraCollisions const& collisions, soa::Join<aod::DauTrackExtras, aod::DauTrackTOFPIDs_000> const& dauTracks, soa::Join<aod::V0CollRefs, aod::V0Cores, aod::V0Extras> const& v0s)
2627
{
27-
for (int ii = 0; ii < dauTrackTOFPIDs.size(); ii++) {
28-
auto dauTrackTOFPID = dauTrackTOFPIDs.rawIteratorAt(ii);
29-
dautracktofpids(-1, -1, dauTrackTOFPID.tofSignal(), dauTrackTOFPID.tofEvTime(), dauTrackTOFPID.length(), 0.0f);
28+
// create new TOFPIDs
29+
for (int ii = 0; ii < dauTracks.size(); ii++) {
30+
auto dauTrack = dauTracks.rawIteratorAt(ii);
31+
dautracktofpids(-1, -1, dauTrack.tofSignal(), dauTrack.tofEvTime(), dauTrack.length(), 0.0f);
32+
}
33+
34+
// fill EvTimes (created simultaneously, so done in the same converter)
35+
// recover as much as possible from the previous format
36+
std::vector<double> collisionEventTime(collisions.size(), 0.0);
37+
std::vector<int> collisionNtracks(collisions.size(), 0);
38+
39+
for (const auto& v0 : v0s) {
40+
auto posTrackTOF = dauTracks.rawIteratorAt(v0.posTrackExtraId());
41+
auto negTrackTOF = dauTracks.rawIteratorAt(v0.negTrackExtraId());
42+
if(posTrackTOF.hasTOF()){
43+
collisionEventTime[v0.straCollisionId()] += posTrackTOF.tofEvTime();
44+
collisionNtracks[v0.straCollisionId()] ++;
45+
}
46+
if(negTrackTOF.hasTOF()){
47+
collisionEventTime[v0.straCollisionId()] += negTrackTOF.tofEvTime();
48+
collisionNtracks[v0.straCollisionId()] ++;
49+
}
50+
}
51+
for (const auto& collision: collisions){
52+
if(collisionNtracks[collision.globalIndex()] > 0){
53+
collisionEventTime[collision.globalIndex()] /= static_cast<double>(collisionNtracks[collision.globalIndex()]);
54+
}else{
55+
collisionEventTime[collision.globalIndex()] = -1e+6; // undefined
56+
}
57+
straEvTimes(collisionEventTime[collision.globalIndex()]);
3058
}
3159
}
3260
};

0 commit comments

Comments
 (0)