Skip to content

Commit c8da7f2

Browse files
[PWGDQ] Adding minitree to table-reader-with-assoc (#16752)
Co-authored-by: Lucamicheletti92 <luca.mike93@gmail.com>
1 parent ba7480d commit c8da7f2

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

PWGDQ/Tasks/tableReader_withAssoc.cxx

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1300,6 +1300,7 @@ struct AnalysisSameEventPairing {
13001300
Produces<aod::JPsieeCandidates> PromptNonPromptSepTable;
13011301
Produces<aod::DileptonPolarization> dileptonPolarList;
13021302
Produces<aod::DileptonsEventInfo> dileptonEventInfoList;
1303+
Produces<aod::DileptonsMiniTree> dileptonMiniTree;
13031304

13041305
o2::base::MatLayerCylSet* fLUT = nullptr;
13051306
int fCurrentRun; // needed to detect if the run changed and trigger update of calibrations etc.
@@ -1362,6 +1363,11 @@ struct AnalysisSameEventPairing {
13621363
Configurable<int64_t> timestampCCDB{"timestampCCDB", -1, "timestamp of the ONNX file for ML model used to query in CCDB"};
13631364
Configurable<bool> loadModelsFromCCDB{"loadModelsFromCCDB", false, "Flag to enable or disable the loading of models from CCDB"};
13641365
} fConfigML;
1366+
struct : ConfigurableGroup {
1367+
Configurable<bool> fConfigMiniTree{"useMiniTree.cfgMiniTree", false, "Produce a single flat table with minimal information for analysis"};
1368+
Configurable<float> fConfigMiniTreeMinMass{"useMiniTree.cfgMiniTreeMinMass", 2, "Min. mass cut for minitree"};
1369+
Configurable<float> fConfigMiniTreeMaxMass{"useMiniTree.cfgMiniTreeMaxMass", 5, "Max. mass cut for minitree"};
1370+
} useMiniTree;
13651371

13661372
Service<o2::ccdb::BasicCCDBManager> fCCDB;
13671373
o2::ccdb::CcdbApi fCCDBApi;
@@ -1886,6 +1892,9 @@ struct AnalysisSameEventPairing {
18861892
dileptonPolarList.reserve(reserveSize);
18871893
dileptonEventInfoList.reserve(reserveSize);
18881894
}
1895+
if (useMiniTree.fConfigMiniTree) {
1896+
dileptonMiniTree.reserve(reserveSize);
1897+
}
18891898

18901899
fAmbiguousPairs.clear();
18911900
constexpr bool eventHasQvector = ((TEventFillMap & VarManager::ObjTypes::ReducedEventQvector) > 0);
@@ -2180,6 +2189,25 @@ struct AnalysisSameEventPairing {
21802189
isAmbiInBunch, isAmbiOutOfBunch, VarManager::fgValues[VarManager::kMultFT0A], VarManager::fgValues[VarManager::kMultFT0C], VarManager::fgValues[VarManager::kCentFT0M], VarManager::fgValues[VarManager::kVtxNcontribReal]);
21812190
if constexpr (TPairType == VarManager::kDecayToMuMu) {
21822191
fHistMan->FillHistClass(histNames[icut][0].Data(), VarManager::fgValues);
2192+
if (useMiniTree.fConfigMiniTree) {
2193+
auto t1 = a1.template reducedmuon_as<TTracks>();
2194+
auto t2 = a2.template reducedmuon_as<TTracks>();
2195+
2196+
// By default (kPt1, kEta1, kPhi1) are for the positive charge
2197+
float dileptonMass = VarManager::fgValues[VarManager::kMass];
2198+
if (dileptonMass > useMiniTree.fConfigMiniTreeMinMass && dileptonMass < useMiniTree.fConfigMiniTreeMaxMass) {
2199+
// In the miniTree the positive daughter is positioned as first
2200+
if (t1.sign() > 0) {
2201+
dileptonMiniTree(VarManager::fgValues[VarManager::kMass], VarManager::fgValues[VarManager::kPt], VarManager::fgValues[VarManager::kRap],
2202+
VarManager::fgValues[VarManager::kCentFT0C], VarManager::fgValues[VarManager::kCos2DeltaPhi],
2203+
t1.pt(), t1.eta(), t1.phi(), t2.pt(), t2.eta(), t2.phi());
2204+
} else {
2205+
dileptonMiniTree(VarManager::fgValues[VarManager::kMass], VarManager::fgValues[VarManager::kPt], VarManager::fgValues[VarManager::kRap],
2206+
VarManager::fgValues[VarManager::kCentFT0C], VarManager::fgValues[VarManager::kCos2DeltaPhi],
2207+
t2.pt(), t2.eta(), t2.phi(), t1.pt(), t1.eta(), t1.phi());
2208+
}
2209+
}
2210+
}
21832211
if (fConfigAmbiguousMuonHistograms) {
21842212
if (isAmbiInBunch) {
21852213
fHistMan->FillHistClass(histNames[icut][3 + histIdxOffset].Data(), VarManager::fgValues);

0 commit comments

Comments
 (0)