#include #include #include #include #include #include #include #include #include #include #include #include #include "DataFormats/FWLite/interface/Handle.h" #include "DataFormats/FWLite/interface/Event.h" #include "DataFormats/Math/interface/LorentzVector.h" #include "DataFormats/Common/interface/TriggerResults.h" #include "FWCore/Common/interface/TriggerNames.h" using namespace edm; using namespace std; class makeTree{ private: float lightJet1Pt, lightJet1Eta, lightJet1Phi; float lightJet2Pt, lightJet2Eta, lightJet2Phi; int nLoosebJets, nTightbJets; float bJet1Pt, bJet1Eta, bJet1Phi; float bJet2Pt, bJet2Eta, bJet2Phi; float lepton1Pt, lepton1Eta, lepton1Phi; int lepton1Flavor, lepton1Charge; float lepton2Pt, lepton2Eta, lepton2Phi; int lepton2Flavor, lepton2Charge; bool /*sameFlavorLeptons,*/ inZwindow; float sameFlavorLeptons; float doubleEle, doubleMu; float dileptonInvariantMass; int nElectrons, nMuons; float muon1Pt, muon1Eta; float ele1Pt, ele1Eta; float kinCut; //for Z->ll estimate float Zveto, invertZveto, wideInvertZveto; float weight; //for jet pT reweighting float MET; float topPt; float sbottomCandMass, deltaM; bool sbottomTruth; //some unprescaled triggers from the MuHad dataset bool HLT_IsoMu17_eta2p1_TriCentralPFJet30; bool HLT_IsoMu20_eta2p1_CentralPFJet30_BTagIPIter; bool HLT_IsoMu20_eta2p1_CentralPFJet80; bool HLT_IsoMu20_eta2p1_CentralPFNoPUJet30_BTagIPIter; bool HLT_IsoMu20_eta2p1_TriCentralPFJet30; bool HLT_IsoMu20_eta2p1_TriCentralPFNoPUJet30; bool HLT_IsoMu24_eta2p1_CentralPFJet30_CentralPFJet25; bool HLT_Mu15_eta2p1_TriCentral_40_20_20_DiBTagIP3D1stTrack; bool HLT_Mu8_Ele8_CaloIdT_TrkIdVL_Mass8_PFHT175; bool HLT_Mu8_TriJet30; //unprescaled triggers from the DoubleMu dataset bool HLT_DoubleMu5_IsoMu5; bool HLT_Mu17_Mu8; bool HLT_Mu17_TkMu8; bool HLT_Mu22_TkMu8; bool HLT_Mu22_TkMu22; //unprescaled triggers from the DoubleElectron dataset bool HLT_DoubleEle10_CaloIdL_TrkIdVL_Ele10_CaloIdT_TrkIdVL; bool HLT_Ele15_Ele8_Ele5_CaloIdL_TrkIdVL; bool HLT_Ele17_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_Ele8_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL; //unprescaled triggers from the MuEG dataset bool HLT_Mu17_Ele8_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL; bool HLT_Mu8_Ele17_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL; //sbottom, excited top reconstruction TLorentzVector lightJet1, top1, sbottom1; TLorentzVector lightJet2, top2, sbottom2; bool top1Truth, sbottom1Truth; bool top2Truth, sbottom2Truth; bool foundPair; bool top11Truth, top12Truth, top21Truth, top22Truth; bool sbottomTop11Light1Truth, sbottomTop11Light2Truth, sbottomTop12Light1Truth, sbottomTop12Light2Truth, sbottomTop21Light1Truth, sbottomTop21Light2Truth, sbottomTop22Light1Truth, sbottomTop22Light2Truth; std::vector > > top11Vector; std::vector > > top12Vector; std::vector > > top21Vector; std::vector > > top22Vector; std::vector > > sbottomTop11Light1Vector; std::vector > > sbottomTop11Light2Vector; std::vector > > sbottomTop12Light1Vector; std::vector > > sbottomTop12Light2Vector; std::vector > > sbottomTop21Light1Vector; std::vector > > sbottomTop21Light2Vector; std::vector > > sbottomTop22Light1Vector; std::vector > > sbottomTop22Light2Vector; std::vector< pair > lightJetPairs; std::vector< pair > >,std::vector > > > > topPairs; std::vector< pair > >,std::vector > > > > sbottomPairs; std::vector< pair > topPairTruths; std::vector< pair > sbottomPairTruths; bool isRealData; TString sample_; TFile* fin; TFile* fout; TTree* tree; TTree* sbottomTree; public: makeTree(TString); ~makeTree(); void fillTree(); void makeLightJetPairs(); void makeTopPairs(); void makeSbottomPairs(); void initializeStuff(); void sbottomVectors(); // float topPt; };