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

Comparing UserCode/VHbbAnalysis/HbbAnalyzer/plugins/HbbAnalyzerNew.cc (file contents):
Revision 1.41 by tboccali, Mon Sep 19 10:34:54 2011 UTC vs.
Revision 1.56 by arizzi, Thu Oct 20 14:38:01 2011 UTC

# Line 103 | Line 103 | HbbAnalyzerNew::produce(edm::Event& iEve
103  
104    //  JetCorrectionUncertainty *jecUnc=0;
105    edm::ESHandle<JetCorrectorParametersCollection> JetCorParColl;
106 <  iSetup.get<JetCorrectionsRecord>().get("AK5PF",JetCorParColl);
106 >  iSetup.get<JetCorrectionsRecord>().get("AK5PFchs",JetCorParColl);
107    JetCorrectionUncertainty *jecUnc=0;
108    //  if (!runOnMC_){
109    JetCorrectorParameters const & JetCorPar = (*JetCorParColl)["Uncertainty"];
# Line 171 | Line 171 | HbbAnalyzerNew::produce(edm::Event& iEve
171    
172    auxInfo->pvInfo.firstPVInPT2 = TVector3(RecVtxFirst.x(), RecVtxFirst.y(), RecVtxFirst.z());
173    auxInfo->pvInfo.firstPVInProb = TVector3(RecVtx.x(), RecVtx.y(), RecVtx.z());
174 <
174 >  
175 >  (auxInfo->pvInfo).efirstPVInPT2 = (RecVtxFirst.error());
176 >  (auxInfo->pvInfo).efirstPVInProb = RecVtx.error();
177      
178    edm::Handle<double> rhoHandle;
179    iEvent.getByLabel(edm::InputTag("kt6PFJets", "rho"),rhoHandle);  
# Line 420 | Line 422 | BTagSFContainer btagSFs;
422      //     if(jet_iter->pt()>50)
423      //       njetscounter++;
424      VHbbEvent::SimpleJet sj;
425 +    //    std::cout <<" sj1"<<std::endl;
426      fillSimpleJet(sj,jet_iter);
427      //    if(!runOnMC_)
428  
# Line 435 | Line 438 | BTagSFContainer btagSFs;
438        //genJet
439        const reco::GenJet *gJ = jet_iter->genJet();
440        //physical parton for mother info ONLY
441 <      if( (jet_iter->genParton())
442 <          and (jet_iter->genParton()->mother()) )
443 <        sj.bestMCmomid=jet_iter->genParton()->mother()->pdgId();
441 >      if( (jet_iter->genParton()) ){
442 >        sj.bestMCid = jet_iter->genParton()->pdgId();
443 >        if( (jet_iter->genParton()->mother()) )
444 >          sj.bestMCmomid=jet_iter->genParton()->mother()->pdgId();
445 >      }
446        TLorentzVector gJp4;
447        if(gJ){
448          gJp4.SetPtEtaPhiE(gJ->pt(),gJ->eta(),gJ->phi(),gJ->energy());
449 <        sj.bestMCp4mom = gJp4;
445 <        std::cout <<" KKKKK 1 "<< sj.bestMCp4mom.Pt() <<std::endl;
449 >        sj.bestMCp4 = gJp4;
450          if(verbose_){
451            std::clog << "genJet matched Pt = " << gJp4.Pt() << std::endl;
452            std::clog << "genJet matched eta = " << gJp4.Eta() << std::endl;
# Line 461 | Line 465 | BTagSFContainer btagSFs;
465      //     if(jet_iter->pt()>50)
466      //       njetscounter++;
467      VHbbEvent::SimpleJet sj;
468 +    //    std::cout <<" sj3"<<std::endl;
469      fillSimpleJet(sj,jet_iter);
470      //    if(!runOnMC_)  
471    setJecUnc(sj,jecUnc);
# Line 476 | Line 481 | BTagSFContainer btagSFs;
481        //genJet
482        const reco::GenJet *gJ = jet_iter->genJet();
483        //physical parton for mother info ONLY
484 <      if( (jet_iter->genParton())
485 <          and (jet_iter->genParton()->mother()) )
486 <        sj.bestMCmomid=jet_iter->genParton()->mother()->pdgId();
484 >      if( (jet_iter->genParton()) ){
485 >        sj.bestMCid = jet_iter->genParton()->pdgId();
486 >        if( (jet_iter->genParton()->mother()) )
487 >          sj.bestMCmomid=jet_iter->genParton()->mother()->pdgId();
488 >      }
489        TLorentzVector gJp4;
490        if(gJ){
491          gJp4.SetPtEtaPhiE(gJ->pt(),gJ->eta(),gJ->phi(),gJ->energy());
492 <        sj.bestMCp4mom = gJp4;
486 <        std::cout <<" KKKKK 2 "<< (sj.bestMCp4mom.Pt()) <<std::endl;
492 >        sj.bestMCp4 = gJp4;
493          if(verbose_){
494            std::clog << "genJet matched Pt = " << gJp4.Pt() << std::endl;
495            std::clog << "genJet matched eta = " << gJp4.Eta() << std::endl;
# Line 502 | Line 508 | BTagSFContainer btagSFs;
508      //     if(jet_iter->pt()>50)
509      //       njetscounter++;
510      VHbbEvent::SimpleJet sj;
511 +    //    std::cout <<" sj4"<<std::endl;
512      fillSimpleJet(sj,jet_iter);
513      //    if(!runOnMC_)  
514      setJecUnc(sj,jecUnc);
# Line 517 | Line 524 | BTagSFContainer btagSFs;
524        //genJet
525        const reco::GenJet *gJ = jet_iter->genJet();
526        //physical parton for mother info ONLY
527 <      if( (jet_iter->genParton())
528 <          and (jet_iter->genParton()->mother()) )
529 <        sj.bestMCmomid=jet_iter->genParton()->mother()->pdgId();
527 >      if( (jet_iter->genParton()) ){
528 >        sj.bestMCid = jet_iter->genParton()->pdgId();
529 >        if( (jet_iter->genParton()->mother()) )
530 >          sj.bestMCmomid=jet_iter->genParton()->mother()->pdgId();
531 >      }
532        TLorentzVector gJp4;
533        if(gJ){
534          gJp4.SetPtEtaPhiE(gJ->pt(),gJ->eta(),gJ->phi(),gJ->energy());
535 <        sj.bestMCp4mom = gJp4;
527 <        std::cout <<" KKKKK 3 "<< sj.bestMCp4mom.Pt() <<std::endl;
535 >        sj.bestMCp4 = gJp4;
536          if(verbose_){
537            std::clog << "genJet matched Pt = " << gJp4.Pt() << std::endl;
538            std::clog << "genJet matched eta = " << gJp4.Eta() << std::endl;
# Line 543 | Line 551 | BTagSFContainer btagSFs;
551    for(edm::View<pat::Jet>::const_iterator jet_iter = simplejets2.begin(); jet_iter!=simplejets2.end(); ++jet_iter){
552      
553      VHbbEvent::SimpleJet sj;
554 +    //    std::cout <<" sj2"<<std::endl;
555      fillSimpleJet(sj,jet_iter);    
556      //  if(!runOnMC_)  
557   setJecUnc(sj,jecUnc);
# Line 598 | Line 607 | BTagSFContainer btagSFs;
607        //genJet
608        const reco::GenJet *gJ = jet_iter->genJet();
609        //physical parton for mother info ONLY
610 <      if( (jet_iter->genParton())
611 <          and (jet_iter->genParton()->mother()) )
612 <        sj.bestMCmomid=jet_iter->genParton()->mother()->pdgId();
610 >      if( (jet_iter->genParton()) ){
611 >        sj.bestMCid = jet_iter->genParton()->pdgId();
612 >        if( (jet_iter->genParton()->mother()) )
613 >          sj.bestMCmomid=jet_iter->genParton()->mother()->pdgId();
614 >      }
615        TLorentzVector gJp4;
616        if(gJ){
617          gJp4.SetPtEtaPhiE(gJ->pt(),gJ->eta(),gJ->phi(),gJ->energy());
618 <        sj.bestMCp4mom = gJp4;
608 <        std::cout <<" KKKKK 4 "<< sj.bestMCp4mom.Pt() <<std::endl;
618 >        sj.bestMCp4 = gJp4;
619          if(verbose_){
620            std::clog << "genJet matched Pt = " << gJp4.Pt() << std::endl;
621            std::clog << "genJet matched eta = " << gJp4.Eta() << std::endl;
# Line 685 | Line 695 | BTagSFContainer btagSFs;
695                              << "," << subjet_iter->bDiscriminator("combinedSecondaryVertexBJetTags") << "\n";}
696  
697      VHbbEvent::SimpleJet sj;
698 +    //    std::cout <<" sub jet "<<std::endl;
699      fillSimpleJet(sj,subjet_iter);
700      //  if(!runOnMC_)  
701      setJecUnc(sj,jecUnc);
# Line 720 | Line 731 | BTagSFContainer btagSFs;
731  
732    }
733  
734 +  //
735 +  // add charged met
736 +  //
737 +  
738 +  edm::Handle<edm::View<reco::MET> > metChargedHandle;
739 +  iEvent.getByLabel("pfMETNoPUCharge",metChargedHandle);
740 +  edm::View<reco::MET> metsCh = *metChargedHandle;
741 +  if(metsCh.size()){
742 +    hbbInfo->metCh.sumEt=(metsCh[0]).sumEt();
743 +    hbbInfo->metCh.metSig=metSignificance(& (metsCh[0]));
744 +    hbbInfo->metCh.eLong=(metsCh[0]).e_longitudinal();
745 +    hbbInfo->metCh.p4=GENPTOLOR((metsCh[0]));
746 +    if (verbose_)     std::cout <<" METCharged "<<     hbbInfo->metCh.metSig <<" " <<     hbbInfo->metCh.sumEt<<std::endl;
747 +  }
748  
749    //
750    // met is calomet
# Line 730 | Line 755 | BTagSFContainer btagSFs;
755    edm::View<pat::MET> metsTC = *metTCHandle;
756    if(metsTC.size()){
757      hbbInfo->tcmet.sumEt=(metsTC[0]).sumEt();
758 <    hbbInfo->tcmet.metSig=(metsTC[0]).significance();
758 >    hbbInfo->tcmet.metSig=metSignificance(&(metsTC[0]));
759      hbbInfo->tcmet.eLong=(metsTC[0]).e_longitudinal();
760      hbbInfo->tcmet.p4=GENPTOLOR((metsTC[0]));
761      if (verbose_)     std::cout <<" METTC "<<     hbbInfo->tcmet.metSig <<" " <<     hbbInfo->tcmet.sumEt<<std::endl;
# Line 741 | Line 766 | BTagSFContainer btagSFs;
766    edm::View<reco::MET> metspfMETNoPU = *pfMETNoPUHandle;
767    if(metspfMETNoPU.size()){
768      hbbInfo->metNoPU.sumEt=(metspfMETNoPU[0]).sumEt();
769 <    hbbInfo->metNoPU.metSig=(metspfMETNoPU[0]).significance();
769 >    hbbInfo->metNoPU.metSig=metSignificance(&(metspfMETNoPU[0]));                
770      hbbInfo->metNoPU.eLong=(metspfMETNoPU[0]).e_longitudinal();
771      hbbInfo->metNoPU.p4=GENPTOLOR((metspfMETNoPU[0]));
772      if (verbose_)     std::cout <<" pfMETNoPU "<<     hbbInfo->metNoPU.metSig <<" " <<     hbbInfo->metNoPU.sumEt<<std::endl;
# Line 752 | Line 777 | BTagSFContainer btagSFs;
777    edm::View<reco::MET> metsHT = *mHTHandle;
778    if(metsHT.size()){
779      hbbInfo->mht.sumEt=(metsHT[0]).sumEt();
780 <    hbbInfo->mht.metSig=(metsHT[0]).significance();
780 >    hbbInfo->mht.metSig=metSignificance(&(metsHT[0]));
781      hbbInfo->mht.eLong=(metsHT[0]).e_longitudinal();
782      hbbInfo->mht.p4=GENPTOLOR((metsHT[0]));
783      if (verbose_)     std::cout <<" METHT "<<     hbbInfo->mht.metSig <<" " <<     hbbInfo->mht.sumEt<<std::endl;
# Line 764 | Line 789 | BTagSFContainer btagSFs;
789    
790    if(mets.size()){
791      hbbInfo->calomet.sumEt=(mets[0]).sumEt();
792 <    hbbInfo->calomet.metSig=(mets[0]).significance();
792 >    hbbInfo->calomet.metSig=metSignificance(&(mets[0]));
793      hbbInfo->calomet.eLong=(mets[0]).e_longitudinal();
794      hbbInfo->calomet.p4=GENPTOLOR((mets[0]));
795      if (verbose_)     std::cout <<" METCALO "<<     hbbInfo->calomet.metSig <<" " <<     hbbInfo->calomet.sumEt<<std::endl;
# Line 776 | Line 801 | BTagSFContainer btagSFs;
801    
802    if(metsPF.size()){
803      hbbInfo->pfmet.sumEt=(metsPF[0]).sumEt();
804 <    hbbInfo->pfmet.metSig=(metsPF[0]).significance();
804 >    hbbInfo->pfmet.metSig=metSignificance(&(metsPF[0]));
805      hbbInfo->pfmet.eLong=(metsPF[0]).e_longitudinal();
806      hbbInfo->pfmet.p4=GENPTOLOR((metsPF[0]));
807      if (verbose_)     std::cout <<" METPF "<<     hbbInfo->pfmet.metSig <<" " <<     hbbInfo->pfmet.sumEt<<std::endl;
# Line 805 | Line 830 | BTagSFContainer btagSFs;
830      double acop = deltaphi.value();
831      mf.acop=acop;
832  
833 +    mf.emEnergy = mu->calEnergy().em;
834 +    mf.hadEnergy = mu->calEnergy().had;
835 +
836 +    mf.nMatches = mu->numberOfMatches();
837 +
838      mf.ipDb=mu->dB();
839      mf.ipErrDb=mu->edB();
840      mf.cat=0;
# Line 821 | Line 851 | BTagSFContainer btagSFs;
851        TrackRef iTrack1 = mu->innerTrack();
852        const reco::HitPattern& p1 = iTrack1->hitPattern();
853        mf.nPixelHits=p1.pixelLayersWithMeasurement();
854 <    }
854 >
855 >      mf.nValidTracker = p1.numberOfValidTrackerHits();
856 >      mf.nValidPixel = p1.numberOfValidPixelHits();
857 >
858 >
859 >
860 >   }
861      if(mu->isGlobalMuon()){
862        TrackRef gTrack = mu->globalTrack();
863        const reco::HitPattern& q = gTrack->hitPattern();
# Line 890 | Line 926 | BTagSFContainer btagSFs;
926      ef.pfPhoIso=elec->photonIso();
927      ef.pfNeuIso=elec->neutralHadronIso();
928  
929 +    //
930 +    // ip info
931 +    //
932 +
933 +    ef.ipDb=elec->dB();
934 +    ef.ipErrDb=elec->edB();
935 +    
936 +
937 +
938      Geom::Phi<double> deltaphi(elec->superCluster()->phi()-atan2(hbbInfo->pfmet.p4.Py(),hbbInfo->pfmet.p4.Px()));
939      ef.acop = deltaphi.value();
940      //
941 +    ef.sihih = elec->sigmaIetaIeta();
942 +    ef.Dphi = elec->deltaPhiSuperClusterTrackAtVtx();
943 +    ef.Deta = elec->deltaEtaSuperClusterTrackAtVtx();
944 +    ef.HoE = elec->hadronicOverEm();
945 +    ef.convDist = elec->convDist();
946 +    ef.convDcot = elec->convDcot();
947 +    if(elec->gsfTrack().isNonnull()) ef.innerHits = elec->gsfTrack()->trackerExpectedHitsInner().numberOfHits();  
948 +    ef.isEB = elec->isEB();
949 +    ef.isEE = elec->isEE();
950 +    //
951      // fill eleids
952      //    
953   /*    ef.id95 = elec->electronID("simpleEleId95cIso");
# Line 991 | Line 1046 | BTagSFContainer btagSFs;
1046    iEvent.put(auxInfo);
1047  
1048  
1049 +  delete jecUnc;
1050 +
1051   }
1052    
1053   void
# Line 1179 | Line 1236 | void HbbAnalyzerNew::setJecUnc(VHbbEvent
1236    // test
1237    //
1238  
1239 <  return;
1239 >  //  return;
1240    double eta = sj.p4.Eta();
1241    double pt = sj.p4.Pt();
1242    
# Line 1199 | Line 1256 | void HbbAnalyzerNew ::fillSimpleJet (VHb
1256      sj.jpb=jet_iter->bDiscriminator("jetBProbabilityBJetTags");
1257      sj.ssvhe=jet_iter->bDiscriminator("simpleSecondaryVertexHighEffBJetTags");
1258      sj.csv=jet_iter->bDiscriminator("combinedSecondaryVertexBJetTags");
1259 <    sj.csvmva=jet_iter->bDiscriminator("combinedSecondaryVertexMVABJetTags");
1259 >   sj.csvmva=jet_iter->bDiscriminator("combinedSecondaryVertexMVABJetTags");
1260      sj.charge=jet_iter->jetCharge();
1261      sj.ntracks=jet_iter->associatedTracks().size();
1262      sj.p4=GENPTOLORP(jet_iter);
1263 +    //    std::cout << " ECCO "<<sj.csv<< " "<< sj.p4.Pt()<<std::endl;
1264      sj.chargedTracksFourMomentum=(getChargedTracksMomentum(&*(jet_iter)));
1265      sj.SF_CSVL=1;
1266      sj.SF_CSVM=1;
# Line 1247 | Line 1305 | void HbbAnalyzerNew ::fillSimpleJet (VHb
1305      sj.tVector = getTvect(&(*jet_iter));
1306   }
1307  
1308 + float HbbAnalyzerNew::metSignificance(const reco::MET * met)
1309 + {
1310 + double sigmaX2= met->getSignificanceMatrix()(0,0);
1311 + double sigmaY2= met->getSignificanceMatrix()(1,1);
1312 + double significance = 0;
1313 + try {
1314 + if(sigmaX2<1.e10 && sigmaY2<1.e10) significance = met->significance();
1315 + }
1316 + catch(...)
1317 + {
1318 + std::cout << "PROBLEM WITH MET SIGNIFICANCE sigma X2 and Y2 are: " << sigmaX2 << " " << sigmaY2 << std::endl;
1319 + }
1320 + return significance;
1321 + }
1322 +
1323  
1324   //define this as a plug-in
1325   DEFINE_FWK_MODULE(HbbAnalyzerNew);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines