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.9 by peiffer, Mon Apr 16 15:42:09 2012 UTC vs.
Revision 1.10 by peiffer, Wed Apr 18 12:53:46 2012 UTC

# Line 53 | Line 53 | NtupleWriter::NtupleWriter(const edm::Pa
53    doPhotons = iConfig.getParameter<bool>("doPhotons");
54    doMET = iConfig.getParameter<bool>("doMET");
55    doGenInfo = iConfig.getParameter<bool>("doGenInfo");
56 +  doLumiInfo = iConfig.getParameter<bool>("doLumiInfo");
57    doPV = iConfig.getParameter<bool>("doPV");
58    doTopJets = iConfig.getParameter<bool>("doTopJets");
59    doTrigger = iConfig.getParameter<bool>("doTrigger");
# Line 64 | Line 65 | NtupleWriter::NtupleWriter(const edm::Pa
65    tr->Branch("luminosityBlock",&luminosityBlock);
66    tr->Branch("isRealData",&isRealData);
67    tr->Branch("HBHENoiseFilterResult",&HBHENoiseFilterResult);
68 +  if(doLumiInfo){
69 +    tr->Branch("intgRecLumi",&intgRecLumi);
70 +    tr->Branch("intgDelLumi",&intgDelLumi);
71 +  }
72    if(doPV){
73      tr->Branch("beamspot_x0",&beamspot_x0);
74      tr->Branch("beamspot_y0",&beamspot_y0);
# Line 210 | Line 215 | NtupleWriter::analyze(const edm::Event&
215  
216     // ------------- electrons -------------  
217     if(doElectrons){
218 +
219 +     edm::Handle<reco::ConversionCollection> hConversions;
220 +     iEvent.getByLabel("allConversions", hConversions);
221 +
222 +     edm::Handle<reco::BeamSpot> beamSpot;
223 +     iEvent.getByLabel(edm::InputTag("offlineBeamSpot"), beamSpot);
224 +     const reco::BeamSpot & bsp = *beamSpot;
225 +
226       for(size_t j=0; j< electron_sources.size(); ++j){
227         eles[j].clear();
228         edm::Handle< std::vector<pat::Electron> > ele_handle;
# Line 243 | Line 256 | NtupleWriter::analyze(const edm::Event&
256           ele.gsfTrack_vx= pat_ele.gsfTrack()->vx();
257           ele.gsfTrack_vy= pat_ele.gsfTrack()->vy();
258           ele.gsfTrack_vz= pat_ele.gsfTrack()->vz();
259 +         ele.passconversionveto = !ConversionTools::hasMatchedConversion(pat_ele,hConversions,bsp.position());
260           eles[j].push_back(ele);
261         }
262       }
# Line 369 | Line 383 | NtupleWriter::analyze(const edm::Event&
383           tau.againstMuonLoose = pat_tau.tauID("againstMuonLoose")>0.5;
384           tau.againstMuonMedium = pat_tau.tauID("againstMuonMedium")>0.5;
385           tau.againstMuonTight = pat_tau.tauID("againstMuonTight")>0.5;
386 <        
386 >
387 >         reco::PFCandidateRef leadPFCand = pat_tau.leadPFCand();
388 >         if(!leadPFCand.isNull()){
389 >           tau.leadPFCand_px = leadPFCand->px();
390 >           tau.leadPFCand_py = leadPFCand->py();
391 >           tau.leadPFCand_pz = leadPFCand->pz();
392 >         }
393 >         else{
394 >           tau.leadPFCand_px = 0;
395 >           tau.leadPFCand_py = 0;
396 >           tau.leadPFCand_pz = 0;
397 >         }
398           taus[j].push_back(tau);
399         }
400       }
# Line 589 | Line 614 | NtupleWriter::analyze(const edm::Event&
614           std::pair<int, int> pre=hlt_cfg.prescaleValues(iEvent, iSetup, triggerNames_all[i]);
615           L1_prescale.push_back(pre.first);
616           HLT_prescale.push_back(pre.second);
617 +         //std::cout <<  triggerNames_all[i] << " " << pre.first << " " <<pre.second << "   " << hlt_cfg.prescaleValue(iEvent, iSetup, triggerNames_all[i]) << std::endl;
618         }
619       }
620       //    for(std::map<std::string, bool>::const_iterator iter = triggerResults.begin(); iter!=triggerResults.end(); iter++){
# Line 690 | Line 716 | NtupleWriter::analyze(const edm::Event&
716  
717     }
718  
693
719     tr->Fill();
720 <
720 >   if(doLumiInfo)
721 >     previouslumiblockwasfilled=true;
722   }
723  
724  
# Line 700 | Line 726 | NtupleWriter::analyze(const edm::Event&
726   void
727   NtupleWriter::beginJob()
728   {
729 +  if(doLumiInfo){
730 +    totalRecLumi=0;
731 +    totalDelLumi=0;
732 +    previouslumiblockwasfilled=false;
733 +  }
734   }
735  
736   // ------------ method called once each job just after ending the event loop  ------------
# Line 733 | Line 764 | NtupleWriter::beginRun(edm::Run const& i
764   void
765   NtupleWriter::endRun(edm::Run const&, edm::EventSetup const&)
766   {
767 +  if(doLumiInfo)
768 +    std::cout << "total integ. luminosity: " << totalDelLumi <<"(del) " << totalRecLumi << "(rec)" << std::endl;
769   }
770  
771   // ------------ method called when starting to processes a luminosity block  ------------
772   void
773 < NtupleWriter::beginLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&)
773 > NtupleWriter::beginLuminosityBlock(edm::LuminosityBlock const& lumi, edm::EventSetup const&)
774   {
775 +  if(doLumiInfo){
776 +    edm::Handle<LumiSummary> l;
777 +    lumi.getByLabel("lumiProducer", l);
778 +    
779 +    //add lumi of lumi blocks without any event to next lumiblock
780 +    if(previouslumiblockwasfilled){
781 +      intgRecLumi=0;
782 +      intgDelLumi=0;
783 +    }
784 +    previouslumiblockwasfilled=false;
785 +    
786 +    if (l.isValid()){;
787 +      intgRecLumi+=l->intgRecLumi()*6.37;
788 +      intgDelLumi+=l->intgDelLumi()*6.37;
789 +      totalRecLumi+=l->intgRecLumi()*6.37;
790 +      totalDelLumi+=l->intgDelLumi()*6.37;
791 +    }
792 +    //std::cout << "this lb: " <<l->intgRecLumi()*6.37 <<"   " << l->intgDelLumi()*6.37<<std::endl;
793 +    //std::cout << "summed:  "<< intgRecLumi << "   " << intgDelLumi << std::endl;
794 +  }
795   }
796  
797   // ------------ method called when ending the processing of a luminosity block  ------------

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines