File indexing completed on 2024-04-06 12:25:36
0001 {
0002
0003
0004
0005
0006
0007
0008 TFile histofile("jet_hists.root","RECREATE");
0009 TH1F* h_pt = new TH1F("pt","Leading Jets pT (GeV)",100,0.0,1000.0);
0010 TH1F* h_eta = new TH1F("eta","Leading Jets eta",100,-5.0,5.0);
0011 TH1F* h_phi = new TH1F("phi","Leading Jets phi",72,-3.141527,3.141527);
0012 TH1F* h_m2j = new TH1F("m2j","Dijet Mass",100,0.0,1000.0);
0013
0014
0015 TTree *tree = (TTree*)file.Get("Events");
0016 std::vector<reco::CaloJet> CaloJetCollection;
0017 TBranch *branch = tree->GetBranch(tree->GetAlias("MC5CaloJet"));
0018
0019 branch->SetAddress(&CaloJetCollection);
0020
0021
0022 for ( unsigned int index = 0; index < tree->GetEntries(); ++index ) {
0023 double px[2], py[2], pz[2], E[2];
0024 std::cout << "Entry index: " << index << std::endl;
0025 branch->GetEntry(index);
0026 int numJets = CaloJetCollection.size();
0027 std::cout << "Num Jets: " << numJets << std::endl;
0028
0029
0030 for ( unsigned int jetIndex = 0; jetIndex < CaloJetCollection.size(); ++jetIndex ) {
0031 std::cout << "jet" << jetIndex ;
0032 reco::CaloJet* Jet = (reco::CaloJet*)CaloJetCollection[jetIndex];
0033
0034
0035 double pt = Jet->pt(); std::cout << ": pt=" << pt;
0036 double eta = Jet->eta(); std::cout << ", eta=" << eta;
0037 double phi = Jet->phi(); std::cout << ", phi=" << phi << std::endl;
0038
0039 if(jetIndex<2)
0040 {
0041
0042
0043 h_pt->Fill(pt);
0044 h_eta->Fill(eta);
0045 h_phi->Fill(phi);
0046
0047
0048 px[jetIndex] = Jet->px();
0049 py[jetIndex] = Jet->py();
0050 pz[jetIndex] = Jet->pz();
0051 E[jetIndex] = Jet->energy();
0052 }
0053 }
0054
0055 if( numJets >= 2 ){
0056 double DijetMass = sqrt( pow(E[0]+E[1],2) - pow(px[0]+px[1],2)
0057 - pow(py[0]+py[1],2)
0058 - pow(pz[0]+pz[1],2) );
0059 std::cout << "Dijet Mass = " << DijetMass << std::endl;
0060 h_m2j->Fill(DijetMass);
0061
0062 }
0063 }
0064
0065 histofile.Write();
0066 histofile.Close();
0067 }