ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/HbbAnalysis/plugins/HbbTreeMaker.cc
(Generate patch)

Comparing UserCode/HbbAnalysis/plugins/HbbTreeMaker.cc (file contents):
Revision 1.3 by amagnan, Tue Oct 13 12:14:05 2009 UTC vs.
Revision 1.4 by amagnan, Tue Feb 9 14:52:23 2010 UTC

# Line 6 | Line 6
6   #include "DataFormats/HepMCCandidate/interface/GenParticle.h"
7   #include "DataFormats/MuonReco/interface/Muon.h"
8   #include "DataFormats/MuonReco/interface/MuonFwd.h"
9 + #include "DataFormats/MuonReco/interface/MuonSelectors.h"
10   #include "DataFormats/VertexReco/interface/Vertex.h"
11   #include "DataFormats/HLTReco/interface/TriggerEvent.h"
12   #include "DataFormats/TrackReco/interface/TrackFwd.h"
# Line 34 | Line 35 | using namespace HbbAnalysis;
35  
36   HbbTreeMaker::HbbTreeMaker(const edm::ParameterSet & pset):
37    debug_(pset.getParameter<int>("DEBUG")),
38 +  processData_(pset.getParameter<bool>("ProcessData")),
39    flavour_(pset.getParameter<unsigned int>("JetFlavour")),
40    doGen_(pset.getParameter<bool>("DOGEN")),
41    genParticleSrc_(pset.getParameter<edm::InputTag>("GenParticles")),
# Line 82 | Line 84 | void HbbTreeMaker::beginJob(const edm::E
84  
85    lDir = lFileService->mkdir("JetFlavours");
86  
87 <  jetFlav_.Initialise(lDir, debug_, flavour_);
87 >  if (!processData_) jetFlav_.Initialise(lDir, debug_, flavour_);
88  
89   }//beginJob
90  
91   void HbbTreeMaker::endJob(){//endJob
92 <  jetFlav_.printSummary();
92 >  if (!processData_) jetFlav_.printSummary();
93  
94    //tree_->Write();
95    //delete tree_;
# Line 111 | Line 113 | void HbbTreeMaker::analyze(const edm::Ev
113      aEvt.getByLabel(genParticleSrc_,lGenParticles);  
114      if (debug_) std::cout << "** ngenParticles = " << lGenParticles->size() << std::endl;
115    } catch(cms::Exception& e)  {
116 <    std::cout << "AMM: Collection genParticles not available! Exception : " << e.what() << ". " << std::endl;
116 >    if (!processData_) std::cout << "AMM: Collection genParticles not available! Exception : " << e.what() << ". " << std::endl;
117    }
118  
119 <  if (doGen_) HbbParticles(lGenParticles,event_->particles());
119 >  if (doGen_ && !processData_) HbbParticles(lGenParticles,event_->particles());
120  
121 <  unsigned int lNPartons = jetFlav_.fillPartons(lGenParticles);
121 >  unsigned int lNPartons = 0;
122 >  if (!processData_) lNPartons = jetFlav_.fillPartons(lGenParticles);
123    
124 <  if (debug_) std::cout << "--- Number of partons = " << lNPartons << "." << std::endl;
124 >  if (debug_ && !processData_) std::cout << "--- Number of partons = " << lNPartons << "." << std::endl;
125  
126  
127    edm::Handle<std::vector<reco::Vertex> > lRecoVertices;
# Line 312 | Line 315 | void HbbTreeMaker::HbbElectrons(const ed
315            //if (debug_ > 1) std::cout << "**** Ele #" << iEle << ", pT,eta,phi =  " << (*iter).pt() << " " << (*iter).eta() << " " << (*iter).phi() << std::endl;
316  
317            HbbAnalysis::GenVars lGen;
318 <          if ((*iter).genLepton()){
318 >          if (!processData_ && (*iter).genLepton()){
319              lGen.valid = true;
320              lGen.E = (*iter).genLepton()->energy();
321              lGen.pT = (*iter).genLepton()->pt();
# Line 397 | Line 400 | void HbbTreeMaker::HbbMuons(const edm::H
400            const reco::Muon* recoMuon = dynamic_cast<const reco::Muon*>((*iter).originalObject());
401  
402            HbbAnalysis::GenVars lGen;
403 <          if ((*iter).genLepton()){
403 >          if (!processData_ && (*iter).genLepton()){
404              lGen.valid = true;
405              lGen.E = (*iter).genLepton()->energy();
406              lGen.pT = (*iter).genLepton()->pt();
# Line 479 | Line 482 | void HbbTreeMaker::HbbMuons(const edm::H
482            else if (recoMuon->isCaloMuon()) lID.type = 4;
483            else lID.type = 0;
484  
485 <          if (recoMuon->isGood(reco::Muon::AllGlobalMuons)) lID.ids.push_back(1);
486 <          if (recoMuon->isGood(reco::Muon::AllStandAloneMuons)) lID.ids.push_back(2);
487 <          if (recoMuon->isGood(reco::Muon::AllTrackerMuons)) lID.ids.push_back(3);
488 <          if (recoMuon->isGood(reco::Muon::TrackerMuonArbitrated)) lID.ids.push_back(4);
489 <          if (recoMuon->isGood(reco::Muon::AllArbitrated)) lID.ids.push_back(5);
490 <          if (recoMuon->isGood(reco::Muon::GlobalMuonPromptTight)) lID.ids.push_back(6);
491 <          if (recoMuon->isGood(reco::Muon::TMLastStationLoose)) lID.ids.push_back(7);
492 <          if (recoMuon->isGood(reco::Muon::TMLastStationTight)) lID.ids.push_back(8);
493 <          if (recoMuon->isGood(reco::Muon::TM2DCompatibilityLoose)) lID.ids.push_back(9);
494 <          if (recoMuon->isGood(reco::Muon::TM2DCompatibilityTight)) lID.ids.push_back(10);
495 <          if (recoMuon->isGood(reco::Muon::TMOneStationLoose)) lID.ids.push_back(11);
496 <          if (recoMuon->isGood(reco::Muon::TMOneStationTight)) lID.ids.push_back(12);
497 <          if (recoMuon->isGood(reco::Muon::TMLastStationOptimizedLowPtLoose)) lID.ids.push_back(13);
498 <          if (recoMuon->isGood(reco::Muon::TMLastStationOptimizedLowPtTight)) lID.ids.push_back(14);
485 >          if (muon::isGoodMuon(*recoMuon,muon::AllGlobalMuons)) lID.ids.push_back(1);
486 >          if (muon::isGoodMuon(*recoMuon,muon::AllStandAloneMuons)) lID.ids.push_back(2);
487 >          if (muon::isGoodMuon(*recoMuon,muon::AllTrackerMuons)) lID.ids.push_back(3);
488 >          if (muon::isGoodMuon(*recoMuon,muon::TrackerMuonArbitrated)) lID.ids.push_back(4);
489 >          if (muon::isGoodMuon(*recoMuon,muon::AllArbitrated)) lID.ids.push_back(5);
490 >          if (muon::isGoodMuon(*recoMuon,muon::GlobalMuonPromptTight)) lID.ids.push_back(6);
491 >          if (muon::isGoodMuon(*recoMuon,muon::TMLastStationLoose)) lID.ids.push_back(7);
492 >          if (muon::isGoodMuon(*recoMuon,muon::TMLastStationTight)) lID.ids.push_back(8);
493 >          if (muon::isGoodMuon(*recoMuon,muon::TM2DCompatibilityLoose)) lID.ids.push_back(9);
494 >          if (muon::isGoodMuon(*recoMuon,muon::TM2DCompatibilityTight)) lID.ids.push_back(10);
495 >          if (muon::isGoodMuon(*recoMuon,muon::TMOneStationLoose)) lID.ids.push_back(11);
496 >          if (muon::isGoodMuon(*recoMuon,muon::TMOneStationTight)) lID.ids.push_back(12);
497 >          if (muon::isGoodMuon(*recoMuon,muon::TMLastStationOptimizedLowPtLoose)) lID.ids.push_back(13);
498 >          if (muon::isGoodMuon(*recoMuon,muon::TMLastStationOptimizedLowPtTight)) lID.ids.push_back(14);
499 >          if (muon::isGoodMuon(*recoMuon,muon::GMTkChiCompatibility)) lID.ids.push_back(15);
500 >          if (muon::isGoodMuon(*recoMuon,muon::GMStaChiCompatibility)) lID.ids.push_back(16);
501 >          if (muon::isGoodMuon(*recoMuon,muon::GMTkKinkTight)) lID.ids.push_back(17);
502 >          if (muon::isGoodMuon(*recoMuon,muon::TMLastStationAngLoose)) lID.ids.push_back(18);
503 >          if (muon::isGoodMuon(*recoMuon,muon::TMLastStationAngTight)) lID.ids.push_back(19);
504 >          if (muon::isGoodMuon(*recoMuon,muon::TMOneStationAngLoose)) lID.ids.push_back(20);
505 >          if (muon::isGoodMuon(*recoMuon,muon::TMOneStationAngTight)) lID.ids.push_back(21);
506 >          if (muon::isGoodMuon(*recoMuon,muon::TMLastStationOptimizedBarrelLowPtLoose)) lID.ids.push_back(22);
507 >          if (muon::isGoodMuon(*recoMuon,muon::TMLastStationOptimizedBarrelLowPtTight)) lID.ids.push_back(23);
508  
509            lID.caloCompat = recoMuon->caloCompatibility();
510 <          lID.segCompat = recoMuon->segmentCompatibility();
510 >          lID.segCompat = muon::segmentCompatibility(*recoMuon);
511            lID.nChambers = recoMuon->numberOfChambers();
512            lID.nMatchesLoose = recoMuon->numberOfMatches(reco::Muon::NoArbitration);
513            lID.nMatchesMedium = recoMuon->numberOfMatches(reco::Muon::SegmentArbitration);
# Line 526 | Line 538 | void HbbTreeMaker::HbbTaus(const edm::Ha
538            //if (debug_ > 1) std::cout << "**** Ele #" << iEle << ", pT,eta,phi =  " << (*iter).pt() << " " << (*iter).eta() << " " << (*iter).phi() << std::endl;
539  
540            HbbAnalysis::GenVars lGen;
541 <          if ((*iter).genLepton()){
541 >          if (!processData_ && (*iter).genLepton()){
542              lGen.valid = true;
543              lGen.E = (*iter).genLepton()->energy();
544              lGen.pT = (*iter).genLepton()->pt();
# Line 557 | Line 569 | void HbbTreeMaker::HbbTaus(const edm::Ha
569  
570  
571            HbbAnalysis::GenVars lGenJet;
572 <          if ((*iter).genJet()){
572 >          if (!processData_ && (*iter).genJet()){
573              lGenJet.valid = true;
574 +            lGenJet.E = (*iter).genJet()->energy();
575              lGenJet.pT = (*iter).genJet()->pt();
576              lGenJet.eta = (*iter).genJet()->eta();
577              lGenJet.phi = (*iter).genJet()->phi();
# Line 572 | Line 585 | void HbbTreeMaker::HbbTaus(const edm::Ha
585            }
586            else {
587              lGenJet.valid = false;
588 +            lGenJet.E = 0;
589              lGenJet.pT = 0;
590              lGenJet.eta = 0;
591              lGenJet.phi = 0;
# Line 684 | Line 698 | void HbbTreeMaker::HbbTaus(const edm::Ha
698            }
699  
700  
687          HbbAnalysis::PFTauIDVars lpfId;
701            HbbAnalysis::CaloTauIDVars lcaloId;
702 +          lcaloId.byIsolation = 0;
703 +          lcaloId.byLeadingTrackFinding = 0;
704 +          lcaloId.byLeadingTrackPtCut = 0;
705 +
706 +          HbbAnalysis::PFTauIDVars lpfId;
707 +          lpfId.byLeadingTrackFinding = 0;
708 +          lpfId.byLeadingTrackPtCut = 0;
709 +          lpfId.byTrackIsolation = 0;
710 +          lpfId.byECALIsolation = 0;
711 +          lpfId.byIsolation = 0;
712 +          lpfId.againstElectron = 0;
713 +          lpfId.againstMuon = 0;
714 +
715 +
716  
717            for (unsigned int id(0); id<lIDs.size(); id++){
718  
# Line 751 | Line 778 | void HbbTreeMaker::HbbTaus(const edm::Ha
778              HbbAnalysis::PFTauCandVars lNeutr;
779              lNeutr.nSigCands = (*iter).signalPFNeutrHadrCands().size();
780              lNeutr.nIsoCands = (*iter).isolationPFNeutrHadrCands().size();
781 <            lNeutr.isolationPtSum = 0;
781 >            lNeutr.isolationPtSum = (*iter).neutralHadronIso();
782  
783              HbbAnalysis::PFTauCandVars lGamma;
784              lGamma.nSigCands = (*iter).signalPFGammaCands().size();
# Line 805 | Line 832 | void HbbTreeMaker::HbbJets(const edm::Ha
832            //if (debug_ > 1) std::cout << "**** Ele #" << iEle << ", pT,eta,phi =  " << (*iter).pt() << " " << (*iter).eta() << " " << (*iter).phi() << std::endl;
833  
834            HbbAnalysis::GenVars lGen;
835 <          if ((*iter).genParton()){
835 >          if (!processData_ && (*iter).genParton()){
836              lGen.valid = true;
837              lGen.E = (*iter).genParton()->energy();
838              lGen.pT = (*iter).genParton()->pt();
# Line 836 | Line 863 | void HbbTreeMaker::HbbJets(const edm::Ha
863  
864  
865            HbbAnalysis::GenVars lGenJet;
866 <          if ((*iter).genJet()){
866 >          if (!processData_ && (*iter).genJet()){
867              lGenJet.valid = true;
868 +            lGenJet.E = (*iter).genJet()->energy();
869              lGenJet.pT = (*iter).genJet()->pt();
870              lGenJet.eta = (*iter).genJet()->eta();
871              lGenJet.phi = (*iter).genJet()->phi();
# Line 851 | Line 879 | void HbbTreeMaker::HbbJets(const edm::Ha
879            }
880            else {
881              lGenJet.valid = false;
882 +            lGenJet.E = 0;
883              lGenJet.pT = 0;
884              lGenJet.eta = 0;
885              lGenJet.phi = 0;
# Line 874 | Line 903 | void HbbTreeMaker::HbbJets(const edm::Ha
903            lReco.vz = (*iter).vz();
904  
905            unsigned int lFlav = 0;
906 <          if (aJetFlav.nPartons()) {
906 >          if (!processData_ && aJetFlav.nPartons()) {
907              lFlav = aJetFlav.partonMatchingGenJet((*iter),aGenParticles,0.4).second;
908            }
909  
# Line 883 | Line 912 | void HbbTreeMaker::HbbJets(const edm::Ha
912            lCommon.partonFlavour = (*iter).partonFlavour();
913            lCommon.nAssociatedTracks = ((*iter).associatedTracks()).size();
914            lCommon.rawpT = (*iter).pt();
915 <          if ((*iter).hasJetCorrFactors())
916 <            lCommon.rawpT = (*iter).pt()/((*iter).jetCorrFactors().scaleDefault());
915 >          if ((*iter).hasCorrFactors())
916 >            lCommon.rawpT = (*iter).pt()/((*iter).corrFactor((*iter).corrStep()));
917            //lCommon.rawEta = (*iter).;
918            //lCommon.rawPhi = (*iter).;
919            //    p_hasJetCorrFactors->Fill(aJet.hasJetCorrFactors());
# Line 974 | Line 1003 | void HbbTreeMaker::HbbMet(const edm::Han
1003  
1004    const reco::GenMET *lGenMET = lMet.genMET();
1005  
1006 <  if (lGenMET){
1006 >  if (!processData_ && lGenMET){
1007      lGen.mET = lGenMET->pt();
1008      lGen.mEx = lGenMET->px();
1009      lGen.mEy = lGenMET->py();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines