@@ -1223,6 +1223,7 @@ struct AnalysisSameEventPairing {
12231223 Produces<aod::DileptonsInfo> dileptonInfoList;
12241224 Produces<aod::JPsieeCandidates> PromptNonPromptSepTable;
12251225 Produces<aod::DileptonPolarization> dileptonPolarList;
1226+ Produces<aod::DileptonsMiniTree> dileptonMiniTree;
12261227
12271228 o2::base::MatLayerCylSet* fLUT = nullptr ;
12281229 int fCurrentRun ; // needed to detect if the run changed and trigger update of calibrations etc.
@@ -1275,6 +1276,13 @@ struct AnalysisSameEventPairing {
12751276 Configurable<bool > loadModelsFromCCDB{" loadModelsFromCCDB" , false , " Flag to enable or disable the loading of models from CCDB" };
12761277 } fConfigML ;
12771278
1279+ // Configurables to create output tree (flat tables or minitree)
1280+ struct : ConfigurableGroup {
1281+ Configurable<bool > fConfigMiniTree {" useMiniTree.cfgMiniTree" , false , " Produce a single flat table with minimal information for analysis" };
1282+ Configurable<float > fConfigMiniTreeMinMass {" useMiniTree.cfgMiniTreeMinMass" , 2 , " Min. mass cut for minitree" };
1283+ Configurable<float > fConfigMiniTreeMaxMass {" useMiniTree.cfgMiniTreeMaxMass" , 5 , " Max. mass cut for minitree" };
1284+ } useMiniTree;
1285+
12781286 Service<o2::ccdb::BasicCCDBManager> fCCDB ;
12791287 o2::ccdb::CcdbApi fCCDBApi ;
12801288
@@ -1697,6 +1705,9 @@ struct AnalysisSameEventPairing {
16971705 if (fConfigOptions .polarTables .value ) {
16981706 dileptonPolarList.reserve (1 );
16991707 }
1708+ if (useMiniTree.fConfigMiniTree ) {
1709+ dileptonMiniTree.reserve (1 );
1710+ }
17001711 fAmbiguousPairs .clear ();
17011712 constexpr bool eventHasQvector = ((TEventFillMap & VarManager::ObjTypes::ReducedEventQvector) > 0 );
17021713 constexpr bool eventHasQvectorCentr = ((TEventFillMap & VarManager::ObjTypes::CollisionQvect) > 0 );
@@ -1971,6 +1982,22 @@ struct AnalysisSameEventPairing {
19711982 }
19721983 if (sign1 * sign2 < 0 ) {
19731984 PromptNonPromptSepTable (VarManager::fgValues[VarManager::kMass ], VarManager::fgValues[VarManager::kPt ], VarManager::fgValues[VarManager::kVertexingTauxyProjected ], VarManager::fgValues[VarManager::kVertexingTauxyProjectedPoleJPsiMass ], VarManager::fgValues[VarManager::kVertexingTauzProjected ], isAmbiInBunch, isAmbiOutOfBunch, VarManager::fgValues[VarManager::kMultFT0A ], VarManager::fgValues[VarManager::kMultFT0C ], VarManager::fgValues[VarManager::kCentFT0M ], VarManager::fgValues[VarManager::kVtxNcontribReal ]);
1985+ if (useMiniTree.fConfigMiniTree ) {
1986+ // By default (kPt1, kEta1, kPhi1) are for the positive charge
1987+ float dileptonMass = VarManager::fgValues[VarManager::kMass ];
1988+ if (dileptonMass > useMiniTree.fConfigMiniTreeMinMass && dileptonMass < useMiniTree.fConfigMiniTreeMaxMass ) {
1989+ // In the miniTree the positive daughter is positioned as first
1990+ if (sign1 > 0 ) {
1991+ dileptonMiniTree (VarManager::fgValues[VarManager::kMass ], VarManager::fgValues[VarManager::kPt ], VarManager::fgValues[VarManager::kRap ],
1992+ VarManager::fgValues[VarManager::kCentFT0C ], VarManager::fgValues[VarManager::kCos2DeltaPhi ],
1993+ VarManager::fgValues[VarManager::kPt1 ], VarManager::fgValues[VarManager::kEta1 ], VarManager::fgValues[VarManager::kPhi1 ], VarManager::fgValues[VarManager::kPt2 ], VarManager::fgValues[VarManager::kEta2 ], VarManager::fgValues[VarManager::kPhi2 ]);
1994+ } else {
1995+ dileptonMiniTree (VarManager::fgValues[VarManager::kMass ], VarManager::fgValues[VarManager::kPt ], VarManager::fgValues[VarManager::kRap ],
1996+ VarManager::fgValues[VarManager::kCentFT0C ], VarManager::fgValues[VarManager::kCos2DeltaPhi ],
1997+ VarManager::fgValues[VarManager::kPt1 ], VarManager::fgValues[VarManager::kEta1 ], VarManager::fgValues[VarManager::kPhi1 ], VarManager::fgValues[VarManager::kPt2 ], VarManager::fgValues[VarManager::kEta2 ], VarManager::fgValues[VarManager::kPhi2 ]);
1998+ }
1999+ }
2000+ }
19742001 if constexpr (TPairType == VarManager::kDecayToMuMu ) {
19752002 fHistMan ->FillHistClass (histNames[icut][0 ].Data (), VarManager::fgValues);
19762003 if (isAmbiInBunch) {
0 commit comments