ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/UHHAnalysis/NtupleWriter/src/NtupleWriter.cc
(Generate patch)

Comparing UserCode/UHHAnalysis/NtupleWriter/src/NtupleWriter.cc (file contents):
Revision 1.13 by peiffer, Thu Apr 19 14:47:13 2012 UTC vs.
Revision 1.14 by peiffer, Mon Apr 23 14:26:23 2012 UTC

# Line 50 | Line 50 | NtupleWriter::NtupleWriter(const edm::Pa
50    doMuons = iConfig.getParameter<bool>("doMuons");
51    doTaus = iConfig.getParameter<bool>("doTaus");
52    doJets = iConfig.getParameter<bool>("doJets");
53 +  doGenTopJets = iConfig.getParameter<bool>("doGenTopJets");  
54    doPhotons = iConfig.getParameter<bool>("doPhotons");
55    doMET = iConfig.getParameter<bool>("doMET");
56    doGenInfo = iConfig.getParameter<bool>("doGenInfo");
# Line 111 | Line 112 | NtupleWriter::NtupleWriter(const edm::Pa
112        tr->Branch( topjet_sources[j].c_str(), "std::vector<TopJet>", &topjets[j]);
113      }
114    }
115 +  if(doGenTopJets){
116 +    gentopjet_sources = iConfig.getParameter<std::vector<std::string> >("gentopjet_sources");
117 +    gentopjet_ptmin = iConfig.getParameter<double> ("gentopjet_ptmin");
118 +    gentopjet_etamax = iConfig.getParameter<double> ("gentopjet_etamax");
119 +    for(size_t j=0; j< gentopjet_sources.size(); ++j){  
120 +      tr->Branch( gentopjet_sources[j].c_str(), "std::vector<TopJet>", &gentopjets[j]);
121 +    }
122 +  }
123    if(doPhotons){
124      photon_sources = iConfig.getParameter<std::vector<std::string> >("photon_sources");
125      for(size_t j=0; j< photon_sources.size(); ++j){  
# Line 266 | Line 275 | NtupleWriter::analyze(const edm::Event&
275           ele.fbrem=pat_ele.fbrem();
276           ele.EoverPIn=pat_ele.eSuperClusterOverP();
277           ele.EcalEnergy=pat_ele.ecalEnergy();
278 <         ele.mvaTrigV0=pat_ele.electronID("mvaTrigV0");
279 <         ele.mvaNonTrigV0=pat_ele.electronID("mvaNonTrigV0");
278 >         //ele.mvaTrigV0=pat_ele.electronID("mvaTrigV0");
279 >         //ele.mvaNonTrigV0=pat_ele.electronID("mvaNonTrigV0");
280  
281           eles[j].push_back(ele);
282         }
# Line 498 | Line 507 | NtupleWriter::analyze(const edm::Event&
507         iEvent.getByLabel(topjet_sources[j], pat_topjets);
508  
509         for (unsigned int i = 0; i < pat_topjets->size(); i++) {
510 +
511           const pat::Jet  pat_topjet =  * dynamic_cast<pat::Jet const *>(&pat_topjets->at(i));
512           if(pat_topjet.pt() < topjet_ptmin) continue;
513           if(fabs(pat_topjet.eta()) > topjet_etamax) continue;
# Line 558 | Line 568 | NtupleWriter::analyze(const edm::Event&
568       }
569     }
570  
571 +
572 +   // ------------- generator top jets -------------
573 +   if(doGenTopJets){
574 +     for(size_t j=0; j< gentopjet_sources.size(); ++j){
575 +      
576 +       gentopjets[j].clear();
577 +
578 +       edm::Handle<reco::BasicJetCollection> reco_gentopjets;
579 +       //edm::Handle<std::vector<reco::Jet> > reco_gentopjets;
580 +       iEvent.getByLabel(gentopjet_sources[j], reco_gentopjets);
581 +
582 +       for (unsigned int i = 0; i < reco_gentopjets->size(); i++) {
583 +        
584 +         const reco::BasicJet  reco_gentopjet =  reco_gentopjets->at(i);
585 +         if(reco_gentopjet.pt() < gentopjet_ptmin) continue;
586 +         if(fabs(reco_gentopjet.eta()) > gentopjet_etamax) continue;
587 +
588 +         TopJet gentopjet;
589 +         gentopjet.charge = reco_gentopjet.charge();
590 +         gentopjet.pt = reco_gentopjet.pt();
591 +         gentopjet.eta = reco_gentopjet.eta();
592 +         gentopjet.phi = reco_gentopjet.phi();
593 +         gentopjet.energy = reco_gentopjet.energy();
594 +         gentopjet.numberOfDaughters =reco_gentopjet.numberOfDaughters();
595 +
596 +         for (unsigned int k = 0; k < reco_gentopjet.numberOfDaughters(); k++) {
597 +           Particle subjet_v4;
598 +           subjet_v4.pt = reco_gentopjet.daughter(k)->p4().pt();
599 +           subjet_v4.eta = reco_gentopjet.daughter(k)->p4().eta();
600 +           subjet_v4.phi = reco_gentopjet.daughter(k)->p4().phi();
601 +           subjet_v4.energy = reco_gentopjet.daughter(k)->p4().E();
602 +           gentopjet.subjets.push_back(subjet_v4);
603 +         }
604 +         gentopjets[j].push_back(gentopjet);
605 +       }
606 +     }
607 +   }
608 +
609     // ------------- photons -------------
610     if(doPhotons){
611       for(size_t j=0; j< photon_sources.size(); ++j){
# Line 739 | Line 787 | NtupleWriter::analyze(const edm::Event&
787          
788           int nm=iter->numberOfMothers();
789           int nd=iter->numberOfDaughters();
790 +
791          
792           if (nm>0) genp.mother1 = iter->motherRef(0).key();
793 <         if (nm>1) genp.mother2 = iter->motherRef(nm-1).key();
793 >         if (nm>1) genp.mother2 = iter->motherRef(1).key();
794           if (nd>0) genp.daughter1 = iter->daughterRef(0).key();
795 <         if (nd>1) genp.daughter2 = iter->daughterRef(nd-1).key();
796 <        
795 >         if (nd>1) genp.daughter2 = iter->daughterRef(1).key();
796 >         //std::cout << genp.index <<"  pdgId = " << genp.pdgId << "  mo1 = " << genp.mother1 << "  mo2 = " << genp.mother2 <<"  da1 = " << genp.daughter1 << "  da2 = " << genp.daughter2 <<std::endl;
797           genps.push_back(genp);
798         }
799       }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines