Skip to content

Commit 4efc60e

Browse files
romainschotterRomain Schotteralibuild
authored
[PWGCF,PWGDQ,PWGLF] Add new version of StraEvSels table (#16486)
Co-authored-by: Romain Schotter <romain.schotter@cern.ch> Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 21537e3 commit 4efc60e

19 files changed

Lines changed: 335 additions & 90 deletions

PWGCF/Flow/Tasks/flowEfficiencyCasc.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ struct FlowEfficiencyCasc {
8989
AxisSpec axisK0sMass = {400, 0.4f, 0.6f, "Inv. Mass (GeV)"};
9090
AxisSpec axisLambdaMass = {160, 1.08f, 1.16f, "Inv. Mass (GeV)"};
9191

92-
using MyCollisions = soa::Join<aod::StraCollisions, aod::StraEvSels, aod::StraCents>;
92+
using MyCollisions = soa::Join<aod::StraCollisions, aod::StraEvSels, aod::StraEvSelExtras, aod::StraCents>;
9393
using MyMcCollisions = soa::Join<aod::StraMCCollisions, aod::StraMCCollMults>;
9494
using CascMCCandidates = soa::Join<aod::CascCollRefs, aod::CascCores, aod::CascExtras, aod::CascBBs, aod::CascCoreMCLabels>;
9595
using V0MCCandidates = soa::Join<aod::V0CollRefs, aod::V0Cores, aod::V0Extras, aod::V0CoreMCLabels>;
@@ -345,7 +345,7 @@ struct FlowEfficiencyCasc {
345345
}
346346
PROCESS_SWITCH(FlowEfficiencyCasc, processRec, "process reconstructed information", true);
347347

348-
void processGen(MyMcCollisions::iterator const&, soa::SmallGroups<soa::Join<aod::StraCollisions, aod::StraEvSels, aod::StraCollLabels>> const& coll, const soa::SmallGroups<soa::Join<aod::CascMCCores, aod::CascMCCollRefs>>& cascMCs, const soa::SmallGroups<soa::Join<aod::V0MCCores, aod::V0MCCollRefs>>& v0MCs)
348+
void processGen(MyMcCollisions::iterator const&, soa::SmallGroups<soa::Join<aod::StraCollisions, aod::StraEvSels, aod::StraEvSelExtras, aod::StraCollLabels>> const& coll, const soa::SmallGroups<soa::Join<aod::CascMCCores, aod::CascMCCollRefs>>& cascMCs, const soa::SmallGroups<soa::Join<aod::V0MCCores, aod::V0MCCollRefs>>& v0MCs)
349349
{
350350
registry.fill(HIST("mcEventCounter"), 0.5);
351351
int rectracknum = 0;

PWGDQ/Tasks/quarkoniaToHyperons.cxx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ struct QuarkoniaToHyperons {
378378
Service<o2::framework::O2DatabasePDG> pdgDB;
379379

380380
// For manual sliceBy
381-
PresliceUnsorted<soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraCollLabels>> perMcCollision = aod::v0data::straMCCollisionId;
381+
PresliceUnsorted<soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraEvSelExtras, aod::StraCollLabels>> perMcCollision = aod::v0data::straMCCollisionId;
382382

383383
enum Selection : uint64_t { selCosPA = 0,
384384
selRadius,
@@ -935,7 +935,7 @@ struct QuarkoniaToHyperons {
935935
histos.print();
936936
}
937937

938-
template <typename TCollision> // TCollision should be of the type: soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraStamps>::iterator or so
938+
template <typename TCollision> // TCollision should be of the type: soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraEvSelExtras, aod::StraStamps>::iterator or so
939939
void initCCDB(TCollision const& collision)
940940
{
941941
if (mRunNumber == collision.runNumber() || (ccdbConfigurations.useCustomRunNumber && mRunNumber == ccdbConfigurations.customRunNumber)) {
@@ -2497,7 +2497,7 @@ struct QuarkoniaToHyperons {
24972497

24982498
// ______________________________________________________
24992499
// Real data processing - no MC subscription
2500-
void processRealData(soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraStamps> const& collisions, V0Candidates const& fullV0s, CascadeCandidates const& fullCascades, DauTracks const&)
2500+
void processRealData(soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraEvSelExtras, aod::StraStamps> const& collisions, V0Candidates const& fullV0s, CascadeCandidates const& fullCascades, DauTracks const&)
25012501
{
25022502
// Custom grouping
25032503
v0sGrouped.clear();
@@ -2674,7 +2674,7 @@ struct QuarkoniaToHyperons {
26742674

26752675
// ______________________________________________________
26762676
// Simulated processing (subscribes to MC information too)
2677-
void processMonteCarlo(soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraStamps, aod::StraCollLabels> const& collisions, V0MCCandidates const& fullV0s, CascadeMCCandidates const& fullCascades, DauTracks const&, aod::MotherMCParts const&, soa::Join<aod::StraMCCollisions, aod::StraMCCollMults> const& /*mccollisions*/, soa::Join<aod::V0MCCores, aod::V0MCCollRefs> const&, soa::Join<aod::CascMCCores, aod::CascMCCollRefs> const&)
2677+
void processMonteCarlo(soa::Join<aod::StraCollisions, aod::StraCents, aod::StraEvSels, aod::StraEvSelExtras, aod::StraStamps, aod::StraCollLabels> const& collisions, V0MCCandidates const& fullV0s, CascadeMCCandidates const& fullCascades, DauTracks const&, aod::MotherMCParts const&, soa::Join<aod::StraMCCollisions, aod::StraMCCollMults> const& /*mccollisions*/, soa::Join<aod::V0MCCores, aod::V0MCCollRefs> const&, soa::Join<aod::CascMCCores, aod::CascMCCollRefs> const&)
26782678
{
26792679
// Custom grouping
26802680
v0sGrouped.clear();

PWGLF/DataModel/LFStrangenessTables.h

Lines changed: 56 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -280,15 +280,60 @@ DECLARE_SOA_TABLE_VERSIONED(StraEvSels_005, "AOD", "STRAEVSELS", 5, //!
280280
// stracollision::EnergyCommonZNC<mult::MultZNC>,
281281
stracollision::IsUPC<udcollision::GapSide>);
282282

283-
DECLARE_SOA_TABLE(StraEvSelExtras, "AOD", "STRAEVSELEXTRAS", //! debug information
284-
udzdc::TimeZNA, // UPC info: re-assigned ZN-A time, in case of SG event, from the most active bc
285-
udzdc::TimeZNC, // UPC info: re-assigned ZN-C time, in case of SG event, from the most active bc
286-
udcollision::TimeFDDA, // Average A-side time (ns)
287-
udcollision::TimeFDDC, // Average C-side time (ns)
288-
udcollision::TimeFV0A, // Average A-side time (ns)
289-
udcollision::TimeFT0A, // Average A-side time (ns)
290-
udcollision::TimeFT0C, // Average C-side time (ns)
291-
udcollision::TriggerMaskFT0); // 8 trigger bits: OrA, OrC, Semi-central, Central, Vertex, IsActiveA, IsActiveC, IsFlangeEvent
283+
DECLARE_SOA_TABLE_VERSIONED(StraEvSels_006, "AOD", "STRAEVSELS", 6, //! debug information
284+
evsel::Sel8, evsel::Selection, //! event selection: sel8
285+
mult::MultFT0A, mult::MultFT0C, mult::MultFV0A, // FIT detectors
286+
mult::MultFDDA, mult::MultFDDC,
287+
mult::MultNTracksPVeta1, // track multiplicities with eta cut for INEL>0
288+
mult::MultPVTotalContributors, // number of PV contribs total
289+
mult::MultNTracksGlobal, // global track multiplicities
290+
collision::Flags, // Contains Vertex::Flags, with most notably the UPCMode to know whether the vertex has been found using UPC settings
291+
evsel::Alias, // trigger aliases (e.g. kTVXinTRD for v2)
292+
evsel::Rct); // Bitmask of RCT flags
293+
294+
DECLARE_SOA_TABLE(StraEvSelExtras_000, "AOD", "STRAEVSELEXTRAS", //! debug information
295+
udzdc::TimeZNA, // UPC info: re-assigned ZN-A time, in case of SG event, from the most active bc
296+
udzdc::TimeZNC, // UPC info: re-assigned ZN-C time, in case of SG event, from the most active bc
297+
udcollision::TimeFDDA, // Average A-side time (ns)
298+
udcollision::TimeFDDC, // Average C-side time (ns)
299+
udcollision::TimeFV0A, // Average A-side time (ns)
300+
udcollision::TimeFT0A, // Average A-side time (ns)
301+
udcollision::TimeFT0C, // Average C-side time (ns)
302+
udcollision::TriggerMaskFT0); // 8 trigger bits: OrA, OrC, Semi-central, Central, Vertex, IsActiveA, IsActiveC, IsFlangeEvent
303+
304+
DECLARE_SOA_TABLE_VERSIONED(StraEvSelExtras_001, "AOD", "STRAEVSELEXTRAS", 1, //! debug information
305+
mult::MultZNA, mult::MultZNC, mult::MultZEM1, // ZDC signals
306+
mult::MultZEM2, mult::MultZPA, mult::MultZPC,
307+
mult::MultNTracksITSTPC, // track multiplicities, PV contribs, no eta cut
308+
mult::MultAllTracksTPCOnly, // TPConly track multiplicities, all, no eta cut
309+
mult::MultAllTracksITSTPC, // ITSTPC track multiplicities, all, no eta cut
310+
evsel::NumTracksInTimeRange, // add occupancy in specified time interval by a number of tracks from nearby collisions
311+
evsel::SumAmpFT0CInTimeRange, // add occupancy in specified time interval by a sum of FT0C amplitudes from nearby collisions
312+
udcollision::TimeFDDA, // Average A-side time (ns)
313+
udcollision::TimeFDDC, // Average C-side time (ns)
314+
udcollision::TimeFV0A, // Average A-side time (ns)
315+
udcollision::TimeFT0A, // Average A-side time (ns)
316+
udcollision::TimeFT0C, // Average C-side time (ns)
317+
udcollision::TriggerMaskFT0, // 8 trigger bits: OrA, OrC, Semi-central, Central, Vertex, IsActiveA, IsActiveC, IsFlangeEvent
318+
udcollision::GapSide, // UPC info: 0 for side A, 1 for side C, 2 for both sides, 3 neither A or C, 4 not enough or too many pv contributors
319+
udcollision::TotalFT0AmplitudeA, // UPC info: re-assigned FT0-A amplitude, in case of SG event, from the most active bc
320+
udcollision::TotalFT0AmplitudeC, // UPC info: re-assigned FT0-C amplitude, in case of SG event, from the most active bc
321+
udcollision::TotalFV0AmplitudeA, // UPC info: re-assigned FV0-A amplitude, in case of SG event, from the most active bc
322+
udcollision::TotalFDDAmplitudeA, // UPC info: re-assigned FDD-A amplitude, in case of SG event, from the most active bc
323+
udcollision::TotalFDDAmplitudeC, // UPC info: re-assigned FDD-C amplitude, in case of SG event, from the most active bc
324+
udzdc::TimeZNA, // UPC info: re-assigned ZN-A time, in case of SG event, from the most active bc
325+
udzdc::TimeZNC, // UPC info: re-assigned ZN-C time, in case of SG event, from the most active bc
326+
udzdc::EnergyCommonZNA, // UPC info: re-assigned ZN-A amplitude, in case of SG event, from the most active bc
327+
udzdc::EnergyCommonZNC, // UPC info: re-assigned ZN-C amplitude, in case of SG event, from the most active bc
328+
// Dynamic columns for manipulating information
329+
// stracollision::TotalFV0AmplitudeA<mult::MultFV0A>,
330+
// stracollision::TotalFT0AmplitudeA<mult::MultFT0A>,
331+
// stracollision::TotalFT0AmplitudeC<mult::MultFT0C>,
332+
// stracollision::TotalFDDAmplitudeA<mult::MultFDDA>,
333+
// stracollision::TotalFDDAmplitudeC<mult::MultFDDC>,
334+
// stracollision::EnergyCommonZNA<mult::MultZNA>,
335+
// stracollision::EnergyCommonZNC<mult::MultZNC>,
336+
stracollision::IsUPC<udcollision::GapSide>);
292337

293338
DECLARE_SOA_TABLE(StraEvSelsRun2, "AOD", "STRAEVSELSRUN2", //! debug information
294339
evsel::Sel8, evsel::Sel7, evsel::Selection, //! event selection: sel8
@@ -334,7 +379,8 @@ DECLARE_SOA_TABLE_VERSIONED(StraEvTimes_001, "AOD", "STRAEVTIMES", 1, //! event
334379

335380
using StraRawCents = StraRawCents_004;
336381
using StraCents = StraCents_002;
337-
using StraEvSels = StraEvSels_005;
382+
using StraEvSels = StraEvSels_006;
383+
using StraEvSelExtras = StraEvSelExtras_001;
338384
using StraStamps = StraStamps_001;
339385
using StraEvTimes = StraEvTimes_001;
340386
using StraCollision = StraCollisions::iterator;

PWGLF/TableProducer/Strangeness/Converters/CMakeLists.txt

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ o2physics_add_dpl_workflow(stradautrackstofpidconverter3
3636

3737
o2physics_add_dpl_workflow(stradautracksextraconverter
3838
SOURCES stradautracksextraconverter.cxx
39-
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
39+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
4040
COMPONENT_NAME Analysis)
4141

4242
o2physics_add_dpl_workflow(stradautracksextraconverter2
@@ -84,6 +84,21 @@ o2physics_add_dpl_workflow(straevselsconverter5
8484
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::AnalysisCCDB
8585
COMPONENT_NAME Analysis)
8686

87+
o2physics_add_dpl_workflow(straevselsconverter6
88+
SOURCES straevselsconverter6.cxx
89+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::AnalysisCCDB
90+
COMPONENT_NAME Analysis)
91+
92+
o2physics_add_dpl_workflow(straevselextrasconverter
93+
SOURCES straevselextrasconverter.cxx
94+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
95+
COMPONENT_NAME Analysis)
96+
97+
o2physics_add_dpl_workflow(straevselextrasconverter2
98+
SOURCES straevselextrasconverter2.cxx
99+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
100+
COMPONENT_NAME Analysis)
101+
87102
o2physics_add_dpl_workflow(straevselsconverter2rawcents
88103
SOURCES straevselsconverter2rawcents.cxx
89104
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
4+
//
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7+
//
8+
// In applying this license CERN does not waive the privileges and immunities
9+
// granted to it by virtue of its status as an Intergovernmental Organization
10+
// or submit itself to any jurisdiction.
11+
12+
#include "PWGLF/DataModel/LFStrangenessTables.h"
13+
14+
#include "CCDB/BasicCCDBManager.h"
15+
#include "DataFormatsParameters/AggregatedRunInfo.h"
16+
#include "Framework/AnalysisDataModel.h"
17+
#include "Framework/AnalysisTask.h"
18+
#include "Framework/runDataProcessing.h"
19+
20+
using namespace o2;
21+
using namespace o2::framework;
22+
using namespace o2::aod::evsel;
23+
24+
// Converts straevselsextrasconverter1 converts StraEvSelExtras_000 into StraEvSelExtras_001
25+
struct straevselextrasconverter {
26+
Produces<aod::StraEvSelExtras_001> straEvSelExtras_001;
27+
28+
void process(soa::Join<aod::StraEvSels_005, aod::StraEvSelExtras_000> const& straEvSels_005)
29+
{
30+
for (auto& values : straEvSels_005) {
31+
straEvSelExtras_001(values.multZNA(),
32+
values.multZNC(),
33+
values.multZEM1(),
34+
values.multZEM2(),
35+
values.multZPA(),
36+
values.multZPC(),
37+
values.multNTracksITSTPC(),
38+
values.multAllTracksTPCOnly(),
39+
values.multAllTracksITSTPC(),
40+
values.trackOccupancyInTimeRange(),
41+
values.ft0cOccupancyInTimeRange(),
42+
values.timeFDDA(),
43+
values.timeFDDC(),
44+
values.timeFV0A(),
45+
values.timeFT0A(),
46+
values.timeFT0C(),
47+
values.triggerMaskFT0(),
48+
values.gapSide(),
49+
values.totalFT0AmplitudeA(),
50+
values.totalFT0AmplitudeC(),
51+
values.totalFV0AmplitudeA(),
52+
values.totalFDDAmplitudeA(),
53+
values.totalFDDAmplitudeC(),
54+
values.timeZNA(),
55+
values.timeZNC(),
56+
values.energyCommonZNA(),
57+
values.energyCommonZNC());
58+
}
59+
}
60+
};
61+
62+
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
63+
{
64+
return WorkflowSpec{
65+
adaptAnalysisTask<straevselextrasconverter>(cfgc)};
66+
}
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
4+
//
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7+
//
8+
// In applying this license CERN does not waive the privileges and immunities
9+
// granted to it by virtue of its status as an Intergovernmental Organization
10+
// or submit itself to any jurisdiction.
11+
12+
#include "PWGLF/DataModel/LFStrangenessTables.h"
13+
14+
#include "CCDB/BasicCCDBManager.h"
15+
#include "DataFormatsParameters/AggregatedRunInfo.h"
16+
#include "Framework/AnalysisDataModel.h"
17+
#include "Framework/AnalysisTask.h"
18+
#include "Framework/runDataProcessing.h"
19+
20+
using namespace o2;
21+
using namespace o2::framework;
22+
using namespace o2::aod::evsel;
23+
24+
// Produce dummy StraEvSelExtras for analysis subscribing to StraEvSelExtras but not saved in the strangeness derived data (typically when running over pp strangeness derived data)
25+
struct straevselextrasconverter2 {
26+
Produces<aod::StraEvSelExtras> straEvSelExtras;
27+
28+
void process(aod::StraEvSels const& straEvSels)
29+
{
30+
for (int ii = 0; ii < straEvSels.size(); ii++) {
31+
straEvSelExtras(-999., // dummy multZNA,
32+
-999., // dummy multZNC,
33+
-999., // dummy multZEM1,
34+
-999., // dummy multZEM2,
35+
-999., // dummy multZPA,
36+
-999., // dummy multZPC,
37+
-999., // dummy multNTracksITSTPC,
38+
-999., // dummy multAllTracksTPCOnly,
39+
-999., // dummy multAllTracksITSTPC,
40+
-999., // dummy trackOccupancyInTimeRange,
41+
-999., // dummy ft0cOccupancyInTimeRange,
42+
-999., // dummy timeFDDA,
43+
-999., // dummy timeFDDC,
44+
-999., // dummy timeFV0A,
45+
-999., // dummy timeFT0A,
46+
-999., // dummy timeFT0C,
47+
0, // dummy triggerMaskFT0,
48+
-999, // dummy gapSide,
49+
-999., // dummy totalFT0AmplitudeA,
50+
-999., // dummy totalFT0AmplitudeC,
51+
-999., // dummy totalFV0AmplitudeA,
52+
-999., // dummy totalFDDAmplitudeA,
53+
-999., // dummy totalFDDAmplitudeC,
54+
-999., // dummy timeZNA,
55+
-999., // dummy timeZNC,
56+
-999., // dummy energyCommonZNA,
57+
-999.); // dummy energyCommonZNC);
58+
}
59+
}
60+
};
61+
62+
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
63+
{
64+
return WorkflowSpec{
65+
adaptAnalysisTask<straevselextrasconverter2>(cfgc)};
66+
}

0 commit comments

Comments
 (0)