1818
1919#include " PWGCF/Core/AnalysisConfigurableCuts.h"
2020
21+ #include " Common/Core/MetadataHelper.h"
2122#include " Common/Core/RecoDecay.h"
2223#include " Common/Core/TrackSelection.h"
2324#include " Common/Core/TrackSelectionDefaults.h"
@@ -74,6 +75,9 @@ enum SystemType {
7475 kXeXe , // /< **Xe-Xe** system
7576 kppRun3, // /< **p-p Run 3** system
7677 kPbPbRun3 , // /< **Pb-Pb Run 3** system
78+ kNeNeRun3 , // /< **Ne-Ne Run 3** system
79+ kOORun3 , // /< **O-O Run 3** system
80+ kpORun3, // /< **p-O Run 3** system
7781 knSystems // /< number of handled systems
7882};
7983
@@ -194,6 +198,11 @@ float overallminp = 0.0f;
194198// ============================================================================================
195199std::bitset<32 > collisionFlags;
196200
201+ // ============================================================================================
202+ // The input data metadata access helper
203+ // ============================================================================================
204+ o2::common::core::MetadataHelper metadataInfo;
205+
197206// ============================================================================================
198207// The DptDptFilter configuration objects
199208// ============================================================================================
@@ -561,6 +570,22 @@ inline TriggerSelectionType getTriggerSelection(std::string const& triggstr)
561570 }
562571}
563572
573+ inline SystemType getSytemTypeFromMetaData ()
574+ {
575+ auto period = metadataInfo.get (" LPMProductionTag" );
576+
577+ if (period == " LHC25ad" || period == " LHC25g5" ) {
578+ return kpORun3;
579+ } else if (period == " LHC25ae" || period == " LHC25g6" ) {
580+ return kOORun3 ;
581+ } else if (period == " LHC25af" || period == " LHC25g7" ) {
582+ return kNeNeRun3 ;
583+ } else {
584+ LOGF (fatal, " DptDptCorrelations::getSystemTypeFromMetadata(). No automatic system type configuration for %s period" , period.c_str ());
585+ }
586+ return kPbp ;
587+ }
588+
564589inline SystemType getSystemType (std::string const & sysstr)
565590{
566591 /* we have to figure out how extract the system type */
@@ -572,14 +597,14 @@ inline SystemType getSystemType(std::string const& sysstr)
572597 return kpPb;
573598 } else if (sysstr == " Pbp" ) {
574599 return kPbp ;
575- } else if (sysstr == " pPb" ) {
576- return kpPb;
577600 } else if (sysstr == " XeXe" ) {
578601 return kXeXe ;
579602 } else if (sysstr == " ppRun3" ) {
580603 return kppRun3;
581604 } else if (sysstr == " PbPbRun3" ) {
582605 return kPbPbRun3 ;
606+ } else if (sysstr == " Auto" ) {
607+ return getSytemTypeFromMetaData ();
583608 } else {
584609 LOGF (fatal, " DptDptCorrelations::getSystemType(). Wrong system type: %s" , sysstr.c_str ());
585610 }
0 commit comments