Skip to content

Commit de4bfd1

Browse files
sjzhu0v0sjzhu0v0Senjie Zhu
authored
[PWGDQ] FT0C occupancy added to DQ code. (#9760)
Co-authored-by: sjzhu0v0 <sjzhu0v0@gmail.com> Co-authored-by: Senjie Zhu <szhu@lxbk0905.gsi.de>
1 parent 0c17bf4 commit de4bfd1

File tree

11 files changed

+127
-17
lines changed

11 files changed

+127
-17
lines changed

PWGDQ/Core/HistogramsLibrary.cxx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111
//
1212
// Contact: iarsene@cern.ch, i.c.arsene@fys.uio.no
1313
//
14+
#include <vector>
15+
#include <algorithm>
1416
#include "PWGDQ/Core/HistogramsLibrary.h"
1517
#include "VarManager.h"
1618
#include "CommonConstants/MathConstants.h"
@@ -88,8 +90,10 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h
8890
hm->AddHistogram(histClass, "MultFDDA", "MultFDDA", false, 300, 0.0, 300.0, VarManager::kMultFDDA);
8991
hm->AddHistogram(histClass, "MultFDDC", "MultFDDC", false, 50, 0.0, 50.0, VarManager::kMultFDDC);
9092
hm->AddHistogram(histClass, "MultTracklets", "MultTracklets", false, 250, 0.0, 250.0, VarManager::kMultTracklets);
91-
hm->AddHistogram(histClass, "VtxNContribReal", "Vtx n contributors", false, 100, 0.0, 100.0, VarManager::kVtxNcontribReal);
93+
hm->AddHistogram(histClass, "VtxNContribReal", "Vtx n contributors", false, 200, 0.0, 200.0, VarManager::kVtxNcontribReal);
9294
hm->AddHistogram(histClass, "VtxNContrib", "Vtx n contributors", false, 100, 0.0, 100.0, VarManager::kVtxNcontrib);
95+
hm->AddHistogram(histClass, "MultNTracksPVeta1", "MultNTracksPVeta1", false, 200, 0, 200.0, VarManager::kMultNTracksPVeta1);
96+
hm->AddHistogram(histClass, "MultNTracksPVetaHalf", "MultNTracksPVetaHalf", false, 200, 0, 200.0, VarManager::kMultNTracksPVetaHalf);
9397
hm->AddHistogram(histClass, "MultTPC_MultFV0A", "MultTPC vs MultFV0A", false, 100, 0, 500.0, VarManager::kMultTPC, 100, 0, 500.0, VarManager::kMultFV0A);
9498
hm->AddHistogram(histClass, "MultTPC_MultFT0A", "MultTPC vs MultFT0A", false, 100, 0, 500.0, VarManager::kMultTPC, 100, 0, 200.0, VarManager::kMultFT0A);
9599
hm->AddHistogram(histClass, "MultTPC_MultFT0C", "MultTPC vs MultFT0C", false, 100, 0, 500.0, VarManager::kMultTPC, 100, 0, 300.0, VarManager::kMultFT0C);
@@ -180,6 +184,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h
180184
}
181185
if (subGroupStr.Contains("occupancy")) {
182186
hm->AddHistogram(histClass, "ITStrackOccupancy", "ITStrackOccupancy", false, 200, 0.0, 20000.0, VarManager::kTrackOccupancyInTimeRange);
187+
hm->AddHistogram(histClass, "Ft0cOccupancy", "Ft0cOccupancy", false, 200, 0.0, 20000.0, VarManager::kFT0COccupancyInTimeRange);
183188
}
184189
if (subGroupStr.Contains("mc")) {
185190
hm->AddHistogram(histClass, "MCVtxX_VtxX", "Vtx X (MC vs rec)", false, 100, -0.5, 0.5, VarManager::kVtxX, 100, -0.5, 0.5, VarManager::kMCVtxX);

PWGDQ/Core/VarManager.cxx

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -364,8 +364,14 @@ void VarManager::SetDefaultVarNames()
364364
fgVariableUnits[kMultNTracksTPCOnly] = "";
365365
fgVariableNames[kMultNTracksITSTPC] = "# ITS-TPC tracks in PV";
366366
fgVariableUnits[kMultNTracksITSTPC] = "";
367+
fgVariableNames[kMultNTracksPVeta1] = "# Mult Tracks PV |#eta| < 1";
368+
fgVariableUnits[kMultNTracksPVeta1] = "";
369+
fgVariableNames[kMultNTracksPVetaHalf] = "# Mult Tracks PV |#eta| < 0.5";
370+
fgVariableUnits[kMultNTracksPVetaHalf] = "";
367371
fgVariableNames[kTrackOccupancyInTimeRange] = "track occupancy in TPC drift time (PV tracks)";
368372
fgVariableUnits[kTrackOccupancyInTimeRange] = "";
373+
fgVariableNames[kFT0COccupancyInTimeRange] = "FT0C occupancy";
374+
fgVariableUnits[kFT0COccupancyInTimeRange] = "";
369375
fgVariableNames[kNoCollInTimeRangeStandard] = "track occupancy in TPC drift standart time";
370376
fgVariableUnits[kNoCollInTimeRangeStandard] = "";
371377
fgVariableNames[kMultAllTracksITSTPC] = "# ITS-TPC tracks";
@@ -1146,7 +1152,10 @@ void VarManager::SetDefaultVarNames()
11461152
fgVarNamesMap["kMultNTracksITSOnly"] = kMultNTracksITSOnly;
11471153
fgVarNamesMap["kMultNTracksTPCOnly"] = kMultNTracksTPCOnly;
11481154
fgVarNamesMap["kMultNTracksITSTPC"] = kMultNTracksITSTPC;
1155+
fgVarNamesMap["kMultNTracksPVeta1"] = kMultNTracksPVeta1;
1156+
fgVarNamesMap["kMultNTracksPVetaHalf"] = kMultNTracksPVetaHalf;
11491157
fgVarNamesMap["kTrackOccupancyInTimeRange"] = kTrackOccupancyInTimeRange;
1158+
fgVarNamesMap["kFT0COccupancyInTimeRange"] = kFT0COccupancyInTimeRange;
11501159
fgVarNamesMap["kNoCollInTimeRangeStandard"] = kNoCollInTimeRangeStandard;
11511160
fgVarNamesMap["kMultAllTracksTPCOnly"] = kMultAllTracksTPCOnly;
11521161
fgVarNamesMap["kMultAllTracksITSTPC"] = kMultAllTracksITSTPC;

PWGDQ/Core/VarManager.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,10 @@ class VarManager : public TObject
241241
kMultNTracksITSOnly,
242242
kMultNTracksTPCOnly,
243243
kMultNTracksITSTPC,
244+
kMultNTracksPVeta1,
245+
kMultNTracksPVetaHalf,
244246
kTrackOccupancyInTimeRange,
247+
kFT0COccupancyInTimeRange,
245248
kNoCollInTimeRangeStandard,
246249
kMultAllTracksTPCOnly,
247250
kMultAllTracksITSTPC,
@@ -1448,6 +1451,9 @@ void VarManager::FillEvent(T const& event, float* values)
14481451
if (fgUsedVars[kTrackOccupancyInTimeRange]) {
14491452
values[kTrackOccupancyInTimeRange] = event.trackOccupancyInTimeRange();
14501453
}
1454+
if (fgUsedVars[kFT0COccupancyInTimeRange]) {
1455+
values[kFT0COccupancyInTimeRange] = event.ft0cOccupancyInTimeRange();
1456+
}
14511457
if (fgUsedVars[kNoCollInTimeRangeStandard]) {
14521458
values[kNoCollInTimeRangeStandard] = event.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard);
14531459
}
@@ -1565,9 +1571,12 @@ void VarManager::FillEvent(T const& event, float* values)
15651571
values[kMultNTracksITSOnly] = event.multNTracksITSOnly();
15661572
values[kMultNTracksTPCOnly] = event.multNTracksTPCOnly();
15671573
values[kMultNTracksITSTPC] = event.multNTracksITSTPC();
1574+
values[kMultNTracksPVeta1] = event.multNTracksPVeta1();
1575+
values[kMultNTracksPVetaHalf] = event.multNTracksPVetaHalf();
15681576
values[kMultAllTracksTPCOnly] = event.multAllTracksTPCOnly();
15691577
values[kMultAllTracksITSTPC] = event.multAllTracksITSTPC();
15701578
values[kTrackOccupancyInTimeRange] = event.trackOccupancyInTimeRange();
1579+
values[kFT0COccupancyInTimeRange] = event.ft0cOccupancyInTimeRange();
15711580
if constexpr ((fillMap & ReducedEventMultExtra) > 0) {
15721581
values[kNTPCcontribLongA] = event.nTPCoccupContribLongA();
15731582
values[kNTPCcontribLongC] = event.nTPCoccupContribLongC();

PWGDQ/DataModel/ReducedInfoTables.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,11 +152,18 @@ DECLARE_SOA_TABLE(ReducedEventsExtended, "AOD", "REEXTENDED", //! Extended even
152152
mult::MultFDDA, mult::MultFDDC, mult::MultZNA, mult::MultZNC, mult::MultTracklets, mult::MultNTracksPV,
153153
cent::CentFT0C);
154154

155-
DECLARE_SOA_TABLE(ReducedEventsMultPV, "AOD", "REMULTPV", //! Multiplicity information for primary vertex
155+
DECLARE_SOA_TABLE(ReducedEventsMultPV_000, "AOD", "REMULTPV", //! Multiplicity information for primary vertex
156156
mult::MultNTracksHasITS, mult::MultNTracksHasTPC, mult::MultNTracksHasTOF, mult::MultNTracksHasTRD,
157157
mult::MultNTracksITSOnly, mult::MultNTracksTPCOnly, mult::MultNTracksITSTPC,
158158
evsel::NumTracksInTimeRange);
159159

160+
DECLARE_SOA_TABLE_VERSIONED(ReducedEventsMultPV_001, "AOD", "REMULTPV", 1, //! Multiplicity information for primary vertex
161+
mult::MultNTracksHasITS, mult::MultNTracksHasTPC, mult::MultNTracksHasTOF, mult::MultNTracksHasTRD,
162+
mult::MultNTracksITSOnly, mult::MultNTracksTPCOnly, mult::MultNTracksITSTPC,
163+
mult::MultNTracksPVeta1, mult::MultNTracksPVetaHalf, evsel::NumTracksInTimeRange, evsel::SumAmpFT0CInTimeRange);
164+
165+
using ReducedEventsMultPV = ReducedEventsMultPV_001;
166+
160167
DECLARE_SOA_TABLE(ReducedEventsMultAll, "AOD", "REMULTALL", //! Multiplicity information for all tracks in the event
161168
mult::MultAllTracksTPCOnly, mult::MultAllTracksITSTPC,
162169
reducedevent::NTPCoccupContribLongA, reducedevent::NTPCoccupContribLongC,

PWGDQ/TableProducer/tableMaker.cxx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -498,7 +498,8 @@ struct TableMaker {
498498
eventInfo(collision.globalIndex());
499499
if constexpr ((TEventFillMap & VarManager::ObjTypes::CollisionMultExtra) > 0) {
500500
multPV(collision.multNTracksHasITS(), collision.multNTracksHasTPC(), collision.multNTracksHasTOF(), collision.multNTracksHasTRD(),
501-
collision.multNTracksITSOnly(), collision.multNTracksTPCOnly(), collision.multNTracksITSTPC(), collision.trackOccupancyInTimeRange());
501+
collision.multNTracksITSOnly(), collision.multNTracksTPCOnly(), collision.multNTracksITSTPC(),
502+
collision.multNTracksPVeta1(), collision.multNTracksPVetaHalf(), collision.trackOccupancyInTimeRange(), collision.ft0cOccupancyInTimeRange());
502503
multAll(collision.multAllTracksTPCOnly(), collision.multAllTracksITSTPC(),
503504
0, 0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0);
504505
}
@@ -970,7 +971,8 @@ struct TableMaker {
970971
eventInfo(collision.globalIndex());
971972
if constexpr ((TEventFillMap & VarManager::ObjTypes::CollisionMultExtra) > 0) {
972973
multPV(collision.multNTracksHasITS(), collision.multNTracksHasTPC(), collision.multNTracksHasTOF(), collision.multNTracksHasTRD(),
973-
collision.multNTracksITSOnly(), collision.multNTracksTPCOnly(), collision.multNTracksITSTPC(), collision.trackOccupancyInTimeRange());
974+
collision.multNTracksITSOnly(), collision.multNTracksTPCOnly(), collision.multNTracksITSTPC(),
975+
collision.multNTracksPVeta1(), collision.multNTracksPVetaHalf(), collision.trackOccupancyInTimeRange(), collision.ft0cOccupancyInTimeRange());
974976
multAll(collision.multAllTracksTPCOnly(), collision.multAllTracksITSTPC(),
975977
0, 0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0);
976978
}

PWGDQ/TableProducer/tableMakerMC.cxx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,8 @@ struct TableMakerMC {
468468
eventMClabels(fEventLabels.find(mcCollision.globalIndex())->second, collision.mcMask());
469469
if constexpr ((TEventFillMap & VarManager::ObjTypes::CollisionMultExtra) > 0) {
470470
multPV(collision.multNTracksHasITS(), collision.multNTracksHasTPC(), collision.multNTracksHasTOF(), collision.multNTracksHasTRD(),
471-
collision.multNTracksITSOnly(), collision.multNTracksTPCOnly(), collision.multNTracksITSTPC(), collision.trackOccupancyInTimeRange());
471+
collision.multNTracksITSOnly(), collision.multNTracksTPCOnly(), collision.multNTracksITSTPC(),
472+
collision.multNTracksPVeta1(), collision.multNTracksPVetaHalf(), collision.trackOccupancyInTimeRange(), collision.ft0cOccupancyInTimeRange());
472473
multAll(collision.multAllTracksTPCOnly(), collision.multAllTracksITSTPC(),
473474
0, 0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0);
474475
}

PWGDQ/TableProducer/tableMakerMC_withAssoc.cxx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ struct TableMakerMC {
378378
if (addTrackCutsStr != "") {
379379
std::vector<AnalysisCut*> addTrackCuts = dqcuts::GetCutsFromJSON(addTrackCutsStr.Data());
380380
for (auto& t : addTrackCuts) {
381-
fTrackCuts.push_back((AnalysisCompositeCut*)t);
381+
fTrackCuts.push_back(reinterpret_cast<AnalysisCompositeCut*>(t));
382382
}
383383
}
384384

@@ -395,7 +395,7 @@ struct TableMakerMC {
395395
if (addMuonCutsStr != "") {
396396
std::vector<AnalysisCut*> addMuonCuts = dqcuts::GetCutsFromJSON(addMuonCutsStr.Data());
397397
for (auto& t : addMuonCuts) {
398-
fMuonCuts.push_back((AnalysisCompositeCut*)t);
398+
fMuonCuts.push_back(reinterpret_cast<AnalysisCompositeCut*>(t));
399399
}
400400
}
401401

@@ -585,7 +585,8 @@ struct TableMakerMC {
585585
eventInfo(collision.globalIndex());
586586
if constexpr ((TEventFillMap & VarManager::ObjTypes::CollisionMultExtra) > 0) {
587587
multPV(collision.multNTracksHasITS(), collision.multNTracksHasTPC(), collision.multNTracksHasTOF(), collision.multNTracksHasTRD(),
588-
collision.multNTracksITSOnly(), collision.multNTracksTPCOnly(), collision.multNTracksITSTPC(), collision.trackOccupancyInTimeRange());
588+
collision.multNTracksITSOnly(), collision.multNTracksTPCOnly(), collision.multNTracksITSTPC(),
589+
collision.multNTracksPVeta1(), collision.multNTracksPVetaHalf(), collision.trackOccupancyInTimeRange(), collision.ft0cOccupancyInTimeRange());
589590
multAll(collision.multAllTracksTPCOnly(), collision.multAllTracksITSTPC(),
590591
0, 0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0.0, 0.0, 0.0, 0.0);
591592
}

PWGDQ/TableProducer/tableMaker_withAssoc.cxx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,7 @@ struct TableMaker {
441441
if (addTrackCutsStr != "") {
442442
std::vector<AnalysisCut*> addTrackCuts = dqcuts::GetCutsFromJSON(addTrackCutsStr.Data());
443443
for (auto& t : addTrackCuts) {
444-
fTrackCuts.push_back((AnalysisCompositeCut*)t);
444+
fTrackCuts.push_back(reinterpret_cast<AnalysisCompositeCut*>(t));
445445
}
446446
}
447447

@@ -458,7 +458,7 @@ struct TableMaker {
458458
if (addMuonCutsStr != "") {
459459
std::vector<AnalysisCut*> addMuonCuts = dqcuts::GetCutsFromJSON(addMuonCutsStr.Data());
460460
for (auto& t : addMuonCuts) {
461-
fMuonCuts.push_back((AnalysisCompositeCut*)t);
461+
fMuonCuts.push_back(reinterpret_cast<AnalysisCompositeCut*>(t));
462462
}
463463
}
464464

@@ -913,7 +913,8 @@ struct TableMaker {
913913
}
914914
if constexpr ((TEventFillMap & VarManager::ObjTypes::CollisionMultExtra) > 0) {
915915
multPV(collision.multNTracksHasITS(), collision.multNTracksHasTPC(), collision.multNTracksHasTOF(), collision.multNTracksHasTRD(),
916-
collision.multNTracksITSOnly(), collision.multNTracksTPCOnly(), collision.multNTracksITSTPC(), collision.trackOccupancyInTimeRange());
916+
collision.multNTracksITSOnly(), collision.multNTracksTPCOnly(), collision.multNTracksITSTPC(),
917+
collision.multNTracksPVeta1(), collision.multNTracksPVetaHalf(), collision.trackOccupancyInTimeRange(), collision.ft0cOccupancyInTimeRange());
917918

918919
multAll(collision.multAllTracksTPCOnly(), collision.multAllTracksITSTPC(),
919920
fOccup.oContribLongA[collision.globalIndex()], fOccup.oContribLongC[collision.globalIndex()],

PWGDQ/Tasks/CMakeLists.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,3 +113,8 @@ o2physics_add_dpl_workflow(quarkonia-to-hyperons
113113
SOURCES quarkoniaToHyperons.cxx
114114
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::MLCore O2Physics::EventFilteringUtils
115115
COMPONENT_NAME Analysis)
116+
117+
o2physics_add_dpl_workflow(model-converter-mult-pv
118+
SOURCES ModelConverterMultPv.cxx
119+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::PWGDQCore
120+
COMPONENT_NAME Analysis)
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
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+
// Contact: iarsene@cern.ch, i.c.arsene@fys.uio.no
13+
//
14+
// Task used to convert the data model from the old format to the new format. To avoid
15+
// the conflict with the old data model.
16+
17+
// other includes
18+
#include <THashList.h>
19+
#include <TList.h>
20+
#include <TString.h>
21+
#include "DataFormatsParameters/GRPObject.h"
22+
#include "Framework/runDataProcessing.h"
23+
#include "Framework/AnalysisTask.h"
24+
#include "Framework/AnalysisDataModel.h"
25+
#include "Framework/ASoAHelpers.h"
26+
#include "PWGDQ/DataModel/ReducedInfoTables.h"
27+
28+
using namespace o2;
29+
using namespace o2::framework;
30+
using namespace o2::framework::expressions;
31+
using namespace o2::aod;
32+
33+
struct MultPVConverter000_001 {
34+
Produces<aod::ReducedEventsMultPV_001> multPV_001;
35+
void processConverting(aod::ReducedEventsMultPV_000 const& multsPV)
36+
{
37+
for (const auto& r : multsPV) {
38+
multPV_001(r.multNTracksHasITS(), r.multNTracksHasTPC(), r.multNTracksHasTOF(), r.multNTracksHasTRD(),
39+
r.multNTracksITSOnly(), r.multNTracksTPCOnly(), r.multNTracksITSTPC(), -1.0f, -1.0f, r.trackOccupancyInTimeRange(), -999.0f);
40+
}
41+
}
42+
43+
void processDummy(o2::aod::ReducedEvents&)
44+
{
45+
// do nothing
46+
}
47+
48+
PROCESS_SWITCH(MultPVConverter000_001, processConverting, "Convert Table MultPV_000 to Table MultPV_001", false);
49+
PROCESS_SWITCH(MultPVConverter000_001, processDummy, "do nothing", true);
50+
};
51+
52+
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
53+
{
54+
return WorkflowSpec{
55+
adaptAnalysisTask<MultPVConverter000_001>(cfgc)};
56+
}

0 commit comments

Comments
 (0)