File indexing completed on 2024-09-28 07:03:12
0001 #include "TROOT.h"
0002 #include "TChain.h"
0003 #include "TTree.h"
0004 #include "TFile.h"
0005 #include "TCut.h"
0006 #include "TString.h"
0007 #include <iostream>
0008
0009 void DelphesSkim(TString input_filename, TString output_filename, TString skimCuts = "")
0010 {
0011 auto input_file = TFile::Open(input_filename);
0012
0013 if (input_file == nullptr || input_file->IsZombie() || input_file->TestBit(TFile::kRecovered)) {
0014 std::cout << "The input ROOT file is corrupted. Exiting..." << std::endl;
0015 return;
0016 }
0017
0018 auto input_tree = static_cast<TTree*>(input_file->Get("Delphes"));
0019
0020 std::cout << "Input Delphes TTree contains " << input_tree->GetEntries() << " events..." << std::endl;
0021
0022 auto output_file = TFile::Open(output_filename,"RECREATE");
0023 output_file->cd();
0024 auto output_tree = static_cast<TTree*>(input_tree->CopyTree(skimCuts));
0025 output_tree->Write();
0026
0027 std::cout << "... skimmed output Delphes TTree contains " << output_tree->GetEntries() << " events." << std::endl;
0028
0029 output_file->Close();
0030 }