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.5 by peiffer, Thu Apr 5 09:48:20 2012 UTC vs.
Revision 1.8 by peiffer, Wed Apr 11 15:37:04 2012 UTC

# Line 55 | Line 55 | NtupleWriter::NtupleWriter(const edm::Pa
55    doGenInfo = iConfig.getParameter<bool>("doGenInfo");
56    doPV = iConfig.getParameter<bool>("doPV");
57    doTopJets = iConfig.getParameter<bool>("doTopJets");
58 +  doTrigger = iConfig.getParameter<bool>("doTrigger");
59  
60    // initialization of tree variables
61  
# Line 63 | Line 64 | NtupleWriter::NtupleWriter(const edm::Pa
64    tr->Branch("luminosityBlock",&luminosityBlock);
65    tr->Branch("isRealData",&isRealData);
66    tr->Branch("HBHENoiseFilterResult",&HBHENoiseFilterResult);
67 <  tr->Branch("beamspot_x0",&beamspot_x0);
68 <  tr->Branch("beamspot_y0",&beamspot_y0);
69 <  tr->Branch("beamspot_z0",&beamspot_z0);
70 <
67 >  if(doPV){
68 >    tr->Branch("beamspot_x0",&beamspot_x0);
69 >    tr->Branch("beamspot_y0",&beamspot_y0);
70 >    tr->Branch("beamspot_z0",&beamspot_z0);
71 >  }
72    if(doElectrons){
73      electron_sources = iConfig.getParameter<std::vector<std::string> >("electron_sources");
74      for(size_t j=0; j< electron_sources.size(); ++j){  
# Line 125 | Line 127 | NtupleWriter::NtupleWriter(const edm::Pa
127      tr->Branch("genInfo","GenInfo",&genInfo);
128      tr->Branch("GenParticles","std::vector<GenParticle>", &genps);
129    }
130 <
131 <  trigger_prefixes = iConfig.getParameter<std::vector<std::string> >("trigger_prefixes");
132 <  //tr->Branch("triggerResults","std::map<std::string, bool>",&triggerResults);
133 <  tr->Branch("triggerNames", "std::vector<std::string>", &triggerNames);  
134 <  tr->Branch("triggerResults", "std::vector<bool>", &triggerResults);
135 <  tr->Branch("L1_prescale", "std::vector<int>", &L1_prescale);
136 <  tr->Branch("HLT_prescale", "std::vector<int>", &HLT_prescale);
137 <
130 >  if(doTrigger){
131 >    trigger_prefixes = iConfig.getParameter<std::vector<std::string> >("trigger_prefixes");
132 >    //tr->Branch("triggerResults","std::map<std::string, bool>",&triggerResults);
133 >    tr->Branch("triggerNames", "std::vector<std::string>", &triggerNames);  
134 >    tr->Branch("triggerResults", "std::vector<bool>", &triggerResults);
135 >    tr->Branch("L1_prescale", "std::vector<int>", &L1_prescale);
136 >    tr->Branch("HLT_prescale", "std::vector<int>", &HLT_prescale);
137 >  }
138    newrun = true;
139   }
140  
# Line 196 | Line 198 | NtupleWriter::analyze(const edm::Event&
198           pvs[j].push_back(pv);
199         }
200       }
201 +      
202 +     edm::Handle<reco::BeamSpot> beamSpot;
203 +     iEvent.getByLabel(edm::InputTag("offlineBeamSpot"), beamSpot);
204 +     const reco::BeamSpot & bsp = *beamSpot;
205 +    
206 +     beamspot_x0 = bsp.x0();
207 +     beamspot_y0 = bsp.y0();
208 +     beamspot_z0 = bsp.z0();
209     }
200  
201   edm::Handle<reco::BeamSpot> beamSpot;
202   iEvent.getByLabel(edm::InputTag("offlineBeamSpot"), beamSpot);
203   const reco::BeamSpot & bsp = *beamSpot;
204  
205   beamspot_x0 = bsp.x0();
206   beamspot_y0 = bsp.y0();
207   beamspot_z0 = bsp.z0();
210  
211     // ------------- electrons -------------  
212     if(doElectrons){
# Line 537 | Line 539 | NtupleWriter::analyze(const edm::Event&
539     }
540  
541     // ------------- trigger -------------
542 <  
543 <   edm::InputTag triggerEvent = edm::InputTag("hltTriggerSummaryAOD");
544 <   edm::Handle< trigger::TriggerEvent > dummy_TriggerEvent;
545 <   iEvent.getByLabel( edm::InputTag(triggerEvent.label(), triggerEvent.instance()), dummy_TriggerEvent );
546 <  
547 <   const edm::Provenance *meta = dummy_TriggerEvent.provenance();
548 <   std::string nameProcess = meta->processName();
549 <   edm::InputTag triggerResultTag = edm::InputTag("TriggerResults");
550 <   triggerResultTag = edm::InputTag( triggerResultTag.label(), triggerResultTag.instance(), nameProcess );
551 <  
552 <   edm::Handle<edm::TriggerResults> trigger;
553 <   iEvent.getByLabel(triggerResultTag, trigger);
554 <   const edm::TriggerResults& trig = *(trigger.product());
555 <  
556 <   triggerResults.clear();
557 <   triggerNames.clear();
558 <   L1_prescale.clear();
559 <   HLT_prescale.clear();
560 <
561 <   edm::Service<edm::service::TriggerNamesService> tns;
562 <   std::vector<std::string> triggerNames_all;
563 <   tns->getTrigPaths(trig,triggerNames_all);
564 <
565 <   if (trig.size()!=triggerNames_all.size()) std::cout <<"ERROR: length of names and paths not the same: "<<triggerNames_all.size()<<","<<trig.size()<< std::endl;
566 <   for(unsigned int i=0; i<trig.size(); ++i){
567 <     std::vector<std::string>::const_iterator it = trigger_prefixes.begin();
568 <     for(; it!=trigger_prefixes.end(); ++it){
569 <       if(triggerNames_all[i].substr(0, it->size()) == *it)break;
570 <     }
571 <     if(it==trigger_prefixes.end()) continue;
572 <
573 <     //triggerResults.insert(std::pair<std::string, bool>(triggerNames[i],trig.accept(i)));
574 <     triggerResults.push_back(trig.accept(i));
575 <     if(newrun) triggerNames.push_back(triggerNames_all[i]);
576 <     if(isRealData){
577 <       std::pair<int, int> pre=hlt_cfg.prescaleValues(iEvent, iSetup, triggerNames_all[i]);
578 <       L1_prescale.push_back(pre.first);
579 <       HLT_prescale.push_back(pre.second);
580 <     }
581 <   }
582 < //    for(std::map<std::string, bool>::const_iterator iter = triggerResults.begin(); iter!=triggerResults.end(); iter++){
583 < //      std::cout << (*iter).first << "   " << (*iter).second << std::endl;
584 < //    }
585 <   newrun=false;
542 >   if(doTrigger){
543 >     edm::InputTag triggerEvent = edm::InputTag("hltTriggerSummaryAOD");
544 >     edm::Handle< trigger::TriggerEvent > dummy_TriggerEvent;
545 >     iEvent.getByLabel( edm::InputTag(triggerEvent.label(), triggerEvent.instance()), dummy_TriggerEvent );
546 >    
547 >     const edm::Provenance *meta = dummy_TriggerEvent.provenance();
548 >     std::string nameProcess = meta->processName();
549 >     edm::InputTag triggerResultTag = edm::InputTag("TriggerResults");
550 >     triggerResultTag = edm::InputTag( triggerResultTag.label(), triggerResultTag.instance(), nameProcess );
551 >    
552 >     edm::Handle<edm::TriggerResults> trigger;
553 >     iEvent.getByLabel(triggerResultTag, trigger);
554 >     const edm::TriggerResults& trig = *(trigger.product());
555 >    
556 >     triggerResults.clear();
557 >     triggerNames.clear();
558 >     L1_prescale.clear();
559 >     HLT_prescale.clear();
560 >    
561 >     edm::Service<edm::service::TriggerNamesService> tns;
562 >     std::vector<std::string> triggerNames_all;
563 >     tns->getTrigPaths(trig,triggerNames_all);
564 >    
565 >     if (trig.size()!=triggerNames_all.size()) std::cout <<"ERROR: length of names and paths not the same: "<<triggerNames_all.size()<<","<<trig.size()<< std::endl;
566 >     for(unsigned int i=0; i<trig.size(); ++i){
567 >       std::vector<std::string>::const_iterator it = trigger_prefixes.begin();
568 >       for(; it!=trigger_prefixes.end(); ++it){
569 >         if(triggerNames_all[i].substr(0, it->size()) == *it)break;
570 >       }
571 >       if(it==trigger_prefixes.end()) continue;
572 >      
573 >       //triggerResults.insert(std::pair<std::string, bool>(triggerNames[i],trig.accept(i)));
574 >       triggerResults.push_back(trig.accept(i));
575 >       if(newrun) triggerNames.push_back(triggerNames_all[i]);
576 >       if(isRealData){
577 >         std::pair<int, int> pre=hlt_cfg.prescaleValues(iEvent, iSetup, triggerNames_all[i]);
578 >         L1_prescale.push_back(pre.first);
579 >         HLT_prescale.push_back(pre.second);
580 >       }
581 >     }
582 >     //    for(std::map<std::string, bool>::const_iterator iter = triggerResults.begin(); iter!=triggerResults.end(); iter++){
583 >     //      std::cout << (*iter).first << "   " << (*iter).second << std::endl;
584 >     //    }
585 >     newrun=false;
586 >   }
587  
588     // ------------- generator info -------------
589    
# Line 700 | Line 703 | NtupleWriter::endJob()
703   void
704   NtupleWriter::beginRun(edm::Run const& iRun, edm::EventSetup const&  iSetup)
705   {
706 <  bool setup_changed = false;
707 <  hlt_cfg.init(iRun, iSetup, "HLT", setup_changed);
708 <  newrun=true;
709 <
710 <  edm::ESHandle<JetCorrectorParametersCollection> JetCorParColl;
708 <  iSetup.get<JetCorrectionsRecord>().get("AK5PF",JetCorParColl);
709 <  JetCorrectorParameters const & JetCorPar = (*JetCorParColl)["Uncertainty"];
710 <  jecUnc = new JetCorrectionUncertainty(JetCorPar);
706 >  if(doTrigger){
707 >    bool setup_changed = false;
708 >    hlt_cfg.init(iRun, iSetup, "HLT", setup_changed);
709 >    newrun=true;
710 >  }
711  
712 +  if(doJets || doTopJets){
713 +    edm::ESHandle<JetCorrectorParametersCollection> JetCorParColl;
714 +    iSetup.get<JetCorrectionsRecord>().get("AK5PF",JetCorParColl);
715 +    JetCorrectorParameters const & JetCorPar = (*JetCorParColl)["Uncertainty"];
716 +    jecUnc = new JetCorrectionUncertainty(JetCorPar);
717 +  }
718   }
719  
720   // ------------ method called when ending the processing of a run  ------------

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines