Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion inc/photon_producer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class PhotonProducer{
const float FsrPhotonIsoCut = 1.8;
const float FsrPhotondRCut = 0.012;

std::vector<int> WritePhotons(nano_tree &nano, pico_tree &pico, std::vector<int> &jet_isphoton_nano_idx, std::vector<int> &sig_el_nano_idx, std::vector<int> &sig_mu_nano_idx);
std::vector<int> WritePhotons(nano_tree &nano, pico_tree &pico, std::vector<int> &jet_isphoton_nano_idx, std::vector<int> &sig_el_nano_idx, std::vector<int> &sig_mu_nano_idx, bool isHiggsino);

private:
int year;
Expand Down
429 changes: 429 additions & 0 deletions scripts/produce_bbgg_picos.py

Large diffs are not rendered by default.

105 changes: 62 additions & 43 deletions scripts/produce_unit_test_higgsino.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,43 +27,66 @@ def runCommand(command):
else: break
return process.poll(), commandOutput[0]

def makeTestCommands(mc_nanoaod_directory, mc_nanoaod_filename, data_nanoaod_directory, data_nanoaod_filename, signal_nanoaod_directory, signal_nanoaod_filename, pico_directory, n_entries):
higgsino_test_commands = [
# mc commands
"mkdir -p "+pico_directory+"/mc/raw_pico",
"mkdir "+pico_directory+"/mc/wgt_sums",
"./run/process_nano.exe -f "+mc_nanoaod_filename+" -i "+mc_nanoaod_directory+" -o "+pico_directory+"/mc --nent "+str(n_entries),
"mkdir "+pico_directory+"/mc/corrections",
"./run/merge_corrections.exe "+pico_directory+"/mc/corrections/"+mc_nanoaod_filename+" "+pico_directory+"/mc/wgt_sums/wgt_sums_"+mc_nanoaod_filename,
"mkdir "+pico_directory+"/mc/unskimmed",
"./run/apply_corrections.exe -f raw_pico_"+mc_nanoaod_filename+" -i "+pico_directory+"/mc/raw_pico/ -c "+mc_nanoaod_filename,
"mkdir "+pico_directory+"/mc/met150",
"./scripts/skim_file.py -k met150 -i "+pico_directory+"/mc/unskimmed/pico_"+mc_nanoaod_filename+" -o "+pico_directory+"/mc/met150/",
"mkdir "+pico_directory+"/mc/merged_met150",
"./scripts/slim_and_merge.py -s txt/slim_rules/higmc.txt -i "+pico_directory+"/mc/met150/pico_met150_"+mc_nanoaod_filename+" -o "+pico_directory+"/mc/merged_met150/merged_"+mc_nanoaod_filename,

# data commands
"mkdir -p "+pico_directory+"/data/raw_pico",
"mkdir "+pico_directory+"/data/wgt_sums",
"./run/process_nano.exe -f "+data_nanoaod_filename+" -i "+data_nanoaod_directory+" -o "+pico_directory+"/data --nent "+str(n_entries),
"mkdir "+pico_directory+"/data/met150",
"./scripts/skim_file.py -k met150 -i "+pico_directory+"/data/raw_pico/raw_pico_"+data_nanoaod_filename+" -o "+pico_directory+"/data/met150/",
"mkdir "+pico_directory+"/data/merged_met150",
"./scripts/slim_and_merge.py -s txt/slim_rules/higdata.txt -i "+pico_directory+"/data/met150/raw_pico_met150_"+data_nanoaod_filename+" -o "+pico_directory+"/data/merged_met150/merged_"+data_nanoaod_filename,

# signal commands
"mkdir -p "+pico_directory+"/signal/raw_pico",
"mkdir "+pico_directory+"/signal/wgt_sums",
"./run/process_nano.exe -f "+signal_nanoaod_filename+" -i "+signal_nanoaod_directory+" -o "+pico_directory+"/signal",
"mkdir "+pico_directory+"/signal/corrections",
"./run/merge_corrections.exe "+pico_directory+"/signal/corrections/"+signal_nanoaod_filename+" "+pico_directory+"/signal/wgt_sums/wgt_sums_"+signal_nanoaod_filename,
"mkdir "+pico_directory+"/signal/unskimmed",
"./run/apply_corrections.exe -f raw_pico_"+signal_nanoaod_filename+" -i "+pico_directory+"/signal/raw_pico/ -c "+signal_nanoaod_filename,
"mkdir "+pico_directory+"/signal/met150",
"./scripts/skim_file.py -k met150 -i "+pico_directory+"/signal/unskimmed/pico_"+signal_nanoaod_filename+" -o "+pico_directory+"/signal/met150/",
"mkdir "+pico_directory+"/signal/merged_met150",
"./scripts/slim_and_merge.py -s txt/slim_rules/higmc.txt -i "+pico_directory+"/signal/met150/pico_met150_"+signal_nanoaod_filename+" -o "+pico_directory+"/signal/merged_met150/merged_"+signal_nanoaod_filename,
]
# SampleTypeFlag is:
# 0: for MC
# 1: for Signal
# 2: for Data

def makeTestCommands(nanoaod_directory, nanoaod_filename, SampleTypeFlag, pico_directory, n_entries):

if SampleTypeFlag == 0:

higgsino_test_commands = [

# mc commands
"mkdir -p "+pico_directory+"/mc/raw_pico",
"mkdir "+pico_directory+"/mc/wgt_sums",
"./run/process_nano.exe -f "+nanoaod_filename+" -i "+nanoaod_directory+" -o "+pico_directory+"/mc --nent "+str(n_entries),
"mkdir "+pico_directory+"/mc/corrections",
"./run/merge_corrections.exe "+pico_directory+"/mc/corrections/"+nanoaod_filename+" "+pico_directory+"/mc/wgt_sums/wgt_sums_"+nanoaod_filename,
"mkdir "+pico_directory+"/mc/unskimmed",
"./run/apply_corrections.exe -f raw_pico_"+nanoaod_filename+" -i "+pico_directory+"/mc/raw_pico/ -c "+nanoaod_filename,
"mkdir "+pico_directory+"/mc/met150",
"./scripts/skim_file.py -k met150 -i "+pico_directory+"/mc/unskimmed/pico_"+nanoaod_filename+" -o "+pico_directory+"/mc/met150/",
"mkdir "+pico_directory+"/mc/merged_met150",
"./scripts/slim_and_merge.py -s txt/slim_rules/higmc.txt -i "+pico_directory+"/mc/met150/pico_met150_"+nanoaod_filename+" -o "+pico_directory+"/mc/merged_met150/merged_"+nanoaod_filename

]

elif SampleTypeFlag == 1:

higgsino_test_commands = [

# signal commands
"mkdir -p "+pico_directory+"/signal/raw_pico",
"mkdir "+pico_directory+"/signal/wgt_sums",
"./run/process_nano.exe -f "+nanoaod_filename+" -i "+nanoaod_directory+" -o "+pico_directory+"/signal",
"mkdir "+pico_directory+"/signal/corrections",
"./run/merge_corrections.exe "+pico_directory+"/signal/corrections/"+nanoaod_filename+" "+pico_directory+"/signal/wgt_sums/wgt_sums_"+nanoaod_filename,
"mkdir "+pico_directory+"/signal/unskimmed",
"./run/apply_corrections.exe -f raw_pico_"+nanoaod_filename+" -i "+pico_directory+"/signal/raw_pico/ -c "+nanoaod_filename,
"mkdir "+pico_directory+"/signal/met150",
"./scripts/skim_file.py -k met150 -i "+pico_directory+"/signal/unskimmed/pico_"+nanoaod_filename+" -o "+pico_directory+"/signal/met150/",
"mkdir "+pico_directory+"/signal/merged_met150",
"./scripts/slim_and_merge.py -s txt/slim_rules/higmc.txt -i "+pico_directory+"/signal/met150/pico_met150_"+nanoaod_filename+" -o "+pico_directory+"/signal/merged_met150/merged_"+nanoaod_filename

]

elif SampleTypeFlag == 2:

higgsino_test_commands = [

# data commands
"mkdir -p "+pico_directory+"/data/raw_pico",
"mkdir "+pico_directory+"/data/wgt_sums",
"./run/process_nano.exe -f "+nanoaod_filename+" -i "+nanoaod_directory+" -o "+pico_directory+"/data --nent "+str(n_entries),
"mkdir "+pico_directory+"/data/met150",
"./scripts/skim_file.py -k met150 -i "+pico_directory+"/data/raw_pico/raw_pico_"+nanoaod_filename+" -o "+pico_directory+"/data/met150/",
"mkdir "+pico_directory+"/data/merged_met150",
"./scripts/slim_and_merge.py -s txt/slim_rules/higdata.txt -i "+pico_directory+"/data/met150/raw_pico_met150_"+nanoaod_filename+" -o "+pico_directory+"/data/merged_met150/merged_"+nanoaod_filename

]

return higgsino_test_commands

if __name__ == "__main__":
Expand All @@ -80,16 +103,12 @@ def makeTestCommands(mc_nanoaod_directory, mc_nanoaod_filename, data_nanoaod_dir

n_entries = 100000 # about 3 min for process_nano.exe (~550 Hz). Note for signal, nent is -1.
higgsino_test_commands = []
higgsino_test_commands.extend(makeTestCommands(mc_nanoaod_directory="/net/cms17/cms17r0/pico/NanoAODv7/nano/2016/mc", mc_nanoaod_filename="TTJets_SingleLeptFromT_TuneCUETP8M1_13TeV-madgraphMLM-pythia8__RunIISummer16NanoAODv7__PUMoriond17_Nano02Apr2020_102X_mcRun2_asymptotic_v8_ext1-v1__120000__1E421EBC-226E-DC47-A7CE-BFBCC3760D67.root",
data_nanoaod_directory="/net/cms17/cms17r0/pico/NanoAODv7/nano/2016/data", data_nanoaod_filename="MET__Run2016B__02Apr2020_ver2-v1__20000__09015383-ED0A-8848-8E16-EBCA1044C8A8.root",
signal_nanoaod_directory="/net/cms24/cms24r0/pico/NanoAODv7/nano/2016/SMS-TChiHH_2D_fastSimJmeCorrection", signal_nanoaod_filename="SMS-TChiHH_mChi-500_mLSP-0_HToBB_HToBB_TuneCUETP8M1_13TeV-madgraphMLM-pythia8__RunIISummer16NanoAODv7__PUSummer16v3Fast_Nano02Apr2020_102X_mcRun2_asymptotic_v8-v1.root",
pico_directory=pico_directory, n_entries=n_entries))
higgsino_test_commands.extend(makeTestCommands(mc_nanoaod_directory="/net/cms37/data1/mhussain/HH-MET/DataSample/Background/DiPhotonJetsBox_MGG-80toInf", mc_nanoaod_filename="*",
SampleTypeFlag = 0, pico_directory=pico_directory, n_entries=n_entries))
higgsino_test_commands.extend(makeTestCommands(mc_nanoaod_directory="/net/cms17/cms17r0/pico/NanoAODv7/nano/2017/mc", mc_nanoaod_filename="TTJets_SingleLeptFromT_TuneCP5_13TeV-madgraphMLM-pythia8__RunIIFall17NanoAODv7__PU2017_12Apr2018_Nano02Apr2020_102X_mc2017_realistic_v8-v1__100000__0ED19AF0-B248-8344-91D7-B241CE0729FA.root",
data_nanoaod_directory="/net/cms17/cms17r0/pico/NanoAODv7/nano/2017/data", data_nanoaod_filename="MET__Run2017B__02Apr2020-v1__230000__00DCCA4E-F5F1-F84D-A6EC-2956ACAB6E02.root",
signal_nanoaod_directory="/net/cms24/cms24r0/pico/NanoAODv7/nano/2017/SMS-TChiHH_2D_fastSimJmeCorrection", signal_nanoaod_filename="SMS-TChiHH_mChi-500_mLSP-0_HToBB_HToBB_TuneCP2_13TeV-madgraphMLM-pythia8__RunIIFall17NanoAODv7__PUFall17Fast_Nano02Apr2020_102X_mc2017_realistic_v8-v1.root",
pico_directory=pico_directory, n_entries=n_entries))
higgsino_test_commands.extend(makeTestCommands(mc_nanoaod_directory="/net/cms17/cms17r0/pico/NanoAODv7/nano/2018/mc", mc_nanoaod_filename="TTJets_SingleLeptFromT_TuneCP5_13TeV-madgraphMLM-pythia8__RunIIAutumn18NanoAODv7__Nano02Apr2020_102X_upgrade2018_realistic_v21-v1__100000__0969ED8B-18AE-4F4A-8C75-4637D3C688B7.root",
data_nanoaod_directory="/net/cms17/cms17r0/pico/NanoAODv7/nano/2018/data", data_nanoaod_filename="MET__Run2018A__02Apr2020-v1__20000__1F59D1E0-0193-E34B-91BE-4DF00AEA4FD6.root",
signal_nanoaod_directory="/net/cms24/cms24r0/pico/NanoAODv7/nano/2018/SMS-TChiHH_2D_fastSimJmeCorrection", signal_nanoaod_filename="SMS-TChiHH_mChi-500_mLSP-0_HToBB_HToBB_TuneCP2_13TeV-madgraphMLM-pythia8__RunIIAutumn18NanoAODv7__PUFall18Fast_Nano02Apr2020_102X_upgrade2018_realistic_v21-v1.root",
pico_directory=pico_directory, n_entries=n_entries))

Expand Down
2 changes: 1 addition & 1 deletion src/apply_corrections.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ int main(int argc, char *argv[]){
for(long entry(0); entry<pico.GetEntries(); entry++){

pico.GetEntry(entry);
if (entry%100000==0) {
if (entry%10000==0) {
cout<<"Processing event: "<<entry<<endl;
}

Expand Down
61 changes: 53 additions & 8 deletions src/bb_producer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ BBVarProducer::~BBVarProducer(){
}

void BBVarProducer::WriteBBVars(pico_tree &pico, bool doDeepFlav){

/* Approach: Choosing two highest discriminator b jets

// get jet 4-vectors ordered by decreasing b-tag discriminator value,
// also saving their original index in the pico.out_jet* vectors
vector<pair<int, float>> ordered_by_discr;
Expand All @@ -21,9 +24,11 @@ void BBVarProducer::WriteBBVars(pico_tree &pico, bool doDeepFlav){
ordered_by_discr.push_back(make_pair(ijet, discr));
}
}

// enough jets to make higgs?
if (ordered_by_discr.size()>=2) {

//if (ordered_by_discr.size()>=2) {
if (pico.out_jet_pt().size()>=2) {

sort(ordered_by_discr.begin(), ordered_by_discr.end(),
[](const pair<int, float> &a, const pair<int, float> &b) -> bool {
return a.second > b.second;
Expand All @@ -40,7 +45,48 @@ void BBVarProducer::WriteBBVars(pico_tree &pico, bool doDeepFlav){
jets_lv.push_back(lv);
}


// Make higgs candidate with highest b pt
vector<TLorentzVector> jets_lv;
for (unsigned ijet(0); ijet<2; ijet++) {
TLorentzVector lv;
lv.SetPtEtaPhiM(pico.out_jet_pt()[ijet],
pico.out_jet_eta()[ijet],
pico.out_jet_phi()[ijet],
pico.out_jet_m()[ijet]);
jets_lv.push_back(lv);
}

*/


// Approach: Choosing two highest pt b jets

vector<pair<int, float>> ordered_by_pt;
for (unsigned ijet(0); ijet<pico.out_jet_pt().size(); ijet++) {
if (pico.out_jet_isgood()[ijet]) ordered_by_pt.push_back(make_pair(ijet, pico.out_jet_pt()[ijet]));
}

// enough jets to make higgs?
if (ordered_by_pt.size()>=2) {

sort(ordered_by_pt.begin(), ordered_by_pt.end(),
[](const pair<int, float> &a, const pair<int, float> &b) -> bool {
return a.second > b.second;
});

vector<TLorentzVector> jets_lv;
for (unsigned ijet(0); ijet<2; ijet++) {
TLorentzVector lv;
lv.SetPtEtaPhiM(pico.out_jet_pt()[ordered_by_pt[ijet].first],
pico.out_jet_eta()[ordered_by_pt[ijet].first],
pico.out_jet_phi()[ordered_by_pt[ijet].first],
pico.out_jet_m()[ordered_by_pt[ijet].first]);
jets_lv.push_back(lv);
}

TLorentzVector higgs = jets_lv[0] + jets_lv[1];

if (doDeepFlav) {
pico.out_nbb_df() = 0;
pico.out_nbb_df()++;
Expand All @@ -51,8 +97,8 @@ void BBVarProducer::WriteBBVars(pico_tree &pico, bool doDeepFlav){
pico.out_bb_df_dr().push_back(jets_lv[0].DeltaR(jets_lv[1]));
pico.out_bb_df_dphi().push_back(jets_lv[0].DeltaPhi(jets_lv[1]));
pico.out_bb_df_deta().push_back(fabs(jets_lv[0].Eta()-jets_lv[1].Eta()));
pico.out_bb_df_ileadscorejet().push_back(ordered_by_discr[0].first);
pico.out_bb_df_isubscorejet().push_back(ordered_by_discr[1].first);
//pico.out_bb_df_ileadscorejet().push_back(ordered_by_pt[0].first);
//pico.out_bb_df_isubscorejet().push_back(ordered_by_pt[1].first);
} else {
pico.out_nbb() = 0;
pico.out_nbb()++;
Expand All @@ -63,9 +109,8 @@ void BBVarProducer::WriteBBVars(pico_tree &pico, bool doDeepFlav){
pico.out_bb_dr().push_back(jets_lv[0].DeltaR(jets_lv[1]));
pico.out_bb_dphi().push_back(jets_lv[0].DeltaPhi(jets_lv[1]));
pico.out_bb_deta().push_back(fabs(jets_lv[0].Eta()-jets_lv[1].Eta()));
pico.out_bb_ileadscorejet().push_back(ordered_by_discr[0].first);
pico.out_bb_isubscorejet().push_back(ordered_by_discr[1].first);
pico.out_bb_ileadscorejet().push_back(ordered_by_pt[0].first); //here they are lead and sublead pt, rather than lead score jet.
pico.out_bb_isubscorejet().push_back(ordered_by_pt[1].first); //here they are lead and sublead pt, rather than lead score jet.
}

}
}
}
2 changes: 1 addition & 1 deletion src/bbgammagamma_producer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ BBGammaGammaVarProducer::~BBGammaGammaVarProducer(){

void BBGammaGammaVarProducer::WriteBBGammaGammaVars(pico_tree &pico){

if (pico.out_nphotonphoton()==0) return;
if (pico.out_nphotonphoton()==0 || pico.out_nbb()==0) return;

pico.out_nbbphotonphoton() = 0;
if (pico.out_nbb()>0) {
Expand Down
Loading