Skip to content

Commit 8d6d257

Browse files
authored
Merge branch 'AliceO2Group:master' into new-derivedLongrange
2 parents 437ff27 + f40f8f9 commit 8d6d257

Some content is hidden

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

47 files changed

+4963
-1730
lines changed

Common/DataModel/ZDCLightIons.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
/// \brief ZDC data model for O-O Ne-Ne and p-O collisions
1414
/// \author Chiara Oppedisano <chiara.oppedisano@cern.ch>
1515

16-
#ifndef PWGMM_DATAMODEL_ZDCLIGHTIONS_H_
17-
#define PWGMM_DATAMODEL_ZDCLIGHTIONS_H_
16+
#ifndef COMMON_DATAMODEL_ZDCLIGHTIONS_H_
17+
#define COMMON_DATAMODEL_ZDCLIGHTIONS_H_
1818

1919
#include "Common/DataModel/Centrality.h"
2020

@@ -77,8 +77,10 @@ DECLARE_SOA_TABLE(ZDCLightIons, "AOD", "ZDCTABLELIGHTIONS",
7777
zdclightions::ZncPm4,
7878
zdclightions::ZpaTdc,
7979
zdclightions::ZpaAmpl,
80+
zdclightions::ZpaPmc,
8081
zdclightions::ZpcTdc,
8182
zdclightions::ZpcAmpl,
83+
zdclightions::ZpcPmc,
8284
zdclightions::Zem1Tdc,
8385
zdclightions::Zem1Ampl,
8486
zdclightions::Zem2Tdc,

Common/TableProducer/zdcTaskLightIons.cxx

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,8 @@ struct ZdcTaskLightIons {
173173
//
174174
double pmcZNA = bc.zdc().energyCommonZNA();
175175
double pmcZNC = bc.zdc().energyCommonZNC();
176+
double pmcZPA = bc.zdc().energyCommonZPA();
177+
double pmcZPC = bc.zdc().energyCommonZPC();
176178
double pmqZNC[4] = {
177179
0,
178180
0,
@@ -213,7 +215,9 @@ struct ZdcTaskLightIons {
213215

214216
zdcTableLI(tdcZNA, zna, pmcZNA, pmqZNA[0], pmqZNA[1], pmqZNA[2], pmqZNA[3],
215217
tdcZNC, znc, pmcZNC, pmqZNC[0], pmqZNC[1], pmqZNC[2], pmqZNC[3],
216-
tdcZPA, zpa, tdcZPC, zpc, tdcZEM1, zem1, tdcZEM2, zem2,
218+
tdcZPA, zpa, pmcZPA,
219+
tdcZPC, zpc, pmcZPC,
220+
tdcZEM1, zem1, tdcZEM2, zem2,
217221
-1, -1, -1,
218222
-1.,
219223
-1, -1, -1,
@@ -226,7 +230,7 @@ struct ZdcTaskLightIons {
226230
/// note that it has to be declared after the function, so that the pointer is known
227231
PROCESS_SWITCH(ZdcTaskLightIons, processZDCBC, "Processing ZDC 4 auto-triggered events", true);
228232

229-
void processALICEcoll(ColEvSels const& cols, BCsRun3 const& /*bcs*/, aod::Zdcs const& /*zdcs*/)
233+
void processALICEcoll(ColEvSels const& cols, BCsRun3 const& /*bcs*/, aod::Zdcs const& /*zdcs*/, aod::FT0s const& /*ft0s*/, aod::FV0As const& /*fv0*/)
230234
{
231235
// collision-based event selection
232236
for (auto const& collision : cols) {
@@ -276,6 +280,8 @@ struct ZdcTaskLightIons {
276280
//
277281
double pmcZNA = zdc.energyCommonZNA();
278282
double pmcZNC = zdc.energyCommonZNC();
283+
double pmcZPA = zdc.energyCommonZPA();
284+
double pmcZPC = zdc.energyCommonZPC();
279285
double pmqZNC[4] = {
280286
0,
281287
0,
@@ -316,7 +322,9 @@ struct ZdcTaskLightIons {
316322

317323
zdcTableLI(tdcZNA, zna, pmcZNA, pmqZNA[0], pmqZNA[1], pmqZNA[2], pmqZNA[3],
318324
tdcZNC, znc, pmcZNC, pmqZNC[0], pmqZNC[1], pmqZNC[2], pmqZNC[3],
319-
tdcZPA, zpa, tdcZPC, zpc, tdcZEM1, zem1, tdcZEM2, zem2,
325+
tdcZPA, zpa, pmcZPA,
326+
tdcZPC, zpc, pmcZPC,
327+
tdcZEM1, zem1, tdcZEM2, zem2,
320328
multFT0A, multFT0C, multV0A,
321329
zv,
322330
centralityFT0C, centralityFT0A, centralityFT0M,

DPG/Tasks/AOTEvent/eventSelectionQa.cxx

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ struct EventSelectionQaTask {
7070
Configurable<int32_t> nGlobalBCs{"nGlobalBCs", 100000, "number of global bcs for detailed monitoring"};
7171
Configurable<bool> isLowFlux{"isLowFlux", 1, "1 - low flux (pp, pPb), 0 - high flux (PbPb)"};
7272
Configurable<bool> fillITSdeadStaveHists{"fillITSdeadStaveHists", 0, "0 - no, 1 - yes"};
73+
Configurable<bool> fillTPCnClsVsOccupancyHists{"fillTPCnClsVsOccupancyHists", 0, "0 - no, 1 - yes"};
7374

7475
Service<o2::ccdb::BasicCCDBManager> ccdb;
7576
HistogramRegistry histos{"Histos", {}, OutputObjHandlingPolicy::AnalysisObject};
@@ -375,18 +376,24 @@ struct EventSelectionQaTask {
375376
histos.add("occupancyQA/hNumTracksITSTPC_vs_V0A_vs_occupancy", "", kTH3F, {axisMultV0AForOccup, axisNtracksPVTPC, axisOccupancyTracks});
376377
histos.add("occupancyQA/hNumTracksPV_vs_V0A_vs_occupancy_NarrowDeltaTimeCut", "", kTH3F, {axisMultV0AForOccup, axisNtracksPV, axisOccupancyTracks});
377378
histos.add("occupancyQA/hNumTracksPVTPC_vs_V0A_vs_occupancy_NarrowDeltaTimeCut", "", kTH3F, {axisMultV0AForOccup, axisNtracksPVTPC, axisOccupancyTracks});
379+
histos.add("occupancyQA/hNumTracksPV_vs_V0A_vs_occupancy_StandardDeltaTimeCut", "", kTH3F, {axisMultV0AForOccup, axisNtracksPV, axisOccupancyTracks});
380+
histos.add("occupancyQA/hNumTracksPVTPC_vs_V0A_vs_occupancy_StandardDeltaTimeCut", "", kTH3F, {axisMultV0AForOccup, axisNtracksPVTPC, axisOccupancyTracks});
381+
histos.add("occupancyQA/hNumTracksPV_vs_V0A_vs_occupancy_GoodITSLayersAllCut", "", kTH3F, {axisMultV0AForOccup, axisNtracksPV, axisOccupancyTracks});
382+
histos.add("occupancyQA/hNumTracksPVTPC_vs_V0A_vs_occupancy_GoodITSLayersAllCut", "", kTH3F, {axisMultV0AForOccup, axisNtracksPVTPC, axisOccupancyTracks});
378383
// requested by TPC experts: nTPConly tracks vs occupancy
379384
histos.add("occupancyQA/hNumTracksTPConly_vs_V0A_vs_occupancy", "", kTH3F, {axisMultV0AForOccup, axisNtracksTPConly, axisOccupancyTracks});
380385
histos.add("occupancyQA/hNumTracksTPConlyNoITS_vs_V0A_vs_occupancy", "", kTH3F, {axisMultV0AForOccup, axisNtracksTPConly, axisOccupancyTracks});
381386
// request from experts to add track properties vs occupancy, to compare data vs MC
382-
const AxisSpec axisOccupancyForTrackQA{60, 0., 15000, "occupancy (n ITS tracks weighted)"};
383-
const AxisSpec axisNTPCcls{150, 0, 150, "n TPC clusters"};
384-
histos.add("occupancyQA/tpcNClsFound_vs_V0A_vs_occupancy", "", kTH3F, {axisMultV0AForOccup, axisNTPCcls, axisOccupancyForTrackQA});
385-
histos.add("occupancyQA/tpcNClsFindable_vs_V0A_vs_occupancy", "", kTH3F, {axisMultV0AForOccup, axisNTPCcls, axisOccupancyForTrackQA});
386-
histos.add("occupancyQA/tpcNClsShared_vs_V0A_vs_occupancy", "", kTH3F, {axisMultV0AForOccup, axisNTPCcls, axisOccupancyForTrackQA});
387-
histos.add("occupancyQA/tpcNCrossedRows_vs_V0A_vs_occupancy", "", kTH3F, {axisMultV0AForOccup, axisNTPCcls, axisOccupancyForTrackQA});
388-
const AxisSpec axisChi2TPC{150, 0, 15, "chi2Ncl TPC"};
389-
histos.add("occupancyQA/tpcChi2_vs_V0A_vs_occupancy", "", kTH3F, {axisMultV0AForOccup, axisChi2TPC, axisOccupancyForTrackQA});
387+
if (fillTPCnClsVsOccupancyHists) {
388+
const AxisSpec axisOccupancyForTrackQA{60, 0., 15000, "occupancy (n ITS tracks weighted)"};
389+
const AxisSpec axisNTPCcls{150, 0, 150, "n TPC clusters"};
390+
histos.add("occupancyQA/tpcNClsFound_vs_V0A_vs_occupancy", "", kTH3F, {axisMultV0AForOccup, axisNTPCcls, axisOccupancyForTrackQA});
391+
histos.add("occupancyQA/tpcNClsFindable_vs_V0A_vs_occupancy", "", kTH3F, {axisMultV0AForOccup, axisNTPCcls, axisOccupancyForTrackQA});
392+
histos.add("occupancyQA/tpcNClsShared_vs_V0A_vs_occupancy", "", kTH3F, {axisMultV0AForOccup, axisNTPCcls, axisOccupancyForTrackQA});
393+
histos.add("occupancyQA/tpcNCrossedRows_vs_V0A_vs_occupancy", "", kTH3F, {axisMultV0AForOccup, axisNTPCcls, axisOccupancyForTrackQA});
394+
const AxisSpec axisChi2TPC{150, 0, 15, "chi2Ncl TPC"};
395+
histos.add("occupancyQA/tpcChi2_vs_V0A_vs_occupancy", "", kTH3F, {axisMultV0AForOccup, axisChi2TPC, axisOccupancyForTrackQA});
396+
}
390397

391398
// ITS in-ROF occupancy
392399
histos.add("occupancyQA/hITSTracks_ev1_vs_ev2_2coll_in_ROF", ";nITStracks event #1;nITStracks event #2", kTH2D, {{200, 0., 6000}, {200, 0., 6000}});
@@ -1198,7 +1205,7 @@ struct EventSelectionQaTask {
11981205
if (track.hasTPC()) {
11991206
nContributorsAfterEtaTPCLooseCuts++;
12001207

1201-
if (!isLowFlux && col.sel8() && col.selection_bit(kNoSameBunchPileup) && fabs(col.posZ()) < 10 && occupancyByTracks >= 0) {
1208+
if (!isLowFlux && fillTPCnClsVsOccupancyHists && col.sel8() && col.selection_bit(kNoSameBunchPileup) && fabs(col.posZ()) < 10 && occupancyByTracks >= 0) {
12021209
histos.fill(HIST("occupancyQA/tpcNClsFound_vs_V0A_vs_occupancy"), multV0A, track.tpcNClsFound(), occupancyByTracks);
12031210
histos.fill(HIST("occupancyQA/tpcNClsFindable_vs_V0A_vs_occupancy"), multV0A, track.tpcNClsFindable(), occupancyByTracks);
12041211
histos.fill(HIST("occupancyQA/tpcNClsShared_vs_V0A_vs_occupancy"), multV0A, track.tpcNClsShared(), occupancyByTracks);
@@ -1248,6 +1255,14 @@ struct EventSelectionQaTask {
12481255
histos.fill(HIST("occupancyQA/hNumTracksPV_vs_V0A_vs_occupancy_NarrowDeltaTimeCut"), multV0A, nPV, occupancyByTracks);
12491256
histos.fill(HIST("occupancyQA/hNumTracksPVTPC_vs_V0A_vs_occupancy_NarrowDeltaTimeCut"), multV0A, nContributorsAfterEtaTPCCuts, occupancyByTracks);
12501257
}
1258+
if (col.selection_bit(kNoCollInTimeRangeStandard)) {
1259+
histos.fill(HIST("occupancyQA/hNumTracksPV_vs_V0A_vs_occupancy_StandardDeltaTimeCut"), multV0A, nPV, occupancyByTracks);
1260+
histos.fill(HIST("occupancyQA/hNumTracksPVTPC_vs_V0A_vs_occupancy_StandardDeltaTimeCut"), multV0A, nContributorsAfterEtaTPCCuts, occupancyByTracks);
1261+
}
1262+
if (col.selection_bit(kIsGoodITSLayersAll)) {
1263+
histos.fill(HIST("occupancyQA/hNumTracksPV_vs_V0A_vs_occupancy_GoodITSLayersAllCut"), multV0A, nPV, occupancyByTracks);
1264+
histos.fill(HIST("occupancyQA/hNumTracksPVTPC_vs_V0A_vs_occupancy_GoodITSLayersAllCut"), multV0A, nContributorsAfterEtaTPCCuts, occupancyByTracks);
1265+
}
12511266
histos.fill(HIST("occupancyQA/hNumTracksTPConly_vs_V0A_vs_occupancy"), multV0A, nTPConly, occupancyByTracks);
12521267
histos.fill(HIST("occupancyQA/hNumTracksTPConlyNoITS_vs_V0A_vs_occupancy"), multV0A, nTPConlyNoITS, occupancyByTracks);
12531268

DPG/Tasks/AOTEvent/timeDependentQa.cxx

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ struct TimeDependentQaTask {
6969
Configurable<float> confTimeBinWidthInSec{"TimeBinWidthInSec", 0.5, "Width of time bins in seconds"}; // o2-linter: disable=name/configurable (temporary fix)
7070
Configurable<float> confTimeWiderBinFactor{"TimeWideBinFactor", 4, "Factor for wider time bins for some 2D histograms"}; // o2-linter: disable=name/configurable (temporary fix)
7171
Configurable<float> confTimeMuchWiderBinFactor{"TimeMuchWiderBinFactor", 20, "Factor for even wider time bins for some 2D histograms"}; // o2-linter: disable=name/configurable (temporary fix)
72+
Configurable<float> confTimeMuchMuchWiderBinFactor{"TimeMuchMuchWiderBinFactor", 120, "Factor for super wide time bins for some 2D histograms"}; // o2-linter: disable=name/configurable (temporary fix)
7273
Configurable<int> confTakeVerticesWithUPCsettings{"ConsiderVerticesWithUPCsettings", 0, "Take vertices: 0 - all , 1 - only without UPC settings, 2 - only with UPC settings"}; // o2-linter: disable=name/configurable (temporary fix)
7374
Configurable<int> confFlagFillPhiVsTimeHist{"FlagFillPhiVsTimeHist", 2, "0 - don't fill , 1 - fill only for global/7cls/TRD/TOF tracks, 2 - fill also layer-by-layer"}; // o2-linter: disable=name/configurable (temporary fix)
7475
Configurable<int> confFlagFillEtaPhiVsTimeHist{"FlagFillEtaPhiVsTimeHist", 0, "0 - don't fill , 1 - fill"}; // o2-linter: disable=name/configurable (temporary fix)
@@ -205,11 +206,14 @@ struct TimeDependentQaTask {
205206
int nTimeBins = static_cast<int>((maxSec - minSec) / confTimeBinWidthInSec);
206207
int nTimeWideBins = static_cast<int>((maxSec - minSec) / confTimeBinWidthInSec / confTimeWiderBinFactor);
207208
int nTimeVeryWideBins = static_cast<int>((maxSec - minSec) / confTimeBinWidthInSec / confTimeMuchWiderBinFactor);
209+
int nTimeSuperWideBins = static_cast<int>((maxSec - minSec) / confTimeBinWidthInSec / confTimeMuchMuchWiderBinFactor);
208210
double timeInterval = nTimeBins * confTimeBinWidthInSec;
209211

210212
const AxisSpec axisSeconds{nTimeBins, 0, timeInterval, "seconds"};
211213
const AxisSpec axisSecondsWideBins{nTimeWideBins, 0, timeInterval, "seconds"};
212214
const AxisSpec axisSecondsVeryWideBins{nTimeVeryWideBins, 0, timeInterval, "seconds"};
215+
const AxisSpec axisSecondsSuperWideBins{nTimeSuperWideBins, 0, timeInterval, "seconds"};
216+
213217
histos.add("hSecondsBCsTVX", "", kTH1D, {axisSeconds});
214218
histos.add("hSecondsBCsTVXandTFborderCuts", "", kTH1D, {axisSeconds});
215219

@@ -234,6 +238,10 @@ struct TimeDependentQaTask {
234238
histos.add("hSecondsUPCverticesBeforeSel8", "", kTH2F, {axisSeconds, {2, -0.5, 1.5, "Is vertex with UPC settings after |vZ|<10 cut"}});
235239
histos.add("hSecondsUPCvertices", "", kTH2F, {axisSeconds, {2, -0.5, 1.5, "Is vertex with UPC settings after |vZ|<10 and sel8 cuts"}});
236240

241+
const int32_t nBCsPerOrbit = o2::constants::lhc::LHCMaxBunches;
242+
const AxisSpec axisBCs{nBCsPerOrbit, 0., static_cast<double>(nBCsPerOrbit), ""};
243+
histos.add("hSecondsBCsMap", "", kTH2F, {axisSecondsSuperWideBins, axisBCs});
244+
237245
// shapes of distributions (added for the O-O run monitoring)
238246
if (confIncludeMultDistrVsTimeHistos) {
239247
int maxNtracks = confMaxNtracksForTimeDepDistributions;
@@ -469,6 +477,11 @@ struct TimeDependentQaTask {
469477
double secFromSOR = ts / 1000. - minSec;
470478
if (bc.selection_bit(kIsTriggerTVX)) {
471479
histos.fill(HIST("hSecondsBCsTVX"), secFromSOR);
480+
481+
uint64_t globalBC = bc.globalBC();
482+
int localBC = globalBC % nBCsPerOrbit;
483+
histos.fill(HIST("hSecondsBCsMap"), secFromSOR, localBC);
484+
472485
if (bc.selection_bit(kNoTimeFrameBorder)) {
473486
histos.fill(HIST("hSecondsBCsTVXandTFborderCuts"), secFromSOR);
474487
}
@@ -568,7 +581,7 @@ struct TimeDependentQaTask {
568581
histos.fill(HIST("hSecondsEventSelBits"), secFromSOR, enIsLowOccupStdAlsoInPrevRofCut2000noDeadStaves, isLowOccupStdAlsoInPrevRofCut2000noDeadStaves);
569582

570583
// check RCT flags
571-
histos.fill(HIST("hSecondsRCTflags"), secFromSOR, 0); // n collisions sel8
584+
histos.fill(HIST("hSecondsRCTflags"), secFromSOR, 0); // n collisions sel8
572585
histos.fill(HIST("hSecondsRCTflags"), secFromSOR, 1, col.rct_bit(kCcdbObjectLoaded)); // CCDB object not loaded
573586
LOGP(debug, "i = 1, bitValue = {}, binLabel={}, binCenter={}", col.rct_bit(kCcdbObjectLoaded), axRctFlags->GetBinLabel(2), axRctFlags->GetBinCenter(2));
574587
for (int iFlag = 0; iFlag < kNRCTSelectionFlags; iFlag++) {

PWGCF/DataModel/SPTableZDC.h

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,44 +14,42 @@
1414
#ifndef PWGCF_DATAMODEL_SPTABLEZDC_H_
1515
#define PWGCF_DATAMODEL_SPTABLEZDC_H_
1616

17-
#include <cmath>
18-
19-
#include "Common/DataModel/PIDResponse.h"
2017
#include "Common/Core/RecoDecay.h"
18+
#include "Common/DataModel/PIDResponse.h"
2119
#include "Common/DataModel/TrackSelectionTables.h"
20+
2221
#include "Framework/AnalysisDataModel.h"
2322

23+
#include <cmath>
24+
#include <vector>
25+
2426
namespace o2::aod
2527
{
2628
namespace sptablezdc
2729
{
2830
DECLARE_SOA_COLUMN(Runnumber, runnumber, int);
29-
DECLARE_SOA_COLUMN(Cent, cent, float);
30-
DECLARE_SOA_COLUMN(Vx, vx, float);
31-
DECLARE_SOA_COLUMN(Vy, vy, float);
32-
DECLARE_SOA_COLUMN(Vz, vz, float);
33-
DECLARE_SOA_COLUMN(QXA, qxA, float);
34-
DECLARE_SOA_COLUMN(QYA, qyA, float);
35-
DECLARE_SOA_COLUMN(QXC, qxC, float);
36-
DECLARE_SOA_COLUMN(QYC, qyC, float);
31+
DECLARE_SOA_COLUMN(Cents, cents, std::vector<float>);
32+
DECLARE_SOA_COLUMN(Vertex, vertex, std::vector<float>);
33+
DECLARE_SOA_COLUMN(Timestamp, timestamp, int64_t);
34+
DECLARE_SOA_COLUMN(QxA, qxA, float);
35+
DECLARE_SOA_COLUMN(QyA, qyA, float);
36+
DECLARE_SOA_COLUMN(QxC, qxC, float);
37+
DECLARE_SOA_COLUMN(QyC, qyC, float);
3738
DECLARE_SOA_COLUMN(IsSelected, isSelected, bool);
38-
DECLARE_SOA_COLUMN(Iteration, iteration, int);
39-
DECLARE_SOA_COLUMN(Step, step, int);
39+
DECLARE_SOA_COLUMN(EventSelectionFlags, eventSelectionFlags, uint16_t);
4040

4141
} // namespace sptablezdc
4242

4343
DECLARE_SOA_TABLE(SPTableZDC, "AOD", "SPZDC",
4444
sptablezdc::Runnumber,
45-
sptablezdc::Cent,
46-
sptablezdc::Vx,
47-
sptablezdc::Vy,
48-
sptablezdc::Vz,
49-
sptablezdc::QXA,
50-
sptablezdc::QYA,
51-
sptablezdc::QXC,
52-
sptablezdc::QYC,
45+
sptablezdc::Cents,
46+
sptablezdc::Vertex,
47+
sptablezdc::Timestamp,
48+
sptablezdc::QxA,
49+
sptablezdc::QyA,
50+
sptablezdc::QxC,
51+
sptablezdc::QyC,
5352
sptablezdc::IsSelected,
54-
sptablezdc::Iteration,
55-
sptablezdc::Step);
53+
sptablezdc::EventSelectionFlags);
5654
} // namespace o2::aod
5755
#endif // PWGCF_DATAMODEL_SPTABLEZDC_H_

0 commit comments

Comments
 (0)