Hello @eguiraud

200 MB of base memory usage is not totally unexpected, see the 400 MB max resident I get just by importing ROOT:

Yeah I am not shocked by the 200MBs, I am just shocked by the flatness of it. I would have thought there would be bumps of usage as chunks of trees are getting processed.

That’s surprising, no idea why that would happen. Using the RDF logging functionality that Vincenzo mentioned above you should be able to see how much time each round of jitting and each event loop take. What changes? Is each event loop actually faster? That would be very surprising.

Surprising to me too haha. The output for one tree of the debug from ROOT when using subprocesses is:

```
Info in <[ROOT.RDF] Info /build/jenkins/workspace/lcg_release_pipeline/build/projects/ROOT-6.28.00/src/ROOT/6.28.00/tree/dataframe/src/RLoopManager.cxx:821 in void ROOT::Detail::RDF::RLoopManager::Run(bool)>: Starting event loop number 0.
Info in <[ROOT.RDF] Debug /build/jenkins/workspace/lcg_release_pipeline/build/projects/ROOT-6.28.00/src/ROOT/6.28.00/tree/dataframe/src/RDFUtils.cxx:329 in Long64_t ROOT::Internal::RDF::InterpreterCalc(const string&, const string&)>: Jitting and executing the following code:
ROOT::Internal::RDF::CallBuildAction<ROOT::Internal::RDF::ActionTags::Snapshot, int, int, Int_t, Int_t, Int_t, Int_t, float, Int_t, vector<TLorentzVector>, vector<TLorentzVector>, UInt_t, vector<float>, vector<float>, vector<TLorentzVector>, vector<int>, vector<float>, vector<float>, vector<int>, vector<int>, Int_t, Int_t, Int_t, Int_t, ULong64_t, vector<float>, vector<float>, vector<TLorentzVector>, vector<int>, vector<float>, vector<float>, vector<int>, vector<int>, UInt_t, vector<float>, vector<float>, vector<TLorentzVector>, vector<int>, vector<float>, vector<float>, vector<int>, vector<int>, vector<int>, vector<int>, vector<float>, vector<float>, vector<float>, vector<float>, vector<int>, vector<int>, ROOT::VecOps::RVec<vector<unsigned long>>, vector<TLorentzVector>, vector<int>, vector<int>, vector<int>, vector<vector<int> >, vector<float>, vector<float>, vector<float>, vector<float>, vector<int>, vector<float>, vector<float>, vector<float>, vector<float>, UInt_t, ROOT::VecOps::RVec<float>, vector<string>, vector<float>, Float_t, Float_t, Float_t, Float_t, vector<float>, float, Float_t, Float_t, Int_t, Int_t, Int_t, Int_t, Int_t, int, int, TLorentzVector, TLorentzVector, int, int, float, float, float, float, int, int, vector<float>, vector<float>, vector<TLorentzVector>, vector<int>, vector<float>, vector<float>, vector<int>, vector<int>, int, UInt_t, UInt_t, float, vector<float>, vector<float>, vector<TLorentzVector>, vector<int>, vector<float>, vector<float>, vector<int>, vector<int>, ULong64_t, float, Int_t, Int_t, Float_t, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, double, double, double, double, double, double, double, double, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, double>(reinterpret_cast<std::shared_ptr<ROOT::Detail::RDF::RNodeBase>*>(0x11e91f80), new const char*[258]{"HFStopClassification_partonlabel", "HFStopClassification_truthflavonly", "HF_Classification", "HF_ClassificationGhost", "HF_SimpleClassification", "HF_SimpleClassificationGhost", "Ht", "TopHeavyFlavorFilterFlag", "alljets_p4", "allparticles", "backgroundFlags", "bjets_e", "bjets_eta", "bjets_p4", "bjets_pcbt", "bjets_phi", "bjets_pt", "bjets_truthPartonLabel", "bjets_truthflav", "ejets_2015", "ejets_2016", "ejets_2017", "ejets_2018", "eventNumber", "fwdjets_e", "fwdjets_eta", "fwdjets_p4", "fwdjets_pcbt", "fwdjets_phi", "fwdjets_pt", "fwdjets_truthPartonLabel", "fwdjets_truthflav", "hasBadMuon", "jets_e", "jets_eta", "jets_p4", "jets_pcbt", "jets_phi", "jets_pt", "jets_truthPartonLabel", "jets_truthflav", "leptons_ID", "leptons_PLIVtight", "leptons_e", "leptons_eta", "leptons_phi", "leptons_pt", "leptons_tight", "leptons_truthIFFClass", "ljetGA_trackjets_indeces", "ljets_p4", "ljets_pcbt", "ljets_truthPartonLabel", "ljets_truthflav", "lrjets_GA_tjet_idxs", "lrjets_e", "lrjets_eta", "lrjets_phi", "lrjets_pt", "lrjets_truthLabel", "lrjets_xbb", "lrjets_xbb_higgs", "lrjets_xbb_qcd", "lrjets_xbb_top", "mcChannelNumber", "mc_generator_weights", "mc_generator_weights_name", "mc_generator_weights_norm", "met_met", "met_phi", "met_px", "met_py", "met_pz", "met_rescaled", "met_sumet", "mu", "mujets_2015", "mujets_2016", "mujets_2017", "mujets_2018", "nPDFFlavor", "nalljets", "nbjets", "neutrino1", "neutrino2", "nfwdjets", "njets", "njets_CBT0", "njets_CBT123", "njets_CBT4", "njets_CBT5", "nljets", "nnonfwdljets", "nonfwdljets_e", "nonfwdljets_eta", "nonfwdljets_p4", "nonfwdljets_pcbt", "nonfwdljets_phi", "nonfwdljets_pt", "nonfwdljets_truthPartonLabel", "nonfwdljets_truthflav", "ntjets", "randomRunNumber", "runNumber", "sphericity", "tjets_e", "tjets_eta", "tjets_p4", "tjets_pcbt", "tjets_phi", "tjets_pt", "tjets_truthflav", "tjets_truthflavExt", "totalEvents", "totalEventsWeighted", "truth_HDecay", "ttbb_categories", "weight_bTagSF_DL1r_Continuous", "weight_bTagSF_DL1r_Continuous_eigenvars_B_down", "weight_bTagSF_DL1r_Continuous_eigenvars_B_up", "weight_bTagSF_DL1r_Continuous_eigenvars_C_down", "weight_bTagSF_DL1r_Continuous_eigenvars_C_up", "weight_bTagSF_DL1r_Continuous_eigenvars_Light_down", "weight_bTagSF_DL1r_Continuous_eigenvars_Light_up", "weight_custom_leptonSF_PLIV_ELSTATDOWN", "weight_custom_leptonSF_PLIV_ELSTATUP", "weight_custom_leptonSF_PLIV_ELSYSDOWN", "weight_custom_leptonSF_PLIV_ELSYSUP", "weight_custom_leptonSF_PLIV_MUSTATDOWN", "weight_custom_leptonSF_PLIV_MUSTATUP", "weight_custom_leptonSF_PLIV_MUSYSDOWN", "weight_custom_leptonSF_PLIV_MUSYSUP", "weight_forwardjvt", "weight_forwardjvt_DOWN", "weight_forwardjvt_UP", "weight_globalLeptonTriggerSF", "weight_globalLeptonTriggerSF_EL_Trigger_DOWN", "weight_globalLeptonTriggerSF_EL_Trigger_UP", "weight_globalLeptonTriggerSF_MU_Trigger_STAT_DOWN", "weight_globalLeptonTriggerSF_MU_Trigger_STAT_UP", "weight_globalLeptonTriggerSF_MU_Trigger_SYST_DOWN", "weight_globalLeptonTriggerSF_MU_Trigger_SYST_UP", "weight_indiv_SF_EL_ChargeID", "weight_indiv_SF_EL_ChargeID_DOWN", "weight_indiv_SF_EL_ChargeID_UP", "weight_indiv_SF_EL_ChargeMisID", "weight_indiv_SF_EL_ChargeMisID_STAT_DOWN", "weight_indiv_SF_EL_ChargeMisID_STAT_UP", "weight_indiv_SF_EL_ChargeMisID_SYST_DOWN", "weight_indiv_SF_EL_ChargeMisID_SYST_UP", "weight_indiv_SF_EL_ID", "weight_indiv_SF_EL_ID_DOWN", "weight_indiv_SF_EL_ID_UP", "weight_indiv_SF_EL_Isol", "weight_indiv_SF_EL_Isol_DOWN", "weight_indiv_SF_EL_Isol_UP", "weight_indiv_SF_EL_Reco", "weight_indiv_SF_EL_Reco_DOWN", "weight_indiv_SF_EL_Reco_UP", "weight_indiv_SF_MU_ID", "weight_indiv_SF_MU_ID_STAT_DOWN", "weight_indiv_SF_MU_ID_STAT_LOWPT_DOWN", "weight_indiv_SF_MU_ID_STAT_LOWPT_UP", "weight_indiv_SF_MU_ID_STAT_UP", "weight_indiv_SF_MU_ID_SYST_DOWN", "weight_indiv_SF_MU_ID_SYST_LOWPT_DOWN", "weight_indiv_SF_MU_ID_SYST_LOWPT_UP", "weight_indiv_SF_MU_ID_SYST_UP", "weight_indiv_SF_MU_Isol", "weight_indiv_SF_MU_Isol_STAT_DOWN", "weight_indiv_SF_MU_Isol_STAT_UP", "weight_indiv_SF_MU_Isol_SYST_DOWN", "weight_indiv_SF_MU_Isol_SYST_UP", "weight_indiv_SF_MU_TTVA", "weight_indiv_SF_MU_TTVA_STAT_DOWN", "weight_indiv_SF_MU_TTVA_STAT_UP", "weight_indiv_SF_MU_TTVA_SYST_DOWN", "weight_indiv_SF_MU_TTVA_SYST_UP", "weight_jvt", "weight_jvt_DOWN", "weight_jvt_UP", "weight_leptonSF", "weight_leptonSF_EL_SF_ID_DOWN", "weight_leptonSF_EL_SF_ID_UP", "weight_leptonSF_EL_SF_Isol_DOWN", "weight_leptonSF_EL_SF_Isol_UP", "weight_leptonSF_EL_SF_Reco_DOWN", "weight_leptonSF_EL_SF_Reco_UP", "weight_leptonSF_EL_SF_Trigger_DOWN", "weight_leptonSF_EL_SF_Trigger_UP", "weight_leptonSF_MU_SF_ID_STAT_DOWN", "weight_leptonSF_MU_SF_ID_STAT_LOWPT_DOWN", "weight_leptonSF_MU_SF_ID_STAT_LOWPT_UP", "weight_leptonSF_MU_SF_ID_STAT_UP", "weight_leptonSF_MU_SF_ID_SYST_DOWN", "weight_leptonSF_MU_SF_ID_SYST_LOWPT_DOWN", "weight_leptonSF_MU_SF_ID_SYST_LOWPT_UP", "weight_leptonSF_MU_SF_ID_SYST_UP", "weight_leptonSF_MU_SF_Isol_STAT_DOWN", "weight_leptonSF_MU_SF_Isol_STAT_UP", "weight_leptonSF_MU_SF_Isol_SYST_DOWN", "weight_leptonSF_MU_SF_Isol_SYST_UP", "weight_leptonSF_MU_SF_TTVA_STAT_DOWN", "weight_leptonSF_MU_SF_TTVA_STAT_UP", "weight_leptonSF_MU_SF_TTVA_SYST_DOWN", "weight_leptonSF_MU_SF_TTVA_SYST_UP", "weight_leptonSF_MU_SF_Trigger_STAT_DOWN", "weight_leptonSF_MU_SF_Trigger_STAT_UP", "weight_leptonSF_MU_SF_Trigger_SYST_DOWN", "weight_leptonSF_MU_SF_Trigger_SYST_UP", "weight_mc", "weight_oldTriggerSF", "weight_oldTriggerSF_EL_Trigger_DOWN", "weight_oldTriggerSF_EL_Trigger_UP", "weight_oldTriggerSF_MU_Trigger_STAT_DOWN", "weight_oldTriggerSF_MU_Trigger_STAT_UP", "weight_oldTriggerSF_MU_Trigger_SYST_DOWN", "weight_oldTriggerSF_MU_Trigger_SYST_UP", "weight_pileup", "weight_pileup_DOWN", "weight_pileup_UP", "weight_tauSF", "weight_tauSF_EFF_ELEOLR_TOTAL_DOWN", "weight_tauSF_EFF_ELEOLR_TOTAL_UP", "weight_tauSF_EFF_RECO_TOTAL_DOWN", "weight_tauSF_EFF_RECO_TOTAL_UP", "weight_tauSF_EFF_RNNID_1PRONGSTATSYSTPT2025_DOWN", "weight_tauSF_EFF_RNNID_1PRONGSTATSYSTPT2025_UP", "weight_tauSF_EFF_RNNID_1PRONGSTATSYSTPT2530_DOWN", "weight_tauSF_EFF_RNNID_1PRONGSTATSYSTPT2530_UP", "weight_tauSF_EFF_RNNID_1PRONGSTATSYSTPT3040_DOWN", "weight_tauSF_EFF_RNNID_1PRONGSTATSYSTPT3040_UP", "weight_tauSF_EFF_RNNID_1PRONGSTATSYSTPTGE40_DOWN", "weight_tauSF_EFF_RNNID_1PRONGSTATSYSTPTGE40_UP", "weight_tauSF_EFF_RNNID_3PRONGSTATSYSTPT2025_DOWN", "weight_tauSF_EFF_RNNID_3PRONGSTATSYSTPT2025_UP", "weight_tauSF_EFF_RNNID_3PRONGSTATSYSTPT2530_DOWN", "weight_tauSF_EFF_RNNID_3PRONGSTATSYSTPT2530_UP", "weight_tauSF_EFF_RNNID_3PRONGSTATSYSTPT3040_DOWN", "weight_tauSF_EFF_RNNID_3PRONGSTATSYSTPT3040_UP", "weight_tauSF_EFF_RNNID_3PRONGSTATSYSTPTGE40_DOWN", "weight_tauSF_EFF_RNNID_3PRONGSTATSYSTPTGE40_UP", "weight_tauSF_EFF_RNNID_HIGHPT_DOWN", "weight_tauSF_EFF_RNNID_HIGHPT_UP", "weight_tauSF_EFF_RNNID_SYST_DOWN", "weight_tauSF_EFF_RNNID_SYST_UP", "weight_tauSF_ELE_EFF_ELEOLR_STAT_DOWN", "weight_tauSF_ELE_EFF_ELEOLR_STAT_UP", "weight_tauSF_ELE_EFF_ELEOLR_SYST_DOWN", "weight_tauSF_ELE_EFF_ELEOLR_SYST_UP", "weight_trackjet_bTagSF_DL1r_Continuous", "weight_trackjet_bTagSF_DL1r_Continuous_eigenvars_B_down", "weight_trackjet_bTagSF_DL1r_Continuous_eigenvars_B_up", "weight_trackjet_bTagSF_DL1r_Continuous_eigenvars_C_down", "weight_trackjet_bTagSF_DL1r_Continuous_eigenvars_C_up", "weight_trackjet_bTagSF_DL1r_Continuous_eigenvars_Light_down", "weight_trackjet_bTagSF_DL1r_Continuous_eigenvars_Light_up", "xsec_weight"}, 258, 1, reinterpret_cast<shared_ptr<ROOT::Internal::RDF::SnapshotHelperArgs>*>(0x11b2a830), reinterpret_cast<std::weak_ptr<ROOT::Internal::RDF::RJittedAction>*>(0xf798670), reinterpret_cast<ROOT::Internal::RDF::RColumnRegister*>(0xcd75ad0));
Info in <[ROOT.RDF] Info /build/jenkins/workspace/lcg_release_pipeline/build/projects/ROOT-6.28.00/src/ROOT/6.28.00/tree/dataframe/src/RLoopManager.cxx:794 in void ROOT::Detail::RDF::RLoopManager::Jit()>: Just-in-time compilation phase completed in 6.865265 seconds.
Info in <[ROOT.RDF] Debug /build/jenkins/workspace/lcg_release_pipeline/build/projects/ROOT-6.28.00/src/ROOT/6.28.00/tree/dataframe/src/RLoopManager.cxx:548 in void ROOT::Detail::RDF::RLoopManager::RunTreeReader()>: Processing trees {nominal_Loose} in files {/eos/user/m/maly/thbb_boost/test_grid_sklim/testInputs/user.brle.mc16_13TeV.410470.PhPy8EG_ttbar_l.SGTOP1.e6337_s3126_r9364_p4514.lj.v26.skim_sys_v1_1_output.root/user.brle.32476059._000309.output.root}: entry range [0,17757], using slot 0 in thread 139682238956608.
```

while when processing all trees in one go:

```
Info in <[ROOT.RDF] Info /build/jenkins/workspace/lcg_release_pipeline/build/projects/ROOT-6.28.00/src/ROOT/6.28.00/tree/dataframe/src/RLoopManager.cxx:821 in void ROOT::Detail::RDF::RLoopManager::Run(bool)>: Starting event loop number 0.
Info in <[ROOT.RDF] Debug /build/jenkins/workspace/lcg_release_pipeline/build/projects/ROOT-6.28.00/src/ROOT/6.28.00/tree/dataframe/src/RDFUtils.cxx:329 in Long64_t ROOT::Internal::RDF::InterpreterCalc(const string&, const string&)>: Jitting and executing the following code:
ROOT::Internal::RDF::CallBuildAction<ROOT::Internal::RDF::ActionTags::Snapshot, int, int, Int_t, Int_t, Int_t, Int_t, float, Int_t, vector<TLorentzVector>, vector<TLorentzVector>, UInt_t, vector<float>, vector<float>, vector<TLorentzVector>, vector<int>, vector<float>, vector<float>, vector<int>, vector<int>, Int_t, Int_t, Int_t, Int_t, ULong64_t, vector<float>, vector<float>, vector<TLorentzVector>, vector<int>, vector<float>, vector<float>, vector<int>, vector<int>, UInt_t, vector<float>, vector<float>, vector<TLorentzVector>, vector<int>, vector<float>, vector<float>, vector<int>, vector<int>, vector<int>, vector<int>, vector<float>, vector<float>, vector<float>, vector<float>, vector<int>, vector<int>, ROOT::VecOps::RVec<vector<unsigned long>>, vector<TLorentzVector>, vector<int>, vector<int>, vector<int>, vector<vector<int> >, vector<float>, vector<float>, vector<float>, vector<float>, vector<int>, vector<float>, vector<float>, vector<float>, vector<float>, UInt_t, ROOT::VecOps::RVec<float>, vector<string>, vector<float>, Float_t, Float_t, Float_t, Float_t, vector<float>, float, Float_t, Float_t, Int_t, Int_t, Int_t, Int_t, Int_t, int, int, TLorentzVector, TLorentzVector, int, int, float, float, float, float, int, int, vector<float>, vector<float>, vector<TLorentzVector>, vector<int>, vector<float>, vector<float>, vector<int>, vector<int>, int, UInt_t, UInt_t, float, vector<float>, vector<float>, vector<TLorentzVector>, vector<int>, vector<float>, vector<float>, vector<int>, vector<int>, ULong64_t, float, Int_t, Int_t, Float_t, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, double, double, double, double, double, double, double, double, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, Float_t, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, ROOT::VecOps::RVec<float>, double>(reinterpret_cast<std::shared_ptr<ROOT::Detail::RDF::RNodeBase>*>(0x864d27e0), new const char*[258]{"HFStopClassification_partonlabel", "HFStopClassification_truthflavonly", "HF_Classification", "HF_ClassificationGhost", "HF_SimpleClassification", "HF_SimpleClassificationGhost", "Ht", "TopHeavyFlavorFilterFlag", "alljets_p4", "allparticles", "backgroundFlags", "bjets_e", "bjets_eta", "bjets_p4", "bjets_pcbt", "bjets_phi", "bjets_pt", "bjets_truthPartonLabel", "bjets_truthflav", "ejets_2015", "ejets_2016", "ejets_2017", "ejets_2018", "eventNumber", "fwdjets_e", "fwdjets_eta", "fwdjets_p4", "fwdjets_pcbt", "fwdjets_phi", "fwdjets_pt", "fwdjets_truthPartonLabel", "fwdjets_truthflav", "hasBadMuon", "jets_e", "jets_eta", "jets_p4", "jets_pcbt", "jets_phi", "jets_pt", "jets_truthPartonLabel", "jets_truthflav", "leptons_ID", "leptons_PLIVtight", "leptons_e", "leptons_eta", "leptons_phi", "leptons_pt", "leptons_tight", "leptons_truthIFFClass", "ljetGA_trackjets_indeces", "ljets_p4", "ljets_pcbt", "ljets_truthPartonLabel", "ljets_truthflav", "lrjets_GA_tjet_idxs", "lrjets_e", "lrjets_eta", "lrjets_phi", "lrjets_pt", "lrjets_truthLabel", "lrjets_xbb", "lrjets_xbb_higgs", "lrjets_xbb_qcd", "lrjets_xbb_top", "mcChannelNumber", "mc_generator_weights", "mc_generator_weights_name", "mc_generator_weights_norm", "met_met", "met_phi", "met_px", "met_py", "met_pz", "met_rescaled", "met_sumet", "mu", "mujets_2015", "mujets_2016", "mujets_2017", "mujets_2018", "nPDFFlavor", "nalljets", "nbjets", "neutrino1", "neutrino2", "nfwdjets", "njets", "njets_CBT0", "njets_CBT123", "njets_CBT4", "njets_CBT5", "nljets", "nnonfwdljets", "nonfwdljets_e", "nonfwdljets_eta", "nonfwdljets_p4", "nonfwdljets_pcbt", "nonfwdljets_phi", "nonfwdljets_pt", "nonfwdljets_truthPartonLabel", "nonfwdljets_truthflav", "ntjets", "randomRunNumber", "runNumber", "sphericity", "tjets_e", "tjets_eta", "tjets_p4", "tjets_pcbt", "tjets_phi", "tjets_pt", "tjets_truthflav", "tjets_truthflavExt", "totalEvents", "totalEventsWeighted", "truth_HDecay", "ttbb_categories", "weight_bTagSF_DL1r_Continuous", "weight_bTagSF_DL1r_Continuous_eigenvars_B_down", "weight_bTagSF_DL1r_Continuous_eigenvars_B_up", "weight_bTagSF_DL1r_Continuous_eigenvars_C_down", "weight_bTagSF_DL1r_Continuous_eigenvars_C_up", "weight_bTagSF_DL1r_Continuous_eigenvars_Light_down", "weight_bTagSF_DL1r_Continuous_eigenvars_Light_up", "weight_custom_leptonSF_PLIV_ELSTATDOWN", "weight_custom_leptonSF_PLIV_ELSTATUP", "weight_custom_leptonSF_PLIV_ELSYSDOWN", "weight_custom_leptonSF_PLIV_ELSYSUP", "weight_custom_leptonSF_PLIV_MUSTATDOWN", "weight_custom_leptonSF_PLIV_MUSTATUP", "weight_custom_leptonSF_PLIV_MUSYSDOWN", "weight_custom_leptonSF_PLIV_MUSYSUP", "weight_forwardjvt", "weight_forwardjvt_DOWN", "weight_forwardjvt_UP", "weight_globalLeptonTriggerSF", "weight_globalLeptonTriggerSF_EL_Trigger_DOWN", "weight_globalLeptonTriggerSF_EL_Trigger_UP", "weight_globalLeptonTriggerSF_MU_Trigger_STAT_DOWN", "weight_globalLeptonTriggerSF_MU_Trigger_STAT_UP", "weight_globalLeptonTriggerSF_MU_Trigger_SYST_DOWN", "weight_globalLeptonTriggerSF_MU_Trigger_SYST_UP", "weight_indiv_SF_EL_ChargeID", "weight_indiv_SF_EL_ChargeID_DOWN", "weight_indiv_SF_EL_ChargeID_UP", "weight_indiv_SF_EL_ChargeMisID", "weight_indiv_SF_EL_ChargeMisID_STAT_DOWN", "weight_indiv_SF_EL_ChargeMisID_STAT_UP", "weight_indiv_SF_EL_ChargeMisID_SYST_DOWN", "weight_indiv_SF_EL_ChargeMisID_SYST_UP", "weight_indiv_SF_EL_ID", "weight_indiv_SF_EL_ID_DOWN", "weight_indiv_SF_EL_ID_UP", "weight_indiv_SF_EL_Isol", "weight_indiv_SF_EL_Isol_DOWN", "weight_indiv_SF_EL_Isol_UP", "weight_indiv_SF_EL_Reco", "weight_indiv_SF_EL_Reco_DOWN", "weight_indiv_SF_EL_Reco_UP", "weight_indiv_SF_MU_ID", "weight_indiv_SF_MU_ID_STAT_DOWN", "weight_indiv_SF_MU_ID_STAT_LOWPT_DOWN", "weight_indiv_SF_MU_ID_STAT_LOWPT_UP", "weight_indiv_SF_MU_ID_STAT_UP", "weight_indiv_SF_MU_ID_SYST_DOWN", "weight_indiv_SF_MU_ID_SYST_LOWPT_DOWN", "weight_indiv_SF_MU_ID_SYST_LOWPT_UP", "weight_indiv_SF_MU_ID_SYST_UP", "weight_indiv_SF_MU_Isol", "weight_indiv_SF_MU_Isol_STAT_DOWN", "weight_indiv_SF_MU_Isol_STAT_UP", "weight_indiv_SF_MU_Isol_SYST_DOWN", "weight_indiv_SF_MU_Isol_SYST_UP", "weight_indiv_SF_MU_TTVA", "weight_indiv_SF_MU_TTVA_STAT_DOWN", "weight_indiv_SF_MU_TTVA_STAT_UP", "weight_indiv_SF_MU_TTVA_SYST_DOWN", "weight_indiv_SF_MU_TTVA_SYST_UP", "weight_jvt", "weight_jvt_DOWN", "weight_jvt_UP", "weight_leptonSF", "weight_leptonSF_EL_SF_ID_DOWN", "weight_leptonSF_EL_SF_ID_UP", "weight_leptonSF_EL_SF_Isol_DOWN", "weight_leptonSF_EL_SF_Isol_UP", "weight_leptonSF_EL_SF_Reco_DOWN", "weight_leptonSF_EL_SF_Reco_UP", "weight_leptonSF_EL_SF_Trigger_DOWN", "weight_leptonSF_EL_SF_Trigger_UP", "weight_leptonSF_MU_SF_ID_STAT_DOWN", "weight_leptonSF_MU_SF_ID_STAT_LOWPT_DOWN", "weight_leptonSF_MU_SF_ID_STAT_LOWPT_UP", "weight_leptonSF_MU_SF_ID_STAT_UP", "weight_leptonSF_MU_SF_ID_SYST_DOWN", "weight_leptonSF_MU_SF_ID_SYST_LOWPT_DOWN", "weight_leptonSF_MU_SF_ID_SYST_LOWPT_UP", "weight_leptonSF_MU_SF_ID_SYST_UP", "weight_leptonSF_MU_SF_Isol_STAT_DOWN", "weight_leptonSF_MU_SF_Isol_STAT_UP", "weight_leptonSF_MU_SF_Isol_SYST_DOWN", "weight_leptonSF_MU_SF_Isol_SYST_UP", "weight_leptonSF_MU_SF_TTVA_STAT_DOWN", "weight_leptonSF_MU_SF_TTVA_STAT_UP", "weight_leptonSF_MU_SF_TTVA_SYST_DOWN", "weight_leptonSF_MU_SF_TTVA_SYST_UP", "weight_leptonSF_MU_SF_Trigger_STAT_DOWN", "weight_leptonSF_MU_SF_Trigger_STAT_UP", "weight_leptonSF_MU_SF_Trigger_SYST_DOWN", "weight_leptonSF_MU_SF_Trigger_SYST_UP", "weight_mc", "weight_oldTriggerSF", "weight_oldTriggerSF_EL_Trigger_DOWN", "weight_oldTriggerSF_EL_Trigger_UP", "weight_oldTriggerSF_MU_Trigger_STAT_DOWN", "weight_oldTriggerSF_MU_Trigger_STAT_UP", "weight_oldTriggerSF_MU_Trigger_SYST_DOWN", "weight_oldTriggerSF_MU_Trigger_SYST_UP", "weight_pileup", "weight_pileup_DOWN", "weight_pileup_UP", "weight_tauSF", "weight_tauSF_EFF_ELEOLR_TOTAL_DOWN", "weight_tauSF_EFF_ELEOLR_TOTAL_UP", "weight_tauSF_EFF_RECO_TOTAL_DOWN", "weight_tauSF_EFF_RECO_TOTAL_UP", "weight_tauSF_EFF_RNNID_1PRONGSTATSYSTPT2025_DOWN", "weight_tauSF_EFF_RNNID_1PRONGSTATSYSTPT2025_UP", "weight_tauSF_EFF_RNNID_1PRONGSTATSYSTPT2530_DOWN", "weight_tauSF_EFF_RNNID_1PRONGSTATSYSTPT2530_UP", "weight_tauSF_EFF_RNNID_1PRONGSTATSYSTPT3040_DOWN", "weight_tauSF_EFF_RNNID_1PRONGSTATSYSTPT3040_UP", "weight_tauSF_EFF_RNNID_1PRONGSTATSYSTPTGE40_DOWN", "weight_tauSF_EFF_RNNID_1PRONGSTATSYSTPTGE40_UP", "weight_tauSF_EFF_RNNID_3PRONGSTATSYSTPT2025_DOWN", "weight_tauSF_EFF_RNNID_3PRONGSTATSYSTPT2025_UP", "weight_tauSF_EFF_RNNID_3PRONGSTATSYSTPT2530_DOWN", "weight_tauSF_EFF_RNNID_3PRONGSTATSYSTPT2530_UP", "weight_tauSF_EFF_RNNID_3PRONGSTATSYSTPT3040_DOWN", "weight_tauSF_EFF_RNNID_3PRONGSTATSYSTPT3040_UP", "weight_tauSF_EFF_RNNID_3PRONGSTATSYSTPTGE40_DOWN", "weight_tauSF_EFF_RNNID_3PRONGSTATSYSTPTGE40_UP", "weight_tauSF_EFF_RNNID_HIGHPT_DOWN", "weight_tauSF_EFF_RNNID_HIGHPT_UP", "weight_tauSF_EFF_RNNID_SYST_DOWN", "weight_tauSF_EFF_RNNID_SYST_UP", "weight_tauSF_ELE_EFF_ELEOLR_STAT_DOWN", "weight_tauSF_ELE_EFF_ELEOLR_STAT_UP", "weight_tauSF_ELE_EFF_ELEOLR_SYST_DOWN", "weight_tauSF_ELE_EFF_ELEOLR_SYST_UP", "weight_trackjet_bTagSF_DL1r_Continuous", "weight_trackjet_bTagSF_DL1r_Continuous_eigenvars_B_down", "weight_trackjet_bTagSF_DL1r_Continuous_eigenvars_B_up", "weight_trackjet_bTagSF_DL1r_Continuous_eigenvars_C_down", "weight_trackjet_bTagSF_DL1r_Continuous_eigenvars_C_up", "weight_trackjet_bTagSF_DL1r_Continuous_eigenvars_Light_down", "weight_trackjet_bTagSF_DL1r_Continuous_eigenvars_Light_up", "xsec_weight"}, 258, 1, reinterpret_cast<shared_ptr<ROOT::Internal::RDF::SnapshotHelperArgs>*>(0x8512da70), reinterpret_cast<std::weak_ptr<ROOT::Internal::RDF::RJittedAction>*>(0x8656d0c0), reinterpret_cast<ROOT::Internal::RDF::RColumnRegister*>(0x80405b70));
Info in <[ROOT.RDF] Info /build/jenkins/workspace/lcg_release_pipeline/build/projects/ROOT-6.28.00/src/ROOT/6.28.00/tree/dataframe/src/RLoopManager.cxx:794 in void ROOT::Detail::RDF::RLoopManager::Jit()>: Just-in-time compilation phase completed in 58.144986 seconds.
Info in <[ROOT.RDF] Debug /build/jenkins/workspace/lcg_release_pipeline/build/projects/ROOT-6.28.00/src/ROOT/6.28.00/tree/dataframe/src/RLoopManager.cxx:548 in void ROOT::Detail::RDF::RLoopManager::RunTreeReader()>: Processing trees {nominal_Loose} in files {/eos/user/m/maly/thbb_boost/test_grid_sklim/testInputs/user.brle.mc16_13TeV.410470.PhPy8EG_ttbar_l.SGTOP1.e6337_s3126_r9364_p4514.lj.v26.skim_sys_v1_1_output.root/user.brle.32476059._000309.output.root}: entry range [0,17757], using slot 0 in thread 196836544.
```

I see a huge difference in the JITing time! The Jitting speed improvement is 8.5 times, the speed improvement is about 3-5 times. It’s worth noting the tree I compare in both cases is the last tree being processed. In the subprocesses approach, it’s processed pretty much on it’s own, while in this code it gets processed after memory was hoarded for 22 trees before it. Maybe that’s why?