#ifdef __MAKECINT__ #pragma link C++ class std::vector < std::vector >+; #pragma link C++ class std::vector < std::vector >+; #pragma link C++ class std::vector < std::vector >+; #endif #include #include "TTree.h" #include "TFile.h" #include "TH1.h" #include #include #include #include "TLorentzVector.h" #include"TChain.h" using namespace std; void trial_flat() { // TChain *t3 = new TChain("tauPerf"); // t3->Add("/tmp/asircar/play_ground/group10.perf-tau.mc107.106052.PythiaZtautau.e574_s934_s946_r1833_r1700.01-00-01-01.D3PD.110112223720_StreamD3PD_TauMEDIUM/*.root*"); TFile *f= new TFile ("/tmp/asircar/Ztt.root","READ"); TTree *t3 = (TTree*)f->Get("tauPerf"); TFile*f2 = new TFile("trial_tau_trk.root","RECREATE"); TTree*signal=new TTree("signal","ztt"); Float_t etOverPtLeadTrk3,seedCalo_EMRadius3,seedCalo_centFrac3,seedCalo_isolFrac3,seedCalo_trkAvgDist3,massTrkSys3,emfrac3,TRThitsRatio3,trFlightPathSig3,ipZ0SinThetaSigLeadTrk3,seedCalo_nIsolLooseTrk3,seedTrk_hadLeakEt3,seedTrk_sumEMCellEtOverLeadTrkPt3,seedTrk_secMaxStripEt3,etEflow3,effTopoInvMass3,mEflow3,seedCalo_hadRadius3,eta3,phi3,et3,ipSigLeadTrk3; //seedCalo_track_eta3; Float_t trkWidth23=0; Float_t charge3=0; Float_t stripWidth23=0; Int_t seedCalo_numTrack3,numTrack3,author3,nProng3,nStrip3; Float_t seedCalo_etEMAtEMScale3,seedCalo_etHadAtEMScale3,seedCalo_etEMCalib3; signal->Branch("tau_etOverPtLeadTrk",&etOverPtLeadTrk3,"etOverPtLeadTrk3/F"); signal->Branch("tau_seedCalo_EMRadius",&seedCalo_EMRadius3,"seedCalo_EMRadius3/F"); signal->Branch("tau_seedCalo_centFrac",&seedCalo_centFrac3,"seedCalo_centFrac3/F"); signal->Branch("tau_seedCalo_isolFrac",&seedCalo_isolFrac3,"seedCalo_isolFrac3/F"); signal->Branch("tau_seedCalo_trkAvgDist",&seedCalo_trkAvgDist3,"tau_seedCalo_trkAvgDist3/F"); signal->Branch("tau_massTrkSys",&massTrkSys3,"massTrkSys3/F"); signal->Branch("tau_emfrac",&emfrac3,"emfrac3/F"); signal->Branch("tau_TRThitsRatio",&TRThitsRatio3,"TRThitsRatio3/F"); signal->Branch("tau_trFlightPathSig",&trFlightPathSig3,"trFlightPathSig3/F"); signal->Branch("tau_ipZ0SinThetaSigLeadTrk",&ipZ0SinThetaSigLeadTrk3,"ipZ0SinThetaSigLeadTrk3/F"); signal->Branch("tau_seedCalo_nIsolLooseTrk",&seedCalo_nIsolLooseTrk3,"seedCalo_nIsolLooseTrk3/F"); signal->Branch("tau_seedTrk_hadLeakEt",&seedTrk_hadLeakEt3,"seedTrk_hadLeakEt3/F"); signal->Branch("tau_seedTrk_sumEMCellEtOverLeadTrkPt",&seedTrk_sumEMCellEtOverLeadTrkPt3,"seedTrk_sumEMCellEtOverLeadTrkPt3/F"); signal->Branch("tau_seedTrk_secMaxStripEt",&seedTrk_secMaxStripEt3,"seedTrk_secMaxStripEt3/F"); signal->Branch("tau_Et",&et3,"et3/F"); signal->Branch("tau_nProng",&nProng3,"nProng3/I"); signal->Branch("tau_eta",&eta3,"eta3/F"); signal->Branch("tau_phi",&phi3,"phi3/F"); signal->Branch("tau_seedCalo_numTrack",&seedCalo_numTrack3,"seedCalo_numTrack3/I"); signal->Branch("tau_numTrack",&numTrack3,"numTrack3/I"); signal->Branch("tau_author",&author3,"author3/I"); signal->Branch("tau_etEflow",&etEflow3,"etEflow3/F"); signal->Branch("tau_effTopoInvMass",&effTopoInvMass3,"effTopoInvMass3/F"); signal->Branch("tau_trkWidth2",&trkWidth23,"trkWidth23/F"); signal->Branch("tau_charge",&charge3,"charge3/F"); signal->Branch("tau_mEflow",&mEflow3,"mEflow3/F"); signal->Branch("tau_seedCalo_etEMAtEMScale",&seedCalo_etEMAtEMScale3,"seedCalo_etEMAtEMScale3/F"); signal->Branch("tau_seedCalo_etHadAtEMScale",&seedCalo_etHadAtEMScale3,"seedCalo_etHadAtEMScale3/F"); signal->Branch("tau_seedCalo_etEMCalib",&seedCalo_etEMCalib3,"seedCalo_etEMCalib3/F"); signal->Branch("tau_seedCalo_hadRadius",&seedCalo_hadRadius3,"seedCalo_hadRadius3/F"); signal->Branch("tau_seedCalo_nStrip",&nStrip3,"nStrip3/I"); signal->Branch("tau_ipSigLeadTrk",&ipSigLeadTrk3,"ipSigLeadTrk3/F"); signal->Branch("tau_stripWidth2",&stripWidth23,"stripWidth23/F"); // signal->Branch("tau_seedCalo_track_eta",&seedCalo_track_eta3,"seedCalo_track_eta3/F"); Int_t mc_n; 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_effTopoInvMass; vector *tau_Et; 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; vector *mc_phi; vector *mc_eta; vector *mc_status; vector *mc_pdgId; vector > *mc_parent_index; vector *mc_pt; vector *tau_calcVars_EMFractionAtEMScale; vector *tau_seedCalo_numTrack; vector *tau_author; vector *tau_etEflow; vector *tau_trkWidth2; vector *tau_charge; vector *tau_mEflow; vector *tau_seedCalo_hadRadius; vector *tau_seedCalo_etEMAtEMScale; vector *tau_seedCalo_etHadAtEMScale; vector *tau_seedCalo_etEMCalib; vector *tau_nProng; vector *tau_seedCalo_nStrip; vector *tau_ipSigLeadTrk; vector *tau_seedCalo_stripWidth2; vector > *tau_seedCalo_track_eta; t3->SetBranchAddress("tau_seedCalo_stripWidth2", &tau_seedCalo_stripWidth2); t3->SetBranchAddress("tau_seedCalo_track_eta", &tau_seedCalo_track_eta); t3->SetBranchAddress("tau_seedCalo_nStrip",&tau_seedCalo_nStrip); t3->SetBranchAddress("tau_ipSigLeadTrk",&tau_ipSigLeadTrk); t3->SetBranchAddress("mc_pt", &mc_pt); t3->SetBranchAddress("mc_phi", &mc_phi); t3->SetBranchAddress("mc_eta", &mc_eta); t3->SetBranchAddress("mc_parent_index",&mc_parent_index); t3->SetBranchAddress("mc_pdgId", &mc_pdgId); t3->SetBranchAddress("mc_status", &mc_status); t3->SetBranchAddress("mc_n", &mc_n); t3->SetBranchAddress("tau_nProng", &tau_nProng); 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_calcVars_EMFractionAtEMScale" ,&tau_calcVars_EMFractionAtEMScale); t3->SetBranchAddress("tau_Et", &tau_Et); t3->SetBranchAddress("tau_massTrkSys" ,&tau_massTrkSys); 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); t3->SetBranchAddress("tau_seedCalo_numTrack",&tau_seedCalo_numTrack); t3->SetBranchAddress("tau_numTrack",&tau_numTrack); t3->SetBranchAddress("tau_author",&tau_author); t3->SetBranchAddress("tau_etEflow",&tau_etEflow); t3->SetBranchAddress("tau_effTopoInvMass",&tau_effTopoInvMass); t3->SetBranchAddress("tau_trkWidth2",&tau_trkWidth2); t3->SetBranchAddress("tau_charge",&tau_charge); t3->SetBranchAddress("tau_mEflow",&tau_mEflow); t3->SetBranchAddress("tau_seedCalo_etEMAtEMScale",&tau_seedCalo_etEMAtEMScale); t3->SetBranchAddress("tau_seedCalo_etHadAtEMScale",&tau_seedCalo_etHadAtEMScale); t3->SetBranchAddress("tau_seedCalo_etEMCalib",&tau_seedCalo_etEMCalib); t3->SetBranchAddress("tau_seedCalo_hadRadius",&tau_seedCalo_hadRadius); Long64_t nentries = t3->GetEntriesFast(); for (Long64_t i = 0; i < nentries; i++) { // cout<<"test 1"<LoadTree(i)<0)break; // cout<<"test 1.5"<GetEntry(i); if ( i > 1000 ) break; // cout<<"test 2"<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 emfrac = tau_calcVars_EMFractionAtEMScale->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); int seedCalo_numTrack =tau_seedCalo_numTrack->at(j); int numTrack =tau_numTrack->at(j);; int author = tau_author->at(j); float etEflow = tau_etEflow->at(j); float effTopoInvMass = tau_effTopoInvMass->at(j); float trkWidth2 = tau_trkWidth2->at(j); float charge = tau_charge->at(j); float mEflow = tau_mEflow->at(j); double etEMAtEMScale = tau_seedCalo_etEMAtEMScale->at(j); double etHadAtEMScale =tau_seedCalo_etHadAtEMScale->at(j); double etEMCalib =tau_seedCalo_etEMCalib->at(j); float hadRadius = tau_seedCalo_hadRadius->at(j); int nStrip = tau_seedCalo_nStrip->at(j); float ipSigLeadTrk =tau_ipSigLeadTrk->at(j); float stripWidth2 =tau_seedCalo_stripWidth2->at(j); vector trk_eta= tau_seedCalo_track_eta->at(j); int k=0; float Trketa=0; if(trk_eta.size()) { Trketa= trk_eta.at(k); // cout<<"test3"<at(itruth)).size())==0)continue;//only consider events with more than 0 truth e's from Z's // if (TMath::Abs((*mc_pdgId)[(mc_parent_index->at(itruth).at(0))])!=23) continue;////only consider truth electrons from Z's // cout <<"test 3"<< endl; //if((*mc_pt)[itruth]<15000.)continue; // TLorentzVector ptruth_el(0.,0.,0.,0.);//construct 4momentum of truth e // ptruth_el.SetPtEtaPhiM((*mc_pt)[itruth],(*mc_eta)[itruth],(*mc_phi)[itruth],0.911); // Double_t DeltaR_truthE_TauCand=pTauCand.DeltaR(ptruth_el);//dR btw 1 truth electron in mc_n and 1 taucandidate in tau_n // if(DeltaR_truthE_TauCand<0.2) // { // useTau++;//a tau candidate truth matched to a truth level electron will have dR<0.2 // } // }//loop over truth particles // if(useTau==1.)continue; //////////////////////////////////////////////////truth matching for taus/////////////////////////////////////////////////////////////////////////////////// // if (index<0) {continue; // } int Matched=-1; // if(TMAth::Abs((Trketa))>2.5){continue;} // if((*tau_Et)[j]<15000.){continue;} // if((*tau_author)[j]==2){continue;} if((*tau_seedCalo_numTrack)[j]!=1){continue;} Matched=(*tau_trueTauAssoc_index)[j]; if(Matched<0){continue;} cout<< "Test"<< endl; ///////////////////////////////////Filling of Branches////////////////////////////////////////////////////////////////////////////////////////////////////// etOverPtLeadTrk3=etOverPtLeadTrk ; seedCalo_EMRadius3=seedCalo_EMRadius; seedCalo_centFrac3=seedCalo_centFrac; seedCalo_isolFrac3=seedCalo_isolFrac; seedCalo_trkAvgDist3=seedCalo_trkAvgDist; massTrkSys3=massTrkSys; emfrac3=emfrac; TRThitsRatio3=TRThitsRatio; trFlightPathSig3=trFlightPathSig; ipZ0SinThetaSigLeadTrk3=ipZ0SinThetaSigLeadTrk; seedCalo_nIsolLooseTrk3=seedCalo_nIsolLooseTrk; seedTrk_hadLeakEt3=hadLeakEt; seedTrk_sumEMCellEtOverLeadTrkPt3=sumEMCellEtOverLeadTrkPt; seedTrk_secMaxStripEt3=MaxStripEt; seedCalo_numTrack3 =seedCalo_numTrack; numTrack3=numTrack; author3= author; etEflow3= etEflow; effTopoInvMass3= effTopoInvMass; trkWidth23= trkWidth2; charge3= charge; mEflow3= mEflow; seedCalo_etEMAtEMScale3= etEMAtEMScale; seedCalo_etHadAtEMScale3=etHadAtEMScale; seedCalo_etEMCalib3=etEMCalib; seedCalo_hadRadius3= hadRadius; et3=Et; nProng3=nProng; eta3=Trketa; phi3=phi; ipSigLeadTrk3=ipSigLeadTrk; nStrip3= nStrip; //seedCalo_track_eta3=Trketa; stripWidth23=stripWidth2; signal->Fill(); signal->AutoSave("SaveSelf"); break; // } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // } //cout<<"test 2"<cd(); f2->Write(); f2->Close(); }