Skip to content

Commit 89807e3

Browse files
dsekihatjinhyunni
authored andcommitted
[PWGEM/Dilepton] update treeCreatorElectronMLDDA.cxx to support Zorro (#13252)
1 parent b127234 commit 89807e3

File tree

2 files changed

+28
-4
lines changed

2 files changed

+28
-4
lines changed

PWGEM/Dilepton/TableProducer/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ o2physics_add_dpl_workflow(tree-creator-electron-ml
1717

1818
o2physics_add_dpl_workflow(tree-creator-electron-ml-dda
1919
SOURCES treeCreatorElectronMLDDA.cxx
20-
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore
20+
PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::EventFilteringUtils
2121
COMPONENT_NAME Analysis)
2222

2323
o2physics_add_dpl_workflow(skimmer-primary-electron

PWGEM/Dilepton/TableProducer/treeCreatorElectronMLDDA.cxx

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
#include "Common/DataModel/Multiplicity.h"
2828
#include "Common/DataModel/PIDResponse.h"
2929
#include "Common/DataModel/TrackSelectionTables.h"
30+
#include "EventFiltering/Zorro.h"
3031

3132
#include "CCDB/BasicCCDBManager.h"
3233
#include "CommonConstants/PhysicsConstants.h"
@@ -75,7 +76,8 @@ struct TreeCreatorElectronMLDDA {
7576
HistogramRegistry registry{
7677
"registry",
7778
{
78-
{"hEventCounter", "hEventCounter", {HistType::kTH1F, {{5, 0.5f, 5.5f}}}},
79+
{"Event/hEventCounter", "hEventCounter", {HistType::kTH1F, {{5, 0.5f, 5.5f}}}},
80+
{"Event/hNumContrib", "Number of contributors to PV;N_{contrib}^{PV};Entries", {HistType::kTH1F, {{65001, -0.5f, 65000.5f}}}},
7981
{"V0/hAP", "Armenteros Podolanski", {HistType::kTH2F, {{200, -1.f, +1.f}, {250, 0, 0.25}}}},
8082
{"V0/hXY_Gamma", "photon conversion point in XY;X (cm);Y (cm)", {HistType::kTH2F, {{400, -100, +100}, {400, -100, +100}}}},
8183
{"V0/hMassGamma_Rxy", "V0 mass gamma", {HistType::kTH2F, {{200, 0, 100}, {100, 0, 0.1}}}},
@@ -123,6 +125,12 @@ struct TreeCreatorElectronMLDDA {
123125
Configurable<double> d_bz_input{"d_bz_input", -999, "bz field, -999 is automatic"};
124126
Configurable<int> useMatCorrType{"useMatCorrType", 2, "0: none, 1: TGeo, 2: LUT"};
125127

128+
// for zorro
129+
Configurable<std::string> cfg_swt_names{"cfg_swt_names", "fHighTrackMult,fHighFt0cFv0Mult", "comma-separated software trigger names"};
130+
o2::framework::Configurable<std::string> ccdbPathSoftwareTrigger{"ccdbPathSoftwareTrigger", "EventFiltering/Zorro/", "ccdb path for ZORRO objects"};
131+
Configurable<uint64_t> bcMarginForSoftwareTrigger{"bcMarginForSoftwareTrigger", 100, "Number of BCs of margin for software triggers"};
132+
Configurable<bool> cfgUseZorro{"cfgUseZorro", false, "flag to analyze software-triggered data"};
133+
126134
Configurable<float> downscaling_electron_highP{"downscaling_electron_highP", 1.1, "down scaling factor to store electron at high p"};
127135
Configurable<float> downscaling_pion_highP{"downscaling_pion_highP", 1.1, "down scaling factor to store pion at high p"};
128136
Configurable<float> downscaling_kaon_highP{"downscaling_kaon_highP", 1.1, "down scaling factor to store kaon at high p"};
@@ -167,6 +175,8 @@ struct TreeCreatorElectronMLDDA {
167175
Configurable<bool> cfgRequireGoodITSLayer3{"cfgRequireGoodITSLayer3", false, "number of inactive chips on ITS layer 3 are below threshold "};
168176
Configurable<bool> cfgRequireGoodITSLayer0123{"cfgRequireGoodITSLayer0123", false, "number of inactive chips on ITS layers 0-3 are below threshold "};
169177
Configurable<bool> cfgRequireGoodITSLayersAll{"cfgRequireGoodITSLayersAll", false, "number of inactive chips on all ITS layers are below threshold "};
178+
Configurable<uint16_t> cfgNumContribMin{"cfgNumContribMin", 0, "min. numContrib"};
179+
Configurable<uint16_t> cfgNumContribMax{"cfgNumContribMax", 65000, "max. numContrib"};
170180
} eventcuts;
171181

172182
struct : ConfigurableGroup {
@@ -287,6 +297,7 @@ struct TreeCreatorElectronMLDDA {
287297
o2::base::MatLayerCylSet* lut = nullptr;
288298
o2::dataformats::DCA mDcaInfoCov;
289299
o2::aod::rctsel::RCTFlagsChecker rctChecker;
300+
Zorro zorro;
290301

291302
std::mt19937 engine;
292303
std::uniform_real_distribution<float> dist01;
@@ -325,6 +336,13 @@ struct TreeCreatorElectronMLDDA {
325336
return;
326337
}
327338

339+
if (cfgUseZorro) {
340+
zorro.setCCDBpath(ccdbPathSoftwareTrigger);
341+
zorro.setBCtolerance(bcMarginForSoftwareTrigger); // this does nothing.
342+
zorro.initCCDB(ccdb.service, bc.runNumber(), bc.timestamp(), cfg_swt_names.value);
343+
zorro.populateHistRegistry(registry, bc.runNumber());
344+
}
345+
328346
// load matLUT for this timestamp
329347
if (!lut) {
330348
LOG(info) << "Loading material look-up table for timestamp: " << bc.timestamp();
@@ -762,6 +780,7 @@ struct TreeCreatorElectronMLDDA {
762780

763781
Filter collisionFilter_track_occupancy = eventcuts.cfgTrackOccupancyMin <= o2::aod::evsel::trackOccupancyInTimeRange && o2::aod::evsel::trackOccupancyInTimeRange < eventcuts.cfgTrackOccupancyMax;
764782
Filter collisionFilter_ft0c_occupancy = eventcuts.cfgFT0COccupancyMin <= o2::aod::evsel::ft0cOccupancyInTimeRange && o2::aod::evsel::ft0cOccupancyInTimeRange < eventcuts.cfgFT0COccupancyMax;
783+
Filter collisionFilter_numContrib = eventcuts.cfgNumContribMin <= o2::aod::collision::numContrib && o2::aod::collision::numContrib < eventcuts.cfgNumContribMax;
765784
Filter collisionFilter_common = nabs(o2::aod::collision::posZ) < 10.f && o2::aod::evsel::sel8 == true;
766785
using filteredMyCollisions = soa::Filtered<MyCollisions>;
767786

@@ -777,7 +796,7 @@ struct TreeCreatorElectronMLDDA {
777796
{
778797
stored_trackIds.reserve(tracks.size());
779798
for (const auto& collision : collisions) {
780-
registry.fill(HIST("hEventCounter"), 1.0); // all
799+
registry.fill(HIST("Event/hEventCounter"), 1.0); // all
781800

782801
auto bc = collision.template foundBC_as<aod::BCsWithTimestamps>();
783802
initCCDB(bc);
@@ -786,10 +805,15 @@ struct TreeCreatorElectronMLDDA {
786805
continue;
787806
}
788807

808+
if (cfgUseZorro && !zorro.isSelected(bc.globalBC(), bcMarginForSoftwareTrigger)) {
809+
continue;
810+
}
811+
789812
if (cfgRequireGoodRCT && !rctChecker.checkTable(collision)) {
790813
continue;
791814
}
792-
registry.fill(HIST("hEventCounter"), 2.0); // selected
815+
registry.fill(HIST("Event/hEventCounter"), 2.0); // selected
816+
registry.fill(HIST("Event/hNumContrib"), collision.numContrib());
793817

794818
auto v0s_coll = v0s.sliceBy(perCollision_v0, collision.globalIndex());
795819
for (const auto& v0 : v0s_coll) {

0 commit comments

Comments
 (0)