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"); |
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); |
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; |
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 |
|
} |
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 |
|
} |
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++){ |
716 |
|
|
717 |
|
} |
718 |
|
|
693 |
– |
|
719 |
|
tr->Fill(); |
720 |
< |
|
720 |
> |
if(doLumiInfo) |
721 |
> |
previouslumiblockwasfilled=true; |
722 |
|
} |
723 |
|
|
724 |
|
|
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 ------------ |
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 ------------ |