@@ -918,6 +918,7 @@ struct AnalysisSameEventPairing {
918918 Produces<aod::DimuonsAll> dimuonAllList;
919919 Produces<aod::DileptonFlow> dileptonFlowList;
920920 Produces<aod::DileptonsInfo> dileptonInfoList;
921+ Produces<aod::DileptonsMiniTree> dileptonMiniTree;
921922 float mMagField = 0.0 ;
922923 o2::parameters::GRPMagField* grpmag = nullptr ;
923924 o2::base::MatLayerCylSet* lut = nullptr ;
@@ -948,6 +949,13 @@ struct AnalysisSameEventPairing {
948949 Configurable<std::string> fCollisionSystem {" syst" , " pp" , " Collision system, pp or PbPb" };
949950 Configurable<float > fCenterMassEnergy {" energy" , 13600 , " Center of mass energy in GeV" };
950951
952+ // Configurables to create output tree (flat tables or minitree)
953+ struct : ConfigurableGroup {
954+ Configurable<bool > fConfigMiniTree {" useMiniTree.cfgMiniTree" , false , " Produce a single flat table with minimal information for analysis" };
955+ Configurable<float > fConfigMiniTreeMinMass {" useMiniTree.cfgMiniTreeMinMass" , 2 , " Min. mass cut for minitree" };
956+ Configurable<float > fConfigMiniTreeMaxMass {" useMiniTree.cfgMiniTreeMaxMass" , 5 , " Max. mass cut for minitree" };
957+ } useMiniTree;
958+
951959 Service<o2::ccdb::BasicCCDBManager> ccdb;
952960 Filter filterEventSelected = aod::dqanalysisflags::isEventSelected == 1 ;
953961 // NOTE: the barrel filter map contains decisions for both electrons and hadrons used in the correlation task
@@ -1180,6 +1188,9 @@ struct AnalysisSameEventPairing {
11801188 dielectronAllList.reserve (1 );
11811189 dimuonAllList.reserve (1 );
11821190 }
1191+ if (useMiniTree.fConfigMiniTree ) {
1192+ dileptonMiniTree.reserve (1 );
1193+ }
11831194
11841195 if (fConfigMultDimuons .value ) {
11851196
@@ -1318,6 +1329,16 @@ struct AnalysisSameEventPairing {
13181329 if (fConfigAmbiguousHist && !(t1.isAmbiguous () || t2.isAmbiguous ())) {
13191330 fHistMan ->FillHistClass (Form (" %s_unambiguous" , histNames[iCut][0 ].Data ()), VarManager::fgValues);
13201331 }
1332+ if (useMiniTree.fConfigMiniTree ) {
1333+ float dileptonMass = VarManager::fgValues[VarManager::kMass ];
1334+ if (dileptonMass > useMiniTree.fConfigMiniTreeMinMass && dileptonMass < useMiniTree.fConfigMiniTreeMaxMass ) {
1335+ dileptonMiniTree (VarManager::fgValues[VarManager::kMass ],
1336+ VarManager::fgValues[VarManager::kPt ],
1337+ VarManager::fgValues[VarManager::kRap ],
1338+ VarManager::fgValues[VarManager::kCentFT0C ],
1339+ VarManager::fgValues[VarManager::kCos2DeltaPhi ]);
1340+ }
1341+ }
13211342 } else {
13221343 if (t1.sign () > 0 ) {
13231344 fHistMan ->FillHistClass (histNames[iCut][1 ].Data (), VarManager::fgValues);
0 commit comments