#include #include "TTree.h" #include "TFile.h" #include "TH1.h" #include #include #include #include "TLorentzVector.h" #ifdef __MAKECINT__ #pragma link C++ class std::vector < std::vector >+; #endif using namespace std; void truth_match() { // TChain *t3 = new TChain("tauPerf"); //t3->Add("/data0/TauBDT/group10.perf-tau.mc107.106052.PythiaZtautau.e574_s934_s946_r1833_r1700.01-00-01-01.D3PD.110112223720_StreamD3PD_TauMEDIUM/*.root*"); TFile *f= new TFile ("/data0/TauBDT/Ztautau.root","READ"); TTree *t3 = (TTree*)f->Get("tauPerf"); TFile*f2 = new TFile("tau4.root","RECREATE"); TTree* signal=new TTree("signal","ztautau"); Float_t tau_etOverPtLeadTrk3,tau_seedCalo_EMRadius3,tau_seedCalo_centFrac3,tau_seedCalo_isolFrac3,tau_seedCalo_trkAvgDist3,tau_massTrkSys3,tau_jet_emfrac3,tau_calcVars_topoInvMass3,tau_TRThitsRatio3,tau_trFlightPathSig3,tau_ipZ0SinThetaSigLeadTrk3,tau_seedCalo_nIsolLooseTrk3,tau_seedTrk_hadLeakEt3,tau_seedTrk_sumEMCellEtOverLeadTrkPt3,tau_seedTrk_secMaxStripEt3; signal->Branch("tau_etOverPtLeadTrk",&tau_etOverPtLeadTrk3,"tau_etOverPtLeadTrk3/F"); signal->Branch("tau_seedCalo_EMRadius",&tau_seedCalo_EMRadius3,"tau_seedCalo_EMRadius3/F"); signal->Branch("tau_seedCalo_centFrac",&tau_seedCalo_centFrac3,"tau_seedCalo_centFrac3/F"); signal->Branch("tau_seedCalo_isolFrac",&tau_seedCalo_isolFrac3,"tau_seedCalo_isolFrac3/F"); signal->Branch("tau_seedCalo_trkAvgDist",&tau_seedCalo_trkAvgDist3,"tau_seedCalo_trkAvgDist3/F"); signal->Branch("tau_massTrkSys",&tau_massTrkSys3,"tau_massTrkSys3/F"); signal->Branch("tau_jet_emfrac",&tau_jet_emfrac3,"tau_jet_emfrac3/F"); signal->Branch("tau_calcVars_topoInvMass",&tau_calcVars_topoInvMass3,"tau_calcVars_topoInvMass3/F"); signal->Branch("tau_TRThitsRatio",&tau_TRThitsRatio3,"tau_TRThitsRatio3/F"); signal->Branch("tau_trFlightPathSig",&tau_trFlightPathSig3,"tau_trFlightPathSig3/F"); signal->Branch("tau_ipZ0SinThetaSigLeadTrk",&tau_ipZ0SinThetaSigLeadTrk3,"tau_ipZ0SinThetaSigLeadTrk3/F"); signal->Branch("tau_seedCalo_nIsolLooseTrk",&tau_seedCalo_nIsolLooseTrk3,"tau_seedCalo_nIsolLooseTrk3/F"); signal->Branch("tau_seedTrk_hadLeakEt",&tau_seedTrk_hadLeakEt3,"tau_seedTrk_hadLeakEt3/F"); signal->Branch("tau_seedTrk_sumEMCellEtOverLeadTrkPt",&tau_seedTrk_sumEMCellEtOverLeadTrkPt3,"tau_seedTrk_sumEMCellEtOverLeadTrkPt3/F"); signal->Branch("tau_seedTrk_secMaxStripEt",&tau_seedTrk_secMaxStripEt3,"tau_seedTrk_secMaxStripEt3/F"); // TH1F *h1 = new TH1F("tau_etOverPtLeadTrk2","tau_etOverPtLeadTrk2",50,0,6); // TH1F *h2 = new TH1F("tau_seedCalo_EMRadius2","tau_seedCalo_EMRadius2",50,0,0.3); // TH1F *h3 = new TH1F("tau_seedCalo_centFrac2","tau_seedCalo_centFrac2",50,0,1); // TH1F *h4 = new TH1F("tau_seedCalo_isolFrac2","tau_seedCalo_isolFrac2",50,0,1); // TH1F *h5 = new TH1F("tau_seedCalo_trkAvgDist2","tau_seedCalo_trkAvgDist2",50,0,0.3); // TH1F *h6 = new TH1F("tau_massTrkSys2","tau_massTrkSys2",50,0,3000); // TH1F *h7 = new TH1F("tau_jet_emfrac2","tau_jet_emfrac2",50,0,1); // TH1F *h8 = new TH1F("tau_calcVars_topoInvMass2","tau_calcVars_topoInvMass2",50,0,8000); // TH1F *h9 = new TH1F("tau_TRThitsRatio2","tau_TRThitsRatio2",50,0,1); // TH1F *h10 = new TH1F("tau_trFlightPathSig2","tau_trFlightPathSig2",50,-8,8); // TH1F *h11 = new TH1F("tau_ipZ0SinThetaSigLeadTrk2","tau_ipZ0SinThetaSigLeadTrk2",50,-6,6); // TH1F *h12 = new TH1F("tau_seedCalo_nIsolLooseTrk2","tau_seedCalo_nIsolLooseTrk2",50,0,8); // TH1F *h13 = new TH1F("tau_etEflowOverjetEt","tau_etEflowOverjetEt",20,0,2); //TH1F *h14 = new TH1F ( " Delta R", " Delta R", 100 , 0, 0.01); //TH1F *h14 = new TH1F("tau_seedTrk_hadLeakEt2 ","tau_seedTrk_hadLeakEt2 ",20,-0.1,0.2); //TH1F *h15 = new TH1F("tau_seedTrk_sumEMCellEtOverLeadTrkPt2","tau_seedTrk_sumEMCellEtOverLeadTrkPt2 ",20,0,4); //TH1F *h16 = new TH1F("tau_seedTrk_secMaxStripEt2","tau_seedTrk_secMaxStripEt2",20,0,0.3); Int_t tau_n; Int_t el_n; vector *tau_numTrack; vector *tau_eta; vector *tau_etOverPtLeadTrk; vector *tau_massTrkSys; vector *tau_seedCalo_EMRadius; vector *tau_seedCalo_isolFrac; vector *tau_seedCalo_centFrac; vector *tau_seedCalo_trkAvgDist; vector *tau_topoInvMass; vector *tau_Et; vector *tau_jet_emfrac; vector *tau_trueTauAssoc_index; vector *tau_phi; vector *el_truth_eta; vector *el_truth_phi; vector * el_truth_matched; vector *tau_trFlightPathSig; vector * tau_ipZ0SinThetaSigLeadTrk; vector *tau_seedCalo_nIsolLooseTrk; vector *tau_calcVars_TRTHTOverLT_LeadTrk; vector *tau_seedTrk_secMaxStripEt; vector *tau_seedTrk_sumEMCellEtOverLeadTrkPt ; vector *tau_seedTrk_hadLeakEt; t3->SetBranchAddress("tau_n", &tau_n); t3->SetBranchAddress("el_n", &el_n); t3->SetBranchAddress("tau_eta", &tau_eta); t3->SetBranchAddress("tau_etOverPtLeadTrk", &tau_etOverPtLeadTrk); t3->SetBranchAddress("tau_seedCalo_EMRadius",&tau_seedCalo_EMRadius); t3->SetBranchAddress("tau_seedCalo_centFrac",&tau_seedCalo_centFrac); t3->SetBranchAddress("tau_seedCalo_isolFrac",&tau_seedCalo_isolFrac); t3->SetBranchAddress("tau_seedCalo_trkAvgDist",&tau_seedCalo_trkAvgDist); t3->SetBranchAddress("tau_jet_emfrac" ,&tau_jet_emfrac); t3->SetBranchAddress("tau_topoInvMass", &tau_topoInvMass); t3->SetBranchAddress("tau_Et", &tau_Et); t3->SetBranchAddress("tau_massTrkSys" ,&tau_massTrkSys); t3->SetBranchAddress("tau_numTrack", &tau_numTrack); t3->SetBranchAddress("tau_trueTauAssoc_index", &tau_trueTauAssoc_index); t3->SetBranchAddress("tau_phi", &tau_phi); t3->SetBranchAddress("el_truth_matched" , &el_truth_matched); t3->SetBranchAddress("tau_seedTrk_sumEMCellEtOverLeadTrkPt", &tau_seedTrk_sumEMCellEtOverLeadTrkPt); t3->SetBranchAddress("tau_seedTrk_secMaxStripEt",&tau_seedTrk_secMaxStripEt); t3->SetBranchAddress("tau_calcVars_TRTHTOverLT_LeadTrk" ,&tau_calcVars_TRTHTOverLT_LeadTrk); t3->SetBranchAddress("tau_seedTrk_hadLeakEt",&tau_seedTrk_hadLeakEt); t3->SetBranchAddress("el_truth_eta", &el_truth_eta); t3->SetBranchAddress("el_truth_phi",&el_truth_phi); t3->SetBranchAddress("tau_trFlightPathSig", &tau_trFlightPathSig); t3->SetBranchAddress("tau_ipZ0SinThetaSigLeadTrk",&tau_ipZ0SinThetaSigLeadTrk); t3->SetBranchAddress("tau_seedCalo_nIsolLooseTrk",&tau_seedCalo_nIsolLooseTrk); Long64_t nentries = t3->GetEntries(); for (Long64_t i = 0; i < nentries; i++) { t3->GetEntry(i); // if ( i > 20 ) break; for(int j = 0; j!= tau_n; j++){ float nProng = tau_numTrack->at(j); float eta= tau_eta->at(j); float phi = tau_phi->at(j); float Et= tau_Et->at(j); float ET=Et/1000; float etOverPtLeadTrk = tau_etOverPtLeadTrk->at(j); float seedCalo_EMRadius = tau_seedCalo_EMRadius->at(j); float seedCalo_centFrac = tau_seedCalo_centFrac->at(j); float seedCalo_isolFrac = tau_seedCalo_isolFrac->at(j); float massTrkSys = tau_massTrkSys->at(j); float seedCalo_trkAvgDist = tau_seedCalo_trkAvgDist->at(j); float jet_emfrac = tau_jet_emfrac->at(j); float topoInvMass = tau_topoInvMass->at(j); float TRThitsRatio =tau_calcVars_TRTHTOverLT_LeadTrk->at(j); float trFlightPathSig = tau_trFlightPathSig->at(j); float ipZ0SinThetaSigLeadTrk = tau_ipZ0SinThetaSigLeadTrk->at(j); float seedCalo_nIsolLooseTrk = tau_seedCalo_nIsolLooseTrk->at(j); float index = tau_trueTauAssoc_index->at(j); float hadLeakEt=tau_seedTrk_hadLeakEt->at(j); float MaxStripEt=tau_seedTrk_secMaxStripEt->at(j); float sumEMCellEtOverLeadTrkPt= tau_seedTrk_sumEMCellEtOverLeadTrkPt->at(j); if (index<0) {continue; } ///////////////////////////////////Filling of Histograms//////////////////////////////////////////////////////////// if (Et>15){ tau_etOverPtLeadTrk3=etOverPtLeadTrk ; tau_seedCalo_EMRadius3=seedCalo_EMRadius; tau_seedCalo_centFrac3=seedCalo_centFrac; tau_seedCalo_isolFrac3=seedCalo_isolFrac; tau_seedCalo_trkAvgDist3=seedCalo_trkAvgDist; tau_massTrkSys3=massTrkSys; tau_jet_emfrac3=jet_emfrac; tau_calcVars_topoInvMass3=topoInvMass; tau_TRThitsRatio3=TRThitsRatio; tau_trFlightPathSig3=trFlightPathSig; tau_ipZ0SinThetaSigLeadTrk3=ipZ0SinThetaSigLeadTrk; tau_seedCalo_nIsolLooseTrk3=seedCalo_nIsolLooseTrk; tau_seedTrk_hadLeakEt3=hadLeakEt; tau_seedTrk_sumEMCellEtOverLeadTrkPt3=sumEMCellEtOverLeadTrkPt; tau_seedTrk_secMaxStripEt3=MaxStripEt; signal->Fill(); break; } // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// } } //} // } //signal->Write(); f2->cd(); f2->Write(); f2->Close(); }