From ee9fdedba27f0adf1e917960f5237a43606fdf40 Mon Sep 17 00:00:00 2001 From: Kevin Pedro Date: Wed, 13 May 2015 14:25:37 -0500 Subject: [PATCH] update skimming code for new ntuples, add control region selections --- KCode/KSelectors.h | 88 ++++++++++++++++- KCode/KSkimmer.h | 1 + KCode/KVariators.h | 193 ++++++++++++++++---------------------- KCode/NtupleClass.h | 116 +++++++++-------------- KSkimDriver.C | 2 +- SKsub.sh | 2 +- input/input_selection.txt | 65 ++++++++++++- 7 files changed, 279 insertions(+), 188 deletions(-) diff --git a/KCode/KSelectors.h b/KCode/KSelectors.h index 7c1e3cff..161764e0 100644 --- a/KCode/KSelectors.h +++ b/KCode/KSelectors.h @@ -123,26 +123,106 @@ class KElectronVetoSelector : public KSelector { //member variables }; +//------------------------------------------------------ +//single muon selector +class KMuonSelector : public KSelector { + public: + //constructor + KMuonSelector() : KSelector() { } + KMuonSelector(string name_, OptionMap* localOpt_) : KSelector(name_,localOpt_) { } + + //this selector doesn't add anything to tree + + //used for non-dummy selectors + virtual bool Cut() { + if(sk->Muons->size()!=1) return false; + double mT = sqrt(2*sk->METPt*sk->Muons->at(0).Pt()*(1-cos(KMath::DeltaPhi(sk->Muons->at(0).Phi(),sk->METPhi)))); + return mT<100; + } + + //member variables +}; + +//------------------------------------------------------ +//single electron selector +class KElectronSelector : public KSelector { + public: + //constructor + KElectronSelector() : KSelector() { } + KElectronSelector(string name_, OptionMap* localOpt_) : KSelector(name_,localOpt_) { } + + //this selector doesn't add anything to tree + + //used for non-dummy selectors + virtual bool Cut() { + if(sk->Electrons->size()!=1) return false; + double mT = sqrt(2*sk->METPt*sk->Electrons->at(0).Pt()*(1-cos(KMath::DeltaPhi(sk->Electrons->at(0).Phi(),sk->METPhi)))); + return mT<100; + } + + //member variables +}; + +//------------------------------------------------------ +//single photon selector +class KPhotonSelector : public KSelector { + public: + //constructor + KPhotonSelector() : KSelector() { } + KPhotonSelector(string name_, OptionMap* localOpt_) : KSelector(name_,localOpt_) { } + + //this selector doesn't add anything to tree + + //used for non-dummy selectors + virtual bool Cut() { + return sk->NumPhotons==1; + } + + //member variables +}; + +//------------------------------------------------------ +//dimuon selector +class KDiMuonSelector : public KSelector { + public: + //constructor + KDiMuonSelector() : KSelector() { } + KDiMuonSelector(string name_, OptionMap* localOpt_) : KSelector(name_,localOpt_) { } + + //this selector doesn't add anything to tree + + //used for non-dummy selectors + virtual bool Cut() { + //todo: add charge, mass cuts + return sk->Muons->size() == 2; + } + + //member variables +}; + //---------------------------------------------------- //selects events based on minDeltaPhiN value class KMinDeltaPhiNSelector : public KSelector { public: //constructor KMinDeltaPhiNSelector() : KSelector() { } - KMinDeltaPhiNSelector(string name_, OptionMap* localOpt_) : KSelector(name_,localOpt_), minDeltaPhiN(6.) { + KMinDeltaPhiNSelector(string name_, OptionMap* localOpt_) : KSelector(name_,localOpt_), minDeltaPhiN(6.), invert(false) { //check for option localOpt->Get("minDeltaPhiN",minDeltaPhiN); + invert = localOpt->Get("invert",false); } //this selector doesn't add anything to tree //used for non-dummy selectors virtual bool Cut() { - return sk->minDeltaPhiN > minDeltaPhiN; + if(invert) return sk->minDeltaPhiN < minDeltaPhiN; + else return sk->minDeltaPhiN > minDeltaPhiN; } //member variables double minDeltaPhiN; + bool invert; }; //------------------------------------------------------------- @@ -318,6 +398,10 @@ namespace KParser { else if(sname=="MHT") srtmp = new KMHTSelector(sname,omap); else if(sname=="MuonVeto") srtmp = new KMuonVetoSelector(sname,omap); else if(sname=="ElectronVeto") srtmp = new KElectronVetoSelector(sname,omap); + else if(sname=="Muon") srtmp = new KMuonSelector(sname,omap); + else if(sname=="Electron") srtmp = new KElectronSelector(sname,omap); + else if(sname=="Photon") srtmp = new KPhotonSelector(sname,omap); + else if(sname=="DiMuon") srtmp = new KDiMuonSelector(sname,omap); else if(sname=="IsoElectronTrackVeto") srtmp = new KIsoElectronTrackVetoSelector(sname,omap); else if(sname=="IsoMuonTrackVeto") srtmp = new KIsoMuonTrackVetoSelector(sname,omap); else if(sname=="IsoPionTrackVeto") srtmp = new KIsoPionTrackVetoSelector(sname,omap); diff --git a/KCode/KSkimmer.h b/KCode/KSkimmer.h index 952a4474..3f034df2 100644 --- a/KCode/KSkimmer.h +++ b/KCode/KSkimmer.h @@ -12,6 +12,7 @@ #include #include #include +#include //STL headers #include diff --git a/KCode/KVariators.h b/KCode/KVariators.h index e40fe3ff..18f6602a 100644 --- a/KCode/KVariators.h +++ b/KCode/KVariators.h @@ -6,6 +6,7 @@ #include "KSkimmer.h" //ROOT headers +#include //STL headers #include @@ -16,112 +17,6 @@ using namespace std; //base class for variators is in KVariation.h /* -//---------------------------------------------------- -//variation of tau energy scale -class KTauESVariator : public KVariator { - public: - //constructor - KTauESVariator() : KVariator() { } - KTauESVariator(string name_, OptionMap* localOpt_) : KVariator(name_,localOpt_) { - //check options - up = localOpt->Get("up",true); - //set default values - HPSTauPt = 0; - } - //functions - virtual void DoVariation() { - delete HPSTauPt; HPSTauPt = new vector(); - HPSTauPt->reserve(sk->HPSTauPt->size()); - double unc = 0.03; - - for(unsigned t = 0; t < sk->HPSTauPt->size(); t++){ - //store original values - HPSTauPt->push_back(sk->HPSTauPt->at(t)); - - //Scale tau pT by TauES uncertainty - TLorentzVector v_tau; - v_tau.SetPtEtaPhiM(sk->HPSTauPt->at(t),sk->HPSTauEta->at(t),sk->HPSTauPhi->at(t),sk->TauMass); - - if(up) v_tau *= (1+unc); - else v_tau *= (1-unc); - - sk->HPSTauPt->at(t) = v_tau.Pt(); - } - } - virtual void UndoVariation() { - //restore original values - for(unsigned t = 0; t < sk->HPSTauPt->size(); t++){ - sk->HPSTauPt->at(t) = HPSTauPt->at(t); - } - } - - //member variables - bool up; - vector *HPSTauPt; -}; - -//---------------------------------------------------- -//variation of tau energy resolution -class KTauERVariator : public KVariator { - public: - //constructor - KTauERVariator() : KVariator() { } - KTauERVariator(string name_, OptionMap* localOpt_) : KVariator(name_,localOpt_) { - //check options - up = localOpt->Get("up",true); - //set default values - HPSTauPt = 0; - } - //functions - virtual void DoVariation() { - delete HPSTauPt; HPSTauPt = new vector(); - HPSTauPt->reserve(sk->HPSTauPt->size()); - double unc = 0.1; - - for(unsigned t = 0; t < sk->HPSTauPt->size(); t++){ - //store original values - HPSTauPt->push_back(sk->HPSTauPt->at(t)); - - //Tau ER smearing - double min_dR = 1000; - bool matchedGenJetFound = false; - int index_gen = -1; - - for (unsigned g = 0; g < sk->GenJetPt->size(); g++){ - double dR = KMath::DeltaR(sk->HPSTauPhi->at(t),sk->HPSTauEta->at(t),sk->GenJetPhi->at(g),sk->GenJetEta->at(g)); - if(dR < min_dR) { - min_dR = dR; - index_gen = g; - } - } - if (min_dR < 0.05) matchedGenJetFound = true; - - if (matchedGenJetFound) { - TLorentzVector v_tau, vg; - v_tau.SetPtEtaPhiM(sk->HPSTauPt->at(t),sk->HPSTauEta->at(t),sk->HPSTauPhi->at(t),sk->TauMass); - vg.SetPtEtaPhiE(sk->GenJetPt->at(index_gen),sk->GenJetEta->at(index_gen),sk->GenJetPhi->at(index_gen),sk->GenJetEnergy->at(index_gen)); - - double f = 0; - if(up) f = max(vg.E() + (1+unc)*(v_tau.E()-vg.E()),0.)/v_tau.E(); - else f = max(vg.E() + (1-unc)*(v_tau.E()-vg.E()),0.)/v_tau.E(); - - v_tau *= f; - sk->HPSTauPt->at(t) = v_tau.Pt(); - } - } - } - virtual void UndoVariation() { - //restore original values - for(unsigned t = 0; t < sk->HPSTauPt->size(); t++){ - sk->HPSTauPt->at(t) = HPSTauPt->at(t); - } - } - - //member variables - bool up; - vector *HPSTauPt; -}; - //---------------------------------------------------- //variation of jet energy scale class KJetESVariator : public KVariator { @@ -249,19 +144,93 @@ class KJetERVariator : public KVariator { }; */ +//---------------------------------------------------- +//set hadronic variables to NoPhotons version +class KNoPhotonVariator : public KVariator { + public: + //constructor + KNoPhotonVariator() : KVariator() { } + KNoPhotonVariator(string name_, OptionMap* localOpt_) : KVariator(name_,localOpt_), ak4Jets(NULL) { } + //functions + virtual void DoVariation() { + //initialize + ak4Jets = new vector(); + + //store original values + NJets = sk->NJets; + HT = sk->HT; + MHT = sk->MHT; + DeltaPhi1 = sk->DeltaPhi1; + DeltaPhi2 = sk->DeltaPhi2; + DeltaPhi3 = sk->DeltaPhi3; + minDeltaPhiN = sk->minDeltaPhiN; + DeltaPhiN1 = sk->DeltaPhiN1; + DeltaPhiN2 = sk->DeltaPhiN2; + DeltaPhiN3 = sk->DeltaPhiN3; + METPt = sk->METPt; + METPhi = sk->METPhi; + *ak4Jets = *(sk->ak4Jets); + + //set to noPhotons vars + sk->NJets = sk->NJetsNoPhotons; + sk->HT = sk->HTnoPhotons; + sk->MHT = sk->MHTnoPhotons; + sk->DeltaPhi1 = sk->DeltaPhi1noPhotons; + sk->DeltaPhi2 = sk->DeltaPhi2noPhotons; + sk->DeltaPhi3 = sk->DeltaPhi3noPhotons; + sk->minDeltaPhiN = sk->minDeltaPhiNnoPhotons; + sk->DeltaPhiN1 = sk->DeltaPhiN1noPhotons; + sk->DeltaPhiN2 = sk->DeltaPhiN2noPhotons; + sk->DeltaPhiN3 = sk->DeltaPhiN3noPhotons; + sk->METPt = sk->METnoPhotonsPt; + sk->METPhi = sk->METnoPhotonsPhi; + *(sk->ak4Jets) = *(sk->ak4JetsNoPhotons); + } + virtual void UndoVariation() { + //restore original values + sk->NJets = NJets; + sk->HT = HT; + sk->MHT = MHT; + sk->DeltaPhi1 = DeltaPhi1; + sk->DeltaPhi2 = DeltaPhi2; + sk->DeltaPhi3 = DeltaPhi3; + sk->minDeltaPhiN = minDeltaPhiN; + sk->DeltaPhiN1 = DeltaPhiN1; + sk->DeltaPhiN2 = DeltaPhiN2; + sk->DeltaPhiN3 = DeltaPhiN3; + sk->METPt = METPt; + sk->METPhi = METPhi; + *(sk->ak4Jets) = *ak4Jets; + } + + //member variables + Int_t NJets; + Float_t HT; + Float_t MHT; + Float_t DeltaPhi1; + Float_t DeltaPhi2; + Float_t DeltaPhi3; + Float_t minDeltaPhiN; + Float_t DeltaPhiN1; + Float_t DeltaPhiN2; + Float_t DeltaPhiN3; + Float_t METPt; + Float_t METPhi; + vector *ak4Jets; +}; + namespace KParser { KVariator* processVariator(KNamed* tmp){ KVariator* vtmp = 0; string vname = tmp->first; OptionMap* omap = tmp->second; - /* + //check for all known variators - if(vname=="TauES") vtmp = new KTauESVariator(vname,omap); - else if(vname=="TauER") vtmp = new KTauERVariator(vname,omap); - else if(vname=="JES") vtmp = new KJetESVariator(vname,omap); - else if(vname=="JER") vtmp = new KJetERVariator(vname,omap); + if(vname=="NoPhoton") vtmp = new KNoPhotonVariator(vname,omap); + //else if(vname=="JES") vtmp = new KJetESVariator(vname,omap); + //else if(vname=="JER") vtmp = new KJetERVariator(vname,omap); else {} //skip unknown variators - */ + if(!vtmp) cout << "Input error: unknown variator " << vname << ". This variator will be skipped." << endl; return vtmp; diff --git a/KCode/NtupleClass.h b/KCode/NtupleClass.h index 6c7b2528..efcf7a6c 100644 --- a/KCode/NtupleClass.h +++ b/KCode/NtupleClass.h @@ -1,8 +1,8 @@ ////////////////////////////////////////////////////////// // This class has been automatically generated on -// Sat May 9 11:44:27 2015 by ROOT version 5.34/18 +// Wed May 13 09:49:35 2015 by ROOT version 5.34/18 // from TTree PreSelection/PreSelection -// found on file: root://cmseos.fnal.gov//store/user/awhitbe1/RA2synch_May7_2015_V2/PHYS14.SMS-T1tttt_2J_mGl-1500_mLSP-100_Tune4C_13TeV-madgraph-tauola_0_RA2AnalysisTree.root +// found on file: root://cmseos.fnal.gov//store/user/awhitbe1/PHYS14productionV10/PHYS14.SMS-T1tttt_2J_mGl-1500_mLSP-100_Tune4C_13TeV-madgraph-tauola_0_RA2AnalysisTree.root ////////////////////////////////////////////////////////// #ifndef NtupleClass_h @@ -11,6 +11,7 @@ #include #include #include +#include // Header file for the classes stored in the TTree if any. #include @@ -35,7 +36,7 @@ public : Int_t LeptonsNoMiniIsolation; Int_t NJets; Int_t BTags; - Int_t Photons; + Int_t NumPhotons; Int_t NJetsNoPhotons; Float_t Weight; Float_t HT; @@ -49,11 +50,6 @@ public : Float_t DeltaPhiN3; Float_t METPt; Float_t METPhi; - Float_t minDeltaPhi; - Float_t ak1p2Jets_sumJetMass; - Float_t ak1p2JetsPt15Reclust_sumJetMass; - Float_t ak1p2JetsPt20Reclust_sumJetMass; - Float_t ak1p2JetsPt30Reclust_sumJetMass; Float_t HTnoPhotons; Float_t MHTnoPhotons; Float_t DeltaPhi1noPhotons; @@ -65,18 +61,19 @@ public : Float_t minDeltaPhiNnoPhotons; Float_t METnoPhotonsPt; Float_t METnoPhotonsPhi; + Float_t ak1p2Jets_sumJetMass; + Float_t ak1p2JetsPt15Reclust_sumJetMass; + Float_t ak1p2JetsPt20Reclust_sumJetMass; + Float_t ak1p2JetsPt30Reclust_sumJetMass; UChar_t JetID; + vector *MuonCharge; + vector *ElectronCharge; vector *genParticles_PDGid; vector *ak1p2Jets_nSubjets; vector *ak4Jets_chargedHadMult; vector *ak4Jets_neutralHadMult; vector *ak4Jets_photonMult; vector *ak4Jets_flavor; - vector *ak4JetsRaw_chargedHadMult; - vector *ak4JetsRaw_neutralHadMult; - vector *ak4JetsRaw_photonMult; - vector *ak4JetsRaw_flavor; - vector *deltaPhiN; vector *photon_isEB; vector *photon_genMatched; vector *photon_hadTowOverEM; @@ -93,25 +90,22 @@ public : vector *ak1p2Jets_tau3; vector *ak1p2Jets_tau4; vector *ak4Jets_CSVdisc; + vector *ak4Jets_MVAdisc; vector *ak4Jets_chargeHadEfrac; vector *ak4Jets_neutralHadEfrac; vector *ak4Jets_photonEfrac; - vector *ak4JetsRaw_CSVdisc; - vector *ak4JetsRaw_chargeHadEfrac; - vector *ak4JetsRaw_neutralHadEfrac; - vector *ak4JetsRaw_photonEfrac; vector *Muons; vector *Electrons; vector *genParticles; - vector *photonProd; + vector *photonCands; + vector *bestPhoton; + vector *ak4JetsNoPhotons; vector *ak1p2Jets; vector *ak1p2JetsPt15Reclust; vector *ak1p2JetsPt20Reclust; vector *ak1p2JetsPt30Reclust; vector *ak4Jets; vector *ak4JetsRaw; - vector *bestPhoton; - vector *ak4JetsNoPhotons; vector *ak4GenJets; // List of branches @@ -126,7 +120,7 @@ public : TBranch *b_LeptonsNoMiniIsolation; //! TBranch *b_NJets; //! TBranch *b_BTags; //! - TBranch *b_Photons; //! + TBranch *b_NumPhotons; //! TBranch *b_NJetsNoPhotons; //! TBranch *b_Weight; //! TBranch *b_HT; //! @@ -140,11 +134,6 @@ public : TBranch *b_DeltaPhiN3; //! TBranch *b_METPt; //! TBranch *b_METPhi; //! - TBranch *b_minDeltaPhi; //! - TBranch *b_ak1p2Jets_sumJetMass; //! - TBranch *b_ak1p2JetsPt15Reclust_sumJetMass; //! - TBranch *b_ak1p2JetsPt20Reclust_sumJetMass; //! - TBranch *b_ak1p2JetsPt30Reclust_sumJetMass; //! TBranch *b_HTnoPhotons; //! TBranch *b_MHTnoPhotons; //! TBranch *b_DeltaPhi1noPhotons; //! @@ -156,18 +145,19 @@ public : TBranch *b_minDeltaPhiNnoPhotons; //! TBranch *b_METnoPhotonsPt; //! TBranch *b_METnoPhotonsPhi; //! + TBranch *b_ak1p2Jets_sumJetMass; //! + TBranch *b_ak1p2JetsPt15Reclust_sumJetMass; //! + TBranch *b_ak1p2JetsPt20Reclust_sumJetMass; //! + TBranch *b_ak1p2JetsPt30Reclust_sumJetMass; //! TBranch *b_JetID; //! + TBranch *b_MuonCharge; //! + TBranch *b_ElectronCharge; //! TBranch *b_genParticles_PDGid; //! TBranch *b_ak1p2Jets_nSubjets; //! TBranch *b_ak4Jets_chargedHadMult; //! TBranch *b_ak4Jets_neutralHadMult; //! TBranch *b_ak4Jets_photonMult; //! TBranch *b_ak4Jets_flavor; //! - TBranch *b_ak4JetsRaw_chargedHadMult; //! - TBranch *b_ak4JetsRaw_neutralHadMult; //! - TBranch *b_ak4JetsRaw_photonMult; //! - TBranch *b_ak4JetsRaw_flavor; //! - TBranch *b_deltaPhiN; //! TBranch *b_photon_isEB; //! TBranch *b_photon_genMatched; //! TBranch *b_photon_hadTowOverEM; //! @@ -184,25 +174,22 @@ public : TBranch *b_ak1p2Jets_tau3; //! TBranch *b_ak1p2Jets_tau4; //! TBranch *b_ak4Jets_CSVdisc; //! + TBranch *b_ak4Jets_MVAdisc; //! TBranch *b_ak4Jets_chargeHadEfrac; //! TBranch *b_ak4Jets_neutralHadEfrac; //! TBranch *b_ak4Jets_photonEfrac; //! - TBranch *b_ak4JetsRaw_CSVdisc; //! - TBranch *b_ak4JetsRaw_chargeHadEfrac; //! - TBranch *b_ak4JetsRaw_neutralHadEfrac; //! - TBranch *b_ak4JetsRaw_photonEfrac; //! TBranch *b_Muons; //! TBranch *b_Electrons; //! TBranch *b_genParticles; //! - TBranch *b_photonProd; //! + TBranch *b_photonCands; //! + TBranch *b_bestPhoton; //! + TBranch *b_ak4JetsNoPhotons; //! TBranch *b_ak1p2Jets; //! TBranch *b_ak1p2JetsPt15Reclust; //! TBranch *b_ak1p2JetsPt20Reclust; //! TBranch *b_ak1p2JetsPt30Reclust; //! TBranch *b_ak4Jets; //! TBranch *b_ak4JetsRaw; //! - TBranch *b_bestPhoton; //! - TBranch *b_ak4JetsNoPhotons; //! TBranch *b_ak4GenJets; //! NtupleClass(TTree *tree=0); @@ -224,11 +211,11 @@ NtupleClass::NtupleClass(TTree *tree) : fChain(0) // if parameter tree is not specified (or zero), connect the file // used to generate this class and read the Tree. if (tree == 0) { - TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("root://cmseos.fnal.gov//store/user/awhitbe1/RA2synch_May7_2015_V2/PHYS14.SMS-T1tttt_2J_mGl-1500_mLSP-100_Tune4C_13TeV-madgraph-tauola_0_RA2AnalysisTree.root"); + TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("root://cmseos.fnal.gov//store/user/awhitbe1/PHYS14productionV10/PHYS14.SMS-T1tttt_2J_mGl-1500_mLSP-100_Tune4C_13TeV-madgraph-tauola_0_RA2AnalysisTree.root"); if (!f || !f->IsOpen()) { - f = new TFile("root://cmseos.fnal.gov//store/user/awhitbe1/RA2synch_May7_2015_V2/PHYS14.SMS-T1tttt_2J_mGl-1500_mLSP-100_Tune4C_13TeV-madgraph-tauola_0_RA2AnalysisTree.root"); + f = new TFile("root://cmseos.fnal.gov//store/user/awhitbe1/PHYS14productionV10/PHYS14.SMS-T1tttt_2J_mGl-1500_mLSP-100_Tune4C_13TeV-madgraph-tauola_0_RA2AnalysisTree.root"); } - TDirectory * dir = (TDirectory*)f->Get("root://cmseos.fnal.gov//store/user/awhitbe1/RA2synch_May7_2015_V2/PHYS14.SMS-T1tttt_2J_mGl-1500_mLSP-100_Tune4C_13TeV-madgraph-tauola_0_RA2AnalysisTree.root:/TreeMaker2"); + TDirectory * dir = (TDirectory*)f->Get("root://cmseos.fnal.gov//store/user/awhitbe1/PHYS14productionV10/PHYS14.SMS-T1tttt_2J_mGl-1500_mLSP-100_Tune4C_13TeV-madgraph-tauola_0_RA2AnalysisTree.root:/TreeMaker2"); dir->GetObject("PreSelection",tree); } @@ -271,17 +258,14 @@ void NtupleClass::Init(TTree *tree) // (once per file to be processed). // Set object pointer + MuonCharge = 0; + ElectronCharge = 0; genParticles_PDGid = 0; ak1p2Jets_nSubjets = 0; ak4Jets_chargedHadMult = 0; ak4Jets_neutralHadMult = 0; ak4Jets_photonMult = 0; ak4Jets_flavor = 0; - ak4JetsRaw_chargedHadMult = 0; - ak4JetsRaw_neutralHadMult = 0; - ak4JetsRaw_photonMult = 0; - ak4JetsRaw_flavor = 0; - deltaPhiN = 0; photon_isEB = 0; photon_genMatched = 0; photon_hadTowOverEM = 0; @@ -298,25 +282,22 @@ void NtupleClass::Init(TTree *tree) ak1p2Jets_tau3 = 0; ak1p2Jets_tau4 = 0; ak4Jets_CSVdisc = 0; + ak4Jets_MVAdisc = 0; ak4Jets_chargeHadEfrac = 0; ak4Jets_neutralHadEfrac = 0; ak4Jets_photonEfrac = 0; - ak4JetsRaw_CSVdisc = 0; - ak4JetsRaw_chargeHadEfrac = 0; - ak4JetsRaw_neutralHadEfrac = 0; - ak4JetsRaw_photonEfrac = 0; Muons = 0; Electrons = 0; genParticles = 0; - photonProd = 0; + photonCands = 0; + bestPhoton = 0; + ak4JetsNoPhotons = 0; ak1p2Jets = 0; ak1p2JetsPt15Reclust = 0; ak1p2JetsPt20Reclust = 0; ak1p2JetsPt30Reclust = 0; ak4Jets = 0; ak4JetsRaw = 0; - bestPhoton = 0; - ak4JetsNoPhotons = 0; ak4GenJets = 0; // Set branch addresses and branch pointers if (!tree) return; @@ -335,7 +316,7 @@ void NtupleClass::Init(TTree *tree) fChain->SetBranchAddress("LeptonsNoMiniIsolation", &LeptonsNoMiniIsolation, &b_LeptonsNoMiniIsolation); fChain->SetBranchAddress("NJets", &NJets, &b_NJets); fChain->SetBranchAddress("BTags", &BTags, &b_BTags); - fChain->SetBranchAddress("Photons", &Photons, &b_Photons); + fChain->SetBranchAddress("NumPhotons", &NumPhotons, &b_NumPhotons); fChain->SetBranchAddress("NJetsNoPhotons", &NJetsNoPhotons, &b_NJetsNoPhotons); fChain->SetBranchAddress("Weight", &Weight, &b_Weight); fChain->SetBranchAddress("HT", &HT, &b_HT); @@ -349,11 +330,6 @@ void NtupleClass::Init(TTree *tree) fChain->SetBranchAddress("DeltaPhiN3", &DeltaPhiN3, &b_DeltaPhiN3); fChain->SetBranchAddress("METPt", &METPt, &b_METPt); fChain->SetBranchAddress("METPhi", &METPhi, &b_METPhi); - fChain->SetBranchAddress("minDeltaPhi", &minDeltaPhi, &b_minDeltaPhi); - fChain->SetBranchAddress("ak1p2Jets_sumJetMass", &ak1p2Jets_sumJetMass, &b_ak1p2Jets_sumJetMass); - fChain->SetBranchAddress("ak1p2JetsPt15Reclust_sumJetMass", &ak1p2JetsPt15Reclust_sumJetMass, &b_ak1p2JetsPt15Reclust_sumJetMass); - fChain->SetBranchAddress("ak1p2JetsPt20Reclust_sumJetMass", &ak1p2JetsPt20Reclust_sumJetMass, &b_ak1p2JetsPt20Reclust_sumJetMass); - fChain->SetBranchAddress("ak1p2JetsPt30Reclust_sumJetMass", &ak1p2JetsPt30Reclust_sumJetMass, &b_ak1p2JetsPt30Reclust_sumJetMass); fChain->SetBranchAddress("HTnoPhotons", &HTnoPhotons, &b_HTnoPhotons); fChain->SetBranchAddress("MHTnoPhotons", &MHTnoPhotons, &b_MHTnoPhotons); fChain->SetBranchAddress("DeltaPhi1noPhotons", &DeltaPhi1noPhotons, &b_DeltaPhi1noPhotons); @@ -365,18 +341,19 @@ void NtupleClass::Init(TTree *tree) fChain->SetBranchAddress("minDeltaPhiNnoPhotons", &minDeltaPhiNnoPhotons, &b_minDeltaPhiNnoPhotons); fChain->SetBranchAddress("METnoPhotonsPt", &METnoPhotonsPt, &b_METnoPhotonsPt); fChain->SetBranchAddress("METnoPhotonsPhi", &METnoPhotonsPhi, &b_METnoPhotonsPhi); + fChain->SetBranchAddress("ak1p2Jets_sumJetMass", &ak1p2Jets_sumJetMass, &b_ak1p2Jets_sumJetMass); + fChain->SetBranchAddress("ak1p2JetsPt15Reclust_sumJetMass", &ak1p2JetsPt15Reclust_sumJetMass, &b_ak1p2JetsPt15Reclust_sumJetMass); + fChain->SetBranchAddress("ak1p2JetsPt20Reclust_sumJetMass", &ak1p2JetsPt20Reclust_sumJetMass, &b_ak1p2JetsPt20Reclust_sumJetMass); + fChain->SetBranchAddress("ak1p2JetsPt30Reclust_sumJetMass", &ak1p2JetsPt30Reclust_sumJetMass, &b_ak1p2JetsPt30Reclust_sumJetMass); fChain->SetBranchAddress("JetID", &JetID, &b_JetID); + fChain->SetBranchAddress("MuonCharge", &MuonCharge, &b_MuonCharge); + fChain->SetBranchAddress("ElectronCharge", &ElectronCharge, &b_ElectronCharge); fChain->SetBranchAddress("genParticles_PDGid", &genParticles_PDGid, &b_genParticles_PDGid); fChain->SetBranchAddress("ak1p2Jets_nSubjets", &ak1p2Jets_nSubjets, &b_ak1p2Jets_nSubjets); fChain->SetBranchAddress("ak4Jets_chargedHadMult", &ak4Jets_chargedHadMult, &b_ak4Jets_chargedHadMult); fChain->SetBranchAddress("ak4Jets_neutralHadMult", &ak4Jets_neutralHadMult, &b_ak4Jets_neutralHadMult); fChain->SetBranchAddress("ak4Jets_photonMult", &ak4Jets_photonMult, &b_ak4Jets_photonMult); fChain->SetBranchAddress("ak4Jets_flavor", &ak4Jets_flavor, &b_ak4Jets_flavor); - fChain->SetBranchAddress("ak4JetsRaw_chargedHadMult", &ak4JetsRaw_chargedHadMult, &b_ak4JetsRaw_chargedHadMult); - fChain->SetBranchAddress("ak4JetsRaw_neutralHadMult", &ak4JetsRaw_neutralHadMult, &b_ak4JetsRaw_neutralHadMult); - fChain->SetBranchAddress("ak4JetsRaw_photonMult", &ak4JetsRaw_photonMult, &b_ak4JetsRaw_photonMult); - fChain->SetBranchAddress("ak4JetsRaw_flavor", &ak4JetsRaw_flavor, &b_ak4JetsRaw_flavor); - fChain->SetBranchAddress("deltaPhiN", &deltaPhiN, &b_deltaPhiN); fChain->SetBranchAddress("photon_isEB", &photon_isEB, &b_photon_isEB); fChain->SetBranchAddress("photon_genMatched", &photon_genMatched, &b_photon_genMatched); fChain->SetBranchAddress("photon_hadTowOverEM", &photon_hadTowOverEM, &b_photon_hadTowOverEM); @@ -393,25 +370,22 @@ void NtupleClass::Init(TTree *tree) fChain->SetBranchAddress("ak1p2Jets_tau3", &ak1p2Jets_tau3, &b_ak1p2Jets_tau3); fChain->SetBranchAddress("ak1p2Jets_tau4", &ak1p2Jets_tau4, &b_ak1p2Jets_tau4); fChain->SetBranchAddress("ak4Jets_CSVdisc", &ak4Jets_CSVdisc, &b_ak4Jets_CSVdisc); + fChain->SetBranchAddress("ak4Jets_MVAdisc", &ak4Jets_MVAdisc, &b_ak4Jets_MVAdisc); fChain->SetBranchAddress("ak4Jets_chargeHadEfrac", &ak4Jets_chargeHadEfrac, &b_ak4Jets_chargeHadEfrac); fChain->SetBranchAddress("ak4Jets_neutralHadEfrac", &ak4Jets_neutralHadEfrac, &b_ak4Jets_neutralHadEfrac); fChain->SetBranchAddress("ak4Jets_photonEfrac", &ak4Jets_photonEfrac, &b_ak4Jets_photonEfrac); - fChain->SetBranchAddress("ak4JetsRaw_CSVdisc", &ak4JetsRaw_CSVdisc, &b_ak4JetsRaw_CSVdisc); - fChain->SetBranchAddress("ak4JetsRaw_chargeHadEfrac", &ak4JetsRaw_chargeHadEfrac, &b_ak4JetsRaw_chargeHadEfrac); - fChain->SetBranchAddress("ak4JetsRaw_neutralHadEfrac", &ak4JetsRaw_neutralHadEfrac, &b_ak4JetsRaw_neutralHadEfrac); - fChain->SetBranchAddress("ak4JetsRaw_photonEfrac", &ak4JetsRaw_photonEfrac, &b_ak4JetsRaw_photonEfrac); fChain->SetBranchAddress("Muons", &Muons, &b_Muons); fChain->SetBranchAddress("Electrons", &Electrons, &b_Electrons); fChain->SetBranchAddress("genParticles", &genParticles, &b_genParticles); - fChain->SetBranchAddress("photonProd", &photonProd, &b_photonProd); + fChain->SetBranchAddress("photonCands", &photonCands, &b_photonCands); + fChain->SetBranchAddress("bestPhoton", &bestPhoton, &b_bestPhoton); + fChain->SetBranchAddress("ak4JetsNoPhotons", &ak4JetsNoPhotons, &b_ak4JetsNoPhotons); fChain->SetBranchAddress("ak1p2Jets", &ak1p2Jets, &b_ak1p2Jets); fChain->SetBranchAddress("ak1p2JetsPt15Reclust", &ak1p2JetsPt15Reclust, &b_ak1p2JetsPt15Reclust); fChain->SetBranchAddress("ak1p2JetsPt20Reclust", &ak1p2JetsPt20Reclust, &b_ak1p2JetsPt20Reclust); fChain->SetBranchAddress("ak1p2JetsPt30Reclust", &ak1p2JetsPt30Reclust, &b_ak1p2JetsPt30Reclust); fChain->SetBranchAddress("ak4Jets", &ak4Jets, &b_ak4Jets); fChain->SetBranchAddress("ak4JetsRaw", &ak4JetsRaw, &b_ak4JetsRaw); - fChain->SetBranchAddress("bestPhoton", &bestPhoton, &b_bestPhoton); - fChain->SetBranchAddress("ak4JetsNoPhotons", &ak4JetsNoPhotons, &b_ak4JetsNoPhotons); fChain->SetBranchAddress("ak4GenJets", &ak4GenJets, &b_ak4GenJets); Notify(); } diff --git a/KSkimDriver.C b/KSkimDriver.C index 3fab5902..e6e2ce8e 100644 --- a/KSkimDriver.C +++ b/KSkimDriver.C @@ -19,7 +19,7 @@ void process(string line, char delim, vector& fields){ //to recompile: //root -b -q -l 'KSkimDriver.C++()' //to run interactively: -//root -b -q -l 'KSkimDriver.C+("input/input_selection.txt","T1tttt_1500_100","main","root://cmseos.fnal.gov//store/user/awhitbe1/photonTestingV2","/uscms_data/d3/pedrok/SUSY2015/crab/CMSSW_7_3_1_patch2/src/Analysis/tree_test")' +//root -b -q -l 'KSkimDriver.C+("input/input_selection.txt","T1tttt_1500_100","main","root://cmseos.fnal.gov//store/user/awhitbe1/PHYS14productionV10","/uscms_data/d3/pedrok/SUSY2015/crab/CMSSW_7_3_1_patch2/src/Analysis/tree_test")' void KSkimDriver(string input="", string setname="", string selTypes="", string indir="", string outdir="tree"){ if(input.size()==0){ cout << "Recompiled KSkimDriver, exiting." << endl; diff --git a/SKsub.sh b/SKsub.sh index a808caa7..84ec9e11 100755 --- a/SKsub.sh +++ b/SKsub.sh @@ -8,5 +8,5 @@ STORE=root://cmseos.fnal.gov//store/user/pedrok/SUSY2015/Analysis for SAMPLE in T1bbbb_1000_900 T1bbbb_1500_100 T1qqqq_1000_800 T1qqqq_1400_100 T1tttt_1200_800 T1tttt_1500_100 DYJetsToLL_M-50_HT-400to600 DYJetsToLL_M-50_HT-600toInf GJets_HT-400to600 GJets_HT-600toInf QCD_HT-500to1000 QCD_HT-500to1000_ext1 QCD_HT-1000toInf QCD_HT-1000toInf_ext1 TTJets_part1 TTJets_part2 TTJets_part3 TTJets_part4 TTJets_part5 WJetsToLNu_HT-400to600 WJetsToLNu_HT-600toInf_part1 WJetsToLNu_HT-600toInf_part2 WJetsToLNu_HT-600toInf_part3 ZJetsToNuNu_HT-400to600 ZJetsToNuNu_HT-600toInf do - ./SKtemp.sh ${JOBDIR} input/input_selection.txt ${SAMPLE} main root://cmseos.fnal.gov//store/user/awhitbe1/photonTestingV2 tree ${STORE} + ./SKtemp.sh ${JOBDIR} input/input_selection.txt ${SAMPLE} main,LDP,SLm,SLe,GJet_NoPhotonVars,DYm root://cmseos.fnal.gov//store/user/awhitbe1/photonTestingV2 tree ${STORE} done diff --git a/input/input_selection.txt b/input/input_selection.txt index 8aea9a0d..8267c123 100644 --- a/input/input_selection.txt +++ b/input/input_selection.txt @@ -22,8 +22,71 @@ main MinDeltaPhiN d:minDeltaPhiN[6] EventCleaning NBJetBin vi:nbjet_min[0,1,2,3] vi:nbjet_max[0,1,2,-1] +LDP + NJet i:njet[4] + HT d:HTmin[500] + MHT d:MHTmin[200] + MuonVeto + ElectronVeto + IsoElectronTrackVeto + IsoMuonTrackVeto + IsoPionTrackVeto + MinDeltaPhiN d:minDeltaPhiN[6] b:invert[1] + EventCleaning + NBJetBin vi:nbjet_min[0,1,2,3] vi:nbjet_max[0,1,2,-1] +SLm + NJet i:njet[4] + HT d:HTmin[500] + MHT d:MHTmin[200] + Muon + ElectronVeto + IsoElectronTrackVeto + IsoMuonTrackVeto + IsoPionTrackVeto + MinDeltaPhiN d:minDeltaPhiN[6] + EventCleaning + NBJetBin vi:nbjet_min[0,1,2,3] vi:nbjet_max[0,1,2,-1] +SLe + NJet i:njet[4] + HT d:HTmin[500] + MHT d:MHTmin[200] + MuonVeto + Electron + IsoElectronTrackVeto + IsoMuonTrackVeto + IsoPionTrackVeto + MinDeltaPhiN d:minDeltaPhiN[6] + EventCleaning + NBJetBin vi:nbjet_min[0,1,2,3] vi:nbjet_max[0,1,2,-1] +GJet + NJet i:njet[4] + HT d:HTmin[500] + MHT d:MHTmin[200] + Photon + MuonVeto + ElectronVeto + IsoElectronTrackVeto + IsoMuonTrackVeto + IsoPionTrackVeto + MinDeltaPhiN d:minDeltaPhiN[6] + EventCleaning + NBJetBin vi:nbjet_min[0,1,2,3] vi:nbjet_max[0,1,2,-1] +DYm + NJet i:njet[4] + HT d:HTmin[500] + MHT d:MHTmin[200] + DiMuon + ElectronVeto + IsoElectronTrackVeto + IsoMuonTrackVeto + IsoPionTrackVeto + MinDeltaPhiN d:minDeltaPhiN[6] + EventCleaning + NBJetBin vi:nbjet_min[0,1,2,3] vi:nbjet_max[0,1,2,-1] VARIATION +NoPhotonVars + NoPhoton SET base skim T1bbbb_1000_900 b:chain[1] s:filepre[PHYS14.SMS-T1bbbb_2J_mGl-1000_mLSP-900_Tune4C_13TeV-madgraph-tauola_] vi:filerange[0,3] s:filesuff[_RA2AnalysisTree.root] s:chainsuff[/TreeMaker2/PreSelection] i:mother[1000021] @@ -48,6 +111,6 @@ base skim TTJets_part5 b:chain[1] s:filepre[PHYS14.TTJets_MSDecaysCKM_central_Tu base skim WJetsToLNu_HT-400to600 b:chain[1] s:filepre[PHYS14.WJetsToLNu_HT-400to600_Tune4C_13TeV-madgraph-tauola_] vi:filerange[0,96] s:filesuff[_RA2AnalysisTree.root] s:chainsuff[/TreeMaker2/PreSelection] i:mother[24] base skim WJetsToLNu_HT-600toInf_part1 b:chain[1] s:filepre[PHYS14.WJetsToLNu_HT-600toInf_Tune4C_13TeV-madgraph-tauola_] vi:filerange[0,117] s:filesuff[_RA2AnalysisTree.root] s:chainsuff[/TreeMaker2/PreSelection] i:mother[24] base skim WJetsToLNu_HT-600toInf_part2 b:chain[1] s:filepre[PHYS14.WJetsToLNu_HT-600toInf_Tune4C_13TeV-madgraph-tauola_] vi:filerange[118,234] s:filesuff[_RA2AnalysisTree.root] s:chainsuff[/TreeMaker2/PreSelection] i:mother[24] -base skim WJetsToLNu_HT-600toInf_part3 b:chain[1] s:filepre[PHYS14.WJetsToLNu_HT-600toInf_Tune4C_13TeV-madgraph-tauola_] vi:filerange[234,351] s:filesuff[_RA2AnalysisTree.root] s:chainsuff[/TreeMaker2/PreSelection] i:mother[24] +base skim WJetsToLNu_HT-600toInf_part3 b:chain[1] s:filepre[PHYS14.WJetsToLNu_HT-600toInf_Tune4C_13TeV-madgraph-tauola_] vi:filerange[235,351] s:filesuff[_RA2AnalysisTree.root] s:chainsuff[/TreeMaker2/PreSelection] i:mother[24] base skim ZJetsToNuNu_HT-400to600 b:chain[1] s:filepre[PHYS14.ZJetsToNuNu_HT-400to600_Tune4C_13TeV-madgraph-tauola_] vi:filerange[0,101] s:filesuff[_RA2AnalysisTree.root] s:chainsuff[/TreeMaker2/PreSelection] i:mother[23] base skim ZJetsToNuNu_HT-600toInf b:chain[1] s:filepre[PHYS14.ZJetsToNuNu_HT-600toInf_Tune4C_13TeV-madgraph-tauola_] vi:filerange[0,103] s:filesuff[_RA2AnalysisTree.root] s:chainsuff[/TreeMaker2/PreSelection] i:mother[23] \ No newline at end of file