Skip to content

Commit de859b1

Browse files
committed
PWGEM/Dilepton: update treeCreatorElectronMLDDA.cxx to support Zorro
1 parent fb2d3c9 commit de859b1

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
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: 22 additions & 0 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"
@@ -123,6 +124,12 @@ struct TreeCreatorElectronMLDDA {
123124
Configurable<double> d_bz_input{"d_bz_input", -999, "bz field, -999 is automatic"};
124125
Configurable<int> useMatCorrType{"useMatCorrType", 2, "0: none, 1: TGeo, 2: LUT"};
125126

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

172181
struct : ConfigurableGroup {
@@ -287,6 +296,7 @@ struct TreeCreatorElectronMLDDA {
287296
o2::base::MatLayerCylSet* lut = nullptr;
288297
o2::dataformats::DCA mDcaInfoCov;
289298
o2::aod::rctsel::RCTFlagsChecker rctChecker;
299+
Zorro zorro;
290300

291301
std::mt19937 engine;
292302
std::uniform_real_distribution<float> dist01;
@@ -325,6 +335,13 @@ struct TreeCreatorElectronMLDDA {
325335
return;
326336
}
327337

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

763780
Filter collisionFilter_track_occupancy = eventcuts.cfgTrackOccupancyMin <= o2::aod::evsel::trackOccupancyInTimeRange && o2::aod::evsel::trackOccupancyInTimeRange < eventcuts.cfgTrackOccupancyMax;
764781
Filter collisionFilter_ft0c_occupancy = eventcuts.cfgFT0COccupancyMin <= o2::aod::evsel::ft0cOccupancyInTimeRange && o2::aod::evsel::ft0cOccupancyInTimeRange < eventcuts.cfgFT0COccupancyMax;
782+
Filter collisionFilter_numContrib = eventcuts.cfgNumContribMin <= o2::aod::collision::numContrib && o2::aod::collision::numContrib < eventcuts.cfgNumContribMax;
765783
Filter collisionFilter_common = nabs(o2::aod::collision::posZ) < 10.f && o2::aod::evsel::sel8 == true;
766784
using filteredMyCollisions = soa::Filtered<MyCollisions>;
767785

@@ -786,6 +804,10 @@ struct TreeCreatorElectronMLDDA {
786804
continue;
787805
}
788806

807+
if (cfgUseZorro && !zorro.isSelected(bc.globalBC(), bcMarginForSoftwareTrigger)) {
808+
continue;
809+
}
810+
789811
if (cfgRequireGoodRCT && !rctChecker.checkTable(collision)) {
790812
continue;
791813
}

0 commit comments

Comments
 (0)