Skip to content

Commit 89c3852

Browse files
Fill table with timing info from forward detectors
1 parent 4b5ade9 commit 89c3852

File tree

1 file changed

+70
-14
lines changed

1 file changed

+70
-14
lines changed

PWGLF/TableProducer/Strangeness/strangederivedbuilder.cxx

Lines changed: 70 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -78,20 +78,21 @@ struct strangederivedbuilder {
7878
struct : ProducesGroup {
7979
//__________________________________________________
8080
// fundamental building blocks of derived data
81-
Produces<aod::StraCollision> strangeColl; // characterises collisions
82-
Produces<aod::StraCollLabels> strangeCollLabels; // characterises collisions
83-
Produces<aod::StraMCCollisions> strangeMCColl; // characterises collisions / MC
84-
Produces<aod::StraMCCollMults> strangeMCMults; // characterises collisions / MC mults
85-
Produces<aod::StraCents> strangeCents; // characterises collisions / centrality in Run 3
86-
Produces<aod::StraCentsRun2> strangeCentsRun2; // characterises collisions / centrality in Run 2
87-
Produces<aod::StraEvSels> strangeEvSels; // characterises collisions / centrality / sel8 selection in Run 3
88-
Produces<aod::StraEvSelsRun2> strangeEvSelsRun2; // characterises collisions / centrality / sel8 selection in Run 2
89-
Produces<aod::StraStamps> strangeStamps; // provides timestamps, run numbers
90-
Produces<aod::StraEvTimes> straEvTimes; // provides event times (FT0, TOF)
91-
Produces<aod::V0CollRefs> v0collref; // references collisions from V0s
92-
Produces<aod::CascCollRefs> casccollref; // references collisions from cascades
93-
Produces<aod::KFCascCollRefs> kfcasccollref; // references collisions from KF cascades
94-
Produces<aod::TraCascCollRefs> tracasccollref; // references collisions from tracked cascades
81+
Produces<aod::StraCollision> strangeColl; // characterises collisions
82+
Produces<aod::StraCollLabels> strangeCollLabels; // characterises collisions
83+
Produces<aod::StraMCCollisions> strangeMCColl; // characterises collisions / MC
84+
Produces<aod::StraMCCollMults> strangeMCMults; // characterises collisions / MC mults
85+
Produces<aod::StraCents> strangeCents; // characterises collisions / centrality in Run 3
86+
Produces<aod::StraCentsRun2> strangeCentsRun2; // characterises collisions / centrality in Run 2
87+
Produces<aod::StraEvSels> strangeEvSels; // characterises collisions / centrality / sel8 selection in Run 3
88+
Produces<aod::StraEvSelExtras> strangeEvSelExtras; // extra event selection variables in Run 3
89+
Produces<aod::StraEvSelsRun2> strangeEvSelsRun2; // characterises collisions / centrality / sel8 selection in Run 2
90+
Produces<aod::StraStamps> strangeStamps; // provides timestamps, run numbers
91+
Produces<aod::StraEvTimes> straEvTimes; // provides event times (FT0, TOF)
92+
Produces<aod::V0CollRefs> v0collref; // references collisions from V0s
93+
Produces<aod::CascCollRefs> casccollref; // references collisions from cascades
94+
Produces<aod::KFCascCollRefs> kfcasccollref; // references collisions from KF cascades
95+
Produces<aod::TraCascCollRefs> tracasccollref; // references collisions from tracked cascades
9596

9697
//__________________________________________________
9798
// track extra references
@@ -207,6 +208,8 @@ struct strangederivedbuilder {
207208
ConfigurableAxis axisFDDC{"FDDCamplitude", {100, 0.0f, 2000.0f}, "FDDCamplitude"};
208209
ConfigurableAxis axisZNA{"ZNAamplitude", {100, 0.0f, 250.0f}, "ZNAamplitude"};
209210
ConfigurableAxis axisZNC{"ZNCamplitude", {100, 0.0f, 250.0f}, "ZNCamplitude"};
211+
ConfigurableAxis axisZNAtime{"ZNAtime", {100, -999.f, 999.0f}, "ZNAtime"};
212+
ConfigurableAxis axisZNCtime{"ZNCtime", {100, -999.f, 999.0f}, "ZNCtime"};
210213
} axisDetectors;
211214

212215
// For manual sliceBy
@@ -404,6 +407,8 @@ struct strangederivedbuilder {
404407
auto hFDDCMultVsFDDCUD = histos.add<TH2>("hFDDCMultVsFDDCUD", "hFDDCMultVsFDDCUD; FDD-C Mult; FDD-C UD", kTH2F, {axisDetectors.axisFDDC, axisDetectors.axisFDDC});
405408
auto hZNAMultVsZNAUD = histos.add<TH2>("hZNAMultVsZNAUD", "hZNAMultVsZNAUD; ZNA Mult; ZNA UD", kTH2F, {axisDetectors.axisZNA, axisDetectors.axisZNA});
406409
auto hZNCMultVsZNCUD = histos.add<TH2>("hZNCMultVsZNCUD", "hZNCMultVsZNCUD; ZNC Mult; ZNC UD", kTH2F, {axisDetectors.axisZNC, axisDetectors.axisZNC});
410+
auto hZNATimeVsZNAUD = histos.add<TH2>("hZNATimeVsZNAUD", "hZNAMultVsZNAUD; ZNA time; ZNA UD", kTH2F, {axisDetectors.axisZNAtime, axisDetectors.axisZNAtime});
411+
auto hZNCTimeVsZNCUD = histos.add<TH2>("hZNCTimeVsZNCUD", "hZNCMultVsZNCUD; ZNC time; ZNC UD", kTH2F, {axisDetectors.axisZNCtime, axisDetectors.axisZNCtime});
407412

408413
for (int ii = 1; ii < 101; ii++) {
409414
float value = 100.5f - static_cast<float>(ii);
@@ -458,6 +463,14 @@ struct strangederivedbuilder {
458463
float totalFDDAmplitudeC = -999;
459464
float energyCommonZNA = -999;
460465
float energyCommonZNC = -999;
466+
float timeZNA = -999;
467+
float timeZNC = -999;
468+
float timeFV0A = -999;
469+
float timeFT0A = -999;
470+
float timeFT0C = -999;
471+
float timeFDDA = -999;
472+
float timeFDDC = -999;
473+
uint8_t ft0TriggerMask = 0;
461474

462475
// +-<*>-+-<*>-+-<*>-+-<*>-+-<*>-+-<*>-+-<*>-+-<*>-+-<*>-+-<*>-+-<*>-+
463476
// set UD information in case present at this stage
@@ -474,6 +487,14 @@ struct strangederivedbuilder {
474487
totalFDDAmplitudeC = udColl.totalFDDAmplitudeC();
475488
energyCommonZNA = udColl.energyCommonZNA();
476489
energyCommonZNC = udColl.energyCommonZNC();
490+
timeZNA = udColl.timeZNA();
491+
timeZNC = udColl.timeZNC();
492+
timeFDDA = udColl.timeFDDA();
493+
timeFDDC = udColl.timeFDDC();
494+
timeFV0A = udColl.timeFV0A();
495+
timeFT0A = udColl.timeFT0A();
496+
timeFT0C = udColl.timeFT0C();
497+
ft0TriggerMask = udColl.triggerMaskFT0();
477498

478499
histos.fill(HIST("hFT0AMultVsFT0AUD"), collision.multFT0A(), udColl.totalFT0AmplitudeA());
479500
histos.fill(HIST("hFT0CMultVsFT0CUD"), collision.multFT0C(), udColl.totalFT0AmplitudeC());
@@ -482,6 +503,14 @@ struct strangederivedbuilder {
482503
histos.fill(HIST("hFDDCMultVsFDDCUD"), collision.multFDDC(), udColl.totalFDDAmplitudeC());
483504
histos.fill(HIST("hZNAMultVsZNAUD"), collision.multZNA(), udColl.energyCommonZNA());
484505
histos.fill(HIST("hZNCMultVsZNCUD"), collision.multZNC(), udColl.energyCommonZNC());
506+
if (bc.has_zdc()) {
507+
auto zdc = bc.zdc();
508+
histos.fill(HIST("hZNATimeVsZNAUD"), zdc.timeZNA(), udColl.timeZNA());
509+
histos.fill(HIST("hZNCTimeVsZNCUD"), zdc.timeZNC(), udColl.timeZNC());
510+
} else {
511+
histos.fill(HIST("hZNATimeVsZNAUD"), -999., udColl.timeZNA());
512+
histos.fill(HIST("hZNCTimeVsZNCUD"), -999., udColl.timeZNC());
513+
}
485514
}
486515
}
487516
}
@@ -502,6 +531,29 @@ struct strangederivedbuilder {
502531
centrality = hRawCentrality->GetBinContent(hRawCentrality->FindBin(collision.multFT0C()));
503532
}
504533

534+
if (gapSide < 0) { // if UD collision is not found, store the timing information from collision instead
535+
if (bc.has_zdc()) {
536+
auto zdc = bc.zdc();
537+
timeZNA = zdc.timeZNA();
538+
timeZNC = zdc.timeZNC();
539+
}
540+
if (collision.has_foundFDD()) { // Analysis is fully based on FT0 presence
541+
const auto& fdd = collision.foundFDD();
542+
timeFDDA = fdd.timeA();
543+
timeFDDC = fdd.timeC();
544+
}
545+
if (collision.has_foundFV0()) { // Analysis is fully based on FV0 presence
546+
const auto& fv0a = collision.foundFV0();
547+
timeFV0A = fv0a.time();
548+
}
549+
if (collision.has_foundFT0()) { // Analysis is fully based on FT0 presence
550+
const auto& ft0 = collision.foundFT0();
551+
timeFT0A = ft0.timeA();
552+
timeFT0C = ft0.timeC();
553+
ft0TriggerMask = ft0.triggerMask();
554+
}
555+
}
556+
505557
products.strangeCents(collision.centFT0M(), collision.centFT0A(),
506558
centrality, collision.centFV0A(), collision.centFT0CVariant1(),
507559
collision.centMFT(), collision.centNGlobal());
@@ -534,6 +586,10 @@ struct strangederivedbuilder {
534586
collision.flags(),
535587
collision.alias_raw(),
536588
collision.rct_raw());
589+
products.strangeEvSelExtras(timeZNA, timeZNC, // ZDC info
590+
timeFDDA, timeFDDC, // FDD info
591+
timeFV0A, // FV0A info
592+
timeFT0A, timeFT0C, ft0TriggerMask); // FT0 info
537593
} else { // We are in Run 2
538594
products.strangeCentsRun2(collision.centRun2V0M(), collision.centRun2V0A(),
539595
collision.centRun2SPDTracklets(), collision.centRun2SPDClusters());

0 commit comments

Comments
 (0)