#include "myvar.hpp" #include "TLeafF.h" #include "TLeafC.h" #include "TLeafI.h" #include "TLeafD.h" #include TClonesArray *trignames=0; TClonesArray *l1names=0; TClonesArray *l2names=0; TClonesArray *l3eletoolnames=0; TClonesArray *l3jettoolnames=0; L1 l1; L2 l2; L3 l3; TRACKS tracks; JETS jets1; JETS jets2; JETS jets3; EM ems; MU mus; MET metstruct; MCINFO mcinfo; MCVTX mcvtx; MCPTL mcptl; PRIMARYVERTEX pvstruct; SECONDARYVERTEX svstruct; DIEM diemstruct; DIMU dimustruct; int eventNum; int runNum; int solpol; int torpol; int lbnblock; int tick; int emptycrate; int coherentnoise; int noonnoise; int ringoffire; using std::cout; using std::endl; void SetLeafFAddress(TBranch *branch, const char *leafname, float &var) { TLeafF *lf = static_cast (branch->GetLeaf(leafname)); if (lf!=0) lf->SetAddress(static_cast (&var)); else cout << "didn't find leaf " << leafname << endl; } void SetLeafDAddress(TBranch *branch, const char *leafname, double &var) { TLeafD *lf = static_cast (branch->GetLeaf(leafname)); if (lf!=0) lf->SetAddress(static_cast (&var)); else cout << "didn't find leaf " << leafname << endl; } void SetLeafIAddress(TBranch *branch, const char *leafname, int &var) { TLeafI *lf = static_cast (branch->GetLeaf(leafname)); if (lf!=0) lf->SetAddress(static_cast (&var)); else cout << "didn't find leaf " << leafname << endl; } void SetLeafCAddress(TBranch *branch, const char *leafname, char *var) { TLeafC *lf = static_cast (branch->GetLeaf(leafname)); if (lf!=0) lf->SetAddress(static_cast (var)); else cout << "didn't find leaf " << leafname << endl; } void SetLeaves(TTree *_ttree) { if (trignames == 0) trignames = new TClonesArray("TObjString", 128); if (l1names == 0) l1names = new TClonesArray("TObjString", 128); if (l2names == 0) l2names = new TClonesArray("TObjString", 128); if (l3eletoolnames == 0) l3eletoolnames = new TClonesArray("TObjString", 128); if (l3jettoolnames == 0) l3jettoolnames = new TClonesArray("TObjString", 128); TBranch *tmpbr = _ttree->GetBranch("Run"); SetLeafIAddress(tmpbr, "runno", runNum); SetLeafIAddress(tmpbr, "evtno", eventNum); SetLeafIAddress(tmpbr, "solpol", solpol); SetLeafIAddress(tmpbr, "torpol", torpol); SetLeafIAddress(tmpbr, "lbnblock", lbnblock); SetLeafIAddress(tmpbr, "tick", tick); SetLeafIAddress(tmpbr, "emptycrate", emptycrate); SetLeafIAddress(tmpbr, "coherentnoise", coherentnoise); SetLeafIAddress(tmpbr, "noonnoise", noonnoise); SetLeafIAddress(tmpbr, "ringoffire", ringoffire); _ttree->SetBranchAddress("Trigger", &trignames); _ttree->SetBranchAddress("L1names", &l1names); _ttree->SetBranchAddress("L2names", &l2names); _ttree->SetBranchAddress("L3eletoolnames", &l3eletoolnames); _ttree->SetBranchAddress("L3jettoolnames", &l3jettoolnames); tmpbr = _ttree->GetBranch("L1"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "prescales", l1.prescales[0]); SetLeafFAddress(tmpbr, "l1cal_gbl_em", l1.l1cal_gbl_em); SetLeafFAddress(tmpbr, "l1cal_gbl_tot", l1.l1cal_gbl_tot); SetLeafFAddress(tmpbr, "l1cal_gbl_misspt", l1.l1cal_gbl_misspt); SetLeafIAddress(tmpbr, "l1cal_tot_ntower", l1.l1cal_tot_ntower); SetLeafFAddress(tmpbr, "l1cal_tot_pt", l1.l1cal_tot_pt[0]); SetLeafFAddress(tmpbr, "l1cal_tot_eta", l1.l1cal_tot_eta[0]); SetLeafFAddress(tmpbr, "l1cal_tot_phi", l1.l1cal_tot_phi[0]); SetLeafIAddress(tmpbr, "l1cal_em_ntower", l1.l1cal_em_ntower); SetLeafFAddress(tmpbr, "l1cal_em_pt", l1.l1cal_em_pt[0]); SetLeafFAddress(tmpbr, "l1cal_em_eta", l1.l1cal_em_eta[0]); SetLeafFAddress(tmpbr, "l1cal_em_phi", l1.l1cal_em_phi[0]); SetLeafIAddress(tmpbr, "l1muo_cen_id", l1.l1muo_cen_id[0]); SetLeafIAddress(tmpbr, "l1muo_n_id", l1.l1muo_n_id[0]); SetLeafIAddress(tmpbr, "l1muo_s_id", l1.l1muo_s_id[0]); SetLeafIAddress(tmpbr, "l1muo_c_trig_oct", l1.l1muo_c_trig_oct); SetLeafIAddress(tmpbr, "l1muo_n_trig_oct", l1.l1muo_n_trig_oct); SetLeafIAddress(tmpbr, "l1muo_s_trig_oct", l1.l1muo_s_trig_oct); SetLeafIAddress(tmpbr, "l1muo_trigs", l1.l1muo_trigs[0]); } else { cout << "Warning: no L1 branch" << endl; } tmpbr = _ttree->GetBranch("L2"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "l2jet_n", l2.l2jet_n); SetLeafFAddress(tmpbr, "l2jet_et", l2.l2jet_et[0]); SetLeafIAddress(tmpbr, "l2jet_ieta", l2.l2jet_ieta[0]); SetLeafIAddress(tmpbr, "l2jet_iphi", l2.l2jet_iphi[0]); SetLeafFAddress(tmpbr, "l2jet_eta", l2.l2jet_eta[0]); SetLeafFAddress(tmpbr, "l2jet_phi", l2.l2jet_phi[0]); SetLeafIAddress(tmpbr, "l2em_n", l2.l2em_n); SetLeafFAddress(tmpbr, "l2em_et", l2.l2em_et[0]); SetLeafIAddress(tmpbr, "l2em_ieta", l2.l2em_ieta[0]); SetLeafIAddress(tmpbr, "l2em_iphi", l2.l2em_iphi[0]); SetLeafFAddress(tmpbr, "l2em_eta", l2.l2em_eta[0]); SetLeafFAddress(tmpbr, "l2em_phi", l2.l2em_phi[0]); SetLeafFAddress(tmpbr, "l2em_emfr", l2.l2em_emfr[0]); SetLeafFAddress(tmpbr, "l2em_isol", l2.l2em_isol[0]); SetLeafIAddress(tmpbr, "l2muo_n", l2.l2muo_n); SetLeafFAddress(tmpbr, "l2muo_et", l2.l2muo_et[0]); SetLeafFAddress(tmpbr, "l2muo_eta", l2.l2muo_eta[0]); SetLeafFAddress(tmpbr, "l2muo_phi", l2.l2muo_phi[0]); } else { cout << "Warning: no L2 branch" << endl; } tmpbr = _ttree->GetBranch("L3"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "l3ele_n", l3.l3ele_n); SetLeafFAddress(tmpbr, "l3ele_eta", l3.l3ele_eta[0]); SetLeafFAddress(tmpbr, "l3ele_deta", l3.l3ele_deta[0]); SetLeafFAddress(tmpbr, "l3ele_phi", l3.l3ele_phi[0]); SetLeafFAddress(tmpbr, "l3ele_et", l3.l3ele_et[0]); SetLeafFAddress(tmpbr, "l3ele_em1width", l3.l3ele_em1width[0]); SetLeafFAddress(tmpbr, "l3ele_em2width", l3.l3ele_em2width[0]); SetLeafFAddress(tmpbr, "l3ele_em3width", l3.l3ele_em3width[0]); SetLeafFAddress(tmpbr, "l3ele_emfr", l3.l3ele_emfr[0]); SetLeafFAddress(tmpbr, "l3ele_chi2", l3.l3ele_chi2[0]); SetLeafFAddress(tmpbr, "l3ele_isol", l3.l3ele_isol[0]); SetLeafIAddress(tmpbr, "l3ele_trackmatch", l3.l3ele_trackmatch[0]); SetLeafIAddress(tmpbr, "l3ele_cpsmatch", l3.l3ele_cpsmatch[0]); SetLeafFAddress(tmpbr, "l3ele_eoverp", l3.l3ele_eoverp[0]); SetLeafFAddress(tmpbr, "l3ele_caltrackdphi", l3.l3ele_caltrackdphi[0]); SetLeafFAddress(tmpbr, "l3ele_cpstrackdphi", l3.l3ele_cpstrackdphi[0]); SetLeafFAddress(tmpbr, "l3ele_vertexz", l3.l3ele_vertexz[0]); // L3 tracks SetLeafIAddress(tmpbr, "l3trk_n", l3.l3trk_n); SetLeafFAddress(tmpbr, "l3trk_pt", l3.l3trk_pt[0]); SetLeafFAddress(tmpbr, "l3trk_phi", l3.l3trk_phi[0]); SetLeafFAddress(tmpbr, "l3trk_tanl", l3.l3trk_tanl[0]); SetLeafFAddress(tmpbr, "l3trk_z", l3.l3trk_z[0]); // L3 jets SetLeafIAddress(tmpbr, "l3jet_n", l3.l3jet_n); SetLeafFAddress(tmpbr, "l3jet_et", l3.l3jet_et[0]); SetLeafFAddress(tmpbr, "l3jet_eta", l3.l3jet_eta[0]); SetLeafFAddress(tmpbr, "l3jet_phi", l3.l3jet_phi[0]); SetLeafFAddress(tmpbr, "l3jet_px", l3.l3jet_px[0]); SetLeafFAddress(tmpbr, "l3jet_py", l3.l3jet_py[0]); SetLeafFAddress(tmpbr, "l3jet_pz", l3.l3jet_pz[0]); SetLeafFAddress(tmpbr, "l3jet_emfr", l3.l3jet_emfr[0]); SetLeafFAddress(tmpbr, "l3jet_chfr", l3.l3jet_chfr[0]); SetLeafFAddress(tmpbr, "l3jet_hotfr", l3.l3jet_hotfr[0]); // L3 met ht mht SetLeafFAddress(tmpbr, "l3ht", l3.l3ht); SetLeafFAddress(tmpbr, "l3mht", l3.l3mht); SetLeafFAddress(tmpbr, "l3met", l3.l3met); // L3 muon SetLeafIAddress(tmpbr, "l3muo_n", l3.l3muo_n); SetLeafFAddress(tmpbr, "l3muo_pt", l3.l3muo_pt[0]); SetLeafFAddress(tmpbr, "l3muo_trkpt", l3.l3muo_trkpt[0]); SetLeafFAddress(tmpbr, "l3muo_deta", l3.l3muo_deta[0]); SetLeafFAddress(tmpbr, "l3muo_eta", l3.l3muo_eta[0]); SetLeafFAddress(tmpbr, "l3muo_phi", l3.l3muo_phi[0]); SetLeafIAddress(tmpbr, "l3muo_octant", l3.l3muo_octant[0]); SetLeafIAddress(tmpbr, "l3muo_region", l3.l3muo_region[0]); SetLeafIAddress(tmpbr, "l3muo_qual", l3.l3muo_qual[0]); SetLeafFAddress(tmpbr, "l3muo_mtcetrack", l3.l3muo_mtcetrack[0]); SetLeafFAddress(tmpbr, "l3muo_mtchfrac", l3.l3muo_mtchfrac[0]); // l3 btag SetLeafFAddress(tmpbr, "l3btag", l3.l3btag); SetLeafFAddress(tmpbr, "l3pvx", l3.l3pvx); SetLeafFAddress(tmpbr, "l3pvy", l3.l3pvy); SetLeafFAddress(tmpbr, "l3pvz", l3.l3pvz); } else { cout << "Warning: no L2 branch" << endl; } tmpbr = _ttree->GetBranch("Track"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "ntrk", tracks.ntracks); SetLeafFAddress(tmpbr, "trkpt", tracks.pt[0]); SetLeafFAddress(tmpbr, "trkphi", tracks.phi[0]); SetLeafFAddress(tmpbr, "trketa", tracks.eta[0]); SetLeafFAddress(tmpbr, "trkr0", tracks.r0[0]); SetLeafFAddress(tmpbr, "trkz0", tracks.z0[0]); SetLeafFAddress(tmpbr, "trkdca0", tracks.dca0[0]); SetLeafFAddress(tmpbr, "trkdca1", tracks.dca1[0]); SetLeafFAddress(tmpbr, "trkdca0err", tracks.dca0err[0]); SetLeafFAddress(tmpbr, "trkdca1err", tracks.dca1err[0]); SetLeafFAddress(tmpbr, "trkchi2", tracks.chi2[0]); SetLeafIAddress(tmpbr, "hmaskw1", tracks.hmaskw1[0]); SetLeafIAddress(tmpbr, "hmaskw2", tracks.hmaskw2[0]); SetLeafIAddress(tmpbr, "hmaskw3", tracks.hmaskw3[0]); // track parameters and errors are doubles SetLeafFAddress(tmpbr, "rca", tracks.rca[0]); SetLeafFAddress(tmpbr, "zca", tracks.zca[0]); SetLeafFAddress(tmpbr, "phidir", tracks.phidir[0]); SetLeafFAddress(tmpbr, "tanl", tracks.tanl[0]); SetLeafFAddress(tmpbr, "qpt", tracks.qpt[0]); SetLeafFAddress(tmpbr, "drr", tracks.drr[0]); SetLeafFAddress(tmpbr, "dzz", tracks.dzz[0]); SetLeafFAddress(tmpbr, "dpp", tracks.dpp[0]); SetLeafFAddress(tmpbr, "dtt", tracks.dtt[0]); SetLeafFAddress(tmpbr, "dqq", tracks.dqq[0]); SetLeafFAddress(tmpbr, "drp", tracks.drp[0]); SetLeafFAddress(tmpbr, "drq", tracks.drq[0]); SetLeafFAddress(tmpbr, "dzt", tracks.dzt[0]); SetLeafFAddress(tmpbr, "dpq", tracks.dpq[0]); SetLeafIAddress(tmpbr, "nsmt", tracks.smt[0]); SetLeafIAddress(tmpbr, "ncft", tracks.cft[0]); SetLeafIAddress(tmpbr, "idx", tracks.idx[0]); SetLeafIAddress(tmpbr, "vidx", tracks.vidx[0]); // SetLeafIAddress(tmpbr, "trkiso", tracks.iso[0]); // SetLeafFAddress(tmpbr, "trkisoe", tracks.isoe[0]); // SetLeafFAddress(tmpbr, "trkisoen", tracks.isoen[0]); // // energy flow and isolation // SetLeafFAddress(tmpbr, "e33", tracks.e33[0]); // SetLeafFAddress(tmpbr, "e33em", tracks.e33em[0]); // SetLeafFAddress(tmpbr, "e33ch", tracks.e33ch[0]); // SetLeafFAddress(tmpbr, "e55", tracks.e55[0]); // SetLeafFAddress(tmpbr, "e55em", tracks.e55em[0]); // SetLeafFAddress(tmpbr, "e55ch", tracks.e55ch[0]); // SetLeafIAddress(tmpbr, "mtc_map", tracks.mtc_map[0]); // SetLeafFAddress(tmpbr, "mtc_e", tracks.mtc_e[0]); // SetLeafFAddress(tmpbr, "mtc_em1", tracks.mtc_em1[0]); // SetLeafFAddress(tmpbr, "mtc_em2", tracks.mtc_em2[0]); // SetLeafFAddress(tmpbr, "mtc_em3", tracks.mtc_em3[0]); // SetLeafFAddress(tmpbr, "mtc_em4", tracks.mtc_em4[0]); // SetLeafFAddress(tmpbr, "mtc_fh1", tracks.mtc_fh1[0]); // SetLeafFAddress(tmpbr, "mtc_fh2", tracks.mtc_fh2[0]); // SetLeafFAddress(tmpbr, "mtc_fh3", tracks.mtc_fh3[0]); // SetLeafFAddress(tmpbr, "mtc_fh4", tracks.mtc_fh4[0]); // SetLeafFAddress(tmpbr, "mtc_ch1", tracks.mtc_ch1[0]); // SetLeafFAddress(tmpbr, "mtc_ch2", tracks.mtc_ch2[0]); // SetLeafFAddress(tmpbr, "mtc_ch3", tracks.mtc_ch3[0]); // SetLeafFAddress(tmpbr, "mtc_mgcc", tracks.mtc_mgcc[0]); // SetLeafFAddress(tmpbr, "mtc_mgec", tracks.mtc_mgec[0]); // SetLeafFAddress(tmpbr, "mtc_icd", tracks.mtc_icd[0]); } else { cout << "Warning: no Track branch" << endl; } tmpbr = _ttree->GetBranch("MET"); if (tmpbr != 0) { SetLeafFAddress(tmpbr, "MET", metstruct.MET); SetLeafFAddress(tmpbr, "SET", metstruct.SET); SetLeafFAddress(tmpbr, "MEphi", metstruct.phi); SetLeafFAddress(tmpbr, "METx", metstruct.METx); SetLeafFAddress(tmpbr, "METy", metstruct.METy); SetLeafFAddress(tmpbr, "corrMET", metstruct.corrMET); SetLeafFAddress(tmpbr, "corrMETx", metstruct.corrMETx); SetLeafFAddress(tmpbr, "corrMETy", metstruct.corrMETy); SetLeafFAddress(tmpbr, "corrMEphi", metstruct.corrphi); SetLeafFAddress(tmpbr, "calMET", metstruct.calMET); SetLeafFAddress(tmpbr, "calMETx", metstruct.calMETx); SetLeafFAddress(tmpbr, "calMETy", metstruct.calMETy); SetLeafFAddress(tmpbr, "eleMETx", metstruct.eleMETx); SetLeafFAddress(tmpbr, "eleMETy", metstruct.eleMETy); SetLeafFAddress(tmpbr, "muoMETx", metstruct.muoMETx); SetLeafFAddress(tmpbr, "muoMETy", metstruct.muoMETy); SetLeafFAddress(tmpbr, "muoMET", metstruct.muoMET); SetLeafFAddress(tmpbr, "muophi", metstruct.muophi); } else { cout << "Warning: no MET branch" << endl; } tmpbr = _ttree->GetBranch("MCinfo"); if (tmpbr != 0) { SetLeafFAddress(tmpbr, "mcweight", mcinfo.weight); SetLeafFAddress(tmpbr, "mccross", mcinfo.cross); SetLeafFAddress(tmpbr, "q2", mcinfo.q2); SetLeafFAddress(tmpbr, "shat", mcinfo.shat); SetLeafFAddress(tmpbr, "that", mcinfo.that); SetLeafFAddress(tmpbr, "uhat", mcinfo.uhat); } else { cout << "Warning: no MCinfo branch" << endl; } tmpbr = _ttree->GetBranch("MCparticle"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "nmcp", mcptl.nptl); SetLeafFAddress(tmpbr, "mcpx", mcptl.px[0]); SetLeafFAddress(tmpbr, "mcpy", mcptl.py[0]); SetLeafFAddress(tmpbr, "mcpz", mcptl.pz[0]); SetLeafFAddress(tmpbr, "mcE", mcptl.E[0]); SetLeafIAddress(tmpbr, "vidx", mcptl.pvidx[0]); SetLeafIAddress(tmpbr, "pdgid", mcptl.pdgid[0]); SetLeafIAddress(tmpbr, "pidx", mcptl.pidx[0]); SetLeafIAddress(tmpbr, "parent", mcptl.parent[0]); SetLeafIAddress(tmpbr, "mcstatus", mcptl.status[0]); } else { cout << "Warning: no MCparticle branch" << endl; } tmpbr = _ttree->GetBranch("MCvtx"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "nmcv", mcvtx.nv); SetLeafFAddress(tmpbr, "mcvx", mcvtx.vx[0]); SetLeafFAddress(tmpbr, "mcvy", mcvtx.vy[0]); SetLeafFAddress(tmpbr, "mcvz", mcvtx.vz[0]); SetLeafFAddress(tmpbr, "mcvct", mcvtx.vct[0]); SetLeafIAddress(tmpbr, "mcvidx", mcvtx.vidx[0]); } else { cout << "Warning: no MCvtx branch" << endl; } tmpbr = _ttree->GetBranch("EM"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "nem", ems.nem); SetLeafFAddress(tmpbr, "emE", ems.E[0]); SetLeafFAddress(tmpbr, "empt", ems.pt[0]); SetLeafFAddress(tmpbr, "empx", ems.px[0]); SetLeafFAddress(tmpbr, "empy", ems.py[0]); SetLeafFAddress(tmpbr, "empz", ems.pz[0]); SetLeafFAddress(tmpbr, "emeta", ems.eta[0]); SetLeafFAddress(tmpbr, "emphi", ems.phi[0]); SetLeafFAddress(tmpbr, "ememf", ems.emf[0]); SetLeafFAddress(tmpbr, "emiso", ems.iso[0]); SetLeafFAddress(tmpbr, "emchi7", ems.chi7[0]); SetLeafFAddress(tmpbr, "emchi8", ems.chi8[0]); SetLeafFAddress(tmpbr, "emcharge", ems.q[0]); SetLeafFAddress(tmpbr, "emtmass", ems.tmass[0]); SetLeafIAddress(tmpbr, "emtrkidx", ems.trkidx[0]); SetLeafIAddress(tmpbr, "emtrkflag", ems.trkflag[0]); SetLeafIAddress(tmpbr, "emfiduflag", ems.fiduflag[0]); SetLeafIAddress(tmpbr, "emphifiduflag", ems.phifiduflag[0]); SetLeafIAddress(tmpbr, "emetafiduflag", ems.etafiduflag[0]); SetLeafFAddress(tmpbr, "emdeteta", ems.deteta[0]); SetLeafFAddress(tmpbr, "emdetphi", ems.detphi[0]); SetLeafFAddress(tmpbr, "emchi2", ems.chi2prob[0]); SetLeafFAddress(tmpbr, "emPSfloorY", ems.PSfloorY[0]); SetLeafFAddress(tmpbr, "emPSfloorZ", ems.PSfloorZ[0]); SetLeafFAddress(tmpbr, "emPSfloorE", ems.PSfloorE[0]); SetLeafFAddress(tmpbr, "emPSflrS1", ems.PSflrS1[0]); SetLeafFAddress(tmpbr, "emPSflrS2", ems.PSflrS2[0]); SetLeafFAddress(tmpbr, "emEM1floorY", ems.EM1floorY[0]); SetLeafFAddress(tmpbr, "emEM1floorZ", ems.EM1floorZ[0]); SetLeafFAddress(tmpbr, "emEM1floorE", ems.EM1floorE[0]); SetLeafFAddress(tmpbr, "emEM1flrS1", ems.EM1flrS1[0]); SetLeafFAddress(tmpbr, "emEM1flrS2", ems.EM1flrS2[0]); SetLeafFAddress(tmpbr, "emEM2floorY", ems.EM2floorY[0]); SetLeafFAddress(tmpbr, "emEM2floorZ", ems.EM2floorZ[0]); SetLeafFAddress(tmpbr, "emEM2floorE", ems.EM2floorE[0]); SetLeafFAddress(tmpbr, "emEM2flrS1", ems.EM2flrS1[0]); SetLeafFAddress(tmpbr, "emEM2flrS2", ems.EM2flrS2[0]); SetLeafFAddress(tmpbr, "emEM3floorY", ems.EM3floorY[0]); SetLeafFAddress(tmpbr, "emEM3floorZ", ems.EM3floorZ[0]); SetLeafFAddress(tmpbr, "emEM3floorE", ems.EM3floorE[0]); SetLeafFAddress(tmpbr, "emEM3flrS1", ems.EM3flrS1[0]); SetLeafFAddress(tmpbr, "emEM3flrS2", ems.EM3flrS2[0]); SetLeafFAddress(tmpbr, "emEM4floorY", ems.EM4floorY[0]); SetLeafFAddress(tmpbr, "emEM4floorZ", ems.EM4floorZ[0]); SetLeafFAddress(tmpbr, "emEM4floorE", ems.EM4floorE[0]); SetLeafFAddress(tmpbr, "emEM4flrS1", ems.EM4flrS1[0]); SetLeafFAddress(tmpbr, "emEM4flrS2", ems.EM4flrS2[0]); SetLeafFAddress(tmpbr, "emFHfloorY", ems.FHfloorY[0]); SetLeafFAddress(tmpbr, "emFHfloorZ", ems.FHfloorZ[0]); SetLeafFAddress(tmpbr, "emFHfloorE", ems.FHfloorE[0]); SetLeafFAddress(tmpbr, "emFHflrS1", ems.FHflrS1[0]); SetLeafFAddress(tmpbr, "emFHflrS2", ems.FHflrS2[0]); SetLeafIAddress(tmpbr, "emgoodele", ems.goodele[0]); SetLeafFAddress(tmpbr, "emllhood", ems.llhood[0]); SetLeafFAddress(tmpbr, "emcpsllhood", ems.cpsllhood[0]); } else { cout << "Warning: no EM branch" << endl; } tmpbr = _ttree->GetBranch("MU"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "nmu", mus.nmu); SetLeafFAddress(tmpbr, "muE", mus.E[0]); SetLeafFAddress(tmpbr, "mupt", mus.pt[0]); SetLeafFAddress(tmpbr, "mueta", mus.eta[0]); SetLeafFAddress(tmpbr, "muphi", mus.phi[0]); SetLeafIAddress(tmpbr, "munseg", mus.nseg[0]); SetLeafIAddress(tmpbr, "muawhit", mus.awhit[0]); SetLeafIAddress(tmpbr, "mubcwhit", mus.bcwhit[0]); SetLeafIAddress(tmpbr, "muashit", mus.ashit[0]); SetLeafIAddress(tmpbr, "mubcshit", mus.bcshit[0]); SetLeafFAddress(tmpbr, "sctimea", mus.sctimeA[0]); SetLeafFAddress(tmpbr, "sctimeb", mus.sctimeB[0]); SetLeafFAddress(tmpbr, "sctimec", mus.sctimeC[0]); SetLeafFAddress(tmpbr, "muchi", mus.chi[0]); SetLeafFAddress(tmpbr, "mulocchi", mus.locchi[0]); SetLeafFAddress(tmpbr, "mulocpt", mus.locpt[0]); SetLeafFAddress(tmpbr, "mucharge", mus.q[0]); SetLeafFAddress(tmpbr, "mutmass", mus.tmass[0]); SetLeafIAddress(tmpbr, "mutrkidx", mus.trkidx[0]); //SetLeafIAddress(tmpbr, "muntrkmatch", mus.ntrkmatch[0]); SetLeafIAddress(tmpbr, "muqual", mus.qual[0]); SetLeafFAddress(tmpbr, "e33", mus.e33[0]); SetLeafFAddress(tmpbr, "e55", mus.e55[0]); SetLeafFAddress(tmpbr, "econe1", mus.econe1[0]); SetLeafFAddress(tmpbr, "econe15", mus.econe15[0]); SetLeafFAddress(tmpbr, "econe2", mus.econe2[0]); SetLeafFAddress(tmpbr, "econe4", mus.econe4[0]); SetLeafFAddress(tmpbr, "econe6", mus.econe6[0]); SetLeafIAddress(tmpbr, "ntrk5", mus.ntrk5[0]); SetLeafFAddress(tmpbr, "ettrk5", mus.ettrk5[0]); SetLeafFAddress(tmpbr, "ethalo", mus.ethalo[0]); } else { cout << "Warning: no MU branch" << endl; } tmpbr = _ttree->GetBranch("Jet1"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "njets1", jets1.njets); SetLeafFAddress(tmpbr, "jet1E", jets1.E[0]); SetLeafFAddress(tmpbr, "jet1pt", jets1.pt[0]); SetLeafFAddress(tmpbr, "jet1px", jets1.px[0]); SetLeafFAddress(tmpbr, "jet1py", jets1.py[0]); SetLeafFAddress(tmpbr, "jet1pz", jets1.pz[0]); SetLeafFAddress(tmpbr, "jet1corr", jets1.corr[0]); SetLeafFAddress(tmpbr, "jet1correrr", jets1.correrr[0]); SetLeafFAddress(tmpbr, "jet1eta", jets1.eta[0]); SetLeafFAddress(tmpbr, "jet1phi", jets1.phi[0]); SetLeafFAddress(tmpbr, "jet1deta", jets1.deta[0]); SetLeafFAddress(tmpbr, "jet1dphi", jets1.dphi[0]); SetLeafFAddress(tmpbr, "jet1emf", jets1.emf[0]); SetLeafFAddress(tmpbr, "jet1chf", jets1.chf[0]); SetLeafFAddress(tmpbr, "jet1hotf", jets1.hotf[0]); SetLeafFAddress(tmpbr, "jet1etawidth", jets1.etawidth[0]); SetLeafFAddress(tmpbr, "jet1phiwidth", jets1.phiwidth[0]); SetLeafIAddress(tmpbr, "jet1n90", jets1.n90[0]); SetLeafIAddress(tmpbr, "jet1nitm", jets1.nitm[0]); SetLeafFAddress(tmpbr, "jet1EM1F", jets1.EM1F[0]); SetLeafFAddress(tmpbr, "jet1EM2F", jets1.EM2F[0]); SetLeafFAddress(tmpbr, "jet1EM3F", jets1.EM3F[0]); SetLeafFAddress(tmpbr, "jet1FH1F", jets1.FH1F[0]); SetLeafFAddress(tmpbr, "jet1FH2F", jets1.FH2F[0]); SetLeafFAddress(tmpbr, "jet1FH3F", jets1.FH3F[0]); SetLeafFAddress(tmpbr, "jet1METcorr", jets1.METcorr[0]); SetLeafFAddress(tmpbr, "jet1mcMETcorr", jets1.mcMETcorr[0]); SetLeafFAddress(tmpbr, "jet1ScalarET", jets1.ScalarET[0]); SetLeafIAddress(tmpbr, "jet1goodjet", jets1.goodjet[0]); SetLeafIAddress(tmpbr, "jet1elenot", jets1.elenot[0]); SetLeafIAddress(tmpbr, "jet1L1Confirm", jets1.L1Confirm[0]); SetLeafFAddress(tmpbr, "jet1l1set", jets1.l1set[0]); SetLeafFAddress(tmpbr, "jet1l1ratio", jets1.l1ratio[0]); SetLeafIAddress(tmpbr, "jet1taggable", jets1.taggable[0]); SetLeafIAddress(tmpbr, "jet1svx", jets1.svx[0]); SetLeafIAddress(tmpbr, "jet1jliptag", jets1.jlip_tag[0]); SetLeafFAddress(tmpbr, "jet1jlipprob", jets1.jlip_prob[0]); SetLeafIAddress(tmpbr, "jet1svtag", jets1.sv_tag[0]); SetLeafIAddress(tmpbr, "jet1mutag", jets1.mu_tag[0]); } else { cout << "Warning: no Jet1 branch" << endl; } tmpbr = _ttree->GetBranch("Jet2"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "njets2", jets2.njets); SetLeafFAddress(tmpbr, "jet2E", jets2.E[0]); SetLeafFAddress(tmpbr, "jet2pt", jets2.pt[0]); SetLeafFAddress(tmpbr, "jet2px", jets2.px[0]); SetLeafFAddress(tmpbr, "jet2py", jets2.py[0]); SetLeafFAddress(tmpbr, "jet2pz", jets2.pz[0]); SetLeafFAddress(tmpbr, "jet2corr", jets2.corr[0]); SetLeafFAddress(tmpbr, "jet2correrr", jets2.correrr[0]); SetLeafFAddress(tmpbr, "jet2eta", jets2.eta[0]); SetLeafFAddress(tmpbr, "jet2phi", jets2.phi[0]); SetLeafFAddress(tmpbr, "jet2deta", jets2.deta[0]); SetLeafFAddress(tmpbr, "jet2dphi", jets2.dphi[0]); SetLeafFAddress(tmpbr, "jet2emf", jets2.emf[0]); SetLeafFAddress(tmpbr, "jet2chf", jets2.chf[0]); SetLeafFAddress(tmpbr, "jet2hotf", jets2.hotf[0]); SetLeafFAddress(tmpbr, "jet2etawidth", jets2.etawidth[0]); SetLeafFAddress(tmpbr, "jet2phiwidth", jets2.phiwidth[0]); SetLeafIAddress(tmpbr, "jet2n90", jets2.n90[0]); SetLeafIAddress(tmpbr, "jet2nitm", jets2.nitm[0]); SetLeafFAddress(tmpbr, "jet2EM1F", jets2.EM1F[0]); SetLeafFAddress(tmpbr, "jet2EM2F", jets2.EM2F[0]); SetLeafFAddress(tmpbr, "jet2EM3F", jets2.EM3F[0]); SetLeafFAddress(tmpbr, "jet2FH1F", jets2.FH1F[0]); SetLeafFAddress(tmpbr, "jet2FH2F", jets2.FH2F[0]); SetLeafFAddress(tmpbr, "jet2FH3F", jets2.FH3F[0]); SetLeafFAddress(tmpbr, "jet2METcorr", jets2.METcorr[0]); SetLeafFAddress(tmpbr, "jet2mcMETcorr", jets2.mcMETcorr[0]); SetLeafFAddress(tmpbr, "jet2ScalarET", jets2.ScalarET[0]); SetLeafIAddress(tmpbr, "jet2goodjet", jets2.goodjet[0]); SetLeafIAddress(tmpbr, "jet2elenot", jets2.elenot[0]); SetLeafIAddress(tmpbr, "jet2L1Confirm", jets2.L1Confirm[0]); SetLeafFAddress(tmpbr, "jet2l1set", jets2.l1set[0]); SetLeafFAddress(tmpbr, "jet2l1ratio", jets2.l1ratio[0]); SetLeafIAddress(tmpbr, "jet2taggable", jets2.taggable[0]); SetLeafIAddress(tmpbr, "jet2svx", jets2.svx[0]); SetLeafIAddress(tmpbr, "jet2jliptag", jets2.jlip_tag[0]); SetLeafFAddress(tmpbr, "jet2jlipprob", jets2.jlip_prob[0]); SetLeafIAddress(tmpbr, "jet2svtag", jets2.sv_tag[0]); SetLeafIAddress(tmpbr, "jet2mutag", jets2.mu_tag[0]); } else { cout << "Warning: no Jet2 branch" << endl; } tmpbr = _ttree->GetBranch("Jet3"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "njets3", jets3.njets); SetLeafFAddress(tmpbr, "jet3E", jets3.E[0]); SetLeafFAddress(tmpbr, "jet3pt", jets3.pt[0]); SetLeafFAddress(tmpbr, "jet3px", jets3.px[0]); SetLeafFAddress(tmpbr, "jet3py", jets3.py[0]); SetLeafFAddress(tmpbr, "jet3pz", jets3.pz[0]); SetLeafFAddress(tmpbr, "jet3corr", jets3.corr[0]); SetLeafFAddress(tmpbr, "jet3correrr", jets3.correrr[0]); SetLeafFAddress(tmpbr, "jet3eta", jets3.eta[0]); SetLeafFAddress(tmpbr, "jet3phi", jets3.phi[0]); SetLeafFAddress(tmpbr, "jet3deta", jets3.deta[0]); SetLeafFAddress(tmpbr, "jet3dphi", jets3.dphi[0]); SetLeafFAddress(tmpbr, "jet3emf", jets3.emf[0]); SetLeafFAddress(tmpbr, "jet3chf", jets3.chf[0]); SetLeafFAddress(tmpbr, "jet3hotf", jets3.hotf[0]); SetLeafFAddress(tmpbr, "jet3etawidth", jets3.etawidth[0]); SetLeafFAddress(tmpbr, "jet3phiwidth", jets3.phiwidth[0]); SetLeafIAddress(tmpbr, "jet3n90", jets3.n90[0]); SetLeafIAddress(tmpbr, "jet3nitm", jets3.nitm[0]); SetLeafFAddress(tmpbr, "jet3EM1F", jets3.EM1F[0]); SetLeafFAddress(tmpbr, "jet3EM2F", jets3.EM2F[0]); SetLeafFAddress(tmpbr, "jet3EM3F", jets3.EM3F[0]); SetLeafFAddress(tmpbr, "jet3FH1F", jets3.FH1F[0]); SetLeafFAddress(tmpbr, "jet3FH2F", jets3.FH2F[0]); SetLeafFAddress(tmpbr, "jet3FH3F", jets3.FH3F[0]); SetLeafFAddress(tmpbr, "jet3METcorr", jets3.METcorr[0]); SetLeafFAddress(tmpbr, "jet3mcMETcorr", jets3.mcMETcorr[0]); SetLeafFAddress(tmpbr, "jet3ScalarET", jets3.ScalarET[0]); SetLeafIAddress(tmpbr, "jet3goodjet", jets3.goodjet[0]); SetLeafIAddress(tmpbr, "jet3elenot", jets3.elenot[0]); SetLeafIAddress(tmpbr, "jet3L1Confirm", jets3.L1Confirm[0]); SetLeafFAddress(tmpbr, "jet3l1set", jets3.l1set[0]); SetLeafFAddress(tmpbr, "jet3l1ratio", jets3.l1ratio[0]); SetLeafIAddress(tmpbr, "jet3taggable", jets3.taggable[0]); SetLeafIAddress(tmpbr, "jet3svx", jets3.svx[0]); SetLeafIAddress(tmpbr, "jet3jliptag", jets3.jlip_tag[0]); SetLeafFAddress(tmpbr, "jet3jlipprob", jets3.jlip_prob[0]); SetLeafIAddress(tmpbr, "jet3svtag", jets3.sv_tag[0]); SetLeafIAddress(tmpbr, "jet3mutag", jets3.mu_tag[0]); } else { cout << "Warning: no Jet3 branch" << endl; } // Primary Vertex tmpbr = _ttree->GetBranch("Vtx"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "npv", pvstruct.nv); SetLeafIAddress(tmpbr, "pvntrk", pvstruct.nvtrk[0]); SetLeafFAddress(tmpbr, "pvx", pvstruct.x[0]); SetLeafFAddress(tmpbr, "pvy", pvstruct.y[0]); SetLeafFAddress(tmpbr, "pvz", pvstruct.z[0]); SetLeafFAddress(tmpbr, "pvcovxx", pvstruct.covxx[0]); SetLeafFAddress(tmpbr, "pvcovyy", pvstruct.covyy[0]); SetLeafFAddress(tmpbr, "pvcovzz", pvstruct.covzz[0]); SetLeafFAddress(tmpbr, "pvcovxy", pvstruct.covxy[0]); SetLeafFAddress(tmpbr, "pvcovxz", pvstruct.covxz[0]); SetLeafFAddress(tmpbr, "pvcovyz", pvstruct.covyz[0]); SetLeafIAddress(tmpbr, "vtype", pvstruct.vtype[0]); } else { cout << "Warning: no Vtx branch" << endl; } // Secondary Vertex tmpbr = _ttree->GetBranch("Svtx"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "nsv", svstruct.nv); SetLeafIAddress(tmpbr, "svntrk", svstruct.nvtrk[0]); SetLeafFAddress(tmpbr, "svx", svstruct.x[0]); SetLeafFAddress(tmpbr, "svy", svstruct.y[0]); SetLeafFAddress(tmpbr, "svz", svstruct.z[0]); SetLeafFAddress(tmpbr, "svpx", svstruct.px[0]); SetLeafFAddress(tmpbr, "svpy", svstruct.py[0]); SetLeafFAddress(tmpbr, "svpz", svstruct.pz[0]); SetLeafFAddress(tmpbr, "svcovxx", svstruct.covxx[0]); SetLeafFAddress(tmpbr, "svcovyy", svstruct.covyy[0]); SetLeafFAddress(tmpbr, "svcovzz", svstruct.covzz[0]); SetLeafFAddress(tmpbr, "svcovxy", svstruct.covxy[0]); SetLeafFAddress(tmpbr, "svcovxz", svstruct.covxz[0]); SetLeafFAddress(tmpbr, "svcovyz", svstruct.covyz[0]); SetLeafFAddress(tmpbr, "svcovpxx", svstruct.covpxx[0]); SetLeafFAddress(tmpbr, "svcovpyy", svstruct.covpyy[0]); SetLeafFAddress(tmpbr, "svcovpzz", svstruct.covpzz[0]); SetLeafFAddress(tmpbr, "svcovpxy", svstruct.covpxy[0]); SetLeafFAddress(tmpbr, "svcovpxz", svstruct.covpxz[0]); SetLeafFAddress(tmpbr, "svcovpyz", svstruct.covpyz[0]); SetLeafFAddress(tmpbr, "svmass", svstruct.mass[0]); SetLeafFAddress(tmpbr, "svdlsig2d", svstruct.dlsig2d[0]); SetLeafFAddress(tmpbr, "svdlsig3d", svstruct.dlsig3d[0]); SetLeafFAddress(tmpbr, "svopening", svstruct.opening[0]); SetLeafIAddress(tmpbr, "svtype", svstruct.vtype[0]); } else { cout << "Warning: no Svtx branch" << endl; } tmpbr = _ttree->GetBranch("Diem"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "ndiemcand", diemstruct.ndiemcand); SetLeafFAddress(tmpbr, "diemmass", diemstruct.diemmass[0]); SetLeafFAddress(tmpbr, "diemtrkmass", diemstruct.diemtrkmass[0]); SetLeafIAddress(tmpbr, "em1idx", diemstruct.em1idx[0]); SetLeafIAddress(tmpbr, "em2idx", diemstruct.em2idx[0]); } else { cout << "Warning: no Diem branch" << endl; } tmpbr = _ttree->GetBranch("Dimu"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "ndimucand", dimustruct.ndimucand); SetLeafFAddress(tmpbr, "dimumass", dimustruct.dimumass[0]); SetLeafIAddress(tmpbr, "mu1idx", dimustruct.mu1idx[0]); SetLeafIAddress(tmpbr, "mu2idx", dimustruct.mu2idx[0]); } else { cout << "Warning: no Dimu branch" << endl; } } // I don't know.. but starting from ROOT4, weird things are going on void SetCloneLeaves(TTree *_ttree) { TBranch *tmpbr = _ttree->GetBranch("Run"); SetLeafIAddress(tmpbr, "runno", runNum); SetLeafIAddress(tmpbr, "evtno", eventNum); SetLeafIAddress(tmpbr, "solpol", solpol); SetLeafIAddress(tmpbr, "torpol", torpol); SetLeafIAddress(tmpbr, "lbnblock", lbnblock); SetLeafIAddress(tmpbr, "tick", tick); SetLeafIAddress(tmpbr, "emptycrate", emptycrate); SetLeafIAddress(tmpbr, "coherentnoise", coherentnoise); SetLeafIAddress(tmpbr, "noonnoise", noonnoise); SetLeafIAddress(tmpbr, "ringoffire", ringoffire); tmpbr = _ttree->GetBranch("L1"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "prescales", l1.prescales[0]); SetLeafFAddress(tmpbr, "l1cal_gbl_em", l1.l1cal_gbl_em); SetLeafFAddress(tmpbr, "l1cal_gbl_tot", l1.l1cal_gbl_tot); SetLeafFAddress(tmpbr, "l1cal_gbl_misspt", l1.l1cal_gbl_misspt); SetLeafIAddress(tmpbr, "l1cal_tot_ntower", l1.l1cal_tot_ntower); SetLeafFAddress(tmpbr, "l1cal_tot_pt", l1.l1cal_tot_pt[0]); SetLeafFAddress(tmpbr, "l1cal_tot_eta", l1.l1cal_tot_eta[0]); SetLeafFAddress(tmpbr, "l1cal_tot_phi", l1.l1cal_tot_phi[0]); SetLeafIAddress(tmpbr, "l1cal_em_ntower", l1.l1cal_em_ntower); SetLeafFAddress(tmpbr, "l1cal_em_pt", l1.l1cal_em_pt[0]); SetLeafFAddress(tmpbr, "l1cal_em_eta", l1.l1cal_em_eta[0]); SetLeafFAddress(tmpbr, "l1cal_em_phi", l1.l1cal_em_phi[0]); SetLeafIAddress(tmpbr, "l1muo_cen_id", l1.l1muo_cen_id[0]); SetLeafIAddress(tmpbr, "l1muo_n_id", l1.l1muo_n_id[0]); SetLeafIAddress(tmpbr, "l1muo_s_id", l1.l1muo_s_id[0]); SetLeafIAddress(tmpbr, "l1muo_c_trig_oct", l1.l1muo_c_trig_oct); SetLeafIAddress(tmpbr, "l1muo_n_trig_oct", l1.l1muo_n_trig_oct); SetLeafIAddress(tmpbr, "l1muo_s_trig_oct", l1.l1muo_s_trig_oct); SetLeafIAddress(tmpbr, "l1muo_trigs", l1.l1muo_trigs[0]); } else { cout << "Warning: no L1 branch" << endl; } tmpbr = _ttree->GetBranch("L2"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "l2jet_n", l2.l2jet_n); SetLeafFAddress(tmpbr, "l2jet_et", l2.l2jet_et[0]); SetLeafIAddress(tmpbr, "l2jet_ieta", l2.l2jet_ieta[0]); SetLeafIAddress(tmpbr, "l2jet_iphi", l2.l2jet_iphi[0]); SetLeafFAddress(tmpbr, "l2jet_eta", l2.l2jet_eta[0]); SetLeafFAddress(tmpbr, "l2jet_phi", l2.l2jet_phi[0]); SetLeafIAddress(tmpbr, "l2em_n", l2.l2em_n); SetLeafFAddress(tmpbr, "l2em_et", l2.l2em_et[0]); SetLeafIAddress(tmpbr, "l2em_ieta", l2.l2em_ieta[0]); SetLeafIAddress(tmpbr, "l2em_iphi", l2.l2em_iphi[0]); SetLeafFAddress(tmpbr, "l2em_eta", l2.l2em_eta[0]); SetLeafFAddress(tmpbr, "l2em_phi", l2.l2em_phi[0]); SetLeafFAddress(tmpbr, "l2em_emfr", l2.l2em_emfr[0]); SetLeafFAddress(tmpbr, "l2em_isol", l2.l2em_isol[0]); SetLeafIAddress(tmpbr, "l2muo_n", l2.l2muo_n); SetLeafFAddress(tmpbr, "l2muo_et", l2.l2muo_et[0]); SetLeafFAddress(tmpbr, "l2muo_eta", l2.l2muo_eta[0]); SetLeafFAddress(tmpbr, "l2muo_phi", l2.l2muo_phi[0]); } else { cout << "Warning: no L2 branch" << endl; } tmpbr = _ttree->GetBranch("L3"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "l3ele_n", l3.l3ele_n); SetLeafFAddress(tmpbr, "l3ele_eta", l3.l3ele_eta[0]); SetLeafFAddress(tmpbr, "l3ele_deta", l3.l3ele_deta[0]); SetLeafFAddress(tmpbr, "l3ele_phi", l3.l3ele_phi[0]); SetLeafFAddress(tmpbr, "l3ele_et", l3.l3ele_et[0]); SetLeafFAddress(tmpbr, "l3ele_em1width", l3.l3ele_em1width[0]); SetLeafFAddress(tmpbr, "l3ele_em2width", l3.l3ele_em2width[0]); SetLeafFAddress(tmpbr, "l3ele_em3width", l3.l3ele_em3width[0]); SetLeafFAddress(tmpbr, "l3ele_emfr", l3.l3ele_emfr[0]); SetLeafFAddress(tmpbr, "l3ele_chi2", l3.l3ele_chi2[0]); SetLeafFAddress(tmpbr, "l3ele_isol", l3.l3ele_isol[0]); SetLeafIAddress(tmpbr, "l3ele_trackmatch", l3.l3ele_trackmatch[0]); SetLeafIAddress(tmpbr, "l3ele_cpsmatch", l3.l3ele_cpsmatch[0]); SetLeafFAddress(tmpbr, "l3ele_eoverp", l3.l3ele_eoverp[0]); SetLeafFAddress(tmpbr, "l3ele_caltrackdphi", l3.l3ele_caltrackdphi[0]); SetLeafFAddress(tmpbr, "l3ele_cpstrackdphi", l3.l3ele_cpstrackdphi[0]); SetLeafFAddress(tmpbr, "l3ele_vertexz", l3.l3ele_vertexz[0]); // L3 tracks SetLeafIAddress(tmpbr, "l3trk_n", l3.l3trk_n); SetLeafFAddress(tmpbr, "l3trk_pt", l3.l3trk_pt[0]); SetLeafFAddress(tmpbr, "l3trk_phi", l3.l3trk_phi[0]); SetLeafFAddress(tmpbr, "l3trk_tanl", l3.l3trk_tanl[0]); SetLeafFAddress(tmpbr, "l3trk_z", l3.l3trk_z[0]); // L3 jets SetLeafIAddress(tmpbr, "l3jet_n", l3.l3jet_n); SetLeafFAddress(tmpbr, "l3jet_et", l3.l3jet_et[0]); SetLeafFAddress(tmpbr, "l3jet_eta", l3.l3jet_eta[0]); SetLeafFAddress(tmpbr, "l3jet_phi", l3.l3jet_phi[0]); SetLeafFAddress(tmpbr, "l3jet_px", l3.l3jet_px[0]); SetLeafFAddress(tmpbr, "l3jet_py", l3.l3jet_py[0]); SetLeafFAddress(tmpbr, "l3jet_pz", l3.l3jet_pz[0]); SetLeafFAddress(tmpbr, "l3jet_emfr", l3.l3jet_emfr[0]); SetLeafFAddress(tmpbr, "l3jet_chfr", l3.l3jet_chfr[0]); SetLeafFAddress(tmpbr, "l3jet_hotfr", l3.l3jet_hotfr[0]); // L3 met ht mht SetLeafFAddress(tmpbr, "l3ht", l3.l3ht); SetLeafFAddress(tmpbr, "l3mht", l3.l3mht); SetLeafFAddress(tmpbr, "l3met", l3.l3met); // L3 muon SetLeafIAddress(tmpbr, "l3muo_n", l3.l3muo_n); SetLeafFAddress(tmpbr, "l3muo_pt", l3.l3muo_pt[0]); SetLeafFAddress(tmpbr, "l3muo_trkpt", l3.l3muo_trkpt[0]); SetLeafFAddress(tmpbr, "l3muo_deta", l3.l3muo_deta[0]); SetLeafFAddress(tmpbr, "l3muo_eta", l3.l3muo_eta[0]); SetLeafFAddress(tmpbr, "l3muo_phi", l3.l3muo_phi[0]); SetLeafIAddress(tmpbr, "l3muo_octant", l3.l3muo_octant[0]); SetLeafIAddress(tmpbr, "l3muo_region", l3.l3muo_region[0]); SetLeafIAddress(tmpbr, "l3muo_qual", l3.l3muo_qual[0]); SetLeafFAddress(tmpbr, "l3muo_mtcetrack", l3.l3muo_mtcetrack[0]); SetLeafFAddress(tmpbr, "l3muo_mtchfrac", l3.l3muo_mtchfrac[0]); // l3 btag SetLeafFAddress(tmpbr, "l3btag", l3.l3btag); SetLeafFAddress(tmpbr, "l3pvx", l3.l3pvx); SetLeafFAddress(tmpbr, "l3pvy", l3.l3pvy); SetLeafFAddress(tmpbr, "l3pvz", l3.l3pvz); } else { cout << "Warning: no L2 branch" << endl; } tmpbr = _ttree->GetBranch("Track"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "ntrk", tracks.ntracks); SetLeafFAddress(tmpbr, "trkpt", tracks.pt[0]); SetLeafFAddress(tmpbr, "trkphi", tracks.phi[0]); SetLeafFAddress(tmpbr, "trketa", tracks.eta[0]); SetLeafFAddress(tmpbr, "trkr0", tracks.r0[0]); SetLeafFAddress(tmpbr, "trkz0", tracks.z0[0]); SetLeafFAddress(tmpbr, "trkdca0", tracks.dca0[0]); SetLeafFAddress(tmpbr, "trkdca1", tracks.dca1[0]); SetLeafFAddress(tmpbr, "trkdca0err", tracks.dca0err[0]); SetLeafFAddress(tmpbr, "trkdca1err", tracks.dca1err[0]); SetLeafFAddress(tmpbr, "trkchi2", tracks.chi2[0]); SetLeafIAddress(tmpbr, "hmaskw1", tracks.hmaskw1[0]); SetLeafIAddress(tmpbr, "hmaskw2", tracks.hmaskw2[0]); SetLeafIAddress(tmpbr, "hmaskw3", tracks.hmaskw3[0]); // track parameters and errors are doubles SetLeafFAddress(tmpbr, "rca", tracks.rca[0]); SetLeafFAddress(tmpbr, "zca", tracks.zca[0]); SetLeafFAddress(tmpbr, "phidir", tracks.phidir[0]); SetLeafFAddress(tmpbr, "tanl", tracks.tanl[0]); SetLeafFAddress(tmpbr, "qpt", tracks.qpt[0]); SetLeafFAddress(tmpbr, "drr", tracks.drr[0]); SetLeafFAddress(tmpbr, "dzz", tracks.dzz[0]); SetLeafFAddress(tmpbr, "dpp", tracks.dpp[0]); SetLeafFAddress(tmpbr, "dtt", tracks.dtt[0]); SetLeafFAddress(tmpbr, "dqq", tracks.dqq[0]); SetLeafFAddress(tmpbr, "drp", tracks.drp[0]); SetLeafFAddress(tmpbr, "drq", tracks.drq[0]); SetLeafFAddress(tmpbr, "dzt", tracks.dzt[0]); SetLeafFAddress(tmpbr, "dpq", tracks.dpq[0]); SetLeafIAddress(tmpbr, "nsmt", tracks.smt[0]); SetLeafIAddress(tmpbr, "ncft", tracks.cft[0]); SetLeafIAddress(tmpbr, "idx", tracks.idx[0]); SetLeafIAddress(tmpbr, "vidx", tracks.vidx[0]); // SetLeafIAddress(tmpbr, "trkiso", tracks.iso[0]); // SetLeafFAddress(tmpbr, "trkisoe", tracks.isoe[0]); // SetLeafFAddress(tmpbr, "trkisoen", tracks.isoen[0]); // // energy flow and isolation // SetLeafFAddress(tmpbr, "e33", tracks.e33[0]); // SetLeafFAddress(tmpbr, "e33em", tracks.e33em[0]); // SetLeafFAddress(tmpbr, "e33ch", tracks.e33ch[0]); // SetLeafFAddress(tmpbr, "e55", tracks.e55[0]); // SetLeafFAddress(tmpbr, "e55em", tracks.e55em[0]); // SetLeafFAddress(tmpbr, "e55ch", tracks.e55ch[0]); // SetLeafIAddress(tmpbr, "mtc_map", tracks.mtc_map[0]); // SetLeafFAddress(tmpbr, "mtc_e", tracks.mtc_e[0]); // SetLeafFAddress(tmpbr, "mtc_em1", tracks.mtc_em1[0]); // SetLeafFAddress(tmpbr, "mtc_em2", tracks.mtc_em2[0]); // SetLeafFAddress(tmpbr, "mtc_em3", tracks.mtc_em3[0]); // SetLeafFAddress(tmpbr, "mtc_em4", tracks.mtc_em4[0]); // SetLeafFAddress(tmpbr, "mtc_fh1", tracks.mtc_fh1[0]); // SetLeafFAddress(tmpbr, "mtc_fh2", tracks.mtc_fh2[0]); // SetLeafFAddress(tmpbr, "mtc_fh3", tracks.mtc_fh3[0]); // SetLeafFAddress(tmpbr, "mtc_fh4", tracks.mtc_fh4[0]); // SetLeafFAddress(tmpbr, "mtc_ch1", tracks.mtc_ch1[0]); // SetLeafFAddress(tmpbr, "mtc_ch2", tracks.mtc_ch2[0]); // SetLeafFAddress(tmpbr, "mtc_ch3", tracks.mtc_ch3[0]); // SetLeafFAddress(tmpbr, "mtc_mgcc", tracks.mtc_mgcc[0]); // SetLeafFAddress(tmpbr, "mtc_mgec", tracks.mtc_mgec[0]); // SetLeafFAddress(tmpbr, "mtc_icd", tracks.mtc_icd[0]); } else { cout << "Warning: no Track branch" << endl; } tmpbr = _ttree->GetBranch("MET"); if (tmpbr != 0) { SetLeafFAddress(tmpbr, "MET", metstruct.MET); SetLeafFAddress(tmpbr, "SET", metstruct.SET); SetLeafFAddress(tmpbr, "MEphi", metstruct.phi); SetLeafFAddress(tmpbr, "METx", metstruct.METx); SetLeafFAddress(tmpbr, "METy", metstruct.METy); SetLeafFAddress(tmpbr, "corrMET", metstruct.corrMET); SetLeafFAddress(tmpbr, "corrMETx", metstruct.corrMETx); SetLeafFAddress(tmpbr, "corrMETy", metstruct.corrMETy); SetLeafFAddress(tmpbr, "corrMEphi", metstruct.corrphi); SetLeafFAddress(tmpbr, "calMET", metstruct.calMET); SetLeafFAddress(tmpbr, "calMETx", metstruct.calMETx); SetLeafFAddress(tmpbr, "calMETy", metstruct.calMETy); SetLeafFAddress(tmpbr, "eleMETx", metstruct.eleMETx); SetLeafFAddress(tmpbr, "eleMETy", metstruct.eleMETy); SetLeafFAddress(tmpbr, "muoMETx", metstruct.muoMETx); SetLeafFAddress(tmpbr, "muoMETy", metstruct.muoMETy); SetLeafFAddress(tmpbr, "muoMET", metstruct.muoMET); SetLeafFAddress(tmpbr, "muophi", metstruct.muophi); } else { cout << "Warning: no MET branch" << endl; } tmpbr = _ttree->GetBranch("MCinfo"); if (tmpbr != 0) { SetLeafFAddress(tmpbr, "mcweight", mcinfo.weight); SetLeafFAddress(tmpbr, "mccross", mcinfo.cross); SetLeafFAddress(tmpbr, "q2", mcinfo.q2); SetLeafFAddress(tmpbr, "shat", mcinfo.shat); SetLeafFAddress(tmpbr, "that", mcinfo.that); SetLeafFAddress(tmpbr, "uhat", mcinfo.uhat); } else { cout << "Warning: no MCinfo branch" << endl; } tmpbr = _ttree->GetBranch("MCparticle"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "nmcp", mcptl.nptl); SetLeafFAddress(tmpbr, "mcpx", mcptl.px[0]); SetLeafFAddress(tmpbr, "mcpy", mcptl.py[0]); SetLeafFAddress(tmpbr, "mcpz", mcptl.pz[0]); SetLeafFAddress(tmpbr, "mcE", mcptl.E[0]); SetLeafIAddress(tmpbr, "vidx", mcptl.pvidx[0]); SetLeafIAddress(tmpbr, "pdgid", mcptl.pdgid[0]); SetLeafIAddress(tmpbr, "pidx", mcptl.pidx[0]); SetLeafIAddress(tmpbr, "parent", mcptl.parent[0]); SetLeafIAddress(tmpbr, "mcstatus", mcptl.status[0]); } else { cout << "Warning: no MCparticle branch" << endl; } tmpbr = _ttree->GetBranch("MCvtx"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "nmcv", mcvtx.nv); SetLeafFAddress(tmpbr, "mcvx", mcvtx.vx[0]); SetLeafFAddress(tmpbr, "mcvy", mcvtx.vy[0]); SetLeafFAddress(tmpbr, "mcvz", mcvtx.vz[0]); SetLeafFAddress(tmpbr, "mcvct", mcvtx.vct[0]); SetLeafIAddress(tmpbr, "mcvidx", mcvtx.vidx[0]); } else { cout << "Warning: no MCvtx branch" << endl; } tmpbr = _ttree->GetBranch("EM"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "nem", ems.nem); SetLeafFAddress(tmpbr, "emE", ems.E[0]); SetLeafFAddress(tmpbr, "empt", ems.pt[0]); SetLeafFAddress(tmpbr, "empx", ems.px[0]); SetLeafFAddress(tmpbr, "empy", ems.py[0]); SetLeafFAddress(tmpbr, "empz", ems.pz[0]); SetLeafFAddress(tmpbr, "emeta", ems.eta[0]); SetLeafFAddress(tmpbr, "emphi", ems.phi[0]); SetLeafFAddress(tmpbr, "ememf", ems.emf[0]); SetLeafFAddress(tmpbr, "emiso", ems.iso[0]); SetLeafFAddress(tmpbr, "emchi7", ems.chi7[0]); SetLeafFAddress(tmpbr, "emchi8", ems.chi8[0]); SetLeafFAddress(tmpbr, "emcharge", ems.q[0]); SetLeafFAddress(tmpbr, "emtmass", ems.tmass[0]); SetLeafIAddress(tmpbr, "emtrkidx", ems.trkidx[0]); SetLeafIAddress(tmpbr, "emtrkflag", ems.trkflag[0]); SetLeafIAddress(tmpbr, "emfiduflag", ems.fiduflag[0]); SetLeafIAddress(tmpbr, "emphifiduflag", ems.phifiduflag[0]); SetLeafIAddress(tmpbr, "emetafiduflag", ems.etafiduflag[0]); SetLeafFAddress(tmpbr, "emdeteta", ems.deteta[0]); SetLeafFAddress(tmpbr, "emdetphi", ems.detphi[0]); SetLeafFAddress(tmpbr, "emchi2", ems.chi2prob[0]); SetLeafFAddress(tmpbr, "emPSfloorY", ems.PSfloorY[0]); SetLeafFAddress(tmpbr, "emPSfloorZ", ems.PSfloorZ[0]); SetLeafFAddress(tmpbr, "emPSfloorE", ems.PSfloorE[0]); SetLeafFAddress(tmpbr, "emPSflrS1", ems.PSflrS1[0]); SetLeafFAddress(tmpbr, "emPSflrS2", ems.PSflrS2[0]); SetLeafFAddress(tmpbr, "emEM1floorY", ems.EM1floorY[0]); SetLeafFAddress(tmpbr, "emEM1floorZ", ems.EM1floorZ[0]); SetLeafFAddress(tmpbr, "emEM1floorE", ems.EM1floorE[0]); SetLeafFAddress(tmpbr, "emEM1flrS1", ems.EM1flrS1[0]); SetLeafFAddress(tmpbr, "emEM1flrS2", ems.EM1flrS2[0]); SetLeafFAddress(tmpbr, "emEM2floorY", ems.EM2floorY[0]); SetLeafFAddress(tmpbr, "emEM2floorZ", ems.EM2floorZ[0]); SetLeafFAddress(tmpbr, "emEM2floorE", ems.EM2floorE[0]); SetLeafFAddress(tmpbr, "emEM2flrS1", ems.EM2flrS1[0]); SetLeafFAddress(tmpbr, "emEM2flrS2", ems.EM2flrS2[0]); SetLeafFAddress(tmpbr, "emEM3floorY", ems.EM3floorY[0]); SetLeafFAddress(tmpbr, "emEM3floorZ", ems.EM3floorZ[0]); SetLeafFAddress(tmpbr, "emEM3floorE", ems.EM3floorE[0]); SetLeafFAddress(tmpbr, "emEM3flrS1", ems.EM3flrS1[0]); SetLeafFAddress(tmpbr, "emEM3flrS2", ems.EM3flrS2[0]); SetLeafFAddress(tmpbr, "emEM4floorY", ems.EM4floorY[0]); SetLeafFAddress(tmpbr, "emEM4floorZ", ems.EM4floorZ[0]); SetLeafFAddress(tmpbr, "emEM4floorE", ems.EM4floorE[0]); SetLeafFAddress(tmpbr, "emEM4flrS1", ems.EM4flrS1[0]); SetLeafFAddress(tmpbr, "emEM4flrS2", ems.EM4flrS2[0]); SetLeafFAddress(tmpbr, "emFHfloorY", ems.FHfloorY[0]); SetLeafFAddress(tmpbr, "emFHfloorZ", ems.FHfloorZ[0]); SetLeafFAddress(tmpbr, "emFHfloorE", ems.FHfloorE[0]); SetLeafFAddress(tmpbr, "emFHflrS1", ems.FHflrS1[0]); SetLeafFAddress(tmpbr, "emFHflrS2", ems.FHflrS2[0]); SetLeafIAddress(tmpbr, "emgoodele", ems.goodele[0]); SetLeafFAddress(tmpbr, "emllhood", ems.llhood[0]); SetLeafFAddress(tmpbr, "emcpsllhood", ems.cpsllhood[0]); } else { cout << "Warning: no EM branch" << endl; } tmpbr = _ttree->GetBranch("MU"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "nmu", mus.nmu); SetLeafFAddress(tmpbr, "muE", mus.E[0]); SetLeafFAddress(tmpbr, "mupt", mus.pt[0]); SetLeafFAddress(tmpbr, "mueta", mus.eta[0]); SetLeafFAddress(tmpbr, "muphi", mus.phi[0]); SetLeafIAddress(tmpbr, "munseg", mus.nseg[0]); SetLeafIAddress(tmpbr, "muawhit", mus.awhit[0]); SetLeafIAddress(tmpbr, "mubcwhit", mus.bcwhit[0]); SetLeafIAddress(tmpbr, "muashit", mus.ashit[0]); SetLeafIAddress(tmpbr, "mubcshit", mus.bcshit[0]); SetLeafFAddress(tmpbr, "sctimea", mus.sctimeA[0]); SetLeafFAddress(tmpbr, "sctimeb", mus.sctimeB[0]); SetLeafFAddress(tmpbr, "sctimec", mus.sctimeC[0]); SetLeafFAddress(tmpbr, "muchi", mus.chi[0]); SetLeafFAddress(tmpbr, "mulocchi", mus.locchi[0]); SetLeafFAddress(tmpbr, "mulocpt", mus.locpt[0]); SetLeafFAddress(tmpbr, "mucharge", mus.q[0]); SetLeafFAddress(tmpbr, "mutmass", mus.tmass[0]); SetLeafIAddress(tmpbr, "mutrkidx", mus.trkidx[0]); //SetLeafIAddress(tmpbr, "muntrkmatch", mus.ntrkmatch[0]); SetLeafIAddress(tmpbr, "muqual", mus.qual[0]); SetLeafFAddress(tmpbr, "e33", mus.e33[0]); SetLeafFAddress(tmpbr, "e55", mus.e55[0]); SetLeafFAddress(tmpbr, "econe1", mus.econe1[0]); SetLeafFAddress(tmpbr, "econe15", mus.econe15[0]); SetLeafFAddress(tmpbr, "econe2", mus.econe2[0]); SetLeafFAddress(tmpbr, "econe4", mus.econe4[0]); SetLeafFAddress(tmpbr, "econe6", mus.econe6[0]); SetLeafIAddress(tmpbr, "ntrk5", mus.ntrk5[0]); SetLeafFAddress(tmpbr, "ettrk5", mus.ettrk5[0]); SetLeafFAddress(tmpbr, "ethalo", mus.ethalo[0]); } else { cout << "Warning: no MU branch" << endl; } tmpbr = _ttree->GetBranch("Jet1"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "njets1", jets1.njets); SetLeafFAddress(tmpbr, "jet1E", jets1.E[0]); SetLeafFAddress(tmpbr, "jet1pt", jets1.pt[0]); SetLeafFAddress(tmpbr, "jet1px", jets1.px[0]); SetLeafFAddress(tmpbr, "jet1py", jets1.py[0]); SetLeafFAddress(tmpbr, "jet1pz", jets1.pz[0]); SetLeafFAddress(tmpbr, "jet1corr", jets1.corr[0]); SetLeafFAddress(tmpbr, "jet1correrr", jets1.correrr[0]); SetLeafFAddress(tmpbr, "jet1eta", jets1.eta[0]); SetLeafFAddress(tmpbr, "jet1phi", jets1.phi[0]); SetLeafFAddress(tmpbr, "jet1deta", jets1.deta[0]); SetLeafFAddress(tmpbr, "jet1dphi", jets1.dphi[0]); SetLeafFAddress(tmpbr, "jet1emf", jets1.emf[0]); SetLeafFAddress(tmpbr, "jet1chf", jets1.chf[0]); SetLeafFAddress(tmpbr, "jet1hotf", jets1.hotf[0]); SetLeafFAddress(tmpbr, "jet1etawidth", jets1.etawidth[0]); SetLeafFAddress(tmpbr, "jet1phiwidth", jets1.phiwidth[0]); SetLeafIAddress(tmpbr, "jet1n90", jets1.n90[0]); SetLeafIAddress(tmpbr, "jet1nitm", jets1.nitm[0]); SetLeafFAddress(tmpbr, "jet1EM1F", jets1.EM1F[0]); SetLeafFAddress(tmpbr, "jet1EM2F", jets1.EM2F[0]); SetLeafFAddress(tmpbr, "jet1EM3F", jets1.EM3F[0]); SetLeafFAddress(tmpbr, "jet1FH1F", jets1.FH1F[0]); SetLeafFAddress(tmpbr, "jet1FH2F", jets1.FH2F[0]); SetLeafFAddress(tmpbr, "jet1FH3F", jets1.FH3F[0]); SetLeafFAddress(tmpbr, "jet1METcorr", jets1.METcorr[0]); SetLeafFAddress(tmpbr, "jet1mcMETcorr", jets1.mcMETcorr[0]); SetLeafFAddress(tmpbr, "jet1ScalarET", jets1.ScalarET[0]); SetLeafIAddress(tmpbr, "jet1goodjet", jets1.goodjet[0]); SetLeafIAddress(tmpbr, "jet1elenot", jets1.elenot[0]); SetLeafIAddress(tmpbr, "jet1L1Confirm", jets1.L1Confirm[0]); SetLeafFAddress(tmpbr, "jet1l1set", jets1.l1set[0]); SetLeafFAddress(tmpbr, "jet1l1ratio", jets1.l1ratio[0]); SetLeafIAddress(tmpbr, "jet1taggable", jets1.taggable[0]); SetLeafIAddress(tmpbr, "jet1svx", jets1.svx[0]); SetLeafIAddress(tmpbr, "jet1jliptag", jets1.jlip_tag[0]); SetLeafFAddress(tmpbr, "jet1jlipprob", jets1.jlip_prob[0]); SetLeafIAddress(tmpbr, "jet1svtag", jets1.sv_tag[0]); SetLeafIAddress(tmpbr, "jet1mutag", jets1.mu_tag[0]); } else { cout << "Warning: no Jet1 branch" << endl; } tmpbr = _ttree->GetBranch("Jet2"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "njets2", jets2.njets); SetLeafFAddress(tmpbr, "jet2E", jets2.E[0]); SetLeafFAddress(tmpbr, "jet2pt", jets2.pt[0]); SetLeafFAddress(tmpbr, "jet2px", jets2.px[0]); SetLeafFAddress(tmpbr, "jet2py", jets2.py[0]); SetLeafFAddress(tmpbr, "jet2pz", jets2.pz[0]); SetLeafFAddress(tmpbr, "jet2corr", jets2.corr[0]); SetLeafFAddress(tmpbr, "jet2correrr", jets2.correrr[0]); SetLeafFAddress(tmpbr, "jet2eta", jets2.eta[0]); SetLeafFAddress(tmpbr, "jet2phi", jets2.phi[0]); SetLeafFAddress(tmpbr, "jet2deta", jets2.deta[0]); SetLeafFAddress(tmpbr, "jet2dphi", jets2.dphi[0]); SetLeafFAddress(tmpbr, "jet2emf", jets2.emf[0]); SetLeafFAddress(tmpbr, "jet2chf", jets2.chf[0]); SetLeafFAddress(tmpbr, "jet2hotf", jets2.hotf[0]); SetLeafFAddress(tmpbr, "jet2etawidth", jets2.etawidth[0]); SetLeafFAddress(tmpbr, "jet2phiwidth", jets2.phiwidth[0]); SetLeafIAddress(tmpbr, "jet2n90", jets2.n90[0]); SetLeafIAddress(tmpbr, "jet2nitm", jets2.nitm[0]); SetLeafFAddress(tmpbr, "jet2EM1F", jets2.EM1F[0]); SetLeafFAddress(tmpbr, "jet2EM2F", jets2.EM2F[0]); SetLeafFAddress(tmpbr, "jet2EM3F", jets2.EM3F[0]); SetLeafFAddress(tmpbr, "jet2FH1F", jets2.FH1F[0]); SetLeafFAddress(tmpbr, "jet2FH2F", jets2.FH2F[0]); SetLeafFAddress(tmpbr, "jet2FH3F", jets2.FH3F[0]); SetLeafFAddress(tmpbr, "jet2METcorr", jets2.METcorr[0]); SetLeafFAddress(tmpbr, "jet2mcMETcorr", jets2.mcMETcorr[0]); SetLeafFAddress(tmpbr, "jet2ScalarET", jets2.ScalarET[0]); SetLeafIAddress(tmpbr, "jet2goodjet", jets2.goodjet[0]); SetLeafIAddress(tmpbr, "jet2elenot", jets2.elenot[0]); SetLeafIAddress(tmpbr, "jet2L1Confirm", jets2.L1Confirm[0]); SetLeafFAddress(tmpbr, "jet2l1set", jets2.l1set[0]); SetLeafFAddress(tmpbr, "jet2l1ratio", jets2.l1ratio[0]); SetLeafIAddress(tmpbr, "jet2taggable", jets2.taggable[0]); SetLeafIAddress(tmpbr, "jet2svx", jets2.svx[0]); SetLeafIAddress(tmpbr, "jet2jliptag", jets2.jlip_tag[0]); SetLeafFAddress(tmpbr, "jet2jlipprob", jets2.jlip_prob[0]); SetLeafIAddress(tmpbr, "jet2svtag", jets2.sv_tag[0]); SetLeafIAddress(tmpbr, "jet2mutag", jets2.mu_tag[0]); } else { cout << "Warning: no Jet2 branch" << endl; } tmpbr = _ttree->GetBranch("Jet3"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "njets3", jets3.njets); SetLeafFAddress(tmpbr, "jet3E", jets3.E[0]); SetLeafFAddress(tmpbr, "jet3pt", jets3.pt[0]); SetLeafFAddress(tmpbr, "jet3px", jets3.px[0]); SetLeafFAddress(tmpbr, "jet3py", jets3.py[0]); SetLeafFAddress(tmpbr, "jet3pz", jets3.pz[0]); SetLeafFAddress(tmpbr, "jet3corr", jets3.corr[0]); SetLeafFAddress(tmpbr, "jet3correrr", jets3.correrr[0]); SetLeafFAddress(tmpbr, "jet3eta", jets3.eta[0]); SetLeafFAddress(tmpbr, "jet3phi", jets3.phi[0]); SetLeafFAddress(tmpbr, "jet3deta", jets3.deta[0]); SetLeafFAddress(tmpbr, "jet3dphi", jets3.dphi[0]); SetLeafFAddress(tmpbr, "jet3emf", jets3.emf[0]); SetLeafFAddress(tmpbr, "jet3chf", jets3.chf[0]); SetLeafFAddress(tmpbr, "jet3hotf", jets3.hotf[0]); SetLeafFAddress(tmpbr, "jet3etawidth", jets3.etawidth[0]); SetLeafFAddress(tmpbr, "jet3phiwidth", jets3.phiwidth[0]); SetLeafIAddress(tmpbr, "jet3n90", jets3.n90[0]); SetLeafIAddress(tmpbr, "jet3nitm", jets3.nitm[0]); SetLeafFAddress(tmpbr, "jet3EM1F", jets3.EM1F[0]); SetLeafFAddress(tmpbr, "jet3EM2F", jets3.EM2F[0]); SetLeafFAddress(tmpbr, "jet3EM3F", jets3.EM3F[0]); SetLeafFAddress(tmpbr, "jet3FH1F", jets3.FH1F[0]); SetLeafFAddress(tmpbr, "jet3FH2F", jets3.FH2F[0]); SetLeafFAddress(tmpbr, "jet3FH3F", jets3.FH3F[0]); SetLeafFAddress(tmpbr, "jet3METcorr", jets3.METcorr[0]); SetLeafFAddress(tmpbr, "jet3mcMETcorr", jets3.mcMETcorr[0]); SetLeafFAddress(tmpbr, "jet3ScalarET", jets3.ScalarET[0]); SetLeafIAddress(tmpbr, "jet3goodjet", jets3.goodjet[0]); SetLeafIAddress(tmpbr, "jet3elenot", jets3.elenot[0]); SetLeafIAddress(tmpbr, "jet3L1Confirm", jets3.L1Confirm[0]); SetLeafFAddress(tmpbr, "jet3l1set", jets3.l1set[0]); SetLeafFAddress(tmpbr, "jet3l1ratio", jets3.l1ratio[0]); SetLeafIAddress(tmpbr, "jet3taggable", jets3.taggable[0]); SetLeafIAddress(tmpbr, "jet3svx", jets3.svx[0]); SetLeafIAddress(tmpbr, "jet3jliptag", jets3.jlip_tag[0]); SetLeafFAddress(tmpbr, "jet3jlipprob", jets3.jlip_prob[0]); SetLeafIAddress(tmpbr, "jet3svtag", jets3.sv_tag[0]); SetLeafIAddress(tmpbr, "jet3mutag", jets3.mu_tag[0]); } else { cout << "Warning: no Jet3 branch" << endl; } // Primary Vertex tmpbr = _ttree->GetBranch("Vtx"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "npv", pvstruct.nv); SetLeafIAddress(tmpbr, "pvntrk", pvstruct.nvtrk[0]); SetLeafFAddress(tmpbr, "pvx", pvstruct.x[0]); SetLeafFAddress(tmpbr, "pvy", pvstruct.y[0]); SetLeafFAddress(tmpbr, "pvz", pvstruct.z[0]); SetLeafFAddress(tmpbr, "pvcovxx", pvstruct.covxx[0]); SetLeafFAddress(tmpbr, "pvcovyy", pvstruct.covyy[0]); SetLeafFAddress(tmpbr, "pvcovzz", pvstruct.covzz[0]); SetLeafFAddress(tmpbr, "pvcovxy", pvstruct.covxy[0]); SetLeafFAddress(tmpbr, "pvcovxz", pvstruct.covxz[0]); SetLeafFAddress(tmpbr, "pvcovyz", pvstruct.covyz[0]); SetLeafIAddress(tmpbr, "vtype", pvstruct.vtype[0]); } else { cout << "Warning: no Vtx branch" << endl; } // Secondary Vertex tmpbr = _ttree->GetBranch("Svtx"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "nsv", svstruct.nv); SetLeafIAddress(tmpbr, "svntrk", svstruct.nvtrk[0]); SetLeafFAddress(tmpbr, "svx", svstruct.x[0]); SetLeafFAddress(tmpbr, "svy", svstruct.y[0]); SetLeafFAddress(tmpbr, "svz", svstruct.z[0]); SetLeafFAddress(tmpbr, "svpx", svstruct.px[0]); SetLeafFAddress(tmpbr, "svpy", svstruct.py[0]); SetLeafFAddress(tmpbr, "svpz", svstruct.pz[0]); SetLeafFAddress(tmpbr, "svcovxx", svstruct.covxx[0]); SetLeafFAddress(tmpbr, "svcovyy", svstruct.covyy[0]); SetLeafFAddress(tmpbr, "svcovzz", svstruct.covzz[0]); SetLeafFAddress(tmpbr, "svcovxy", svstruct.covxy[0]); SetLeafFAddress(tmpbr, "svcovxz", svstruct.covxz[0]); SetLeafFAddress(tmpbr, "svcovyz", svstruct.covyz[0]); SetLeafFAddress(tmpbr, "svcovpxx", svstruct.covpxx[0]); SetLeafFAddress(tmpbr, "svcovpyy", svstruct.covpyy[0]); SetLeafFAddress(tmpbr, "svcovpzz", svstruct.covpzz[0]); SetLeafFAddress(tmpbr, "svcovpxy", svstruct.covpxy[0]); SetLeafFAddress(tmpbr, "svcovpxz", svstruct.covpxz[0]); SetLeafFAddress(tmpbr, "svcovpyz", svstruct.covpyz[0]); SetLeafFAddress(tmpbr, "svmass", svstruct.mass[0]); SetLeafFAddress(tmpbr, "svdlsig2d", svstruct.dlsig2d[0]); SetLeafFAddress(tmpbr, "svdlsig3d", svstruct.dlsig3d[0]); SetLeafFAddress(tmpbr, "svopening", svstruct.opening[0]); SetLeafIAddress(tmpbr, "svtype", svstruct.vtype[0]); } else { cout << "Warning: no Svtx branch" << endl; } tmpbr = _ttree->GetBranch("Diem"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "ndiemcand", diemstruct.ndiemcand); SetLeafFAddress(tmpbr, "diemmass", diemstruct.diemmass[0]); SetLeafFAddress(tmpbr, "diemtrkmass", diemstruct.diemtrkmass[0]); SetLeafIAddress(tmpbr, "em1idx", diemstruct.em1idx[0]); SetLeafIAddress(tmpbr, "em2idx", diemstruct.em2idx[0]); } else { cout << "Warning: no Diem branch" << endl; } tmpbr = _ttree->GetBranch("Dimu"); if (tmpbr != 0) { SetLeafIAddress(tmpbr, "ndimucand", dimustruct.ndimucand); SetLeafFAddress(tmpbr, "dimumass", dimustruct.dimumass[0]); SetLeafIAddress(tmpbr, "mu1idx", dimustruct.mu1idx[0]); SetLeafIAddress(tmpbr, "mu2idx", dimustruct.mu2idx[0]); } else { cout << "Warning: no Dimu branch" << endl; } }