Skip to content

Commit 80c5a01

Browse files
authored
[PWGEM/Dilepton] update trigger analysis (#14625)
1 parent 52366c1 commit 80c5a01

File tree

2 files changed

+69
-17
lines changed

2 files changed

+69
-17
lines changed

PWGEM/Dilepton/Core/Dilepton.h

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -298,10 +298,14 @@ struct Dilepton {
298298
Configurable<uint64_t> bcMarginForSoftwareTrigger{"bcMarginForSoftwareTrigger", 100, "Number of BCs of margin for software triggers"};
299299
} zorroGroup;
300300

301+
Zorro zorro;
302+
int mToIidx = 0;
303+
int mTOICounter = 0;
304+
int mATCounter = 0;
305+
301306
o2::aod::rctsel::RCTFlagsChecker rctChecker;
302307
// o2::ccdb::CcdbApi ccdbApi;
303308
Service<o2::ccdb::BasicCCDBManager> ccdb;
304-
Zorro zorro;
305309
int mRunNumber;
306310
float d_bz;
307311

@@ -331,6 +335,9 @@ struct Dilepton {
331335
{
332336
mRunNumber = 0;
333337
d_bz = 0;
338+
mToIidx = 0;
339+
mTOICounter = 0;
340+
mATCounter = 0;
334341

335342
ccdb->setURL(ccdburl);
336343
ccdb->setCaching(true);
@@ -426,9 +433,11 @@ struct Dilepton {
426433

427434
if (doprocessTriggerAnalysis) {
428435
LOGF(info, "Trigger analysis is enabled. Desired trigger name = %s", zorroGroup.cfg_swt_name.value.data());
429-
fRegistry.add("Event/trigger/hInspectedTVX", "inspected TVX;run number;N_{TVX}", kTProfile, {{100000, 500000.5, 600000.5}}, true); // extend X range in Run 4/5
430-
fRegistry.add("Event/trigger/hScalers", "trigger counter before DS;run number;counter", kTProfile, {{100000, 500000.5, 600000.5}}, true); // extend X range in Run 4/5
431-
fRegistry.add("Event/trigger/hSelections", "trigger counter after DS;run number;counter", kTProfile, {{100000, 500000.5, 600000.5}}, true); // extend X range in Run 4/5
436+
fRegistry.add("Event/trigger/hInspectedTVX", "inspected TVX;run number;N_{TVX}", kTProfile, {{100000, 500000.5, 600000.5}}, true); // extend X range in Run 4/5
437+
fRegistry.add("Event/trigger/hScaler", "trigger counter before DS;run number;counter", kTProfile, {{100000, 500000.5, 600000.5}}, true); // extend X range in Run 4/5
438+
fRegistry.add("Event/trigger/hSelection", "trigger counter after DS;run number;counter", kTProfile, {{100000, 500000.5, 600000.5}}, true); // extend X range in Run 4/5
439+
fRegistry.add("Event/trigger/hAnalysedTrigger", Form("analysed trigger %s;run number;counter", zorroGroup.cfg_swt_name.value.data()), kTH1D, {{100000, 500000.5, 600000.5}}, true); // extend X range in Run 4/5
440+
fRegistry.add("Event/trigger/hAnalysedToI", Form("analysed ToI %s;run number;counter", zorroGroup.cfg_swt_name.value.data()), kTH1D, {{100000, 500000.5, 600000.5}}, true); // extend X range in Run 4/5
432441
}
433442

434443
if (doprocessNorm) {
@@ -490,7 +499,7 @@ struct Dilepton {
490499
if constexpr (isTriggerAnalysis) {
491500
zorro.setCCDBpath(zorroGroup.ccdbPathSoftwareTrigger);
492501
zorro.setBCtolerance(zorroGroup.bcMarginForSoftwareTrigger); // this does nothing.
493-
zorro.initCCDB(ccdb.service, collision.runNumber(), collision.timestamp(), zorroGroup.cfg_swt_name.value);
502+
mToIidx = zorro.initCCDB(ccdb.service, collision.runNumber(), collision.timestamp(), zorroGroup.cfg_swt_name.value)[0];
494503
zorro.populateHistRegistry(fRegistry, collision.runNumber());
495504

496505
uint64_t nInspectedTVX = zorro.getInspectedTVX()->GetBinContent(1);
@@ -499,8 +508,8 @@ struct Dilepton {
499508
LOGF(info, "run number %d: total inspected TVX events = %llu, scalers = %llu, selections = %llu", collision.runNumber(), nInspectedTVX, nScalers, nSelections);
500509

501510
fRegistry.fill(HIST("Event/trigger/hInspectedTVX"), collision.runNumber(), nInspectedTVX);
502-
fRegistry.fill(HIST("Event/trigger/hScalers"), collision.runNumber(), nScalers);
503-
fRegistry.fill(HIST("Event/trigger/hSelections"), collision.runNumber(), nSelections);
511+
fRegistry.fill(HIST("Event/trigger/hScaler"), collision.runNumber(), nScalers);
512+
fRegistry.fill(HIST("Event/trigger/hSelection"), collision.runNumber(), nSelections);
504513
}
505514

506515
mRunNumber = collision.runNumber();
@@ -1234,6 +1243,23 @@ struct Dilepton {
12341243
if (!zorro.isSelected(collision.globalBC(), zorroGroup.bcMarginForSoftwareTrigger)) { // triggered event
12351244
continue;
12361245
}
1246+
1247+
auto swt_bitset = zorro.getLastResult(); // this has to be called after zorro::isSelected
1248+
auto TOIcounter = zorro.getTOIcounters()[0]; // this has to be called after zorro::isSelected
1249+
auto ATcounter = zorro.getATcounters()[mToIidx]; // this has to be called after zorro::isSelected
1250+
1251+
if (swt_bitset.test(mToIidx)) {
1252+
while (ATcounter > mATCounter) {
1253+
mATCounter++;
1254+
fRegistry.fill(HIST("Event/trigger/hAnalysedTrigger"), collision.runNumber());
1255+
}
1256+
1257+
while (TOIcounter > mTOICounter) {
1258+
fRegistry.fill(HIST("Event/trigger/hAnalysedToI"), collision.runNumber());
1259+
mTOICounter++; // always incremented by 1 in zorro!!
1260+
}
1261+
// LOGF(info, "collision.globalIndex() = %d, collision.globalBC() = %llu, mTOICounter = %d, mATcounter = %d", collision.globalIndex(), collision.globalBC(), mTOICounter, mATCounter);
1262+
}
12371263
}
12381264

12391265
if (nmod == 2) {

PWGEM/Dilepton/Core/SingleTrackQC.h

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -220,10 +220,16 @@ struct SingleTrackQC {
220220
Configurable<uint64_t> bcMarginForSoftwareTrigger{"bcMarginForSoftwareTrigger", 100, "Number of BCs of margin for software triggers"};
221221
} zorroGroup;
222222

223+
Zorro zorro;
224+
int mToIidx = 0;
225+
int mTOICounter = 0;
226+
int mATCounter = 0;
227+
223228
o2::aod::rctsel::RCTFlagsChecker rctChecker;
224-
o2::ccdb::CcdbApi ccdbApi;
229+
// o2::ccdb::CcdbApi ccdbApi;
225230
Service<o2::ccdb::BasicCCDBManager> ccdb;
226-
Zorro zorro;
231+
int mRunNumber = 0;
232+
float d_bz = 0;
227233

228234
HistogramRegistry fRegistry{"output", {}, OutputObjHandlingPolicy::AnalysisObject, false, false}; // 1 HistogramRegistry can keep up to 512 histograms
229235
static constexpr std::string_view event_cut_types[2] = {"before/", "after/"};
@@ -318,8 +324,6 @@ struct SingleTrackQC {
318324
}
319325
}
320326

321-
int mRunNumber;
322-
float d_bz;
323327
void init(InitContext&)
324328
{
325329
ccdb->setURL(ccdburl);
@@ -334,12 +338,17 @@ struct SingleTrackQC {
334338
addhistograms();
335339
mRunNumber = 0;
336340
d_bz = 0;
341+
mToIidx = 0;
342+
mTOICounter = 0;
343+
mATCounter = 0;
337344

338345
if (doprocessQC_TriggeredData) {
339346
LOGF(info, "Trigger analysis is enabled. Desired trigger name = %s", zorroGroup.cfg_swt_name.value.data());
340-
fRegistry.add("Event/trigger/hInspectedTVX", "inspected TVX;run number;N_{TVX}", kTProfile, {{100000, 500000.5, 600000.5}}, true); // extend X range in Run 4/5
341-
fRegistry.add("Event/trigger/hScalers", "trigger counter before DS;run number;counter", kTProfile, {{100000, 500000.5, 600000.5}}, true); // extend X range in Run 4/5
342-
fRegistry.add("Event/trigger/hSelections", "trigger counter after DS;run number;counter", kTProfile, {{100000, 500000.5, 600000.5}}, true); // extend X range in Run 4/5
347+
fRegistry.add("Event/trigger/hInspectedTVX", "inspected TVX;run number;N_{TVX}", kTProfile, {{100000, 500000.5, 600000.5}}, true); // extend X range in Run 4/5
348+
fRegistry.add("Event/trigger/hScaler", "trigger counter before DS;run number;counter", kTProfile, {{100000, 500000.5, 600000.5}}, true); // extend X range in Run 4/5
349+
fRegistry.add("Event/trigger/hSelection", "trigger counter after DS;run number;counter", kTProfile, {{100000, 500000.5, 600000.5}}, true); // extend X range in Run 4/5
350+
fRegistry.add("Event/trigger/hAnalysedTrigger", Form("analysed trigger %s;run number;counter", zorroGroup.cfg_swt_name.value.data()), kTH1D, {{100000, 500000.5, 600000.5}}, true); // extend X range in Run 4/5
351+
fRegistry.add("Event/trigger/hAnalysedToI", Form("analysed ToI %s;run number;counter", zorroGroup.cfg_swt_name.value.data()), kTH1D, {{100000, 500000.5, 600000.5}}, true); // extend X range in Run 4/5
343352
}
344353

345354
if (doprocessNorm) {
@@ -401,7 +410,7 @@ struct SingleTrackQC {
401410
if constexpr (isTriggerAnalysis) {
402411
zorro.setCCDBpath(zorroGroup.ccdbPathSoftwareTrigger);
403412
zorro.setBCtolerance(zorroGroup.bcMarginForSoftwareTrigger); // this does nothing.
404-
zorro.initCCDB(ccdb.service, collision.runNumber(), collision.timestamp(), zorroGroup.cfg_swt_name.value);
413+
mToIidx = zorro.initCCDB(ccdb.service, collision.runNumber(), collision.timestamp(), zorroGroup.cfg_swt_name.value)[0];
405414
zorro.populateHistRegistry(fRegistry, collision.runNumber());
406415

407416
uint64_t nInspectedTVX = zorro.getInspectedTVX()->GetBinContent(1);
@@ -410,8 +419,8 @@ struct SingleTrackQC {
410419
LOGF(info, "run number %d: total inspected TVX events = %llu, scalers = %llu, selections = %llu", collision.runNumber(), nInspectedTVX, nScalers, nSelections);
411420

412421
fRegistry.fill(HIST("Event/trigger/hInspectedTVX"), collision.runNumber(), nInspectedTVX);
413-
fRegistry.fill(HIST("Event/trigger/hScalers"), collision.runNumber(), nScalers);
414-
fRegistry.fill(HIST("Event/trigger/hSelections"), collision.runNumber(), nSelections);
422+
fRegistry.fill(HIST("Event/trigger/hScaler"), collision.runNumber(), nScalers);
423+
fRegistry.fill(HIST("Event/trigger/hSelection"), collision.runNumber(), nSelections);
415424
}
416425
}
417426

@@ -714,6 +723,23 @@ struct SingleTrackQC {
714723
if (!zorro.isSelected(collision.globalBC(), zorroGroup.bcMarginForSoftwareTrigger)) { // triggered event
715724
continue;
716725
}
726+
727+
auto swt_bitset = zorro.getLastResult(); // this has to be called after zorro::isSelected
728+
auto TOIcounter = zorro.getTOIcounters()[0]; // this has to be called after zorro::isSelected
729+
auto ATcounter = zorro.getATcounters()[mToIidx]; // this has to be called after zorro::isSelected
730+
731+
if (swt_bitset.test(mToIidx)) {
732+
while (ATcounter > mATCounter) {
733+
mATCounter++;
734+
fRegistry.fill(HIST("Event/trigger/hAnalysedTrigger"), collision.runNumber());
735+
}
736+
737+
while (TOIcounter > mTOICounter) {
738+
fRegistry.fill(HIST("Event/trigger/hAnalysedToI"), collision.runNumber());
739+
mTOICounter++; // always incremented by 1 in zorro!!
740+
}
741+
// LOGF(info, "collision.globalIndex() = %d, collision.globalBC() = %llu, mTOICounter = %d, mATcounter = %d", collision.globalIndex(), collision.globalBC(), mTOICounter, mATCounter);
742+
}
717743
}
718744

719745
o2::aod::pwgem::dilepton::utils::eventhistogram::fillEventInfo<1, -1>(&fRegistry, collision);

0 commit comments

Comments
 (0)